@volcengine/veplayer 1.17.0-rc.0 → 1.17.0-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ // Built @Tue, 12 May 2026 04:27:06 GMT
2
+ !function(e,c){"object"==typeof exports&&"undefined"!=typeof module?module.exports=c(require("core-js/modules/es.array.concat.js"),require("core-js/modules/es.array.filter.js"),require("core-js/modules/es.array.index-of.js"),require("core-js/modules/es.array.iterator.js"),require("core-js/modules/es.array.sort.js"),require("core-js/modules/es.array.splice.js"),require("core-js/modules/es.map.js"),require("core-js/modules/es.number.constructor.js"),require("core-js/modules/es.number.is-finite.js"),require("core-js/modules/es.object.assign.js"),require("core-js/modules/es.object.to-string.js"),require("core-js/modules/es.promise.js"),require("core-js/modules/es.regexp.exec.js"),require("core-js/modules/es.string.iterator.js"),require("core-js/modules/es.string.match.js"),require("core-js/modules/es.string.repeat.js"),require("core-js/modules/es.string.replace.js"),require("core-js/modules/esnext.map.delete-all.js"),require("core-js/modules/esnext.map.every.js"),require("core-js/modules/esnext.map.filter.js"),require("core-js/modules/esnext.map.find.js"),require("core-js/modules/esnext.map.find-key.js"),require("core-js/modules/esnext.map.includes.js"),require("core-js/modules/esnext.map.key-of.js"),require("core-js/modules/esnext.map.map-keys.js"),require("core-js/modules/esnext.map.map-values.js"),require("core-js/modules/esnext.map.merge.js"),require("core-js/modules/esnext.map.reduce.js"),require("core-js/modules/esnext.map.some.js"),require("core-js/modules/esnext.map.update.js"),require("core-js/modules/web.dom-collections.for-each.js"),require("core-js/modules/web.dom-collections.iterator.js"),require("core-js/modules/web.url.js"),require("core-js/modules/web.url.to-json.js"),require("core-js/modules/web.url-search-params.js"),require("core-js/modules/es.array.copy-within.js"),require("core-js/modules/es.array.includes.js"),require("core-js/modules/es.array.join.js"),require("core-js/modules/es.array.last-index-of.js"),require("core-js/modules/es.array.reduce.js"),require("core-js/modules/es.array.slice.js"),require("core-js/modules/es.array-buffer.constructor.js"),require("core-js/modules/es.array-buffer.slice.js"),require("core-js/modules/es.parse-int.js"),require("core-js/modules/es.regexp.constructor.js"),require("core-js/modules/es.regexp.to-string.js"),require("core-js/modules/es.string.includes.js"),require("core-js/modules/es.string.starts-with.js"),require("core-js/modules/es.typed-array.float32-array.js"),require("core-js/modules/es.typed-array.float64-array.js"),require("core-js/modules/es.typed-array.int8-array.js"),require("core-js/modules/es.typed-array.int16-array.js"),require("core-js/modules/es.typed-array.int32-array.js"),require("core-js/modules/es.typed-array.uint8-array.js"),require("core-js/modules/es.typed-array.uint8-clamped-array.js"),require("core-js/modules/es.typed-array.uint16-array.js"),require("core-js/modules/es.typed-array.uint32-array.js"),require("core-js/modules/es.typed-array.copy-within.js"),require("core-js/modules/es.typed-array.every.js"),require("core-js/modules/es.typed-array.fill.js"),require("core-js/modules/es.typed-array.filter.js"),require("core-js/modules/es.typed-array.find.js"),require("core-js/modules/es.typed-array.find-index.js"),require("core-js/modules/es.typed-array.for-each.js"),require("core-js/modules/es.typed-array.includes.js"),require("core-js/modules/es.typed-array.index-of.js"),require("core-js/modules/es.typed-array.iterator.js"),require("core-js/modules/es.typed-array.join.js"),require("core-js/modules/es.typed-array.last-index-of.js"),require("core-js/modules/es.typed-array.map.js"),require("core-js/modules/es.typed-array.reduce.js"),require("core-js/modules/es.typed-array.reduce-right.js"),require("core-js/modules/es.typed-array.reverse.js"),require("core-js/modules/es.typed-array.set.js"),require("core-js/modules/es.typed-array.slice.js"),require("core-js/modules/es.typed-array.some.js"),require("core-js/modules/es.typed-array.sort.js"),require("core-js/modules/es.typed-array.subarray.js"),require("core-js/modules/es.typed-array.to-locale-string.js"),require("core-js/modules/es.typed-array.to-string.js"),require("xgplayer"),require("core-js/modules/es.array.find.js"),require("core-js/modules/es.array.find-index.js"),require("core-js/modules/es.object.keys.js"),require("core-js/modules/es.set.js"),require("core-js/modules/es.object.values.js"),require("core-js/modules/es.promise.finally.js"),require("core-js/modules/es.string.split.js"),require("core-js/modules/es.array.map.js"),require("core-js/modules/es.date.to-json.js"),require("core-js/modules/es.object.get-own-property-descriptor.js")):"function"==typeof define&&define.amd?define(["core-js/modules/es.array.concat.js","core-js/modules/es.array.filter.js","core-js/modules/es.array.index-of.js","core-js/modules/es.array.iterator.js","core-js/modules/es.array.sort.js","core-js/modules/es.array.splice.js","core-js/modules/es.map.js","core-js/modules/es.number.constructor.js","core-js/modules/es.number.is-finite.js","core-js/modules/es.object.assign.js","core-js/modules/es.object.to-string.js","core-js/modules/es.promise.js","core-js/modules/es.regexp.exec.js","core-js/modules/es.string.iterator.js","core-js/modules/es.string.match.js","core-js/modules/es.string.repeat.js","core-js/modules/es.string.replace.js","core-js/modules/esnext.map.delete-all.js","core-js/modules/esnext.map.every.js","core-js/modules/esnext.map.filter.js","core-js/modules/esnext.map.find.js","core-js/modules/esnext.map.find-key.js","core-js/modules/esnext.map.includes.js","core-js/modules/esnext.map.key-of.js","core-js/modules/esnext.map.map-keys.js","core-js/modules/esnext.map.map-values.js","core-js/modules/esnext.map.merge.js","core-js/modules/esnext.map.reduce.js","core-js/modules/esnext.map.some.js","core-js/modules/esnext.map.update.js","core-js/modules/web.dom-collections.for-each.js","core-js/modules/web.dom-collections.iterator.js","core-js/modules/web.url.js","core-js/modules/web.url.to-json.js","core-js/modules/web.url-search-params.js","core-js/modules/es.array.copy-within.js","core-js/modules/es.array.includes.js","core-js/modules/es.array.join.js","core-js/modules/es.array.last-index-of.js","core-js/modules/es.array.reduce.js","core-js/modules/es.array.slice.js","core-js/modules/es.array-buffer.constructor.js","core-js/modules/es.array-buffer.slice.js","core-js/modules/es.parse-int.js","core-js/modules/es.regexp.constructor.js","core-js/modules/es.regexp.to-string.js","core-js/modules/es.string.includes.js","core-js/modules/es.string.starts-with.js","core-js/modules/es.typed-array.float32-array.js","core-js/modules/es.typed-array.float64-array.js","core-js/modules/es.typed-array.int8-array.js","core-js/modules/es.typed-array.int16-array.js","core-js/modules/es.typed-array.int32-array.js","core-js/modules/es.typed-array.uint8-array.js","core-js/modules/es.typed-array.uint8-clamped-array.js","core-js/modules/es.typed-array.uint16-array.js","core-js/modules/es.typed-array.uint32-array.js","core-js/modules/es.typed-array.copy-within.js","core-js/modules/es.typed-array.every.js","core-js/modules/es.typed-array.fill.js","core-js/modules/es.typed-array.filter.js","core-js/modules/es.typed-array.find.js","core-js/modules/es.typed-array.find-index.js","core-js/modules/es.typed-array.for-each.js","core-js/modules/es.typed-array.includes.js","core-js/modules/es.typed-array.index-of.js","core-js/modules/es.typed-array.iterator.js","core-js/modules/es.typed-array.join.js","core-js/modules/es.typed-array.last-index-of.js","core-js/modules/es.typed-array.map.js","core-js/modules/es.typed-array.reduce.js","core-js/modules/es.typed-array.reduce-right.js","core-js/modules/es.typed-array.reverse.js","core-js/modules/es.typed-array.set.js","core-js/modules/es.typed-array.slice.js","core-js/modules/es.typed-array.some.js","core-js/modules/es.typed-array.sort.js","core-js/modules/es.typed-array.subarray.js","core-js/modules/es.typed-array.to-locale-string.js","core-js/modules/es.typed-array.to-string.js","xgplayer","core-js/modules/es.array.find.js","core-js/modules/es.array.find-index.js","core-js/modules/es.object.keys.js","core-js/modules/es.set.js","core-js/modules/es.object.values.js","core-js/modules/es.promise.finally.js","core-js/modules/es.string.split.js","core-js/modules/es.array.map.js","core-js/modules/es.date.to-json.js","core-js/modules/es.object.get-own-property-descriptor.js"],c):(e="undefined"!=typeof globalThis?globalThis:e||self).EncryptHlsjsPlugin=c(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,e.Player)}(this,(function(e,c,t,a,r,i,n,f,s,o,l,d,u,h,b,p,g,m,v,y,E,S,_,T,k,A,L,I,w,R,D,x,P,C,O,M,F,N,U,B,$,j,G,K,V,H,q,Y,W,z,X,Q,J,Z,ee,ce,te,ae,re,ie,ne,fe,se,oe,le,de,ue,he,be,pe,ge,me,ve,ye,Ee,Se,_e,Te,ke,Ae,Le){"use strict";function Ie(e,c){(null==c||c>e.length)&&(c=e.length);for(var t=0,a=Array(c);t<c;t++)a[t]=e[t];return a}function we(e,c,t,a,r,i,n){try{var f=e[i](n),s=f.value}catch(o){return void t(o)}f.done?c(s):Promise.resolve(s).then(a,r)}function Re(e){return function(){var c=this,t=arguments;return new Promise((function(a,r){var i=e.apply(c,t);function n(e){we(i,a,r,n,f,"next",e)}function f(e){we(i,a,r,n,f,"throw",e)}n(void 0)}))}}function De(e,c,t){return c=Ue(c),function(e,c){if(c&&("object"==typeof c||"function"==typeof c))return c;if(void 0!==c)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,$e()?Reflect.construct(c,t||[],Ue(e).constructor):c.apply(e,t))}function xe(e,c){if(!(e instanceof c))throw new TypeError("Cannot call a class as a function")}function Pe(e,c,t){if($e())return Reflect.construct.apply(null,arguments);var a=[null];a.push.apply(a,c);var r=new(e.bind.apply(e,a));return t&&He(r,t.prototype),r}function Ce(e,c){for(var t=0;t<c.length;t++){var a=c[t];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,ze(a.key),a)}}function Oe(e,c,t){return c&&Ce(e.prototype,c),t&&Ce(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Me(e,c){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=Qe(e))||c&&e&&"number"==typeof e.length){t&&(e=t);var a=0,r=function(){};return{s:r,n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,n=!0,f=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return n=e.done,e},e:function(e){f=!0,i=e},f:function(){try{n||null==t.return||t.return()}finally{if(f)throw i}}}}function Fe(e,c,t){return(c=ze(c))in e?Object.defineProperty(e,c,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[c]=t,e}function Ne(){return Ne="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,c,t){var a=function(e,c){for(;!{}.hasOwnProperty.call(e,c)&&null!==(e=Ue(e)););return e}(e,c);if(a){var r=Object.getOwnPropertyDescriptor(a,c);return r.get?r.get.call(arguments.length<3?e:t):r.value}},Ne.apply(null,arguments)}function Ue(e){return(Ue=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Be(e,c){if("function"!=typeof c&&null!==c)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(c&&c.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),c&&He(e,c)}function $e(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(c){}return($e=function(){return!!e})()}function je(e,c){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);c&&(a=a.filter((function(c){return Object.getOwnPropertyDescriptor(e,c).enumerable}))),t.push.apply(t,a)}return t}function Ge(e){for(var c=1;c<arguments.length;c++){var t=null!=arguments[c]?arguments[c]:{};c%2?je(Object(t),!0).forEach((function(c){Fe(e,c,t[c])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):je(Object(t)).forEach((function(c){Object.defineProperty(e,c,Object.getOwnPropertyDescriptor(t,c))}))}return e}function Ke(e,c){if(null==e)return{};var t,a,r=function(e,c){if(null==e)return{};var t={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(-1!==c.indexOf(a))continue;t[a]=e[a]}return t}(e,c);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],-1===c.indexOf(t)&&{}.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}function Ve(){Ve=function(){return c};var e,c={},t=Object.prototype,a=t.hasOwnProperty,r=Object.defineProperty||function(e,c,t){e[c]=t.value},i="function"==typeof Symbol?Symbol:{},n=i.iterator||"@@iterator",f=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function o(e,c,t){return Object.defineProperty(e,c,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[c]}try{o({},"")}catch(P){o=function(e,c,t){return e[c]=t}}function l(e,c,t,a){var i=c&&c.prototype instanceof m?c:m,n=Object.create(i.prototype),f=new D(a||[]);return r(n,"_invoke",{value:L(e,t,f)}),n}function d(e,c,t){try{return{type:"normal",arg:e.call(c,t)}}catch(a){return{type:"throw",arg:a}}}c.wrap=l;var u="suspendedStart",h="suspendedYield",b="executing",p="completed",g={};function m(){}function v(){}function y(){}var E={};o(E,n,(function(){return this}));var S=Object.getPrototypeOf,_=S&&S(S(x([])));_&&_!==t&&a.call(_,n)&&(E=_);var T=y.prototype=m.prototype=Object.create(E);function k(e){["next","throw","return"].forEach((function(c){o(e,c,(function(e){return this._invoke(c,e)}))}))}function A(e,c){function t(r,i,n,f){var s=d(e[r],e,i);if("throw"!==s.type){var o=s.arg,l=o.value;return l&&"object"==typeof l&&a.call(l,"__await")?c.resolve(l.__await).then((function(e){t("next",e,n,f)}),(function(e){t("throw",e,n,f)})):c.resolve(l).then((function(e){o.value=e,n(o)}),(function(e){return t("throw",e,n,f)}))}f(s.arg)}var i;r(this,"_invoke",{value:function(e,a){function r(){return new c((function(c,r){t(e,a,c,r)}))}return i=i?i.then(r,r):r()}})}function L(c,t,a){var r=u;return function(i,n){if(r===b)throw Error("Generator is already running");if(r===p){if("throw"===i)throw n;return{value:e,done:!0}}for(a.method=i,a.arg=n;;){var f=a.delegate;if(f){var s=I(f,a);if(s){if(s===g)continue;return s}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(r===u)throw r=p,a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);r=b;var o=d(c,t,a);if("normal"===o.type){if(r=a.done?p:h,o.arg===g)continue;return{value:o.arg,done:a.done}}"throw"===o.type&&(r=p,a.method="throw",a.arg=o.arg)}}}function I(c,t){var a=t.method,r=c.iterator[a];if(r===e)return t.delegate=null,"throw"===a&&c.iterator.return&&(t.method="return",t.arg=e,I(c,t),"throw"===t.method)||"return"!==a&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+a+"' method")),g;var i=d(r,c.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,g;var n=i.arg;return n?n.done?(t[c.resultName]=n.value,t.next=c.nextLoc,"return"!==t.method&&(t.method="next",t.arg=e),t.delegate=null,g):n:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,g)}function w(e){var c={tryLoc:e[0]};1 in e&&(c.catchLoc=e[1]),2 in e&&(c.finallyLoc=e[2],c.afterLoc=e[3]),this.tryEntries.push(c)}function R(e){var c=e.completion||{};c.type="normal",delete c.arg,e.completion=c}function D(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(w,this),this.reset(!0)}function x(c){if(c||""===c){var t=c[n];if(t)return t.call(c);if("function"==typeof c.next)return c;if(!isNaN(c.length)){var r=-1,i=function t(){for(;++r<c.length;)if(a.call(c,r))return t.value=c[r],t.done=!1,t;return t.value=e,t.done=!0,t};return i.next=i}}throw new TypeError(typeof c+" is not iterable")}return v.prototype=y,r(T,"constructor",{value:y,configurable:!0}),r(y,"constructor",{value:v,configurable:!0}),v.displayName=o(y,s,"GeneratorFunction"),c.isGeneratorFunction=function(e){var c="function"==typeof e&&e.constructor;return!!c&&(c===v||"GeneratorFunction"===(c.displayName||c.name))},c.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,y):(e.__proto__=y,o(e,s,"GeneratorFunction")),e.prototype=Object.create(T),e},c.awrap=function(e){return{__await:e}},k(A.prototype),o(A.prototype,f,(function(){return this})),c.AsyncIterator=A,c.async=function(e,t,a,r,i){void 0===i&&(i=Promise);var n=new A(l(e,t,a,r),i);return c.isGeneratorFunction(t)?n:n.next().then((function(e){return e.done?e.value:n.next()}))},k(T),o(T,s,"Generator"),o(T,n,(function(){return this})),o(T,"toString",(function(){return"[object Generator]"})),c.keys=function(e){var c=Object(e),t=[];for(var a in c)t.push(a);return t.reverse(),function e(){for(;t.length;){var a=t.pop();if(a in c)return e.value=a,e.done=!1,e}return e.done=!0,e}},c.values=x,D.prototype={constructor:D,reset:function(c){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(R),!c)for(var t in this)"t"===t.charAt(0)&&a.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(c){if(this.done)throw c;var t=this;function r(a,r){return f.type="throw",f.arg=c,t.next=a,r&&(t.method="next",t.arg=e),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var n=this.tryEntries[i],f=n.completion;if("root"===n.tryLoc)return r("end");if(n.tryLoc<=this.prev){var s=a.call(n,"catchLoc"),o=a.call(n,"finallyLoc");if(s&&o){if(this.prev<n.catchLoc)return r(n.catchLoc,!0);if(this.prev<n.finallyLoc)return r(n.finallyLoc)}else if(s){if(this.prev<n.catchLoc)return r(n.catchLoc,!0)}else{if(!o)throw Error("try statement without catch or finally");if(this.prev<n.finallyLoc)return r(n.finallyLoc)}}}},abrupt:function(e,c){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc<=this.prev&&a.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=c&&c<=i.finallyLoc&&(i=null);var n=i?i.completion:{};return n.type=e,n.arg=c,i?(this.method="next",this.next=i.finallyLoc,g):this.complete(n)},complete:function(e,c){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&c&&(this.next=c),g},finish:function(e){for(var c=this.tryEntries.length-1;c>=0;--c){var t=this.tryEntries[c];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),R(t),g}},catch:function(e){for(var c=this.tryEntries.length-1;c>=0;--c){var t=this.tryEntries[c];if(t.tryLoc===e){var a=t.completion;if("throw"===a.type){var r=a.arg;R(t)}return r}}throw Error("illegal catch attempt")},delegateYield:function(c,t,a){return this.delegate={iterator:x(c),resultName:t,nextLoc:a},"next"===this.method&&(this.arg=e),g}},c}function He(e,c){return(He=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,c){return e.__proto__=c,e})(e,c)}function qe(e,c){return function(e){if(Array.isArray(e))return e}(e)||function(e,c){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var a,r,i,n,f=[],s=!0,o=!1;try{if(i=(t=t.call(e)).next,0===c){if(Object(t)!==t)return;s=!1}else for(;!(s=(a=i.call(t)).done)&&(f.push(a.value),f.length!==c);s=!0);}catch(l){o=!0,r=l}finally{try{if(!s&&null!=t.return&&(n=t.return(),Object(n)!==n))return}finally{if(o)throw r}}return f}}(e,c)||Qe(e,c)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ye(e,c,t,a){var r=Ne(Ue(1&a?e.prototype:e),c,t);return 2&a&&"function"==typeof r?function(e){return r.apply(t,e)}:r}function We(e){return function(e){if(Array.isArray(e))return Ie(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Qe(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ze(e){var c=function(e,c){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,c||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===c?String:Number)(e)}(e,"string");return"symbol"==typeof c?c:c+""}function Xe(e){return(Xe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Qe(e,c){if(e){if("string"==typeof e)return Ie(e,c);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Ie(e,c):void 0}}var Je="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function Ze(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ec={exports:{}};(function(e){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==Je?Je:"undefined"!=typeof self?self:{};function t(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var a=function(e){return e&&e.Math==Math&&e},r=a("object"==typeof globalThis&&globalThis)||a("object"==typeof window&&window)||a("object"==typeof self&&self)||a("object"==typeof c&&c)||function(){return this}()||Function("return this")(),i={},n=function(e){try{return!!e()}catch(ig){return!0}},f=!n((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),s={},o={}.propertyIsEnumerable,l=Object.getOwnPropertyDescriptor,d=l&&!o.call({1:2},1);s.f=d?function(e){var c=l(this,e);return!!c&&c.enumerable}:o;var u=function(e,c){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:c}},h={}.toString,b=function(e){return h.call(e).slice(8,-1)},p=b,g="".split,m=n((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==p(e)?g.call(e,""):Object(e)}:Object,v=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},y=m,E=v,S=function(e){return y(E(e))},_=function(e){return"object"==typeof e?null!==e:"function"==typeof e},T=_,k=function(e,c){if(!T(e))return e;var t,a;if(c&&"function"==typeof(t=e.toString)&&!T(a=t.call(e)))return a;if("function"==typeof(t=e.valueOf)&&!T(a=t.call(e)))return a;if(!c&&"function"==typeof(t=e.toString)&&!T(a=t.call(e)))return a;throw TypeError("Can't convert object to primitive value")},A=v,L=function(e){return Object(A(e))},I=L,w={}.hasOwnProperty,R=function(e,c){return w.call(I(e),c)},D=_,x=r.document,P=D(x)&&D(x.createElement),C=function(e){return P?x.createElement(e):{}},O=C,M=!f&&!n((function(){return 7!=Object.defineProperty(O("div"),"a",{get:function(){return 7}}).a})),F=f,N=s,U=u,B=S,$=k,j=R,G=M,K=Object.getOwnPropertyDescriptor;i.f=F?K:function(e,c){if(e=B(e),c=$(c,!0),G)try{return K(e,c)}catch(t){}if(j(e,c))return U(!N.f.call(e,c),e[c])};var V={},H=_,q=function(e){if(!H(e))throw TypeError(String(e)+" is not an object");return e},Y=f,W=M,z=q,X=k,Q=Object.defineProperty;V.f=Y?Q:function(e,c,t){if(z(e),c=X(c,!0),z(t),W)try{return Q(e,c,t)}catch(a){}if("get"in t||"set"in t)throw TypeError("Accessors not supported");return"value"in t&&(e[c]=t.value),e};var J=V,Z=u,ee=f?function(e,c,t){return J.f(e,c,Z(1,t))}:function(e,c,t){return e[c]=t,e},ce={exports:{}},te=r,ae=ee,re=function(e,c){try{ae(te,e,c)}catch(t){te[e]=c}return c},ie=re,ne="__core-js_shared__",fe=r[ne]||ie(ne,{}),se=fe,oe=Function.toString;"function"!=typeof se.inspectSource&&(se.inspectSource=function(e){return oe.call(e)});var le=se.inspectSource,de=le,ue=r.WeakMap,he="function"==typeof ue&&/native code/.test(de(ue)),be={exports:{}},pe=fe;(be.exports=function(e,c){return pe[e]||(pe[e]=void 0!==c?c:{})})("versions",[]).push({version:"3.12.1",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"});var ge,me,ve,ye=be.exports,Ee=0,Se=Math.random(),_e=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++Ee+Se).toString(36)},Te=_e,ke=ye("keys"),Ae=function(e){return ke[e]||(ke[e]=Te(e))},Le={},Ie=he,we=_,Re=ee,De=R,xe=fe,Pe=Ae,Ce=Le,Oe="Object already initialized",Me=r.WeakMap;if(Ie||xe.state){var Fe=xe.state||(xe.state=new Me),Ne=Fe.get,Ue=Fe.has,Be=Fe.set;ge=function(e,c){if(Ue.call(Fe,e))throw new TypeError(Oe);return c.facade=e,Be.call(Fe,e,c),c},me=function(e){return Ne.call(Fe,e)||{}},ve=function(e){return Ue.call(Fe,e)}}else{var $e=Pe("state");Ce[$e]=!0,ge=function(e,c){if(De(e,$e))throw new TypeError(Oe);return c.facade=e,Re(e,$e,c),c},me=function(e){return De(e,$e)?e[$e]:{}},ve=function(e){return De(e,$e)}}var je={set:ge,get:me,has:ve,enforce:function(e){return ve(e)?me(e):ge(e,{})},getterFor:function(e){return function(c){var t;if(!we(c)||(t=me(c)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return t}}},Ge=r,Ke=ee,Ve=R,He=re,qe=le,Ye=je.get,We=je.enforce,ze=String(String).split("String");(ce.exports=function(e,c,t,a){var r,i=!!a&&!!a.unsafe,n=!!a&&!!a.enumerable,f=!!a&&!!a.noTargetGet;"function"==typeof t&&("string"!=typeof c||Ve(t,"name")||Ke(t,"name",c),(r=We(t)).source||(r.source=ze.join("string"==typeof c?c:""))),e!==Ge?(i?!f&&e[c]&&(n=!0):delete e[c],n?e[c]=t:Ke(e,c,t)):n?e[c]=t:He(c,t)})(Function.prototype,"toString",(function(){return"function"==typeof this&&Ye(this).source||qe(this)}));var Xe=ce.exports,Qe=r,Ze=r,ec=function(e){return"function"==typeof e?e:void 0},cc=function(e,c){return arguments.length<2?ec(Qe[e])||ec(Ze[e]):Qe[e]&&Qe[e][c]||Ze[e]&&Ze[e][c]},tc={},ac=Math.ceil,rc=Math.floor,ic=function(e){return isNaN(e=+e)?0:(e>0?rc:ac)(e)},nc=ic,fc=Math.min,sc=function(e){return e>0?fc(nc(e),9007199254740991):0},oc=ic,lc=Math.max,dc=Math.min,uc=function(e,c){var t=oc(e);return t<0?lc(t+c,0):dc(t,c)},hc=S,bc=sc,pc=uc,gc=function(e){return function(c,t,a){var r,i=hc(c),n=bc(i.length),f=pc(a,n);if(e&&t!=t){for(;n>f;)if((r=i[f++])!=r)return!0}else for(;n>f;f++)if((e||f in i)&&i[f]===t)return e||f||0;return!e&&-1}},mc={includes:gc(!0),indexOf:gc(!1)},vc=R,yc=S,Ec=mc.indexOf,Sc=Le,_c=function(e,c){var t,a=yc(e),r=0,i=[];for(t in a)!vc(Sc,t)&&vc(a,t)&&i.push(t);for(;c.length>r;)vc(a,t=c[r++])&&(~Ec(i,t)||i.push(t));return i},Tc=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],kc=_c,Ac=Tc.concat("length","prototype");tc.f=Object.getOwnPropertyNames||function(e){return kc(e,Ac)};var Lc={};Lc.f=Object.getOwnPropertySymbols;var Ic=tc,wc=Lc,Rc=q,Dc=cc("Reflect","ownKeys")||function(e){var c=Ic.f(Rc(e)),t=wc.f;return t?c.concat(t(e)):c},xc=R,Pc=Dc,Cc=i,Oc=V,Mc=n,Fc=/#|\.prototype\./,Nc=function(e,c){var t=Bc[Uc(e)];return t==jc||t!=$c&&("function"==typeof c?Mc(c):!!c)},Uc=Nc.normalize=function(e){return String(e).replace(Fc,".").toLowerCase()},Bc=Nc.data={},$c=Nc.NATIVE="N",jc=Nc.POLYFILL="P",Gc=Nc,Kc=r,Vc=i.f,Hc=ee,qc=Xe,Yc=re,Wc=function(e,c){for(var t=Pc(c),a=Oc.f,r=Cc.f,i=0;i<t.length;i++){var n=t[i];xc(e,n)||a(e,n,r(c,n))}},zc=Gc,Xc=function(e,c){var t,a,r,i,n,f=e.target,s=e.global,o=e.stat;if(t=s?Kc:o?Kc[f]||Yc(f,{}):(Kc[f]||{}).prototype)for(a in c){if(i=c[a],r=e.noTargetGet?(n=Vc(t,a))&&n.value:t[a],!zc(s?a:f+(o?".":"#")+a,e.forced)&&void 0!==r){if(typeof i==typeof r)continue;Wc(i,r)}(e.sham||r&&r.sham)&&Hc(i,"sham",!0),qc(t,a,i,e)}};function Qc(e,c,t,a,r,i,n){try{var f=e[i](n),s=f.value}catch(o){return void t(o)}f.done?c(s):Promise.resolve(s).then(a,r)}function Jc(e){return function(){var c=this,t=arguments;return new Promise((function(a,r){var i=e.apply(c,t);function n(e){Qc(i,a,r,n,f,"next",e)}function f(e){Qc(i,a,r,n,f,"throw",e)}n(void 0)}))}}function Zc(e,c,t){return c=rt(c),function(e,c){if(c&&("object"==typeof c||"function"==typeof c))return c;if(void 0!==c)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,nt()?Reflect.construct(c,t||[],rt(e).constructor):c.apply(e,t))}function et(e,c){if(!(e instanceof c))throw new TypeError("Cannot call a class as a function")}function ct(e,c){for(var t=0;t<c.length;t++){var a=c[t];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,ot(a.key),a)}}function tt(e,c,t){return c&&ct(e.prototype,c),t&&ct(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function at(e,c,t){return(c=ot(c))in e?Object.defineProperty(e,c,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[c]=t,e}function rt(e){return(rt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function it(e,c){if("function"!=typeof c&&null!==c)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(c&&c.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),c&&st(e,c)}function nt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(ig){}return(nt=function(){return!!e})()}function ft(){ft=function(){return c};var e,c={},t=Object.prototype,a=t.hasOwnProperty,r=Object.defineProperty||function(e,c,t){e[c]=t.value},i="function"==typeof Symbol?Symbol:{},n=i.iterator||"@@iterator",f=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function o(e,c,t){return Object.defineProperty(e,c,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[c]}try{o({},"")}catch(P){o=function(e,c,t){return e[c]=t}}function l(e,c,t,a){var i=c&&c.prototype instanceof m?c:m,n=Object.create(i.prototype),f=new D(a||[]);return r(n,"_invoke",{value:L(e,t,f)}),n}function d(e,c,t){try{return{type:"normal",arg:e.call(c,t)}}catch(a){return{type:"throw",arg:a}}}c.wrap=l;var u="suspendedStart",h="suspendedYield",b="executing",p="completed",g={};function m(){}function v(){}function y(){}var E={};o(E,n,(function(){return this}));var S=Object.getPrototypeOf,_=S&&S(S(x([])));_&&_!==t&&a.call(_,n)&&(E=_);var T=y.prototype=m.prototype=Object.create(E);function k(e){["next","throw","return"].forEach((function(c){o(e,c,(function(e){return this._invoke(c,e)}))}))}function A(e,c){function t(r,i,n,f){var s=d(e[r],e,i);if("throw"!==s.type){var o=s.arg,l=o.value;return l&&"object"==typeof l&&a.call(l,"__await")?c.resolve(l.__await).then((function(e){t("next",e,n,f)}),(function(e){t("throw",e,n,f)})):c.resolve(l).then((function(e){o.value=e,n(o)}),(function(e){return t("throw",e,n,f)}))}f(s.arg)}var i;r(this,"_invoke",{value:function(e,a){function r(){return new c((function(c,r){t(e,a,c,r)}))}return i=i?i.then(r,r):r()}})}function L(c,t,a){var r=u;return function(i,n){if(r===b)throw Error("Generator is already running");if(r===p){if("throw"===i)throw n;return{value:e,done:!0}}for(a.method=i,a.arg=n;;){var f=a.delegate;if(f){var s=I(f,a);if(s){if(s===g)continue;return s}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(r===u)throw r=p,a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);r=b;var o=d(c,t,a);if("normal"===o.type){if(r=a.done?p:h,o.arg===g)continue;return{value:o.arg,done:a.done}}"throw"===o.type&&(r=p,a.method="throw",a.arg=o.arg)}}}function I(c,t){var a=t.method,r=c.iterator[a];if(r===e)return t.delegate=null,"throw"===a&&c.iterator.return&&(t.method="return",t.arg=e,I(c,t),"throw"===t.method)||"return"!==a&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+a+"' method")),g;var i=d(r,c.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,g;var n=i.arg;return n?n.done?(t[c.resultName]=n.value,t.next=c.nextLoc,"return"!==t.method&&(t.method="next",t.arg=e),t.delegate=null,g):n:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,g)}function w(e){var c={tryLoc:e[0]};1 in e&&(c.catchLoc=e[1]),2 in e&&(c.finallyLoc=e[2],c.afterLoc=e[3]),this.tryEntries.push(c)}function R(e){var c=e.completion||{};c.type="normal",delete c.arg,e.completion=c}function D(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(w,this),this.reset(!0)}function x(c){if(c||""===c){var t=c[n];if(t)return t.call(c);if("function"==typeof c.next)return c;if(!isNaN(c.length)){var r=-1,i=function t(){for(;++r<c.length;)if(a.call(c,r))return t.value=c[r],t.done=!1,t;return t.value=e,t.done=!0,t};return i.next=i}}throw new TypeError(typeof c+" is not iterable")}return v.prototype=y,r(T,"constructor",{value:y,configurable:!0}),r(y,"constructor",{value:v,configurable:!0}),v.displayName=o(y,s,"GeneratorFunction"),c.isGeneratorFunction=function(e){var c="function"==typeof e&&e.constructor;return!!c&&(c===v||"GeneratorFunction"===(c.displayName||c.name))},c.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,y):(e.__proto__=y,o(e,s,"GeneratorFunction")),e.prototype=Object.create(T),e},c.awrap=function(e){return{__await:e}},k(A.prototype),o(A.prototype,f,(function(){return this})),c.AsyncIterator=A,c.async=function(e,t,a,r,i){void 0===i&&(i=Promise);var n=new A(l(e,t,a,r),i);return c.isGeneratorFunction(t)?n:n.next().then((function(e){return e.done?e.value:n.next()}))},k(T),o(T,s,"Generator"),o(T,n,(function(){return this})),o(T,"toString",(function(){return"[object Generator]"})),c.keys=function(e){var c=Object(e),t=[];for(var a in c)t.push(a);return t.reverse(),function e(){for(;t.length;){var a=t.pop();if(a in c)return e.value=a,e.done=!1,e}return e.done=!0,e}},c.values=x,D.prototype={constructor:D,reset:function(c){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(R),!c)for(var t in this)"t"===t.charAt(0)&&a.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(c){if(this.done)throw c;var t=this;function r(a,r){return f.type="throw",f.arg=c,t.next=a,r&&(t.method="next",t.arg=e),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var n=this.tryEntries[i],f=n.completion;if("root"===n.tryLoc)return r("end");if(n.tryLoc<=this.prev){var s=a.call(n,"catchLoc"),o=a.call(n,"finallyLoc");if(s&&o){if(this.prev<n.catchLoc)return r(n.catchLoc,!0);if(this.prev<n.finallyLoc)return r(n.finallyLoc)}else if(s){if(this.prev<n.catchLoc)return r(n.catchLoc,!0)}else{if(!o)throw Error("try statement without catch or finally");if(this.prev<n.finallyLoc)return r(n.finallyLoc)}}}},abrupt:function(e,c){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc<=this.prev&&a.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=c&&c<=i.finallyLoc&&(i=null);var n=i?i.completion:{};return n.type=e,n.arg=c,i?(this.method="next",this.next=i.finallyLoc,g):this.complete(n)},complete:function(e,c){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&c&&(this.next=c),g},finish:function(e){for(var c=this.tryEntries.length-1;c>=0;--c){var t=this.tryEntries[c];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),R(t),g}},catch:function(e){for(var c=this.tryEntries.length-1;c>=0;--c){var t=this.tryEntries[c];if(t.tryLoc===e){var a=t.completion;if("throw"===a.type){var r=a.arg;R(t)}return r}}throw Error("illegal catch attempt")},delegateYield:function(c,t,a){return this.delegate={iterator:x(c),resultName:t,nextLoc:a},"next"===this.method&&(this.arg=e),g}},c}function st(e,c){return(st=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,c){return e.__proto__=c,e})(e,c)}function ot(e){var c=function(e,c){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,c||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===c?String:Number)(e)}(e,"string");return"symbol"==typeof c?c:c+""}function lt(e){return(lt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function dt(e){var c="function"==typeof Map?new Map:void 0;return dt=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(c){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==c){if(c.has(e))return c.get(e);c.set(e,t)}function t(){return function(e,c,t){if(nt())return Reflect.construct.apply(null,arguments);var a=[null];a.push.apply(a,c);var r=new(e.bind.apply(e,a));return t&&st(r,t.prototype),r}(e,arguments,rt(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),st(t,e)},dt(e)}Xc({global:!0},{globalThis:r});var ut,ht,bt=b,pt=Array.isArray||function(e){return"Array"==bt(e)},gt=k,mt=V,vt=u,yt=function(e,c,t){var a=gt(c);a in e?mt.f(e,a,vt(0,t)):e[a]=t},Et=cc("navigator","userAgent")||"",St=Et,_t=r.process,Tt=_t&&_t.versions,kt=Tt&&Tt.v8;kt?ht=(ut=kt.split("."))[0]<4?1:ut[0]+ut[1]:St&&(!(ut=St.match(/Edge\/(\d+)/))||ut[1]>=74)&&(ut=St.match(/Chrome\/(\d+)/))&&(ht=ut[1]);var At=ht&&+ht,Lt=At,It=n,wt=!!Object.getOwnPropertySymbols&&!It((function(){return!String(Symbol())||!Symbol.sham&&Lt&&Lt<41})),Rt=wt&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Dt=r,xt=R,Pt=_e,Ct=wt,Ot=Rt,Mt=ye("wks"),Ft=Dt.Symbol,Nt=Ot?Ft:Ft&&Ft.withoutSetter||Pt,Ut=function(e){return xt(Mt,e)&&(Ct||"string"==typeof Mt[e])||(Ct&&xt(Ft,e)?Mt[e]=Ft[e]:Mt[e]=Nt("Symbol."+e)),Mt[e]},Bt=_,$t=pt,jt=Ut("species"),Gt=function(e,c){var t;return $t(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!$t(t.prototype)?Bt(t)&&null===(t=t[jt])&&(t=void 0):t=void 0),new(void 0===t?Array:t)(0===c?0:c)},Kt=n,Vt=At,Ht=Ut("species"),qt=function(e){return Vt>=51||!Kt((function(){var c=[];return(c.constructor={})[Ht]=function(){return{foo:1}},1!==c[e](Boolean).foo}))},Yt=Xc,Wt=n,zt=pt,Xt=_,Qt=L,Jt=sc,Zt=yt,ea=Gt,ca=qt,ta=At,aa=Ut("isConcatSpreadable"),ra=9007199254740991,ia="Maximum allowed index exceeded",na=ta>=51||!Wt((function(){var e=[];return e[aa]=!1,e.concat()[0]!==e})),fa=ca("concat"),sa=function(e){if(!Xt(e))return!1;var c=e[aa];return void 0!==c?!!c:zt(e)};Yt({target:"Array",proto:!0,forced:!na||!fa},{concat:function(e){var c,t,a,r,i,n=Qt(this),f=ea(n,0),s=0;for(c=-1,a=arguments.length;c<a;c++)if(sa(i=-1===c?n:arguments[c])){if(s+(r=Jt(i.length))>ra)throw TypeError(ia);for(t=0;t<r;t++,s++)t in i&&Zt(f,s,i[t])}else{if(s>=ra)throw TypeError(ia);Zt(f,s++,i)}return f.length=s,f}});var oa,la=_c,da=Tc,ua=Object.keys||function(e){return la(e,da)},ha=V,ba=q,pa=ua,ga=f?Object.defineProperties:function(e,c){ba(e);for(var t,a=pa(c),r=a.length,i=0;r>i;)ha.f(e,t=a[i++],c[t]);return e},ma=cc("document","documentElement"),va=q,ya=ga,Ea=Tc,Sa=Le,_a=ma,Ta=C,ka="prototype",Aa="script",La=Ae("IE_PROTO"),Ia=function(){},wa=function(e){return"<"+Aa+">"+e+"</"+Aa+">"},Ra=function(){try{oa=document.domain&&new ActiveXObject("htmlfile")}catch(r){}var e,c,t;Ra=oa?function(e){e.write(wa("")),e.close();var c=e.parentWindow.Object;return e=null,c}(oa):(c=Ta("iframe"),t="java"+Aa+":",c.style.display="none",_a.appendChild(c),c.src=String(t),(e=c.contentWindow.document).open(),e.write(wa("document.F=Object")),e.close(),e.F);for(var a=Ea.length;a--;)delete Ra[ka][Ea[a]];return Ra()};Sa[La]=!0;var Da=Object.create||function(e,c){var t;return null!==e?(Ia[ka]=va(e),t=new Ia,Ia[ka]=null,t[La]=e):t=Ra(),void 0===c?t:ya(t,c)},xa=Da,Pa=V,Ca=Ut("unscopables"),Oa=Array.prototype;null==Oa[Ca]&&Pa.f(Oa,Ca,{configurable:!0,value:xa(null)});var Ma,Fa,Na,Ua={},Ba=!n((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),$a=R,ja=L,Ga=Ba,Ka=Ae("IE_PROTO"),Va=Object.prototype,Ha=Ga?Object.getPrototypeOf:function(e){return e=ja(e),$a(e,Ka)?e[Ka]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?Va:null},qa=n,Ya=Ha,Wa=ee,za=R,Xa=Ut("iterator"),Qa=!1;[].keys&&("next"in(Na=[].keys())?(Fa=Ya(Ya(Na)))!==Object.prototype&&(Ma=Fa):Qa=!0),(null==Ma||qa((function(){var e={};return Ma[Xa].call(e)!==e})))&&(Ma={}),za(Ma,Xa)||Wa(Ma,Xa,(function(){return this}));var Ja={IteratorPrototype:Ma,BUGGY_SAFARI_ITERATORS:Qa},Za=V.f,er=R,cr=Ut("toStringTag"),tr=function(e,c,t){e&&!er(e=t?e:e.prototype,cr)&&Za(e,cr,{configurable:!0,value:c})},ar=Ja.IteratorPrototype,rr=Da,ir=u,nr=tr,fr=Ua,sr=function(){return this},or=_,lr=q,dr=function(e){if(!or(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e},ur=Object.setPrototypeOf||("__proto__"in{}?function(){var e,c=!1,t={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(t,[]),c=t instanceof Array}catch(a){}return function(t,a){return lr(t),dr(a),c?e.call(t,a):t.__proto__=a,t}}():void 0),hr=Xc,br=function(e,c,t){var a=c+" Iterator";return e.prototype=rr(ar,{next:ir(1,t)}),nr(e,a,!1),fr[a]=sr,e},pr=Ha,gr=ur,mr=tr,vr=ee,yr=Xe,Er=Ua,Sr=Ja.IteratorPrototype,_r=Ja.BUGGY_SAFARI_ITERATORS,Tr=Ut("iterator"),kr="keys",Ar="values",Lr="entries",Ir=function(){return this},wr=function(e,c,t,a,r,i,n){br(t,c,a);var f,s,o,l=function(e){if(e===r&&p)return p;if(!_r&&e in h)return h[e];switch(e){case kr:case Ar:case Lr:return function(){return new t(this,e)}}return function(){return new t(this)}},d=c+" Iterator",u=!1,h=e.prototype,b=h[Tr]||h["@@iterator"]||r&&h[r],p=!_r&&b||l(r),g="Array"==c&&h.entries||b;if(g&&(f=pr(g.call(new e)),Sr!==Object.prototype&&f.next&&(pr(f)!==Sr&&(gr?gr(f,Sr):"function"!=typeof f[Tr]&&vr(f,Tr,Ir)),mr(f,d,!0))),r==Ar&&b&&b.name!==Ar&&(u=!0,p=function(){return b.call(this)}),h[Tr]!==p&&vr(h,Tr,p),Er[c]=p,r)if(s={values:l(Ar),keys:i?p:l(kr),entries:l(Lr)},n)for(o in s)(_r||u||!(o in h))&&yr(h,o,s[o]);else hr({target:c,proto:!0,forced:_r||u},s);return s},Rr=S,Dr=function(e){Oa[Ca][e]=!0},xr=Ua,Pr=je,Cr=wr,Or="Array Iterator",Mr=Pr.set,Fr=Pr.getterFor(Or),Nr=Cr(Array,"Array",(function(e,c){Mr(this,{type:Or,target:Rr(e),index:0,kind:c})}),(function(){var e=Fr(this),c=e.target,t=e.kind,a=e.index++;return!c||a>=c.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==t?{value:a,done:!1}:"values"==t?{value:c[a],done:!1}:{value:[a,c[a]],done:!1}}),"values");xr.Arguments=xr.Array,Dr("keys"),Dr("values"),Dr("entries");var Ur="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView,Br=Xe,$r=function(e,c,t){for(var a in c)Br(e,a,c[a],t);return e},jr=function(e,c,t){if(!(e instanceof c))throw TypeError("Incorrect "+(t?t+" ":"")+"invocation");return e},Gr=ic,Kr=sc,Vr=function(e){if(void 0===e)return 0;var c=Gr(e),t=Kr(c);if(c!==t)throw RangeError("Wrong length or index");return t},Hr=Math.abs,qr=Math.pow,Yr=Math.floor,Wr=Math.log,zr=Math.LN2,Xr=L,Qr=uc,Jr=sc,Zr=function(e){for(var c=Xr(this),t=Jr(c.length),a=arguments.length,r=Qr(a>1?arguments[1]:void 0,t),i=a>2?arguments[2]:void 0,n=void 0===i?t:Qr(i,t);n>r;)c[r++]=e;return c},ei=r,ci=f,ti=Ur,ai=ee,ri=$r,ii=n,ni=jr,fi=ic,si=sc,oi=Vr,li={pack:function(e,c,t){var a,r,i,n=new Array(t),f=8*t-c-1,s=(1<<f)-1,o=s>>1,l=23===c?qr(2,-24)-qr(2,-77):0,d=e<0||0===e&&1/e<0?1:0,u=0;for((e=Hr(e))!=e||e===1/0?(r=e!=e?1:0,a=s):(a=Yr(Wr(e)/zr),e*(i=qr(2,-a))<1&&(a--,i*=2),(e+=a+o>=1?l/i:l*qr(2,1-o))*i>=2&&(a++,i/=2),a+o>=s?(r=0,a=s):a+o>=1?(r=(e*i-1)*qr(2,c),a+=o):(r=e*qr(2,o-1)*qr(2,c),a=0));c>=8;n[u++]=255&r,r/=256,c-=8);for(a=a<<c|r,f+=c;f>0;n[u++]=255&a,a/=256,f-=8);return n[--u]|=128*d,n},unpack:function(e,c){var t,a=e.length,r=8*a-c-1,i=(1<<r)-1,n=i>>1,f=r-7,s=a-1,o=e[s--],l=127&o;for(o>>=7;f>0;l=256*l+e[s],s--,f-=8);for(t=l&(1<<-f)-1,l>>=-f,f+=c;f>0;t=256*t+e[s],s--,f-=8);if(0===l)l=1-n;else{if(l===i)return t?NaN:o?-1/0:1/0;t+=qr(2,c),l-=n}return(o?-1:1)*t*qr(2,l-c)}},di=Ha,ui=ur,hi=tc.f,bi=V.f,pi=Zr,gi=tr,mi=je.get,vi=je.set,yi="ArrayBuffer",Ei="DataView",Si="prototype",_i="Wrong index",Ti=ei[yi],ki=Ti,Ai=ei[Ei],Li=Ai&&Ai[Si],Ii=Object.prototype,wi=ei.RangeError,Ri=li.pack,Di=li.unpack,xi=function(e){return[255&e]},Pi=function(e){return[255&e,e>>8&255]},Ci=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},Oi=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},Mi=function(e){return Ri(e,23,4)},Fi=function(e){return Ri(e,52,8)},Ni=function(e,c){bi(e[Si],c,{get:function(){return mi(this)[c]}})},Ui=function(e,c,t,a){var r=oi(t),i=mi(e);if(r+c>i.byteLength)throw wi(_i);var n=mi(i.buffer).bytes,f=r+i.byteOffset,s=n.slice(f,f+c);return a?s:s.reverse()},Bi=function(e,c,t,a,r,i){var n=oi(t),f=mi(e);if(n+c>f.byteLength)throw wi(_i);for(var s=mi(f.buffer).bytes,o=n+f.byteOffset,l=a(+r),d=0;d<c;d++)s[o+d]=l[i?d:c-d-1]};if(ti){if(!ii((function(){Ti(1)}))||!ii((function(){new Ti(-1)}))||ii((function(){return new Ti,new Ti(1.5),new Ti(NaN),Ti.name!=yi}))){for(var $i,ji=(ki=function(e){return ni(this,ki),new Ti(oi(e))})[Si]=Ti[Si],Gi=hi(Ti),Ki=0;Gi.length>Ki;)($i=Gi[Ki++])in ki||ai(ki,$i,Ti[$i]);ji.constructor=ki}ui&&di(Li)!==Ii&&ui(Li,Ii);var Vi=new Ai(new ki(2)),Hi=Li.setInt8;Vi.setInt8(0,2147483648),Vi.setInt8(1,2147483649),!Vi.getInt8(0)&&Vi.getInt8(1)||ri(Li,{setInt8:function(e,c){Hi.call(this,e,c<<24>>24)},setUint8:function(e,c){Hi.call(this,e,c<<24>>24)}},{unsafe:!0})}else ki=function(e){ni(this,ki,yi);var c=oi(e);vi(this,{bytes:pi.call(new Array(c),0),byteLength:c}),ci||(this.byteLength=c)},Ai=function(e,c,t){ni(this,Ai,Ei),ni(e,ki,Ei);var a=mi(e).byteLength,r=fi(c);if(r<0||r>a)throw wi("Wrong offset");if(r+(t=void 0===t?a-r:si(t))>a)throw wi("Wrong length");vi(this,{buffer:e,byteLength:t,byteOffset:r}),ci||(this.buffer=e,this.byteLength=t,this.byteOffset=r)},ci&&(Ni(ki,"byteLength"),Ni(Ai,"buffer"),Ni(Ai,"byteLength"),Ni(Ai,"byteOffset")),ri(Ai[Si],{getInt8:function(e){return Ui(this,1,e)[0]<<24>>24},getUint8:function(e){return Ui(this,1,e)[0]},getInt16:function(e){var c=Ui(this,2,e,arguments.length>1?arguments[1]:void 0);return(c[1]<<8|c[0])<<16>>16},getUint16:function(e){var c=Ui(this,2,e,arguments.length>1?arguments[1]:void 0);return c[1]<<8|c[0]},getInt32:function(e){return Oi(Ui(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return Oi(Ui(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return Di(Ui(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return Di(Ui(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,c){Bi(this,1,e,xi,c)},setUint8:function(e,c){Bi(this,1,e,xi,c)},setInt16:function(e,c){Bi(this,2,e,Pi,c,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,c){Bi(this,2,e,Pi,c,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,c){Bi(this,4,e,Ci,c,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,c){Bi(this,4,e,Ci,c,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,c){Bi(this,4,e,Mi,c,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,c){Bi(this,8,e,Fi,c,arguments.length>2?arguments[2]:void 0)}});gi(ki,yi),gi(Ai,Ei);var qi={ArrayBuffer:ki,DataView:Ai},Yi=cc,Wi=V,zi=f,Xi=Ut("species"),Qi=function(e){var c=Yi(e),t=Wi.f;zi&&c&&!c[Xi]&&t(c,Xi,{configurable:!0,get:function(){return this}})},Ji=Qi,Zi="ArrayBuffer",en=qi[Zi];Xc({global:!0,forced:r[Zi]!==en},{ArrayBuffer:en}),Ji(Zi);var cn=L,tn=ua;Xc({target:"Object",stat:!0,forced:n((function(){tn(1)}))},{keys:function(e){return tn(cn(e))}});var an={};an[Ut("toStringTag")]="z";var rn="[object z]"===String(an),nn=rn,fn=b,sn=Ut("toStringTag"),on="Arguments"==fn(function(){return arguments}()),ln=nn?fn:function(e){var c,t,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(t=function(e,c){try{return e[c]}catch(t){}}(c=Object(e),sn))?t:on?fn(c):"Object"==(a=fn(c))&&"function"==typeof c.callee?"Arguments":a},dn=ln,un=rn?{}.toString:function(){return"[object "+dn(this)+"]"};rn||Xe(Object.prototype,"toString",un,{unsafe:!0});var hn=r.Promise,bn=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e},pn=Ua,gn=Ut("iterator"),mn=Array.prototype,vn=function(e){return void 0!==e&&(pn.Array===e||mn[gn]===e)},yn=bn,En=function(e,c,t){if(yn(e),void 0===c)return e;switch(t){case 0:return function(){return e.call(c)};case 1:return function(t){return e.call(c,t)};case 2:return function(t,a){return e.call(c,t,a)};case 3:return function(t,a,r){return e.call(c,t,a,r)}}return function(){return e.apply(c,arguments)}},Sn=ln,_n=Ua,Tn=Ut("iterator"),kn=function(e){if(null!=e)return e[Tn]||e["@@iterator"]||_n[Sn(e)]},An=q,Ln=q,In=vn,wn=sc,Rn=En,Dn=kn,xn=function(e){var c=e.return;if(void 0!==c)return An(c.call(e)).value},Pn=function(e,c){this.stopped=e,this.result=c},Cn=function(e,c,t){var a,r,i,n,f,s,o,l=t&&t.that,d=!(!t||!t.AS_ENTRIES),u=!(!t||!t.IS_ITERATOR),h=!(!t||!t.INTERRUPTED),b=Rn(c,l,1+d+h),p=function(e){return a&&xn(a),new Pn(!0,e)},g=function(e){return d?(Ln(e),h?b(e[0],e[1],p):b(e[0],e[1])):h?b(e,p):b(e)};if(u)a=e;else{if("function"!=typeof(r=Dn(e)))throw TypeError("Target is not iterable");if(In(r)){for(i=0,n=wn(e.length);n>i;i++)if((f=g(e[i]))&&f instanceof Pn)return f;return new Pn(!1)}a=r.call(e)}for(s=a.next;!(o=s.call(a)).done;){try{f=g(o.value)}catch(m){throw xn(a),m}if("object"==typeof f&&f&&f instanceof Pn)return f}return new Pn(!1)},On=Ut("iterator"),Mn=!1;try{var Fn=0,Nn={next:function(){return{done:!!Fn++}},return:function(){Mn=!0}};Nn[On]=function(){return this},Array.from(Nn,(function(){throw 2}))}catch(ay){}var Un,Bn,$n,jn=function(e,c){if(!c&&!Mn)return!1;var t=!1;try{var a={};a[On]=function(){return{next:function(){return{done:t=!0}}}},e(a)}catch(ay){}return t},Gn=q,Kn=bn,Vn=Ut("species"),Hn=function(e,c){var t,a=Gn(e).constructor;return void 0===a||null==(t=Gn(a)[Vn])?c:Kn(t)},qn=/(?:iphone|ipod|ipad).*applewebkit/i.test(Et),Yn="process"==b(r.process),Wn=r,zn=n,Xn=En,Qn=ma,Jn=C,Zn=qn,ef=Yn,cf=Wn.location,tf=Wn.setImmediate,af=Wn.clearImmediate,rf=Wn.process,nf=Wn.MessageChannel,ff=Wn.Dispatch,sf=0,of={},lf="onreadystatechange",df=function(e){if(of.hasOwnProperty(e)){var c=of[e];delete of[e],c()}},uf=function(e){return function(){df(e)}},hf=function(e){df(e.data)},bf=function(e){Wn.postMessage(e+"",cf.protocol+"//"+cf.host)};tf&&af||(tf=function(e){for(var c=[],t=1;arguments.length>t;)c.push(arguments[t++]);return of[++sf]=function(){("function"==typeof e?e:Function(e)).apply(void 0,c)},Un(sf),sf},af=function(e){delete of[e]},ef?Un=function(e){rf.nextTick(uf(e))}:ff&&ff.now?Un=function(e){ff.now(uf(e))}:nf&&!Zn?($n=(Bn=new nf).port2,Bn.port1.onmessage=hf,Un=Xn($n.postMessage,$n,1)):Wn.addEventListener&&"function"==typeof postMessage&&!Wn.importScripts&&cf&&"file:"!==cf.protocol&&!zn(bf)?(Un=bf,Wn.addEventListener("message",hf,!1)):Un=lf in Jn("script")?function(e){Qn.appendChild(Jn("script"))[lf]=function(){Qn.removeChild(this),df(e)}}:function(e){setTimeout(uf(e),0)});var pf,gf,mf,vf,yf,Ef,Sf,_f,Tf={set:tf,clear:af},kf=/web0s(?!.*chrome)/i.test(Et),Af=r,Lf=i.f,If=Tf.set,wf=qn,Rf=kf,Df=Yn,xf=Af.MutationObserver||Af.WebKitMutationObserver,Pf=Af.document,Cf=Af.process,Of=Af.Promise,Mf=Lf(Af,"queueMicrotask"),Ff=Mf&&Mf.value;Ff||(pf=function(){var e,c;for(Df&&(e=Cf.domain)&&e.exit();gf;){c=gf.fn,gf=gf.next;try{c()}catch(ay){throw gf?vf():mf=void 0,ay}}mf=void 0,e&&e.enter()},wf||Df||Rf||!xf||!Pf?Of&&Of.resolve?((Sf=Of.resolve(void 0)).constructor=Of,_f=Sf.then,vf=function(){_f.call(Sf,pf)}):vf=Df?function(){Cf.nextTick(pf)}:function(){If.call(Af,pf)}:(yf=!0,Ef=Pf.createTextNode(""),new xf(pf).observe(Ef,{characterData:!0}),vf=function(){Ef.data=yf=!yf}));var Nf=Ff||function(e){var c={fn:e,next:void 0};mf&&(mf.next=c),gf||(gf=c,vf()),mf=c},Uf={},Bf=bn,$f=function(e){var c,t;this.promise=new e((function(e,a){if(void 0!==c||void 0!==t)throw TypeError("Bad Promise constructor");c=e,t=a})),this.resolve=Bf(c),this.reject=Bf(t)};Uf.f=function(e){return new $f(e)};var jf,Gf,Kf,Vf,Hf=q,qf=_,Yf=Uf,Wf=r,zf="object"==typeof window,Xf=Xc,Qf=r,Jf=cc,Zf=hn,es=Xe,cs=$r,ts=ur,as=tr,rs=Qi,is=_,ns=bn,fs=jr,ss=le,os=Cn,ls=jn,ds=Hn,us=Tf.set,hs=Nf,bs=function(e,c){if(Hf(e),qf(c)&&c.constructor===e)return c;var t=Yf.f(e);return(0,t.resolve)(c),t.promise},ps=function(e,c){var t=Wf.console;t&&t.error&&(1===arguments.length?t.error(e):t.error(e,c))},gs=Uf,ms=function(e){try{return{error:!1,value:e()}}catch(ay){return{error:!0,value:ay}}},vs=je,ys=Gc,Es=zf,Ss=Yn,_s=At,Ts=Ut("species"),ks="Promise",As=vs.get,Ls=vs.set,Is=vs.getterFor(ks),ws=Zf&&Zf.prototype,Rs=Zf,Ds=ws,xs=Qf.TypeError,Ps=Qf.document,Cs=Qf.process,Os=gs.f,Ms=Os,Fs=!!(Ps&&Ps.createEvent&&Qf.dispatchEvent),Ns="function"==typeof PromiseRejectionEvent,Us="unhandledrejection",Bs=!1,$s=ys(ks,(function(){var e=ss(Rs)!==String(Rs);if(!e&&66===_s)return!0;if(_s>=51&&/native code/.test(Rs))return!1;var c=new Rs((function(e){e(1)})),t=function(e){e((function(){}),(function(){}))};return(c.constructor={})[Ts]=t,!(Bs=c.then((function(){}))instanceof t)||!e&&Es&&!Ns})),js=$s||!ls((function(e){Rs.all(e).catch((function(){}))})),Gs=function(e){var c;return!(!is(e)||"function"!=typeof(c=e.then))&&c},Ks=function(e,c){if(!e.notified){e.notified=!0;var t=e.reactions;hs((function(){for(var a=e.value,r=1==e.state,i=0;t.length>i;){var n,f,s,o=t[i++],l=r?o.ok:o.fail,d=o.resolve,u=o.reject,h=o.domain;try{l?(r||(2===e.rejection&&Ys(e),e.rejection=1),!0===l?n=a:(h&&h.enter(),n=l(a),h&&(h.exit(),s=!0)),n===o.promise?u(xs("Promise-chain cycle")):(f=Gs(n))?f.call(n,d,u):d(n)):u(a)}catch(ay){h&&!s&&h.exit(),u(ay)}}e.reactions=[],e.notified=!1,c&&!e.rejection&&Hs(e)}))}},Vs=function(e,c,t){var a,r;Fs?((a=Ps.createEvent("Event")).promise=c,a.reason=t,a.initEvent(e,!1,!0),Qf.dispatchEvent(a)):a={promise:c,reason:t},!Ns&&(r=Qf["on"+e])?r(a):e===Us&&ps("Unhandled promise rejection",t)},Hs=function(e){us.call(Qf,(function(){var c,t=e.facade,a=e.value;if(qs(e)&&(c=ms((function(){Ss?Cs.emit("unhandledRejection",a,t):Vs(Us,t,a)})),e.rejection=Ss||qs(e)?2:1,c.error))throw c.value}))},qs=function(e){return 1!==e.rejection&&!e.parent},Ys=function(e){us.call(Qf,(function(){var c=e.facade;Ss?Cs.emit("rejectionHandled",c):Vs("rejectionhandled",c,e.value)}))},Ws=function(e,c,t){return function(a){e(c,a,t)}},zs=function(e,c,t){e.done||(e.done=!0,t&&(e=t),e.value=c,e.state=2,Ks(e,!0))},Xs=function(e,c,t){if(!e.done){e.done=!0,t&&(e=t);try{if(e.facade===c)throw xs("Promise can't be resolved itself");var a=Gs(c);a?hs((function(){var t={done:!1};try{a.call(c,Ws(Xs,t,e),Ws(zs,t,e))}catch(ay){zs(t,ay,e)}})):(e.value=c,e.state=1,Ks(e,!1))}catch(ay){zs({done:!1},ay,e)}}};if($s&&(Ds=(Rs=function(e){fs(this,Rs,ks),ns(e),jf.call(this);var c=As(this);try{e(Ws(Xs,c),Ws(zs,c))}catch(ay){zs(c,ay)}}).prototype,(jf=function(e){Ls(this,{type:ks,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=cs(Ds,{then:function(e,c){var t=Is(this),a=Os(ds(this,Rs));return a.ok="function"!=typeof e||e,a.fail="function"==typeof c&&c,a.domain=Ss?Cs.domain:void 0,t.parent=!0,t.reactions.push(a),0!=t.state&&Ks(t,!1),a.promise},catch:function(e){return this.then(void 0,e)}}),Gf=function(){var e=new jf,c=As(e);this.promise=e,this.resolve=Ws(Xs,c),this.reject=Ws(zs,c)},gs.f=Os=function(e){return e===Rs||e===Kf?new Gf(e):Ms(e)},"function"==typeof Zf&&ws!==Object.prototype)){Vf=ws.then,Bs||(es(ws,"then",(function(e,c){var t=this;return new Rs((function(e,c){Vf.call(t,e,c)})).then(e,c)}),{unsafe:!0}),es(ws,"catch",Ds.catch,{unsafe:!0}));try{delete ws.constructor}catch(ay){}ts&&ts(ws,Ds)}Xf({global:!0,wrap:!0,forced:$s},{Promise:Rs}),as(Rs,ks,!1),rs(ks),Kf=Jf(ks),Xf({target:ks,stat:!0,forced:$s},{reject:function(e){var c=Os(this);return c.reject.call(void 0,e),c.promise}}),Xf({target:ks,stat:!0,forced:$s},{resolve:function(e){return bs(this,e)}}),Xf({target:ks,stat:!0,forced:js},{all:function(e){var c=this,t=Os(c),a=t.resolve,r=t.reject,i=ms((function(){var t=ns(c.resolve),i=[],n=0,f=1;os(e,(function(e){var s=n++,o=!1;i.push(void 0),f++,t.call(c,e).then((function(e){o||(o=!0,i[s]=e,--f||a(i))}),r)})),--f||a(i)}));return i.error&&r(i.value),t.promise},race:function(e){var c=this,t=Os(c),a=t.reject,r=ms((function(){var r=ns(c.resolve);os(e,(function(e){r.call(c,e).then(t.resolve,a)}))}));return r.error&&a(r.value),t.promise}});var Qs=q,Js=function(){var e=Qs(this),c="";return e.global&&(c+="g"),e.ignoreCase&&(c+="i"),e.multiline&&(c+="m"),e.dotAll&&(c+="s"),e.unicode&&(c+="u"),e.sticky&&(c+="y"),c},Zs=Xe,eo=q,co=n,to=Js,ao="toString",ro=RegExp.prototype,io=ro[ao],no=co((function(){return"/a/b"!=io.call({source:"a",flags:"b"})})),fo=io.name!=ao;(no||fo)&&Zs(RegExp.prototype,ao,(function(){var e=eo(this),c=String(e.source),t=e.flags;return"/"+c+"/"+String(void 0===t&&e instanceof RegExp&&!("flags"in ro)?to.call(e):t)}),{unsafe:!0});var so,oo={exports:{}},lo=Ur,uo=f,ho=r,bo=_,po=R,go=ln,mo=ee,vo=Xe,yo=V.f,Eo=Ha,So=ur,_o=Ut,To=_e,ko=ho.Int8Array,Ao=ko&&ko.prototype,Lo=ho.Uint8ClampedArray,Io=Lo&&Lo.prototype,wo=ko&&Eo(ko),Ro=Ao&&Eo(Ao),Do=Object.prototype,xo=Do.isPrototypeOf,Po=_o("toStringTag"),Co=To("TYPED_ARRAY_TAG"),Oo=lo&&!!So&&"Opera"!==go(ho.opera),Mo=!1,Fo={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},No={BigInt64Array:8,BigUint64Array:8},Uo=function(e){if(!bo(e))return!1;var c=go(e);return po(Fo,c)||po(No,c)};for(so in Fo)ho[so]||(Oo=!1);if((!Oo||"function"!=typeof wo||wo===Function.prototype)&&(wo=function(){throw TypeError("Incorrect invocation")},Oo))for(so in Fo)ho[so]&&So(ho[so],wo);if((!Oo||!Ro||Ro===Do)&&(Ro=wo.prototype,Oo))for(so in Fo)ho[so]&&So(ho[so].prototype,Ro);if(Oo&&Eo(Io)!==Ro&&So(Io,Ro),uo&&!po(Ro,Po))for(so in Mo=!0,yo(Ro,Po,{get:function(){return bo(this)?this[Co]:void 0}}),Fo)ho[so]&&mo(ho[so],Co,so);var Bo={NATIVE_ARRAY_BUFFER_VIEWS:Oo,TYPED_ARRAY_TAG:Mo&&Co,aTypedArray:function(e){if(Uo(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(So){if(xo.call(wo,e))return e}else for(var c in Fo)if(po(Fo,so)){var t=ho[c];if(t&&(e===t||xo.call(t,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,c,t){if(uo){if(t)for(var a in Fo){var r=ho[a];if(r&&po(r.prototype,e))try{delete r.prototype[e]}catch(ay){}}Ro[e]&&!t||vo(Ro,e,t?c:Oo&&Ao[e]||c)}},exportTypedArrayStaticMethod:function(e,c,t){var a,r;if(uo){if(So){if(t)for(a in Fo)if((r=ho[a])&&po(r,e))try{delete r[e]}catch(ay){}if(wo[e]&&!t)return;try{return vo(wo,e,t?c:Oo&&wo[e]||c)}catch(ay){}}for(a in Fo)!(r=ho[a])||r[e]&&!t||vo(r,e,c)}},isView:function(e){if(!bo(e))return!1;var c=go(e);return"DataView"===c||po(Fo,c)||po(No,c)},isTypedArray:Uo,TypedArray:wo,TypedArrayPrototype:Ro},$o=r,jo=n,Go=jn,Ko=Bo.NATIVE_ARRAY_BUFFER_VIEWS,Vo=$o.ArrayBuffer,Ho=$o.Int8Array,qo=!Ko||!jo((function(){Ho(1)}))||!jo((function(){new Ho(-1)}))||!Go((function(e){new Ho,new Ho(null),new Ho(1.5),new Ho(e)}),!0)||jo((function(){return 1!==new Ho(new Vo(2),1,void 0).length})),Yo=ic,Wo=function(e){var c=Yo(e);if(c<0)throw RangeError("The argument can't be less than 0");return c},zo=function(e,c){var t=Wo(e);if(t%c)throw RangeError("Wrong offset");return t},Xo=L,Qo=sc,Jo=kn,Zo=vn,el=En,cl=Bo.aTypedArrayConstructor,tl=En,al=m,rl=L,il=sc,nl=Gt,fl=[].push,sl=function(e){var c=1==e,t=2==e,a=3==e,r=4==e,i=6==e,n=7==e,f=5==e||i;return function(s,o,l,d){for(var u,h,b=rl(s),p=al(b),g=tl(o,l,3),m=il(p.length),v=0,y=d||nl,E=c?y(s,m):t||n?y(s,0):void 0;m>v;v++)if((f||v in p)&&(h=g(u=p[v],v,b),e))if(c)E[v]=h;else if(h)switch(e){case 3:return!0;case 5:return u;case 6:return v;case 2:fl.call(E,u)}else switch(e){case 4:return!1;case 7:fl.call(E,u)}return i?-1:a||r?r:E}},ol={forEach:sl(0),map:sl(1),filter:sl(2),some:sl(3),every:sl(4),find:sl(5),findIndex:sl(6),filterOut:sl(7)},ll=_,dl=ur,ul=function(e,c,t){var a,r;return dl&&"function"==typeof(a=c.constructor)&&a!==t&&ll(r=a.prototype)&&r!==t.prototype&&dl(e,r),e},hl=Xc,bl=r,pl=f,gl=qo,ml=Bo,vl=qi,yl=jr,El=u,Sl=ee,_l=sc,Tl=Vr,kl=zo,Al=k,Ll=R,Il=ln,wl=_,Rl=Da,Dl=ur,xl=tc.f,Pl=function(e){var c,t,a,r,i,n,f=Xo(e),s=arguments.length,o=s>1?arguments[1]:void 0,l=void 0!==o,d=Jo(f);if(null!=d&&!Zo(d))for(n=(i=d.call(f)).next,f=[];!(r=n.call(i)).done;)f.push(r.value);for(l&&s>2&&(o=el(o,arguments[2],2)),t=Qo(f.length),a=new(cl(this))(t),c=0;t>c;c++)a[c]=l?o(f[c],c):f[c];return a},Cl=ol.forEach,Ol=Qi,Ml=V,Fl=i,Nl=ul,Ul=je.get,Bl=je.set,$l=Ml.f,jl=Fl.f,Gl=Math.round,Kl=bl.RangeError,Vl=vl.ArrayBuffer,Hl=vl.DataView,ql=ml.NATIVE_ARRAY_BUFFER_VIEWS,Yl=ml.TYPED_ARRAY_TAG,Wl=ml.TypedArray,zl=ml.TypedArrayPrototype,Xl=ml.aTypedArrayConstructor,Ql=ml.isTypedArray,Jl="BYTES_PER_ELEMENT",Zl="Wrong length",ed=function(e,c){for(var t=0,a=c.length,r=new(Xl(e))(a);a>t;)r[t]=c[t++];return r},cd=function(e,c){$l(e,c,{get:function(){return Ul(this)[c]}})},td=function(e){var c;return e instanceof Vl||"ArrayBuffer"==(c=Il(e))||"SharedArrayBuffer"==c},ad=function(e,c){return Ql(e)&&"symbol"!=typeof c&&c in e&&String(+c)==String(c)},rd=function(e,c){return ad(e,c=Al(c,!0))?El(2,e[c]):jl(e,c)},id=function(e,c,t){return!(ad(e,c=Al(c,!0))&&wl(t)&&Ll(t,"value"))||Ll(t,"get")||Ll(t,"set")||t.configurable||Ll(t,"writable")&&!t.writable||Ll(t,"enumerable")&&!t.enumerable?$l(e,c,t):(e[c]=t.value,e)};pl?(ql||(Fl.f=rd,Ml.f=id,cd(zl,"buffer"),cd(zl,"byteOffset"),cd(zl,"byteLength"),cd(zl,"length")),hl({target:"Object",stat:!0,forced:!ql},{getOwnPropertyDescriptor:rd,defineProperty:id}),oo.exports=function(e,c,t){var a=e.match(/\d+$/)[0]/8,r=e+(t?"Clamped":"")+"Array",i="get"+e,n="set"+e,f=bl[r],s=f,o=s&&s.prototype,l={},d=function(e,c){$l(e,c,{get:function(){return e=c,(t=Ul(this)).view[i](e*a+t.byteOffset,!0);var e,t},set:function(e){return r=c,i=e,f=Ul(this),t&&(i=(i=Gl(i))<0?0:i>255?255:255&i),void f.view[n](r*a+f.byteOffset,i,!0);var r,i,f},enumerable:!0})};ql?gl&&(s=c((function(e,c,t,i){return yl(e,s,r),Nl(wl(c)?td(c)?void 0!==i?new f(c,kl(t,a),i):void 0!==t?new f(c,kl(t,a)):new f(c):Ql(c)?ed(s,c):Pl.call(s,c):new f(Tl(c)),e,s)})),Dl&&Dl(s,Wl),Cl(xl(f),(function(e){e in s||Sl(s,e,f[e])})),s.prototype=o):(s=c((function(e,c,t,i){yl(e,s,r);var n,f,o,l=0,u=0;if(wl(c)){if(!td(c))return Ql(c)?ed(s,c):Pl.call(s,c);n=c,u=kl(t,a);var h=c.byteLength;if(void 0===i){if(h%a)throw Kl(Zl);if((f=h-u)<0)throw Kl(Zl)}else if((f=_l(i)*a)+u>h)throw Kl(Zl);o=f/a}else o=Tl(c),n=new Vl(f=o*a);for(Bl(e,{buffer:n,byteOffset:u,byteLength:f,length:o,view:new Hl(n)});l<o;)d(e,l++)})),Dl&&Dl(s,Wl),o=s.prototype=Rl(zl)),o.constructor!==s&&Sl(o,"constructor",s),Yl&&Sl(o,Yl,r),l[r]=s,hl({global:!0,forced:s!=f,sham:!ql},l),Jl in s||Sl(s,Jl,a),Jl in o||Sl(o,Jl,a),Ol(r)}):oo.exports=function(){};var nd=oo.exports;nd("Uint8",(function(e){return function(c,t,a){return e(this,c,t,a)}})),nd("Uint16",(function(e){return function(c,t,a){return e(this,c,t,a)}}));var fd=L,sd=uc,od=sc,ld=Math.min,dd=[].copyWithin||function(e,c){var t=fd(this),a=od(t.length),r=sd(e,a),i=sd(c,a),n=arguments.length>2?arguments[2]:void 0,f=ld((void 0===n?a:sd(n,a))-i,a-r),s=1;for(i<r&&r<i+f&&(s=-1,i+=f-1,r+=f-1);f-- >0;)i in t?t[r]=t[i]:delete t[r],r+=s,i+=s;return t},ud=dd,hd=Bo.aTypedArray;(0,Bo.exportTypedArrayMethod)("copyWithin",(function(e,c){return ud.call(hd(this),e,c,arguments.length>2?arguments[2]:void 0)}));var bd=ol.every,pd=Bo.aTypedArray;(0,Bo.exportTypedArrayMethod)("every",(function(e){return bd(pd(this),e,arguments.length>1?arguments[1]:void 0)}));var gd=Zr,md=Bo.aTypedArray;(0,Bo.exportTypedArrayMethod)("fill",(function(e){return gd.apply(md(this),arguments)}));var vd=Bo.aTypedArrayConstructor,yd=Hn,Ed=ol.filter,Sd=function(e,c){for(var t=yd(e,e.constructor),a=0,r=c.length,i=new(vd(t))(r);r>a;)i[a]=c[a++];return i},_d=Bo.aTypedArray;(0,Bo.exportTypedArrayMethod)("filter",(function(e){var c=Ed(_d(this),e,arguments.length>1?arguments[1]:void 0);return Sd(this,c)}));var Td=ol.find,kd=Bo.aTypedArray;(0,Bo.exportTypedArrayMethod)("find",(function(e){return Td(kd(this),e,arguments.length>1?arguments[1]:void 0)}));var Ad=ol.findIndex,Ld=Bo.aTypedArray;(0,Bo.exportTypedArrayMethod)("findIndex",(function(e){return Ad(Ld(this),e,arguments.length>1?arguments[1]:void 0)}));var Id=ol.forEach,wd=Bo.aTypedArray;(0,Bo.exportTypedArrayMethod)("forEach",(function(e){Id(wd(this),e,arguments.length>1?arguments[1]:void 0)}));var Rd=mc.includes,Dd=Bo.aTypedArray;(0,Bo.exportTypedArrayMethod)("includes",(function(e){return Rd(Dd(this),e,arguments.length>1?arguments[1]:void 0)}));var xd=mc.indexOf,Pd=Bo.aTypedArray;(0,Bo.exportTypedArrayMethod)("indexOf",(function(e){return xd(Pd(this),e,arguments.length>1?arguments[1]:void 0)}));var Cd=r,Od=Bo,Md=Nr,Fd=Ut("iterator"),Nd=Cd.Uint8Array,Ud=Md.values,Bd=Md.keys,$d=Md.entries,jd=Od.aTypedArray,Gd=Od.exportTypedArrayMethod,Kd=Nd&&Nd.prototype[Fd],Vd=!!Kd&&("values"==Kd.name||null==Kd.name),Hd=function(){return Ud.call(jd(this))};Gd("entries",(function(){return $d.call(jd(this))})),Gd("keys",(function(){return Bd.call(jd(this))})),Gd("values",Hd,!Vd),Gd(Fd,Hd,!Vd);var qd=Bo.aTypedArray,Yd=[].join;(0,Bo.exportTypedArrayMethod)("join",(function(e){return Yd.apply(qd(this),arguments)}));var Wd=n,zd=function(e,c){var t=[][e];return!!t&&Wd((function(){t.call(null,c||function(){throw 1},1)}))},Xd=S,Qd=ic,Jd=sc,Zd=zd,eu=Math.min,cu=[].lastIndexOf,tu=!!cu&&1/[1].lastIndexOf(1,-0)<0,au=Zd("lastIndexOf"),ru=tu||!au?function(e){if(tu)return cu.apply(this,arguments)||0;var c=Xd(this),t=Jd(c.length),a=t-1;for(arguments.length>1&&(a=eu(a,Qd(arguments[1]))),a<0&&(a=t+a);a>=0;a--)if(a in c&&c[a]===e)return a||0;return-1}:cu,iu=ru,nu=Bo.aTypedArray;(0,Bo.exportTypedArrayMethod)("lastIndexOf",(function(e){return iu.apply(nu(this),arguments)}));var fu=ol.map,su=Hn,ou=Bo.aTypedArray,lu=Bo.aTypedArrayConstructor;(0,Bo.exportTypedArrayMethod)("map",(function(e){return fu(ou(this),e,arguments.length>1?arguments[1]:void 0,(function(e,c){return new(lu(su(e,e.constructor)))(c)}))}));var du=bn,uu=L,hu=m,bu=sc,pu=function(e){return function(c,t,a,r){du(t);var i=uu(c),n=hu(i),f=bu(i.length),s=e?f-1:0,o=e?-1:1;if(a<2)for(;;){if(s in n){r=n[s],s+=o;break}if(s+=o,e?s<0:f<=s)throw TypeError("Reduce of empty array with no initial value")}for(;e?s>=0:f>s;s+=o)s in n&&(r=t(r,n[s],s,i));return r}},gu={left:pu(!1),right:pu(!0)},mu=gu.left,vu=Bo.aTypedArray;(0,Bo.exportTypedArrayMethod)("reduce",(function(e){return mu(vu(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var yu=gu.right,Eu=Bo.aTypedArray;(0,Bo.exportTypedArrayMethod)("reduceRight",(function(e){return yu(Eu(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var Su=Bo.aTypedArray,_u=Bo.exportTypedArrayMethod,Tu=Math.floor;_u("reverse",(function(){for(var e,c=this,t=Su(c).length,a=Tu(t/2),r=0;r<a;)e=c[r],c[r++]=c[--t],c[t]=e;return c}));var ku=sc,Au=zo,Lu=L,Iu=Bo.aTypedArray;(0,Bo.exportTypedArrayMethod)("set",(function(e){Iu(this);var c=Au(arguments.length>1?arguments[1]:void 0,1),t=this.length,a=Lu(e),r=ku(a.length),i=0;if(r+c>t)throw RangeError("Wrong length");for(;i<r;)this[c+i]=a[i++]}),n((function(){new Int8Array(1).set({})})));var wu=Hn,Ru=Bo.aTypedArray,Du=Bo.aTypedArrayConstructor,xu=[].slice;(0,Bo.exportTypedArrayMethod)("slice",(function(e,c){for(var t=xu.call(Ru(this),e,c),a=wu(this,this.constructor),r=0,i=t.length,n=new(Du(a))(i);i>r;)n[r]=t[r++];return n}),n((function(){new Int8Array(1).slice()})));var Pu=ol.some,Cu=Bo.aTypedArray;(0,Bo.exportTypedArrayMethod)("some",(function(e){return Pu(Cu(this),e,arguments.length>1?arguments[1]:void 0)}));var Ou=Bo.aTypedArray,Mu=[].sort;(0,Bo.exportTypedArrayMethod)("sort",(function(e){return Mu.call(Ou(this),e)}));var Fu=sc,Nu=uc,Uu=Hn,Bu=Bo.aTypedArray;(0,Bo.exportTypedArrayMethod)("subarray",(function(e,c){var t=Bu(this),a=t.length,r=Nu(e,a);return new(Uu(t,t.constructor))(t.buffer,t.byteOffset+r*t.BYTES_PER_ELEMENT,Fu((void 0===c?a:Nu(c,a))-r))}));var $u=Bo,ju=n,Gu=r.Int8Array,Ku=$u.aTypedArray,Vu=$u.exportTypedArrayMethod,Hu=[].toLocaleString,qu=[].slice,Yu=!!Gu&&ju((function(){Hu.call(new Gu(1))}));Vu("toLocaleString",(function(){return Hu.apply(Yu?qu.call(Ku(this)):Ku(this),arguments)}),ju((function(){return[1,2].toLocaleString()!=new Gu([1,2]).toLocaleString()}))||!ju((function(){Gu.prototype.toLocaleString.call([1,2])})));var Wu=Bo.exportTypedArrayMethod,zu=n,Xu=r.Uint8Array,Qu=Xu&&Xu.prototype||{},Ju=[].toString,Zu=[].join;zu((function(){Ju.call({})}))&&(Ju=function(){return Zu.call(this)});var eh=Qu.toString!=Ju;Wu("toString",Ju,eh);var ch={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},th=ol.forEach,ah=zd("forEach")?[].forEach:function(e){return th(this,e,arguments.length>1?arguments[1]:void 0)},rh=r,ih=ch,nh=ah,fh=ee;for(var sh in ih){var oh=rh[sh],lh=oh&&oh.prototype;if(lh&&lh.forEach!==nh)try{fh(lh,"forEach",nh)}catch(ay){lh.forEach=nh}}var dh=r,uh=ch,hh=Nr,bh=ee,ph=Ut,gh=ph("iterator"),mh=ph("toStringTag"),vh=hh.values;for(var yh in uh){var Eh=dh[yh],Sh=Eh&&Eh.prototype;if(Sh){if(Sh[gh]!==vh)try{bh(Sh,gh,vh)}catch(ay){Sh[gh]=vh}if(Sh[mh]||bh(Sh,mh,yh),uh[yh])for(var _h in hh)if(Sh[_h]!==hh[_h])try{bh(Sh,_h,hh[_h])}catch(ay){Sh[_h]=hh[_h]}}}var Th={exports:{}};!function(e){var c=Object.prototype.hasOwnProperty,t="~";function a(){}function r(e,c,t){this.fn=e,this.context=c,this.once=t||!1}function i(e,c,a,i,n){if("function"!=typeof a)throw new TypeError("The listener must be a function");var f=new r(a,i||e,n),s=t?t+c:c;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],f]:e._events[s].push(f):(e._events[s]=f,e._eventsCount++),e}function n(e,c){0==--e._eventsCount?e._events=new a:delete e._events[c]}function f(){this._events=new a,this._eventsCount=0}Object.create&&(a.prototype=Object.create(null),(new a).__proto__||(t=!1)),f.prototype.eventNames=function(){var e,a,r=[];if(0===this._eventsCount)return r;for(a in e=this._events)c.call(e,a)&&r.push(t?a.slice(1):a);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(e)):r},f.prototype.listeners=function(e){var c=t?t+e:e,a=this._events[c];if(!a)return[];if(a.fn)return[a.fn];for(var r=0,i=a.length,n=new Array(i);r<i;r++)n[r]=a[r].fn;return n},f.prototype.listenerCount=function(e){var c=t?t+e:e,a=this._events[c];return a?a.fn?1:a.length:0},f.prototype.emit=function(e,c,a,r,i,n){var f=t?t+e:e;if(!this._events[f])return!1;var s,o,l=this._events[f],d=arguments.length;if(l.fn){switch(l.once&&this.removeListener(e,l.fn,void 0,!0),d){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,c),!0;case 3:return l.fn.call(l.context,c,a),!0;case 4:return l.fn.call(l.context,c,a,r),!0;case 5:return l.fn.call(l.context,c,a,r,i),!0;case 6:return l.fn.call(l.context,c,a,r,i,n),!0}for(o=1,s=new Array(d-1);o<d;o++)s[o-1]=arguments[o];l.fn.apply(l.context,s)}else{var u,h=l.length;for(o=0;o<h;o++)switch(l[o].once&&this.removeListener(e,l[o].fn,void 0,!0),d){case 1:l[o].fn.call(l[o].context);break;case 2:l[o].fn.call(l[o].context,c);break;case 3:l[o].fn.call(l[o].context,c,a);break;case 4:l[o].fn.call(l[o].context,c,a,r);break;default:if(!s)for(u=1,s=new Array(d-1);u<d;u++)s[u-1]=arguments[u];l[o].fn.apply(l[o].context,s)}}return!0},f.prototype.on=function(e,c,t){return i(this,e,c,t,!1)},f.prototype.once=function(e,c,t){return i(this,e,c,t,!0)},f.prototype.removeListener=function(e,c,a,r){var i=t?t+e:e;if(!this._events[i])return this;if(!c)return n(this,i),this;var f=this._events[i];if(f.fn)f.fn!==c||r&&!f.once||a&&f.context!==a||n(this,i);else{for(var s=0,o=[],l=f.length;s<l;s++)(f[s].fn!==c||r&&!f[s].once||a&&f[s].context!==a)&&o.push(f[s]);o.length?this._events[i]=1===o.length?o[0]:o:n(this,i)}return this},f.prototype.removeAllListeners=function(e){var c;return e?(c=t?t+e:e,this._events[c]&&n(this,c)):(this._events=new a,this._eventsCount=0),this},f.prototype.off=f.prototype.removeListener,f.prototype.addListener=f.prototype.on,f.prefixed=t,f.EventEmitter=f,e.exports=f}(Th);var kh=t(Th.exports),Ah=Xc,Lh=S,Ih=[].join,wh=m!=Object,Rh=zd("join",",");Ah({target:"Array",proto:!0,forced:wh||!Rh},{join:function(e){return Ih.call(Lh(this),void 0===e?",":e)}});var Dh=ol.map;Xc({target:"Array",proto:!0,forced:!qt("map")},{map:function(e){return Dh(this,e,arguments.length>1?arguments[1]:void 0)}});var xh=Xc,Ph=_,Ch=pt,Oh=uc,Mh=sc,Fh=S,Nh=yt,Uh=Ut,Bh=qt("slice"),$h=Uh("species"),jh=[].slice,Gh=Math.max;xh({target:"Array",proto:!0,forced:!Bh},{slice:function(e,c){var t,a,r,i=Fh(this),n=Mh(i.length),f=Oh(e,n),s=Oh(void 0===c?n:c,n);if(Ch(i)&&("function"!=typeof(t=i.constructor)||t!==Array&&!Ch(t.prototype)?Ph(t)&&null===(t=t[$h])&&(t=void 0):t=void 0,t===Array||void 0===t))return jh.call(i,f,s);for(a=new(void 0===t?Array:t)(Gh(s-f,0)),r=0;f<s;f++,r++)f in i&&Nh(a,r,i[f]);return a.length=r,a}});var Kh=v,Vh="[\t\n\v\f\r                 \u2028\u2029\ufeff]",Hh=RegExp("^"+Vh+Vh+"*"),qh=RegExp(Vh+Vh+"*$"),Yh=function(e){return function(c){var t=String(Kh(c));return 1&e&&(t=t.replace(Hh,"")),2&e&&(t=t.replace(qh,"")),t}},Wh={start:Yh(1),end:Yh(2),trim:Yh(3)},zh=f,Xh=r,Qh=Gc,Jh=Xe,Zh=R,eb=b,cb=ul,tb=k,ab=n,rb=Da,ib=tc.f,nb=i.f,fb=V.f,sb=Wh.trim,ob="Number",lb=Xh[ob],db=lb.prototype,ub=eb(rb(db))==ob,hb=function(e){var c,t,a,r,i,n,f,s,o=tb(e,!1);if("string"==typeof o&&o.length>2)if(43===(c=(o=sb(o)).charCodeAt(0))||45===c){if(88===(t=o.charCodeAt(2))||120===t)return NaN}else if(48===c){switch(o.charCodeAt(1)){case 66:case 98:a=2,r=49;break;case 79:case 111:a=8,r=55;break;default:return+o}for(n=(i=o.slice(2)).length,f=0;f<n;f++)if((s=i.charCodeAt(f))<48||s>r)return NaN;return parseInt(i,a)}return+o};if(Qh(ob,!lb(" 0o1")||!lb("0b1")||lb("+0x1"))){for(var bb,pb=function(e){var c=arguments.length<1?0:e,t=this;return t instanceof pb&&(ub?ab((function(){db.valueOf.call(t)})):eb(t)!=ob)?cb(new lb(hb(c)),t,pb):hb(c)},gb=zh?ib(lb):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),mb=0;gb.length>mb;mb++)Zh(lb,bb=gb[mb])&&!Zh(pb,bb)&&fb(pb,bb,nb(lb,bb));pb.prototype=db,db.constructor=pb,Jh(Xh,ob,pb)}var vb={},yb=n;function Eb(e,c){return RegExp(e,c)}vb.UNSUPPORTED_Y=yb((function(){var e=Eb("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),vb.BROKEN_CARET=yb((function(){var e=Eb("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));var Sb,_b,Tb=Js,kb=vb,Ab=ye,Lb=RegExp.prototype.exec,Ib=Ab("native-string-replace",String.prototype.replace),wb=Lb,Rb=(Sb=/a/,_b=/b*/g,Lb.call(Sb,"a"),Lb.call(_b,"a"),0!==Sb.lastIndex||0!==_b.lastIndex),Db=kb.UNSUPPORTED_Y||kb.BROKEN_CARET,xb=void 0!==/()??/.exec("")[1];(Rb||xb||Db)&&(wb=function(e){var c,t,a,r,i=this,n=Db&&i.sticky,f=Tb.call(i),s=i.source,o=0,l=e;return n&&(-1===(f=f.replace("y","")).indexOf("g")&&(f+="g"),l=String(e).slice(i.lastIndex),i.lastIndex>0&&(!i.multiline||i.multiline&&"\n"!==e[i.lastIndex-1])&&(s="(?: "+s+")",l=" "+l,o++),t=new RegExp("^(?:"+s+")",f)),xb&&(t=new RegExp("^"+s+"$(?!\\s)",f)),Rb&&(c=i.lastIndex),a=Lb.call(n?t:i,l),n?a?(a.input=a.input.slice(o),a[0]=a[0].slice(o),a.index=i.lastIndex,i.lastIndex+=a[0].length):i.lastIndex=0:Rb&&a&&(i.lastIndex=i.global?a.index+a[0].length:c),xb&&a&&a.length>1&&Ib.call(a[0],t,(function(){for(r=1;r<arguments.length-2;r++)void 0===arguments[r]&&(a[r]=void 0)})),a});var Pb=wb;Xc({target:"RegExp",proto:!0,forced:/./.exec!==Pb},{exec:Pb});var Cb=Xe,Ob=Pb,Mb=n,Fb=Ut,Nb=ee,Ub=Fb("species"),Bb=RegExp.prototype,$b=!Mb((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")})),jb="$0"==="a".replace(/./,"$0"),Gb=Fb("replace"),Kb=!!/./[Gb]&&""===/./[Gb]("a","$0"),Vb=!Mb((function(){var e=/(?:)/,c=e.exec;e.exec=function(){return c.apply(this,arguments)};var t="ab".split(e);return 2!==t.length||"a"!==t[0]||"b"!==t[1]})),Hb=function(e,c,t,a){var r=Fb(e),i=!Mb((function(){var c={};return c[r]=function(){return 7},7!=""[e](c)})),n=i&&!Mb((function(){var c=!1,t=/a/;return"split"===e&&((t={}).constructor={},t.constructor[Ub]=function(){return t},t.flags="",t[r]=/./[r]),t.exec=function(){return c=!0,null},t[r](""),!c}));if(!i||!n||"replace"===e&&(!$b||!jb||Kb)||"split"===e&&!Vb){var f=/./[r],s=t(r,""[e],(function(e,c,t,a,r){var n=c.exec;return n===Ob||n===Bb.exec?i&&!r?{done:!0,value:f.call(c,t,a)}:{done:!0,value:e.call(t,c,a)}:{done:!1}}),{REPLACE_KEEPS_$0:jb,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:Kb}),o=s[0],l=s[1];Cb(String.prototype,e,o),Cb(Bb,r,2==c?function(e,c){return l.call(e,this,c)}:function(e){return l.call(e,this)})}a&&Nb(Bb[r],"sham",!0)},qb=ic,Yb=v,Wb=function(e){return function(c,t){var a,r,i=String(Yb(c)),n=qb(t),f=i.length;return n<0||n>=f?e?"":void 0:(a=i.charCodeAt(n))<55296||a>56319||n+1===f||(r=i.charCodeAt(n+1))<56320||r>57343?e?i.charAt(n):a:e?i.slice(n,n+2):r-56320+(a-55296<<10)+65536}},zb={codeAt:Wb(!1),charAt:Wb(!0)},Xb=zb.charAt,Qb=function(e,c,t){return c+(t?Xb(e,c).length:1)},Jb=b,Zb=Pb,ep=function(e,c){var t=e.exec;if("function"==typeof t){var a=t.call(e,c);if("object"!=typeof a)throw TypeError("RegExp exec method returned something other than an Object or null");return a}if("RegExp"!==Jb(e))throw TypeError("RegExp#exec called on incompatible receiver");return Zb.call(e,c)},cp=q,tp=sc,ap=v,rp=Qb,ip=ep;Hb("match",1,(function(e,c,t){return[function(c){var t=ap(this),a=null==c?void 0:c[e];return void 0!==a?a.call(c,t):new RegExp(c)[e](String(t))},function(e){var a=t(c,e,this);if(a.done)return a.value;var r=cp(e),i=String(this);if(!r.global)return ip(r,i);var n=r.unicode;r.lastIndex=0;for(var f,s=[],o=0;null!==(f=ip(r,i));){var l=String(f[0]);s[o]=l,""===l&&(r.lastIndex=rp(i,tp(r.lastIndex),n)),o++}return 0===o?null:s}]}));var np=L,fp=Math.floor,sp="".replace,op=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,lp=/\$([$&'`]|\d{1,2})/g,dp=Hb,up=q,hp=sc,bp=ic,pp=v,gp=Qb,mp=function(e,c,t,a,r,i){var n=t+e.length,f=a.length,s=lp;return void 0!==r&&(r=np(r),s=op),sp.call(i,s,(function(i,s){var o;switch(s.charAt(0)){case"$":return"$";case"&":return e;case"`":return c.slice(0,t);case"'":return c.slice(n);case"<":o=r[s.slice(1,-1)];break;default:var l=+s;if(0===l)return i;if(l>f){var d=fp(l/10);return 0===d?i:d<=f?void 0===a[d-1]?s.charAt(1):a[d-1]+s.charAt(1):i}o=a[l-1]}return void 0===o?"":o}))},vp=ep,yp=Math.max,Ep=Math.min;dp("replace",2,(function(e,c,t,a){var r=a.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,i=a.REPLACE_KEEPS_$0,n=r?"$":"$0";return[function(t,a){var r=pp(this),i=null==t?void 0:t[e];return void 0!==i?i.call(t,r,a):c.call(String(r),t,a)},function(e,a){if(!r&&i||"string"==typeof a&&-1===a.indexOf(n)){var f=t(c,e,this,a);if(f.done)return f.value}var s=up(e),o=String(this),l="function"==typeof a;l||(a=String(a));var d=s.global;if(d){var u=s.unicode;s.lastIndex=0}for(var h=[];;){var b=vp(s,o);if(null===b)break;if(h.push(b),!d)break;""===String(b[0])&&(s.lastIndex=gp(o,hp(s.lastIndex),u))}for(var p,g="",m=0,v=0;v<h.length;v++){b=h[v];for(var y=String(b[0]),E=yp(Ep(bp(b.index),o.length),0),S=[],_=1;_<b.length;_++)S.push(void 0===(p=b[_])?p:String(p));var T=b.groups;if(l){var k=[y].concat(S,E,o);void 0!==T&&k.push(T);var A=String(a.apply(void 0,k))}else A=mp(y,o,E,S,T,a);E>=m&&(g+=o.slice(m,E)+A,m=E+y.length)}return g+o.slice(m)}]}));var Sp=Bo.aTypedArrayConstructor;(0,Bo.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,c=arguments.length,t=new(Sp(this))(c);c>e;)t[e]=arguments[e++];return t}),qo);var _p=function(e){var c=0;for(c=0;0!==e;c++)e&=e-1;return c};function Tp(e,c){return e^c}function kp(e,c,t){var a=e+_p(c)+t;return String.fromCharCode(255&a)}function Ap(e,c,t){var a=e-_p(c)-t;return String.fromCharCode(255&a)}function Lp(e){for(var c,t=e.length,a=0;a<t&&a!==t-1;a+=2)c=e[a],e[a]=e[a+1],e[a+1]=c;return e}function Ip(e,c){var t=85,a=250;Lp(e);for(var r=0;r<e.length;r++){var i=e[r].charCodeAt(0),n=0===c?kp:Ap;r%2==1?t=i=Tp(t,n(i+a,r,21).charCodeAt(0)):a=i=Tp(a,n(i+t,r,21).charCodeAt(0)),e[r]=String.fromCharCode(i)}return Lp(e),e}function wp(e,c){var t,a=function(e,c){var t,a=(e[0].charCodeAt(0)^e[1].charCodeAt(0)^e[2].charCodeAt(0))-"0".charCodeAt(0),r=c-a-1,i=new Array(a);for(t=a;t>0;t--)i[a-t]=String.fromCharCode(e[c-a-2].charCodeAt(0)^e[c-a-1].charCodeAt(0)^e[c-t].charCodeAt(0));return{convertKey:e.substring(1,r+1).split(""),convertLen:r,method:i.join(""),methodLen:a}}(e,c=c||e.length),r=a.convertKey,i=a.convertLen,n=a.method,f="11"===n||"appdevice"===n||"app_v2"===n?0:1;switch(n){case"11":case"22":case"appdevice":case"webdevice":r=function(e,c,t){for(var a,r=85,i=250,n=0;n<c;n++){var f=e[n].charCodeAt(0);n%2==1?(a=r^f,r=f):(a=i^f,i=f),e[n]=0===t?Ap(a,n,21):kp(a,n,21)}return e}(r,i,f);break;case"app_v2":case"web_v2":r=function(e,c,t){c=c||e.length;var a=85,r=250;Lp(e);for(var i=0;i<c;i++){var n=e[i].charCodeAt(0),f=void 0,s=void 0;i%2==1?(s=Tp(a,n),a=n,f=r):(s=Tp(r,n),r=n,f=a);var o=(0===t?Ap:kp)(s,i,21).charCodeAt(0)-f;o<0&&(o+=256),e[i]=String.fromCharCode(o)}return Lp(e),e}(r,i,f)}var s=i-((t=r[0])>="0"&&t<="9"?t.charCodeAt(0)-"0".charCodeAt(0):t>="a"&&t<="z"?t.charCodeAt(0)-"a".charCodeAt(0)+10:255)-1,o=new Array(s+1);o[s]="";var l=0;for(l=0;l<s;l++)o[l]=r[l+1];return o.join("")}var Rp=tt((function e(){var c,t;et(this,e);var a=new Promise((function(e,a){c=e,t=a}));return a.resolve=function(e){c(e),a.state="fulfilled"},a.reject=function(e){t(e),a.state="rejected",a.isBreak="DESTROYED"===e},a.state="pending",a}),[{key:"resolve",value:function(e){}},{key:"reject",value:function(e){}}]);function Dp(e){var c=e||{},t=c.url,a=c.method,r=void 0===a?"GET":a,i=c.type,n=void 0===i?"arraybuffer":i,f=c.data,s=void 0===f?{}:f;return new Promise((function(e,c){var a=new window.XMLHttpRequest,i=r.toUpperCase(),f=[];if(Object.keys(s).map((function(e){f.push("k=".concat(s[e]))})),"GET"===i){var o="";o=t.indexOf("?")<0?"".concat(t,"?").concat(f.join("&")):(null==f?void 0:f.length)>0?"".concat(t,"&").concat(f.join("&")):t,a.open(i,o),n&&(a.responseType=n),a.send()}else{if("POST"!==i)throw new Error("xhr ".concat(i," is not supported"));a.open(i,t,!0),n&&(a.responseType=n),a.setRequestHeader("Content-Type","application/json"),a.send(JSON.stringify(s))}a.onload=function(){200===a.status||206===a.status?e(a):c(a)},a.onerror=function(){c(a)}}))}var xp,Pp,Cp,Op,Mp,Fp,Np,Up,Bp=f,$p=V.f,jp=Function.prototype,Gp=jp.toString,Kp=/^\s*function ([^ (]*)/,Vp="name";function Hp(e){return qp.apply(this,arguments)}function qp(){return qp=Jc(ft().mark((function e(c){var t,a,r=arguments;return ft().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=!(r.length>1&&void 0!==r[1])||r[1],a=r.length>2&&void 0!==r[2]?r[2]:["encrypt","decrypt"],e.abrupt("return",new Promise((function(e,r){var i;"undefined"!=typeof crypto&&null!==(i=crypto)&&void 0!==i&&i.subtle?crypto.subtle.generateKey(c,t,a).then((function(c){e(c)})).catch((function(e){r(e)})):r(new Error(Pp.WebCryptoNotSupport.msg))})));case 3:case"end":return e.stop()}}),e)}))),qp.apply(this,arguments)}function Yp(){if("object"!==("undefined"==typeof crypto?"undefined":lt(crypto))||"[object crypto]"!==Object.prototype.toString.call(crypto).toLowerCase()||void 0===crypto.subtle)throw new Cp(Pp.WebCryptoNotSupport.code,Pp.WebCryptoNotSupport.msg);return!0}function Wp(e){for(var c=window.atob(e),t=new Uint8Array(c.length),a=0;a<c.length;a++)t[a]=c.charCodeAt(a);return t.buffer}function zp(e){return Xp.apply(this,arguments)}function Xp(){return(Xp=Jc(ft().mark((function e(c){var t,a,r,i,n;return ft().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=c.data,a=c.privateKey,r=Wp(t),Yp(),e.prev=3,e.next=6,crypto.subtle.decrypt({name:"RSA-OAEP"},a,r);case 6:i=e.sent,e.next=12;break;case 9:throw e.prev=9,e.t0=e.catch(3),new Cp(Pp.PrivateKeyDecryptFail.code,"".concat(Pp.PrivateKeyDecryptFail.msg,": ").concat((null===e.t0||void 0===e.t0?void 0:e.t0.message)||(null===e.t0||void 0===e.t0?void 0:e.t0.name)));case 12:return n=(new TextDecoder).decode(i),e.abrupt("return",n);case 14:case"end":return e.stop()}}),e,null,[[3,9]])})))).apply(this,arguments)}function Qp(e){for(var c="",t=0;t<e.length;t+=16e3){var a=e.subarray(t,t+16e3);c+=String.fromCharCode.apply(null,a)}return c}Bp&&!(Vp in jp)&&$p(jp,Vp,{configurable:!0,get:function(){try{return Gp.call(this).match(Kp)[1]}catch(ay){return""}}}),function(e,c,t){function a(e,c){var t=parseInt(e.slice(c,c+2),16);return t>>>7==0?[1,t]:t>>>6==2?(t=(63&t)<<8,[2,t+=parseInt(e.slice(c+2,c+4),16)]):(t=(63&t)<<16,[3,t+=parseInt(e.slice(c+2,c+6),16)])}var r,i=0,n=[],f=[];for(r=0;r<4;++r)i+=(3&parseInt(e.slice(8+2*r,10+2*r),16))<<2*r;var s=parseInt(e.slice(16,24),16),o=2*parseInt(e.slice(32,40),16);for(r=40;r<o+40;r+=2)n.push(parseInt(e.slice(r,r+2),16));var l=o+40,d=parseInt(e.slice(l,l+4),16);for(l+=4,r=0;r<d;++r){var u=a(e,l);l+=2*u[0];for(var h="",b=0;b<u[1];++b){var p=a(e,l);h+=String.fromCharCode(i^p[1]),l+=2*p[0]}f.push(h)}c.p=null,function e(c,t,a,r,i){var s,o,l,d,u,h=-1,b=[],p=[0,null],g=null,m=[t];for(o=Math.min(t.length,a),l=0;l<o;++l)m.push(t[l]);m.p=r;for(var v=[];;)try{switch(n[c++]){case 4:b[++h]=!1;break;case 21:b[++h]=null;break;case 42:s=n[c++],b[++h]=s<<24>>24;break;case 24:s=(n[c]<<8)+n[c+1],c+=2,b[++h]=s<<16>>16;break;case 46:s=((s=((s=n[c++])<<8)+n[c++])<<8)+n[c++],b[++h]=(s<<8)+n[c++];break;case 58:s=(n[c]<<8)+n[c+1],c+=2,b[++h]=f[s];break;case 6:b[++h]=void 0;break;case 53:b[++h]=i;break;case 68:s=(n[c]<<8)+n[c+1],c+=2,h=h-s+1,o=b.slice(h,h+s),b[h]=o;break;case 20:b[++h]={};break;case 54:s=(n[c]<<8)+n[c+1],c+=2,o=f[s],l=b[h--],b[h][o]=l;break;case 48:for(o=n[c++],l=n[c++],d=m;o>0;--o)d=d.p;b[++h]=d[l];break;case 30:s=(n[c]<<8)+n[c+1],c+=2,o=f[s],b[h]=b[h][o];break;case 74:o=b[h--],b[h]=b[h][o];break;case 56:for(o=n[c++],l=n[c++],d=m;o>0;--o)d=d.p;d[l]=b[h--];break;case 50:s=(n[c]<<8)+n[c+1],c+=2,o=f[s],l=b[h--],d=b[h--],l[o]=d;break;case 27:o=b[h--],l=b[h--],d=b[h--],l[o]=d;break;case 75:for(o=n[c++],l=n[c++],d=m,d=m;o>0;--o)d=d.p;b[++h]=d,b[++h]=l;break;case 76:o=b[h--],b[h]-=o;break;case 67:o=b[h--],d=(l=b[h--])[o]++,b[++h]=d;break;case 66:o=b[h--],b[h]=b[h]===o;break;case 71:o=b[h--],b[h]=b[h]<o;break;case 19:o=b[h--],b[h]=b[h]>o;break;case 41:b[h]=!b[h];break;case 69:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,b[h]?--h:c+=s;break;case 8:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,b[h]?c+=s:--h;break;case 35:o=b[h--],(l=b[h--])[o]=b[h];break;case 62:o=b[h--],b[h]=b[h]instanceof o;break;case 60:b[h]=void 0;break;case 15:b[h]=typeof b[h];break;case 12:s=n[c++],o=b[h--],(l=function e(){var c=e._v;return(0,e._u)(c[0],arguments,c[1],c[2],this)})._v=[o,s,m],l._u=e,b[++h]=l;break;case 65:s=n[c++],o=b[h--],(d=[l=function e(){var c=e._v;return(0,e._u)(c[0],arguments,c[1],c[2],this)}]).p=m,l._v=[o,s,d],l._u=e,b[++h]=l;break;case 9:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,(o=v[v.length-1])[1]=c+s;break;case 37:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,(o=v[v.length-1])&&!o[1]?(o[0]=3,o.push(c)):v.push([1,0,c]),c+=s;break;case 49:throw o=b[h--];case 26:if(l=(o=v.pop())[0],d=p[0],1===l)c=o[1];else if(0===l)if(0===d)c=o[1];else{if(1!==d)throw p[1];if(!g)return p[1];c=g[1],i=g[2],m=g[3],v=g[4],b[++h]=p[1],p=[0,null],g=g[0]}else c=o[2],o[0]=0,v.push(o);break;case 13:for(o=b[h--],l=null;d=v.pop();)if(2===d[0]||3===d[0]){l=d;break}if(l)p=[1,o],c=l[2],l[0]=0,v.push(l);else{if(!g)return o;c=g[1],i=g[2],m=g[3],v=g[4],b[++h]=o,p=[0,null],g=g[0]}break;case 36:h-=s=n[c++],l=b.slice(h+1,h+s+1),o=b[h--],d=b[h--],o._u===e?(o=o._v,g=[g,c,i,m,v],c=o[0],null==d&&(d=function(){return this}()),i=d,(m=[l].concat(l)).length=Math.min(o[1],s)+1,m.p=o[2],v=[]):(u=o.apply(d,l),b[++h]=u);break;case 61:for(s=n[c++],d=[void 0],u=s;u>0;--u)d[u]=b[h--];l=b[h--],u=new(o=Function.bind.apply(l,d)),b[++h]=u;break;case 63:c+=2+(s=(s=(n[c]<<8)+n[c+1])<<16>>16);break;case 51:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,(o=b[h--])||(c+=s);break;case 10:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,o=b[h--],b[h]===o&&(--h,c+=s);break;case 18:--h;break;case 70:o=b[h],b[++h]=o;break;default:throw new Error("ioe")}}catch(y){for(p=[0,null];(s=v.pop())&&!s[0];);if(!s){e:for(;g;){for(o=g[4];s=o.pop();)if(s[0])break e;g=g[0]}if(!g)throw y;c=g[1],i=g[2],m=g[3],v=g[4],g=g[0]}1===(o=s[0])?(c=s[2],s[0]=0,v.push(s),b[++h]=y):2===o?(c=s[2],s[0]=0,v.push(s),p=[3,y]):(c=s[3],s[0]=2,v.push(s),b[++h]=y)}}(s,[],0,c,t)}("504B01016a0a998e0000055c8c990b6a000005f63a00003000013a00011b3a00023000013a00031b3a00043000013a00051b3000010d2e000000430c023800021530020c3000023000012402121530020f30000224010d1530030e353001022402121530030d3530010230000244000124033800033000013000033200063000030d3002113d0038000415300212143a000c36000d3a000e36000f300003360010143a00113600123a001336001414300001360015440000461e001630000224013600174400013600183600192401461e001a2e000000da0c012401461e00242e0000015e0c002401123000040d30000115420800073000012a003c423300062a003c3f00063000011e001b3800023000020f3a001c4233000f300301461e001d30000224013800023000023300213000021e001e3001014a3001024a380003300104461e001f3000032401123f00201530031b3a00203001013a00213001023a0022240512300104461e0023240012060d1530031b3a00203001013a00213001023a0024240512300104461e0023240012060d300102461e00253530000024020d1530020a153002082400461e00262e000001b8410624012401380102300102461e00253530000024020d153004082400461e00272e000001cf410130010024020d2a013301683000011e00283000013a0029232a000a00322a050a00802a080a008f2a090a00932a0c0a00b92a0d0a00bd2a0f0a00d22a160a01162a170a01213a002a0a011b123f01213002010800033a002b38020130020233000b2a093000013200283f01043002014500033002034500033002042933000b2a083000013200283f00e62a053000013200281530061730020130020330020424030d3000011e002c3802022a093000013200283f00ba3006003a002d3d01313002053a0004422933000b2a0d3000013200283f009b2a0c3000013200281530061930020230020624020d3000011e002c38020230020233000b2a0f3000013200283f006c3006003a002e3d01311530061015300602300202240124013802073002032933000b2a163000013200283f003f141436002f3802083002073002081e002f3002031b300001461e00303a003130020824020d300001461e00303a003130020724020d300001461e003224000d3ffe93060d300103461e00253530000024020d1530020a153002082400461e00262e00000376410224012401380103300103461e00253530000024020d153004082400461e00272e0000038d410130010024020d2a0133009a3000011e00283000013a0029232a000a00192a020a003e2a040a00582a060a006c3a002a0a0066123f006c30020129080004300202292933000b2a023000013200283f0052300001461e00303a003130020124020d2a0430000132002815300613143002013600193002021e003336003324010d3000011e002c380201300001461e00303a003130020124020d300001461e003224000d3fff61060d2500043800021a0900743002030f3a0034423300063a00343f00091530020930020324013a00354245000b3002031e00360f3a0037423300443002031e0038300204461e00392a002a612a732a6d2a012a002a002a0024083d013800013000013002031e00383e3300133002031e003a3000013d013002031e003a3e0d1a040d30010115423300222500043800061a09001830020545000e300205461e003b3a003c240129293801011a3000001e003d3800033002063000032a01133300093000032a014c3f00022a003d013800042a01380005300005300003473300193000003000054a3000043000052a014c1b4b000543123fffdd3001014500063002071e003e4500253002074b0002231e003e461e00253000023a003f300001440002461e00163000042401240212060d2e0000006e0c033801172e000001800c063801182e0000018e0c003800022e0000033e0c023801192e0000034c0c003800032e0000042e0c0038011a2e000004ae0c0138011b15380001152e000000000c013001140800011424013801141414181c213600063a000736000836000914181c223600063a000a36000836000b380115152e000000220c011530010b30010024012401380116060d00401080e980ee80fb80f480fe80fb80e880fe80c580ff80f480f980e880e380ea80ee1080c980ce80db80d480de80db80c880de80c580df80d480d980c880c380ca80ce0f80ea80e880f380ec80fb80ee80ff80c580ff80f480f980e880e380ea80ee0f80ca80c880d380cc80db80ce80df80c580df80d480d980c880c380ca80ce1780ea80e880f380ec80fb80ee80ff80c580ff80f480f980e880e380ea80ee80c580ef80ea80fd80e880fb80fe80ff1780ca80c880d380cc80db80ce80df80c580df80d480d980c880c380ca80ce80c580cf80ca80dd80c880db80de80df0480f980f580fe80ff2580cd80ff80f880ba80f980e880e380ea80ee80f580fd80e880fb80ea80f280e380ba80db80ca80d380ba80f380e980ba80f480f580ee80ba80e980ef80ea80ea80f580e880ee80ff80fe0380f780e980fd1380cd80ff80f880d980e880e380ea80ee80f580d480f580ee80c980ef80ea80ea80f580e880ee1d80de80ff80f980e880e380ea80ee80f380f580f480ba80f880e380ba80c880c980db80b780d580db80df80ca80ba80fc80fb80f380f680ff80fe1580ca80e880f380ec80fb80ee80ff80d180ff80e380de80ff80f980e880e380ea80ee80dc80fb80f380f60480f080e980f580f40480ee80e380ea80ff0480ca80d580c980ce0680f780ff80ee80f280f580fe0380ef80e880f60280a880a80880fe80e880f780c580ee80e380ea80ff0380a880b480aa0780ec80ff80e880e980f380f580f40380ec80f380fe0680f980f580f480f980fb80ee0480f180f380fe80e90f80f680f380f980ff80f480e980ff80c580e880ff80eb80ef80ff80e980ee0480fe80fb80ee80fb0480ee80f280ff80f40880e880ff80e980ea80f580f480e980ff0680e980ee80e880f380f480fd0580ea80fb80e880e980ff0d80ea80f680fb80e380c580f680f380f980ff80f480e980ff80e90780e880ff80e980f580f680ec80ff1b80fd80ff80ee80c980ff80f980e880ff80ee80d180ff80e380d880e380d180f380fe80ba80ff80f480fe80b680ba80ec80f380fe80b60580b680ba80f180f380fe0d80e880ff80e980ea80f580f480e980ff80ba80f480ef80f680f60680e880ff80f080ff80f980ee0580f980fb80ee80f980f20580fb80ea80ea80f680e30480f780fb80e880f10480ed80e880fb80ea0480f480ff80e280ee0480ea80e880ff80ec0380ff80f480fe000480e980ff80f480ee3580e980f280f580ef80f680fe80ba80ea80e880f580ec80f380fe80ff80ba80e980ff80f980e880ff80ee80d180ff80e380ba80f580e880ba80ec80f380fe80b680ba80f180ff80e380d380fe80ba80fb80f480fe80ba80f680f380f980ff80f480e980ff80cf80e880f61880fd80ff80ee80d180ff80e380cc80fb80f680ef80ff80a080ba80e980f180ba80f380e980ba80ff80f780ea80ee80e30980f980f680ff80fb80e880d180ff80e380e90680fb80f880e880ef80ea80ee0680e880ff80ee80ef80e880f40480e980ee80f580ea0a80ea80e880f380ec80fb80ee80ff80d180ff80e30980ef80f480fe80ff80fc80f380f480ff80fe0680f580f880f080ff80f980ee0b80f380f480e980ee80fb80f480ee80f380fb80ee80ff0880fc80ef80f480f980ee80f380f580f40680d780f580fe80ef80f680ff0280f580fc0880d380f480e980ee80fb80f480f980ff0780fd80ff80ee80d380ee80ff80f70c80e980ff80f980e880ff80ee80f180ff80e380f680f580fd0680f680ff80f480fd80ee80f20380f680f580fd0d80c180c280dd80c980ff80f980e880ff80ee80f180ff80e380c7",{0:Error,1:JSON,get 2(){return atob},3:WebAssembly,4:Uint8Array,get 5(){return localStorage},6:Array,get 7(){return console},get 8(){return ft},get 9(){return lt},get 10(){return Jc},get 11(){return dt},get 12(){return it},get 13(){return Zc},get 14(){return et},get 15(){return tt},get 16(){return wp},get 17(){return Rp},get 18(){return Dp},get 19(){return zp},get 20(){return xp},set 20(e){xp=e},get 21(){return Pp},set 21(e){Pp=e},get 22(){return Cp},set 22(e){Cp=e},get 23(){return Op},set 23(e){Op=e},get 24(){return Mp},set 24(e){Mp=e},get 25(){return Fp},set 25(e){Fp=e},get 26(){return Np},set 26(e){Np=e},get 27(){return Up},set 27(e){Up=e}},void 0);var Jp,Zp,eg,cg,tg,ag,rg,ig,ng=(Jp="vodTimestampSalt",Zp=function(e){return e.split("").map((function(e){return e.charCodeAt(0)}))},eg=function(e){return"0".concat(Number(e).toString(16)).substr(-2)},cg=function(e){return Zp(Jp).reduce((function(e,c){return e^c}),e)},function(e){return e.split("").map(Zp).map(cg).map(eg).join("")}),fg=(rg="vodTimestampSalt",ig=function(e){return(c=rg,c.split("").map((function(e){return e.charCodeAt(0)}))).reduce((function(e,c){return e^c}),e);var c},function(e){return e.match(/.{1,2}/g).map((function(e){return parseInt(e,16)})).map(ig).map((function(e){return String.fromCharCode(e)})).join("")}),sg={str2hex:function(e){if(""===e)return"";for(var c=[],t=0;t<e.length;t++)c.push(e.charCodeAt(t));return c},Base64ToHex:function(e){var c=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=window.atob(e.replace(/-/g,"+").replace(/_/g,"/"));if(c){for(var a=[],r=0;r<t.length;r++)a.push(t.charCodeAt(r));return new Uint8Array(a).buffer}for(var i="",n=0;n<t.length;n++)i+="0".concat(t.charCodeAt(n).toString(16)).substr(-2);return i},checkUnionInfoExpired:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30;if(0===c.indexOf(e)){var a=parseInt(fg(c.slice(e.length))),r=(new Date).getTime()-a;if(r>0&&r<=1e3*t)return!0;Up("UnionInfo timestamp expire!!!")}else Up("unionID and UnionInfo not match!!!");return!1},getUnionInfo:function(){return"".concat(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").concat(ng((new Date).getTime().toString()))},StringToArrayBuffer:function(e){for(var c=new ArrayBuffer(e.length),t=new Uint8Array(c),a=0;a<e.length;a++)t[a]=e.charCodeAt(a);return c},ArrayBufferToString:function(e){var c=[];e=ArrayBuffer.isView(e)?e:new Uint8Array(e);for(var t,a=0;a<e.length;a++)t=e[a],c.push(String.fromCharCode(t));return c.join("")},isBase64:function(e){return/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/.test(e)},fromCharCode:Qp,fromHex:function(e){for(var c=new Uint8Array(e.length/2),t=0;t<e.length;t+=2)c[t/2]=window.parseInt(e.substr(t,2),16);return c},toUTF8:function(e){for(var c=encodeURIComponent(e),t=unescape(c),a=new Uint8Array(t.length),r=0;r<t.length;++r)a[r]=t.charCodeAt(r);return a.buffer},toBase64:function(e,c){var t=Qp(e);c=void 0===c||c;var a=window.btoa(t).replace(/\+/g,"-").replace(/\//g,"_");return c?a:a.replace(/=*$/,"")}};e.EVENT_EME=void 0,function(e,c,t){function a(e,c){var t=parseInt(e.slice(c,c+2),16);return t>>>7==0?[1,t]:t>>>6==2?(t=(63&t)<<8,[2,t+=parseInt(e.slice(c+2,c+4),16)]):(t=(63&t)<<16,[3,t+=parseInt(e.slice(c+2,c+6),16)])}var r,i=0,n=[],f=[];for(r=0;r<4;++r)i+=(3&parseInt(e.slice(8+2*r,10+2*r),16))<<2*r;var s=parseInt(e.slice(16,24),16),o=2*parseInt(e.slice(32,40),16);for(r=40;r<o+40;r+=2)n.push(parseInt(e.slice(r,r+2),16));var l=o+40,d=parseInt(e.slice(l,l+4),16);for(l+=4,r=0;r<d;++r){var u=a(e,l);l+=2*u[0];for(var h="",b=0;b<u[1];++b){var p=a(e,l);h+=String.fromCharCode(i^p[1]),l+=2*p[0]}f.push(h)}c.p=null,function e(c,t,a,r,i){var s,o,l,d,u,h=-1,b=[],p=null,g=[t];for(o=Math.min(t.length,a),l=0;l<o;++l)g.push(t[l]);g.p=r;for(var m=[];;)try{switch(n[c++]){case 4:b[++h]=!1;break;case 21:b[++h]=null;break;case 42:s=n[c++],b[++h]=s<<24>>24;break;case 24:s=(n[c]<<8)+n[c+1],c+=2,b[++h]=s<<16>>16;break;case 46:s=((s=((s=n[c++])<<8)+n[c++])<<8)+n[c++],b[++h]=(s<<8)+n[c++];break;case 58:s=(n[c]<<8)+n[c+1],c+=2,b[++h]=f[s];break;case 6:b[++h]=void 0;break;case 53:b[++h]=i;break;case 68:s=(n[c]<<8)+n[c+1],c+=2,h=h-s+1,o=b.slice(h,h+s),b[h]=o;break;case 20:b[++h]={};break;case 54:s=(n[c]<<8)+n[c+1],c+=2,o=f[s],l=b[h--],b[h][o]=l;break;case 48:for(o=n[c++],l=n[c++],d=g;o>0;--o)d=d.p;b[++h]=d[l];break;case 30:s=(n[c]<<8)+n[c+1],c+=2,o=f[s],b[h]=b[h][o];break;case 74:o=b[h--],b[h]=b[h][o];break;case 56:for(o=n[c++],l=n[c++],d=g;o>0;--o)d=d.p;d[l]=b[h--];break;case 50:s=(n[c]<<8)+n[c+1],c+=2,o=f[s],l=b[h--],d=b[h--],l[o]=d;break;case 27:o=b[h--],l=b[h--],d=b[h--],l[o]=d;break;case 75:for(o=n[c++],l=n[c++],d=g,d=g;o>0;--o)d=d.p;b[++h]=d,b[++h]=l;break;case 67:o=b[h--],d=(l=b[h--])[o]++,b[++h]=d;break;case 66:o=b[h--],b[h]=b[h]===o;break;case 44:o=b[h--],b[h]=b[h]!==o;break;case 41:b[h]=!b[h];break;case 69:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,b[h]?--h:c+=s;break;case 8:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,b[h]?c+=s:--h;break;case 35:o=b[h--],(l=b[h--])[o]=b[h];break;case 60:b[h]=void 0;break;case 43:o=b[h--],d=delete(l=b[h--])[o],b[++h]=d;break;case 12:s=n[c++],o=b[h--],(l=function e(){var c=e._v;return(0,e._u)(c[0],arguments,c[1],c[2],this)})._v=[o,s,g],l._u=e,b[++h]=l;break;case 65:s=n[c++],o=b[h--],(d=[l=function e(){var c=e._v;return(0,e._u)(c[0],arguments,c[1],c[2],this)}]).p=g,l._v=[o,s,d],l._u=e,b[++h]=l;break;case 49:throw o=b[h--];case 13:for(o=b[h--],l=null;d=m.pop();)if(2===d[0]||3===d[0]){l=d;break}if(l)c=l[2],l[0]=0,m.push(l);else{if(!p)return o;c=p[1],i=p[2],g=p[3],m=p[4],b[++h]=o,p=p[0]}break;case 36:h-=s=n[c++],l=b.slice(h+1,h+s+1),o=b[h--],d=b[h--],o._u===e?(o=o._v,p=[p,c,i,g,m],c=o[0],null==d&&(d=function(){return this}()),i=d,(g=[l].concat(l)).length=Math.min(o[1],s)+1,g.p=o[2],m=[]):(u=o.apply(d,l),b[++h]=u);break;case 61:for(s=n[c++],d=[void 0],u=s;u>0;--u)d[u]=b[h--];l=b[h--],u=new(o=Function.bind.apply(l,d)),b[++h]=u;break;case 63:c+=2+(s=(s=(n[c]<<8)+n[c+1])<<16>>16);break;case 51:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,(o=b[h--])||(c+=s);break;case 18:--h;break;case 70:o=b[h],b[++h]=o;break;default:throw new Error("ioe")}}catch(v){for(;(s=m.pop())&&!s[0];);if(!s){e:for(;p;){for(o=p[4];s=o.pop();)if(s[0])break e;p=p[0]}if(!p)throw v;c=p[1],i=p[2],g=p[3],m=p[4],p=p[0]}1===(o=s[0])?(c=s[2],s[0]=0,m.push(s),b[++h]=v):2===o?(c=s[2],s[0]=0,m.push(s)):(c=s[3],s[0]=2,m.push(s),b[++h]=v)}}(s,[],0,c,t)}("504B01016a0a998e00000fbc8c990b6a00000ff23a00013000013a00021b3a00033000013a00041b3a00053000013a00051b3a00063000013a00061b3000010d2e0000012d0c013800021530020f30000230000124021215300211300002143a002d36002f2e000008be4102360033143a003436002f2e0000097f4101360033143a003536002f2e00000a124100360033143a002936002f2e00000a504101360033143a002436002f2e00000a704101360033143a004b36002f2e00000b6a4100360033143a001a36002f2e00000b6c4103360033143a005236002f2e00000c024101360033143a005336002f2e00000c144101360033143a005636002f2e00000cb64101360033143a002536002f2e00000ce44101360033143a007a36002f2e00000f104101360033143a008236002f2e00000fad410036003344000d24020d1530031235300102240212153003103530010224023800023a0007300002320008143000023200092a003c30000232000a3003153000023200001530000232000b2a0030000232000c3003003d00461e000d2400461e000e2a24240130000232000f2e000001c90c0130000232002c44000030000232001b300002461e002d300001240112300002461e002e3a00033000021e002c2402123000020d3001023800023000021e000b38000330010238000430000329330002060d3001021e00083a0010423300333a0011380005300401461e0012143a00134400013600142401380006300402300414461e001530000624013d013800073f054f3001021e00083a0016423300b93a001738000530000145000b3004023000011e00183d010800993004022a002a002a002a432a702a732a732a682a002a002a002a001800ed1800ef18008b1800a92a791800d62a4a1800ce1800a31800c82a271800dc1800d52a1d2a211800ed2a002a002a002a232a082a012a122a102a332a332a332a332a332a332a332a332a332a332a332a332a002a002a002a002a1a2a0a2a692a6e2a742a652a722a742a722a752a732a742a222a012a2a4400433d013800073f04893001021e00083a00194233047c3a001738000530000145000b3004023000011e00183d0108045f3004022a002a002a022a262a702a732a732a682a002a002a002a0018009a2a041800f02a791800982a402a421800861800ab1800921800e62a5b1800e01800882a5f1800952a002a002a022a062a062a022a002a002a012a002a012a001800fc2a012a3c2a002a572a002a522a002a4d2a002a482a002a452a002a412a002a442a002a452a002a522a002a202a002a782a002a6d2a002a6c2a002a6e2a002a732a002a3d2a002a222a002a682a002a742a002a742a002a702a002a3a2a002a2f2a002a2f2a002a732a002a632a002a682a002a652a002a6d2a002a612a002a732a002a2e2a002a6d2a002a692a002a632a002a722a002a6f2a002a732a002a6f2a002a662a002a742a002a2e2a002a632a002a6f2a002a6d2a002a2f2a002a442a002a522a002a4d2a002a2f2a002a322a002a302a002a302a002a372a002a2f2a002a302a002a332a002a2f2a002a502a002a6c2a002a612a002a792a002a522a002a652a002a612a002a642a002a792a002a482a002a652a002a612a002a642a002a652a002a722a002a222a002a202a002a762a002a652a002a722a002a732a002a692a002a6f2a002a6e2a002a3d2a002a222a002a342a002a2e2a002a302a002a2e2a002a302a002a2e2a002a302a002a222a002a3e2a002a3c2a002a442a002a412a002a542a002a412a002a3e2a002a3c2a002a502a002a522a002a4f2a002a542a002a452a002a432a002a542a002a492a002a4e2a002a462a002a4f2a002a3e2a002a3c2a002a4b2a002a452a002a592a002a4c2a002a452a002a4e2a002a3e2a002a312a002a362a002a3c2a002a2f2a002a4b2a002a452a002a592a002a4c2a002a452a002a4e2a002a3e2a002a3c2a002a412a002a4c2a002a472a002a492a002a442a002a3e2a002a412a002a452a002a532a002a432a002a542a002a522a002a3c2a002a2f2a002a412a002a4c2a002a472a002a492a002a442a002a3e2a002a3c2a002a2f2a002a502a002a522a002a4f2a002a542a002a452a002a432a002a542a002a492a002a4e2a002a462a002a4f2a002a3e2a002a3c2a002a4b2a002a492a002a442a002a3e2a002a4d2a002a7a2a002a4d2a002a7a2a002a4d2a002a7a2a002a4d2a002a7a2a002a4d2a002a7a2a002a4d2a002a7a2a002a4d2a002a7a2a002a4d2a002a7a2a002a412a002a412a002a412a002a412a002a412a002a412a002a3d2a002a3d2a002a3c2a002a2f2a002a4b2a002a492a002a442a002a3e2a002a3c2a002a432a002a482a002a452a002a432a002a4b2a002a532a002a552a002a4d2a002a3e2a002a412a002a312a002a352a002a422a002a592a002a572a002a442a002a342a002a712a002a732a002a492a002a3d2a002a3c2a002a2f2a002a432a002a482a002a452a002a432a002a4b2a002a532a002a552a002a4d2a002a3e2a002a3c2a002a2f2a002a442a002a412a002a542a002a412a002a3e2a002a3c2a002a2f2a002a572a002a522a002a4d2a002a482a002a452a002a412a002a442a002a452a002a522a002a3e2a004402263d01380007300004461e001a3000033000041e00083000041e001b2403461e001c2e000007b90c002e000008a20c002402461e001c2e000008af0c002e000008b10c00240212060d3001031e001d4b00012315420800073000012a003c423300062a003c3f0009300001461e001e2400380002300002293300093005033a001f3d01313001031e0020461e00213000022401123001041e00083a0010423300293004013001041e000f4a380003300002461e00223a0023300104461e002430000324012402123f00553001041e00083a00164233001f300002461e00223a00233001041e0025461e002630010424012402123f00293001041e00083a00194233001c300002461e00223a00233001041e0025461e00263001042401240212300002461e00273001053001071e002824020d300104461e00293a002a24010d060d300104461e00293a002b24010d300001152c4500073000012a003c2c4500063000011e00303300153a0010353200083000011e0030300301351e000f1b300001152c4500073000012a003c2c4500063000011e003033000a3a0010353200083f005b300001152c4500073000012a003c2c4500063000011e00313300143a0016353200083000011e0031353200093f002c300001152c4500073000012a003c2c4500063000011e00323300113a0019353200083000011e003235320009300002450008300002353a00002312060d351e00003004154233007f351e00083a00104245000e300301351e000f4a4b000223152c4500073000022a003c2c450008300002351e00004a330029300301351e000f4a351e00004a300301351e000f4a3000011b300301351e000f4a3004152b123f0025351e0009351e00004a330019351e00093004154a351e00093000011b351e00093004152b1230000135320000060d143a00113a0036440002360037143a003836003944000136003a143a003b360039143a003c360039143a003d36003944000336003e4400013532001b060d300404461e00013a003f30000124021235461e00403a0001300001240212060d353800022e00000a7c0c010d440000380002440000380003300505461e00093001012401461e00412e00000aea0c0124011214300002360009380004300501461e001230000424013800053000011e0047461e0048300514461e004930000524012401461e001c2e00000b5b0c002e00000b5d0c00240212060d3002013000014a380002300614461e00423000012401380003300614461e00423000022401380004143a0043360044300614461e0045300003042402360000300614461e0045300004042402360046380005300102461e0021300005240112300103461e00213000051e0000240112060d060d300202461e00293a004a24010d060d35380004351e000a0800063000011e001d330011351e000a080009300406461e004c24000d300407461e004d3000023000032402461e001c2e00000bd10c012e00000bdb0c002402461e001c2e00000be80c012e00000bf50c0024023532000a351e000a0d300001461e004e24000d300104461e00293a004f24010d300101461e005030000124010d300104461e00293a005124010d3000013532000b440000300001320020060d3a00543800023004081e005533008f35461e005630000124013800033004081e00553d00380004300004461e00573000033a00582402380005300005330015300005461e00593000023a005a24022a004a3f000115380006300006330015300006461e00593000023a005b24022a004a3f000115380007300007330015300007461e00593000023a005c24022a004a3f000115380008300008330002150d3000010d3004091e005d461e005e153004023000013d0124023800021530040a1530040b300002240124013800033000030d3538000230040c3d00380003300003461e005f3a0060351e00091e00612402122e00000d1d0c00300003320078300003461e0079240012060d3001031e00622a04423301163001011e00233800013001031e00633800023001021e00083a001942330033300501461e00643001031e006324013800023a0007461e00653000021e00663a00672402461e00653000021e0068240138000230000229330043300102461e00403a0006143a0007461e00653001021e00091e00613a00692402461e00653001031e006a3a006b2402461e00653001031e006c240136006d240212060d30050c3d003800033001011e004730000332006e3a006f30000332007004300003320071300003461e005f3a00721530050930000224012402123001021e00083a001942330010300003461e00733a00743a00582402122e00000e410c00300003320078300003461e0079300102461e007a3000012401240112060d3001031e00622a04423300c13001031e006a1800c82c33003d300202461e00403a0006143a0007461e00653001023a00752402461e00653001031e006a3a006b2402461e00653001031e006c240136006d240212060d300202461e00403a0005143002021e000c36006d2402123002023a000c43123002021e00083a001942330015300202461e00533001031e006324013800013f000e3006023001031e00633d013800013001031e006e461e00483000012401461e00763006041e0001461e00263006043a00772402240112060d351e00083a0019423300891538000230040d3d0038000330040e3000013d013800043004091e005d461e005e153000042402380005300003461e00573000053a007b2402380006300006461e007c3a007d24012a004a330033300006461e007c3a007e24012a004a1e007f2a004a1e008038000730000733000f300408461e008130000724013800023f00043000010d3000020d3004023000013d010d35461e0083240012153532000b060d3a0000380115152e000000000c0130011608000114240138011614380001152e0000002c0c013001132401380002300002380117060d00840380f180f380fe0580ff80e880e880f580e80580df80c880c880d580c80980ff80f480f980e880e380ea80ee80ff80fe0980df80d480d980c880c380ca80ce80df80de1380d980de80d780c580d680d380d980df80d480c980df80c580c980cf80d980d980df80c980c91180d980de80d780c580d680d380d980df80d480c980df80c580df80c880c880d580c8000980f180ff80e380c980e380e980ee80ff80f70480f180ff80e380e90d80ff80f480e980ef80e880ff80ca80e880f580f780f380e980ff0580ec80f380fe80ff80f50b80f680f380f980ff80f480e980ff80c980ee80ff80ea0780fd80ff80ee80ce80f380f780ff0880ee80f580c980ee80e880f380f480fd0f80f980f680ff80fb80e880d180ff80e380c980ee80f580e880ff80d380fe0f80f580e880fd80b480ed80a980b480f980f680ff80fb80e880f180ff80e30680f180ff80e380f380fe80e90980e980ee80e880f380f480fd80f380fc80e32080aa80ab80a880a980ae80af80ac80ad80a280a380fb80f880f980fe80ff80fc80aa80ab80a880a980ae80af80ac80ad80a280a380fb80f880f980fe80ff80fc0480f180f380fe80e90680ee80f580cf80ce80dc80a21280f980f580f780b480ed80f380fe80ff80ec80f380f480ff80b480fb80f680ea80f280fb0480f980ff80f480f90880f380f480f380ee80de80fb80ee80fb1780f980f580f780b480f780f380f980e880f580e980f580fc80ee80b480ea80f680fb80e380e880ff80fb80fe80e31680ff80f480e980ef80e880ff80d780ff80fe80f380fb80d180ff80e380e980d980e880ff80fb80ee80ff80fe0780f580ea80ee80f380f580f480e90480ee80f280ff80f40980f780ff80fe80f380fb80d180ff80e380e90d80f980e880ff80fb80ee80ff80c980ff80e980e980f380f580f41980dc80fb80f380f680ff80fe80ba80ee80f580ba80f980e880ff80fb80ee80ff80ba80e980ff80e980e980f380f580f480b40880e980ff80e980e980f380f580f480e90480ea80ef80e980f21080fb80fe80fe80df80ec80ff80f480ee80d680f380e980ee80ff80f480ff80e80780f780ff80e980e980fb80fd80ff1180ef80ea80fe80fb80ee80ff80c980ff80e980e980f380f580f480dc80ef80f480f91380f680f380f980ff80f480e980ff80c880ff80eb80ef80ff80e980ee80c880ff80fb80fe80e30480f880f380f480fe0f80fd80ff80f480ff80e880fb80ee80ff80c880ff80eb80ef80ff80e980ee0680f880ef80fc80fc80ff80e80480f880fb80f380f62f80ba80fc80fb80f380f680ff80fe80ba80ee80f580ba80ff80f480e980ef80e880ff80ba80d780ff80fe80f380fb80d180ff80e380e980ba80f580f480ba80d280ce80d780d680d780ff80fe80f380fb80df80f680ff80f780ff80f480ee1c80ba80dc80fb80f380f680ff80fe80ba80ee80f580ba80fd80ff80f480ff80e880fb80ee80ff80ba80e880ff80eb80ef80ff80e980ee80b40d80ff80f480f980e880e380ea80ee80d280fb80f480fe80f680ff0980ef80ea80fe80fb80ee80ff80de80e880f70280f580f40380f180ff80e30980f980f680ff80fb80e880d180ff80e380e90880ed80f380fe80ff80ec80f380f480ff0980ea80f680fb80e380e880ff80fb80fe80e30580ec80fb80f680ef80ff0980ef80ea80fe80fb80ee80ff80d180f380fe0a80e980ff80ee80d580ea80ee80f380f580f480e90480ed80ff80f880f70d80f380f480f380ee80de80fb80ee80fb80ce80e380ea80ff80e91d80fb80ef80fe80f380f580b580f780ea80ae80a180ba80f980f580fe80ff80f980e980a780b880f780ea80ae80fb80b480ae80aa80b480a880b80b80f980f580f480ee80ff80f480ee80ce80e380ea80ff1180fb80ef80fe80f380f580d980fb80ea80fb80f880f380f680f380ee80f380ff80e91f80ec80f380fe80ff80f580b580f780ea80ae80a180ba80f980f580fe80ff80f980e980a780b880fb80ec80f980ab80b480ae80a880f980aa80ab80ff80b82480ec80f380fe80ff80f580b580f780ea80ae80a180ba80f980f580fe80ff80f980e980a780b880f280ff80ec80ab80b480ab80b480ac80b480d680ab80a880aa80b480a380aa80b81880ec80f380fe80ff80f580b580ed80ff80f880f780a180ba80f980f580fe80ff80f980e980a780b880ec80ea80a280b81180ec80f380fe80ff80f580d980fb80ea80fb80f880f380f680f380ee80f380ff80e90580c180df80d780df80c70480ff80f780f380ee0780fc80f580e880df80fb80f980f20780fc80e880f580f780d280ff80e20380f580f980ee0380f180ee80e30880ee80f580d880fb80e980ff80ac80ae0180f10680ee80fb80e880fd80ff80ee0680ef80ea80fe80fb80ee80ff1380c980ee80e880f380f480fd80ce80f580db80e880e880fb80e380d880ef80fc80fc80ff80e81e80ba80d780ff80fe80f380fb80d180ff80e380c980ff80e980e980f380f580f480ba80ef80ea80fe80fb80ee80ff80ba80fc80fb80f380f680ff80fe0a80f180ff80e380e980d980f280fb80f480fd80ff0780e880ff80e980f580f680ec80ff1b80e880ff80eb80ef80ff80e980ee80d780ff80fe80f380fb80d180ff80e380c980e380e980ee80ff80f780db80f980f980ff80e980e90f80f980e880ff80fb80ee80ff80d780ff80fe80f380fb80d180ff80e380e92580ba80dc80fb80f380f680ff80fe80ba80ee80f580ba80e880ff80eb80ef80ff80e980ee80ba80f180ff80e380ba80e980e380e980ee80ff80f780ba80fb80f980f980ff80e980e980b40c80e980ff80ee80d780ff80fe80f380fb80d180ff80e380e92280ba80fc80fb80f380f680ff80fe80ba80ee80f580ba80f980e880ff80fb80ee80ff80ba80d780ff80fe80f380fb80d180ff80e380e980ba80f580f880f080ff80f980ee0880e980ff80ee80ef80ea80df80d780df1380ea80fb80e880e980ff80c980ff80e880ec80ff80e880c880ff80e980ea80f580f480e980ff2a80f280ee80ee80ea80e980a080b580b580e980f980f280ff80f780fb80e980b480e280f780f680e980f580fb80ea80b480f580e880fd80b580e980f580fb80ea80b580ff80f480ec80ff80f680f580ea80ff80b50980de80d580d780ca80fb80e880e980ff80e80c80ef80f380f480ee80ce80f580c980ee80e880f380f480fd0f80ea80fb80e880e980ff80dc80e880f580f780c980ee80e880f380f480fd0880ee80ff80e280ee80b580e280f780f61680fd80ff80ee80df80f680ff80f780ff80f480ee80e980d880e380ce80fb80fd80d480fb80f780ff80d480c90880df80f480ec80ff80f680f580ea80ff0480d880f580fe80e30580dc80fb80ef80f680ee0c80fc80e880f580f780d980f280fb80e880d980f580fe80ff0580fb80ea80ea80f680e30480f580ea80ff80f40380dd80df80ce0980e980ff80e880ec80ff80e880cf80c880d60a80e880ff80fb80fe80e380c980ee80fb80ee80ff0880e880ff80e980ea80f580f480e980ff0580ea80fb80e880e980ff0680f980f580f480f980fb80ee1580f680f380f980ff80f480e980ff80db80f980eb80ef80f380e980f380ee80f380f580f480cf80e880f61280a580df80e280ea80e880ff80e980e980ca80f680fb80e380ce80f580f180ff80f480a70580ee80f580f180ff80f42380ba80e880ff80eb80ef80ff80e980ee80ba80fc80fb80f380f680ff80fe80bb80ba809080ba80ba80ba80ba80ba80ba80ba80ba80ba80ba80e980ee80fb80ee80ef80e980a00680e980ee80fb80ee80ef80e90c80ba80e980ee80fb80ee80ef80e980ce80ff80e280ee80a00a80e980ee80fb80ee80ef80e980ce80ff80e280ee0480fe80fb80ee80fb0a80f180ff80e380c980ff80e980e980f380f580f40b80fb80e880e880fb80e380f880ef80fc80fc80ff80e80c80e880ff80e980ea80f580f480e980ff80ce80e380ea80ff0f80ed80f380ee80f280d980e880ff80fe80ff80f480ee80f380fb80f680e90480ca80d580c980ce1080e980ff80ee80c880ff80eb80ef80ff80e980ee80d280ff80fb80fe80ff80e80c80d980f580f480ee80ff80f480ee80b780ee80e380ea80ff2780ba80e880ff80eb80ef80ff80e980ee80ba80fc80fb80f380f680ff80fe80bb80ba809080ba80ba80ba80ba80ba80ba80ba80ba80ba80ba80ba80ba80ba80ba80e980ee80fb80ee80ef80e980a00580f980fb80ee80f980f20f80ef80ea80fe80fb80ee80ff80b280b380ba80fc80fb80f380f680ff80fe1280f580f480e880ff80fb80fe80e380e980ee80fb80ee80ff80f980f280fb80f480fd80ff0480e980ff80f480fe1c80fd80ff80ee80d680f380f980ff80f480e980ff80c880ff80eb80ef80ff80e980ee80dc80e880f580f780d780ff80e980e980fb80fd80ff0f80fb80ea80ea80f680f380f980fb80ee80f380f580f480b580e280f780f61480fd80ff80ee80df80f680ff80f780ff80f480ee80e980d880e380ce80fb80fd80d480fb80f780ff1380ca80f680fb80e380c880ff80fb80fe80e380d180ff80e380d780ff80e980e980fb80fd80ff0980d980f280fb80f680f680ff80f480fd80ff0a80f980f280f380f680fe80d480f580fe80ff80e90980f480f580fe80ff80cc80fb80f680ef80ff0480fb80ee80f580f80780fe80ff80e980ee80e880f580e31280e880ff80f780f580ec80ff80db80f680f680d680f380e980ee80ff80f480ff80e880e9",{0:Date,1:JSON,2:Uint8Array,3:Error,get 4(){return console},5:Object,6:Promise,get 7(){return navigator},get 8(){return window},9:String,10:decodeURIComponent,get 11(){return escape},get 12(){return XMLHttpRequest},get 13(){return DOMParser},14:Uint16Array,get 15(){return it},get 16(){return Zc},get 17(){return tt},get 18(){return et},get 19(){return kh},get 20(){return sg},get 21(){return tg},set 21(e){tg=e},get 22(){return e.EVENT_EME},set 22(c){e.EVENT_EME=c},get 23(){return ag},set 23(e){ag=e}},void 0);var og,lg,dg=ag,ug=_,hg=b,bg=Ut("match"),pg=f,gg=r,mg=Gc,vg=ul,yg=V.f,Eg=tc.f,Sg=function(e){var c;return ug(e)&&(void 0!==(c=e[bg])?!!c:"RegExp"==hg(e))},_g=Js,Tg=vb,kg=Xe,Ag=n,Lg=je.enforce,Ig=Qi,wg=Ut("match"),Rg=gg.RegExp,Dg=Rg.prototype,xg=/a/g,Pg=/a/g,Cg=new Rg(xg)!==xg,Og=Tg.UNSUPPORTED_Y;if(pg&&mg("RegExp",!Cg||Og||Ag((function(){return Pg[wg]=!1,Rg(xg)!=xg||Rg(Pg)==Pg||"/a/i"!=Rg(xg,"i")})))){for(var Mg=function(e,c){var t,a=this instanceof Mg,r=Sg(e),i=void 0===c;if(!a&&r&&e.constructor===Mg&&i)return e;Cg?r&&!i&&(e=e.source):e instanceof Mg&&(i&&(c=_g.call(e)),e=e.source),Og&&(t=!!c&&c.indexOf("y")>-1)&&(c=c.replace(/y/g,""));var n=vg(Cg?new Rg(e,c):Rg(e,c),a?this:Dg,Mg);return Og&&t&&(Lg(n).sticky=!0),n},Fg=function(e){e in Mg||yg(Mg,e,{configurable:!0,get:function(){return Rg[e]},set:function(c){Rg[e]=c}})},Ng=Eg(Rg),Ug=0;Ng.length>Ug;)Fg(Ng[Ug++]);Dg.constructor=Mg,Mg.prototype=Dg,kg(gg,"RegExp",Mg)}Ig("RegExp"),e.isNativeFunction=void 0,e.checkMSEValid=void 0,e.checkEMEValid=void 0,function(e,c,t){function a(e,c){var t=parseInt(e.slice(c,c+2),16);return t>>>7==0?[1,t]:t>>>6==2?(t=(63&t)<<8,[2,t+=parseInt(e.slice(c+2,c+4),16)]):(t=(63&t)<<16,[3,t+=parseInt(e.slice(c+2,c+6),16)])}var r,i=0,n=[],f=[];for(r=0;r<4;++r)i+=(3&parseInt(e.slice(8+2*r,10+2*r),16))<<2*r;var s=parseInt(e.slice(16,24),16),o=2*parseInt(e.slice(32,40),16);for(r=40;r<o+40;r+=2)n.push(parseInt(e.slice(r,r+2),16));var l=o+40,d=parseInt(e.slice(l,l+4),16);for(l+=4,r=0;r<d;++r){var u=a(e,l);l+=2*u[0];for(var h="",b=0;b<u[1];++b){var p=a(e,l);h+=String.fromCharCode(i^p[1]),l+=2*p[0]}f.push(h)}c.p=null,function e(c,t,a,r,i){var s,o,l,d,u,h=-1,b=[],p=null,g=[t];for(o=Math.min(t.length,a),l=0;l<o;++l)g.push(t[l]);g.p=r;for(var m=[];;)try{switch(n[c++]){case 59:b[++h]=!0;break;case 4:b[++h]=!1;break;case 21:b[++h]=null;break;case 42:s=n[c++],b[++h]=s<<24>>24;break;case 46:s=((s=((s=n[c++])<<8)+n[c++])<<8)+n[c++],b[++h]=(s<<8)+n[c++];break;case 58:s=(n[c]<<8)+n[c+1],c+=2,b[++h]=f[s];break;case 6:b[++h]=void 0;break;case 68:s=(n[c]<<8)+n[c+1],c+=2,h=h-s+1,o=b.slice(h,h+s),b[h]=o;break;case 48:for(o=n[c++],l=n[c++],d=g;o>0;--o)d=d.p;b[++h]=d[l];break;case 30:s=(n[c]<<8)+n[c+1],c+=2,o=f[s],b[h]=b[h][o];break;case 74:o=b[h--],b[h]=b[h][o];break;case 56:for(o=n[c++],l=n[c++],d=g;o>0;--o)d=d.p;d[l]=b[h--];break;case 75:for(o=n[c++],l=n[c++],d=g,d=g;o>0;--o)d=d.p;b[++h]=d,b[++h]=l;break;case 34:b[h]=-b[h];break;case 66:o=b[h--],b[h]=b[h]===o;break;case 44:o=b[h--],b[h]=b[h]!==o;break;case 19:o=b[h--],b[h]=b[h]>o;break;case 69:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,b[h]?--h:c+=s;break;case 8:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,b[h]?c+=s:--h;break;case 35:o=b[h--],(l=b[h--])[o]=b[h];break;case 60:b[h]=void 0;break;case 15:b[h]=typeof b[h];break;case 12:s=n[c++],o=b[h--],(l=function e(){var c=e._v;return(0,e._u)(c[0],arguments,c[1],c[2],this)})._v=[o,s,g],l._u=e,b[++h]=l;break;case 13:for(o=b[h--],l=null;d=m.pop();)if(2===d[0]||3===d[0]){l=d;break}if(l)c=l[2],l[0]=0,m.push(l);else{if(!p)return o;c=p[1],i=p[2],g=p[3],m=p[4],b[++h]=o,p=p[0]}break;case 36:h-=s=n[c++],l=b.slice(h+1,h+s+1),o=b[h--],d=b[h--],o._u===e?(o=o._v,p=[p,c,i,g,m],c=o[0],null==d&&(d=function(){return this}()),i=d,(g=[l].concat(l)).length=Math.min(o[1],s)+1,g.p=o[2],m=[]):(u=o.apply(d,l),b[++h]=u);break;case 61:for(s=n[c++],d=[void 0],u=s;u>0;--u)d[u]=b[h--];l=b[h--],u=new(o=Function.bind.apply(l,d)),b[++h]=u;break;case 63:c+=2+(s=(s=(n[c]<<8)+n[c+1])<<16>>16);break;case 51:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,(o=b[h--])||(c+=s);break;case 18:--h;break;case 70:o=b[h],b[++h]=o;break;default:throw new Error("ioe")}}catch(v){for(;(s=m.pop())&&!s[0];);if(!s){e:for(;p;){for(o=p[4];s=o.pop();)if(s[0])break e;p=p[0]}if(!p)throw v;c=p[1],i=p[2],g=p[3],m=p[4],p=p[0]}1===(o=s[0])?(c=s[2],s[0]=0,m.push(s),b[++h]=v):2===o?(c=s[2],s[0]=0,m.push(s)):(c=s[3],s[0]=2,m.push(s),b[++h]=v)}}(s,[],0,c,t)}("504B01016a0a998e000002f78c990b6a000003433b380002300202461e00023000012401330019300001461e00032e0000009d0c0230000224023800023f006d153002033a0004461e0005153002043001012401461e00063002033a00073a00083d023a00092402461e00063002033a000a3a00083d023a000b24023a000c240224013800033000010f3a000d42330018300003461e000e300102461e000f300001240124013f0001043800023000020d3000014500091530030c30000224010d3000001e00102a00134500083000002a004a062c3300093000002a004a3f0001043800013002050f3a00112c3300073002050d3f003730000145000c3002063a00124a0f3a00112c33000b3002063a00124a0d3f00173002063a00134a0f3a00112c3300083002063a00134a0d060d3000001e00102a00134500083000002a004a062c3300093000002a004a3f0001043800013002070f3a00112c3300073002070d3f001d30000145000c3002063a00144a0f3a00112c3300083002063a00144a0d060d3000001e00102a00134500083000002a004a062c3300093000002a004a3f0001043800011530020d30000124013800021530020e300001240138000304380004300002450003300003330062440000380005300003330020300005461e0015300003240112300005461e00153000031e00001e0016240112300002330020300005461e0015300002240112300005461e00153000021e00001e00172401121530020c30000524013300043b3800043000040d4400003800013002080f3a00112c3300a9300001461e00153002081e00001e0018240112300001461e00153002091e00001e0019240112300001461e00153002081e00001e001a24011230020a0f3a00112c45004530020b4b00022315420800073000022a003c4208000c3000021e001b4b00022315420800073000022a003c423300062a003c3f000c300002461e001c3a001d24012a01224233000d300001461e001530020a240112300001461e001530020b1e001e2401123000011e00102a00423300043b3f00091530020c30000124010d2e000000000c0138010c2e000000ad0c0038010d2e0000011c0c0038010e2e000001710c0038010f2e000002230c003801103001001e00001e00013800013001011e00001e0001380002060d001f0980ea80e880f580ee80f580ee80e380ea80ff0880ee80f580c980ee80e880f380f480fd0780f380e980db80e880e880fb80e30680e880ff80fe80ef80f980ff0180c40680f980f580f480f980fb80ee0780e880ff80ea80f680fb80f980ff1480c180b480b080b180a580c480be80e180e780b280b380e680c180c680c780c680b580c680c680c70180fd0380c680be80bc2f80ee80f580c980ee80e880f380f480fd80e680b280fc80ef80f480f980ee80f380f580f480b380b480b080a580b280a580a780c680c680c680b280b380e680ba80fc80f580e880ba80b480b180a580b280a580a780c680c680c680c780b30580be80ab80b480b080a50180be0880fc80ef80f480f980ee80f380f580f40480ee80ff80e980ee0480f980fb80f680f60680f680ff80f480fd80ee80f20980ef80f480fe80ff80fc80f380f480ff80fe1280d780fb80f480fb80fd80ff80fe80d780ff80fe80f380fb80c980f580ef80e880f980ff1180cd80ff80f880d180f380ee80d780ff80fe80f380fb80c980f580ef80e880f980ff1380d780fb80f480fb80fd80ff80fe80c980f580ef80e880f980ff80d880ef80fc80fc80ff80e80480ea80ef80e980f20c80fb80ea80ea80ff80f480fe80d880ef80fc80fc80ff80e80f80fb80fe80fe80c980f580ef80e880f980ff80d880ef80fc80fc80ff80e80680ef80ea80fe80fb80ee80ff0d80f980e880ff80fb80ee80ff80c980ff80e980e980f380f580f41080fb80fe80fe80df80ec80ff80f480ee80d680f380e980ee80ff80f480ff80e80980ef80e980ff80e880db80fd80ff80f480ee0780f380f480fe80ff80e280d580fc0880df80f680ff80f980ee80e880f580f41b80e880ff80eb80ef80ff80e980ee80d780ff80fe80f380fb80d180ff80e380c980e380e980ee80ff80f780db80f980f980ff80e980e9",{0:Object,1:Function,2:Array,3:RegExp,4:String,get 5(){return"undefined"!=typeof MediaSource?MediaSource:void 0},get 6(){return self},get 7(){return"undefined"!=typeof SourceBuffer?SourceBuffer:void 0},get 8(){return"undefined"!=typeof MediaKeySession?MediaKeySession:void 0},get 9(){return MediaKeys},get 10(){return"undefined"!=typeof atob?atob:void 0},get 11(){return navigator},get 12(){return e.isNativeFunction},set 12(c){e.isNativeFunction=c},get 13(){return og},set 13(e){og=e},get 14(){return lg},set 14(e){lg=e},get 15(){return e.checkMSEValid},set 15(c){e.checkMSEValid=c},get 16(){return e.checkEMEValid},set 16(c){e.checkEMEValid=c}},void 0);var Bg={exports:{}},$g=!n((function(){return Object.isExtensible(Object.preventExtensions({}))})),jg=Le,Gg=_,Kg=R,Vg=V.f,Hg=$g,qg=_e("meta"),Yg=0,Wg=Object.isExtensible||function(){return!0},zg=function(e){Vg(e,qg,{value:{objectID:"O"+ ++Yg,weakData:{}}})},Xg=Bg.exports={REQUIRED:!1,fastKey:function(e,c){if(!Gg(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!Kg(e,qg)){if(!Wg(e))return"F";if(!c)return"E";zg(e)}return e[qg].objectID},getWeakData:function(e,c){if(!Kg(e,qg)){if(!Wg(e))return!0;if(!c)return!1;zg(e)}return e[qg].weakData},onFreeze:function(e){return Hg&&Xg.REQUIRED&&Wg(e)&&!Kg(e,qg)&&zg(e),e}};jg[qg]=!0;var Qg=Bg.exports,Jg=Xc,Zg=r,em=Gc,cm=Xe,tm=Qg,am=Cn,rm=jr,im=_,nm=n,fm=jn,sm=tr,om=ul,lm=V.f,dm=Da,um=$r,hm=En,bm=jr,pm=Cn,gm=wr,mm=Qi,vm=f,ym=Qg.fastKey,Em=je.set,Sm=je.getterFor,_m={getConstructor:function(e,c,t,a){var r=e((function(e,i){bm(e,r,c),Em(e,{type:c,index:dm(null),first:void 0,last:void 0,size:0}),vm||(e.size=0),null!=i&&pm(i,e[a],{that:e,AS_ENTRIES:t})})),i=Sm(c),n=function(e,c,t){var a,r,n=i(e),s=f(e,c);return s?s.value=t:(n.last=s={index:r=ym(c,!0),key:c,value:t,previous:a=n.last,next:void 0,removed:!1},n.first||(n.first=s),a&&(a.next=s),vm?n.size++:e.size++,"F"!==r&&(n.index[r]=s)),e},f=function(e,c){var t,a=i(e),r=ym(c);if("F"!==r)return a.index[r];for(t=a.first;t;t=t.next)if(t.key==c)return t};return um(r.prototype,{clear:function(){for(var e=i(this),c=e.index,t=e.first;t;)t.removed=!0,t.previous&&(t.previous=t.previous.next=void 0),delete c[t.index],t=t.next;e.first=e.last=void 0,vm?e.size=0:this.size=0},delete:function(e){var c=this,t=i(c),a=f(c,e);if(a){var r=a.next,n=a.previous;delete t.index[a.index],a.removed=!0,n&&(n.next=r),r&&(r.previous=n),t.first==a&&(t.first=r),t.last==a&&(t.last=n),vm?t.size--:c.size--}return!!a},forEach:function(e){for(var c,t=i(this),a=hm(e,arguments.length>1?arguments[1]:void 0,3);c=c?c.next:t.first;)for(a(c.value,c.key,this);c&&c.removed;)c=c.previous},has:function(e){return!!f(this,e)}}),um(r.prototype,t?{get:function(e){var c=f(this,e);return c&&c.value},set:function(e,c){return n(this,0===e?0:e,c)}}:{add:function(e){return n(this,e=0===e?0:e,e)}}),vm&&lm(r.prototype,"size",{get:function(){return i(this).size}}),r},setStrong:function(e,c,t){var a=c+" Iterator",r=Sm(c),i=Sm(a);gm(e,c,(function(e,c){Em(this,{type:a,target:e,state:r(e),kind:c,last:void 0})}),(function(){for(var e=i(this),c=e.kind,t=e.last;t&&t.removed;)t=t.previous;return e.target&&(e.last=t=t?t.next:e.state.first)?"keys"==c?{value:t.key,done:!1}:"values"==c?{value:t.value,done:!1}:{value:[t.key,t.value],done:!1}:(e.target=void 0,{value:void 0,done:!0})}),t?"entries":"values",!t,!0),mm(c)}};!function(e,c,t){var a=-1!==e.indexOf("Map"),r=-1!==e.indexOf("Weak"),i=a?"set":"add",n=Zg[e],f=n&&n.prototype,s=n,o={},l=function(e){var c=f[e];cm(f,e,"add"==e?function(e){return c.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(r&&!im(e))&&c.call(this,0===e?0:e)}:"get"==e?function(e){return r&&!im(e)?void 0:c.call(this,0===e?0:e)}:"has"==e?function(e){return!(r&&!im(e))&&c.call(this,0===e?0:e)}:function(e,t){return c.call(this,0===e?0:e,t),this})};if(em(e,"function"!=typeof n||!(r||f.forEach&&!nm((function(){(new n).entries().next()})))))s=t.getConstructor(c,e,a,i),tm.REQUIRED=!0;else if(em(e,!0)){var d=new s,u=d[i](r?{}:-0,1)!=d,h=nm((function(){d.has(1)})),b=fm((function(e){new n(e)})),p=!r&&nm((function(){for(var e=new n,c=5;c--;)e[i](c,c);return!e.has(-0)}));b||((s=c((function(c,t){rm(c,s,e);var r=om(new n,c,s);return null!=t&&am(t,r[i],{that:r,AS_ENTRIES:a}),r}))).prototype=f,f.constructor=s),(h||p)&&(l("delete"),l("has"),a&&l("get")),(p||u)&&l(i),r&&f.clear&&delete f.clear}o[e]=s,Jg({global:!0,forced:s!=n},o),sm(s,e),r||t.setStrong(s,e,a)}("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),_m);var Tm=zb.charAt,km=je,Am=wr,Lm="String Iterator",Im=km.set,wm=km.getterFor(Lm);Am(String,"String",(function(e){Im(this,{type:Lm,string:String(e),index:0})}),(function(){var e,c=wm(this),t=c.string,a=c.index;return a>=t.length?{value:void 0,done:!0}:(e=Tm(t,a),c.index+=e.length,{value:e,done:!1})}));var Rm=q,Dm=bn,xm=function(){for(var e,c=Rm(this),t=Dm(c.delete),a=!0,r=0,i=arguments.length;r<i;r++)e=t.call(c,arguments[r]),a=a&&e;return!!a};Xc({target:"Map",proto:!0,real:!0,forced:!1},{deleteAll:function(){return xm.apply(this,arguments)}});var Pm=function(e){return Map.prototype.entries.call(e)},Cm=q,Om=En,Mm=Pm,Fm=Cn;Xc({target:"Map",proto:!0,real:!0,forced:!1},{every:function(e){var c=Cm(this),t=Mm(c),a=Om(e,arguments.length>1?arguments[1]:void 0,3);return!Fm(t,(function(e,t,r){if(!a(t,e,c))return r()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var Nm=cc,Um=q,Bm=bn,$m=En,jm=Hn,Gm=Pm,Km=Cn;Xc({target:"Map",proto:!0,real:!0,forced:!1},{filter:function(e){var c=Um(this),t=Gm(c),a=$m(e,arguments.length>1?arguments[1]:void 0,3),r=new(jm(c,Nm("Map"))),i=Bm(r.set);return Km(t,(function(e,t){a(t,e,c)&&i.call(r,e,t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),r}});var Vm=q,Hm=En,qm=Pm,Ym=Cn;Xc({target:"Map",proto:!0,real:!0,forced:!1},{find:function(e){var c=Vm(this),t=qm(c),a=Hm(e,arguments.length>1?arguments[1]:void 0,3);return Ym(t,(function(e,t,r){if(a(t,e,c))return r(t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var Wm=q,zm=En,Xm=Pm,Qm=Cn;Xc({target:"Map",proto:!0,real:!0,forced:!1},{findKey:function(e){var c=Wm(this),t=Xm(c),a=zm(e,arguments.length>1?arguments[1]:void 0,3);return Qm(t,(function(e,t,r){if(a(t,e,c))return r(e)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var Jm=q,Zm=Pm,ev=function(e,c){return e===c||e!=e&&c!=c},cv=Cn;Xc({target:"Map",proto:!0,real:!0,forced:!1},{includes:function(e){return cv(Zm(Jm(this)),(function(c,t,a){if(ev(t,e))return a()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var tv=q,av=Pm,rv=Cn;Xc({target:"Map",proto:!0,real:!0,forced:!1},{keyOf:function(e){return rv(av(tv(this)),(function(c,t,a){if(t===e)return a(c)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var iv=cc,nv=q,fv=bn,sv=En,ov=Hn,lv=Pm,dv=Cn;Xc({target:"Map",proto:!0,real:!0,forced:!1},{mapKeys:function(e){var c=nv(this),t=lv(c),a=sv(e,arguments.length>1?arguments[1]:void 0,3),r=new(ov(c,iv("Map"))),i=fv(r.set);return dv(t,(function(e,t){i.call(r,a(t,e,c),t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),r}});var uv=cc,hv=q,bv=bn,pv=En,gv=Hn,mv=Pm,vv=Cn;Xc({target:"Map",proto:!0,real:!0,forced:!1},{mapValues:function(e){var c=hv(this),t=mv(c),a=pv(e,arguments.length>1?arguments[1]:void 0,3),r=new(gv(c,uv("Map"))),i=bv(r.set);return vv(t,(function(e,t){i.call(r,e,a(t,e,c))}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),r}});var yv=q,Ev=bn,Sv=Cn;Xc({target:"Map",proto:!0,real:!0,forced:!1},{merge:function(e){for(var c=yv(this),t=Ev(c.set),a=0;a<arguments.length;)Sv(arguments[a++],t,{that:c,AS_ENTRIES:!0});return c}});var _v=q,Tv=bn,kv=Pm,Av=Cn;Xc({target:"Map",proto:!0,real:!0,forced:!1},{reduce:function(e){var c=_v(this),t=kv(c),a=arguments.length<2,r=a?void 0:arguments[1];if(Tv(e),Av(t,(function(t,i){a?(a=!1,r=i):r=e(r,i,t,c)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),a)throw TypeError("Reduce of empty map with no initial value");return r}});var Lv=q,Iv=En,wv=Pm,Rv=Cn;Xc({target:"Map",proto:!0,real:!0,forced:!1},{some:function(e){var c=Lv(this),t=wv(c),a=Iv(e,arguments.length>1?arguments[1]:void 0,3);return Rv(t,(function(e,t,r){if(a(t,e,c))return r()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var Dv=q,xv=bn;Xc({target:"Map",proto:!0,real:!0,forced:!1},{update:function(e,c){var t=Dv(this),a=arguments.length;xv(c);var r=t.has(e);if(!r&&a<3)throw TypeError("Updating absent value");var i=r?t.get(e):xv(a>2?arguments[2]:void 0)(e,t);return t.set(e,c(i,e,t)),t}});var Pv={exports:{}};Pv.exports=function(e){var c=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function t(e,c){var t=e[0],a=e[1],r=e[2],i=e[3];a=((a+=((r=((r+=((i=((i+=((t=((t+=(a&r|~a&i)+c[0]-680876936|0)<<7|t>>>25)+a|0)&a|~t&r)+c[1]-389564586|0)<<12|i>>>20)+t|0)&t|~i&a)+c[2]+606105819|0)<<17|r>>>15)+i|0)&i|~r&t)+c[3]-1044525330|0)<<22|a>>>10)+r|0,a=((a+=((r=((r+=((i=((i+=((t=((t+=(a&r|~a&i)+c[4]-176418897|0)<<7|t>>>25)+a|0)&a|~t&r)+c[5]+1200080426|0)<<12|i>>>20)+t|0)&t|~i&a)+c[6]-1473231341|0)<<17|r>>>15)+i|0)&i|~r&t)+c[7]-45705983|0)<<22|a>>>10)+r|0,a=((a+=((r=((r+=((i=((i+=((t=((t+=(a&r|~a&i)+c[8]+1770035416|0)<<7|t>>>25)+a|0)&a|~t&r)+c[9]-1958414417|0)<<12|i>>>20)+t|0)&t|~i&a)+c[10]-42063|0)<<17|r>>>15)+i|0)&i|~r&t)+c[11]-1990404162|0)<<22|a>>>10)+r|0,a=((a+=((r=((r+=((i=((i+=((t=((t+=(a&r|~a&i)+c[12]+1804603682|0)<<7|t>>>25)+a|0)&a|~t&r)+c[13]-40341101|0)<<12|i>>>20)+t|0)&t|~i&a)+c[14]-1502002290|0)<<17|r>>>15)+i|0)&i|~r&t)+c[15]+1236535329|0)<<22|a>>>10)+r|0,a=((a+=((r=((r+=((i=((i+=((t=((t+=(a&i|r&~i)+c[1]-165796510|0)<<5|t>>>27)+a|0)&r|a&~r)+c[6]-1069501632|0)<<9|i>>>23)+t|0)&a|t&~a)+c[11]+643717713|0)<<14|r>>>18)+i|0)&t|i&~t)+c[0]-373897302|0)<<20|a>>>12)+r|0,a=((a+=((r=((r+=((i=((i+=((t=((t+=(a&i|r&~i)+c[5]-701558691|0)<<5|t>>>27)+a|0)&r|a&~r)+c[10]+38016083|0)<<9|i>>>23)+t|0)&a|t&~a)+c[15]-660478335|0)<<14|r>>>18)+i|0)&t|i&~t)+c[4]-405537848|0)<<20|a>>>12)+r|0,a=((a+=((r=((r+=((i=((i+=((t=((t+=(a&i|r&~i)+c[9]+568446438|0)<<5|t>>>27)+a|0)&r|a&~r)+c[14]-1019803690|0)<<9|i>>>23)+t|0)&a|t&~a)+c[3]-187363961|0)<<14|r>>>18)+i|0)&t|i&~t)+c[8]+1163531501|0)<<20|a>>>12)+r|0,a=((a+=((r=((r+=((i=((i+=((t=((t+=(a&i|r&~i)+c[13]-1444681467|0)<<5|t>>>27)+a|0)&r|a&~r)+c[2]-51403784|0)<<9|i>>>23)+t|0)&a|t&~a)+c[7]+1735328473|0)<<14|r>>>18)+i|0)&t|i&~t)+c[12]-1926607734|0)<<20|a>>>12)+r|0,a=((a+=((r=((r+=((i=((i+=((t=((t+=(a^r^i)+c[5]-378558|0)<<4|t>>>28)+a|0)^a^r)+c[8]-2022574463|0)<<11|i>>>21)+t|0)^t^a)+c[11]+1839030562|0)<<16|r>>>16)+i|0)^i^t)+c[14]-35309556|0)<<23|a>>>9)+r|0,a=((a+=((r=((r+=((i=((i+=((t=((t+=(a^r^i)+c[1]-1530992060|0)<<4|t>>>28)+a|0)^a^r)+c[4]+1272893353|0)<<11|i>>>21)+t|0)^t^a)+c[7]-155497632|0)<<16|r>>>16)+i|0)^i^t)+c[10]-1094730640|0)<<23|a>>>9)+r|0,a=((a+=((r=((r+=((i=((i+=((t=((t+=(a^r^i)+c[13]+681279174|0)<<4|t>>>28)+a|0)^a^r)+c[0]-358537222|0)<<11|i>>>21)+t|0)^t^a)+c[3]-722521979|0)<<16|r>>>16)+i|0)^i^t)+c[6]+76029189|0)<<23|a>>>9)+r|0,a=((a+=((r=((r+=((i=((i+=((t=((t+=(a^r^i)+c[9]-640364487|0)<<4|t>>>28)+a|0)^a^r)+c[12]-421815835|0)<<11|i>>>21)+t|0)^t^a)+c[15]+530742520|0)<<16|r>>>16)+i|0)^i^t)+c[2]-995338651|0)<<23|a>>>9)+r|0,a=((a+=((i=((i+=(a^((t=((t+=(r^(a|~i))+c[0]-198630844|0)<<6|t>>>26)+a|0)|~r))+c[7]+1126891415|0)<<10|i>>>22)+t|0)^((r=((r+=(t^(i|~a))+c[14]-1416354905|0)<<15|r>>>17)+i|0)|~t))+c[5]-57434055|0)<<21|a>>>11)+r|0,a=((a+=((i=((i+=(a^((t=((t+=(r^(a|~i))+c[12]+1700485571|0)<<6|t>>>26)+a|0)|~r))+c[3]-1894986606|0)<<10|i>>>22)+t|0)^((r=((r+=(t^(i|~a))+c[10]-1051523|0)<<15|r>>>17)+i|0)|~t))+c[1]-2054922799|0)<<21|a>>>11)+r|0,a=((a+=((i=((i+=(a^((t=((t+=(r^(a|~i))+c[8]+1873313359|0)<<6|t>>>26)+a|0)|~r))+c[15]-30611744|0)<<10|i>>>22)+t|0)^((r=((r+=(t^(i|~a))+c[6]-1560198380|0)<<15|r>>>17)+i|0)|~t))+c[13]+1309151649|0)<<21|a>>>11)+r|0,a=((a+=((i=((i+=(a^((t=((t+=(r^(a|~i))+c[4]-145523070|0)<<6|t>>>26)+a|0)|~r))+c[11]-1120210379|0)<<10|i>>>22)+t|0)^((r=((r+=(t^(i|~a))+c[2]+718787259|0)<<15|r>>>17)+i|0)|~t))+c[9]-343485551|0)<<21|a>>>11)+r|0,e[0]=t+e[0]|0,e[1]=a+e[1]|0,e[2]=r+e[2]|0,e[3]=i+e[3]|0}function a(e){var c,t=[];for(c=0;c<64;c+=4)t[c>>2]=e.charCodeAt(c)+(e.charCodeAt(c+1)<<8)+(e.charCodeAt(c+2)<<16)+(e.charCodeAt(c+3)<<24);return t}function r(e){var c,t=[];for(c=0;c<64;c+=4)t[c>>2]=e[c]+(e[c+1]<<8)+(e[c+2]<<16)+(e[c+3]<<24);return t}function i(e){var c,r,i,n,f,s,o=e.length,l=[1732584193,-271733879,-1732584194,271733878];for(c=64;c<=o;c+=64)t(l,a(e.substring(c-64,c)));for(r=(e=e.substring(c-64)).length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],c=0;c<r;c+=1)i[c>>2]|=e.charCodeAt(c)<<(c%4<<3);if(i[c>>2]|=128<<(c%4<<3),c>55)for(t(l,i),c=0;c<16;c+=1)i[c]=0;return n=(n=8*o).toString(16).match(/(.*?)(.{0,8})$/),f=parseInt(n[2],16),s=parseInt(n[1],16)||0,i[14]=f,i[15]=s,t(l,i),l}function n(e){var c,a,i,n,f,s,o=e.length,l=[1732584193,-271733879,-1732584194,271733878];for(c=64;c<=o;c+=64)t(l,r(e.subarray(c-64,c)));for(a=(e=c-64<o?e.subarray(c-64):new Uint8Array(0)).length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],c=0;c<a;c+=1)i[c>>2]|=e[c]<<(c%4<<3);if(i[c>>2]|=128<<(c%4<<3),c>55)for(t(l,i),c=0;c<16;c+=1)i[c]=0;return n=(n=8*o).toString(16).match(/(.*?)(.{0,8})$/),f=parseInt(n[2],16),s=parseInt(n[1],16)||0,i[14]=f,i[15]=s,t(l,i),l}function f(e){var t,a="";for(t=0;t<4;t+=1)a+=c[e>>8*t+4&15]+c[e>>8*t&15];return a}function s(e){var c;for(c=0;c<e.length;c+=1)e[c]=f(e[c]);return e.join("")}function o(e){return/[\u0080-\uFFFF]/.test(e)&&(e=unescape(encodeURIComponent(e))),e}function l(e,c){var t,a=e.length,r=new ArrayBuffer(a),i=new Uint8Array(r);for(t=0;t<a;t+=1)i[t]=e.charCodeAt(t);return c?i:r}function d(e){return String.fromCharCode.apply(null,new Uint8Array(e))}function u(e,c,t){var a=new Uint8Array(e.byteLength+c.byteLength);return a.set(new Uint8Array(e)),a.set(new Uint8Array(c),e.byteLength),t?a:a.buffer}function h(e){var c,t=[],a=e.length;for(c=0;c<a-1;c+=2)t.push(parseInt(e.substr(c,2),16));return String.fromCharCode.apply(String,t)}function b(){this.reset()}return s(i("hello")),"undefined"==typeof ArrayBuffer||ArrayBuffer.prototype.slice||function(){function c(e,c){return(e=0|e||0)<0?Math.max(e+c,0):Math.min(e,c)}ArrayBuffer.prototype.slice=function(t,a){var r,i,n,f,s=this.byteLength,o=c(t,s),l=s;return a!==e&&(l=c(a,s)),o>l?new ArrayBuffer(0):(r=l-o,i=new ArrayBuffer(r),n=new Uint8Array(i),f=new Uint8Array(this,o,r),n.set(f),i)}}(),b.prototype.append=function(e){return this.appendBinary(o(e)),this},b.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var c,r=this._buff.length;for(c=64;c<=r;c+=64)t(this._hash,a(this._buff.substring(c-64,c)));return this._buff=this._buff.substring(c-64),this},b.prototype.end=function(e){var c,t,a=this._buff,r=a.length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(c=0;c<r;c+=1)i[c>>2]|=a.charCodeAt(c)<<(c%4<<3);return this._finish(i,r),t=s(this._hash),e&&(t=h(t)),this.reset(),t},b.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},b.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},b.prototype.setState=function(e){return this._buff=e.buff,this._length=e.length,this._hash=e.hash,this},b.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},b.prototype._finish=function(e,c){var a,r,i,n=c;if(e[n>>2]|=128<<(n%4<<3),n>55)for(t(this._hash,e),n=0;n<16;n+=1)e[n]=0;a=(a=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),r=parseInt(a[2],16),i=parseInt(a[1],16)||0,e[14]=r,e[15]=i,t(this._hash,e)},b.hash=function(e,c){return b.hashBinary(o(e),c)},b.hashBinary=function(e,c){var t=s(i(e));return c?h(t):t},b.ArrayBuffer=function(){this.reset()},b.ArrayBuffer.prototype.append=function(e){var c,a=u(this._buff.buffer,e,!0),i=a.length;for(this._length+=e.byteLength,c=64;c<=i;c+=64)t(this._hash,r(a.subarray(c-64,c)));return this._buff=c-64<i?new Uint8Array(a.buffer.slice(c-64)):new Uint8Array(0),this},b.ArrayBuffer.prototype.end=function(e){var c,t,a=this._buff,r=a.length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(c=0;c<r;c+=1)i[c>>2]|=a[c]<<(c%4<<3);return this._finish(i,r),t=s(this._hash),e&&(t=h(t)),this.reset(),t},b.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},b.ArrayBuffer.prototype.getState=function(){var e=b.prototype.getState.call(this);return e.buff=d(e.buff),e},b.ArrayBuffer.prototype.setState=function(e){return e.buff=l(e.buff,!0),b.prototype.setState.call(this,e)},b.ArrayBuffer.prototype.destroy=b.prototype.destroy,b.ArrayBuffer.prototype._finish=b.prototype._finish,b.ArrayBuffer.hash=function(e,c){var t=s(n(new Uint8Array(e)));return c?h(t):t},b}();var Cv=t(Pv.exports),Ov="KekHelper",Mv="-----BEGIN PUBLIC KEY-----",Fv="-----END PUBLIC KEY-----";function Nv(e){return String.fromCharCode.apply(null,new Uint8Array(e))}function Uv(e){return new Uint8Array(e.split("").map((function(e){return e.charCodeAt(0)})))}function Bv(e,c,t){return $v.apply(this,arguments)}function $v(){return($v=Jc(ft().mark((function e(c,t,a){var r,i,n,f;return ft().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=Uv(c),e.next=3,crypto.subtle.importKey("pkcs8",r,{name:a.name,hash:a.hash},!0,["decrypt"]);case 3:return i=e.sent,n=Uv(t),e.next=7,crypto.subtle.importKey("spki",n,{name:a.name,hash:a.hash},!0,["encrypt"]);case 7:return f=e.sent,e.abrupt("return",{privateKey:i,publicKey:f});case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function jv(){return Gv.apply(this,arguments)}function Gv(){return(Gv=Jc(ft().mark((function e(){var c,t,a,r,i,n,f,s,o,l,d,u,h,b,p,g,m,v;return ft().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(c={name:"RSA-OAEP",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:"SHA-256"},t=null,a="",r="",i="",f=/kek=localstorage/gi.test("object"===("undefined"==typeof location?"undefined":lt(location))?location.href:""),e.prev=7,s=performance.now(),!(o=f?localStorage.getItem("player_keypair"):null)){e.next=23;break}if(!((l=JSON.parse(o))&&l.privateKey&&l.publicKey)){e.next=23;break}return Up(Ov,"Found key pair in local storage",l),a=l.privateKey,r=l.publicKey,i=atob(l.publicKey.replace(Mv,"").replace(Fv,"").replace(/\s/g,"")),n=atob(l.privateKey.replace("-----BEGIN PRIVATE KEY-----","").replace("-----END PRIVATE KEY-----","").replace(/\s/g,"")),e.next=20,Bv(n,i,c);case 20:t=e.sent,d=performance.now(),Up(Ov,"importKeyPair took ".concat(d-s," milliseconds"));case 23:e.next=28;break;case 25:e.prev=25,e.t0=e.catch(7),Up(Ov,"importKeyPair error:",e.t0);case 28:if(t){e.next=46;break}return u=performance.now(),e.next=32,Hp(c);case 32:return t=e.sent,e.next=35,crypto.subtle.exportKey("pkcs8",t.privateKey);case 35:return h=e.sent,b=Nv(h),a=window.btoa(b),e.next=40,crypto.subtle.exportKey("spki",t.publicKey);case 40:p=e.sent,i=Nv(p),r=window.btoa(i),g=performance.now(),Up(Ov,"keyPair generated, took ".concat(g-u," milliseconds")),f&&localStorage.setItem("player_keypair",JSON.stringify({privateKey:a,publicKey:r}));case 46:return m="".concat(Mv,"\n").concat(r,"\n").concat(Fv),Up(Ov,"Public key (PEM format): \n".concat(m)),v=btoa(Ip(i.split("")).join("")),Up(Ov,"drmKeK: ".concat(v)),e.abrupt("return",{keyPair:t,drmKeK:v});case 51:case"end":return e.stop()}}),e,null,[[7,25]])})))).apply(this,arguments)}var Kv={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(e){this.toString=function(){return"CORRUPT: "+this.message},this.message=e},invalid:function(e){this.toString=function(){return"INVALID: "+this.message},this.message=e},bug:function(e){this.toString=function(){return"BUG: "+this.message},this.message=e},notReady:function(e){this.toString=function(){return"NOT READY: "+this.message},this.message=e}}};function Vv(e,c){return Hv.apply(this,arguments)}function Hv(){return(Hv=Jc(ft().mark((function e(c,t){var a,r,i,n,f,s,o;return ft().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=t.iv,r=t.tagLength,i=t.data,n=null,c=sg.StringToArrayBuffer(c),i=sg.Base64ToHex(i,!0),e.prev=4,e.next=7,crypto.subtle.importKey("raw",c,"AES-GCM",!0,["encrypt","decrypt"]);case 7:f=e.sent,e.next=14;break;case 10:throw e.prev=10,e.t0=e.catch(4),s=e.t0 instanceof Error?e.t0.message:String(e.t0),new Error("importKey: ".concat(s));case 14:return e.prev=14,e.next=17,crypto.subtle.decrypt({name:"AES-GCM",iv:new Uint8Array(a),tagLength:r},f,i);case 17:n=e.sent,e.next=32;break;case 20:if(e.prev=20,e.t1=e.catch(14),"OperationError"!==(o=(e.t1 instanceof DOMException||e.t1 instanceof Error?e.t1.name:"")||String(e.t1))){e.next=27;break}throw new Error("Wrong Password.");case 27:if("InvalidAccessError"!==o){e.next=31;break}throw new Error("Invalid Key");case 31:throw e.t1 instanceof Error?e.t1:new Error(String(e.t1));case 32:return e.abrupt("return",new TextDecoder("utf-8").decode(n));case 33:case"end":return e.stop()}}),e,null,[[4,10],[14,20]])})))).apply(this,arguments)}function qv(e,c){return Yv.apply(this,arguments)}function Yv(){return(Yv=Jc(ft().mark((function e(c,t){var a,r,i,n,f,s,o;return ft().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=t.iv,r=t.tagLength,i=t.data,n=btoa(sg.ArrayBufferToString(a)),f=Kv.codec.base64.toBits(n),s=Kv.codec.utf8String.toBits(c),o=new Kv.cipher.aes(s),e.abrupt("return",Kv.codec.utf8String.fromBits(Kv.mode.gcm.decrypt(o,Kv.codec.base64.toBits(i),f,[],r)));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}Kv.cipher.aes=function(e){this._tables[0][0][0]||this._precompute();var c,t,a,r,i,n=this._tables[0][4],f=this._tables[1],s=e.length,o=1;if(4!==s&&6!==s&&8!==s)throw new Kv.exception.invalid("invalid aes key size");for(this._key=[r=e.slice(0),i=[]],c=s;c<4*s+28;c++)a=r[c-1],(c%s==0||8===s&&c%s==4)&&(a=n[a>>>24]<<24^n[a>>16&255]<<16^n[a>>8&255]<<8^n[255&a],c%s==0&&(a=a<<8^a>>>24^o<<24,o=o<<1^283*(o>>7))),r[c]=r[c-s]^a;for(t=0;c;t++,c--)a=r[3&t?c:c-4],i[t]=c<=4||t<4?a:f[0][n[a>>>24]]^f[1][n[a>>16&255]]^f[2][n[a>>8&255]]^f[3][n[255&a]]},Kv.cipher.aes.prototype={encrypt:function(e){return this._crypt(e,0)},decrypt:function(e){return this._crypt(e,1)},_tables:[[[],[],[],[],[]],[[],[],[],[],[]]],_precompute:function(){var e,c,t,a,r,i,n,f,s=this._tables[0],o=this._tables[1],l=s[4],d=o[4],u=[],h=[];for(e=0;e<256;e++)h[(u[e]=e<<1^283*(e>>7))^e]=e;for(c=t=0;!l[c];c^=a||1,t=h[t]||1)for(i=(i=t^t<<1^t<<2^t<<3^t<<4)>>8^255&i^99,l[c]=i,d[i]=c,f=16843009*u[r=u[a=u[c]]]^65537*r^257*a^16843008*c,n=257*u[i]^16843008*i,e=0;e<4;e++)s[e][c]=n=n<<24^n>>>8,o[e][i]=f=f<<24^f>>>8;for(e=0;e<5;e++)s[e]=s[e].slice(0),o[e]=o[e].slice(0)},_crypt:function(e,c){if(4!==e.length)throw new Kv.exception.invalid("invalid aes block size");var t,a,r,i,n=this._key[c],f=e[0]^n[0],s=e[c?3:1]^n[1],o=e[2]^n[2],l=e[c?1:3]^n[3],d=n.length/4-2,u=4,h=[0,0,0,0],b=this._tables[c],p=b[0],g=b[1],m=b[2],v=b[3],y=b[4];for(i=0;i<d;i++)t=p[f>>>24]^g[s>>16&255]^m[o>>8&255]^v[255&l]^n[u],a=p[s>>>24]^g[o>>16&255]^m[l>>8&255]^v[255&f]^n[u+1],r=p[o>>>24]^g[l>>16&255]^m[f>>8&255]^v[255&s]^n[u+2],l=p[l>>>24]^g[f>>16&255]^m[s>>8&255]^v[255&o]^n[u+3],u+=4,f=t,s=a,o=r;for(i=0;i<4;i++)h[c?3&-i:i]=y[f>>>24]<<24^y[s>>16&255]<<16^y[o>>8&255]<<8^y[255&l]^n[u++],t=f,f=s,s=o,o=l,l=t;return h}},Kv.bitArray={bitSlice:function(e,c,t){return e=Kv.bitArray._shiftRight(e.slice(c/32),32-(31&c)).slice(1),void 0===t?e:Kv.bitArray.clamp(e,t-c)},extract:function(e,c,t){var a=Math.floor(-c-t&31);return(-32&(c+t-1^c)?e[c/32|0]<<32-a^e[c/32+1|0]>>>a:e[c/32|0]>>>a)&(1<<t)-1},concat:function(e,c){if(0===e.length||0===c.length)return e.concat(c);var t=e[e.length-1],a=Kv.bitArray.getPartial(t);return 32===a?e.concat(c):Kv.bitArray._shiftRight(c,a,0|t,e.slice(0,e.length-1))},bitLength:function(e){var c,t=e.length;return 0===t?0:(c=e[t-1],32*(t-1)+Kv.bitArray.getPartial(c))},clamp:function(e,c){if(32*e.length<c)return e;var t=(e=e.slice(0,Math.ceil(c/32))).length;return c&=31,t>0&&c&&(e[t-1]=Kv.bitArray.partial(c,e[t-1]&2147483648>>c-1,1)),e},partial:function(e,c,t){return 32===e?c:(t?0|c:c<<32-e)+1099511627776*e},getPartial:function(e){return Math.round(e/1099511627776)||32},equal:function(e,c){if(Kv.bitArray.bitLength(e)!==Kv.bitArray.bitLength(c))return!1;var t,a=0;for(t=0;t<e.length;t++)a|=e[t]^c[t];return 0===a},_shiftRight:function(e,c,t,a){var r,i,n;for(void 0===a&&(a=[]);c>=32;c-=32)a.push(t),t=0;if(0===c)return a.concat(e);for(r=0;r<e.length;r++)a.push(t|e[r]>>>c),t=e[r]<<32-c;return i=e.length?e[e.length-1]:0,n=Kv.bitArray.getPartial(i),a.push(Kv.bitArray.partial(c+n&31,c+n>32?t:a.pop(),1)),a},_xor4:function(e,c){return[e[0]^c[0],e[1]^c[1],e[2]^c[2],e[3]^c[3]]},byteswapM:function(e){var c,t;for(c=0;c<e.length;++c)t=e[c],e[c]=t>>>24|t>>>8&65280|(65280&t)<<8|t<<24;return e}},Kv.codec.utf8String={fromBits:function(e){var c,t,a="",r=Kv.bitArray.bitLength(e);for(c=0;c<r/8;c++)3&c||(t=e[c/4]),a+=String.fromCharCode(t>>>8>>>8>>>8),t<<=8;return decodeURIComponent(escape(a))},toBits:function(e){e=unescape(encodeURIComponent(e));var c,t=[],a=0;for(c=0;c<e.length;c++)a=a<<8|e.charCodeAt(c),3&~c||(t.push(a),a=0);return 3&c&&t.push(Kv.bitArray.partial(8*(3&c),a)),t}},Kv.codec.base64={_chars:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fromBits:function(e,c,t){var a,r="",i=0,n=Kv.codec.base64._chars,f=0,s=Kv.bitArray.bitLength(e);for(t&&(n=n.substr(0,62)+"-_"),a=0;6*r.length<s;)r+=n.charAt((f^e[a]>>>i)>>>26),i<6?(f=e[a]<<6-i,i+=26,a++):(f<<=6,i-=6);for(;3&r.length&&!c;)r+="=";return r},toBits:function(e,c){e=e.replace(/\s|=/g,"");var t,a,r=[],i=0,n=Kv.codec.base64._chars,f=0;for(c&&(n=n.substr(0,62)+"-_"),t=0;t<e.length;t++){if((a=n.indexOf(e.charAt(t)))<0)throw new Kv.exception.invalid("this isn't base64!");i>26?(i-=26,r.push(f^a>>>i),f=a<<32-i):f^=a<<32-(i+=6)}return 56&i&&r.push(Kv.bitArray.partial(56&i,f,1)),r}},Kv.codec.base64url={fromBits:function(e){return Kv.codec.base64.fromBits(e,1,1)},toBits:function(e){return Kv.codec.base64.toBits(e,1)}},Kv.mode.gcm={name:"gcm",encrypt:function(e,c,t,a,r){var i,n=c.slice(0),f=Kv.bitArray;return r=r||128,a=a||[],i=Kv.mode.gcm._ctrMode(!0,e,n,a,t,r),f.concat(i.data,i.tag)},decrypt:function(e,c,t,a,r){var i,n,f=c.slice(0),s=Kv.bitArray,o=s.bitLength(f);if(a=a||[],(r=r||128)<=o?(n=s.bitSlice(f,o-r),f=s.bitSlice(f,0,o-r)):(n=f,f=[]),i=Kv.mode.gcm._ctrMode(!1,e,f,a,t,r),!s.equal(i.tag,n))throw new Kv.exception.corrupt("gcm: tag doesn't match");return i.data},_galoisMultiply:function(e,c){var t,a,r,i,n,f=Kv.bitArray._xor4;for(r=[0,0,0,0],i=c.slice(0),t=0;t<128;t++){for(!!(e[Math.floor(t/32)]&1<<31-t%32)&&(r=f(r,i)),n=!!(1&i[3]),a=3;a>0;a--)i[a]=i[a]>>>1|(1&i[a-1])<<31;i[0]=i[0]>>>1,n&&(i[0]=i[0]^225<<24)}return r},_ghash:function(e,c,t){var a,r,i=t.length;for(a=c.slice(0),r=0;r<i;r+=4)a[0]^=4294967295&t[r],a[1]^=4294967295&t[r+1],a[2]^=4294967295&t[r+2],a[3]^=4294967295&t[r+3],a=Kv.mode.gcm._galoisMultiply(a,e);return a},_ctrMode:function(e,c,t,a,r,i){var n,f,s,o,l,d,u,h,b,p,g,m,v=Kv.bitArray;for(b=t.length,p=v.bitLength(t),g=v.bitLength(a),m=v.bitLength(r),n=c.encrypt([0,0,0,0]),96===m?(f=r.slice(0),f=v.concat(f,[1])):(f=Kv.mode.gcm._ghash(n,[0,0,0,0],r),f=Kv.mode.gcm._ghash(n,f,[0,0,Math.floor(m/4294967296),4294967295&m])),s=Kv.mode.gcm._ghash(n,[0,0,0,0],a),d=f.slice(0),u=s.slice(0),e||(u=Kv.mode.gcm._ghash(n,s,t)),l=0;l<b;l+=4)d[3]++,o=c.encrypt(d),t[l]^=o[0],t[l+1]^=o[1],t[l+2]^=o[2],t[l+3]^=o[3];return t=v.clamp(t,p),e&&(u=Kv.mode.gcm._ghash(n,s,t)),h=[Math.floor(g/4294967296),4294967295&g,Math.floor(p/4294967296),4294967295&p],u=Kv.mode.gcm._ghash(n,u,h),o=c.encrypt(f),u[0]^=o[0],u[1]^=o[1],u[2]^=o[2],u[3]^=o[3],{tag:v.bitSlice(u,0,i),data:t}}};var Wv,zv={webCryptoDecrypt:Vv,decrypt:(Wv=Jc(ft().mark((function e(c,t){var a,r;return ft().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("string"==typeof t&&(t=JSON.parse(t)),!t.enableSoftwareAES&&null!==(a=crypto)&&void 0!==a&&a.subtle){e.next=7;break}return e.next=4,qv(c,t);case 4:r=e.sent,e.next=18;break;case 7:return e.prev=7,e.next=10,Vv(c,t);case 10:r=e.sent,e.next=18;break;case 13:return e.prev=13,e.t0=e.catch(7),e.next=17,qv(c,t);case 17:r=e.sent;case 18:return e.abrupt("return",r);case 19:case"end":return e.stop()}}),e,null,[[7,13]])}))),function(e,c){return Wv.apply(this,arguments)})};function Xv(e,c,t){function a(e,c){var t=parseInt(e.slice(c,c+2),16);return t>>>7==0?[1,t]:t>>>6==2?(t=(63&t)<<8,[2,t+=parseInt(e.slice(c+2,c+4),16)]):(t=(63&t)<<16,[3,t+=parseInt(e.slice(c+2,c+6),16)])}var r,i=0,n=[],f=[];for(r=0;r<4;++r)i+=(3&parseInt(e.slice(8+2*r,10+2*r),16))<<2*r;var s=parseInt(e.slice(16,24),16),o=2*parseInt(e.slice(32,40),16);for(r=40;r<o+40;r+=2)n.push(parseInt(e.slice(r,r+2),16));var l=o+40,d=parseInt(e.slice(l,l+4),16);for(l+=4,r=0;r<d;++r){var u=a(e,l);l+=2*u[0];for(var h="",b=0;b<u[1];++b){var p=a(e,l);h+=String.fromCharCode(i^p[1]),l+=2*p[0]}f.push(h)}return c.p=null,function e(c,t,a,r,i){var s,o,l,d,u,h=-1,b=[],p=null,g=[t];for(o=Math.min(t.length,a),l=0;l<o;++l)g.push(t[l]);g.p=r;for(var m=[];;)try{switch(n[c++]){case 59:b[++h]=!0;break;case 4:b[++h]=!1;break;case 21:b[++h]=null;break;case 42:s=n[c++],b[++h]=s<<24>>24;break;case 46:s=((s=((s=n[c++])<<8)+n[c++])<<8)+n[c++],b[++h]=(s<<8)+n[c++];break;case 58:s=(n[c]<<8)+n[c+1],c+=2,b[++h]=f[s];break;case 6:b[++h]=void 0;break;case 53:b[++h]=i;break;case 68:s=(n[c]<<8)+n[c+1],c+=2,h=h-s+1,o=b.slice(h,h+s),b[h]=o;break;case 20:b[++h]={};break;case 54:s=(n[c]<<8)+n[c+1],c+=2,o=f[s],l=b[h--],b[h][o]=l;break;case 48:for(o=n[c++],l=n[c++],d=g;o>0;--o)d=d.p;b[++h]=d[l];break;case 30:s=(n[c]<<8)+n[c+1],c+=2,o=f[s],b[h]=b[h][o];break;case 74:o=b[h--],b[h]=b[h][o];break;case 56:for(o=n[c++],l=n[c++],d=g;o>0;--o)d=d.p;d[l]=b[h--];break;case 50:s=(n[c]<<8)+n[c+1],c+=2,o=f[s],l=b[h--],d=b[h--],l[o]=d;break;case 27:o=b[h--],l=b[h--],d=b[h--],l[o]=d;break;case 75:for(o=n[c++],l=n[c++],d=g,d=g;o>0;--o)d=d.p;b[++h]=d,b[++h]=l;break;case 28:o=b[h--],b[h]+=o;break;case 34:b[h]=-b[h];break;case 66:o=b[h--],b[h]=b[h]===o;break;case 44:o=b[h--],b[h]=b[h]!==o;break;case 19:o=b[h--],b[h]=b[h]>o;break;case 41:b[h]=!b[h];break;case 69:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,b[h]?--h:c+=s;break;case 8:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,b[h]?c+=s:--h;break;case 35:o=b[h--],(l=b[h--])[o]=b[h];break;case 60:b[h]=void 0;break;case 15:b[h]=typeof b[h];break;case 12:s=n[c++],o=b[h--],(l=function e(){var c=e._v;return(0,e._u)(c[0],arguments,c[1],c[2],this)})._v=[o,s,g],l._u=e,b[++h]=l;break;case 65:s=n[c++],o=b[h--],(d=[l=function e(){var c=e._v;return(0,e._u)(c[0],arguments,c[1],c[2],this)}]).p=g,l._v=[o,s,d],l._u=e,b[++h]=l;break;case 49:throw o=b[h--];case 13:for(o=b[h--],l=null;d=m.pop();)if(2===d[0]||3===d[0]){l=d;break}if(l)c=l[2],l[0]=0,m.push(l);else{if(!p)return o;c=p[1],i=p[2],g=p[3],m=p[4],b[++h]=o,p=p[0]}break;case 36:h-=s=n[c++],l=b.slice(h+1,h+s+1),o=b[h--],d=b[h--],o._u===e?(o=o._v,p=[p,c,i,g,m],c=o[0],null==d&&(d=function(){return this}()),i=d,(g=[l].concat(l)).length=Math.min(o[1],s)+1,g.p=o[2],m=[]):(u=o.apply(d,l),b[++h]=u);break;case 61:for(s=n[c++],d=[void 0],u=s;u>0;--u)d[u]=b[h--];l=b[h--],u=new(o=Function.bind.apply(l,d)),b[++h]=u;break;case 63:c+=2+(s=(s=(n[c]<<8)+n[c+1])<<16>>16);break;case 51:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,(o=b[h--])||(c+=s);break;case 10:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,o=b[h--],b[h]===o&&(--h,c+=s);break;case 18:--h;break;case 70:o=b[h],b[++h]=o;break;default:throw new Error("ioe")}}catch(v){for(;(s=m.pop())&&!s[0];);if(!s){e:for(;p;){for(o=p[4];s=o.pop();)if(s[0])break e;p=p[0]}if(!p)throw v;c=p[1],i=p[2],g=p[3],m=p[4],p=p[0]}1===(o=s[0])?(c=s[2],s[0]=0,m.push(s),b[++h]=v):2===o?(c=s[2],s[0]=0,m.push(s)):(c=s[3],s[0]=2,m.push(s),b[++h]=v)}}(s,[],0,c,t)}e.TRANSFORM_IV=void 0,e.transformUnionKey=void 0,function(e,c,t){function a(e,c){var t=parseInt(e.slice(c,c+2),16);return t>>>7==0?[1,t]:t>>>6==2?(t=(63&t)<<8,[2,t+=parseInt(e.slice(c+2,c+4),16)]):(t=(63&t)<<16,[3,t+=parseInt(e.slice(c+2,c+6),16)])}var r,i=0,n=[],f=[];for(r=0;r<4;++r)i+=(3&parseInt(e.slice(8+2*r,10+2*r),16))<<2*r;var s=parseInt(e.slice(16,24),16),o=2*parseInt(e.slice(32,40),16);for(r=40;r<o+40;r+=2)n.push(parseInt(e.slice(r,r+2),16));var l=o+40,d=parseInt(e.slice(l,l+4),16);for(l+=4,r=0;r<d;++r){var u=a(e,l);l+=2*u[0];for(var h="",b=0;b<u[1];++b){var p=a(e,l);h+=String.fromCharCode(i^p[1]),l+=2*p[0]}f.push(h)}c.p=null,function e(c,t,a,r,i){var s,o,l,d,u,h=-1,b=[],p=null,g=[t];for(o=Math.min(t.length,a),l=0;l<o;++l)g.push(t[l]);g.p=r;for(var m=[];;)try{switch(n[c++]){case 21:b[++h]=null;break;case 42:s=n[c++],b[++h]=s<<24>>24;break;case 24:s=(n[c]<<8)+n[c+1],c+=2,b[++h]=s<<16>>16;break;case 46:s=((s=((s=n[c++])<<8)+n[c++])<<8)+n[c++],b[++h]=(s<<8)+n[c++];break;case 58:s=(n[c]<<8)+n[c+1],c+=2,b[++h]=f[s];break;case 6:b[++h]=void 0;break;case 53:b[++h]=i;break;case 68:s=(n[c]<<8)+n[c+1],c+=2,h=h-s+1,o=b.slice(h,h+s),b[h]=o;break;case 20:b[++h]={};break;case 54:s=(n[c]<<8)+n[c+1],c+=2,o=f[s],l=b[h--],b[h][o]=l;break;case 48:for(o=n[c++],l=n[c++],d=g;o>0;--o)d=d.p;b[++h]=d[l];break;case 30:s=(n[c]<<8)+n[c+1],c+=2,o=f[s],b[h]=b[h][o];break;case 56:for(o=n[c++],l=n[c++],d=g;o>0;--o)d=d.p;d[l]=b[h--];break;case 50:s=(n[c]<<8)+n[c+1],c+=2,o=f[s],l=b[h--],d=b[h--],l[o]=d;break;case 35:o=b[h--],(l=b[h--])[o]=b[h];break;case 12:s=n[c++],o=b[h--],(l=function e(){var c=e._v;return(0,e._u)(c[0],arguments,c[1],c[2],this)})._v=[o,s,g],l._u=e,b[++h]=l;break;case 65:s=n[c++],o=b[h--],(d=[l=function e(){var c=e._v;return(0,e._u)(c[0],arguments,c[1],c[2],this)}]).p=g,l._v=[o,s,d],l._u=e,b[++h]=l;break;case 13:for(o=b[h--],l=null;d=m.pop();)if(2===d[0]||3===d[0]){l=d;break}if(l)c=l[2],l[0]=0,m.push(l);else{if(!p)return o;c=p[1],i=p[2],g=p[3],m=p[4],b[++h]=o,p=p[0]}break;case 36:h-=s=n[c++],l=b.slice(h+1,h+s+1),o=b[h--],d=b[h--],o._u===e?(o=o._v,p=[p,c,i,g,m],c=o[0],null==d&&(d=function(){return this}()),i=d,(g=[l].concat(l)).length=Math.min(o[1],s)+1,g.p=o[2],m=[]):(u=o.apply(d,l),b[++h]=u);break;case 61:for(s=n[c++],d=[void 0],u=s;u>0;--u)d[u]=b[h--];l=b[h--],u=new(o=Function.bind.apply(l,d)),b[++h]=u;break;case 63:c+=2+(s=(s=(n[c]<<8)+n[c+1])<<16>>16);break;case 51:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,(o=b[h--])||(c+=s);break;case 10:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,o=b[h--],b[h]===o&&(--h,c+=s);break;case 18:--h;break;case 70:o=b[h],b[++h]=o;break;default:throw new Error("ioe")}}catch(v){for(;(s=m.pop())&&!s[0];);if(!s){e:for(;p;){for(o=p[4];s=o.pop();)if(s[0])break e;p=p[0]}if(!p)throw v;c=p[1],i=p[2],g=p[3],m=p[4],p=p[0]}1===(o=s[0])?(c=s[2],s[0]=0,m.push(s),b[++h]=v):2===o?(c=s[2],s[0]=0,m.push(s)):(c=s[3],s[0]=2,m.push(s),b[++h]=v)}}(s,[],0,c,t)}("504B01016a0a998e000000d98c990b6a0000011a300101461e00013530000024020d15300201153002022400461e00022e00000038410224012401380101300101461e00013530000024020d153004022400461e00032e0000004f410130010024020d2a013300833000011e00043000013a0005232a000a00142a030a00462a050a005a3a00060a0054123f005a300604461e000730020224013802032a03300001320004300603461e00083002031430020136000930060536000a18008036000b24020d3000011e000c380204300001461e000d3a000e30020424020d300001461e000f24000d3fff78060d2e000000000c023801062e0000000e0c003800013001002a5b2a682a452a4b18009c1800ab1800ee2a471800ca2a041800f42a0544000c3d011e0000380105060d00100680f880ef80fc80fc80ff80e80580fb80ea80ea80f680e30480f780fb80e880f10480ed80e880fb80ea0480f480ff80e280ee0480ea80e880ff80ec0380ff80f480fe0480f280fb80e980f20780fe80ff80f980e880e380ea80ee0480fe80fb80ee80fb0280f380ec0980ee80fb80fd80d680ff80f480fd80ee80f20480e980ff80f480ee0680fb80f880e880ef80ea80ee0680e880ff80ee80ef80e880f40480e980ee80f580ea",{0:Uint8Array,get 1(){return Jc},get 2(){return ft},get 3(){return zv},get 4(){return Cv},get 5(){return e.TRANSFORM_IV},set 5(c){e.TRANSFORM_IV=c},get 6(){return e.transformUnionKey},set 6(c){e.transformUnionKey=c}},void 0);var Qv="volcvui",Jv=new Map,Zv=new Map,ey=void 0,cy=function(){function c(t){var a;return et(this,c),(a=Zc(this,c)).EMEError=function(c){a.emit(e.EVENT_EME.ERROR,c)},a.encryptHandle=function(){var c;null===(c=a.eme)||void 0===c||c.emit(e.EVENT_EME.ENCRYPTED)},a.config=cy.defaultConfig,a.updateConfig(t),a.config.isEncrypt=!!(a.config.kid||a.config.drm||a.config.secretKey||a.config.drmKeyToken||a.config.keyValue),a.on(e.EVENT_EME.ENCRYPTED,a.encryptHandle),a}return it(c,kh),tt(c,[{key:"destroy",value:function(){this.removeAllListeners(),this.eme&&(this.eme.destroy(),this.eme=null)}},{key:"log",value:function(e){for(var c=arguments.length,t=new Array(c>1?c-1:0),a=1;a<c;a++)t[a-1]=arguments[a];Up.apply(void 0,[e].concat(t))}},{key:"setupEME",value:function(e){this.eme&&this.eme.setupEME(e)}},{key:"updateConfig",value:function(e){var c=this;Object.keys(e).map((function(t){void 0!==e[t]&&null!==e[t]&&(c.config[t]=e[t])})),this.log("set config",JSON.stringify(this.config))}},{key:"setOptions",value:function(e){this.eme&&this.eme.setOptions(e)}},{key:"getSecretKeyByToken",value:function(e,c,t){var a=this,r=this.config,i=e||r.kid,n=c||r.playDomain||"";n.indexOf("//")<0&&(n="//".concat(n));var f=t||r.drmKeyToken||"",s=sg.isBase64(f)?window.atob(f):f,o="".concat(n,"?").concat(s,"&PlayAuthIds=").concat(i,"&ssl=true");s.indexOf("DrmType=")<0&&(o+="&DrmType=".concat(r.useUnionInfoDRM?"webdevice":"22")),this.log("getSecretKeyByToken start, vid,",r.vid,o);var l=Promise.withResolvers(),d=l.promise,u=l.resolve,h=l.reject;return Dp({type:"json",method:"GET",url:o}).then((function(e){var c,t,i=e.response;if("string"==typeof i&&(i=JSON.parse(i)),i&&null!==(c=i)&&void 0!==c&&c.Result&&(null===(t=i.Result.PlayAuthInfoList)||void 0===t?void 0:t.length)>0){var n=i.Result.PlayAuthInfoList[0].PlayAuthContent;a.log("getSecretKeyByToken end, vid,",r.vid,",res,",JSON.stringify(i)),u(n)}else h(new Error("getSecretKeyByToken end, vid, ".concat(r.vid,", response null")))})).catch((function(e){h(e)})),d}},{key:"getLicense",value:function c(){return Xv("504B01016a0a998e0000031e8c990b6a000003a1153003032400461e000b2e000000224101300100152a052a2044000244000124040d2a013302f53000011e000c3000013a000d232a000a00462a030a00672a0a0a01062a0b0a010a2a130a01e12a160a01f02a170a01f42a190a01fa2a1a0a01fb2a200a02562a250a02882a270a028e2a290a029a3a000e0a0294123f029a143a000f360010043600113802012a0330000132000c300401461e001230020130040a24020d3004011e00004b020223123002021e00134b020323123002021e00144b020423123004040800033002030800033002040800093004011e00001e00152933000b2a2730000132000c3f02292a0530000132000d3004011e00001e00150800033002043802073002030800093004044500033004052933000b2a0b30000132000c3f01f12a0a30000132000c1530050430040330020330040430040530040630050524060d3000011e00163802073004044500093002074b020523152c4500073002052a003c2c4500063002051e001733000d3002071e00173004044a3f00033002073802083004011e00004b020a231230020a1e00184b020b231230020a1e00194b020c2312300401461e001a240038020d3002082945000d3004011e00001e00144b0208231230020b45000330020d450018300506461e001b30020d1e001c30020d1e001d30020c24032933000b2a1930000132000c3f011a3005070f3a001e422933000b2a1630000132000c3f01032a1330000132000c1530050730020830020d1e001d24020d3000011e00163802092a1730000132000c3f00d73005083a001f3d01312a1a30000132000c3f00c33002083802093004044500093002074b020623152c4500073002062a003c2c4500063002061e00173300163002093002071e00173004041b3002073002013200153002093002013200143b300201320011153004093002012401122a2530000132000c3f005d2a2030000132000d300001463a00204a2a052401300001320021043002013200113000011e00213002013200221530040a3002012401122a2930000132000c3f001b3b30020132001115300409300201240112300001461e002324000d3ffd06060d35380001351e00003800023000021e00013800033000021e00023800043000021e00033800053000021e0004380006300101461e000524003800073000071e00063800083000071e00073800093000071e000838000a300101461e00072400461e000915300102153001032400461e000a2e000000004100240124012401123000080d00240680f980f580f480fc80f380fd0380ec80f380fe0380f180f380fe0d80fd80ff80ee80d680f380f980ff80f480e980ff80cf80e880f60780fe80e880f780ce80e380ea80ff0d80ed80f380ee80f280c880ff80e980f580f680ec80ff80e880e90780ea80e880f580f780f380e980ff0780e880ff80e980f580f680ec80ff0680e880ff80f080ff80f980ee0480ee80f280ff80f40480f780fb80e880f10480ed80e880fb80ea0480f480ff80e280ee0480ea80e880ff80ec0380ff80f480fe0a80fd80ff80ee80d680f380f980ff80f480e980ff0680f780ff80ee80f280f580fe0780e980ef80f980f980ff80e980e91780c580ee80e880e380dd80ff80ee80c980ff80f980e880ff80ee80d180ff80e380d880e380ce80f580f180ff80f40980e980ff80f980e880ff80ee80d180ff80e30880f180ff80e380cc80fb80f680ef80ff0380fe80e880f70480e980ff80f480ee0980f980f680ff80fb80e880d180ff80e380e90f80ef80e980ff80cf80f480f380f580f480d380f480fc80f580de80c880d71780f180ff80e380ce80f580f180ff80f480df80e280ea80f380e880ff80fe80de80ef80e880fb80ee80f380f580f40d80c580fd80ff80ee80cf80f480f380f580f480d380f480fc80f51580f980f280ff80f980f180cf80f480f380f580f480d380f480fc80f580df80e280ea80f380e880ff80fe0780ef80f480f380f580f480d380de0980ef80f480f380f580f480d380f480fc80f50880fc80ef80f480f980ee80f380f580f44980ce80f280ff80ba80b880ee80e880fb80f480e980fc80f580e880f780cf80f480f380f580f480d180ff80e380b880ba80e980f280f580ef80f680fe80ba80f880ff80ba80ea80e880f580ec80f380fe80ff80fe80ba80f380f480ba80f980f580f480fc80f380fd80ef80e880fb80ee80f380f580f480ba80fb80e980ba80fb80ba80fc80ef80f480f980ee80f380f580f40580f980fb80ee80f980f20280ee80aa0580ff80e880e880f580e80480e980ee80f580ea",{get 0(){return c},1:Promise,get 2(){return Jc},get 3(){return ft},get 4(){return Mp},get 5(){return ey},get 6(){return sg},get 7(){return void 0!==e.transformUnionKey?e.transformUnionKey:void 0},8:Error,9:arguments},this)}},{key:"_tryGetSecretKeyByToken",value:(a=Jc(ft().mark((function e(c,t){var a,r,i,n;return ft().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=this.config,r=a.kid,i=a.drmKeyToken,n=a.playDomain,!(r&&i&&n)){e.next=14;break}return e.prev=2,e.next=5,this.getSecretKeyByToken(r,n,i);case 5:this.config.secretKey=e.sent,c.success=!0,e.next=14;break;case 9:e.prev=9,e.t0=e.catch(2),c.success=!1,c.error=e.t0,t(c);case 14:case"end":return e.stop()}}),e,this,[[2,9]])}))),function(e,c){return a.apply(this,arguments)})},{key:"updateKid",value:function e(c){return Xv("504B01016a0a998e000000008c990b6a00000017351e000045000d351e0000461e0001300102240112060d00020380ff80f780ff0980ef80ea80fe80fb80ee80ff80d180f380fe",{get 0(){return e},1:arguments,2:c},this)}},{key:"getLicenseSecret",value:function c(){return Xv("504B01016a0a998e0000032c8c990b6a0000048a300101461e000c3002021e000b300001240212060d300101461e000c3002021e000d300001240212060d153003072400461e001e2e0000004c4101300100152a0b2a1e44000244000124040d2a013302d93000011e001f3000013a0020232a000a00412a030a00622a050a00892a0a0a00e02a0b0a00e42a0f0a01152a100a01192a170a01d12a180a01d52a190a01ee2a1e0a02512a230a02833a00210a027d123f0283143a0022360023043600243802012a0330000132001f300401461e002530020130040f24020d3002011e0024294500063002011e00262933000b2a0530000132001f3f023e300001461e00273a002824010d3004011e00001e002938020230020229450004300407292933000b2a0b30000132001f3f020b3004044500033004052933000b2a0b30000132001f3f01f32a0a30000132001f153005083004030800033a002a30040430040524030d3000011e002b3802022a0b3000013200203004083005091e002c422933000b2a1030000132001f3f01ab2a0f30000132001f1530050a30020230050b24020d3000011e002b3802023004063300273004073300093004073802023f00183002023300121530050c1530050d300202240124013802023004011e00004b020323123002031e002d4b020423123002031e002e4b02052312300401461e002f240038020630020445000330020645001830050e461e00303002061e00313002061e003230020524032933000b2a1930000132001f3f01003004064500033002022933000b2a1830000132001f3f00e82a1730000132001f1530050f3002023002061e003224020d3000011e002b38020230050e461e0033300510461e00343002061e00322401240130020132003530040633003d14143600363802073004040800033005113802083002023002071e00363002081b3004011e0007461e00173002072401122a003c3002013200293f00093002023002013200293b3002013200241530040e3002012401122a2330000132001f3f00412a1e300001320020300001463a00374a2a0b2401300001320038043002013200243000011e00383002013200261530040f300201240112300001461e003924000d3ffd22060d35380001351e00003800023000021e00013800033000021e00023800043000021e00033800053000021e00043800063000021e00053800073000021e0006380008351e00001e00043300bf3001013d0035320007351e0007461e00083001021e0009351e000a240212351e0007461e00083001021e000b2e000000000c01240212351e0007461e00083001021e000d2e000000150c01240212351e00001e000e38000930000445000330000933005b3001031e000f1e0010461e00112400461e00123a001324012a0122133300063a00143f00033a001538000a153001041430000a143000093000041c360016240338000b351e0007461e001730000b240112300105461e001824000d300105461e0019240038000c30000c1e001a38000d30000c1e001838000e30000c1e001b38000f300105461e00182400461e001c15300106153001072400461e001d2e0000002a41002401240124011230000d0d003a0680f980f580f480fc80f380fd0380ec80f380fe0380f180f380fe0d80fd80ff80ee80d680f380f980ff80f480e980ff80cf80e880f60680ef80e980ff80df80d780df0880f180ff80e380cc80fb80f680ef80ff0780fe80e880f780ce80e380ea80ff0380ff80f780ff0280f580f40580df80c880c880d580c80880df80d780df80df80e880e880f580e81380d980de80d780c580d680d380d980df80d480c980df80c580c980cf80d980d980df80c980c90480ff80f780f380ee1180d980de80d780c580d680d380d980df80d480c980df80c580df80c880c880d580c81380f380f480ee80ff80e880ee80e880ef80e980ee80c980ff80e880ec80ff80e880cf80c880d60980f480fb80ec80f380fd80fb80ee80f580e80980ef80e980ff80e880db80fd80ff80f480ee1180ee80f580d680f580f980fb80f680ff80d680f580ed80ff80e880d980fb80e980ff0780f380f480fe80ff80e280d580fc0680f980f280e880f580f780ff0880ed80f380fe80ff80ec80f380f480ff0980ea80f680fb80e380e880ff80fb80fe80e30980e980ff80e880ec80ff80e880cf80c880d60980ef80ea80fe80fb80ee80ff80de80e880f70780e880ff80e980f580f680ec80ff0d80ed80f380ee80f280c880ff80e980f580f680ec80ff80e880e90780ea80e880f580f780f380e980ff0680e880ff80f080ff80f980ee0480ee80f280ff80f40480f780fb80e880f10480ed80e880fb80ea0480f480ff80e280ee0480ea80e880ff80ec0380ff80f480fe0a80fd80ff80ee80d680f380f980ff80f480e980ff0680f780ff80ee80f280f580fe0780e980ef80f980f980ff80e980e91780c580ee80e880e380dd80ff80ee80c980ff80f980e880ff80ee80d180ff80e380d880e380ce80f580f180ff80f40580ff80e880e880f580e80680fb80f880e880ef80ea80ee0680e880ff80ee80ef80e880f40980e980ff80f980e880ff80ee80d180ff80e3000480e980ff80f480ee1780ca80c880d380cc80db80ce80df80c580df80d480d980c880c380ca80ce80c580cf80ca80dd80c880db80de80df0f80ef80e980ff80cf80f480f380f580f480d380f480fc80f580de80c880d71780f180ff80e380ce80f580f180ff80f480df80e280ea80f380e880ff80fe80de80ef80e880fb80ee80f380f580f40d80c580fd80ff80ee80cf80f480f380f580f480d380f480fc80f51580f980f280ff80f980f180cf80f480f380f580f480d380f480fc80f580df80e280ea80f380e880ff80fe0780ef80f480f380f580f480d380de0980ef80f480f380f580f480d380f480fc80f51380c980ee80e880f380f480fd80ce80f580db80e880e880fb80e380d880ef80fc80fc80ff80e80480f280fb80e980f20a80fe80ff80f980e880e380ea80ee80d180ff80e30980f980f680ff80fb80e880d180ff80e380e90580f980fb80ee80f980f20280ee80aa0480e980ee80f580ea",{get 0(){return c},get 1(){return dg},get 2(){return e.EVENT_EME},get 3(){return window},get 4(){return at},5:Promise,get 6(){return Jc},get 7(){return ft},get 8(){return Op},get 9(){return xp},get 10(){return Fp},get 11(){return ey},get 12(){return wp},get 13(){return atob},get 14(){return sg},get 15(){return e.transformUnionKey},get 16(){return Cv},get 17(){return tg},18:arguments},this)}},{key:"getSecretKey",value:function(){var e=this.config,c=e.vid,t=e.kid,a=e.getLicenseUrl,r=e.drmKeyToken,i=e.playDomain,n=e.secretKey;return a&&t?Op(c||"",t,a):r&&t&&i?this.getSecretKeyByToken(t,i,r):n||(console.error("[DRM]DRM,getSecretKey args is invalid"),null)}},{key:"getKeyValue",value:function e(){return Xv("504B01016a0a998e000000008c990b6a0000004d351e00003800013000011e00013800023000011e00023800033000011e00033800043000011e00043800053000011e00053800061530010130000230000530000330000430000630010224060d00060680f980f580f480fc80f380fd0380ec80f380fe0380f180f380fe0d80fd80ff80ee80d680f380f980ff80f480e980ff80cf80e880f60980e980ff80f980e880ff80ee80d180ff80e30780fe80e880f780ce80e380ea80ff",{get 0(){return e},get 1(){return Mp},get 2(){return ey},3:arguments},this)}},{key:"_getUnionInfo",value:function(){var e=this.config,c=e.drmType,t=e.sessionId;if(!e.useUnionInfoDRM||!t)return null;var a=c===xp.PRIVATE_ENCRYPT_UPGRADE?Zv:Jv;if(!a.get(t))throw new Error('The "sessionId" '.concat(t," for unionInfo is not valid"));return a.get(t)}}],[{key:"pluginName",get:function(){return"XGSecretKey"}},{key:"defaultConfig",get:function(){return{keyValue:void 0,kid:void 0,getLicenseUrl:"",secretKey:void 0,drm:void 0,drmType:void 0,vid:"",useUnionInfoDRM:!1,transformUnionKey:void 0,drmKeyToken:void 0,keyTokenExpiredDuration:void 0,playDomain:void 0,sessionId:Qv,useEME:!0,intertrustServerURL:void 0}}},{key:"updateUnionInfo",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Qv,t=sg.getUnionInfo(e);return Jv.set(c,{unionID:e,unionInfo:t}),t}},{key:"generateEncryptInfo",value:(t=Jc(ft().mark((function e(){var c,t,a,r,i,n,f=arguments;return ft().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c=f.length>0&&void 0!==f[0]?f[0]:"",t=f.length>1&&void 0!==f[1]?f[1]:Qv,e.next=4,jv();case 4:return a=e.sent,r=a.drmKeK,i=a.keyPair,n=sg.getUnionInfo(c),Zv.set(t,{unionID:c,unionInfo:n}),ey=i,e.abrupt("return",{sessionId:t,unionInfo:n,drmKeK:r});case 11:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)})}]);var t,a}(),ty=cy;ty.isWebAssemblySupported=Np,e.XGSecretKey=ty,e.aes4js=zv,e.openBox=wp,e.util=sg})(ec.exports);var cc,tc,ac,rc,ic=ec.exports;!function(e,c,t){function a(e,c){var t=parseInt(e.slice(c,c+2),16);return t>>>7==0?[1,t]:t>>>6==2?(t=(63&t)<<8,[2,t+=parseInt(e.slice(c+2,c+4),16)]):(t=(63&t)<<16,[3,t+=parseInt(e.slice(c+2,c+6),16)])}var r,i=0,n=[],f=[];for(r=0;r<4;++r)i+=(3&parseInt(e.slice(8+2*r,10+2*r),16))<<2*r;var s=parseInt(e.slice(16,24),16),o=2*parseInt(e.slice(32,40),16);for(r=40;r<o+40;r+=2)n.push(parseInt(e.slice(r,r+2),16));var l=o+40,d=parseInt(e.slice(l,l+4),16);for(l+=4,r=0;r<d;++r){var u=a(e,l);l+=2*u[0];for(var h="",b=0;b<u[1];++b){var p=a(e,l);h+=String.fromCharCode(i^p[1]),l+=2*p[0]}f.push(h)}c.p=null,function e(c,t,a,r,i){var s,o,l,d,u,h=-1,b=[],p=[0,null],g=null,m=[t];for(o=Math.min(t.length,a),l=0;l<o;++l)m.push(t[l]);m.p=r;for(var v=[];;)try{switch(n[c++]){case 55:b[++h]=null;break;case 38:s=n[c++],b[++h]=s<<24>>24;break;case 42:s=(n[c]<<8)+n[c+1],c+=2,b[++h]=s<<16>>16;break;case 19:s=((s=((s=n[c++])<<8)+n[c++])<<8)+n[c++],b[++h]=(s<<8)+n[c++];break;case 3:s=(n[c]<<8)+n[c+1],c+=2,b[++h]=+f[s];break;case 33:s=(n[c]<<8)+n[c+1],c+=2,b[++h]=f[s];break;case 61:b[++h]=void 0;break;case 23:b[++h]=i;break;case 50:s=(n[c]<<8)+n[c+1],c+=2,h=h-s+1,o=b.slice(h,h+s),b[h]=o;break;case 27:b[++h]={};break;case 60:s=(n[c]<<8)+n[c+1],c+=2,o=f[s],l=b[h--],b[h][o]=l;break;case 15:for(o=n[c++],l=n[c++],d=m;o>0;--o)d=d.p;b[++h]=d[l];break;case 36:s=(n[c]<<8)+n[c+1],c+=2,o=f[s],b[h]=b[h][o];break;case 28:o=b[h--],b[h]=b[h][o];break;case 21:for(o=n[c++],l=n[c++],d=m;o>0;--o)d=d.p;d[l]=b[h--];break;case 51:s=(n[c]<<8)+n[c+1],c+=2,o=f[s],l=b[h--],d=b[h--],l[o]=d;break;case 26:o=b[h--],l=b[h--],d=b[h--],l[o]=d;break;case 63:for(o=n[c++],l=n[c++],d=m,d=m;o>0;--o)d=d.p;b[++h]=d,b[++h]=l;break;case 75:o=b[h--],b[h]+=o;break;case 30:o=b[h--],b[h]-=o;break;case 58:o=b[h--],b[h]*=o;break;case 54:o=b[h--],b[h]/=o;break;case 59:o=b[h--],b[h]%=o;break;case 32:b[h]=-b[h];break;case 0:o=b[h--],d=++(l=b[h--])[o],b[++h]=d;break;case 57:o=b[h--],d=(l=b[h--])[o]++,b[++h]=d;break;case 64:o=b[h--],d=(l=b[h--])[o]--,b[++h]=d;break;case 14:o=b[h--],b[h]=b[h]==o;break;case 74:o=b[h--],b[h]=b[h]!=o;break;case 62:o=b[h--],b[h]=b[h]===o;break;case 47:o=b[h--],b[h]=b[h]!==o;break;case 66:o=b[h--],b[h]=b[h]<o;break;case 4:o=b[h--],b[h]=b[h]<=o;break;case 69:o=b[h--],b[h]=b[h]>o;break;case 9:o=b[h--],b[h]=b[h]>=o;break;case 1:o=b[h--],b[h]=b[h]<<o;break;case 17:o=b[h--],b[h]=b[h]>>o;break;case 65:o=b[h--],b[h]=b[h]>>>o;break;case 35:o=b[h--],b[h]=b[h]&o;break;case 16:o=b[h--],b[h]=b[h]|o;break;case 8:b[h]=~b[h];break;case 72:o=b[h--],b[h]=b[h]^o;break;case 37:b[h]=!b[h];break;case 29:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,b[h]?--h:c+=s;break;case 10:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,b[h]?c+=s:--h;break;case 6:o=b[h--],(l=b[h--])[o]=b[h];break;case 12:o=b[h--],b[h]=b[h]in o;break;case 46:o=b[h--],b[h]=b[h]instanceof o;break;case 34:b[h]=void 0;break;case 71:o=b[h--],d=delete(l=b[h--])[o],b[++h]=d;break;case 45:b[h]=typeof b[h];break;case 7:s=n[c++],o=b[h--],(l=function e(){var c=e._v;return(0,e._u)(c[0],arguments,c[1],c[2],this)})._v=[o,s,m],l._u=e,b[++h]=l;break;case 13:s=n[c++],o=b[h--],(d=[l=function e(){var c=e._v;return(0,e._u)(c[0],arguments,c[1],c[2],this)}]).p=m,l._v=[o,s,d],l._u=e,b[++h]=l;break;case 5:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,(o=v[v.length-1])[1]=c+s;break;case 24:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,(o=v[v.length-1])&&!o[1]?(o[0]=3,o.push(c)):v.push([1,0,c]),c+=s;break;case 20:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,v.push([2,0,c]),c+=s;break;case 49:throw o=b[h--];case 31:if(l=(o=v.pop())[0],d=p[0],1===l)c=o[1];else if(0===l)if(0===d)c=o[1];else{if(1!==d)throw p[1];if(!g)return p[1];c=g[1],i=g[2],m=g[3],v=g[4],b[++h]=p[1],p=[0,null],g=g[0]}else c=o[2],o[0]=0,v.push(o);break;case 11:for(o=b[h--],l=null;d=v.pop();)if(2===d[0]||3===d[0]){l=d;break}if(l)p=[1,o],c=l[2],l[0]=0,v.push(l);else{if(!g)return o;c=g[1],i=g[2],m=g[3],v=g[4],b[++h]=o,p=[0,null],g=g[0]}break;case 22:h-=s=n[c++],l=b.slice(h+1,h+s+1),o=b[h--],d=b[h--],o._u===e?(o=o._v,g=[g,c,i,m,v],c=o[0],null==d&&(d=function(){return this}()),i=d,(m=[l].concat(l)).length=Math.min(o[1],s)+1,m.p=o[2],v=[]):(u=o.apply(d,l),b[++h]=u);break;case 41:for(s=n[c++],d=[void 0],u=s;u>0;--u)d[u]=b[h--];l=b[h--],u=new(o=Function.bind.apply(l,d)),b[++h]=u;break;case 52:c+=2+(s=(s=(n[c]<<8)+n[c+1])<<16>>16);break;case 67:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,(o=b[h--])||(c+=s);break;case 2:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,o=b[h--],b[h]===o&&(--h,c+=s);break;case 53:--h;break;case 40:o=b[h],b[++h]=o;break;case 70:for(d in o=n[c++],l=b[h--],s=[],l)s.push(d);m[o]=s;break;case 76:o=n[c++],l=b[h--],d=b[h--],(s=m[o].shift())?(d[l]=s,b[++h]=!0):b[++h]=!1;break;default:throw new Error("ioe")}}catch(y){for(p=[0,null];(s=v.pop())&&!s[0];);if(!s){e:for(;g;){for(o=g[4];s=o.pop();)if(s[0])break e;g=g[0]}if(!g)throw y;c=g[1],i=g[2],m=g[3],v=g[4],g=g[0]}1===(o=s[0])?(c=s[2],s[0]=0,v.push(s),b[++h]=y):2===o?(c=s[2],s[0]=0,v.push(s),p=[3,y]):(c=s[3],s[0]=2,v.push(s),b[++h]=y)}}(s,[],0,c,t)}("504B0101bdd3db1500006e7a15d8d2be0000749d0f00022824000021000116014300bd0f0002282400020f0218210003290121000416021500042100050f02002d0e1d000b2100050f02002400062d0e4300150f0200282400060f0004210007160215000334005b2100050f02012d4a4300090f0202210008290131370f02010f000416011500050f02030f0005240009290115000326001500060f00060f00052400094243001b0f00052824000a0f000616010f00030f00061a3f0006393534ffd80f02042824000b0f00030f000116022824000c1300000109070116010b260022150007260022150008370f02050f000216012824000c1300000110070116012824000c1300000163070116012824000c1300000183070116010b0f000124000d0b0f00013f01070624000e2824000f21001016010a00032100043f010806352100110f03040c1d000c0f01082824000021001216014300120f0304282400110f01070f010116023400090f01072824001316000b0f00010f03062e4300120f03042824000b0f00010f010116023400030f00010b0f000124000d0b370f02010f000121001416020b13000006c10702150012130000087707041500131300000a3507011500141300000ae107021500151300000af307011500161300000b89070115001e1300000bd7070115001f1300000be407011500201300000c2807011500211300000cc007011500221300000ccd07011500231300000ec407011500241300000efe07001500261300000ff80701150027130000101b07021500281300001047070215002b130000112e070315002c13000022cf0701150033130000065807020f00010a00011b3f0001063300162600220f00012f4300060f00013400011b1500030f0307240017150004370f00041b0f0003160215000521001815000621000415000726000f030824001924001a3f0007062824001b21001c16012f43002e0f00072824001d26000f0007282400020f031821001e290121000416022824001f210020160126014b16023400032100043f0007063513000006840d013f000206350f00032400270a000f0f030a240028282400290f030a1601350f000324002a0a000f0f030a24002b282400290f030a160115000a370f00040f00030f0005160235373f000506350f000324002c1d00060f000324002c350f000324002d1d000a0f000324002d3f000606350f000324002e1d00060f000324002e350f000324002f1d000a0f000324002f3f000806350f0003240030352100310f03042d2100323e430006210032340009370f03250f030416014a1d0009370f001e2100331601352601251500102100320f030b2d4a43000b0f030b21003429013400032600221500110f00032400413532000015001932000015001a32000015001b260015001c3715001d1b0f000321005e06351b0f000321005f0635370f001f2100603f00170616010a002e0f00173f001806350f00032400614300120f0003282400610f00180f000716023400070f00070f00184b3f001706351b150025261f261d261f261e261f261e261f261f261e261f261e261f32000c150029261f261c261f261e261f261e261f261f261e261f261e261f32000c15002a1b13000011830d013c007913000011930d033c007a13000011ae0d003c007b13000011ba0d033c007d13000011d30d013c008213000012950d023c0084130000133b0d023c0085130000138f0d043c00f515002d371300001ebe070016002535130000216007000f00032101070635130000217b07000f000321010a0615002e130000219a07000f000321010c063513000021b507000f000321010e063513000021d007000f0003210110063513000021eb07000f00032101120635130000220607000f00032101140635130000222107000f00032101160635130000223c07000f00032101180635130000225707000f000321011a0635130000227207000f000321011c06150030130000229107000f000321011e0615003113000022b007000f0003210120061500320f002c0f00032101270635130000245a07050f000321012b06350f00120f000321012c063513000025f107010f000321012d063513000026290d003f001d06350f00330f000321012e06350f000324012f4300412100050f000324012f2d0e1d00100f000324012f3200010f000321012f06350f000324012f240009260045430013370f000324012f28240130160016003534ffde370f00331600350f00012401310b370f03020f000116012824000c130000067107011601353d0b370f01021b0f00012400153c00151601353d0b0f050929001500020f0002282400212100220f00012601251603352100230f000221002406350f000228240025371601350f05030f000224002629010b0f00014300163713000006e107030f010d0f00010f000216033400032100040b0f00020f00034b1500040f00021500050f00010f00051c1d00080f00050f000409254300083f0005003534ffe30f00050f00021e2610451d00060f00012400351d00030f02114300190f0211282400360f0001282400350f00020f0005160216010b2100041500060f00020f0005424301200f00013f0002391c1500072a00800f0007234300f3263f0f00013f0002391c231500082a00c02a00e00f0007234a4300b5263f0f00013f0002391c231500092a00e02a00f00f0007230e430017260f0f000723260c010f0008260601100f00091034002326070f0007232612010f0008260c01100f000926060110263f0f00013f0002391c23103f0007061300010000424300180f00060f050c282400370f000716014b3f000606353400370f000713000100001e15000a0f00060f050c28240037130000d8000f000a260a1110130000dc002a03ff0f000a231016024b3f0006063534001f0f00060f050c28240037261f0f0007232606010f00081016014b3f000606353400150f00060f050c282400370f000716014b3f0006063534fed60f00060b0f00042600452543000326000b0f00031500050f00030f00044b26011e15000626001500070f00070f00012400094243017a0f00012824000a0f000716011500080f0008130000d800091d00090f0008130000dfff041d002613000100002a03ff0f000823260a014b2a03ff0f00012824000a3f000700160123103f000806350f0008267f0443001b0f00030f0006094300033401160f00080f00023f0003391a3401000f00082a07ff044300390f000326014b0f0006094300033400ee2a00c00f0008260611100f00023f00033906352a0080263f0f000823100f00023f00033906353400bd0f0008130000ffff0443004f0f000326024b0f0006094300033400a92a00e00f0008260c11100f00023f00033906352a00800f0008260611263f23100f00023f00033906352a0080263f0f000823100f00023f00033906353400620f000326034b0f00060943000334005a2a00f00f0008261211100f00023f00033906352a00800f0008260c11263f23100f00023f00033906352a00800f0008260611263f23100f00023f00033906352a0080263f0f000823100f00023f00033906353f0007003534fe7926000f00020f000306350f00030f00051e0b260015000226001500030f00030f0001240009424300910f00012824000a0f000316011500040f0004130000d800091d00090f0004130000dfff041d002613000100002a03ff0f000423260a014b2a03ff0f00012824000a3f000300160123103f000406350f0004267f044300073f00020034002a0f00020f00042a07ff0443000526023400130f0004130000ffff04430005260334000226044b3f000206353f0003003534ff620f00020b0f010c282400380f00010f00021602353d0b0f00013f010b06350f040d0f000129013f010c060f010321003906350f040e0f000129010f010321003a06350f040f0f000129013f010e060f010321003b06350f04030f000129013f010d060f010321003c06350f04100f000129010f010321003d06350f04110f000129010f010321003e06350f04120f000129010f010321003f06350f04130f000129010f010321004006353d0b0f01032400421d000c0f0103282400420f0001160135370f010a2100430f00014b2100444b3f0001061601352600253f011006350f00012100454b3f000106350f04042400460f00012901313d0b0f00012824000021004716010b18000e150002370f011e0f00021601351f05002e0f00010f01170e1d00030f01084300090f04030f010829010b0f010243000a370f01020f000116010b210048311f3d0b0f000124000926004543008a0f00012824004916001500022100050f00022d4a4300660f000224004a15000321004b0f00032d0e4300312600220f000224004c3e43000f37370f01220f00031601160034001237370f01220f000316010f000224004c160134001d370f00032600220f000224004c3e430004373400060f000224004c16013534000a370f00020f010316013534ff6a3d0b0f010f2824000f0f000116010b0f00011721004d06350f000126101e1721004e06351300000d8007011721004f06351300000d9307001721005006351300000da207011721005106351300000db507001721005206351300000dc407011721005306351300000dd407011721005406351300000dfa07001721005506351300000e0c07011721005606351300000e3207001721005706351300000e4407021721005806351300000e7c07001721005906351300000e9d07001721005a06353d0b0f00010f020e1724004e26044b2602111a3d0b0f020e1724004e26044b2602111c0b0f00010f020e1724004e26084b2602111a3d0b0f020e1724004e26084b2602111c0b0f00010f020e1724004e2602111a3d0b0f0001430005260134000226003f000106350f00010f020c1724004e260c4b26001006353d0b26000f020c1724004e260c4b2600101c4a0b0f0001430005260134000226003f000106350f00010f020c1724004e260d4b26001006353d0b26000f020c1724004e260d4b2600101c4a0b172824004f0f000116013517282400510f000216013517282400532600160135172824005426012516013517282400562601251601353d0b0f020e1724004e2602111c1500010f000126014b0f020e1724004e2602111a3d0b0f020e1724004e2602111c1500010f000126011e0f020e1724004e260211063526010f00013e0b1800041500021f05002e0f01092824005b0f00010f010b24005c1e130000ffff4b261041160135370f01160f010924005d16013526010b1f3d0b0f0126240062254300e91b2100633c00642100633c00652100203c00662100203c00672100683c00692100310f04142d2100323e430006210032340009370f04250f041416010e1d00060f041424006a1d00090f041424006a26001c0a000321006b2824000221006c21006d160221006e4b3c006f0f01060a00032100183c006d1500010f012546043f00024c0443002a2600220f01250f00021c3e43000a0f00010f00024734000e0f01250f00021c0f00010f0002063534ffce3200001500030f000146053f00024c0543001c0f0003282400700f00022100714b0f00010f00021c4b16013534ffdc0f00030f01263300620f01262400620b0f000126043b26000e1d00160f000126643b26004a0a000a0f00012a01903b26000e0b260015000326001500040f00040f0002044300140f00030f00013f0004391c4b3f0003063534ffe20f00030b0f04150f000128240072160029011500030f00022600454300c9370f01270f000328240073160016011500040f00032824007416001500050f00044300060f01293400030f012a0f00051c1500060f00020f00060f00032824007516001e452543001b0f0003282400760f00032824007516000f00024b1601350f00030b0f00020f00060f00032824007516001e26014b1e3f000206350f00032824007626011601350f0005260b424300120f0003282400770f000526014b16013400210f00032824007726001601350f0003282400780f000328240073160026014b16013534ff2e0f00030b0f00032600454300060f000334000c370f01140f0001160126014b1500040f04160f00042901150005370f01130f00010f000526000f000524000916041500060f00021d000a0f00060f000521000906350f00050b370f022e0f000126104b160126104b0b0f02230f00012901282400580f00020f00031602350f0001313d0b370f021e2100041601353d0b0f020d2824007c0f00010f00020f00020f00034b1603353d0b0f020d24000915000403007e1500050f00012600413f0001060f0005454300042601250b26011500060f000626040443008c0f0004260103007f0f0006364b3a1500070f0517282400800f00070f000113060000004b16023f00070635370f02240f0517282400800f00050f0517282400810f00010f000716023f00020613000100003f0003063b2600451d00130f00020f00030f00020f00033b1e4b3f000206350f0002160216014300042600250b0f000626023a3f0006063534ff6b2601250b2600150003370f022616002824008313000012b1070216013526000b0f01020f01034b1500030f00030f030e0f010126040f00023a4b26021106353713000012f507030f00010f00031602350f01030f000124000926014b4b3f010306353d0b26001500040f00040f00012400094243001f0f00012824000a0f000416010f040c26003f000239101a3f0004003534ffd40f00030a000c26000f040c26000f00021006353d0b370f022616001500030f00032400090f020e0f00012602111a26001500040f000328240083130000137b07011601350f00040f020e0f0002260211063526000b0f01040f000124000926014b4b3f010406353d0b3713000013a607040f00010f00020f00030f000416040b1300001765070315000c13000017a9070215000d13000017b9070215000e130000184b070115000f13000018fc07011500100f030e0f000426284b2602111c1500051b0f030e0f00042602111c3c00860f030e0f000426044b2602111c3c00870f030e0f000426084b2602111c3c00880f030e0f0004260c4b2602111c3c00890f030e0f000426104b2602111c3c008a0f030e0f000426144b2602111c3c008b0f030e0f000426184b2602111c3c008c0f030e0f0004261c4b2602111c3c008d0f030e0f000426204b2602111c3c008e0f030e0f000426244b2602111c3c008f0f000543000c370f03120f000516013400032100043c0090150006370f03120f000316011500071b2100913c00922100933c00942100953c00962100973c00982100993c009a21009b3c009c21009d3c009e2100933c009f21009d3c00a02100923c00a12100a23c00a32100933c00a421009d3c00a52100a63c00a72100a83c00a92100aa3c00ab2100ac3c00ad2100ae3c00af2100b03c00b12100b23c00b32100b43c00b52100b63c00b72100b83c00b92100ba3c00bb2100bc3c00bd2100be3c00bf2100c03c00c12100a63c00c21500080f000846133f00094c134300210f0007282400020f06180f000921007a29020f00080f00091c160215000734ffd72100c32100c42100c52100c62100c72100c82100c932000715000a2100ca2100cb2100cc2100cd2100ce2100cf2100d02100d12100d22100d32100d42100d532000c15000b1b13000019af0d013c00da13000019c40d013c00db13000019cf0d013c009713000019e40d013c00dc13000019ef0d013c00a21300001a080d013c00aa1300001a170d013c00ac1300001a290d013c00de1300001a410d013c00df1300001a4b0d013c00ae1300001a5a0d013c00b01300001a950d013c00e01300001ad00d013c00b21300001ae20d013c00b41300001af10d003c00e21300001af50d013c00e51300001b170d013c00b61300001b260d003c00e71300001b2a0d013c00b81300001b360d013c00ba1300001c2d0d013c00bc1300001d200d013c00be1300001d270d013c00c01300001e310d013c00a61300001e4a0d013c00a81300001e550d013c00f01300001eb30d013c00f11300001eba0d003c00f31500110f001146143f00094c144300380f0007282400f40f000916011d00250f0007282400020f06180f000921007a29020f0011280f00091c0f0006160116023f0007063534ffc0370f032c0f000726012516021500120f00122400090f0002454300052600340016370f03150f00120f00011602350f001224000926011e0b21004b0f00012d0e43000c0f0001282400d616003400090f00010a00032100041500040f00042400090f0002424300100f000326001c0f00044b15000434ffe30f00040b370f010c0f00010f00022100d716030b130000182b07011500032600370f00030f00012824007316000f00022824007316001e16013f0004063e1d00202600370f00030f00012824007416000f00022824007416001e16013f0004063e1d001d370f00030f00012824007516000f00022824007516001e16013f000406350f00040b0f00012600424300062601203400100f0001260045430005260134000226000b0f0001282400d816002600020022260102003326020200322603020040260402004e260502005c260602006d3534007f0f07150f000128240073160026011e260b261d29030b0f00010b0f07150f00012824007316002600260329030b0f07150f00012824007316002600260229030b0f07150f00012824007316002600260129030b0f07150f000128240073160026011e260b261f29030b0f07150f000128240073160026011e260b261e29030b3d0b370f042b0f07150f000124008b2a076c4b2600260129030f000124008d16021500020f07150f00022824007316002600260429031500030f07150f000228240073160026014b260026042903150004370f010f0f00031601150005370f010f0f00041601150006370f010e0f00050f0002160226000443002d370f010e0f00060f0002160226000443000f0f000228240073160026014b3400090f000228240073160034000c0f000228240073160026011e0b0f020a0f000124008c1c282400d92600260316020b0f020a0f000124008c1c0b0f020b0f000124008a1c282400d92600260316020b0f020b0f000124008a1c0b370f020d0f000124008b2a076c4b266436260010260216020b370f020d0f0001240089260216020b370f020c0f000124008926022100dd16030b370f02100f00011601282400d61600282400d9260216010b370f02100f000116010b370f020d0f0001240088260216020b0f000124008815000226000f00020e430009260c3f0002063400130f0002260c451d000a0f0002260c1e3f00020635370f020d0f0002260216020b370f020d0f0001240089370f0528370f05270f000124008b2a076c4b16014300060f05293400030f052a0f000124008a26011e16024b260316020b370f020d0f000124008a26014b260216020b370f020d0f0001240087260216020b2100e10b0f00012400882600091d00090f0001240088260c424300062100e33400032100e40b370f020d0f0001240086260216020b2100e60b0f000124008c0a000226070b0f08150f000124008b2a076c4b26002601290315000226000f0002282400d816003e4300060f0002340015370f052b0f000226070f0002282400d816001e16021500030f08150f000124008b2a076c4b0f000124008a0f00012400892903150004370f020e0f00030f00041602260042430068370f0528370f05270f000428240073160016014300060f05293400030f052a0f000428240074160026011e1602261f1e150005261f0f00032824007516001e0f00054b0f00042824007516004b150006370f020d0f0817282400e80f00062607361601260216020b2600370f020e0f00030f000216023e4300062100e93400032100ea0b0f08150f000124008b2a076c4b2600260429031500030f08150f000124008b2a076d4b260026042903150004370f020f0f00031601150005370f020f0f00041601150006370f052b0f08150f000124008b2a076c4b2600260129030f000124008d1602150007370f020e0f00070f000516022600424300062100eb340074370f020e0f00060f000716022600044300062100e934005c0f00052824007316000f000124008b2a076c4b424300160f000124008d26204b0f00052824007516001e3400130f000124008d26014b0f00052824007516001e3f00020635370f020d0f0817282400e80f00022607361601260216020b0f000124008c0b0f08150f000124008b26002601290315000226010f0002282400d816003e4300060f000234002c370f052b0f000226000f0002282400d816003e430005260134000f26070f0002282400d816001e26014b16021500030f08150f000124008b2a076c4b0f000124008a0f00012400892903150004370f020e0f00030f00041602260042430068370f0528370f05270f000428240073160016014300060f05293400030f052a0f000428240074160026011e1602261f1e150005261f0f00032824007516001e0f00054b0f00042824007516004b150006370f020d0f0817282400e80f00062607361601260216020b2600370f020e0f00030f000216023e4300062100e93400032100ea0b0f000124008b2a076c4b282400d61600282400d9260216010b0f000124008b2a076c4b0b0f000124008f1500020f00022600091500030f0817282400ec0f00021601263c363f000206263c3626643a0f0002263c3b4b3f000206350f00034300062100ed34000321006c370f080c2100ee0f00024b1601282400ef26042016014b0b0f00012400900b2100f20b1300001f8e0702150002130000202e0701150003130000203d07011500041b0f012d3c007b1500013f011c39350f01032400fb1d000c0f0103282400fb0f011c1601350f010324001643002d180016150005370f010a2101040f00054b1601352601250b1f0500110f0103282400160f00010f000216020b1f0f01080a000b2100050f04042400112d4a0a0009370f011f0f011716010a00082100050f04052d4a43000c370f00040f0003160134001d370f04050f01171b2100fd3c00fe16022824000c130000211e07011601353d0b0f00012400151500040f00040f02032100f60635370f02160f02032400f62400f73f02090624005d1601350f02032400f62400f83f020f06350f02032400f62400f93f000306350f021a282400fa0f0003160135371300001fef07001600353d0b3f031c40350f03032400fb1d000c0f0303282400fb0f031c16013526000f031c0e1d00030f031d4300130f031d150001373f031d0635370f00011600353d0b370f01020f000124000d1601353d0b0f02080a00082100050f05052d4a4300190f0519282400fc16002824000c13000020bc0700160134002a370f05050f02171b2100fd3c00fe16022824000c13000020c6070116012824010213000020e6070016012824000c13000020f0070116012824000c1300002100070116012824000c0f00011300002104070116020b370f03200f031716010b0f00012400ff2543000c2101000f03174b2101014b310f00012824001316000b370f03200f031716010b0f06042824000b0f00010f020116020b0f00010b370f030a2101030f00014b160135370f031e0f00011601353d0b0f0504282400110f00010f010116022824000c0f0103130000213e070116020b370f030a2101050f00014b160135370f030a210106160135370f02040f020316010b0f01032400f62400f90f01032101070628240108370f000016020b0f01032400f62401090f010321010a063f012e0628240108370f000016020b0f01032400f624010b0f010321010c0628240108370f000016020b0f01032400f624010d0f010321010e0628240108370f000016020b0f01032400f624010f0f01032101100628240108370f000016020b0f01032400f62401110f01032101120628240108370f000016020b0f01032400f62401130f01032101140628240108370f000016020b0f01032400f62401150f01032101160628240108370f000016020b0f01032400f62401170f01032101180628240108370f000016020b0f01032400f62401190f010321011a0628240108370f000016020b0f01032400f624011b0f010321011c063f01300628240108370f000016020b0f01032400f624011d0f010321011e063f01310628240108370f000016020b0f01032400f624011f0f0103210120063f01320628240108370f000016020b130000232707001500020f011c2600450a00423713000023d107001600350f011c2600450a002e0f010324012543001f0f010328240125210126160135370f041a1300002432070026011602340006370f00021600353d0b0f022f0a00402600253f022f06352600250f020321012106350f02100a0027370f02210f021a1601350f02032401221d00090f02032824012216003537130000237007001600353d0b0f030324012343004c2100050f03032401232d0e1d00100f03032401233200010f030321012306350f03032401232400094300210f03032401232824004916003f000106350f031b282400fa0f000116013534ffd3370f03210f031b1601353d0b0f020324012443004c2100050f02032401242d0e1d00100f02032401243200010f020321012406350f02032401242400094300210f02032401242824004916003f000106350f0219282400fa0f000116013534ffd3370f02210f02191601353d0b370f051a130000244b07002601160235370f01021600353d0b0f0303282401252100041601353d0b1b13000025380d013c012813000025950d013c01291500063713000025b507010f0001160115000732000015000826001500090f0004430068260015000a0f000a0f0004240009424300560f00060f00030f000a1c1c15000b0f000b43002b26000f00093e1d000a370f013016003f00090635370f000b0f00040f000a1c16010f00080f000a0634000e0f00040f000a1c0f00080f000a06353f000a393534ff9d0f000728240108370f0008160215000d0f000d3f000c063526000f00092f1d0009370f01310f00091601353713000025c107010f000c16013f000d060b2600150002370f00014a1d000626000f00012f43002e26010f00012400092602014b15000337130000258007030f0001370f03320f000316013f0002060f0003160325350f00020b370f04130f00010f040d0f00020f00031604353d0b370f03320f00012400091601150002370f03150f00010f00021602350f00020b0f020321006d0f00014b1c0b2101280f01023e43000c370f02120f0001160134001921012a0f01023e43000c370f051b0f000116013400030f00010b370f01140f0001160126014b150002370f012e0f000216011500030f00031d0012370f01130f00010f010c0f00030f00021604350f00030b0f022f0a0006370f02331600350f022f0a00070f01003f021d06353d0b0f02192401320a000e130000266007000f021921013206353d0b1b1500010f0319130000267c070229010f000121013406350f00010b0f00010f01012100fc06350f00020f010121013306353d0b370f01051600353d0b13000026d60700150001370f02260f00011b2100fc3c0135130000271c0d013c01361b2101333c0135130000271e0d013c013632000216020b370f0327170f01011602350f0319130000270a070229011500030f00010f00032100fc06350f00020f000321013306350f00030b0f00013f010106350f00023f010206353d0b3d0b3d0b2100040f00013e4300042100040b32000015000226001500030f00030f00012400094243001e0f0002282400700f00012824000a0f000316011601353f0003393534ffd50f00020b13000027f60700150001370f02260f00011b2100583c013513000028030d003c01361b21013a3c013513000028500d023c01361b21013c3c013513000029850d023c01361b21013d3c01351300002a850d033c01361b21013e3c01351300002ba60d023c01361b21013f3c01351300002c6f0d013c01361b2101403c01351300002d0f0d003c013632000716020b370f0327170f01011602353d0b0f030729001500011b13000028350d003c012213000028410d013c0042172101390635370f0304172401391601350f00010b0f0201282400fc1600353d0b0f0201282401330f00011601353d0b0f00002400092602451d00080f000026021c3d2f4300090f000026021c34000226101500030f00002400092603451d00080f000026031c3d2f4300090f000026031c3400060f030924013715000414001d172401392824010c0f0005160135172401392824010c0f00061601351f1800111500080f040a282400280f00081601351f0500ae370f03080f04082824013b0f000116011601150007172401392824010a370f041c0f0007240009160116013f0005063517240139240039282400380f00070f00051602350f00020a00050f040329003f000206350f04030f000229013f00020635172401392824010a0f000224005c16013f0006063517240139240039282400380f00020f000616023517240139282401140f00040f00050f00072400090f00030f000224005c0f00061606351f3d0b0f00002400092602451d00080f000026021c3d2f4300090f000026021c3400060f030924013715000314001d172401392824010c0f0004160135172401392824010c0f00051601351f1800111500080f040a282400280f00081601351f05009e0f04030f00022901150006172401392824010a0f000124005c16013f0004063517240139240039282400380f00010f0004160235172401392824010a0f000624005c16013f0005063517240139240039282400380f00060f000516023517240139282401100f00030f00040f000124005c0f00051604351724013924003c282400ef0f00040f00040f000124005c4b16021500070f04030f000729010b1f3d0b0f00002400092603451d00080f000026031c3d2f4300090f000026031c340002261015000414002b172401392824010c0f0006160135172401392824010c0f0007160135172401392824010c0f00051601351f18001115000a0f040a282400280f000a1601351f0500b50f04030f000229011500080f04030f00032901150009172401392824010a0f000824005c16013f0005063517240139240039282400380f00080f0005160235172401392824010a0f000124005c16013f0006063517240139240039282400380f00010f0006160235172401392824010a0f000924005c16013f0007063517240139240039282400380f00090f000716023517240139282401120f00050f000824005c0f00060f000124005c0f00070f00041606351f3d0b14001d172401392824010c0f0003160135172401392824010c0f00041601351f1800111500060f040a282400280f00061601351f0500900f04030f00022901150005172401392824010a0f000124005c16013f0003063517240139240039282400380f00010f0003160235172401392824010a0f000524005c16013f0004063517240139240039282400380f00050f000416023517240139282401160f00030f000124005c0f00041603351724013924003c282400ef0f00030f00030f000124005c4b16020b1f3d0b0f00002400092601451d00080f000026011c3d2f4300090f000026011c3400060f030924013815000214000f172401392824010c0f00031601351f1800111500050f040a282400280f00051601351f05004c0f04030f00012901150004172401392824010a0f000424005c16013f0003063517240139240039282400380f00040f0003160235172401392824011a0f00030f000424005c0f00021603351f3d0b172401391d0006371721013906353d0b1300002d6c0700150001370f02260f00011b2101413c01351300002d790d013c01361b2101423c01351300002d870d003c01363200021b2101443c01351300002da20d003c013632000116030b370f0327170f01011602353d0b0f040728240017170f000116020b1724014329001500010f0407282400170f0001171602350f00010b0f00002400091500010f04160f0001290115000226001500030f00030f0001424300160f00000f00031c0f00020f00031a3f0003393534ffe0370f0428170f000216020b1300002e620700150002370f02290f00020f0001160235370f02260f00021b2100d63c01351300002fe80d003c01361b2101493c013513000030190d013c01361b21014a3c013513000030ff0d003c01361b2101423c0135130000314c0d003c01363200041b21014d3c0135130000317d0d013c013632000116030b0f00002400092600451d00080f000026001c3d2f4300090f000026001c3400033200001500020f00002400092601451d00080f000026011c3d2f4300090f000026011c34000926040f00022400093a150003370f0327170f0102160235370f032b170f010216021500010f00021500040f00040f03062e1d000c0f03030f000429013f000406350f00040f030d2e0a00070f00040f031d2e0a00070f00040f030e2e0a00070f00040f03102e0a00070f00040f030f2e0a00070f00040f03112e0a00070f00040f03122e0a00070f00040f03132e1d001b0f03030f000424005d0f00042401450f000424005c29033f000406350f00040f03032e43006f0f000424005c15000532000015000626001500070f00070f0005424300380f00060f00072602411c0f00040f00071c26180f000726043b26083a1e01100f00060f000726024106350f000726014b3f0007063534ffbe0f00060f000121014606350f00050f000121014706353400160f00020f000121014606350f00030f000121014706350f00010b0f00002400092600451d00080f000026001c3d2f4300090f000026001c3400030f030d1500010f0001282401481716010b172401461500020f0001240146150003172401471500040f0001240147150005172824014a1600350f000426043b43007026001500060f00060f00054243005e0f00030f00062602411c26180f000626043b26083a1e412a00ff231500070f00020f00040f00064b2602411c0f000726180f00040f00064b26043b26083a1e01100f00020f00040f00064b26024106350f000626014b3f0006063534ff9834003526001500080f00080f0005424300260f00030f00082602411c0f00020f00040f00084b2602411a0f000826044b3f0008063534ffd0172401470f00054b172101470635170b17240146150001172401471500020f00010f00022602411c03014b26200f000226043b26083a1e01230f00010f000226024106350f0417282400e80f000226043616010f000121000906353d0b370f042a0f020221014217260116042824014c17160115000117240146282400ef260016010f000121014606350f00010b32000015000213000031fa0d0115000326001500050f00050f000142430052370f000303014e0f00040a00090f04172824014d16003a1601150006133ade67b7370f000616003a3f000406350f00022824007003014e370f000616003a2600101601350f000526044b3f0005063534ffa40f02020f00020f000129020b0f0001150002133ade68b115000303014b150004130000321607000b1300009069130000ffff0f0103233a0f01032610114b0f0104233f010306352a4650130000ffff0f0102233a0f01022610114b0f0104233f010206350f01032610010f01024b0f0104231500010f000103014e363f000106350f000103014f4b3f000106350f00010f07172824014d160003014f4543000526013400032601203a0b0f00012401461500020f000124014715000332000015000426001500050f00050f00034243005c0f00020f00052602411c26180f000526043b26083a1e412a00ff231500060f0004282400700f0006260441282400d6261016011601350f000428240070260f0f000623282400d6261016011601350f000526014b3f0005063534ff9a0f00042824015021000416010b0f000124000915000232000015000326001500040f00040f0002424300470f00030f00042603411c370f031e0f00012824001d0f0004260216022610160226180f000426083b26043a1e01100f00030f000426034106350f000426024b3f0004063534ffaf0f020c0f00030f000226023629020b0f00012401461500020f000124014715000332000015000426001500050f00050f0003424300420f00020f00052602411c26180f000526043b26083a1e412a00ff231500060f0004282400700f030c282400370f000616011601350f000526014b3f0005063534ffb40f00042824015021000416010b0f000124000915000232000015000326001500040f00040f0002424300410f00030f00042602411c2a00ff0f00012824000a0f000416012326180f000426043b26083a1e01100f00030f000426024106350f000426014b3f0004063534ffb50f020c0f00030f000229020b18000d1500020f03022101522901311f05001a370f031f370f03200f020e282401480f00011601160116010b1f3d0b0f020e28240151370f0321370f03220f00011601160116010b130000352d0700150002370f02290f00020f0001160235370f02260f00021b2101543c013513000035550d003c01361b2101573c0135130000356a0d013c01361b2101583c013513000035ad0d013c01361b2101423c0135130000368a0d003c013632000416020b370f0327170f0102160235370f032b170f010216023f0001063526000f000121015306350f00010b0f030c290017210155063526001721015606353d0b0f00011500022101280f00022d0e1d00100f030f282401510f000216013f0002063517240155282401490f0002160135172401560f00022401474b1721015606353d0b17240155150003172401591500040f00032401461500050f00032401471500060f000626040f00043a361500070f000143000f0f0417282400e80f000716013400160f04172824008126000f000710172401531e260016021500070f00070f00043a1500080f04172824008026040f00083a0f000616021500090f0008430051260015000a0f000a0f00084243001d172824015a0f00050f000a1602350f000a0f00044b3f000a063534ffd90f00052824015b26000f000816023f000206350f00032401470f00091e0f000321014706350f030c0f00020f000929020b370f042a0f020221014217260116042824014c171601150001172401552824014216000f000121015506350f00010b13000037350701150002370f02290f00020f0001160235370f02260f00021b2101543c013513000037800d003c01361b21015e3c013513000037a10d013c01361b21015f3c013513000037b60d013c01363200031b2101613c013513000037cf0d013c01361b2101623c013513000037e90d013c013632000216030b370f0327170f0102160235370f032b170f010216023f0002063526100f000221015906350f0307282400170f020b29000f000116020f000221015c06350f0002282401541600350f00020b370f042a0f020221015417260116042824014c17160135172824015d1600353d0b17282401570f00011601351728240158160035170b0f00011d000a17282401570f0001160135172824016016000b13000037d707020b0f01010f000229012824015f0f000116010b13000037f107020b0f04120f01010f000229022824015f0f000116010b130000385d0702150002370f02290f00020f0001160235370f02260f00021b2101543c013513000039890d003c01361b21015e3c013513000039aa0d013c01361b21015f3c013513000039ba0d013c013632000316020b370f0327170f0102160235370f032b170f010216021500030f000129001500040f00040f00033301630f00021500052101280f00052d0e1d00100f020f282401510f000516013f000506350f000424015915000626040f00063a1500070f00052401470f0007451d00100f00042824015f0f000216013f000506350f00052824014a1600350f00052824014216001500080f00080f00033301640f00052824014216001500090f00090f00033301650f000824014615000a0f000924014615000b260015000c0f000c0f0006424300380f000a0f000c1c135c5c5c5c480f000a0f000c06350f000b0f000c1c1336363636480f000b0f000c06350f000c26014b3f000c063534ffbe0f00070f000821014706350f00070f000921014706350f0003282401541600350f00030b172401631500010f0001282401541600350f00012824015e172401651601353d0b172401632824015e0f0001160135170b172401631500020f00022824015f0f000116011500030f0002282401541600350f00022824015f17240164282401421600282401490f0003160116010b320000150004260015000526001500060f00060f0002424300860f000626043b43006f0f00030f00012824000a0f000626011e16011c0f000626043b26023a010f00030f00012824000a0f000616011c26060f000626043b26023a1e41101500070f00040f00052602411c0f000726180f000526043b26083a1e01100f00040f000526024106350f000526014b3f000506350f000626014b3f0006063534ff700f020c282401440f00040f000516020b0f00012401461500020f0001240147150003172401661500040f00012824014a16003532000015000526001500060f00060f0003424300c70f00020f00062602411c26180f000626043b26083a1e412a00ff232610010f00020f000626014b2602411c26180f000626014b26043b26083a1e412a00ff23260801100f00020f000626024b2602411c26180f000626024b26043b26083a1e412a00ff231015000726001500080f00082604421d000f0f00060301670f00083a4b0f0003424300310f0005282400700f0004282401680f0007260626030f00081e3a41263f2316011601350f000826014b3f0008063534ffb40f000626034b3f0006063534ff2f0f000428240168264016011500090f000943001c0f000524000926043b4300100f0005282400700f000916013534ffe40f00052824015021000416010b0f000124000915000217240166150003172401691500040f000425430045320000172101690635172401693f0004063526001500050f00050f0003240009424300210f00050f00040f00032824000a0f000516011a0f000526014b3f0005063534ffd20f000328240168264016011500060f00064300210f00012824001b0f000616011500072601200f00072f1d00070f00073f00020635370f02130f00010f00020f000416030b0f00010f00020f0003230f0002080f000423104b0f00054b0f00074b1500080f00080f0006010f000826200f00061e41100f00024b0b0f00010f00020f0004230f00030f00040823104b0f00054b0f00074b1500080f00080f0006010f000826200f00061e41100f00024b0b0f00010f00020f0003480f0004484b0f00054b0f00074b1500080f00080f0006010f000826200f00061e41100f00024b0b0f00010f00030f00020f00040810484b0f00054b0f00074b1500080f00080f0006010f000826200f00061e41100f00024b0b1300003dc20700150002370f02290f00020f0001160235370f02260f00021b21015d3c01351300003ddb0d003c01361b21015a3c01351300003df90d023c01361b2101603c0135130000482b0d003c01361b2101423c013513000049810d003c013632000416020b370f0327170f0102160235370f032b170f01020f000016030b0f030c136745230103016c03016d131032547632000429011733016e3d0b0f000115000326001500040f000426104243004e0f00020f00044b1500050f00010f00051c1500061300ff00ff0f00062608010f0006261841102303016f0f00062618010f00062608411023100f00030f00051a0f000426014b3f0004063534ffa91724016e2401461500070f00030f000226004b1c1500080f00030f000226014b1c1500090f00030f000226024b1c15000a0f00030f000226034b1c15000b0f00030f000226044b1c15000c0f00030f000226054b1c15000d0f00030f000226064b1c15000e0f00030f000226074b1c15000f0f00030f000226084b1c1500100f00030f000226094b1c1500110f00030f0002260a4b1c1500120f00030f0002260b4b1c1500130f00030f0002260c4b1c1500140f00030f0002260d4b1c1500150f00030f0002260e4b1c1500160f00030f0002260f4b1c1500170f000726001c1500180f000726011c1500190f000726021c15001a0f000726031c15001b370f03170f00180f00190f001a0f001b0f000826070f031526001c16073f00180635370f03170f001b0f00180f00190f001a0f0009260c0f031526011c16073f001b0635370f03170f001a0f001b0f00180f00190f000a26110f031526021c16073f001a0635370f03170f00190f001a0f001b0f00180f000b26160f031526031c16073f00190635370f03170f00180f00190f001a0f001b0f000c26070f031526041c16073f00180635370f03170f001b0f00180f00190f001a0f000d260c0f031526051c16073f001b0635370f03170f001a0f001b0f00180f00190f000e26110f031526061c16073f001a0635370f03170f00190f001a0f001b0f00180f000f26160f031526071c16073f00190635370f03170f00180f00190f001a0f001b0f001026070f031526081c16073f00180635370f03170f001b0f00180f00190f001a0f0011260c0f031526091c16073f001b0635370f03170f001a0f001b0f00180f00190f001226110f0315260a1c16073f001a0635370f03170f00190f001a0f001b0f00180f001326160f0315260b1c16073f00190635370f03170f00180f00190f001a0f001b0f001426070f0315260c1c16073f00180635370f03170f001b0f00180f00190f001a0f0015260c0f0315260d1c16073f001b0635370f03170f001a0f001b0f00180f00190f001626110f0315260e1c16073f001a0635370f03170f00190f001a0f001b0f00180f001726160f0315260f1c16073f00190635370f03180f00180f00190f001a0f001b0f000926050f031526101c16073f00180635370f03180f001b0f00180f00190f001a0f000e26090f031526111c16073f001b0635370f03180f001a0f001b0f00180f00190f0013260e0f031526121c16073f001a0635370f03180f00190f001a0f001b0f00180f000826140f031526131c16073f00190635370f03180f00180f00190f001a0f001b0f000d26050f031526141c16073f00180635370f03180f001b0f00180f00190f001a0f001226090f031526151c16073f001b0635370f03180f001a0f001b0f00180f00190f0017260e0f031526161c16073f001a0635370f03180f00190f001a0f001b0f00180f000c26140f031526171c16073f00190635370f03180f00180f00190f001a0f001b0f001126050f031526181c16073f00180635370f03180f001b0f00180f00190f001a0f001626090f031526191c16073f001b0635370f03180f001a0f001b0f00180f00190f000b260e0f0315261a1c16073f001a0635370f03180f00190f001a0f001b0f00180f001026140f0315261b1c16073f00190635370f03180f00180f00190f001a0f001b0f001526050f0315261c1c16073f00180635370f03180f001b0f00180f00190f001a0f000a26090f0315261d1c16073f001b0635370f03180f001a0f001b0f00180f00190f000f260e0f0315261e1c16073f001a0635370f03180f00190f001a0f001b0f00180f001426140f0315261f1c16073f00190635370f03190f00180f00190f001a0f001b0f000d26040f031526201c16073f00180635370f03190f001b0f00180f00190f001a0f0010260b0f031526211c16073f001b0635370f03190f001a0f001b0f00180f00190f001326100f031526221c16073f001a0635370f03190f00190f001a0f001b0f00180f001626170f031526231c16073f00190635370f03190f00180f00190f001a0f001b0f000926040f031526241c16073f00180635370f03190f001b0f00180f00190f001a0f000c260b0f031526251c16073f001b0635370f03190f001a0f001b0f00180f00190f000f26100f031526261c16073f001a0635370f03190f00190f001a0f001b0f00180f001226170f031526271c16073f00190635370f03190f00180f00190f001a0f001b0f001526040f031526281c16073f00180635370f03190f001b0f00180f00190f001a0f0008260b0f031526291c16073f001b0635370f03190f001a0f001b0f00180f00190f000b26100f0315262a1c16073f001a0635370f03190f00190f001a0f001b0f00180f000e26170f0315262b1c16073f00190635370f03190f00180f00190f001a0f001b0f001126040f0315262c1c16073f00180635370f03190f001b0f00180f00190f001a0f0014260b0f0315262d1c16073f001b0635370f03190f001a0f001b0f00180f00190f001726100f0315262e1c16073f001a0635370f03190f00190f001a0f001b0f00180f000a26170f0315262f1c16073f00190635370f031a0f00180f00190f001a0f001b0f000826060f031526301c16073f00180635370f031a0f001b0f00180f00190f001a0f000f260a0f031526311c16073f001b0635370f031a0f001a0f001b0f00180f00190f0016260f0f031526321c16073f001a0635370f031a0f00190f001a0f001b0f00180f000d26150f031526331c16073f00190635370f031a0f00180f00190f001a0f001b0f001426060f031526341c16073f00180635370f031a0f001b0f00180f00190f001a0f000b260a0f031526351c16073f001b0635370f031a0f001a0f001b0f00180f00190f0012260f0f031526361c16073f001a0635370f031a0f00190f001a0f001b0f00180f000926150f031526371c16073f00190635370f031a0f00180f00190f001a0f001b0f001026060f031526381c16073f00180635370f031a0f001b0f00180f00190f001a0f0017260a0f031526391c16073f001b0635370f031a0f001a0f001b0f00180f00190f000e260f0f0315263a1c16073f001a0635370f031a0f00190f001a0f001b0f00180f001526150f0315263b1c16073f00190635370f031a0f00180f00190f001a0f001b0f000c26060f0315263c1c16073f00180635370f031a0f001b0f00180f00190f001a0f0013260a0f0315263d1c16073f001b0635370f031a0f001a0f001b0f00180f00190f000a260f0f0315263e1c16073f001a0635370f031a0f00190f001a0f001b0f00180f001126150f0315263f1c16073f001906350f000726001c0f00184b2600100f0007260006350f000726011c0f00194b2600100f0007260106350f000726021c0f001a4b2600100f0007260206350f000726031c0f001b4b2600100f0007260306353d0b172401551500010f00012401461500022608172401563a15000326080f00012401473a1500040f00020f00042605411c2a008026180f000426203b1e01100f00020f000426054106350f0417282401700f000303014e3616011500050f00031500061300ff00ff0f00052608010f0005261841102303016f0f00052618010f00052608411023100f0002260f0f000426404b2609412604014b06351300ff00ff0f00062608010f0006261841102303016f0f00062618010f00062608411023100f0002260e0f000426404b2609412604014b063526040f000224000926014b3a0f0001210147063517282401581600351724016e1500070f000724014615000826001500090f00092604424300440f00080f00091c15000a1300ff00ff0f000a2608010f000a261841102303016f0f000a2618010f000a2608411023100f00080f00091a0f000926014b3f0009063534ffb30f00070b370f042a0f020221014217260116042824014c1716011500011724016e2824014216000f000121016e06350f00010b13000049e50701150002370f02290f00020f0001160235370f02260f00021b2101743c01351300004a2d0d023c013632000116020b370f0327170f0102160235370f032b170f010216023f000206350f0307282400170f020b29001b26043c01710f021b3c017226013c01730f000116030f000221015c06350f00020b1724015c1500040f00042401722824014416001500050f030c2824014416001500060f00062401461500070f00042401711500080f00042401731500090f00072400090f00084243007f0f00031d000c0f00052824015e0f00031601350f00052824015e0f000116012824015f0f000216013f000306350f000528240154160035260115000a0f000a0f0009424300290f00052824015f0f000316013f000306350f0005282401541600350f000a26014b3f000a063534ffcd0f0006282401490f000316013534ff7426040f00083a0f000621014706350f00060b1300004b950703150002370f02290f00020f0001160235370f02260f00021b2101543c01351300004bec0d003c01361b2101773c01351300004c0d0d013c01361b21015f3c01351300004c200d013c01363200031b2101783c01351300004c390d023c01361b21017a3c01351300004c4b0d023c01361b2101613c01351300004c5d0d013c013632000316030b370f0327170f0102160235370f032b170f010216023f000406350f0307282400170f020b29000f000316020f000421015c06350f00010f000421017506350f00020f000421017606350f0004282401541600350f00040b370f042a0f020221015417260116042824014c17160135172824015d1600353d0b17282401570f0001160135172824015816000b0f00011d000a17282401570f0001160135172824016016000b1728240144172401790f00010f000216030b17282401441724017b0f00010f000216030b1300004c7d0d011500021b1300004c920d033c017c1300004cae0d033c017d0b2101280f00012d0e4300060f05273400030f05250b370f02020f000216012824017c0f02010f00010f00020f000316040b370f02020f000216012824017d0f02010f00010f00020f000316040b1300004d110702150002370f02290f00020f0001160235370f02260f0002371b2101783c01351300004d450d023c01361b21017a3c01351300004d560d023c013632000216030b370f0327170f0102160235370f032b170f010216023f000306350f00010f000321017f06350f00020f000321018006350f00030b17240181282401440f00010f000216020b17240182282401440f00010f000216020b0f0001150004172401801500060f00064300130f00063f000506352600221721018006340008172401833f0005063526001500070f00070f00034243002d0f00040f00020f00074b1c0f00050f00071c480f00040f00020f00074b06350f000726014b3f0007063534ffc93d0b1300004df50700150002370f02290f00020f0001160235370f02260f000216010b370f0327170f0102160235370f032b170f01020f000016030b1300004e430700150002370f02290f00020f0001160235370f02260f00021b2101843c01351300004e5c0d023c013632000116020b370f0327170f0102160235370f032b170f01020f000016030b1724017f1500030f00032401591500040f031f2824014c170f00010f00020f00041604350f0003282401850f00010f00021602350f0001282400ef0f00020f00020f00044b16021721018306353d0b1300004ee00700150002370f02290f00020f0001160235370f02260f00021b2101843c01351300004ef90d023c013632000116020b370f0327170f0102160235370f032b170f01020f000016030b1724017f1500030f00032401591500040f0001282400ef0f00020f00020f00044b16021500050f0003282401860f00010f00021602350f031f2824014c170f00010f00020f00041604350f00051721018306353d0b26040f00023a1500030f00030f00012401470f00033b1e1500040f00042618010f0004261001100f0004260801100f00041015000532000015000626001500070f00070f00044243001b0f0006282400700f00051601350f000726044b3f0007063534ffdb0f020c282401440f00060f000416021500080f0001282401490f00081601353d0b0f00011500022a00ff0f00022401460f000224014726011e2602411c231500030f00022401470f00031e0f000221014706353d0b130000505f0703150002370f02290f00020f0001160235370f02260f00021b2101543c013513000050a90d003c01361b21015a3c013513000051350d023c01361b2101603c013513000051480d003c013632000316020b370f0327170f0102160235370f032b170f01020f00010f00020f0307282400171b0f02203c01890f02213c018a0f0003160232000316033f0004063526040f000421015906350f00040b370f042a0f020221015417260116042824014c171601351724015c1500020f000224018b1500030f000224018915000417240175172401432401793e43000d0f00042401783f0001063400120f000424017a3f0001063526011721015306350f00012824014c0f0004170f00031d00060f000324014616031721018c06350f00011724018c21018d06353d0b1724018c282401840f00010f00021602353d0b1724015c24018a15000217240175172401432401793e4300230f0002282401871724015517240159160235172824015826002516013f00010634001b172824015826002516013f000106350f0002282401880f00011601350f00010b13000051d90701150002370f02290f00020f0001160235370f02260f00021b2100d63c013513000052040d013c013632000116020b370f0327170f0102160235370f032b170f010216023f000206350f0002282401410f00011601350f00020b0f00010a00041724018e282401481716010b0f000124018f1500030f00012401901500040f000443002b0f020c282401441353616c741365645f5f3200021601282401490f00041601282401490f000316013400030f00033f000206350f0002282400d60f021416010b0f0214282401510f000116011500030f00032401461500041353616c740f000426001c3e1d000c1365645f5f0f000426011c3e1d00390f020c282401440f0004282400ef26022604160216013f000206350f00042824015b260026041602350f000324014726101e0f000321014706350f0223282401441b0f00033c018f0f00023c019016010b130000534d0700150002370f02290f00020f0001160235370f02260f0002371b21017c3c013513000053660d043c01361b21017d3c013513000053f20d043c01361b2101933c0135130000543f0d023c013632000316030b370f0327170f0102160235370f032b170f01020f000016030b0f0407282400170f030b29001724015c0f000416031500050f0001282401780f00030f000516021500060f00062824015f0f000216011500070f000624015c1500080f0323282401441b0f00073c018f0f00033c01350f000824018b3c018b0f00013c01910f00082401893c01890f000824018a3c018a0f00062401593c01590f00052401923c018e16010b0f00021500050f0407282400170f030b29001724015c0f0004160315000617282401930f00050f000624019216021500050f00012824017a0f00030f000616022824015f0f000524018f16010b2101280f00012d0e4300100f0002282401510f00011716023400030f00010b0f00041500050f00050a000f0f020c2824014d260816013f000506350f021c282401441b0f00020f00034b3c01711601282401740f00010f000516021500060f020c282401440f0006240146282400ef0f0002160126040f00033a160215000726040f00023a0f000621014706350f0223282401441b0f00063c01350f00073c018b0f00053c019016010b13000055300700150002370f02290f00020f0001160235370f02260f0002371b21017c3c013513000055490d043c01361b21017d3c013513000055bb0d043c013632000216030b370f0327170f0102160235370f032b170f01020f000016030b0f0407282400170f030b29001724015c0f000416031500050f0005240195282401940f00030f00012401710f000124017e16031500060f000624018b0f000533018b0f032524017c2824014c170f00010f00020f00062401350f000516051500070f0007282401410f00061601350f00070b0f00021500050f0407282400170f030b29001724015c0f0004160315000617282401930f00050f000624019216021500050f0006240195282401940f00030f00012401710f000124017e0f000524019016041500070f000724018b0f000633018b0f032524017d2824014c170f00010f00050f00072401350f000616050b13000056a10700150002370f02290f00020f0001160235370f02260f00021b21015d3c013513000056ba0d003c01361b2101853c013513000059050d023c01361b2101863c013513000059280d023c01361b21019a3c013513000059b30d083c013632000416020b370f0327170f0102160235370f032b170f01020f000016030b172401961d000917240197172401763e4300023d0b1724017617330197172401971500020f00022401461500030f00022401472604361500040f000426064b1733019626041724019626014b3a150005320000173301981724019815000626001500070f00070f0005424301210f00070f0004424300110f00030f00071c0f00060f0007063400f70f00060f000726011e1c3f000106350f00070f00043b43005a0f00042606451d000a0f00070f00043b26040e1d00410f03280f00012618411c2618010f03280f00012610412a00ff231c261001100f03280f00012608412a00ff231c260801100f03282a00ff0f0001231c103f00010634006d0f00012608010f0001261841103f000106350f03280f00012618411c2618010f03280f00012610412a00ff231c261001100f03280f00012608412a00ff231c260801100f03282a00ff0f0001231c103f000106350f00010f033c0f00070f0004362600101c261801483f000106350f00060f00070f00041e1c0f0001480f00060f000706350f000726014b3f0007063534fed5320000173301991724019915000826001500090f00090f00054243009e0f00050f00091e15000a0f000926043b43000a0f00060f000a1c34000a0f00060f000a26041e1c3f000106350f00092604420a00060f000a2604044300060f00013400440f032e0f03280f00012618411c1c0f032f0f03280f00012610412a00ff231c1c480f03300f03280f00012608412a00ff231c1c480f03310f03282a00ff0f0001231c1c480f00080f000906350f000926014b3f0009063534ff583d0b172824019a0f00010f0002172401980f032a0f032b0f032c0f032d0f03281608353d0b0f00011500030f00030f000226014b1c1500040f00030f000226034b1c0f00030f000226014b06350f00040f00030f000226034b0635172824019a0f00030f0002172401990f032e0f032f0f03300f03310f03291608350f00030f000226014b1c3f000406350f00030f000226034b1c0f00030f000226014b06350f00040f00030f000226034b06353d0b0f00011500091724019615000a0f00090f00021c0f000326001c4815000b0f00090f000226014b1c0f000326011c4815000c0f00090f000226024b1c0f000326021c4815000d0f00090f000226034b1c0f000326031c4815000e260415000f26011500100f00100f000a424301560f00040f000b2618411c0f00050f000c2610412a00ff231c480f00060f000d2608412a00ff231c480f00072a00ff0f000e231c480f00030f000f1c481500110f000f26014b3f000f06350f00040f000c2618411c0f00050f000d2610412a00ff231c480f00060f000e2608412a00ff231c480f00072a00ff0f000b231c480f00030f000f1c481500120f000f26014b3f000f06350f00040f000d2618411c0f00050f000e2610412a00ff231c480f00060f000b2608412a00ff231c480f00072a00ff0f000c231c480f00030f000f1c481500130f000f26014b3f000f06350f00040f000e2618411c0f00050f000b2610412a00ff231c480f00060f000c2608412a00ff231c480f00072a00ff0f000d231c480f00030f000f1c481500140f000f26014b3f000f06350f00113f000b06350f00123f000c06350f00133f000d06350f00143f000e06350f001026014b3f0010063534fea00f00080f000b2618411c2618010f00080f000c2610412a00ff231c261001100f00080f000d2608412a00ff231c260801100f00082a00ff0f000e231c100f00030f000f1c481500150f000f26014b3f000f06350f00080f000c2618411c2618010f00080f000d2610412a00ff231c261001100f00080f000e2608412a00ff231c260801100f00082a00ff0f000b231c100f00030f000f1c481500160f000f26014b3f000f06350f00080f000d2618411c2618010f00080f000e2610412a00ff231c261001100f00080f000b2608412a00ff231c260801100f00082a00ff0f000c231c100f00030f000f1c481500170f000f26014b3f000f06350f00080f000e2618411c2618010f00080f000b2610412a00ff231c261001100f00080f000c2608412a00ff231c260801100f00082a00ff0f000d231c100f00030f000f1c481500180f000f26014b3f000f06350f00150f00090f000206350f00160f00090f000226014b06350f00170f00090f000226024b06350f00180f00090f000226034b06353d0b0f010f282401510f000216011500040f010f282401510f000316011500050f0114282401510f000116011500060f0114282401480f000616011500070f013e2824017d0f00070f00041b0f00053c018b1603282400d60f010f16010b2101280f00012d0e4300590f00012824019b21019c160115000226020f00022400093e43003c0f000226001c1500030f0003282400d9261016011500041b0f00043c018b0f00040f0003282400d92600261016024b3c01350f000226011c3c019d0b370b370b2600251500020f02162824019f0f000116014300190f0001282401a01300005e5707020f00021602150002340069370f02182101a128240149370f020c0f013f1601282400020f02182101a221007a29022101a31602282400020f02182101a421007a29022101a516022101a6160216011500032100050f00012d0e1d00150f0003282401a70f01402824014c0f0001160116011500020f00020b0f00011d0009370f03360f000216010b0f02060f000124000929011500020f02030f0002290115000326001500040f00040f00012400094243001b0f00012824000a0f000416010f00030f00041a3f0004393534ffd80f00020b0f0206282401a80f000116011d000a0f000124005d3f000106350f020c24003728240108370f02030f0001290116020b0f020324019e2400ef4300120f0001282400ef0f00020f0003160234001d0f02030f021624019e2400ef2824014c0f00010f00020f0003160329010b1300005f450702150001370f02260f00011b21017d3c01351300005f640d023c013632000116020b370f0327170f01011602350f0001172101a906350f0002172101aa06353d0b172401a92824017d1b2101ab3c01ac172401aa3c018b0f00020f000116030b0f000124005c1500020f00021d00170f02240f000124005d2901282401ad0f000226011e16011500030f0003430015370f01430f000126000f00020f00031e16033400030f00010b0f00012400092602424300042601250b0f000126011c1500022101280f00022d0e1d00090f00022400092600451d00072100320f00022f0b0f02030f00012400090f00022400094b29011500030f0003282400380f00011601350f0003282400380f00020f00012400091602350f00030b13000060640701150001370f02260f00011b2101ae3c013513000060780d013c013632000116020b370f0327170f01011602350f0001173301a93d0b172401a9282401af2101b00f00011b2101ab3c01ac26012521017c21017d32000216050b13000061910700150001370f02260f00011b2101bd3c013513000062aa0d003c01361b2101be3c013513000062b20d003c01361b2101543c013513000062f60d003c01361b2101403c0135130000631b0d003c01361b2101bf3c013537130000633d070016003c01361b2101ce3c013537130000650b070016003c01361b21017d3c013537130000675a070016003c01361b2101d13c013537130000687a070016003c01361b2101c73c0135371300006a28070016003c01361b2101d73c0135371300006c00070016003c01361b2101d43c01351300006cf20d013c01361b2101d23c01351300006d410d013c013632000c16020b0f00002400092600451d00080f000026001c3d2f4300090f000026001c3400011b150001370f0327170f0101160235260025172101b1063537172101a9063537172101b2063537172101b3063537172101b4063537172101b5063537172101b6063537172101b70635370f032c1b2600253c01b80f00011602172101b90635172401b92401b843002f1800041500031f0500250f03082401ba1500020f00021d00140f00022401a90a00060f00022401bb172101a906351f21012a0f00012401bc2d0e43001e0f00012401bc0a0004172401a90a000b260025172401b92101bc0634000d172401a925172401b92101bc0635172401b92401bc1d001a0f020a2900172101b60635172401b6282400581600172101b706353d0b172401b92401bc0b172401b51500010f00012543000917282401541600220b0f04030f000129011500021728240154160035172401b92401b843000c370f03450f000216013400030f00020b37172101b5063537172101b4063537172101b30635172401b21d000637172101b206353d0b172401b61d0011172401b62824014016003537172101b6063537172101b706353d0b13000064fd0701150002370f032d370f032e1600282401c013000063670d01160116011500010f00020b370f052e1600282401c1130000637e0d010f010016020b26014301780f00012401c20f00012101c306260002002326080200d026090200d4260c0200e6260e020135260f0201402101c402013a35340140370f06420f020116011502020f0202282400002101c516012543000b260c0f00013301c23401190f02022824019b21006d16013f02040635370f07010f020426001c282400ef2602160116013f02050635370f072f0f02050f02052400091602150206370f06460f020416010f00013301c60f00012401c62543000b26090f00013301c23400b926080f00013301c20f0730282401c70f020426011c1b0f07313c018b2a00803c01c80f02063c01c916020b0f00012401ca150206370f06410f02061601150203260e0f00013301c234006e370f07370f020216011502070f0207430024370f0641370f07350f020724019d0f02072401350f020724018b1603160115020334001e0f0706282401a80f020116014300090f020124005d3400030f02011502030f0001282401cb2101cc0f020316020b0f0001282401cd16000b34fe833d0b0f010128240108170f000016020b130000674c0701150002370f032d370f032e1600282401c013000065350d01160116011500010f00020b370f052e1600282401c1130000654d0d010f01001716030b26014301f80f00012401c20f00012101c306260002001e260602005b260b0200f4260d0201ba260e0201c52101c40201bf353401c5370f06420f020116011502050f070626002901150206172401b70f00013301c60f00012401c62543000b26060f00013301c234019026060f00013301c2172401b70b0f0205282400002101c516012543000b260b0f00013301c23401680f02052824019b21006d16013f020706350f020726001c282400ef260216013f02080635370f06460f020716014300170f07030f0732282401cf0f020726011c160129013400070f0703260029013f0209063537172401b63f0202060e0a00170f02022824013a0f02080f020926100f0609240138160435260d0f00013301c23400e5370f07370f0205160115020a0f020a4300790f07030f0732282401cf0f020a240135160129013f020b06350f0732282401d00f020a24019d26002516023f020c06350f07030f020c29013f020d06350f07030f0732282401cf0f020a24018b160129013f020e063537172401b63f0203060e0a00120f02032824013d0f020d0f020b0f020e1603353400400f0706282401a80f020116014300090f020124005d3400030f02013f0206063537172401b63f0204060e0a00120f02042824013f0f02010f06092401381602350f0001282401cb2101cc0f020616020b0f0001282401cd16000b34fe033d0b0f010128240108170f000016020b130000686c0703150002370f032d370f032e1600282401c013000067840d03160116011500010f00020b370f052e1600282401c1130000679c0d010f01001716030b26014300c90f00012401c20f00012101c306260002001e260302004d260502006f260702008826080200962101c402009035340096172401b92401bc2543000b26050f00013301c234008026030f00013301c217282401d10f07030f020129010f02020f020316030b17282401be16001502040f0001282401cb2101cc0f02044300090f020424005d3400013716020b26070f00013301c217282401c70f07030f020129010f02020f020316030b0f0001282401cb2101cc0f00012401ca16020b0f0001282401cd16000b34ff323d0b0f010128240108170f000016020b1300006a1a0703150002370f032d370f032e1600282401c013000068a40d03160116011500010f00020b370f052e1600282401c113000068bc0d010f01001716030b26014301570f00012401c20f00012101c306260002001e260202002c260702009a260d0200d526100201242101c402011e3534012426020f00013301c217282401ce0f020216010b172401b43f02050635172401b53f02060635172401b33f0207063517282401d22101d31601350f02071d0017370f06470f02070f020116023f0201063537172101b3063517282401d40f020116011502080f020824000943000b26070f00013301c23400ac0f0001282401cb2101cc3716020b0f02051d00070f02053f020306350f0206150209172401b70f00013301c60f00012401c62543000b260d0f00013301c234006b260d0f00013301c2172401b70b37172401b63f0204060e43000626002234000f0f02042824013e0f02010f02031602173301b5370f06430f0208261020160224005d173301b40f0001282401cb2101cc0f0209430007172401b53400013716020b0f0001282401cd16000b34fea43d0b0f010128240108170f000016020b1300006bf20703150002370f032d370f032e1600282401c01300006a520d03160116011500010f00020b370f052e1600282401c11300006a740d010f0100172603261132000232000116040b26014301660f00012401c20f00012101c3062600020028260302006f2606020085260b0200b7260e0200d626110200e426140201292101c402012335340129172401a91502040f0204250a0016370f07360f02042401af0f020424017d3200021601252543000b26030f00013301c23400f60f0001282401cb2101cc0f07191300006be10702290116020b26030f00013301c326060f00013301c217282401bf0f020216010b0f00012401ca1502050f06480f020429011502060f06440f02040f02032902150207260b0f00013301c20f0206282401ae0f020516010b0f00012401ca150208260e0f00013301c20f02072824017d0f020124005d0f020816020b0f0001282401cb2101cc0f00012401ca16020b26110f00013301c30f0001282101021c260316010f00013301c60f0001282401cb2101cc0f070a2824002b2101d60f00012401c616023517282401d70f02010f02020f0203160316020b0f0001282401cd16000b34fe953d0b370f00020f08022101d529011601353d0b0f010128240108170f000016020b1300006ce40703150002370f032d370f032e1600282401c01300006c2a0d03160116011500010f00020b370f052e1600282401c11300006c420d010f01001716030b260143009b0f00012401c20f00012101c3062600020014260602005026080200722101c402006c35340072260025172401b93301bc260025173301b10f060a2900173301b6172401b6282400581600173301b726060f00013301c217282401d10f02010f02020f020316030b17282401be16001502040f0001282401cb2101cc0f02044300090f020424005d3400013716020b0f0001282401cd16000b34ff603d0b0f010128240108170f000016020b0f00011500020f00012400090f000124000926103b1e1500030f00030f00012400092f1d0024370f03430f000126000f000316033f00020635370f03430f00010f00031602172101b306350f00020b172401b11d0008260125172101b106353d0b1300006d7e0701150001370f02260f00011b21017d3c0135371300006d97070016003c013632000116020b370f0327170f01011602350f024a0f00012901173301d83d0b1300006e6c0703150002370f032d370f032e1600282401c01300006dc10d03160116011500010f00020b370f052e1600282401c11300006dd90d010f01001716030b260143008c0f00012401c20f00012101c30626000200192602020030260502004e260602005e2101c40200583534005e26020f00013301c2172401d82824017d0f02010f02020f020316030b0f00012401ca1502040f020443000b26050f00013301c23400280f07022101d92901310f0001282401cb2101cc0f07030f0204290116020b0f0001282401cd16000b34ff6f3d0b0f010128240108170f000016020b130000000007021500011300002646070015000513000026940700150006130000272007011500081300004d67070315001f1300005cfa07031501351300005d5607011501371300005dbc07011501361300005e6707011500411300005eb107011500421300005ee107031500431300005f8307011500451300005fcb070115004613000060030702150047130000018a0d0115000213000001970d011500030f000315000437130000269d07001600150007370f00061600351b26003c013726013c01381500093713000027680700160015000a371300002d1f0700160015000b371300002de607010f000b160115000c1b13000032980d013c014813000033280d013c015115000d1b130000339c0d013c014813000034120d013c015115000e1b130000347d0d013c014813000034ac0d013c015115000f3713000034c507010f000b16011500103713000036b907010f0010160115001137130000380607010f000b160115001213000039f70d031500131b1300003aa70d013c01481300003be30d013c015121016a3c016615001432000015001526001500160f001626404243003403014e0f0117282400ec0f01172824016b0f001626014b160116013a2600100f00150f00161a0f001626014b3f0016063534ffc31300003c8b0d071500171300003cc10d071500181300003cf70d071500191300003d280d0715001a371300003d5a07010f0011160115001b3713000049b007010f000b160115001c371300004b0807010f0010160115001d26010f001d210179063526020f001d21017b063526040f001d210171063526040f001d21017e0635371300004cca07010f000b160115001e371300004dd407010f001e1601150020371300004e0e07010f002016010f00202101810635371300004eab07010f002016010f002021018206351b1300004f4e0d023c01871300004fd40d013c018815002137130000500807010f001d16011500223713000051a407010f000b16011500231b13000052160d013c0148130000526e0d013c01511500243713000052f507010f000b16011500250f0107282400170f000b29001b0f00243c019216020f002533015c1b130000545e0d043c01941500263713000054e907010f002516011500270f0107282400170f002524015c1b0f00263c019516020f002733015c32000015002832000015002932000015002a32000015002b32000015002c32000015002d32000015002e32000015002f32000015003032000015003132000015003226001500330f00332a0100424300320f00332a0080424300090f003326010134000a0f00332601012a011b480f00320f00331a0f003326014b3f0033063534ffc42600150034260015003526001500360f00362a0100424301970f00350f0035260101480f0035260201480f0035260301480f0035260401481500370f00372608412a00ff0f003723482663483f003706350f00370f00280f003406350f00340f00290f003706350f00320f00341c1500380f00320f00381c1500390f00320f00391c15003a2a01010f00320f00371c3a13010101000f00373a4815003b0f003b2618010f003b260841100f002a0f003406350f003b2610010f003b261041100f002b0f003406350f003b2608010f003b261841100f002c0f003406350f003b0f002d0f0034063513010101010f003a3a13000100010f00393a482a01010f00383a4813010101000f00343a483f003b06350f003b2618010f003b260841100f002e0f003706350f003b2610010f003b261041100f002f0f003706350f003b2608010f003b261841100f00300f003706350f003b0f00310f003706350f00344300320f00380f00320f00320f00320f003a0f0038481c1c1c483f003406350f00350f00320f00320f00351c1c483f00350634000e26013f003506350f00353f003406350f003626014b3f0036063534fe5f260026012602260426082610262026402a0080261b263632000b15003c37130000563907010f0022160115003d26080f003d3301710f0022282401610f003d160115003e0f010724019e2400d615003f0f012324019e2400d6150040371300005f1d0700160015004437130000603c07001600150048261015004937130000609c0700160015004a371300006d53070016001501343d0b01da0a0e091c0f090e2a14091505191c091c47070f180d111c1e181023191c091c475357421f1c0e184b495100081b08131e09141213041b0f1210061f1c0e184b494b3b1c141118195d09125d19181e1219185d1f1c0e184b495018131e121918195d191c091c5d282f31515d3f081b1b180f5d1c13195d1c09121f5d1c0f185d1312095d0e080d0d120f091819061118131a09150a1e151c0f3e1219183c090b14130e091c1309141c091804091518130814130e091c131e180715181c19180f0e031a18090c3e1213091813095029040d181414130e091c1309141c09182e090f181c1014131a101c0d0d11141e1c09141213520a1c0e100b1c0f0f1c043f081b1b180fc2dfe5191c091c471c0d0d11141e1c09141213520a1c0e10461f1c0e184b49513c3a3b071f2c383c3c3c3c3f523c3408243c3b523c25441a3c25453c243c37521b0a3b52243c37521b0a3f1a3c4e44521b0a3b52243c27521b4e44521b4e453f1b4f3c3b1b4e44521b4e453f1b4f3c391b4e44523c3a3c381b4e44521b0a3f1a3f1344521b4e44521b0a3f1a3f2544521b4e44523c3a3c381b4e44521b0a3b52243c15521b4e44521b4e44521b0a3b52243c19521b4e44521b4e44523c25441a3f2544561b1348563c3a3c3c3c3a3c351b4e44521b4e44521b0a3f1a3f3544521b4e453f1b103c3b1b4e44521b4e493f1b4f3c3c3c25441a3f3544561b13453c243c37521b1a3f1a3f2544521b1344523c3a3c361b4e44521b4e44521b4e44521b0a3b52243c05521b4e44521b4e44521b4e44521b4e453f1b4f3c341b4e44521b4e44521b4e453c243c44521b4e44521b4e44521b4e44521b4e44521b4e453c243c0d521b4e44521b4e44521b4e44523c3a3c311b4e44521b4e44521b4e44521b4e453f1b4f3c3a1b4e05521b4e44523c25441a3f4e44521b4e44521b13493f1b4f3c3a1b4e44521b4e48563c25441a3f2544521b4e44453c25441a3c1344453c3a3c381b1348561b1a3b52243c37561b0a3b52243c37561b1a3b45243c3b523c25051a3c4e48561b1a3b52243c33521b4e453f1b3a3c391b4e44523c254c1a3f3544521b4e493f1b103c3e1b35453f1b3a3c391b4e44563c3a3c3e1b13493f1b2a3c3e1b4e453f1b1a34053e3c3b153c2a383c390a3b153c2a343c3f1a3b153c2a303c3c1a3b153c2a2c3c3c1a3b153c2a283c3c3c3b153c2a243c3f3c3b153c2a1e3c3f0a3b153c2a1a3c3c3c2d313f3016383c1a3c3c3c1a303c3c2c303f3c3c3c3c3c0a3029390a493c3c3c38393c2c2c3c3c2c3c3c3c2c3c3c3c1a303e3c1a1e323f1a1a363b3c303e3c3c30393c3c34393c3c30393c3c493e3f3c2c3c3c0a2c3c3f3c3c383c3c3c3c3c0a30393c0a2c3c3c3c383e3b2c34353f2c303a3f1a0e3e3c3e383e3c3c0a303f2c1a3e3c3c3c3c3c0a30393c0a3c343c3c1a3c3f0a3c3c3c3c303e3c1a30393c1434283c3c3c383c0a343c3c3c303c3f0a343e3c3c3c253c3f1e3c340a303c3c3c303c3c2c3c3f3f0a34353e3c3c393c1a34363c0a343f3f3c303c3f0a34393c3c3c393c053c38383c34333c1a4d313c1a0e3c3c3c342b3c3c3c383e3c343c3e2c1e343c1a1e393e1a383c3f3c24393c2c3c3c3c0a2c243e1a2c243e1a1a2f3c1a3c38373c4911371a3c3f3c2c3c3c3e1a453c3c3c1e3f3c05283f3f3c1a3e3c1a12273c3c1e353a2c3c3f3c0a1e3e3c0a383e380a38343f0a123c3c3c3c3f3c3c2435393c3c3f3c0a383c3c3c303f3c2c383c3f3f121f3a150e3c3c1a3c3c3c1a301e3c0a343c3c3c1e39353c30393c1a34393e2c1e363e2c16363e2c163c383c2c2c3c0a343b3f0a2c3c3e3e1e12382c0e3b3e0538313c3c3435382e163c3e0a3c3f3c0a343e3c1a1e383c3c240c3c1a3c3e3c1a2c0f313e4d34391a34323b3c493c3c2c343e3c3c3c3c3f0a30393f0a30393c2c3c3c3c1a303e3c3c3c3e3c2c3c3e3c3c383f3c1a2c3c3c3c2c343b1a2c3f3c2c3c3c3c2f303f3c2c3c373e2c16363e1a123c3e3c1a343f3c453f3c2c3c3f3c3c383c3c2c3c3f3c3c383c3c2c3c3f3c3c383c3c2c3c3f3c3c383c3c2c3c3f3c3c30393c0a30393c0a3c3c3c2c383a393c0a3a393c0a3c3f1a3c3a393c0a3f3f1a24383e0a2c3e3f3c343f3f1a2c313f3c34383c1a0e313e0a2c3f3c2c383f3e2c163b351a2818392c4d33392c4d33393c283b3f2c283b3f0a0a3b3f2c283b3f2c241b343f343a381a1e3a3f1a241b343f343a381a163a3f1a283b3f2c283b3f2c283b3f2c283b3f2c283b3c3c283b3f2c163b3f3c1a3a3f3c1a343f1a2c39352c2c3f3c2c3c3f3c3c1a3f3b1a343e3c3c3c3f3c2c3c3c3c2c3c3f3c2c3c383f3c1e3f1e3c353f3c0e383e3f2c243f3c293e3c1a3c343a3e3c3b523c283a1a4c0a38313f4d1a2d3c2a163e3c3c3b0c3c321e3f3c2a0e3c3a2c3b0e3c3f3c3f1f2c391c3c1a3b083c312c383c2a453c0f1a2c3f1e3c3e273f3c3b053c373c383c25343c0f3c383f1e0a3e393f3c3b4d3c2c3c3f192c3e2b3c0a3b4f3c372c393c251e3c160a3037050a2c3f3c38383f3e453c3e072c2e0c3f30383f0b3c3a2c3c4b0a3f170a32323c494d39294d56303c490e39141a32343c443c38143c2d113c241e39070a29323f322c3f562c31303f300e38083c35173c1e1238043c29373f301e384d3c353f3f3034380a3c293b3f302c380a0a2f56162c32363c18343f0b0a2e563f314d380b3c29153c1f0e38081a2e483f311a38090a2c2c042c350b3c564d390a3c32563c4a0a39081a32493c4a2439093c32043c4a3c390f1a320e3c4b12390c3c32103c48303e453c2d083c49493e492c2d1a3c4445394e1a2d193c4b453e4e3c2d1f3c441239103c31243c441e394c1a2d2b3c442c39294430394d1a32353c0e0e39042c2d343c451e39052c2d393c49243e041a2d3a3f373439051a2d383c45343927143c1a4a3c2d0f3c5612394b2c2d123c561e39481a2d113c4b453e483c2d173c56343934344d3e172c31303c1f4d3f0b2c35273c4a4d3f343338394d3c2d303c28442d070a32343c1439323c454d39073c3b2d29450a39143c371034312438092c2e073f3a241a0e1a2e053f313c38343645380f2c2e0e3f360e38043c31343c0c16380c3c2e133f3624380d2c2c1a0d3c2e173f363438122c2e523c0f453e123c2e1b3f374938132c2e1e3f3e3e1f3f371238103c2e253f372438112c2e283f37303834373438162c2e2d3f344938172c2e303f340e38141a2f103431163e142c2e343f341e38151a2e3b3f342c380a2c32443c4a16390f2c320d3c4a28390e2c33103431163e1a1a2e3f3f343c38520a2d563c524d390b0a324a3c4a1e390c0a32133c4a30390f0a2d363c24343e523c2d363c24343e560a301a0c0a3a0f3c2a090f1c4b4d3e294f0d0c34360e3f0c0a3b0f1c4f08093c16440c1c143e0c3c1c123f1c4b163f0c2c3a0e3c16440c1c143e0c3c1c123f1c4b163f0c2c3a0e3c16440c1c14394b3c521639342d1a39440a301a441a2d4c3c04394d3c5230393437163e451a320e3c2e3e273c0b38390f3c3b100d2c32163c4f241a042c35373c1c3039102c321e3c4b343934371239132c32153c043e1f3c484939123c331034371a39110a321b3c4824393e0c291b3f4516383f0a3c1a3c3e3c3f183c0e283c3e3c3c383928382c3e3c3c363c3438390a0e1a3c3e4d3c3e0a0e193c2c3b52343c3c2c332c2f3c343c3c123c1a3c153c2e3c3c38354d1c343c382c383c0e1a3c3c0e373c3e3c3c383c4d1a3c2a12314d1a383f3f35453e2c3e3c3f343c3c2c3e2e34392e0a2f3c340a3f3f383a0e143c142c3c343c381a3c4f0e143c0a2f3c343c3c2c38043838343c3c2c3e2e343f343c330c342c281a3c043c38343c3b0f2e0a2f3c343c3c1a3f3e3c3b343c2f0f343c381a3c2f39343c2c0e1a3c2e3c3c383c4d143f3a121a3c4d383c382d1e3f343c3c1a3f2f3f49343c373f3c39123c39043c38343c2b0c343c373f394f122c333c0e303c2c0e173c38382c1c04343e373c3c3e2c3e3c3c383928382c3e3c3c363c343c342c301a3c16383c321a3c2d343c381a3c4f121a3c16382d1c153c4d343c3c1a3c2f3c48393c3831343c373f3c39123c39143c3c343c3b0c343c373f3910122c333e3c3c343c382c321a0e31343c373f383a12163c3c0e2f3c3e3c3c383928382c3e3c3c363c343c390a0e1a3c3c0e363c3e3c3c363c343c3836303f3e0a0a3c343c3c1a3c28381e1c153e2c3c1a0b30393c38351b0a373c343c3f3b392c3c1a3c3838341c043439343c3f3f3f3a0e123c1a3c143c283b491e2e343c1c14383b3c163c1a3c28383f1e2c4d3c343c3b3f3c4e3b3b392c381a3c043c39363c343c341a3b0f341a333f4b34383f363c343c2e2c4d3f343c3c1a3c2a12153c3e3c392c18043f3c2e1a3e3c381e382c3e3c3f2c1b453f292c2f3c343c30123c1a1a143c143c3f2c2c334f341a2f3f3c4e2f3f1a34343f1c16241c343c341a3c041a3e393e343f2f1a2f3c2c19143f3c2835241a2c38123c1a3f3f1b143c38194e384f3c1a3c303c0a0e1a3c143c3f331a3430343c381a3c17243e3e3c0a3e3e043c39363c3424342c243e2c3e3c39343c30123c1a0a143c281e382c3e3c39363c3434341a341a3c29243e393e3c3f343c344f3c1a1a303c2c0e3e2c3e3c392c2f2f0c341a34123c1a3c143f3c4d3c343c333f383a12143c141a3e3c3e3438392c3f3f3c3e383f393c38313c4d3c1a3c143835343c2c143c2838281c14343e363c343c341a2c333c3e3c3f2c2f3f0c342c341a3c2e1a3e383e3438392c3c31343c193f3c39243e3c3c0e1a3f1628333c2c373c343c301a3c041a3e353e343e2c2c374d2c2414383c2a12143f3e1a3e3c3824382c3e3c38343c384f3c1a3c1a3c2c4d3f2c19043f3c28351e1a2c38123c1a3f3f1b143c3e194e384f3c1a3c303c0a0e1a3f16382c2c2f2c1a3f141a3e383e3c392f15090c343c384f3c1a3c1a3c2828333c1a0e1a3c2e3c3a331a3424343c30123c153c143c1a2f3c343c381a3c17243e383e3c3e343c384f3c151a31343c30123c152c143c1628333c2e3c3f343c344f3c152c1a3c143c3f331a3424393c3831343c28123c1a2c143c2838391e2838392f0a4d3c2c183e3f3c2e3c3c331a343c343c281a3c283b561e29243e3f3e3c39343c3f3f3c25344f3c1a2c1a3c3e3c391c143c3c331a343c390a0e1a3c043c3b290a4d3c343c28123c1a2c143c28383f1e2828333c3c373c343c3b3f3c133b3b3f383c1a3f28350a1a2c38123c1a3f3a3f383f3f4534383f343c304f3c1a3f3f4834383f2c182e3f3c2e1a3e3c3e3c3c1c14343c331a343c343c301a3c38383f1e17243e3f3e3c392c18043f3c2e1a3e3c381e333c4d351a1a2c3b3f3c39243e3c38350e1a2c3b3f3c39243e3c3c4531343c2b3f4a34383f363c343c2f1a2f3c2c18043f3c2e3c39331a343c2c183e3f3c28351a1a2c38123c1a3c1a3c3a12143c39243e3c3e3c39343c3f3f3c25344f3c1a2c1a3c3e3c391c143c3c331a343c390a0e1a3c283b491e2e3c3c1c14383c3c163c1a3c2835523c284d382c3e3c3b363c3434341a341a3c283839191434382c2c334d2c243e3e3c2a0d3a3a143c3e343c28123c1a0a143c2824382c3835241a2c3b3f4f34383f363c343c2c25491a3f351905331a343c393c3431343c341a3c29243e393e3c3f343c344f3c1a1a303c2c0e1a3f2e1a3e3a3e383a3c163c1a3f2e3c3b363c3430341a3b353f383c1a3f2e1a3e3e3e343e2c18143f3c2e1a3e3c38161c343c341a3c29243e393e3c3f343c344f3c1a1a303c2c0e3e2c3e3c3b2c2f2f0c341a34123c1a3c143f3c4d3c343c2b3f383a12143c141a3e3c3e3438392c3f3f3c3e383f393c38313c4d3c1a3c143835343c2c143c2838281c14343e363c343c341a2c333c3e3c3f2c2f3f0c342c341a3c2e1a3e383e3438392c3c31343c193f3c39243e3c3c0e1a3f1628333c3c373c343c281a3f2e1a3e353e343e2c2c374d2c2414383c2a12143f3e1a3e3c3824382c3e3c38343c384f3c1a3c1a3c2c4d3f2c19043f3c28351e1a2c38123c1a3f3f1b143c3e194e384f3c1a3c303c1a0e1a3f16382c2c2f2c1a3f141a3e383e3c3b2f15090c343c384f3c1a3c1a3c2828333c2c0e1a3c2e3c3a331a3424343c28123c153c143c1a2f3c343c381a3c17243e383e3c3e343c384f3c151a31343c28123c152c143c1628333c3e3c3f343c344f3c152c1a3c143c3f331a34243e043c39343c3f3f3c25344f3c1a2c1a3c3e3c391c143c3c331a343c343c333f4a34383f363c343c2f0a4d3f2c183e3f3c2e3c3c331a343c390a0e1a3f2e3c3f2c254805331a3438343c301a3c38383f1e17243e3f3e3c3c343c330c343c3c4f3c1a3c31343c3f3f520a3b333f383c1a3c3838391914343f2c2c334d2c243e3e3c2a12153c3c37522c19143f3c2e1a3e3c3e343e2c2c381a3c252c143c253b3b3f383f3f4f34383f343c381a3c13344f3c1a3c1a3c3c0a3f3e043c3c363c34343e04383e343c3c1a3c07243e3e3e3c3e343c304f3c1a0a1a3c043c3c331a3430343c301a3c17243e3e3c45312c2f45153c143c392c1a3c4e3c153c1a3c38355252524535292c2f3c343c3f3f3e3524143c2e3c3f2c2439562d4f0d3f3835273f3e3538143c252c143c143c3e2c24391a354f0d3f3835273f3f3538143c132c143f3e3c382c243e3c394f0d3f3835273f3c1338143f352f3f394e241a3c2e3c3e1e143c381e100e143c28383f193e3c3c343c3b3f3b2a0d4f2c2c3b051e16381e1c14383e3e043c39343c344f3c150a1a3c16383e19383a34153c3b0c342c383e2c3c373c3c163f3f4e34383f363c343c341a2f3f3c2e3c3e193e34351e2828382c38351e1a2c381a3f3e3c351e17243e3c3e3c3f343c304f3c1a3c1a3c043c3f331a3424393c3831343c3f3f3c383827343c373f3c25270f343c373f354d241f193e383e343c38123c1a3c153c2c333c343c38143f3e1a3e3f383b491e2e3c3c2f1a4d3e343c373f352524153c2e3c3e2c2c3b4d342c341a3f3e3c3f2c2c2f051c1434352c2f3f0c363c343c341a38333c3c0e1a3f043c39331a342c343c301a3f39243e3a3c0e1a3c043c39331a3430343c301a3c07243e3e3c0a3f3e043c38363c3434341a3c1a3c07243e393e3c38343c304f3c1a1a1a3c4d383c331a3424343c301a3f39243e393e3c39343c3c4f3c1a1a312c1b143f3c2835491a2c38123c1a3f3f3c2a0e143c383b52343c3c1f331a343c3e0a0e163c2c3b52340a3f3f383a0e143c2e2c3c343c3f3e3c391e3e3c3e3c3c2c2c3c4f3c1a1a1a3c28382c1c142c3c343c3c31140a343e3c4e453e1b1a373c343c3c0d3c4e3c143f3b3f3b343c2c1a3c3e1639183e3c3c363c3438341a381a3c3e1a3e313e343e1c4b0545341a2b251e2828382c3e303c2c2f3f0f341a34163c383b52342c383e2c3e3c3c3832163f392c3c1a3c3e3c3e2c2c440c2c2c381a3c3e1a3e343f38383c38383f2f0a4d3c343c34093c3c45153c2c0e1a3c16382c1c142c3c343c38143c4d383c291a4d3f343c3c123c1a2c153c2e3c3c363c340e342c3431343c3f3e1b071e391e3e3c3c343c384f3c101a1a3c3e3c3b343c341a3c2a080e1b391e3918383b52390a0e1a3f28343f1b3e383b343c3c123c1a2c153c2e3c3c363c3434342c343e2c3e3c3c362c330a341a2f2c392c3c1a3f3e3c3b1b2e3438343c341a3c2a080e2a2c4d3c343c381a3f36190c342c3431343c3c1a3c17243e1c3e3c3c343c281a3c3e1a3e313e343c343c3b0f0f350a4e3c4e1a1a3c3e3c3f290a2f3c343c3b3f3c2a0e1a3c07123c3c3c0e1a3c0a0e273c2c3b522c2c12153c2e3c3c383928381b043c3c38354c3f3c2a0e3b343c38313e56303f3c2c2752343c382c4d0a34153c04303c2c2f3f0f341a28163c3c373c343c301a3c3e34383830453f341a3f333f383c1a3f3f3c33341a24153c143c39341a3c381b0a373c343c381a3c1624333c3e3c3e343c3b0f343c3f3f3c132f2d3f383c1a3c3828333c2c333c343c341a3c2e1a3e3c39243e3c3e3c3e2c2c2f0c342c341a3c2838381c14383f343c3f3f3c2a0e143c3c4d3c3e0a0a3f3e043c3c2f2c4d3c3c4d3c1a3c143c3c2c2c3b0f341a3f3f3c132c143f4f121a3c2e3c351c141a3e3c39243e3c3e3c3c392c3c313e4d383c3f2e3c3e3e05121a3f28383c331a3430343c241a3c4d383e193a121a3f2838301c153c07343c2c1a3c053f49393c3831343c2c1a3c3e3c39343c3f0f343c2c2c3e2e343c2c2c3c1a3c3e3c39343c382c443c3831343c2b3f383a12163c3c09073c2c3352343c382c161a38153c14303c2c2f3f0f341a2c163c3c373c343c341a3c3f3c29341a33333f383c1a3c3f3c33342c301a3c1a2f3c343c301a3c2e3c3e3832123f3e043c382c2c3c4b3c3c451a3c143c391c143c382c2c440c38392c1a3c3e3c3e38351a303c2c0e1a3c3e3c39343c341a3c4f0e1a3c3f3c37341a3f3f3c3e3c3c343c341a3c2f39493c2c0e1a3f38382c1c142c3c3e564d3e3c2c2f523c163f3f4e341a3f312c3c3c2c2c3b05392c3f3f4e341a3f383e2f3b392c3c173c38381a1c04343e373c3c3e2c3c373c3c4d3c1a3c1638341c143c3c2c2c374d1c1a37522c2c381a3c352f3f52525252520a1905341a333f3c25373b3f383c1a3c38383e193e1a3e3c3c0a3f3e043c3c2c2712182c1c2c1b343c301f38323c3e3e043439331a343c343c333f1b4d1e382c3e3c3c2c2c3b0c341a3f3f3f1624333c1a0a3f3e0a0e303c2c093f3c3f391b3c1628382c383534312e383f343c373f3e3a0d3f043e4d2c130a3b3b392c3b3f493e4d153c2e3c3e2c2c150c2c183c093837453f2f2c4d3f2c2c3c153c383a0a150a38093c3c3f3b3f383c392c3e3c3c2c2c374d2c243e353c2a121a3c383a163505391a3c17243e3c3e3c3c2c2c3b0c341a3f3f3f161e333c3c093f0e341e3f2c2c384b3c3c3f3f10341e3f2c243e353c2e1a3e3c39243e3c3c093f1a341e3f342c381a3c1638341c163a3c150a382c130a3b3b392c3b3f10341e3f342c381a3c1638341c163a24150a382c130a3b3b392c3b3f3a3f3c27341a3b3b392c3831343c381a3c1416393e391e3e3c3e3c3f343c340d3c051a4e3c153c1a3c2e3c3e362c302c330a34343e043c3e2c2e3f0c373c3f3f4f341a3f343c384f3c1a3f3f4e341a3f383e30312c1914343c2e1a3e3c3c0e3b3c3f3c3c3c3c0b1b3e1a343b1b0a4456340a3f3f493c3f0f341a28163c3e3c382c0b52525252525252075639341a4c3e3949241a3c4d340514342c1539143c3e343c2e3b2c123e3c1a343e3c1a343e3c1a355639342c121a3c16315252525252525245521a0434312c143e34342c451a3928342f143e382c343c2f3e303414132c1b52523c2538153f0a373c3c163c1a3c16340a1436193f5252453f1e2e34372c2c3b0f2c1b4e523c284d382c3e3c352c2c3b0f2c1b4a523c2816333c2c0e1a3c2b3c1a3c16315252525252525252525252453c1a0434302c123e3c1a343e3c1a303952520a3f28343c053e1a343e3c1a343e3c0a2d52523c3b381f2f2c2f3c343c373e1a343e3c1a343e3c34342c153e1a0a3e3e043c39283e3c382c0b52525252525252525252520a3e39341a373e1a343e3c1a343e3c0a2d52523c3b2c1a3c16363c1a343e3c1a34393c5252453c282f093b3f383c1a3f38363c1a343e3c1a343c1a153e3836343c30153c2c0a3e3e043c3f343c053e1a343e3c1a343e3c0a2d52523c342a38283c2f3c343c341a3c492f2c3f383f3e1a343e3c1a343e3c492d52523c3e38362c1a3c153c2c0a393e043c362c123e3c1a343e3c1a303952520a3e38342c0d3e3c3e383f393c3431343c301a3c16363c1a343e3c1a34393c5252453c15242f2c3f383c1a3c2e3c30153e383e2c1a3c153c2e3c3e283c2f3c2c123e3c1a343e3c1a323952520a3c153e1a0a393e043c362c123e3c1a343e3c1a303952520a3e38342c12303c1a0e1a3c2e3c30153b3c382c38343c342c38303c1a0e1a3c143c39153b3c382c38343c342c38303c1a0e1a3938315252525252525245522a3c2f3c343c2b3f4d3c3f0c343c381a3e043c3f343c0e1a3e4c3c143f150948343c273f3f132e091b361e143f16382d1c053c0b2c2f3c1a3f100e153f143c3b362c3324341a093e34341a1539043c3b362c332c342c3831343c373e52525252525252522d4c24333c3e3c3b2c283f0f343c301a392e3c39343c4d1a392b3c143e3f0948343c153f3f132e091b361e143e38382d1c053c0b343c241a3e3a093f383a12153f143c3b362c3334341a373e3949241a3f2e16392c3e34392c173a34153e3832343c373e38241a15383c0e1a3c4d342d1516363c1a2d4a52394930143c143c3f2c143e34341a2f563415341a3c4d342f143831525252525239493014393e3c3f2c0b52525252452d1a04343f1b130a143828341a15143433343c381a3c134845341a301a392b2e09343c341a3e4d315252525252394930143e4e49143b2e3c38343c05561b3e3429343c483e52525252520a5639341a4d1a3c25484534152c1a382e3c2e2b364c3e3434241a3828341a14342f453415381a3c143c2d2c123e3c3f342c14391349143b143c31343c05561b3e342d343c2c1a392548453415341a38383152525252523f49333e1a343e3c1a3c1438341a341a3c25484534153f3e3434274534151945342c381a3f043c371c143c3a1c163552520a3f0f342c243e2c3e3c31343c4c5634151a1a393e3c321b130a14393e3c242b364d1a393e3c3e343c2f561b3e3438343c05280f250a1a3c143c321b130a1a3f3e3c38343f301a3b2b2e09343f301a3b3b1c091b350a143f3b1c091b3e3c3e343c0956341a0e1a392e3c321b130a143c143c312b364c3e3434241a3c16341a14342f45343c2c1a3c16341a15130a143c143c382b364c45343c341a3c143c2c343f37280f2e3c2d343f27280f2e3c2d343f372a0f2505452c143e3a343f3f3e343414381b3e343e2b0c4c45343c341a3c143c2f343f2f280f2e3c2f343f192a0f250545341a372a0f250a143f38363c1a343e3c1a34393c3c34332c2f2c2f3c343c273f3c2a12153f1a0a3f3e043c392c175634342c0e1a3f38343f15143c3e2c175634153e3838343c373e3c24241a3c28345214342c153c143c392c1a3a3a342c301a3e043c3f2c1a3a3a153e383f3e043c3a2c1b52523c2849382c3e3c362c123e3c1a343e3c1a303952520a3e38342c0d3e3c3e383f393c38313c13491a3f16383c293c2f3c2c2c381a3f100e143f4d3a3c3c2845382c38343c342c38303c0a0e1a3f28380a1c143c39343c381a3f1635523c3a12143f153c0b343c2b3f343a121a3c143c38343c242c31043c3b2c2f3f0c343c301a3c2e3c3538350a1a3f2e3c3e343c2c1a3f053f45343c280d3c073c1a3f2e163932342f3e3c3b3609343c280d3c043c1a3f2e163938342e38342c301a3f2e1639363e3c3b362c3024153e383f343c280d3c0a3c153c143c3b362c3034393c3831343c2f3e52525252525252522d49301a3f0c4c3e30341c383e043c36153e3836343c332c343c3b3e3c3b161a3c28363c1a343e3c1a343e3c1a343f52282f093b3f383c1a3e143c3e2c1a3b45341a381a3c112e091b3e3836393c3831343c301a3c28363c1a343e3c1a343e3c1a343f5215242f2c2f2c2f3c343c34153c2c0a3f3e043c36343c341a3c16343f1a4e0a143c2e3c3e2b364c45342c1231343c3c1a3c291e393c3e3c3c343c124e3c0a1a1a3f28351a3c3a12163c3c083c311a38311b04303c2c2f3f0f341a0e163c3c373c3c163c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3c373c3c163c1a3c38354d3c284d382c3835241a2c38123c1a3c143f16382c343c3f3f3e4f0d3f1835381a3c3838312e2f0e143f4d38391914343e1914343f2c2c33053f383c1a3c283b521e4d383f1e2e3c3e1c1434392c2c334d341a3b3f1434343f1c141a3e3c3e34382c2c150c342c3c3e2c3e3c38363c3434341a341a3c283a3c1a1a3b0c341a3b3a3f383f3f4f34383f343c273f1b143c39194e384f3c1a3c303c2c0e1a3c143c3f331a3430343c381a3c17243e3e3c0e1a3f3e3c392c2c334d341a3b3f3c4e344f3c1a2c1a3c2e3c381c14343f343c38123c1a2f3f3c25344f3c1a2c30393c0e1a3f4d351a1a2c38123c1a3c143e164d333c2e3c3f3f383c3e2c38383e343c374d341a3f3f3c3e3c3c1c4e341a3c2e3c3e193538143c38383c343c3f0f1e28383f1c04343c343c3f3f3935273f383538143c1324143c28383b191638341e2e343c343c3704343c381a3c3524143c28383e191638381e2e343c1e143c3f343c3f4f341a3b3f3c25273f3c1338143c35341a3c2e3c3c1914343f2c2c3b4f2c2c3b05341a3f04343c381a3c35270c341a333f3c4e2c143c383a341a1a3b0c363c343c341a2c123c1a1a143c2e3c3c2c243e3e3c2a12143c3824382c3835241a2c381a3f163b56343c334e1e2e343a331a343c393c3831343c381a3c39243e393e3c3c343c384f3c1a1a31343c2f3f3e3a12153c3e3c38343c193f3c4e344f3c1a2c1a3f3e3c351c14343e343c333f3c4e2c143c2e3c351c0434392c2c3b04331a3438343c381a3f3a121a3c07243e3c3e3c363f383c1a3e1638391914343f2c2c334d2c243e3e3c2a12153f28350e1a2c38123c1a3c153f3c3752343c273f3c2e3c3f193e343f1e2828382c3835241a2c381a3c2e3c3a1e17243e3c3e3c3b393c3831343c28123c1a1a31342c381a3f2e3c38331a3434343c381a3f39243e393e3c38343c284f3c1a0a1a3f3e3c3f331a34343e4d350e1a2c381a3c17243e3c38351a1a2c381a3c07243e3c3c0a303e4d351e1a2c38123c1a3c143e2828333c2e3c372c2c3c1a3e2a09052c2c3b0f341a3c1a3c3838301916382c1e2e343e1914343f2c2c2b4f2c2c1505341a3c1a3c13341a3c2e3c3c1914343f2c2c374f2c2c2f05341a3f04343c381a3c3524143c28383f1916383e1e2e343c1e143c3f343c3f4f341a3b3f3c25273f3c2538143c35341a3c2e3c3c19100d3f3c132f3f14342c3f1c141a3e3c3e343f363c34382c251505343c190f342c301a3c2e383e3c4d3c3e2c3e3c3e363c342c341a3f3b3f383c1a3c141a3e3b3e343c2f2c4d3f3e043c3c363c34382c251505343c190f341a341a3c043c3e343c3337341a341f342c301a3c3e3c3f343c341f342c381a3c3e383e393c38313e043c3f363c3424342c1a1a3c2e3c3f363c3430341a2f353f383c1a3c2e1a3e3e3e343c2c18143f3c2e1a3e3c38161c343c3c1a3f39243e393e3c38343c3c4f3c1a1a303e0a0e1a3c2838281c14343e363c343c341a3f3b3f383c1a3c2e1a3e383e343c2f2c4d39343c3b3f383a12153c1a0e392c3e3c3e342c281a3c3e34382c2f2f0c341a34123c1a3c143c3c4d3c343c2f3f383a12153c143c38363c342c341a3c333c3c0e1a3f28383c331a343c393c12312c2545153f043c3c2c1f44522e0a4d3c343c3f3f3e4f12143c383b491e2e38352c19043f3c2e1a3e3c3e34372f2c4d3c2c2c3c1a3f4f0e153c0a373c3c163c3e2c3c37522c2c3c1a3f4d3a3c3c1616333c3f0d3f35043c352c1b5252520a1931392c3c1c343c3f3f3e3524143c3e3c3c2c2439562d4f0d3f3835273f3e3538143c132c143c3e3c3c2c24391a354f0d3f3835273f3f3538143c252c143c3e3c3c2c243e3c394f0d3f3835273f3c1338143c352f3f394e241a3c2e3c3e1e143c3c1e100e143c38383f193e3c35343c3f3f3b2a0d4f2c2c3b051e16381e1c1a0e143f16383e19383a34153c3b0c363c343c341a373b3f383f3f3c3e383c393c38312c2c3c153c3e3c352c2c3f3f3a2e3c3a2c2c3b4f1c043c3a2c2f443a3a4e2c153c2c333c3c163c1a3c141a3e3f383b491e2e3c351c04343b343c332d392c3c1a3c143838343c28143c0a4d3c2c2c3c153c043c3e342c3c303c0a0e1a3c3e3c3e363c3428341a281a3f2e3c3e343c3b3f3525273f3f353b0c363c342c341a373a3a043c3c343c281f342c3c1a3c28383f193e383f343c34333c3c0e31343c3c1a3f35373b3f383f3f3c3e38382c2c341a3f132c143c38383c343c3f0f1e143c371e2e343c2f2c4d39343c3f3f3c3e3c3c1c4e3b3f3c2a0e143c3e3c3c2c2c054f2c2f3f05341a374f341a3b3f3f25273f3e3538143c3e3c3e1e143c3f343c3f4f341a3b3f3c13273f3f3538143c35341a3c2e3c3c1914343f2c2c3b4f2c2c3705341a3f04343c381a3c3524143c28383f1916383f1e2e343c1e143c3f343c3f4f1c16383e19383a34153c3b0c363c343c342c3c31343c3f3b392c38313c4d3c1a3c3e1a3e3f383b491e2e3c351c04343f343c3337342c341a3c2e3c39343c341f342c301a3c3e3c38343c341f342c2c1a3c3e1a3e383e343f3f35451a3c2c281a3c3e1a3e3b3c0e143c3c4d3c3e0a0e1a3f3828333c3e3c392c183e3f3c2e1a3e3c3e3c351c4d45333c3e3c38363c3424342c241a3f3e3c38363c3430341a3b353f383c1a3f3e1a3e3e3e343c2c18143f3c2e1a3e3c38161c343c3c1a3c29243e393e3c3f343c3c4f3c1a1a303e2c0e1a3f3838281c14343e363c343c341a3f3b3f383c1a3f3e1a3e383e343c2f2c4d39343c2f3f383a12153c1a0e392c3e3c3e342c281a3c3e343f2c2f2f0c341a34123c1a3c143c3c4d3c343c3b3f383a12153c143c3f363c342c341a3c333c3c0e1a3f28383c331a343c393c1a31343c193f4934383f363c343c341a37333f383f3f4a34383f363c343c342c303e2c3e3c3e343c190f341a3b3f383845382c38351a1a2c381a3c29243e3c38350e1a2c381a3c043c351c14343c331a343c343c3c1a3c28383f1e17243e3f3e3c3e343c330c343c384f3c1a3c1a3c043c352c2c3304331a3438393c38312c18043f3c28383c331a343c2c183e3f3c28383c331a343c343c301a3c1638391e17243e3f3e3c3e343c330c341a3c1a3c3e1a3e3f38383f1e17243e3f3c0e1a3c4d38341c14383c393c1231343c193f4834383f363c343c341a15373f383f3f4834383f343c1a1a3f4f0e143c29243e3c38350a1a2c3b3f4534383f363c343c341a341a3f4f12143c39243e3c3e3c3c343c3b3f3c25344f3c1a2c1a3c143c352c2c3304331a3438343c373f3e3a12153c3c0a363e4d383c342c3c1a3f4d380b1c1434373c13443f0e34283f363c343c3f383f3f0834283f363c343c393c38312c1f043b3c283752330a343c2c1f2e3b3c28363c12343e3c1a343c38330a343c2c1f3e3b3c2e3c312c2c050c2c253f052c19140c4c1c123b1e07243e3c383538152c3b3f3c39243e3c383a28152c3b3f3c39243e3c383a3c343c0e143c2a12143f16383c343c3b0f341a2b05341a341a3f4d4d333e283a2c152c38123c1a3c143f3c2f3c2c24143b3c2e1a3e3c3e3439343c370c341a381a3c4d4d1a3c2e3c382e4e34333e1a093f1134283f312c3c3c2c2c2f05392c2c3e2c3c373c2c1b3e3f3c2e1a3e3c3e34393f383f3f1034283f342c3c392c3e3c39343c3c123c1a3c143c2845382c3e3c3f343c3c123c1a2f0c343c3331392c3031343c3c123c1a1a143c3c4d3c3e0a093f3c3f3f04341a3b3f1b4d24333f2e3c3e342c273f0934283f363c343c341a333f3c2a0e143c3e3c3f1e2c2f3c343c341a3c2a0e1a3c3e3c3f1c16383c343c330f1e2a12153f1a0e1a3f143c35292e3c3a2c1b4a52525245352e4e34333f283a2c152c38123c1a3c143f3c2f3c2c24143b3c2e1a3e3c3e3439343c270c341a3c1a3c4d4d1a3c3e3c382e4e34333f1a0e1a3f153f04341a3c1a3c281e333c2c0a353e043c3a343c150f343c2b05341a273f520b5252520a1931392c2c1a3f153f04341a381a3c3e1a3e3c3e3c3c363c34381c1624333c043c3f342c3c31343c3f3f1b4d241a3f4d380a1c143c3a2925373b3f383f3f0834283f363c343c341a381a3e2e3c3a1c4f0d3f3c3e3c3f1c4e38143c283556525252523f4d0e382c3e3c3c342c38303f0a0e1a3c2f3f042c2544353f383c1a3c2e3c3a1c14383a343c3c153c2c0a353e4d383c343c270f3835341c393c2c31343c3c143c283b522f0a4d3b393c30312c2c3c153f3c0a353e4d383c342c38303f2c0e1a3c283b522f0a4d3e3e4d3a28152c3b3f1134283f363c343c2c2c2f04331a343c3e043c3e2c1b4a52525245352e0a4d3f343c342c1e14343f2c25443a2c2c3c2c1e14343c2c25443a1e143c3c343c3b331e1a4d3f343c3c1a3c2a0e143f143c352c2e150c292c4d3f3e4d3a34152c3b3f1434283f363c343c343c270c341a3c4f3c1a3f3f1734283f363c343c343c3f373f383f3f1734283f343c3c4f3c1a3c313c163c3e2c3c373c2c1b3e3f3c2e1a3e3c3e343b3f383f3f1034283f342c3c392c3e3c3f343c3c123c1a3c143c043c3c363c3438341a370c2f1a4d3e343c3c123c1a1a143c3c4d3c3e0a0a3e3e4d35121a2c38123c1a3c143c38383c343c3c1a3c284d1f2f2c2f3c2c18143f3c2e3c3f331a343c3e4d383c342c3f3f1334283f343c244f3c1a3f3f1034283f343c384f3c1a3f3f5634383f2c25454f3c1a3f3f5234383f2c1f3e3b3c2e1a3e3c39243e3c383a16152c3b3f3c39243e3c3c333c343c3f3f3c4e2c143c4d3a341a1a3b0c343c333f1a34343f1c14343e331a343c343c333f1734343f1c143c3e331a343c343c3f3f3c2a12143c38381a2f0a4d3c3e4d35161a2c381a3f1638121c0434392c251a1a3c2a093f3f4e3b3f3c3e3c3f2c2c150c2c2c19053a04343c1c04343e331a343c2c1b3e3f3c2e3c3c343c3b0c341a3c4f3c1a3c1a3c3e3c3e2c2c3b04331a3438343c381a3c4f0d3f3639243e3f38354d1a2c3b3f0a34283f363c343c331a343c393c3431343c3c093c3c053f3e35381a3c043c3b2e4e341a3c2e3c3b292534333c3e3c3c343c341a3f10124f3c1a2f3f4534383f343c2b3f183e3c3b1c4d38351e28383c343c2b3f3e3a0d3f3f4e381f341a3f0c341a344f3c1a3f3f4834383f2c182e3f3c2e1a3e3c3e3c3a1c14343f343c3f0f341a3c4f3c1a3c1a3c143c3c2c2c3b04331a3438343c381a3f2a0d3f3639243e3f38354d1a2c3b3f0a34283f363c343c331a343c393c38312c18143f3c2e1a3e3c3e3c3f2e0a2f3c2c18143f3c2e3c3f331a343c3e043c3f343c270c342c373f1034283f342c3c3e2c3c373c3c163c3e2c3c373c3c163c392c3e3c3e343c3c123c1a3f353f383c1a3c3e1a3e3e3e343c392c38303c1a0e31343c3c093c3c053f3e353b3b392c38312c27143b3c2e383c3c4d3c1a3f2e3c3c363c343c341a372d3f383c1a3c143c3c363c34381c143438343c2b31392c3031343c3c123c1a1a153c3c0a3c3e0a3c31343c3c1a3c29243e3c3e3c3c343c3c123c1a2c1a3f10124f3c1a2c1a3c283b49343c3b0f2c2c19052c2c3c1a3c2838341c1638351e2f090c341a161a3f4d38391e17243e3f3e3c3e2c251a1a3c10093f3f4e3b3f3c3e3c3e2c2c150c2c2c19053a4f12143f143c35343c110c341a150f342c341a3f2e3c3a2f1a2f3c2c1b3e3f3c2e3c34331a343c2c182e3f3c2835161a2c38123c1a3c1a3c1012143c39243e3c3e3c34343c3f3f3c25344f3c1a2c303c0a0e1a3f16350e1a2c38123c1a3f3a3f383f3f4a34383f343c1a4f3c1a3f3f4934383f2c183e3f3c2e1a3e3c3e3c3e1c14343c331a343c343c1a1a3c38383f1e17243e3f3e3c3c343c150c343c3c4f3c1a3c303c0a0e1a3f141a3e3f3e343c2c2c33052c2c3b3a3f383c1a3c383b491e2e383b3c163c1a3c3835523c284d382c3e3c3a363c3434341a301a3c3838391914343c2c2c334d2c243e3e3c2a0d3a3a143c39343c24123c1a0a143c2824382c3835241a2c3b3f4f34383f363c343c2c25491a3c351905331a343c393c3431343c301a3c29243e393e3c3f343c304f3c1a1a303c2c0e1a3f141a3e3a3e38353c163c1a3f143c3a363c3430341a3b353f383c1a3f141a3e3e3e343c343c384f3c1a0a1a3c2e3c3c331a3434393c38313c163c1a3f1638281c14343c363c343c341a30333c3e3c3a2c2f3f0c341a3c123c1a3c143c0a4d3c2c2c3c153c2c0a3f3e0a333c343c3c153f3e3c39341a3b3f3b3a12143c3e1a3e3c3e3439392c3c1a3c28382c1c14383c343c38123c153c143c0a4d3c3e043c382c2c3c4f3c1a3c31343c193b392c3c3e2c3e3c3a343c24123c150a143c4d383e19383a34153c3b0c341a3c123c1a3f3a3f383c1a3c3e3c3f331a343c343c38333c28351e1a2c3b3f4e34383f363c343c2c25491a3c4e1905331a343c393c3431343c193f38383828343c1e123c153c1a3f16241f1c143c3f331a343c343c3b3b392c3831343c381a3f07243e3a3e3c3a363c342c341a3c382c3e3c3f343c3c4f3c153c1a3c3e3c3f331a34243e043c3a363c3428341a3f3b392c3c1a3c2e3c3c331a3428343c3c1a3c29243e3a3c0e1a3f2e3c3a1c14383a343c341a3f2a12153c1a0e1a3f143c3a363c34382c254805331a3438343c1a1a3c16383f1e17243e3f3e3c3e343c150c343c344f3c1a3c1a3c1635523c284d382c3e3c3e2c2c334f341a3f3f3c4e2f3f1a34343f1c14383e3c13443f4f34383f363c343c341a3b3f3c2e3c3c193e343c1e2828382c3835241a2c381a3c3e3c3f1e17243e3c3e3c3e393c3831343c34123c1a1a31342c3c1a3c143c34331a3434343c3c1a3e39243e393e3c34343c344f3c1a0a1a3e3e3c3c331a3434393c30312c2f45153c3e3c3e2c1b5252520a19333f383c1a3c1638341914343c343c3f3f1a2d49521c16382c191638341e2e3439193e343c343c3f3f1a323c1b1c16382c191638381e2e343f193e343c343c3f3f1a343c2d1c16382c1916383e1e2e343c1938382d19143c3f343c3304343c3f041c04343c2c2c3b4d343c341a3c38382b1c13273f3c253b042c2f050c342c3c31343c1a1a3c39243e353e3c342c1a3c4e3c153c1a3c38383e19383a34153c3b0c342c2c3e2c38351e1a2c38123c1a3c143c4d383f343c3f4d341a3b052f2c2f3c2c19043f3c2e3c3f343c3304331a343c343c2c1a3e39243e3c3e3c34343c2c4f3c151a303c2c0e1a3c16383c2c2f161a3c38383f19100e1a3c38381b2f15094d342c3c1a3f3e1a3e3c3e383f3c4d3c1a3c2e3439363c34382c251505343c373a392c301a3c3838191914383f343c3f3f3c252c153c3e3c39343c3b3f3f353b0c341a2c123c153c143c2c4d3c3e043c38343c1a4f3c153c1a3e3e3c39331a34243e043c34343c1a4f3c1a0a1a3e3e3c34331a3434393c34312c182e3f3c2e3c3a2c2e150f341a333f183e3c3f1c4d38351e28383c343c3b3f3e3a0d3f3f4e381f341a3f0f341a344f3c1a3f3f4534383f343c3c1a3c2a12143c39243e3c3e3c3c343c373f3c25344f3c1a2c1a3c2e3c391c163812331a34382c1b2e3f3c28353c152c38123c1a3c4f3c1a3c1a3f2e3c382c2e1e1a3f3a093f3f4e3b3f3c3e3c382c2e190f2c2c19053a4f0d3f314f0e143c3e3c3c343c2b3f383a0d373a04343e2c2f0e4f3c1a2c1a3c163a1a152c380d3c1a3c4e3c153c1a3c163a24152c380d3c1a3c4e3c1a153f1234283f343c373f3e3a124f3c1a3f3f1334283f343c244f3c1a3f3f1034283f343c384f3c1a3f3f0d34283f2c2c3c4f3c1a3c1a3c1638241c14383c3c4d3c1a3c383835331a3438343c3f3f3e3a12153c2e3c3c2c2c2f0c342c3c1a3c2e3c382e2c4d3c3e043c3e343c2b3a392c301a3c143c3e363c34382c254805331a3438343c281a3c143c3b1c0434382c2c3b04331a3438343c341a3f39243e3c3e3c382c1b453f292c2f3c343c2f3f3c4e24143c38383919383a3c1a1a3b0c342c343e1b4d35241a2c38123c1a3c143c28383f343c3f4d341a3f052f2c2f3c2c19143f3c2e3c3c343c3b04331a343c343c34303c2c0e1a3c141a3e3e3c0e153c3e3c3e343c284f3c1a1a1a3c3e3c3b331a3430343c281a3c17243e393e3c3b343c3c4f3c1a1a303f3c093f3504383c343c2b3e3c391e3e383e3c382c1b5252520a19333f383c1a3f3838341914343c343c3f3f1a2d49521c16382c191638341e2e343e193e343c343c3f3f1a323c1b1c16382c191638381e2e343f193e343c343c3f3f1a343c2d1c16382c1916383e1e2e343c1938382d19143c3f343c3704343c3f041c04343c2c2c3b4d343c2c1a3c38382b1c13273f3c253b042c2f050c342c3c31343c281a3c39243e353e3c3c2c2c374d2c2414383c2a12153c0a373c2c19043f3c2e1a3e3c3e343e2c2c381a3c352c143c253b3b3f383f3f4e34383f343c381a3c13344f3c1a3c1a3c043c3b331a343c343c281a3c07243e3a3c0a3f3e043c382c2c3f3f3a2e3c3c2c2c3b4f1c043c3c2c2f443a3a4e2c153c3e3c39363c343c342c38392c3e3c3f341a34123c1a2f3f1835381a3f3824333f3e3c3c2c2f4c4f342c381a3c38383f193e383c343c341a3c2838381e2a12143c041a3e383e343f392c3c31343c301a3f29243e383e3c3b343c344f3c151a31343c281a3f29243e393e3c3b343c284f3c1a1a303c0a0e1a3c041a3e3e3e343c343c1a4f3c1a0a1a3c043c34331a3434343c153f3c39243e3a3e3c34343c304f3c1a0a1a3e3e3c3c331a34343e043c372c2c150c342c3c303f2c0e1a3c141a3e3e3e343c343c284f3c1a0a1a3c143c3b331a3434343c2b3f3c39243e3a3e3c3b343c344f3c1a0a1a3f2e3c3c331a34343e4d35161a2c38123c1a3c143c3e3c35292c4d3c2c182e3f3c2e3c3c343c190f341a384f3c1a3f3f4534383f2c1b3e3f3c2e1a3e3c3e343e343c190c341a3c4f3c1a3c1a3c3e3c3f2c2c3b04331a3438343c341a3f4d38391e17243e3f3e3c3e2c2c150c342c3c303c0a093f4c34383f2c293c4f3c1a3f3f3c3e383c393c34313c163c1a3f1628333c3c373c343c2c123c150a143c16383e19383a34153c3b0c341a3c123c1a3c1a3f3824382c3e3c3c343c384f3c1a3c1a3c2c4d3f2c19043f3c2e3c372c25491a3c131905341a164f3c1a3c303c1a0e1a3f16382c2c2f2c1a3f141a3e383e3c382f15090c343c384f3c1a3c1a3c2828333c2c0e1a3c2e3c3a331a3424343c2c123c153c143c3c2f3c343c381a3c39243e383e3c3c343c384f3c151a31343c2c123c152c143c3828333c3e3c3f343c3c4f3c152c1a3c3e3c3f331a34243e0a373c343c333f394d4d382c3e3c38343c301a3f4f12143c3838391e17243e3f3e3c3c343c2f0c341a3c1a3c3e1a3e3f38383f1e17243e3f3c0a3f3e043c38343c193f3c4e344f3c1a2c1a3f3e3c351c14343b343c333f3c25344f3c1a2c1a3c043c3b1c143c39331a343c343c333f520a3b333f383c1a3c4d38391914343c2c2c334d2c243e3e3c2a12153c1a37522c19143f3c2e1a3e3c3e343f2c2c381a3c352c143c353b3b3f383f3f4f34383f343c3c1a3c25344f3c1a3c1a3c1a0a3f3e043c3e363c34343e04383c343c341a3f29243e3e3e3c3c343c284f3c1a0a1a3f2e3c3e331a3430343c281a3c39243e3e3c0a3f3e4d381b342c3c1a3c4d355252524535292c2f3c343c333f3e3524143c3e3c3c2c2439562d4f0d3f3835273f3e3538143c132c143c3e3c3c2c24391a354f0d3f3835273f3f3538143c252c143c3e3c3c2c243e3c394f0d3f3835273f3c1338143c352f3f394e241a3c2e3c3e1e143c3c1e100e143c38383f193e3c39343c3f3f3b2a0d4f2c2c3b051e16381e1c14383c3e043c3b343c3c4f3c150a1a3f28343c330a342c343c3f3f3c132f3f14342c3f1c14383f3c163c3e2c3e3c372c2c381a3c352c143c133b3b3f383f3f4e34383f343c341a3e25344f3c1a3c1a3c2e3c3b331a343c393c3831343c333f3c383827343c3f3f3c25270f343c3f3f354d241f193e383c343c38123c1a3c153f0a333c343c1e143c2e1a3e3f383b491e2e3c392f1a4d3e343c3f3f352524153c143c3c2c2c3b4d342c3c1a3c2e3c3e2c2c2f051c14343e363c342c341a1e333c3c0e1a3c143c3b331a342c3e043c3b343c384f3c151a1a3f2e3c3b331a3430343c281a3f29243e3e3c0a3f3e043c3f363c3434341a3c1a3f29243e393e3c3f343c284f3c1a1a1a3f28383c331a3424343c281a3c29243e393e3c3b343c3c4f3c1a1a31343c2f3f3e3a12153c3c0a3f3e0a373c343c153b392c3c3e2c3e3c3f363c341e341a373f3c132f3f14342c3f1c14343c363c343c343c3b3a3f383c1a3c3e3c38331a343c343c2c333c28351e1a2c381a3e283b56343c374e1e29243e3c3c0a3e3e043c342c2f3f3f3b3e3c34363c342c343c3b3a3a4f121a3f39243e3c3e3c382f2c4d3f3e043c38343c1a4f3c151a1a3c2e1a3e383e343c3f383c1a3f3e3c3c331a342c343c3c1a3f39243e3a3c0e1a3c2e1a3e3b3e343c2f2c4d3c343c2c1a3c39243e3b3e3c3c343c2c4f3c151a313c163c1a3c4d382d292c2f3c343c381a3c043c351c14343c2c2c3304331a3438343c3c1a3c2a12143c3e3c3c363c34382c2c3b04331a3438393c3831343c381a3f4d38391e17243e3f3e3c3f343c190c341a341a3c4d383f1e17243e3f3e3c3e343c330c343c304f3c1a3c1a3e1a2f3c343c0d3f3c4e24143c38383919383a3c1a1a3b0c342c2b3f4a34383f363c343c342c2c3e1b4d383f343c3f4d341a3c1a3f133b3b3f383f3f4f34383f343c3c1a3f13344f3c1a3c1a3f2c0a3f3e043c3b363c34343e04383c343c281a3f39243e3e3e3c3c343c2c4f3c1a0a1a3f3e3c3b331a3430343c2c1a3c39243e3e3c093f4a34383f343c344f3c1a3f3f4934383f343c304f3c1a3c31343c3b3f3e3a12153c3c0e1a3e4d382c1c142c3c343c3c310d0a383f3f3545173c38381a1c04343f373c3c1a3c28383c331a3430343c3b3f3307243e3e3e3c3f343c380d3c0a1a4e3c0a3c1a3c28382c1c143439343c380d3c1a3c4e3c1a2c1a3c043c3c331a343c340a3f3f383a0e143c142c3c343c3c123c1a3f3f1b4d1e382c3e3c3e2c2c150c341a2c1a3c053f4b3a143c3e343c2c2c181512392c3e3c3c363c343c2c2c3b3a392c3c31343c3c123c1a3f3b3f383c1a3c38383f331a343c343c373f323f383f3c3e3c3c2c25454f3c1a3c313e043c3e2c2f3f0c373c3c1a3c3e1a3e3f3e383c343c3b3f343a12163c3e3c3c2c2c3b0f3e050e3c343c3f3f3c39243e3f3e3c3c2c1917453c39243e3c3e3c3c2c27172a3c39243e3c3c08243f1a38371b04303c2c2f3f0f341a1a163c3e3c3c3830493f340a3f3f383a0e143c142c3c343c341a3c39243e393e3c342c2c150c341a281a3c1638301c153c07343c373f383a12163c383a0a112c382c283e3c3f292c2f3c3c163f3f0e37283f383b3c143c143c3f2c2c3b0c341a3f373f383c173c38381a1c043437373c3c3e2c3e3c3c343c370f341a273f0e37283f383830123c1a3f3f0937283f363c343c1c4d383e19284d382c3e3c3a38371e3e393c38312c1f3e2b3c2f3f4d342c1e1a3e2838341c14383e3c13443f0e37283f383b3c1a3f1012153f3e303c2c2f3f0f341a3c163c3e3c3c343c2c4f3c1a0a1a3f3f3e3f3c143439292c2f3c2c1f3e2b3c2f3f07341a2c1a3c4d383f191616382c3e3c3c343c2f3f3c252c4f3c1a1a1a3c3838341c143c3c2c2c050c383524123c1a3c153c0a0e1a3c38382c1c142c3c343c30303c2c0e2c3b0a3c31342c3f3f0e37283f383b3c153e16383c342c30173c38382c1c043438373c3c1a3f38383c331a3430343c373f393a121a3f3838301c143c3538342c3e343c3c382c3e3c3e363c342c343c3c2c1a3c34153c0a0e1a3c143c39331a343c343c341a3c043c362c2c374d1c143435331a3434343c341a3f07243e3f3e3c3e3834303f343c301a3c38383e193a124f3c1a3c1a3f38382c1c142c3c340a3f3f383a0e143c3e2c3c343c3c1a3c141a3e3e39243e3c3e3c3e363c3434342c301a3c3e3c3e2c2c150c331a3434343c3c1a3c043c3a2c2c374d1c17243e3f3e3c3c363c343c342c30392c3e3c3c363c3438343c33353f383c1a3c141a3e383e3c3c363c343c382d493f343c3c1a3c3e1a3e3c3838381c143439331a343c393c38313e043c3c363c3434343c3c123c1a3c4f3c1a3c1a3c38382c1c142c3c2c1f3e2b3c2f3e2f3c163a0a112c382c19383a0a112c38123c1a3f3f0937283f363c343c343c373f3f3a12143c3f3e393c163a0a112c381a3c3f3f4c2c1f2e2b3c2e3c3e2c2c150c38352b3f0e37283f3838301a3c153e393c2f3f4c343c341a3c141a3e3f39243e3c383a0a112c382c283f39523c2e3c3e363c3438342c3c392c3e3c3c343c34123c1a15353f383c1a3c141a3e383f121a3c143c3e363c34342c2c2f0f331a3434393c38313e043c3e363c343c3f383c1a3c141a3e383e3c3e363c343c343c342c1a0a38123c1a3c1a3c141a3e3c3a093f3c13282c523c38313e043c372c2e3f0c373c3c303c2c0e1a3c3e3c3e2e2c2f3c2c1f3e2b3c2e1a3e3c3e3c3c2c2c374d1c14383c2c1f3e2b3c2f3f2c342c373f0e37283f343c3c2c560a3b3f0e37283f343c342c113c34313e0a093f0e37283f343c382c19041a3e3c3c2f3c2c1f3e2b3c2e3c3f38351e123c1a3c2c120a3831343c282c0d1a38153c383a0a112c381a3c2f3f4e343c3c4f3c1a3c1a3f2e1a3e3c3e383c343c2b3f3c39243e3c3e3c3c3f383c1a3c3f3e173c2c0e1a3e38382c1c142c3c3e0a1a3c343c3f3f3c3f3c133e04453f3c2545173c38382c1c043439373c3c1a3c043c3f331a3430343c3c1a3c4d38301c153c07343c3f3f3f3a121a3c153c07343c333f383a12163c3e3c3c3e053c3c343c3c123c1a3c2c1a3c333f3a352f3f3a3528313f1a3c1a3c3f3c2c3e0a123c343c3c123c1a3c2c560a3431392c3c1a3c3e1a3e3c3f39523c15121a3c3c09313c2c3752340a3f3f383a0e143c2e2c3c343c381a3c3f39043c2e383c340a3f3f383a0e143c142c3c343c373f3e3a121a3c3e1a3e3f3f3f4b363c343c2c2c384b3c3c3c1a3c3e1a3e3e38383f321a3c3c343c373f383a12163c3e3c3f2c2f3f0c373c3c31190a38391b04303c2c2f3f0f341a34163c3e3c3e343c3c2c451a38153c3e303c2c2f3f0f341a30163c3e3c392c2c150c343c3c123c1a2c2c18141a3e3c3e4d3c3c3828382c3c37523c163c1a3c3e1a3e3e3e343c312c3c3c341a3b3f3c281e381b043c3f2c2c3705392c381a3c38383e321a3c3c2c2c383b2c2c3c31393c3831383f1e3c3e04383f3e043c392c2f3f0c373c3c1a3c16382c1c142c3c343c3831392c3c1a3c3e1a3e3c3f394b3c15121a3c3c0e373c3e3c3c343c382c1a2c3031373c383f1b043c3c363c343c342c341a3c3e3c3f331a343c343c34382c3e3c3e343c3c2c111a38123c1a3c2f3c2c3c313e0a163c343c3c1a3c2f39453c1a0e2f3c3e3c3c343c381a3c3e1a3e3c3e1a3e353f383e3c3c08523c2c38391b043c3c312c3c3c2c2e3f052f2c2f3c3c163c1a3c2e38393c163c1a3c143c3c341a38123c153c143c3c2f52343c3c3b343c382c4b3c38333c2e3c3f363c342c3e043c3f363c3428341a2b0f2e0a2f3c343c381a3c043c3e343c38123c142c2f3f3c3c1c393c34313c163c1a3c2e1a3e2838383c2e3c4d3c343c34153c3c333c343c3c143f3828333c2e3c39343c2f3f3c2a0e143c3a12093c3c3f3f3e161e333c3c0e1a3c2e3c39343c2c1a3c2e1a3e373f38383c3e3c382e2c4d3f343c301a3f3a12153c043c3e343c2f0f342c341a3c2e1a3e3b3e383b3e043c3b343c301a3c153f3e3a143c3f343c38123c152c1a3c10124f3c152c313e0a0e31192c383f1b143c3c343c381a3f35491a3c143c391b130a1a3c4d341a143e343e343c3b3e34341a143f354845343c333e52525252520a5639341a301a3c28315252525252394930143c2549143f28341a143e3c39343c2f561b3e34392c143e341b3e3c3f343c3756343c333e52525252520a56391b3e343f2c143e341b391e393e3e3c3c343c2b3e52525252520a5639343c3b3e34341c38330a303c3e4d303f3c2545173c38382c1c04343b373c3c1a3f2e3c3e331a3430343c281a3f39243e3e3e3c3b343c2b3f393a122c2814383e343c3c1a3c2e3c39343c28123c1a1a2c092c38153c3e3c3e383b381a3f28382c1c142c3c343c3c31122c383f3c13453e2c3e3c3c383c113b343c341a3c2a093f3f281504392c3c1a3c2e3c3e38364d3f343c373f3f3a0e153f3e3c3c383c4d143c143c3c383c110c342c283e2c3c333c3c163c1a3c140a3c3c3e383c343c381a3f3845333c3e3c3c2c2c3f30343c3f3f520a3f321e1628382c3e3c3f363c343c343c340e3c3c3f35392c3031343c3b3f3f3a12153c2e3c3e343c281a3c10093f3c280d0c342c34303c2c0e31343c3f3f3c380a1a3c3835523c384804392c381a3c140a3c3c3e3c38363c343c2c2c3b0f2e0a4d3f3e043c392c2c2c4f3c1a3c313e4f4d3f3c2545173c383a3c3c100e143f2e2c3c343c2f3f1a303c381e2e3c3e343c33301e1628382c3e3c3b343c3b3f520a3b05343c341a3c4f0e143c163a3c3c143c3e2c243c3e2e2e343f3a053f3a3a143c3f2f2c2f3c3c4d3c1a3c3e3c3b2c243c3e383e121a3c163a3c3c100e143c1635523c280e333c3c0e31343c3c1a3f2e3c3e383e1231343c2b3f1a3c370c373c3c31283c383f1b1a373c343c333f0a3c3f053f383c1a3c2e3c392c283f0c0f2424153c16343c342c38303c2c0e1a3c4d28333c3e3c3e343c3209341a2e3a343c3b3f0a3c3c1a3c4f080914342c153c143c3f343c2e3a342c3831343c3c1a3c291e393c3e3c3c343c344e3c0a1a312b2c383e1b04303c2c2f3f0f341a34163c3e3c3c383928382c3e3c3c363c343c342c301a3c3f3f443a143c39383f3c31343c3c1a3c2e1a3e3e39243e3e3e3c3c343c380d3c1a3c4e3c1a3c1a3c28383c3839121a3c16383c321a3c2d343c381a3c16382d1c153c4d343c373f383a12163c3c0e303c3e3c3c343c382c1a2c333f3c2530313e1a3c1a3c383a38142c382c273c0e303c3e3c3c343c38123c1a3c4f3c1a3c31393c3c1a3c3e3c3f312c3c3c321a3c3c3e0a123c343c3c093c3c093f3f4e2431393c3c1a3c3e3c3f382d0a3e2c2c3b073e05383c343c3c1a3c2e3c3f363c343c363c3428382c303c3e0a453c343c3c1a3c3e1a3e3c3e1a3e383f383c3c3c0e373c3e3c3c343c384f3c1a2c313e2c3c1a3c3e3c3f321a3c313e0a123c343c3f3f52341a3f383a2c314d2c163e3f3545381b14303c2c1b3c3c1c04343b373c3c1a3f38315252525252525252525252453c1a0438363c163c3e2c3e3c3f2c1a3b44341a093e1b4c381a3c16315252525252525252525252453c1a043437343c381a3e4c1c091b38343f1b2e34312c0b525252525252524a5252520a3f2a343c093e52525252525252520b5252523c3b381f2f2c2f3c343c333e3c254d143e4d375228143c36343c301a3e4c1c091b38343f1b2e34312c0b525252525252524a5252520a3f28343c093e52525252525252520b5252523c3b381f392c3831343c3b2c343c113e1a343e3c1a343e3c0a2d52523c3b2c1a3e28363c1a343e3c1a34393c5252453c282f093b3f383c1a3c16363c1a343e3c1a343c1a153e3838343c38153c0a0a3e3e043c39283e3c362c123e3c1a343e3c1a303952520a3f28343c0d3e1a343e3c1a343e3c0a2d52523c3b381f2f2c2f3c343c2f3e1a343e3c1a343e3c34342c153f3c0a3e3e043c3f343c113e1a343e3c1a343e3c0a2d52523c342a38283c2f3c2c123e3c1a343e3c1a323952520a3c1a3c143c3f343c323b343c341a3f342b3e1a343e3c1a343e3c1a343e3c1b492a38283e343a3a0438382c1a3c1a3c2e3c3a3a043839393c3431343c301a3e16363c1a343e3c1a34393c5252453c15242f2c392c381a3c2e3c37153b3c382c3e3c39343c0c382c1a3f2e392c341a3c2e3c391a043839343c341a3f3430153f3c0a3e3e043c39343c0c38283828333c3e3c3f342c301a3c143838393c3831343c301a3c2e3c3f343c3328343c161a3e112c1a3e2e3c36282f0e143f050e153e143c38343c341a3f050e143e4d315252525252525245521a043837343c341a3f3e3c353a04343e2c173e340d4d3552520a3b05342c1a1a3e4d340a1436193f5252453f1e2e343a2f2c2f3c343c2b3f493c3f0c343c121a3e2e3c36343c161a3e2b3c143f150948343c273f3f132e091b361e143f16382d1c053c0b343c280d3c4f1a153e2e3c3b362c331a342c0d3f383e3c3a1c04383a3e043c3f343c301a3f050e153c043c3e2c0b52525252525252075639342c2c1a3e3828382c3e3c3b2c193c3c1c143c39343c2c1a3c043c38343c2f2c341a1e1f182e3c352c2c274d0f250413341a193f394f0e2c314d382c343c190f342c1a1a3f2e16392a3e3838343c280d3c4c3c153c0a0e1a3f38343915143c392c174f341538363c1a343e3c1a343e3c3f342c153f3e3c372c1a323a343c0d3e2d241438342c161a3c143c31152e38303c13491a3c4d34391514343f343c241a3e3a0e143f4d28333c3f121a3f4d35523c380e382c38343c342c2f3e3c2c0a3f3e043c3b2c283f0f343c381a3f383a3c3c2e3c351c053c0b343c2b3f303a121a3c2e3c38343c1e2c1b3e3c3b362c3049342c2c1a3f2e1639303e3c3b362c333c343c280d3c4d14382c1a3f2e0f242c31342c341a3e28363c1a343e3c1a343e3c3f342c153e2e3c362c1a323a342c303e2c3e3c302c1a3f293f383c1a3c043c3e1b2e343f343c161a3f354d1a3c143c392b0c4c44341a2e38283c2f3c2c1a3c153c4d343c342c2c303c0a0e1a3f38315252525252525252523c4c24333c2e3c3b2c2e3f0c343c381a3f3e3c3f343c2c1a3f3b3c143f050948343c193f3f132e091b36193f393a0e143f053c0b343c241a3f4f0e153f143c3b362c3012342c2c1a3f2e1639343e383f393c3831343c341a3c4e0a143c2e3c3e2b364d1a3f3e3c371b350a143f38363c1a343e3c1a343e3c3e34332c392c3c1a3c28343f1a043c382c17563a343c3b3e3c241438153e383f343c273f3c2a12153f143c382c1a3a34342c2c31343c093e1a343e3c1a343e3c1a343e3c1b4930153c143c3a2c1b52523c2849382c3e3c3e2c123e3c1a343e3c1a303952520a3e38342c2f3e3c3e3839393c38312c2c3c153f0a373c343c273f3c3812382c3e3c3a342c1e303c2c0e1a3f28382c1c143c3f343c2c1a3f1635523c3a122c31043c3b343c381a3f38383f343c270f38350a1a3f2e16393c3e3c3b362c302c343c280d3c0514382c1a3f2e0f242c153c2e3c3b362c3034342c2c31343c3a132c2c1905341a273f3f380809343c2f3e2d24241a3c28343914342c143c250a143c043c3f2b364d1a3f3834391438315252525252525245521a043c350f28340a15122c1a3c122f45342c2c3e2c3e3c3a2c2c2f3a3f383c1a3f3e3c392c1a3a39341a381a3c4e0a143c043c3f2b364c45342c2c303c2c0e1a3f1628333c2c0e31343c3c1a3c071e393c3e3c3c343c2c4e3c0a1a1a3f28350a3c3a12163c3c0e2f3c3e3c3c343c381a3c3e1a3e3c3e1a3e313f383e3c3c0e093c3e3c3e2f2c2f3c343c3c123c1a2c1a3c2e1a3e3f38242d3e043c3c343c3b3a3f383f3f3c2c4531343c3c123c1a2c1a3c2e1a3e3f3f3e4f3c282831240a3c1a3c141a3e3f383a0a3c2538143c16381a2f1a2f3c343c382d3e0a373c343c373f38381e333c3c373c3c163c1a3c3e4d3c3c3e343e2c2e090f391a303c3c2c3c3f3e043c3c2c2c3b0c390a0e1a3c16380a2f043c3f343c3f0f2c2c37341e1a4d3c343c3c093c3c3b3f3435373f563c3f35392c3c1a3c38383e1c14383c3e043c3c3e04243f3c2545173c38382c1c04343f373c3c1a3c2838341c143c3c383c4d2c18141a3e3c3e383c343c3b3f383a12163c3e3c3c3e4e493e3c13453f1b14303c2c2f3f0f341a30163c3e3c3c3c13491a3c2828382c38343c393c3831343c301a3c2e3c3f2c2f444c341a370c343c3707341a36092c1a3c1a3c101e143c16352f3c3a122c31043c39362c30342c123e3c1a343e3c1a303c3c15283a181a3c381a3c1008092c173e3a1b3e3c3f2c243e3c1a343f491e1c4c3e34341c38342c2c1a3c0416393c3c0e4e3c0a3c1a3c3e3c38330a3034343c333f383a12163c3c08393f3c38391b043c3e2c243c38290a2f3c343c3c1a3c2e3c3e383c281c343c3c2d3e043c3c343c370c342c303e2c3e3c3c343c3b072c2c33052f2c2f3c3c163c1a3c3838391e2828382c3e3c3c342c34303c2c0e1a3c16383c293c2f3c343c3c153c1a0a3f3e043c3c342c34392c3e3c3e343c38093c3c3c4b3c3c3c1a3c28383f1c14383f343c373f3c2a12143c1638391e2828333c2e3c3e343c3337392c3c313e0a373c343c333f1b3538143f38353c3c3816333c3e3c3e343c2f3f2c3a12143f280e333c3c333c343c341a3c2e1a3e3c39243e3c3e3c3e343c38123c1a2c4f3c1a2c1a3c143c3f363c3434331a3434343c341a3c2e1a3e3939243e393e3c3e343c38123c153c4f3c153c1a3c143c3f363c3428331a3428343c341a3c2e1a3e3a39243e3a3e3c3e343c38123c150a4f3c150a1a3c143c3f363c341a331a341a343c341a3c2e1a3e3739243e373e3c3e343c38123c141a4f3c141a1a3c143c3f363c340e331a340e343c341a3c2e1a3e3039243e303e3c3e343c38123c172c4f3c172c1a3c143c3f363c3449331a3449343c341a3c2e1a3e2d39243e2d3e3c3f2c283f0f342c381a3c163b3c1c04343e343c2b33392c3c313e043c3e343c2f2d392c38392c3e3c3e343c38123c1a3c4f3c1a3c1a3c2838381c14383f343c373f3f3a12143c143c382e2c4d3c3e0a0a3f3e043c392c2c2f373f383c1a3c3e383e393c3831343c3c1a3c4d38381c0434382e0a2f3c343c3c153c1a0a3f3e043c3c342c34392c3e3c3e343c38093c3c3c4b3c3c3c1a3c143c3f312c3c3f321a3c3f343c341a3c2e4d3c3c17123c3c143c3e343c38093c3c304b3c3c301a3c2838381c14383f343c373f3f3a12143c143c38292c4d3c3e0a0e1a3c143c392e2c2f3c3c4d3c1a3c143c3f312c3c3c321a3c3c343c3b3f3c2a12153c2e3c3e2c2c3b0c341a341a3c4d1e333c3c0e31343c3c313f0a3c1a3c3838341c1a0e133c2c3b52343c373f3c3849381b043c3c363c3434343c373f520a3b052c2c3b4d1c14453f3c3e3c3f1e28383c2f0a281a3c0a0e313e1a3c1a3c38380a1c4d38362e2c0b043c1a343e1b0a3b563c163c1a3c1628333c3e3c3c343c384b3c3c3c1a3c3e3c3e1c1434392c2c3b0f343c384b3c3c3c1a3c1638392e2c4d3c343c3c1a3c29123c3c143c3c343c384b3c3c381a3c4d38391c043c3f321a3c3c343c333f3c100e1a3c29123c3c3e3c3e2c2c1937392c3c1a3c3e3c3f321a3c39343c333f3f3a0e1a3c29123c3c3e3c3e2c2c1137392c3c1a3c38383c343c3f0f2c2c3305341a2f0c341a301a3c2835523c253b3f1a2436383e3a0a143c29243e3c3e3c39343c341a3f3a093f1b3538143f3a12143c1638381c043c3f331a343c343c2f3f3e2816333c3e3c39343c384f3c1a1a1a3c043c3f331a3438343c373f3e3a0e1a3c29243e3c3e3c3e2c2c050f343c384f3c1a3c1a3f3838272e2c4d3c343c301a3c29243e3a3e3c39343c384f3c152c1a3c043c3f331a342c343c301a3c29243e393e3c3e2c2f3f0f343c384f3c1a3c1a3c1638281c043c3f331a343c343c373f3a3a0e1a3c29243e3c3e3c3e2c2f050f343c384f3c1a3c1a3f3e3c392c2c2f052c2f1504341a2f0f341a373f343816333c3e3c3f0f28363f1a343e3c383549153f2e3c39343c2f0c342c38392c3e3c3f343c284e3c051a1a3c2e3c3b330a302c343c381a3f291e393e3e3c3f343c284e3c0a3c1a3c28381a1c14383f343c373f343a0e143c16381b2e0a4d3c3e0a0e1a3c3c0e4e3c2c3752340a3f3f383a0e143c142c3c3c4d3c1a3c2838392f0a2f3c343c3c1a3c28383e193a0d3f3c39243e3c3e3c3f2c2c3b0c342c38303c2c0e31343c373f383a12163c3e3c3c3e0a453c343c3c1a3c3e1a3e3c3e1a3e393f383c3c3c0e353c3e3c3c383c113b3e05383c343c3c1a3c2e3c3f363c343c363c341e382c303c3e05383c343c3c1a3c2e3c3f363c343c363c3424382c303c3e053c3c343c3c1a3c283a3c1a343e3c1835344f3c1a1a313e2c3c1a3c3e3c3f331a343c3e05303c343c3c1a3c2e3c3e343c3c123c1a3c123c1a0a2f3f3c3c313f3c3f3f3c3c0e2c3c3e3c3c363c3438343c3c123c1a3f0f2c2c374c3e05343c343c3c123c1a3c143c3c2f3c343c3c2c4d2c341c3e0a0e2f3c3e3c3c343c38123c1a3c2c4d2c344f3c1a3c1a3c3c093f3c2c3b52343c3c1a3c291e391e3e3c3c343c3c123c140a1a3c3e1a3e3f3e343e1c4b0a4e3c4e1a1a3c3e3c3f283e3c3c363c3434341a3c1a3c10080e343c3b251e1a2f52343c3c3b343c341a3c1c190c3e07243e1c3c0e143c2c3b52340a3f3f383a0e143c142c3c343c3c1a3c2e3c3f3837343f382d243f343c373f383a12163c3e3c3c3e053c3c343c34382c3e3c3c343c381a3c153f3e3a1a0e31132c383f3f3545173c38382c1c043435373c3c3e2c3e3c3c2f2c4d3c343c2c123c1a0a153f143c3e343c3b0f341a153f3c3812382c3e3c3c343c381a3e3f3f52343c1535392c3831343c241a3c043c3f1c04343f1c4d383c343c381a3f161a1f341a3b3f3c3812382c3e3c3c343c1e1a3c2e3c3b3832453f341a282c392e3c3f383545153f143c3b383c121c343c381a3f161e333c2c0e1a3c043c3e1c04343f2c2c3f363f383c1a3c3e3c3e343c382c1b043c3f2f0a4d3f3e043c383832493f343c3c153e2c0e1a3f4d382c1c142c3c343c16312b2c383e1b04303c2c2f3f0f341a34163c3e3c3c383928382c3e3c3c363c343c342c301a3c3f3f443a143c39383f3c31343c3c1a3c2e1a3e3e39243e3e3e3c3c343c380d3c1a3c4e3c1a3c1a3c28383c3839121a3c16383c331a3430343c381a3c1638301c153c07343c373f383a12163c3c08453c2c38391b04303c2c2f3f0f341a28163c3e3c3b343c384f3c1a153f3c3e383f2c2c24153f1a373c3c163c1a3c3e3c3b2c2c150c383e1a333c383838342c241a3c4d3a3c383e3c3c383e38143f053f322f2c4d3c343c301a3f053e353c2e383f3c4d3c3e2c3e3c3c383e281c343c3b3f303a0e153c2e3c3c343c2b3f3e3a122c3316281a3f38383e2e3534333c3e3c392c243c2c343c3c2c342e343a3838483b392c301a3f38383f1c043838343c301a3f153e353c2e3c3f2c2c0d0e1c14383f393c38313e4d383e342c241a3c3e3c3b2c2c150c383e153b392c3831343c341a3c141a3e3c3e3c3a1e17243e3c3c0e1a3f28382c1c142c3c343c38310b3c383f3c4e45173c38382c1c04343b373c3c1a3f2e3c3f331a34342c2c3c153c28383a342c243e2c3c373c343c3c1a3f2838341c153c10392c3f3f3f3e383a343c333f1a3f3c1a3c3f3c1b341a1e2c2f3828333c3e3c39343c1e2c143c38153c2c333c3c163c1a3c3f3c143a143c3f2c293f0f342c381a3c3e3c3b2c2c150c38393b3b343c2f3f3c161504392c3c1a3c4d3a3c383e3c3c383f45143f153f382f2c4d39343c2f3f3c2a0e153f3e3c39343c242c143c381a3c2838361f3a12153c2c0a3f3e0a093f3c14383a343c3c1a3f2838341c153c102f2c4d3f3e043c3e343c34123c1a3c1a3f13344f3c1a3c31343c2b3f383a12163c3e3c3f3e48123f3c2c3352340a3f3f383a0e143f3e2c3c343c2c1a3c29243e393e3c38343c304f3c1a1a1a3f3e3c382c2c050c383b34153f143c38363c3434342c30173c38382c1c04343f373c3c1a3c2e3c39331a3430343c381a3c07243e3e383b52342c283e2c38383c2c2c3c1a3c143c393831283f341a333f3c381a333c3e3c3c343c333f3c2a12143c053c27341a3c4f3c1a3c1a3c3828333c3e3c3c343c301a3c143c3f363c34303831283f342c2831343c3b3f383a12163c3e3c3b342c3c1a3f153f2f343c2f3f383a12163c3e3c3c3e0a4d3c343c3c123c1a3c1a3c2e1a3e3c381e31311a3c3e2c3e3c3c363c34382c1e123c1e2e343c3f383c1a3c38353c3c3824382c383834390a0e1a3c3838342f0a4d3f2c2f3c2d3e4d383c390a093f3e1a0b483c2c34391b1a3752340a3f3f383a0e143f2e2c3c3c13491a3c1f4d143c4d315252525252525252525252453c1a04343e2c123e3c1a343e3c1a343c341b28315252525252525252524a52453c2a3c2f3c343c373e2d3424153f3e3c3e2c1a2e342c123e3c1a343e3c1a343e3c2d350a303c2c0e1a3c16363c1a343e3c1a343e3c562d453c2a1a2f3c343c333e2d3424153f3e3c392c1a2e342c123e3c1a343e3c1a303952520a3e38393c3831343c372c3f383f3e3c3c0a3f3e043c3b343c373e3c3e3c390d4f193f343a121a3c16341a14361913343c373e1a343e3c1a3f3f283a04343a2c293b0c383e451a3f2e16393c3e3838343c280d3c0a153e1a343e3c1a343e3c0a3c3e3b2c2407493c3e3c3a1c4b4c3e30341c383e04383e343c3c1a3f391e393c3e3c3c343c341a3c4d363c1a343e3c1a343e3c1a343f521a492c4e3c0a1a1a3f28382c1c142c3c3e0a1e3c343c3c1a3c282431300a383f1b043c3c2c2c381a3c3f0e153c3c373c3c4d3c1a3c3f3c27341a38333c283a24110a38123c1a3c143c2c2f3c343c382f390a3c303c2c0e31383c3c3c3e043c3f3e452c393c2c3352340a3f3f343a0e143e3e2c3c343c1a1a3c17243e383e3c34343c384f3c151a1a3e3838341c14343f343c302c39043c3f38390e153e2e3c3f383c491a3f38383c331a343c2c2c3c153c1a373c3c4d3c1a3f143c352f143c3e1e1a4d3f3c163c1a3e3838241c143c342c2f3f0c383e1a333c3c373c343c161a3f141a3e3c3f3e353c2838112f1a2f3c343c273f3f3a12143c143c352f1a4d3e2c2c3c153e1a3752343c161a3c141a3e3c3f3e353c2e343f2c1e283c2f143c3f2c1b453f1e28380a2f13373b3f383c1a3f14383e343c38303c2c0e1a3f1638341c143c352f1a4d39343c38153e143c37343c24123c1a1a2c150a3831342c381a3e3e3c3c343c1a123c151a1a3e3e1a3e383e3c39343c2c1a3f2e3c3f343c121a3c3e1a3e3c3e1a3e373f38303c39243e3a3e3c3e2c2c150c342c24303c2c0e1a3e283a3c0a3c3c1a3f141a3e3c3f3f323f383c392c3c373c343c1e1a3f1638381c14343a2f1a2f3c343c1e153f1a0a3f3e043c372c24393c3c3e3c3a363c343c383849333c2c0e313c4d3c1a3e3838241c143c342c2f3f0c3839273b392c341a3e283a3c0a3c3c1a3e3838241c153c153838483b392c341a3e3838241c153c113a1a0a3c3e0a3c31343c161a3e3838241c153c15383e161a3e2e3c3a363c343c383e113a3f383c1a3f1638381c14383a343c153f3a3a122c372f12303c2c0e1a3f383838331a343c3e043c38363c343c342c34303c2c0e31343c2f3f3f39243e3c3c0e1a3e3838241c143c342c2f3f0c383e1a382c3e3c38343c2c123c1a3f3f3c13344f3c1a3c31343c1a123c151a153c3e3c342c2e3f0c373c3c1a3c3c0b3a3c0a38391b04303c2c2e3f0f341a1a163c3e3c34343c344f3c153c1a3e3e3c3f331a3424343c153f3e3a12143c2e3c39383c451a3c2f3c04342c161a3c2f3c32343c2f3f3c39243e3c38383c342c343e2c3c333c343c241a3f4d241a3c1334333c2c373c343c153f3a3a121a3e38382c1c153c10392c3c3e2c3e3c37343c240e3c3c3c2c143c3b3f372824382c3e3c3a2c2c3b0c341a341a3f4d24333c16383c342c123e1b043c37343c340e3c3c3c2c143c38143c28353b3c38241a3c2835523c253b3f303827042f2c2f3c343c24153c143c3f393c3831343c273f3c10121a3f4d24333c043c3f342c121a3e2e3c3a313c3c3e38341a3f3e04383f343c1a1a3c3e3c34363c3424343c1a123c153c1a3c043c38343c281a3c2e3c36343c3c123c1a3c123c142c2f393c3c4f3c151a1a3c16383e1c14383a393c3831343c113f1a303c3c343c240e3c3c3c2c2f3c2f3c3c4d3c3e2c3e3c35343c273f3c2a12143f1624382c3e3c35342c24303c2c0e1a3e283a3c0a3c3c1a3f140a3c3c3f3f38392c38313e0a333c343c153f3a3a121a3e38382c1c153c052f2c4d3e343c113f1a303c3c343c153f3a3a122c35053f382f2c4d3e343c153f3a3a122c341512303c3c0e3c3e043c37343c153f3a3a122c35053e073c2e3c37343c240e3c3c3c2c0e0a3b3a3f383c1a3f16383f1c14383a343c153f3a3a122c341512303c2c0e1a3f383838331a343c3e043c38363c343c342c34303c2c0e31343c2f3f3f39243e3c3c0e1a3e3838241c143c342c2f3f0c383e24382c3e3c38343c2c123c1a3f3f3c13344f3c1a3c31343c1a123c151a153c3e3c342c2e3f0c373c3c1a3c3c080c3c2c38381b04303c2c2f3f0f341a1a163c3c373c343c3f3b392c3c1a3f3e1a3e393e383a343c341a3c2a0e143f4d383c2e1a2f3c343c3c1a3c2e3c352c2c374c341a1e2c1b043c352f0a4d3f3e043c3a343c301a3c2a093f3c1328143c2a093f3c3e3c3f343c27343a04343f2c2c3f363f383c1a3c3e3c34343c381a3f2f3e4a3c14343b383c4d1a3c2f3f52342c241a3f2f3c363a143c3f343c2735392c3831343c301a3c100e143c28383c2e1a2f3c343c3c1a3c143c3f2c2c374c341a382c1b043c3f2f0a4d3f3e043c383832493f343c3c153e2c0e1a3e38382c1c142c3c343c16313b1a3c1a3c3e3c3f343c341a3c043c3c363c343c363c340a382c0e3c3a1a093e3c2c3b52343c3c123c1a3c153c143c3f383f12153c3e3c3e2c2c150c341a382c283e3c3c2e0a2f52343c381a3c3f3f4e363c343c2c2c3f353f28383c3e4d28382c3f3c253c3c0e1a3c1638341c143c3c38351e123c1a3c313e3c3c1a3c3835523c2538313f3c3c1a3c3c0e2d3c3e3c3c343c3c123c1a3c123c142c2f3c3c3c31382c3c1a3c3e3c3f343c38123c1a3c123c143c2f3c0a3c31382c3c1a3c3e3c3f343c38123c1a3c123c140a2f3c0a3c31393c3c1a3c383a3e15123c1a331a3c3c3e0a1e3c343c3c2c382f1231311a383f1b04303c2c2f3f0f341a38163c3e3c3f2c2c150c343c3c2c392e3c3c383c113f3c132f0c383512123c1a3c153c3e3c3f2c2f3f0c373c3c1a3c3c080c3c2c383f1b0a373c343c333f1a3f3f052f2c4d3c343c373b343c333f041a3f05341a2f3f3e38241a3f38353c3c3827041e1a4d3c343c3f3f3607123c3c3e3c3c2c2c3b0c342c3c31343c333f1a3c2f053f383c1a3c383817321a3c3c343c3f3f3c2a12153c3c0e392c3e3c3f312c3c3c341a2c382c3e3c3c343c2c4b3c3c3c1a3c38383f1c14383c343c3b3f3c2a12153c2c0a3f3e0a0e1a3c3c37522c18453c343c333f041a3f05341a3b3f0a3c3f3a392c3c1c2c191a3c2c1b1a3c343c333f1a343c3f1e2f0e1a3c2838342f1a4d3c3a1635163c38354c3c3e3c3e3a0a0e4b3c3c3c31360a383f1b04303c2c2f3f0f341a38163c3e3c3f2c2c150c343c3c2c392e3c3c383c110c383512123c1a3c153c3e3c3f2c2f3f0c373c3c1a3c3c0e2a3c3e3c3c343c381a3c143c39343c3c123c1a3c123c143c2f3e0a3c1c3e053c3c343c3f3f3438241a3c3838371c4d383b2e253431331a3c1a3c1a2f52343c34382c3c333c343c3c1a3c2e1a3e3c39243e3c3e3c3c2c2c2f0c342c3c1a3c2838381c14383f343c373f3c2a0e143c1a4d3c3e0a093f3c3c281a3c3c0e1c3e4c343f3c13443f45343c3f363c343c341a381a3c3838391c163b451e2e343e1c14383c3c163c1a3c16383c343c3c1a3c284d1f392c3c1a3c39453c2c2f3f4d2e0a2f3c343c3c2c3f3828333c2c093f45343c3f343c3c4f3c1a3c1a3c2c45312c192e3f3c28380a331a343c2c254531381a3c1a3c3f3f39363c343c343c3c123c1a3f0f2c2c374c3e0a1e3c343c3f3f383a1231332c383f1b04303c2c2f3f0f341a34163c3e3c3e343c3c123c1a3c4f3c1a0a1a3c3e3c3f363c343c331a343c343c381a3c1638301c141a3e3c39243e3c3e3c3e2c2f3f0c373c3c31373c383e1b04303c2c2f3f0f341a34163c3e3c3c343c382c452c38153c043c3e2c2f3f0c373c3c1a3c2e3c3c343c301f3e0a4d3c343c3c123c1a3c1a3c28383e193a12313b1a3c1a3c3f3c4c3f383c1a3c3e3c3f3839162d3e043c3c343c382c321a0e0e3c3c373c343c3c1a3c2824333c3c333c343c3c1a3c28383f1c04343f290a4d3f343c3c1a3c2f3e0a3c143c3c2c2c3b0c342c3c303c3c0e3c3e0a0e313c3e3c3c343c384f3c1a3c1a3c3c0b1f3c2c343f1b0a37562c2c38153f3c373c343c3f3e3c3b341a3c28315252525252525252525252453c1a04343b2c123e3c1a343e3c1a303952520a3f2a343c2b3e1a343e3c1a343e3c0a2d52523c3b381f392c3c1a3c16343c28143c392c0b52525252525252525252520a3e39341a273e1a343e3c1a343e3c0a2d52523c3b241a3f16363c1a343e3c1a34393c5252453c282f0e333c3e3c3c343c3638343c281a3f122e38283c2f3c2c2c3c2d3e043c3f343c32392c1a3f273f383f3f1b043838343c3c1a3c112c1a3c2e3c3928043c3f343c332f3a0a4d3f343c3c1a3c12281a3c2e3c3915242f3e3c3b342d3e4d3b52342c2c1a3c3e3c3e2b143c3f343c332b343c381a3c4c381f392c3c1a3c3e3c3e152e3c3f343c323b1538343c281438383e043c383e4c3c3f3c25493e2c3e3c392c1e3c3c1e2c2f3c343c341a3c4d3b3c1c0c4f34342c3b3e3c3e383e393c3831343c333b392c3c1a3c16353c3c3e3c391c4b4f3a343c381a3c4b4d143f341438342c381a3c143c38143e383e3e043c3c343c384e3c0a3c1a3c3e3c3e330a30343e0a493c343c3c123c1a153f52525252520a19053e0a123c343c3c2c492c381c343c3c31380a3c1a3c3e3c3f343c341a3c3e1a3e3c3e1a3e303f38383c3c0e103c3e3c3c343c3c123c15153b343c3c123c153c1a3c253704341a384f3c153c1a3c3e1a3e3b3e3c3f1e2c2f3c383f1e3c3e0a0e373c3e3c3c343c382c522c3831373c3c1a3c38383e290a2f52343c3f3f3f3a0d3f1b3538143c3e3c3c2c2c3b0f341a3c1a3c38383e2f150e3b2c2c38313e0a1e3c343c3f3f393a1231112c383f3f2545173c38382c1c04343b373c3c1a3c2f39293c14383e340a3f3f383a0e143c042c3c3c163c1a3c16350b525252523c4d4d382c3c373c343c373f3c284d382c3e3c3c343c342c32143c3c342c2c303c2c0e1a3c3e3c3c343c342c1a1a3b3f3c2a12143f153e3f3c2e343838384d1a3c3e3c3a38380a1a3c3e3c3e38391631343c2c1a3c2e3c3e3835381a3c4d383c331a3430343c2c1a3c16383e193a121a3c4d38301c153c07343c333f383a12163c3c0a3f3e053c253c3c0e1a3f28382c1c142c3c3e0a453c343c3c2c2c041a3e3c3e3c3c363c343c1c0a0b383c2c383a1b04303c2c2f3f0f341a2c163c3e3c3c3837243f363c343c342c283e1b043c3e363c343c343c3c123c1a3f0f341a333f52525252520a19373f383c1a3c4d383f193c0a3f3e4d3b523e0434392c2c2c1a3c050e153c043c3f363c343c342c241a3c3e1a3e3c3e3835343c2b3f331624381b4d383c3f2e3c3c363c343c3e043c393837493f341a1a382c3e3c3b2c2927353f383c1a3c3f3e103c2f1231343c2f3f3329243e3f3e3c3c343c2f3f3e3a121a3e3e3c382c2c2f0c383f49143f2f3e113c143c3b383f4d1a3c2e3c3c363c343c343c241a3f4f090c331a343c343c341a3c3e1a3e3c3e3c392c2505051c17243e3c3e3c382c2f3f0c373c3c2d3e053c253c3c0e293c3e3c3c343c3b3f3c3e3c3c363c343c363c344d382c2c3c3e05303c343c3c1a3c28383c343c3c123c1a3c123c142c2f3f3c3c31392c3c1a3c3e1a3e3f3e3c3c363c343c1c0a09393c2c3b52343c3f3f0f3e24123c1a3c143c29243e3c3e3c3c343c3b3f393a0e123c1a3f0c2c1e0a10363c343c331a343c343c3f3f4d3e24123c1a3c4f3c1a1a1a3c3838301c15392c3c2f121a3c383b3c1c053f563a143c3c3e52343e3c2c3752340a3f3f383a0e143e142c3c343c121a3c39243e393c373c3c163c3e2c3e3c39363c343c343c3735392c3f3f36043831343c3c1a3e2e1a3e24381e382c383809342c0e1a3e2e1a3e273e3c3c2f0a4d3f3e043c39343c373f3c2a124f3c1a3c1a3c143c31321a3c3c393c3831343c242c3e28281a3c3e3c3b2f4e373b3f383f3f3c3e383c343c1a123c1a3c143c2e3c351c4d3a1b3c2812333c143c38363c343c342c3c1a3e3e3c3f2c2c2f0c331a343c343c381a3c39243e3c3c0a3f3e4d3b52342c3c1a3e2e3c372c181a3c1c143c362c2c050c3833343f343c110f341a273f4e3c3f36392c381a3f16383e192e383b3c163c3e2c3c373c343c3b3f3e3a0e323c0a3c3e3c3c3831343c381a3f2812333c2c0a393e043c3f2c2f3f35343c273f4f3c3f341e1a4d3c343c30123c1a3c143c2e3c3e2f143c3f343c370f2c2c37361e1a4d3e343c3b3f3c2a0e093c3c3f3f30381e333c16383c342c3c1a3f38383c331a343c343c301a3c28383f1c17243e3c3e3c3f343c2b3f49333c3c1c144d3c3c39123c3c3c0a3e3e043c39343c30123c1a3c143c38383f1c17243e3c3e3c3c343c2b3f49333c3c1c144d3c3c39123c3c3e3c38343c2c123c1a3f3f3c2a124f3c1a3f3f3c3e383c393c38312c2c3c153c3e3c382c2c3c4f3c1a3c31343c0d3f383a12163c3e3c3c3e0a123c343c3f3f0934163f383a2c314a1a343f3c4e45173c38382c1c043436373c3c1a3e143c3c321a3c2d3c163c3e2c3c373c343c30123c1a3c1a3c161e333c38380f342c0e1a3c3835523c253814393e3c37312c3c242f0a2f3c2c2e4d153e043c37312c3c27343c0535392c3831343c301a3c16383f1c17243e3c3e3c3e343c0e4b3c3c3c303c2c0e1a3f153c372f2e3c3c343c2b351e1628382c38383c342c3c1a3e3e1a3e3c3e343f343c190f2c27453f2e1a4d3e343c2c123c1a3c153c3e3c34343c3b3f3f3a124f3c1a3c1a3c2e3c3c331a343c393c38312c2545153c3e3c37343c113f3a10121a3e16382d1c15392b3c2e3c371c04343b2c2f1936392c383e2c3c373c3c163c1a3c2838341c0a49393c3c343c3c2c0e1a3c2e3c3b2e1a4d3f393c3031343c3b3f38381e1a3f28382a2e3534333c3e3c39363c343c341a381a3c16241a3c2e3c3e1c4d383e2e1334333c143c3f2c2c3b0f312c3c3c2c293f35392c373f3c3e383c343c2f3f3c39243e3c3e3c39343c3b3f3c2a124f3c1a3c1a3c2e3c3b2c18392c3c3a12093c3c3c4b3c3c3c303c1a0e1a3c043c39363c343c341a3f3f3c2a124f3c1a3c1a3c3e3c3b2c18392c3c3a12093c3c3c4b3c3c3c1a3f3e3c38363c343c2c2c3b0c331a343c2c2c3c153c3c0a3f3e4d383c342c3c1a3f38383c331a343c3e043c362c2f3f0c373c3c1a3c3c0e363c3e3c3c2c1c04373c2f3f163e49303f3c1a33523c25493e2c3e3c3c2c123e3c1a343c2c2b3c2f3c343c3c153f2c0a3f3e0a333c343c3b3f3c2a0e143c2e3c3c343c3f3e3e123c143f2834361b134f132c293f04321a3c3c343c3f3e525252525248453f2b14383e343c28153c3e3c3e392c3c313e043c3b0d04343e3f383c392c3e3c3f2c2c3b0f341a381a3c143c3e2c2c0d08341a333f3e10050f2c293f04321a3c3c343c373f3e280e153f3e3c39342c341a3f3c4d3c3e0a0e1a3c2c09173c1a3b523c2549173c38382c1c04343e373c3c1a3c3c3756343c3b3b3f383f3e3c3c0a3f3e043c3e343c3a092c1a3c1a3c2a1e143c28352f3c3a122c31043c3e362c30342c123e3c1a343e3c1a303c3c15283a181a3c381a3c2a08092c173e3a1b3e3839343c340d3c0a3c31330a303c343c3c1a3c071e393e3e3c3e2c2f3f0c373c3c31373c3c1a3c383831290a2f52343c3f3f383a0d3f1e3538143c3e3c3c2c2c3b0f341a3c1a3c3838312f150e3b2c2c12313e4e453f3c4e451a3c3e383f3c163c1a3c3838391e2c2f3c3c4d3c1a3c2e4d3c3c3828333c143c3f2c2c3b0c341a3b3f3c4e38333c3c0e313c4d3c1a3c2e343e2c2c2f0c342c381a3c141a3e3c3e34392c254407343c333f1a2436383e3a09052c243e3f1a122f491e2828333c3c0e1a3c4d35523c253b3b3f383c1a3c143c3c1c0a45313c4d3c1a3c144d3c3c2e3839343c373f3c2a12143c2e383e343c30333c3c0e31343c381a3c3a0e31362c3c1a3c3e3c3f2c2c154d2c243e3c523c1905343c3b3f3a352f04343c3b3f3e35273f1a2d49391e2e3c3f2c2f154f1e13344f3c3c3c31362c3c1a3c3e1a3c3c3e343c2c2f154d343c3f3f3e352f3f1a3439453f4e3b04343c3f3f3e35273f1a2d49391e2e3c3c2c2f154f1e133431390a3c1a3c3e3c3c363c343c2c2c2f0c331a343c3e0a1e3c343c3f3f3f3a1231390a3c1a3c3e3c3c363c343c2c2c3b0c331a343c3e071e3f3c1345173c38382c1c043439373c3c1a3c4d38341c143438343c382c39043c3e343c2c2c173c38143c2f3c49331a343c343c3c1a3c2f3c4e343c2c2c39143c392c2f3f0c373c3c31332c383e1b04303c2c2f3f0f341a34163c3e3c3e2c2c150c341a301a3c3f3c2d343c302c324d351a4d3c3f3f56093c3c343c382c24043c39383c491a3c16382c1c142c3c343c3831330a383e1b04303c2c2f3f0f341a30163c3e3c392c2c150c341a2c1a3c2f3c2d343c341a3f3f3e323c2e343f38391a4b3c3c3c1a3c3e3c3f38391e1a3f3f3c32343c333f383a12163c3c0e253c3e3c3c343c304f3c153c1a3c3e3c3e331a3430343c3c1a3c29243e3e3c0e363c3e3c3c2c2f154d2c2f154c3e4d343c343c3c1a3c3e1a3e3c3e3c3f363c343c1e07243e3c3e3c3c343c3c123c1a2c1a3c2e1a3e3f35304f3c1a2c1a3c3e3c3c363c3434343c38123c1a1507331a3434343c3c1a3c3e1a3e393e3c3f363c34301e07243e393c081e3e3c38311b043c3c2f2c2f3c343c382c3a2c4531343c3b3f2c3845382c3835281a2c3b3f3039243e3c38383c390a0e3e1b4d382c343c3b3f3e4f0d3f1835381a3c2838312e2f0e153f143c3c2c2c150f341a28123c1a2c143e283b491e2e38383c163c1a3e2838391e2828382c38383c343c273f1a3c3737392c341c343c273f3f3a121a3f384d382c3e3c3b342c341a3f3e3c3a1c4d3a49152c38123c1a3f3f3c252f33392c34312c2c3c303c1a0e1a3f3e3c3b1c1438353c163c1a3f3e3c3a290a2f3c343c2c1a3f100e143c4d382c2e2c4d3f343c281a3e28383f1e2e3c3a1e16383e1e17243e3f3e3c3b343c270c341a341a3c4d38391e17243e3f3e3c35343c1e123c1a2f3f3c25344f3c1a2c1a3c143c3938320a3f393c3831343c193f4534383f363c343c2f1a2f3c2c182e3f3c2e1a3e3c3e3c381c143438343c2733392c341a3f2e3c372c2c3b05343c27042c2c3704331a3438343c281a3f1012143c043c38343c270f341a373f3c25344f3c1a2f3f4834383f343c344f3c1a3f3f4534383f343c304f3c1a3c303c2c0e1a3f4d350e1a2c38123c1a3f3a3f383f3f4934383f363c343c343c2f0c341a301a3f1616333c1a373c343c301a3f100e143c16382c290a2f3c343c281a3e28383f1e2e3c3a1e16383e1e17243e3f3e3c3b343c270c341a2c1a3c16383f1e17243e3f3e3c39343c2b0c341a301a3c17243e3c3e3c39343c30123c1a2f3f1b13384f3c1a2c303c2c0e1a3f2e3c372c2c3b05343c33042c2c3704331a3438343c301a3f2a12143c143c3e363c34382c2c3b04331a34382c2c3c153c16383c342c2c312c18043f3c2e3c38331a343c2c183e3f3c2e3c3e331a343c393c3831343c1e123c1a2c143c4d383e1e2c4d3f343c333f1835381a3f3a12143e143c3a2e2c4d3f343c121a3f100e15393c373c343c333f520a3b333f383c1a3f041a3e3e3e3438343c333f3c4e24143c16383919383a3c1a1a3b0c2f15121a3f3e3c35363c3430341a333a3f383f3f4f34383f2c19143f3c2e1a3e3c383b56343c374e1e29243e3c3c0a3e3e043c38343c304f3c1a0a1a3c043c38331a3434393c3831343c1e123c151a153e0a373c343c1e1a3f041a3e393e34342f0a2f3c343c1e123c1a1a143c1635121a2c38123c1a3f373a143c3e343c1a4f3c1a0a1a3e3e3c3e331a3434393c38313c163c1a3f4d38281c143438363c343c341a34333c3e3c352c2f3f0c341a2c123c1a3c143c1a4d3c2c2c3c153e3c0a3f3e0a333c343c2c153c043c3e341a153f3b3a12143f3e1a3e3c3e343e392c3c1a3e38382c1c143838343c1a123c153c143c1a4d3c3e043c392c2c3c4f3c1a3c31343c093b392c3c3e2c3e3c35343c1e123c150a143c4d383e19383a34153c3b0c341a34123c1a3f3a3f383c1a3c143c34331a343c343c1a333c28351e1a2c3b3f4e34383f363c343c2c25491a3c4e1905331a343c393c3431343c093f38383828343c0e123c153c1a3f4d241f1c143c34331a343c343c153b392c3831343c1a1a3e07243e3a3e3c35363c342c341a34382c3e3c34343c344f3c153c1a3c143c34331a34243e043c35363c3428341a373b392c3c1a3e3e3c3e331a3428343c341a3e39243e3a3c0e1a3938382d292c2f3c343c281a3e28383f1e2e3c361e16383e1e17243e3f3e3c3b343c0d0c341a341a3c141a3e3f38383f1e17243e3f3c0a3f3e043c3b343c113f3c25381a3f13373f3c13344f3c1a2c1a3f2e3c3a1c143439343c053f3c4e344f3c1a2c1a3f2e3c361c14343e343c34123c1a2f3f3c25344f3c1a2c1a3c043c3038320a3f3e043c3b342c3431343c3431341a34382c3e3c3e2c2c150c390a0e1a3c2f3c27341a2b3b3f383f3f3c3c4531343c281a3c383b452c251a1a3c3838381c041a3e3c3e343e2c2c33053a043c3e2c2515051c14343e343c381a3c2e3c3e2e050e2c2c15121a3c3f3c2c343c28311b2c38391b4d3824342c343e2c3c373c343c3c1a3c25373f3c4e38333c3c333c343c3c123c1a3c1a3c2e1a3e3c381e333c2e3c3f2c2c2f0c342c381a3c3838381c14383c343c373f3f3a0e143c1638392e0a4d3c3e043c3e2f2c4d3f3e0a333c343c3c093c3c3c143c043c3f312c3c3c341a2f3a3f383c1a3c28383f1c14383f343c3f3f3c2a12153c3e3c3e2c2c3b0f341a34333c2c0a3e3e0a0e1a3c043c381c0a45312c2c3c312e2c383e1b043c3c363c3438341a273f3e3528153f2e3c3a2c2c3b053f383c1a3c141a3e3c3e3c3b3830283f342c2831343c3c123c1a3c143c3e3c3f343c341a3f2a121a3c4d383e343c273f3c13381f343c2c1a3c3e1a3e3c3e1a3e3a3f38363c3c084f3c2c38391b04303c2c2f3f0f341a30163c3e3c39343c384b3c3c453e2c3c373c3c163c3e2c3e3c3c383928382c3e3c3c38354d153c2e3c3c363c3438341a2c1a3c28383f1c04343e2f1a4d3f393c30312c2c12153f383836342c341a3c3e4d3c3e04343f2c2c0d35392c3831343c3c1a3c16383f343c341a3c1539343c2e3c38342c381a3c3f3c4c392c3831343c3c153c143c3c343c3b3f3c2a122c321a0a3f3e043c3c363c343c342c341a3c3e3c382c2c3b0c3839161a3f3e383f3e043c3f343c370c341a3c1a3c4d382d1c153c4d343c333f3c39123c39143c3c2c2c3b0c343c333f3910122c333e3c392c2f3f0c373c3c31373c383e1b04303c2c2f3f0f341a34163c3e3c3f343c3c2c452c38153c043c3e2c2f3f0c373c3c1a3c2e3c3c343c301f3e054d3c343c3f3f3f3a122c161a373f1b4d24382c3e3c3c343c3c123c1a3c123c1a1a2f3c2c3c313e042c3c343c3c2c562c38153c3e3c3f382d163f343c3f0f341a38382c3e3c3e343c3c1a3c2f390c3c2c0e1a3c2e3c3e1c1a0e2f3c3e3c3c343c381a3c2e1a3e3c3e1a3e363f38393c3c0e283c2c3b52343c3c123c1a3c153c2e3c3c2c2c3c4f3c1a3c1a3c2c080f313c382f1b043c3c363c310a3c2e382e343c3c123c1a2c1a3c2e1a3c3f3e34382c2f154d343c2f3f3e352f3f1a3439453f4e3b04343c2f3f3e35273f1a2d49391e2e3c382c2f154f1e133707341a2f3f3913273f523c19052c243c341c141a3e3c383834383c1a153f143c3c363c3434343c38123c3c1a143f283824193e3c3b2c2c154d2c243e3c523c19051e143c3b2c2c154f2c2439563c4e381a3f283824191337041e04343b2c2c274f2c1b0a351e283a3c3e3a12123c1a3f3f383f3c34342c1a1a3c3e1a3e393e3c3f363c3c30341a333f3a352c1a3c4d383419383a3c1a2d0a351e25341a3c4d383419163a3c521a3305343c333f3a3527041e1330143c4d35523c253b3f3c132f3f1a3c150c363c343c2c2f1a2c3e3e3835343c2b3f3913273f523c19052c243c341c141a3e3c383834383c1a153e2e3c392c2c274f2c1b0a351e283a3c3e3a12123c1a3f3f383f3c34342c121a3c3e1a3e3c3e3c3f363c3c3c341a3b3f3a352c1a3c28383419383a3c1a2d0a351e25341a3c28383419163a3c521a3305343c3b3f3a3527041e1330143c2835523c253b3f3c132f3f1a3c150c363c343c2c2f1a2c3e3e3831343c333f3913273f523c19052c243c341c141a3e3c383834383c1a15393e3c3f2c2c274f2c1b0a351e283a3c3e3a12123c1a3f3f383f3c34342c4d1a3f3835523c253b3f3c132f3f1a3c150c363c343c2c2f1a2c3e3e3832343c3b3f3913273f523c19052c243c341c141a3e3c383834383c1a1539043c382c2c274f2c1b0a351e283a3c3e3a12123c1a3f3f383f3c34342f3c1a3f2835523c253b3f3c132f3f1a3c150c363c343c2c2f1a2c3e3e382f343c3c123c152c1a3e043c36343c161a3f38382a191635453f4e3b3f1a3c150c363c343c1e4e33071e0434382c2c484f2c1b0a351e283a3c3e3a12123c1a3f3f3e3f3c34342c161a3c3e1a3e3a3e3c32343c4d1a393e3c3b2c2f274f2c1b0a351e283a3c3e3a12123c1a3f071e4e3307341a2b3f3f13273f523c19052c243c341c141a3e3c38382c383c1a153e143c3c363c341e343f381a383e3c2d343c333f3b13273f523c19052c243c341c141a3e3c3533071e4e30143c4d35523c253b3f3c132f3f1a3c150c363c343c2c2f1a2c3e3e3831343c2b3f3913273f523c19052c243c341c141a3e3c383834383c1a15393e3c392c2c274f2c1b0a351e283a3c3e3a12123c1a3f3f383f3c34342c4d1a3c3e1a3e383e3c35343c1a1a3f143c3f2c2f274f2c1b0a351e283a3c3e3a12123c1a3f071e4e3307341a3b3f520a3b052c2c374d2c243c341c141a3e3c383824383c1a153f143c392c2c484f2c1b0a351e283a3c3e3a12123c1a3f3f3e3f3c34342c1a1a3c28383a191635453f4e3b3f1a3c150c363c343c2c2f3c2c3e3e3835343c2f3f520a3b052c2c374d2c243c341c141a3e3c383824383c1a1539143c3f2c2c484f2c1b0a351e283a3c3e3a12123c1a3f3f3e3f3c34342c451a3f38383a191635453f4e3b3f1a3c150c363c343c2c2f3c2c3e3e382c343c2b3f520a3b052c2c374d2c243c341c141a3e3c383824383c1a15382e3c3c363c3416343c241a392e3c30343c2f3f3b13273f523c19052c243c341c141a3e3c3533071e4e30143f383832191635453f4e3b3f1a3c150c363c343c2c2c1a2c3e3e383a343c3c123c141a1a39143c35343c1a1a3f28382a191635453f4e3b3f1a3c150c363c343c1e4e33071e04343b2c2c274f2c1b0a351e283a3c3e3a12123c1a3f3f383f3c34342c1a1a3c3e1a3e313e3c2f343f3c1a39043c392c2f274f2c1b0a351e283a3c3e3a12123c1a3f071e4e3307341a333f520a3b052c2c374d2c243c341c141a3e3c383824383c1a153f043c3b2c2c484f2c1b0a351e283a3c3e3a12123c1a3f3f3e3f3c34342c0a1a3c4d383a191635453f4e3b3f1a3c150c363c343c2c2f3c2c3e3e3833343c3c123c143c1a3e043c36343c161a3c28382a191635453f4e3b3f1a3c150c363c343c1e4e33071e04343f2c1b453f1e28383e19383a3c3e3a12123c1a3f3f3a3f3c34342c161a3c4d3832191635453f4e3b3f1a3c150c363c343c2c2c1a2c3e3e3836343c3b3f3f13273f523c19052c243c341c141a3e3c38382c383c1a153e043c382c1b453f1e28383e19383a3c3e3a12123c1a3f3f3a3f3c34342c491a3c283832191635453f4e3b3f1a3c150c363c343c2c2c1a2c3e3e382d343c2f3f3f13273f523c19052c243c341c141a3e3c38382c383c1a15383e3c3b2c1b453f1e28383e19383a3c3e3a12123c1a3f3f3a3f3c34342f381a3c3e1a3e333e3c37343c4d1a393e3c382c2f274f2c1b0a351e283a3c3e3a12123c1a3f071e4e3307341a2f3f3913273f523c19052c243c341c141a3e3c383834383c1a153e2e3c3c363c3449343c491a3e043c36343c2b3f3b13273f523c19052c243c341c141a3e3c3533071e4e30143f28383a191635453f4e3b3f1a3c150c363c343c2c2f3c2c3e3e3836343c3c123c170a1a382e3c2c343c451a3c4d382a191635453f4e3b3f1a3c150c363c343c1e4e33071e0434392c1b453f1e28383e19383a3c3e3a12123c1a3f3f3a3f3c34342c0e1a3f283832191635453f4e3b3f1a3c150c363c343c2c2c1a2c3e3e3830343c333f3f13273f523c19052c243c341c141a3e3c38382c383c1a15392e3c3c363c340a343c1e1a3e3e3c3a343c3b3f3b13273f523c19052c243c341c141a3e3c3533071e4e30143c2835523c253b3f3c132f3f1a3c150c363c343c2c2f1a2c3e3e383a343c333f3913273f523c19052c243c341c141a3e3c383834383c1a153e3e3c3f2c2c274f2c1b0a351e283a3c3e3a12123c1a3f3f383f3c34342c1e1a3f3835523c253b3f3c132f3f1a3c150c363c343c2c2f1a2c3e3e3832343c3b3f3913273f523c19052c243c341c141a3e3c383834383c1a1539043c382c2c274f2c1b0a351e283a3c3e3a12123c1a3f3f383f3c34342f3c1a3f2835523c253b3f3c132f3f1a3c150c363c343c2c2f1a2c3e3e382f343c3c123c162c1a3f143c33343c0a1a3f38382a191635453f4e3b3f1a3c150c363c343c1e4e33071e0434382c2c484f2c1b0a351e283a3c3e3a12123c1a3f3f3e3f3c34342c241a3c3e1a3e2e3e3c32343c1e1a3e3e3c3b2c2f274f2c1b0a351e283a3c3e3a12123c1a3f071e4e3307341a2b3f3f13273f523c19052c243c341c141a3e3c38382c383c1a153e3e3c3c363c3730343f381a383e3c2d343c333f3b13273f523c19052c243c341c141a3e3c3533071e4e30143c4d35523c253b3f3c132f3f1a3c150c363c343c2c2f1a2c3e3e3835343c2b3f3913273f523c19052c243c341c141a3e3c383834383c1a15393e3c392c2c274f2c1b0a351e283a3c3e3a12123c1a3f3f383f3c34342c4d1a3c3e1a3e2c3e3c31343c121a3e2e3c3f2c2f274f2c1b0a351e283a3c3e3a12123c1a3f071e4e3307341a3b3f520a3b052c2c374d2c243c341c141a3e3c383824383c1a153e2e3c392c2c484f2c1b0a351e283a3c3e3a12123c1a3f3f3e3f3c34342c121a3c28383a191635453f4e3b3f1a3c150c363c343c2c2f3c2c3e3e3831343c2f3f520a3b052c2c374d2c243c341c141a3e3c383824383c1a1539143c3f2c2c484f2c1b0a351e283a3c3e3a12123c1a3f3f3e3f3c34342c451a3f38383a191635453f4e3b3f1a3c150c363c343c2c2f3c2c3e3e382c343c2b3f520a3b052c2c374d2c243c341c141a3e3c383824383c1a15382e3c3c363c3728343c161a392e3c30343c2f3f3b13273f523c19052c243c341c141a3e3c3533071e4e30143f383832191635453f4e3b3f1a3c150c363c343c2c2c1a2c3e3e3837343c3c123c111a1a39143c31343c121a3f28382a191635453f4e3b3f1a3c150c363c343c1e4e33071e04343b2c2c274f2c1b0a351e283a3c3e3a12123c1a3f3f383f3c34342c121a3c3e1a3e253e3c2f343f3c1a39043c392c2f274f2c1b0a351e283a3c3e3a12123c1a3f071e4e3307341a333f520a3b052c2c374d2c243c341c141a3e3c383824383c1a153e043c3b2c2c484f2c1b0a351e283a3c3e3a12123c1a3f3f3e3f3c34342c0a1a3c4d383a191635453f4e3b3f1a3c150c363c343c2c2f3c2c3e3e3833343c3c123c113c1a3f043c34343c241a3c28382a191635453f4e3b3f1a3c150c363c343c1e4e33071e04343f2c1b453f1e28383e19383a3c3e3a12123c1a3f3f3a3f3c34342c241a3c4d3832191635453f4e3b3f1a3c150c363c343c2c2c1a2c3e3e3834343c3b3f3f13273f523c19052c243c341c141a3e3c38382c383c1a153f043c382c1b453f1e28383e19383a3c3e3a12123c1a3f3f3a3f3c34342c491a3c283832191635453f4e3b3f1a3c150c363c343c2c2c1a2c3e3e382d343c2f3f3f13273f523c19052c243c341c141a3e3c38382c383c1a15383e3c3b2c1b453f1e28383e19383a3c3e3a12123c1a3f3f3a3f3c34342f381a3c3e1a3e273e3c3a343c4d1a393e3c382c2f274f2c1b0a351e283a3c3e3a12123c1a3f071e4e3307341a2f3f3913273f523c19052c243c341c141a3e3c383834383c1a153f143c3c363c3712343c491a3f043c34343c2b3f3b13273f523c19052c243c341c141a3e3c3533071e4e30143f28383a191635453f4e3b3f1a3c150c363c343c2c2f3c2c3e3e3834343c3c123c100a1a382e3c2c343c451a3c4d382a191635453f4e3b3f1a3c150c363c343c1e4e33071e0434392c1b453f1e28383e19383a3c3e3a12123c1a3f3f3a3f3c34342c1e1a3f283832191635453f4e3b3f1a3c150c363c343c2c2c1a2c3e3e3830343c333f3f13273f523c19052c243c341c141a3e3c38382c383c1a15392e3c3c363c371a343c0e1a3e143c37343c3b3f3b13273f523c19052c243c341c141a3e3c3533071e4e30143c2835523c253b3f3c132f3f1a3c150c363c343c2c2f1a2c3e3e3837343c333f3913273f523c19052c243c341c141a3e3c383834383c1a153e143c3f2c2c274f2c1b0a351e283a3c3e3a12123c1a3f3f383f3c34342c0e1a3f3835523c253b3f3c132f3f1a3c150c363c343c2c2f1a2c3e3e3832343c3b3f3913273f523c19052c243c341c141a3e3c383834383c1a1539043c382c2c274f2c1b0a351e283a3c3e3a12123c1a3f3f383f3c34342f3c1a3f2835523c253b3f3c132f3f1a3c150c363c343c2c2f1a2c3e3e382f343c3c123c132c1a3e2e3c33343c0a1a3f38382a191635453f4e3b3f1a3c150c363c343c1e4e33071e0434382c2c484f2c1b0a351e283a3c3e3a12123c1a3f3f3e3f3c34342c161a3c3e1a3e183e3c32343c0e1a3e143c3b2c2f274f2c1b0a351e283a3c3e3a12123c1a3f071e4e3307341a2b3f3f13273f523c19052c243c341c141a3e3c38382c383c1a153e143c3c363c3745343f381a383e3c2d343c333f3b13273f523c19052c243c341c141a3e3c3533071e4e30143c4d35523c253b3f3c132f3f1a3c150c363c343c2c2f1a2c3e3e3831343c2b3f3913273f523c19052c243c341c141a3e3c383834383c1a15393e3c392c2c274f2c1b0a351e283a3c3e3a12123c1a3f3f383f3c34342c4d1a3c3e1a3e1e3e3c35343c1a1a3f143c3f2c2f274f2c1b0a351e283a3c3e3a12123c1a3f071e4e3307341a3b3f520a3b052c2c374d2c243c341c141a3e3c383824383c1a153f143c392c2c484f2c1b0a351e283a3c3e3a12123c1a3f3f3e3f3c34342c1e1a3c28383a191635453f4e3b3f1a3c150c363c343c2c2f3c2c3e3e3832343c2f3f520a3b052c2c374d2c243c341c141a3e3c383824383c1a1539043c3f2c2c484f2c1b0a351e283a3c3e3a12123c1a3f3f3e3f3c34342f3c1a3f38383a191635453f4e3b3f1a3c150c363c343c2c2f3c2c3e3e382f343c2b3f520a3b052c2c374d2c243c341c141a3e3c383824383c1a1538043c3c363c36383c2e3c3a343c4d1a393e3c382c2f274f2c1b0a351e283a3c3e3a12123c1a3f071e4e3307341a273f3913273f523c19052c243c341c141a3e3c383834383c1a1a3c3e1a3e1a3c381a3e043c36343c161a3c28382a191635453f4e3b3f1a3c150c363c343c1e4e33071e0434342c2f274f2c1b0a351e283a3c3e3a12123c1a3f07343c3c123c121a3f343c451a39143c35343c2b3f3b13273f523c19052c243c341c141a3e3c3533071e4e30143f4d383a191635453f4e3b3f1a3c150c363c343c2c2f3c2c3e35301a3c3e1a3e173c381a38043c2f343f3c1a3c4d382a191635453f4e3b3f1a3c150c363c343c1e4e33071e0434392c1b453f1e28383e19383a3c3e3a12123c1a3f3f3a3f3c341e043c3c363c362c3c2530153c2e3c352c2c484f2c1b0a351e283a3c3e3a12123c1a3f3f3e3f3c34343c273f3b13273f523c19052c243c341c141a3e3c35301a3c4d383a191635453f4e3b3f1a3c150c363c343c2c2f3c2c3e35301a3e3835523c253b3f3c132f3f1a3c150c363c343c2c2f1a2c3e35301a3c3e1a3e113c3b07342c2c1a3c4d3832191635453f4e3b3f1a3c150c363c343c2c2c1a2c3e3e3c352c2f274f2c1b0a351e283a3c3e3a12123c1a3f07343c153f3f13273f523c19052c243c341c141a3e3c38382c383c1507343c273f520a3b052c2c374d2c243c341c141a3e3c383824383c1507343c3c123c0d1a3f1e04383b3c13451a3e383832191635453f4e3b3f1a3c150c363c343c2c2c1a2c3e3e3c392c2f274f2c1b0a351e283a3c3e3a12123c1a3f07343c273f3f13273f523c19052c243c341c141a3e3c38382c383c1507343c193f520a3b052c2c374d2c243c341c141a3e3c383824383c1507343c3c123c0d0a3f1e043439343f373f3e4d1a333c3f121a3f383832191635453f4e3b3f1a3c150c363c343c2c2c1a2c3e3e3834343c2b3f3f13273f523c19052c243c341c141a3e3c38382c383c1a153f043c392c1b453f1e28383e19383a3c3e3a12123c1a3f3f3a3f3c34342c161a3f283832191635453f4e3b3f1a3c150c363c343c2c2c1a2c3e3e383a343c333f3f13273f523c19052c243c341c141a3e3c38382c383c1a153e143c3f2c1b453f1e28383e19383a3c3e3a12123c1a3f3f3a3f3c34342c0e1a3c4d3832191635453f4e3b3f1a3c150c363c343c2c2c1a2c3e3e3830343c3b3f3f13273f523c19052c243c341c141a3e3c38382c383c1a15392e3c382c1b453f1e28383e19383a3c3e3a12123c1a3f3f3a3f3c34342c491a3c283832191635453f4e3b3f1a3c150c363c343c2c2c1a2c3e3e382d343c2f3f3f13273f523c19052c243c341c141a3e3c38382c383c1a15383e3c3b2c1b453f1e28383e19383a3c3e3a12123c1a3f3f3a3f3c34342f381a3c3e1a3e0d3c381a3e043c36343c241a3f38382a191635453f4e3b3f1a3c150c363c343c1e4e33071e04343a2c2c484f2c1b0a351e283a3c3e3a12123c1a3f3f3e3f3c34343c3c123c0c3c3f343c161a3f043c34343c3b3f3b13273f523c19052c243c341c141a3e3c3533071e4e30143e38382a191635453f4e3b3f1a3c150c363c343c1e043c3c363c36123c2e3c32343c4d1a393e3c3b2c2f274f2c1b0a351e283a3c3e3a12123c1a3f071e4e3307341a193f3f13273f523c19052c243c341c141a3e3c38382c383c1507343c3c123c0c0a3f343f381a383e3c2d343c333f3b13273f523c19052c243c341c141a3e3c3533071e4e30143c4d35523c253b3f3c132f3f1a3c150c363c343c2c2f1a2c3e35301a3c3e1a3e0e3c3b07342c381a3f4d3832191635453f4e3b3f1a3c150c363c343c2c2c1a2c3e3e3c3a2c2f274f2c1b0a351e283a3c3e3a12123c1a3f07343c333f3f13273f523c19052c243c341c141a3e3c38382c383c1507343c153f520a3b052c2c374d2c243c341c141a3e3c383824383c1507343c3c123c0f2c3f1e043838343c333f3913273f523c19052c243c341c141a3e3c383834383c1a1a3f4d382a191635453f4e3b3f1a3c150c363c343c1e043c342c2c274f2c1b0a351e283a3c3e3a12123c1a3f3f383f3c341e043c3a2c1b453f1e28383e19383a3c3e3a12123c1a3f3f3a3f3c341e043c3c363c36493c2530153f2e3c342c2c484f2c1b0a351e283a3c3e3a12123c1a3f3f3e3f3c34343c333f3b13273f523c19052c243c341c141a3e3c35301a3f16383a191635453f4e3b3f1a3c150c363c343c2c2f3c2c3e35301a3f4d35523c253b3f3c132f3f1a3c150c363c343c2c2f1a2c3e35301a3c3e1a3e0b3c3b07341a301a381638332e3c4d3c3a143c382c2c484f2c1b0a351e283a3c3e3a12123c1a3f3f3e3f3c34342c1a1a3f28383a191635453f4e3b3f1a3c150c363c343c2c2f3c2c3e3e3835343c333f520a3b052c2c374d2c243c341c141a3e3c383824383c1a153e2e3c3b2c2c484f2c1b0a351e283a3c3e3a12123c1a3f3f3e3f3c34342c241a3c4d383a191635453f4e3b3f1a3c150c363c343c2c2f3c2c3e3e3836343c3b3f520a3b052c2c374d2c243c341c141a3e3c383824383c1a153e043c392c2c484f2c1b0a351e283a3c3e3a12123c1a3f3f3e3f3c34342c0a1a3c28383a191635453f4e3b3f1a3c150c363c343c2c2f3c2c3e3e3833343c2f3f520a3b052c2c374d2c243c341c141a3e3c383824383c1a1539143c3f2c2c484f2c1b0a351e283a3c3e3a12123c1a3f3f3e3f3c34342c451a3f38383a191635453f4e3b3f1a3c150c363c343c2c2f3c2c3e3e382c343c2b3f520a3b052c2c374d2c243c341c141a3e3c383824383c1a15382e3c3c363c31383c2e3c31343c121a3f143c382c2f274f2c1b0a351e283a3c3e3a12123c1a3f071e4e3307341a273f3913273f523c19052c243c341c141a3e3c383834383c1a1a3c3e1a3e0a3c381a3e2e3c35343c1a1a3c28382a191635453f4e3b3f1a3c150c363c343c1e4e33071e0434342c2f274f2c1b0a351e283a3c3e3a12123c1a3f07343c3c123c0e1a3f343c491a392e3c30343c2b3f3b13273f523c19052c243c341c141a3e3c3533071e4e30143f4d383a191635453f4e3b3f1a3c150c363c343c2c2f3c2c3e35301a3c3e1a3e073c381a382e3c2c343c451a3c4d382a191635453f4e3b3f1a3c150c363c343c1e4e33071e0434392c1b453f1e28383e19383a3c3e3a12123c1a3f3f3a3f3c341e043c3c363c312c3c2530153c2e3c352c2c484f2c1b0a351e283a3c3e3a12123c1a3f3f3e3f3c34343c273f3b13273f523c19052c243c341c141a3e3c35301a3c4d383a191635453f4e3b3f1a3c150c363c343c2c2f3c2c3e35301a3e3835523c253b3f3c132f3f1a3c150c363c343c2c2f1a2c3e35301a3c3e1a3e4c3c3b07342c2c1a3c4d3832191635453f4e3b3f1a3c150c363c343c2c2c1a2c3e3e3c352c2f274f2c1b0a351e283a3c3e3a12123c1a3f07343c153f3f13273f523c19052c243c341c141a3e3c38382c383c1507343c273f520a3b052c2c374d2c243c341c141a3e3c383824383c1507343c3c123c091a3f1e04383b343c153f3913273f523c19052c243c341c141a3e3c383834383c1a1a3c4d382a191635453f4e3b3f1a3c150c363c343c1e043c3a2c2c274f2c1b0a351e283a3c3e3a12123c1a3f3f383f3c341e043c352c1b453f1e28383e19383a3c3e3a12123c1a3f3f3a3f3c341e043c3c363c311e3c253031342c301a3c143c3c343f373f3f352f0c341a3c123c1a3c1a3c4d35523c253b3f3c132f3f1a3c150c312c3c3f343c3b3f3b13273f523c19052c243c341c141a3e3c38383419383a3c1a343f491e2e3c382c2c484f2c1b0a351e283a3c3e3a12093c3c373f38352f04343c2b3f3f13273f523c19052c243c341c144d3c3c283834193537041e04342e2c2f154d343f373f3e352f3f1a3439453f4e3b04343f373f3e35273f1a2d49391e2e3c2e2c2f154f1e13344f3c3c3c1a3c143c3c363c3438343c3b3f520a3b052c2c374d2c243c341c144d3c3c2e3c382c2f274f2c1b0a351e283a3c3e3a12123c1a3f3f3e352f3f1a343e3c1835381a3f283832191635453f4e3b3f1a3c150c312c3c3e2c2f3f4d1e143c392c2c274f2c1b0a351e283a3c3e3a12093c3c3b3f3e352f041e13301438163824193e3c2e2c2c154d2c243e3c523c19051e143c2e2c2c154f2c2439563c4e381a3816382419133704331a3c38343c341a3c3e1a3e3e3e3c382c1b453f1e28383e19383a3c3e3a12093c3c381a3f28382a191635453f4e3b3f1a3c150c363c343c2c2c154d2c243e3c1a351505343c333f3913273f523c19052c243c341c144d3c3c16382c1935341a3c28383a191635453f4e3b3f1a3c150c312c3c3f2c2c154d1e1337073415373f3a352c1a3816383419383a3c1a2d0a351e25341a3816383419163a3c521a3305343f373f3a3527041e17243c3e3e3c3e343c3c123c1a0a1a3f2835523c253b3f3c132f3f1a3c150c312c3c3f343c333f3b13273f523c19052c243c341c141a3e3c38383419383a3c1a343f491e2e3c3f2c2c484f2c1b0a351e283a3c3e3a12093c3c373f38352f04343c2f3f3f13273f523c19052c243c341c144d3c3c283834193537041e04343c2c2f154d343c3f3f3e352f3f1a3439453f4e3b04343c3f3f3e35273f1a2d49391e2e3c3c2c2f154f1e13344f3c3c0a31391a3c1a3c3e3c3f363c343c331a343c343c3c313f0a3c1a3c3f3f353a1a0e343c383552525252523f0a0e3b3c3835523c3c0e393c3c3831360a3c3e2c3e3c3c343c3b3a392c3c392c3e3c3c343c3b3f3f3a0e143c2845333c2e3c3c343c382c192e3c3c2c2c2f0c342c3c303c3c0e3c3e0a0b283c0a38341b04303c2c2f3f0f341a12163c3e3c3a38390e153e043c36343c242c173c38143f153c4e3c163c1a3e153f373f383c1a3e043c3c343c341a3c053f17343c281a3c043c3e343c3f0f2c2c374d1c14343a331a343c393c3831343c281a3c07243e3c3c373c3c163c1a3c3e3434312c3c3c341a193f364f0e323c0a3c3f3c3c3831343c0e1a3f4d382419383824192f3c44342c1a1a3f2e3c3b363c343c341a193f3f3a124f3c1a3c1a3f043c34331a343c343c3f3f3c2a12153e3c0e3e2c3e3c3e343c150f2c2c3734392c3c1a3e3e4d3c3c38380a2f0a4d3c343c1a093c3c3b3f3435373f563c3f35392c3c1a3e4d380a38394d153f043c3b343c28123c1a3c143e2838381c17243e3c3e3c37343c1e4f3c1a3c1a3e043c34313c3c3f38394d153f043c3b343c28123c1a3c143e2838381c17243e3c3e3c37343c1e4f3c1a3c1a3e38383e1c1438343e043c34343c342c1828383c342c161a3f153c49342c053f3c3e3835343c1a153f1a3352343c341a3f164d381b043c39343c1a1a3c3a093f3c132f0c343c28123c1a3c2c0f2c381a3f2e1a3e3c3c283e2c3e3c36343c1e2c3e044d3c3c3828333c3e3c37343c121a3f053c31313c3c3c2f0a4d3c343c281a3f2e1a3e3c3e34372c2c2f0c331a343c343c161a3939243e3c3e3c35343c1e1a3e153c372c2c3b0f2e2a12153f4d383c342c1631343c0e1a3f140a3c3c3f3c44342c4d1a3f2e3c3b363c343c341a483f3f3a124f3c1a3c1a39143c33331a343c343c273f3c2a12153f143c372c2c3b0c342c16303c2c0e31342c2431343c2c1a3f143c39343c381a3c3a093f3c132f0c343c381a3c16241f331a343c343c122c3e15121a3e16382c1c142c3c3e443c3f3c2c3752343c373f1a3f3f053f383c1a3c38380f321a3c3c343c3f3f3c2a12153c3c0e1a3c163a3c3e3538382c3e3c3c2c2e304b3c3c3c1a3c38383f1c14383c3e043c3e2c242c3e1e2e34392c242c3e2f0a2f3c343c3f3f0f092c3c320a3c3c343c3f3f3c1012153c3c0e1a3c163a3c1a3c3b05342c34392c3e3c3f312c3c3c341a2c382c3e3c3c343c2c4b3c3c3c1a3c38383f1c14383c343c3b3f3c2a12153c2c0a3f3e0a0e1a3c3c37523c163c1a3c4d3a3c3c161e382c3e3c392c2c2f35392c3b3f051a3f3f481a3c1a3c150e303c1a093f052c3f3f482c3c1a3c150e303c2c093f0a2c3f3f492c3c1a3c150e1a3c4d3a383c1624333c3f0d3f050a3f3f480a3c1a3c150e31321a3c3c343c333f153c37353e4512393c2c1552340a3f3f383a0e143e142c3c343c242c30143831343c121a3f153e323c2e343a38391e3e2c3e3c36383816382c3e3c31343c3c1a3c143c39383a451a3f2e3c39343c341a3c3a090c341a244f3c1a3c303c2c0e1a3f2e3c39331a343c3c163c3e2c3e3c3c341a1a093c3c3c143f4d380f1c0a49393c3c383c3c2c0e1a3e043c352c2f154d2c2f154c383e16153e3e3c3b343c28123c1a3c143f4d383f1c17243e3c3e3c35343c1a4b3c3c3c1a3c38383f1c1438343e0a373c343c341a3e3a093f3c161a333c3e3c34312c3c3c2c293f35392c3c1a3e3e4d3c3c28381a1e1635493c381e333c3e3c312c293c2c362e3835343c281a3f2e1a3e3c3e34372c2c3b0c331a343c343c161a3f07123c3c3e3c31343c1a0e3c3c382c362e3835343c281a3f2e1a3e3c3e34372c2c3b0c331a343c343c161a3f07123c3c3e3c342c2c370c342c1a31343c1a1a3c153f482c2c3c153e2e3c3a38391a153938383c342c1e1a3e3e383a3c4e451a3c143c3a292c2f52343c301a3e3e3c3c1c4f121a3f2e1a3e3c3f3f48343c28123c1a3c3b3c163c1a3e143c35383c0e093c3c3f3b392c3c1a3e2e3c36343c1e2c3e040a3c3c381e333c3e3c3b343c28123c1a3c143e28383f1c17243e3c3e3c37343c0a4b3c3c3c1a3f043c35343c122c3e28383f1c4d110c342c193f3c3e38373e043c31343c240e3c3c3c2c362e3833343c281a3f2e1a3e3c3e34322c2c3b0c331a343c343c491a3929123c3c3e3c3a2c2c3b0c342c241a3e28383f1c143837393c38313e04383a3e043c38343c241a3c043c3f343c3f0f1c143c3f343c373a3a07243e3c3e3c36383c121c343c0d3f383a12163c3c0e303c3e3c3c383c4d1a3c28383e193a12310c1a2c3f3e4e45173c383a3c3c2a0e143e142c3c343c121a3c29243e183e3c3e343c302c072c34153e3e3c362c29284f3c153c1a3e1638341c16383c343c0d3f383a12143e2f3c18342f3c3e2c3e3c342c18283c290a2f3c343c1a2c3a2e34372f2c4d3f343f3c1a3e2f3c133e043c37342c1e1a3c14383f3c4d3c1a3c2e3c392f1a2f3c3c4d3c3e2c3e3c3c343c0d3f563c3f0c3839273f3c3e3c343a4d28382c3e3c3c343c0d3f563c3f0c383e1a382c3e3c3b343c28123c1a3f3f3c13344f3c1a3c31393c3831343c3c2c342e3832343c273b3f383c1a3f3e3c32383e1615391a0e1a3938383f1c1438332c2c3c1539043c37342c1e1a3c14383f3c4d3c1a3c2e3c392f1a2f3c343c4d15393e3c2d2f2c4d39343c3c2c372f121a3e2e3835343c34153c2e3c34343c090c2c2c3737392c30392c3e3c3f343c333a3f383c303f2c283e2c3e3c35312c3c3c2c2c3735392c3c1a3c2f3c37343c4c3a392c3c1a3f4d383c321a3c3c343c093f3c2a0e153e0a0e1a3f4d383f1c143835343c3b3f393a12153c2c0a3f3e0a3c313c3c283e2c3e3c35312c3c3c2c2c3b35392c3c1a3c2e3c303831383f363c343c342f383e2c3e3c3a3f35451a382c281a3f3e3c2f383e1631343c483a3f383f3f3c2e382d343c382c3e2e3c332f0a4d3e343c193f3c17123c3c3e3c312c2c3b0c342c0e303c2c0e1a3f4d383c321a3c3c3e043c342c2c3b0f342c1a31343c193f3c2a12153f043c3f2c2c050c342c38303c2c0e3c3e0a3c313e0a373c3c163c392c3e3c3e343c333a392c381a3e2e4d3c3c38383e2f0a2f3c343c113f3c2a12153e2e3c3e2c2c050c342c34303c2c0e31343c34153c0a0a3f3e043c3b343c28123c1a3f3f3f35344f3c1a3c31343f3c2c352e3c362c243c3f1c142c3c343c302d3f2c373c343c382c2e2828382c3e3c352c2c384b3c3c3c303c2c0e1a3f4d383e321a3c3c343c093f3c2a12153e043c342c2c3b0f342c1a31343c193f3c2a12153f043c3f2c2c050c342c38303c2c0e3c3e0a3c31383f1e3c3e05383c343c3c1a3c2e3c3c363c343c363c3430382c343c3e4a30383c2c0952340a3f3f1a3c3b0f341a12163c3e3c36343c384f3c131a1a3c143c3938304d3e342c1a1a3e16384c331a342c343c0d3f3e3a0d3f3c3e3c362c2f3f0c341a162c3514382c3c163c1a3e3835113c3845382c3e3c34383f16143e2828333c2e3c2c343c162c370a0e1a3e2e3835343c34153c2c333c343c381a3c4d24382c3c333c3c163c1a3c3e3c362c1b1a3c1c153c052c2c3c1a3e3f093b3f383c1a3c3e3c362c1b1a3c1c153c103f383c1a3f2e3c3b363c343c2c2c3704331a343c3e0a0a3f3e043c3c383f451539143c3a2f2c2f3c343c2c1a39153e073c2e38323e043c302c2c3b0c342c4c3f3c3e382d343c16153f043c3e342c38392c3e3c3f343c333a3f383c1a392e3830343c443b392c301a3c3f3c143a143c37342c1e1a3c14383f343c1a1a3e4f0d3f3c1616333c0a333c343c381a3c4d24382c3c0a3b3f2c373c343c1e093c3c3f3f3c161e333c3e3c3f383c161a392824333c3e3c352c2c3c4b3c3c3c1a3e4d383f1c0438313e043c352c2c3b0c342c1e1a3c2838301c14383f393c38313c3c0e3c3f2c373c343c1e093c3c3f3f3c281e333c3e3c3f343c0a2c3e040a3c3c3e382f3c163c1a391635523c25381a3f1a2f52343f383b343c2c1a382f3e073c2c093f520a3b052f1a2f3c2c2c381539043c3f383c161a39281e333c143c352c2c344b3c3c3c1a3e4d383f1c143831393c3831343c193f3c39123c3c3c0e1a3e38383f1c0438343e043c352c2c3b0c342c1e1a3c2838301c14383f393c38313c3c0e3c3e0a0e3e2c3c373c3c4d3c1a3c143c392f1a4d3f343c16093c3c3f3f3c161e382c3e3c372c2c3b0c342c161a3c1638301c14383e393c38313e043c3e342c30303c2c0e1a3f2e3c3b363c343c2c2c2f04331a343c3e043c2c383f4d1a3e163a3c3c2a12163c3e3c39390a283e2c3e3c3f3838113b3f383c1a3f4d383f321a3c3c393c3831343c193f3c17123c3c3e3c312c2c3b0c342c0e1a3e38383f1c0438343e043c352c2c3b0c342c1e1a3c2838301c14383f393c38313c3c0e3c3e053c253c3c0b113c0a38391b04303c2c1c3c3f1c043438373c3f3f1b04383b343c2c1a3c28383f1c4d383c343c381f331a36283c2e3c38343c3c1a3f383a183c2a121a3c2f0e143f17243e163c381a3f38383c2c273c3f383824143c383b52331a3730343c3f3f3339243e373e3c3c2c25454f3c113c1a3c3e3c3c2c27453f1c17243e313e3c3c343c3f3f163c3b0c331a37283c163c1a3c28383c2e3c2f3c2c192e3f3c283844331a343c393c3831343c273f3c39123c3c38383c342c2c173c38352c3c2a0e143c2e2c3c343c381a3c07243e073c381a3c283a1a3c2a12143c4d383c2c2e1a2c2f15121a3c2e3c3f363c31303c29243e043c383e2c38383c343c341a3c2835343c2a121a3c28352c3c3a121a3c05391e3c16383c2e3c2f3c2c2545153c1a0a3f3e043c3c363c37302c2c3f32342c281a3c3e1a3e3c3e3839343c3c123c16153f3c380a382c3e3c3c343c333f254e384f3c1a3c313c13453e2c3c373c343c3c123c173f3b3f383c1a3c38352c3c39243e303e3c3c2c2c3c4f3c150a1a3c38343c330a302c343c3c123c140a153f3e3c3c343c384f3c140a303c2c0e1a3c3e1a3e383c4d3f3e4d3b52343c3c2c4b3c38333c2f1231343c3c1a3c143c3f2c1e1a3f1c143c3f2c193c3c1c143c3f2c1c3c3f1c15391e3c1a0e153c143c383f383c1a3c38383c2c2c3c1a3c3e1a3e373f38383c3f121a3c38383c331a340a343c3c1a3f39243e313e3c3c2c2c3c4f3c150a1a3c38383c331a342c343c3c123c152c153f3e3c3c2c2c3c4f3c152c1a3c163b52343c2c1f342c3431343c3c1a3c3e1a3e3c3e3438343c333f34353b04331a343c2c25451a3c143c382c2e3f053a04383e343c2b3b392c3c31343c3b3f4d3c3b0c373c3c1a3c14383b3e043c3c2c1c3c3f1c142c3c343c28312e1a383e1b0a373c343c3c093c3c3c143c16281a3c143c3f312c3c3c341a33351e1a4d3c3c4d3c1a3c2e4d3c3c2e3839343c3c093c3c38143c1628333c2e3c3f2c2c3b0c342c381a3c38383f1c14383c343c341a3c4d24333c3c0e31343c341a3c4f0e31483c343f3f1345173c38382c1c043435373c3c1a3c4d350a151a381a3c050e143f2e1a3e3c3e38393c163c3e2c3c373c343c3b3b3f383c1a3c0a4d3f393c30312c2549153f3e3c3e2f2c4d3e343c3c1a3f4d38301c143c3c3a04383a3c163c1a3c0a2f3c343c34153c3c0a3f3e043c3f312c3c3c341a3f3f3a352f3f3a3528143c4d383c291a2f3c343c241a3c39243e3c3e3c392c2c3f35342c2c303f3c0e1a3c2e0a3c3c3e383c2c19143a3c2e1a3e3c3e1a3e3c3828382c3e3c3a343c3f3f524a45391e29243e3c38383f342c2c303f3c0e1a3c3835523c253b3f0a1a3b0f341a3f3f30160e333c2e3c3c2c2c374d2c1e3c0f1c141a3e3c3e3839343c373f3c2a0e143c3828333c143c3f2c2c3b0c342c3831343c38093c3c3c143e383839191434372c2f3f0f343c333f3a13281a3e2a0d042c2c1931392c3c392c3e3c3c2c2c3b0f342c3c1a3e383a3c3c2a0e1a3c4d383a193534143c4d383c291a2f3c343c2b3f3c39243e3c3e3c3a343c304f3c1a3c1a3c143c3c1c043838393c2c31343c3f3b392c341a3c28383f1c14343f312c3c3c341a153f0a3c3b052c243c3f2f1a4d3c3e0a0e1a3f28383c331a343c2c192e3f3c283827331a343c2c2545153f3c0a3f3e043c3b343c304f3c1a3c31343c193f383a12163c3e3c383e0a0a3c343c3f3f393a122c1b15121a3c3c0e343c3e3c3c363c342c2f2c0e123c2c3752340a3f3f383a0e143c142c3c343c38123c1a3c1a3c3e1a3e3c381a153c043c3e2c2f3f0c373c3c1a3c2e3c3c343c301f3e053c3c343c3c1a3c291e393e3e3c3c2c1a3c4e3c0a3c31380a3c1a3c383a453507243e3c3e3c3c2c2c2f0c383c491a3c3c0e383c38383f3e4f283f3c4e451a3c1628382c38383c390a0e3e2c3e3c3c312c3c3c341a333b392c3c392c3c373c343c38093c3c3c143f2828333c3e3c3e2c2c3b0f341a373b343c301a3f281904392c3c1a3c28383f1c14383f343c3c093c3c38153c043c3c2c2c3b0c342c3c1a3c0a4d3f393c34313e043c39342c2c31343c2f3f520a3b05343c38093c3c3f0f3e4b493f3c2c2f52340a3f3f383a0e143f2e2c3c343c38153f3e3c3e2c2f3f2d3f383c1a3c163838191438353c4d3c1a3c043c3838374d3f343c301a3c3e3c3b3831343e343c301a3f2e16393e391e3c3e3e3c39343c280d3c0a3c4e3c3c3c1a3f38382c1c143838343c273f3c2a12143f143c352f0a4d3c3e0a0e1a3f3e3c3f343c370c341a3b373f383c1a3f2e3c38343c381a3f3a0e143c153f3e341a381a3c100d3f3c38382c343c370f3838241c343c301a3c2f3e193c2e3c39343c3c1a3c2f3e043c143c39343c380d3c0a1a4e3c3c1a1a3c043c3f362c303c330a3c3c3e043c3b2c2f3f0c373c3c313a1a3c1a3c3e3c3f343c38123c1a3f3f393a0e123c1a3f0c363c3424331a343c343c3c31360a383f1b043c3c2c1b07523c39243e3c3c373c343c3c123c1a2f3f393a0e143c2838341c153e2e3c16383c291a4d3c343c382c383c0e1a3c3c09313c2c3752343c3c123c1a2c143f4d3834192e383a343c193f3c2538382c3e3c39363c343c343c242c052c38153f1a0e1a3c3e1a3e3c3e343c343c381a3c143c39343c270c343c2f3f3c143c352c2c37053a043c3b343c3c123c1a3c123c152c2f3e2c3c31343c3c3e2c3e3c3c363c3438343c3b35392c3c1a3c3e1a3e3538383f2f1a4d3c343c3c1a3c17243e353c0e31101a383c343c3f3f3c29123c332c373c343c3c123c1a2c1a3c161e333c3e3c3c2c2c384b3c392c3e2c3e3c3c363c342c341a373b3f383c1a3c38383f331a3416343c3c1a3c07243e3a3e3c3c343c384f3c153c1a3c3e1a3e3038383f2f0a4d3e343c333f3c2824333c2c0a3e3e043c3f343c373a3f383c1a3c3e1a3e3a3e343e2c2c373a3f383c1a3c3e3c39331a3424343c30153c1a0e1a3c3e1a3e3038383f2f0a4d3e343c373f3c2824333c2c0a3e3e043c3c343c3c123c142f3f3c2a124f3c142c31343c3f3f3c29123c331a0e313e1a3c1a3c3e3c3f1c141a3e3c3c09193c2c3b52343c3c123c153c143c4d28382c3e3c3c2c2c384f3c142c1a3c3e3c3e331a3424343c3c1a3c29243e383c45313c163c1a3c2e3c392f1a2f3c343c3c123c15153f3c161e333c2e3c3c343c344f3c151a2d3e043c3c2c2c384b3c39241a3c38383e331a3424343c3c1a3c3e1a3e3738383f1c17243e373c0e31082c383f3c4e45173c38382c1c043439373c3c1a3c043c3f331a34303c163c3e2c3c373c3c163c1a3c3f3c4c3f383c1a3c3f3f44342c381a3c3e1a3e3f3e3438343c3b3f3c2a0e143c1624333c2c0a393e4d383f342c2f3f3c2e383e343c3c093c3c0e143c28383f2f0a4d3f3e043c3c343c373f3c2e3c3e343c342c450a381a3f3e383f343c3c2c332c4d3f3e043c3c342c341a3c3e3c3f2c2c3b0c383912303c2c0e1a3c3e1a3e3c3e383e343c3c1a3f38383f1c153c48343c2c153c2c0e1a3c143c3f2c2c374d1c14343c343c333f393a122c30043c392c2c3c4f3c1a1a1a3c3838381c143c392c2c150c3839301a3c4d382c1c142c3c3e4b453f3c2c3352340a3f3f383a0e143f2e2c3c343c373f1f04343a343c3b0f292c2f3c343c3c2c392e38353c13451a3c2e3c3a2c2c3b4f2c2f3f0f2e2c2f3c343c281a3c28383f1939243e3e3e3c3b343c381a3c10124f3c1a0a1a3f2838301c143c3b2c2c150c383524123c1a3c2c162c38303c2c0e1a3f16383f1c0a093f3c2a12143f153f1b342c341a3f3c2f3c343c341a3f043c38383b2831343c301a3f3a0e143c0a2f3c343c341a3f3a121a3f3e3c351c143c39383b2831343c3b3f3e161e382c3e3c35383f3c31343c3c1a3c153f33343c3c1a3f153f30343c2b3f383a12163c3c4531383f1e3c3e0a303c3c2c0e253c3e3c3c363c3434383f27353f383c1a3c3e1a3e3e3f39283c1a0e1a3c3c0e493c2c3b52340a3f3f383a0e143c042c3c343c301a3c17243e393e3c392c2c150c343c333f393a122c2814383e343c3c1a3c2f391c3c2e383c343c342c282e3c392c2f3f0c373c3c1a3c3c0e313c3e3c38343c344f3c1a3f3f3c0a0e373c3e3c3c2c2c3c4f3c1a3c31390a3c1a3c3e3c3c363c34382c2c3b0c331a34383e05163f3c25443f3c2e383f343c3c2c332c2f52343c3c2c1b28383f1c0a281a3c2c0e313a1a3c1a3c383a4d3429243e3c3e3c3c2c2e3f0c383c121c343c3c2c0b3c381c343c3c31160a383f3f3545173c38382c1c043439373c3c3e2c3e3c3f38392b3b3f383c1a3c3e3c3f363c3434331a3434343c3c1a3c2e163e3c391e3e3c3c0a3f3e043c3f363c343c342c2c3e2c3c373c3c163c1a3c2e1a3e3f3e343e2c2c0d333f383c1a3c3e383f343c3c1a3c153c4b393c3831343c373f1f4d0e333c2e3c3c343c342c162c3b3f3c2a12143f2f3f1b341a382c292e3c3c343c282c293e3c3c343c342c322c0e1a3c2e3c38343c373f3c2a122c2b2c0a3f3e053c253c3c0e31343c333f383a12163c3c0e053c3e3c3e363c343c342c34392c3c373c343c3c1a3c281e381b043c3c363c343c343c3735392c381a3c3c281a3c2c0e2d3e043c3c2c2c2f0c342c3c303c3c0e3c3e5216393c2c3b52340a3f3f383a0e14393e2c3c343c0a1a3c39243e393c373c3c163c1a3c3e3c3b2f1a2f3c343c38093c3c3f3b392c3b3f3c3e383c343c3b3f3c39123c3c3e3c38343c2c123c1a3c143c28383f1c17243e3c3e3c3f2c2e494b3c3c3c1a3f053c372f2c4d3e343c16123c1a3c143c2e3c341c4d3a1b3c2812333c143c36363c343c342c341a3e2e3c3f2c2c2f0c331a343c343c381a3c17243e3c3c0a3e3e0a373c343c3c1a3f161e333c3e3c35383c113b392c3c1a3c2e4d3c3c3828333c28383c342c3c1a3e2e1a3e3c3e343f343c150f2c27453f2e1a4d3e343c12123c1a3c153c3e3c37343c3b3f3f3a124f3c1a3c1a3c2e3c3c331a343c2c2c3c153c3e3c362c2c3c4f3c1a3c303c1a093f1b04383c343c0e1a3e4d3a3c3c2a121a393838301c15392e3c2e3c311c04343b2c1b0a3c2e1a4d3f343c2b3f3c132b3f49333c3c1c144d3c3c3e383a3c163c3e2c3e3c3b2c250905341a3f3f4f3c3f353f383c1a3c38351a3c381e333c2e3c39343c2c123c1a3c143c281e382c383b52342c3c1a3c28383f1c044d3c3c38351b3c35381a3c144d3c3c3835523c353b35392c2831343c2c1a3c28383f1c17243e3c3e3c3f343c244b3c3c3f3f3c3e383c393c2c31343c373f4d3c3c4b3c3c3c303c2c0e1a3c140a3c3c3e343c343c273f4e0a3f052f0a4d3c343c341a3c383a3c3c25344b3c3c3c1a3c2e4d3c3c3828333c3e3c3f2c2c3c4b3c3c3c1a3f053c372f2c4d3c343c16123c1a3c143c3e3c341c4d3a1b3c2812333c3e3c36363c343c342c381a3e2e3c3c2c2c2f0c331a343c343c3c1a3c29243e3c3c0e1a3f3e3c38363c343c341a3f3f3c2a124f3c1a3c1a3c3e3c3a321a3c3c2c2c3c153c3e3c3b2c192c3c2e1a4d3f343c121a3e141a3e3c38383f1c17243e3c3c0a3f3e4d3b52342c3c31343c053f383a12163c3e3c3c3e4c3c3f3c1345173c38382c1c04343a373c3c1a3f1638341c14343b343c382c39043c3b3839093f49333c3c2c24392f3c3e3c3e383a301a3c043c3b38340a3f341a382c2e39243e3c3e3c38343c382c3239243e3c3e3c3c343c382c33043c3b383c491a3f16382c1c142c3c3e07383c343c34093c3c3c153c1a333c3c163c1a3c3e3c3f2f0a2f52343c3c093c3c3c1a3c161e333c2e3c3c3f2e3c3f3e0a4531343c3f3f3c2a12153c3c0a3c3e0a3c314a2c303f3c2545173c38382c1c043430373c3c1a393e3c3c321a3c2d3c163c3e2c3e3c3c343c2b3a3f383c1a3c2e4d3c3c3828333c28383c342c3c1a3c28383c321a3c3c343c2c1a3f3e1a3e3c3e343f2c2c3b0c331a343c343c3b3f3117123c3c3e3c35383c113b392c341a3e2e1a3e3c3e343f343c150f2c27453f2e1a4d3e343c12123c1a3c153c143c37343c3b3f3f3a124f3c1a3c1a3c2e3c3e331a343c393c34313c163c1a3c3e3c3a2f0a4d3c343c1e2c3e2828333c3e3c3f312c3c3c2f2c4d3f2c2c3c153c3e3c37363c343c341a381a3e3a093f130a3b36392c341a3e141a3e3c3e383c343c161a3c2838381c17243e3c3e3c3f343c3c4f3c1a3f3f3c3e383c343c0d3f3c39243e3c3c0a3e3e4d3b52342c3c1a3e043c312c2e3f0c343c053f394f122c4c2c381a3e4f0e143f28381b2e1a4d3f343c2b3f49333c3c1c144d3c3c3e383a3c163c3e2c3c373c3c163c1a3f283b561e28382a1c0a49393c2c343c3c1a0e1a3c043c38363c343c341a3b353f383c1a3c28383f1c044d3c3c38351b3c35381a3c144d3c3c3835523c353b35392c2831343c2c1a3c28383f1c17243e3c3e3c3f343c244b3c3c3f3f3c3e383c393c2c31343c373f4d3c3c4b3c3c3c303c2c0e1a3c140a3c3c3e343c343c273f4e0a3f052f0a4d3c343c341a3c383a3c3c25344b3c3c3c1a3c2e4d3c3c3828333c3e3c3f2c2c3c4b3c3c3c1a3f053c372f2c4d3c343c16123c1a3c143c3e3c341c4d3a1b3c2812333c3e3c36363c343c342c381a3e2e3c3c2c2c2f0c331a343c343c3c1a3c29243e3c3c0e1a3f3e3c38363c343c341a3f3f3c2a124f3c1a3c1a3c3e3c3a321a3c3c2c2c3c153c3e3c3b2c2f2b36392c381a3e143c36363c343c2c2c3b0c331a343c393c38312c2545153c3c0e1a3938382c1c142c3c343c3c31283c383e1b04303c2c2f3f0f341a24163c3e3c3a2c2c150c341a281a3c2f3c2d343c282c3016351a4d3c3f3f1a33383c343c342c1f043c39343c282c171a38143c2f3f34321a3c3c343c2c1a3c2f3c49321a3c3c343c3c1a3c2f3c4e343c282c39143c3a2c2f3f0c373c3c311b1a343e1b0a3756340a3f3f123c3b0f341a2c163c3e3c38343c384f3c170a1a3f3e3c3f331a3428343c2f3f1b07243e3a3e3c382c2f3f0c341a2b3e3c3f3f29343c2c1a3f2e3c392c2c382c481a341a3f3e16393e3e383a343c2c0d3c0a3c153f043c3e3f383c1a3c143c3f343c2c123c152c1a3f3e1a3e143c3b0c343c2c123c17050f1c17243e3c3c0e1a3c3e3c35330a303c343c3c1a3f171e393e3e3c382c1c3c3f1c142c3c3e0a4d3c343c3c1a3c2e3c3e2c13452c4d3c3431142c343c3c163c1a3c3c2f52343c3b3f520a3f33392c383e2c383524151a38123c1a3c123c1a3f3b3f383c1a3c283a3c1b4e3b3f1a3145392f1a4d39393c3831343c3b3f520a44333f383c1a3c3e3c3f2c2944052c243c3f1e17123c3c2e3c3c343c3b3f3f13273f0a3c3b04321a3c3c2c2c342d3e043c3f2c243f3c1e283a3c0a3c3335343c3b3f1a313c39294e3b3b3f383c1a3c3e3c3f2c2944052c243c3f1e17123c3c143c3c343c3b3f3935273f493c3b04321a3c3c343c3c1a3c28383a191638521e283a3c3c25344b3c3c3b3f3c0a4531343c3b3f1a343c381c4d3552520744333f383c1a3c3e3c3f2c2944052c243c3f1e17123c3c043c3c343c3b3f3813273f453c3b04321a3c3c343c3c1a3c28383a191638521e283a3c3c25344b3c3c341a3c3e3c3f2c2c054f2c2944052c243c3f1e17123c3c283838390a0e312c192e3f3c283827331a343c2c25453b2c2c3831390a0e1a3c3e3c3f321a3c3c2c2c38310f0a343f3f35453e1b0a373c343c3c143c2838391e2c2f3c3c4d3c1a3c2e4d3c3c3e343e2f2e3c3e2c294c3a1e1a4d3e343c3b3f3c2a12143c2838391e2c4d3c3e0a0e3e2c3e3c3f363c343c341a373f1b4e301a3c163a3f1a122c341c4e3b3f1a343a3e15351505392c3c392c3e3c3e2c1f4e4b443216391e04343e2c254407343c373f1a2436383e3a09052c243e3f1a122f491e2c4d3f343c38123c1a2c153c143c3f2c2c2f0c342c381a3c163a3f1a122c341c043c3e2c2544071e283a3c1a24363818353b3b392c3c313e0a333c343c38143c144d3c3c3e34393f383c1a3c16383f1c14383f343c333f2d281e333c2c0e31343c34303c2c0e1a3c2c0e1a3c3a0e143c1628382c38383c390a0e3e2c3e3c3c343c370c312c3c3c392c3f3f4434243f363c343c341a3b3b392c3c1a3c2e1a3e3c3e34392f2c4d3c3c4d3c3e2c3e3c3c343c301a3c153e563c2828382c3e3c3f363c343c343c370c341a30093c3c3f3f2d2824333c2c0e1a3c2e1a3e3f3e3839343c3b3f3f3a12153c2e3c39392c38303c1a0e31343c333f3c2a12153f3c0e1a3f3c0b153c2c383e1b043c3e2c2c3f35342c303e2c3c373c3c163c1a3c3838391e28281a3c162b04392c3c1a3c2835523c2538153f3c333c343c3c093c3c3c1a3f3824333c143c3e2c2c3b0f341a373f3c381e153c043c3c2c2c3b0c341a3f3f3c4e3b3b392c381a3c1a4d3c3e0a0e1a3c4d28333c2c0e3e2c3e3c3c312c3c3c343c3b3f520a3b052f143c3e2c2c2f371e1a4d3c343c3b3f520a3b052c243a3e153c150e342c30392c3e3c3c363c343c343c3307341a2f3f1b4e301a3f383a3f1a122c341c4e3b3f1a343a3e15351505392c381a3c3838381c14383c343c373f3f3a0e143c1638392e0a4d3c3e0a0e1a3c1628333c3e3c3f2c1b453f1e2e383f3c4d3c1a3c2e3c3c312c3c3c2f1a2f3c343c3c2d3e043c3c2c2c3b0c342c3c1a3c16383f1c04343e392c3c313e4d383c3e441e393c1a37563c1345173c38381a1c043438373c3c3e2c3e3c3f2c0b52525252525252525252520a3e39341a333e1a343e3c1a343e3c0a343c451b2e3c392c123e3c1a343e3c1a3039520a0a3f442b3c2f3c343c3b3e3f34241a3c38344514342c153c043c3c2c0b52525252525252525252394930143c38363f1a343e3c1a343e3c1a3c151c3f383c1a3c4d363f1a343e3c1a343e3c1a303c3c1b3e383e393c3431343c333e1a343e3c1a343e3c1a343f3c1b2e383e343c3f3e1a343e3c1a343e3c1a343c341528343c281a4d3f343c341a3c4d343f1a4e0a153c1a0a3f3e043c3c283e3c392c123e3c1a343e3c1a303952520a3f28343c333e1a343e3c1a343e3c0a2d52523c3b381f2f2c2f3c343c3b3e3f34241a3c38344514342f3e5252525252525252520a32392c123e3c1a343e3c1a343945520a3e38342c34303c2c093e1a343e3c1a343e3c1a2d17523c3e383e343c333e52525252525252520b5252393c3b24333c38343c342c341a3c4d340a14361e143f283a2f440a3f37392c3c1a3f38382c1c143c3c343c3b3e52525252525252522d49333e1a343e3c1a343e3c0a3c3e38341a341a3f283a3f440a3f0f383e451a3f3e3c3c343c373f1a1b1a3c343c2b0f38350a1a3f3e16393e38343815143c38362c303c341a3f3e2d341438342c341a3f3e1639383e3c38362c30241538343c280c4d1a3c3831525252525252525252520a5639153e343c2c123a3c1a343e3c1a343e3c3e3b12382c3e3c3e2c1a3b45342c34303c2c0e1a3c38363c1a343e3c1a343e3c1a3c143b2c1a3f2e392c3c1a3c16343f1a043c3e1b3e383e3e043c382c2e3f0c373c3c1a3c143c3f2c123e3c1a343e3c1a343e3c1a355639153145312f3c383f1b04303c2c2f3f0f341a28163c3e3c3b343c381a3c143c39343c2f3e1a343e3c1a343e3c1a343e3c1b49282c2d3e3c3b362c303c342c381a3c3e3c3b362c3034330a3034343c3c1a3c291e393c3e3c3b2c2f3f0c373c3c310c2c383f3c2505383c3c3c3c3c3c3c3c453945153c2c373c343c3f3f1a3c15323f383f383c3c3c3c3c3c3c3c493545153c2e3c3c2c1b452d2e3c2f3c343c3f3f520a190f342c3c303c1a09383c3c3c3c3c3c3c3c453545153c2e3c3c2c1b4d25343c3f3f522f19343a4d3556394f0e153c3c0a3f3e043c3c2c243b492e1a4d3c2f3c3c3c3c3c3c3c3c3a3c39342c381a3c383a491e3812382c3e3c3c2c1e16351c14383c393c38312f3c3c3c3c3c3c3c3c3c3c3c342c381a3c38350a1c3e3c3c2c1b3f122e15093f161a440c342c3c31343c381a3c3835523f4f0c092c172e3a0b4b3431053c383e3c25453e1b163b52342c303e2c3e3c3c2c1a3f2e343c3b3e5252525252525252525252523c3430143f38363c1a343e3c1a34393c5252453c2b143c382c123e3c1a343e3c1a303952520a3f2f3a0a4d3c2c2c3c1a3c16315252525252525252525252453c1a04343b2c123e3c1a343e3c1a303952520a3f2a343c2b3e1a343e3c1a343e3c0a2d52523c3b381f392c3c1a3c3e3c38343c2a38153b3c382c38383c390a0e1a3c2e3c3e1a4d343c2a2c2f3c2c2c3c1a3c2e3c3e28043c3f343c372f3a0a4d3f343c3c1a3c2e3c3e15242f3e3c3b342d3e043c3c2c1a3f2e343c381a3c11281a3c2e3c3e282f0e333c3e3c3c343c381a3c122a382c1a3f2e342c3031343c30311c2c383e1b043c3c2c1f0a12331a343c343c3c123c141a153c2c333c343c38382c38383c343c3c1a3c28383f1c04343f2c2c374d341a341a3c3e1a3e373a12123c1a3c1a3c3e1a3e343e3c3e1c141a3e3c3f38353c3c0a3f3e0a0e1a3c38381e1c153c32343c3c123c143c2c383e3c3c363c3416383f3c1a3c3e1a3e303f3c2c343c3c123c170a2c383e3c3c3e0a163c343c3c2c141a382c383c0e373c3e3c3c38311a3f383f3c31393c3c1a3c3838381c153f563a143c3c3e0a0a3c343c3f3f3e3a122c1b15121a3c3c0b52310a382f1b04303c2c2e3f0f341530163c3c37522c1b2c3f383f16143e3c2f523c163c1a3e3e343a343c3c1a3c283839193f3e373c04343c2c2c3f30392c3c1a3c38383e193e382d3c4d3c1a3f143c2f2c2c374d341a190c341a38123c1a3c153e143c3f343c241a394d383e193e342c1c14343f363c343c331a343c343c381a3e17243e3c3e3c3a343c193f3f35370c341a38123c1a3c153e143c3f343c241a383838381e1012143c2e1a3e3c39243e3c3e3c3f343c124f3c1a3c1a3f143c352c2c15041c14343f363c343c342c121a3c2e3c3a343f3f3f3e35370c341a38123c1a3c4f3c1a3c1a3c2e3c36331a343c343c241a3f4d38301e1012143c2e1a3e3c3e3836343c381a3f143c2c2c2c05041c14343f363c343c331a343c343c381a3e17243e3c3e3c2f2c2c2f0c3415381a394d38381c04342d2e3c4d3c3e4d383f342f381a3c38383f293c4d3c3c4d3c1a3f16382c1c14383a2c2c3c15390a333c343c241a394d383e193a12143c2e3c3f363c343c341a3b3f3913273f523c19052c243c341c141a3e3c38383a191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e3c3f2c2f274f2c1b0a351e283a3c3e3a12123c1a3f3f3f13273f523c19052c243c2c1c141a3e3c35301a3c28383a191635453f4e3b3f1a3c150c363c343c2c2c274f2c1b0a351e283a3c383a12123c1a3f3f383f3c341e043c3f2c1b453f1e28383e19383a3c3e3a12123c1a3f3f3f13273f523c19052c243c2c1c141a3e3c383824383c1507331a343c343c443f3c2a1214394d38382f0a4d3c3e043c2f2c2c3b0c3415381a3c381e333c3c0e31343c3f3f3c381a382c3e3c34383f3f3f3c3c0a3e3e043c34343c3c4f3c0b3c3f343c1a3b2c2c3c313e04343c3f35451a38043c3e362c3c3c330a302c343f301a3c14163c3e391e393a3e3c382c2f3f2d3f383c1a3f3838381914382b2c2c3c153c2c333c343f301a3c04163c3c391e393c3e3c29343c300d3c3c1a4e3c0a1a1a3c3e1a3e453c38153b3e3c3c363c3430343c30123c3c0a143c163824193e3c3e2c2c154d2c243e3c523c19051e143c3e2c2c154f2c2439563c4e381a3c163824191337041e04342d2c2c484f2c1b0a351e283a3c383a12123c1a3f3f3e3f3c34342f341a3c3e1a3e3e3e3c39363c3c34341a373f3a352c1a3c16383419383a3c1a2d0a351e25341a3c16383419163a3c521a3305343c373f3a3527041e1330143828383a191635453f4e3b3f1a3f3f0c363c343c2c2f3c2c3e3e3832343c3c123c1a2c1a3c041a3c3f3e343e2c2f154d343c373f3e352f3f1a3439453f4e3b04343c373f3e35273f1a2d49391e2e3c3e2c2f154f1e133707341a193f520a3b052c2c374d2c243c2c1c141a3e3c383824383c1a153e2e3c3c363c343c343c30123c3c3c143c163824193e3c3e2c2c154d2c243e3c523c19051e143c3e2c2c154f2c2439563c4e381a3c163824191337041e0434312c2c484f2c1b0a351e283a3c383a12123c1a3f3f3e3f3c34342f3c1a394d383a191635453f4e3b3f1a3f3f0c363c343c2c2f3c2c3e3e3836343f3b3f520a3b052c2c374d2c243c2c1c141a3e3c383824383c1a153f143c352c2c484f2c1b0a351e283a3c383a12123c1a3f3f3e3f3c34342c1a1a3e4d383a191635453f4e3b3f1a3f3f0c363c343c2c2f3c2c3e3e3838343c443f520a3b052c2c374d2c243c2c1c141a3e3c383824383c1a153c143c2f2c2c484f2c1b0a351e283a3c383a12123c1a3f3f3e3f3c34343c443f3b13273f523c19052c243c2c1c141a3e3c35301a3f4d383a191635453f4e3b3f1a3f3f0c363c343c2c2f3c2c3e35301a3e4d35523c253b3f3c132f3f1a3f3f0c363c343c2c2f1a2c3e35301a3c3e1a3e3535301439383832191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e382d343c3c123c151a1a3c143c38343c1a1a3828382a191635453f4e3b3f1a3f3f0c363c343c1e4e33071e0434332c2c274f2c1b0a351e283a3c383a12123c1a3f3f383f3c34342f381a3c3e1a3e3b3e3c3a343c121a383e3c352c2f274f2c1b0a351e283a3c383a12123c1a3f071e4e3307341a2b3f520a3b052c2c374d2c243c2c1c141a3e3c383824383c1a153f043c3c363c342c343c161a39143c2e343c093f3b13273f523c19052c243c2c1c141a3e3c3533071e4e30143e4d3832191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e382c343c053f3f13273f523c19052c243c2c1c141a3e3c38382c383c1a153e143c332c1b453f1e28383e19383a3c383a12123c1a3f3f3a3f3c34342c241a3f283832191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e3834343c093f3f13273f523c19052c243c2c1c141a3e3c38382c383c1a153f3e3c302c1b453f1e28383e19383a3c383a12123c1a3f3f3a3f3c34342c341a39283832191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e3c302c2f274f2c1b0a351e283a3c383a12123c1a3f07343c2b3f3f13273f523c19052c243c2c1c141a3e3c38382c383c1507343c093f520a3b052c2c374d2c243c2c1c141a3e3c383824383c1507343c3c123c140507341a053f3913273f523c19052c243c2c1c141a3e3c383834383c1a1538143c3c363c3412343c341a3f3e3c34343c4c3f3b13273f523c19052c243c2c1c141a3e3c3533071e4e30143928383a191635453f4e3b3f1a3f3f0c363c343c2c2f3c2c3e3e3832343c3c123c142c1a3f143c36343f3c1a3f28382a191635453f4e3b3f1a3f3f0c363c343c1e4e33071e04343b2c1b453f1e28383e19383a3c383a12123c1a3f3f3a3f3c34342c161a3c3e1a3e343e3c35343f381a39043c312c2f274f2c1b0a351e283a3c383a12123c1a3f071e4e3307341a093f3913273f523c19052c243c2c1c141a3e3c383834383c1a15383e3c302c2c274f2c1b0a351e283a3c383a12123c1a3f3f383f3c34342c121a392835523c253b3f3c132f3f1a3f3f0c363c343c2c2f1a2c3e3e383a343c2b3f3913273f523c19052c243c2c1c141a3e3c383834383c1a153e3e3c312c2c274f2c1b0a351e283a3c383a12123c1a3f3f383f3c34342c2c1a393835523c253b3f3c132f3f1a3f3f0c363c343c2c2f1a2c3e3e383e343c4c3f3913273f523c19052c243c2c1c141a3e3c383834383c1a1a3938382a191635453f4e3b3f1a3f3f0c363c343c1e043c3b2c2c274f2c1b0a351e283a3c383a12123c1a3f3f383f3c341e043c312c1b453f1e28383e19383a3c383a12123c1a3f3f3a3f3c341e043c3c363c34451e0434302c2c484f2c1b0a351e283a3c383a12123c1a3f3f3e3f3c34342c451a3c3e1a3e323e3c3e343c2c1a3e3e3c332c2f274f2c1b0a351e283a3c383a12123c1a3f071e4e3307341a4c3f3f13273f523c19052c243c2c1c141a3e3c38382c383c1a15382e3c3c363c344d343c241a3e143c2c343c2b3f3b13273f523c19052c243c2c1c141a3e3c3533071e4e30143f2835523c253b3f3c132f3f1a3f3f0c363c343c2c2f1a2c3e3e3835343c3c123c173c1a3e2e3c32343f341a3e4d382a191635453f4e3b3f1a3f3f0c363c343c1e4e33071e0434312c2c484f2c1b0a351e283a3c383a12123c1a3f3f3e3f3c34342f3c1a3938383a191635453f4e3b3f1a3f3f0c363c343c2c2f3c2c3e3e3836343c4c3f520a3b052c2c374d2c243c2c1c141a3e3c383824383c1a153f143c3b2c2c484f2c1b0a351e283a3c383a12123c1a3f3f3e3f3c34342c1a1a3e4d383a191635453f4e3b3f1a3f3f0c363c343c2c2f3c2c3e3e3838343c053f520a3b052c2c374d2c243c2c1c141a3e3c383824383c1a153c143c332c2c484f2c1b0a351e283a3c383a12123c1a3f3f3e3f3c34343c053f3b13273f523c19052c243c2c1c141a3e3c35301a3f28383a191635453f4e3b3f1a3f3f0c363c343c2c2f3c2c3e35301a3e4d35523c253b3f3c132f3f1a3f3f0c363c343c2c2f1a2c3e35301a3c3e1a3e2935301439383832191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e382e343c3c123c161a1a3c143c38343c1a1a3928382a191635453f4e3b3f1a3f3f0c363c343c1e4e33071e0434332c2c274f2c1b0a351e283a3c383a12123c1a3f3f383f3c34342c491a3c3e1a3e2f3e3c3a343c121a383e3c3b2c2f274f2c1b0a351e283a3c383a12123c1a3f071e4e3307341a2b3f520a3b052c2c374d2c243c2c1c141a3e3c383824383c1a153e2e3c3c363c373c343c1e1a382e3c2d343c093f3b13273f523c19052c243c2c1c141a3e3c3533071e4e30143e4d3832191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e382c343c053f3f13273f523c19052c243c2c1c141a3e3c38382c383c1a153e143c332c1b453f1e28383e19383a3c383a12123c1a3f3f3a3f3c34342c241a3f283832191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e3834343c093f3f13273f523c19052c243c2c1c141a3e3c38382c383c1a153f3e3c302c1b453f1e28383e19383a3c383a12123c1a3f3f3a3f3c34342c341a39283832191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e3c302c2f274f2c1b0a351e283a3c383a12123c1a3f07343c2b3f3f13273f523c19052c243c2c1c141a3e3c38382c383c1507343c093f520a3b052c2c374d2c243c2c1c141a3e3c383824383c1507343c3c123c110507341a053f3913273f523c19052c243c2c1c141a3e3c383834383c1a1539043c3c363c3724343c341a3f3e3c34343c4c3f3b13273f523c19052c243c2c1c141a3e3c3533071e4e30143928383a191635453f4e3b3f1a3f3f0c363c343c2c2f3c2c3e3e382f343c3c123c112c1a3f143c36343f3c1a3f28382a191635453f4e3b3f1a3f3f0c363c343c1e4e33071e04343b2c1b453f1e28383e19383a3c383a12123c1a3f3f3a3f3c34342c1e1a3c3e1a3e283e3c37343c491a38143c312c2f274f2c1b0a351e283a3c383a12123c1a3f071e4e3307341a093f3913273f523c19052c243c2c1c141a3e3c383834383c1a15383e3c302c2c274f2c1b0a351e283a3c383a12123c1a3f3f383f3c34342c121a392835523c253b3f3c132f3f1a3f3f0c363c343c2c2f1a2c3e3e383a343c2b3f3913273f523c19052c243c2c1c141a3e3c383834383c1a153e3e3c312c2c274f2c1b0a351e283a3c383a12123c1a3f3f383f3c34342c2c1a393835523c253b3f3c132f3f1a3f3f0c363c343c2c2f1a2c3e3e383e343c4c3f3913273f523c19052c243c2c1c141a3e3c383834383c1a1a3938382a191635453f4e3b3f1a3f3f0c363c343c1e043c3b2c2c274f2c1b0a351e283a3c383a12123c1a3f3f383f3c341e043c312c1b453f1e28383e19383a3c383a12123c1a3f3f3a3f3c341e043c3c363c370e1e0434302c2c484f2c1b0a351e283a3c383a12123c1a3f3f3e3f3c34342f341a3c3e1a3e1c3e3c3e343c2c1a3e3e3c332c2f274f2c1b0a351e283a3c383a12123c1a3f071e4e3307341a4c3f3f13273f523c19052c243c2c1c141a3e3c38382c383c1a1539143c3c363c3716343c241a3e143c2c343c2b3f3b13273f523c19052c243c2c1c141a3e3c3533071e4e30143f2835523c253b3f3c132f3f1a3f3f0c363c343c2c2f1a2c3e3e3837343c3c123c103c1a3f043c2f343c451a3e4d382a191635453f4e3b3f1a3f3f0c363c343c1e4e33071e0434312c2c484f2c1b0a351e283a3c383a12123c1a3f3f3e3f3c34342f3c1a3938383a191635453f4e3b3f1a3f3f0c363c343c2c2f3c2c3e3e3836343c4c3f520a3b052c2c374d2c243c2c1c141a3e3c383824383c1a153f143c3b2c2c484f2c1b0a351e283a3c383a12123c1a3f3f3e3f3c34342c1a1a3e4d383a191635453f4e3b3f1a3f3f0c363c343c2c2f3c2c3e3e3838343c053f520a3b052c2c374d2c243c2c1c141a3e3c383824383c1a153c143c332c2c484f2c1b0a351e283a3c383a12123c1a3f3f3e3f3c34343c053f3b13273f523c19052c243c2c1c141a3e3c35301a3f28383a191635453f4e3b3f1a3f3f0c363c343c2c2f3c2c3e35301a3e4d35523c253b3f3c132f3f1a3f3f0c363c343c2c2f1a2c3e35301a3c3e1a3e1b35301439383832191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e382d343c3c123c131a1a3c143c38343c1a1a3928382a191635453f4e3b3f1a3f3f0c363c343c1e4e33071e0434332c2c274f2c1b0a351e283a3c383a12123c1a3f3f383f3c34342f381a3c3e1a3e193e3c3a343c121a383e3c3b2c2f274f2c1b0a351e283a3c383a12123c1a3f071e4e3307341a2b3f520a3b052c2c374d2c243c2c1c141a3e3c383824383c1a153f043c3c363c370a343c161a39143c2e343c093f3b13273f523c19052c243c2c1c141a3e3c3533071e4e301439163832191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e382c343c053f3f13273f523c19052c243c2c1c141a3e3c38382c383c1a153e143c332c1b453f1e28383e19383a3c383a12123c1a3f3f3a3f3c34342c241a3f283832191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e3834343c483f3f13273f523c19052c243c2c1c141a3e3c38382c383c1a153f3e3c302c1b453f1e28383e19383a3c383a12123c1a3f3f3a3f3c34342c341a39283832191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e3c302c2f274f2c1b0a351e283a3c383a12123c1a3f07343c2b3f3f13273f523c19052c243c2c1c141a3e3c38382c383c1507343c483f520a3b052c2c374d2c243c2c1c141a3e3c383824383c1507343c3c123c120a3f1e0434372c2c484f2c1b0a351e283a3c383a12123c1a3f3f3e3f3c34343c3c123c123c3f343c1e1a382e3c2d343c483f3b13273f523c19052c243c2c1c141a3e3c3533071e4e30143f4d382a191635453f4e3b3f1a3f3f0c363c343c1e043c3c363c36343c2e3c3e343c2c1a3e3e3c332c2f274f2c1b0a351e283a3c383a12123c1a3f071e4e3307341a2f3f3f13273f523c19052c243c2c1c141a3e3c38382c383c1507343c3c123c122c3f343c241a3e143c2c343c2b3f3b13273f523c19052c243c2c1c141a3e3c3533071e4e30143c1635523c253b3f3c132f3f1a3f3f0c363c343c2c2f1a2c3e35301a3c3e1a3e163c3b07342c281a3f4d3832191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e3c3e2c2f274f2c1b0a351e283a3c383a12123c1a3f07343c113f3f13273f523c19052c243c2c1c141a3e3c38382c383c1507343c2f3f520a3b052c2c374d2c243c2c1c141a3e3c383824383c1507343c3c123c0d2c3f1e04382e343c373f3913273f523c19052c243c2c1c141a3e3c383834383c1a1a3f38382a191635453f4e3b3f1a3f3f0c363c343c1e043c352c2c274f2c1b0a351e283a3c383a12123c1a3f3f383f3c341e043c372c1b453f1e28383e19383a3c383a12123c1a3f3f3a3f3c341e043c3c363c36243c253015391a3752343c2f3f3913273f523c19052c243c2c1c141a3e3c383834383c1a1a3e28382a191635453f4e3b3f1a3f3f0c363c343c1e043c3e2c2c274f2c1b0a351e283a3c383a12123c1a3f3f383f3c341e043c352c1b453f1e28383e19383a3c383a12123c1a3f3f3a3f3c341e043c3c363c361e3c2530143e2e3c282c2c0934392c3c1c343c113f3913273f523c19052c243c2c1c141a3e3c383834383c1a1539043c322c2c274f2c1b0a351e283a3c383a12123c1a3f3f383f3c34342f381a381635523c253b3f3c132f3f1a3f3f0c363c343c2c2f1a2c3e3e3835343c2b3f3913273f523c19052c243c2c1c141a3e3c383834383c1a15383e3c372c2c274f2c1b0a351e283a3c383a12123c1a3f3f383f3c34342c121a391635523c253b3f3c132f3f1a3f3f0c363c343c2c2f1a2c3e3e383a343f373f3913273f523c19052c243c2c1c141a3e3c383834383c1a153e3e3c3b2c2c274f2c1b0a351e283a3c383a12123c1a3f3f383f3c34342c2c1a3e2835523c253b3f3c132f3f1a3f3f0c363c343c2c2f1a2c3e3e383e343c483f3913273f523c19052c243c2c1c141a3e3c383834383c1a1a3e28382a191635453f4e3b3f1a3f3f0c363c343c1e043c2e2c2c274f2c1b0a351e283a3c383a12123c1a3f3f383f3c341e043c3b2c1b453f1e28383e19383a3c383a12123c1a3f3f3a3f3c341e043c3c363c360e3c2530143e283832191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e3c3c363c361a3c2e3c35343f381a39043c3b2c2f274f2c1b0a351e283a3c383a12123c1a3f071e4e3307341a193f3b13273f523c19052c243c2c1c141a3e3c35301a3c3e1a3e0c3c381a3c143c38343c1a1a3916382a191635453f4e3b3f1a3f3f0c363c343c1e4e33071e0434382c2c274f2c1b0a351e283a3c383a12123c1a3f3f383f3c341e043c3c363c36163c2e3c3a343c121a383e3c2e2c2f274f2c1b0a351e283a3c383a12123c1a3f071e4e3307341a373f520a3b052c2c374d2c243c2c1c141a3e3c383824383c1507343c3c123c0f3c3f1e04383b343c193f3913273f523c19052c243c2c1c141a3e3c383834383c1a1a3c16382a191635453f4e3b3f1a3f3f0c363c343c1e043c372c2c274f2c1b0a351e283a3c383a12123c1a3f3f383f3c341e043c382c1b453f1e28383e19383a3c383a12123c1a3f3f3a3f3c341e043c3c363c364d3c25301538143c3e2c2c484f2c1b0a351e283a3c383a12123c1a3f3f3e3f3c34343c2f3f3b13273f523c19052c243c2c1c141a3e3c35301a3f4d383a191635453f4e3b3f1a3f3f0c363c343c2c2f3c2c3e35301a3e2835523c253b3f3c132f3f1a3f3f0c363c343c2c2f1a2c3e35301a3c3e1a3e083c3b07342c491a3f383832191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e3c372c2f274f2c1b0a351e283a3c383a12123c1a3f07343c373f3f13273f523c19052c243c2c1c141a3e3c38382c383c1507343c193f520a3b052c2c374d2c243c2c1c141a3e3c383824383c1507343c3c123c0f0a3f1e043437343f2f3f39281a333c3f121a3e283832191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e382d343c483f3f13273f523c19052c243c2c1c141a3e3c38382c383c1a15382e3c2e2c1b453f1e28383e19383a3c383a12123c1a3f3f3a3f3c34342c1e1a3f283832191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e382c343c113f3f13273f523c19052c243c2c1c141a3e3c38382c383c1a153e143c322c1b453f1e28383e19383a3c383a12123c1a3f3f3a3f3c34342c241a38163832191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e3834343c2b3f3f13273f523c19052c243c2c1c141a3e3c38382c383c1a153f3e3c372c1b453f1e28383e19383a3c383a12123c1a3f3f3a3f3c34342c341a39163832191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e3c372c2f274f2c1b0a351e283a3c383a12123c1a3f07343f373f3f13273f523c19052c243c2c1c141a3e3c38382c383c1507343c2b3f520a3b052c2c374d2c243c2c1c141a3e3c383824383c1507343c3c123c0e0a3f1e0434372c2c484f2c1b0a351e283a3c383a12123c1a3f3f3e3f3c34343c3c123c0e3c3f343c1e1a382e3c2d343c2b3f3b13273f523c19052c243c2c1c141a3e3c3533071e4e30143f4d382a191635453f4e3b3f1a3f3f0c363c343c1e043c3c363c31343c2e3c3e343c2c1a3e3e3c322c2f274f2c1b0a351e283a3c383a12123c1a3f071e4e3307341a2f3f3f13273f523c19052c243c2c1c141a3e3c38382c383c1507343c3c123c0e2c3f343c241a3e143c2c343f373f3b13273f523c19052c243c2c1c141a3e3c3533071e4e30143c1635523c253b3f3c132f3f1a3f3f0c363c343c2c2f1a2c3e35301a3c3e1a3e4d3c3b07342c281a3f4d3832191635453f4e3b3f1a3f3f0c363c343c2c2c1a2c3e3e3c3e2c2f274f2c1b0a351e283a3c383a12123c1a3f07343c113f3f13273f523c19052c243c2c1c141a3e3c38382c383c1507343c2f3f520a3b052c2c374d2c243c2c1c141a3e3c383824383c1507343c3c123c092c3f1e04382e343c373f3913273f523c19052c243c2c1c141a3e3c383834383c1a1a3f38382a191635453f4e3b3f1a3f3f0c363c343c1e043c352c2c274f2c1b0a351e283a3c383a12123c1a3f3f383f3c341e043c372c1b453f1e28383e19383a3c383a12123c1a3f3f3a3f3c341e043c3c363c31243c25301539143c382c2c484f2c1b0a351e283a3c383a12123c1a3f3f3e3f3c34343c113f3b13273f523c19052c243c2c1c141a3e3c35301a3c16383a191635453f4e3b3f1a3f3f0c363c343c2c2f3c2c3e35301a3f4d35523c253b3f3c132f3f1a3f3f0c363c343c2c2f1a2c3e35301a3c3e1a3e4e3c3b073e043834343c301a3c3e3c282c2c2f4d1c143438363c343c343f373f520a3b052c243c241c144d3c3c3e3c342c2f3f4f2c1b453f1e283a3c3a3a12093c3c3f3f38352c1a3f28382419163a3c3a3a12093c3c3f3f3a352f04343c483f3e35273f520a3b052c243c241c144d3c3c383834193537041e04343e2c2f154d343c373f3e352f3f1a3439453f4e3b04343c373f3e35273f1a2d49391e2e3c3e2c2f154f1e13344f3c3c3c1a3c043c38363c3438343c483f520a3b052c243c241c144d3c3c3e3c3b2c2f3f4f2c1b453f1e283a3c3a3a12093c3c3f3f38352c1a3816382419163a3c3a3a12093c3c3f3f3a352f04343c153f3e35273f520a3b052c243c241c144d3c3c383834193537041e04343e2c2f154d343c373f3e352f3f1a3439453f4e3b04343c373f3e35273f1a2d49391e2e3c3e2c2f154f1e13344f3c3c2c1a3c043c38363c3434343c153f520a3b052c243c241c144d3c3c3e3c2e2c2f3f4f2c1b453f1e283a3c3a3a12093c3c3f3f38352c1a3916382419163a3c3a3a12093c3c3f3f3a352f04343c2b3f3e35273f520a3b052c243c241c144d3c3c383834193537041e04343e2c2f154d343c373f3e352f3f1a3439453f4e3b04343c373f3e35273f1a2d49391e2e3c3e2c2f154f1e13344f3c3c1a1a3c043c38363c3430343c2b3f520a3b052c243c241c144d3c3c3e3c322c2f3f4f2c1b453f1e283a3c3a3a12093c3c3f3f38352c1a3e38382419163a3c3a3a12093c3c3f3f3a352f04343f373f3e35273f520a3b052c243c241c144d3c3c383834193537041e04343e2c2f154d343c373f3e352f3f1a3439453f4e3b04343c373f3e35273f1a2d49391e2e3c3e2c2f154f1e13344f3c3c053f3c3e383e3c4d3c1a3c143c391c143438343c2c093c3c3c1a384d382c1c143c3e1c144d3c3c35304b3c3c3c1a3c16383f1c14343e2c2f3f35392c3c31343f301a380416393e391e393a3e3c29343f300d3c0a3c4e3c053c1a3c4d382c1c143839343c3b3f3c2a12143c2e3c2b2f0a4d3c3e0a0e1a3c3f3c2c2c2c3c3b2c2545313a143c292c2e3f0c373c3c31111a383f3c1345173c38382c1c04343c373c3c3e2c3e3c3c2c2c050c343c3f3f3e3a122c3c0a4d3c2c1b2e3a3c2e3c3c363c34302c2c374d2c2c2f0c383f16143c29243e3c3e3c3f2f2c4d3c343c3c123c1a1a2c3a2e343f3f383f3f4434243f363c343c343c3c123c1a053f3c132f0c2c2c3c4f3c1a3f3f4434243f363c343c343c382c3c1628333c2c093f4434243f2c2c3c4f3c1a3c31343c3f3f383a12163c3835341a2c3b3f0b2f492c2b3f0d3f4f34243f2c18143b3c29243e3c383a2c151a3b3f3617243e3c3c09273c2c3b52343c3c1a3c3e1a3e2e3e343f2c2c3b0f343c3b04331a3734343c3c123c1a3c143c2838341e2c2f3c343c3c1a3c28381a1e17243e3c383b52390a0e1a3c38343c330a3438343c3c1a3c3e1a3e313e343f331a341e343c3c1a3c29243e3b3e3c3c343c381a3c3e1a3e303a124f3c153f3f3c3c09453c2c3752343c3c1a3c3e1a3e2e3e343f2c2c3b0f343c3b04331a3734343c3c123c152c1a3c3e1a3e35381e382c3e3c3c2c2c3f3f3c3e3c3c363c3416382c2c3c3a1a0e1a3c38383c331a341e343c3f3e3c391e39383e3c3c363c343c341a3b3f3f3538382c3e3c3c343c3b3f3435344f3c1a3f3f1b0a4531343c3c1a3c3e1a3e313e3c3c363c340a1c14343e331a3434343c3c1a3c17243e3f3e3c3f2c2f094d2c2f444c3e44283e3c2c37523c163c1a3c3e3c3f2f1a4d3c343c381a3c3e3c3e1c1434381c4d383c343c373f3c252f0f292c2f3c343c3c1a3c2e3c3e3838341c390a0e1a3c3e3c3f1e4d38391e2e38393c163c3e2c3e3c3c343c3b373f383c1a3c0a4d3e343c3f3f3c4e3b3b392c38392c3e3c3e2f2c4d38343c3c1a3c2e4d3c3c39123c3c3e3c3f2c2c3b0c342c381a3c16383f1c04383e343c3f3f3c2a12143c3838391e2c4d3c3e0a0a3f3e0a373c343c30333c3e3c382c2c33053f383c392c3e3c3e2f2c4d3b343c3c1a3c16383f1c04343e1c143439343c381a3c1012093c3c3c4b3c3c3c1a3c4d38391e2c4d3c3e0a0e1a3c163839292c4d3c3c4d3c1a3c3e3c3e2c2c2f0f341a370c343c381a3c1012123c1a3c4f3c1a3c1a3c1638392e0a4d3c3e0a0e1a3c1628333c1a333c343c3c1a3c16383f1c04343e1c143c3f343c370c312c3c3c321a3c3c343c34333c3c0e303c1a0e1a3c163839292c4d3c3c4d3c1a3c3e3c3f363c343c331a343c343c3b3f3f3a12153c2e3c3c2c2c2f0c342c3c1a3c1638381c04343e2c2c3331392c3c313e043c3e2f2c4d3c3c4d3c1a3c3e3c3f312c3c3c321a3c3c343c3f3f3c2a12153c3e3c3f2c2c3b0c342c381a3c16383f1c04343e392c3c313e0a0e283c3e3c3c2c2c050c341a3c1a3c3f3e283c28383f1c153e293c2c0831393c383a1b043c3c343c3b0c342c283e2c3c373c343c3c123c1a2c143c16383f1e2c4d3c343c373f3c4e3b3b392c381a3c3e1a3e3c3e343e343c3b0c342c383e2c3e3c3c343c370f341a3f3f4a34383f363c343c2f0a2f3c343c373f520a3b333f383c1a3c3e1a3e3e3e3438343c373f3c4e24143c16383919383a3c1a1a3b0c2f15121a3c3e1a3e393e3439343c2f35392c373f4f34383f2c19143f3c2e1a3e3c383b56343c374e1e29243e3c3c0a393e043c3c363c3424342c243e2c3e3c3c343c3c123c1a0a143c4d1e382c3e3c3c363c3434341a373f4b34383f363c343c2e2f121a3c143c39331a3430343c301a3c17243e3e3c0a3f3e0a373c343c3f3f3b3a12143c141a3e3c3e3438392c3c1a3c38382c1c14343e363c343c341a2c333c38383c342c30303c2c0e392c3e3c3e342c1e1a3f3e34392c2f2f0c341a34123c1a3c143f3c4d3c343c333f383a12153c143c39363c342c341a2c333c3c0e1a3f4d383c331a343c3e043c3a2f2c4d3e3c163c1a3c3e3c3c363c341e341a2f3f3c132f3f14342c3f1c14343e363c343c2f1a2f3c343c341a3c07243e3c3e3c39392c3b3f4e34383f2c19043f3c2e1a3e3c383b56343c2f4e1e29243e3c3c0a383e043c3a2c2f3f3f3b3e3c3a363c342c343c3f3a3a4f121a3c07243e3c3e3c392f2c4d393e043c39343c244f3c151a1a3c3e1a3e383e343e3f383c1a3c043c3e331a342c343c341a3c07243e3a3c0e1a3c3e1a3e3b3e343e2f2c4d3e343c301a3c17243e3b3e3c3e343c304f3c151a303c1a0e1a3f2e1a3e3f3e343e2c2c33052c2c3335392c3b3f4934383f343c384f3c1a3c1a3f2e3c3e2c254805331a3438343c3c1a3c28383f1e17243e3f3e3c3b343c384f3c1a3c2d3e043c38343c304f3c1a0a1a3c043c38331a34343e0a373c343c28123c1a2c143c16383e1e2828382c3e3c3b2c1b3e3f3c2e1a3e3c3824382c38350a1a2c381a3c39243e3c3835161a2c3b3f4834383f363c343c343c3b0c341a384f3c1a3c1a3c3e3c3f2c2c3b04331a3438343c3f3f4a34383f363c343c2f0a4d392c183e3f3c28383c331a343c2c18043f3c28383c331a343c390a0e1a3f28350e1a2c38123c1a3f3a3f383f3f4a34383f343c3c4f3c1a3f3f4934383f2c183e3f3c2e1a3e3c3e3c3f1c14343f331a343c343c3c1a3c28383f1e17243e3f3e3c3c343c3b0c343c384f3c1a3c2d3e043c3e2c251505343c3b0c342c383e2c3e3c3e2c1b453f292c2f3c343c28123c1a1a143f3e3c3e2c2c334f341a373f3c4e2f3f1a34343f1c16241c343c2c1a3f2e1a3e393e34392f1a2f3c2c19143f3c2835241a2c38123c1a3f3f1b143c3e194e384f3c1a3c303c1a0e1a3f3e3c39331a3430343c301a3f39243e3e3c0a3f3e043c3b363c3424342c243e2c3e3c3b343c28123c1a0a143c4d1e382c3e3c3b363c3434341a373f4b34383f363c343c2e2f121a3c143c39331a3430343c301a3c17243e3e3c0a3f3e0a373c343c2b3f3b3a12143f3e1a3e3c3e343e392c3c1a3f28382c1c143438363c343c341a34333c38383c342c30303c2c0e392c3e3c38342c1e1a3c1434392c2f2f0c341a2c123c1a3c143c1a4d3c343c333f383a12153f3e3c39363c342c341a34333c3c0e1a3f4d383c331a343c3e043c3a2f2c4d3c3c163c1a3f2e3c3b363c341e341a2f3f3c132f3f14342c3f1c14343e363c343c2f1a2f3c343c341a3c07243e3c3e3c39392c3b3f4e34383f2c19043f3c2e1a3e3c383b56343c2f4e1e29243e3c3c0a3e3e043c3a2c2f3f3f3b3e3c3a363c342c343c2b3a3a4f121a3c07243e3c3e3c392f2c4d3f3e043c39343c244f3c151a1a3f2e1a3e383e343e3f383c1a3c043c3e331a342c343c341a3c07243e3a3c0e1a3f2e1a3e3b3e343e2f2c4d3c343c301a3c17243e3b3e3c3e343c304f3c151a31343c3c1a3c28383f1e17243e3f3e3c3c343c3b0c343c384f3c1a3c1a3c38350e1a2c38123c1a3f35392c3b3f4934383f343c384f3c1a3c2d3e043c3b343c373f1b13384f3c1a2c1a3c3e3c3f2c2c3b04331a3438343c3c1a3c2a121a3c29243e3c3c0e1a3c2835523c284d382c3e3c3f2c2c334f341a373f3c4e2f3f1a34343f1c14383f3c13443f4f34383f363c343c341a333f3c2e3c3e193e343e1e2828382c3835241a2c381a3c143c391e17243e3c3e3c3f393c3831343c38123c1a1a31342c341a3c2e3c3c331a3434343c341a3c39243e393e3c3c343c384f3c1a0a1a3c3e3c3e331a3434390a093f3504383e343c3f3e3c391e3e383e3c3f2c1b5252520a19333f383c1a3c2838341914343e343c373f1a2d49521c16382c191638341e2e3438193e343e343c373f1a323c1b1c16382c191638381e2e3439193e343e343c373f1a343c2d1c16382c1916383e1e2e343e1938382d19143c39343c2f04343c37041c04343e2c2c3b4d343c381a3c16382b1c13273f3c253b042c2f050c342c3431343c3c1a3c17243e353e3c3e2c2c374d2c2414383c2a12153f0a373c3c163f3f4e34383f363c343c341a2f3f3c2e3c3e193e34391e2828382c38351e1a2c381a3c043c381e17243e3c3e3c35343c3c4f3c1a3c1a3c3e3c35331a3424393c3831343c3b3f3c383827343c373f3c25270f343c373f354d241f193e383e343c1e123c1a3c153c0a333c343c30143f3e1a3e3f383b491e2e3c3f2f1a4d3e343c373f352524153c043c3e2c2c3b4d342c341a3f3e3c392c2c2f051c1434352c2f3f0c363c343c341a30333c3c0e1a3f043c3c331a342c343c3c1a3f39243e3a3c0e1a3c3e3c3c331a3430343c3c1a3c39243e3e3c4531343c2c123c1a1a143c2e3c3c331a3430343c2c1a3c39243e3e3e3c3c2c2c3c4f3c151a1a3c3e3c38331a3430343c3c1a3c29243e3e3c0e31273c3c1a3c3e3c3f2c14143a2c123e3c1a343e3c1a3039523c34301a3c28344915122c1a3c2834241516363c1a343e3c1a323c521a043c3f2c1a143a2c123e3c1a34390a35493238153e3c3f2c1a14342c123e3c1a2d1a2d1a043c3f2c1514342c123e3c523c1839153e3c3f2c1414342c1239563c49301a3c28344914342e3815391e3c3c3c0e2d3c3e3c3c363c34303a143c3c2c2c3c4f3c1a0a31150a383f3f3545173c38382c1c04343b373c3c173c38382c1c043439373c3c3e2c3e3c3f2c2a44333f383c3e2c3e3c3f2c2c0d333f383c1a3c3e3c3f3839121a3c3e3838393c3831343c3c1a3c2f3e2f3c28383f1c14343a383b45143f3f3f33343c3c1a3f153f30343c3c1a3c2f3c483e043c38343c381a3c15394e3c2e3c392c2c3c4b3c3c451a3c2e3c381c143c392c2c440c38392c1a3c4d382c1c142c3c393c3831383f1e3c3e043c3b2c2f3f0c373c3c1a3c3c092b3c2c3752343c3c123c1a2c153f3c37522c2c3c1a3c1628333c3f121a3f383834192e343b343c2f3f3c253b3b392c3c1c343c34123c1a3c1a3f2f393b3c2c0e153f2e3c3c363c343c341a3c1a3c2e3c3e343c2b0c343c333f3c143c382c2c37053a043c3c363c343c363c341e382c1a3c3e0a4d3c343c3c123c1a3c1a3c2e1a3e3c381631340a3c1a3c38383c331a3430343c3c1a3c29243e3f3e3c3c343c384f3c1a3c1a3c3e3c3f2c2c3b0c331a3434343c3c31080a383f3c4e45173c38382c1c04343b373c3c1a3c16350b525252523c04343a343c3b0f292c2f3c343c3c2c392e3835343c3c3e1b043c3f343c273f3c25273f383a09373f383c1a3f2e3c3f2c2c3b4d331a3434343c281a3c2e3c3e1c17243e393e3c3b2c2c050c343c2b3f3e3a122c19141a3e3c3f3e3e3c2c0a3f3e043c3a2c2c3b0f3e4d383f1c14343a3834383f342c341a3f3c2f3c343c341a3f043c3838353831343c301a3f3a0e143c0a2f3c343c2f3f3c132c143f3e3c3e1c143c38343c190c343c302c1e2c0e1a3c28383f2f0a2f3c343c1e2c383c0e1a3c3e3c3e38384d1a3c3e3c3a38380a1a3f28382c1c142c3c390a0e2c3b0a3c31153c343f3c4e45173c38382c1c043434373c3c1a3c16350b525252523c043437343c3b3f1b4e330c292c2f3c343c3c2c392e3836343c3c3e1b043c3f343c113f3c25273f383a09373f383c1a3e3e3c3f2c2c3b4d331a3434343c1a1a3c2e3c3e1c17243e393e3c342c2c050c343c153f3e3a122c19141a3e3c3f3e3e3c2c0a3f3e043c372c2c3b0f3e4d383f1c1434373834383f342c341a3f3c2f3c343c341a3e143c3838353831343c24382c3e3c382c2c374d343c370c343c1e1a3f153f053e043c39343c2c1a3f2a0d0f341a30382c3e3c382c2c374d341a1e1a3c10121a3f16383e193a121a3f043c361c143c3b2c2c374d1c143c3938353831343c3b3f3c281e382c3e3c36383f3c31343c3c1a3c153f33343c3c1a3e2f3f30343c3c1a3f3e3c3a1c143c391c14343c3839161a3e38383c331a3438343c341a3c38383e193a121a3e3838381c153c07343c153f383a12163c3c4531383f1e3c3e4c1a3f3c4e443f0434383f383c4d153c4d35341a2c382c3e2e383f340a3f3f383a0e143c142c3c343c341a3c39123c394d3b52342c3c1a3c2c2f3c343c38381b043c39343c340e3c3c452c272e3c3f38330a3f3f28383c3e04343c343c330f2c25451a3c3f0e153c3c0e1a3c16382c1c142c3c343c3c311e3c38391b04303c2c2f3f0f341a30163c3e3c3e2c2a44333f383c3e2c3e3c3e2c2c0d333f383c1a3c3e3c3e3839121a3c3e3838393c3831343c3c1a3c153e2f3c28383f1c14343b383b45143f3f3f33343c3c1a3f2f3f30343c3c1a3c153c483e043c38343c381a3c153f2b343c333f3c39123c39043c3e343c2f0c343c333f394f122c333e3c392c2f3f0c373c3c2d3e053c253c3c0e2e3c3e3c3f3f383c1a3c3e3c3e383a281a3c2f3f3a3a1a0e314a3c383f3c4e45173c38382c1c043434373c3c1a3c163b0b341a161a3c283b521e4f0d333f383c1a3c3f3c33342c123e1b043c3f343c113f3c25273f383a09373f383c1a3e3e3c3f2c2c3b4d331a3434343c1a1a3c2e3c3e1c17243e393e3c342c2c050c343c153f3e3a122c19141a3e3c3f3e2f3c2c0a3f3e043c372c2c3b0f3e4d383f1c143437383b45153c143c383f383c1a3c143c36343c2c2c2b2c0e1a3f1a2f3c343c341a3f3a121a3f043c3a383b2831343c301a3f3e3c3b1c100e143c0a2f3c343c341a3f3a121a3f10121a3f3e3c361c143c3b1c143c39383b2831343c3b3f3e161e382c3e3c36383f3c31343c3c1a3c153f33343c3c1a3e2f3f30343c3c1a3f3e3c3a1c143c391c14343c3839161a3e38383c321a3c35343c3c1a3c10121a3e3838351c153c4d343c153f383a12163c3c4531383f1e3c3e042c3f3c2545173c38382c1c04343f373c3c1a3c2e3c3c331a3434343c38123c1a1a153c3e3c3f2c2f3f0c373c3c1a3c3c0e373c3e3c3c383f244f3c1a3c31360a383f1b043c3c363c3438342c34392c3e3c3f343c37353f383c1a3c3f3f4d3a143c3e2c2c2f0f342c34303c2c0e31343c3c1a3c29243e3f3c0e0c3c3e303c2c2f3f0f341a34163c3c373c343c3c1a3c2824382c3e3c3c2c2c3c4b3c351a303c2c0e1a3c2f3c2c3e043c3e2c2f3f0c373c3c31353c3c1a3c283552525252523c4d0e382c383549353f3e2a3c1a3c31343c3b3f3c132c2c250a0e373c3e3c3f2c2c3c4f3c1a3c31331a3f3f0e37283f363c343c3a163a0a112c38123c1a3f3f0e37283f3835333f3c132f0c3a163a0a112c38123c1a3f3f0e37283f3835333f3c132f0c3a163a0a112c38123c1a3c1c3e074d3f3c2545173c38382c1c04343e373c3c3e2c3e3c3c312c3f49343c3b3f351609042f2c2f3c343c3f3f3c29123c183c0a3f3e043c3e2c2c150c343c382c522c38153c3c0e1a3c16382c1c142c3c343c3c312f2c383e1b04303c2c2f3f0f341a3c163c383a0a112c382c193f121a3c383552525252523c07243e393e3c3c2c1b525252524535331a3434343c3f3f393a121a3c3838341c153e143c2e1a3e3c3e383f343c3f3f383a12163c3e3c3f3e0a163c343c3c2c041a382c383c0e133c3e3c39343c30123c1a3c1a3c143c3f1c04343c1c04343e331a343c343c3f3f3c3812382c3e3c3e343c381a3c3f3f3e3a1a0e31383c3c1a3c3e3c3f38304d3f343c3c1a3c17243e3f3c0b343c2c38381b04303c2c2e3f0f341a28163c3e3c3b343c380d3c3c3c4e3c053c1a3f2e3c3f362c3c34330a30243c163c1a3c4d382c2e2c2f3c343c34153c2c0a3f3e043c392c2c2f4f342c1e1a3c14383f3c4d3c1a3c3e3c3b2c2f3f0c341a1a1a3f3f3e133c2e3c38343c382c132c381a3f38382c1c143838343c3b3f383a12153c2e3c3438320e3f343c273f3c2a12143f143c352f0a4d3c3e0a0e1a3c143c391c143c3f1c04343e3f383c1a3c3e3c3b2c2f3f0c343c282c0d0a3b3f3c3e383a3c4d3c1a3f3e3c3b343c270c312c3c3c343c38093c3c3f07321a3c3c343c2f3f3c2a12153f3e3c3f2c2c3b0c342c381a3f16383f1c14343a343c3735392c3c313e043c3b2c2e3f0c373c3c313b2c3c1a3c3835494d0a3c4f3c1a3c1a3c38382c1c153c363a143c3c3e05283c343c3f3f4d33303c331a343c343c3f3f393a122c3e15121a3c3c0e383c3838383e0a453c343c3c123c1a3c1a3c3e1a3e3f39243e3f3c093c3c2c3752340a3f3f383a0e143c2e2c3c343c381a3c39243e393e3c3f2c2c150c343c3b3f393a122c2814383c2c2c2f3f3c283524151a38123c1a3c123c1a3c1f342c341a3c3f3f2f343c3b3f383a12163c3e3c3e3e070a3f3c2545173c38382c1c04343b373c3c1a3f2e3c38331a3430343c2b3f3e3a121a3f2838301c153f2e342c2c1a3c3e3c3f343c341a3c053e4e3c2e383c343c2c2c282e3c3b2c2f3f0c373c3c1a3c3c0e303c3e3c3f343c34093c3c3c4b3c3c3c31381a3c1a3f3e3c3e331a343c343c1e1a3f29243e3c3838393e041a3f3c25451a3c38350e4d1a3c4f3c1a3c3e2c3e3c3c363c3434341a3b3b392c3c1a3c3e4d3c393828333c3e3c3f383f3c31343c3c31483c163f3c25453e2c38354d143c38093c3c3f3f3c2538333c38354d143c382c373828333c3c373c2c1814343c2e4d3c3c38383f1e2c4d3c2c1814343c2f3c162f2c4d3c2c1c142b3c2f3c1f2c1c142b3c2835244d1a3c4f3c1a3c173c38382c1c04343f373c3f3f0e37283f2c1a3c4e3c0a3c1a3c28383c331a34302c1f142b3c2e3c3f2c2c050c38304d3f2c1f142a3c28383c321a3c3c343c3b3f383a12163c3f3e3f3c1638182e2c2f3c383f1e3c3e4d3a0a112c3b3f0e37283f38352f3f35153e3c3c14343f331a343c2c1f2e2b3c2e3c3f331a343c2c1f3e2b3c2f3f39343c3b3f563c3f0c331a343c2c2c3c2c520a3b3f35153e253c16353c111a3b3f1015492c2b3f0d3f0e37283f383b3c153c283a0a112c382c112c373f0e37283f343c382c113c373f4537343f383f093f4537343f2c2429193c39243e3c38350a161a3b3f08341e3f383f122c35383549161a382c3a4d3549161a3b3f0d334d3c331a343c2c1b142e3c28353c150a382c3a153c1e2c243e293c2f3c1f2c2404293c28383c321a3c3c2c2414293c28383c331a343c2c243e293c28350e4d1a3c4f3c1a3f3f1437303f2c1f3c04363c343c331a343c2c243e293c283a38142c382c3a153c1e2c273e293c2f3c1f2c273e293c28352c4c1a3c4f3c1a3f3f1637303f2c1b04343c2f3c1c383f053f1037303f383f093f1037303f2c1829253c39243e3c383a24160a3b3f1734163f383f122c35383a1a160a382c3a4d3a1a160a3b3f1233303c331a343c2c1c14293c2f3c2a331a343c2c1c3e293c283a28142c382c3a153c1e2c1f3e293c2f3c1f2c1f3e293c2835494f3c3c4f3c1a3f3f0e37303f2c2704373c2f3c1c383f053f0837303f383f093f0837303f2c1807273c39243e3c383a49160a3b3f0d34163f383f122c3538353c160a382c3a4d3534160a3b3f0f091a3c320a383c2c1e3e293c28352c4d0a3c4f3c1a3f3f0737303f383f381c2c1e3e293c283a0e142c382c3a153c1e2c1914293c2f3c1f2c183e293c2836081a343e3c0a3c284e3c1a3f3f4f37303f2c1b17293c39243e3c383512160a382c382f0d3f4f37303f2c1f2e373c2f3c1c383f053f5637303f383f093f5637303f2c1e29193c39243e3c383549160a3b3f04341e3f383f122c35383a3c113c382c3a4d3a3c113c3b3f0833453c331a343c2c243e283c28352c150a382c3a153c1e2c2414283c2f3c1f2c2414283c283a30492c3c4f3c1a3f3f14372c3f2c1914353c2f3c1c383f053f16372c3f383f093f16372c3f2c1b29143c39243e3c383a2c113c3b3f49341e3f383f122c35383a24113c382c3a4d3a24113c3b3f0732123c331a343c2c2714283c283a34143c382c3a153c1e2c1c3e283c2f3c1f2c1c3e283c28351a4b0a3c4f3c1a3f3f12372c3f2c273e343c2f3c1c383f053f0c372c3f383f093f0c372c3f2c19290e3c39243e3c383a12113c3b3f10341a3f383f122c35383a0a113c382c3a4d3a0a113c3b3f04324d3c331a343c2c1f3e283c283a1a143c382c3a153c1e2c1f14283c2f3c1f2c1f14283c283a454a1a3c4f3c1a3f3f08372c3f2c1c14343c2f3c1c383f053f0a372c3f383f093f0a372c3f2c18390b3c39243e3c38353c113c3b3f0e341a3f383f122c35383534113c382c3a4d3534113c3b3f152d383c331a343c2c1e14283c283a49143c382c3a153c1e2c193e283c2f3c1f2c193e283c283a12451a3c4f3c1a3f3f4d372c3f2c1e3e343c2f3c1c383f053f4f372c3f383f093f49372c3f2c2739453c39243e3c383524113c3b3f0b322c3c331a343c2c183e283c28350e483c3c4f3c1a3f3f4f372c3f2c1814353c2f3c1c383f053f4b372c3f383f093f45372c3f2c1f29453c39243e3c383512113c3b3f0532243c331a343c2c1b3e283c28354d481a3c4f3c1a3f3f4b372c3f2c1b3e353c2f3c1c383f053f56372c3f383f093f1a37283f382d123f2c1b14283c283a0a4b3c3c4f3c1a3f3f56372c3f2c1b14353c2f3c1c383f053f1437283f383f093f1637283f382d123f2c24142b3c2835304b2c3c4f3c1a3f3f1437283f2c243e343c2f3c1c383f053f1037283f383f093f1037283f2c1e07073c39243e3c383a24112c3b3f04341a3f383f122c35383a1a112c382c3a4d3a1a112c3b3f052d2c3c331a343c2c1c3e2b3c28352c143c382c3a153c1e2c183e343c283a12112c384f3c1a3f3f48341a3f2c183e343c29243e3c383512143c382c340a093f4a341a3f2c182e343c2e1a3e3c3f3e2c3c16350a143c3b3f4a341a3f331a343c2c1b2e343c2f3c173e043c3c2c1b3e343c2e1a3e3c3e1a3e3c3e343c331a343c343c3c2c071a3831380a3c1a3c3e3c3f363c343c341a3c4f3c1a3c1a3c3f39323c2c0e043c3e3c3c363c343c3a143c3c363c343c343c3c2c1e4d383e193a121c343c3c123c1a3c1a3c3f3f2c2c2c374d1c15121a3c3e1a3e3c3e3c3c3835333f3c132f0c3a1a0e293c3e3c3c343c3c123c1a3f3f3c2a0e143c39243e3c3e3c3c3e4f453f3c13451a3c3835244d1a3c4f3c1a3c1a3c3838341c14383f3c4d3c1a3c2f3f2c343c37313f383c1a3c2e3c3e38351e123c1a3c382c3e3c3f343c342c19041a3e3c3f3e173c2c0e1a3c16383f1c14383e393c38313e043c3c2c271a3f1c153c363a143c3f3837383e343c38123c1a3c382c3e3c3f3837283e343c382c193e3c3f363c343c343c382c1e0539453c2c0e1a3c3c0e0c3c3e3c3c363c343c3a143c3c363c343c343c3c2c1e4d383e193a121c343c3c123c1a3c1c343c3c123c1a3c1a3c3f3f2c2c2c374d1c151231393c3c1a3c3e3c3c363c343c382d0e3f3e4f343f3c4e443f3e3f3c35341a3b3f4d2d453c331a343c343c3b3f522d453c331a343c343c3c2c161a38143c1638331c153f1b341a333f3c39243e3e3e3c39343c344f3c1a2c1a3c043c3e331a343c343c381a3c4d38301c143c3c343c373f3c2a122c2c17243e3f3e3c3f2c1c043c3c29243e3c3e3c3f2c1e043c3c283839383c243c3e4e343f3c4e45173c38382c1c04343f373c3c1a3c283a0a112c384f3c1a3c1a3c283a4d112c38123c1a3c143c17243e3f3e3c3f343c341a3c38383e193a124f3c1a1a1a3c2e3439363c3438342c3c1a3c041a3e3e3e383e3c4d3c1a3c3e3c3e2f1a2f3c343c302c142c341a3c28382c1c142c3c3f283a0a112c382c193e3c3c382d493f343c301a3c3838381c14343c331a3438393c38313e0a0e1a3c3e3c3c2c1c39293c39243e3c3e3c3c363c3434383f27353f383c1a3c3e1a3e3e3f39283c1a0e1a3c3c0e383c383b523e56343b3c2c0d52340a3f3f383a0e1438042c3c343c341a3c39243e3c3e3c392c243c381e2e382b343c193f3c132c153b1a333c343f2f3f3f3824382c3e3c33383c113f3c280e382c3e3c29343c4d2c2c39243e3e3e3c3e343f333f3e3a0d3f3c2f3e1b3c143c33383a0a1a3c141a3e3c3f3e163c29243e3c3c0e1a3c4d3a0a3c2538143c4d382c2f0a2f3c343c381a3c4d381a2f1a2f52343c34123c1a3c3b343c3c31331a343c3e043c292c2f3f0c373c3c3b3c163c3e2c3c373c3c163c3e2c3c373c343c1a1a3b3a120e3c3c3c323f2c3c3f3c0a34383f2c0e1a3c2e3c3e363c343c331a343c393c2c31343c381a3c141a3e3c39243e3c3e3c3a2c2e3c2c2d2e3835343c341a3c141a3e3c3e342d2c2c2f0c331a343c343c451a3f07243e3c3c0a393e043c33383816333c143c332c2c3c2c0e2c38123c1a3c153f043c3e343c34123c1a3c14394d38381c17243e3c3e3c2d343c1e4f3c1a3c303c1a0e1a393f3f37343f2b3b1e1a4d3f343c341a393f3f3c343c0a2c1f3e3c3e363c343c38362c3f331a343c393c3831343c34123c1a3c153b043c38343f270c341a2c153f0a333c3c163c1a3f2e3c35292c4d3c343c273f1a3f3c1a3f041a3e3c3f3f322f2c4d3c343c193f3f3a12153f0a0a3f3e0a0e1a3914342d2c2c3f363f383c392c3e3c2d2c2c3f30343c2c1a3f4d44042f2c2f3c343c193f3f3a0e143f041a3e3c3e382c343c341a3c141a3e3c3e342f2c2c2f0c331a343c343f381a3839243e3c3e3c2d2c2c3b0f342c45303c2c0e31343c443f3c380a381b4d383c3f2e3c3a2c293c2c2d2c0e15382c333c343c341a3c141a3e3c3e342c2c2c2f0c331a343c343c443f3c3812382c3e3c2c343f384f3c1a3c1a394d383f1c04382d393c38313e043c2c343c164f3c1a3c313c163c1a3f3e3c352f1a2f3c343c273f303f3c44342c451a3c143c3e363c343c34153f3f3f3a12143f07243e3c3e3c2c343c454f3c1a3c303c2c0e1a3e053f373f35443f1b0a281a3e4d383c383c0e0e3c3c3c31342f3f3f3c3e382d2c2c3c15381a333c343c2c1a3f4d1e382c3c373c343c451a38381e382c3e3c2d342f38303c2c0e1a3c143c3e363c343c34153f3f3f3a124f3c1a3c1a383e3c36331a343c2c2c3c15382e3c31383c161a3816383f1c14342e292c2f3c343c4515383c0a3f3e043c31343f342c3e044d3c3c3835523c3824382c383b52342f3c303c2c0e1a3e043c2e383c0e0e3c3c3c15383c0e1a3f4d38381c043435363c343c342c451a3c143c3e363c343c3415153f3f3a124f3c1a3c1a3a3e3c2d331a343c343f3b3f3c2a1215390a0a3f3e0a0e1a3c141a3e3c3e38353e043c25343c1e2c0f2c3831343f2f3f3c2a12153b3c0a3f3e0a0e310d2c343f3c2545173c38382c1c043436373c3c1a3e2c3752343c3c382c3e3c3e3836383e342c3c3e2c3e3c3f3f383c1a3e143c3c383a161a3c043c36363c343c331a3c3c343c121a3c3f3f12393c3831343c121a3c3f3e113c2e3c39343c12123c1a3c4f3c3c3c1a3e143c3c38381231343c1a1a3e153f25343c122c3e15121a3f3e3c3c38381a4f3c1a3c1a3f2e3c3c38391a4f3c1a3c1a3e143c3c38391e1a3f143c3638393c1a3e153c363a143c36343c3c2c2e043c35343c122c2b043c36383c121c343c3c2c270a0a3f3e043c3e38363c3e342c3c3e2c3e3c3f3f383c1a3e143c3c383a161a3c043c36363c343c331a3c3c343c121a3c3f3f12393c3831343c121a3c3f3e113c2e3c39343c12123c1a3c4f3c3c3c1a3e143c3c38381231343c1a1a3e153f25343c122c3e15121a3f3e3c3c38381a4f3c1a3c1a3f2e3c3c38391a4f3c1a3c1a3e143c3c38391e1a3f143c3638393c1a3e153c363a143c36343c3c2c2e043c35343c122c2b043c36383c121c343c3c2c270a0e4f3c1a3c1a3e16382c1c142c3c3e442c3b3c2c0d52340a3f3f383a0e143b3e2c3c343c341a3c39243e3c3e3c392c243c381e2e382a3c4d3c1a3b2838382f1a2f3c343c4d2c3e28383f2e0a2f3c343f2c1a392f3f3c331a3434343c341a3b3838341c16383f3836243e343c4d2c1f143c3e363c343c38362c3f331a343c3e043c392c1f3c3f1e2e34392c2f3f353f383c1a3c2e3c392c2e3f3a3f35451a3c141a3e3c3c281a3c3c0e4f3c1a3c31343f2f3f383a12163c3c45313c163c3e2c3c373c3c163c3e2c3c373c343c1a1a3b2a120e3c3c3c323f2c3c3f3c0a34383f2c0e1a3c2e3c3e363c343c331a343c393c2c31343c381a3c141a3e3c39243e3c3e3c3a2c2e3c2c362e382d343c341a3c141a3e3c3e342c2c2c3b0c331a343c343f3c1a3907123c3c3c0a393e043c33383816333c143c332c2c3c2c3e044d3c3c3e382d343c341a3c141a3e3c3e342c2c2c3b0c331a343c343f3c1a3907123c3c3c0a3e3e043c303838161a3b162b04392c381a3c143c3038383c1a393f3f08343c34123c1a3c2c0d3c384f3c1a3c303c2c0e1a3c141a3e3c3e3825343c2c1a3f4f12143f3e382f3c4d3c3e2c3e3c3b343f3b33392c3c1a3f163a3c383e3c2f313c3c3c38382f3b392c3c1a3828383f1c14382f393c38313e043c32341a443f3c3812382c3c333c343c443f3c380a1a3f3e3c2f294e373b3f383c1a3828383f1c04342f312c3c3c342f3c1a3c143c3e363c343c3415373f3c2a124f3c1a3c1a38143c2c321a3c3c343c443f3c2a0e15390a0a3f3e0a0e1a394d383c293c2f522c2c3c3b343c273f303f3c0d3e04382e3c4d3c1a3c143c3e363c343c34153f3f3c2a124f3c1a3c1a394d383c2e1a2f3c343f3c1a3817123c3c3e3c2d2c2c3b0f342c45303c2c0e31343f3c1a3e29123c3c3c0e3e2c3e3c38343f3b3a3f383c1a3f16380a383e161539043c3e343c34123c1a3c143838383f1c17243e3c3e3c2c343c454b3c3c3c303c2c0e1a3e053f373f35443f1b0a281a3e4d383c383c0e0e3c3c3c31342f3f3f3c3e382d2c2c3c15380a333c343c2c1a382824333c2c373c343c451a38381e382c3e3c2d342f34303c2c0e1a3c143c3e363c343c34153f3f3c2a124f3c1a3c1a383e3c36321a3c3c2c2c3c1538143c31383c161a384d383f1c143429292c2f3c343c4515383c0a3f3e043c31343f302c3e044d3c3c3835523c3824382c383b52342f3c303c2c0e1a3e043c29383c0e0e3c3c3c15383c0e1a3828383f1c04342f312c3c3c342c451a3c143c3e363c343c3415153f3c2a124f3c1a3c1a3a3e3c2d321a3c3c343f373f3c2a1215390a0a3c3e0a3c31343f1e1a3c141a3e3c3f3f483e043c2b2c2c3b0c342f28303c3c0e3c3e4b283e3c2c3b52340a3f3f383a0e143e142c3c343c163e1b043c3c3f383c1a3c153e123c14383c3c163c1a3c2c2f3c343c121a3c3f3f0d343c301a3e141a3e3c39243c3c3e3c36343c3c2c1c3c0a3f3e043c36343c3c2c0d2c381a3c043c36363c343c331a3c3c343c121a3c3f3f363e043c34343c122c303e3c36383c121c343c2c1a3c3f3f34321a3c3c343c281a3c3f3c49321a3c3c343c121a3c3f3c4e343c241a3e153c0a343c122c3e15121a3e143c3c38380e1a3f043c3638393c1a3e153c363a143c3c383a1e303c2c0e1a3c153e133c14383c3c163c1a3c2c2f3c343c121a3c3f3f0d343c301a3e141a3e3c39243c3c3e3c36343c3c2c1c3c0a3f3e043c36343c3c2c0d2c381a3c043c36363c343c331a3c3c343c121a3c3f3f363e043c34343c122c303e3c36383c121c343c2c1a3c3f3f34321a3c3c343c281a3c3f3c49321a3c3c343c121a3c3f3c4e343c241a3e153c0a343c122c3e15121a3e143c3c38380e1a3f043c3638393c1a3e153c363a143c3c383a1e31331a343c343c0d3f383a12163c3c0e343c3e3c3c363c343c2f2c0e4e3c2c3b52340a3f3f383a0e143c142c3c343c341a3c3e1a3e3c39243e3e3e3c3e343c34123c1a1a1a3c28383e193a124f3c1a1a1a3c141a3e3e3e383c343c373f383a12163c3e3c3c3e0a123c343c3f3f10341a3f383a2c313e1a3c1a3c383a1a143c382c273c0e373c3e3c3c343c382c0f1a3431350a383f1b043c3f363c343c382d123e342c341a3c3e3c3f363c343c331a3438343c3c1a3c17243e3c3c0b05390a38361b04303c2c1f3c381c043431373c3c1a3e043c36331a36163f3e3c31343c384f3c0c1a38343c093f3317243e243e3c31343c093f143c3b0c343c093f163c3b0c343c093f493c3f0c341a382c3514342d363c343c341a124f3c122c3f343c0e1a3e163a2c3c4f124f3c123c3f343c382c382e382f343c093f4d3c3f0c38381e1539143c312c283f0f38381e15393e3c312c293f0c38381e15392e3c312c2e3f0c38381e15383e303c2c2f3f0f341a38163c3e3c313c13451a3c1a2f3c343c381a3c053e153c14343e383a161a3e043c3f363c343c331a3f49343c381a3c153f12343c4d1a3c2f3f25343c382c3e15121a3c2e3c3e3838121a393e3c3f383b1e1a3c2f3c363a143c31343c342c2e39243e193e3c31343c342c3239243e1e3e3c3f343c342c33043c2f343c382c303e3c3f383c121c343c381a3c153f31343c491a3c2f3f25343c382c3e15121a3c153f13393c3831343c381a3c053e1a3c14343e383a161a3e043c3f363c343c331a3f49343c381a3c153f12343c4d1a3c2f3f25343c382c3e15121a3c2e3c3e3838121a393e3c3f383b1e1a3c2f3c363a143c31343c342c2e39243e193e3c31343c342c3239243e1e3e3c3f343c342c33043c2f343c382c303e3c3f383c121c343c381a3c153f31343c491a3c2f3f25343c382c3e15121a3c153f133e07243e353e3c3f2c2f3f0c373c3c1a3e2e3c34363c343c331a343c343c2f3f1a3c2f053415373f3e252415384d383c342c3b3f3c3e383e3c4d3c1a3c1438363c163c3e2c3c373c3c163c1a3c2838382f1a4d3c343c3c1a3e4d3a123f3a122c331628333c38383c342c2c3e2c3c373c3c163c3e2c3c373c3c163c1a3e4d35493c3a121a3c2a120e3c3c3c323f2c383c3f3c303b3e2c0e1a3c2838392f1a4d35343c193f1a303c3c343c3c2c342f3f323f383c1a3e4d382c1c143c3c3836303e343f3c1a3e041a3e383f39353c2c0a3e3e043c3b343c28123c1a3f3f3f35344f3c1a3f3f3c3e383c393c2431343c3b3f3c4d24333f1a0e392c3e3c3c343c093f0c3c2f0c3839273b392c241a3f4d3a3c0a3c3c1a3c3f3c153838483b392c241a3e4d382c1c143c3c3836303e343f3c1a3e041a3e383f39353c2c0a3c3e0a3c31343c0a2c3e28383c343c4d2c3e2a093a392c2c3e2c3e3c30383c16382c3e3c33383c16333c2c0e1a393f3c37342c301a3c3f3c15342c341a3c0a2f3c343c0a2c392e1a3e3c3e3c3e2f1a2f3c343c3c2c372f121a393e3c36343c0a2c3e28383f2e050e153c1a0a343e043c3a2c2c384b3c3c3c303f1a0e1a3c143c33383c4d123c1a3f35392c281a3c3f3c113a143c3a2c2c384b3c3c3c1a392e3c36343c4d2c3e28383f2e050e153c1a0a3a3e043c3c383e381a393f3c33363c343c2f1a2f3c343c3c2c372f121a393e3c36343c0a2c3e28383f2e050e153c1a0a3a3e043c3c383e381a392f3c33363c343c2f1a2f3c343c3c2c372f121a3f16383f321a3c3c343c4d1a3e143c33383c113f3c280e1f342c34303f1a0e1a3f2e3c3b363c343c2c2c2f04331a343c2c2c3c153c3c0a393e043c36343c3b3f3c1611042f2c2f3c2c2c3c153c143c29343c3b3f3c16241a3e044d3c184d383c2f4e3b042f2c4d3b3e043c31343c492c2c39243e3e3e3c312c2f3f0c343c093f3e3a122c0c3c38153c1a373c343c3b3b392c3c1a3c2e3c311c144d3c194d383f2e0a4d3c3c4d3c3e2c3e3c31343c492c1f39243e3e3e3c3e343c093f3e3a122c2a4d28333c3e3c352c24393c3c3e3c3e363c343c363c343c3838483b392c3c1a3c153e2b3c2c0a3f3e0a0e1a3e043c3238383c4f3c1a1a1a3c141a3e3c3e3c31363c34341c4d383e192e343e343f3c2c3e284d382c3e3c31343f3c2c1f39243e3e3e3c312c2c150c2c2c3c1a3c100e2c130a34153c043c2c383a0a153f3e3c3238383c153b3e303c2c2e3f0f341a34163c3e3c3e343c2c4f3c153c1a3c143c39331a3424343c341a3b39243e3e3c333c3c163c1a3c1638241c143c3e2c2f3f0c383b0e143c4d28333c3e3c3e363c3424363c343c343c34123c1a1a123c1a3f35392c3c1a3c1638241c153e2b3c2e3c3e2c2c150c3837283f393c38313e043c3e2c2e3f0c373c3c1a3c4d383f1e0a4d3f3e043c31343c492c2c39243e3c3e3c312c2c150c343c0e2c0c3c381c343c0e1a3e041a3e3e39243e383c0e1a3e043c31363c342c331a34343c4d3c3e2c3e3c31343c492c1f39243e3c3e3c312c2c150c343c0e2c2a4d28333c3e3c3c343c093f0c3c2f0c3839273b392c3c1a3c3f3c15343c0e123c1a1a123c1a3f35392c3c1a3c3f3c113a143c312c2c150c3837283f393c38313e043c2e2f2c4d39343c0e1a39153f0e331a343c343c093f3e3a121a3e053f1f2f2c4d39343c281a3f2e1a3e3c3838381e17243e3c38383c342c3c303c1a0e392c3c373c343c3c1a3e4d3a123f3a122c331628333c3c3752343c193f1a3f3c1a3c3f3c15341a342c291a2f3c343c16123c1a3c143c043c31363c36163f3824382c3e3c34343c161a3e4d3a163f3a122c151a381a3e2e1a3e3c3e38393e043c37343c333f3f3a124f3c1a3c1a3c043c3e331a343c343c2f3f3c2a12303c2c0e1a382f3c372f2e3c382f2534333c2e3c3e343c0e123c133f35392c381a3e041a3e153c38143c143c31363c363c3c2824382c3e3c2d343c093f153c3b0c343c093f1a3c3b0c3834243f343c0e123c122c3f342c3431343c0e1a3c1638381c17243e153c381a3c143c38331a343c2c2c3c31342c2c1a3c3f3c113a1a0a3f3e0a0e1a3f38281a3e041a3e153c38143c143c2d363c343c2f13373b3f383c1a3e041a3e1a3c381a3c1624382c3e3c2d343c093f153c3b0c343c093f1a3c3b0c3834243f343c0e123c122c3f342c3431343c0e1a3c1638381c17243e153c381a3c143c38331a343c3e0a373c343c0e123c15053f3c380a333c3c373c343c3c1a3e4d3a123f3a122c363828382c3e3c3c383e381a3e041a3e193824333c2c0e1a3f2e3c3b363c343c2c2c2f04331a343c2c2c3c153c3c0a393e0a333c343c3c2c372f121a3e041a3e3538383c293c4d3f3c163c1a3c3e3c312c1c1a381c153c122f2c2f3c343c193f1a3f3c1a3c3f3c15383849333c2c0e1a3f2e3c3b363c343c2c2c2f04331a343c2c2c3c153c3c0a383e043c37363c343c343c0e123c0c2c382f1a2f3c343c1a1a3e2e3c312c1c2c381c153e3a3c2c0e1a3c3f3c15342c341a3e2e3c37363c343c341a333f3f3a124f3c1a3c1a3c043c3e331a343c343c0e1a3e041a3e3538383f1c07243e353c0a3c3e0a3c31343c12153c143c34363c343c343c16123c1a3f35392c301a3f2e3c3b363c343c2c2c2f04331a343c2c2c3c153c3c0a3f3e0a373c343c0d3b392c3f3f3c2e38383c4d3c1a3e153c37343c2f33392c383e2c3e3c3c343c093f0c3c2f0c383e153b3f383c1a3c3f3c15343c121a3f3f3e053c2e1a3e3c3824333c2c0e1a3f2e3c3b363c343c2c2c2f04331a343c2c2c3c153c3c0a393e043c3c383e281c343c2f3f3c2a12153f3c0a3c3e0a3c312c2c38153c3e3c2d363c343c343c0e123c122c3f2f1a4d3c2c2c3c153c3e3c312c2c3c4f3c153c1a382e3c2d363c343c343c0e123c122c3f343c093f383a122c312e3c31363c342c3f383c1a3f2e3c3b363c343c2c2c2f04331a343c393c38312c2c38153c3c0e1a383f3c363a143c33383c121c343c0a2c3e15121a39153c363a143c2f383c121c343c452c352e3c312c1f3c381c142c3c343c3c2d3e043c36342c3431343c3b3f3c2a12153c2c0a3c3e0a3c31350a3c1a3c3e3c3f3836243f383e1e1a3c2f3e2a3c2e1a3e3c3e383f343c3c2c111a381a3c29243e3c3c0e4d3c2c3b52340a3f3f383a0e143c142c3c343c341a3c3e1a3e3c39243e3e3e3c3e343c34123c1a1a1a3c2a124f3c1a1a1a3c141a3e3e3e383c343c373f383a12163c3e3c3c3e0a123c343c3f3f14341a3f383a2c313e1a3c1a3c383a2c143c382c273c0b3f3c2c383a1b04303c2c2f3f0f341a2c163c3e3c3c3837243f363c343c342c283e1b043c3e363c343c343c3c123c1a3f0f341a333f52525252520a19373f383c1a3c4d383f193c0a3f3e4d3b523e0434392c2c381a3c050e153c043c3f363c343c342c241a3c3e1a3e3c3e3835343c2b3f331624381b4d383c3f2e3c3c363c343c3e043c393837493f341a1a382c3e3c3b2c2927353f383c1a3c3f3e103c2f1231343c2f3f3329243e3f3e3c3c343c2f3f3e3a121a3e3e3c382c2c2f0c383f49143f2f3e113c143c3b383f4d1a3c2e3c3c363c343c343c241a3f4f090c331a343c343c341a3c043c3c363c343c1c17243e3c3e3c382c2f3f0c373c3c2d3e053c253c3c0e113c2c3b52343c38123c1a3c2c520a373f3a352f3f3a3528153c143c3c343c38123c1a3c4f3c1a2c1a3c3e3c3e321a3c3c3e48452c3c2c0d52340a3f3f0e3c2f0f341a0e163c3e3c31343c124f3c0c2c38343c0e1a3c29243e0c3c2c1a3e4d384f331a3712343c0e1a3e4d3a343c2a121a3e4d3a2c3c2a121a3e4d35123c3a12143c2f3c18341a45123c1a3c143e17243e153c381a3e043c362c273c391c17243e1a3c381a3c2f3c2f342f381a3e4d35243c3a122c382e3832343c093f043c3f0c383f3815393e3c312c29150c383f3815392e3c312c2e150c383f3815383e303c2c2f3f0f341a38163c3e3c313c13451a3c1a2f3c343c381a3c053e123c14343e383a161a3e043c3f363c343c331a3f49343c381a3c153f12343c4d1a3c2f3c0a343c382c3e15121a3c2e3c3e3838121a393e3c3f38393c1a3c2f3c363a143c31343c342c2e39123c19043c31343c342c3239123c19143c3f343c342c33043c2f343c382c303e3c3f383c121c343c381a3c153f31343c491a3c2f3c0a343c382c3e15121a3c153f13393c3831343c381a3c053e133c14343e383a161a3e043c3f363c343c331a3f49343c381a3c153f12343c4d1a3c2f3c0a343c382c3e15121a3c2e3c3e3838121a393e3c3f38393c1a3c2f3c363a143c31343c342c2e39123c19043c31343c342c3239123c19143c3f343c342c33043c2f343c382c303e3c3f383c121c343c381a3c153f31343c491a3c2f3c0a343c382c3e15121a3c153f133e07243e373e3c3f2c2f3f0c373c3c1a3e2e3c34363c343c331a343c343c2f3f1a3c2f053415373f3e252415384d383c342c3b3f3c3e383e3c4d3c1a3c1438363c163c3e2c3c373c3c163c1a3c2838382f1a4d3c343c3c1a3e4d3a123f3a122c302828333c38383c342c2c3e2c3c373c3c163c3e2c3c373c3c163c1a3e4d35493c3a121a3c2a120e3c3c3c323f2c383c3f3c303b3e2c0e1a3c2838392f1a4d35343c193f1a303c3c343c3c2c35053f383f383c1a3e4d38241c143c3c3836123e343f3c1a3e040a3c3a3f3e153c2c0a3e3e043c3b343c28123c1a3f3f3f35344f3c1a3f3f3c3e383c393c2431343c3b3f3c4d24333f1a0e392c3e3c3c343c093f0c3c2f0c38393b3b392c241a3f4d3a3c0a3c3c1a3c3f3c1b38382f3b392c241a3e4d38241c143c3c3836123e343f3c1a3e040a3c3a3f3e153c2c0a3c3e0a3c31343c0a2c3e28383c343c4d2c3e2a093a392c2c3e2c3e3c30383c16382c3e3c33383c16333c2c0e1a393f3c37342c301a3c3f3c1b342c341a3c0a2f3c343c053f3c3f3c31312c3c3c343c373f520a3b052f1a2f3c343c3c2c3415121a393e3c36343c0a2c3e28383f2e050e153c1a0a343e043c3a2c2c384b3c3c3c303f1a0e1a3928383c383c0e093c3c3c1a3c1635523c253b35392c281a3c3f3c143a143c3a2c2c384b3c3c3c1a392e3c36343c4d2c3e28383f2e050e153c1a0a3a3e043c3c383f443f520a3b05343c053f3c3f3c31312c3c3c2f1a2f3c343c3c2c3415121a393e3c36343c0a2c3e28383f2e050e153c1a0a3a3e043c3c383f443f520a3b05343c4c3f3c3f3c31312c3c3c2f1a2f3c343c3c2c3415121a3f16383f321a3c3c343c4d1a3e143c33383c113f3c280e1f342c34303f1a0e1a3f2e3c3b363c343c2c2c2f04331a343c2c2c3c153c3c0a393e043c36343c3b3f3c1611042f2c2f3c2c2c3c153c143c29343c3b3f3c16241a3e044d3c184d383c2f4e3b042f2c4d3b3e043c31343c492c2c39243e383e3c312c2f150c343c093f383a122c0c3c38153c1a373c343c3b3b392c3c1a3c2e3c311c144d3c194d383f2e0a4d3c3c4d3c3e2c3e3c31343c492c1f17243e383e3c3e343c093f383a122c2a4d28333c3e3c352c24393c3c3e3c3e363c343c313c3c3c38382f3b392c3c1a3c153e253c2c0a3f3e0a0e1a3e043c3238383c4f3c153c1a3c141a3e3c3e3c31363c342c1c04343e343f3c2c3e284d382c3e3c31343f3c2c1f17243e383e3c312c2f3f0c2c2c3c1a3c100e2c0d1a34153c043c2c383a49153f3e3c3238383c153b3e303c2c2e3f0f341a34163c3e3c3e343c2c4f3c153c1a3c143c39331a3424343c341a3b39243e3e3c333c3c163c1a3c1638241c143c3e2c2f3f0c383b0e143c4d28333c3e3c3e363c3424312c3c3c343c34123c1a1a093c3c3f35392c3c1a3c1638241c153e253c2e3c3e2c2c150c38371e3f393c38313e043c3e2c2e3f0c373c3c1a3c4d383f1e0a4d3f3e043c31343c492c2c39243e3e3e3c312c2f3f0c343c093f3e3a122c0c3c381c343c0e1a3e041a3e3839243e3a3c0e1a3e043c31363c3424331a342c3c4d3c3e2c3e3c31343c492c1f17243e3e3e3c312c2f3f0c343c093f3e3a122c2a4d28333c3e3c3c343c093f0c3c2f0c38393b3b392c3c1a3c3f3c1b2c1b453f1e2e3c31363c342c312c3c3c2f0a4d3c343c3c2c3415121a3e4d382c1c153e253c2c0a3f3e0a0e1a381628333c043c31343c492c1f17243e3e3e3c312c2f3f0c343c093f3e3a122c2a4d28333c043c3b343c28123c1a3f3f3f35344f3c1a3f3f3c3e383c393c34313c4d3c3e2c3e3c3c343c093f0c3c2f0c38393b3b392c3c3e1b043c352c243c2c343c3c2c3504343e38382c382c3e3c37363c343c341a301a3e041a3e0d3c2f3a3f383c1a3e3e3c37343c093f0d3c2f0c3836163e343c16123c1a3c153c0a0e1a3e2e3c392c2c3b0c331a343c343c301a3c17123c3c3e3c382c2c3b0c393c3831343f382c3e28281a3f382b04392c381a3e044d3c19143c3e2c1b453f1e281e333c2e3c31363c36383c2e343e343c0e123c123c3f2f1a2f3c343c451a3e4d3a383c2a121a3e4d3a3c3c2a122c151a381a3e041a3e153c38153c1a0e1a3e043c3e2c2c2f0c331a36383c2e3c3e343c2c4f3c1a3f3f3c3c0e153f3e3c3c383e341c393c38313e043c382f2e3c31363c36383c2e343e343c45123c1a3f3a1e1628382c3e3c31363c363c3c2e3c3e2f1a2f3c343c451a3e4d3a383c2a121a3e4d3a3c3c2a122c151a381a3e041a3e153c38153c1a0e1a3e043c3e2c2c2f0c331a36383c2e3c3e343c2c4f3c1a3c313c163c1a3e041a3e3738383c293c4d3c3c163c1a3c3e3c312c1c1a381c153c102f2c2f3c343c3c2c354d35523c25381a3e044d3c194d24333c2c0e1a3f2e3c3b363c343c2c2c2f04331a343c2c2c3c153c3c0a393e0a333c343c3c2c3415121a3e041a3e3738383c293c4d3f3c163c1a3c3e3c312c1c1a381c153c102f2c2f3c343c193f1a3f3c1a3c3f3c1b38382c333c2c0e1a3f2e3c3b363c343c2c2c2f04331a343c2c2c3c153c3c0a383e043c37363c343c343c0e123c0c2c382f1a2f3c343c1a1a3e2e3c312c1c2c381c153e0d3c1a0e1a3c3f3c1b342c341a3e2e3c37363c343c341a333f3c2a124f3c1a3c1a3c043c3e321a3c3c343c0e1a3e041a3e3738383f1c07243e373c0a3c3e0a3c31343c12153c143c34363c343c343c16123c1a3f35392c301a3f2e3c3b363c343c2c2c2f04331a343c2c2c3c153c3c0a3f3e0a373c343c0d3b392c3f3f3c2e38383c4d3c1a3e153c37343c2f33392c383e2c3e3c3c343c093f0c3c2f0c383e273b3f383c1a3c3f3c1b2c1b453f1e2e3c36343c2c2c3e044d3c3c3824333c2c0e1a3f2e3c3b363c343c2c2c2f04331a343c2c2c3c153c3c0a393e043c3c383e341c343c2f3f3c2a12153f3c0a3c3e0a3c312c2c38153c3e3c2d363c343c343c0e123c122c3f2f1a4d3c2c2c3c153c3e3c312c2c3c4f3c151a1a382e3c2d363c343c343c0e123c122c3f343c093f3a3a122c312e3c31363c34243f383c1a3f2e3c3b363c343c2c2c2f04331a343c393c38312c2c38153c3c0e1a383f3c363a143c33383c121c343c0a2c3e15121a39153c363a143c2f383c121c343c452c352e3c312c1f3c381c142c3c343c3c2d3e043c36342c3431343c3b3f3c2a12153c2c0a3c3e0a3c31393c3c1a3c38383f2c2e4d2c080a341c3e0a0a3c343c3f3f3c2838093832453f3a1a0e363c3e3c3f343c3f0f2c2c374c3e0a2c3c343c3831332c383f1b04303c2c2f3f0f341a34163c3e3c3e343c3c093c3c3c4b3c3c451a3c3e3c3f312c3c3c321a3c3c343c381a3c16382d1c144d3c3c39123c3c3e3c3e2c2f3f0c373c3c31273c383f1b04303c2c2f3f0f341a24163c3e3c3a2c2c3c4b3c3c451a3f143c3b321a3c32343c241a3f39123c392e3c3a2c2e284b3c3c0a1a3f2c2f3c343c273f392a121a3f1638321c153e0a3c1a0e1a3c143c3f343c381a3c141a3e3c3f39083c143c3a2c2c050c343c301a3c3e1a3e3c3f3c3f343c3b0c331a343c343c273f383a12163c3c0b043c2c383b1b04303c2c2f3f0f341a30163c3e3c3e2c1a3c4e3c3c3c1a3c16343c330a3c34343c301a3c2e163c3e391e393e3e3c39343c380d3c3c3c4e3c0a3c392c3e3c3c343c2b0c342c273f3c3e383f3c4d3c1a3f144d3c3c383835343c3b0f1916383f1e2c2f3c343c341a3c053e193c2c0e1a3c044d3c39043835343c333f393a12143f3e3c39312c3c312c2f444d343c2c2c113c3b3f3c2527043837303f343c333f3e3a12143f3e3c39312c3c352c2f444d343c2c2c113c3b3f3c2527043837303f343c333f3f3a12143f3e3c39312c3c392c2f444d343c2c2c113c3b3f3c2527043837303f343c301a3c053e283c28383f19153e293c2e3c352c2c3b053f383c1a3c043c39312c3c3c2c18383f1e07123c3c3c0e1a3c28383f1c14343f2c2c1535392c3c31343c2b3f3c2a12143f28382c2f0a4d3c3e043c392c2f3f0c373c3c312c2c3c1a3c2e3c3e343c301a3f383838383b1a153c2e3c39312c3c3c2c2c2f052f2c2f3c343c3c1a3c28352c394f121a3c28350e3910121a3c2e3c3f2c182c3c2e3f0e1a3c28353b3c381a1f2c180a321c07243e3c3c0e312c3c3c1a3c143c39343c3f3f3e3a121a3c3e1a3e3e3e1a3e3f3f383c3c3e343c343c3f3f123c370c343c281a3f38383c3831343f343c3f0f341a3f3f130a37303f383c1a3c2e3c3c2c2c05092c2c050b331a343c3e0a093c3c3e3c3e343c301a3c3838341c143c3c363c3434363c343c382c3c3c341a3c1a3c383a123c2a121a3f2e3c382c2c3c2c0e1a381a3c3a0e143c383a133c280a382c3e3c3f343c3f3f393a4c3f3f4f454f3c1a3c313e4d383c343c381a3c143c39343c2f3f3f3f3f27342c381a3c044d3c3c3838381e2828382c3e3c3c343c3b3f4d3c440c343c3b3f4a3c480c343c381a3c2835163c381a1f343c3b3f052c3f343a4d350e39100e4f3c1a3c313e4d3c3c343c341a3c043c3c2c2c150c343c3c123c1a1a123c1a2c2f3c3c3c143c3e3c3c2c1c3c3e1c143c3b343c2f3f3c3f3e4d3c2e3c3c1c04343c2c27453e293c2f3c343c381a3c3838301f2838301f07243e3c3c0e312c3c3c1a3c143c39343c3f3f3e3a121a3c3e1a3e3e3e1a3e3c3f383c3c3e343c343c3f3f0c3c3b0c343c281a3f38383c38312c3f343c3f0f341a3f3f0d0a3b303f383c1a3c2e3c3c2c2c05092c2c190b331a343c3e0a0e383c38383e3e4b453b3c2c0d52340a3f3f383a0e143e2e2c3c343c242c32043836343c161a3f153e303c2e343338391e1a3f2e3c39331a343c3c163c3e2c3e3c3c341a1e093c3c3c143f16380f1c0a49393c3c383c3c2c0e1a3e143c3a2c2f154d2c2f154c38394d153f143c3b343c28123c1a3c143f4d38381c17243e3c3e3c35343c244f3c1a3c1a3c38383f1c1438353e0a373c3c163c1a3c143c35341a270f2c2c3b30392c3c1a3f044d3c3c38380a2f0a4d3c343c1e093c3c3b3f3435373f563c3f35392c3c1a3e16380a38394d153f143c3b343c28123c1a3c143e3838381c17243e3c3e3c34343c244f3c1a3c1a3e143c35313c3c3f38394d153f143c3b343c28123c1a3c143e3838381c17243e3c3e3c34343c244f3c1a3c1a3f4d383e1c143435342c24392c3e3c3e343c2733392c341a3f140a3c3c3f3c2a38331a3e2f2c4d3e343c273f3c2a12153f1a0a3c3e0a3c313c4d3c1a3c143c3a292c4d3f343c240e3c3c3c153e3f3c2a3a143c3438382b3b392c381a3f16383f1c14383a393c3c313c3c0e3e2c3e3c37383816382c3e3c36343c1e1a3f143c3b363c343c383a301a3f2e3c3b363c343c343c241a3f4f093f3c132f0c331a343c393c3831343c1e1a3f153f48343c4d2c323e3832343c1e153e3c333c343c241a3e384d382c3e3c39343c1e1a3c3a093f3c132f0c343c28123c1a3c2c0f2c383b3c163c1a3e2e3c31383c0e0e3c3c3f3f3c380a333c3e3c30343c161a3e053c31313c3c3c2f0a4d3c343c281a3f2e1a3e3c3e34302c2c2f0c331a343c343c0a1a3917243e3c3e3c31343c0e1a3e2f3c372c2c3b0f2e2a12153e4d383c342c0a31343c121a3e3e0a3c3c3f3c44342c451a3f2e3c3b363c343c34153f3f3f3a124f3c1a3c1a383e3c2d331a343c343c153f3c2a12153e3e3c302c2c3b0c342c0a303c2c0e313e0a373c3c163c392c3e3c3e343c2733392c381a3f144d3c3c3e34352c2e48353f383c1a3e143c352c2f154d2c2f154c38394d153f043c3b343c28123c1a3c143e3838381c17243e3c3e3c34343c1e4f3c1a3c1a3f16383f1c14383a393c38313e043c3338381a153f043c3b343c28123c1a3c143e4d38381c143434331a343c343c0e1a3f07243e3c3e3c3a2c2c3b0c342c24303c2c0e1a3f2e1a3e3c3e38343e043c36343c241a3c143c34383a301a3f2e3c3b363c343c343c341a3f10093f3c132f0c341a284f3c1a3c1a3f3e3c3b343c301a3c2e3c3c1c4d383e193a121a3c2e3c3e2f150e4f3c1a3c1a3e2f3c363a143c372c2f3f0c373c3c31083c383f3f2545173c38382c1c043435373c3c173c38382c1c04343b373c3c3e2c3e3c3f2c18525252524539292c2f3c3c163c1a3c28383f292c2f3c343c3c1a3c2f3c4b343c3c153f1a0a3f3e043c3c343c3c1a3c2f3e3e3c28383f1c1434393834383f341a242c292e3c3c343c302c293e3c3c343c382c322c0e1a3f143838343c38143c0a2f52343c30382c3c333c343c2c1a3c17243e3c3e3c382c2c2f0c342c2c1a3c4d383f1c043439392c3c313e4d383c3f2e3c383e05121a3f28383c331a3430343c241a3c28383e193a121a3f2838301c153c07343c2b3f383a12163c3c0a3f3e053c253c3c0e1a3f4d382c1c142c3c343c3c31102c283f3e1345173c38382c1c043437373c3c1a3f153c04342c121a3e2e3c3a3834493f341a4d2c33043c3b343c304f3c1a3c3e2c3c373c343c3c143f044d3c3c3e343a2c2e090f391a303c3c2c3c3f3e043c36343c273f3a352f3f3a35282c362e383a343c281a3f2e1a3e3c3e34352c2c3b0c331a343c343c1e1a3f17123c3c3e3c3c2c2c3b0c342c1e313c163c3e2c3e3c3e343c1e143f10093f3c280a333c3e3c35312c3c3c2c293f35392c3c1a3f044d3c3c28381a1e1635493c381e333c3e3c362c293c2c362e383a343c281a3f2e1a3e3c3e34342c2c3b0c331a343c343c1a1a3f17123c3c3e3c36343c1e0e3c3c382c362e383a343c281a3f2e1a3e3c3e34342c2c3b0c331a343c343c1a1a3f17123c3c3e3c352c2c370c341a1e153f1a333c343c341a3f164d333c143c3a313c3c3c383f242c4f3c373b392c341a3f16383f1c14383a393c3c313c3c0e392c3e3c3e343c2733392c381a3f140a3c3c3e3834383f241c343c1a2c2f2828333c2e3c3a2c2c3b0c342c24303c3c0e3c3e0a373c343c162c2e2c2f3c343c121a3f043c3a343c28123c1a3c2c1f043c3b343c28123c1a3c1a3f143c351c4f124f3c1a3c303c2c0e1a3f043c3a3835161a392f3c49342c491a3f0438343c4d3c1a3f143c34292c2f3c343c301a3f043c3c1c4f121a3f2e1a3e3c3f3f483f2c373c343c161a393f3c31313c3c3c2c2c3f30392c3c1a3e043c37343c0a2c3e040a3c3c381e333c3e3c3b343c28123c1a3c143e4d383f1c17243e3c3e3c31343c494b3c3c3c1a393e3c30343c162c3e28383f1c4d110c342c053f3c3e38313e043c36343c1a0e3c3c3c2c362e382d343c281a3f2e1a3e3c3e342c2c2c3b0c331a343c343f3c1a3907123c3c3e3c342c2c3b0c342c1a1a3e4d383f1c143831393c38313e0a0e392c3c373c343c341a3f160e382c3e3c3a312c3c3c341a193f31161e333c2e3c3338381a153f043c3b343c28123c1a3c143e38383f1c17243e3c3e3c34343c1e4b3c3c3c1a3f16383f1c14383a3e043c36343c241a3c143c3b363c343c383a451a3f2e3c3b363c343c343c341a3f10090c341a284f3c1a3c1a3f3e3c3b343c301a3c2e3c3c1c4f121a3c2e3c3e2f150e4f3c1a3c1a3e2f3c363a143c372c2f3f0c373c3c2d3e043c36343c193f3a352f3f3a35282c362e3835343c281a3f2e1a3e3c3e34342c2c3b0c331a343c343c1a1a3f07123c3c3e3c3a2c2c3b0c342c24303c3c0e3c3e522c3f3c2c1152343c382c392e3838343c382c3e2e3835340a3f3f343a0e143c2e2c3c3c163c1a3c2838241c143c3c38342c39341a1a093c3c3f3b392c3c1a3c2838341c143c3c38303c3f342c161a3c3e3c3c363c343c2c2c050f363c343c1c14343b363c3438342c123e2c383b52343c28143c141a3e293f3f182f2c2f3c343c34123c160a153c1a0a3f3e043c3e3c1345173c38382c1c043439373c3c1a3c4d38341c14343a343c342c39043c3a3839373f343f3c0d342c341a3f153c32343c333f383a12163c3e3c3e3e07243e293c0e1a3c16382419383824192e383e343c381a3e2e1a3e3c3e3c38343c2c1a3f4f12143c043c38343c0d3f0e3c3b052c2e3f3a3a043c39343c281a3c153f2a331a342c343c38123c153c333c3e3c3c343c3c123c1a3f3f393a0e123c1a3f0c2c2c282c1a3c3831343c1a2c1a1a301a3c28381a1c142c3c3e07243f3c13443f443c382c3a2e343e3f35451a3c143c3c343c3b3f3c4e2c2c142c30143c38383c2e3c2f3c343c342c3838383c390a0e1a3c143c3c331a310a3c2e3c3e3f2e3c393e0a08193c0a383e1b04303c2c183c3e1c04343c373c3c1a3c3e3c3e331a312c3c143c3c343c384f3c091a3e343c302c253e383a343c301a3c38351a3c2a122c102c38153f043c3c2c193c3f1c143c39343c3f3f073c370c38371a3f343c3f3f0a3c3b0c383f38143c2e3c3f383f302c393e3c3c343c3b3f3c3f3c31341a344f3c0f0a3f343c3c1a3c38382c1c17243e393e3c3c2c2c3c4f3c1a1a392c3c373c343c3f3f4f3c370c343c3f3f4d3c370c3839273b392c3c1a3c3e1a3e0b3c381a3c2f3c37343c370c2f1a2f3c343c382c3e2e3839343c381a3c2f3c372c2c3b4d383c0a1a3c2e3c3f383f302c393e3c3c343c301a3c28383c383c0e143c10124f3c0f0a3f3e043c3c2c191a3e1c153c15343c241a3c143c3c2c1f0a3f1c143c3c2c2c150c343c3c123c0e0a3e343c3f3f4d3c3b0c343c3f3f383a121a3c3838301c143c3538340e3f392c3c1a3c3835243c10122c372f12303c2c0e313c163c1a3c38352c3c2a122c3e2828333c3e3c3c363c3430341a301a3c38382c1c10093f130a3b36392c3c1a3c3e3c392c2c2f0c331a3430343c301a3c3e1a3e3e39243e3c3c0e1a3f2e3c3e343c3c123c0f0a3f343c2c1a3f1539353c17243e3c3e3c3c2c193c3f1c143c3c2c2f3f0c343c3c123c1a0a1a3f3f3c09343c3f3f4f3c370c343c3f3f4d3c370c383e1a382c3e3c38343c2c123c1a3f3f3c13344f3c1a3c31343c3c123c091a3e342c341a3c2f3c363a143c3c2c193c3f1c153c363a143c3c2c183c3e1c142c3c343c34312b3c383e1b04303c2c2f3f0f341a30163c3e3c392c2c344f3c1a0a1a3c143c3f383c16143f380e382c3f3c253c3c0e1a3c2f3c33342c381a3c043c38343c370f331a3438343c3c1a3c2e3c3e1c143c392c2c050c343c333f3f3a122c121a38123c1a3c2c441a381a3c4d382c1c142c3c3e4d343f3c2545173c38382c1c043439373c3c1a3c043c3f331a3430343c301a3c17243e3e3e3c39343c333f393a122c2814383f343c3f3f45050e1a3c041a3e3e3f39143c14383c343c382c282e3c392c2f3f0c373c3c1a3c3c0e243c3e3c3c343c3c123c1a3f3f393a0e123c1a3f0c2c2c342f3c3c3c1c343c3c310e2c343e3f35493b1b04303c2c2e3f0f341a1a163c3c373c3c163c3e2c3e3c3f343c37353f383f3f4c34383f363c343c342c053f4c34383f2c2c3c4f3c1a3c173c38382c1c043437373c3c2c3b1512173c38382c1c043436373c3c173c38382c1c043431373c3c1a3e043c3f343c153f353a0d3f3c1539243c2e3c31362c303c342c2c1a3e143c31362c3034330a3034343c121a3f391e393c3e3c312c2f3f0c373c3c1a3e1416393c3e3838343c161a3e1416393e391e393e3e3c37343c2c4e3c0a3c1a3e16382c1c142c3c343c160d3c0a3c153f3e3c34343c160d3c0a1a4e3c053c1a3e3e3c38330a3034343c113f383a12163c3e3c34362c302c342c2c1a3e3e16393e3e383b2c192e3f3c2e1a3e3c3e343f2f2c4d3f343c1a123c150a1a3c161e333c143c3b342c241a3f3e3835343c3b3f053c3f35392c30303c1a0e1a3c4d3838331a343c393c34312c192e3f3c2e3c30331a343c343c1a123c150a1a3c1624333c2c0e1a3c4d3838331a343c343c24153f2e3c35342c2c31343c3c1a3f291e393c3e3c3c343c2c4e3c0a1a1a3e38381a1c142c3c3e4a243f3c1a37453c4e45173c38382c1c04343b373c3c3e2c3c373c3c163c1a3c3e3c3f2f0a2f3c2c192e3f3c2e1a3e3c3e38352c192e3f3c28383c331a343c383f241c340a3f3f383a0e143f142c3c343c241a3c3e3c3b2c2c050c2c2c382c4f3c381a3f1416393c3e3c3a362c303438334d3f342c301a3f16382c1c142c3c2c192e3f3c2e1a3e3c3e343c2f2c4d3f343c28123c1a0a1a3c281e333c143c39342c2c1a3c3835383c381e333c0a0a3e3e043c3e2c2c2c4f3c1a3c303c1a093f4c34383f343c1e4f3c1a3c1a3f2e1a3e393e3c3f2f1a4d3f3e043c3e2c2c2c4f3c1a3c1a3f3e38393e043c3b2c2f3f0c373c3c1a3c0a084f3c2c343e1b2c3352340a3f3f383a0e143f2e2c3c3c163c3e2c3c373c343c3c1a3c281e382c3835281a2c38123c1a3c153f4d35281a2c3b3f3c39243e3c3f3c2a3a14303c2c2f3f0f341a24163c3e3c3a343c3c1a3f2838301c16383c38331a3f343c240d3c0a3c1a3f1416393e3f39163c143839343c273f383a12163c3835281a2c38123c1a3c143c3828333c2e3c3b363c3430343c3b35392c341a3c043838343c3f3f053c3f35392c30303c1a0e1a3c163838331a343c393c34312c192e3f3c2e3c35331a343c343c28123c1a0a1a3c2824333c2c0e1a3c163838331a343c343c2c153c0a0e1a3f28382c1c142c3c343c3031051a383e3c4e453f1b14303c2c2f3f0f341a2c163c3c37563c163c3e2c3e3c3c343c3b353f383c3e2c3c373c343c3c093c3c3c143f2838092f0a4d3c343c3f3f3c2a12143c3e3c3f2f0a4d3c393c38312c192e3f3c2e1a3e3c3e383a2c192e3f3c28383c331a343c343c3c1a3f3838301c143c39383f242c4f2c38153f0a373c2c192e3f3c2e1a3e3c3e343c3f383c1a3f3e1a3e393e3c3f2f0a4d3f343c3f3f053c3f3a392c2c303f2c093f4c34383f343c244f3c1a3c1a3f3e1a3e393e3c3f2f1a4d383e0a0e31343c373f3f39243e3c38343c393c3431343c373f3f39243e3c383752393c38312c1a3c1a3f4e4d1a3f043c3b2c2e4c3a3a0a0e153f043c382c2f3f0c373c3c1a3f0a0b253c2c34391b0a3b56340a3f3f383a0e143f3e2c3c3c13453e2c3c373c3c163c1a3c3e3c3f2f0a2f3c3c163c3e2c3e3c3c312c3c3c341a2b3f31281e333c3e3c3c2c2c3b0c341a3c1a3c281e333c3c0a3f3e4d35281a2c38123c1a3c153f1635281a2c3b3f3c39243e3c3e3c3c343c2f3f393a121a3c053c2a3833163f342c1e3e2c3835281a2c38123c1a3c143c3c2f3c343c2c123c1a0a1a3c281e333c2e3c3c2c1e2c3c2f1a4d3b393c2c312c192e3f3c2e3c3a331a343c343c2c123c1a0a1a3c2824333c0a0e313e043c3e2c2c2c4f3c1a3f3f3c3c0a393e043c352c0b52525252452d2a3c4d3f3e043c3e2c2c2c4f3c1a3f3f1b0a0a3f3e4d383c343c1813341a3f0f343c3c1a3f2838092f150e31342c3c1a3f38382c1c142c3c343c3c31161a303f3c2545173c383a2c3c100e143c3e2c3c343c3c1a3c17243e1a3c341a3c3e3c3f331a36343c143c39383b0a153f143c3c2c193c3f1c143c39343c3f3f520a3b0c3837123f343c3f3f0a3c3b0c383f38143c2e3c3f383f302c393e3c3c343c3b3f3c3f3c31341a344f3c0f0a3f343c3c1a3c38382c1c17243e393e3c3c2c2c3c4f3c1a1a392c3c373c343c3f3f143c370c343c3f3f1a3c370c38393b3b392c3c1a3c3e1a3e0b3c381a3c2f3c37343c370c2f1a2f3c343c382c3e2e3839343c381a3c2f3c372c2c3b4d383c0a1a3c2e3c3f383f302c393e3c3c343c301a3c28383c383c0e143c10124f3c0f0a3f3e043c3c2c241a3e1c153c1b343c241a3c143c3c2c1f0a3f1c143c3c2c2c150c343c3c0e3c2d453f343c3f3f4d3c3b0c343c3f3f383a121a3c3838301c16351a4d3c3c2c172c38333c3e3c3c2c241a3e1c153c143a1a0a3f3e0a0e3e2c3e3c3c2c193c3f1c153c372f2c4d3c343c3c123c1a0a143c043c3c2c2f3f0c1c4d3a1b3c2812333c3e3c3c343c333f3f3a124f3c1a0a1a3c043c3c363c3434331a343c3e043c3b343c341a3c3e1a3e0b3c381a3f3e3c3a38301e3e331a343c343c3f3f4d3c3b0c343c3f3f383a121a3c3e1a3e393e3c38383e4d1a3c383a343c10121a3c383a3c3c10122c371a2f3c343c2c1a3f3e1a3e3c38383e1e17243e3c3c0e1a3c3e1a3e143c34153c143c3f383c121c343c3f3f4d3c3b0c383c121c343c3f3f163c370c373c3c1a3c1a0b1e3c2c34391b0a3b56340a3f3f383a0e143f3e2c3c3c13453e2c3c373c3c163c1a3c3e3c3f2f0a2f3c3c163c3e2c3e3c3c312c3c3c341a2b3f31281e333c3e3c3c2c2c3b0c341a3c1a3c281e333c3c0a3f3e4d35281a2c38123c1a3c153f1635281a2c3b3f3c39243e3c3e3c3c343c2f3f393a121a3c053c2a3833163f342c1e3e2c3835281a2c38123c1a3c143c3c2f3c343c2c123c1a0a1a3c281e333c2e3c3c2c1e2c3c2f1a4d3b393c2c312c192e3f3c2e3c3a331a343c343c2c123c1a0a1a3c2824333c0a0e313e043c3e2c2c2c4f3c1a3f3f3c3c0a393e043c352c0b52523c4c1a333c2c0e1a3c163838331a343c2c1b52523c0a0a3f3e4d383c343c1813341a3f0f343c3c1a3f2838092f150e31342c3c1a3f38382c1c142c3c343c3f3f525245391e2c084f3c2c343f1b1a3752340a3f3f383a0e143f2e2c3c3c163c3e2c3e3c3c343c3b353f383f3f4c34383f363c343c342c273f4c34383f2c2c3c4f3c1a3c1a3c3e3c3b2c2c050c343c302c3b15392d3c1438383c163f3f4c34383f363c343c341a3c382c3e3c3b363c3430343c3b35392c381a3c3835383c3824333c0a0a383e4d35281a2c381a3f17243e3c3e3c3b363c3430343c3b3a392c30313e043c3e2c2c2c4f3c1a3f3e3c3e3838393c3831343c373f3f39243e3c3e3c382c1a3f2b3f383f3e5252525252525252525252523c3e3838393c38312c123e3c1a343e3c1a343e3c1a3545153f3c0e1a3f28382c1c142c3c343c2c310a0a383e3c13453f1b14303c2c2f3f0f341a2c163c3c37523c163c3e2c3e3c3c343c3b353f383f3f4c34383f363c343c342c2b3f4c34383f2c2c3c4f3c1a3c1a3c3e3c382c2c050c343c302c3b15392d3c14383a3c163f3f4c34383f363c343c341a3c382c3e3c38363c3430343c3b35392c381a3c3835383c3824333f3c0a393e4d35281a2c381a3f29243e3c3e3c38363c3430343c3b3a392c34313e043c3e2c2c2c4f3c1a3f3f3c3c0a3e3e043c3a2c123e3c1a343f4928043c3a2c0b5252525245352b2534333c3e3c3a0d0a0a3f3e043c3e2c2c2c4f3c1a3f3f52525252520a1e1a3f16343c2b2c4d3c3a163a3c1a343e3c183c0e153c3e3c382c2f3f0c373c3c1a3c3c0b103c1a38381b043c3c2c283f0f341a333f0b3e1a4f3c1a3c1a3c4d354d3429243e3c3e3c3c2c1b0a11331a343c343c333f0d3e244f3c1a3c1a3c383a2c3717243e3e3e3c3c2c1f2c10363c343c341a384f3c1a3c1a3c3e3c3f2c2c050f363c343c1c163a4937141a3e3c39243e3c3e3c3c2c2c3c4f3c1a2c1a3c3e3c3c363c343c2c2c050f363c343c1c14343e2c2c3c4f3c152c1a3c143c3c2c2c050c341a384f3c151a1a3c16383c331a3430343c373e1a0c3e3c1a323c3c330a3438343c341a3c28284f3c153c1a3c16381a1c16383c2c2e1a2c2f15121a3c16381e1c153e2d3c143c3e2c2c3c4f3c161a1a3c163b52331a3730343c3f3f3e3a12143c163a4537141a3e3c3e3438331a343c343c341a3f3838301c041a3e3c3a0d3f0a3e24123c1a3c4f3c1a3c1a3c383a0a37141a3e3c3e343e331a343c343c3c1a3c1638301c041a3e3c3a0d3f053e24123c1a3c4f3c1a3c1a3c38353437141a3e3c39243e3e3e3c3c2c1b0a11331a343c343c333f0d3e244f3c1a3c1a3c383a2c3717243e3e3e3c3f2c1f0a1b331a343c343c3b3f3f3a122c170a341a3c28343c330a3424343c3b3e3c391e3e383e3c3f2c1a3c4e3c1a1a1a3c283a4d3429243e3c3e3c3f2c2e3f0c383f381c343c3b3f3a39243e303e3c3f2c2c3c4f3c140a1a3c3c0e363c3e3c3f343c3f0f2c2c05093e482c3f3c2c2f52340a3f3f383a0e143f2e2c3c343c381a3c153e143c1434382c18525252524539292c2f3c3c163c1a3f38383f292c2f3c343c3c1a3f3f3c4b343c3c153c0a0a3f3e043c3c343c3c1a3f3f3e3e3c28383f1c14343a3834383f341a302c292e3c3c343c242c293e3c3c343c2c2c322c0e392c3e3c3f343c37353f383c1a3c043c3f3839301a3c4d38381c143839343c3b3f3f3a12153c2c0a3f3e0a0e1a3f28383c331a3430343c301a3f2838301c153c07343c2b3f383a12163c3c4531383f1e3c3e05243c343c3c1a3c2e3c3e2c123e3c1a343e3c1a343e3c1a35452c4d3c3431161a2c3e3f4e45381b14303c2c2f3f0f341a1a163c3c373c3c163c3e2c3e3c3e2c2e2f303f383c1a3c3e4d3c3c3e343b392c381a3c3e3838393c34312c192e3f3c28381e331a343c2c1a3c153c0a0a3e3e043c3c342c2c3e2c3c333c343c2b3f3a352f3f3a35282c1e3828333c2e3c38312c3c3f342c281a3f38383f1c143838343c28333c3c0e303c2c0e3e2c3e3c38312c3c3c341a2b3f364f0e323c0a3c3f3c3c38312c25443f3c3e3c3b2c2e4c3a3a043835343c2f3f3c2a12153f3c0e3e1b0a373c343c373f1f4e38333c3e3c38312c3c3c2c293f35392c3f3f3c2e3837343c2c093c3c3b3f4e0a3b052c191a3c2f1a2f3c343c2f3f3c1012153f38382c393c3431343c2f3f3c2a12153f3e3c3e2c2c1a1a3c150e303c2c0e1a3c163836343c341f3e0434360f3e38302c2c3c153c1a333c3c163f3f283e383b3c163c1a3f3e0a3c3c3e343a2c293f0f2c1b453f1e2838362e2c4d3c2c1c1152342c281a3f1635153c3a093f520a3b052c2f0d37392c3f3f2e2e383b343c273f0a2c3f0f2c1b453f1e2838272e0a4d3f3e043c3b343c270c341a241a3e1649333c3e3c34343c053e3c3e3c312c1a3c2c364d383f342c283e2c3e3c34362c30342c1a3f2e392c3c1a3e043c301b143433343c1c0e341a483e1b492b2a392c3c1a392e3c321b3e38312c2c38153e2e3c3e342c2831343c2f3f3c2a12153f3e3c3b342c34303c2c0e31343c38382c3e3c3f343c2c1a3c3e3c373a07243e3c3c0e3e2c3c373c343c34382c3835281a2c3b3f053c3c4f3c1a3c1a3f4d383c343c333e3c243014393b3c1f342c1e1a3c043831393c3831343c301a3e4c24333c2e3c392c1a3a39342c0a31343c0413343c19042f2c2f3c2c192e3f3c2835383c39243e3c3e3c392c1a3b44342c30303c1a0e1a3c043c312a1a4d3c2c192e3f3c2835383c39243e3c3c0a3f3e043c31343c180e341a323b343c3344342c3031343c153f383a12163c3e3c393e07383f3c25443f4f34243f363c343c342c381a3c3c2f3c2c19143a3c283512152c381a3c3e3c3c2c25443a3a07243e3c3c093f1b043c3f343c3b3f4b34283f2f150e310f2c1a3f3f25451a3c2e1a3e3c3e38383c163c3e2c3c373c3c163c3e2c3c373c3c163c3e1b0a373c3c163c3e2c3c373c343c333b392c3c1a3c041a3e3c3e343a2f2c4d3c343c3f3b3f383c1a3c143839393c3031343c333f3c39243e3c3e3c3e342c30303c2c0e3e2c383524151a38123c1a3c123c1a3f3b3f383c1a3c3828333c2e3c3e2f2c4d30343c34153f1a333c343c2c0e3c3c3c143c0a2f3c343c3c1a3c4d35520b0a3305331a343c343c3f3f3f3a12153c3e3c382c2c3b0c342c2c1a3f16383f1c04343a392c3830391a0e31343c3f3f3c39243e3c3e3c3f2c2c3c4f3c1a3c1a3c143c3a1c0a4531343c34153c043c3c2f2c4d39393c2831343c2c2c161a382d3e4d383f342c28303c0a093f3c3c0a3f3e4d383f3e04383b3c4d3c1a3f2828382c3e3c38312c3c3c2c2c334f341a2b3f383a0e1a3f16381c192e3c3b1c13373f3f4d0e333c0a3752343c2f3f3c2a12143f2e3c3a2c243e3c1a3f3f052f2c4d3c3a143c3b312c3c3c2c1e3c3f1e283a3c3c281e382c3e3c382c2c3b0f342c2c303f0a0e1a3f38383e1c14343b343c273f1a343c1a1e2828333c3f121a3f2e4d3c3c38353c3c253b3f1a3c3b353f383c1a3f38383f1c043838393c1e31343c2f3f3c4f1231342c2c1a3c4d383f1c0438392c2c38153f2c0a3f3e0a333c3c163c1a3f3838391e2e3c38312c3c3c341a273f3c2a093f521a3f311e1a4d3c343c2c123c1a3c143f163a3f1a122c341c043c3a1e163a3c1a243638183538333c3c333c343c333f3f3a0e153c043c38363c3438342c241a3f3838381c143838343c241a3f163a3f1a122c341c4e373f1a343a3e153515052f2c4d3c3e0a0e1a3f1635523c2538143f28383f1c4d35563c384d382c3e3c392c2c3b0f342c301a3f38383f1c143838393c38313e043c3b2c1e343f1c04343b2c293731392c301a3f38383f1c143838343c2b3f3c132f3f0a3e090c363c343c342c273f3c3e383b393c3c313c3c0e392c3e3c3b2f2c2f3c343c333b392c1e392c3c373c3c163c3e2c3e3c38312c3c3c341a2b3f3c2a0e143f4d35563c380e382c3e3c3b342c24303c2c0e1a3f3838391e2e3c392c2c2b371e1a4d3f3c163c392c3e3c38363c343c341a273f1a2436383e3a0e1a3f13373f1a343a3e15351505392c381a3c3e3c3a2c1b453f1e29243e3c3e3c3c343c2c093c3c384f3c1a2c1a3c3e3c38312c3c3e331a3434343c3c1a3f3e4d3c3c07243e393e3c3c2c2f3f0c342c3c1a3f3838381c143838343c333f3f3a0e143c4d38382e0a4d3c3e043c38312c3c3c342c2431343c273f520a3b05341a2b3f3c2a0e153f0a0e1a3f4d35563c380e333c2c0e1a3c3e3c3b331a343c343c3f3f3f3a12153c3e3c382c2c3b0c342c2c1a3c4d383f1c043439392c38303e2c0e31343c2b3f0a1a3b0f341a2b3f30160e333c043c382c2c3b0c342c2c1a3f28383e1938353c364f12123c1a3c153f16383f342c28303c2c0e1a3f3e4d3c3c3e343b2c2c334f341a193f383a0e1a3f043c3a2c2f0d4c1c13373f3f4d0e333c2c373c3c163c3e1b043c382c2c3b0c341a1e1a3f283a3c3c2a0e1a3f16383a193534143f28383c291a4d3c3a143c35312c3c3c2c243c3f1c0434352c294431392c381a3f38383e1c143434343c1e1a3f28383a193534143f28383c291a4d3c3a143c34312c3c3c2c243c3f1c0434352c294431392c381a3f043c3b2c2c274d1e14383b343c2f3f3c4f1231342c2c1a3c3e3c3b331a343c343c333f3c2a0e153c043c3c2c2c2f0c342c3c303c2c093f4c34383f2c2f164f3c1a3c1a3f38383f1c043838393c28312c2c3c153f2c0a3c3e0a3c31343c2f3f3c2a0e153f3e3c3a392c381a3f3e4d3c3c3e383a3e043c3a2c1b453f1e2c4d3c343c3c382c3e3c3c2c2c3c4f3c1a3c1a3c28383c331a343c3e043c3e343c330f390a093f4c34383f2c2f164f3c1a3c1a3c3828333c2c0e1a3c2e3c38331a343c3e4d3b52390a0e1a3c2e3c38331a343c343c3431340a383e1b043c3c342c38392c3e3c3f341a373f3f3a12153c2e3c3e363c343c392c3c31343c341a3c3a093f3c132831391a3c1a3c3f391b3c1a2f3c343c3c2c383c0e31280a38381b0a373c343c3b3f3c380a333c3e3c3f2c2c3b0f341a2f3b392c3c392c3e3c3c343c370c341a30093c3c3c153f2e3c39343c3c1a3c16383f1e1012143c044d3c3c39123c3c3e3c39343c284b3c3c3c1a3c16383e1c14343e343c3b32392c381a3c143c382f0a4d3c3e0a0e31313c383f1b04303c2c2f3f0f341a34163c3e3c3e343c384f3c1a0a1a3c3835163c383508353e3c3f3831283f342c3c1a3c16382c1c142c3c343c3c31362c383f1b04303c2c2f3f0f341a34163c3e3c3e343c384f3c1a0a1a3c38354d353e3c3f3832343e342c3c1a3c16382c1c142c3c343c3c313b1a3c1a3c3f3f3b2c2c3f35343c3f3f3435373f492c3f0f2c2c27371e1a08453c1a3c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3c373c343c3b3f3e2a0e32381a3c343e2c12343e2c383e3c0a2c363e2c12363e3c163b3f1a1e31343c341a3c141a3e3c3e343f2c2c2f0c331a343c343c3c1a3c2e1a3e3c39243e3c3c4531343c341a3c141a3e3c3e343f2c2c2f0c331a343c343c3c1a3c29343f3c391e393c3c4531343c341a3c141a3e3c3e343f2c2c2f0c331a343c343c3c1a3c29303f3c391e393c3c4531343c341a3c141a3e3c3e343f2c2c2f0c331a343c343c3c1a3c293c3c3c391e393c3c4531343c341a3c141a3e3c3e343f2c2c2f0c331a343c343c3c1a3c29383c3c391e393c3c4531343c341a3c141a3e3c3838351c163b491e2e343f2c2c150c331a343c343c3c1a3c2e0e393c3916393c3c4531343c3c1a3c163807382c303c3e0a4531343c341a3c141a3e3c3e343f2c2c2f0c331a343c343c3c1a3c292c3e3c391e393c3c4531343c341a3c141a3e3c3e343f2c2c2f0c331a343c343c3c1a3c29283e3c391e393c3c4531343c341a3c141a3e3c3838351c163b491e2e343f2c2c150c331a343c343c3c1a3c2e16393c391e393c3c0b563b3c38321b04303c2c283f0c341a30163c3e3c392c2c3c4f3c153c1a3c4d383c331a3430343c333f3c39243e3e3e3c392c2c3c4f3c1a2c1a3c043c392c2f3f0c341a2c4f3c152c1a3c043c392c2c050c341a1a4f3c151a1a3c041a3e3b3f121a3c043c392c2c150c341a124f3c150a1a3c041a3e3a3f121a3c043c392c2c2f0c341a244f3c143c1a3c041a3e353f121a3c041a3e343f12173c38382c1c043435373c3c1a3f143c3c312c3c3e343c3c093c3c381a3c3e4d3c3c3533072c2f154d2c2f154c341a2b3f3035301a3f28383f19383a1b1b4e370c2c2c3b0c341a284f3c1a3c1a3e143c3b2c254407343c3b05343c281a3c283b521e0434301e2a0e143f283b561e143c3b2c2548051c16383f1c14343b331a343c343c2c1a3f2f3c27331a343c343c1a1a3f141a3e3c3e3437383f164f3c1a3c392c3c373c2c1f4e08561c3b56342c28392c3c373c3c163c1a3f283a454a0b10151b160a382c3e3c3b2c184e0e153233482f1a4d3f343c2b3f141c4e334f4e053a392c341a3f283a341524311e1b381e333c043c352c2f3f0c373c3c303f3c0e1a3f28354f17121f2b3f381e382c3e3c3b2c270c18124516392f1a2f3c2c2c3c153e4d35094a342917182e383b393c2c31343c2b3f0b184a4812254835392c301a3f043c37331a34342c1b1c32150928382c270c1812451639343c1e123c1a153f3c38121f342c28303c0a0e1a3f141a3e3c3e343b2c254407343c3b05343c281a39353b0f341a113f1b13301a3e28383f19383b451e2a121a3c3a12093c3c3815392e3c34363c343c343c281a3f041a3e3e3a090c343c3c1a3f041a3e3e3e343b2c254407343c3b052c2c3b4d343c381a3f25330f1c144d3c3c3e3c3c343c110c2c2c370f312c3c3c343c4c071e07123c3c3e3c35363c34342c2c3b0f342c16303f3c0e1a3f043c31331a34302c241009071909452c24143b1a090545343c12123c1a3c1a3f041a3e3938121f342c28303c2c0e1a3f3e1a3e3c3e3c35363c34301c143c3c343c1e123c1a053f3c2a12143e4f12093c3c3c4b3c3c3f3f4a180438494e16153f2c0a3c3e0a3c313e043c39343c30123c1a053f0f05491a3c041a3e3f3f3e563c29243e37383533080b1c183f2e383c3c4d3c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3e3c3c2c1e0f0a0c1c343f293c2f3c343c3f3f521f251c4a4e48303f383c1a3c383a2f4c240828184d24333f043c3c2c1e4f2b4b440d4a2f1a4d39343c3f3f1a33351352250535392c113f16192a3111350e153c38383c342c38303e2c0e1a3c38355609190f0b1b1624333f3e3c3c2c1c4b104d52243c2f1a4d3f343c3f3f4d1c3e483a381e333e3e3c39363c342c383f3c1a3c041a3e393f3c2c343c30123c143c1c343c30123c150a1c343c30123c151a1c343c30123c152c1c343c30123c140a153c3e3c392c283f0f373c3c1a3c3c4531343c3f3f4a49290f442c37303f383c1a3c383531453610143c2824333f043c3c2c24073c04123c3e2f0a4d34343c30123c153c153e3e3c39363c3434342c483f3c3e38372c2c3c153e16383c342c2b3f3c3e38352c2c3c153e04303c2c2f3f0f341a2c163c383a2e103207393f283a4a4a3104343f3e3c3e3a04383a2c19283c342c053f561a3815392c333c3c163f3f480c0c1b1814383c3c4d3c3e2c3c373c3c163c3e2c3c373c343c3f3f0d332a39441a3b303f383c1a3c383512040d3e481b380a382c3e3c3c2c1b144c562d09482f1a4d3a343c3f3f48333e2a094e0d3a392c281a3c383a2444184e3218281e333f043c382c2f3f0c373c3c303e3c0e1a3c38350d040d3e481b3824333c2e3c3c2c181c0c134e0d35392c241a3f3e3c37331a3438343c2c1a3929123c3e043c38343c0a4b3c3c053f4b1e0c2c0825053f102d25090713161a3f3e1a3e3f3e3c322e3f0e153c3c0a3a3e043c3c2c1f3909140f1638293c2f3c343c3f3f0d192a39441a3b3a392c341a3c383a4a4a3104343f381e333f163549091b174a182e383c343c2c0e3c3c4d1a3f3e1a3e3f3f39123c143836393c2431343c3f3f0e184f36082c2f3a392c341a3c383a2e103207393f281e333f283549091b174a182e383c343c2c0e3c3c4d1a3f3e1a3e3f3f39153c143836393c28312c1c252b1a52243f2c1f3509140f1638343c2c123c1a2f3f3c10443f3c28241f342c3c303f3c0e1a3e3e3c38363c34381c144d3c3c3e343b343c2c093c3c0507342c193f48333e2a094e12153c3e3c38312c3c31342c0e303c0a0e1a3e3e3c38363c34381c144d3c3c3e3431343c2c093c3c0907342c193f48333e2a094e12153c3e3c38312c3c30342c28303c1a0e1a3f3e3c31321a3c32343c2c1a3f07123c392e3c38343c284b3c3c451a3f14383c393c38313e043c34343c2c123c1a2f0c343c124b3c3c3c1a3f3e1a3e3f38383f1c143837343c2c093c3c4515393e3c38312c3c32342c4d303c2c0e312c1b3e384b52283e342c3c303e3c0e1a3c38350a15320b4c3c1624333c143c3c2c2717250c0d38392f1a4d38343c3f3f071f0f4f131a2b35392c193f0f0c1f29441a3f3f0727250f4f130e1a3c041a3e373f0e153c3c0a353e4d3a300a300c3c3c16353311180b1c18043c39363c34302c1f2418343c30123c1a2c2c0b1a381f342c3c303f1a0e1a3c041a3e383e3834343c30123c1a1a153f28383c342c0d3f3c3e38332c2c3c153f4d383c342c093f3c3e38372c2c3c15393e303c2c2f3f0f341a2c163c3e3c34343c282c4c2c373f0e0c1f1f140a2f3f080b56391213161a3c150e153f16352b3c3e38322c1b123f342c45392c3c373c2c1f2e2a4d1f123e342c3c392c3c373c3c163c3e2c3e3c3c2c1f322a4d1f123e293c2f3c343c3f3f0d1b351c4f4e4c303f383c1a3c383a4b52493214182824333f3e3c3c2c275228130d154a2f1a4d39343c3f3f4d56144b494e1535392c281a3e3e3c3b3833283e343c2f3f383a12163c3c0a3a3e043c3c2c1c1f054f0909442f1a4d3f343c3f3f1a4b1c270f2c3b35392c2f3f1149251e0b1a2f3f0d0b351c4f4e4d1a3f3e1a3e3f38383e1f4d383f2f150e153c3c0a383e0a373c3c163c1a3c383a2a151904563f380a382c3e3c3c2c1f2e2a4d1f123e2f1a4d3f343c3f3f0e0c1f1f140a2f35392c273f524a3111110a28153c3e3c38313c3c33343c2c123c1a2c2c492c34153e1a0a3a3e043c3c2c27183b4e3149382f1a4d3f343c3f3f524a3111110a2b35392c281a3e3e3c38363c34381c143c38312c3c30341a3c1a3e13301a3c3e3c362c2544071e28383f193a0e4b3c3c3c1a3f3e1a3e3f38383f1c143833343c2c093c3c451539143c38312c3c32342c45303f0a0e1a3f3e3c33331a3438343c2c1a3907123c3e143c38343c494b3c3c093f1a4b1c270f2c3b3f4d56144b494e1a1a3f3e1a3e3f3e3c3b2e3f0e153c3c0a383e043c34343c2c123c1a2f0c312c3c3c341a1e1a3f3e4d3c3e4e30153e4d3a1b4c374b241804383c343c2c093c3c12153e2e3c38312c3c36342c0a303c0a0e1a3e3e3c38363c34381c144d3c3c3e3437343c2c093c3c0d07342c093f13442e1810350e153c3e3c38312c3c31342c1e1a3f3e4d3c3e043830393c3431343c2c1a3e07123c392e3c38343c0a4b3c3c0a1a3f3e3c37321a3c32343c2c1a3f07123c39043c3a342c3c303c2c093f524a3111110a28153c3e3c38313c3c33343c2c123c1a2c2c4b3c34153e1a0a3c3e0a3c313e4d350a15320b4c3c14383c393c2831343c303e1b4d383c342c2c173c38382c1c04343a343c30123c153c0e3c3c3c4f3c1a1a1a3f143c3a363c34342c2e4436321a3c32343c241a3f141a3e3e38384b2e39123c394d3a3049372e3e1814383c3c4d3c3e2c3e3c3c2c1c071e1549154a293c2f3c343c3f3f11180f3f0813153a3f383f3f520a38153f383a094e3418341804383c393c3031343c3f3f17323e281a130d3a392c381a3c383a4512321b3118161e333c143c3a363c3434341a3f3f492c3f07343c3f3f3c252f3f0b2548041c16383f1c14343c2c2c3b4d2c2f2f05343c3f3f3e13330c342c2f3f0f19043514350e153c3c0a3e3e043c3c2c1c4e1e1549154a2f0a2f3c343c3f3f100c25494b0a37353f383c1a3c38353c490f393e3c4d1e333c043c3a363c3434341a3f3f070a3b04343c3f3f070a3b051c16383f1c1438382c1c4e1e1549154a342c3c303c0a093f0b363913044e0d3f11180f3f08131a1a3f141a3e3e38354a3c381a1f2c27250c0a1f0d49343c24123c1a153f493c3f363a04383c393c3431343c2f3f3a352f3f3a3528303c1a093f0a32360a0a1a333f100c25494b0a341a3f144d3c394d383f1e2f093f100c25494b0a341a3f144d3c3916383f1e2f0e153c3c0a3c3e0a3c31341a3c4f3c1a2c1a3c043c39363c3434341a241a3c383b521e4e381a3c3e3c3a2c2544071e2a0e143f163b561e143c3a2c2548051c16383f1c17243e363e3c39343c242c3a29243e313e3c39343c3f3f3c252f3f3c13381a3c38383f1e4f122c3a29243e3038383c342f3c1a3c041a3e363e3c39363c340e1c16383c321a3c3c343c30123c1a2c1a3c041a3e303a0d3f3c39123c3c38355609190f0b1b14383c393c2c31343c301a3839243e32383a244c4b0c2f3c4d3a3c4d181b441b3e3c39363c3412343c30123c1715363a04383c393c3031343c30123c140a1a3c041a3e323a121a3c041a3e323e343c2c2c3b4d2c2c3704343c3f3f1b13330c2c2c3b0c34153c1a3c041a3e383a12093c3c3c4b3c3c3f3f520f251c4a4e49153c3c0a3e3e043c39343c30123c1a2c4f3c172c1a3c043c3f331a34452c1e0b0a0c1c343f2c193a1a082f1a1a3c041a3e333e3c39363c34452e150e153c3c0a3f3e043c39363c340a343c30123c17050c343c30123c153c1a3c041a3e3e3e3c39363c344d1c04343c343c30123c170a143c25373f3c252c1a3c3e3c3f1e4f090c312c3c3c321a3c3c343c30123c17053f3c2a12153c283a2f4c2408281804383c393c3c313c3c090f3c2c2f52343c3c123c1a3c0e3c3c3c2c2f2828382c38383c390a0e392c3e3c3c363c343c342c333f1b04383f343c373f07371007481a3f333f383f3f1b043c39313c3c3c2c293f0f341a2c1a3c1638361f3e343f1c143c382c1b525252524535343c3b0f2e150e153c2c0e1a3c3e3c392c2c3b0c331a343c343c38153c143c39313c3c3f383828333c3c0e1a3c2c0b4d381a342f1b0a3b56340a3f3f4d3c3f0f341a28163c3e3c3b343c384f3c160a1a3f28384e1c143828343c2b3f323a12153838383c342c383e2c3c373c3c163c3e2c3c333c343c3b3f52525252520a1e1a3e4f0936392c381a3c2e3c311c143831343c28123c160a143e14383f3c163c3e2c3c373c343c12093c3c3c143e2c2f3c3c4d3c3e2c3c373c343c113f520a3b05341a273b3f383c1a3c2e3837393c3831343c273f37281e333c2e3c3f342c16392c3e3c3f312c3c3f2c2e2b35392c381a3f2e3c3f2c2c370c341a244f3c160a1a3e28383f1c143837343c38093c3c34153e3e3c3a342c381a3e3838112f1a4d3c3e0a0e1a3e2e3c361c04343f2c1b525252524535343c090f34152b36392c1e1a3c3c2f3c343c3c1a3e143c3f383e1231343c38333f163b52342c483f3c2e383a343c28123c160a0e3c3c382c2f2e383f343c28123c160a153e3c373c343c3b3b392c3c1a3e3e4d3c3c1638162f0a4d3c343c1a0e3c3c3b3f303a0e153916383f342f373f3c04383a3e043c3b343c241a3e3a12143c29243e2938383c342c0a3e2c3e3c3f313c3c3c34153b3f343a0e143e38381b2e0a2f3c343c38153f1a0a3f3e043c3f342c273f3c2e3c34193e34352c24132f3f353b3b392c3c392c3e3c3b343c3b3f3c2a12143f17243e293e3c35343c0504342c0a1a3c2e0a3c3c2e342f2c2e3f0f341a153f343845333c2e3c3a342c3b3f3c2e3c34193e34352c24132f3f3538333c3c0e313c163c1a3828380c2f1a2f3c343c283e1b0a373c343c240e3c3c382c2f2828333c3e3c3b363c3730341a38093c3c373f37381e333c3e3c3f313c3c3f2c2c374d343c2f0c2c1e3c3f1c4d3836331a343c343c380e3c3c3b3f3c4e2c1a3c4f0d3f1a3c330f363c343c342c4c3f3c2e382e343c3b3f3c4f12303c2c0e1a381a4d3a2c2c3c153816383c342c4d1a3c3c2f3c343c341a3c141a3e3c3e343f2c2c2f0c331a343c343c38123c1a3c15392c0e1a3f2e1a3e2938383f1c1a0e143c29243e293e3c332c2c3f32392c3b3f3c3e3c331c043833343c053f1a303c3c1e143830393c3831343c2b3f073c3f0c38330e3e341a4c3f3c381a333e3e3c3b363c3730342c38312c2c3c153f163b52342c1e3e1b4d383c343c38093c3c3f3f31161e333c3f121a3c2e4d3c3c28380c2f1a2f3c343c283e1b0a373c343c380e3c3c342c2f2828333c3e3c3b363c3730341a38093c3c333f37381e333c3e3c3f313c3c3e2c2c374d343c2f0c2c1e3c3f1c4d3836331a343c343c380e3c3c373f3c4e2c1a3c4f0d3f1a3c330f363c343c342c1e1a3c2838381c1a0a3f3e043c2e392c241a3c3c2f52343c341a3c141a3e3c3e343f2c2c2f0c331a343c343c38123c1a3c3b2c2c3c31342c1e1a3f2e1a3e2938383e1c1a0e143c29243e293e3c352c2544072c2f444f393c3831343c281a3c28383f1c17243e293e3c3b2c1e0a3c1c15391f3c143835343c28123c160a153c28383f3e0438293c4d3c1a3f14382d2c2f0a153e2e3c3f313c3c3c2c1e383c1c4d38482e0a4d37343c281a3c28383f1c14342f331a3730343c380e3c3c3c153f143c2f342c381a3f143c2d2c290d0e1c163a2d311012093c3c3c143f16383f1c4d38342e2c4d3c3e0a373c3c163c1a3f16381f2f0a2f3c343c273b392c0e1a3916383c291a2f3c343c2c1a3916383e193a121a3f17243e3c3e3c3b343c301a39163839193a120d3c0a3c4e3c4d3c303c1a0e1a3c3828333e3e3c3b2c283f0f343c241a3c1539273c143c3b363c3730342f38303c1a0e1a3916383c291a4d363e4d383c342c381a3c3828333f0a0e1a39383552524e0905341a1a1a393e3c302c24393c3c35381f342c273f3c3e38302c18451c342c491a383e38373c163c3e2c3c373c3c13453e2c3c373c3c163c3e2c3c37523c163c3e2c3c373c3c163c3e2c3c373c3c163c1a3828383f1c040a3c3c3e343f2c2b4405343c381a3c28382d1e2838392f150e1a3c2e3c2d3a04343f2c191a3c1c0a49153f3f2c283b3f2c283b3f2c2839152c2d3f1a493239152c3a3b3f2c283b3c343b3c052c283e2f2c3f3b3f2c383c3c0e3e2c3e3c3f2c1e383c1c0a493539152c313b3c4932391a3c31343c3b3f4d0a3f3a392c1630380a0e1a3f2e16392c3e382a2c18451c393c28312c2c3c153c2c373c3c163c3e2c3c373c3c163c3e2c3c373c343c443f520a3b05391a1a3c3c2c34393f3f123b3f151231343c28123c163c1a3e07243e3c3c0a273e043c3b363c373c343c0e4f3c1a3c303a3c0e1a3f2e1a3e2c3e3c310f391e393c3c0a253e043c3b363c373c343c0e4a3c2c3c303b1a0e1a3f2e1a3e2c3e3c31321a3c3c393f2831343c28123c163c1a3e07243e3c3c0a283e043c3b363c373c343c080e330a303c393f3031343c193f3e3e3c352c2c15313a043835343c273f3e3534153f1635493c3e383f3e043c2c342c1a1a3c28381a1e2e382d343c280d3c4d3c143b113f3b3f383c392c3e3c342c2c3b0f341a1a1a3b0c193f394e3b3f1239370c312c3c3c343c4404321a3c3c343f273e394c24153e143c2a2c1a2e34342f241a3e1a4d3c3e0a0e1a3e3e3836343c273f3e353b3b343c280d3c4d3f2c1e1a4d39343c3b3f3f35273f4a050d0c342c483f3c143830393c3031343f3c153c2e3c3b362c333c3415272c2f2c2f3c3c4d3c1a3c28383f1c04343f343f1c132c2c19052c293f04321a3c3c343f273e3f4c24153e3e3c2a2c1a3234342f241a3e3c4d3c3e0a0e1a3c2e3836343c273f3e353b3b392c341a3f043c2c343c0d0f341a3b3f3c2a121a3c2e3c352e3f0e153f0a0a3e3e043c3b362c333c3415273e3c3b30382c3e3c3b2c1a3c1a3b134d143b171e392c38383f342c053f4a0512303c2c0e1a3f163a3c383538382c38383f342c053f453f12303c2c093f452f0d3f4a05121a3f16383f1e2e34303a0a0e1539143c2a343f3c2c170a38153e1a0e1a384d383c343c193f3c381a1f392c491a3f163552524e0905343c241a38050e153f143c3b362c333c3415273e3c3b341a3f4e373b3f383c1a383e38362c2c3c153f0a0a303e043c35343f272c343f3c1a3e10090c341a381a3c2e3c352e3f0e153f0a0a313e043c3b363c373c341a3b3f1a3f451a3c2f0e143e1434372c2c3f3f52525252520a1e1a3f043c352c2c3f343a04343a38330a3f341a381a3e2a0e1a3f143c3f3a04343f343c0d0c342c161a3f4d383c291a2f3c343c1a153f143c3f342c1e303e0a0e1a3e3e383a343c38153f043c37312c3c3c392c4d303e1a0e1a3f0a2f3c343c28123c163c303c1a093f3c3e383f343c3f3f343e3c332c2c3c1a3f153c08393c3431343c2b3f3c39243e393e3c3b343c280d3c4d3c563c1a1a1a3f2e3c3b2c2c150c341a384f3c163f3f1b043835343c3831342c113f3c3e383f3c163c392c3e3c37363c343c341a153b392c381a3f2838381c143c343833493e341a0d3f3c381a143e3e3c36343c1e1a3c2a09311e1628382c3e3c372c2c2f0c342c161a3f043c3f343c0d0c341a3b31392c38303c1a0e31343c1a33392c093f2d2e3837343c3b3f3c381a333e043c3c2c2e3c1a392e3c3f343c242c31143c3f2f2c2f3c2c2c3c153c2c0a3f3e4d383c342c1e1a3f2e1a3e2c3e38373c4d3c1a3e2e1a3e3c3e34342f2c4d3f343c2b3f3f3a121a3e3f39183c143434343c190c341a1e1a3c280e333c2e3c3c343c2b3f3f3a121a3e3f3c0c343c113f3f3a12153e2e3c3f343c1931392c3c313e043c3c2c2e3c1a392e3c3f343c273f1a303c3c1e053c08343c4d1a3c2e3c3f343c4c343a04383f393c1a31343f333f3c3e3c352c2c3f343a0a4d342c294d153e2e3c3c343c280f3c4d3c1a392e3c35343c241a3c283804382f4d3c341a3b3f3c3849333f0a0a373e043c3b343c280d3c4d3c453c39193f3c2e3835343f2c153e143c34342c24303f3c0e1a3f2e3c3f2c2c3b0c341a244f3c160a1a3c2e4d3c3c2e3837343c24153c2c0a3c3e0a3c31343c3c333f043c2e2f2c4d3e2c2c38153c2c333c343c2c1a3c28383e193a12123c1a3c143c3c2f3c343c301a3c283839193a121a3c3e3c3e3833163e2c2c38153e043c3f2c2c3b0c341a3b3f3e161e333c2c0a373e0a093f3c2e3831343c3b3f3e1645333f0a333c343c2c1a3c28383e193a12123c1a3c333c2e3c3f2c2c3b0c341a3b3f3e161e333c3c0e303f0a093f353e3837393c2c31343c161a3e100e1439043c35343c1e1a394d1a1f341a153f52525252520a1e1a393a0936392c373f2d2e3837343c1a1a393a12143f043c33343c1e1a3928121f341a381a3b2812333c043c3c2c2e3c1a3c2e3c35343c242c31143c3c343c491a393f3c0c343c3f3f303e3c3f343c1e1a3f163a3c1a3c2f07383e491a3c38380a343c1a1a394d383c383e491a3c3e3c36343c452c36143c3c2c2e3c1a3c2e3c35343c273f1a303c3c1e053c08393c38313e4d383c342c0e303c0a093f2d2e38373e4d35281a2c381a3e29243e3c3c093f1b0438313e043c3b2c193c3c1c142c3c343c0e311b0a343f1b0a3b56343c3e44341a333e333414132c1b452d1e2e343e2c1b452d2f0a2f45343c373b3f383c1a3c2e3c3c2f3c3c3c3c3c3c3c3c3c3c3c242c2f522c2c3c3b343c3f383c3c3c3c3c3c3c3c45383214343c382c4e2c34153c3e3c3f363c343c2c283f0c3e07243e3c3e3c3c390a0e1a3c2e3c3e2c1b49351c07243e3c3e3c392c0b525252525252525256351a3556392c123e3c1a343e3c1a34390a2d492e523f2e3c3c3e0a0e2e3c3e3c3c2f2c2f3c2c2c3c2d3e043c3c343c382c4f1a3831372c3c1a3c38383c2f043c3c2c1e1a092f4e381a3c38351a31281905343c3f3f1a341e3f2f4e381a3c383a24150a3b351e2c0b123c1a38391b0a373c343c38093c3c3c333c383a363515391f3c2e343f3f383c1a3c2e4d3c3c3c4d3f3e043c3c2c2c050e2c243c081c15391f3c2e343f3f383c1a3c2e4d3c3c3c4d3f3e4d3a2f3515391f3c2e343f3f383c1a3c2e4d3c3c3c4d3f3e4d3a133514383f3e0a373c3c4d3c1a3c2e3c3e1c144d3c3c3e34382f2e3c382c2e443a1e1628382c383825342c2c1a3c16383f1c14343e2c2f1935392c38303c1a0e31343c34153f3c093f0d0549153c0a373c3c163c3e2c3c373c3c163c1a3c2e4d3c3c3e343e2c2e483a392c3c1a3c2e3c381c144d3c3c3c4d3c343c38153c043c3e2c1e303c2f0a4d3f3e043c39312c3c3f2f2c4d3f3e043c392c1c1e183831243f2f2c4d3c343c333f452f4d2c091a38333c2c0e1a3c3828382c383a16312e383e343c30093c3c3b3f311624333c1a093f3c3c45312c2c3c153c283545151a38123c1a3c143c1a2f3c3c4d3c1a3c043c3e2c2c150c3831243f2f2c4d3e343c34123c143c143c1a4d3c3e0a093f373f3c27341a34382c3e3c3e2c1c2c09362c343c330a343c343c373f3e3a12143c2e3c39343c2c2c2c15121a3c2e3c381c16383c321a3c3c343c373f5234243f363c343c331a341a2c1b043a3c2e3c3e331a343c343c34153c2c0e1a3c283a16312e3c3c343c3b043a04383e3e043c3e3e04453c343c382c4a3c34143c2e3c3c2c1b453f1e2e343c1e28383f193e3c3c343c3b071c14343c2c2f2b042c2c3b4d343c3f3f3b25330f2c2f154d2c2f154c3e494d183c1a44523f2549173c383a2c3c2a0e143f3e2c3c343c2f3f3c383a2c3c2f3f3a341a333f1b07243e293e3c39343c3c4f3c140a1a3c4d3805331a341a343c301a3c39243e2b3e3c3f342c2c1a3c143832340a3f3f0e3c370f341a24163c3e3c39363c37303a1a373c3c163c3e2c3c373c343c30123c1a2c333c3e3c393832163f3a143c39363c3438392c3c303c2c0e1a3f3e4d3c3c3e343c2f2c4d3e3c163c392c3c373c3c163c1a3c3835523c25382c1e3c2f3c3c4d3c1a3f3e343c2c2c3b0c342c2c1a3c3e4d3c3c2f3f0a392c3c31343c333e3c3f3f293c4d3c3e1b043c39363c3438341a381a3c041a3e1c381e382c3e3c39343c3b3f3c2a124f3c1a2c1a3c2e4d3c3c3c0a3f3e043c39383f343138353c333c3c0e1a3c041a3e3f3e3838343c300d3c4e3f3e3c3b16382c3e3c39343c2f3f3c2a0e143f39243e3f3c0e1a3f3e3c39363c340e1c4b0a1a3c041639183e3c281b350a153b3c0a3f3e0a37523c163c3e2c3e3c38312c3c3c2c2e2b3a3f383c1a3f3e4d3c3c2e343c2c2e0d3a392c381a3c3838112f0a4d3e3e043c392c1a3c2c280a373c343c2c093c3c3f3f372824382c3c333c3c13451a3c041a3e3f3e343c343c30123c1015353f383c1a3c043c3c2c2c3b0c331a3438343c3c093c3c3c303c2c0e1a3c053c2e3e04343c38353c333c3c0e1a3f38383f1c143838393c3831343c30123c1a2c143c3e3c39363c37122f0a2f3c343c301a3c38383f1c17243e3f3e3c3c312c3c3c342c3c303c2c0e1a3c053c2e342c3c31343c2c093c3c3c1a3c381e382c3e3c39362c330a2c1a3f273f383c1a3c043c39363c34382c2c3b0f331a34383e043c3c2c2c3f32392c0d3f3c3e3830343c4c3b392c1a303e1a0e1a3c041a3e3f3e3c39363c340e1c4b0a1a3c041639183e3c281b350a153b3e3c38342c3c303c0a093f3c3e383e343c2f3f3c1012303c2c0e3e2c3e3c3c38382b3b392c3c1a3f3e4d3c3c1638162f0a4d3c343c2c093c3c3b3f303a0e153c3e303c2c2f3f0f341a381a3917243e393e3c3f343c491a3c38383e193838381c4d383c343c3f3f3c280e1f1c14343c2c2c2f0c331a3434343c3c123c1a3c153c143c382c2c330c393c3831343c49123c1a3c153c143c322c2c2f0c342c491a3f38383f1c1a0e153c38383c342c053f3c3e3838343c3c093c3c3c2c2f2c2f3c3c4d3c1a3c3e4d3c3c3e3c382c2c0d0e1c16380a1c043838343c3c093c3c38153c2e3c3c2c2c3b0c342c3c1a3c2f3f3b392c3c313e043c3c312c3c3c341a2b3f4a2c3f353f35451a3c3c2b3f3c3e3837343c373f3c381e15393e3c3c312c3c3f342c2b3f3c3e3836343c3f3f3c2a1231341a3b3f3c2a12153c383839342c1e3e2c3c373c3c163c3e2c3c373c3c163c1a3f28353f3c3a0e32321a2c373f3c16383f3c2c373e2c16373c0a16373e2c16373e2c2c373e2c16373f3c16373f3c16373e2c16373f3c16383f3c2c383f3c3c383f2c163f3e2c2c383f3c16373f3c34383e2c16383e2c34373e043c3f2c2c370c343c3c1a3c2e4d3c3c2835123c3824143c2f0e153c383b562c25451a3c2f0e153f0a0a383e043c3f2c2c370c343c3c1a3c2e4d3c3c28350e3c3824143c2f0e153c3838392c2c381a3c2f0e153f0a0a393e4d383f342c1e303c1a093f3c143835393c38312c2c3c153f043c3f342c3c312c2c381a3f043c3c312c3c3c341a3b3f314e3b3f3c4d24143f2f0e15390a373c343c3b3f3435341a3c2e3c3b3a0434312c190e3c2f1a4d3c3c163c1a3e4d35083c381e382c3e3c312c18303c2f0a4d3f343c2f3f3c2e3c382c2c3b363a043838393c3431343c341a39043c283832303e393c3431343c333e3c3f3f293c4d3c3e1b043c39363c3438341a381a3c041a3e1c381e382c3e3c39343c3b3f3c2a124f3c1a2c1a3c2e4d3c3c3c0a3f3e043c39383f343138353c333c3c0e1a3c041a3e3f3e383f343c300d3c4e3f3e3c3b16382c3e3c39343c3b3f3c2a0e143c29243e3f3c0e1a3c2e3c39363c340e1c4b0a1a3c041639183e3c281b350a153b3c0e1a3c043c380f3e342e383b303e2c3e3c39363c3438341a381a3c041a3e1c381e382c3e3c39343c3b3f3c2a124f3c1a2c303c2c0e1a3c053c2e2c2c3f34392c2c31343c300d3c4e3f3e3c3b16382c3e3c39343c30123c1a2f3f3c2a0e4f3c1a2c312c2f3c153c2c373c3c163c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3e3c312c191a3c1c0a49153f1a0e313c1a0e313e0a0e313c2c0e3e3f3c383f3c2c0e3b3e0a0e313e0a0e393f1a0e313c1a0e383e0a0e3a3c3c0e1a3e4d353f3c3a0e143c28383a2e4d383f343c3b4d2c1b383c1e282b04392c1231343c273f3e3a121a3c043c2d2c2c3c2c481a341a3c0416391838343c343c30123c1a2c1a3c041a3e313a080e1b2b383339043c3e2f2c4d37343c240d3c053c1538143c3a362c3034342f301a390a49393f2c24353e2c0e1a3e4d350b3c253b3f490a3f3a3f383c1a3f16381a1c163b522c24383e3838241c343c273f3c39123c343e3c312c1b303c2f0a4d34343c273f3c39123c2c2e3c3a2c2c3c4b3c3e491a3f16383c331a380c393c1a31343c273f343a121a3c3e4d3c3c2e343f2c19493c2f14343b2c24383e3838241c343c273f3c39123c343e3c3c2c2c370c343c3f3f3c2a121a3f2f0e153e3c37523c163c3e2c3e3c3c2c2c373f3c2e3c3b3a4f12093c3c3c143c3838092f0a2f3c343c3f3f4e2c3f3a392c381a3c2835183c381e153f043c34393c3031343c241a3c2835183c381e143f07123c291a0a3f3e043c3a343c3b3f4e1a3f35341a1e4b3c354931343c153f3c2a1231342c3c392c3c373c343c3c093c3c3c143c2838092f0a2f3c343c3b3b392c451a3c2835193c381e333c2c0a363e4d3809342c381a3c3e4d3c3c2e343b2f2e3c3b2c194d3c2f1334333c3e3c3c2c2c3b0c342c1a3e2c3e3c3b343c3f3f3c2a0e093c3c3c143c384d382c3e3c3b342c38303c2c0e392c3e3c3c2c2c3b0c341a3c1a3f16381a1c10121a3f07123c3c3e3c3c343c1a093c3c3c143c2816333c3c0e31343c1a153c3c0e1a3c2e3c3a1c143c35321a3c15343c3f3f3c2a12153c3c0a3c3e0a3c312c2c1a153c2c0a3e3e4d3836342c38303c2c093f3c3e383f3e4d343c342f373f3c3e383b2c2c3c153e38383c342c1e173c38382c1c04342c373c3c3e2c3e3c3f2c2c3b35343c3b3f37384c052f2c2f3c2c192e3f3c28381e331a343c393c38313c4d3c3e1b043c39363c3438341a2c1a3c041a3e1c381e382c3e3c39343c2f3f3c2a124f3c1a2c1a3f3e4d3c3c3c0a3f3e043c39383f3431341a2c2c1e3c4d3c3e0a373c3c163c1a3f38380f1c0a49393c3c383c3c2c093f1b4d383c343c2f3f3128241f342c1e1a3c041a3e3f3e3438343c30123c1015353f383c1a3c043c382c2c3b0c331a3438343c2c093c3c3c153f3c0a3f3e043c39383f34153f3c0e3e2c3c373c3c163c3e2c3e3c3f2c2a4405343c2f3f303819042f2c2f3c3c13451a3c041a3e3f3e3438343c30123c1015353f383c1a3c043c382c2c3b0c331a3438343c2c093c3c3c303c2c0e1a3c053c2e3e0434382c2b44052c191a3c2f1a2f3c2c2f3c153c2c3752343c30123c1a2c143f3e3c39363c37122f0a2f3c343c301a3f38383f1c17243e3f3e3c38312c3c3c393c3831343c302c381a0e143f383a05362a12093c3c3f3f383816333c043c39362c330a2c1a3f273f383c1a3c043c39363c34382c2c3b0f331a34383e043c392c1a3c2c280a0a3a3e043c3f392c3b3f3e3e383f393c3431343c3b3f3e143c3f3a04343f343c2f3f0e2e110c312c3c3c2e0a4d3c343c300d3c4e3f3e3c3b16382c3e3c39343c30123c1a2f3f3c2a0e4f3c1a2c31343c333e3c3f3f292c192e3f3c28381e331a343c393c2c31343c3b3f3e161e333c3e3c382c293f0f341a2b3f3e284d382c38383c342c38392c3e3c3f2c2c0d0e343c2b0c341a3b3f101f2d10073c3b373c13451a3c041a3e3f3e3438343c30123c1015353f383c1a3c043c382c2c3b0c331a3438343c2c093c3c3c303c2c0e1a3c053c2e3e0434382c293f0f341a2b3f3e284c05392c3c31343c3a09342f34313c163c1a3f2838372e0a4d3c343f373e3e13491538043c3b0f2e382b3c4d3c3e1b043c39363c3438341a381a3c041a3e1c381e382c3e3c39343c3b3f3c2a124f3c1a2c1a3c2e4d3c3c3c0a3f3e043c39383f3431341a2f3f303a0e143f2838372e043c29343f2b453415373e100f2d1007371007480e0a272a1334333c2e3c2e2c1a0d563415301a3f1c4d143b283752152b1a333c3c093f3e14383f393c34312c2c12153c2e3c3b2c2c1133392c38303c1a0e1a3c2e3c3f2c2c3b0f1e2c2f3c343c2f3f0e2e110c312c3c3c341a1a1a3c2816382c3c333c343c381a3f2a0a1a3e3a12143f283535495238492e2c3752343c30123c1a2c143f3e3c39363c37122f0a2f3c343c301a3f38383f1c17243e3f3e3c38312c3c3c393c3831343c302c381a0e143f383a05362a12093c3c3c143e3e3c3f2e2538333c3c0e1a3f1c4d15381a0e1a3c2e3c34292c4d3f343c3a09342f30392c3e3c2e343f33563415281a3e364c3e520a3a393415273e1b492b2a392c341a3b2e3c2a1b3e382e343c383e1b043c39363c3438341a2c1a3c041a3e1c381e382c3e3c39343c2f3f3c2a124f3c1a2c1a3f3e4d3c3c3c0a3f3e043c39383f3431341a2f3f0e2e110c312c3c3c341a1533392c341a383e3c292c1a3c1a3816343c383e0e1a383e16393e3b3c333c3c0e303c2c0e1a3c2838251f38383b191638351e283a05364f120e3c3c3c15382e3c382c1f380d1c144d3c3c3e343b343c3b373f383c392c3e3c34343f3b4d343c2b04341a153f1a343e3c0a3c3f373c13451a3c041a3e3f3e3438343c30123c1015353f383c1a3c043c382c2c3b0c331a3438343c2c093c3c3c303c2c0e1a3c053c2e3e0434382c1f380d1c144d3c3c3e343b343c3b371e2c4d3c3e043c340f2e382e3e043c3f343c2b33392c3f3e1b043c2f0f2e3429143e342b343f3728392c3c392c3e3c3b0f2831523c24301a38143c2915122c1538143c3f3c13451a3c041a3e3f3e3438343c30123c1015353f383c1a3c043c382c2c3b0c331a3438343c2c093c3c3c303c2c0e1a3c053c2e3e0434382c1f380d1c144d3c3c3e343b292c4d3f343f341a3b2b1a333c3c0e31343c381a3f383a05362a12093c3c3f33392c3c392c3e3c3f3c13451a3c041a3e3f3e3438343c30123c1015353f383c1a3c043c382c2c3b0c331a3438343c2c093c3c3c303c2c0e1a3c053c2e3e4d3a05362a12093c3c3f31392c3c312c192e3f3c2835383c39243e3c38383c342c193e1b04382e3e043c39362c330a2c1a3f273f383c1a3c043c39363c34382c2c3b0f331a34383e4d383c343f373e1b4c381a3f4d383f1e150e382c3835281a2c3b3f053c3c4f3c1a3f3e1b14382e393c3831343f341a3f4b0a143849281a384e4d15381a0e1a3838382c1c142c3c343c300d3c4e153e3c3e3c39363c3438343c30123c14050f0f354c2f392c121a3c16281a3e4d350a3c3819042f2c2f3c343c341a3817493e3c3c0a3b3e043c3e343c451a381539173c1a0a383e043c3e343f301a381539163c171a3e3c3c0a393e043c3e343f301a381539193c2916393c3c0a3e3e043c3e343f304e3c0a3c1a3c143c2e330a3034393c3831343c2f3f3c2a0d3f35043c312c18303c2f14343b3a0438353c163c3e2c3e3c2d2c2c3b35341a153b3f383c1a3c14383f343c0a382c3e3c352c2c374d383f16143c2828333f1a0e1a3f16343c330a32123c16383c342c2c392c3e3c3f342c12392c3c3752343c30123c1a2c143c2e3c39363c37122f0a2f3c343c301a3c28383f1c17243e3f3e3c3f312c3c3c393c3831343c302c381a0e143c2e3c3a1c144d3c342828333c043c3a343c384b3c3f0e1a3f16381e1c143c3a2c2f090c2c2c381a3f163a123c10122c090a38143c283b562f1a4d3c2c2c3c153e2e3c3f2c25443a392c161a3e1a2f3c343c121a3f38383e193a121a3f141a3e3539243e3c3e3c382c2c3b0c342c2c31343c0a1a3f3e3c352f133b3b392c3c31343c121a3f4d383f1938383f1e1434352c2c374d3837493f341a38333c3c0e303f0a0e1a393c2f3c2c2c3c153f3e3c35383f16143c2828333f2c333c343c38153e2c333c3c13451a3c041a3e3f3e343f343c30123c1015353f383c1a3c043c3f2c2c3b0c331a3438343c38093c3c3c303c2c0e1a3c053c2e3e04343f343c270c312c3c152f2c2f3c2c2c3c153e1a0a3b3e043c38343c110c343c384b3c3c3c1a3f38383f1c143438343c1935392c3c312c2c3c153e143c37343c193f3c252f3f3c2534143f053e183c2e343f392c3c31393c1e312c2c3c153f3e3c3e3f383c392c3c3752343c30123c1a2c143c2e3c39363c37122f0a2f3c343c301a3c28383f1c17243e3f3e3c3f312c3c3c393c3831343c302c381a0e143c2e3c3a1c144d3c342c2f3c343c341a3f3a121a3c29123c3c3e3c382c2c3b0c342c2c303c2c2b3f3c3e3836343c34153e2c0a383e0a3c313c3c0e392c3c3752343c30123c1a2c143c2e3c39363c37122f0a2f3c343c301a3c28383f1c17243e3f3e3c3f312c3c3c393c3831343c302c381a0e1a3f1012093c3e38333c3c093f3c3e38372c2c3c153e1a0a3f3e4d383c342c161a3f163a123c1012381b043c3a363c36123c1a2b3f3c3c0e333f2c0e1a3c041a3e3f3e383f343c300d3c4e3f3e3c3b16382c3e3c39343c3b3f3c2a0e143c29243e3f3c0e1a3c041639183e3c3f343c30123c14050f0f350a14384c3c1a3e4d35173c38241a38143c2928133b04392c243e2c3e3c302f2c4d3c343c153b3f383c1a3c143c36331a343c393c3831343c341a3e29243e3c3c0e1a3f2c4d3c343c12382c3e3c36343c2f3f3c132f0c2c2c3c4f3c1a3c31343c113b3f383f3f3c3e3837393c3831343c2c1a3e2a0d3f3c39123c3c3c0e1a3c041a3e3f3e3c39363c340e1c4b0a1a3c041639183e3c281b350a153b3e3c33343c373f3c38190c342c4d31343c3f3f3c2a12153f3e3c3c312c3c3f341a3c333c2c0a3b3e0a093f3c3e38372c2c3c153e1a0e1a392c4d3f3e4d3b52342c4d31343c053b392c3c1a3e2f3c2c343c122c383c0e1a3f163a0a3c1012163c3e3c33342c3c1a3c4d3a2c3c2a12163c3e3c3c3e4d303c3c163c1a3c3828333c3c373c3c163c3e2c3c373c343c3b3f3c1012323f1a3c3f3c1a34383c0a2c31343c3c1a3c170a3c3c3c4531343c3c1a3c174d3f3c3c4531343c3c1a3c17493e3c3c4531343c3c1a3c171e393c3c0e31093c303e3c4e453f1b14303c2c2e3f0f341a30163c3c373c343c3b3e5252525252525252525252523c3430143f28363c1a343e3c1a34393c0a394444343c2b3e1a343e3c1a343e3c0a31523c3c354c283f383c1a3c28342714361e153f3e3c3c283e3c3f2c0b5252520a5639341a2b3e1a343e3c3e3b2c1a3f28363c1a343c34282f093b3f383c1a3f383a3f1a343e3c3f3a12153c1a0a3e3e043c382c243e3c1a343c381c14383e343c3c1a3f28363c1a343c3415242f3e3c3b34333c2e3c3e343c2f3f3c253b0c342c34303c2c0e1a3c3b3c1a3f28363c1a343e3c1a34393c5252453c2b3e3c3b2c123e3c1a343e3c1a303952520a3f2f3a4d28382c3e3c3f2c1510340d4d35525252453f1e283a3c1a3439563f4e34153c1a0a3f3e4d3a3c1a3439453f04383e343c2b3e52525252525252520b4a523c3c3b24333c38383c342c341a3f28340a14361e143f383a2f521a3f37392c3c1a3c4d382c1c143c3c343c3b3e52525252525252522d49333e1a343e3c1a343e3c0a3c3e38341a281a3f383a3f521a3f0f383e451a3c043c3c343c2b3f1a1b453c343c2f0f38350a1a3c0416393e3e343c2c1510340d04383e343c300d3c0a3c1a3c041639383e3c39362c30241538343c280c4f38341a2b2c343c3f3e52525252394930143c38363c1a343c342b3e3c3c2c123e3c1a3c152f3a4d28382c3e3c3e2c2c3b0c342c34303c2c0e1a3f2e3c3c2c123e3c1a3c143b1538343c281a4d3c343c373f3c25381a3c1012153c1a0e1a3c4d381a1c142c3c343c341a3c28341a1436193f1a343e3c1a3515051e0f49311a2c2c3e3c4e453f1b1a373c3c163c3e2c3c3752343c3c123c1a2c143c143c3c363c37122f0a2f3c343c3c1a3c16383f1c17243e3f3e3c3e312c3c3c393c3831343c3c2c381a0e143c4d380f1c0a49393c2c3c3f3c3c0e1a3c4d380a1c04383f393c3831343c333f312824153f3c373c343c3b3b3c13451a3c3e1a3e3f3e343e343c3c123c1015353f383c1a3c3e3c3e2c2c3b0c331a3438343c34093c3c3c303c2c0e1a3c3f3c2e3e04343e2c293f0f341a3b3f3e161104392c3c1a3c3e16391e38343c280a4d3c343c3c1a3c3e1a3e3f38383f1c07243e3f3c0e1a3c1438393e0a373c343c3b3f3e1616382c38383c342c34392c3e3c39343c373f3e10050c342c383e1b043c3c363c3438341a341a3c3e1a3e1c381e382c3e3c3c343c373f3c2a124f3c1a2c1a3c144d3c3c3c0a3f3e043c3c383f3431342c301a3c28380a1c04383e343c373f07371007481a3f34343c333f303a0e143c283837292538333c3c0e1a3c0c0a153f2c373c343c3b3f3e1645333c3c333c343c3209343c2b3e3e1348452c173f44342c283e1b043c3c363c3438341a381a3c3e1a3e1c381e382c3e3c3c343c3b3f3c2a124f3c1a2c1a3c2e4d3c3c3c0a3f3e043c3c383f3431341a333f303a0e143c2838372e0a4d3f343c2b3e0f12563b4c451b3e4b4b303f280a4d3c3e0a0e1a3c2838362e2c2f3c3c4d3c3e1b043c3c363c3438341a381a3c3e1a3e1c381e382c3e3c3c343c3b3f3c2a124f3c1a2c1a3c2e4d3c3c3c0a3f3e043c3c383f34312c293f0f2c2c0d37392c3c313e043c3c362c330a2c1a3f273f383c1a3c3e3c3c363c34382c2c3b0f331a34383e4d343c343c2b44343c281a3f3f0e153f2c0a3f3e4d363c1a343e3c1a343e3c1a343f52342c281a3c3e16391e38343c280a4d3c343c3c1a3c3e1a3e3f38383f1c07243e3f38363c1a343e3c1a343e3c1a343f52390a0e1a3f2c081a301a302c1b0a19563c250a173c38380a1c043430373c3c3e2c3e3c3e2c2c37333f383c1a3c16383e193e343e2c270a0d1c141a3e3c3e382d343c373f163e110c363c343c342c49392c3c3752343c38123c1a2c143c143c3f363c37122f0a2f3c343c381a3c16383f1c17243e3f3e3c3e312c3c3c393c3831343c382c381a0e143c153f0a392c3c312c2c38153f1a373c3c163c1a3c16380f1c0a49393c3c383c3c2c093f1b4d383f343c373f3128241f342c241a3c2e1a3e3f3e343e343c38123c1015353f383c1a3c2e3c3e2c2c3b0c331a3438343c34093c3c3c153c1a0a3f3e043c3f383f34153c1a0e3e2c3c373c3c4d3c1a3f283a363a10120e3c3c3c1a3c16381a1e1624382c3c373c343c2b3f3f160e333c3e3c3f363c3438341a341a3c2e1a3e1c381e382c3e3c3f343c373f3c2a124f3c1a2c1a3c144d3c3c3e383e393c3831343c382c3814383e3e043c3b2c2c3b0c341a2b3f3e381e333c2c0a3e3e0a0e1a3f2838392f0a2f3c343c2b3f3e3824333c2e3c392f2e3c3b2c2c2f371e1a4d3e343c2b3f3e3824333c2c0e1a3c2e16391e3e34282c1a3f273f383c1a3c2e3c3f363c34382c2c3b0f331a34383e043c392f2e3c3b2c2c2f371e1a4d3c343f2f3e3c3b30153c1a333c343c373b3f383c1a3c2e3c3f363c34382c2c3b0f331a34383e043c3b2c2c3b0f341a2b3f3c4d0e333c3c0e312c1a3c153b3e303c2c2f3f0f341a34163c3c3756343c1c042c0a3c3c1a3556280b3e34392c1b5252525245351e2e343f2c243e3c1a3c2f0f2c1b525252521e35292c2f3c343c3a092c15103a2c123e3c1a343e3c1a34393c2d4e0a303c2c0e1a3c4b4c3e3a24273e1a343e3c1a343e3c0a2d52523c342c1a3c283a3c1a3439453f4d45333c3f0d3e3c3e3c3f2f2c4d3c3a143c3e343c3a092c1a3c1a3c2a1e143c28352f3c3a122c31043c3e362c303c342f2c1a3c1416393e38363c1a343e3c1a34393c3c342b3f141b453c343c3b0f0f28340a15122c31342f281a393e3c28330a303c343c0a1a3b2e3c392c243e3c1a343f491e1c4c3e34341c38330a3034343c373f383a12163c3e3c30362c3034342f2c1a393e16393c3e382b393c34313c163c3e2c3c373c343c28333c38383c342c28392c3e3c3b2c1e1e1e1c140a3c3c3e3c3e2c2e3f042f0a4d3f3c163c1a3f28383f2e0a4d3c343c38123c1a2c143c143c3f363c37122f0a2f3c343c381a3c16383f1c17243e3f3e3c3e312c3c3c342c34303c2c0e1a3c2f3c2e342c3431343c2b3f3c2a12143f2838392f0a4d3c3e0a0a3f3e0a373c3c163c1a3f2c49383c3c383f3c1a38313c163c1a3c16380a2f0a4d3c3c13451a3c2e1a3e3f3e343b343c38123c1015353f383c1a3c2e3c3b2c2c3b0c331a3438343c28093c3c3c303c2c0e1a3c2f3c2e3e4d3b1b1e2835243c3824382c3e303c2c1f3c391c04343e373c3c3e1b043c3f363c3438341a281a3c2e1a3e1c381e382c3e3c3f343c2b3f3c2a124f3c1a2c1a3f2e4d3c3c3c0a3f3e043c3f383f3431342c283e2c3c37523c4d3c1a3f28380a2f0a2f3c3c163c1a3f2838082f0a4d38343c38123c1a2c143f2e3c3f363c37122f1a4d3c343c381a3f28383f1c17243e3f3e3c3b312c3c3c393c30313f2e3c3f363c3438341a281a3c2e1a3e1c381e381b4d383f342c121a3c2e3c3b2c2c3b0c331a3438343c28093c3c3c3b2c2c38153e143c3f383f3431342c28303c2c0e31343c382c381a0e153f28383f342c2c1a3f28380a2f0a4d3c3c4d3c1a3b4d343f1b2e38253c13451a3c2e1a3e3f3e343b343c38123c1015353f383c1a3c2e3c3b2c2c3b0c331a3438343c28093c3c3c303c2c0e1a3c2f3c2e3e04343b2c293f3a392c3c312c2c38153e1a093e1a343e3c1a343e3c0a2d4552342f283e2c3c333c3c163c1a3f28381a1e1438313c163c3e2c3e3c3b2c293f0f341a153f3e1616333c3e3c3b2c2e4835343c093f492c3f0f2c2c272d1e2c4d38343c2b3f31161e333c3e3c38392c373f3c2e3838343f2c153b0a0a3f3e043c312c191e3c1c043c34343c2b3f3228121f342c283e2c3e3c282c1a19253f383c1a3f2e3c372c2c2f4d1c143837393c3831343f2f3e353b1e382c3e3c3e2c293f0c343c282c2c2e3c3e2c2e3f0c343f161a3b28343c2c123e3c1a343e3c1a3039442d053c24343c373f383a121a3c141639343e3427343c340d3c041a143b2e3c3e362c300a343c340d3c071a2c3a3e3c3e343f241a3a3e3c3e362c302c343c340d3c051a2c2d3e3c3e362c3034342f1a1a3c1416393c3e382a393c3831343c2b3b343c1904392c3c1a3c16352c3c3a121a3a2e3c2b2c1a3f3e1a343e3c1a343e3c1a2d4552383f1a1a3c163b3c1c043c2a343f1a1a3c141639283e3c3e362c332438390a1a3c1416392e3e38242c2c38153f043c3e362c333c342f2431343f2f3e3c250a153b38383f342c1231343c38123c1a2c143f2e3c3f363c37122f0a2f52343c381a3f28383f1c17243e3f3e3c3b312c3c3c3f2e3c3f383f3431342c28303c2c0e312c2e49153f2c0e3e1b143c362f2c2f3c3c163c3e2c3e3c3f362c330a2c1a3f273f383c1a3c2e3c3f363c3438341a2b3f3c2a0e4f3c1a2c1a3c4d28333c2e3c3f343c2b3f3c100e4f3c1a2c1a3f3828333c143c3f343c2b3f3c4f0e4f3c1a2c303c1a0e1a3c0a4d3f3e043c3f2c1a3c2c280a0e1a3c16351a3c3a121a3f0f19383c3c3c3c3c3c3c3c3c3c3e14383b4d1a3c141639243e382a343c340d3c4f1a303c2c0e1a3b3834352b0a2f3c343f2c153b2c333c343c113f3f352c153e2e3c2b2c1a3b4534152b3e3e3b34333c3c0e313c163c3e2c3c373c343c2b3f254e3b3f4d3c3f3a3f383c1a3c2e3c393832283e34152b3e1a343e3c1a343e3c1a343e3c1b4c34333c043c393f383c1a3c2e16391e38343c2a2c4d3e393c30312c1a3c153b143c3f2c1a3c2c284d343c393c2c312c1a3c153b2e3c3f362c330a2c1a3f29392c3431343c381a3c2e1a3e3f38383f1c07243e3f3c093e3c3e382b3e043c372f2c2f3c343c373f453c3f0c343c1c4e2f3c3c3c3c3c3c3c3c3c3c3c12153f19343c340d3c4e3c153b143c3e362c3349393c3831343f1e1a3b3e3c383a4d343e15143c2b1b38341a1b2e34282c2c3c1a394f08092b2c2f3c2c192e3f3c2835383c39243e3c3e3c3e2c1c3c3f1c143c3a3838381a3c163a2c3c2a121a3c141639123c381a3c1416390c3c3b3e1b4d315252525252525256525252453c383f1a1a3c163a3c3c2a121a3c141639163c381a3c141639103c3b3e1b4d315252525252525256525252453c383f1a1a3c1416391a3c38153b143c3e362c32343c2c0a3f3e043c2d2c18343f1c4b0a1a3b3b1e382c3e3c372c2c3f323f383c392c3e3c3e2c1c3c391c143c2a343f153e3c38363c1a343e3c1a34393c524a445238390a1a3b143c242c123e3c1a343e3c1a3439522d05391a3c2e383f343c373f163c330c343f241a3a3e3c2a343c340d3c4b3c39343c3b3f3c381a143c050e1a3a3e3c3e362c32123c043c393a053c45343f2f3e3c254d153b3e3c3e362c32243c043824343c340d3c483c39342f241a3e28383f193e3c3f2c2c3f321e1434372c2c3f32392c3c313e0a3756343f2c1a394b05442c143f4534152a13341a3b3f3c3e3c3f2c2c3f363a043c32343f281a390c4c293a04343f2c1b383c291a2f3c343c373f1a3c330c343c242c2c2e3c3e362c32343c043825343c340d3c493c39342f113e3c3c0a3f3e043c3e2c183c3e1c163a2c3c2e3c3f1c05391b3c2f3f19343c373f4d3c370c343c242c2c2e3c3e2c1b3c3e1c143c3e362c2d1a3c143c3e362c2d123c143c3e362c2d2c3c143427343c340d3c441a3e34151e2c4b0a341a3c141639563c34153a143c3e362c2d0a3c1a0e153b2e3c3e2c1e3c3e1c143c37343c113f3c253b3b343f241a3a38343c2c1a3c2c184d383c2f043c3f2c2e3f341e2538143c2a122c163c381a3c163a0a3c10121a3a2e3c25343c340d3c453c3e343c340d3c451a3e383f1a1a3c163a2c3c10121a3c1416390e3c341a3c141639083c341a3b2e3c1c38390a1a3c163a1a3c100d3e3c3e3c2a343c381f2c1a3c1a3a3e3c3f3a043c27343f1e2c3a3e3c3e2c243c3e1c143c3e362c321a3c143c3e362c32123c143c3e362c322c3c143c3e362c32243c153c45343c373f453c3b0c343c340d3c493c3e343c340d3c491a3e343f281a3a1539183c2e3c3e362c2d0a3c2e342b343c340d3c521a3f3415193e3c38343c3835093b3f383f3f4c34383f2c1e2c3c331a343c3e043c3e2c183c3f1c143c2b343f1e1a3b361e2c4b1a341a3c141639493c38153b143c3e362c2d123c2c0a3f3e4d35281a2c3b3f053c3c4f3c1a3c1a3c16352c3c2a121a3f153f3f343c373f0a3c3b0c343c340d3c443c3f343c340d3c441a3f2c1a3f3e1a343e3c1a343e3c0a3c3c2c3a3e3c3e2c1f3c3f1c143c3e362c2d3c3c2e3c3e362c2d343c28343c2c123e3c1a343e3c1a303c3c383f1a1a3c1416390e3c38153b143c3e362c32493c2c0e153b3e3c30343f244e3c053c1a393e3c28330a3024343c373f0e3c330c373c3c1a393e16393a3e3828343c0a0d3c053c153b2c0a3a3e043c3f362c330a2c1a3f29392c3c1a3c2e3c3f363c34382c2c3b0f331a34383e043c3f342c281a3f143837343c30153e16383c342c273f3c3e3839340a3f3f1630243c1c043438373c3f3f3c3e3c32343c440c3415370f342f303e2c3c37523c4d3c1a3c16380a2f0a2f3c3c163c1a3c1638082f0a4d38343c28123c1a2c143c2e3c3b363c37122f1a4d3c343c281a3c28383f1c17243e3f3e3c3f312c3c3c393c30313f2e3c3b363c3438341a381a3f2e1a3e1c381e381b4d383f342c241a3f2e3c3f2c2c3b0c331a3438343c38093c3c3c3b2c2c38153f143c3b383f3431342c34303c2c0e31343c282c381a0e153c16383f342c1e1a3c16380a2f0a4d3c3c4d3c1a3b38343f1b2e38283c13451a3f2e1a3e3f3e343f343c28123c1015353f383c1a3f2e3c3f2c2c3b0c331a3438343c38093c3c3c303c2c0e1a3f2f3c2e3e04343e2c293f3a392c3c312c2c38153f1a0e1a3f38383c331a362c3f1a37563c163c3e2c3c373c3c163c3e2c3e3c3e2c2e483a341a3b3b343c373f303a0e143e3838372e4e3b3b3f383c392c3c373c343c3b3f3c2538382c3e3c352f2c2f3c343f28153b38383f342c1e303c1a0e1a3f1628153c2c0a383e043c2b2c1a3b45342f281a3c4d3545394d0a382c3e3c33343f2a13343c373f3038241f342c4d1a3f383a2c3f10121a3c4d383e193a12143c2e3c313f35451a3c143c3f363c343c2c2c0d0e1c16380a1c0a281a3e3c0e4f3c1a3f3f3c2e383a2c2c3c1a3e4d383f1c14343f343c3b3f3e2824143c2f0e153e043c3f343c330c342c30303c2c0e1a3c16380a2f1a4d3c343c2c1a3f3e1a3e1a38273f3c25344f3c123f3a2c19042d3c2e38333e0a3752343c28123c1a2c143c2e3c3b363c37122f0a2f3c343c281a3c28383f1c17243e3f3e3c3f312c3c3c393c3831343c282c381a0e143c1638082f14343f343c373f303a0e143e3838362e2534333c3c0e31343f2c1a3b2e3c353a043828343c273b343c373f254e3b3f052c3f351e1628382c3c373c343c281a3e1539113c14342a2c123e3c1a343e3c1a343e3c1a35442e392c3c1a3e1628333f28343c342f241a3f2e16391e38343c280a4d3c343c281a3f2e1a3e3f38383f1c07243e3f3c0e1a3f1628333c043c28343f2745342f2c303f2c0e1a3f1628153c2e3c3e2c2c3f34392c3831343c280d3c4e3f3e3c3b30333c3e3c3b343c28123c1a2f3f3c2a0e4f3c1a2c31343c3b3b392c34312c192e3f3c28381e331a343c3e4d343c342f281a3f28343c383b333e3c3c0a3f3e043c38363c362c3f14343f2f2c2f3c343c2c1a3e1f19383c3c3c3c3c3c3c3c3c3c3e14383b4d1a3f3e16393c3e382b343c2c0d3c0a1a303c2c0e1a3b3e3c2b28143c2b2c1a112b1e143c322c2f48302c2c3c1a3c2e3c32191509042f2c2f3c343c2f3f303a121a3e2f3f3f343c2f3f343a121a3c2f3e2c3c2e3c382c2f3f0c343c2c0d3c073c1a3f3e1639323e3c38362c301a343c2c0d3c041a2c3a3e3c38362c302c342f281a3f3e16393a3c0a3f3e043c2d2c2548090f2e3c28280a2f3c2c192e3f3c2835383c39243e3c3e3c382c183c3c1c143c373838381a3f38352c3c3a121a3f3e1639243e3c38362c33122c13443e52525252525252520b5252523c3f3c24343c2f3f2c3a0e1a3f3e1639283e3c38362c33242c13443e52525252525252520b5252523c3f3c24343c2c0d3c4d3c153b2e3c38362c3334393c3831343c443f491a3b0f0f3e3c282b2c2f3c2c192e3f3c2835383c39243e3c3e3c382c273c3f1c143c373838381a3f383a3c3c2a121a3f3e1639163c381a3f3e1639103c3b3e3c38363c1a343e3c1a34393c3c3f3c24343c2f3f453c3f0c343c2c0d3c493c3f343c2c0d3c491a3f2c1a3f3e1a343e3c1a343e3c0a3c3c2c3a3e3c38362c330a342f281a3f3e1639183c0a3f3e043c313f383c1a3e4d3834293c2f3c343c2f3f163c270c343c333f3c132f0c341a38123c1a3c153f2c333c343c2b3f3e100a153f2e3c312c2c3b0c341a093f3e281e333c3c0e1a3c2e3c3b331a343c3e043c392c2c3b0c342c30313c163c1a392e3c280d0434352e143c332c2c11321e143c352c2f3b361e1a4d3c343c193f3e2824382c3e3c382c1e3c3f1c143c373838381a3f383a0a3c2a121a3f3e1a3e163c242c163c381a3f383a1a3c2a121a3f3e16390a3c381a3f3e1639043c381a3f3e16390e3c381a3f3e1639083c382c3a3e3c38362c321a3c2e382b343c2c0d3c4b1a3f393c3431343c193f3e380a382c3e3c382c273c3e1c143c373838381a3f383a3c3c10121a3f3e1a3e163c242c163c381a3f38350a3c2a121a3f3e1639163c341a3f3e1639103c341a3f3e16391a3c341a3f3e1639143c342c3a3e3c382c183c3f1c16383c343c190f2c2c374d2c273c0d1c141a3e3c3f3f3f343c2f3f4d3c3b0c343c2c0d3c523c3f343c2c0d3c521a3f343c2c0d3c563c3f343c2c0d3c561a3f3832163e343c2c0d3c443c3f342f281a3f3e16394f3c38303c1a0e1a39143c352c254c0e1c16381f1c14343f2c2f48302c2c3c1a3f3e1a3e163c24143c143c3f19150e333c3e3c382c183c3e1c143c373838381a3f38352c3c10121a3c153e2c3c2e3c382c1e3c3e1c143c38362c2d1a3c143c38362c2d123c143c38362c2d2c3c143c38362c2d243c153c24343c2f3f0e3c370c343c193f3c132f3f043e150c363c343c3838381a3f383a1a3c10121a3f3e16390a3c341a3f3e1639043c341a3f3e16390e3c341a3f3e1639083c342c3a3e3c38362c321a3c14382b343c2c0d3c4b1a3e393c38313c4d3c1a3f383a2c3f10121a3c04343e2c2c3b0f341a333f3c132f0c363c343c2f2c4d3c3e4d383c342c0e3e2c3e3c352c2c110b341a3b3b3f383f3f3c3e383f393c3831343c381a3c2838371c143c352c2c3f323a0438393c163c1a3c1628382c38383c342c3b3f3c3e383e393c38312c243e284b440a392c2c3c1a3c4f093f3c132f3f163e110c363c343c341a2709342c0d3f3c3e38342c2c3c153f28383c342c38392c3e3c382c273c3a1c143c3b2c2c374d1c143433343c1a1a392e1a3e3c3e3433343c270834153f0c341a1a4f3c1a3c1a3c28383f1c163552394e381a3c2e3c342f2e3c3f343c2b3a1e2e34343a04383f343c193f3e2a0e1a3f043c343a043835343c121a392e3c3a343f3f0e1c4f0a153e3e3c3b2c2c3b0c341a281a3c161e333c3c0e1a3e3828333c3e3c382c273c3a1c143c3e2c2c374d1c143c34331a343c343c373f3c2a12153c1a0e1a3f043c391c4d38371c1438353e0a333c3c163c1a3f4d3816291a2f3c343c193f37381e333c2e3c382c273c3a1c143c3f2c2c374d1c141a3e3c38352f4b1b1638290a4d3f3e043c3e2c1b452d1c14383a2c2c3c153e3c333c343c1409343c2f3f163c270c343c273f520a4405341a333f3c132f0c341a244c3c1a3f3e3524274534152f3e1a27290f4e3c33283f35443f3c3c281a3b3e3c282c123e284b440a391a3e342b2c123e284b440a391b134d153b3e3c2b0d0a0e153e3e3c3a343f2e13341a244f3c1a3c1a3c143c3e343c341a3c043c3a3a043c3f343c333a3a043c39343c373f3c2a093f520a44052f050e153c143c392c2c3b0f342c241a3c2e3c392f0a4d3c3e043c312c2f4c0f342c0e1a3e3828333c2e3c3e343c3b3f3c2a093f520a4405341a3b3a3f383c1a3f383a2c3f1012143c043c3e2c1b492d1c163552394e3b3f3c132f0c341a241a3f141a3e3c3e3c3e2c2c3b0f2c1b452d1e2e343e2c2c374d343c330c363c343c1e17243e3c3c0e1a3f4d38371c143835343c2f3f163c270c343c3b3f3c132f0c343c1a4f3c1a3c303c2c0e313c163c392c3e3c3e2c2c3b0c2c1b452d1e2e3839343c2f3f163c270c343c373f3c2a093f520a44052c2c374d1c1438343c4d3c1a3c2e383a2c2c3c153f2c373c3c163c392c3c373c343c281a3f100d3f520a4405341a381a3c1624333c3e3c382c273c3a1c143c3f2c2c374d1c141a3e3c3e343f343c2b3f3c132f3f493e150c363c343c341a0d37392c3c1a3c2e3c362e0a4d3e343c2b3f3c2a12143f2838382f0a4d3f3e0a0e1a3f4d38162f0a4d3c2c1a3c153b38383c342c2b3e3c3e382b3c4d3c1a3c143c3b343c270c2c1b452d1e2e343f2f1a2f3c343c373f3c2a0d3f520a4405341a373f3c132c1a3f3a0d3f3c39243e173c2431343c2f3f1a3c270c343f2c1a3b28343c2c123e3c1a343911100f18320a3c3c2c3a3e3c382c1b3c3b1c143c382c273c3a1c143c3f2c2c374d1c141a3e3c3f3e2c3c2e3c382c183c3b1c143c38362c323c3f143c38362c32343f143c38362c2d0a3f2e3c38362c2d493f2f3c45343c2c0d3c561a3b342f281a3f3e1639493c28153b3e3c3b2c2c3b0c341a2b3f3f381e333c3c0e1a3f38352c3f2a121a3e2f3f3f343c2f3f0a3c2b0c343f2c1a3b2e3c38362c2d2c3f2e3c38362c2d243f2f3c24343c2c0d3c451a3b342f2b3e3c3e3828343c2c0d3c453c3b342f241a3e4d35053c3a12143f043c2d1c0434392c2c3c1a3c4d383c2e150e1a39143c39343c4834341a281f341a3b3f453c3f30392c38303f3c093f3e28383f343c193f3128121f341a121a3e4f12153e043c3a343c34143c2824333c283a3c11320b1e3c043c36191438332c25451a3e132f3f1b4e30153838383c342c281a3f14383f3c4d3c1a3f383a2c3f10121a3f16383e193a1214382e3c3b343f38123c1a3c14382e3c36191012143f29243e3c3e3c3f2c2c3b0c2c1b452d1e2e3c3f343c2b3b343c381a3f162705341a281f342c381a3f4d38371c043c35343c281f342c1e1a383e3c2f1e2e3c331f3e383b343c273f3c2a0d3f520a4405341a241a3c161e333c3c0e1a3f2828333c2e3c3f343c33353f383c1a3f383a2c3f10121a3c16383e193a121a3f29243e3c3e3c39342c34303c0a0e1a3e3e3c34363c343c2c2c3b04331a343c343c30153c2c0a3f3e0a0e31343c2f3f163c2b0c2c18383f343c3b0f3833453f383b4d1a3f383a0a3f2a121a3f3e1639163c281a3f3e1639103c281a3b143c2b38320e3e343c2c0d3c4a1a3b342f161a3f3e16390e3c28153a3e3c382c243c3b1c1635053c3e3c3f1c05391b3c2f3f19343c2f3f123c2b0c343f241a3b2e3c38362c323c3f2e3c38362c32343f2f39133c143c382c1b3c381c143c2a343f281a3f3e1639123c28143b3e3c38362c32123f2e34253833493f343c2f3f493c2f0c343f1a1a3a2e3c38362c2d0a3f3e3c38362c2d493f3f3c45343c2c0d3c561a38342f281a3f3e1639493c2c153b1a0e3e2c3e3c3a2c2c2f0c2c1b452d1e2e3436343c373a392c3c3e2c3e3c382c273c3a1c143c362c2c374d1c141a3e3c3e34362c1b52370918493f292c2f3c343c0d3b343c273f3f2a0d3f520a4405343c373a1e2c4d3f343c2f3f453c330c343c104e2f3c3c3c3c3c3c3c3c333c5212153f19343c2f3f493c330c343f2c1a3b043c38362c2d0a3c043c38362c2d493c053c45343c2c0d3c561a39342f1e1a3f3e1639493c30153b3c0a3f3e043c362c2439360918493f2f0a2f3c343c2f3f4d3c2f0c343c104e2f3c3c3c3c3c3c3c3c321a5212153f19343c2f3f0a3c2f0c343f2c1a3b043c38362c2d2c3f3e3c38362c2d243f3f3c45343c2c0d3c451a38342f1e1a3f3e16390a3c2c153b3c0a3f3e043c370904381f343c341a3f16383b1c163552394e3b3a3f383c1a3f383a2c3f3a121a3a4d2c3c3c3c3c3c3c3c391a2d4b342c252e3c382c243c381c143c28343f1e1a3f3e1639163c2c1a3f3e1639103c2c2c2d3e3c38362c32343f3e3825343c2c0d3c493c38342f2c303c2c0e1a3f383a0a3f3a121a3a4d2c3c3c3c3c3c3c3c39122d4b342c252e3c382c1c3c381c143c28343f1e1a3f3e16390e3c2c1a3f3e1639083c2c2c2d3e3c38362c32123f3e3825343c2c0d3c4b3c38342f2c31343c3b3f4a0a3f36392c3c1a3f38352c3c4f121a3b3e3c252c1a3f3e1a343e3c1a343e3c0a2d455238321e3e343c2c0d3c443c39343c2c0d3c441a392c1a3f3e3c3f3f4a392c3c1a3f38353c3c4f121a3b3e3c252c1a3f3e1a343e3c1a343e3c0a2d455238390a1a3f3e1639043c30153b043c38362c2d3c3c0438283e043c382c1f3c391c143c2a343f281a3b3e3c2538390a1a3f383a1a3c4f121a3f3e16390e3c301a3f3e1639083c301a3a3e3c273833493f343c2c0d3c4b1a39342f281a3f3e1639123c30153b1a373c2c25491a38100e1a3f4d3552525252523f4e3b32392c3c1a3f3e3c2b2c0b52525252525252525252520a3e39330a32243c043c38343f244e3c483c39343c2f3f1a3c330c343f241a3b28343c2c123e3c1a343e3c1a3439522d053c24343c2c0d3c483c3934151a1a3f3e1639103c30143a28363c1a343e3c1a343e3c08303c3c38323c3f342c341a3b2e3c38362c32343c043c3e2c2c3f34341a241f342f281a3b143c38362c323c3c043c3a3a04382a343f301a3e043c3e2c2c3f321c1434312c18493c1c1649382c3e3c3b343c281a3c2e3c392f4e381a3a3e3c272c123e3c1a343e3c1a343e490a3c3c2c493c3b3f3c381a1f2c2c3b35392c381a3b3e3c252c1a3f3e3c3f3f4a2f2c4d3f3e4d35281a2c3b3f053c3c4f3c1a3c31343c2f3f453c370c343f241a3b2e3c313832123e343c2c0d3c523c3e342f281a3f3e1639563c3431342f2c1a393e3c2b330a301a343c0a1a3b391e39363e3c382c27393a3c3a12163c3e3c30362c3012342f2c1a393e1639343e382b393c2c31343c380d3c4e3f3e3c3b16382c3e3c3f343c38123c1a2f3f3c2a0e4f3c1a2c31393c38313c163c3e1b043c3f363c3438341a341a3c2e1a3e1c381e382c3e3c3f343c373f3c2a124f3c1a2c1a3c144d3c3c3c0a3f3e043c3f383f34312c2e153a3f383f3f3c2e383b393c38312c123e3c1a343e3c1a323952520a3c153b3e3c3f362c330a2c1a3f29392c301a3c2e3c3f363c34382c2c3b0f331a3438393c30313c4d3c3e1b043c3f363c3438341a341a3c2e1a3e1c381e382c3e3c3f343c373f3c2a124f3c1a2c1a3c144d3c3c3c0a3f3e043c3f383f3431341a373f303a093f3e16161a3c16353f3c3a093f3a161104343c373f4e0a3f3a1e16281a3c1635153c3a093f3a1644052f2c2f3c343c2b3f3c2a12153f2c0a3f3e0a093e1a343e3c1a343e3c492d52523c3e3828343c373f362824333c143c3f362c330a3415193e3c3b16382c3e3c3f343c38123c1a2f3f3c2a0e4f3c1a2c313c163c1a3c0a2f3c343c28333c2c0a383e0a0a3f3e0a333c343c2b3f3c2a0e153f2e3c252c1a3f273f383c1a3c2e3c3f363c34382c2c3b0f331a34383e043c3b392c3c31393c34312c192e3f3c28381e331a343c343c3b3e3c3f3f293e4d343c342f2c31343c3c1a3b291e393c3e3c3c343f2c4e3c0a1a1a3938380a1c142c3c3e45123a3c1a2f523c4e49173c383a3c3c2a0e143f2e2c3c3c163c3e2c3c373c343c301a3f38343c2c1a3c2c184d28333c3c3752343c2f3e52525252525252522d4930153e2c3752343c2f3e303414132c1b52523c2538143f163552520a3b353f383f3f3f3e3c3a392c381c2c2c373f3c043c39343c1038283f0e303c1a0e1a3c043c37153b3c313e4d28333c3e3c3e2c173e340d0434342c1b52523c2538143f163552520a3b35392c3831343c2b3f383a121a3c2e3c3e343c301a3f3f3c24343c281a3f2e1639383e343f343c280d3c051a143c143c3f343c342c4b2c341a3f2e16393e3e383e343c280d3c0a3c153f3c0a3f3e043c3f343c373e52525252525252522d49301a3f0c4c3e30341c38341a121a3c043c382c0b52525252525252075639343c2f3e303414132c1b52523c2538143f4b4c3e30341c38341a162c184d383c293c2f3c343c381a3e143c39343c162c180a2f3c343c38153f3c0a3e3e043c3b2c1b3c3c1c143c3f343c373e3c38343c383f1a1a3f2e1639183e383e343c280d3c4e3c153f3c0a3f3e043c3a3f35491a3c2c281a3f28351a3c3a121a3c2e3c362c1a3f3e1a343e3c1a343e3c0a310b3c3c3f3c24343c280d3c4f1a143e16340a1436193f563c3f0f342c241a3f2e1639243c0e153f3e3c352f2c2f3c343c2b3f4d3c3f0c343c301a3e28343c2c123e3c1a343e3c1a303e4a0a3c3c2c3a3e3c3b362c3324341a113e303414132c1b1a3c1c043835343c280d3c4c3c153c0a0e1a3e28315252525252525245521a4d363c1a343e3c1a34393c3c342c153e2e3c362c0b525252525252520756392c123e3c1a343e3c1a303c3c153e3836343c241a3f4d12382c3c333c3c13491a3e143c371b2e3c39343c2f2a0f254d143e4d343c2a2c2f3c343c0e1a3f3e3c391b2e3438153b3c382c3e3c3b2c2e3f0c343c381a3c16343c2c1a3c2c3a3e3c3b362c3012342c341a3f2e1639343e3838393c2831343c093e3c24241a3f38345214342c303c2c0e1a3e16343f15143c382c175634153c0e153e143c382c1a3a3a342c2c1a3f16383f1c04343a343c1936392c3c31343c1e153f1a0e3e2c3e3c36343c1144343c301a3f3b1c091b2e34372c1a3f293f383c1a3e143837393c3831343c161a3f3e3c391b2e34381538343c281a4d3c343c2b3f303a121a3c2e3c3e2c1a3f3e3c3f3c24343c280d3c071a153c143c3b362c300a342c2c303c2c0e1a3e28315252525252525245522a3c2f3c3c4d3c1a3f383452143e383f343c273f3c2a0e153f143c382c1a3a3a342c2c1a3c2e3c372c1a3a3a153e34372c123e3c1a343e3c1a303c3c2b3c4d3c3e0a0e1a3e383a3c1a3c3705342c1e1a3f16383c293c2f3c343c2b3f2c3a0e1a3f3e3c372c0b52525252525252075639343c273f563c3f0c343c19040f28340a15122f3e3c38363c1a343e3c1a34393c0a07452c3a3e3c3b362c3334342c341a3f2e16392c3e3838393c3831343c113e52525252525252522d49301a3f143c351e0c4c3e30341c38342c3431343c3c1a3f391e393c3e3c3c343c344e3c0a1a1a3f283a3c3c2a12163c3c0e043c3e3c3c2c1b453f1e2e343c343c382c4a3c34143c283b521e4e3b3f3c252c1a3c3e3c3f1e4f0e143c383b0c1e28383f193e3c3c2c2f2b071c4d382419383824192c080c390a343b1b0a4856340a3f3f4d3c370f341a28163c3e3c382c0b52525252525252075639342c0e1a3c16315252525252525245521a043836343c341a3f342b3e1a343e3c1a343e3c1a343e3c1b493015392e3c382c173e340d4d3552520a3b05342c1a3e2c3c373c343c373e303414132c1b52523c2538143e28383f1c4d3544520a3b333f383c1a3e38383f1c4d3556520a3b37392c3831343c3b2c343c373e5252525252525252525252523c3430143938363c1a343e3c1a34393c5252453c2b3e3c302c123e3c1a343e3c1a303952520a3f2f3a4d28382c3e3c3e2c123e3c1a343e3c1a3e3e38342c4d303c1a0e1a3c4c3c1a3f38315252525252525252525252453c1a04343e2c123e3c1a343e3c1a303952520a3f28343c373e1a343e3c1a343e3c0a2d52523c3b381f2f2c2f3c343c2f3e1a343e3c1a343e3c34342c15392e3c39342c38303c1a0e1a3c2e3c302c123e3c1a343e3c1a303952520a3e3b153b3c382c3e3c39343c373e1a343e3c1a343e3c0a2d52523c342a38283c2f3c2c1a3c153c28363c1a343e3c1a34391a5252453c342c4d303c0a0e1a3928363c1a343e3c1a34393c5252453c153e38332c1a3c153c2c0a3e3e043c39343c373e1a343e3c1a343e3c0a2d52523c342a38283c2f3c2c1a3c153c2c0a3e3e043c3f343c0438283c2f3c2c123e3c1a343e3c1a323952520a3c1a392e3c3e343c3238283f0e153928343c342c38303c1a0e1a3c143c39153b3c382c3e3c332c123e3c1a343e3c1a303952520a3e38342c4c3e3c3e383f393c3431343c053e52525252525252522d4c1a382c3e3c3b2c1e3c3e1c143c3f343c121a3c2e3c36343c0d2c341a241f182e3c3a2c2c274d0f250413341a273f394f0e2c314d382c343c270f342c241a3f2e1639043c34153e143c3b362c2d3c3c14383f3e043c3e2c0b5252525252525207442a392c3c1a3f283a0a3c10121a3c043c31343c301a3e043c31283e34353a4e161a3f4d383a19364c450d0434352c2c440f383e451a3f143c351c16382c1c04383a343c280d3c4a1a3e342c0e1a3f2e16390e3c34153c0a0e1a3f283a1a3c10121a3e4d363c1a343e3c1a34393c3c342c143816342d15143c392c173a34153e343e2c1a3f3e1a343e3c1a3139100b34314c3c3e3c3e1b2e34382c1a3c2c36043c3b2c273c3e1c16343c343c280d3c4b1a3e1b28343c343c2f3e3c3f3c0f343c2b3f1a3c370c343c280d3c481a3e2c1a3a3a343c280d3c483c3e2c175634153e34382c1a3c1a3c16343c383e0e1a3f28350a3c2a121a3f38343c2c1a3c1a3f2e1639143c37442c1a3c2c36043c3b2c183c3f1c143c3b362c2d493c28343f15143c3b362c2d0a3c28345214342c143f38343c343c373e3c3f3c0f343c2b3f4d3c3b0c343c2f3e3c38343c343c280d3c561a3f1b28343c383e0e1a3f28353c3c2a121a3f2e16394f3c3b3e3c24241a3f2e16394d3c3b3e2d491438341a2f3e3c3e3c3e2c1a3c2c36043c3b2c1f3c3f1c143c382c1a3f3e3c3e3c3b362c2d343c254c3e3c3f3c0f343c2b3f123c3b0c343c373e3c3e3c3b362c32493c28343f15143c3b362c320a3c28345214342f3e3c254d143c16343c383e0e1a3f283a2c3c2a121a3c4d342d1516343c343c373e3c3f3c0f343c2b3f453c3f0c343c373e3c38343c343c280d3c4b1a3f343c280d3c4b3c3f341a0a1a3f2e1639103c3b45341a2c1a393b2e091b3e3c382c1a3b2a0f2505442c1a3c2c36043c3b2c243c3f1c16343f343c2f442c1a3c1a3c16343c383e0e1a3f143c37343c150f1c14383a3c13451a3f2e16391e3e34292c1a3a3a341a491a3f2e1639143c3814394d343f15143c3b362c323c3c28345214342f4534153f3e48560a3c1b2e34282c143e34341a341a3e16363c1a343e3c1a34393c3c342c143b28341b1438315252525252394930143f354914382e3c3f2c1a3a3a341a053e34341a143e043c2c343f2f2a0f2e3c32343f3f2a0f2e3c3b362c33492c1a3a3a343f333e2d491438343c443e2d4915451b35053e3c254d14384d341a143e342c1b130a1439143c2f2b364d1a39143c32343f333e52525252520a56393415301a3c283452143e342a343c0d3e3c241c382c0b52525252452d1a0434361b130a1439111c091b3e3c38343f3f561b3e3c38343f33563415381a3e143c2c1b130a1439043c2f2b364c3e3434241a394d341a14342f45343c491a39143c2d2c143e3a1b3e34322b0c4c45343c491a39143c282c0b52525252452d1a043428343c0d563415381a3c143c311b130a1439043c2f2b364d1a39043c2d343f301a39383156525252523949301438254845341a442a0f250545341a482a0f250a1a39143c38343f2f5634151e1a383e3c2f1b130a143f3e3c3e343c0d561b3e3436343c0e1a384e484534153f3e34341a1a3e143c2c2b0c4d1a3f3e3c252b364d1a3f3e3c362b0c4c451b38341a15122f45341a2c1a39112e091b3e3c38343c451a3c143c2f1b14343e343c0e1a3b354845341a093e34341a1a3c143c312b0c4c3e34341c381b3e343e343c44280f2e3c3e343f3f3e34342745343c37280f250545341a341a3f3b2e091b3e34382c0b5252525252525252453c2a3c2f3c343f2b3e3c24241a3b122c153b2e3c3b2c193c3c1c143c3e343c2c1a3c043c2e383e0e1a3c28340515143c3b362c33241b2e3c3b362c332c341a3b3e3c3b36091b2e38362c1a3c1a3c254d153e043c3a2c1b4a523c3a12303c2c0e1a3f28351a3c3a121a3f38345215143c3e2c1a3a34153e343e343c2f3e3c241a143f3e3c39343f342c36043c3f2c173e3a343c280d3c4f1544343c280d3c4f3c143938343c280c4c44342c0d3e3c3e3c301b2e3831343c3815393e3c3a2c1b52523c3a1231341a273f5252453f291a2f3c343c4c3e1a343e3c1a343e3c0a2d52523c342c153928343c342c38303c2c0e3e1b143c3a2c2c3f363f383c1a3e16343f15143c312c175634153e3836343c2f3e52525252525252522d49301a3f0c4c3e30341c38342c0a1a3e4d343f151a0a3f3e043c3a2c244452293c2f3c2c1a3c153c2c0a3e3e043c3b2c283f0f343c341a3f38383f343c270f38350a1a3f28380a1c143c30343f281a3f16350a3c3a122c31043c3b2c2e3f0c343c301a38143c3b362c333c341a341a3f2e16392e3e3430383e0e1a3f2e1639323e3c3b362c30122c1a3a3a343c280d3c043c143c28345214342f44343c280d3c073c143f3e3c3f2c1a3a3a341a3b280f254d153e143c38343c3b443e043838343c2b3f383a121a3c043c2e2c1a333e3c3f3c0f343c281a3c043c2e2c1a2b3e3c3f3c0f343c0a1a3c143c3e343c301a3c16343f1a04343f343c2f45341a3328343c121a3c2e3c392b0c4c45341a381a3811241a3c2e3c2e282f08091b3e343e2b0c4c45341a2c1a3c143c3e343c2f3e1a343e3c1a343e3c0a2d52523c3b2c1a3c043c3b362c302c2b143c3f343c280d3c051a143f3b241a3c2e3c38282f09050f250a143c111c091b3e3438343c341a3f38363c1a343e3c1a34393c5252453c2b3e3c39343c280d3c0a3f2a343c381a3f2e16393e3e34392b143c3f343c332f3a4e3a091b3e343f343c37280f250a1a39242c15392c0e1a3c3e3c3f330a303c343c3c1a39291e393e3e3c3b2c193c3e1c142c3c3e4a453e3c2c3b52340a3f3f4d3c3f0f341a2c163c3c373c343c333f1a343c3f291a2f3c343c2f3f343a121a3c2e3c3e2c1a3f3e1a343e3c1a343e3c1a2d52523c3f3c24343c2c0d3c041a153c143c38362c301a342c381a3c4d3552520a3b343f383c1a3c4d3552520a3f0f342c30303c1a0e1a3f38382c1c143c3f343c373e3c38363c1a343e3c1a343e3c5252453c383f1a1a3c4d3544520a341a3c4d3544520a37343a4d3556520a3b0f342c301a3f3e16393a3e383e343c2c0d3c053c153c2c0a3f3e043c392c243a3c1b4d12333c3e3c382c283f0f343c381a3c16343c2c123e3c1a343e3c1a343c48383f1a1a3f3e16392e3e383e343c2c0d3c4d3c153c2e3c392c1b2e3c1b1612382c3e3c392c244e523c3a12153c0a0a3f3e043c382c293f0c343c381a3c16343c2c123e3c1a343e3c1a343c48383f1a1a3c4d35121a254d1a3c4d35121a254c363a4d3a1c521a3b0c342c301a3f3e1639323e383e343c2c0d3c073c153c2c0e1a3f3e3c3f343c373e3c3e3c392c1b52523c3a0c092c173e3a383f1a1a3c3e3c38362c3034330a3034343c3c1a3f3e16393c391e393c3e3c382c193c3c1c142c3c3e07283c343c3c1a3c291e393c3e3c3c343c373e52525252525252522d49301a3f38340a1436193f1a343c3e1e2e3c3e2c173e340d4d3552520a3b051e0c4c3e30341c38330a30343e49493f3c2c3352340a3f3f383a0e153c2c333c2c18041e0f444539342c343e2c3c333c343c373f4e1f1f150b3c273a392c381a3c163a2a074536563f381e382c3e3c3e2c18041e0f4445392f0a4d3f343c381a3c39243e393e3c3f343c304f3c1a153f110e523e0b1a2f3f4e1f1f150b3c241a3c2e1a3e393f0e153c1a0a3f3e0a0e1a3c2e1a3e3e3e343c2c2c3b4d2c2c3705343c3f3f3c25330c342c301a3c2e1a3e393e3c3f363c34302c2c3b0f1e2e383c393c38313e043c3f363c34343e040a3c343c3c123c1a3c1c343c3c123c1a3c1a3c3f3e3b3c2a121c343c3c123c1a3c1a3c3f3e373c2a121c343c3c123c1a3c1a3c3f3e3b3c2a121c3e0a1e3c343c381a3c3a0e313e2c3c1a3c3e3c3f3832493e3e040e3f3c25451a3c3e1a3e3c3e343f3f383c1a3c2f394a3c163b52383b483b3f383c1a3c3e1a3e3c38282d3e043c3c2c2c3c4f3c1a3c312c2c3831360a383f1b043c3c363c343c341a38382c3e3c3f38343c392c25452c251628382c3e3c3c363c343c2f2c4531343c3f3f3c39243e3c3c093f3c2c0e333c38383c343c3c1a3c383b52383b491f3e494d3f3c2c2f52340a3f3f383a0e143f2e2c3c343c381a3c15390b3c1434382c2a44333f383c3e2c3e3c382c2c0d333f383c1a3c3e3c383839121a3c3e3839393c3831343c3c1a3f3f3e2f3c28383f1c14343a383b45143c053f33343c3c1a3f153f30343c3c1a3f3f3c483e0a333c343c381a3c161e382c3e3c39343c382c333e3c392c2c3b0c342c301a3c28383f1c14383f393c38313e043c3b2c2c3c4b3c3c451a3c043c3b2c2c440c38392c1a3f28382c1c142c3c390a0e2c3b0a3c31482c2c3f3f4e451a3c3e1a3e3f3e3c3c383830123c1a3f353f383c173c38382c1c04343e373c3c1a3c143c3c331a343c343c341a3c3e1a3e3f3e3439331a3438343c341a3c4d383f1c17243e3e3e3c3c3838301a3c141a3e3f3e3c3f38340a3e343c341a3c141a3e3f38383f1c17243e3f3e3c3e3834163e343c373f383a12163c3c4531340a3f3f343a0e143f042c3c343c3c2c2c0434343c13451a3f4d38341c14383e3c13451a3c3f3e373c28383f1c14383a340a3f3f383a0e143f2e2c3c343c281a3f17243e393e303c2c2f3f0f341a2c163c3e3c3c3838301c343c2f3f1b07243e393e3c382c1b525252524535331a3434343c2f3f393a121a3f3838341c153e143c2e1a3e3c3e3839343c2f3f383a12163c3e3c39343c272d3f383c1a3c3f3e3b3c2e3438343c333f3c2527373f383c1a3f2e3c382c2c3b4d331a3434343c2b3f3e3a121a3f2838301c153f4f363c343c342c3031343c2b3f383a12163c3e3c39393c38312c1c1e1f3837243e3c3c0e153f2e3c3c3834163f342c273f3c3e3839340a3f3f383a0e143f3e2c3c343c2f3f3c39243e393e3c3e2c2c050c343c2f3f393a121a3e3f3e383c143c3b3f383c1a3c141a3e383f121a3f2f3f1b342c3031343c341a3c07243e3c3e3c3e343c301a3f1012143f17243e3e3e3c3e343c244f3c1a2c1a3c153e393c2e3c39343c2b0c331a343c343c2f3f383a12163c3e3c3e363c34343e043c3f38340a3e343c341a3c141a3e3e38383f1c17243e3e3e3c3c38324d3e343c3c2c2c043c3c363c343c343c3c123c1a2c1a3c1638381c14343f3834303e343c3c1a3c2f3f4c343c3f3f3f3a121a3c1638341c153f4c343c3c2c2c043c3e3834303f3835281a3c143c3e363c3438331a343c343c3c2c142c381c343c3c123c1a3c1c343c3c123c1a3c1a3c3f3e3b3c2a121c343c3c123c1a3c1a3c3f3e3b3c2a121c343c3c123c1a3c1c343c34123c1a2c143c3e3c3e363c34342f0a2f3c3c4d3c1a3c141a3e383f121a3c143c3e363c34342c2c3b0f331a3434343c34123c1a1a1a3c381e333c3c0e31343c34123c1a3c382c3e3c3e363c342c3a143c3e363c343c342c3c1a3c153e393c2e1a3e3c3e3c3e363c343c1c05121a3c3f3c2c3e043c352c2e3f0c373c3c31390a3c1a3c3e3c3c363c3424343c3b0c331a34243e051e3c343c3c1a3c17243e353e3c3c343c384f3c152c1a3c3e3c3f331a34243e4c243f3c13453e2c3e3c3c363c343c341a373b392c3c3e1b043c3e363c3424341a301a3c141a3e353824382c3e3c3e343c381a3c141a3e3c3e1a3e333f383e3c3c0a3f3e043c3e343c333f3f3a124f3c151a1a3c043c3f331a343c343c38312c25452c251628333c3e3c3c2c2c3c4f3c1a3c313e04243f3c25453e2c3e3c3c363c343c341a373b392c3c1a3c143c3f382d493e2c25452c251628333c3e3c3c2c2c3c4f3c1a3c313e0a163c343c3c2c483c382c383c0e053c2c3b52343c3c123c1a0a143c2e3c3c363c342c2f1a2f3c343c3c1a3c3e1a3e3c3e1a3e363f383c3c3c4531343c3c1a3c2838381c17243e393e3c3f363c343c3e041e3f3c25451a3c3e1a3e393e343f343c3c123c153f3a3f383c1a3c3e3c3c363c343c363c3416382c3c3c390a0e1a3c2e1a3e3c3c0e2c3c3e3c3c382d3c3e343c382c453c37072c2c3b073e490e383c2c2752340a3f3f343a0e143c142c3c343c373f3c39243e353e303c2c2e3f0f341a2c163c3e3c3e2c2f150c341a273f3c39123c3c3e3c3c343c3c123c1a3f3f393a0e123c1a3f0c3831163f342c281a3c3e3c3c363c343c2c2c050f363c343c1c1438393c163c1a3f2c2f3c343c30123c161a382c3e3c3c343c3c123c1a3f3f393a0e123c1a3f0c363c3734383424393e0a373c343c3c1a3c3e1a3e3c3838301c041a3e3c3a12123c1a2f3f1a3e3f052f2c4d3c343c2f3f3a3a12143c043c3c343c3c123c1a3f3f393a0e123c1a3f0c383c451a3c053c04342c1e1a3c053c32343c2f3f383a121a3c3f393c3c2e3839343c2f3f3e3a122c152c30153f2c333c3c163c1a3c043c3b38393b3b392c3c1a3f4d3a3c0a3c3c1a3c053c1b38382f3b392c3c1a3c053c143a1a0a3f3e0a0e1a3c043c3b383e273b392c3c1a3c3e3c3c363c343c2c2c050f363c343c1c16383a38343c3f3e043c3a343c3c1a3c3e1a3e3c3838301c041a3e3c3a122c082c384b3c3c3c303c2c0e1a3c4d383838343c3f3e043c382c2e3f0c373c3c1a3f144d3c3c3c2f3c343c373f383a12143f3e3c3c343c3c123c1a3f3f393a0e123c1a3f0c383c451a3f383534150a382c273e3839343c373f3e3a121a3c3f393c3c2e383a343c342c152c30153f2e3c39343c24123c1a3c1a3f2e1a3e3c3e3c3c343c3c123c1a3f3f393a0e123c1a3f0c343c373f353a121a3c1638281c143c39363c343c363c342c382c283c3a143c38383c491a3c2c3752343c34123c152f3f1a343e3c1a3515343f383c1a3c143c3e363c341e2c2c2f04331a341e2c243e3c1a343f49393c3831343c34123c152f3f52525252520a19363f383c1a3c143c3e363c341e2c2c2f04331a341e2c1b525252524535393c3831343c34123c152c31331a343c343c3c1a3c3e1a3e3c3838301c041a3e3c3a121a3c141a3e353f3e3c3c2c0e1a3c16381a1c142c3c3e070e3f3c25451a3c3e1a3e3a3e343e343c3c123c15053a3f383c1a3c3e3c3f383a281a3c3e1a3e3c3e1a3e333f383e3c3c4531343c3c1a3c16383f1c17243e3a3e3c3e343c384b3c3c3c1a3c2f3f113e07303f3c25451a3c3e1a3e393e343f343c3c123c153f3a3f383c1a3c3e3c3c363c343c363c3412382c3c3c390a0e1a3c3e3c3f2c2c3b0c331a3430343c380e3c3c3c2c272c0e0d3c2c3b52343c3c123c1a0a143c2e3c3c363c342c2f1a2f3c343c3c1a3c3e1a3e3c3e1a3e373f383c3c3c4531343c380e3c3c3c2c272c0e2c3c3e3c3c382d383e343c382c452c37072c2c3b073e494d3f3c2c3b523c163c1a3c3e1a3e3f3e343f343c38123c1a3f3f393a0e123c1a3f0c363c34242f2c4d3c343c3c123c1a2c143c2e3c3f363c343c2c2c050f363c343c1c153e483c2828333c3e3c3c363c3438341a381a3c2e1a3e3c3838301c041a3e3c3a12123c1a2f3f1a303c3c1e2828333c3e3c3c363c3438341a381a3c2e1a3e3c3838301c041a3e3c3a12123c151a2c1a0a333f1b4d1e333c3e3c3c363c3438341a3c1a3c3e1a3e3c3838301c041a3e3c3a0d3f3c2f3e3c3c2c0e31390a3c1a3c3e3c3c363c343c363c3424382c3c3c3e4c283c343c3c1a3c29243e3f3e3c3c2c2c3c4b3c3c3c1a3c2e3c3f363c343c2c2c050f363c343c1c153e483c2c2f3c343c381a3c2e1a3e3c3838301c041a3e3c3a12123c161a382c3e3c3f343c38123c1a3f3f393a0e123c1a3f0c363c3734383424393e043c3c2c2c384b3c3c3c31343c3c313e0a3c1a3c38383c331a343c343c3c311f1a383e1b04303c2c2f3f0f341a38163c3e3c3c343c3c123c1a3f3f393a0e123c1a3f0c363c34243f383c3e2c3e3c3f2c2c150c343c3c2c153c30143c144d3c3c3828333c3e3c3c343c3c123c1a3f3f393a0e123c1a3f0c363c3424383430392c254435392c3c1a3c3e3c3c363c343c2c2c050f363c343c1c16383f38343c3f3e043c3e383434393e043c3f2c2f3f0c373c3c313e2c3c1a3c3f39113c2f3c2c3e0a2c3c2c254531051a1a3f3f13451a3c3e3c3f363c3c3c341a333f3a352c1a3c4d383419383a3c1a2d0a351e25341a3c4d383419163a3c521a3305343c333f3a3527041e14343b331a343c343c3c1a3c2e1a3c3f3e34392c2f154d343c333f3e352f3f1a3439453f4e3b04343c333f3e35273f1a2d49391e2e3c392c2f154f1e1334143f17243e3f3e3c3c343c38123c3c1a143c4d3824193e3c392c2c154d2c243e3c523c19051e143c392c2c154f2c2439563c4e381a3c4d382419133704341a1e4f3c1a1a1a3c3e3c3f363c3c30341a333f3a352c1a3c4d383419383a3c1a2d0a351e25341a3c4d383419163a3c521a3305343c333f3a3527041e143438331a34303c163c1a3c163a3c3c2824382c38383c342c30392c3e3c3c343c2f3f3b13273f523c19052c243c341c144d3c3c2e3c382c2c484f2c1b0a351e283a3c3e3a12123c1a3f3f3e352f3f1a343e3c1835381a3f25301a3f38383a191635453f4e3b3f1a3c150c312c3c3e2c2f3f4d1e043c382c1b453f1e28383e19383a3c3e3a12093c3c3b3f3e352f071e043c392c243c1c1c144d3c3c383824193530143f29243e383e3c3c343c281a3f1330143f17243e3b3e3c3c343c241a3f4e30143f07243e3a3e3c3c343c2c1a3f4e30143f39243e353e3c3c2c2f3f0c342c3f3f3e14383f343c333f3c2a12143c4d38362f0a4d3c3e0a0a3f3e043c3c343c38123c3f3c143c4d3824193e3c392c2c154d2c243e3c523c19051e143c392c2c154f2c2439563c4e381a3c4d382419133704331a342c343c3c1a3c2e1a3c3b3e34392c2f154d343c333f3e352f3f1a3439453f4e3b04343c333f3e35273f1a2d49391e2e3c392c2f154f1e1334143c07243e3b3e3c3e2c1e3c3f2f1a2f3c2c2c3c153c2c333c343c3c1a3c4d382a191635453f4e3b3f1a3c150c312c3c3f343c333f3913273f523c19052c243c341c141a3e3c38383419383a3c1a343f491e2e3c3b1e043c392c2c274f2c1b0a351e283a3c3e3a12093c3c373f38352f07343c333f520a3b052c2c374d2c243c341c144d3c3c28383419353307343c3b3f1a3f0d0c312c3c3c2c2f154d1e04343b331a3424343c3c1a3f2e3c3a1e04343a331a341e343c3c1a3f143c351e043435331a341a343c3c1a3f3e3c351e043438331a3416343c3b3f3f4d24382c383830390a281a3c3e3c3c363c342c343c2f07341a344f3c141a1a3c3e3c3e343c3307341a304f3c140a1a3c28383f1c14383f343c3f3f3a3a12153c3c0a3f3e0a3c313c3c0e1a3c3e3c3f363c3c24341a333f3a352c1a3c4d383419383a3c1a2d0a351e25341a3c4d383419163a3c521a3305343c333f3a3527041e17243e3a3e3c3c343c38123c3f0a143c283824193e3c3f2c2c154d2c243e3c523c19051e143c3f2c2c154f2c2439563c4e381a3c28382419133704341a304f3c15053f1b04383f343c373f1a3c3735392c3f3f3c3e383e2c2c49153c2c333c343c3c1a3c4d382a191635453f4e3b3f1a3c150c312c3c3f343c333f3913273f523c19052c243c341c141a3e3c38383419383a3c1a343f491e2e3c3b1e043c392c2c274f2c1b0a351e283a3c3e3a12093c3c373f38352f07343c333f520a3b052c2c374d2c243c341c144d3c3c28383419353307343c373f1a3f0d0c312c3c3c2c2f154d1e04343b331a341a343c3c1a3f2e3c3a1e04343a331a3416343c3c1a3f143c351e043435331a3412343c3c1a3f3e3c351e043438331a340e343c373f3f1624333c2e3c3c343c2f3f520a3b052c2c374d2c243c341c144d3c3c2e3c3c363c342c343c2f3f3b13273f523c19052c243c341c141a3e3c38383419383a3c1a343f491e25301a3f383832191635453f4e3b3f1a3c150c312c3c3e2c2f3f4d1e043c382c2c274f2c1b0a351e283a3c3e3a12093c3c3b3f3e352f071e043434331a340a343c3c1a3e3e3c3c363c34281e043434331a344d343c3c1a3c3e1a3e3a3e3c341e043434331a3449343c3c1a3c043c341e043439331a3445343c373f3c2a12153c143c3c2c2e3f0c342c3c303c3c0e3c3e043c3f3e04493c343c3c1a3c3e1a3e3c3e1a3e373f383c3c383b522f1a2f3c2c25452d3e043c3c343c3c123c1a0a143c38383f1c17243e393e3c3c313c3c3c383a28313f3c3f3f1b0a08523c2c38381b04303c2c2f3f0f341a2c163c3c333c3c163c1a3c143c3b293c4d3c3c163c1a3c3e1a3e393e3439343c3c123c153c143f1616382c3e3c382c1b525252524535331a3430343c2c1a3f143c391c07243e3e3e3c38343c341a3f2a0e4f3c1a2c1a3f3838301c143c382c2c150c343c2f3f3f3a122c081a382c081a38153c043c3f343c3c123c1a0a1a3c041a3e3c3e3439383b281a3c3e3c3c363c3430343c330c331a3430393c3831343c3c1a3c3e1a3e3c3e1a3e363f383c3c3e34392c25443a392c381a3c2e3c3938370a3f321a3c3c2c2c38153c0a0e1a3c2e3c391c14383f343c301a3f2a12153f2c0a3f3e0a0e1a3f38382c1c142c3c343c28313e2c3c1a3c38375238310e3f3e0a163c343c3f3e1b053e4a3c2c0e383c3e3c3c3e0a163c343c3c2c0b3c382c383c0e343c3e3c3c3835492c383c0e353c3e3c3c363c34303e053c3c340a3c1a3c3a093f1e3538143c3e2c3c343c3c313f1a3c1a3c3e2c3c3e0a2c3c340a3c31393c3c1a3c3f393f3c2f121a3c3f3c2c3e0a163c343c3c2c0a2c382c383c0e3b3c3835563a0a0e1f3c3e3c3c343c38123c1a1a1a3f2f3c563f383c1a3c2e3c3e343c301a3f3f39383c2c0e31323c3c1a3c3e3c3f363c3434343c282c2d1a2f3c343c381a3c143c39343c2c2c053c382d3e043c3c363c3434341a3c1a3c2e3c3e343c301a3f3e3c3b343c3c123c1a3c123c152c2f3e2c3c31111a343f3f13451a3c3e3c3f363c3434343c282c2d1a2f3c343c381a3c143c39343c2c2c053c382d3e043c3f312c3c4c342c1e1a3c3e1a3e393e383a343c3b3f3c39123c332e3c3f312c3c4d342c1a1a3c28383c321a3c4d343c3f3f383a12143e2e3c3f343c341a3c043c38343c282c0a1a381a3f043c3f312c3c4c341a0d04342c1e1a3e3e3c3f312c3c4d341a0904342c1a3e2c3e3c3a2c2c3734392c3c1a3e2e3c3a2c2c334d1c143837343c3f3f3a3a12153f1a333c343c38093c3924333c2c373c343c0e382c3e3c3f363c34242c2c3b3a392c301a3c3e4d3c3e38383e1e2c4d3f393c3031343c0d3b392c3c1a3c3e4d3c3e38383f1e2828333c1a0e1a3c28383c320a384d343c241a3c2e3c3e343c301a3f3e3c3b3830343f343c38093c3928143e143c351e143835343c38093c392c143e043c341e143834343c273f3e3a12143f143c372e2c4d3c3e0a0e1a3c2e3c352c1b453f1e28383c2f07123c332e3c3f343c153f520a3b052c2c3f35321a3c4d3e48343f3c3e3c3c343c38123c1a1a1a3f3f3c563f383c1a3c2e3c3e343c302c0a0a382d3e0a373c343c3c1a3c2e1a3e3c3e3c383839483b392c3c3e2c3e3c3e343c38123c153f353f383c1a3c2e1a3e3b3e3c3e2f0a4d3f3e043c392c2c3b35392c381a3c28383f331a341a390a0e1a3c2e3c3e331a3428343c381a3c07243e343e3c3f343c38123c14153f3c2a124f3c141a3e2c3e3c3f363c34162c2c3b35392c3c1a3c2e1a3e3a38383e2f0a4d3c343c3b3f3c29123c331a0e1a3c283838331a340e3e0a0b073c2c3c1a3c3e3c3f363c3434343c2c2c2d1a2f3c343c381a3c143c393830303f390a0e3e2c3e3c3c343c38123c1a3c1a3f3f3c563f383c3e2c3e3c3e343c38123c153f353f383c1a3c2e1a3e3b3e3c3e2f0a4d3f3e043c392c2c3b35392c341a3c28383f331a341a390a0e1a3c2e3c39331a341a3c163c1a3c2e1a3e313838382f1a4d3c343c3b3f3c390e3f333e3c3c363c3434341a3c1a3c2e3c3e343c373f3c2e3c38343c3c123c1a3c123c152c2f3e2c3c1a3c2e4d3c332c2f3c343c3b3f3c07243e313e3c3f312c3c4d2f2c4d3f393c3031343c3b3f3f39243e313c0e1a3c2e3c3e331a3428343c381a3c2e1a3e3638383f1c17243e363e3c3f363c34162c2c3b35392c381a3c2e1a3e3a38383e2f0a4d3f343c3b3f3c29123c331a4531343c3c123c1a1a143c3e3c3f343c341a3c043c38343c3c123c1a3c123c151a2f3e1a3c313e484d383c2c3352343c3c1a3c2e1a3e3e3e3c38383949382c3e3c3f343c341a3c0539393c2c45313c163c1a3c3e3c3f363c343c343c2c2c2d1a2f3c3c163c1a3c143c3f363c342c2f0a2f3c343c38123c152c1a3c161e333c2c0e1a3c4d383f2f0a4d3e343c3b3f3c29243e343c4531343c381a3c07243e343e3c3f363c340e2c2c2f353f383c1a3c38382c1c14343b343c3c123c1a053f3c4e2f0c342c193f3c3e3839343c383e1b0a373c3c4d3c3e2c3e3c3b343c192d392c3c1a3c28383c320a384d343c281a3c2e3c3e343c373f3c2e3c383830343f343c38093c3924333c3c373c343c38093c392b3b392c3c1a3c2e4d3c333c2f3c2c2c38153c043c3f363c34242c2c3b3a392c2f3f3c2e383a343c3c093c3c153f3c1338333c2c0a383e4d383f342c241a3c3e4d3c3e38383f1e2828333c0a0e1a3f2838341c14383b393c38313e4d3838343c273b392c381c3e4d38393e07243e313e3c392c2c3b05392c3431343c381a3c17243e3b3e3c3f343c38123c14153f3c2a124f3c141a1a3c2e1a3e3738383f2f0a4d3f343c38123c15153f3c161e333c2e3c3f2c2c384b3c39242d3e043c3c363c3430342c281a3c38382c1c14343a343c381a3c143c39343c2c2c123c381a3f28383e2e3c4d3c343c241a3f283839193a12153f143c3c2c2f150c342c283e2c3e3c3c363c3434341a3f3f3c133b3b3f383c1a3c2e1a3e3738383f2f0a4d3f3e0a333c343c38093c3924333c143c3b343c381a3c143c39343c2c2c123c381a3f2838341c14343b343c2737392c3c31393c3831343c3f3f3c253b3b3f383c392c3e3c3f312c3c4f392c341a3c2e1a3e3738383f2f1a4d3e343c281a3c2e3c3e343c301a3f3f3e1a3c2e3c3b2c2c150c341a281a3f1616333c3c0a3e3e0a3c313c4d3c1a3c2e4d3c331a4d3f343c38123c142f3f3c2824382c3e3c3f363c34242c2c3b3a392c3431343c281a3c2e3c3e343c301a3f3f3e1a3c2e3c3b2c2c150c341a281a3f1616333c3c0e313e0a1e3c343c3c123c1a2c311f0a383e1b043c3c343c38123c1a153f3c3f3c563f383c1a3c2e3c3e343c302c051a382d3e043c3c363c3430342c2c1a3c38382c1c14343b343c381a3c143c39382d3c3f3c163c1a3f38383e2e3c4d3c343c281a3f383839193a12153f3e3c3c2c2f150c342c3c392c3e3c3c343c381a3c143c39382d3c3f343c38093c3924333c2e3c3c2c2c150c341a3c1a3f3816333c3c0e313e07343c343c3c1a3c2e1a3e3e38383c383949382c3e3c3f343c341a3c05393a3c2c4531343c3c123c1a1a143c3e3c3f343c341a3c043c3c363c343c363c341e382c1a3c3e05163c343c3c1a3c2e1a3e3e38383c383949382c3e3c3f343c341a3c05393a3c2c0e31081a303f3f2545173c383b3c1c143438373c3c3e1b4d383f343c3c1a3c28383c383949333c3f0d3f3c3e3c3f2f2c4d3c3a14303c2c283f0c341a30163c3e3c3f363c343c341a2b3f3f3a0e123c1a3c153f143c3b2c2c150f363c343c342c1e1a3c4d383c331a3428343c333f0f2d4d3c331a342c343c301a3c29243e393e3c392c1907443c39243e3e38383c342c281a3c4d38241c16383c2c2e1e2c2f15121a3c2e3c351c14383f3c163c1a3f16351e522c3f3f3c3f3c563f383c1a3c4d383f331a3449343c241a3c4d38341c143c3f343c3b3f3c28383c343c24123c1a3c123c152c2f3e2c3c1a3c28383c343c30123c143f3f3c28241f342c28303c2c0e1a3f143c392c2c150c343c3b3f3c28383c343c24123c1a3c123c151a2f3e1a3c3e2c3c373c343c30123c140a323c1a3c3f3c1a0e1a3c041a3e3538383c343c30123c14153f3c28241f2c2c3c1a3c041a3e3738383f2f15093f3c3e3c39363c340a2c2c3b3a3a04383b393c3831343c30123c143f3f3c281e382c3e3c39363c340a392c381a3c041a3e3738383f2f0a4d3f343c30123c14153f3c281e333c2c0e1a3c041a3e3a3e383b3e043c392c283f0f373c3f3f3c3e3c3b341a3b3b392c3c1c343c2f3f3e3a12143c4d38381e16383c2c292c2c2f15121a3f38383f331a3449343c2f3f1b07243e3b3e3c38343c3c4f3c153c1a3f3e3c3f331a3434343c381a3c043c3e363c343c2c2c381a3c2e1a3e3c3e1a3e353f38343c3e3c38363c341a341a3f3f3c2824382c3e3c3e343c2c123c151a4f3c1a3c31343c3f3f3c282431342c3c1a3f383b3c1c042c3c343c3c313f2c3c2c3b0a3c313c0a3c3c3e0a163c2c1904363c2f3c363a1a0e0b3c3c373c2c1814363c2e4d3c3c38383f1e2c4d3c2c1814363c2f3c162f2c4d3c2c1904363c28351a4c2c3c2c153c3b3f4b34123f383e30312c1904363c2c0e373c383530141a382c3e151231311a3c3e2c383524141a38093c3c3f3f3c2538333c383524141a382c373828333c383530141a3b3f4b150e2c2b3f0d3f4f34123f383e30312c1e04363c2c0e373c383a45141a382c3e151231310a3c3e2c383534141a38093c3c3f3f3c2538333c383534141a382c373828333c383a45141a3b3f1733283c38342c3f2c1e14363c2f3c173e4d3a45141a38313e2c3f3f0f34123f383c121c3e04493c3c163f3f0834123f312c3c3c2c2c3b05392c3f3f0834123f383e2f3b392c3f3f0f34123f2c190a19383b2c1c2c1f14363c2f3c173e4d3a0e141a38313e2c3f3f1334123f383c121c3e04453c3c163f3f0c34123f312c3c3c2c2c3b05392c3f3f0c34123f383e2f3b392c3f3f1334123f2c1817283c3f3e383c283a12141a382c340a093f1334123f3e0a163c2c2404363c2f3c363a1a0e083c3c373c2c2714363c2e4d3c3c38383f1e2c4d3c2c2714363c2f3c162f2c4d3c2c2404363c28354e352f3f283a163a24141a382c340a093f1734123f3e0a163c2c1b04373c2f3c363a1a0e0b3c3c373c2c2414363c2e4d3c3c38383f1e2c4d3c2c2414363c2f3c162f2c4d3c2c1b04373c2835384c3c3c2c153c3b3f1434123f383e30312c1b04373c2c0e373c38350e142c382c3e151231311a3c3e2c383549142c38093c3c3f3f3c2538333c383549142c382c373828333c38350e142c3b3f4815122c2b3f0d3f5634163f383e30312c1804373c2c0e1f3c383512161a38153c3c333c343c3f3f393a0e2c3e14343c2c193e2e3c281e333c3c0e311b2c3c3e2c383512142c38093c3c3f3f3c2538333c383512142c382c373828333c3c373c2c18142e3c2e4d3c3c38383f1e2c4d3c2c18142e3c2f3c162f2c4d3c2c193e2e3c2e383c3c4d3c1a3c3f3f352c2c050c341a3f3f4b37343f2f0a4d3c3e4d3512161a382c340a093f4d37343f2c1b394a3c3f3c282c19042e3c283545560a3c2c3b383516142c3b3f4d37343f331a343c2c1814373c2f3c173e4d3516142c38123c1a3c313a0a3f3f0437343f342c3c392c3e3c3c2c2c050f383c12143c383a0a161a3b35392c3c313e4e0e3c3c163f3f4934163f312c3c3c2c2c3b05392c3f3f4934163f383e2f3b392c3c3e2c383534161a38093c3c3f3f3c2538333c383534161a382c373828333c383a0a161a38153c3c333c343c3c2c382838301c14343c2c1e142e3c281e333c3c093f0437343f383e30312c1f3e2e3c283a3535153c2b2c1f042e3c283a3835153c2b2c1904373c283a0a161a384f3c1a3f3f4934163f383e30312c1904373c2e1a3e3c3c0e1f3c383a1a161a38153c3c333c343c3f3f393a0e2c3e14343c2c243e2c3c281e333c3c0e314f2c343c3c163f3f4f34163f312c3c3c2c2c3b05392c3f3f4f34163f383e2f3b392c3c3e2c383a1a161a38093c3c3f3f3c2538333c383a1a161a382c373828333c383a3c163c38153c3c333c343c3c2c2f4d38301c14343c2c1c3e2e3c281e333c3c093f1237343f383e30312c243e2c3c283512440a3c2c3b383a30163c3b3f142d1a3c383f2f3f10373c3f2c1c07493c3f3c282c1c2e2c3c283538563c3c2c3b383a0a163c3b3f4e2d1a3c383f2f3f0b373c3f2c1807493c3f3c282c1e142c3c283a3c562c3c2c3b383528163c3b3f112d163c383f2f3f49373c3f2c1f39483c3f3c282c18042c3c283524562c3c2c3b383549163c3b3f562d163c383f2f3f1537383f2c27074b3c3f3c282c273e2f3c28353c561a3c2c3b383a1e162c3b3f4d2d123c383f2f3f0c37383f2c18394b3c3f3c282c1f2e2f3c28350a561a3c2c3b38353c162c3b3f4e2d1a3c383f2f3f0737383f2c24394a3c3f3c282c19142f3c283a2c560a3c2c3b383516162c3b3f122d0e3c383f2f3f4537383f2c1f394a3c3f3c282c1b042f3c28353c560a3c2c3b383a34161a3b3f4d2d0e3c383f2f3f1137343f2c18394a3c3f3c282c192e373c283a3c163c384f3c1a3f3f4f34163f383e30312c192e373c2e1a3e3c3c0e1f3c38350a170a38153c3c333c343c3f3f393a0e2c3e14343c2c193e333c281e333c3c0e310a2c343c3c163f3f4d34163f312c3c3c2c2c3b05392c3f3f4d34163f383e2f3b392c3c3e2c38350a170a38093c3c3f3f3c2538333c38350a170a382c373828333c38352c172c38153c3c333c343c3c2c382838301c14343c2c1b3e2d3c281e333c3c093f4534453f383e30312c193e333c283a1e3a153c2b2c1904333c283a293a153c2b2c1814333c28351a353f3c2b2c1b2e333c28352a353f3c2b2c243e323c2835143a153c2b2c2404323c283531352f3c2b2c2714323c283a163a153c2b2c1c2e323c283a283a053c2b2c1f3e323c283a523a053c2b2c1f04323c283a083a053c2b2c1e14323c283a4f3a053c2b2c192e323c2835373a053c2b2c183e323c283531353f3c2b2c1804323c283524352f3c2b2c1b14323c2835143a053c2b2c242e2d3c283a173a053c2b2c273e2d3c2835143a153c2b2c27042d3c28354b3a053c2b2c1c142d3c28352d353f3c2b2c1f2e2d3c283510353f3c2b2c1e3e2d3c2835103a053c2b2c1e042d3c283a1f3a053c2b2c19142d3c283a303a053c2b2c182e2d3c283528352f3c2b2c1e04373c28352c172c384f3c1a3f3f4d34163f383e30312c1e04373c2e1a3e3c3c0e1f3c383534172c38153c3c333c343c3f3f393a0e2c3e14343c2c1c3e303c281e333c3c0e31442c383c3c163f3f0434163f312c3c3c2c2c3b05392c3f3f0434163f383e2f3b392c3c3e2c383534172c38093c3c3f3f3c2538333c383534172c382c373828333c383a1a173c38153c3c333c343c3c2c2f4d38301c14343c2c1e14333c281e333c3c093f04344d3f383e30312c1c3e303c283a28442c3c2c3b383a0e173c3b3f0e2d283c383f2f3f08340a3f2c1e074c3c3f3c282c1e2e303c28350e442c3c2c3b38352c173c3b3f112d243c383f2f3f4e340a3f2c1f174f3c3f3c282c1814303c283528441a3c2c3b38354d173c3b3f562d243c383f2f3f1a344d3f2c24174e3c3f3c282c2404333c283a24440a3c2c3b383a24172c3b3f0c2d1e3c383f2f3f0d344d3f2c1f174e3c3f3c282c1f3e333c283534440a3c2c3b383a45172c3b3f4f2d1e3c383f2f3f0534163f2c1c3e303c29243e3c383534142c382c340a093f0534163f363c343c3e050e3c2c2714303c2e383c3c4d3c1a3c3838301c053c36341a3f3f4534123f2f0a4d3c3e0a0b133c2c3c3e2c38353c142c38093c3c3f3f3c2538333c38353c142c382c373828333c3c373c2c2714303c2e4d3c3c38383f1e2c4d3c2c2714303c2f3c162f2c4d3c2c1b3e363c2e383c3c4d3c1a3c3f3c2f2c2c050c341a3f3f10340a3f2f0a4d3c3e4d3a24173c382c340a093f4534123f2c1e4d1c383f2b3f5234123f2c192c1c383f2b3f14340e3f2c1f341c383f2b3f11340e3f2c1f121c383f2b3f12340e3f2c1c161c383f2b3f0f340e3f2c190e1c383f2b3f08340e3f2c1e2c1c383f2b3f05340e3f2c1b241f383f2b3f4d340e3f2c1e301e383f2b3f4e340e3f2c1e3819383f2b3f4b340e3f2c193c19383f2b3f44340e3f2c273c1f383f2b3f1a340a3f2c190a1e383f2b3f17340a3f2c27451f383f2b3f0b34163f2c1b3e363c29243e3c38353c142c382c340a093f0b34163f363c343c3e0a0e3c343c3f3f0f332c3c38342c3f3e0a123c343c3f3f052f4d2c2b3f12313e0a3c1a3c383a244c3c3c2c153c38313e1a3c1a3c383a45352f3f283a1a0e303c3e3c3c343c3b3f383a122c4d2c3831393c3c1a3c3e3c3f2c2c050c3833383f3e0a1e3c343c3c0e3c3c16313f0a3c1a3c3e0a3c3e3c0e373c3e3c3c3834243e383f3c313e2c3c1a3c3f3e353c153c2c3e5624393c2c2b52343c34153c3c333c3c163c1a3f3e3c34292e3c3c343c332d1e1a4d3c343c3c0e3c3c3c143f1635523c2538153c2c373c343c273f3c3849382c38383f342c241a3c2835525245303c292c4d3f393c3431343c3b3f0a1a3b37392c381a3c28351b3c284d382c3e3c39343c3f0f2c2c3734392c341a3c3e4d3c3c2e343b2c1e3c3f1e283a3c3c281e333c16383e342c241a3f2838521e2e3c3f2c2c274d2c1e3c2d1e25373f525252393c384d333c2c0a3e3e0a373c3c163c1a3c28350b3c284d382c3e3c39343c3f0f2c2c3334392c2c1a3c3e4d3c3c143835343c3c093c3c38153f2e3c3f2c184d3f2f1a4d3f343c3b3f493c3b3a3f383c1a3f28351a3c253b3f123c3b3a392c30303f2c0e1a3f28353c3c253b3f1a3c3b35392c2c303c1a0e1a3c043c3c1c4d38382e3e3c3f2c1b2c3f2e4e34333c043c3c312c3c39342c1e1a3c3e4d3c3c143837343c3c093c3c38153f2c373c3c163c3e2c3c373c343c3b3f453c3b0f391a283c3c1a343e3c2c3431343c2b3f453c3f0c2c1b453f1e28380a2e2c4d3e393c2431343c2b3f453c3b052c243c3f2f1a4d3f393c2831343c2b3f0a3c3b052c243c3f2f0a4d383e043c372c1e3c3f1e283a3c3c281e1a3f4d353c3c253b3f1a3c3b351e1a4d392c2c2c153f143c352c294405343c113f3f132f3f0a3f4405343c3b3f38132f3f1a34390a3c35381a3f2838521e283830193537041e1635525245303c2e0a4d39393c3431343c2b3f493c3b052c243c3f2f0a4d3e3e043c352c1e3c3f1e283a3c3c281e333c283839342c241a3f4d38521e2e3c3f2c2c054d2c24391a3c4e381a3f2838521e28383a193537042c1b52520a0a3f31392c3831343c153f3c2a12153e3e3c3c343c270c342c3c303c2c0e31343c3c1a3c100e31491a2c3f3f2545173c38382c1c04343c373c3c1a3c3e3c3e331a3430343c3c1a3f29243e3e3c3752343c3c1a3c17243e393e3c3c343c284f3c1a1a3e2c3c373c3c4d3c3e2c3e3c3c363c3430341a341a3c4d45333c3e3c3c363c3434341a0a1a3f1645333c3e3c3e313c3c3c341a2b3f520a3b05342c383e2c3e3c3b2c2c3f323f383c1a3c2835525245303c292c2f3c2c2c38153f2c0a3e3e4d383e393c24312c2c34153e143c3f2c1e343f2e2c4d39343c3b3f4e0a3b333f383c1a3c043c3e1c4d383e2e3c4d3b343c34093c3c38143e38353c3c253b3f1a3c3b35392c2f3f3c14383b343c153f2d4e381a3c28383a1938353c394e3b04341a3b3f525252393c384d333c2c0a383e043c3f2c18453f292c2f3c343c301a3c10093f3c4d1a333f2e3c3e312c3c3e342c161a3c144d3c3c2e38343c163c3e2c3e3c3f2c184d3f2f0a2f3c343c3b3f493c3b35392c381a3e38351a3c253b3f123c3b3a392c34303f0a0e1a3e38351a3c253b3f1a3c3b3a392c38303f1a0e1a3e38353c3c253b3f1a3c3b35392c2831343c113f0a3c3b052c243c3f2f0a4d382c2c30153f2e3c372c294405343c3b3f39352f3f1a323c391e2e3c342c2944052c2c274d1e1334143c2835525245303c292c4d3f393c2c31343c3b3f443c3b31392c301a3c043c3e1c4d38382e3c4d38343c34093c3c30153e2e3c3e312c3c3e342c0e1a3c144d3c3c2e38343c163c3e2c3c373c3c163c1a3c28350a3c2a0e323f2c3c3e3c1a343f3c1a0e1a3e38350a3c3a0d3f520a3b052c293f37392c34303f1a0e1a3e38350a3c253b3f1a3c3b3a392c38303f2c0e1a3e38353c3c253b3f1a3c3b35392c2c31343c093f0a3c3b052c243c3f2f043c372c1e3c3f1e283a3c3c281904392c333f3f3e383b343c113f2d4e381a3e4d383a1938353c354e381a3c28382e19383a3c1a2d3c3c1e2e3c342c2944052c2c054d1e133704341a3b3f525252393c380e333c0a0e1a393e3c3f331a343c343c3c1a3c143c3b1c17243e393e3c3c343c3c123c1a153f3f3a124f3c1a1a303c2c0e31343c341a3c4d16153e1a0e1a3e1a0a3f3e4d383f3e04383f343c2c1a3c3e1a3e3939243e3c3e3c35343c3c123c1a1a4f3c1a3c1a3c38382c1c142c3c343c3831171a2c3c340a3f3f383a0e143c3e2c3c343c3c1a3c17243e393e3c3c343c284f3c1a1a3e1b043c3c343c344f3c1a0a1a3c3e3c3b331a3434343c3c123c1a0a153c2c373c3c4d3c1a3c2e3c39290a2f3c2c2c3c153c1a0a3e3e4d383e342c341a3c2e1a3e3c3e343f2c243f0a1e283a3c0e3c333a343c3b3f525252393c380904392c383e2c3c373c343c3b3f520a3f333f383f3f3c2e383e343c241a3c3e1a3e3e3e343b1c4d383c293c4d38343c3c1a3f28383f1c17243e3e3e3c3b343c384b3c3c3c303c2c0e1a3c283552394d4d382c3e3c3a343c3c123c1a1a143c10093f3c161a333c143c3c343c373f3c2a124f3c1a1a1a3c143c3f2c2c274f2c1e3c3f1e17123c3c3e3c3c343c3c123c1a1a143c16383f1c17243e3e3e3c3e343c3b3f2d4e3b3f1a3c3b04321a3c3c393c3831343c241a3c3e1a3e3e3e343e1c04383b343c3b3f52524539292c2f3c343c2b3f3c4d1a333c143c3c343c373f3c2a124f3c1a1a1a3c143c3f2c2c054f2c183c3f1e17123c3c3e3c3c343c3c123c1a1a143c16383f1c17243e3e3e3c3e343c3b3f3f13273f2d4e3b3f1a3c3b04321a3c3c343c3c1a3c3e1a3e3e3e343e2c2c3b0c331a3434343c341a3c2838521e283a3c3c25344b3c3c3c303c2c0e1a3f2838382e3c4d3f343c3c1a3c16383f1c17243e3e3e3c3e343c3b3f3813273f453c3b04321a3c3c343c3c1a3c3e1a3e3e3e343e2c2c3b0c331a3434343c341a3c283830191638521e283a3c3c25344b3c3c3c1a3c3e3c3c363c3434341a373f3c2a124f3c1a1a1a3c143c3f2c2c274f2c2944052c243c3f1e17123c3c3e3c3c343c3c123c1a1a143c16383f1c17243e3e3e3c3e343c3b3f2d4e3b3f1a3c3b04321a3c3c3e043c3c343c3c123c1a053f3f3a12143c29243e393c0a3f3e0a093f3c2c0a3f3e043c3e3e04383f343c2c1a3c3e1a3e3939243e3c3e3c35343c3c123c1a1a4f3c1a3c1a3c38382c1c142c3c343c38314a1a303f3f35451a3c14383c3c4d3c3e2c3e3c38343c2733343c3c1a3c4d4404392c3c1a3c3e4d3c3c3e343f2c1b52520a0a3f31392c3c3e1b043c3c2c2c3b0c343c3b3f3a352f3f3a352b3f3c3849333c3f121a3c28353e3c2816333c2e3c3f2c19453f292c2f3c343c301a3c3a093f3c161a333c143c3c312c3c3f341a2b3f0a3c3b052c243c3f2f043c3b2c294405343c3b3f3f132f3f0a3c44051e1635525245303c2e4e34333c143c3c2c2c370c393c38313c163c3e2c3e3c3f2c18453f292c2f3c343c301a3c3a093f3c4d1a333f3e3c3c312c3c3e342c1e1a3c3e4d3c3c2e383b343c3b3f4a2c3b3a392c381a3c28351a3c2824382c3e3c3b2c183c3f1e283a1a3c2824333c0a0a3b3e043c3b2c1e3c3f1e283a3c3c281e333f3c0a3e3e043c39343c3f0f2c2c2f34343c3b3f443c3b311e143c38343c270f2c2c37371e1a4d39343c3c093c3c30153f043c3c312c3c3e342c1a1a3c3e4d3c3c2e383b3c163c3e2c3c373c3c163c1a3c28350a3c2a0e323f2c3c3e3c1a343f3c1a0e1a3f28350a3c3a0d3f520a3b052c293f37392c34303f1a0e1a3f28350a3c253b3f1a3c3b3a392c38303f2c0e1a3f28353c3c253b3f1a3c3b35392c2c31343c153f0a3c3b052c243c3f2f043c352c1e3c3f1e283a3c3c281904343c193f2d4e381a3e38383a1938353c354e381a3c28382e19383a3c1a2d3c3c1e2e3c3b2c2944052c2c054d1e1337042c1b52520a0a3f311e1a4d39343c273f3c2a12153f143c3c2c2c2f0c393c3431343c2b3f493c3b052c243c3f2f0a4d3e3e043c352c1e3c3f1e283a3c3c281e1a3f4d38521e2e3c3f2c2c054d2c24391a3c4e381a3f2838521e28383a193537042c1b52520a0a3f311e1a4d3f343c3f3f3c4f1231342c3c1a3f16383f1c14383a393c38313e043c3c343c370f3e44303b3c2c2f52340a3f3f383a0e143c3e2c3c343c3c1a3c17243e393e3c3c343c284f3c1a1a3e1b043c3c343c344f3c1a0a1a3c3e3c3b331a34343c163c3e2c3c373c3c4d3c3e2c3e3c3c363c3430341a381a3c4d45333c3e3c3c363c3434341a281a3f1645333c38383e342c121a3c2e4d3c3c3e343e2c1b52520a0a3f31392c2c1a3c3c3752343c373f3a352f3f3a352b3f3c3849382c3e3c3b343c344a3c2c3c1a3c28383f1c1a0a3f3e043c3e2c1e343f2e2c4d3b343c373f4e0a3b333f383c1a3c043c3f1c4d383e2e3c4d3b343c38093c3c38143e38353c3c253b3f1a3c3b35392c2c1a3e3838521e2e3c3e2c2c274d2c1e3c2d1e2534143c1635525245303c2e0a4d38343c281a3c170e3f3c3e3c3f2c2c370c393c3831343c373f4a0a3b333f383c1a3c043c3f1c4d38392e3c4d3b343c38093c3c34153e2e3c3f312c3c3f342c1a3e2c3c373c343c373f4a2c3b353f383c1a3c16351a3c281e333c2e3c342c183c3f1e283a1a3c2824333c1a0a353e043c342c183c3f1e283a3c3c2824333c2c0a3a3e043c342c1e3c3f1e283a3c3c281e333f2c0e1a3e28353c3c253b3f1a3c3b35392c2c1a3e2838521e2e3c342c2944052c2c274d343c373f39352f041e14343e2c1b52523c4e3b3f525252393c380e333f3e3c3b343c344a3c2c3c1a3c2838391c1a0a3f3e043c3e2c1b2c3f2e0a4d3b2c2c38153e143c39343c3b0f2c2c2f34392c301a3c2e4d3c3c043837343c38093c3c34153e3e3c3f312c3c3f342c383e2c3c373c3c163c3e2c3e3c3e2c1b3c3f1c0a493b3c3c343e3c1a383e3e043c3f2c1b3c3c1c1635523c253b3f303845333e3c0a3e3e043c3f2c1b3c3f1e283a3c3c281e333f0a0a3f3e043c3f2c1e3c3f1e283a3c3c281e333f1a0e1a3e38353c3c253b3f1a3c3b35343c113f0a3c3b052c243c3f2f4e34333f2e3c3a343c2b0f2c2c2f34392c333f3c143836343c113f2d4e38143e2e3c342c2c274d341a093f0a3f4405343c3b3f39352f3f1a323c2d1e2e3c3e2c2c1905341a373f38132f041e13373f525252393c380e333c043c3b343c153f3f35273f3c4e381a3c28383e193e343f2c1e3c3f1e2e3c3e2c2c154d1e143c3f2c2905051e13373f0a2d453c1c163a3c0e3c3304320a383c343c3c1a3f28383e1c17243e3e3e3c3b343c093f0a3c1905343c11042c243e493c4e344a3c2c341a3c3e1a3e393838381c1a0e4f3c1a0a1a3c3e3c3c363c34342c2c370c331a3434393c38313e043c3f343c3337342c1231343c12303c1a093f3c2c0a3f3e4d383e3e04383f343c2c1a3c3e1a3e3939243e3c3e3c35343c3c123c1a1a4f3c1a3c1a3c38382c1c142c3c343c3831561a283f3c2545173c38382c1c04343c373c3c1a3c3e3c3e331a3430343c3c1a3f29243e3e3c3752343c3c1a3c17243e393e3c3c343c284f3c1a1a1a3c3e1a3e393e383e3c163c3e2c3c333c343c341a3c4d45382c38383c342c28303c0a093f3c14383b343c340b3c2c3c143c2835525245303c2e0a4d3e3c163c3e2c3e3c3f2c1b453c292c2f3c2c2c38153f2e3c3a343c3c123c1a1a143c10093f3c380a333f2e3c3c343c373f3c2a124f3c1a1a1a3c143c3f321a3c3c393c3831343c3b3f520a44333f383c1a3f143c3c363c3434341a370f2c2c3734392c2c1a3c3e3c3e2c2c3b0c331a3434343c341a3c28383a1916353c3c25344b3c3c3c1a3c3e3c3c363c3434341a373f3c2a124f3c1a1a1a3c143c3f2c2944052c243c3f1e17123c3c3c0a3f3e043c3f2c1b560b3c4d4d382c3e3c3a343c3c123c1a1a143c10093f3c4d1a333f3e3c3c343c373f3c2a124f3c1a1a1a3c143c3f2c2c054f2c183c3f1e17123c3c3e3c3c343c3c123c1a1a143c16383f1c17243e3e3e3c3e343c3b3f3f13273f2d4e3b3f1a3c3b04321a3c3c343c3c1a3c3e1a3e3e3e343e2c2c3b0c331a3434343c341a3c2838521e283a3c3c25344b3c3c3c303c2c0e1a3c283552090a33333f383f3f3c2e383b343c301a3c10093f3f381a333f2e3c3e310a383e341a153f1a2d1a391e283a3c083c3335392c341a3f143c3c363c34341c4d38382e3c4d3b343c153f520a1905343c3b3f3e132f3f1a2d1a391e2e3c3f2c1e3c351e2e343b2c2c0d4d1e13373f1a343c381c1635525245303c2e0a4d3e343c3c1a3c16383e1c17243e393e3c3c343c3c123c1a1a143c16383f1c17243e3e3e3c3e343c2b3f3f13273f3c2a12143c16383e1916350a3c25344b3c3c3c1a3c3e3c3c363c3434341a2b3f3c2a124f3c1a1a1a3f2e3c3e2c2c2f4d2c293f05343c3b3f3c13273f394e3b042c243c3f1e17123c3c3e3c3c343c3c123c1a1a143c16383f1c17243e3e3e3c3e343c153f3f13273f394e381a3c2838381938380a1e25373f1a3c3b04321a3c3c343c3c1a3c3e1a3e3e3e343f2c2c3b0c331a3434343c381a3e3838521e283a3c3c25344b3c3c3c303c2c0e1a3c283a3c0a3c3337392c2c1a3f143c3c363c3434341a370f2c2c3334392c301a3c3e3c3e2c2c3b0c331a3434343c341a3c2838301916351a3c25344b3c3c3c1a3c3e3c3c363c3434341a373f3c2a124f3c1a1a1a3c143c3f2c2c274f2c2944052c243c3f1e17123c3c3e3c3c343c3c123c1a1a143c16383f1c17243e3e3e3c3e343c3b3f2d4e3b3f1a3c3b04321a3c3c3e043c3c343c3c123c1a053f3c1012143c17243e393c0a3f3e0a093f3c1a0a3e3e4d383f393c3831343c2831342c381a3f3e3c3c363c3430331a343c343c1e1a3c3e1a3e3e39243e3c3e3c3c2c2f3f0c373c3c1a3c2c0e2b3c3e3c3c363c3434341a3f3b3f383f3f3c2c4531343c3c2c141a3431163c383f3f1345392c3c373c343c341a3c4d241a3f3e3c34292534333c38383f342c1e1a3c3e1a3e3e3e383b340a3f3f383a0e143f142c3c343c241a3f29243e393e3c3a2c2c150c343c273f393a122c281438362c2c3c1a3c143c39343c370f343c3b3f09341e3f343c381f38311e3f342c281a3e153f2f343c273f383a12163c3c373c3c163c1a3f28383e1c1a49393c1a343f3c3c0e1a3f2e38353e043c342c2c3b0c342c1a1a3f043c371c143837343c341a3f4f12153c1a0a3f3e0a0e1a3e2c09103c2c3352343c3c123c1a1a153c14303c2c2f3f0f341a38163c3e3c3f343c344f3c1a0a1a3c2838341c143c3f2c2c050c383b34153c14303c2c2f3f0f341a30163c3e3c392c2f3f0c373c3f3f3c3e3839343c342c282e3c3f2c2f3f0c373c3c1a3c0a2f522c25453b343c3c123c1a1a143c3828382c38383f390a0e1a3c3f3e363c16383f2f1a0e31161a383f3c2545173c38382c1c04343b373c3c1a3f3e3c3e331a343c3c13443f3c143c3b2c2c050c2c2c3c1a3c3e1a3e3e3f39313c2e343c2c2c3b0c2c2c3737392c3c1c2c2c381a3c38383f1c04343f343c301a3f3e1a3e3c3a0931392c3c1c343c2b3f393a12153c1a3352343c38381b043c3e312c3c3c342c3c1a3f3e3c38363c343c341a333f3c2a124f3c1a3c1a3c043c3c321a3c3c343c3b3f3c2a0e153c2e3c3e2c2c3b0c342c34303c2c2b3f3c3c0e313e04383e343c2b3f383a12163c3e3c3e3e450e3a3c2c0552340a3f3f383a0e14382e2c3c343c34153e3c333c3c163c1a3c043c342f1a2f3c343c30153e3c0a3f3e043c34312c3c3c2f2c4d3c343c153f3c2a12153e3c0a3f3e0a0e1a3f043c3b331a343c343c2c1a3c17243e3c3c333c3c163c3e1b0a373c343c341a3c4d241a3f2e3c3a2f1334333c3e3c2f343c380d3c1a3c4e3c0a1a1a3c3e1a3e3e3e3837340a3f3f383a0e14383e2c3c343f3c1a3e29243e393e3c2c2c2c150c343f3f3f393a122c28143829343c1a1a3c100e153928383c342c12173c383a2c3e3a0e143e042c3c343c0e1a3f3e1a3e3c3e3432331a3430343c281a3e4d382c1c143c3b3a04382d3c163c3e2c3c373c343c483b343c241a3f2a093f3c132b3f1a3c341a3f2f0e1439382b04392c3c392c3e3c332c2c374f341a161a3938161a39283a393c284c05392c341a39043c312c2c050c343c0a1a3e2e3c37343c052d3a043c3f3833343e3415373f1b4d24382c383b52342c0d3f3c3e3830343c0e123c1a0a15391a0a3e3e043c302c2c3c1a38143c2d343c093f383a0d3a3a0434371c043830343c451a3e28383e193a121539043c33343c480c343c0e123c1a0a143910093f3c3e3c323a043833343c121a381012153e143c322f2c4d3f343c0a333c3c0e31343c483b392c3831343c053b343c4c3b1e1a4d3c343c12153e2c333c3c163c3e2c3e3c2d343c491a392e3c3f38311e3f341a0d3f3c100d3f3c164d382c3c373c3c163c1a3e16383f1c1a493e3f1a3c3f3e043c312c2c3c4f3c1a0a303c1a0e1a3c28383c331a343c393c3831343c0e1a3e041a3e393e3c361c143432331a3430343c113f3c2a12153e2e3c302c2c3b0f341a0a333c2c0e1a3e2e3836393c3431343c443f3f3a121539043c33343c0d0f342c4d1a3e2e3836343c4d333c3c0e31343c28382c3e3c38343c0e123c1a0a4f3c1a3c31343c093f163c150c373c3c1a3e143837343f302c282e3c2c2c2f3f0c373c3c3e2c3c373c3c163c3e2c3e3c372c25443a3f383c392c3c373c343c1e1a3f29243e3c3e3c3e343c2c123c1a3f3a392c3f3f3c2e383a3c163c3e2c3c373c343c281a3c143c34343c370f343f3b3f3e3a121a3c3e1a3e3e3f3e313c14343f2c2c370c391a30343c3c343f3e043c38343c344f3c1a3c303f2c0e1a3c2e383a3e043c3e343c270c342c341a3f041a3e3c3838381c14383b393c38313e043c38343c344f3c1a3c303f2c0e1a3f043c35363c343c343c113f3c132f0c341a284f3c1a3c1a3f2e3c3a2f1a4d39343c2c123c1a3c153c143c39343c153a3f383c1a3c043834393c1a31343c281a3c16383f343c381a3c3e1a3e3e3f3e313c1628333c2c093f3c1a0a383e043c35343c1e123c1a3f3f3f3a124f3c1a3c1a3f3e3c38363c343c2c2c3b0c341a344f3c1a3c1a3c1438343c4d3c1a3c043c342f1a2f3c343c30153e3c0a3a3e043c34312c3c3c2f2c4d3b343c153f3c2a12153e3c0a3c3e0a3c31343c2c1a3c17243e3c38383f393c3431343c2c123c1a3c153c1a0e1a3c143c392f0a0e153c3e3c2f2c2f3f0c373c3c1a3c3c4531343c1e123c1a3c153f2c0a3c3e0a3c310e0a283f393545173c38382c1c043433373c3c1a3c1438343c4d3c3e2c3e3c39343c153a3f383c1a3c043834393c3831343c1a123c1a3f3b392c3c1a3e3838381c143834393c38313e043c35343c284f3c1a3c1a3f3e3c3e331a343c3c4d3c3e2c3c373c343c341a3c4d241a3f2e3c3a2f1334381b043c3e3f2e3c33343c380d3c1a3c4e3c0a153f3c2e382c343c3c123c1a1a153e2e303c2c2f3f0f341a49163c3e3c32343c164f3c1a0a1a391638341c143c322c2c050c383b341538043c3a343c28143e2a0e153e16383c342c45173c38382c1c04342f373c3c3e2c3e3c38363c343c341a093b343c1a1a3c10093f3c13281438162b04392c3c1a3e16383c343c161f342c12392c3e3c2f2c2c050c343c161a3e1638382e2f0e1a3e041a3e3c3f391c3c2e34302c25443a3f383f3f1b04382d393c3431343c16381b043c362c2c33333f383c1a3e143c302e2c4d39343c161a382838301c143c303838341c3e043c36343c050f342c121a3e2e3c301c1a2b3f3c3c0e153e2e3c31363c343c2f2c2f3c2c2c3c153e0a0a3e3e043c30343c440c342c451a3e4d38381c143831343f373f3c2a0e14381a4d3c3e0a0e1a3e2c2f3c343c2c1a3e07243e3c3c0e1a3828382c1c142c3c343c45153e2e3c29383b381a3916382c1c142c3c3c163c3e2c3c373c3c163c3e2c3e3c372c2c3b0c391a343c3f1a3831343c1e1a3f29243e3c3c333c3c163c1a3c143c38363c343c2f1a4d3c343c281a3c141a3e3c3e3c3c363c343438300e3f341a3b3f1b4d24333c3e3c35343c1e123c1a3c1a3c2a12143f29243e3c3e3c3e2c2c2f0c342c34303c2c0e31343c2c1a3c17243e3c3c0a3f3e043c35343c1e123c1a3c1a3e2a12143f29243e3c3e3c3b343c273a392c341a3c043c342f1a2f3c343c2c123c1a3c153c143c39342c1a303f0a0e1a392838381c16383c343c3c123c1a1a2c040a38143e383b522f0a4d3f3e4d383e342f3c303c0a0e1a392838381c14383e343c241a3f041a3e3c3a0e1a3e3816333c1a333c343c1a382c3e3c3e312c3c3c342c281a3f043c35363c343c341a113f3c2a124f3c1a3c1a3e2e3c3b321a3c3c343c153f3c2a0e153e3e3c3e2c2c3b0c342c34303c2c0e31343c2c1a3f3e1a3e3c3838381c14343e331a343c343c34153e3c333c343c301a3e3824382c3e3c39342c1a303f2c0e1a3e3e1a3e3c3828333f3e3c342c2c2f0c342c1a303c3c0e3c3e043c38363c343c3e043c392f04382c3e043c332c2f3f0c373c3c1a383c4531343c1e123c1a3c153f2c0a3c3e0a3c313e2c3c1a3c3f3e243c153c2c3e071e3c340a3f3f383a0e143c3e2c3c343c3c1a3f39243e393e3c3c343c301a3c100e4f3c1a1a1a3c3838301c143c3c2c2c150c3836343f363c343c342c381a3c38382c1c142c3c343c3831333c3c392c3e3c3f343c373a2f2c2f3c343c2c1a3c2e0a3c3c3e343c343c301a3c38383c29150e4b3c3c3c1a3f38383f1c143838343c3b3f3c2a12153c2c0a3f3e0a0e1a3c1a0e303c3e3c3f343c341a3c28383c29150e31361a3c392c3e3c3f343c373a2f2c2f3c343c301a3c2e4d3c3c39123c3c3e3c392c2c3b0c342c301a3c28383f1c14383f393c38313e043c3e3e4d3c3c3c4d3c1a3c2e3c3e2f0a2f3c343c381a3c2e0a3c3c3e343c2c2c3f323f35443f4d302c3c363c343c343c380e3c3c3f3f3c132f0c363c343c3f2e3c3c3e07123c3c3e3c3f2c2c3b0c342c38303c2c0e31343c3431370a3c1a3c28383c291a2f522c1939383c3e1a3e3c3e3c3f2c1b453f1e28383e193a12123c1a3c3b343c38312c2f154d2c2f154c3e07453c3c4d3c1a3c2e3c3e2f0a2f3c343c381a3c2e0a3c3c3e343c2c2c3f323f35443f0a391a123c1a3c1a3c2e0a3c3c38383e193a12123c1a3c3b343c3c31321a3c3c343c3b3f3c2a12153c2c0a3f3e0a0e1a3c1a0e103c3e3c3f2c2c3f323f35443f0a391a123c1a3c1a3c2835523c253b3f3c132f0c363c343c3f2e3c3f3e4d382419383824192c0e373c3e3c3c3834493e383f3c31332c3c392c3e3c3f343c373a2f2c2f3c343c2c1a3c2e1a3e3c3e343c343c301a3c383a3c3c28161f321a3c3c343c2f3f3c2a12153f3e3c3f2c2c2f0c342c38303c2c0e31343c3431380a3c1a3c2e3c3e343c3b3f1a3c3b373a4d382419383824192c0e0c3c3c333c343c381a3c16273b3f383c1a3c043c3f313c3c3c331a343c343c333f3f3a12153c043c3f2c2c3b0c342c38303c2c0e31343c34312c2c3c392c3e3c3f343c37353f383c1a3c2e3c3f363c343c341a3f3f520a3f333f35443f4d302c3c363c343c343c38123c1a3f3f3c132f0c363c343c3f2e3c3c3e07243e3c3e3c3f2c2c2f0c342c38303c2c0e31343c3431351a3c1a3c2835523c384d381b4d352c053c3c123c1a3c1a3c28383e193a12123c1a3c3b343c38313e4d3c3c3c4d3c1a3c2e3c3e2f0a2f3c343c381a3c2e1a3e3c3e343c2c1b453c292c2f522c1e3c49363c343c343c38123c1a3f3f3c132f0c363c343c3f2e3c3c3e07243e3c3e3c3f2c2c2f0c342c38303c2c0e31343c3431352c3c1a3c2835523c384d381b4d353c323e1a3e3c3e3c3f2c2c374d1c141a3e3c3c281a3c2c0e312f3c3c3e2c3c333c343c341a3c4d24333c2c373c343c34123c1a3f3f520a3f31392c3f3f0e3934123c1a3c1a3c141a3e3c38383f193a120b3c2c3c1a3c253b3b392c3c1a3c1638381c14383e393c38313e043c3e342c3031343c30312c0a3c392c3c373c343c341a3c4d1e381b043c3e363c343c2c1b453c2e0a4d3f2c1f3c04363c343c343c34123c1a3f3f3c252f0c310a383c343c3b052f2c4d3f343c343b343c3031390a0e1a3c1638381c14383e393c3c313c3c093b3c3c333c343c381a3c161e382c3e3c39343c38123c1a3f3f520a3f333f35443f0e3934123c1a3c1a3c2e1a3e3c38383f193a120b3c2c3c3b2c2c3c31320a383c343c333f3c1012153c043c3f2c2c2f0c342c38303c2c0e31343c3431340a3c1a3c1635523c384d381b4d3a0a30141a3e3c3e3c3e2c2c3b4d1c14453f3c3e3c3f1e28383c2f0a2b3f3c3c0e312c3c383e1b043c3c363c343c363c343c341a3c123c1a3c1a3c3e1a3e3e3e343e2c2c3b4c1c14383f343c3c123c1a2c153c3e3c3f343c373f3c2538381b043c3f363c343c343c3f0c363c343c3f2e3c3c3e05383f3c3c0e2d3c3e3c3c343c3c123c1a3c123c1a2c2f3c2c3c31350a3c1a3c3c37522c1b14343c283549143c38123c1a3f3f3c2a12143c39243e3c3e3c3c3e07243e3f3c0e373c3e3c3c3837303e383f3c31103c383c340a3f3f383a0e143c042c3c3c163c1a3f2f3c4c2f2c2f3c343c3c1a3f2e1a3e3e39243e3e3e3c3c343c280d3c1a3c4e3c1a3c303c2c0e1a3f2e1a3e3c3e38383c163c3e2c3c373c343c28123c1a2c143c16383f292c2f3c343c3c153c2e3c3c343c342c321a0a3f3e043c3e2c185252525245392e0a4d3f343c3c1a3c3e3c3e3834343f2c2c3b0c341a282c1a2c38143c2f3f33343c3c1a3f2f3f30343c3c1a3c153c483e043c3f343c2c1a3c16383f1c153f05393c3831383f1e3c3e0a0e1a3c4d382c1c142c3c3e0a163c343c3c1a3f2f392f3c2c083a3c0a38341b04303c2c1b3c391c04343c373c3c1a3c3835123c4f12143f143c39383c451a3f153c4a342c121a3f2f3c373f383c1a3f28383c3831383f363c343c343c0d3f312f3c442f1438313e043c3e343c0e1a3c3835123c4f121a3c38351a3c4f121a3c38351e3c4f121a3c3835243c4f121a3c3835343c4f122c382e3430343c3f3f083c330c38381e143f143c3c2c1c1a391c153f35341a1e1a3c383a163c4f122c100a341a3c38384c331a342c343c3f3f3e3a0d3f3c3e3c3c2c2f3f0c341a342c351438343c163c3e1b043c3b383c161a3c3e1a3e0d3c33363f383c1a3f2f3c37342c161a3c3e1a3e0d3c3015392e3c35383c161a3e2e3c331c4d383f193a121a3f153c371c143c3c363c36163c4f0d3f3c2a12303c2c0e1a3f053c37343c242c3e2a121a3c3e1a3e0d3c330c2c2c370c3e0434372c18283c2e2c4d3c343c1a1a3e28383e193f3c27383e1e1a3e3e1a3e3c3e343e392c3c2c3b0a3c31343c341a3c3838381c143c3c343c30123c1a2c1a3f2f3c33343c282c392e3c3b383c113f3c132f0c343c121a3e043c3c2c183c391c143c3c363c311e3c043c3c363c31243c043c30343c241a3f043c3c363c36163c053e1c3c143c3f343c341a3c3e1a3e3f3e3c3c363c343c343c301a3f3f3f14342c381a3e3f3c19343c1e2c3e15121a3f153c363a143c30383c121c343c3f3f4b3c330c383c491a3c38350a3c4f12163c3e3c3f3e4a0e383c2c0952340a3f3f0e3c150f341a3c163c3e3c3c343c284e3c053c1a3c3e3c3a330a3024343c3c1a3c38353c3f4f12143f07243e0b3c1e1a3f043c3c2c2f3f0c3833243e342c1e1a3c38384c331a361a3f3e3c3c2c271a381c16383c343c3f3f123c2f0c341a162c35143832343c3f3f3329243e123c2c1a3c383a2c3f3a0d3f3c3e3c37383f49153e1a373c343c193f483c3f2d3f383c2c3b143835343c3c1a3f291e393c3e3c3c343c244e3c0a1a1a3c383a453f4f121a3f4d3508353e3c3c383b12143f4d3b522f1a4d3f343c491a3c3e1a3e0b3c1e2c37043c36343c193f3c132c2c3a2f3c13343c122c131a34333c2e3c36363c343c342c1631343c3f3f143c2f0c341a1a1a3c053c2d343c1a2c3204342f343c3c123c0f0a35341a1a1a3f043c341c143c37383a301a3f4d383c2e1a2f3c343c3c123c0f0a35312c3c3c2c2e4c3a342c4531343c341a39043c3c2c241a381c143c3c2c243c381c143c3c2c1b0a391c143c3c2c1b1a391c143c3c2c181a391c153c2f34153c1a3c3835243c4f122c2f043434343c3f3f043c330c38381e143e043c3c2c1e2c391c153e1f3c143c3c2c29284f3c173c1a3c3838121c16383c343c3f3f303a12143c153c18342c0a3e1b043c3c363c31383c043433343c19343f383c1a3e053c37343c1e1a392a093f3c252f0c343c1a2c3e2a121a3c3e1a3e053c330c2c2c3b0c393c3831343c0e2c3e2e3c34383c110c343c3c123c0e2c391c16383e1c1a0e14392835113c3845382c3e3c30343c4c3f3c132c2c3a2f3c13343c0a123c1a3c143c1628333c2c0e1a3c143c3c2c2e2f0c343c3f3f343a121a3c041a3e3f3e3c37343c161a3f4d383e193a121a382e3c2d343c3f3f1a3c2f0c343c3c123c0b0a39343c3c123c0b1a39343f3c1a3e3e3c31343c3c123c0e2c393837123e343c381a3c143c3c363c3416343c3c123c143c1a3c043c38383a34153c2e3c30383f4d1a3e053c363a143c34383c121c343f3c2c3e15121a3c383a343f3a122c39143c36383f4d1a39153c19343c3f3f0e3c150c373c3c1a3c2c4531383f1e3c3e52493e3c2c1552340a3f3f0a3c3b0f341a3c163c3e3c3c2c1f1a3f1c14343a343c302c39043c3a383934153e143c3b383c16382c3e3c3b2c2c3c2c3e044d3c3c3e3c362c2e4d2c362835523c253b3a342c0e31343c341a3e043c3c2c1f1a3f1c143c3c2c1f3c3f1c143c3c2c1c453f1c143c3c2c1c493f1c143c3c2c1c3c3f1c153c2f341a0a1a3c383a2c3c2a122c382e343a343c3f3f1a3c3b0c383f38143f043c3c2c1b0a3c1c153e193c143c3c2c29284f3c153c1a3c3838341c16383c343c3f3f383a12143c153c18342c1a3e2c3c3752343c282c3e2e3c3c363c37452e1a2f3c343c282c3e2e3837343c3c123c130a15392e3c35383c161a3e2e3c331c4d383f193a121a3f153c371c143c3c363c37451c16383f1c1a0a3f3e043c35383c161a3f153c371c143c3c363c37451c16383e1c1a0e143e2835113c3816333c3e3c34343c162c3a2f3c13343c1a123c1a3c143c1a4d3c383f1e3c3e043c3e343c3f3f3f3a121a3c3e3c39363c3438343c282c392e3c3b383c4d1a3f2f3c371c143c36343c0e1a3c383a0a3c2a121a3c3e0a3c0f0a381a3c3e0a3c0f1a381a393e3c3a343c1e1a3c3e1a3e1b3f3e1e3c143c3f343c341a3c3e1a3e3f3e3c3c363c343c343c301a3f3f3f2a342c381a3e3f3c19343c1e2c3e15121a3f153c363a143c30383c121c343c3f3f083c3b0c383c491a3c38353c3c2a12163c3e3c3f3e4a34383c2c0952340a3f3f4d3c330f341a3c163c3e3c3c343c284e3c053c1a3c3e3c3a330a3024343c3c1a3c38351a3c1012143f07243e4e3c341a3f043c3c2c2f3f0c3833243e342c1e1a3c38384c331a310a3c2e3c3c2c181a3f1c16383c343c3f3f453c3b0c341a162c35143832343c3f3f3329243e453c381a3c38351a3c2a0d3f3c3e3c37383f49153e1a373c343c193f483c3f2d3f383c2c3b143835343c3c1a3f291e393c3e3c3c343c244e3c0a1a1a3c38351e3c10121a3f4d3508353e3c3c383b12143f4d3b522f1a4d3f343c491a3c3e1a3e4e3c342c37043c36343c1e2c3a2f3c13343c122c131a34333c2e3c36363c343c342c1631343c3f3f4f3c3b0c341a1a1a3c053c2d343c1a2c3014342f343c3c123c090a3e341a1a1a3f043c341c143c37383a451a3f4d383c2e1a2f3c343c3c123c090a3e312c3c3c2c2e4c3a342c4531343c341a39043c3c2c191a3f1c143c3c2c193c3f1c143c3c2c1e453f1c143c3c2c1e493f1c143c3c2c1e3c3f1c153c2f34153c1a3c383a0a3c2a122c382e3434343c3f3f123c3b0c383f38143e043c3c2c270a3f1c153e193c143c3c2c29284f3c173c1a3c3838121c16383c343c3f3f303a12143c153c18342c0a3e1b043c3c363c361e3c2e3433343c19343f383c1a3e053c37343c1e1a392a093f3c252f0c343c1a2c3e2a121a3c3e1a3e133c3b0c2c2c3b0c393c3831343c0e2c3e2e3c34383c110c343c3c123c0d0a3f1c16383e1c1a0e14392835113c3845382c3e3c30343c4d2c3a2f3c13343c0a123c1a3c143c1628333c2c0e1a3c143c3c2c2e2f0c343c3f3f343a121a3c041a3e3f3e3c37343c1e1a3e2a121a382e3c2d343c3f3f4d3c3b0c343c3c0e3c30453f343c3c0e3c30493f343f3c1a3e3e3c31343c3c123c0d0a3f38370a3e343c381a3c143c3c363c3416343c3c123c143c1a3c043c38383b24153c2e3c30383f4d1a3e053c363a143c34383c121c343f3c2c3e15121a3c3835243c2a122c39143c36383f4d1a39153c19343c3f3f4d3c330c373c3c1a3c2c4531383f1e3c3e4b1e3b3c2c3352340a3f3f0a3c330f341a3c163c3e3c3c343c344f3c0f3c39343c3c1a3c29243e083c301a3c38384f331a3428343c3f3f3a3a121a3c38381a1c143c3c2c2f2f0c341a1e2c35143837343c3f3f383a12143c2e3c38383c451a3c2f3c4a342c1a1a3c38383c321a3c2d343c3f3f083c330c343c341a3c043c3f343c2c123c1a2c1a3f2e3c3c2c2c440c343c1a1a3e2e3c35343c3f3f0e3c330c38362c3e3f383c173c38382c1c04343f373c3c3e2c3e3c3a383928382c3e3c3a363c343c342c341a3c28383c331a3430343c341a3c2838301c153c07343c273f3c3f3c48393c3831343c3b3f3c39243e3e3e3c3a343c3b3f3e3a122c30043c3a2c2c3c2c321a0e1a3c28382c1c142c3c343c3c093c3c45382c3e3c3a343c153f312f3c4438301e3f3e043c342c293c2c2d2e383f343c16123c1a3c153f3e3c3c363c3428341a153f3f3a0e153c1a333c3c163c1a3c143c38292c4d3c343c2c123c1a3c1a3c281e333c3e3c382c2c2f0c342c2c303c2c0e31340a3f3f383a0e143c2e2c3c343c242c3e2e383e343c242c070a38153c0a373c343c2c1a3e3f3e143c1434352f2c4d3c343c242c392e3c38292c2f52343c2c1a3f153c33343c242c3e28383e193a0d333f28383c3e4d28382c3e3c35343c301a3c1009313f383c1a3f143c39343c341a3f4f121a3c4f0e1a3c143c3e382d303f3e043c3a383c4d1a3c16383e193a12153c0a333c343c2c1a3e381e382c3e3c39343c2c2c30043c382c2c2f0c342c2c1a3c4d38381c143839393c38313e043c3f2c2c3c4f3c1a3c1a3c043c3f3839301a3f143c3e343c190c38351a303c2c0e173c38382c1c04343e373c3c1a3c2e3c38343c1a2c071a341a3c16382c1c142c3c343c382c392e3834343c382c3e2e383e340a3f3f383a0e143f3e2c3c3c163c1a3c143c3a3830453f341a1e1a3f153c37341a330f292c2f3c343c373b392c381a3f153c33341a1e1a3c4d383e193a121a3e3e3c3e3835381a3f143c3e343c330c341a342c183e3c382c2c3c4f3c1a0a1a3f043c3e2c2c374d1c143c382c2c050c383930303c2c0e1a3f143c35343c341a3c4f121a3f4f0e1a3c043c392c2c3c1a3c143c34382d2c3f3e043c382c2f3f0c373c3c1a3c2f3c363a1a0e1a3c28382c1c142c3c3e043c3c2c1f1a391c143c3c2c1f3c391c153c123f383c1a3f2e3c3b363c343c2c2c3704331a343c3e043c3c363c36493c04383f343c3f3f383a122c39143c37383f4d1a3c38353c3c4f12163c3e3c3f3e441e393c2c3752340a3f3f453c2f0f341a3c163c3e3c3c343c344f3c083c38343c3c1a3c29243e4b3c2c1a3c38384f331a342c343c3f3f043c3b0c343c3f3f4d3c3b0c343c3f3f383a122c3514383f343c3f3f0a3c3b0c341a1e1a3f3f3c2d343c1e2c32043834343c3f3f3c39123c0b0a383e2c3e3c3c2c181a381c143c3e343c301a3f043c38363c3438343c281a3c383a523c2a121a3e3e3c3f343c3f3f053c3b0c343c3f3f493c2f0c38362c3e2f2c4d3c343c3f3f120549123c3c3c4f3c311e3f343c3f3f133f490d3c3c3c4e3c4a3c3f343c1a1a3c383a0a3c2a121a3c383a4b3c2a121a3c383a3c3c2a122c24043c3c2c29284f3c153c1a3c3838341c16383c343c3f3f383a12143c153c18342c303e2c3e3c3c363c31383c2e3c3f363c343c1c4d3a373c4d49382c3e3c39343c3c123c0e2c3f343c38123c1a3f0f2c2c374c2c2c370c383f162c37043c39363c343c2f2c4d3f343c30123c1a3c153c1a0e1a3c3e4d3c0b0a38382c3e3c3e2c2e4d4b3c3c3c1a3c16383f1c14383e3e043c3f363c343c342c2c392c3e3c3c363c31383c2e3c38292c2f3c3c163c1a3c16383c321a3c3c343c3c1a3f17243e3c3e3c3c2c2f3f0c343c3c2c4c0a373f3c281e333c3e3c39383f4d303f3c0e3b343c341a3c383a0a3c2a121a3c383a3c3c2a12143f043c352c2e150c343c2c2c4d1a381a3f4f093f3c132b0c312c3c3c321a3c3c343c373f3c2a12153c143c382c2c2f0c342c2c303c2c0e31383f1e3c3e053c253c3c0e1a3c3835123f3a121a3c38351a3f3a122c363c2f3c343c281a3f2e1a3e3c38383e1e17243e3c3c0e1a3c3e1a3e4b3c2c153c143c3c2c1e3c3f1c153c32343c382c352e3c3c2c1b3c381c142c3c343c34310d3c283f3c4e45173c383a1a3c2a0e143c3e2c3c343c3c1a3c17243e163c381a3c3e3c3f331a36243c2e3c3c2c29244f3c152c1a3c3838241c143c3c2c2e3f0c343c3f3f3b3a12143f053c18342c161a3c38382c1c14343f343c2c2c39043c3f383934153e3e3c3c2c2c3c4b3c3c451a3c383a243c2a121a3c143c39343c381a3f3e1a3e3f3e3c3b343c3f3f394f121a3e3e3c37343c1e1a3c383a383c2a122c0c0a34382c3e303c2c2f3f0f341a38163c3c373c343c242c332c2f3c343c24123c1a3c153c143c3f2c2c3c4b3c3c451a3c143c3f2c2c440c38392c1a3f16383c383916303c2c0e1a3c28383c321a3c32343c241a3c2838321c153c4d343c273f3c3f3c4b3e043c3f2c2f3f0c373c3c1a3c3e4d3c390a2f3c343c241a3e383809383e162c122c3831343c153f303f3c0d342c381a3e2e1a3e3c3e3838343c3c123c152c143e38383f1c04383e343c3b3f520a3b05342c38392c3c373c343c341a3f384d333c3e3c38312c3c3c343c3b35392c3c1a3f38383f1c143838393c38313e04303c2c2f3f0f341a38163c3e3c3a383c16153c143c3a383f30153c0a373c343c2c1a3e3f390b3c1434352f2c4d3c343c242c392e3c38292c2f52343c2c1a3f153c33343c242c3e2a0d333f28383c3e4d28382c3e3c35343c301a3c1009313f383c1a3f143c39343c341a3f4f121a3c4f0e1a3c143c3e38301a3f3e043c3a383c4d1a3c1012153c0a333c343c2c1a3e381e382c3e3c39343c2c2c333e3c382c2c3b0c342c2c1a3c4d383f1c143839393c38313e043c3f2c2c3c4b3c3c451a3c043c3f2c2c440c38392c1a3f143c3e343c190c38351a303c2c0e173c38382c1c04343e373c3c1a3c2e3c38343c1a2c450a341a3c16382c1c142c3c343c382c392e3834343c382c3e2e383e340a3f3f383a0e143f3e2c3c3c163c1a3c143c3a383f30143f043c3a383c16143c4f09333f383c1a3c1628333c2e3c3a383c4d143f043c391c143c34343c342c2b2e3c3a343c341a3c4f12143c153f49343c2f3f3c39123c39043c3e343c190c343c2f3f394f122c333c0a3f3e043c3a343c1e1a3c143c391c143c351c043c39343c333f3c3e3c3e343c1a2c563c3831343c2f3f383a12163c3e3c3f383c121c3e043c3f2c2f3f0c373c3c31343c3f3f103c3b0c343c3f3f163c3b0c383e24382c3e3c3b343c28123c1a3f3f3c13344f3c1a3c31343c3c123c0d1a3f342c381a3c38382c1c153c32343c162c352e3c3c2c1c3c3f1c142c3c343c3831072c303f3c1345173c383a1a3c100e143c3e2c3c343c3c1a3c17243e163c341a3c3e3c3f331a36243c143c3c2c29244f3c153c1a3c383a243c2a121a3c383a1a3c2a121a3c38382c1c153c18342c381a3c383a2c3c2a12143f043c38383c451a3f053c04342c1a1a3c38383c321a3e2d3c2c373c343c3f3f103c370c343c341a3c043c35343c2c123c1a2c1a3f2e3c3c2c24453f1c143c34343c381a3c383a283c2a121a3c383a383c10122c0c0a373b392c3c1a3c383a1735141a3c3c39243c150a381a3c383a1e3514163c3c391e391a3c381a3e3e3c3c2c243c3f1c143c3c2c24123f1c143c3c2c1b243c1c153f0b343c3f3f3329243e383e3c3c2c2c150c2c2c3c1a3c38382c1c14343e383f49153c0a373c343c3c123c0d2c3f343c38123c1a3f0f2c18303c291a2f3c343c301a3c3e1a3e113c381a3c2e1a3e3c3a093f3c10122c3a2f3c13343c30123c1a3f3b392c381a3c041a3e3c3e383e3e043c3c312c3e2d3c2c2f3c343c373f3129123c3c3e3c3e2c2c3b0c342c3431343c38123c1a3c153f3c333c343c3c123c0d2c3f343c2f333f383c3e2c3e3c3e2c2c3c4b3c3c3c1a3c3e3c3a331a343c343c3f3f383a121a3c3f39253c16383f2f0a4d3c343c302c352c0a383e0a281a3c143c3c2c1b243c1c143435343c193f3e10121a3f3f392b3c2e3c3c1c043c3c1c144d3c3e17123c3c3e3c3e2c2c3b0c342c341a3f38383f1c143838393c38313e053c253c3c0e2c3b0a3c31343c3f3f103c370c343c3f3f163c370c383e24382c3e3c3b343c28123c1a3f3f3c13344f3c1a3c31343c3c123c0d1a3e342c341a3c383a2c3c2a122c39143c3f383f4d1a3c383a1a3c1012163c3e3c3e3e481a3e3c2c3752340a3f3f123c330f341a1a163c3e3c34343c153f123c330c341a304f3c1a0a173c383a2c3c2a0e143f042c3c343c1e1a3f4d3a383c2a124f3c150a1a3c3838341c143c352c2e3f0c341a341a3f4d381e1c143c38343c281a3f153e053c143c352c1a3c4e3c053c1a3f043c3e331a3430343c153f383a12143c143c34363c34303836493e342c2c1a3c3e1a3e3e3e383b340a3f3f383a0e143c3e2c3c343c3c1a3f29243e393e3c3c2c2c150c343c3f3f393a122c2814383b343c341a3f4d38301c143c38343c193f383a122c4d1a34153f3e3c3b383b381a3c38382c1c142c3c343c2f3f1b4d24382c3f3c253c3c0e1a3e3e3c3e343c2f3f3c132f0c331a3430343c193f163c3b0c373c3c1a3e3e1a3e393e3838340a3f3f383a0e143c3e2c3c343c3c1a3c29243e3e3c333c343c341a3f381e382c3e3c3c2c2c150c343c34123c1a3c2c440a341a3c1638381c14383e393c38313e043c3c363c3434342c381a3c38382c1c142c3c343c30163c3e3c3f3e49283f3c3e303c2c243c3f1c04343e373c3c1a3c143c3e2c1b2c3c1c17243e393e3c3c2c2c150c343c373f383a12143c3e3c3e2c2c050c343c2c1a3f2e3c3a3831383e343c3c153f3e3c3e363c3430342c30173c38382c1c04343c373c3c1a3c3e3c3f331a34343c4d3c1a3c043c382f0a2f3c343c3f3f3e3a121a3f3e0a3c3c3f39493c143c382c2c3b0c342c2c303c2c0e31343c3c123c1a1a153c2e3c3c2c2f3f0c373c3c1a3c163a3c3c2a12163c3e3c3f3e563c303c2c3b52340a3f3f2c3a12143f042c3c343c1e1a3c29243e323e3c382c2c3c4f3c1a3c1a3f043c39383c451a3f053c4a342c1a1a3f053c323c13453e2c3c373c3c163c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3c373c343c273f0a2c3f0f3917163c3c2f1e383b0a28253f1a1e253b051e363b051e253b0a492d383f1e253b05302b3b051e253b051e253b0a3c3f3c1a30393b051e3f3b0a1a253b0a16313b0a0a25392f1e313b051e2f38152c2a3e043c3c343c2b3f3a3a121a3f4d38491c143c3e343c2c1a3e3f3e4c3c1a0a243e043c3c343c2b3f383a121a3f4d38491c143c3e343c2c1a3e3f3e4d3c1a0a253e043c35343c3c1a3c2e3c3e343c301a3f3e3c3b343c3f3f3e3a121a3c3e1a3e3e3e1a3e393f383c3c3e343c383c4d1a3c3f3c33343c3c2c3e28383e193a122c2439243e323c0a2a3e043c352c29150c343c341a3f3e3c342c2c342c2a3e383c3c163c1a3f3e1a3e3c3e343f2c2c2f05343c3f3f3c380504343c3f3f354d0d042f2c2f3c343c281a3c39243e393c0a3f3e043c38343c3b3f3f35344f3c1a3c31393f2831343c193f0833383c362c303c330a3024343c193f0e33383c362c303c330a302c343c193f0c33383c362c303c330a3034343c193f1233383c362c303c330a303c343c1e1a3c3e3c3f343c341a3c043c38343c281a3f043c352c2e3f0c383a3c4f3c171a303b3c0e1a3f4d35244d2c3c0d3c0a3c4e3c051a1a3f4d352c4d2c3c0d3c0a3c4e3c053c1a3f4d35344d2c3c0d3c0a3c4e3c0a1a1a3f4d353c4d2c3c0d3c0a3c4e3c0a3c1a3f043c3c343c381a3c143c39343c2c1a3f2e3c35343c193f343a122c2439243e323c0a293e043c352c29150c343c341a3f3e3c342c2c342c2a3e383c3c163c1a3f3e1a3e3c3e343f2c2c2f05343c3f3f3b4d0d042f2c2f3c343c281a3c39243e3e3c0a3f3e043c38343c3b3f3f35344f3c1a3c31393f3431343c193f323a121a3c143c38343c153f3c153f24342c3c3e2c3e3c38363c343c341a3b3f3f35381a3c38383c2935341a3c3838302e13373b3f383c1a3f2e3c3c331a3434393c3831343c2c1a3c2838381e17243e3c3c0e30382c0e1a3f4d38491c143c3e343c2c1a3e383839383b1a153c3c373c343c2c123c1a3c143c2838381e2e3c3c2c184d3e2e13373b3f383c1a3f2e3c3c331a341e393c3831343c2c1a3c2838381e17243e3c3c0e30383c0e1a3f4d38491c143c3e343c2c1a3e38383e383b1a153c3c373c343c2c123c1a3c143c2838381e2e3c3c2c2c05361e1628382c3e3c3b343c3f3f3c2a0e4f3c153c303c2c0e1a3f3e3c3f2c2c2f04331a343c3e0a0a2d3e043c352c29150c343c341a3f3e3c342c2c342c2a3e383c3c163c1a3f3e1a3e3c3e343f2c2c2f05343c3f3f324d0d042f2c2f3c343c281a3c39243e3f3c0a3f3e043c38343c3b3f3f35344f3c1a3c31393c4931343c193f323a12153c3e303c2c2f3f0f341a38163c3e3c3f343c344f3c1a1a392c3c373c343c3c1a3c2838341c153c4f2f2c4d3c343c153f1a303c3c343c3c2c342f3f322f2c4d3c343c3c2c372f12303c2c0e31343c3c1a3c2838341c153c123f383c1a3f3e3c38363c343c2c2c3704331a343c3e043c3f2c2f3f0c373c3c30392c0e1a3f4d38491c14383f3c163c1a3c3838341c143c3c363c3434363c3434382c3c3c341a3c2c3e28383c343c3f3f393a122c3e2a093a3f383c1a3f3e3c38363c343c2c2c2f04331a343c393c3831343c381a3c143c3c343c3f3f3a3a121a3e3e3c382c2c3c2c0e1a381a3c3a0e143c2e3c3b363c3434341a3f3f393819042f2c2f3c343c2b3f3c39243e3e3c0a3f3e043c3f2c2c0535343c3f3f3e4d0d042f2c2f3c343c281a3c3838301c17243e3e3c0e31393c0a31343c193f4933383c2c2e0a2c2c14343a343c3c1a3c2e3c3e343c301a3f3e3c3b343c241a3f16380e1c153f1a331a3449393c0e31343c193f1233343c363c343c331a342c343c193f1033343c362c303c330a3034343c193f1633343c362c303c330a303c343c1e1a3c3e3c3f343c341a3c043c38343c281a3f043c352c2f2f0c383a3c4f3c171a303e1a0e1a3f4d38491c143c3e343c2c1a3e38383e383b1a153c3c373c343c2c123c1a3c143c2838381e2e3c3c2c2905361e1628382c3e3c3b343c3c4f3c1a3c303c2c0e1a3f3e3c3f2c2c2f04331a343c3e0a0a373e043c352c1e172e3c3e16393c391e393a3e3c352c1e392e3c3e16393c391e39383e3c352c1f172e3c3e16393c391e393e3e3c352c1f392e3c3e16393c391e393c3e3c35343c3c1a3c2e3c3e343c301a3f3e3c3b343c1e1a3f4d381a1c153f1a331a3449393c1a31343c193f323a121a3c143c38343c153f3c2f3f24342c3c3e2c3e3c38363c343c341a3b3f3f35381a3c38383a2e13373b3f383c1a3f2e3c3c331a3424393c3831343c2c1a3c2838381e17243e3c3c0e303f0a0e1a3c3e3c3f343c341a3c043c38343c281a3c3e1a3e3c3e1a3e3b3f383b3c3c0a353e043c35343c3c1a3c2e3c3e343c301a3f3e3c3b343c3f3f3e3a121a3c3e1a3e3e3e1a3e3a3f383c3c3e343c383c4d1a3c3f3c33343c3c2c3e28383e193a122c2439243e323c0a3b3e043c3b2c2f2f0c343c193f323a121a3c143c38343c1a2c0e0a34303f3c0e1a3f4d38491c143c3e343c2c1a3e383838383b1a153c3e3c38312c3c3c2c2c2f052f2c2f3c343c281a3c38350e39100e4f3c152c31393c3031343c273f372824333c2c0e1a3f3e3c38363c343c2c2c2f04331a343c393c3831340a3f3f383a0e143c3e2c3c343c3c1a3c17243e3e38383a342c383e2c3c373c343c193f323a12143c143c3c2c2c150c383e1a333c383838342c381a3e3e3c3e383e382c150a3b3f37281e333c38383e342c381a3c153c11343c3f3f3e3a122c363828333c2c0e1a3f3e3c38363c343c343c3b04331a343c3e043c3c2c2f3f0c373c3c31343c1e123c171a31342c3c1a3f4d3b3c1c042c3c343c3c312f0a383f1b04303c2c2f3f0f341a24163c3e3c3a343c384f3c1a1a1a3f143c39383c451a3f153c4a342c381a3f153c32343c2b3f3b3a121a3f1638341c143c3e343c2c1a3c2f3e073c143c3a363c3434342c3c1a3f16382c1c142c3c343c3c312e2c383f1b04303c2c2f3f0f341a24163c3e3c3a343c384f3c1a1a1a3f143c39383c451a3f153c4a342c381a3f153c32343c3c1a3f28382c1c143c3a2c2c150c343c341a3f3e3c3f38312c3e343c24123c1a1a153c3e3c3a2c2f3f0c373c3c1a3c3c09373c2c3b52340a3f3f383a0e143f142c3c343c241a3c29243e3e3e3c3a343c302c39043c3a38390e153c2e3c3a383c491a3c3e3c3b2c2f150c343c273f3e3a121a3c143c38343c382c092c341a3f141a3e3e3e383c343c273f383a12163c3e3c3c3e073c3c343c3c1a3c2e3c3e343c301a3f3e3c3b343c3f3f3e3a121a3c3e1a3e3e3e1a3e3b3f383c3c3e343c383c4d1a3c3f3c33343c3c2c3e28383e193a122c243c091e3c2c3b52340a3f3f343a0e143f142c3c343c273f0433343c362c303c330a3024343c273f0a33343c362c303c330a302c343c273f0833343c362c303c330a3034343c273f0e33343c362c303c330a303c343c3c1a3c2e3c3e343c301a3f3e3c3b343c241a3f16381a1c14343f383a3c153c3e3c3f373c3c1a3c3c09303c2c3b522c1e2e3f3c28353c1a2c381a3c150e1a3c29243e3c3e3c3f2c2c3f363f383f3f1234383f2c243e3f3c2e3c3e3a0438392c2c3c153c1a333c343c341a3c4f121a3c3e3c3e1c144d3c3c39123c3c3e3c3e2c2c3b0c341a341a3c281e333c3c0e313e483c303c2c3752340a3f3f343a0e143f042c3c343c1e1a3c29243e3a3e3c382c2c3c4f3c1a3c1a3f4d38341c143437343c302c39043c37383934153e3e3c37383c493e1b0a373c3c163c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3c373c3c163c1a3f16353f3c3a0e32322c3c3f3b0a2c253f2f1e3a3f051e253b0a12253b051e25391a452c3b051e25380528253b051e253b051e253c3c383e3c0a30253b0a38253e3f1e253e2c0e25393f1e333b0a0e253b05382e3b3f2431343c3c1a3f2838241c143c352c2f150c343c341a3f3e3c3438311a3e393f1a31343c3c1a3f28382c1c143c352c2f150c343c341a3f3e3c3438311e3e393f1e31343c1e1a3c3e3c3f343c341a3c043c38343c281a3c3838341c143c3c363c3434363c3430382c3c3c341a3c2c392e3c3c383c4d1a3c3f3c371c153f15331a3424393f2431343c193f3a3a121a3c143c38343c153f3c153f27342c3c3e2c3e3c38363c343c341a3b3f3f35381a3c38383c2935341a3c38381b2e13373b3f383c1a3f2e3c3c331a3430393c3831343c2c1a3c2838381e17243e3c3c0e303b2c0e1a3f4d36114f0f4f0d0a080731160b163c330a3034343c1e1a3c3e3c3f343c341a3c043c38343c281a3f4d38341c143c352c2f3f0c383a384f3c151a303b3c0e1a3f4d36110e0f2a0d4d0c4e3116082c3c330a3034343c1e1a3c3e3c3f343c341a3c043c38343c281a3f4d38341c143c352c2f3f0c383a384f3c151a30380a0e1a3f4d38241c143c3e343c2c1a3e38383e383b16153c3c373c343c2c123c1a3c143c2838381e2e3c3c2c2f19361e1628382c3e3c3b343c3c4f3c1a1a303c2c0e1a3f3e3c3f2c2c2f04331a343c3e0a0a2e3e043c352c2f150c343c341a3f3e3c342c2c342c2a2e383c3c163c1a3f3e1a3e3c3e343f2c2c2f05343c3f3f3c380504343c3f3f39380d042f2c2f3c343c281a3c39243e3e3c0a3f3e043c38343c3b3f3f35344f3c1a3c31393f3831343c193f3a3a121a3c143c38343c153f3c053f27342c3c3e2c3e3c38363c343c341a3b3f3f35381a3c3835093c160d042f2c2f3c343c281a3c39243e353c0a3f3e043c38343c3b3f3f35344f3c1a3c31393f3c31343c193f3a3a121a3c143c38343c153f3c153f27342c3c3e2c3e3c38363c343c341a3b3f3f35381a3c3838302e13373b3f383c1a3f2e3c3c2c2c3b0f331a342c393c3831343c2c1a3c2838381e17243e3c3c0e30390a0e1a3f4d38241c143c3e343c2c1a3e38383e383b16153c3c373c343c2c123c1a3c143c2838381e2e3c3c2c2909361e1628382c3e3c3b343c3c4f3c1a2c303c2c0e1a3f3e3c3f2c2c2f04331a343c3e0a0a323e043c352c2f150c342c3c173c38382c1c04343f373c3c1a3c2e3c3e331a34343c4d3c3e2c3e3c3c343c3b3f3e3a122c302828333c3e3c342c24393c3c3e3c3c383f452c2f3828333c3e3c3c383e341c393c38313e043c3c343c3b3f3e3a122c371a2f3c343c2c1a3f3e1a3e3c38383e1e17243e3c3c0e1a3c28382c1c142c3c393c4d31343c193f3a3a12153c2c373c343c3f3f3e3a121a3c3e1a3e3e3e1a3e3e3f383c3c3e343c383c113f3c3e3c3c2c2c050c383c110f2f1a2f3c343c2c1a3f3e1a3e3c3838381e17243e3c3c0a3f3e043c3f343c341a3c3e3c3c2c2f150c343c1a1a3f38383c38312c3f343c3f0f341a381a3f2e1a3e3e3e343c2c2c05351e1628382c3e3c3b2c2c3c4f3c1a1a303c2c0e1a3c2838302f043c3c2c2c09361e1628382c3e3c3b343c3f3f393a124f3c1a1a313e0a0a303e043c352c27292f3c3e1a3c3c39243c39043c352c244e2f3c3e163c3c391e393e3e3c35343c3c1a3c2e3c3e343c301a3f3e3c3b343c193f3e3a121a3f4d38291c153f15331a3424393c0e31343c193f1333383c312c3c3c321a3c30343c193f1033383c363c3c3c331a3434343c1e1a3c3e3c3f343c341a3c043c38343c281a3f4d38341c143c352c2c4c0c383a384f3c151a303e1a0e1a3f4d38241c143c3e343c2c1a3e38383e383b16153c3c373c343c2c123c1a3c143c2838381e2e3c3c2c2905361e1628382c3e3c3b343c3c4f3c1a3c303c2c0e1a3f3e3c3f2c2c2f04331a343c3e0a0a373e043c352c0c2a2c4b1c132e041e4b2e4d0a3c4e3c0a1a1a3f043c3c343c381a3c143c39343c2c1a3f2e3c352c2c150c343c193f383a122c2429243e3a3c0a343e043c352c2f150c343c341a3f3e3c342c2c382c2a2e383c3c163c1a3f3e1a3e3c3e343f2c2c2f05343c3f3f3f160d042f2c2f3c343c281a3c39243e3a3c0a3f3e043c38343c3b3f3f35344f3c1a3c31393c1e31343c3c1a3c2e3c3e343c301a3f3e3c3b343c3c123c1a3c123c152c2f3f2c3c303f0a0e1a3f043c3c343c381a3c143c39343c2c1a3f2e3c3c2c2c150c343c3c123c1a1a123c151a2f3c3c3c143c3f3c33343c3c2c392e3c3c383c110c383a384f3c151a303f2c0e1a3f2838281c143c352c2f150c343c341a3f3e3c343831243e393c2c31343c193f3a3a121a3c143c38343c153f3f3f3f27342c3c1a3f3e4d3c3c3838381e2828382c3e3c3b343c3f3f4a3c480f331a34283e0a0a393e043c3a2c2e2b3a392c3831343c2c1a3f3e1a3e3c3838381e17243e3c3c0a3f3e04303c2c2f3f0f341a3c163c3e3c3c343c344f3c1a153f3f14383f3c163c3e2c3e3c352c2f150c341a341a3c3838341c153c10392c3f3f3f3e383f343c1a1a3c153c1b38341a3f2c2e2b35392c3f3f3c14383f343c342c34143c3c2c2c150c383e273b392c3831343c2c1a3f3e1a3e3c3e3c3f1e17243e3c3c0e1a3c38382c1c142c3c3e043c35363c34243e04383c343c193f343a12163c3e3c3c3e4d1e3f3c2545173c38382c1c04343a373c3c1a3f143c3f331a3434343c241a3c053c2d343c242c3014383f343c242c39143c3b2c2f2f0c343c273f3e3a121a3c143c38343c382c091a341a3f141a3e3e3e383c343c273f383a12163c3e3c3c3e4d163f3c2545173c38382c1c04343a373c3c1a3f143c3f331a3434343c241a3c053c2d343c242c3014383f343c242c39143c3c343c2b3f383a121a3f1638341c143c3e343c2c1a3c2f3e4e3c143c3a363c3434342c3c1a3f16382c1c142c3c343c3c312e2c383f1b04303c2c2f3f0f341a24163c3e3c3a343c384f3c1a1a1a3f143c39383c451a3f153c04342c381a3f153c32343c3c1a3f2838241c143c3a2c2c150c343c341a3f3e3c3f38311a3e343c24123c1a1a153c3e3c3a2c2f3f0c373c3c1a3c3c0e093c3e3c3c343c381a3c143c39343c2c1a3f2e3c3c2c2c150c343c3c123c1a1a123c152c2f3c3c3c143c3f3c33343c3c2c392e3c3c383c110c383a38312d0a383f1b04303c2c2f3f0f341a24163c3e3c3a2c0c2a2c4b1c132e041e4b2e4d0a3c4e3c0a1a1a3c3e3c3f343c341a3c043c38343c281a3f1638341c143c3a2c2f3f0c341a382c242e383c343c38163c3e3c3c3e4b493f3c2c2b52340a3f3f4d3c3b0f341a3c163c3e3c3c2c240b2f3c3e453c3c390e3f073c381a3c383a354d2c3c123c3c3c4f3c0e1a3f383f24153f143c3c343c2c4f3c1a3c1a3c383a0a3c2a12143f043c35343c193f3b3e3c3a343c3f3f043c3b0c343c3c2c313e34341c143438343c342c2d04383a343c3f3f383a12143f2e3c3e383c451a3f2f3c4a342c161a3f2f3c32343c161a3f043c38343c282c24043c3f343c281a3e38383e193e3c3b1c14343f343c241a3c3a093f3c132c1a3c3a0d3f0e3c2b0f343c2c1a3f16241f343c381a3c143c39383a34153c2e3c3c2c193c3f1c142c3c343c38311a3c2c3f3f4e45173c383a0a3c4f0e143c3e2c3c343c3f3e37291e390c3c301a3c383a123c4f0d3f3c25373f1705491a3c141a3e3f3f3e0b3c2e3834343c3c1a3c383a3c3c4f124f3c0b0a3e383f24153f1a3752343c1a382c3e3c3e363c3434342c1e1a3c383b3c1c043c3b330a303c343c3c1a3f391e39323e3c3c343c1e4f3c173c1a3c383a3c3c4f0d3f35143c3a343c3f3f0c3c330c343c3f3f303a122c313c0a3f3e043c3c343c2c4e3c4c3c1a3c3e3c3b330a3324343c3f3f1a3c330c2c2f491a3f143c3c2c1c1a391c143c3c2c193c3c1c153c0e3e04383a343c3f3f3329243e1a3c381a3c38350a3c100d3f3c3e3c3c2c243c3f1c153c18342c161a3c383a3c3c4f12143e1438353c163c1a3f163818291a2f3c383f24153f1a3752343c1a382c3e3c3e363c3434342c1e1a3c3e3c3b330a302c343c3c1a3f391e393e3e3c3c343c1e4f3c1a3c1a3c3835453c10121a3f143c3c2c1c1a391c143c3c383b12303c2c0e1a3c3e3c38330a301a343c3c1a3f291e39363e3c3c2c1b0a3e1c143c3a343c3f3f0c3c330c343c3f3f343a122c2a1a0e143f163b522f1a4d3f343c161a3c3e1a3e523c342c37043c3c363c31453c1438353e043c35343c241a3f4f12143e043c3e38394515393e3c3c2c29284f3c123c3f343c3f3f563c3f0c2c2c3c1a3c383a3c3c2a122c351438353c163c1a3c3e1a3e523c341a3c383a3c3c4f0d3a3f383c1a3c383a3c3c2a12153f1a0a3f3e043c3a2c2c334d383f16143f1628333c2e3c35343c242c37043c3c363c31453c1438363e043c3c2c181a3c1c143434343c342c39043c36343c0a1a3e043c3a343c3f3f443c3f0c343c3f3f453c3f0c343c1a2c081a341a3e3f3c32343c381a3f143c3c363c374d343c3c123c133c1a3c143c39383a34153c2e3c35383f4d1a3e2f3c19343c3f3f0e3c330c373c3c1a3c2c4531383f1e3c3e440a393c2c1952340a3f3f1a3c330f341a3c163c3e3c3c2c14284e3c521a3e343c3f3f563c370c2c2c3b042c1c2c1b343c34123c1a2c2c0f0a38153f043c3c343c3f3f4d3c370c331a31303c153c2a342c283e1b043c353f383c1a3c141a3e3e3e383a343c3c1a3f391639363e3c3c343c244f3c143c1a3c38352c3c100d3f35143c3b343c3f3f563c370c343c3f3f343a122c313c0a3f3e043c3c343c2c483c073c1a3c38352c3c100d3f35143c3b343c3f3f563c370c343c3f3f303a122c313c0e153f2e3c3c2c29284f3c113c1a3c38353c3c100d3f3c3e3c3c2c193c3c1c153c18342c1a1a3c38352c3c1012143e2e383a3c163c1a3f283818291a2f3c383f24153f2c3752343c1e382c3e3c3e363c3434342c241a3c3e3c38322c3034343c3c1a3f17243e3c3e3c3c2c1e0a3e1c143c3b343c3f3f563c370c343c3c2c2a1a0a3f3e043c3c343c2c483c053c1a3c3835303c10121a3f2e3c3c2c1b1a3e1c143c3c2c2f3f0c383b1231341a2b3f1b4d24333c2e3c34343c3c123c0e0a3e383e1e1a3c3e1a3e073c34153f1a0e1a3f143c3b343c270c341a121a3c153c52342c0e1a3c38384c331a372c343c3f3f043c3f0c2c2c3c1a3c38352c3c3a122c3514383a3c163c1a3c3e1a3e073c341a3c38352c3c100d3a3f383c1a3c38352c3c3a12153f2c0a3f3e043c3b2c2c334d383f16143f2828333c2e3c3a343c282c37043c3c363c31303c1438373e043c3c2c29150c341a1e1a3c153c2d343c161a3e043c36343c281a3c3835383c3a121a3c383b3c1c043c353831123e343c1e2c39143c3f343c281a3c3e1a3e2f3e3c3c363c373c343c341a3c053f14342c381a3f153c19343c1a2c352e3c3c2c243c391c142c3c343c382d3e053c253c3c08143c2c38381b04303c2c243c3e1c04343c373c3c1a3c383411330a2d493c2e3c3c2c1b1a3f1c14343a2c2c3b042c19301e2c2c3c1a3c141a3e3f3f3f09383f24153f043c3c343c2c4e3c0a3c1a3c38351a3c2a12143f2e3c3b2c2f1a1a3f043c3a343c3c2c313e3c3b1c143435343c342c2d043834343c3f3f383a12143f143c3e383c451a3f2e3c34343c1e1a3c38381a1c14343b343c3f3f353a121a3c3838241c143c3a3836493f343c242c39143c3f343c281a3c3e1a3e353e3c3c363c3424343c341a3c053f14342c381a3c383a3c3c1012163c3e3c3f3e4a2c3f3c2c3352340a3f3f123c3b0f341a3c163c3e3c3c2c24252f3c3e453c3c390e3f133c381a3c383a3f4d2c3c123c3c3c4f3c0d1a3f343c3f3f103c3b0c341a2b3f3c25373f4f15053f3c3e3c3e363c3438383a4d2c3b14383a343c3c1a3f39243e3c3e3c3c2c240e3f1c143438343c2f3f392e3c3a343c281a3c3f3c0e343c2f0c341a241a3c153c52342c1e1a3c38382c1c14343b343c342c39043c38343c1e1a3f143c3c2c2e3f0c341a2c1a3c38381e1c143c3c2c2f150c343c282c0f1a381a3f2f3c32343c381a3f3e3c3c363c341e343c3c123c151a1a3c143c39383a34153c2e3c3c2c1c3c3f1c142c3c343c3831121a383f3f3545173c383a3c3c100e143c3e2c3c343c3f3e37291e39563c381a3c3835493c2a12143f16383f1e1635293538383f343c34123c1a2c2c1f2f3c2a342c1e1a3c3e3c38330a303c343c3f3f493c3b0c341a281a3f283824343c1e1a3f143c3c383e0a1a3f2a12143f043c3e383945153e3e3c3c2c2f3f0c341a241a3c153c2d343c281a3e3e3c35343c3f3f343a12143f2e3c3c2c2f050c343c3f3f3a3a121a3f153e083c2e3c3a383c491a3c2e3c3b343c3c123c150a1a3c3e1a3e3a3e3c3e343c302c2414383f343c3f3f1a3c370c373c3c1a3c2c0e2a3c383a1a1a2c3b3f0534383f363c343c343c341a3c3e3c3f3832243f3e4a2c3f3c2c3352340a3f3f123c3b0f341a3c163c3e3c3c2c24252f3c3e453c3c390e3f133c381a3c383a3f4d2c3c123c3c3c4f3c0d1a3f343c3f3f103c3b0c341a2b3f3c25373f4f15053f3c2e3c3e363c3438383a4d2c3b14383a343c3c1a3f39243e3c3e3c3c2c240e3f1c143438343c2f3f392e3c3a343c281a3c3f3c0e343c2f0c341a241a3c153c52342c1e1a3c38382c1c14343b343c342c39043c38343c1e1a3f143c3c2c2e3f0c341a2c1a3c38381e1c143c3c2c2f150c343c282c0f1a381a3f2f3c32343c381a3f3e3c3c363c341e343c3c123c151a1a3c143c39383a34153c2e3c3c2c1c3c3f1c142c3c343c3831072c383f3c2545173c38380a1c04343b373c3c1a3f2e3c3f331a34123c163c1a3c141a3e3f38383f1e2828382c3e3c3c343c381a3c143c39343c2c1a3c3e1a3e3c3e1a3e3a3f383a3c3e383e393c3831343c2b3f3a3a12143c3e3c3e383c451a3c3f3e303c2e383f343c3c2c391a373c343c2c382c3e3c3b2c2f150c343c382c2e0a0a3f3e043c3b2c2f150c343c382c2e1a0e1a3f2e3c3b2c2f150c38383c4f3c153c392c3e3c3b343c2b3f3a3a122c1f39243e3e3e3c3b2c2f3f0c343c2b3f3e3a122c2a0a2f3c343c2b3f363a121a3f28382c1c14343c363c343c363c343c382d1e3e343c3c2c112c38303c2c281a3f2e1a3e363e383e343c2b3f3a3a122c3e1512313e0a0e1a3f28380a1c142c3c343c34310d3c383f3f2545173c38351a3c3a0e143c3e2c3c343c3f3f1444383c310a3c3c320a3b1e343c3f3f1544383c363c3c3c331a3724383f24153f143c3c343c2c4f3c1a3c1a3c383b3c1c043435343c1e1a3f4d3828343c241a3c3835243c3a121a3c3f3c0e341a150c341a2c1a3c153c52342c241a3c38382c1c14343b343c342c39043c3b383934153e2e3c3b383c491a3e2e3c35343c2c1a3f2f3f0b343c381a3f2e3c3b343c150c341a381a3f143c3c1c043c3c1c16380a1c043c38343c273a3a043c3f343c341a3c053f2a342c381a3c38351a3c3a12163c3e3c3f3e493c383c2c1952340a3f3f1a3c370f341a3c163c3e3c3c2c14284e3c521a3f343c3f3f563c3b0c2c2c3b042c244518343c34123c1a2c2c0f0a38153e3e3c3c343c3f3f4d3c3b0c331a31303c2f3c2a342c243e1b043c343f383c1a3c141a3e3e3e3835343c3f3f2c3a0e1a3f291e393c3e3c3c343c2c4e3c071a1a3c3e3c35331a340a343c3f3f4d3c3b0c2c2f491a3f143c3c2c1b1a3f1c143c3c2c293f0c383e0a303c2c0e1a3c3e3c38330a332c343c3c1a3f291e392a3e3c3c2c193c3f1c163818343c241a3c3835493c2a121a3c38352c3c3a122c313c0e153f143c3c2c29284f3c123c3f343c3f3f0a3c3b0c2c2c3c1a3c383a3c3c2a122c35143837343c3f3f4d3c3b0c341a12153f0a373c343c273f351649382c3f3c2a342c243e1b043c343f383c1a3c141a3e3e3e3835343c3c1a3f291e39383e3c3c343c2c4e3c0a1a1a3c3e3c35331a343c343c3f3f073c3b0c343c241a3c3835493c2a121a3c3f3f1c393c3831343c3c1a3f391e39343e3c3c343c284e3c041a1a3c3835303c2a121a3f143c3c2c1b1a3f1c143c3c2c2e3f0c383b1231341a273f1b4d24333c2e3c37343c3c123c0e0a3f383e1e1a3c3e1a3e073c38153f0a0e1a3f043c3a343c190c341a0e1a3c153c52342c0a1a3c38384c331a363c3c2e3c3c2c1b1a3c1c16383c343c3f3f1a3c3b0c383f49153f0a373c343c3c123c0e0a3f343c3f3f4d3c3b0c2f1a2f3c343c3f3f1a3c3b0c342c24303c2c0e1a3f16383f193f3c27341a273b392c381a3f043c3a383e1e1a3c3e1a3e073c38153e1a0e1a3c3835123c3a12143e3e3c3e383c451a3e143c30343c0e1a3f143c3c2c1b2c3c1c143c3c2c1b3c3c1c143c3438310a3e343c1a2c39143c3f343c241a3c3e1a3e193e3c3c363c370a343c341a3c053f2a342c381a3f053c19343c162c352e3c3c2c243c3e1c142c3c343c382d3e053c253c3c0b1e3c0a38351b04303c2c193c3f1c04343c373c3c1a3c383411330a2d343c2e3c3c2c1e1a3f1c16383f1e163a1635043c3e363c34383836453f342c1e1a3c3e3c3c2c1c3c3f1c17243e133c382c3b14383b3c13451a3f0a2f3c343c34123c1a1a153f143c3c343c2c483c041a1a3c3e3c3a331a341a343c3f3f123c3b0c2c2f491a3f2e3c3c2c1e1a3f1c143c3c2c2e3f0c383e0a303c2c0e1a3c3e3c38322c300a343c3f3f123c3b0c2c2f491a3f2e3c3c2c1e1a3f1c143c3c2c293f0c383e0a31342c281a3c38384c331a372c343c3f3f163c3b0c2c2c3c1a3c38352c3c3a122c35143834343c3f3f123c3b0c341a16153f1a373c343c2b3f351649382c3f3c2a342c283e1b043c353f383c1a3c141a3e3e3e383a343c3c1a3f3916393e3e3c3c343c244f3c1a3c1a3c383a1e3c2a121a3f2e3c3c2c1e1a3f1c143c3c383b12303c2c0e1a3c3e3c38322c302c343c3f3f133c3b0c343c281a3c3835343c2a121a3c38382c1c153f1c3e04343b2c25443a392c381a3e3e3c3c363c361e3c2f3c13343c3c123c0d0a3f342c2431343c241a3f2e3c3a1c143436343c342c2d043831343c3f3f3329243e283e3c3c2c1e1a3c1c16383c343c3f3f4d3c3f0c383f49153f1a373c343c3c123c0d0a3f343c3f3f123c3b0c2f1a2f3c343c3f3f4d3c3f0c342c28303c2c0e1a3f28383f193f3c27341a2b3b392c381a3f143c3b383e1e1a3c3e1a3e133c38153e2c0e1a3c3838491c143435343c342c39043c37343c0e1a3e143c3b343c3f3f053c3f0c343c3f3f2c3a0e1a3f053e453c143c35383c491a3c2e3c3b343c3c123c162c1a3c3e1a3e2c3e3c3e343c302c2b14383f343c242c352e3c34383f4d1a3c38352c3c2a12163c3e3c3f390a0e2c3b0a3c31122c383f3f3545173c38350a3c3a0e143c3e2c3c343c3f3e37291e391c3e3c3c2c181a3c1c14343a2c2c3b042c19301e2c2c3c1a3c141a3e3f3f3f09383f24153f043c3c343c2c4e3c0a3c1a3c38352c3c3a12143f2e3c3b2c2f1a1a3f043c3a343c3c2c313e3c3b1c143435343c342c2d043834343c3f3f383a12143f143c3e383c451a3f2e3c34343c1e1a3c38381a1c14343b343c3f3f353a121a3c3838241c143c3a38313c3f343c242c39143c3f343c281a3c3e1a3e353e3c3c363c3424343c341a3c053f2a342c381a3c38350a3c3a12163c3e3c3f3e4a383f3c2c3352340a3f3f4d3c3f0f341a3c163c3e3c3c2c24252f3c3e453c3c390e3f293e3c3c2c24352f3c3e1a3c3c39243e2e3e3c3c2c1e1a3c1c14343b2c2c3b042c19121e2c2c3c1a3c141a3e3f3f3f09383f24153f143c3c343c2c4f3c1a3c1a3c38384a1c143438343c2f3f392e3c3a343c281a3c3f3c0e343c2f0c341a241a3c153c52342c1e1a3c38382c1c14343b343c342c39043c38343c1e1a3f143c3c2c2e3f0c341a2c1a3c38381e1c143c3c2c2f150c343c282c0e3c381a3f2f3c32343c381a3f3e3c3c363c341e343c3c123c151a1a3c143c39383b24153c2e3c3c2c193c3c1c142c3c343c3831122c383f3f3545173c38350a3c3a0e143c3e2c3c343c3f3e37291e391c3e3c3c2c181a3c1c14343a2c2c3b042c19301e2c2c381a3c141a3e3f3f3f09383f24153f043c3c343c2c4e3c0a3c1a3c38352c3c3a12143f2e3c3b2c2f1a1a3f043c3a343c3c2c313e3c3b1c143435343c342c2d043834343c3f3f383a12143f143c3e383c451a3f2e3c34343c1e1a3c38381a1c14343b343c3f3f353a121a3c3838241c143c3a38313c3f343c242c39143c3f343c281a3c3e1a3e353e3c3c363c3424343c341a3c053f2a342c381a3c38350a3c3a12163c3e3c3f3e564d2f3c2c4852340a3f3f0a3c370f341a24163c3e3c3a343c381a3c16383f3833123e331a36283c143c3a343c24123c0d2c3e3837343f331a36243c163a1756341c0f1b4d3a1e113031111b2e3c383a043832343c3f3b342c443f0e271b25081312153c2c333c3c163c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3c373c343c38143c38350a08094a183c280a382c3e3c3c2c1e14040919374a293c2f3c343c3f3f050e080f14350d303f383c1a3c38350948313a17183824333e043c3c2c24043a0d4a05482f1a4d36343c3f3f1145071a44251135392f341a3f141a3e093c373f1a34383f1c143c3a312c3e1b3c17123c3c383a250f300a0d342c3830381a0e1a3c383a051144184b181624333c143c3c2c1804270d08374b2f1a4d31343c3f3f0545080f14350d35392f381a3f16353c3c1012163c3c4531343c3f3f4431184c491348303f383c1a3c3835370e0f252e184d24333f3e3c3c2c2704280a082b442f1a4d3a343c3f3f172d040f05354835392f3830383c0e1a3c38354c094a25141b1624333f3e3c3c2c1c2d49150c09522f1a4d3a343c3f3f114b073036281e33383e3c3a363c364d3c16383f1c1438332c242e4c49452835342c3830383c0e1a3c383a084d4507393f280a382c3e3c3c2c1b29350b091a3e293c2f3c343c49153c2e3c3c2c1b3a4b4e09493f2f1a4d2f343c3c153c2e3c3c2c182d4f0f0d493e2f0a4d2f343c273f123c3b0c383c121c343c24123c0c3c3e3a1a0a2c3e043c3c2c1b25350b091a3e2f1a4d30343c3f3f4d32392b150a333a392c1e1a3c3835164e1b324e3f381e33383e3c3a363c364d3c163a1a1a2c3b0c343c24093c37453e321a3c3c2c27180e073e16153c2c0a2c3e043c3c2c19043c1531303a293c2f3c343c3f3f0f442d300a0a2b3a392c0e1a3c383a4d4f4835303f28243339143c3c2c27251a5633493b2f0a4d2c2c1e2e3f3c2e3c39331a343c2c1b3a4b4e09493f342c3830383c0e1a3c3835191a342e073f162433393e3c3c2c19251b0a1b303a2f1a4d3f343c3f3f15312517052c1935392c451a3f143c33331a364d3c163a30150c184518283a3052360b381b143c3a363c364d3c143c392e3f0e153c2c0a2d3e4d383c342c1e1a3f143c382c2c3f36321a3e193c16352b4e4535073f1635370e0f252e18043c3a312c3e193c16383f1e2f0e153c2e3c3a363c36283c143836393c4931343c273f143c370c343c24123c0d2c3e383b2c14383e38362c2c3c153e38383c342c16173c38382c1c04343f373c3c1a3e153c37342c0e173c38382c1c043435373c3c1a3f1635493c2a12143c38343c330a343c343c193f3c39243e393e3c3c2c2c150c343c193f393a122c072c381a3f4d382c1c142c3c3c163c1a3e4d28333c3c333c3c163c1a3e143c37383c0e093c3c3f3f2d2824333c3e3c36343c162c3e044d3c3c3e34352c2e093a343c193f3435373f492c3f0f2c2f0d373f35443f3c2c281a3f053f3b2c2c3f353e4d383c2f4e341a3f4d380b2f13373b392c3c1a3e4d383f1c043831343c3b3f393a121a3e3a121a3e143c37383c0e093c3c3c4b3c3c3f3f3c3e3835343c153f3c2a12143e3838382f1a2f3c3c4d3c1a3c2838301c143c351c143434343c1a0e3c3c3c2c442c384b3c3c3c1a3f4d383f1c1434352c2c2f35392c3c31343c381a3c2e4d3c39043c3f312c3c32341a193f3f132f0c321a3c31343c381a3c2e4d3c392e34342c2c2f4f2c2c3305343c38093c3c053f3c132f04321a3c37343c381a3f4d383e1916382d1e2e3c342c2c2f4d1e17123c3e16383c342c153f3c3e38353c4d3c1a3c3e3c3f2c2c110c343c190c382d2c3e343c193f3c2a12143f4d38392f0a4d3c3e0a0e1a3e28383f1c143837343c0e333c2c0e31343c153b392c3c1a3e383839293c2f3c343c3b3f393a121a3e3a0d3f3c383838343c150f3838241c3e4d383c342c1e392c3e3c3f2c2c050c343c190c341a161a3e2e0a3c3c3f394c3c29123c3c3e3c352c2c3b0c341a193f3f381e333c3c0e1a3c2e3c3f312c3c2d343c38093c3c49143f4d383a193a124b3c3c0e1a3c2e3c3f312c3c33341a113f3f35273f3c4e381a3c2e4d3c3938383e1935344b3c3c161a3c2e3c352c2c374f2c2c4405343c113f3f352f04321a3c36343c153f3c161a333c3e3c342c2c3b0f342c153f3c3e38353c4d3c1a3c3e3c3f2c2c110c343c190c382d2c3e343c193f3c2a12143f043c342f0a4d3c3e0a0e1a3c28382c1c142c3c343c3c2c142c3815382e3c3c363c343c342c0a1a3f163a0935041a3c3c39243e453c381a3f163a113504163c3c391e394b3c381a3f16343c330a2d243c2e3c3a2c1a3c4e3c443c3f343c273e3c391e39043c381a3f16343c330a2d3c3c2e3c3a2c1a3c4e3c4a1a3f343c273e3c391e390e3c381a3c3f3e373c2e3831343c273f0e3c3b0c342c12173c38380a1c04343f373c3c1a3c28381a1c143834343c281a3f3f3e563c1434353f383c1a3e38343c330a3c3c343c153e3c391e3c3e3e3c35343c1a1a3e3f3e133c2c0e1a3f163a523c10121538143c3a2c193c3f1c143829343c1e381b04303c2c2f3f0f341a16163c3e3c3f2c2f3f0c341a1a1a3f14163c4b3c384e3c3c3c1a3e3e3c3a363c390a3c29243c3e3e3c342c243e3c1a3c1a4f3c3c0a1a3e28382c1c142c3c340a3f3f383a0e143e2e2c3c343c0e382c3e3c37343c1a0d3c3c3c4e3c0a3c1a3e2e3c34362c3c34330a3034343c162c4b0a381a3f043c37343c0a1a3e043c363834283e3e043c372c2f3f0c373c3c173c38382c1c043437373c3c1a3c28343c330a3c3c343c3b3e3c391e3c3e3e3c3f2c2e3f0c341a0a1a3816383c343c382c0b0a381a393e3c36343c0e1a3c2f3e523c2e3c372c1a3c2c4a2c381a3e2838341e143c312c2c334d0f2f39093c2e3c30343c113f383e3c3f3831453f343c113f383a12163c3e3c35343c1a1a3c28382c343f302c152c341a3f053c2c2c2c3c3b2c2545313a143c3f2c293f0c373c3c1a3c3f39093c143c3c363c343c3f383c1a3c3e1a3e3f3e343f343c3c123c1a3c143f4d1e382c3c333c343c3c2c2c05121a3f043c3f2c2c3b0f341a3b35392c3c313e043c3c343c1e4f3c1a2c1a3c3f3f393a143c3c363c343c342c381a3c3f3e3b3c2f121a3c2f3c2c3e043c2c383c121c2c2e3f3f383e3c2f2c293f3a3a0438352c1e10040919374a342c3830392c0e1a3f143c2d321a3e183c143c3a343c1e4f3c0f3c3e343c241a3e17243e0f3c373f441f184c4913483f111839494e1a281a3f144d3c131a373f3c25381f342c3830393c093f0a34383f343c304f3c1a3f3f451f0f184e1a38153c2c0a313e4d352c49332a353c4d3a1756341c0f1b043c3a363c36243c143c392f150e153c2c0a363e4d352c49332a353c4d350948313a17183e3c3a363c360a3c16382c2f15093f4a182e05124e1a1a3f144d3c132c373f3c25381f342c38303e2c093f15312517052c1e153c28383c342c4d303e3c0e1a3f143c3a363c360e3c143c3a363c364d3c1012093c3c3c4b3c37453e343c24093c37453e3a163a250732394c182835164e1b324e3f3e3c3a312c3e183c16383f1e2f0e153c2c0a353e043c3a343c273f123c3b0c341a3c4f3c0c3c3e343c24123c0c3c3e3a143c3c343c24123c0c0a3e383b2c1c2c1804270d08374b342c3b3f3c3e383e393c2431343c241a3c17243e083c373f0f442d300a0a2b3f49521c08131a341a3f141a3e083c341a3c4d1a1f342c38303f2c0e1a3f143c3a2c2f3f0c341a3c4f3c0c2c3e343c24123c0c2c3e3a143c3c38300a3e3a143c3a343c273f393a12143e39243e0c3c341a3f141a3e0c3c341c343c24123c0c2c3e2c2c150c3830343e342c161a3f163a0a3c2a12143c2e3c3a2c1c3c3f1c143c3a363c36493c16383f193f393c3c143c37343c382c0b2c341a3c2f3c363a143c3c343c1a2c522c373f441e18564f3c373f4e243e380e0a241a3f144d3c131a373f3c25381f342c38303f3c0e1a3f141a3e083c373f1a34383f1c143c3a363c3430321a3c3c2c1f291f161e0a3b342c38303c0a0e1a3f141a3e083c373f1234383f1c143c3a363c3430321a3c3c2c1f291f161e0a3b342c38303c1a0e1a3f141a3e0c3c341c343c273f383a122c141a381c343c24123c0c2c3e3a143c3a363c36493c14343c2c2c3b4d2c2c3705343c3f3f3c25330c342c373f4a371010491312153c2c0a3f3e4d3535044b08341814383f393c3c313c3c08053c2c38391b04303c2c193c3c1c04343c373c3c1a3c383a3b4d2c3c0b3c3c3c4a3c280a1a3c383a3f4d2c3c123c3c3c4f3c161a1a3c3835343c3a12143f28383f1e16351c3538383f343c34123c1a2c2c1f2f3c2a342c241a3c3e3c38331a343c343c3f3f324f12143f3e3c382c2c4d1a3f143c3b343c3c2c313e3c381c14343a343c342c2d043835343c3f3f383a12143f2e3c3e383c451a3f3e3c35343c241a3c38381a1c143438343c3f3f353a121a3c3838241c143c3b38313c3f343c282c39143c3f343c2c1a3c3e1a3e353e3c3c363c3424343c341a3c053f2a342c381a3c38352c3c3a12163c3e3c3f3e454d3f3c2c3b52340a3f3f303a0e143f2e2c3c343c281a3c29243e363c373c343c34123c1a2f3f3c253b3b3f383c1a3c3e3c3f343c341a3c043c38343c3c123c1a3c123c151a2f3f1a3c153c1a0a3f3e043c3b2c2f150c341a3c1a3c153c2d343c3c2c171a38153c2e3c3c383c493e2c3e3c383f383c1a3f2838241c143c3f38380e303c2c0e1a3f2838241c143c3f38381231343c281a3f2838241c153f3c331a342c3c4d3c1a3f2e3c3b2c2f150c383a494f3c1a1a1a3f28382c1c143c3b2c2c150c383b0e382c3e3c3b2c2e150c343c2b3f383a12143c3e1a3e3c3e0a3c3c3f39493c143c3c38371e3f393c383b343c28123c141a153c143c3b2c2f150c383c121c3e0a0e31343c2b3f303a12163c3e3c3e3e52343e3c2c3b52340a3f3f493c370f341a3c163c3e3c3c343c344f3c093c3e343c3c1a3c29243e4f3c341a3c38352c3c2a122c382e383a343c3f3f383a12143c143c39383c451a3c153c4a2c18392c3c38354b4d3c3c1a3c38351a3c2a122c24043c3e383c491a3c38353c3c2a122c382e3439343c302c38053c30343c3c1a3c4d383c383c0e143c29243e0b3c381a3c3e3c3e331a3430343c3f3f3c39243e3e3c333c3c163c1a3c3835243c10121a3c38352c3c10122c331628333c3e3c3c363c36453c2e3c39383c161a3c2a0d3a3f383c1a3c053c37342c341a3c043c39383c113f3c252c2c393e3c39343c302c38053c30343c3c1a3c143c392c2c3c2c3e04343f1c17243e0b3c3831343c3f3f4f3c370c383e3b3f383e3c3f343c3f3f0b3c3b0c343c3f3f3e3a0d3f3c3e3c3a343c3f3f383a121a3c3838301c143c3c2c183c3f1c153e313c2c4d3c343c3f3f4f3c370c383e281c393c38313e043c39343c3c123c0f0a3f343c3b0f383c0a1a3c053c33342c342c3b14383f343c3c1a3f29243e3c3e3c3e343c381a3c3f393f3c16383f2f0a2f3c343c2f3f3f39243e3c3c0e1a3c3835243c10121a3c38352c3c10122c363c2f3c343c2c1a3f3e1a3e3c38383e1e17243e3c3c0e1a3c3e1a3e4f3c34153c2e3c39383c121c343c242c3e15121a3c38351a3c1012163c3e3c3f3e4434393c2c3b56340a3f3f1a3c330f341a3c163c3e3c3c343c344f3c0b3c3e343c3c1a3c29243e563c341a3c3835243c2a121a3c043c3c2c1b3c3f1c143c3c2c180a3f1c143c3c2c181a3f1c1539283c2e3c3c2c1e1a3f1c153c2f341a381a3c2f3c29383c0a1a3c3e3c3f2c2c3c2c3e04343e331a31383c2e3c3c343c3f3f343a124f3c150a1a3c38383c331a3424343c3f3f3c29123c3b043c3c2c1e283c321a3c2a3c4d3c3e2c3e3c3c2c1b1a3e1c143c3c2c1b3c3e1c153c4f2f2c4d3c343c3c123c0e2c3f343c382c3e2e3c3e1c1624382c3e3c3f383c16153c043c3f343c382c3e28383f193f3c30343c381a3c2f3c29383c0a1a3c3e3c39343c3b3f3c3f3c31341a370c331a31383c2c0e1a3c3835493c10122c342e3c3c2c2f190c343c3f3f3b10121a3c143c3c2c1e2c3f1c143c3c363c310e3c2e3c3c363c31123c2e3c3c2c191a3f1c143c3c2c2e3f0c343c3f3f353a121a3c3838241c143c3c2c1b3c3f1c1539293c2c4d3c343c3f3f563c370c383e281c393c38313e0a373c343c3f3f4f3c3b0c383c113b392c3c1a3c3e4d3c3b4d28333c3e3c3c363c341e341a301a3c38381a1c10093f130a3b36392c3c1a3c3e3c392c2c2f0c331a341e343c301a3c3e1a3e3a39243e3c3c0e1a3c3e3c3e343c3c123c0e2c3f343c2c2c0a0a341a3c3e16393c3e383a343c281a3c3e16393e391e393e3e3c3b343c244e3c0a3c1a3c3835243c2a121a3c38381a1c143c3c363c341e343c2c2c312e3c3c2c1b1a3e1c143c3c2c1b3c3e1c153c123f383c1a3f3e3c38363c343c2c2c3704331a343c3e043c3c363c31493c14383e343c382c3e15121a3c3835243c2a122c3e15121a3c383a3c3c4f12163c3e3c3e3e4a0e393c3e303c2c1b3c3e1c04343c373c3c1a3c3e3c3e331a311a3c143c3c343c384f3c081a3e343c3f3f043c3b0c343c301a3c38351a3c2a121a3c38351e3c2a121a3c3835243c2a122c4c3c381a3c383a493c2a122c382e343f343c382c38053c30343c3c1a3c28383c383c0e143c17243e093c381a3c3e3c3c2c2f3f0c331a3430343c3f3f3c39243e3e3e3c3c2c2c384b3c3c1e1a3c38353b3c39123c3f1a333c3c163c1a3c3835123c10121a3c38351a3c10122c331628333c3e3c3c363c364d3c2e3c3f383c161a3c100d3a3f383c1a3c2f3c37342c301a3c2e3c3f383c113f3c252c2c393e3c3f343c382c38053c30343c3c1a3c043c3f2c2c3c2c3e04343e1c17243e093c3831343c3f3f4b3c370c383e381a3c3838351c143c3c2c2c270c343c341a3c383a4d3c2a121a3c3e1a3e4e3c381a3c3e1a3e4f3c381a3c3835343c2a121a3c38382c1c143c3c2c2c050c343c3f3f3e3a121a3c38351a3c2a122c4d0a38333c3e3c3c2c181a3e1c153c113a1a0a3f3e0a0e3e2c3e3c3c2c1e1a3f1c153c372f2c4d3c343c3c093c3c193b392c3c1a3c3e1a3e393e3439343c3f3f383a0d0f2c27453f2e1a4d3c343c3c1a3c4d38381c17243e393e3c39343c3c123c1a1a4f3c1a3c31343c281a3c143c3c363c364d3c2e3c3838302c3e322c303c343c3f3f043c3b0c343c3f3f383a121a3c3e1a3e393e3c38383e4d1a3c3835123c10121a3c38351a3c10122c363c2f3c343c2c1a3f3e1a3e3c38383e1e17243e3c3c0e1a3c3e1a3e4b3c34153c143c3f383c121c343c3f3f043c3b0c383c121c343c3f3f453c370c373c3c1a3c1a084a3c0a3c173c38350a3c100e143c3e2c3c343c3c1a3c17243e493c341a3c3e3c3f331a31123c143c3c2c1e1a3f1c143c39343c3f3f493c3b0c343c3f3f4e3c3b0c343c3f3f4f3c3b0c38332c3f343c3f3f083c3b0c383f38143c2e3c3f383f302c393e3c3c343c3b3f3c3f3c31341a344f3c0f2c3f343c3c1a3c38382c1c17243e393e3c3c2c2c3c4f3c1a1a1a3c38383f321a3c35343c3f3f052c3c4b3c3c24392c3c373c343c3f3f4b3c370c343c3f3f493c370c3839273b392c3c1a3c3e1a3e093c381a3c2f3c37343c370c2f1a2f3c343c382c3e2e3839343c381a3c2f3c372c2c3b4d383c0a1a3c2e3c3f383f302c393e3c3c343c301a3c28383c383c0e143c10124f3c0f2c3f3e043c3c2c181a3e1c153c15343c3f3f3f4f121a3c38383a1c143c3e343c3f3f093c3b0c343c3c123c090a3f343c3c123c091a3f343c3f3f043c3b0c343c3f3f383a121a3c3838301c143c3c2c2c150c343c3f3f493c3b0c3833303f392c3c1a3c3835123c10122c372f12303c2c0e313c163c1a3c3835343c2a122c3e2828333c3e3c3c312c3c352f2c4d3c343c3c123c1a0a143c043c3c2c2f3f0c1c4d3a1b3c2812333c3e3c3c343c333f3f3a124f3c1a0a1a3c043c3c363c3434331a343c3e043c3b343c341a3c3e1a3e093c381a3f3f393b3c171a3e3c3e3c3c2c1e1a3f1c143c3c2c2f3f0c343c3c123c1a0a1a3f3f3c09343c3f3f4b3c370c343c3f3f493c370c383e1a382c3e3c38343c2c123c1a3f3f3c13344f3c1a3c31343c3c123c081a3e342c341a3c2f3c363a143c3c2c1e1a3f1c153c363a143c3c2c1b3c3e1c142c3c343c3431132c303f3c1345173c38351a3c100e143c3e2c3c343c3c1a3c17243e4d3c341a3c3e3c3f331a31243c143c39383b0a153f143c39343c3f3f493c3b0c3837163f342c1e1a3c38352c3c2a121a3c043c3c2c1e0a3e1c153e243c2e3c3c2c1e3c3f1c153c2f341a381a3c2f3c29383c0a1a3c3e3c3f2c2c3c2c3e04343e331a36453c2e3c3c343c3f3f383a124f3c1a0a1a3c38383c331a34343c4d3c3e2c3e3c3c2c191a3e1c143c3c2c193c3e1c153c4f2f2c4d3c343c3c123c0f0a3f343c382c3e2e3c3e1c1624382c3e3c3f383c16153c043c3f343c382c3e28383f193f3c30343c381a3c2f3c29383c0a1a3c3e3c39343c3b3f3c3f3c31341a370c331a36453c2c0e1a3c3835243c10122c342e3c3a343c341a3c383a453c2a121a3c3838341c143c3c363c31303c143c3c2c193c3f1c143c3c2c2f3f0c343c3f3f393a121a3f053e313c2c4d3c343c3f3f4f3c370c383e281c393c38313e0a373c343c3f3f4d3c3b0c383c113b392c3c1a3c3e1a3e393e3439343c3f3f383a0d0f2c27453f2e1a4d3c343c3c1a3c4d38381c17243e393e3c39343c3c123c1a1a4f3c1a3c31343c281a3c143c3c363c36453c2e3c38343c242c051a344e3c0a3c1a3c38352c3c2a121a3c38382c1c143c3c363c3430343c2c2c312e3c3c2c191a3e1c143c3c2c193c3e1c153c123f383c1a3f3e3c38363c343c2c2c3704331a343c3e043c3c363c31243c14383e343c382c3e15121a3c38352c3c2a122c3e15121a3c38351a3c1012163c3e3c3e3e484d393c2c3752340a3f3f493c370f341a3c163c3e3c3c343c344f3c093c3e343c3c1a3c29243e4f3c341a3c053f1e342c241a3c043c3c2c183c3f1c153e273c2e3835343c3f3f4d3c3b0c343c301a3c3835303c10122c103c381a3c38353c3c2a122c382e343f343c382c38053c30343c3c1a3c28383c383c0e143c17243e0b3c381a3c3e3c3c2c2f3f0c331a3430343c3f3f3c39243e3e3c333c3c163c1a3c3835243c10121a3c38352c3c10122c331628333c3e3c3c363c36453c2e3c3f383c161a3c100d3a3f383c1a3c2f3c37342c301a3c2e3c3f383c113f3c252c2c393e3c3f343c382c38053c30343c3c1a3c043c3f2c2c3c2c3e04343e1c17243e0b3c3831343c3f3f4f3c370c383e381a3f143c3e343c3f3f0b3c3b0c343c3f3f3e3a121a3c3e1a3e073c341a3c38352c3c2a121a3c38382c1c143c3c2c2c050c343c1e2c140a38333c3e3c3c2c191a3e1c153c113a1a0a3f3e0a0e3e2c3e3c3c2c193c3f1c153c372f2c4d3c343c3c123c1a0a143c043c3c2c2f3f0c1c4d3a1b3c2812333c3e3c3c343c333f3f3a124f3c1a0a1a3c043c3c363c3434331a343c3e043c3b343c341a3c3e1a3e0b3c381a3f3e3c3a3830163e320a383c343c3f3f4d3c3b0c343c3f3f383a121a3c3e1a3e393e3c38383e4d1a3c3835243c10121a3c38352c3c10122c363c2f3c343c2c1a3f3e1a3e3c38383e1e17243e3c3c0e1a3c3e1a3e4f3c34153c143c3f383c121c343c3f3f4d3c3b0c383c121c343c3f3f493c370c373c3c1a3c1a08193c0a383e1b04303c2c183c3e1c04343c373c3c1a3c3e3c3e331a312c3c143c3c343c384f3c091a3e343c302c253e383a343c301a3c38351a3c2a122c102c38153f043c3c2c193c3f1c143c39343c3f3f073c370c38371a3f343c3f3f0a3c3b0c383f38143c2e3c3f383f302c393e3c3c343c3b3f3c3f3c31341a344f3c0f0a3f343c3c1a3c38382c1c17243e393e3c3c2c2c3c4f3c1a1a392c3c373c343c3f3f4f3c370c343c3f3f4d3c370c3839273b392c3c1a3c3e1a3e0b3c381a3c2f3c37343c370c2f1a2f3c343c382c3e2e3839343c381a3c2f3c372c2c3b4d383c0a1a3c2e3c3f383f302c393e3c3c343c301a3c28383c383c0e143c10124f3c0f0a3f3e043c3c2c191a3e1c153c15343c241a3c143c3c2c1f0a3f1c143c3c2c2c150c343c3c123c0e0a3e343c3f3f4d3c3b0c343c3f3f383a121a3c3838301c143c3538340e3f392c3c1a3c3835243c10122c372f12303c2c0e313c163c1a3c38352c3c2a122c3e2828333c3e3c3c363c3430341a301a3c38382c1c10093f130a3b36392c3c1a3c3e3c392c2c2f0c331a3430343c301a3c3e1a3e3e39243e3c3c0e1a3f2e3c3e343c3c123c0f0a3f343c2c1a3f1539363c171e393c3e3c3c2c193c3f1c143c3c2c2f3f0c343c3c123c1a0a1a3f3f3c09343c3f3f4f3c370c343c3f3f4d3c370c383e1a382c3e3c38343c2c123c1a3f3f3c13344f3c1a3c31343c3c123c091a3e342c341a3c2f3c363a143c3c2c193c3f1c153c363a143c3c2c183c3e1c142c3c343c3431132c303f3c1345173c38351a3c100e143c3e2c3c343c3c1a3c17243e4d3c341a3c3e3c3f331a31243c143c39383b0a153f143c39343c3f3f493c3b0c3837163f342c1e1a3c38352c3c2a121a3c043c3c2c1e0a3e1c153e243c2e3c3c2c1e3c3f1c153c2f341a381a3c2f3c29383c0a1a3c3e3c3f2c2c3c2c3e04343e331a36453c2e3c3c343c3f3f383a124f3c1a0a1a3c38383c331a34343c4d3c3e2c3e3c3c2c191a3e1c143c3c2c193c3e1c153c4f2f2c4d3c343c3c123c0f0a3f343c382c3e2e3c3e1c1624382c3e3c3f383c16153c043c3f343c382c3e28383f193f3c30343c381a3c2f3c29383c0a1a3c3e3c39343c3b3f3c3f3c31341a370c331a36453c2c0e1a3c3835243c10122c342e3c3a343c341a3c383a453c2a121a3c3838341c143c3c363c31303c143c3c2c193c3f1c143c3c2c2f3f0c343c3f3f393a121a3f053e313c2c4d3c343c3f3f4f3c370c383e281c393c38313e0a373c343c3f3f4d3c3b0c383c113b392c3c1a3c3e1a3e393e3439343c3f3f383a0d0f2c27453f2e1a4d3c343c3c1a3c4d38381c17243e393e3c39343c3c123c1a1a4f3c1a3c31343c281a3c143c3c363c36453c2e3c38343c242c040a344f3c1a3c1a3c38352c3c2a121a3c38382c1c143c3c363c3430343c2c2c312e3c3c2c191a3e1c143c3c2c193c3e1c153c123f383c1a3f3e3c38363c343c2c2c3704331a343c3e043c3c363c31243c14383e343c382c3e15121a3c38352c3c2a122c3e15121a3c38351a3c1012163c3e3c3e3e560a3f3c2c3b52340a3f3f343a0e143f142c3c343c241a3c29243e3a3c373c343c30123c1a2f3f3c253b3b3f383c1a3f163b52331a343c343c241a3c3e3c3f343c341a3c043c38343c241a3c3e1a3e3c3e1a3e383f383b3c3e343f331a34243c163c3e2c3c373c343c24123c1a3c323c1a3c3f3c1a0e1a3f28383c321a3c3c393c3031343c2b3f3c29123c3c3c0a3e3e043c3b2c2c384b3c3c3c1a3f383838331a343c393c3831343c241a3c053c2d343c242c3204383f343c242c39143c3a343c302c39043c3a38340a3f342c3c1a3f153c32343c241a3c3f3f31343c273f3935341a3c3f3f36343c281a3f1638241c143439343c341a3f143c39343c381a3f38383f3831343f343c273a321a3c3c343c24123c151a153c2c333c343c333f393a0e2c3e143439343c2735392c3c313e043c3a2c2e3f0c373c3c1a3c2c0b043c1a383f1b04303c2c273c3e1c04343c373c3c1a3c3e3c3e331a363c3c143c3c343c384f3c121a3e343c3f3f4d3c3b0c383f38153f143c3c2c2f3f0c341a341a3c053c2d343c342c3016351a4d3c3f3f56093c3c343c3f3f493c3b0c383a451a3c153c32343c3f3f0a3c3b0c383f38143c043c39383f302c393e3c3c343c333f3c3f3c31341a384f3c0f0a3f343c3c1a3c17243e393e3c3c2c2c3c4f3c1a1a392c3c373c343c3f3f143c370c343c3f3f1a3c370c38393b3b392c3c1a3c3e1a3e0b3c381a3c053c37343c3b0c2f1a2f3c343c302c3e2e383e343c301a3c053c372c2c3b4d383c0a1a3c043c39383f302c393e3c3c343c341a3c4d383c383c0e143c2a124f3c0f0a3f3e043c3c2c241a3e1c153c1b2c2f3c1a3c2e3c3c2c1f0a3f1c143c3c2c2c150c2c2c3c1a3f143c3c2c2f3f0c343c3f3f393a121a3c38351a3c2a122c172c38333c3e3c3c2c241a3e1c153c143a1a0a3f3e0a0e1a3c043c3c363c36453c2e3c3f1c053c30343c302c392e383e383f24153c2e3c3c343c284f3c1a3c1a3c143c3f343c3c2c0a2c373f3c281e382c3e3c382c2c2c4f3c1a3c31343c3f3f143c370c343c3f3f1a3c370c383e24382c3e3c38343c2c123c1a3f3f3c13344f3c1a3c31343c3c123c121a3e342c381a3c053c363a143c3a383c121c343c3f3f163c370c373c3c1a3c2c0b2e3c0a383f1b14303c2c1c3c3e1c04343c373c3c1a3c3e3c3e331a362c3c143c3c343c384f3c0d1a3e343c3f3f493c3b0c343c301a3c38350a3c2a121a3c38350b3c2a121a3c3835083c2a122c4c0a381a3c38352c3c2a122c382e343f343c382c38053c30343c3c1a3c28383c383c0e143c17243e073c381a3c3e3c3c2c2e3f0c331a341e343c3f3f3c39243e3a3e3c3c2c2c384b3c3f1e1a3c38353b3c39123c3b1a333c3c163c1a3c383a243c10121a3c383a2c3c10122c302828333c3e3c3c363c31303c2e3c3f383c161a3c100d3a3f383c1a3c2f3c37342c301a3c2e3c3f383c113f3c252c2c393e3c3f343c382c38053c30343c3c1a3c043c3f2c2c3c2c3e04343e1c17243e073c3831343c3f3f103c370c383f451a3c3838251c143c3c2c2f270c343c341a3c3835303c2a121a3c3e0a3c4a0a381a3c3e0a3c4a1a381a3c38351a3c2a121a3c38381a1c143c3c2c2f050c343c3f3f3a3a121a3c38350a3c2a122c4c1a38333c3e3c3c2c271a3e1c153c143a1a0a3f3e0a0e3e2c3e3c3c2c183c3f1c153c372f2c4d3c343c3c093c3f193b392c3c1a3c3e1a3e353e3439343c3f3f343a0d0f2c27453f2e1a4d3c343c3c1a3c4d38381c17243e353e3c39343c3c123c151a4f3c1a3c31343c3c1a3c143c3c363c31303c2e3c383830303e343c3c0d3c0a3c153f143c3b343c3c0d3c0a1a4e3c0a1a1a3f2e3c3a330a303c343c3f3f493c3b0c343c3f3f343a121a3c3e1a3e353e3c38383e4d1a3c383a243c10121a3c383a2c3c10122c371a2f3c343c2c1a3f3e1a3e3c38383e1e17243e3c3c0e1a3c3e1a3e103c34153c143c3f383c121c343c3f3f493c3b0c383c121c343c3f3f123c370c373c3c1a3c1a084a3c0a3c173c383a2c3c100e143c3e2c3c343c3c1a3c17243e1a3c341a3c3e3c3f331a36343c143c3c2c193c3f1c143c39343c3f3f493c3b0c343c3f3f4e0a3b0c343c3f3f4e1a3b0c38331e3f343c3f3f0a3c3b0c383f38143c2e3c3f383f302c393e3c3c343c3b3f3c3f3c31341a344f3c0f0a3f343c3c1a3c38382c1c17243e393e3c3c2c2c3c4f3c1a1a1a3c38383f321a3c35343c3f3f052c3c4b3c3c24392c3c373c343c3f3f143c370c343c3f3f1a3c370c38393b3b392c3c1a3c3e1a3e0b3c381a3c2f3c37343c370c2f1a2f3c343c382c3e2e3839343c381a3c2f3c372c2c3b4d383c0a1a3c2e3c3f383f302c393e3c3c343c301a3c28383c383c0e143c10124f3c0f0a3f3e043c3c2c241a3e1c153c1b343c3f3f3f4f121a3c38383a1c143c3e343c3f3f0b3c3b0c343c3c0e3c33453f343c3c0e3c33493f343c3f3f4d3c3b0c343c3f3f383a121a3c3838301c143c3c2c2c150c343c3f3f493c3b0c3833243f392c3c1a3c383a343c10122c341512303c2c0e313c163c1a3c38352c3c2a122c3e2828333c3e3c3c312c3c352f2c4d3c343c3c123c1a0a143c043c3c2c2f3f0c1c4d3a1b3c2812333c3e3c3c343c333f3f3a124f3c1a0a1a3c043c3c363c3434331a343c3e043c3b343c341a3c3e1a3e0b3c381a3f3f39383c1716393c3e3c3c2c193c3f1c143c3c2c2f3f0c343c3c123c1a0a1a3f3f3c09343c3f3f143c370c343c3f3f1a3c370c383e24382c3e3c38343c2c123c1a3f3f3c13344f3c1a3c31343c3c123c121a3e342c341a3c2f3c363a143c3c2c193c3f1c153c363a143c3c2c273c3e1c142c3c343c3431080a303c340a3f3f163c370f341a3c163c3e3c3c343c344f3c123c3e343c3c1a3c29243e143c341a3c38352c3c2a121a3c043c3c2c183c3f1c143c3c2c19453f1c143c3c2c19493f1c1539253c2e3c3c2c1e3c3f1c153c2f341a381a3c2f3c29383c0a1a3c3e3c3f2c2c3c2c3e04343e331a36453c2e3c3c343c3f3f383a124f3c1a0a1a3c38383c331a3434343c3f3f3c29123c3f043c3c2c1e283c321a3c3a3c4d3c3e2c3e3c3c2c241a3e1c143c3c2c243c3e1c153c052f2c4d3c343c3c123c0f0a3f343c382c3e2e3c3e1c1624382c3e3c3f383c16153c043c3f343c382c3e28383f193f3c30343c381a3c2f3c29383c0a1a3c3e3c39343c3b3f3c3f3c31341a370c331a36453c2c0e1a3c383a343c10122c35043c3c2c2c190c343c3f3f3f10121a3c143c3c2c1f0a3f1c143c3c313c391b3c2e3c3c313c39183c2e3c3c2c193c3f1c143c3c2c2f3f0c343c3f3f393a121a3c3838341c143c3c2c183c3f1c15392a3c2c4d3c343c3f3f143c370c383e341c393c38313e0a373c343c3f3f4d3c3b0c383c113b392c3c1a3c3e4d3c3f4d28333c3e3c3c363c3430341a301a3c38382c1c10093f130a3b36392c3c1a3c3e3c392c2c2f0c331a3430343c301a3c3e1a3e3e39243e3c3c0e1a3f2e3c3e343c3c123c0f0a3f343c2c2c052c34493c1a3c1a3c38352c3c2a121a3c38382c1c143c3c363c3430343c2c2c312e3c3c2c241a3e1c143c3c2c243c3e1c153c103f383c1a3f3e3c38363c343c2c2c3704331a343c3e043c3c363c36343c14383e343c382c3e15121a3c38352c3c2a122c3e15121a3c383a2c3c1012163c3e3c3e3e4834393c2c3b52340a3f3f163c370f341a3c163c3e3c3c343c344f3c123c3e343c3c1a3c29243e143c341a3c053f1e342c241a3c38352c3c2a121a3c043c3c2c1b453f1c153e1c3c2e3c3c2c1e3c3f1c153c2f341a381a3c2f3c29383c0a1a3c3e3c3f2c2c3c2c3e04343e331a36453c2e3c3c343c3f3f383a124f3c1a0a1a3c38383c331a34343c4d3c3e2c3e3c3c2c241a3e1c143c3c2c243c3e1c153c052f2c4d3c343c3c123c0f0a3f343c382c3e2e3c3e1c1624382c3e3c3f383c16153c043c3f343c382c3e28383f193f3c30343c381a3c2f3c29383c0a1a3c3e3c39343c3b3f3c3f3c31341a370c331a36453c2c0e1a3c383a343c10122c35043c3a343c341a3c383a453c2a121a3c3838341c143c3c313c39523c2e3c3c2c193c3f1c143c3c2c2f3f0c343c3f3f393a0d3f49333c3c38344d3f392c3c1a3c383a343c10122c341512303c2c0e313c163c1a3c38352c3c2a122c3e2828333c3e3c3c363c3430341a301a3c38382c1c10093f130a3b36392c3c1a3c3e3c392c2c2f0c331a3430343c301a3c3e1a3e3e39243e3c3c0e1a3f2e3c3e343c3c123c0f0a3f343c2c1a3f15393a3c171e393c3e3c3c2c193c3f1c143c3c2c2f3f0c343c3c123c1a0a1a3f3f3c09343c3f3f143c370c343c3f3f1a3c370c383e24382c3e3c38343c2c123c1a3f3f3c13344f3c1a3c31343c3c123c121a3e342c341a3c2f3c363a143c3c2c193c3f1c153c363a143c3c2c273c3e1c142c3c343c3431372c3c1a3c3e1a3e3f3f121a3c3e3c3c363c34382c1f2b521e29243e3f3e3c3c343c3c123c1a2f3f3e35344f3c1a2c1a3c3c082e3c0a383f1b04303c2c273c3e1c04343c373c3c1a3c3e3c3e331a363c3c143c3c343c384f3c121a3e343c302c253e383a343c3f3f4d3c3b0c343c301a3c3835523c2a122c101a381a3c38353c3c2a122c382e343f343c382c38053c30343c3c1a3c28383c383c0e143c17243e0b3c381a3c3e3c3c2c2f3f0c331a3430343c3f3f3c39243e3e3c333c3c163c1a3c383a343c10121a3c383a3c3c10122c302828333c3e3c3c363c36453c2e3c3f383c161a3c100d3a3f383c1a3c2f3c37342c301a3c2e3c3f383c113f3c252c2c393e3c3f343c382c38053c30343c3c1a3c043c3f2c2c3c2c3e04343e1c17243e0b3c3831343c3f3f143c370c383f451a3f143c3e343c3f3f0b3c3b0c343c3f3f3e3a121a3c3e0a3c520a381a3c38352c3c2a121a3c38382c1c143c3c2c2c050c2c18392c3c3f3e333c2c4d3c343c3f3f143c370c383e341c393c38313e0a373c343c3f3f4d3c3b0c383c113b392c3c1a3c3e1a3e393e3439343c3f3f383a0d0f2c27453f2e1a4d3c343c3c1a3c4d38381c17243e393e3c39343c3c123c1a1a4f3c1a3c31343c281a3c143c3c363c36453c2e3c38343c242c042c344a3c2c3c1a3c38352c3c2a121a3c38382c1c143c3c363c3430343c2c2c312e3c3c2c241a3e1c143c3c2c243c3e1c153c103f383c1a3f3e3c38363c343c2c2c3704331a343c3e043c3c363c36343c14383e343c382c3e15121a3c38352c3c2a122c3e15121a3c383a2c3c1012163c3e3c3e3e4834393c2c3b52340a3f3f163c370f341a3c163c3e3c3c343c344f3c123c3e343c3c1a3c29243e143c341a3c053f1e342c241a3c38352c3c2a121a3c043c3c2c1b453f1c153e1c3c2e3c3c2c1e3c3f1c153c2f341a381a3c2f3c29383c0a1a3c3e3c3f2c2c3c2c3e04343e331a36453c2e3c3c343c3f3f383a124f3c1a0a1a3c38383c331a34343c4d3c3e2c3e3c3c2c241a3e1c143c3c2c243c3e1c153c052f2c4d3c343c3c123c0f0a3f343c382c3e2e3c3e1c1624382c3e3c3f383c16153c043c3f343c382c3e28383f193f3c30343c381a3c2f3c29383c0a1a3c3e3c39343c3b3f3c3f3c31341a370c331a36453c2c0e1a3c383a343c10122c35043c3a343c341a3c383a453c2a121a3c3838341c143c3c313c39523c2e3c3c2c193c3f1c143c3c2c2f3f0c343c3f3f393a0d3f49333c3c38344d3f392c3c1a3c383a343c10122c341512303c2c0e313c163c1a3c38352c3c2a122c3e2828333c3e3c3c363c3430341a301a3c38382c1c10093f130a3b36392c3c1a3c3e3c392c2c2f0c331a3430343c301a3c3e1a3e3e39243e3c3c0e1a3f2e3c3e343c3c123c0f0a3f343c2c1a3f1539363c171e393c3e3c3c2c193c3f1c143c3c2c2f3f0c343c3c123c1a0a1a3f3f3c09343c3f3f143c370c343c3f3f1a3c370c383e24382c3e3c38343c2c123c1a3f3f3c13344f3c1a3c31343c3c123c121a3e342c341a3c2f3c363a143c3c2c193c3f1c153c363a143c3c2c273c3e1c142c3c343c3431161a303f3c2545173c383a2c3c100e143c3e2c3c343c3c1a3c17243e1a3c341a3c3e3c3f331a36343c143c39383b0a153f143c3c2c193c3f1c143c39343c3f3f520a3b0c3837123f343c3f3f0a3c3b0c383f38143c2e3c3f383f302c393e3c3c343c3b3f3c3f3c31341a344f3c0f0a3f343c3c1a3c38382c1c17243e393e3c3c2c2c3c4f3c1a1a392c3c373c343c3f3f143c370c343c3f3f1a3c370c38393b3b392c3c1a3c3e1a3e0b3c381a3c2f3c37343c370c2f1a2f3c343c382c3e2e3839343c381a3c2f3c372c2c3b4d383c0a1a3c2e3c3f383f302c393e3c3c343c301a3c28383c383c0e143c10124f3c0f0a3f3e043c3c2c241a3e1c153c1b343c241a3c143c3c2c1f0a3f1c143c3c2c2c150c343c3c0e3c2d453f343c3f3f4d3c3b0c343c3f3f383a121a3c3838301c16351a4d3c3c2c172c38333c3e3c3c2c241a3e1c153c143a1a0a3f3e0a0e3e2c3e3c3c2c193c3f1c153c372f2c4d3c343c3c123c1a0a143c043c3c2c2f3f0c1c4d3a1b3c2812333c3e3c3c343c333f3f3a124f3c1a0a1a3c043c3c363c3434331a343c3e043c3b343c341a3c3e1a3e0b3c381a3f3e3c3a38300e3e331a343c343c3f3f4d3c3b0c343c3f3f383a121a3c3e1a3e393e3c38383e4d1a3c383a343c10121a3c383a3c3c10122c371a2f3c343c2c1a3f3e1a3e3c38383e1e17243e3c3c0e1a3c3e1a3e143c34153c143c3f383c121c343c3f3f4d3c3b0c383c121c343c3f3f163c370c373c3c1a3c1a0b2b3f2c38341b04303c2c193c3f1c04343a373c3c1a3c053c27342c1e1a3f143c3e331a36453c2e3c3a343c1e4f3c0f1a3f2c1f180d100827452c18134e450b3748343c2b3f3838241f2c18134e450b3748343c333f3438241f342c0e1a3f16381a1c1438303c4d3f3f040b1b10440a34153c1a333c3c163c3e2c3c373c3c163c3e2c3c373c3c163c3e2c3e3c3e2c1f0b290c1f3f44293c2f3c343c373f1a0e3212171305303f383c1a3c16351356341848183824333c143c3e2c192e4e560e3f492f1a4d3b343c373f4b1b1b0445131135392c0d3f1a45321217130a153c16383c342c1e303e1a0e1a3c163a390a4b14321b3824333f043c3e2c244b3b0e082f452f1a4d3b343c373f094b101c48130535392c161a3f143c3a2c1c1a3f1c14343e331a313c3c2e3c3a363c313c3c2f121a3c143c3a363c36493c2f3f283a163a32151f31161b3e383e2c2c3c153e3c0a373e043c3e2c24103e0932493e2e1a4d3f343c373f0b33320d0e354c3a392c341a3c16352e494a042e3c1624333f2e3c3e2c182a525637453e2f0a4d34343c273f0c3c3b0c383c121c343c24123c0e3c3f3a1a093f1412364d4a1a34153c1a0a353e043c3e2c1e0f4e480b1e3e2f0a2f3c343c373f0d0e1b2b0d1a2f3a392c241a3c163a361a0f29083c161e333f043c3a363c36493c2f3c2c343c273f4d3c3b0c373c3c2d3e043c3a343c124f3c0e2c3f2c192e4e560e3f492c1f07290c1f3f44343c24123c0e2c3f343c33343a04383e393c24312c1e2e3f3c2e3c3b331a343c343c3c1a3c2e3c38343c24123c0f1a3f343c302c481a381a3e04383e393c2831343c24123c0f1a3f343c24123c0e2c3f1c143c3a363c36453c2e3c3a363c31383c2a12093c3c3c4b3c3c3c1a3f141a3e053c3b3f3c2a12153e1a0a3b3e043c3a343c1a4f3c0e1a3f2c1931170b37343e2c182a525637453e343c24123c0e1a3f343c2b343a04383e393c3031343c273f3a3a1214392f39303c14383e343c0a2c0a1a34153e3e3c3a2c2c150c341a161a3f163a123c2a121a3f141a3e043c3b3f3c252c2c0a3c341a3e3e3c3738314d3e343c162c3e15121a392e3c37382d4d3e343c24123c0e1a3f2c1c3e3f3c2a121a3f141a3e3e39123c3c3e3c3e3834123f3a143c3a363c31343c28383f1c1438342c244b3b0e082f45342c34303c1a0e1a3f143c35331a31303c283a1005442a103f38351356341848183e3c3a363c31303c2e3c3b2e3f0e153c1a0a3f3e043c3a363c31303c283a1a1a2c3b0c343c24123c0f1a3f343c24123c0e0a3f1c144d3c3c39123c3c3e3c3a363c31303c28383f1c1438352c242d390c344845342c34303c3c0e3c3e0a3c314a3c383f3c2545173c38381a1c04343a373c3c1a3f143c3f331a34243c163c1a3c041a3e3f38383f1e2828382c3e3c3a2c25454f3c1a3c1a3f143c3c343c381a3c143c39343c2c1a3f143c3c363c343c363c342c382c283c341a384f3c151a3e2c3c373c3c163c1a3f141a3e3c3c493e3c3c383e3e043c3b2c2c3c4b3c3c3c303c0a0e1a3f28383f321a3c3c393c3431343c2b3f3c29123c3c3e3c382c2c2c4f3c1a3c303c2c0e1a3f143c39383c451a3f153c04342c381a3f153c32343c241a3c053c2d343c242c171a38153c3e3c3a383c491a3f143c3c38380e1a3f1638301e143c3c3838121a3f2e3c3a2c2f150c341a301a3c143c3a343c301a3c2e3c382c2c382c093c381a3f16244b3c3c3c1a3f141a3e3a3e383f3c4d3c1a3c4d38301c053c36341a301a3f161e333c3c0e31343c273f343a12163c3e3c3f3e4d3c3f3c25443f3c3e383c3c4e451a3c2e3c3e2f1a2f52343c3c3b343c38123c1a3c1a3c383838193a12143c383a3c1a343e3c1b4e38143c4d382419143c391e143c3c1e04383c343c3b3f3f3a12153c2c0a3f3e0a0e313a0a3c173c38382c1c04343f373c3c1a3c3e3c3e343c302c071a341a3c28382c1c142c3c3e4c2c3f3c13453e2c3c333c343c301a3f381e382c383b52342c3c1a3c2e3c3e2f1a4d3e343c38123c1a3c143f2e3c39363c343c341a2734392c341a3f2e3c3a2e1a2f3c2c2c382d3f2e3c392c2c2f0c342c301a3c2838381c14383f393c34313c3c0e31343c381a3c161e153c3c0e1a3c3c093c3c2c3b522c2c3c153c3c3352343c381a3c1624381b043c3c3f2e3c3f313c3c3c343c3f3f3f352f0c341a3f3f1a343e3c1a354405341a333f3a35241a3c4e341a3c3530153c3e3c3f2c2c3b0c342c38303c2c0e313e521e3f3c2c3352343c3f3b3f383f3f0a34383f363c343c342c3c173c38381a1c043438373c3f3f1a34383f343c3c2c0b1a34143f2c2f52343c2c1a3c04163c3c391e39383e3c38343c300d3c3c1a4e3c051a1a3c1a2f3c3c4d3c1a3f2e3c382c2f3f0c343c2c2c0d0a381a3c16382c343c373f3838161f342c333f3c3e383c3c4d3c1a3c3e3c3f1c14343a343c24093c3c3c1a3c3e3c381c144d3c3c35304b3c3c3c1a3c38383f1c14343c343c3335392c3c31343c341a3c4f0e153c143c3f343c330c342c3b3f3904383c3c4d3c3e2c3e3c3c341a301a3f38382c1c1012143c3e3c3c312c3c3c2c2c3b0c341a3c4b3c3c3c1a3c3835523c2538333c3e3c392c2c3b0f342c3c1a3c0a4d3f3e0a0e1a3c1a4d3c3e0a0e1a3f2f3c2c2c2c3c3b2c2545313a143c382c2e3f0c373c3c2d3e4d3a1a1a2c3b3f0534383f363c343c343c301a3c2e3c3e3832243f3e050e3c340a3f3f383a0e143c2e2c3c343c3c1a3c143c39382d303e343c3b3f383a12163c3c09183c2c3352343c381a3f3e3c391c4f12153f2c373c3c4d3c1a3c043c382f0a2f3c2c2545153c3e3c3f343c373a392c341a3c2e0a3c3c3e343a343c300e3c3c3c143f4d1a333c143c3a343c19363f383f3f3c2c453b343c333f3c2a12153c043c3f2c2c3b0c342c38303c1a0e3c3e0a0e1a3c143c3b2f04383c3e043c3c3e4b163f3c2c2f52343c3c123c112c143c041a3e3f3e343b343c3c123c152c1a3c3e1a3e353e343a1c043438343c2c1a3f280e1f341a2c382c3e3c39363c343c343c241a3f3f3f3e3a143c39343c30123c1a3c1a3f3a124f3c1a3c1a3c043c39363c3438343c2f0f341a284f3c1a2c31343c30123c1a3c153f3e3c3b343c341a3c143c3b2e050e143f2c2f3c343c2c1a3c2e3c3b3838341c343c301a3c041a3e3c3e3c3b1c143438331a343c343c301a3c041a3e3f3e3c3b1c07243e3f3c0e1a3f38383c321a3c3c343c3c1a3c3e1a3e313e343f331a341e343c3c1a3c29243e3b3e3c3e3e04163c343c381a3c2e1a3e3c3838351c163b491e2e343f2c2f3f0c331a343c343c3c1a3c2e16393c3e3c3f362c303438334d3f322c303c3e4a2c243c0537523c250a3e1b14303c2c1f3c381c043431373c3c1a3e4d383c331a340e3c163c1a3c1f4d143a28343c280a2f3c2c2c3815383835483a143829343c3a1c341a3a44342f16303c2c0e1a3f383a3c383538382c38383f342f3f3f523f1215380a0a3f3e4d35523a16354b3a143c382c2c3b0534153c1f342f301a383828153b3c0e3e2c3e3c272c123e3c1a343e3c1a343949520a3e392c123e3c1a343e3c1a343949520a3f2f3f383c1a3c38381a343c341a383838391c143439343c2f3f5252444a1e2f3c08343c3c1a38043c2c383e121a3c38353535383a3c35143c3b2c2e3f05341a281f2c18121e2c272418343c281f343c381a3c2a341f2c2c302c36143c3c2c2e3c1a3c143c39343c2f3f1a303c3c1e053c08343c341a3c043c3e343c33363a043837393c3831343c093f383a1215382c373c3c13453e2c3e3c3f343c093f313a122c4e2c34143c2e3c3f123e343f2f3c3c3c3c3c3c3c3c3c3c3c241a2f3c343c0e1a3e041a3e313e343a2c2c3b0f331a340e343c2b3f34353414391635153c381e333c2c0a393e043c3b2c2e3f04341a483f492c3f3a392c341a3e041a3e313e38362c2c241a3c043c392c2c3f343a0a0a3f3e043c31343c273f352a0e143e17243e313e3c3f2f3c3c3c3c3c3c3c3c313f3f1214383f2c2c241a3c043c392c2c3f343a0a0e15393e3c312c293f0c343c093f4d3c370c343c0d3f3c381a1f341a4d153f0a333c343c1e3e1b043c3f2f3c3c3c3c3c3c3c3c2d3f3f24043c3f2f3c3c3c3c3c3c3c3c3c3c3c271338382c3e3c3f0c0a0a3f3e4d383c3e043439331a343c343c193f3f3a12153f043c3f343c324912282c3c3c3c3c3c271e4e332c1c34143c282c3c3c3c3c3c3c3c3c3c3c3a34333c3c0e3e2c3e3c362c2c3f303f383c1a3e143839343c1e153f143c33342c1a303c2c0e1a392e3834343c12153c0a333c343c333f352e3c392c2f4c343a0438393c163c1a3f4d38381c04343a343c1537392c3c1a3c4b4d153a16343c342f16392c3e3c3a343f113e52525252520a5639343c244c3c1a3c1a3a1227453415161a3a28363c11320b1e3c493c143a28363c11320b1e3c4e48442d1a343c343c273f3f3a0e143f143c34290a4d3c3e043c270d04343a2f2c4d3c343c153f3f3a0e143e3e3c3a331a343c3e0a333c343c1a1a3f04343a2e2c2f3c343c273f3f3a0e143f041a3e3c3828333c2c0e31343c0e1a3e041a3e313e3c391c043439331a340e343c24153f043c392c2c3f36392c3c313e043c302c2f110c2c2c1108342c1e1a3c4d383c2e3c2f3c343c193f3c2a121538143c322c18243c2f14382b3c4d3f3f3c3e3c391c0434392c2c161a3c4d38372e3f0e153e2c373c343c241a3e380e382c383a3c11320b1e3c043c371914382a2c25451a3e252f3f1b4e3015394d383c342c301a3e3e38353c4d3c1a3f043c39343c1e123c1a3c143b043c371910124f3c1a3c1a39043c251e2e3c2a1f3e3839343c193f3f3a12143f043c3a2e2c4d3c3e043c34363c343c342c1e1a3c4d28333c2e3c3a343c304f3c1a3c1a3f1638381c14383a393c3831343c1a123c1a3c153f0a0e1a3e043c31363c340e343c110c341a304f3c140a1a392e3c34343c193b2c2c374d1c143434343f281f341a1e1a3816383e193a121a3f143c3a343c190f2c2c374c343f37363a04383a343c333f3c381a333c3c0e312c2c3c153c0a373c343c241a3e384d333c3e3c33343c150f2c2c374c2c2c110e342c333f3e143835343c1a123c1a3c143e2838362e2c4d3c3c4d3c1a3c4d383f1c143839343c161a3f4d38361f3e3435290a4d3c3e0a0e1a3938383c343c301a391635103c38241f1c043c322c181e3c2f143c302c2c3f351e2a0e143f043c3a343c4c0f2c2c374c2c2c110e2c2c110f2e3c2f3c2c2c2f3f0d3c341a3e16383c2e3f0e1a3e4f121a3f4d3a3c043c3f0c341a113f3e2a4d14394d383e193a0d3f4d3f440f342c0d3f3e143835343c161a394d38371f3a0e143e283835293c2f3c3c4d3c1a3f4d38361f3e3835343c113f3c2a12143e2838342f0a4d3c3e0a0e3e2c3e3c36363c343c3415341a38143c351f14342b343c190e1c0434372f2e3c362c2c2f0c341a451a3f162705392c3c3e2c3e3c2b2c2c3b052f2c2f3c2f3c3c3c3c3c3c3c3c383f39342c381a3f4d3a3c11320b1e3c4d1e1a3e3e3c36294e34333c2e3c362c2c2f0f312c3c3c2c2c3b052f2c4d3f3e4d2c3f3c3c3c3c3c3c3f3c2c04383f3e4d2c3c3c3c3c3c3c3c391a2d4d2c3c3c3c3c3c3c3c390a2d4d2c3c3c3c3c3c3c3c39492d043c3a343c443a3a4d2c3c3c3c3c3c3c3c39492d043c37343c193f3c252414394d241f343c161a394d161f342f1a3e2c3e3c28392c3c1a38044d3c3c3838092f0a4d3c343f141c342f1a1a3c2712153c2c0e1a3e143c2e343c110f341a164f3c1a3c1a3c2e3c24123e3c3f242c4d3c343c121a3f043c371c143439331a343c343c333f1a37290f4e3c332d3f383c392c3e3c362c2c3c4f3c1a3c1a3e3e3c362c2c2f0f341a0d313f383c1a3e3838381c0434342c2c3c4f3c1a3c31343c121a3e141a3e3c38383f1c143439331a343c343c333f52482d0f4e3c3331392c3c313e043c33343c150f2c2c374c2c2c110e342c333f3e143835343c1a123c1a3c143e2838362e2c4d3c3c4d3c1a3c4d383f1c143839343c161a3f4d38361f3e3435290a4d3c3e0a0e1a3e1638381c143435343c241a3f143c352e050e153f1a0e392c3e3c3a341a1e1a3e384d143e2828382c3e3c352c2c2f0f341a24123c1a3f3b392c38313e0a373c343c483f480a3f353f383c1a3f3838341e2e3836393c3831343c333f1b4e333f1b043c302c2c381a393f0e143f143c392e143c392c2509361e2e34363a043c3a1c1438302c25443f1b143c363a043c3b1c14383b343c2f3f3e3538143e1a4d3c2c251e153f1a373c343c16333c3e3c352c2c2f0f363c343c341a483b392c3f3f3e1438372c2c3c153f143c322c2c0d0a392c3c392c3e3c3a341a0d3f3c2a12153f143c32343c113f3e100a143e253f3b392c3c31343c0d3f1b4e30153f1a0e1a3f043c331c4d383e192838371f3e3837343c2b3f254e3b3f051a3f3a3f383f3f3c3e3836343c0a1a3f143c371c1638371c04343a2c2c3c1a3f16383c2e150e143f143c3a343c05363a043830393c38312c2c3c153e143c30343c301a3e2a121a3f100d3f3e2a0e143f16383c343c273f3c38121f341a241a3f143c302e150e15393c093f1b043837343c053f521b5252520a193f520b5252520a1e1a3e143c301e14343a3a4d12333c2e3c30343c273f3c381e1438100d3f3c2a1215391a373c343c2b3f254e38143b38353a3c3824382c3e3c392c1b525252524535343c480f2e1a4d39343c333f3c3e3c392c2c3f363a04383a393c3831343f381a3c043c392c2f444c341a270c343c27070f2e3c2f3834453f341a270f2c2c3b303f383c392c3e3c3a2c2c3b0f341a273f3039123c3c3e3c2f343c270f2c2c3734392c3c313e043c3a2c2c370f341a451a3f29123c3c3e3c3a2c2c3b0f2c2e4c3f36043c392c2c3f343a07123c3c3e3c2f343c440f341a273f52525252520a1e1a39100936392c3431343c241a391012143c043c2c2c1b5252525245351e4d12333c2e3c3c2c2e3c1a3c143c39343f3f0c341a281a3f3f3c08343c3c1a38043c2c383e121a3c38380a343c341a3f2e3c382c243e3c3f35302c311a373c3c163c3e2c3e3c282c1e243c2f1a2f3c343c093f383a12143f1638341e143839343c273f3e2534153e143c33343c1a1a3e3e3c332e050e143e2e38343c4d3c1a3e39283e3c3e3c363834453f342c243e2c3e3c34343c11353f383c1a3f143c312c2f3f0c292c4d3f3c4d3c1a3f16383f1c04343a2c293c4b3c3c3c1a3f143c312c2f3f0c2e0a4d3c3e0a0a3f3e043c3a343c0d35392c3c1a3e4d380a321a3c24343c30153f1a0e1a3c3e3c3a343c121a3f100e2c36143c342c2c2f0c341a1a1a39284d333c3c093f3c3e383a343f373b392c341a3c3835563516383f383e121a3938383c293e3c35343c15331e1a4d3f3c4d3c1a3e39283e3c3e3c363834453f341a241a3e4d382c1c160e382c3c333c343c273f3c2a0e143f16380a321a3c3c343c241a3e4d382c1c160e333c3c0e31343c3c1a3f143c302c2c161a393838372e3f0e2c36143c302c2c110f342c241a3e3838381c143434343c192d392c301a393838372e143839343c2415393e3c39392c3c31393c34313c163c1a3938383c2e3c4d3c343c1e1a3e3838381c143c35343c15313a043837343c093f383a12143c4d38371e143833343c333f3e3534153c043c34342c1e392c3e3c33343c1e4c3c1a3c1a392f3e2d3c2e343a2f1a2f3c343c093f3039123c3a3e3c39342c24313c163c1a3f043c342f0a2f3c343c241a3e4d382c1c164d333c2c333c343c273f3c2a0e143f16380a321a3c3c343c241a3e4d382c1c160e333c3c0e303c2c0e1a3c3e3c3a2c2c382c36143c3a2c2c3b0c342c273f3c3e3c302c2c3f30343c121f392c3c1a3c3835563516383f383e1231343c3c1a3f143c33343c270f341a241a393e3c3a343c05343a053c0c343c0a1a3f100e15393e3c352c2c2f0c341a1e1a3e2845333c2e3c302c2c3f32392c3c313e043c3c2c293c1a3938382e1c16382e2c2c3c2c31143c3c343c451a382e3c2d1c053c0c393c3431343c0a153f1a0e1a3c38380a343c273f3e2a0d3f3e28383c383e4931343c3f3f343e3c3e343c281a3f383a3c0a3c3f07383e491a3c143c3b343c341a3f28121f342c16303c2c0e1a38043c3b2c2f0d4d2c2f444c2c2c11051c1438303c163c1a3c4d38312e0a4d3c2c2c0a1a3c4f0e153f162c3c3c3c3c3c3c3c3c0a2c3e38243c4d3c1a3a382c3c3c3c3c3c3c3c3c0a2c3634153a3e3c3a2c2c3b0f341a24333c3c0e1a393e4d3c3c3838092f1a2f3c343f1a1a3c27121a3a363a1a1014383f393c3831343c381a3a363c1a3a3638153c2c0e1a382e3c31363c340e341a241a3f16381b192e343a1c143c3a1e4b4d1a382f3e2d3c2e343a2f1a2f3c343c093f3039123c39043c312c2c440c342c2431343f3f3f3c1334153e143c3b2c2e3f05342c1a1a3e041a3e313e3835343c273f3c100e14392e3c3b2c2c440c321a3c3c343c273f3c2a093f3128380f343c193f3c381a1f321a3c3c343c2f3f3e3538153f143c312c2f3f0c342c1e392c3e3c35341a283e1b043c3f10282c3c3c3c3c3c3c3c391a2c2a30382c3e3c3f0c1a0a3f3e4d3a3c1a343e3c183c0e143f4d3a1a301012093c3c3c1a3e35344b3c3c3f3f3c2e3c392c2c3f36343c381a3f4a18152f3c3c3c3c3c3c3c3c393f3c1214343f2f3c3c3c3c3c3c3c3c3c3c3c2413341a3f15093b343c2b3f3c2a12143f043c312c2f3f0c1c4d383f2f4e373b3f383c1a3f283808321a3c3f343c2b3f3c1012153f0a0e1a3c282c3c3c3c3c3c3c3c3c3c3c3a34333c3c093f1b0438372c1b4e5252524535343c121a382e3c331c04343b1c14343a1c043c392e3c4d3c343c3f3f343e3c3e343c243e1b0a373c343c333b392c3c1a3f043c312c2f3f0c1c0434342c2c370f343c3332392c3c1a3c4d383e1c1a0a3f3e043c35343c093f383a0d0f341a1a31341a190c341a301a3f3f3c08343c3c1a393e3c36383e121a3c38380a343c341a3c043c382c243e3c3f35302c31143c3c343c093f383a121a3e3f3c0c343c3f3f303e3c35343c150f2c2c3f3f3c3f3c08343c3c1a392e3c3b383e121a3c38381a343c341a3c043c382c24393c3c35302c31143c3e343c301a3c143c392e150e153e2c0e1a3e4d3a0a3f3a12163c3e3c373e4c2c3f3c13451a3c2e3c3c363c3728341a381a3c28383c343c373f1a3c370c341a302c4e3c38143f3e3c3f1c043c39343c2c1f341a301a3c143c3e343c33313a04343e3838341c343c3c1a3c2e3c391c143439331a3728343c3c1a3c07243e3e3e3c3c343c381a3c10124f3c1a2c1a3c1a0e373c3e3c3c3832383f383f3c31380a3c1a3c3e3c3c363c343c2c2c050f363c343c1c1539143c2c0e293c3e3c3c343c3c123c1a3f3f393a0e123c1a3f0c3834123f3e0a123c343c3f3f3e3a0e2c491a38313e1a3c1a3c3838341c053e363c2c0e1c3c3e3c3c343c381a3c1416393e38383c343c301a3c2e1a3e3c3e1a3e383f382a3c3c0e373c3e3c3c38333c3f383f3c31113c343e3c2545391b143c3f363c3424343c38123c1405313f383c1a3c2e3c3f363c3424331a340e3e4d3752342c1a3e2c3e3c382c2f1505341a2b3b343c2b3f3a38241a3c4d383f2f133b04392c3c1a3c2e1a3e313e343b3f383c1a3f2e3c3f2c2e3f0c383c4c0f0f3e383a3e0a373c3c163c3e2c3e3c39391a303e3c3c38393e043c382c2c15053f383c1a3c2e1a3e393e3c3f363c34341c4b0a153f0a0a3e3e043c3f363c3424343c38123c152f0f0f3e3835393c3831343c24153f0a0e1a3c143c351b3e343e2c1a3f29343c341a3f112b04392c3c1a3f3838341e2e38393c163c1a3c113c333c3e3c393f383c1a3c2e1a3e393828333c1a0e1a3f38382c1e2828333c3e3c3f363c34242f2c4d3f3e043c393f383c1a3c2e3c3f363c3434343c38123c1a1a1a3c0c190c343c38123c140a2c100a3831343c2f3f383538382c3e3c3f343c38123c152c1a3c2e1a3e353f394f3c143c3f343c3613382d283e3e043c3e342c1a31343c3c1a3e3f3e4a3c2c08393c1a38371b04303c2c2f3f0f341a30163c3c3752343c3b3f1b053f182f2c2f3c343c3c123c1a0a153f3e3c3c363c3434342c281a3c3e1a3e3a3e3c3c363c341e2f1a2f3c2c25451a3c3e4d3c3038382c1e2828333c15121a3c3e1a3e3a3e383a343c3c123c152c153f043c3c363c340e342c1a1a3c3e1a3e3b3e3837343c3f3f343a12143c16383c3836383f343c341a3c153c29383c0a1a3c3e3c3e383c4d143e143c3e383c161a3e10122c441a341a3c3e3c3a343c190f382d283e343c3c1a3c3e1a3e3b3e3c34343c110f1c17243e313c0e1a3c043c3c363c34242c2c3b0c331a3430343c3c1a3c4d38301c143c3c2c2e050c383524123c1a3c4f3c140a1a3c3e4d3c303838341e2c2f3c343c3c1a3c38381a1c153c33341a341a3c143c38343c2b0f1c143c3c363c340e38370e3f3e043c3c343c382c133c382c521a34303c2c0e1a3c2f39043c1a0e153c3e3c392c2f3f0c373c3c1a3c3c081a3c2c383f1b043c3c363c3424343c3c123c1405313f383c1a3c3e3c3c363c3424331a340e3e0a373c343c3c123c1a1a1a3c3e1a3e393845333c3e3c3f2c25452c251a2f3c343c3c1a3c3e1a3e3e3e3c3c363c34302c2c3b0f343c3c123c140a2c100a381a3c2f39043c1a4531343c3c093c393f3f38353b3b3f383c1a3c2f3e1e3c2e3c3c363c34302c2c3b0f313c3c3c383b483b392c3831343c3c1a3c3e1a3e3e3e3c3c363c34302c2c3b0f343c3c123c140a2c100a381a3c2f3e1e3c2e383e343c3c123c1a0a1a3c17123c3c3e3c3f390a093f1b0a09163c3e3c3c363c3424343c3c123c1405313f383c1a3c3e3c3c363c3424331a340e3e0a373c343c3c093c393f3f3e353b3b392c3c1a3c3e1a3e383e3c3c363c340e2e2c2f3c343c3c1a3c3e1a3e3e3e3c3c363c3430343c3c123c140a2c100a3831343c3c123c1a0a1a3c3e1a3e383845333c3e3c3c363c3430313c3c3c383a282d3e4d3b523e0a1e3c343c3c123c1a1a31380a3c1a3c3e3c3c363c343c2c2c050f363c343c1c1539173c2c0e363c3e3c3c2c2c150f3832303f3e05303c343c3c1a3c3e1a3e3c3838301c041a3e3c3a122c083c38313e1a3c1a3c3838341c053e493c2c0e293c3e3c3c343c3c123c1a3f3f393a0e123c1a3f0c382d163e3e05303c343c3c1a3c3e1a3e3c3838301c041a3e3c3a122c483c38313e2c3f3f0434383f383c121c3e05303c343c3c1a3c3e1a3e3c3838301c041a3e3c3a122c150a3031380a3c1a3c3e3c3c363c343c2c2c050f363c343c1c1539113c2c08093c2c38381b04303c2c2f3f0f341a28163c3c333c3c163c1a3c143c38293c4d3c343c3c123c151a143c043c3c363c341e341a272d3f383c1a3c3e3c3f313c3c3c383a281a3c3e1a3e3c3e1a3e333f383e3c383b522f1a4d3f343c2f3f3c2a12153f3e3c3f2c2c3b0c342c383b343c281a3f143c391c07243e393e3c3b343c341a3f3a0e4f3c1a1a1a3f2838301c143c3b2c2c150c3831123f342c301a3c3e1a3e3a3e3c3f343c30123c1a3c143c053f2b343c3c1a3c043c3c363c34241c17243e3a3e3c39343c2f0c342c2c1a3c2e3c391c14383f3e0a0a3f3e0a0e1a3f28382c1c142c3c343c2c313e523714341a3f3f1a3c1a310e042a11244f2d3a153505455637114e19564b33184e0b4f391b3104524a4c0f1c441c051f4f52182b30253b162b3c0a303a3c393c2c383e0c2a191307134d0f364c2427520b4a1324091b2509181c0f0c4d4f1c19131f0e2f1e0f3617484f3e1a15443c041e1037154e4c445615254b5608520f2a2b100404281935171a0b0a452d0b0e0f1c4c3f274429280e524f141211520c0f4b443b0b48041e345218160d3b322a1e1331162a45393c1045364e094e281e521b4e150f0d32292d2a12103716051c3317270e2c2945521b1a314e44522b2d0730043925392c4d1c2d2e110d2b384d4818252f3e2d3505562733051e1837074f33140f280738052417452b3b2e12303f3c2c34280e1b35112a2817344d27180a453219363f1a2430363a2a11171e2d3f2c283609270c1c310a16353f0a494f3815341610493e3c3a074e14490945104b560b331c2e1e13290e4f040e13561b1925250c3a0a1637380d4b391a054c4d313e05243115121c333e4d1f3a071c041f104a1e4a110d1c092d081a123b0b4f2811361629290e4a1910352a4c0f1b320e4a33441804160d28174a1749444c053104441811492e3838522b29284b27124d193a483c3c3c3c3c3e07094a1e3b1a343e3f3c35520745494514050e2513092a4c084f0b100d0c4c381f3104494e270b0f48132e0716481e0948362e0d2928293804244b3b15240e380f2d07492b0f4d333e4a3608520b05182a0c0c16452a56520b09052833391509193329270d2b3007331011342a3b381e443b2f24122c561b130d3f1a343e3f343b521b524a0a283b3e1a2f390a4518310c1b130425170c361531454c3b2f120b4b17124c4e3c2c383e3c1412562d3f1c4f2e1617564513274d152e391a491e3c294c441b351b0b3105170a1f1c4f194e251c4f0c4417342e3b3e303f3c2c343f0f525256283245522d441f19312e0b4d073307243828393c0a24332f30293714520e4a302d15254c5656120d1825331e05382f341a483b051e082b452938165236130d4c2a3e1b134a452f074d44180c051627301713252b4f4b36051627300d2b071e561c1a243a393c10343a3f3a193b2d294848524e330417271434142f35490c36112e0f16373c4a1a4914343e450d3a2f120a0d4a084a354d4a14491c070a283b3e15484e094b13491148180b3f4d313e05274f4f4408093256391a4f4c240430102f3232170d4d351a12363b3309372e2734363f1a24301f3e2c162e322f1e253115190a0e361b1f092d290b18560e0f383210241031380c373a2f321c2e2b1129384e48322929144e11484517311348442b39043014312a291e4e1f0f19091f190c3017244d3f2733252b0e193732290d071a0c1c1137093a050e4f2d0d2a2b0c0a35442d290737180f0c074b4411271e0c3218130f4d4b1c4b082f051a343e3f392b080f0d0b14351549453a451137280d043114481e373f0a1e322d3a100d111b3509312f07281e1f3a11042d124b3009454e194f1513352f4d4b3e381b35074a192e4d082a4e314f4424241c31140a4f3b1412122d16353f0a493834562d130738091f2b050c102710073315342e373c3b3c0a303a3c1b1f4f4405343239150417242a353e2507284c1c0b11252b4b4a2c081f110d16241c3a3b4c173f0a271613352f4d4b08274b183707171549191629562d170f0e4814243607302f382e364a1c2a132e1e3313270c241032171a181311372c07090d081f312e34183517042e15491e2b3432130d0428133207121b522b2b2a0c183e1a1228350f1b4e4b2a2d17340a3956363a152a243e37142c1625392c4d1c4f0f56522729351048091b3a2c163638083a15124d30333f2c24360a1027160d19044d092a15382d39054a310e313f4a523b2f280c331c4a084f4d4b3b15240e28361b4d282b33112c254a390d3f1e1c11114913320e090f0c070b052f274d1b0c4c174b0f373039494d092b56173c1a44104c4f0f273b4f07341a11293c314c52331b1129441b31360e2a3c2f392810174b33140928111c0e1948133a4a1211103c4a0c2f18353c52114d3e192e5239380b3f301a1c32252f124e3a5619330f484c562d3c482a1e1615250f18104f524f11112e112e4f390b09292934252f24362a131a2e2829340424480c141e374c18351032443a0e562a3713191e1f1613091652150b151809142d3f100f3e393709390f321b2f15364e4f323e302f0f112439332f114d2b52284f311a194f2e051536480f0805041a1a1b4b28360a17482a3a15341e3f13442f2456351f334b280952154a28142d291e4b0b143c1609042b49451b49040c0f2b2a2435363208043c45364c31480d4a05241c113e391b2945121e12303136110b04324b1c1a303e2534342a4a2e0e1e07490c2e09351013452d3435454b35141c284a3344330d114c1f493b3f15441433333a36520c1f38132b300833363f2b454b34044924123b19180b4f0d39130e1a0a080c4a4f3f3c3f0d44052511382c1f0f4e48141438562d2c1f19110c493b2d094c3a0b18273309244c28162c2b1905353b0b4c3c243852052b2c243e294a103f10254b1f4e2a0738333c142518184f2a18442c08140a143408373f07151f3a181b1f4a0e15482f0a0d451218162d2c130737351229493c3c3c3c3c34323a1a3c11344a2e0e040f353c2f351648042a10074a520a4a442b17143b39054a2b0f174d13322e4d4f2733162d3e143a10253a172f2b3b081f3214494f37313b133e1a0a2d484c18294d0d1f0809374b2f1005092d051e3e3c1214391e242a1131194c122a3a15341e3e0f0c294908280c12303f39493e3445352f1e1f381a0e333e2c4b0905490b04081c144f311e140d35152e3b3a1b3b25293c194c0f4a0b1910184a44243556171304243f444a074c1e11073b324f273833354a4a2a4e240d2c490b1e05142d311c2d070909102d05483117364e39352538342b172c163c141105301a381e1c381b2e2f36151b1a440844342f300b10081f1c380d054d0e0b13154e073031311e4a3b363a391939170a25190e3b0f300f101f110a0c1b0d34113f381427321135053407450c3f12524536392431354c2a4a483c07340e19322e241b3f4d291727520c3136173924314c37172d1a1b2a103633484b0d2e1c3209440c160b4b4d5248374d4b313c4f2e183b3e1f073b440c241627562b303429171b1f120833142c250b1e48310b2a0b0a4936561a3b4f1b1b372d2c1c1c16094c2a56073814252d3248100e043619443a3f3f0824480712184a0e4a4f0a1149370e4e4d3a3b11083c1f181c4a36141c294933111f0d25101b081f520c1a172d0b3e35104b3f250b4f270b13080e494f1f4d0f283e27520c4c13040a361c56040d3938053407450c30372e11050e3f101217284e0b38484d0d0e0c3e5231392c16323c2b4f361e072e0d1a38451b1b1c4a38383228304c5231521c2f3b494e2a292527330e3244392b384f0c073345381108291709193a183a49150c29311a1b31303b52282a2b3a3f320d18132b4d4c173c3b0719341b4b31163831564c1219274a332e4d09082e304c242c4b2f33354c104f302419181c181a041533494928563b10372d3f2d0f4a14180d07172537241f1b09482f07152d313b351811131b4d0d0a521e52372b181e49283a31454e054e2d0c071b19292a4b0f4425052f0b2d19563a4f4d2f491a1b320b04174a381c31160e333e2c49254d3e170a133139352f243037183645144d164536383a2b391b44053c1c1a484e0f30303e3707160933142c0a2b271624242931184e3e4f30092b4d253a05342c1118494d3b34371c09280a330c28490b4d3e17131235074c5209454907103e1004525215072e322c4d29384e0813312b350828300c1f3e34074e08293728312c0b0f39291a1a08122a24124f2e2e04191108142e2a4f314d2e2b04562d2716151014243b092e1625300519271f1c2e1f353f34282d4e0908190d183b2827250d494f19153739240c0a3e300b33303644562f243f1f14072f2c1f2c313f4b2d0417452d3c0e3a0b0b2c303f38490d0f320d382f2c2844134e320c25450e5232453129101e481c0e193e31130f292a3b490b164e4b3f054c4e4f4835452f0d05352e133b142a564e241a4b0c3a31491f523b24562e451f2e182e3e1c4f45395618304c1c443f52190c3932343f451e050e2f342c2a2e183c4a3b441a2825560d3a1f2b36392e4e11180d56290427070b12323c4a291c490c441f39344b4a0e451a4c3227242f1e0f3f354b4b19442410492a1628244c281539354d3f3c1a2c34383e3f3c1a3f0e4f1c2a48101c2a480d1935163c2f102b141e132b151e13163c2e103b08192a3b04182c3f36192a05483c3b2f1219253707273a3b483c3b2f4c272533162425163c2b4f2b161f102b07273a3b483c3b331519352b04273a3b483c3b334c1f102f15182c3f331f4f48162425163c2f13370d273a3b483c384c15182c3c111f2e4511273e4511182c3c0936043c1a34393f2430351a3c31293f2436073f2434393f2431293f4936073f4934393f493c38480b191a3f281c35283c2c252b131925334d3c384417193c3f2924252c3c2c253f043c352711244e2f0b1e1a3f2d244e2f0b24102b043c38480b19102b0924102b043c3b33111e352f111f2a37111e1a3f38272a33111f2a37111e1a3f0d1f4e331b24103b072729124b244f05112425343c292a3b043c3b33111e3c3c112e2912112929121128043c111e3c3f29192a493c2e132b083c35334d2739124b2725151727253f4d1c2a44083c3b441b244e1515254f194c24253716254f3b171e252b0d1e10281a273a2b4d272a334d272a2c1a1e102b17192537071c252711343a11081c252f0d242a050d18103b4d1c2a44083c384c0b1f1a3f08242a493c2e103b083c380d4c1f3c3f0e1f3c3f3f1e35370d1f3c3f3a1e10163c292a3b04244f1a3c2c252b133c3a1108271a3c1131173f30271a3c11293a243c242a050e1f4f3315193a44042d3b2c5632170d151f3a050b244f3b4d272e15071c250d11254e2c1a1f14161a374f4913343a2b49244f2b112735301a1f2a3b491c2a4c4c1f2e3f0719253f0a1f4e374d272a2c1a1e4f114b272c3f4d1e132b113c3b2f4c272c3f10242a0507272c3f36192a48113c3b1911273c3f38272a303c2f102b143c3e2b15343e2b14343e2b16343e2b3432142b3332142b29343e2b273c3b3f2d284d11243c3e2b3432142b3332142b293c38483f291a3f2c292c3f3f292c3f302c4c443f29380a3c29383b322f0a3f372916243c2c0a3c0a302934073339284f33071a483c3830082b2b2f3a31291a3c24253f0a254e24043c3519112411444f301a3f3f2c1633382f2827352e3811362e4d05332916442c282b37292b3b2b2a2b4c15272a103b14244f2f11271019121c2a0d0f1f3a4c081f4e3f051e13334d1925274e1835114b3039380430072c4c33171e49322e0e0b3c3e493c363a484c1f3a0a0d3c3b3f4c1e10281a1910110419352b151f3e3f10192a4817193a110b1f143f17242a050e272a2c153c3b09122f28081e0c564835041a294d3f2c3c3c3c3c3c3c3c3c3f12382c3c3c3f3c3c3c3c3c283c3c3c3c3a3c3c3c3c3f0a3c3c3c3c1a3c3c3c3c373c3c3c3c3e1a3c3c3c3c0e3c3c3c3c303c3c3c3c392c3c3c3c3c493c3c3c3c2d3c3c3c3c383c3c3c3c3f383c3c3c3c343c3c3c3c3c3c3c3c3c363c2f3c3c3c2e3c3c3c3c380a3c3c3c2d17525252524952525252123f383c3c3f2c3c3c3c3c2b3c3c3c3c3c3f3c3c3c3f2c2c3c3c3c383c3c3c3c3c3c3c3c3c321a2f3c3c3c2a3c3c3c3c3b0a3c3c3c2d075252525245525252524b3f383c3c3f1a3c3c3c3c273c3c3c3c303f3c3c3c382c2c3c3c3c303c3c3c3c3c3c3c3c3c343c2e3c3c3c1c3c3c3c3c3a0a3c3c3c3c2c3c3c3c3949525252521a3f343c3c3f0a3c3c3c3c193c3c3c3c442d5252525229525252563c381a3c3c351a3c3c3c3f453c3c3c3f1a383c3c3c393f343c3c3e3c2e3c3c3c4d381a3c3c2e3f343c3c341a2c3c3c3f4d383c3c3c3c3c3c3c3c322c2e3c3c3c1a3c3c3c3c342c3c3c3c3c243c3c3c3c353c3c3c3c341a3c3c3c3e303c3c3c3c363c3c3c3c3e0a3c3c3c3c0a3c3c3c3c163c3c3c3c391a3c3c3c3e283c3c3c3c2c3c3c3c3c371a3c3c3c3c3c3c3c3c3c12382c3c3c370a3c3c3c3e1a3c3c3c3f32284e2c07254c4504322a37151e4f1117254f110b1e4d11172911331b30293b171c3a3b04254e2f04242a114d1e4d11172f282b3b2f2c3c3c3c3f1a523c3c3945383c3c3c2a3f2c3c3c3848291939331b25073405332a37151e4f1117254e334d1e102b151f2a374c271611172911331b30293b171c3a3b04254e2f04242a114d1e4d11172f282b3b2f2c3c3c3c3c390a2d1a3c3c333f383c3c3848291939331b25073405304f37151e4f1117254f110719353711242a4c37244d482925073805244f15151e11444d1e103b0d19353337244d2b3b2f28283c3c352c523c3c3f0a382c3c3c3c3c3c3c3c3c383c3c3c3c12382c3c3c3c522952524d48291939331b25073405304f37151e4f1117254f440719353711242a4c37244d482925073805244f15151e11444d1e103b0d19353337244d2b3b2f28283c3c352c523c3c3e49382c3c3c3c3c3c3c3c3c383c3c3c3c12382c3c3c3c522952520a0a3c3c3c3c3c3c3c3c3c123f383c3c3f343c3c3c3c293c3c3c3c442d5252525229525252561a382c3c3c3b3c3c3c3c3f283c3c3c3c383c3c3c3c3c3c3c3c3c321a2f3c3c3c2a3c3c3c3c3b0a3c3c3c2d075252525245525252524b3f383c3c3f1a3c3c3c3c273c3c3c3c2911334d304c441b3017384d24103b071c2a331b1c2a440719353711242a4c37244d482925073805244f15151e11444d1e103b0d19353337244d2b3b2f28283c1939453c3c3b3c2e3c3c3c393c3c3c3c3c1a3c3c3c363c2f3c3c3c3e3c3c3c3c4b3f383c3c3c34343c3c3f32284e2c07254c450430292b142425330d244c44071935370d1f101914192a2737244d482925073805244f15151e11444d1e103b0d19353337244d2b3b2911331b322a3b0e1f3a441724252f0b1e1611172f282b3b2f2c3c3c3c3f1a523c3c3e1a381a3c3c1c3f383c3c383c3c3c3c3c3c3c3c3c3c363f2c3c3c3e163c3c3c3c0c3c3c3c3c323c3c3c3c2d1752525245123b3c3c3c360a3c3c3c3e0a3c3c3c393c525252520a2d525252041a283c3c3c093c3c3c3c311a3c3c3c2d0a2e3c3c3f1a380a3c3c133f303c3c313c293c3c3938380a3c3c4f3f303c3c341a293c3c3f4d380a3c3c373f303c3c3f3c293c3c3f3c3c3c3c3c3c3c3c3c3c343c2e3c3c3c1c3c3c3c3c3a0a3c3c3c391a3c3c3c3949525252521a3f343c3c3f0a3c3c3c3c193c3c3c3c0a2d5252524539525252563c381a3c3c351a3c3c3c3f453c3c3c3f3c3c3c3c3c3c3c3c3c3c363c2f3c3c3c2e3c3c3c3c380a3c3c3c3039525252523c52525252123f383c3c3f2c3c3c3c3c2b3c3c3c3c323c3c3c3c3c3c3c3c3c3912382c3c3c3b1a3c3c3c3f1e3c3c3c393452525252042d525252561a2f3c3c3c243c3c3c3c3a2c3c3c3c3848291939331b25073405323a37151e4f1117254e334d1e101108274e334d1e102b151f2811172911331b30293b171c3a3b04254e2f04242a114d1e4d11172f282b32284c4548242a050e1f4f3315193a44042e2a333b2f282b3b3c3c3c3c3c3f1a523c3c391a380a3c3c1a3f343c3c3c3c3c3c3c3f243b3c3c3c310a3c3c3c393c3c3c3c3f32284e2c07254c4504323a110b1e4c4414242533112f2c3c3c3c2d3c563c3c3f383b3c3c3c4d252e183c3b18190b2e0c3c1e3b342d52524556370a123c3c3c3f163c3c3c3c4b3c303c3c3f3c133c3c3e1a151a383c2c38342d3c343e2a103c3c3c491b283b3a3c3c3c3c39283c3c3c3f053c3c3c3c1c52525252454a4a5252562e0b5252523c3c3c3c3c3c3c3c3c3c3952525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252523c3c383e3c0a2c3b3f1a1e343e1b525252525252525245363e0a0a33391a452c382f34293b3f282a3b051a273a150e1e352f491b343e38143452525252525252520a1231393c4d3239053c2f381530283b2f24253a3f161c3a050a193515451a342e34175252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520a3c3f3c1a2c353c0a243b3c3c3c3c3c3c3c3c3c3c343c3c303c393c3c393c3f3c3c3c0a3c283c3c303c3a3c3c393c3f0a3c3c0a3c1a3c3c303c373c3c393c3e1a3c3c0a3c0e3c3c303c303c3c393c392c3c3c0a3c493c3c303c2d3c3c393c383c3c3c0a3f383c3c303c2e3c3c393c380a3c3c0a3f2c3c3c303c2b3c3c393c3b1a3c3c0a3f1e3c3c303c243c3c393c3a2c3c3c0a3f123c3c303c1f3c3c393c353c3c3c0a3f4d3c3c303c183c3c393c350a3c3c0a3c3c3c3c31303f3c3c39393c1a3c3c0a0a303c3c3030383c3c39393f2c3c3c0a0a243c3c3030353c3c39393e3c3c3c0a0a163c3c3030363c3c39393e0a3c3c0a0a0a3c3c3030333c3c3929391a3c3c0a0a453c3c30303c3c3c044a3c2c3c300a0a343c393030393c3c07393f3c3c304f0a3c3c3c3c3918381a2e2b3c3c3c3c3c2d525252525252525252525252525252483c2a3c3c3c283c3c3c3c2c04482b2b382409323c3f3f493e4d313c0c2c2a3c383a3c311a09352938331b2c4c2f272838283c3c3c3c3c2938331b29112b332f2b37372c0a3c3c2938331b2b3811332f2c3c3c3c3c3c3c2938331b2c4d443029383b282f2c3c3c2938331b292844322f2b2f3f2811163c2938331b29282b29284d3b352f2b303c2c193c083e4d38273c3c123c3a2f16273c3c3c3c3c3c283c3c3c3c3c3c3c3c373c3c3c3c3c3c0e3c3c3c3c3c3c3c3c3c3c3f163c382c12273a2f16393e1a1e3c3c2c3c373e051a3c3c3c163a3e0a3c3c3e0a3c3a3a2c3c3c3c3f16273a2c3f3f122e4531342c493c3c3c3c3c3c3c3c3c3c3f163c3e1a4d273a2f163c392c3c3c3c1a3c37391a3c3c3c3c163c391a3c3c391a3f3f4f0445313c2c0a3c2c181e0b3e0528293c3c3c3c3c3f303c3c3c3c3c3e2c0a3c3c3c3c3c3c3c0a3c3c3c0a3c2c27280a3e0a382c3c383a15303c0e2b390a3c3c3c3c2c2d3c3c3c3c3c3c162c3c3c3c3c3c3c3c2c3c3c3c2c3c38352d303c0e3f381a3f3f4f073c313515383c3c3c3c3c382c3c3c3c3c3c37381a3c3c3c3c3c3c381a3c3c381a3c3c3a1a3c3c3c3f121c3a1a3f3f161738313915123c3c3c3c1c3a15123c3c3c3c3c3c3c3c373c383539302c0e3f3b3c3f3f070738313b2f1e3c3c3c3c3c3b0a3c3c3c3c3c373b3c3c3c3c3c3c3c3b3c3c3c3b3c3f3f522938313c2f243c2c2416043e04162b3c3c3c3c3c3f283c3c3c3c3c3e2f243c3c3c3c3c3c3f243c3c3f243c3c393c053017304d3329244e3239113f2c1633382f28273c3a1a3f3f0a392c31520a383e3c3c343c3c1a3c3e3c3c343c3c1a3c3e3c3c343c3c1a3c39343c341a3c143c3e343c341a3c1a3c3e3c3c343c3c1a3c3e3c3c343c3c1a3c3e3c3c343c3c1a3c3e3c3c343c3c1a3c3e3c3c343c3c1a3c3e3c3c343c3c2a3c380a3c293c3f303c380a3c293c3f303c380a3c293c3f303c380a3c293c3f303c380a3c293c3f303c344f3c17243e331a344f3c17243e331a344f3c17243e331a344f3c293c3f303c380a3c293c3f303c380a3c293c3e3328344c2c172b3e3328344c2c172b3e302834052c173b3e302834052c173b3e302834052c173b3e302834052c173b3e302834052c173b3e302834052c173b3e302834052c293c3f303c380a3c293c3f303c380a3c172a3e3324344c1a172a3e3324344c1a173a3e302434051a173a3e302434051a173a3e302434051a173a3e302434051a173a3e302434051a173a3e302434051a173a3e3024380a3c293c3f303c380a3c343c2c1e3c493e0a372c351a3f3f4c390a31562c303f3c3c3c3c3c1a3c3c3c3c303c3c3c3c383c3c3c3c3f2c3c3c3c3c243c3c3c3c353c3c3c3c3e3c3c3c3c3c163c3c3c3c363c3c3c3c3e0a3c3c3c3c0a3c3c3c3c333c3c3c3c391a3c3c3c3c453c3c3c3c2c3c3c3c3c382c3c3c3c3f343c3c3c3c293c3c3c3c3b3c3c3c3c3f283c3c3c3c2a3c3c3c3c3b0a3c3c3c3f1a3c3c3c3c273c3c3c3c3a1a3c3c3c3f0e3c3c3c3c1e3c3c3c3c352c3c3c3c3f493c3c3c3c1b3c3c3c3c343c3c3c3c3e383c3c3c3c143c3c3c3c340a3c3c3c3e2c3c3c3c3c113c3c3c3c371a3c3c3c3e1e3c3c3c3c123c3c3c3c362c3c3c3c3e123c3c3c3c0f3c3c3c3c313c3c3c3c3e4d3c3c3c3c083c3c3c3c310a3c3c3c393c3c3c3c3c053c3c3c3c301a3c3c3c39303c3c3c3c4d3c3c3c3c332c3c3c3c39243c3c3c3c4e3c3c3c3c323c3c3c3c39163c3c3c3c4b3c3c3c3c320a3c3c3c390a3c3c3c3c443c3c3c3c2d1a3c3c3c39453c3c3c3f3c3c3c3c3c2c2c3c3c3c38343c3c3c3f393c3c3c3c2f3c3c3c3c38283c3c3c3f3a3c3c3c3c2f0a3c3c3c381a3c3c3c3f373c3c3c3c2e1a3c3c3c380e3c3c3c3f303c3c3c3c292c3c3c3c38493c3c3c3f2d3c3c3c3c283c3c3c3c3b383c3c3c3f2e3c3c3c3c280a3c3c3c3b2c3c3c3c3f2b3c3c3c3c2b1a3c3c3c3b1e3c3c3c3f243c3c3c3c2a2c3c3c3c3b123c3c3c3f1f3c3c3c3c253c3c3c3c3b4d3c3c3c3f183c3c3c3c250a3c3c3c3a3c3c3c3c3f3f3c3c3c3c2c1a3c3c3c38303c3c3c3f383c3c3c3c2f2c3c3c3c38243c3c3c3f353c3c3c3c2e3c3c3c3c38163c3c3c3f363c3c3c3c2e0a3c3c3c380a3c3c3c3f333c3c3c3c291a3c3c3c38453c3c3c3f2c3c3c3c3c282c3c3c3c3b343c3c3c3f293c3c3c3c2b3c3c3c3c3b283c3c3c3f2a3c3c3c3c2b0a3c3c3c3b1a3c3c3c3f273c3c3c3c2a1a3c3c3c350e3c3c3c3f453c3c3c3c1b2c3c3c3c35493c3c3c3f523c38352c053c3c313c103c163c383516043c3c31562c303f3c3c3c3c3c1a3c3c3c3c303c3c3c3c383c3c3c3c3f2c3c3c3c3c243c3c3c3c353c3c3c3c3e3c3c3c3c3c163c3c3c3c363c3c3c3c3e0a3c3c3c3c0a3c3c3c3c333c3c3c3c391a3c3c3c3c453c3c3c3c2c3c3c3c3c382c3c3c3c3f343c3c3c3c293c3c3c3c3b3c3c3c3c3f283c3c3c3c2a3c3c3c3c3b0a3c3c3c3f1a3c3c3c3c273c3c3c3c3a1a3c3c3c3f0e3c3c3c3c1e3c3c3c3c352c3c3c3c3f493c3c3c3c1b3c3c3c3c343c3c3c3c3e383c3c3c3c143c3c3c3c340a3c3c3c3e2c3c3c3c3c113c3c3c3c371a3c3c3c3e1e3c3c3c3c123c3c3c3c362c3c3c3c3e123c3c3c3c0f3c3c3c3c313c3c3c3c3e4d3c3c3c3c083c3c3c3c310a3c3c3c393c3c3c3c3c053c3c3c3c301a3c3c3c39303c3c3c3c4d3c3c3c3c332c3c3c3c39243c3c3c3c4e3c3c3c3c323c3c3c3c39163c3c3c3c4b3c3c3c3c320a3c3c3c390a3c3c3c3c443c3c3c3c2d1a3c3c3c39453c3c3c3f3c3c3c3c3c242c3c3c3c3a343c3c3c3f173c3c3c3c273c3c3c3c3a283c3c3c3f103c3c3c3c270a3c3c3c3a1a3c3c3c3f0d3c3c3c3c1c1a3c3c3c3a0e3c3c3c3f0e3c3c3c3c1f2c3c3c3c3a493c3c3c3f0b3c3c3c3c1e3c3c3c3c35383c3c3c3f043c3c3c3c1e0a3c3c3c352c3c3c3c3f4c3c3c3c3c191a3c3c3c351e3c3c3c3f493c3c3c3c182c3c3c3c35123c3c3c3f1f3c3c3c3c253c3c3c3c3b4d3c3c3c3f183c3c3c3c250a3c3c3c3a3c3c3c3c3f153c3c3c3c241a3c3c3c3a303c3c3c3f163c3c3c3c272c3c3c3c3a243c3c3c3f133c3c3c3c1c3c3c3c3c3a163c3c3c3f0c3c3c3c3c1c0a3c3c3c3a0a3c3c3c3f093c3c3c3c1f1a3c3c3c3a453c3c3c3f0a3c3c3c3c1e2c3c3c3c35343c3c3c3f073c3c3c3c193c3c3c3c35283c3c3c3f4f3c3c3c3c190a3c3c3c351a3c3c3c3f483c3c3c3c181a3c3c3c350e3c3c3c3f453c3c3c3c1b2c3c3c3c35493c3c3c3f523c38351a4d3c3c310a2c380a302934073339284f33071a48242a3717273a2b102c2837392f382b3a183b1a0f31253f2c1c281108291a3c113c3c3c3c3c3c3c111e3c3c3c3c3c3c112e2912112929121128043c111e3e2b3432142b333c3c3c3c372c3c3c3c3a4d3c3c3c3c0b3c3c3c3c372c3c3c3c3a2c3c3c3c3c0b3c3c3c3c372c3c3c3c35163c3c3c3c113c3c3c3c2a2c3c3c3c3e4d3c3c3c3c113c3c3c3c1f2c3c3c3c3e4d3c3c3c3c113c3c3c3c273c3c3c3c3e283c3c3c3f373c3c3c3c321a3c3c3c3e283c3c3c3f333c3c3c3c321a3c3c3c3e283c3c3c3f293c3c3c3c343c3c3c3c3e283c3c3c3f0a3c3c3c3c3c3c3c3c3c3e283c3c3c3f343c3c3c3c321a3c3c3c3e283c3c3c3f333c383a0a4d1a3c314f2c30113c3c3c3c2e3c3c3c3c39123c3c3c3c113c3c3c3c292c3c3c3c39123c3c3c3c113c3c3c3c280a3c3c3c3c3c3c3c3c3e4d312c3c3c2f0a3c3c3c381a3c3c3c3f373c3c3c3c3c3c3c3c3c3f2c083c3c3f363c3c3c3c2e0a3c3c3c38163c3c3c3f303c3c3c3c292c3c3c3c38493c3c3c3f2d3c3c3c3c283c3c3c3c3b383c3c3c3f2e3c3c3c3c280a3c3c3c3c3c3c3c3c3f45312c3c3c2b3c3c3c3c3b283c3c3c3f373c3c3c3c2b1a3c3c3c3b1e3c3c3c3f243c3c3c3c2a2c3c3c3c3b123c3c3c3f1f3c3c3c3c253c3c3c3c3c3c3c3c3c3f30311a3c3c252c3c3c3c3b493c3c3c3f373c3c3c3c250a3c3c3c3a3c3c3c3c3f153c3c3c3c241a3c3c3c3a303c3c3c3c3c3c3c3c3c1e3e493c3c3a2c3c3c3c3f113c3c3c3c2e2c3c3c3c3a243c3c3c3f133c3c3c3c1c3c3c3c3c3a163c3c3c3f0c3c3c3c3c193c3c3c3c35343c3c3c3f4c3c3c3c3c272c3c3c3c3c3c3c3c3c3f103c3c3c3c242c3c3c3c3a0a3c3c3c3f073c3c3c3c272c3c3c3c3c3c3c3c3c3c113c3c3c3c1f2c3c3c3c3e453c3c3c3c113c3c3c3c273c3c3c3c3e453c3c3c3c113c3c3c3c182c3c3c3c3c3c3c3c3c3c113c3c3c3c2e3c3c3c3c39123c3c3c3c113c3c3c3c292c3c3c3c39123c3c3c3c113c3c3c3c280a3c3c3c3c3c3c3c3c3c113c3c3c3c242c3c3c3c3e3c3c3c3c3c113c3c3c3c241a3c3c3c3e3c3c3c3c3c113c3c3c3c273c3c3c3c3e3c3c3c3c3c113c3c3c3c2e3c3c3c3c39123c3c3c3c113c3c3c3c292c3c3c3c39123c3c3c3c113c3c3c3c280a3c3c3c3e3c3c3c3c3c113c3c3c3c2a2c3c3c3c3c3c3c3c3c3c113c3c3c3c2e2c3c3c3c39123c3c3c3c113c3c3c3c292c3c3c3c39123c3c3c3c113c3c3c3c280a3c3c3c3e3c3c3c3c3c113c3c3c3c1e3c3f3f1133243c3e4824372d3e0e3c3c3a0e3c3c3c3f0e3c3c3c3c2e2c3c3c3c3848291939331b2507344f1f3a4417242a0511332a2715244f2b4d2f2c3c3c3c3f1a523c3c3c16360a3c3c1a39493c3c3c3c3c3c3c3e45360a3c3c1c0a3c3c3c3a4d3c3c3c3f373c3c3c3c1f1a3c3c3c3a453c3c3c3f0a3c3c3c3c1e2c3c3c3c35343c3c3c3f073c3c3c3c193c3c3c3c35283c3c3c3f4f3c3c3c3c190a3c3c3c351a3c3c3c3f483c3c3c3c2911334d304c441b30172b171935110a2728114e2f28283c2911334d304c441b3017380a244e2f481e3a2b1b24103b072728283c3c2d3c563c3c3e18360a3c3c1939453c3c340a0f3c3c3c3c3c3c3c3c3c1a3c3c3c390a0f3c3c3c3e3c3c3c3c093e0e3c3c3c343c3c3c3c3c3c3c3c3c283e0a3c3c3a0e3c3c3c3f4b3c3c3c3c2e2c3c3c3c350e3c3c3c3f453c3c3c3c1b2c3c3c3c35493c3c3c3f523c3c3c3c1a3c3c3c3c34383c3c3c3f32284e2c07254c4504334f330b273a2b1719132f37244f3005302b441b1f2a3707193a3b4d272b444d2f28283c2911334d304c441b30173804244f4416272a334f193b4414242533112f2c3c3c3c3c390a2d1a3c3c31140a3c3c352c523c3c3c30313c3c3c3c3c3c3c3c3c343c3c3c3c45360a3c3c3c1a3c3c3c381a0e3c3c3c3e3c3c3c3c3c3c3c3c3c302c0e3c3c3f0f3c3c3c3c1a1a3c3c3c38163c3c3c3e393c3c3c3c153c3c3c3c34283c3c3c3e3a3c3c3c3c150a3c3c3c341a3c3c3c3e373c3c3c3c2911334d304c441b301719171f4f2f11244e274d2e282f0724073805254c44092413334d24252f11254e2f3b2f2c3c3c1939453c3c363c0e3c3c3c3c3c3c3c3c3c1a3c3c3c390a0f3c3c3c3e3c3c3c3c2e3e0a3c3c3c343c3c3c3c3c3c3c3c3c323e4d3c3c3a0e3c3c3c3e363c3c3c3c2e2c3c3c3c340e3c3c3c3e303c3c3c3c172c3c3c3c34493c3c3c3e2d3c3c3c3c163c3c3c3c37383c3c3c3f32284e2c07254c4504334f330b273a2b1719132f372f3a111730293b1b254f4c141e4e2f15193a2b1b19382b3b3c3c3f4d2d0a3c3c3b3e4d3c3c3c3c3c3c3c3c3e3c3c3c3c2d3e0e3c3c3c343c3c3c3f34313c3c3c3c1a3c3c3c3848291939331b2507344e244f4416272a334f1938114e24073805254c44092413334d24252f11254e2f3b2f2c3c3c3c352c523c3c3f24312c3c3c3c3c3c3c3c3c343c3c3c3c45360a3c3c3c1a3c3c3c381a0e3c3c3c3e3c3c3c3c2911334d304c441b3017270e1f4f33151f3a284c254c440d1f253f3b3c3c3c3c3a39453c3c370a093c3c3c45360a3c3c2911334d304c441b301719171f4f050e24252f112e2a333b2f2c3c242d0a3c3c0a3e4d3c3c390a0f3c3c3f32284e2c07254c4504334f330b1f3a0515193a2b37194d2b3b3c3f1a523c3c391a312c3c3c2d3e0e3c3c3848291939331b2507344c244e2f481e3a2b37244d2b3b3c3c3c3c1939453c3c3c3c083c3c3c3c3c3c3c3c3c1a3c3c3c390a0f3c3c3c3e3c3c3c3c093e0e3c3c3c343c3c3c3f32284e2c07254c4504323a484c1f253f4c1f10334d2e2a333b2f2c3c3c3c3c3c242d0a3c3c333e493c3c390a0f3c3c3f32284e2c07254c4504323a484c1f253f4c1f10334d2e25193b2f2c3c3c3c3c3c242d0a3c3c2a3e493c3c390a0f3c3c3c3c3c3c3c3c4c3e4d3c3c37343c3c3c3e293c3c3c3c2e2c3c3c3c372c3c3c3c3e2b3c3c3c3c111a3c3c3c3c3c3c3c3c394d312c3c3c110a3c3c3c371a3c3c3c3f373c3c3c3c102c3c3c3c37123c3c3c3e1f3c3c3c3c3c3c3c3c3c373c0b3c3c3f0f3c3c3c3c133c3c3c3c38163c3c3c3e193c3c3c3c131a3c3c3c37453c3c3c3e1a3c3c3c3c122c3c3c3c36343c3c3c3e173c3c3c3c0d3c3c3c3c36283c3c3c3e103c3c3c3c0d0a3c3c3c3848291939331b2507344e1f132b09254f1911193811172911331b3029110d1e4e2f04272a3b0924132b10254f114d27253715193a44042e2a3332284c4505302a33122425371b193537151c252f072e2a333b2f282b3b2f28283c2911334d304c441b3017111b254f484c1f2b441327252f37244d2b3b3c3848291939331b25073405333b441b1f132b09254f1911193b4414242533112f2c3c3c4539493c3c3b240b3c3c3f4d2d0a3c3c2c3e453c3c3c3c3c3c3c3c3f3c3c3c3c1e3e453c3c3c3c3c3c3c3f4d2d0a3c3c523e493c3c3c3c3c3c3c3c3e3c3c3c3c2d3e0e3c3c3c343c3c3c3f49310a3f3f0933453c3e45123f27393c3c3c3a0e3c3c3c3e123c3c3c3c2e2c3c3c3c36163c3c3c3e0c3c3c3c3c0c0a3c3c3c360a3c3c3c3e093c3c3c3c0f1a3c3c3c36453c3c3c3e0a3c3c3c3c0e2c3c3c3c31343c3c3c3e073c3c3c3c2911334d304c441b30171908192a4c1b274f2b4d2e251932284c4505322a110719353711242a4c14192a271b1c252f111e103b4d1f4e3737194d482925073805244f15151e11444d1e103b0d19353337194d2b3b2f282b3b2f2c3f32284e2c07254c4504322b441b1f132b09254f19111938114e2f28283c3c3c3f4d2d0a3c3c33393c3c3c3c3c3c3c3c3c3f3c3c3c3c1e3e453c3c3c3c3c3c3c3f4d2d0a3c3c453e453c3c3c3c3c3c3c3c3e3c3c3c3c2d3e0e3c3c3c343c3c3c3f30303c3f3f1432383c3e44493f2939383c3c3a0e3c3c3c3e4d3c3c3c3c2e2c3c3c3c31283c3c3c3e4f3c3c3c3c090a3c3c3c311a3c3c3c3e483c3c3c3c081a3c3c3c310e3c3c3c3e453c3c3c3c2911334d304c441b30171908192a4c1b1e352b4d2e2a3332284c4505322a440719353711242a4c14192a271b1c252f111e103b4d1f4e3737244d482925073805244f15151e11444d1e103b0d19353337244d2b3b2f282b3b2f2c3f32284e2c07254c4504322b441b1f132b09254e3f4c193811172f28283c2911334d304c441b3017384d254c4408192a4c1b1e352b4d254f37151e4f2b3b3c3c390a2d1a3c3c3817383c3c352c523c3c3945303c3c3c3c3c3c3c3c3c383c3c3c3c0e302c3c3c3c3c3c3c3c352c523c3c3e49303c3c3c3c3c3c3c3c3c343c3c3c3c45360a3c3c3c1a3c3c3c392c053c38350a491a3c310b1a3828301a3c3c1c0a3c3c3c314d3c3c3c3f373c3c3c3c0b1a3c3c3c31453c3c3c393c3c3c3c3c0a2c3c3c3c30343c3c3c39393c3c3c3c053c3c3c3c30283c3c3c3f32284e2c07254c4504334f484c1f2b440a19252f37194d4829250738481f4e334d1e102b151f2a374c2711440d193a2b0424252f0b1e16114e2911331b30293b171c3a3b04254e2f04242a114d1e4d114e2f282b3b2f282b3b3c3848291939331b25073448254c4408192a4c1b1e352b4d2e25193b2f2c3c3c3c352c523c3c3916302c3c3c3c3c3c3c3c3c383c3c3c3c0e302c3c3c3c3c3c3c3c352c523c3c3e1a302c3c3c3c3c3c3c3c3c343c3c3c3c45360a3c3c3c1a3c3c3c2d0a053c383a49483c3c31101a0e28300a3c3c051a3c3c3c301e3c3c3c3f373c3c3c3c043c3c3c3c30163c3c3c39363c3c3c3c040a3c3c3c300a3c3c3c39333c3c3c3c071a3c3c3c2d175252524528300a3c3c070a3c3c3c333c3c3c3c392f3c3c3c3c4d1a3c3c3c33303c3c3c39283c3c3c3c4c2c3c3c3c3848291939331b25073449193a1109272b441327252f37244d4829250738481c25334d1e102b151f2a374c2711440d193a2b0424252f0b1e1611172911331b30293b171c3a3b04254e2f04242a114d1e4d11172f282b3b2f282b3b3c3848291939331b25073448193a1109272b4414242533112f2c390a2d1a3c3c0729343c3c3848291939331b25073404303b441b193a1109272b441327252f1b244c4407193a4404242a19112e2a333b2f2c3c3c3c2d3c563c3c3912301a3c3c1939453c3c341a043c3c3c3c3c3c3c3c3c0a3c3c3c390a0f3c3c3c3e3c3c3c3c4939343c3c3c343c3c3c3c30300a3c3c3c3c1a3c3c3c3c3c3c3c3c3c333c3c3c4c1a3c3c3c331e3c3c3c3f373c3c3c3c4f3c3c3c3c33163c3c3c391c3c3c3c3c4f0a3c3c3c330a3c3c3c39193c3c3c3c4e1a3c3c3c2d17525252453c333c3c3c4e0a3c3c3c323c3c3c3c39153c3c3c3c491a3c3c3c32303c3c3c39163c3c3c3c482c3c3c3c3848291939331b25073449193a1109272b441327252f37194d4829250738481c25334d1e102b151f2a374c2711440d193a2b0424252f0b1e16114e2911331b30293b171c3a3b04254e2f04242a114d1e4d114e2f282b3b2f282b3b3c3848291939331b25073404303b441b193a1109272b441327252f1b244c4407193a4404242a19112e25193b2f2c3c3c4539493c3c3328073c3c3f4d2d0a3c3c1639303c3c3c3c3c3c3c3c393c3c3c3c2d3e0e3c3c3c343c3c3c391a301a3c3c3c1a3c3c3c2d1a073c3c3c3c3e3c3c3c3c3c3c3c3c362c4d3c3c39103c3c3c3c480a3c3c3c38163c3c3c39123c3c3c3c2911334d304c441b3017154d1c2a4c11254e3f4c193811172911331b3029110b1e4e2f04272a3b0924132b10254f114d27253715193a44042e2a3332284c4505302a33122425371b193537151c252f072e2a333b2f282b3b2f28283c2911334d304c441b3017380a254c444d1c2a4c11254e3f4c1938283c3c3c390a2d1a3c3c15292c3c3c352c523c3c3f3c333c3c3c3c3c3c3c3c3c343c3c3c3c45360a3c3c3c1a3c3c3c370a4d3c3c3c3c3e3c3c3c3c3c3c3c3c3e2c4c3c3c390d3c3c3c3c4b1a3c3c3c38163c3c3c390f3c3c3c3c2911334d304c441b3017154d1c2a4c11254e3f4c1938114e2911331b3029110b1e4e2f04272a3b0924132b10254f114d27253715193a44042e251932284c4505302a33122425371b193537151c252f072e25193b2f282b3b2f28283c3c3c3c3c1939453c3c330a4d3c3c3c3c3c3c3c3c3c1a3c3c3c390a0f3c3c3c3e3c3c3c3c13392c3c3c3c3c343c3c3c3c3c3c3c3c0839283c3c3a0e3c3c3c390e3c3c3c3c2e2c3c3c3c324d3c3c3c39083c3c3c3c4a0a3c3c3c2d3c3c3c3c39053c3c3c3c451a3c3c3c2d303c3c3c394d3c3c3c3c442c3c3c3c3848291939331b25073405303a4c0b1f102b481e352b08244e2f37244d051430382b3b2f2c3f32284e2c07254c450430293f091f4f4811182b4414242533112f2c3c3c3c3c390a2d1a3c3c1039283c3c352c523c3c3f45332c3c3c3c3c3c3c3c3c343c3c3c3c45360a3c3c3c1a3c3c3c313c4c3c3c3c3e3c3c3c3c3c3c3c3c3c3e0a4f3c3c3f0f3c3c3c3c441a3c3c3c38163c3c3c394e3c3c3c3c563c3c3c3c2d163c3c3c394b3c3c3c3c560a3c3c3c2d0a3c3c3c39443c3c3c3c521a3c3c3c2d453c3c3c3f32284e2c07254c450430293f091f4f481118253f4c1f10334d2e2a333024173b3b2f28283c1939453c3c3f3c4f3c3c3c3c3c3c3c3c3c1a3c3c3c390a0f3c3c3c3e3c3c3c3c0e39283c3c3c343c3c3c3c3c3c3c3c3c1239243c3c3a0e3c3c3c3c3c3c2c3c3c2e2c3c3c3c3c383f3c3c3c3e3c2c3c3c3c0a383c3c3c2c3f3c3c3c3b3c2c3c3c3f1a383c3c3c1e3f3c3c3c343c2c3c3c3e2c383c3c3848291939331b25073405303a4c0b1f102b481e352b08244e2f37194d051430382b3b2f2c3f4d2d0a3c3c1539243c3c3c3c3c3c3c3c3e3c3c3c3c2d3e0e3c3c3c343c3c3c3e0a332c3c3c3c1a3c3c3c3c3c3c3c3c3c28330a3c3c1c0a3c3c3c3c123f3c3c3f373c3c3c3c3e0a383c3c3c0a3f3c3c3c333c2c3c3c391a383c3c3c453f3c3c3c2c3c2c3c3c382c383c3c3f343f3c3c3c293c2c3c3c2911334d304c441b3017380a1f2a44082725110a192a48171938114e293a34052f282b3b3c352c523c3c3949331a3c3c3c3c3c3c3c3c343c3c3c3c45360a3c3c3c1a3c3c3c313c4c3c3c3c3e3c3c3c3c3c3c3c3c3c311a4e3c3c3f0f3c3c3c3c3b3c383c3c38163c3c3c3c2b3c2c3c3c3b1a383c3c3848291939331b250734481f2a44082725111b274f2b4d2e2a3332284c4505322a110719353711242a4c14192a271b1c252f111e103b4d1f4e3737244d482925073805244f15151e11444d1e103b0d19353337244d2b3b2f282b3b2f2c3f32284e2c07254c450430293b1b254f4c0b1f102b48254f1911193811172f28283c3c2d3c563c3c3e2a330a3c3c1939453c3c3b3c4e3c3c3c3c3c3c3c3c3c1a3c3c3c390a0f3c3c3c3e3c3c3c3c0e391e3c2c19070b3c3c081c3c2b0a493c3c3f0f3c3c3c3c3b0a383c3c38163c3c3c3c243c2c3c3c3a2c383c3c3848291939331b250734481f2a44082725111b274f2b4d2e251932284c4505322a110719353711242a4c14192a271b1c252f111e103b4d1f4e3737194d482925073805244f15151e11444d1e103b0d19353337194d2b3b2f282b3b2f2c3f32284e2c07254c450430293b1b254f4c0b1f102b48254f19111938114e2f28283c3c2d3c563c3c3c4b323c3c3c1939453c3c2d2c4e3c3c3c3c3c3c3c3c3c1a3c3c3c390a0f3c3c3c3e3c3c3c3c2b391a3c2c2435053c3c08273c29163c3c3a0e3c3c3c3c1c3c2c3c3c2e2c3c3c3c3f0e3f3c3c3c1e3c2c3c3c2911334d304c441b301711091f4f4811182b440a19252f37244d4829250738481f4e334d1e102b151f2a374c2711440d193a2b0424252f0b1e1611172911331b30293b171c3a3b04254e2f04242a114d1e4d11172f282b3b2f282b3b3c3848291939331b25073405302b441b1f2a44082725111b1e352b4d2e2a333b2f2c3c3c4539493c3c3349493c3c3f4d2d0a3c3c10391a3c3c3c3c3c3c3c3c3e3c3c3c3c2d3e0e3c3c3c343c3c3c3949323c3f3f0d2d343c3e48123f0d39163c3c3a0e3c3c3c3c193c2c3c3c2e2c3c3c3c3f493f3c3c3c1b3c2c3c3c2911334d304c441b301711091f4f4811182b440a19252f37194d4829250738481f4e334d1e102b151f2a374c2711440d193a2b0424252f0b1e16114e2911331b30293b171c3a3b04254e2f04242a114d1e4d114e2f282b3b2f282b3b3c3848291939331b25073405302b441b1f2a44082725111b1e352b4d2e25193b2f2c3c3c4539493c3c3434483c3c3f4d2d0a3c3c2d39163c3c3c3c3c3c3c3c3e3c3c3c3c2d3e0e3c3c3c343c3c3c3e1e322c3f3f042d303c3e4a16343539123c3c3a0e3c3c3c3c1a3c2c3c3c2e2c3c3c3c3e383f3c3c3c143c2c3c3c340a383c3c3848291939331b250734491f2a2b071e4f3b1327253337244d2b3b3c3848291939331b25073405304f4c111e4e3315274f2b07254f37151e4f2b3b3c3c3c3c3c2d3c563c3c3948322c3c3c1939453c3c322c483c3c3c3c3c3c3c3c3c1a3c3c3c390a0f3c3c3c3e3c3c3c3c3b39123c3c3c343c3c3c3c3c3c3c3c3c1939123c3c3a0e3c3c3c3c163c2c3c3c2e2c3c3c3c3e283f3c3c3c103c2c3c3c370a383c3c3848291939331b250734491f2a2b071e4f3b1327253337194d2b3b3c3c3c3c3c352c523c3c3f1e321a3c3c3c3c3c3c3c3c343c3c3c3c45360a3c3c3c1a3c3c3c3f2c4b3c3c3c3e3c3c3c3c280a3c3c3c35283c3c3c3f083c3c3c3c273c3c3c3c3a383c3c3c3f483c3c3c3c3c3c3c3c3c384d3c3c3c3f0b3c3c3c3c1f1a3c3c3c3a2c3c3c3c3f153c3c3c3c182c3c3c3c3c3c3c3c3c3f283c3c3c3c192c3c3c3c3a283c3c3c3f073c3c3c3c273c3c3c3c3a383c3c3c3f483c3c3c3c3c3c3c3c3c3b1e3c3c3c3f113c3c3c3c273c3c3c3c3a493c3c3c3f113c3c3c3c1e0a3c3c3c3a2c3c3c3c3f153c3c3c3c182c3c3c3c3c3c3c3c3c3f283c3c3c3c1c3c3c3c3c35283c3c3c3f043c3c3c3c1e0a3c3c3c3a2c3c3c3c3f153c3c3c3c182c3c3c3c3c3c3c3c3c3f3a3c3c3c3c1e1a3c3c3c3a163c3c3c3f163c3c3c3c242c3c3c3c35163c3c3c3c3c3c3c3c3c280a3c3c3c3a383c3c3c3f4d3c3c3c3c192c3c3c3c35343c3c3c3f163c3c3c3c242c3c3c3c35163c3c3c3c3c3c3c3c3c280a3c3c3c35283c3c3c3f083c3c3c3c3c3c3c3c3c384d3c3c3c3f0b3c3c3c3c1f1a3c3c3c3c3c3c3c3c3f283c3c3c3c192c3c3c3c3a283c3c3c3c3c3c3c3c3c2b0a3c3c3c3a283c3c3c3f163c3c3c3c3c3c3c3c3c3b2c3c3c3c3f123c3c3c3c192c3c3c3c3c3c3c3c3c3f3a3c3c3c3c1e1a3c3c3c3a163c3c3c3c3c3c3c3c3c280a3c3c3c3a383c3c3c3f4d3c3c3c3c3c3c3c3c3c38123c3c3c3f153c3c3c3c1f1a3c3c3c35283c3c3c3f153c3c3c3c1e1a3c3c3c35163c3c3c3c3c3c3c3c3c2f1a3c3c3c3a283c3c3c3f143c3c3c3c1e1a3c3c3c35283c3c3c3f153c3c3c3c1e1a3c3c3c35163c3c3c3c3c3c3c3c3c292c3c3c3c3a383c3c3c3f043c3c3c3c240a3c3c3c3a1a3c3c3c3c3c3c3c3c3c2c2c3c3c3c353c3c3c3c3f043c3c3c3c1c2c3c3c3c3a0a3c3c3c3c3c3c3c3c3c292c3c3c3c3a383c3c3c3f483c3c3c3c3c3c3c3c3c38123c3c3c3f4c3c3c3c3c1f1a3c3c3c3a283c3c3c3c3c3c3c3c3c2e1a3c3c3c35283c3c3c3f0e3c3c3c3c182c3c3c3c3c3c3c3c3c3f3f3c3c3c3c192c3c3c3c3a1e3c3c3c3f4c3c3c3c3c1e0a3c3c3c352c3c3c3c3c3c3c3c3c3c280a3c3c3c3a283c3c3c3f0a3c3c3c3c193c3c3c3c3a283c3c3c3f093c3c3c3c241a3c3c3c3a283c3c3c3f043c3c3c3c3c3c3c3c3c38453c3c3c3f173c3c3c3c193c3c3c3c3a453c3c3c3f143c3c3c3c272c3c3c3c35343c3c3c3c3c3c3c3c3c291a3c3c3c3a453c3c3c3f4f3c3c3c3c272c3c3c3c3a4d3c3c3c3f143c3c3c3c272c3c3c3c35343c3c3c3c3c3c3c3c3c2f3c3c3c3c3a283c3c3c3f173c3c3c3c272c3c3c3c3a4d3c3c3c3f143c3c3c3c272c3c3c3c35343c3c3c3c3c3c3c3c3c2e1a3c3c3c3a383c3c3c3f083c3c3c3c3c3c3c3c3c38243c3c3c3f113c3c3c3c241a3c3c3c3c3c3c3c3c3f333c3c3c3c242c3c3c3c35343c3c3c3c3c3c3c3c3c2c2c3c3c3c353c3c3c3c3f043c3c3c3c3c3c3c3c3c38123c3c3c3f4c3c3c3c3c1f1a3c3c3c3c3c3c3c3c3f363c3c3c3c192c3c3c3c3a0a3c3c3c3c3c3c3c3c3c2c2c3c3c3c35283c3c3c3f133c3c3c3c3c3c3c3c3c3b303c3c3c3f113c3c3c3c1e3c3c3c3c3c3c3c3c3c3f2d3c3c3c3c240a3c3c3c352c3c3c3c3c3c3c3c3c3c291a3c3c3c3a453c3c3c3f4f3c3c3c3c3c3c3c3c3c382c3c3c3c3f113c3c3c3c240a3c3c3c3c3c3c3c3c3f3f3c3c3c3c292c3c3c3c3c3c3c3c3c3f2c3c3c3c3c292c3f3f172d0a3c3e5634383939303c3c30453c3c3c392c3c3c3c3c4d2c3c3c3c33343c3c3c39293c3c3c3c4c3c3c3c3c33283c3c3c3c3c3c3c3c3c5639303c3c33453c3c3c391a3c3c3c3c492c3c3c3c32343c3c3c39173c3c3c3c483c3c3c3c32283c3c3c3c3c3c3c3c3c1a39493c3c3e1a3f3c3c3c0d3c2c3c3c361a383c3c3848291939331b25073405333b441b1e4f15151e102b16254f330b192a484d2f2c3c3c3c3c390a2d1a3c3c2739493c3c384905303b441b244e1549242a370d191738053311441b1e4f150d1f2b444d18253f11254f11082710443b3c3c3c3c3c3f1a523c3c3e342d1a3c3c1c383c3c3c384905303b441b244e1549242a370d19173805334c441b244f05151e4e331b1935110a272b440d1f10270b2f2c3c3c3c3f1a523c3c3e492d1a3c3c0f39493c3c3c3c3c3c3c391e2d1a3c3c360a383c3c3e0a3f3c3c3c093c2c3c3c311a383c3c3e453f3c3c3c0a3c2c3c3c302c383c3c39343f3c3c3c3c3c3c3c3c2439453c3c3e0e3f3c3c3c073c2c3c3c312c383c3c3e493f3c3c3c0b3c2c3c3c333c383c3c39283f3c3c3c4f3c2c3c3c2917380a254c4417183515152410114f3029340a254c44071c2b44171f3a3b071e4c444d18253f11254f11082710443b3c3c3c3c3c3f1a523c3c3c492d0a3c3c4e39493c3c3c3c3c3c3c3e452d0a3c3c360a383c3c391e3f3c3c3c093c2c3c3c311a383c3c3e453f3c3c3c493c2c3c3c322c383c3c39123f3c3c3f3230293f1b254f3349183a3b141c25240530173b1b254e27091c2b44171f3a3b071e4c444d18253f11254f11082710443b3c3c3c3c3a39453c3c372c523c3c391e2d1a3c3c3c3c3c3c3c320a523c3c3c4a3c2c3c3c2d3c383c3c394d3f3c3c3f2919391111183a33111e352f0d1f4f493c3c3c3c3c4539493c3c330a523c3c3c3c3c3c3c3c3a383c3c3c3c303c3c3c3c563c2c3c3c2d0a383c3c3b334d30293b0e1f4f190d244c44111e13370b1e1a3c242d0a3c3c3e383c3c3c320a523c3c3c3c3c3c3c3c29383c3c3c3c303c3c3c3f3c3c2c3c3c2d0a383c3c3b334d3029370e272a4813193a151b272537041f4e343c3c3c3c3c3a39453c3c39153c3c3c3c242c3c3c3c284e2c481935110a272b440d1f10270b3c3c3c3c3c2d3c563c3c3f242c3c3f3f45343c3f3e0a361a1c0a40400718050d120f090e0f14130e091c1309141c09182a1c0e10061c0e0e141a130e53520915140e530d0f121a0f1c100811121e1c0914121304150f181b071413191805321b051f11121f47060e081f0e090f0626425e2053570b111c0e093413191805321b015204120d1813033a38290b1c0f0f1c041f081b1b180f0c0f180e0d12130e1829040d18040e181319080f180e0d12130e18050d0f1413090311121a041f141319080d0f141309380f0f040a1c0f13091c0f1a08101813090e0b0915140e2d0f121a0f1c10040c0814090a0a1c0e103f14131c0f040d1312380514092f08130914101806121f17181e0909081319181b141318191f13125d131c09140b185d0a1c0e105d0e080d0d120f095d191809181e0918190408091b45080e081f1c0f0f1c040619181e1219180c1b0f12103e151c0f3e121918030e18090535383c2d450635383c2d4c4b0635383c2d4e4f0635383c2d28450735383c2d284c4b0735383c2d284e4f0735383c2d3b4e4f0735383c2d3b4b490e34333429343c3122303830322f240712133c1f120f09083c1f120f0918195501542b535d3f081411195d0a1409155d500e5d3c2e2e382f293432332e404c5d1b120f5d10120f185d14131b12530c2f081309141018380f0f120f25191c091c471c0d0d11141e1c0914121352121e091809500e090f181c10461f1c0e184b49512f1f1209155d1c0e04131e5d1c13195d0e04131e5d1b18091e1514131a5d121b5d0915185d0a1c0e105d1b1c14111819050e15141b09041b08131e061308101f180f031c0f1a0618051e2d090f030d090f080e18092209040d18081a18092209040d180e0e18092219180e090f081e09120f0e1a18092219180e090f081e09120f0c0e1809220f181b1e120813090a0e1809221e1c081a15090a1a1809221e1c081a15090c0e1809220f1809150f120a130c1a1809220f1809150f120a130414131409071c1919220f181b0b0f1811181c0e18220f181b041a0f120a0a1f0409183118131a0915061f081b1b180f0f0d0f1811121c19181934101c1a180e0f0d0f1811121c1918193c081914120e071c0a530a1c0e100a11121e1c09183b141118070e090f14131a0e080a181f22080e180f04282e382f0731323a333c3038042d3c2935032d2a390e5215121018520a181f22080e180f043532303809111c131a081c1a180e013e01500122065328293b504504313c333a040d080e150140071a1809291410180b1a18093b08111124181c0f081a18093012130915071a1809391c0918070e1809391c0918080e180930121309150b0e18093b08111124181c0f0115011a011c0a1e120d042a1409151413011b0a4f4c494a49454e4b4945034d534f0310141303101c050118071b120f381c1e15011e0119060910220e181e06091022101413070910221512080f0709102210191c04060910221012130709102204181c0f070910220a191c040709102204191c0408091022140e190e09090910221a1009121b1b070910220712131814581c5d581f5d58195d583547583047582e5d582402581e08581052581952580402583908582450581050581902583b02581f0258150b583447583047582e5d580d02580f05583547583002582f08583547583047582e0258290258050258250358381e02583e0358383e0358380503583825025804035838040258240358382402581903583219025818035832180258350358323502583403583234025810035832100258300358323002582e0358322e025808035832080258280358322802582b0358322b02580a0358320a02582a0358322a03583204062e0813191c0406301213191c04072908180e191c04092a181913180e191c04082915080f0e191c04063b0f14191c04082e1c09080f191c0407371c13081c0f04083b181f0f081c0f0405301c0f1e15053c0d0f141103301c0404370813180437081104063c081a080e09092e180d0918101f180f07321e09121f180f0833120b18101f180f0839181e18101f180f0809122e090f14131a014d061a1809391c04090e081f0e090f14131a02581c02583c02583f015d02581a02583a0258170177025813023c30022d3002580d0174025809041e181411024d4c024d4d02484e031c1f0e0156044d4d4d4d050e11141e1802580702582701580258580814131e110819180e011f031c0e100114010901170708130e15141b09161012131409120f2f081339180d18131918131e14180e070f180e12110b180b0e1c101850120f141a14130b1e0f1819181309141c110e021216241b1c141118195d09125d11121c195d0a1c0e105d1f14131c0f045d1b1411185d1c095d5a015a051e1c091e15271b1c141118195d09125d1c0e04131e150f121312080e11045d0d0f180d1c0f185d0a1c0e10475d333012190811185314130e091c1309141c09182a1c0e105d1e1c11111f1c1e165d1b1c141118195d0a1409155d180f0f120f475d1f0a1c0e105d0e090f181c1014131a5d1e12100d1411185d1b1c14111819475d291b1c111114131a5d1f1c1e165d09125d3c0f0f1c043f081b1b180f5d14130e091c1309141c09141213122222220a1c0e10221e1c1111221e09120f0e051c0d0d110401160722101c1111121e011105221b0f181801100822120d18133f12050113092219180e1e0f040d0901120f2219180e1e0f040d0936190e361804010d0b2219181e0f040d09361804010c0c2219180e1e0f040d093e3f3e010f08220f1811181c0e18010e07220e18092f1c0a0108090e091c1e162e1c0b18010b0c0e091c1e162f180e09120f18010a0a0e091c1e163c1111121e091e1c111118192f08131412132f08130914101834131409141c1114071819070d120e092f0813060d0f182f0813090e18092e091c09080e0a2f08131314131a535353121413093c0f0f1c043b0f12102e090f14131a060e090f14131a051c0f0f1c04071f121211181c13051e1e1c11110c28293b4529122e090f14131a0c1c1111121e1c091828293b45030f0813070d0f1834131409030d120d050f181c19040d0a1409152f180e12110b180f0e060f1817181e09070d0f1210140e1803161804050b1c110818083e38333e223638240735312e22363824061012190811180b19180e1e0f040d09361804041c09121f0819180e1e0f040d090e19180e1e0f040d0936190e3618040b19180e1e0f040d093e3f3e060e18092f1c0a0719180e090f1204051014053413051e111213180b1e12130e090f081e09120f061e0f181c09180a1f040918321b1b0e1809050a120f190e080e141a3f0409180e090e090f14131a141b04061e12131e1c09051e111c100d0a494f4449444b4a4f4448041e1c1111060f1c131912100a494f4449444b4a4f444b034d53480417121413050d1c0f0e1814301c111b120f1018195d28293b50455d191c091c0e221014133f081b1b180f2e140718050f180e18090522191c091c0b2213391c091c3f0409180e07221c0d0d18131908220d0f121e180e0e091f11121e162e1407180f2219122d0f121e180e0e3f11121e16060e0d11141e18031e1b1a082219122f180e180906080d191c0918081b14131c111407180b2219123b14131c111407180d221e0f181c09183518110d180f11221e0f181c091835101c1e3518110d180f0722151c0e15180f0522123618040522143618040422101c0d044d534a48061e151c0f3c090b220f180b180f0e18301c0d413c3f3e39383b3a35343736313033322d2c2f2e29282b2a2524271c1f1e19181b1a15141716111013120d0c0f0e09080b0a0504074d4c4f4e49484b4a4544565240030e14130a494d4f4e4f4e4e494c4a0a4f484b4f4e454e4c4d4f0522151c0e150a494f4a454f48484e4b4d051b1112120f071618042e14071806151c0e15180f0a1409180f1c091412130e071e12100d0809180a22051b120f10301219180422161804070d0f121e180e0e0f1e0f181c091838131e0f040d09120f0f2238333e22253b322f3022303239380f1e0f181c091839181e0f040d09120f0f2239383e22253b322f3022303239380718131e0f040d090719181e0f040d0906140b2e14071807221e140d15180f0322140b0938131e0f040d09120f0939181e0f040d09120f0a220d0f180b3f11121e160c0d0f121e180e0e3f11121e160c18131e0f040d093f11121e160c19181e0f040d093f11121e16030d1c190508130d1c190410121918070d1c191914131a02140b0522101219180922221e0f181c09120f091b120f101c0909180f0a1e140d15180f09180509040e1c1109091c111a120f14091510061b120f101c0906220d1c0f0e18071805181e0809180316191b0822132f120813190e0e221618042d0f14120f2f180e18090c221618042e1e1518190811180f2214130b3618042e1e1518190811180d2219123e0f040d093f11121e16050e0d11140901470718131e391c091c090d0f12091209040d1807140e3c0f0f1c04060f1819081e1801231426535756422359060055540126212021522121200321595b2f09122e090f14131a01551b08131e09141213545357425542402121215554015d1b120f5d535642554240212121205405594c53574201590409180e0906140e2b14180a060e081f091118051c180e342b073c382e503e3f3e04131c1018081a180928141309450918050d1c13193618040914100d120f09361804030f1c0a0a11121a38131c1f111819110e121b090a1c0f1839181e0f040d09180f0d0f18101c141319180f391c091c091e080f0f181309342b0d1e080f0f1813092f180e081109091c0a301c131c1a180f0b0a1c0e102d0f1210140e18120f1810120b182d363e2e4a2d1c191914131a061e12131b141a061e0f040d09120c0a181f1614092e081f0911181118131c1f11182e121b090a1c0f183c382e06140e2e04131e051b11080e15110d0f140b1c091836180439181e0f040d0904101c0f16040a0f1c0d0413180509040d0f180b03181319024c5002094d100a181f3e0f040d091239181e0f040d0909091c1a3118131a091504191c091c040e181309061c1f0f080d09060f1809080f13040e09120d150d0f140b1c091836180439181e0f040d092a1c0e10132e090f14131a29123c0f0f1c043f081b1b180f0b3f1c0e184b4929123518050f0e121b090a1c0f1839181e0f040d090711121a32131e180e372e5d3c382e5d19181e0f040d090d1a18092b1c1114193e15081316170a181f1e0f040d09125d1e15181e165d1b1c1411080f18372619181e0f040d09180f53090e20475d2a181f3e0f040d09125d380f0f120f515d19140e1c1f11185d2a181f3e0f040d09125d3c2d34471012132a181f3e0f040d0912380f0f120f0a2219181e0f040d09180f0f19181e0f040d095d1b1c1411080f18",{get 0(){return"undefined"!=typeof Buffer?Buffer:void 0},get 1(){return"undefined"!=typeof atob?atob:void 0},2:Error,3:Uint8Array,4:WebAssembly,get 5(){return"undefined"!=typeof fetch?fetch:void 0},6:ArrayBuffer,7:Object,get 8(){return self},get 9(){return XMLHttpRequest},get 10(){return console},get 11(){return"undefined"!=typeof TextDecoder?TextDecoder:void 0},12:String,13:Int8Array,14:Int16Array,15:Int32Array,16:Uint16Array,17:Uint32Array,18:Float32Array,19:Float64Array,get 20(){return"undefined"!=typeof navigator?navigator:void 0},21:Date,22:Array,23:Math,24:RegExp,25:Promise,get 26(){return setTimeout},27:Boolean,28:Number,29:Uint8ClampedArray,30:parseInt,31:decodeURIComponent,get 32(){return escape},get 33(){return unescape},34:encodeURIComponent,35:Function,36:DataView,get 37(){return Xe},get 38(){return Oe},get 39(){return xe},get 40(){return Pe},get 41(){return Be},get 42(){return Ye},get 43(){return De},get 44(){return Ge},get 45(){return Re},get 46(){return Ve},get 47(){return ic.openBox},get 48(){return ic.aes4js},get 49(){return ic.TRANSFORM_IV},get 50(){return ic.util},get 51(){return ic.openBox},get 52(){return cc},set 52(e){cc=e},get 53(){return tc},set 53(e){tc=e},get 54(){return ac},set 54(e){ac=e},get 55(){return rc},set 55(e){rc=e}},void 0);const nc=Number.isFinite||function(e){return"number"==typeof e&&isFinite(e)},fc=Number.isSafeInteger||function(e){return"number"==typeof e&&Math.abs(e)<=sc},sc=Number.MAX_SAFE_INTEGER||9007199254740991;let oc=function(e){return e.NETWORK_ERROR="networkError",e.MEDIA_ERROR="mediaError",e.KEY_SYSTEM_ERROR="keySystemError",e.MUX_ERROR="muxError",e.OTHER_ERROR="otherError",e}({}),lc=function(e){return e.KEY_SYSTEM_NO_KEYS="keySystemNoKeys",e.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",e.KEY_SYSTEM_NO_SESSION="keySystemNoSession",e.KEY_SYSTEM_NO_CONFIGURED_LICENSE="keySystemNoConfiguredLicense",e.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",e.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED="keySystemServerCertificateRequestFailed",e.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED="keySystemServerCertificateUpdateFailed",e.KEY_SYSTEM_SESSION_UPDATE_FAILED="keySystemSessionUpdateFailed",e.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED="keySystemStatusOutputRestricted",e.KEY_SYSTEM_STATUS_INTERNAL_ERROR="keySystemStatusInternalError",e.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR="keySystemDestroyMediaKeysError",e.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR="keySystemDestroyCloseSessionError",e.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR="keySystemDestroyRemoveSessionError",e.MANIFEST_LOAD_ERROR="manifestLoadError",e.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",e.MANIFEST_PARSING_ERROR="manifestParsingError",e.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",e.LEVEL_EMPTY_ERROR="levelEmptyError",e.LEVEL_LOAD_ERROR="levelLoadError",e.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",e.LEVEL_PARSING_ERROR="levelParsingError",e.LEVEL_SWITCH_ERROR="levelSwitchError",e.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",e.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",e.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",e.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",e.FRAG_LOAD_ERROR="fragLoadError",e.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",e.FRAG_DECRYPT_ERROR="fragDecryptError",e.FRAG_PARSING_ERROR="fragParsingError",e.FRAG_GAP="fragGap",e.REMUX_ALLOC_ERROR="remuxAllocError",e.KEY_LOAD_ERROR="keyLoadError",e.KEY_LOAD_TIMEOUT="keyLoadTimeOut",e.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",e.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",e.BUFFER_APPEND_ERROR="bufferAppendError",e.BUFFER_APPENDING_ERROR="bufferAppendingError",e.BUFFER_STALLED_ERROR="bufferStalledError",e.BUFFER_FULL_ERROR="bufferFullError",e.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",e.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",e.ASSET_LIST_LOAD_ERROR="assetListLoadError",e.ASSET_LIST_LOAD_TIMEOUT="assetListLoadTimeout",e.ASSET_LIST_PARSING_ERROR="assetListParsingError",e.INTERSTITIAL_ASSET_ITEM_ERROR="interstitialAssetItemError",e.INTERNAL_EXCEPTION="internalException",e.INTERNAL_ABORTED="aborted",e.ATTACH_MEDIA_ERROR="attachMediaError",e.UNKNOWN="unknown",e}({}),dc=function(e){return e.MEDIA_ATTACHING="hlsMediaAttaching",e.MEDIA_ATTACHED="hlsMediaAttached",e.MEDIA_DETACHING="hlsMediaDetaching",e.MEDIA_DETACHED="hlsMediaDetached",e.MEDIA_ENDED="hlsMediaEnded",e.STALL_RESOLVED="hlsStallResolved",e.BUFFER_RESET="hlsBufferReset",e.BUFFER_CODECS="hlsBufferCodecs",e.BUFFER_CREATED="hlsBufferCreated",e.BUFFER_APPENDING="hlsBufferAppending",e.BUFFER_APPENDED="hlsBufferAppended",e.BUFFER_EOS="hlsBufferEos",e.BUFFERED_TO_END="hlsBufferedToEnd",e.BUFFER_FLUSHING="hlsBufferFlushing",e.BUFFER_FLUSHED="hlsBufferFlushed",e.MANIFEST_LOADING="hlsManifestLoading",e.MANIFEST_LOADED="hlsManifestLoaded",e.MANIFEST_PARSED="hlsManifestParsed",e.LEVEL_SWITCHING="hlsLevelSwitching",e.LEVEL_SWITCHED="hlsLevelSwitched",e.LEVEL_LOADING="hlsLevelLoading",e.LEVEL_LOADED="hlsLevelLoaded",e.LEVEL_UPDATED="hlsLevelUpdated",e.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",e.LEVELS_UPDATED="hlsLevelsUpdated",e.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",e.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",e.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",e.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",e.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",e.AUDIO_TRACK_UPDATED="hlsAudioTrackUpdated",e.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",e.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",e.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",e.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",e.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",e.SUBTITLE_TRACK_UPDATED="hlsSubtitleTrackUpdated",e.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",e.CUES_PARSED="hlsCuesParsed",e.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",e.INIT_PTS_FOUND="hlsInitPtsFound",e.FRAG_LOADING="hlsFragLoading",e.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",e.FRAG_LOADED="hlsFragLoaded",e.FRAG_DECRYPTED="hlsFragDecrypted",e.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",e.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",e.FRAG_PARSING_METADATA="hlsFragParsingMetadata",e.FRAG_PARSED="hlsFragParsed",e.FRAG_BUFFERED="hlsFragBuffered",e.FRAG_CHANGED="hlsFragChanged",e.FPS_DROP="hlsFpsDrop",e.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",e.MAX_AUTO_LEVEL_UPDATED="hlsMaxAutoLevelUpdated",e.ERROR="hlsError",e.DESTROYING="hlsDestroying",e.KEY_LOADING="hlsKeyLoading",e.KEY_LOADED="hlsKeyLoaded",e.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",e.BACK_BUFFER_REACHED="hlsBackBufferReached",e.STEERING_MANIFEST_LOADED="hlsSteeringManifestLoaded",e.ASSET_LIST_LOADING="hlsAssetListLoading",e.ASSET_LIST_LOADED="hlsAssetListLoaded",e.INTERSTITIALS_UPDATED="hlsInterstitialsUpdated",e.INTERSTITIALS_BUFFERED_TO_BOUNDARY="hlsInterstitialsBufferedToBoundary",e.INTERSTITIAL_ASSET_PLAYER_CREATED="hlsInterstitialAssetPlayerCreated",e.INTERSTITIAL_STARTED="hlsInterstitialStarted",e.INTERSTITIAL_ASSET_STARTED="hlsInterstitialAssetStarted",e.INTERSTITIAL_ASSET_ENDED="hlsInterstitialAssetEnded",e.INTERSTITIAL_ASSET_ERROR="hlsInterstitialAssetError",e.INTERSTITIAL_ENDED="hlsInterstitialEnded",e.INTERSTITIALS_PRIMARY_RESUMED="hlsInterstitialsPrimaryResumed",e.PLAYOUT_LIMIT_REACHED="hlsPlayoutLimitReached",e.EVENT_CUE_ENTER="hlsEventCueEnter",e}({});var uc="manifest",hc="level",bc="audioTrack",pc="subtitleTrack",gc="main",mc="audio",vc="subtitle";class yc{constructor(e,c=0,t=0){this.halfLife=void 0,this.alpha_=void 0,this.estimate_=void 0,this.totalWeight_=void 0,this.halfLife=e,this.alpha_=e?Math.exp(Math.log(.5)/e):0,this.estimate_=c,this.totalWeight_=t}sample(e,c){const t=Math.pow(this.alpha_,e);this.estimate_=c*(1-t)+t*this.estimate_,this.totalWeight_+=e}getTotalWeight(){return this.totalWeight_}getEstimate(){if(this.alpha_){const e=1-Math.pow(this.alpha_,this.totalWeight_);if(e)return this.estimate_/e}return this.estimate_}}class Ec{constructor(e,c,t,a=100){this.defaultEstimate_=void 0,this.minWeight_=void 0,this.minDelayMs_=void 0,this.slow_=void 0,this.fast_=void 0,this.defaultTTFB_=void 0,this.ttfb_=void 0,this.defaultEstimate_=t,this.minWeight_=.001,this.minDelayMs_=50,this.slow_=new yc(e),this.fast_=new yc(c),this.defaultTTFB_=a,this.ttfb_=new yc(e)}update(e,c){const{slow_:t,fast_:a,ttfb_:r}=this;t.halfLife!==e&&(this.slow_=new yc(e,t.getEstimate(),t.getTotalWeight())),a.halfLife!==c&&(this.fast_=new yc(c,a.getEstimate(),a.getTotalWeight())),r.halfLife!==e&&(this.ttfb_=new yc(e,r.getEstimate(),r.getTotalWeight()))}sample(e,c){const t=(e=Math.max(e,this.minDelayMs_))/1e3,a=8*c/t;this.fast_.sample(t,a),this.slow_.sample(t,a)}sampleTTFB(e){const c=e/1e3,t=Math.sqrt(2)*Math.exp(-Math.pow(c,2)/2);this.ttfb_.sample(t,Math.max(e,5))}canEstimate(){return this.fast_.getTotalWeight()>=this.minWeight_}getEstimate(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_}getEstimateTTFB(){return this.ttfb_.getTotalWeight()>=this.minWeight_?this.ttfb_.getEstimate():this.defaultTTFB_}get defaultEstimate(){return this.defaultEstimate_}destroy(){}}function Sc(e,c,t){return(c=function(e){var c=function(e,c){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,c);if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===c?String:Number)(e)}(e,"string");return"symbol"==typeof c?c:c+""}(c))in e?Object.defineProperty(e,c,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[c]=t,e}function _c(){return _c=Object.assign?Object.assign.bind():function(e){for(var c=1;c<arguments.length;c++){var t=arguments[c];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},_c.apply(null,arguments)}function Tc(e,c){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);c&&(a=a.filter((function(c){return Object.getOwnPropertyDescriptor(e,c).enumerable}))),t.push.apply(t,a)}return t}function kc(e){for(var c=1;c<arguments.length;c++){var t=null!=arguments[c]?arguments[c]:{};c%2?Tc(Object(t),!0).forEach((function(c){Sc(e,c,t[c])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):Tc(Object(t)).forEach((function(c){Object.defineProperty(e,c,Object.getOwnPropertyDescriptor(t,c))}))}return e}let Ac=class{constructor(e,c){this.trace=void 0,this.debug=void 0,this.log=void 0,this.warn=void 0,this.info=void 0,this.error=void 0;const t=`[${e}]:`;this.trace=Lc,this.debug=c.debug.bind(null,t),this.log=c.log.bind(null,t),this.warn=c.warn.bind(null,t),this.info=c.info.bind(null,t),this.error=c.error.bind(null,t)}};const Lc=function(){},Ic={trace:Lc,debug:Lc,log:Lc,warn:Lc,info:Lc,error:Lc};function wc(){return _c({},Ic)}function Rc(e,c,t){return c[e]?c[e].bind(c):function(e,c){const t=self.console[e];return t?t.bind(self.console,`${c?"["+c+"] ":""}[${e}] >`):Lc}(e,t)}const Dc=wc();const xc=Dc;function Pc(e=!0){if("undefined"==typeof self)return;return(e||!self.MediaSource)&&self.ManagedMediaSource||self.MediaSource||self.WebKitMediaSource}function Cc(e,c){const t=Object.keys(e),a=Object.keys(c),r=t.length,i=a.length;return!r||!i||r===i&&!t.some((e=>-1===a.indexOf(e)))}function Oc(e,c=!1){if("undefined"!=typeof TextDecoder){const t=new TextDecoder("utf-8").decode(e);if(c){const e=t.indexOf("\0");return-1!==e?t.substring(0,e):t}return t.replace(/\0/g,"")}const t=e.length;let a,r,i,n="",f=0;for(;f<t;){if(a=e[f++],0===a&&c)return n;if(0!==a&&3!==a)switch(a>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:n+=String.fromCharCode(a);break;case 12:case 13:r=e[f++],n+=String.fromCharCode((31&a)<<6|63&r);break;case 14:r=e[f++],i=e[f++],n+=String.fromCharCode((15&a)<<12|(63&r)<<6|63&i)}}return n}function Mc(e){let c="";for(let t=0;t<e.length;t++){let a=e[t].toString(16);a.length<2&&(a="0"+a),c+=a}return c}function Fc(e){return Uint8Array.from(e.replace(/^0x/,"").replace(/([\da-fA-F]{2}) ?/g,"0x$1 ").replace(/ +$/,"").split(" ")).buffer}function Nc(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Uc,Bc={exports:{}};var $c,jc,Gc,Kc,Vc,Hc=(Uc||(Uc=1,$c=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,jc=/^(?=([^\/?#]*))\1([^]*)$/,Gc=/(?:\/|^)\.(?=\/)/g,Kc=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,Bc.exports=Vc={buildAbsoluteURL:function(e,c,t){if(t=t||{},e=e.trim(),!(c=c.trim())){if(!t.alwaysNormalize)return e;var a=Vc.parseURL(e);if(!a)throw new Error("Error trying to parse base URL.");return a.path=Vc.normalizePath(a.path),Vc.buildURLFromParts(a)}var r=Vc.parseURL(c);if(!r)throw new Error("Error trying to parse relative URL.");if(r.scheme)return t.alwaysNormalize?(r.path=Vc.normalizePath(r.path),Vc.buildURLFromParts(r)):c;var i=Vc.parseURL(e);if(!i)throw new Error("Error trying to parse base URL.");if(!i.netLoc&&i.path&&"/"!==i.path[0]){var n=jc.exec(i.path);i.netLoc=n[1],i.path=n[2]}i.netLoc&&!i.path&&(i.path="/");var f={scheme:i.scheme,netLoc:r.netLoc,path:null,params:r.params,query:r.query,fragment:r.fragment};if(!r.netLoc&&(f.netLoc=i.netLoc,"/"!==r.path[0]))if(r.path){var s=i.path,o=s.substring(0,s.lastIndexOf("/")+1)+r.path;f.path=Vc.normalizePath(o)}else f.path=i.path,r.params||(f.params=i.params,r.query||(f.query=i.query));return null===f.path&&(f.path=t.alwaysNormalize?Vc.normalizePath(r.path):r.path),Vc.buildURLFromParts(f)},parseURL:function(e){var c=$c.exec(e);return c?{scheme:c[1]||"",netLoc:c[2]||"",path:c[3]||"",params:c[4]||"",query:c[5]||"",fragment:c[6]||""}:null},normalizePath:function(e){for(e=e.split("").reverse().join("").replace(Gc,"");e.length!==(e=e.replace(Kc,"")).length;);return e.split("").reverse().join("")},buildURLFromParts:function(e){return e.scheme+e.netLoc+e.path+e.params+e.query+e.fragment}}),Bc.exports);class qc{constructor(){this.aborted=!1,this.loaded=0,this.retry=0,this.total=0,this.chunkCount=0,this.bwEstimate=0,this.loading={start:0,first:0,end:0},this.parsing={start:0,end:0},this.buffering={start:0,first:0,end:0}}}var Yc="audio",Wc="video",zc="audiovideo";class Xc{constructor(e){this._byteRange=null,this._url=null,this._stats=null,this._streams=null,this.base=void 0,this.relurl=void 0,"string"==typeof e&&(e={url:e}),this.base=e,function(e,c){const t=et(e,c);t&&(t.enumerable=!0,Object.defineProperty(e,c,t))}(this,"stats")}setByteRange(e,c){const t=e.split("@",2);let a;a=1===t.length?(null==c?void 0:c.byteRangeEndOffset)||0:parseInt(t[1]),this._byteRange=[a,parseInt(t[0])+a]}get baseurl(){return this.base.url}get byteRange(){return null===this._byteRange?[]:this._byteRange}get byteRangeStartOffset(){return this.byteRange[0]}get byteRangeEndOffset(){return this.byteRange[1]}get elementaryStreams(){return null===this._streams&&(this._streams={[Yc]:null,[Wc]:null,[zc]:null}),this._streams}set elementaryStreams(e){this._streams=e}get hasStats(){return null!==this._stats}get hasStreams(){return null!==this._streams}get stats(){return null===this._stats&&(this._stats=new qc),this._stats}set stats(e){this._stats=e}get url(){return!this._url&&this.baseurl&&this.relurl&&(this._url=Hc.buildAbsoluteURL(this.baseurl,this.relurl,{alwaysNormalize:!0})),this._url||""}set url(e){this._url=e}clearElementaryStreamInfo(){const{elementaryStreams:e}=this;e[Yc]=null,e[Wc]=null,e[zc]=null}}function Qc(e){return"initSegment"!==e.sn}class Jc extends Xc{constructor(e,c){super(c),this._decryptdata=null,this._programDateTime=null,this._ref=null,this._bitrate=void 0,this.rawProgramDateTime=null,this.tagList=[],this.duration=0,this.sn=0,this.levelkeys=void 0,this.type=void 0,this.loader=null,this.keyLoader=null,this.level=-1,this.cc=0,this.startPTS=void 0,this.endPTS=void 0,this.startDTS=void 0,this.endDTS=void 0,this.start=0,this.playlistOffset=0,this.deltaPTS=void 0,this.maxStartPTS=void 0,this.minEndPTS=void 0,this.data=void 0,this.bitrateTest=!1,this.title=null,this.initSegment=null,this.endList=void 0,this.gap=void 0,this.urlId=0,this.type=e}get byteLength(){if(this.hasStats){const e=this.stats.total;if(e)return e}if(this.byteRange.length){const e=this.byteRange[0],c=this.byteRange[1];if(nc(e)&&nc(c))return c-e}return null}get bitrate(){return this.byteLength?8*this.byteLength/this.duration:this._bitrate?this._bitrate:null}set bitrate(e){this._bitrate=e}get decryptdata(){var e;const{levelkeys:c}=this;if(!c||c.NONE)return null;if(c.identity)this._decryptdata||(this._decryptdata=c.identity.getDecryptData(this.sn));else if(null==(e=this._decryptdata)||!e.keyId){const e=Object.keys(c);if(1===e.length){const t=this._decryptdata=c[e[0]]||null;t&&(this._decryptdata=t.getDecryptData(this.sn,c))}}return this._decryptdata}get end(){return this.start+this.duration}get endProgramDateTime(){if(null===this.programDateTime)return null;const e=nc(this.duration)?this.duration:0;return this.programDateTime+1e3*e}get encrypted(){var e;if(null!=(e=this._decryptdata)&&e.encrypted)return!0;if(this.levelkeys){var c;const e=Object.keys(this.levelkeys),t=e.length;if(t>1||1===t&&null!=(c=this.levelkeys[e[0]])&&c.encrypted)return!0}return!1}get programDateTime(){return null===this._programDateTime&&this.rawProgramDateTime&&(this.programDateTime=Date.parse(this.rawProgramDateTime)),this._programDateTime}set programDateTime(e){nc(e)?this._programDateTime=e:this._programDateTime=this.rawProgramDateTime=null}get ref(){return Qc(this)?(this._ref||(this._ref={base:this.base,start:this.start,duration:this.duration,sn:this.sn,programDateTime:this.programDateTime}),this._ref):null}addStart(e){this.setStart(this.start+e)}setStart(e){this.start=e,this._ref&&(this._ref.start=e)}setDuration(e){this.duration=e,this._ref&&(this._ref.duration=e)}setKeyFormat(e){const c=this.levelkeys;if(c){var t;const a=c[e];!a||null!=(t=this._decryptdata)&&t.keyId||(this._decryptdata=a.getDecryptData(this.sn,c))}}abortRequests(){var e,c;null==(e=this.loader)||e.abort(),null==(c=this.keyLoader)||c.abort()}setElementaryStreamInfo(e,c,t,a,r,i=!1){const{elementaryStreams:n}=this,f=n[e];f?(f.startPTS=Math.min(f.startPTS,c),f.endPTS=Math.max(f.endPTS,t),f.startDTS=Math.min(f.startDTS,a),f.endDTS=Math.max(f.endDTS,r)):n[e]={startPTS:c,endPTS:t,startDTS:a,endDTS:r,partial:i}}}class Zc extends Xc{constructor(e,c,t,a,r){super(t),this.fragOffset=0,this.duration=0,this.gap=!1,this.independent=!1,this.relurl=void 0,this.fragment=void 0,this.index=void 0,this.duration=e.decimalFloatingPoint("DURATION"),this.gap=e.bool("GAP"),this.independent=e.bool("INDEPENDENT"),this.relurl=e.enumeratedString("URI"),this.fragment=c,this.index=a;const i=e.enumeratedString("BYTERANGE");i&&this.setByteRange(i,r),r&&(this.fragOffset=r.fragOffset+r.duration)}get start(){return this.fragment.start+this.fragOffset}get end(){return this.start+this.duration}get loaded(){const{elementaryStreams:e}=this;return!!(e.audio||e.video||e.audiovideo)}}function et(e,c){const t=Object.getPrototypeOf(e);if(t){const e=Object.getOwnPropertyDescriptor(t,c);return e||et(t,c)}}const ct=Math.pow(2,32)-1,tt=[].push,at={video:1,audio:2,id3:3,text:4};function rt(e){return String.fromCharCode.apply(null,e)}function it(e,c){const t=e[c]<<8|e[c+1];return t<0?65536+t:t}function nt(e,c){const t=st(e,c);return t<0?4294967296+t:t}function ft(e,c){let t=nt(e,c);return t*=Math.pow(2,32),t+=nt(e,c+4),t}function st(e,c){return e[c]<<24|e[c+1]<<16|e[c+2]<<8|e[c+3]}function ot(e,c){const t=[];if(!c.length)return t;const a=e.byteLength;for(let r=0;r<a;){const i=nt(e,r),n=i>1?r+i:a;if(rt(e.subarray(r+4,r+8))===c[0])if(1===c.length)t.push(e.subarray(r+8,n));else{const a=ot(e.subarray(r+8,n),c.slice(1));a.length&&tt.apply(t,a)}r=n}return t}function lt(e){const c=[],t=e[0];let a=8;const r=nt(e,a);a+=4;let i=0,n=0;0===t?(i=nt(e,a),n=nt(e,a+4),a+=8):(i=ft(e,a),n=ft(e,a+8),a+=16),a+=2;let f=e.length+n;const s=it(e,a);a+=2;for(let o=0;o<s;o++){let t=a;const i=nt(e,t);t+=4;const n=2147483647&i;if(1===(2147483648&i)>>>31)return xc.warn("SIDX has hierarchical references (not supported)"),null;const s=nt(e,t);t+=4,c.push({referenceSize:n,subsegmentDuration:s,info:{duration:s/r,start:f,end:f+n-1}}),f+=n,t+=4,a=t}return{earliestPresentationTime:i,timescale:r,version:t,referencesCount:s,references:c}}function dt(e){const c=[],t=ot(e,["moov","trak"]);for(let a=0;a<t.length;a++){const e=t[a],r=ot(e,["tkhd"])[0];if(r){let t=r[0];const a=nt(r,0===t?12:20),i=ot(e,["mdia","mdhd"])[0];if(i){t=i[0];const r=nt(i,0===t?12:20),n=ot(e,["mdia","hdlr"])[0];if(n){const t=rt(n.subarray(8,12)),i={soun:Yc,vide:Wc}[t],f=ut(ot(e,["mdia","minf","stbl","stsd"])[0]);i?(c[a]={timescale:r,type:i,stsd:f},c[i]=kc({timescale:r,id:a},f)):c[a]={timescale:r,type:t,stsd:f}}}}}return ot(e,["moov","mvex","trex"]).forEach((e=>{const t=nt(e,4),a=c[t];a&&(a.default={duration:nt(e,12),flags:nt(e,20)})})),c}function ut(e){const c=e.subarray(8),t=c.subarray(86),a=rt(c.subarray(4,8));let r,i=a;const n="enca"===a||"encv"===a;if(n){const e=ot(c,[a])[0];ot(e.subarray("enca"===a?28:78),["sinf"]).forEach((e=>{const c=ot(e,["schm"])[0];if(c){const t=rt(c.subarray(4,8));if("cbcs"===t||"cenc"===t){const c=ot(e,["frma"])[0];c&&(i=rt(c))}}}))}const f=i;switch(i){case"avc1":case"avc2":case"avc3":case"avc4":{const e=ot(t,["avcC"])[0];e&&e.length>3&&(i+="."+pt(e[1])+pt(e[2])+pt(e[3]),r=ht("avc1"===f?"dva1":"dvav",t));break}case"mp4a":{const e=ot(c,[a])[0],t=ot(e.subarray(28),["esds"])[0];if(t&&t.length>7){let e=4;if(3!==t[e++])break;e=bt(t,e),e+=2;const c=t[e++];if(128&c&&(e+=2),64&c&&(e+=t[e++]),4!==t[e++])break;e=bt(t,e);const a=t[e++];if(64!==a)break;if(i+="."+pt(a),e+=12,5!==t[e++])break;e=bt(t,e);const r=t[e++];let n=(248&r)>>3;31===n&&(n+=1+((7&r)<<3)+((224&t[e])>>5)),i+="."+n}break}case"hvc1":case"hev1":{const e=ot(t,["hvcC"])[0];if(e&&e.length>12){const c=e[1],t=["","A","B","C"][c>>6],a=31&c,r=nt(e,2),n=(32&c)>>5?"H":"L",f=e[12],s=e.subarray(6,12);i+="."+t+a,i+="."+function(e){let c=0;for(let t=0;t<32;t++)c|=(e>>t&1)<<31-t;return c>>>0}(r).toString(16).toUpperCase(),i+="."+n+f;let o="";for(let e=s.length;e--;){const c=s[e];if(c||o){o="."+c.toString(16).toUpperCase()+o}}i+=o}r=ht("hev1"==f?"dvhe":"dvh1",t);break}case"dvh1":case"dvhe":case"dvav":case"dva1":case"dav1":i=ht(i,t)||i;break;case"vp09":{const e=ot(t,["vpcC"])[0];if(e&&e.length>6){const c=e[4],t=e[5],a=e[6]>>4&15;i+="."+gt(c)+"."+gt(t)+"."+gt(a)}break}case"av01":{const e=ot(t,["av1C"])[0];if(e&&e.length>2){const c=e[1]>>>5,a=31&e[1],n=e[2]>>>7?"H":"M",f=(64&e[2])>>6,s=(32&e[2])>>5,o=2===c&&f?s?12:10:f?10:8,l=(16&e[2])>>4,d=(8&e[2])>>3,u=(4&e[2])>>2,h=3&e[2],b=1,p=1,g=1,m=0;i+="."+c+"."+gt(a)+n+"."+gt(o)+"."+l+"."+d+u+h+"."+gt(b)+"."+gt(p)+"."+gt(g)+"."+m,r=ht("dav1",t)}break}}return{codec:i,encrypted:n,supplemental:r}}function ht(e,c){const t=ot(c,["dvvC"]),a=t.length?t[0]:ot(c,["dvcC"])[0];if(a){const c=a[2]>>1&127,t=a[2]<<5&32|a[3]>>3&31;return e+"."+gt(c)+"."+gt(t)}}function bt(e,c){const t=c+5;for(;128&e[c++]&&c<t;);return c}function pt(e){return("0"+e.toString(16).toUpperCase()).slice(-2)}function gt(e){return(e<10?"0":"")+e}function mt(e,c){ot(e,["moov","trak"]).forEach((e=>{const t=ot(e,["mdia","minf","stbl","stsd"])[0];if(!t)return;const a=t.subarray(8);let r=ot(a,["enca"]);const i=r.length>0;i||(r=ot(a,["encv"])),r.forEach((e=>{ot(i?e.subarray(28):e.subarray(78),["sinf"]).forEach((e=>{const t=vt(e);t&&c(t,i)}))}))}))}function vt(e){const c=ot(e,["schm"])[0];if(c){const t=rt(c.subarray(4,8));if("cbcs"===t||"cenc"===t){const c=ot(e,["schi","tenc"])[0];if(c)return c}}}function yt(e,c){const t=new Uint8Array(e.length+c.length);return t.set(e),t.set(c,e.length),t}function Et(e,c){const t=[],a=c.samples,r=c.timescale,i=c.id;let n=!1;return ot(a,["moof"]).map((f=>{const s=f.byteOffset-8;ot(f,["traf"]).map((f=>{const o=ot(f,["tfdt"]).map((e=>{const c=e[0];let t=nt(e,4);return 1===c&&(t*=Math.pow(2,32),t+=nt(e,8)),t/r}))[0];return void 0!==o&&(e=o),ot(f,["tfhd"]).map((o=>{const l=nt(o,4),d=16777215&nt(o,0);let u=0;const h=!!(16&d);let b=0;const p=!!(32&d);let g=8;l===i&&(!!(1&d)&&(g+=8),!!(2&d)&&(g+=4),!!(8&d)&&(u=nt(o,g),g+=4),h&&(b=nt(o,g),g+=4),p&&(g+=4),"video"===c.type&&(n=St(c.codec)),ot(f,["trun"]).map((i=>{const f=i[0],o=16777215&nt(i,0),l=!!(1&o);let d=0;const h=!!(4&o),p=!!(256&o);let g=0;const m=!!(512&o);let v=0;const y=!!(1024&o),E=!!(2048&o);let S=0;const _=nt(i,4);let T=8;l&&(d=nt(i,T),T+=4),h&&(T+=4);let k=d+s;for(let s=0;s<_;s++){if(p?(g=nt(i,T),T+=4):g=u,m?(v=nt(i,T),T+=4):v=b,y&&(T+=4),E&&(S=0===f?nt(i,T):st(i,T),T+=4),c.type===Wc){let c=0;for(;c<v;){const i=nt(a,k);if(k+=4,_t(n,a[k])){Tt(a.subarray(k,k+i),n?2:1,e+S/r,t)}k+=i,c+=i+4}}e+=g/r}})))}))}))})),t}function St(e){if(!e)return!1;const c=e.substring(0,4);return"hvc1"===c||"hev1"===c||"dvh1"===c||"dvhe"===c}function _t(e,c){if(e){const e=c>>1&63;return 39===e||40===e}return 6===(31&c)}function Tt(e,c,t,a){const r=kt(e);let i=0;i+=c;let n=0,f=0,s=0;for(;i<r.length;){n=0;do{if(i>=r.length)break;s=r[i++],n+=s}while(255===s);f=0;do{if(i>=r.length)break;s=r[i++],f+=s}while(255===s);const e=r.length-i;let c=i;if(f<e)i+=f;else if(f>e){xc.error(`Malformed SEI payload. ${f} is too small, only ${e} bytes left to parse.`);break}if(4===n){if(181===r[c++]){const e=it(r,c);if(c+=2,49===e){const e=nt(r,c);if(c+=4,1195456820===e){const e=r[c++];if(3===e){const i=r[c++],f=64&i,s=f?2+3*(31&i):0,o=new Uint8Array(s);if(f){o[0]=i;for(let e=1;e<s;e++)o[e]=r[c++]}a.push({type:e,payloadType:n,pts:t,bytes:o})}}}}}else if(5===n){if(f>16){const e=[];for(let t=0;t<16;t++){const a=r[c++].toString(16);e.push(1==a.length?"0"+a:a),3!==t&&5!==t&&7!==t&&9!==t||e.push("-")}const i=f-16,s=new Uint8Array(i);for(let t=0;t<i;t++)s[t]=r[c++];a.push({payloadType:n,pts:t,uuid:e.join(""),userData:Oc(s),userDataBytes:s})}}else f>0&&a.push({payloadType:n,pts:t,payloadSize:f,payload:r.subarray(c,c+f),customSeiMessage:!0})}}function kt(e){const c=e.byteLength,t=[];let a=1;for(;a<c-2;)0===e[a]&&0===e[a+1]&&3===e[a+2]?(t.push(a+2),a+=2):a++;if(0===t.length)return e;const r=c-t.length,i=new Uint8Array(r);let n=0;for(a=0;a<r;n++,a++)n===t[0]&&(n++,t.shift()),i[a]=e[n];return i}function At(e,c,t){if(16!==e.byteLength)throw new RangeError("Invalid system id");let a,r,i;a=0,r=new Uint8Array,i=new Uint8Array;const n=new Uint8Array(4);return t.byteLength>0&&new DataView(n.buffer).setUint32(0,t.byteLength,!1),function(e,...c){const t=c.length;let a=8,r=t;for(;r--;)a+=c[r].byteLength;const i=new Uint8Array(a);for(i[0]=a>>24&255,i[1]=a>>16&255,i[2]=a>>8&255,i[3]=255&a,i.set(e,4),r=0,a=8;r<t;r++)i.set(c[r],a),a+=c[r].byteLength;return i}([112,115,115,104],new Uint8Array([0,0,0,0]),e,i,r,n,t)}function Lt(e){const c=e.getUint32(0),t=e.byteOffset,a=e.byteLength;if(a<c)return{offset:t,size:a};if(1886614376!==e.getUint32(4))return{offset:t,size:c};const r=e.getUint32(8)>>>24;if(0!==r&&1!==r)return{offset:t,size:c};const i=e.buffer,n=Mc(new Uint8Array(i,t+12,16));let f=null,s=null,o=0;if(0===r)o=28;else{const r=e.getUint32(28);if(!r||a<32+16*r)return{offset:t,size:c};f=[];for(let e=0;e<r;e++)f.push(new Uint8Array(i,t+32+16*e,16));o=32+16*r}if(!o)return{offset:t,size:c};const l=e.getUint32(o);return c-32<l?{offset:t,size:c}:(s=new Uint8Array(i,t+o+4,l),{version:r,systemId:n,kids:f,data:s,offset:t,size:c})}const It=()=>/\(Windows.+Firefox\//i.test(navigator.userAgent),wt={audio:{a3ds:1,"ac-3":.95,"ac-4":1,alac:.9,alaw:1,dra1:1,"dts+":1,"dts-":1,dtsc:1,dtse:1,dtsh:1,"ec-3":.9,enca:1,fLaC:.9,flac:.9,FLAC:.9,g719:1,g726:1,m4ae:1,mha1:1,mha2:1,mhm1:1,mhm2:1,mlpa:1,mp4a:1,"raw ":1,Opus:1,opus:1,samr:1,sawb:1,sawp:1,sevc:1,sqcp:1,ssmv:1,twos:1,ulaw:1},video:{avc1:1,avc2:1,avc3:1,avc4:1,avcp:1,av01:.8,dav1:.8,drac:1,dva1:1,dvav:1,dvh1:.7,dvhe:.7,encv:1,hev1:.75,hvc1:.75,mjp2:1,mp4v:1,mvc1:1,mvc2:1,mvc3:1,mvc4:1,resv:1,rv60:1,s263:1,svc1:1,svc2:1,"vc-1":1,vp08:1,vp09:.9},text:{stpp:1,wvtt:1}};function Rt(e,c){const t=wt[c];return!!t&&!!t[e.slice(0,4)]}function Dt(e,c,t=!0){return!e.split(",").some((e=>!xt(e,c,t)))}function xt(e,c,t=!0){var a;const r=Pc(t);return null!=(a=null==r?void 0:r.isTypeSupported(Pt(e,c)))&&a}function Pt(e,c){return`${c}/mp4;codecs=${e}`}function Ct(e){if(e){const c=e.substring(0,4);return wt.video[c]}return 2}function Ot(e){const c=It();return e.split(",").reduce(((e,t)=>{const a=c&&St(t)?9:wt.video[t];return a?(2*a+e)/(e?3:2):(wt.audio[t]+e)/(e?2:1)}),0)}const Mt={};const Ft=/flac|opus|mp4a\.40\.34/i;function Nt(e,c=!0){return e.replace(Ft,(e=>function(e,c=!0){if(Mt[e])return Mt[e];const t={flac:["flac","fLaC","FLAC"],opus:["opus","Opus"],"mp4a.40.34":["mp3"]}[e];for(let r=0;r<t.length;r++){var a;if(xt(t[r],"audio",c))return Mt[e]=t[r],t[r];if("mp3"===t[r]&&null!=(a=Pc(c))&&a.isTypeSupported("audio/mpeg"))return""}return e}(e.toLowerCase(),c)))}function Ut(e,c){if(e&&(e.length>4||-1!==["ac-3","ec-3","alac","fLaC","Opus"].indexOf(e))&&(Bt(e,"audio")||Bt(e,"video")))return e;if(c){const t=c.split(",");if(t.length>1){if(e)for(let c=t.length;c--;)if(t[c].substring(0,4)===e.substring(0,4))return t[c];return t[0]}}return c||e}function Bt(e,c){return Rt(e,c)&&xt(e,c)}function $t(e){if(e.startsWith("av01.")){const c=e.split("."),t=["0","111","01","01","01","0"];for(let e=c.length;e>4&&e<10;e++)c[e]=t[e-4];return c.join(".")}return e}function jt(e){const c=Pc(e)||{isTypeSupported:()=>!1};return{mpeg:c.isTypeSupported("audio/mpeg"),mp3:c.isTypeSupported('audio/mp4; codecs="mp3"'),ac3:c.isTypeSupported('audio/mp4; codecs="ac-3"')}}function Gt(e){return e.replace(/^.+codecs=["']?([^"']+).*$/,"$1")}const Kt={supported:!1,smooth:!1,powerEfficient:!1},Vt={supported:!0,configurations:[],decodingInfoResults:[{supported:!0,powerEfficient:!0,smooth:!0}]};function Ht(e,c){return{supported:!1,configurations:c,decodingInfoResults:[Kt],error:e}}function qt(e,c,t,a,r,i){const n=e.videoCodec,f=e.audioCodec?e.audioGroups:null,s=null==i?void 0:i.audioCodec,o=null==i?void 0:i.channels,l=o?parseInt(o):s?1/0:2;let d=null;if(null!=f&&f.length)try{d=1===f.length&&f[0]?c.groups[f[0]].channels:f.reduce(((e,t)=>{if(t){const a=c.groups[t];if(!a)throw new Error(`Audio track group ${t} not found`);Object.keys(a.channels).forEach((c=>{e[c]=(e[c]||0)+a.channels[c]}))}return e}),{2:0})}catch(u){return!0}return void 0!==n&&(n.split(",").some((e=>St(e)))||e.width>1920&&e.height>1088||e.height>1920&&e.width>1088||e.frameRate>Math.max(a,30)||"SDR"!==e.videoRange&&e.videoRange!==t||e.bitrate>Math.max(r,8e6))||!!d&&nc(l)&&Object.keys(d).some((e=>parseInt(e)>l))}function Yt(e,c,t,a={}){const r=e.videoCodec;if(!r&&!e.audioCodec||!t)return Promise.resolve(Vt);const i=[],n=function(e){var c;const t=null==(c=e.videoCodec)?void 0:c.split(","),a=zt(e),r=e.width||640,i=e.height||480,n=e.frameRate||30,f=e.videoRange.toLowerCase();return t?t.map((e=>{const c={contentType:Pt($t(e),"video"),width:r,height:i,bitrate:a,framerate:n};return"sdr"!==f&&(c.transferFunction=f),c})):[]}(e),f=n.length,s=function(e,c,t){var a;const r=null==(a=e.audioCodec)?void 0:a.split(","),i=zt(e);if(r&&e.audioGroups)return e.audioGroups.reduce(((e,a)=>{var n;const f=a?null==(n=c.groups[a])?void 0:n.tracks:null;return f?f.reduce(((e,c)=>{if(c.groupId===a){const a=parseFloat(c.channels||"");r.forEach((c=>{const r={contentType:Pt(c,"audio"),bitrate:t?Wt(c,i):i};a&&(r.channels=""+a),e.push(r)}))}return e}),e):e}),[]);return[]}(e,c,f>0),o=s.length;for(let l=f||1*o||1;l--;){const e={type:"media-source"};if(f&&(e.video=n[l%f]),o){e.audio=s[l%o];const c=e.audio.bitrate;e.video&&c&&(e.video.bitrate-=c)}i.push(e)}if(r){const e=navigator.userAgent;if(r.split(",").some((e=>St(e)))&&It())return Promise.resolve(Ht(new Error(`Overriding Windows Firefox HEVC MediaCapabilities result based on user-agent string: (${e})`),i))}return Promise.all(i.map((e=>{const c=function(e){let c="";const{audio:t,video:a}=e;if(a){c+=`${Gt(a.contentType)}_r${a.height}x${a.width}f${Math.ceil(a.framerate)}${a.transferFunction||"sd"}_${Math.ceil(a.bitrate/1e5)}`}if(t){c+=`${a?"_":""}${Gt(t.contentType)}_c${t.channels}`}return c}(e);return a[c]||(a[c]=t.decodingInfo(e))}))).then((e=>({supported:!e.some((e=>!e.supported)),configurations:i,decodingInfoResults:e}))).catch((e=>({supported:!1,configurations:i,decodingInfoResults:[],error:e})))}function Wt(e,c){if(c<=1)return 1;let t=128e3;return"ec-3"===e?t=768e3:"ac-3"===e&&(t=64e4),Math.min(c/2,t)}function zt(e){return 1e3*Math.ceil(Math.max(.9*e.bitrate,e.averageBitrate)/1e3)||1}const Xt=["NONE","TYPE-0","TYPE-1",null];const Qt=["SDR","PQ","HLG"];var Jt="",Zt="YES",ea="v2";function ca(e){const{canSkipUntil:c,canSkipDateRanges:t,age:a}=e;return c&&a<c/2?t?ea:Zt:Jt}let ta=class{constructor(e,c,t){this.msn=void 0,this.part=void 0,this.skip=void 0,this.msn=e,this.part=c,this.skip=t}addDirectives(e){const c=new self.URL(e);return void 0!==this.msn&&c.searchParams.set("_HLS_msn",this.msn.toString()),void 0!==this.part&&c.searchParams.set("_HLS_part",this.part.toString()),this.skip&&c.searchParams.set("_HLS_skip",this.skip),c.href}};class aa{constructor(e){if(this._attrs=void 0,this.audioCodec=void 0,this.bitrate=void 0,this.codecSet=void 0,this.url=void 0,this.frameRate=void 0,this.height=void 0,this.id=void 0,this.name=void 0,this.supplemental=void 0,this.videoCodec=void 0,this.width=void 0,this.details=void 0,this.fragmentError=0,this.loadError=0,this.loaded=void 0,this.realBitrate=0,this.supportedPromise=void 0,this.supportedResult=void 0,this._avgBitrate=0,this._audioGroups=void 0,this._subtitleGroups=void 0,this._urlId=0,this.url=[e.url],this._attrs=[e.attrs],this.bitrate=e.bitrate,e.details&&(this.details=e.details),this.id=e.id||0,this.name=e.name,this.width=e.width||0,this.height=e.height||0,this.frameRate=e.attrs.optionalFloat("FRAME-RATE",0),this._avgBitrate=e.attrs.decimalInteger("AVERAGE-BANDWIDTH"),this.audioCodec=e.audioCodec,this.videoCodec=e.videoCodec,this.codecSet=[e.videoCodec,e.audioCodec].filter((e=>!!e)).map((e=>e.substring(0,4))).join(","),"supplemental"in e){var c;this.supplemental=e.supplemental;const t=null==(c=e.supplemental)?void 0:c.videoCodec;t&&t!==e.videoCodec&&(this.codecSet+=`,${t.substring(0,4)}`)}this.addGroupId("audio",e.attrs.AUDIO),this.addGroupId("text",e.attrs.SUBTITLES)}get maxBitrate(){return Math.max(this.realBitrate,this.bitrate)}get averageBitrate(){return this._avgBitrate||this.realBitrate||this.bitrate}get attrs(){return this._attrs[0]}get codecs(){return this.attrs.CODECS||""}get pathwayId(){return this.attrs["PATHWAY-ID"]||"."}get videoRange(){return this.attrs["VIDEO-RANGE"]||"SDR"}get score(){return this.attrs.optionalFloat("SCORE",0)}get uri(){return this.url[0]||""}hasAudioGroup(e){return ra(this._audioGroups,e)}hasSubtitleGroup(e){return ra(this._subtitleGroups,e)}get audioGroups(){return this._audioGroups}get subtitleGroups(){return this._subtitleGroups}addGroupId(e,c){if(c)if("audio"===e){let e=this._audioGroups;e||(e=this._audioGroups=[]),-1===e.indexOf(c)&&e.push(c)}else if("text"===e){let e=this._subtitleGroups;e||(e=this._subtitleGroups=[]),-1===e.indexOf(c)&&e.push(c)}}get urlId(){return 0}set urlId(e){}get audioGroupIds(){return this.audioGroups?[this.audioGroupId]:void 0}get textGroupIds(){return this.subtitleGroups?[this.textGroupId]:void 0}get audioGroupId(){var e;return null==(e=this.audioGroups)?void 0:e[0]}get textGroupId(){var e;return null==(e=this.subtitleGroups)?void 0:e[0]}addFallback(){}}function ra(e,c){return!(!c||!e)&&-1!==e.indexOf(c)}function ia(e,c){let t=!1,a=[];if(e&&(t="SDR"!==e,a=[e]),c){a=c.allowedVideoRanges||Qt.slice(0);const e="SDR"!==a.join("")&&!c.videoCodec;t=void 0!==c.preferHDR?c.preferHDR:e&&function(){if("function"==typeof matchMedia){const e=matchMedia("(dynamic-range: high)"),c=matchMedia("bad query");if(e.media!==c.media)return!0===e.matches}return!1}(),t||(a=["SDR"])}return{preferHDR:t,allowedVideoRanges:a}}const na=(e,c)=>JSON.stringify(e,(e=>{const c=new WeakSet;return(t,a)=>{if(e&&(a=e(t,a)),"object"==typeof a&&null!==a){if(c.has(a))return;c.add(a)}return a}})(c));function fa(e,c){xc.log(`[abr] start candidates with "${e}" ignored because ${c}`)}function sa(e){return e.reduce(((e,c)=>{let t=e.groups[c.groupId];t||(t=e.groups[c.groupId]={tracks:[],channels:{2:0},hasDefault:!1,hasAutoSelect:!1}),t.tracks.push(c);const a=c.channels||"2";return t.channels[a]=(t.channels[a]||0)+1,t.hasDefault=t.hasDefault||c.default,t.hasAutoSelect=t.hasAutoSelect||c.autoselect,t.hasDefault&&(e.hasDefaultAudio=!0),t.hasAutoSelect&&(e.hasAutoSelectAudio=!0),e}),{hasDefaultAudio:!1,hasAutoSelectAudio:!1,groups:{}})}function oa(e){if(!e)return e;const{lang:c,assocLang:t,characteristics:a,channels:r,audioCodec:i}=e;return{lang:c,assocLang:t,characteristics:a,channels:r,audioCodec:i}}function la(e,c,t){if("attrs"in e){const t=c.indexOf(e);if(-1!==t)return t}for(let a=0;a<c.length;a++){if(da(e,c[a],t))return a}return-1}function da(e,c,t){const{groupId:a,name:r,lang:i,assocLang:n,default:f}=e,s=e.forced;return(void 0===a||c.groupId===a)&&(void 0===r||c.name===r)&&(void 0===i||function(e,c="--"){if(e.length===c.length)return e===c;return e.startsWith(c)||c.startsWith(e)}(i,c.lang))&&(void 0===i||c.assocLang===n)&&(void 0===f||c.default===f)&&(void 0===s||c.forced===s)&&(!("characteristics"in e)||function(e,c=""){const t=e.split(","),a=c.split(",");return t.length===a.length&&!t.some((e=>-1===a.indexOf(e)))}(e.characteristics||"",c.characteristics))&&(void 0===t||t(e,c))}function ua(e,c){const{audioCodec:t,channels:a}=e;return!(void 0!==t&&(c.audioCodec||"").substring(0,4)!==t.substring(0,4)||void 0!==a&&a!==(c.channels||"2"))}function ha(e,c,t){for(let a=c;a>-1;a--)if(t(e[a]))return a;for(let a=c+1;a<e.length;a++)if(t(e[a]))return a;return-1}function ba(e,c){var t;return!!e&&e!==(null==(t=c.loadLevelObj)?void 0:t.uri)}const pa=function(e,c){let t=0,a=e.length-1,r=null,i=null;for(;t<=a;){r=(t+a)/2|0,i=e[r];const n=c(i);if(n>0)t=r+1;else{if(!(n<0))return i;a=r-1}}return null};function ga(e,c,t=0,a=0,r=.005){let i=null;if(e){i=c[1+e.sn-c[0].sn]||null;const a=e.endDTS-t;a>0&&a<15e-7&&(t+=15e-7),i&&e.level!==i.level&&i.end<=e.end&&(i=c[2+e.sn-c[0].sn]||null)}else 0===t&&0===c[0].start&&(i=c[0]);if(i&&((!e||e.level===i.level)&&0===ma(t,a,i)||function(e,c,t){if(c&&0===c.start&&c.level<e.level&&(c.endPTS||0)>0){const a=c.tagList.reduce(((e,c)=>("INF"===c[0]&&(e+=parseFloat(c[1])),e)),t);return e.start<=a}return!1}(i,e,Math.min(r,a))))return i;const n=pa(c,ma.bind(null,t,a));return!n||n===e&&i?i:n}function ma(e=0,c=0,t){if(t.start<=e&&t.start+t.duration>e)return 0;const a=Math.min(c,t.duration+(t.deltaPTS?t.deltaPTS:0));return t.start+t.duration-a<=e?1:t.start-a>e&&t.start?-1:0}function va(e,c,t){const a=1e3*Math.min(c,t.duration+(t.deltaPTS?t.deltaPTS:0));return(t.endProgramDateTime||0)-a>e}function ya(e,c,t){if(e&&e.startCC<=c&&e.endCC>=c){let a=e.fragments;const{fragmentHint:r}=e;let i;return r&&(a=a.concat(r)),pa(a,(e=>e.cc<c?1:e.cc>c?-1:(i=e,e.end<=t?1:e.start>t?-1:0))),i||null}return null}function Ea(e){switch(e.details){case lc.FRAG_LOAD_TIMEOUT:case lc.KEY_LOAD_TIMEOUT:case lc.LEVEL_LOAD_TIMEOUT:case lc.MANIFEST_LOAD_TIMEOUT:case lc.AUDIO_TRACK_LOAD_TIMEOUT:case lc.SUBTITLE_TRACK_LOAD_TIMEOUT:case lc.ASSET_LIST_LOAD_TIMEOUT:return!0}return!1}function Sa(e){return e.details.startsWith("key")}function _a(e){return Sa(e)&&!!e.frag&&!e.frag.decryptdata}function Ta(e,c){const t=Ea(c);return e.default[(t?"timeout":"error")+"Retry"]}function ka(e,c){const t="linear"===e.backoff?1:Math.pow(2,c);return Math.min(t*e.retryDelayMs,e.maxRetryDelayMs)}function Aa(e){return kc(kc({},e),{errorRetry:null,timeoutRetry:null})}function La(e,c,t,a){if(!e)return!1;const r=null==a?void 0:a.code,i=c<e.maxNumRetry&&(function(e){return Ia(e)||!!e&&(e<400||e>499)}(r)||!!t);return e.shouldRetry?e.shouldRetry(e,c,t,a,i):i}function Ia(e){return 0===e&&!1===navigator.onLine}var wa=0,Ra=2,Da=3,xa=5,Pa=0,Ca=1,Oa=2,Ma=4;function Fa(e){const c={action:wa,flags:Pa};return e&&(c.resolved=!0),c}var Na="NOT_LOADED",Ua="APPENDING",Ba="PARTIAL",$a="OK";class ja{constructor(e){this.activePartLists=Object.create(null),this.endListFragments=Object.create(null),this.fragments=Object.create(null),this.timeRanges=Object.create(null),this.bufferPadding=.2,this.hls=void 0,this.hasGaps=!1,this.hls=e,this._registerListeners()}_registerListeners(){const{hls:e}=this;e&&(e.on(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.on(dc.BUFFER_APPENDED,this.onBufferAppended,this),e.on(dc.FRAG_BUFFERED,this.onFragBuffered,this),e.on(dc.FRAG_LOADED,this.onFragLoaded,this))}_unregisterListeners(){const{hls:e}=this;e&&(e.off(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.off(dc.BUFFER_APPENDED,this.onBufferAppended,this),e.off(dc.FRAG_BUFFERED,this.onFragBuffered,this),e.off(dc.FRAG_LOADED,this.onFragLoaded,this))}destroy(){this._unregisterListeners(),this.hls=this.fragments=this.activePartLists=this.endListFragments=this.timeRanges=null}getAppendedFrag(e,c){const t=this.activePartLists[c];if(t)for(let a=t.length;a--;){const c=t[a];if(!c)break;if(c.start<=e&&e<=c.end&&c.loaded)return c}return this.getBufferedFrag(e,c)}getBufferedFrag(e,c){return this.getFragAtPos(e,c,!0)}getFragAtPos(e,c,t){const{fragments:a}=this,r=Object.keys(a);for(let i=r.length;i--;){const n=a[r[i]];if((null==n?void 0:n.body.type)===c&&(!t||n.buffered)){const c=n.body;if(c.start<=e&&e<=c.end)return c}}return null}detectEvictedFragments(e,c,t,a,r){this.timeRanges&&(this.timeRanges[e]=c);const i=(null==a?void 0:a.fragment.sn)||-1;Object.keys(this.fragments).forEach((a=>{const n=this.fragments[a];if(!n)return;if(i>=n.body.sn)return;if(!n.buffered&&(!n.loaded||r))return void(n.body.type===t&&this.removeFragment(n.body));const f=n.range[e];f&&(0!==f.time.length?f.time.some((e=>{const t=!this.isTimeBuffered(e.startPTS,e.endPTS,c);return t&&this.removeFragment(n.body),t})):this.removeFragment(n.body))}))}detectPartialFragments(e){const c=this.timeRanges;if(!c||"initSegment"===e.frag.sn)return;const t=e.frag,a=Ka(t),r=this.fragments[a];if(!r||r.buffered&&t.gap)return;const i=!t.relurl;if(Object.keys(c).forEach((a=>{const n=t.elementaryStreams[a];if(!n)return;const f=c[a],s=i||!0===n.partial;r.range[a]=this.getBufferedTimes(t,e.part,s,f)})),r.loaded=null,Object.keys(r.range).length){r.buffered=!0;(r.body.endList=t.endList||r.body.endList)&&(this.endListFragments[r.body.type]=r),Ga(r)||this.removeParts(t.sn-1,t.type)}else this.removeFragment(r.body)}removeParts(e,c){const t=this.activePartLists[c];t&&(this.activePartLists[c]=Va(t,(c=>c.fragment.sn>=e)))}fragBuffered(e,c){const t=Ka(e);let a=this.fragments[t];!a&&c&&(a=this.fragments[t]={body:e,appendedPTS:null,loaded:null,buffered:!1,range:Object.create(null)},e.gap&&(this.hasGaps=!0)),a&&(a.loaded=null,a.buffered=!0)}getBufferedTimes(e,c,t,a){const r={time:[],partial:t},i=e.start,n=e.end,f=e.minEndPTS||n,s=e.maxStartPTS||i;for(let o=0;o<a.length;o++){const e=a.start(o)-this.bufferPadding,c=a.end(o)+this.bufferPadding;if(s>=e&&f<=c){r.time.push({startPTS:Math.max(i,a.start(o)),endPTS:Math.min(n,a.end(o))});break}if(i<c&&n>e){const e=Math.max(i,a.start(o)),c=Math.min(n,a.end(o));c>e&&(r.partial=!0,r.time.push({startPTS:e,endPTS:c}))}else if(n<=e)break}return r}getPartialFragment(e){let c,t,a,r=null,i=0;const{bufferPadding:n,fragments:f}=this;return Object.keys(f).forEach((s=>{const o=f[s];o&&Ga(o)&&(t=o.body.start-n,a=o.body.end+n,e>=t&&e<=a&&(c=Math.min(e-t,a-e),i<=c&&(r=o.body,i=c)))})),r}isEndListAppended(e){const c=this.endListFragments[e];return void 0!==c&&(c.buffered||Ga(c))}getState(e){const c=Ka(e),t=this.fragments[c];return t?t.buffered?Ga(t)?Ba:$a:Ua:Na}isTimeBuffered(e,c,t){let a,r;for(let i=0;i<t.length;i++){if(a=t.start(i)-this.bufferPadding,r=t.end(i)+this.bufferPadding,e>=a&&c<=r)return!0;if(c<=a)return!1}return!1}onManifestLoading(){this.removeAllFragments()}onFragLoaded(e,c){if("initSegment"===c.frag.sn||c.frag.bitrateTest)return;const t=c.frag,a=c.part?null:c,r=Ka(t);this.fragments[r]={body:t,appendedPTS:null,loaded:a,buffered:!1,range:Object.create(null)}}onBufferAppended(e,c){const{frag:t,part:a,timeRanges:r,type:i}=c;if("initSegment"===t.sn)return;const n=t.type;if(a){let e=this.activePartLists[n];e||(this.activePartLists[n]=e=[]),e.push(a)}this.timeRanges=r;const f=r[i];this.detectEvictedFragments(i,f,n,a)}onFragBuffered(e,c){this.detectPartialFragments(c)}hasFragment(e){const c=Ka(e);return!!this.fragments[c]}hasFragments(e){const{fragments:c}=this,t=Object.keys(c);if(!e)return t.length>0;for(let a=t.length;a--;){const r=c[t[a]];if((null==r?void 0:r.body.type)===e)return!0}return!1}hasParts(e){var c;return!(null==(c=this.activePartLists[e])||!c.length)}removeFragmentsInRange(e,c,t,a,r){a&&!this.hasGaps||Object.keys(this.fragments).forEach((i=>{const n=this.fragments[i];if(!n)return;const f=n.body;f.type!==t||a&&!f.gap||f.start<c&&f.end>e&&(n.buffered||r)&&this.removeFragment(f)}))}removeFragment(e){const c=Ka(e);e.clearElementaryStreamInfo();const t=this.activePartLists[e.type];if(t){const c=e.sn;this.activePartLists[e.type]=Va(t,(e=>e.fragment.sn!==c))}delete this.fragments[c],e.endList&&delete this.endListFragments[e.type]}removeAllFragments(){var e;this.fragments=Object.create(null),this.endListFragments=Object.create(null),this.activePartLists=Object.create(null),this.hasGaps=!1;const c=null==(e=this.hls)||null==(e=e.latestLevelDetails)?void 0:e.partList;c&&c.forEach((e=>e.clearElementaryStreamInfo()))}}function Ga(e){var c,t,a;return e.buffered&&!!(e.body.gap||null!=(c=e.range.video)&&c.partial||null!=(t=e.range.audio)&&t.partial||null!=(a=e.range.audiovideo)&&a.partial)}function Ka(e){return`${e.type}_${e.level}_${e.sn}`}function Va(e,c){return e.filter((e=>{const t=c(e);return t||e.clearElementaryStreamInfo(),t}))}var Ha=0,qa=1;class Ya{constructor(e,c,t){this.subtle=void 0,this.aesIV=void 0,this.aesMode=void 0,this.subtle=e,this.aesIV=c,this.aesMode=t}decrypt(e,c){switch(this.aesMode){case Ha:return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},c,e);case qa:return this.subtle.decrypt({name:"AES-CTR",counter:this.aesIV,length:64},c,e);default:throw new Error(`[AESCrypto] invalid aes mode ${this.aesMode}`)}}}class Wa{constructor(){this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.ksRows=0,this.keySize=0,this.keySchedule=void 0,this.invKeySchedule=void 0,this.initTable()}uint8ArrayToUint32Array_(e){const c=new DataView(e),t=new Uint32Array(4);for(let a=0;a<4;a++)t[a]=c.getUint32(4*a);return t}initTable(){const e=this.sBox,c=this.invSBox,t=this.subMix,a=t[0],r=t[1],i=t[2],n=t[3],f=this.invSubMix,s=f[0],o=f[1],l=f[2],d=f[3],u=new Uint32Array(256);let h=0,b=0,p=0;for(p=0;p<256;p++)u[p]=p<128?p<<1:p<<1^283;for(p=0;p<256;p++){let t=b^b<<1^b<<2^b<<3^b<<4;t=t>>>8^255&t^99,e[h]=t,c[t]=h;const f=u[h],p=u[f],g=u[p];let m=257*u[t]^16843008*t;a[h]=m<<24|m>>>8,r[h]=m<<16|m>>>16,i[h]=m<<8|m>>>24,n[h]=m,m=16843009*g^65537*p^257*f^16843008*h,s[t]=m<<24|m>>>8,o[t]=m<<16|m>>>16,l[t]=m<<8|m>>>24,d[t]=m,h?(h=f^u[u[u[g^f]]],b^=u[u[b]]):h=b=1}}expandKey(e){const c=this.uint8ArrayToUint32Array_(e);let t=!0,a=0;for(;a<c.length&&t;)t=c[a]===this.key[a],a++;if(t)return;this.key=c;const r=this.keySize=c.length;if(4!==r&&6!==r&&8!==r)throw new Error("Invalid aes key size="+r);const i=this.ksRows=4*(r+6+1);let n,f;const s=this.keySchedule=new Uint32Array(i),o=this.invKeySchedule=new Uint32Array(i),l=this.sBox,d=this.rcon,u=this.invSubMix,h=u[0],b=u[1],p=u[2],g=u[3];let m,v;for(n=0;n<i;n++)n<r?m=s[n]=c[n]:(v=m,n%r==0?(v=v<<8|v>>>24,v=l[v>>>24]<<24|l[v>>>16&255]<<16|l[v>>>8&255]<<8|l[255&v],v^=d[n/r|0]<<24):r>6&&n%r==4&&(v=l[v>>>24]<<24|l[v>>>16&255]<<16|l[v>>>8&255]<<8|l[255&v]),s[n]=m=(s[n-r]^v)>>>0);for(f=0;f<i;f++)n=i-f,v=3&f?s[n]:s[n-4],o[f]=f<4||n<=4?v:h[l[v>>>24]]^b[l[v>>>16&255]]^p[l[v>>>8&255]]^g[l[255&v]],o[f]=o[f]>>>0}networkToHostOrderSwap(e){return e<<24|(65280&e)<<8|(16711680&e)>>8|e>>>24}decrypt(e,c,t){const a=this.keySize+6,r=this.invKeySchedule,i=this.invSBox,n=this.invSubMix,f=n[0],s=n[1],o=n[2],l=n[3],d=this.uint8ArrayToUint32Array_(t);let u=d[0],h=d[1],b=d[2],p=d[3];const g=new Int32Array(e),m=new Int32Array(g.length);let v,y,E,S,_,T,k,A,L,I,w,R,D,x;const P=this.networkToHostOrderSwap;for(;c<g.length;){for(L=P(g[c]),I=P(g[c+1]),w=P(g[c+2]),R=P(g[c+3]),_=L^r[0],T=R^r[1],k=w^r[2],A=I^r[3],D=4,x=1;x<a;x++)v=f[_>>>24]^s[T>>16&255]^o[k>>8&255]^l[255&A]^r[D],y=f[T>>>24]^s[k>>16&255]^o[A>>8&255]^l[255&_]^r[D+1],E=f[k>>>24]^s[A>>16&255]^o[_>>8&255]^l[255&T]^r[D+2],S=f[A>>>24]^s[_>>16&255]^o[T>>8&255]^l[255&k]^r[D+3],_=v,T=y,k=E,A=S,D+=4;v=i[_>>>24]<<24^i[T>>16&255]<<16^i[k>>8&255]<<8^i[255&A]^r[D],y=i[T>>>24]<<24^i[k>>16&255]<<16^i[A>>8&255]<<8^i[255&_]^r[D+1],E=i[k>>>24]<<24^i[A>>16&255]<<16^i[_>>8&255]<<8^i[255&T]^r[D+2],S=i[A>>>24]<<24^i[_>>16&255]<<16^i[T>>8&255]<<8^i[255&k]^r[D+3],m[c]=P(v^u),m[c+1]=P(S^h),m[c+2]=P(E^b),m[c+3]=P(y^p),u=L,h=I,b=w,p=R,c+=4}return m.buffer}}class za{constructor(e,c,t){this.subtle=void 0,this.key=void 0,this.aesMode=void 0,this.subtle=e,this.key=c,this.aesMode=t}expandKey(){const e=function(e){switch(e){case Ha:return"AES-CBC";case qa:return"AES-CTR";default:throw new Error(`[FastAESKey] invalid aes mode ${e}`)}}(this.aesMode);return this.subtle.importKey("raw",this.key,{name:e},!1,["encrypt","decrypt"])}}class Xa{constructor(e,{removePKCS7Padding:c=!0}={}){if(this.logEnabled=!0,this.removePKCS7Padding=void 0,this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null,this.useSoftware=void 0,this.enableSoftwareAES=void 0,this.enableSoftwareAES=e.enableSoftwareAES,this.removePKCS7Padding=c,c)try{const e=self.crypto;e&&(this.subtle=e.subtle||e.webkitSubtle)}catch(t){}this.useSoftware=!this.subtle}destroy(){this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null}isSync(){return this.useSoftware}flush(){const{currentResult:e,remainderData:c}=this;if(!e||c)return this.reset(),null;const t=new Uint8Array(e);return this.reset(),this.removePKCS7Padding?function(e){const c=e.byteLength,t=c&&new DataView(e.buffer).getUint8(c-1);return t?e.slice(0,c-t):e}(t):t}reset(){this.currentResult=null,this.currentIV=null,this.remainderData=null,this.softwareDecrypter&&(this.softwareDecrypter=null)}decrypt(e,c,t,a){return this.useSoftware?new Promise(((r,i)=>{const n=ArrayBuffer.isView(e)?e:new Uint8Array(e);this.softwareDecrypt(n,c,t,a);const f=this.flush();f?r(f.buffer):i(new Error("[softwareDecrypt] Failed to decrypt data"))})):this.webCryptoDecrypt(new Uint8Array(e),c,t,a)}softwareDecrypt(e,c,t,a){const{currentIV:r,currentResult:i,remainderData:n}=this;if(a!==Ha||16!==c.byteLength)return xc.warn("SoftwareDecrypt: can only handle AES-128-CBC"),null;this.logOnce("JS AES decrypt"),n&&(e=yt(n,e),this.remainderData=null);const f=this.getValidChunk(e);if(!f.length)return null;r&&(t=r);let s=this.softwareDecrypter;s||(s=this.softwareDecrypter=new Wa),s.expandKey(c);const o=i;return this.currentResult=s.decrypt(f.buffer,0,t),this.currentIV=f.slice(-16).buffer,o||null}webCryptoDecrypt(e,c,t,a){if(this.key!==c||!this.fastAesKey){if(!this.subtle)return Promise.resolve(this.onWebCryptoError(e,c,t,a));this.key=c,this.fastAesKey=new za(this.subtle,c,a)}return this.fastAesKey.expandKey().then((c=>{if(!this.subtle)return Promise.reject(new Error("web crypto not initialized"));this.logOnce("WebCrypto AES decrypt");return new Ya(this.subtle,new Uint8Array(t),a).decrypt(e.buffer,c)})).catch((r=>(xc.warn(`[decrypter]: WebCrypto Error, disable WebCrypto API, ${r.name}: ${r.message}`),this.onWebCryptoError(e,c,t,a))))}onWebCryptoError(e,c,t,a){const r=this.enableSoftwareAES;if(r){this.useSoftware=!0,this.logEnabled=!0,this.softwareDecrypt(e,c,t,a);const r=this.flush();if(r)return r.buffer}throw new Error("WebCrypto"+(r?" and softwareDecrypt":"")+": failed to decrypt data")}getValidChunk(e){let c=e;const t=e.length-e.length%16;return t!==e.length&&(c=e.slice(0,t),this.remainderData=e.slice(t)),c}logOnce(e){this.logEnabled&&(xc.log(`[decrypter]: ${e}`),this.logEnabled=!1)}}const Qa=Math.pow(2,17);class Ja{constructor(e){this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=e}destroy(){this.loader&&(this.loader.destroy(),this.loader=null)}abort(){this.loader&&this.loader.abort()}load(e,c){const t=e.url;if(!t)return Promise.reject(new cr({type:oc.NETWORK_ERROR,details:lc.FRAG_LOAD_ERROR,fatal:!1,frag:e,error:new Error("Fragment does not have a "+(t?"part list":"url")),networkDetails:null}));this.abort();const a=this.config,r=a.fLoader,i=a.loader;return new Promise(((n,f)=>{if(this.loader&&this.loader.destroy(),e.gap){if(e.tagList.some((e=>"GAP"===e[0])))return void f(er(e));e.gap=!1}const s=this.loader=r?new r(a):new i(a),o=Za(e);e.loader=s;const l=Aa(a.fragLoadPolicy.default),d={loadPolicy:l,timeout:l.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:"initSegment"===e.sn?1/0:Qa};e.stats=s.stats;const u={onSuccess:(c,t,a,r)=>{this.resetLoader(e,s);let i=c.data;a.resetIV&&e.decryptdata&&(e.decryptdata.iv=new Uint8Array(i.slice(0,16)),i=i.slice(16)),n({frag:e,part:null,payload:i,networkDetails:r})},onError:(c,a,r,i)=>{this.resetLoader(e,s),f(new cr({type:oc.NETWORK_ERROR,details:lc.FRAG_LOAD_ERROR,fatal:!1,frag:e,response:kc({url:t,data:void 0},c),error:new Error(`HTTP Error ${c.code} ${c.text}`),networkDetails:r,stats:i}))},onAbort:(c,t,a)=>{this.resetLoader(e,s),f(new cr({type:oc.NETWORK_ERROR,details:lc.INTERNAL_ABORTED,fatal:!1,frag:e,error:new Error("Aborted"),networkDetails:a,stats:c}))},onTimeout:(c,t,a)=>{this.resetLoader(e,s),f(new cr({type:oc.NETWORK_ERROR,details:lc.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e,error:new Error(`Timeout after ${d.timeout}ms`),networkDetails:a,stats:c}))}};c&&(u.onProgress=(t,a,r,i)=>c({frag:e,part:null,payload:r,networkDetails:i})),s.load(o,d,u)}))}loadPart(e,c,t){this.abort();const a=this.config,r=a.fLoader,i=a.loader;return new Promise(((n,f)=>{if(this.loader&&this.loader.destroy(),e.gap||c.gap)return void f(er(e,c));const s=this.loader=r?new r(a):new i(a),o=Za(e,c);e.loader=s;const l=Aa(a.fragLoadPolicy.default),d={loadPolicy:l,timeout:l.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:Qa};c.stats=s.stats,s.load(o,d,{onSuccess:(a,r,i,f)=>{this.resetLoader(e,s),this.updateStatsFromPart(e,c);const o={frag:e,part:c,payload:a.data,networkDetails:f};t(o),n(o)},onError:(t,a,r,i)=>{this.resetLoader(e,s),f(new cr({type:oc.NETWORK_ERROR,details:lc.FRAG_LOAD_ERROR,fatal:!1,frag:e,part:c,response:kc({url:o.url,data:void 0},t),error:new Error(`HTTP Error ${t.code} ${t.text}`),networkDetails:r,stats:i}))},onAbort:(t,a,r)=>{e.stats.aborted=c.stats.aborted,this.resetLoader(e,s),f(new cr({type:oc.NETWORK_ERROR,details:lc.INTERNAL_ABORTED,fatal:!1,frag:e,part:c,error:new Error("Aborted"),networkDetails:r,stats:t}))},onTimeout:(t,a,r)=>{this.resetLoader(e,s),f(new cr({type:oc.NETWORK_ERROR,details:lc.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e,part:c,error:new Error(`Timeout after ${d.timeout}ms`),networkDetails:r,stats:t}))}})}))}updateStatsFromPart(e,c){const t=e.stats,a=c.stats,r=a.total;if(t.loaded+=a.loaded,r){const a=Math.round(e.duration/c.duration),i=Math.min(Math.round(t.loaded/r),a),n=(a-i)*Math.round(t.loaded/i);t.total=t.loaded+n}else t.total=Math.max(t.loaded,t.total);const i=t.loading,n=a.loading;i.start?i.first+=n.first-n.start:(i.start=n.start,i.first=n.first),i.end=n.end}resetLoader(e,c){e.loader=null,this.loader===c&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),c.destroy()}}function Za(e,c=null){const t=c||e,a={frag:e,part:c,responseType:"arraybuffer",url:t.url,headers:{},rangeStart:0,rangeEnd:0},r=t.byteRangeStartOffset,i=t.byteRangeEndOffset;if(nc(r)&&nc(i)){var n;let c=r,t=i;if("initSegment"===e.sn&&("AES-128"===(f=null==(n=e.decryptdata)?void 0:n.method)||"AES-256"===f)){const e=i-r;e%16&&(t=i+(16-e%16)),0!==r&&(a.resetIV=!0,c=r-16)}a.rangeStart=c,a.rangeEnd=t}var f;return a}function er(e,c){const t=new Error(`GAP ${e.gap?"tag":"attribute"} found`),a={type:oc.MEDIA_ERROR,details:lc.FRAG_GAP,fatal:!1,frag:e,error:t,networkDetails:null};return c&&(a.part=c),(c||e).stats.aborted=!0,new cr(a)}class cr extends Error{constructor(e){super(e.error.message),this.data=void 0,this.data=e}}class tr extends Ac{constructor(e,c){super(e,c),this._boundTick=void 0,this._tickTimer=null,this._tickInterval=null,this._tickCallCount=0,this._boundTick=this.tick.bind(this)}destroy(){this.onHandlerDestroying(),this.onHandlerDestroyed()}onHandlerDestroying(){this.clearNextTick(),this.clearInterval()}onHandlerDestroyed(){}hasInterval(){return!!this._tickInterval}hasNextTick(){return!!this._tickTimer}setInterval(e){return!this._tickInterval&&(this._tickCallCount=0,this._tickInterval=self.setInterval(this._boundTick,e),!0)}clearInterval(){return!!this._tickInterval&&(self.clearInterval(this._tickInterval),this._tickInterval=null,!0)}clearNextTick(){return!!this._tickTimer&&(self.clearTimeout(this._tickTimer),this._tickTimer=null,!0)}tick(){this._tickCallCount++,1===this._tickCallCount&&(this.doTick(),this._tickCallCount>1&&this.tickImmediate(),this._tickCallCount=0)}tickImmediate(){this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0)}doTick(){}}class ar{constructor(e,c,t,a=0,r=-1,i=!1){this.level=void 0,this.sn=void 0,this.part=void 0,this.id=void 0,this.size=void 0,this.partial=void 0,this.transmuxing={start:0,executeStart:0,executeEnd:0,end:0},this.buffering={audio:{start:0,executeStart:0,executeEnd:0,end:0},video:{start:0,executeStart:0,executeEnd:0,end:0},audiovideo:{start:0,executeStart:0,executeEnd:0,end:0}},this.level=e,this.sn=c,this.id=t,this.size=a,this.part=r,this.partial=i}}const rr={length:0,start:()=>0,end:()=>0};class ir{static isBuffered(e,c){if(e){const t=ir.getBuffered(e);for(let e=t.length;e--;)if(c>=t.start(e)&&c<=t.end(e))return!0}return!1}static bufferedRanges(e){if(e){const c=ir.getBuffered(e);return ir.timeRangesToArray(c)}return[]}static timeRangesToArray(e){const c=[];for(let t=0;t<e.length;t++)c.push({start:e.start(t),end:e.end(t)});return c}static bufferInfo(e,c,t){if(e){const a=ir.bufferedRanges(e);if(a.length)return ir.bufferedInfo(a,c,t)}return{len:0,start:c,end:c,bufferedIndex:-1}}static bufferedInfo(e,c,t){c=Math.max(0,c),e.length>1&&e.sort(((e,c)=>e.start-c.start||c.end-e.end));let a=-1,r=[];if(t)for(let o=0;o<e.length;o++){c>=e[o].start&&c<=e[o].end&&(a=o);const i=r.length;if(i){const c=r[i-1].end;e[o].start-c<t?e[o].end>c&&(r[i-1].end=e[o].end):r.push(e[o])}else r.push(e[o])}else r=e;let i,n=0,f=c,s=c;for(let o=0;o<r.length;o++){const e=r[o].start,l=r[o].end;if(-1===a&&c>=e&&c<=l&&(a=o),c+t>=e&&c<l)f=e,s=l,n=s-c;else if(c+t<e){i=e;break}}return{len:n,start:f||0,end:s||0,nextStart:i,buffered:e,bufferedIndex:a}}static getBuffered(e){try{return e.buffered||rr}catch(c){return xc.log("failed to get media.buffered",c),rr}}}const nr=/\{\$([a-zA-Z0-9-_]+)\}/g;function fr(e){return nr.test(e)}function sr(e,c){if(null!==e.variableList||e.hasVariableRefs){const t=e.variableList;return c.replace(nr,(c=>{const a=c.substring(2,c.length-1),r=null==t?void 0:t[a];return void 0===r?(e.playlistParsingError||(e.playlistParsingError=new Error(`Missing preceding EXT-X-DEFINE tag for Variable Reference: "${a}"`)),c):r}))}return c}function or(e,c,t){let a,r,i=e.variableList;if(i||(e.variableList=i={}),"QUERYPARAM"in c){a=c.QUERYPARAM;try{const e=new self.URL(t).searchParams;if(!e.has(a))throw new Error(`"${a}" does not match any query parameter in URI: "${t}"`);r=e.get(a)}catch(n){e.playlistParsingError||(e.playlistParsingError=new Error(`EXT-X-DEFINE QUERYPARAM: ${n.message}`))}}else a=c.NAME,r=c.VALUE;a in i?e.playlistParsingError||(e.playlistParsingError=new Error(`EXT-X-DEFINE duplicate Variable Name declarations: "${a}"`)):i[a]=r||""}function lr(e,c,t){const a=c.IMPORT;if(t&&a in t){let c=e.variableList;c||(e.variableList=c={}),c[a]=t[a]}else e.playlistParsingError||(e.playlistParsingError=new Error(`EXT-X-DEFINE IMPORT attribute not found in Multivariant Playlist: "${a}"`))}const dr=/^(\d+)x(\d+)$/,ur=/(.+?)=(".*?"|.*?)(?:,|$)/g;class hr{constructor(e,c){"string"==typeof e&&(e=hr.parseAttrList(e,c)),_c(this,e)}get clientAttrs(){return Object.keys(this).filter((e=>"X-"===e.substring(0,2)))}decimalInteger(e){const c=parseInt(this[e],10);return c>Number.MAX_SAFE_INTEGER?1/0:c}hexadecimalInteger(e){if(this[e]){let c=(this[e]||"0x").slice(2);c=(1&c.length?"0":"")+c;const t=new Uint8Array(c.length/2);for(let e=0;e<c.length/2;e++)t[e]=parseInt(c.slice(2*e,2*e+2),16);return t}return null}hexadecimalIntegerAsNumber(e){const c=parseInt(this[e],16);return c>Number.MAX_SAFE_INTEGER?1/0:c}decimalFloatingPoint(e){return parseFloat(this[e])}optionalFloat(e,c){const t=this[e];return t?parseFloat(t):c}enumeratedString(e){return this[e]}enumeratedStringList(e,c){const t=this[e];return(t?t.split(/[ ,]+/):[]).reduce(((e,c)=>(e[c.toLowerCase()]=!0,e)),c)}bool(e){return"YES"===this[e]}decimalResolution(e){const c=dr.exec(this[e]);if(null!==c)return{width:parseInt(c[1],10),height:parseInt(c[2],10)}}static parseAttrList(e,c){let t;const a={};for(ur.lastIndex=0;null!==(t=ur.exec(e));){const r=t[1].trim();let i=t[2];const n=0===i.indexOf('"')&&i.lastIndexOf('"')===i.length-1;let f=!1;if(n)i=i.slice(1,-1);else switch(r){case"IV":case"SCTE35-CMD":case"SCTE35-IN":case"SCTE35-OUT":f=!0}if(c&&(n||f))i=sr(c,i);else if(!f&&!n)switch(r){case"CLOSED-CAPTIONS":if("NONE"===i)break;case"ALLOWED-CPC":case"CLASS":case"ASSOC-LANGUAGE":case"AUDIO":case"BYTERANGE":case"CHANNELS":case"CHARACTERISTICS":case"CODECS":case"DATA-ID":case"END-DATE":case"GROUP-ID":case"ID":case"IMPORT":case"INSTREAM-ID":case"KEYFORMAT":case"KEYFORMATVERSIONS":case"LANGUAGE":case"NAME":case"PATHWAY-ID":case"QUERYPARAM":case"RECENTLY-REMOVED-DATERANGES":case"SERVER-URI":case"STABLE-RENDITION-ID":case"STABLE-VARIANT-ID":case"START-DATE":case"SUBTITLES":case"SUPPLEMENTAL-CODECS":case"URI":case"VALUE":case"VIDEO":case"X-ASSET-LIST":case"X-ASSET-URI":xc.warn(`${e}: attribute ${r} is missing quotes`)}a[r]=i}return a}}function br(e){return"SCTE35-OUT"===e||"SCTE35-IN"===e||"SCTE35-CMD"===e}class pr{constructor(e,c,t=0){var a;if(this.attr=void 0,this.tagAnchor=void 0,this.tagOrder=void 0,this._startDate=void 0,this._endDate=void 0,this._dateAtEnd=void 0,this._cue=void 0,this._badValueForSameId=void 0,this.tagAnchor=(null==c?void 0:c.tagAnchor)||null,this.tagOrder=null!=(a=null==c?void 0:c.tagOrder)?a:t,c){const t=c.attr;for(const c in t)if(Object.prototype.hasOwnProperty.call(e,c)&&e[c]!==t[c]){xc.warn(`DATERANGE tag attribute: "${c}" does not match for tags with ID: "${e.ID}"`),this._badValueForSameId=c;break}e=_c(new hr({}),t,e)}if(this.attr=e,c?(this._startDate=c._startDate,this._cue=c._cue,this._endDate=c._endDate,this._dateAtEnd=c._dateAtEnd):this._startDate=new Date(e["START-DATE"]),"END-DATE"in this.attr){const e=(null==c?void 0:c.endDate)||new Date(this.attr["END-DATE"]);nc(e.getTime())&&(this._endDate=e)}}get id(){return this.attr.ID}get class(){return this.attr.CLASS}get cue(){const e=this._cue;return void 0===e?this._cue=this.attr.enumeratedStringList(this.attr.CUE?"CUE":"X-CUE",{pre:!1,post:!1,once:!1}):e}get startTime(){const{tagAnchor:e}=this;return null===e||null===e.programDateTime?(xc.warn(`Expected tagAnchor Fragment with PDT set for DateRange "${this.id}": ${e}`),NaN):e.start+(this.startDate.getTime()-e.programDateTime)/1e3}get startDate(){return this._startDate}get endDate(){const e=this._endDate||this._dateAtEnd;if(e)return e;const c=this.duration;return null!==c?this._dateAtEnd=new Date(this._startDate.getTime()+1e3*c):null}get duration(){if("DURATION"in this.attr){const e=this.attr.decimalFloatingPoint("DURATION");if(nc(e))return e}else if(this._endDate)return(this._endDate.getTime()-this._startDate.getTime())/1e3;return null}get plannedDuration(){return"PLANNED-DURATION"in this.attr?this.attr.decimalFloatingPoint("PLANNED-DURATION"):null}get endOnNext(){return this.attr.bool("END-ON-NEXT")}get isInterstitial(){return"com.apple.hls.interstitial"===this.class}get isValid(){return!!this.id&&!this._badValueForSameId&&nc(this.startDate.getTime())&&(null===this.duration||this.duration>=0)&&(!this.endOnNext||!!this.class)&&(!this.attr.CUE||!this.cue.pre&&!this.cue.post||this.cue.pre!==this.cue.post)&&(!this.isInterstitial||"X-ASSET-URI"in this.attr||"X-ASSET-LIST"in this.attr)}}class gr{constructor(e){this.PTSKnown=!1,this.alignedSliding=!1,this.averagetargetduration=void 0,this.endCC=0,this.endSN=0,this.fragments=void 0,this.fragmentHint=void 0,this.partList=null,this.dateRanges=void 0,this.dateRangeTagCount=0,this.live=!0,this.requestScheduled=-1,this.ageHeader=0,this.advancedDateTime=void 0,this.updated=!0,this.advanced=!0,this.misses=0,this.startCC=0,this.startSN=0,this.startTimeOffset=null,this.targetduration=0,this.totalduration=0,this.type=null,this.url=void 0,this.m3u8="",this.version=null,this.canBlockReload=!1,this.canSkipUntil=0,this.canSkipDateRanges=!1,this.skippedSegments=0,this.recentlyRemovedDateranges=void 0,this.partHoldBack=0,this.holdBack=0,this.partTarget=0,this.preloadHint=void 0,this.renditionReports=void 0,this.tuneInGoal=0,this.deltaUpdateFailed=void 0,this.driftStartTime=0,this.driftEndTime=0,this.driftStart=0,this.driftEnd=0,this.encryptedFragments=void 0,this.playlistParsingError=null,this.variableList=null,this.hasVariableRefs=!1,this.appliedTimelineOffset=void 0,this.fragments=[],this.encryptedFragments=[],this.dateRanges={},this.url=e}reloaded(e){if(!e)return this.advanced=!0,void(this.updated=!0);const c=this.lastPartSn-e.lastPartSn,t=this.lastPartIndex-e.lastPartIndex;this.updated=this.endSN!==e.endSN||!!t||!!c||!this.live,this.advanced=this.endSN>e.endSN||c>0||0===c&&t>0,this.updated||this.advanced?this.misses=Math.floor(.6*e.misses):this.misses=e.misses+1}hasKey(e){return this.encryptedFragments.some((c=>{let t=c.decryptdata;return t||(c.setKeyFormat(e.keyFormat),t=c.decryptdata),!!t&&e.matches(t)}))}get hasProgramDateTime(){return!!this.fragments.length&&nc(this.fragments[this.fragments.length-1].programDateTime)}get levelTargetDuration(){return this.averagetargetduration||this.targetduration||10}get drift(){const e=this.driftEndTime-this.driftStartTime;if(e>0){return 1e3*(this.driftEnd-this.driftStart)/e}return 1}get edge(){return this.partEnd||this.fragmentEnd}get partEnd(){var e;return null!=(e=this.partList)&&e.length?this.partList[this.partList.length-1].end:this.fragmentEnd}get fragmentEnd(){return this.fragments.length?this.fragments[this.fragments.length-1].end:0}get fragmentStart(){return this.fragments.length?this.fragments[0].start:0}get age(){return this.advancedDateTime?Math.max(Date.now()-this.advancedDateTime,0)/1e3:0}get lastPartIndex(){var e;return null!=(e=this.partList)&&e.length?this.partList[this.partList.length-1].index:-1}get maxPartIndex(){const e=this.partList;if(e){const c=this.lastPartIndex;if(-1!==c){for(let t=e.length;t--;)if(e[t].index>c)return e[t].index;return c}}return 0}get lastPartSn(){var e;return null!=(e=this.partList)&&e.length?this.partList[this.partList.length-1].fragment.sn:this.endSN}get expired(){if(this.live&&this.age&&this.misses<3){const e=this.partEnd-this.fragmentStart;return this.age>Math.max(e,this.totalduration)+this.levelTargetDuration}return!1}}function mr(e,c){return e.length===c.length&&!e.some(((e,t)=>e!==c[t]))}function vr(e,c){return!e&&!c||!(!e||!c)&&mr(e,c)}function yr(e){return"AES-128"===e||"AES-256"===e||"AES-256-CTR"===e}function Er(e){switch(e){case"AES-128":case"AES-256":return Ha;case"AES-256-CTR":return qa;default:throw new Error(`invalid full segment method ${e}`)}}function Sr(e){return Uint8Array.from(atob(e),(e=>e.charCodeAt(0)))}function _r(e){return Uint8Array.from(unescape(encodeURIComponent(e)),(e=>e.charCodeAt(0)))}function Tr(e){const c=function(e,c,t){const a=e[c];e[c]=e[t],e[t]=a};c(e,0,3),c(e,1,2),c(e,4,5),c(e,6,7)}function kr(e){const c=e.split(":");let t=null;if("data"===c[0]&&2===c.length){const e=c[1].split(";"),a=e[e.length-1].split(",");if(2===a.length){const c="base64"===a[0],r=a[1];c?(e.splice(-1,1),t=Sr(r)):t=function(e){const c=_r(e).subarray(0,16),t=new Uint8Array(16);return t.set(c,16-c.length),t}(r)}}return t}const Ar="undefined"!=typeof self?self:void 0;var Lr={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.fps",PLAYREADY:"com.microsoft.playready",WIDEVINE:"com.widevine.alpha"},Ir="org.w3.clearkey",wr="com.apple.streamingkeydelivery",Rr="com.microsoft.playready",Dr="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed";function xr(e){switch(e){case wr:return Lr.FAIRPLAY;case Rr:return Lr.PLAYREADY;case Dr:return Lr.WIDEVINE;case Ir:return Lr.CLEARKEY}}function Pr(e){switch(e){case Lr.FAIRPLAY:return wr;case Lr.PLAYREADY:return Rr;case Lr.WIDEVINE:return Dr;case Lr.CLEARKEY:return Ir}}function Cr(e){const{drmSystems:c,widevineLicenseUrl:t}=e,a=c?[Lr.FAIRPLAY,Lr.WIDEVINE,Lr.PLAYREADY,Lr.CLEARKEY].filter((e=>!!c[e])):[];return!a[Lr.WIDEVINE]&&t&&a.push(Lr.WIDEVINE),a}const Or=null!=Ar&&null!=(Mr=Ar.navigator)&&Mr.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null;var Mr;function Fr(e){const c=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2),t=String.fromCharCode.apply(null,Array.from(c)),a=t.substring(t.indexOf("<"),t.length),r=(new DOMParser).parseFromString(a,"text/xml").getElementsByTagName("KID")[0];if(r){const e=r.childNodes[0]?r.childNodes[0].nodeValue:r.getAttribute("VALUE");if(e){const c=Sr(e).subarray(0,16);return Tr(c),c}}return null}let Nr={};class Ur{static clearKeyUriToKeyIdMap(){Nr={}}static setKeyIdForUri(e,c){Nr[e]=c}constructor(e,c,t,a=[1],r=null,i){this.uri=void 0,this.method=void 0,this.keyFormat=void 0,this.keyFormatVersions=void 0,this.encrypted=void 0,this.isCommonEncryption=void 0,this.iv=null,this.key=null,this.keyId=null,this.pssh=null,this.method=e,this.uri=c,this.keyFormat=t,this.keyFormatVersions=a,this.iv=r,this.encrypted=!!e&&"NONE"!==e,this.isCommonEncryption=this.encrypted&&!yr(e),null!=i&&i.startsWith("0x")&&(this.keyId=new Uint8Array(Fc(i)))}matches(e){return e.uri===this.uri&&e.method===this.method&&e.encrypted===this.encrypted&&e.keyFormat===this.keyFormat&&mr(e.keyFormatVersions,this.keyFormatVersions)&&vr(e.iv,this.iv)&&vr(e.keyId,this.keyId)}isSupported(){if(this.method){if(yr(this.method)||"NONE"===this.method)return!0;if("identity"===this.keyFormat)return"SAMPLE-AES"===this.method;switch(this.keyFormat){case wr:case Dr:case Rr:case Ir:return-1!==["SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)}}return!1}getDecryptData(e,c){if(!this.encrypted||!this.uri)return null;if(yr(this.method)){let c=this.iv;c||("number"!=typeof e&&(xc.warn(`missing IV for initialization segment with method="${this.method}" - compliance issue`),e=0),c=function(e){const c=new Uint8Array(16);for(let t=12;t<16;t++)c[t]=e>>8*(15-t)&255;return c}(e));return new Ur(this.method,this.uri,"identity",this.keyFormatVersions,c)}if(this.keyId){const e=Nr[this.uri];if(e&&!mr(this.keyId,e)&&Ur.setKeyIdForUri(this.uri,this.keyId),this.pssh)return this}const t=kr(this.uri);if(t)switch(this.keyFormat){case Dr:if(this.pssh=t,!this.keyId){const e=function(e){const c=[];if(e instanceof ArrayBuffer){const t=e.byteLength;let a=0;for(;a+32<t;){const t=Lt(new DataView(e,a));c.push(t),a+=t.size}}return c}(t.buffer);if(e.length){var a;const c=e[0];this.keyId=null!=(a=c.kids)&&a.length?c.kids[0]:null}}this.keyId||(this.keyId=Br(c));break;case Rr:{const e=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);this.pssh=At(e,0,t),this.keyId=Fr(t);break}default:{let e=t.subarray(0,16);if(16!==e.length){const c=new Uint8Array(16);c.set(e,16-e.length),e=c}this.keyId=e;break}}if(!this.keyId||16!==this.keyId.byteLength){let e;e=function(e){const c=null==e?void 0:e[Dr];if(c)return c.keyId;return null}(c),e||(e=Br(c),e||(e=Nr[this.uri])),e&&(this.keyId=e,Ur.setKeyIdForUri(this.uri,e))}return this}}function Br(e){const c=null==e?void 0:e[Rr];if(c){const e=kr(c.uri);if(e)return Fr(e)}return null}const $r=/#EXT-X-STREAM-INF:([^\r\n]*)(?:[\r\n](?:#[^\r\n]*)?)*([^\r\n]+)|#EXT-X-(SESSION-DATA|SESSION-KEY|DEFINE|CONTENT-STEERING|START):([^\r\n]*)[\r\n]+/g,jr=/#EXT-X-MEDIA:(.*)/g,Gr=/^#EXT(?:INF|-X-TARGETDURATION):/m,Kr=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/(?!#) *(\S[^\r\n]*)/.source,/#.*/.source].join("|"),"g"),Vr=new RegExp([/#EXT-X-(PROGRAM-DATE-TIME|BYTERANGE|DATERANGE|DEFINE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/.source,/#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\d+)/.source,/#EXT-X-(DISCONTINUITY|ENDLIST|GAP|INDEPENDENT-SEGMENTS)/.source,/(#)([^:]*):(.*)/.source,/(#)(.*)(?:.*)\r?\n?/.source].join("|"));let Hr=class e{static findGroup(e,c){for(let t=0;t<e.length;t++){const a=e[t];if(a.id===c)return a}}static resolve(e,c){return Hc.buildAbsoluteURL(c,e,{alwaysNormalize:!0})}static isMediaPlaylist(e){return Gr.test(e)}static parseMasterPlaylist(c,t){const a={contentSteering:null,levels:[],playlistParsingError:null,sessionData:null,sessionKeys:null,startTimeOffset:null,variableList:null,hasVariableRefs:fr(c)},r=[];if($r.lastIndex=0,!c.startsWith("#EXTM3U"))return a.playlistParsingError=new Error("no EXTM3U delimiter"),a;let i;for(;null!=(i=$r.exec(c));)if(i[1]){var n;const c=new hr(i[1],a),f=sr(a,i[2]),s={attrs:c,bitrate:c.decimalInteger("BANDWIDTH")||c.decimalInteger("AVERAGE-BANDWIDTH"),name:c.NAME,url:e.resolve(f,t)},o=c.decimalResolution("RESOLUTION");o&&(s.width=o.width,s.height=o.height),Xr(c.CODECS,s);const l=c["SUPPLEMENTAL-CODECS"];l&&(s.supplemental={},Xr(l,s.supplemental)),null!=(n=s.unknownCodecs)&&n.length||r.push(s),a.levels.push(s)}else if(i[3]){const c=i[3],r=i[4];switch(c){case"SESSION-DATA":{const e=new hr(r,a),c=e["DATA-ID"];c&&(null===a.sessionData&&(a.sessionData={}),a.sessionData[c]=e);break}case"SESSION-KEY":{const e=Wr(r,t,a);e.encrypted&&e.isSupported()?(null===a.sessionKeys&&(a.sessionKeys=[]),a.sessionKeys.push(e)):xc.warn(`[Keys] Ignoring invalid EXT-X-SESSION-KEY tag: "${r}"`);break}case"DEFINE":or(a,new hr(r,a),t);break;case"CONTENT-STEERING":{const c=new hr(r,a);a.contentSteering={uri:e.resolve(c["SERVER-URI"],t),pathwayId:c["PATHWAY-ID"]||"."};break}case"START":a.startTimeOffset=zr(r)}}const f=r.length>0&&r.length<a.levels.length;return a.levels=f?r:a.levels,0===a.levels.length&&(a.playlistParsingError=new Error("no levels found in manifest")),a}static parseMasterPlaylistMedia(c,t,a){let r;const i={},n=a.levels,f={AUDIO:n.map((e=>({id:e.attrs.AUDIO,audioCodec:e.audioCodec}))),SUBTITLES:n.map((e=>({id:e.attrs.SUBTITLES,textCodec:e.textCodec}))),"CLOSED-CAPTIONS":[]};let s=0;for(jr.lastIndex=0;null!==(r=jr.exec(c));){const c=new hr(r[1],a),n=c.TYPE;if(n){const a=f[n],r=i[n]||[];i[n]=r;const o=c.LANGUAGE,l=c["ASSOC-LANGUAGE"],d=c.CHANNELS,u=c.CHARACTERISTICS,h=c["INSTREAM-ID"],b={attrs:c,bitrate:0,id:s++,groupId:c["GROUP-ID"]||"",name:c.NAME||o||"",type:n,default:c.bool("DEFAULT"),autoselect:c.bool("AUTOSELECT"),forced:c.bool("FORCED"),lang:o,url:c.URI?e.resolve(c.URI,t):""};if(l&&(b.assocLang=l),d&&(b.channels=d),u&&(b.characteristics=u),h&&(b.instreamId=h),null!=a&&a.length){const c=e.findGroup(a,b.groupId)||a[0];Qr(b,c,"audioCodec"),Qr(b,c,"textCodec")}r.push(b)}}return i}static parseLevelPlaylist(e,c,t,a,r,i){var n;const f={url:c},s=new gr(c),o=s.fragments,l=[];let d,u,h,b,p=null,g=0,m=0,v=0,y=0,E=0,S=null,_=new Jc(a,f),T=-1,k=!1,A=null;if(Kr.lastIndex=0,s.m3u8=e,s.hasVariableRefs=fr(e),"#EXTM3U"!==(null==(n=Kr.exec(e))?void 0:n[0]))return s.playlistParsingError=new Error("Missing format identifier #EXTM3U"),s;for(;null!==(d=Kr.exec(e));){k&&(k=!1,_=new Jc(a,f),_.playlistOffset=v,_.setStart(v),_.sn=g,_.cc=y,E&&(_.bitrate=E),_.level=t,p&&(_.initSegment=p,p.rawProgramDateTime&&(_.rawProgramDateTime=p.rawProgramDateTime,p.rawProgramDateTime=null),A&&(_.setByteRange(A),A=null)));const e=d[1];if(e){_.duration=parseFloat(e);const c=(" "+d[2]).slice(1);_.title=c||null,_.tagList.push(c?["INF",e,c]:["INF",e])}else if(d[3]){if(nc(_.duration)){_.playlistOffset=v,_.setStart(v),h&&ei(_,h,s),_.sn=g,_.level=t,_.cc=y,o.push(_);const e=(" "+d[3]).slice(1);_.relurl=sr(s,e),Jr(_,S,l),S=_,v+=_.duration,g++,m=0,k=!0}}else{if(d=d[0].match(Vr),!d){xc.warn("No matches on slow regex match for level playlist!");continue}for(u=1;u<d.length&&void 0===d[u];u++);const e=(" "+d[u]).slice(1),r=(" "+d[u+1]).slice(1),n=d[u+2]?(" "+d[u+2]).slice(1):null;switch(e){case"BYTERANGE":S?_.setByteRange(r,S):_.setByteRange(r);break;case"PROGRAM-DATE-TIME":_.rawProgramDateTime=r,_.tagList.push(["PROGRAM-DATE-TIME",r]),-1===T&&(T=o.length);break;case"PLAYLIST-TYPE":s.type&&ci(s,e,d),s.type=r.toUpperCase();break;case"MEDIA-SEQUENCE":0!==s.startSN?ci(s,e,d):o.length>0&&ti(s,e,d),g=s.startSN=parseInt(r);break;case"SKIP":{s.skippedSegments&&ci(s,e,d);const c=new hr(r,s),t=c.decimalInteger("SKIPPED-SEGMENTS");if(nc(t)){s.skippedSegments+=t;for(let e=t;e--;)o.push(null);g+=t}const a=c.enumeratedString("RECENTLY-REMOVED-DATERANGES");a&&(s.recentlyRemovedDateranges=(s.recentlyRemovedDateranges||[]).concat(a.split("\t")));break}case"TARGETDURATION":0!==s.targetduration&&ci(s,e,d),s.targetduration=Math.max(parseInt(r),1);break;case"VERSION":null!==s.version&&ci(s,e,d),s.version=parseInt(r);break;case"INDEPENDENT-SEGMENTS":break;case"ENDLIST":s.live||ci(s,e,d),s.live=!1;break;case"#":(r||n)&&_.tagList.push(n?[r,n]:[r]);break;case"DISCONTINUITY":y++,_.tagList.push(["DIS"]);break;case"GAP":_.gap=!0,_.tagList.push([e]);break;case"BITRATE":_.tagList.push([e,r]),E=1e3*parseInt(r),nc(E)?_.bitrate=E:E=0;break;case"DATERANGE":{const e=new hr(r,s),c=new pr(e,s.dateRanges[e.ID],s.dateRangeTagCount);s.dateRangeTagCount++,c.isValid||s.skippedSegments?s.dateRanges[c.id]=c:xc.warn(`Ignoring invalid DATERANGE tag: "${r}"`),_.tagList.push(["EXT-X-DATERANGE",r]);break}case"DEFINE":{const e=new hr(r,s);"IMPORT"in e?lr(s,e,i):or(s,e,c)}break;case"DISCONTINUITY-SEQUENCE":0!==s.startCC?ci(s,e,d):o.length>0&&ti(s,e,d),s.startCC=y=parseInt(r);break;case"KEY":{const e=Wr(r,c,s);if(e.isSupported()){if("NONE"===e.method){h=void 0;break}h||(h={});const c=h[e.keyFormat];null!=c&&c.matches(e)||(c&&(h=_c({},h)),h[e.keyFormat]=e)}else xc.warn(`[Keys] Ignoring unsupported EXT-X-KEY tag: "${r}"`);break}case"START":s.startTimeOffset=zr(r);break;case"MAP":{const e=new hr(r,s);if(_.duration){const c=new Jc(a,f);Zr(c,e,t,h),p=c,_.initSegment=p,p.rawProgramDateTime&&!_.rawProgramDateTime&&(_.rawProgramDateTime=p.rawProgramDateTime)}else{const c=_.byteRangeEndOffset;if(c){const e=_.byteRangeStartOffset;A=`${c-e}@${e}`}else A=null;Zr(_,e,t,h),p=_,k=!0}p.cc=y;break}case"SERVER-CONTROL":b&&ci(s,e,d),b=new hr(r),s.canBlockReload=b.bool("CAN-BLOCK-RELOAD"),s.canSkipUntil=b.optionalFloat("CAN-SKIP-UNTIL",0),s.canSkipDateRanges=s.canSkipUntil>0&&b.bool("CAN-SKIP-DATERANGES"),s.partHoldBack=b.optionalFloat("PART-HOLD-BACK",0),s.holdBack=b.optionalFloat("HOLD-BACK",0);break;case"PART-INF":{s.partTarget&&ci(s,e,d);const c=new hr(r);s.partTarget=c.decimalFloatingPoint("PART-TARGET");break}case"PART":{let e=s.partList;e||(e=s.partList=[]);const c=m>0?e[e.length-1]:void 0,t=m++,a=new hr(r,s),i=new Zc(a,_,f,t,c);e.push(i),_.duration+=i.duration;break}case"PRELOAD-HINT":{const e=new hr(r,s);s.preloadHint=e;break}case"RENDITION-REPORT":{const e=new hr(r,s);s.renditionReports=s.renditionReports||[],s.renditionReports.push(e);break}default:xc.warn(`line parsed but not handled: ${d}`)}}}S&&!S.relurl?(o.pop(),v-=S.duration,s.partList&&(s.fragmentHint=S)):s.partList&&(Jr(_,S,l),_.cc=y,s.fragmentHint=_,h&&ei(_,h,s)),s.targetduration||(s.playlistParsingError=new Error("Missing Target Duration"));const L=o.length,I=o[0],w=o[L-1];if(v+=s.skippedSegments*s.targetduration,v>0&&L&&w){s.averagetargetduration=v/L;const e=w.sn;s.endSN="initSegment"!==e?e:0,s.live||(w.endList=!0),T>0&&(!function(e,c){let t=e[c];for(let a=c;a--;){const c=e[a];if(!c)return;c.programDateTime=t.programDateTime-1e3*c.duration,t=c}}(o,T),I&&l.unshift(I))}return s.fragmentHint&&(v+=s.fragmentHint.duration),s.totalduration=v,l.length&&s.dateRangeTagCount&&I&&qr(l,s),s.endCC=y,s}};function qr(e,c){let t=e.length;if(!t){if(!c.hasProgramDateTime)return;{const a=c.fragments[c.fragments.length-1];e.push(a),t++}}const a=e[t-1],r=c.live?1/0:c.totalduration,i=Object.keys(c.dateRanges);for(let f=i.length;f--;){const s=c.dateRanges[i[f]],o=s.startDate.getTime();s.tagAnchor=a.ref;for(let a=t;a--;){var n;if((null==(n=e[a])?void 0:n.sn)<c.startSN)break;const t=Yr(c,o,e,a,r);if(-1!==t){s.tagAnchor=c.fragments[t].ref;break}}}}function Yr(e,c,t,a,r){const i=t[a];if(i){const f=i.programDateTime;if(c>=f||0===a){var n;if(c<=f+1e3*(((null==(n=t[a+1])?void 0:n.start)||r)-i.start)){const r=t[a].sn-e.startSN;if(r<0)return-1;const i=e.fragments;if(i.length>t.length){for(let n=(t[a+1]||i[i.length-1]).sn-e.startSN;n>r;n--){const e=i[n].programDateTime;if(c>=e&&c<e+1e3*i[n].duration)return n}}return r}}}return-1}function Wr(e,c,t){var a,r;const i=new hr(e,t),n=null!=(a=i.METHOD)?a:"",f=i.URI,s=i.hexadecimalInteger("IV"),o=i.KEYFORMATVERSIONS,l=null!=(r=i.KEYFORMAT)?r:"identity";f&&i.IV&&!s&&xc.error(`Invalid IV: ${i.IV}`);const d=f?Hr.resolve(f,c):"",u=(o||"1").split("/").map(Number).filter(Number.isFinite);return new Ur(n,d,l,u,s,i.KEYID)}function zr(e){const c=new hr(e).decimalFloatingPoint("TIME-OFFSET");return nc(c)?c:null}function Xr(e,c){let t=(e||"").split(/[ ,]+/).filter((e=>e));["video","audio","text"].forEach((e=>{const a=t.filter((c=>Rt(c,e)));a.length&&(c[`${e}Codec`]=a.map((e=>e.split("/")[0])).join(","),t=t.filter((e=>-1===a.indexOf(e))))})),c.unknownCodecs=t}function Qr(e,c,t){const a=c[t];a&&(e[t]=a)}function Jr(e,c,t){e.rawProgramDateTime?t.push(e):null!=c&&c.programDateTime&&(e.programDateTime=c.endProgramDateTime)}function Zr(e,c,t,a){e.relurl=c.URI,c.BYTERANGE&&e.setByteRange(c.BYTERANGE),e.level=t,e.sn="initSegment",a&&(e.levelkeys=a),e.initSegment=null}function ei(e,c,t){e.levelkeys=c;const{encryptedFragments:a}=t;a.length&&a[a.length-1].levelkeys===c||!Object.keys(c).some((e=>c[e].isCommonEncryption))||a.push(e)}function ci(e,c,t){e.playlistParsingError=new Error(`#EXT-X-${c} must not appear more than once (${t[0]})`)}function ti(e,c,t){e.playlistParsingError=new Error(`#EXT-X-${c} must appear before the first Media Segment (${t[0]})`)}function ai(e,c){const t=c.startPTS;if(nc(t)){let a,r=0;c.sn>e.sn?(r=t-e.start,a=e):(r=e.start-t,a=c),a.duration!==r&&a.setDuration(r)}else if(c.sn>e.sn){e.cc===c.cc&&e.minEndPTS?c.setStart(e.start+(e.minEndPTS-e.start)):c.setStart(e.start+e.duration)}else c.setStart(Math.max(e.start-c.duration,0))}function ri(e,c,t,a,r,i,n){a-t<=0&&(n.warn("Fragment should have a positive duration",c),a=t+c.duration,i=r+c.duration);let f=t,s=a;const o=c.startPTS,l=c.endPTS;if(nc(o)){const d=Math.abs(o-t);e&&d>e.totalduration?n.warn(`media timestamps and playlist times differ by ${d}s for level ${c.level} ${e.url}`):nc(c.deltaPTS)?c.deltaPTS=Math.max(d,c.deltaPTS):c.deltaPTS=d,f=Math.max(t,o),t=Math.min(t,o),r=void 0!==c.startDTS?Math.min(r,c.startDTS):r,s=Math.min(a,l),a=Math.max(a,l),i=void 0!==c.endDTS?Math.max(i,c.endDTS):i}const d=t-c.start;0!==c.start&&c.setStart(t),c.setDuration(a-c.start),c.startPTS=t,c.maxStartPTS=f,c.startDTS=r,c.endPTS=a,c.minEndPTS=s,c.endDTS=i;const u=c.sn;if(!e||u<e.startSN||u>e.endSN)return 0;let h;const b=u-e.startSN,p=e.fragments;for(p[b]=c,h=b;h>0;h--)ai(p[h],p[h-1]);for(h=b;h<p.length-1;h++)ai(p[h],p[h+1]);return e.fragmentHint&&ai(p[p.length-1],e.fragmentHint),e.PTSKnown=e.alignedSliding=!0,d}function ii(e,c,t){if(e===c)return;let a=null;const r=e.fragments;for(let l=r.length-1;l>=0;l--){const e=r[l].initSegment;if(e){a=e;break}}let i;e.fragmentHint&&delete e.fragmentHint.endPTS,function(e,c,t){const a=c.skippedSegments,r=Math.max(e.startSN,c.startSN)-c.startSN,i=(e.fragmentHint?1:0)+(a?c.endSN:Math.min(e.endSN,c.endSN))-c.startSN,n=c.startSN-e.startSN,f=c.fragmentHint?c.fragments.concat(c.fragmentHint):c.fragments,s=e.fragmentHint?e.fragments.concat(e.fragmentHint):e.fragments;for(let o=r;o<=i;o++){const r=s[n+o];let i=f[o];if(a&&!i&&r&&(i=c.fragments[o]=r),r&&i){t(r,i,o,f);const a=r.relurl,n=i.relurl;if(a&&bi(a,n))return void(c.playlistParsingError=ni(`media sequence mismatch ${i.sn}:`,e,c,r,i));if(r.cc!==i.cc)return void(c.playlistParsingError=ni(`discontinuity sequence mismatch (${r.cc}!=${i.cc})`,e,c,r,i))}}}(e,c,((e,t,r,n)=>{if((!c.startCC||c.skippedSegments)&&t.cc!==e.cc){const a=e.cc-t.cc;for(let e=r;e<n.length;e++)n[e].cc+=a;c.endCC=n[n.length-1].cc}nc(e.startPTS)&&nc(e.endPTS)&&(t.setStart(t.startPTS=e.startPTS),t.startDTS=e.startDTS,t.maxStartPTS=e.maxStartPTS,t.endPTS=e.endPTS,t.endDTS=e.endDTS,t.minEndPTS=e.minEndPTS,t.setDuration(e.endPTS-e.startPTS),t.duration&&(i=t),c.PTSKnown=c.alignedSliding=!0),e.hasStreams&&(t.elementaryStreams=e.elementaryStreams),t.loader=e.loader,e.hasStats&&(t.stats=e.stats),e.initSegment&&(t.initSegment=e.initSegment,a=e.initSegment)}));const n=c.fragments,f=c.fragmentHint?n.concat(c.fragmentHint):n;if(a&&f.forEach((e=>{var c;!e||e.initSegment&&e.initSegment.relurl!==(null==(c=a)?void 0:c.relurl)||(e.initSegment=a)})),c.skippedSegments){if(c.deltaUpdateFailed=n.some((e=>!e)),c.deltaUpdateFailed){t.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(let e=c.skippedSegments;e--;)n.shift();c.startSN=n[0].sn}else{c.canSkipDateRanges&&(c.dateRanges=function(e,c,t){const{dateRanges:a,recentlyRemovedDateranges:r}=c,i=_c({},e);r&&r.forEach((e=>{delete i[e]}));const n=Object.keys(i).length;if(!n)return a;return Object.keys(a).forEach((e=>{const c=i[e],r=new pr(a[e].attr,c);r.isValid?(i[e]=r,c||(r.tagOrder+=n)):t.warn(`Ignoring invalid Playlist Delta Update DATERANGE tag: "${na(a[e].attr)}"`)})),i}(e.dateRanges,c,t));const a=e.fragments.filter((e=>e.rawProgramDateTime));if(e.hasProgramDateTime&&!c.hasProgramDateTime)for(let e=1;e<f.length;e++)null===f[e].programDateTime&&Jr(f[e],f[e-1],a);qr(a,c)}c.endCC=n[n.length-1].cc}if(!c.startCC){var s;const t=li(e,c.startSN-1);c.startCC=null!=(s=null==t?void 0:t.cc)?s:n[0].cc}!function(e,c,t){if(e&&c){let a=0;for(let r=0,i=e.length;r<=i;r++){const i=e[r],n=c[r+a];i&&n&&i.index===n.index&&i.fragment.sn===n.fragment.sn?t(i,n):a--}}}(e.partList,c.partList,((e,c)=>{c.elementaryStreams=e.elementaryStreams,c.stats=e.stats})),i?ri(c,i,i.startPTS,i.endPTS,i.startDTS,i.endDTS,t):fi(e,c),n.length&&(c.totalduration=c.edge-n[0].start),c.driftStartTime=e.driftStartTime,c.driftStart=e.driftStart;const o=c.advancedDateTime;if(c.advanced&&o){const e=c.edge;c.driftStart||(c.driftStartTime=o,c.driftStart=e),c.driftEndTime=o,c.driftEnd=e}else c.driftEndTime=e.driftEndTime,c.driftEnd=e.driftEnd,c.advancedDateTime=e.advancedDateTime;-1===c.requestScheduled&&(c.requestScheduled=e.requestScheduled)}function ni(e,c,t,a,r){return new Error(`${e} ${r.url}\nPlaylist starting @${c.startSN}\n${c.m3u8}\n\nPlaylist starting @${t.startSN}\n${t.m3u8}`)}function fi(e,c,t=!0){const a=c.startSN+c.skippedSegments-e.startSN,r=e.fragments,i=a>=0;let n=0;if(i&&a<r.length)n=r[a].start;else if(i&&c.startSN===e.endSN+1)n=e.fragmentEnd;else if(i&&t)n=e.fragmentStart+a*c.levelTargetDuration;else{if(c.skippedSegments||0!==c.fragmentStart)return;n=e.fragmentStart}si(c,n)}function si(e,c){if(c){const t=e.fragments;for(let a=e.skippedSegments;a<t.length;a++)t[a].addStart(c);e.fragmentHint&&e.fragmentHint.addStart(c)}}function oi(e,c=1/0){let t=1e3*e.targetduration;if(e.updated){const a=e.fragments,r=4;if(a.length&&t*r>c){const e=1e3*a[a.length-1].duration;e<t&&(t=e)}}else t/=2;return Math.round(t)}function li(e,c,t){if(!e)return null;let a=e.fragments[c-e.startSN];return a||(a=e.fragmentHint,a&&a.sn===c?a:c<e.startSN&&t&&t.sn===c?t:null)}function di(e,c,t){return e?ui(e.partList,c,t):null}function ui(e,c,t){if(e)for(let a=e.length;a--;){const r=e[a];if(r.index===t&&r.fragment.sn===c)return r}return null}function hi(e){e.forEach(((e,c)=>{var t;null==(t=e.details)||t.fragments.forEach((e=>{e.level=c,e.initSegment&&(e.initSegment.level=c)}))}))}function bi(e,c){return!(e===c||!c)&&pi(e)!==pi(c)}function pi(e){return e.replace(/\?[^?]*$/,"")}function gi(e,c){for(let a=0,r=e.length;a<r;a++){var t;if((null==(t=e[a])?void 0:t.cc)===c)return e[a]}return null}function mi(e,c){const t=e.start+c;e.startPTS=t,e.setStart(t),e.endPTS=t+e.duration}function vi(e,c){const t=c.fragments;for(let a=0,r=t.length;a<r;a++)mi(t[a],e);c.fragmentHint&&mi(c.fragmentHint,e),c.alignedSliding=!0}function yi(e,c){if(!function(e,c){return!!(e&&c.startCC<e.endCC&&c.endCC>e.startCC)}(c,e))return;const t=Math.min(c.endCC,e.endCC),a=gi(c.fragments,t),r=gi(e.fragments,t);if(!a||!r)return;xc.log(`Aligning playlist at start of dicontinuity sequence ${t}`);vi(a.start-r.start,e)}function Ei(e,c){if(!e.hasProgramDateTime||!c.hasProgramDateTime)return;const t=e.fragments,a=c.fragments;if(!t.length||!a.length)return;let r,i;const n=Math.min(c.endCC,e.endCC);c.startCC<n&&e.startCC<n&&(r=gi(a,n),i=gi(t,n)),r&&i||(r=a[Math.floor(a.length/2)],i=gi(t,r.cc)||t[Math.floor(t.length/2)]);const f=r.programDateTime,s=i.programDateTime;if(!f||!s)return;vi((s-f)/1e3-(i.start-r.start),e)}function Si(e,c,t){_i(e,c,t),e.addEventListener(c,t)}function _i(e,c,t){e.removeEventListener(c,t)}const Ti=function(e){let c="";const t=e.length;for(let a=0;a<t;a++)c+=`[${e.start(a).toFixed(3)}-${e.end(a).toFixed(3)}]`;return c},ki="STOPPED",Ai="IDLE",Li="KEY_LOADING",Ii="FRAG_LOADING",wi="FRAG_LOADING_WAITING_RETRY",Ri="WAITING_TRACK",Di="PARSING",xi="PARSED",Pi="ENDED",Ci="ERROR",Oi="WAITING_INIT_PTS",Mi="WAITING_LEVEL";class Fi extends tr{constructor(e,c,t,a,r){super(a,e.logger),this.hls=void 0,this.fragPrevious=null,this.fragCurrent=null,this.fragmentTracker=void 0,this.transmuxer=null,this._state=ki,this.playlistType=void 0,this.media=null,this.mediaBuffer=null,this.config=void 0,this.bitrateTest=!1,this.lastCurrentTime=0,this.nextLoadPosition=0,this.startPosition=0,this.startTimeOffset=null,this.retryDate=0,this.levels=null,this.fragmentLoader=void 0,this.keyLoader=void 0,this.levelLastLoaded=null,this.startFragRequested=!1,this.decrypter=void 0,this.initPTS=[],this.buffering=!0,this.loadingParts=!1,this.loopSn=void 0,this.onMediaSeeking=()=>{const{config:e,fragCurrent:c,media:t,mediaBuffer:a,state:r}=this,i=t?t.currentTime:0,n=ir.bufferInfo(a||t,i,e.maxBufferHole),f=!n.len;if(this.log(`Media seeking to ${nc(i)?i.toFixed(3):i}, state: ${r}, ${f?"out of":"in"} buffer`),this.state===Pi)this.resetLoadingState();else if(c){const t=e.maxFragLookUpTolerance,a=c.start-t,r=c.start+c.duration+t;if(f||r<n.start||a>n.end){const e=i>r;(i<a||e)&&(e&&c.loader&&(this.log(`Cancelling fragment load for seek (sn: ${c.sn})`),c.abortRequests(),this.resetLoadingState()),this.fragPrevious=null)}}if(t){this.fragmentTracker.removeFragmentsInRange(i,1/0,this.playlistType,!0);if(i>this.lastCurrentTime&&(this.lastCurrentTime=i),!this.loadingParts){const e=Math.max(n.end,i),c=this.shouldLoadParts(this.getLevelDetails(),e);c&&(this.log(`LL-Part loading ON after seeking to ${i.toFixed(2)} with buffer @${e.toFixed(2)}`),this.loadingParts=c)}}this.hls.hasEnoughToStart||(this.log(`Setting ${f?"startPosition":"nextLoadPosition"} to ${i} for seek without enough to start`),this.nextLoadPosition=i,f&&(this.startPosition=i)),f&&this.state===Ai&&this.tickImmediate()},this.onMediaEnded=()=>{this.log("setting startPosition to 0 because media ended"),this.startPosition=this.lastCurrentTime=0},this.playlistType=r,this.hls=e,this.fragmentLoader=new Ja(e.config),this.keyLoader=t,this.fragmentTracker=c,this.config=e.config,this.decrypter=new Xa(e.config)}registerListeners(){const{hls:e}=this;e.on(dc.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(dc.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.on(dc.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(dc.ERROR,this.onError,this)}unregisterListeners(){const{hls:e}=this;e.off(dc.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(dc.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.off(dc.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(dc.ERROR,this.onError,this)}doTick(){this.onTickEnd()}onTickEnd(){}startLoad(e){}stopLoad(){if(this.state===ki)return;this.fragmentLoader.abort(),this.keyLoader.abort(this.playlistType);const e=this.fragCurrent;null!=e&&e.loader&&(e.abortRequests(),this.fragmentTracker.removeFragment(e)),this.resetTransmuxer(),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=ki}get startPositionValue(){const{nextLoadPosition:e,startPosition:c}=this;return-1===c&&e?e:c}get bufferingEnabled(){return this.buffering}pauseBuffering(){this.buffering=!1}resumeBuffering(){this.buffering=!0}get inFlightFrag(){return{frag:this.fragCurrent,state:this.state}}_streamEnded(e,c){if(c.live||!this.media)return!1;const t=e.end||0,a=this.config.timelineOffset||0;if(t<=a)return!1;const r=e.buffered;this.config.maxBufferHole&&r&&r.length>1&&(e=ir.bufferedInfo(r,e.start,0));const i=e.nextStart;if(i&&i>a&&i<c.edge)return!1;if(this.media.currentTime<e.start)return!1;const n=c.partList;if(null!=n&&n.length){const e=n[n.length-1];return ir.isBuffered(this.media,e.start+e.duration/2)}const f=c.fragments[c.fragments.length-1].type;return this.fragmentTracker.isEndListAppended(f)}getLevelDetails(){if(this.levels&&null!==this.levelLastLoaded)return this.levelLastLoaded.details}get timelineOffset(){const e=this.config.timelineOffset;var c;return e?(null==(c=this.getLevelDetails())?void 0:c.appliedTimelineOffset)||e:0}onMediaAttached(e,c){const t=this.media=this.mediaBuffer=c.media;Si(t,"seeking",this.onMediaSeeking),Si(t,"ended",this.onMediaEnded);const a=this.config;this.levels&&a.autoStartLoad&&this.state===ki&&this.startLoad(a.startPosition)}onMediaDetaching(e,c){const t=!!c.transferMedia,a=this.media;if(null!==a){if(a.ended&&(this.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0),_i(a,"seeking",this.onMediaSeeking),_i(a,"ended",this.onMediaEnded),this.keyLoader&&!t&&this.keyLoader.detach(),this.media=this.mediaBuffer=null,this.loopSn=void 0,t)return this.resetLoadingState(),void this.resetTransmuxer();this.loadingParts=!1,this.fragmentTracker.removeAllFragments(),this.stopLoad()}}onManifestLoading(){this.initPTS=[],this.levels=this.levelLastLoaded=this.fragCurrent=null,this.lastCurrentTime=this.startPosition=0,this.startFragRequested=!1}onError(e,c){}onManifestLoaded(e,c){this.startTimeOffset=c.startTimeOffset}onHandlerDestroying(){this.stopLoad(),this.transmuxer&&(this.transmuxer.destroy(),this.transmuxer=null),super.onHandlerDestroying(),this.hls=this.onMediaSeeking=this.onMediaEnded=null}onHandlerDestroyed(){this.state=ki,this.fragmentLoader&&this.fragmentLoader.destroy(),this.keyLoader&&this.keyLoader.destroy(),this.decrypter&&this.decrypter.destroy(),this.hls=this.log=this.warn=this.decrypter=this.keyLoader=this.fragmentLoader=this.fragmentTracker=null,super.onHandlerDestroyed()}loadFragment(e,c,t){this.startFragRequested=!0,this._loadFragForPlayback(e,c,t)}_loadFragForPlayback(e,c,t){this._doFragLoad(e,c,t,(e=>{const c=e.frag;if(this.fragContextChanged(c))return this.warn(`${c.type} sn: ${c.sn}${e.part?" part: "+e.part.index:""} of ${this.fragInfo(c,!1,e.part)}) was dropped during download.`),void this.fragmentTracker.removeFragment(c);c.stats.chunkCount++,this._handleFragmentLoadProgress(e)})).then((e=>{if(!e)return;const c=this.state,t=e.frag;this.fragContextChanged(t)?(c===Ii||!this.fragCurrent&&c===Di)&&(this.fragmentTracker.removeFragment(t),this.state=Ai):("payload"in e&&(this.log(`Loaded ${t.type} sn: ${t.sn} of ${this.playlistLabel()} ${t.level}`),this.hls.trigger(dc.FRAG_LOADED,e)),this._handleFragmentLoadComplete(e))})).catch((c=>{this.state!==ki&&this.state!==Ci&&(this.warn(`Frag error: ${(null==c?void 0:c.message)||c}`),this.resetFragmentLoading(e))}))}clearTrackerIfNeeded(e){var c;const{fragmentTracker:t}=this;if(t.getState(e)===Ua){const c=e.type,a=this.getFwdBufferInfo(this.mediaBuffer,c),r=Math.max(e.duration,a?a.len:this.config.maxBufferLength),i=this.backtrackFragment;(1===(i?e.sn-i.sn:0)||this.reduceMaxBufferLength(r,e.duration))&&t.removeFragment(e)}else 0===(null==(c=this.mediaBuffer)?void 0:c.buffered.length)?t.removeAllFragments():t.hasParts(e.type)&&(t.detectPartialFragments({frag:e,part:null,stats:e.stats,id:e.type}),t.getState(e)===Ba&&t.removeFragment(e))}checkLiveUpdate(e){if(e.updated&&!e.live){const c=e.fragments[e.fragments.length-1];this.fragmentTracker.detectPartialFragments({frag:c,part:null,stats:c.stats,id:c.type})}e.fragments[0]||(e.deltaUpdateFailed=!0)}waitForLive(e){const c=e.details;return(null==c?void 0:c.live)&&"EVENT"!==c.type&&(this.levelLastLoaded!==e||c.expired)}flushMainBuffer(e,c,t=null){if(!(e-c))return;const a={startOffset:e,endOffset:c,type:t};this.hls.trigger(dc.BUFFER_FLUSHING,a)}_loadInitSegment(e,c){this._doFragLoad(e,c).then((e=>{const c=null==e?void 0:e.frag;if(!c||this.fragContextChanged(c)||!this.levels)throw new Error("init load aborted");return e})).then((e=>{const{hls:c}=this,{frag:t,payload:a}=e,r=t.decryptdata;if(a&&a.byteLength>0&&null!=r&&r.key&&r.iv&&yr(r.method)){const i=self.performance.now();return this.decrypter.decrypt(new Uint8Array(a),r.key.buffer,r.iv.buffer,Er(r.method)).catch((e=>{throw c.trigger(dc.ERROR,{type:oc.MEDIA_ERROR,details:lc.FRAG_DECRYPT_ERROR,fatal:!1,error:e,reason:e.message,frag:t}),e})).then((a=>{const r=self.performance.now();return c.trigger(dc.FRAG_DECRYPTED,{frag:t,payload:a,stats:{tstart:i,tdecrypt:r}}),e.payload=a,this.completeInitSegmentLoad(e)}))}return this.completeInitSegmentLoad(e)})).catch((c=>{this.state!==ki&&this.state!==Ci&&(this.warn(c),this.resetFragmentLoading(e))}))}completeInitSegmentLoad(e){const{levels:c}=this;if(!c)throw new Error("init load aborted, missing levels");const t=e.frag.stats;this.state!==ki&&(this.state=Ai),e.frag.data=new Uint8Array(e.payload),t.parsing.start=t.buffering.start=self.performance.now(),t.parsing.end=t.buffering.end=self.performance.now(),this.tick()}unhandledEncryptionError(e,c){var t,a;const r=e.tracks;if(r&&!c.encrypted&&(null!=(t=r.audio)&&t.encrypted||null!=(a=r.video)&&a.encrypted)&&(!this.config.emeEnabled||!this.keyLoader.emeController)){const e=this.media,t=new Error(`Encrypted track with no key in ${this.fragInfo(c)} (media ${e?"attached mediaKeys: "+e.mediaKeys:"detached"})`);return this.warn(t.message),!e||e.mediaKeys?!1:(this.hls.trigger(dc.ERROR,{type:oc.KEY_SYSTEM_ERROR,details:lc.KEY_SYSTEM_NO_KEYS,fatal:!1,error:t,frag:c}),this.resetTransmuxer(),!0)}return!1}fragContextChanged(e){const{fragCurrent:c}=this;return!e||!c||e.sn!==c.sn||e.level!==c.level}fragBufferedComplete(e,c){const t=this.mediaBuffer?this.mediaBuffer:this.media;if(this.log(`Buffered ${e.type} sn: ${e.sn}${c?" part: "+c.index:""} of ${this.fragInfo(e,!1,c)} > buffer:${t?Ti(ir.getBuffered(t)):"(detached)"})`),Qc(e)){var a;if(e.type!==vc){const c=e.elementaryStreams;if(!Object.keys(c).some((e=>!!c[e])))return void(this.state=Ai)}const c=null==(a=this.levels)?void 0:a[e.level];null!=c&&c.fragmentError&&(this.log(`Resetting level fragment error count of ${c.fragmentError} on frag buffered`),c.fragmentError=0)}this.state=Ai}_handleFragmentLoadComplete(e){const{transmuxer:c}=this;if(!c)return;const{frag:t,part:a,partsLoaded:r}=e,i=!r||0===r.length||r.some((e=>!e)),n=new ar(t.level,t.sn,t.stats.chunkCount+1,0,a?a.index:-1,!i);c.flush(n)}_handleFragmentLoadProgress(e){}_doFragLoad(e,c,t=null,a){var r;this.fragCurrent=e;const i=c.details;if(!this.levels||!i)throw new Error(`frag load aborted, missing level${i?"":" detail"}s`);let n=null;if(!e.encrypted||null!=(r=e.decryptdata)&&r.key)e.encrypted||(n=this.keyLoader.loadClear(e,i.encryptedFragments,this.startFragRequested),n&&this.log("[eme] blocking frag load until media-keys acquired"));else if(this.log(`Loading key for ${e.sn} of [${i.startSN}-${i.endSN}], ${this.playlistLabel()} ${e.level}`),this.state=Li,this.fragCurrent=e,n=this.keyLoader.load(e).then((e=>{if(!this.fragContextChanged(e.frag))return this.hls.trigger(dc.KEY_LOADED,e),this.state===Li&&(this.state=Ai),e})),this.hls.trigger(dc.KEY_LOADING,{frag:e}),null===this.fragCurrent)return this.log("context changed in KEY_LOADING"),Promise.resolve(null);const f=this.fragPrevious;if(Qc(e)&&(!f||e.sn!==f.sn)){const t=this.shouldLoadParts(c.details,e.end);t!==this.loadingParts&&(this.log(`LL-Part loading ${t?"ON":"OFF"} loading sn ${null==f?void 0:f.sn}->${e.sn}`),this.loadingParts=t)}if(t=Math.max(e.start,t||0),this.loadingParts&&Qc(e)){const r=i.partList;if(r&&a){t>i.fragmentEnd&&i.fragmentHint&&(e=i.fragmentHint);const f=this.getNextPart(r,e,t);if(f>-1){const s=r[f];let o;return e=this.fragCurrent=s.fragment,this.log(`Loading ${e.type} sn: ${e.sn} part: ${s.index} (${f}/${r.length-1}) of ${this.fragInfo(e,!1,s)}) cc: ${e.cc} [${i.startSN}-${i.endSN}], target: ${parseFloat(t.toFixed(3))}`),this.nextLoadPosition=s.start+s.duration,this.state=Ii,o=n?n.then((t=>!t||this.fragContextChanged(t.frag)?null:this.doFragPartsLoad(e,s,c,a))).catch((e=>this.handleFragLoadError(e))):this.doFragPartsLoad(e,s,c,a).catch((e=>this.handleFragLoadError(e))),this.hls.trigger(dc.FRAG_LOADING,{frag:e,part:s,targetBufferTime:t}),null===this.fragCurrent?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING parts")):o}if(!e.url||this.loadedEndOfParts(r,t))return Promise.resolve(null)}}var s;if(Qc(e)&&this.loadingParts)this.log(`LL-Part loading OFF after next part miss @${t.toFixed(2)} Check buffer at sn: ${e.sn} loaded parts: ${null==(s=i.partList)?void 0:s.filter((e=>e.loaded)).map((e=>`[${e.start}-${e.end}]`))}`),this.loadingParts=!1;else if(!e.url)return Promise.resolve(null);this.log(`Loading ${e.type} sn: ${e.sn} of ${this.fragInfo(e,!1)}) cc: ${e.cc} ${"["+i.startSN+"-"+i.endSN+"]"}, target: ${parseFloat(t.toFixed(3))}`),nc(e.sn)&&!this.bitrateTest&&(this.nextLoadPosition=e.start+e.duration),this.state=Ii;const o=this.config.progressive;let l;return l=o&&n?n.then((c=>!c||this.fragContextChanged(c.frag)?null:this.fragmentLoader.load(e,a))).catch((e=>this.handleFragLoadError(e))):Promise.all([this.fragmentLoader.load(e,o?a:void 0),n]).then((([e])=>(!o&&a&&a(e),e))).catch((e=>this.handleFragLoadError(e))),this.hls.trigger(dc.FRAG_LOADING,{frag:e,targetBufferTime:t}),null===this.fragCurrent?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING")):l}doFragPartsLoad(e,c,t,a){return new Promise(((r,i)=>{var n;const f=[],s=null==(n=t.details)?void 0:n.partList,o=c=>{this.fragmentLoader.loadPart(e,c,a).then((a=>{f[c.index]=a;const i=a.part;this.hls.trigger(dc.FRAG_LOADED,a);const n=di(t.details,e.sn,c.index+1)||ui(s,e.sn,c.index+1);if(!n)return r({frag:e,part:i,partsLoaded:f});o(n)})).catch(i)};o(c)}))}handleFragLoadError(e){if("data"in e){const c=e.data;c.frag&&c.details===lc.INTERNAL_ABORTED?this.handleFragLoadAborted(c.frag,c.part):c.frag&&c.type===oc.KEY_SYSTEM_ERROR?(c.frag.abortRequests(),this.resetStartWhenNotLoaded(),this.resetFragmentLoading(c.frag)):this.hls.trigger(dc.ERROR,c)}else this.hls.trigger(dc.ERROR,{type:oc.OTHER_ERROR,details:lc.INTERNAL_EXCEPTION,err:e,error:e,fatal:!0});return null}_handleTransmuxerFlush(e){const c=this.getCurrentContext(e);if(!c||this.state!==Di)return void(this.fragCurrent||this.state===ki||this.state===Ci||(this.state=Ai));const{frag:t,part:a,level:r}=c,i=self.performance.now();t.stats.parsing.end=i,a&&(a.stats.parsing.end=i);const n=this.getLevelDetails(),f=n&&t.sn>n.endSN||this.shouldLoadParts(n,t.end);f!==this.loadingParts&&(this.log(`LL-Part loading ${f?"ON":"OFF"} after parsing segment ending @${t.end.toFixed(2)}`),this.loadingParts=f),this.updateLevelTiming(t,a,r,e.partial)}shouldLoadParts(e,c){if(this.config.lowLatencyMode){if(!e)return this.loadingParts;if(e.partList){var t;const r=e.partList[0];if(r.fragment.type===vc)return!1;if(c>=r.end+((null==(t=e.fragmentHint)?void 0:t.duration)||0)){var a;if((this.hls.hasEnoughToStart?(null==(a=this.media)?void 0:a.currentTime)||this.lastCurrentTime:this.getLoadPosition())>r.start-r.fragment.duration)return!0}}}return!1}getCurrentContext(e){const{levels:c,fragCurrent:t}=this,{level:a,sn:r,part:i}=e;if(null==c||!c[a])return this.warn(`Levels object was unset while buffering fragment ${r} of ${this.playlistLabel()} ${a}. The current chunk will not be buffered.`),null;const n=c[a],f=n.details,s=i>-1?di(f,r,i):null,o=s?s.fragment:li(f,r,t);return o?(t&&t!==o&&(o.stats=t.stats),{frag:o,part:s,level:n}):null}bufferFragmentData(e,c,t,a,r){if(this.state!==Di)return;const{data1:i,data2:n}=e;let f=i;if(n&&(f=yt(i,n)),!f.length)return;const s=this.initPTS[c.cc],o=s?-s.baseTime/s.timescale:void 0,l={type:e.type,frag:c,part:t,chunkMeta:a,offset:o,parent:c.type,data:f};if(this.hls.trigger(dc.BUFFER_APPENDING,l),e.dropped&&e.independent&&!t){if(r)return;this.flushBufferGap(c)}}flushBufferGap(e){const c=this.media;if(!c)return;if(!ir.isBuffered(c,c.currentTime))return void this.flushMainBuffer(0,e.start);const t=c.currentTime,a=ir.bufferInfo(c,t,0),r=e.duration,i=Math.min(2*this.config.maxFragLookUpTolerance,.25*r),n=Math.max(Math.min(e.start-i,a.end-i),t+i);e.start-n>i&&this.flushMainBuffer(n,e.start)}getFwdBufferInfo(e,c){var t;const a=this.getLoadPosition();if(!nc(a))return null;const r=this.lastCurrentTime>a||null!=(t=this.media)&&t.paused?0:this.config.maxBufferHole;return this.getFwdBufferInfoAtPos(e,a,c,r)}getFwdBufferInfoAtPos(e,c,t,a){const r=ir.bufferInfo(e,c,a);if(0===r.len&&void 0!==r.nextStart){const i=this.fragmentTracker.getBufferedFrag(c,t);if(i&&(r.nextStart<=i.end||i.gap)){const t=Math.max(Math.min(r.nextStart,i.end)-c,a);return ir.bufferInfo(e,c,t)}}return r}getMaxBufferLength(e){const{config:c}=this;let t;return t=e?Math.max(8*c.maxBufferSize/e,c.maxBufferLength):c.maxBufferLength,Math.min(t,c.maxMaxBufferLength)}reduceMaxBufferLength(e,c){const t=this.config,a=Math.max(Math.min(e-c,t.maxBufferLength),c),r=Math.max(e-3*c,t.maxMaxBufferLength/2,a);return r>=a&&(t.maxMaxBufferLength=r,this.warn(`Reduce max buffer length to ${r}s`),!0)}getAppendedFrag(e,c=gc){const t=this.fragmentTracker?this.fragmentTracker.getAppendedFrag(e,c):null;return t&&"fragment"in t?t.fragment:t}getNextFragment(e,c){const t=c.fragments,a=t.length;if(!a)return null;const{config:r}=this,i=t[0].start,n=r.lowLatencyMode&&!!c.partList;let f=null;if(c.live){const t=r.initialLiveManifestSize;if(a<t)return this.warn(`Not enough fragments to start playback (have: ${a}, need: ${t})`),null;if(!c.PTSKnown&&!this.startFragRequested&&-1===this.startPosition||e<i){var s;n&&!this.loadingParts&&(this.log("LL-Part loading ON for initial live fragment"),this.loadingParts=!0),f=this.getInitialLiveFragment(c);const t=this.hls.startPosition,a=this.hls.liveSyncPosition,r=f?(-1!==t&&t>=i?t:a)||f.start:e;this.log(`Setting startPosition to ${r} to match start frag at live edge. mainStart: ${t} liveSyncPosition: ${a} frag.start: ${null==(s=f)?void 0:s.start}`),this.startPosition=this.nextLoadPosition=r}}else e<=i&&(f=t[0]);if(!f){const t=this.loadingParts?c.partEnd:c.fragmentEnd;f=this.getFragmentAtPosition(e,t,c)}let o=this.filterReplacedPrimary(f,c);if(!o&&f){const e=f.sn-c.startSN;o=this.filterReplacedPrimary(t[e+1]||null,c)}return this.mapToInitFragWhenRequired(o)}isLoopLoading(e,c){const t=this.fragmentTracker.getState(e);return(t===$a||t===Ba&&!!e.gap)&&this.nextLoadPosition>c}getNextFragmentLoopLoading(e,c,t,a,r){let i=null;if(e.gap&&(i=this.getNextFragment(this.nextLoadPosition,c),i&&!i.gap&&t.nextStart)){const e=this.getFwdBufferInfoAtPos(this.mediaBuffer?this.mediaBuffer:this.media,t.nextStart,a,0);if(null!==e&&t.len+e.len>=r){const e=i.sn;return this.loopSn!==e&&(this.log(`buffer full after gaps in "${a}" playlist starting at sn: ${e}`),this.loopSn=e),null}}return this.loopSn=void 0,i}get primaryPrefetch(){if(Ni(this.config)){var e;if(null==(e=this.hls.interstitialsManager)||null==(e=e.playingItem)?void 0:e.event)return!0}return!1}filterReplacedPrimary(e,c){if(!e)return e;if(Ni(this.config)&&e.type!==vc){const t=this.hls.interstitialsManager,a=null==t?void 0:t.bufferingItem;if(a){const t=a.event;if(t){if(t.appendInPlace||Math.abs(e.start-a.start)>1||0===a.start)return null}else{if(e.end<=a.start&&!1===(null==c?void 0:c.live))return null;if(e.start>a.end&&a.nextEvent&&(a.nextEvent.appendInPlace||e.start-a.end>1))return null}}const r=null==t?void 0:t.playerQueue;if(r)for(let c=r.length;c--;){const t=r[c].interstitial;if(t.appendInPlace&&e.start>=t.startTime&&e.end<=t.resumeTime)return null}}return e}mapToInitFragWhenRequired(e){return null==e||!e.initSegment||e.initSegment.data||this.bitrateTest?e:e.initSegment}getNextPart(e,c,t){let a=-1,r=!1,i=!0;for(let n=0,f=e.length;n<f;n++){const f=e[n];if(i=i&&!f.independent,a>-1&&t<f.start)break;const s=f.loaded;s?a=-1:(r||(f.independent||i)&&f.fragment===c)&&(f.fragment!==c&&this.warn(`Need buffer at ${t} but next unloaded part starts at ${f.start}`),a=n),r=s}return a}loadedEndOfParts(e,c){let t;for(let a=e.length;a--;){if(t=e[a],!t.loaded)return!1;if(c>t.start)return!0}return!1}getInitialLiveFragment(e){const c=e.fragments,t=this.fragPrevious;let a=null;if(t){if(e.hasProgramDateTime&&(this.log(`Live playlist, switching playlist, load frag with same PDT: ${t.programDateTime}`),a=function(e,c,t){if(null===c||!Array.isArray(e)||!e.length||!nc(c))return null;if(c<(e[0].programDateTime||0))return null;if(c>=(e[e.length-1].endProgramDateTime||0))return null;for(let a=0;a<e.length;++a){const r=e[a];if(va(c,t,r))return r}return null}(c,t.endProgramDateTime,this.config.maxFragLookUpTolerance)),!a){const r=t.sn+1;if(r>=e.startSN&&r<=e.endSN){const i=c[r-e.startSN];t.cc===i.cc&&(a=i,this.log(`Live playlist, switching playlist, load frag with next SN: ${a.sn}`))}a||(a=ya(e,t.cc,t.end),a&&this.log(`Live playlist, switching playlist, load frag with same CC: ${a.sn}`))}}else{const c=this.hls.liveSyncPosition;null!==c&&(a=this.getFragmentAtPosition(c,this.bitrateTest?e.fragmentEnd:e.edge,e))}return a}getFragmentAtPosition(e,c,t){const{config:a}=this;let{fragPrevious:r}=this,{fragments:i,endSN:n}=t;const{fragmentHint:f}=t,{maxFragLookUpTolerance:s}=a,o=t.partList,l=!!(this.loadingParts&&null!=o&&o.length&&f);let d;if(l&&!this.bitrateTest&&o[o.length-1].fragment.sn===f.sn&&(i=i.concat(f),n=f.sn),e<c){var u;d=ga(r,i,e,e<this.lastCurrentTime||e>c-s||null!=(u=this.media)&&u.paused||!this.startFragRequested?0:s)}else d=i[i.length-1];if(d){const e=d.sn-t.startSN,c=this.fragmentTracker.getState(d);if((c===$a||c===Ba&&d.gap)&&(r=d),r&&d.sn===r.sn&&(!l||o[0].fragment.sn>d.sn||!t.live)){if(d.level===r.level){const c=i[e+1];d=d.sn<n&&this.fragmentTracker.getState(c)!==$a?c:null}}}return d}alignPlaylists(e,c,t){const a=e.fragments.length;if(!a)return this.warn("No fragments in live playlist"),0;const r=e.fragmentStart,i=!c,n=e.alignedSliding&&nc(r);if(i||!n&&!r){!function(e,c){e&&(yi(c,e),c.alignedSliding||Ei(c,e),c.alignedSliding||c.skippedSegments||fi(e,c,!1))}(t,e);const r=e.fragmentStart;return this.log(`Live playlist sliding: ${r.toFixed(2)} start-sn: ${c?c.startSN:"na"}->${e.startSN} fragments: ${a}`),r}return r}waitForCdnTuneIn(e){return e.live&&e.canBlockReload&&e.partTarget&&e.tuneInGoal>Math.max(e.partHoldBack,3*e.partTarget)}setStartPosition(e,c){let t=this.startPosition;t<c&&(t=-1);const a=this.timelineOffset;if(-1===t){const r=null!==this.startTimeOffset,i=r?this.startTimeOffset:e.startTimeOffset;null!==i&&nc(i)?(t=c+i,i<0&&(t+=e.edge),t=Math.min(Math.max(c,t),c+e.totalduration),this.log(`Setting startPosition to ${t} for start time offset ${i} found in ${r?"multivariant":"media"} playlist`),this.startPosition=t):e.live?(t=this.hls.liveSyncPosition||c,this.log(`Setting startPosition to -1 to start at live edge ${t}`),this.startPosition=-1):(this.log("setting startPosition to 0 by default"),this.startPosition=t=0),this.lastCurrentTime=t+a}this.nextLoadPosition=t+a}getLoadPosition(){var e;const{media:c}=this;let t=0;return null!=(e=this.hls)&&e.hasEnoughToStart&&c?t=c.currentTime:this.nextLoadPosition>=0&&(t=this.nextLoadPosition),t}handleFragLoadAborted(e,c){this.transmuxer&&e.type===this.playlistType&&Qc(e)&&e.stats.aborted&&(this.log(`Fragment ${e.sn}${c?" part "+c.index:""} of ${this.playlistLabel()} ${e.level} was aborted`),this.resetFragmentLoading(e))}resetFragmentLoading(e){this.fragCurrent&&(this.fragContextChanged(e)||this.state===wi)||(this.state=Ai)}onFragmentOrKeyLoadError(e,c){var t;if(c.chunkMeta&&!c.frag){const e=this.getCurrentContext(c.chunkMeta);e&&(c.frag=e.frag)}const a=c.frag;if(!a||a.type!==e||!this.levels)return;var r;if(this.fragContextChanged(a))return void this.warn(`Frag load error must match current frag to retry ${a.url} > ${null==(r=this.fragCurrent)?void 0:r.url}`);const i=c.details===lc.FRAG_GAP;i&&this.fragmentTracker.fragBuffered(a,!0);const n=c.errorAction;if(!n)return void(this.state=Ci);const{action:f,flags:s,retryCount:o=0,retryConfig:l}=n,d=!!l,u=d&&f===xa,h=d&&!n.resolved&&s===Ca,b=null==(t=this.hls.latestLevelDetails)?void 0:t.live;if(!u&&h&&Qc(a)&&!a.endList&&b&&!_a(c))this.resetFragmentErrors(e),this.treatAsGap(a),n.resolved=!0;else if((u||h)&&o<l.maxNumRetry){var p;const t=Ia(null==(p=c.response)?void 0:p.code),r=ka(l,o);if(this.resetStartWhenNotLoaded(),this.retryDate=self.performance.now()+r,this.state=wi,n.resolved=!0,t)return this.log("Waiting for connection (offline)"),this.retryDate=1/0,void(c.reason="offline");this.warn(`Fragment ${a.sn} of ${e} ${a.level} errored with ${c.details}, retrying loading ${o+1}/${l.maxNumRetry} in ${r}ms`)}else if(l){if(this.resetFragmentErrors(e),!(o<l.maxNumRetry))return void this.warn(`${c.details} reached or exceeded max retry (${o})`);i||f===Da||(n.resolved=!0)}else this.state=f===Ra?Mi:Ci;this.tickImmediate()}checkRetryDate(){const e=self.performance.now(),c=this.retryDate,t=c===1/0;(!c||e>=c||t&&!Ia(0))&&(t&&this.log("Connection restored (online)"),this.resetStartWhenNotLoaded(),this.state=Ai)}reduceLengthAndFlushBuffer(e){if(this.state===Di||this.state===xi){const c=e.frag,t=e.parent,a=this.getFwdBufferInfo(this.mediaBuffer,t),r=a&&a.len>.5;r&&this.reduceMaxBufferLength(a.len,(null==c?void 0:c.duration)||10);const i=!r;return i&&this.warn(`Buffer full error while media.currentTime (${this.getLoadPosition()}) is not buffered, flush ${t} buffer`),c&&(this.fragmentTracker.removeFragment(c),this.nextLoadPosition=c.start),this.resetLoadingState(),i}return!1}resetFragmentErrors(e){e===mc&&(this.fragCurrent=null),this.hls.hasEnoughToStart||(this.startFragRequested=!1),this.state!==ki&&(this.state=Ai)}afterBufferFlushed(e,c,t){if(!e)return;const a=ir.getBuffered(e);this.fragmentTracker.detectEvictedFragments(c,a,t),this.state===Pi&&this.resetLoadingState()}resetLoadingState(){this.log("Reset loading state"),this.fragCurrent=null,this.fragPrevious=null,this.state!==ki&&(this.state=Ai)}resetStartWhenNotLoaded(){if(!this.hls.hasEnoughToStart){this.startFragRequested=!1;const e=this.levelLastLoaded,c=e?e.details:null;null!=c&&c.live?(this.log("resetting startPosition for live start"),this.startPosition=-1,this.setStartPosition(c,c.fragmentStart),this.resetLoadingState()):this.nextLoadPosition=this.startPosition}}resetWhenMissingContext(e){this.log(`Loading context changed while buffering sn ${e.sn} of ${this.playlistLabel()} ${-1===e.level?"<removed>":e.level}. This chunk will not be buffered.`),this.removeUnbufferedFrags(),this.resetStartWhenNotLoaded(),this.resetLoadingState()}removeUnbufferedFrags(e=0){this.fragmentTracker.removeFragmentsInRange(e,1/0,this.playlistType,!1,!0)}updateLevelTiming(e,c,t,a){const r=t.details;if(!r)return void this.warn("level.details undefined");var i;if(!Object.keys(e.elementaryStreams).reduce(((c,i)=>{const n=e.elementaryStreams[i];if(n){const f=n.endPTS-n.startPTS;if(f<=0)return this.warn(`Could not parse fragment ${e.sn} ${i} duration reliably (${f})`),c||!1;const s=a?0:ri(r,e,n.startPTS,n.endPTS,n.startDTS,n.endDTS,this);return this.hls.trigger(dc.LEVEL_PTS_UPDATED,{details:r,level:t,drift:s,type:i,frag:e,start:n.startPTS,end:n.endPTS}),!0}return c}),!1)&&(0===t.fragmentError&&this.treatAsGap(e,t),null===(null==(i=this.transmuxer)?void 0:i.error))){const c=new Error(`Found no media in fragment ${e.sn} of ${this.playlistLabel()} ${e.level} resetting transmuxer to fallback to playlist timing`);if(this.warn(c.message),this.hls.trigger(dc.ERROR,{type:oc.MEDIA_ERROR,details:lc.FRAG_PARSING_ERROR,fatal:!1,error:c,frag:e,reason:`Found no media in msn ${e.sn} of ${this.playlistLabel()} "${t.url}"`}),!this.hls)return;this.resetTransmuxer()}this.state=xi,this.log(`Parsed ${e.type} sn: ${e.sn}${c?" part: "+c.index:""} of ${this.fragInfo(e,!1,c)})`),this.hls.trigger(dc.FRAG_PARSED,{frag:e,part:c})}playlistLabel(){return this.playlistType===gc?"level":"track"}fragInfo(e,c=!0,t){var a,r;return`${this.playlistLabel()} ${e.level} (${t?"part":"frag"}:[${(null!=(a=c&&!t?e.startPTS:(t||e).start)?a:NaN).toFixed(3)}-${(null!=(r=c&&!t?e.endPTS:(t||e).end)?r:NaN).toFixed(3)}]${t&&"main"===e.type?"INDEPENDENT="+(t.independent?"YES":"NO"):""}`}treatAsGap(e,c){c&&c.fragmentError++,e.gap=!0,this.fragmentTracker.removeFragment(e),this.fragmentTracker.fragBuffered(e,!0)}resetTransmuxer(){var e;null==(e=this.transmuxer)||e.reset()}recoverWorkerError(e){"demuxerWorker"===e.event&&(this.fragmentTracker.removeAllFragments(),this.transmuxer&&(this.transmuxer.destroy(),this.transmuxer=null),this.resetStartWhenNotLoaded(),this.resetLoadingState())}set state(e){const c=this._state;c!==e&&(this._state=e,this.log(`${c}->${e}`))}get state(){return this._state}}function Ni(e){return!!e.interstitialsController&&!1!==e.enableInterstitialPlayback}class Ui{constructor(){this.chunks=[],this.dataLength=0}push(e){this.chunks.push(e),this.dataLength+=e.length}flush(){const{chunks:e,dataLength:c}=this;let t;return e.length?(t=1===e.length?e[0]:function(e,c){const t=new Uint8Array(c);let a=0;for(let r=0;r<e.length;r++){const c=e[r];t.set(c,a),a+=c.length}return t}(e,c),this.reset(),t):new Uint8Array(0)}reset(){this.chunks.length=0,this.dataLength=0}}var Bi,$i={exports:{}};var ji=(Bi||(Bi=1,function(e){var c=Object.prototype.hasOwnProperty,t="~";function a(){}function r(e,c,t){this.fn=e,this.context=c,this.once=t||!1}function i(e,c,a,i,n){if("function"!=typeof a)throw new TypeError("The listener must be a function");var f=new r(a,i||e,n),s=t?t+c:c;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],f]:e._events[s].push(f):(e._events[s]=f,e._eventsCount++),e}function n(e,c){0==--e._eventsCount?e._events=new a:delete e._events[c]}function f(){this._events=new a,this._eventsCount=0}Object.create&&(a.prototype=Object.create(null),(new a).__proto__||(t=!1)),f.prototype.eventNames=function(){var e,a,r=[];if(0===this._eventsCount)return r;for(a in e=this._events)c.call(e,a)&&r.push(t?a.slice(1):a);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(e)):r},f.prototype.listeners=function(e){var c=t?t+e:e,a=this._events[c];if(!a)return[];if(a.fn)return[a.fn];for(var r=0,i=a.length,n=new Array(i);r<i;r++)n[r]=a[r].fn;return n},f.prototype.listenerCount=function(e){var c=t?t+e:e,a=this._events[c];return a?a.fn?1:a.length:0},f.prototype.emit=function(e,c,a,r,i,n){var f=t?t+e:e;if(!this._events[f])return!1;var s,o,l=this._events[f],d=arguments.length;if(l.fn){switch(l.once&&this.removeListener(e,l.fn,void 0,!0),d){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,c),!0;case 3:return l.fn.call(l.context,c,a),!0;case 4:return l.fn.call(l.context,c,a,r),!0;case 5:return l.fn.call(l.context,c,a,r,i),!0;case 6:return l.fn.call(l.context,c,a,r,i,n),!0}for(o=1,s=new Array(d-1);o<d;o++)s[o-1]=arguments[o];l.fn.apply(l.context,s)}else{var u,h=l.length;for(o=0;o<h;o++)switch(l[o].once&&this.removeListener(e,l[o].fn,void 0,!0),d){case 1:l[o].fn.call(l[o].context);break;case 2:l[o].fn.call(l[o].context,c);break;case 3:l[o].fn.call(l[o].context,c,a);break;case 4:l[o].fn.call(l[o].context,c,a,r);break;default:if(!s)for(u=1,s=new Array(d-1);u<d;u++)s[u-1]=arguments[u];l[o].fn.apply(l[o].context,s)}}return!0},f.prototype.on=function(e,c,t){return i(this,e,c,t,!1)},f.prototype.once=function(e,c,t){return i(this,e,c,t,!0)},f.prototype.removeListener=function(e,c,a,r){var i=t?t+e:e;if(!this._events[i])return this;if(!c)return n(this,i),this;var f=this._events[i];if(f.fn)f.fn!==c||r&&!f.once||a&&f.context!==a||n(this,i);else{for(var s=0,o=[],l=f.length;s<l;s++)(f[s].fn!==c||r&&!f[s].once||a&&f[s].context!==a)&&o.push(f[s]);o.length?this._events[i]=1===o.length?o[0]:o:n(this,i)}return this},f.prototype.removeAllListeners=function(e){var c;return e?(c=t?t+e:e,this._events[c]&&n(this,c)):(this._events=new a,this._eventsCount=0),this},f.prototype.off=f.prototype.removeListener,f.prototype.addListener=f.prototype.on,f.prefixed=t,f.EventEmitter=f,e.exports=f}($i)),$i.exports),Gi=Nc(ji);const Ki="1.6.13-beta.1",Vi={};function Hi(e,c){return c+10<=e.length&&51===e[c]&&68===e[c+1]&&73===e[c+2]&&e[c+3]<255&&e[c+4]<255&&e[c+6]<128&&e[c+7]<128&&e[c+8]<128&&e[c+9]<128}function qi(e,c){return c+10<=e.length&&73===e[c]&&68===e[c+1]&&51===e[c+2]&&e[c+3]<255&&e[c+4]<255&&e[c+6]<128&&e[c+7]<128&&e[c+8]<128&&e[c+9]<128}function Yi(e,c){let t=0;return t=(127&e[c])<<21,t|=(127&e[c+1])<<14,t|=(127&e[c+2])<<7,t|=127&e[c+3],t}function Wi(e,c){const t=c;let a=0;for(;qi(e,c);){a+=10;a+=Yi(e,c+6),Hi(e,c+10)&&(a+=10),c+=a}if(a>0)return e.subarray(t,t+a)}function zi(e,c){return 255===e[c]&&240==(246&e[c+1])}function Xi(e,c){return 1&e[c+1]?7:9}function Qi(e,c){return(3&e[c+3])<<11|e[c+4]<<3|(224&e[c+5])>>>5}function Ji(e,c){return c+1<e.length&&zi(e,c)}function Zi(e,c){if(Ji(e,c)){const t=Xi(e,c);if(c+t>=e.length)return!1;const a=Qi(e,c);if(a<=t)return!1;const r=c+a;return r===e.length||Ji(e,r)}return!1}function en(e,c,t,a,r){if(!e.samplerate){const i=function(e,c,t,a){const r=c[t+2],i=r>>2&15;if(i>12){const c=new Error(`invalid ADTS sampling index:${i}`);return void e.emit(dc.ERROR,dc.ERROR,{type:oc.MEDIA_ERROR,details:lc.FRAG_PARSING_ERROR,fatal:!0,error:c,reason:c.message})}const n=1+(r>>6&3),f=c[t+3]>>6&3|(1&r)<<2,s="mp4a.40."+n,o=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350][i];let l=i;5!==n&&29!==n||(l-=3);const d=[n<<3|(14&l)>>1,(1&l)<<7|f<<3];return xc.log(`manifest codec:${a}, parsed codec:${s}, channels:${f}, rate:${o} (ADTS object type:${n} sampling index:${i})`),{config:d,samplerate:o,channelCount:f,codec:s,parsedCodec:s,manifestCodec:a}}(c,t,a,r);if(!i)return;_c(e,i)}}function cn(e){return 9216e4/e}function tn(e,c,t,a,r){const i=a+r*cn(e.samplerate),n=function(e,c){const t=Xi(e,c);if(c+t<=e.length){const a=Qi(e,c)-t;if(a>0)return{headerLength:t,frameLength:a}}}(c,t);let f;if(n){const{frameLength:a,headerLength:r}=n,s=r+a,o=Math.max(0,t+s-c.length);o?(f=new Uint8Array(s-r),f.set(c.subarray(t+r,c.length),0)):f=c.subarray(t+r,t+s);const l={unit:f,pts:i};return o||e.samples.push(l),{sample:l,length:s,missing:o}}const s=c.length-t;f=new Uint8Array(s),f.set(c.subarray(t,c.length),0);return{sample:{unit:f,pts:i},length:s,missing:-1}}function an(e,c){return qi(e,c)&&Yi(e,c+6)+10<=e.length-c}function rn(e,c=0,t=1/0){return function(e,c,t,a){const r=(i=e,i instanceof ArrayBuffer?i:i.buffer);var i;let n=1;"BYTES_PER_ELEMENT"in a&&(n=a.BYTES_PER_ELEMENT);const f=(u=e,u&&u.buffer instanceof ArrayBuffer&&void 0!==u.byteLength&&void 0!==u.byteOffset?e.byteOffset:0),s=(f+e.byteLength)/n,o=(f+c)/n,l=Math.floor(Math.max(0,Math.min(o,s))),d=Math.floor(Math.min(l+Math.max(t,0),s));var u;return new a(r,l,d-l)}(e,c,t,Uint8Array)}function nn(e){const c={key:e.type,description:"",data:"",mimeType:null,pictureType:null};if(e.size<2)return;if(3!==e.data[0])return void console.log("Ignore frame with unrecognized character encoding");const t=e.data.subarray(1).indexOf(0);if(-1===t)return;const a=Oc(rn(e.data,1,t)),r=e.data[2+t],i=e.data.subarray(3+t).indexOf(0);if(-1===i)return;const n=Oc(rn(e.data,3+t,i));let f;var s;return f="--\x3e"===a?Oc(rn(e.data,4+t+i)):(s=e.data.subarray(4+t+i))instanceof ArrayBuffer?s:0==s.byteOffset&&s.byteLength==s.buffer.byteLength?s.buffer:new Uint8Array(s).buffer,c.mimeType=a,c.pictureType=r,c.description=n,c.data=f,c}function fn(e){return"PRIV"===e.type?function(e){if(e.size<2)return;const c=Oc(e.data,!0),t=new Uint8Array(e.data.subarray(c.length+1));return{key:e.type,info:c,data:t.buffer}}(e):"W"===e.type[0]?function(e){if("WXXX"===e.type){if(e.size<2)return;let c=1;const t=Oc(e.data.subarray(c),!0);c+=t.length+1;const a=Oc(e.data.subarray(c));return{key:e.type,info:t,data:a}}const c=Oc(e.data);return{key:e.type,info:"",data:c}}(e):"APIC"===e.type?nn(e):function(e){if(e.size<2)return;if("TXXX"===e.type){let c=1;const t=Oc(e.data.subarray(c),!0);c+=t.length+1;const a=Oc(e.data.subarray(c));return{key:e.type,info:t,data:a}}const c=Oc(e.data.subarray(1));return{key:e.type,info:"",data:c}}(e)}function sn(e){const c=String.fromCharCode(e[0],e[1],e[2],e[3]),t=Yi(e,4);return{type:c,size:t,data:e.subarray(10,10+t)}}function on(e){let c=0;const t=[];for(;qi(e,c);){const a=Yi(e,c+6);e[c+5]>>6&1&&(c+=10),c+=10;const r=c+a;for(;c+10<r;){const a=sn(e.subarray(c)),r=fn(a);r&&t.push(r),c+=a.size+10}Hi(e,c)&&(c+=10)}return t}function ln(e){return e&&"PRIV"===e.key&&"com.apple.streaming.transportStreamTimestamp"===e.info}function dn(e){if(8===e.data.byteLength){const c=new Uint8Array(e.data),t=1&c[3];let a=(c[4]<<23)+(c[5]<<15)+(c[6]<<7)+c[7];return a/=45,t&&(a+=47721858.84),Math.round(a)}}function un(e){const c=on(e);for(let t=0;t<c.length;t++){const e=c[t];if(ln(e))return dn(e)}}let hn=function(e){return e.audioId3="org.id3",e.dateRange="com.apple.quicktime.HLS",e.emsg="https://aomedia.org/emsg/ID3",e.misbklv="urn:misb:KLV:bin:1910.1",e}({});function bn(e="",c=9e4){return{type:e,id:-1,pid:-1,inputTimeScale:c,sequenceNumber:-1,samples:[],dropped:0}}class pn{constructor(){this._audioTrack=void 0,this._id3Track=void 0,this.frameIndex=0,this.cachedData=null,this.basePTS=null,this.initPTS=null,this.lastPTS=null}resetInitSegment(e,c,t,a){this._id3Track={type:"id3",id:3,pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0}}resetTimeStamp(e){this.initPTS=e,this.resetContiguity()}resetContiguity(){this.basePTS=null,this.lastPTS=null,this.frameIndex=0}canParse(e,c){return!1}appendFrame(e,c,t){}demux(e,c){this.cachedData&&(e=yt(this.cachedData,e),this.cachedData=null);let t,a=Wi(e,0),r=a?a.length:0;const i=this._audioTrack,n=this._id3Track,f=a?un(a):void 0,s=e.length;for((null===this.basePTS||0===this.frameIndex&&nc(f))&&(this.basePTS=gn(f,c,this.initPTS),this.lastPTS=this.basePTS),null===this.lastPTS&&(this.lastPTS=this.basePTS),a&&a.length>0&&n.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:a,type:hn.audioId3,duration:Number.POSITIVE_INFINITY});r<s;){if(this.canParse(e,r)){const c=this.appendFrame(i,e,r);c?(this.frameIndex++,this.lastPTS=c.sample.pts,r+=c.length,t=r):r=s}else an(e,r)?(a=Wi(e,r),n.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:a,type:hn.audioId3,duration:Number.POSITIVE_INFINITY}),r+=a.length,t=r):r++;if(r===s&&t!==s){const c=e.slice(t);this.cachedData?this.cachedData=yt(this.cachedData,c):this.cachedData=c}}return{audioTrack:i,videoTrack:bn(),id3Track:n,textTrack:bn()}}demuxSampleAes(e,c,t){return Promise.reject(new Error(`[${this}] This demuxer does not support Sample-AES decryption`))}flush(e){const c=this.cachedData;return c&&(this.cachedData=null,this.demux(c,0)),{audioTrack:this._audioTrack,videoTrack:bn(),id3Track:this._id3Track,textTrack:bn()}}destroy(){this.cachedData=null,this._audioTrack=this._id3Track=void 0}}const gn=(e,c,t)=>{if(nc(e))return 90*e;return 9e4*c+(t?9e4*t.baseTime/t.timescale:0)};let mn=null;const vn=[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160],yn=[44100,48e3,32e3,22050,24e3,16e3,11025,12e3,8e3],En=[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],Sn=[0,1,1,4];function _n(e,c,t,a,r){if(t+24>c.length)return;const i=Tn(c,t);if(i&&t+i.frameLength<=c.length){const n=a+r*(9e4*i.samplesPerFrame/i.sampleRate),f={unit:c.subarray(t,t+i.frameLength),pts:n,dts:n};return e.config=[],e.channelCount=i.channelCount,e.samplerate=i.sampleRate,e.samples.push(f),{sample:f,length:i.frameLength,missing:0}}}function Tn(e,c){const t=e[c+1]>>3&3,a=e[c+1]>>1&3,r=e[c+2]>>4&15,i=e[c+2]>>2&3;if(1!==t&&0!==r&&15!==r&&3!==i){const n=e[c+2]>>1&1,f=e[c+3]>>6,s=1e3*vn[14*(3===t?3-a:3===a?3:4)+r-1],o=yn[3*(3===t?0:2===t?1:2)+i],l=3===f?1:2,d=En[t][a],u=Sn[a],h=8*d*u,b=Math.floor(d*s/o+n)*u;if(null===mn){const e=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);mn=e?parseInt(e[1]):0}return!!mn&&mn<=87&&2===a&&s>=224e3&&0===f&&(e[c+3]=128|e[c+3]),{sampleRate:o,channelCount:l,frameLength:b,samplesPerFrame:h}}}function kn(e,c){return!(255!==e[c]||224&~e[c+1]||!(6&e[c+1]))}function An(e,c){return c+1<e.length&&kn(e,c)}function Ln(e,c){if(c+1<e.length&&kn(e,c)){const t=4,a=Tn(e,c);let r=t;null!=a&&a.frameLength&&(r=a.frameLength);const i=c+r;return i===e.length||An(e,i)}return!1}const In=(e,c)=>{let t=0,a=5;c+=a;const r=new Uint32Array(1),i=new Uint32Array(1),n=new Uint8Array(1);for(;a>0;){n[0]=e[c];const f=Math.min(a,8),s=8-f;i[0]=4278190080>>>24+s<<s,r[0]=(n[0]&i[0])>>s,t=t?t<<f|r[0]:r[0],c+=1,a-=f}return t};class wn extends pn{constructor(e){super(),this.observer=void 0,this.observer=e}resetInitSegment(e,c,t,a){super.resetInitSegment(e,c,t,a),this._audioTrack={container:"audio/ac-3",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"ac3",samples:[],manifestCodec:c,duration:a,inputTimeScale:9e4,dropped:0}}canParse(e,c){return c+64<e.length}appendFrame(e,c,t){const a=Rn(e,c,t,this.basePTS,this.frameIndex);if(-1!==a){return{sample:e.samples[e.samples.length-1],length:a,missing:0}}}static probe(e){if(!e)return!1;const c=Wi(e,0);if(!c)return!1;const t=c.length;return 11===e[t]&&119===e[t+1]&&void 0!==un(c)&&In(e,t)<16}}function Rn(e,c,t,a,r){if(t+8>c.length)return-1;if(11!==c[t]||119!==c[t+1])return-1;const i=c[t+4]>>6;if(i>=3)return-1;const n=[48e3,44100,32e3][i],f=63&c[t+4],s=2*[64,69,96,64,70,96,80,87,120,80,88,120,96,104,144,96,105,144,112,121,168,112,122,168,128,139,192,128,140,192,160,174,240,160,175,240,192,208,288,192,209,288,224,243,336,224,244,336,256,278,384,256,279,384,320,348,480,320,349,480,384,417,576,384,418,576,448,487,672,448,488,672,512,557,768,512,558,768,640,696,960,640,697,960,768,835,1152,768,836,1152,896,975,1344,896,976,1344,1024,1114,1536,1024,1115,1536,1152,1253,1728,1152,1254,1728,1280,1393,1920,1280,1394,1920][3*f+i];if(t+s>c.length)return-1;const o=c[t+6]>>5;let l=0;2===o?l+=2:(1&o&&1!==o&&(l+=2),4&o&&(l+=2));const d=(c[t+6]<<8|c[t+7])>>12-l&1,u=[2,1,2,3,3,4,4,5][o]+d,h=c[t+5]>>3,b=7&c[t+5],p=new Uint8Array([i<<6|h<<1|b>>2,(3&b)<<6|o<<3|d<<2|f>>4,f<<4&224]),g=a+r*(1536/n*9e4),m=c.subarray(t,t+s);return e.config=p,e.channelCount=u,e.samplerate=n,e.samples.push({unit:m,pts:g}),s}const Dn=/\/emsg[-/]ID3/i;function xn(e,c){return nc(e.presentationTime)?e.presentationTime/e.timeScale:c+e.presentationTimeDelta/e.timeScale}class Pn{constructor(e,c,t){this.keyData=void 0,this.decrypter=void 0,this.keyData=t,this.decrypter=new Xa(c,{removePKCS7Padding:!1})}decryptBuffer(e){return this.decrypter.decrypt(e,this.keyData.key.buffer,this.keyData.iv.buffer,Ha)}decryptAacSample(e,c,t){const a=e[c].unit;if(a.length<=16)return;const r=a.subarray(16,a.length-a.length%16),i=r.buffer.slice(r.byteOffset,r.byteOffset+r.length);this.decryptBuffer(i).then((r=>{const i=new Uint8Array(r);a.set(i,16),this.decrypter.isSync()||this.decryptAacSamples(e,c+1,t)})).catch(t)}decryptAacSamples(e,c,t){for(;;c++){if(c>=e.length)return void t();if(!(e[c].unit.length<32)&&(this.decryptAacSample(e,c,t),!this.decrypter.isSync()))return}}getAvcEncryptedData(e){const c=16*Math.floor((e.length-48)/160)+16,t=new Int8Array(c);let a=0;for(let r=32;r<e.length-16;r+=160,a+=16)t.set(e.subarray(r,r+16),a);return t}getAvcDecryptedUnit(e,c){const t=new Uint8Array(c);let a=0;for(let r=32;r<e.length-16;r+=160,a+=16)e.set(t.subarray(a,a+16),r);return e}decryptAvcSample(e,c,t,a,r){const i=kt(r.data),n=this.getAvcEncryptedData(i);this.decryptBuffer(n.buffer).then((n=>{r.data=this.getAvcDecryptedUnit(i,n),this.decrypter.isSync()||this.decryptAvcSamples(e,c,t+1,a)})).catch(a)}decryptAvcSamples(e,c,t,a){if(e instanceof Uint8Array)throw new Error("Cannot decrypt samples of type Uint8Array");for(;;c++,t=0){if(c>=e.length)return void a();const r=e[c].units;for(;!(t>=r.length);t++){const i=r[t];if(!(i.data.length<=48||1!==i.type&&5!==i.type||(this.decryptAvcSample(e,c,t,a,i),this.decrypter.isSync())))return}}}}class Cn{constructor(){this.VideoSample=null}createVideoSample(e,c,t){return{key:e,frame:!1,pts:c,dts:t,units:[],length:0}}getLastNalUnit(e){var c;let t,a=this.VideoSample;if(a&&0!==a.units.length||(a=e[e.length-1]),null!=(c=a)&&c.units){const e=a.units;t=e[e.length-1]}return t}pushAccessUnit(e,c){if(e.units.length&&e.frame){if(void 0===e.pts){const t=c.samples,a=t.length;if(!a)return void c.dropped++;{const c=t[a-1];e.pts=c.pts,e.dts=c.dts}}c.samples.push(e)}}parseNALu(e,c,t){const a=c.byteLength;let r=e.naluState||0;const i=r,n=[];let f,s,o,l=0,d=-1,u=0;for(-1===r&&(d=0,u=this.getNALuType(c,0),r=0,l=1);l<a;)if(f=c[l++],r)if(1!==r)if(f)if(1===f){if(s=l-r-1,d>=0){const e={data:c.subarray(d,s),type:u};n.push(e)}else{const t=this.getLastNalUnit(e.samples);t&&(i&&l<=4-i&&t.state&&(t.data=t.data.subarray(0,t.data.byteLength-i)),s>0&&(t.data=yt(t.data,c.subarray(0,s)),t.state=0))}l<a?(o=this.getNALuType(c,l),d=l,u=o,r=0):r=-1}else r=0;else r=3;else r=f?0:2;else r=f?0:1;if(d>=0&&r>=0){const e={data:c.subarray(d,a),type:u,state:r};n.push(e)}if(0===n.length){const t=this.getLastNalUnit(e.samples);t&&(t.data=yt(t.data,c))}return e.naluState=r,n}}let On=class{constructor(e){this.data=void 0,this.bytesAvailable=void 0,this.word=void 0,this.bitsAvailable=void 0,this.data=e,this.bytesAvailable=e.byteLength,this.word=0,this.bitsAvailable=0}loadWord(){const e=this.data,c=this.bytesAvailable,t=e.byteLength-c,a=new Uint8Array(4),r=Math.min(4,c);if(0===r)throw new Error("no bytes available");a.set(e.subarray(t,t+r)),this.word=new DataView(a.buffer).getUint32(0),this.bitsAvailable=8*r,this.bytesAvailable-=r}skipBits(e){let c;e=Math.min(e,8*this.bytesAvailable+this.bitsAvailable),this.bitsAvailable>e?(this.word<<=e,this.bitsAvailable-=e):(c=(e-=this.bitsAvailable)>>3,e-=c<<3,this.bytesAvailable-=c,this.loadWord(),this.word<<=e,this.bitsAvailable-=e)}readBits(e){let c=Math.min(this.bitsAvailable,e);const t=this.word>>>32-c;if(e>32&&xc.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=c,this.bitsAvailable>0)this.word<<=c;else{if(!(this.bytesAvailable>0))throw new Error("no bits available");this.loadWord()}return c=e-c,c>0&&this.bitsAvailable?t<<c|this.readBits(c):t}skipLZ(){let e;for(e=0;e<this.bitsAvailable;++e)if(this.word&2147483648>>>e)return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()}skipUEG(){this.skipBits(1+this.skipLZ())}skipEG(){this.skipBits(1+this.skipLZ())}readUEG(){const e=this.skipLZ();return this.readBits(e+1)-1}readEG(){const e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)}readBoolean(){return 1===this.readBits(1)}readUByte(){return this.readBits(8)}readUShort(){return this.readBits(16)}readUInt(){return this.readBits(32)}};class Mn extends Cn{parsePES(e,c,t,a){const r=this.parseNALu(e,t.data,a);let i,n=this.VideoSample,f=!1;t.data=null,n&&r.length&&!e.audFound&&(this.pushAccessUnit(n,e),n=this.VideoSample=this.createVideoSample(!1,t.pts,t.dts)),r.forEach((a=>{var r,s;switch(a.type){case 1:{let c=!1;i=!0;const r=a.data;if(f&&r.length>4){const e=this.readSliceType(r);2!==e&&4!==e&&7!==e&&9!==e||(c=!0)}var o;if(c)null!=(o=n)&&o.frame&&!n.key&&(this.pushAccessUnit(n,e),n=this.VideoSample=null);n||(n=this.VideoSample=this.createVideoSample(!0,t.pts,t.dts)),n.frame=!0,n.key=c;break}case 5:i=!0,null!=(r=n)&&r.frame&&!n.key&&(this.pushAccessUnit(n,e),n=this.VideoSample=null),n||(n=this.VideoSample=this.createVideoSample(!0,t.pts,t.dts)),n.key=!0,n.frame=!0;break;case 6:i=!0,Tt(a.data,1,t.pts,c.samples);break;case 7:{var l,d;i=!0,f=!0;const c=a.data,t=this.readSPS(c);if(!e.sps||e.width!==t.width||e.height!==t.height||(null==(l=e.pixelRatio)?void 0:l[0])!==t.pixelRatio[0]||(null==(d=e.pixelRatio)?void 0:d[1])!==t.pixelRatio[1]){e.width=t.width,e.height=t.height,e.pixelRatio=t.pixelRatio,e.sps=[c];const a=c.subarray(1,4);let r="avc1.";for(let e=0;e<3;e++){let c=a[e].toString(16);c.length<2&&(c="0"+c),r+=c}e.codec=r}break}case 8:i=!0,e.pps=[a.data];break;case 9:i=!0,e.audFound=!0,null!=(s=n)&&s.frame&&(this.pushAccessUnit(n,e),n=null),n||(n=this.VideoSample=this.createVideoSample(!1,t.pts,t.dts));break;case 12:i=!0;break;default:i=!1}if(n&&i){n.units.push(a)}})),a&&n&&(this.pushAccessUnit(n,e),this.VideoSample=null)}getNALuType(e,c){return 31&e[c]}readSliceType(e){const c=new On(e);return c.readUByte(),c.readUEG(),c.readUEG()}skipScalingList(e,c){let t,a=8,r=8;for(let i=0;i<e;i++)0!==r&&(t=c.readEG(),r=(a+t+256)%256),a=0===r?a:r}readSPS(e){const c=new On(e);let t,a,r,i=0,n=0,f=0,s=0;const o=c.readUByte.bind(c),l=c.readBits.bind(c),d=c.readUEG.bind(c),u=c.readBoolean.bind(c),h=c.skipBits.bind(c),b=c.skipEG.bind(c),p=c.skipUEG.bind(c),g=this.skipScalingList.bind(this);o();const m=o();if(l(5),h(3),o(),p(),100===m||110===m||122===m||244===m||44===m||83===m||86===m||118===m||128===m){const e=d();if(3===e&&h(1),p(),p(),h(1),u())for(a=3!==e?8:12,r=0;r<a;r++)u()&&g(r<6?16:64,c)}p();const v=d();if(0===v)d();else if(1===v)for(h(1),b(),b(),t=d(),r=0;r<t;r++)b();p(),h(1);const y=d(),E=d(),S=l(1);0===S&&h(1),h(1),u()&&(i=d(),n=d(),f=d(),s=d());let _=[1,1];if(u()&&u()){switch(o()){case 1:_=[1,1];break;case 2:_=[12,11];break;case 3:_=[10,11];break;case 4:_=[16,11];break;case 5:_=[40,33];break;case 6:_=[24,11];break;case 7:_=[20,11];break;case 8:_=[32,11];break;case 9:_=[80,33];break;case 10:_=[18,11];break;case 11:_=[15,11];break;case 12:_=[64,33];break;case 13:_=[160,99];break;case 14:_=[4,3];break;case 15:_=[3,2];break;case 16:_=[2,1];break;case 255:_=[o()<<8|o(),o()<<8|o()]}}return{width:Math.ceil(16*(y+1)-2*i-2*n),height:(2-S)*(E+1)*16-(S?2:4)*(f+s),pixelRatio:_}}}class Fn extends Cn{constructor(...e){super(...e),this.initVPS=null}parsePES(e,c,t,a){const r=this.parseNALu(e,t.data,a);let i,n=this.VideoSample,f=!1;t.data=null,n&&r.length&&!e.audFound&&(this.pushAccessUnit(n,e),n=this.VideoSample=this.createVideoSample(!1,t.pts,t.dts)),r.forEach((a=>{var r,s;switch(a.type){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:n||(n=this.VideoSample=this.createVideoSample(!1,t.pts,t.dts)),n.frame=!0,i=!0;break;case 16:case 17:case 18:case 21:var o;if(i=!0,f)null!=(o=n)&&o.frame&&!n.key&&(this.pushAccessUnit(n,e),n=this.VideoSample=null);n||(n=this.VideoSample=this.createVideoSample(!0,t.pts,t.dts)),n.key=!0,n.frame=!0;break;case 19:case 20:i=!0,null!=(r=n)&&r.frame&&!n.key&&(this.pushAccessUnit(n,e),n=this.VideoSample=null),n||(n=this.VideoSample=this.createVideoSample(!0,t.pts,t.dts)),n.key=!0,n.frame=!0;break;case 39:i=!0,Tt(a.data,2,t.pts,c.samples);break;case 32:i=!0,e.vps||("object"!=typeof e.params&&(e.params={}),e.params=_c(e.params,this.readVPS(a.data)),this.initVPS=a.data),e.vps=[a.data];break;case 33:if(i=!0,f=!0,void 0===e.vps||e.vps[0]===this.initVPS||void 0===e.sps||this.matchSPS(e.sps[0],a.data)||(this.initVPS=e.vps[0],e.sps=e.pps=void 0),!e.sps){const c=this.readSPS(a.data);e.width=c.width,e.height=c.height,e.pixelRatio=c.pixelRatio,e.codec=c.codecString,e.sps=[],"object"!=typeof e.params&&(e.params={});for(const t in c.params)e.params[t]=c.params[t]}this.pushParameterSet(e.sps,a.data,e.vps),n||(n=this.VideoSample=this.createVideoSample(!0,t.pts,t.dts)),n.key=!0;break;case 34:if(i=!0,"object"==typeof e.params){if(!e.pps){e.pps=[];const c=this.readPPS(a.data);for(const t in c)e.params[t]=c[t]}this.pushParameterSet(e.pps,a.data,e.vps)}break;case 35:i=!0,e.audFound=!0,null!=(s=n)&&s.frame&&(this.pushAccessUnit(n,e),n=null),n||(n=this.VideoSample=this.createVideoSample(!1,t.pts,t.dts));break;default:i=!1}if(n&&i){n.units.push(a)}})),a&&n&&(this.pushAccessUnit(n,e),this.VideoSample=null)}pushParameterSet(e,c,t){(t&&t[0]===this.initVPS||!t&&!e.length)&&e.push(c)}getNALuType(e,c){return(126&e[c])>>>1}ebsp2rbsp(e){const c=new Uint8Array(e.byteLength);let t=0;for(let a=0;a<e.byteLength;a++)a>=2&&3===e[a]&&0===e[a-1]&&0===e[a-2]||(c[t]=e[a],t++);return new Uint8Array(c.buffer,0,t)}pushAccessUnit(e,c){super.pushAccessUnit(e,c),this.initVPS&&(this.initVPS=null)}readVPS(e){const c=new On(e);c.readUByte(),c.readUByte(),c.readBits(4),c.skipBits(2),c.readBits(6);return{numTemporalLayers:c.readBits(3)+1,temporalIdNested:c.readBoolean()}}readSPS(e){const c=new On(this.ebsp2rbsp(e));c.readUByte(),c.readUByte(),c.readBits(4);const t=c.readBits(3);c.readBoolean();const a=c.readBits(2),r=c.readBoolean(),i=c.readBits(5),n=c.readUByte(),f=c.readUByte(),s=c.readUByte(),o=c.readUByte(),l=c.readUByte(),d=c.readUByte(),u=c.readUByte(),h=c.readUByte(),b=c.readUByte(),p=c.readUByte(),g=c.readUByte(),m=[],v=[];for(let H=0;H<t;H++)m.push(c.readBoolean()),v.push(c.readBoolean());if(t>0)for(let H=t;H<8;H++)c.readBits(2);for(let H=0;H<t;H++)m[H]&&(c.readUByte(),c.readUByte(),c.readUByte(),c.readUByte(),c.readUByte(),c.readUByte(),c.readUByte(),c.readUByte(),c.readUByte(),c.readUByte(),c.readUByte()),v[H]&&c.readUByte();c.readUEG();const y=c.readUEG();3==y&&c.skipBits(1);const E=c.readUEG(),S=c.readUEG(),_=c.readBoolean();let T=0,k=0,A=0,L=0;_&&(T+=c.readUEG(),k+=c.readUEG(),A+=c.readUEG(),L+=c.readUEG());const I=c.readUEG(),w=c.readUEG(),R=c.readUEG();for(let H=c.readBoolean()?0:t;H<=t;H++)c.skipUEG(),c.skipUEG(),c.skipUEG();c.skipUEG(),c.skipUEG(),c.skipUEG(),c.skipUEG(),c.skipUEG(),c.skipUEG();if(c.readBoolean()){if(c.readBoolean())for(let e=0;e<4;e++)for(let t=0;t<(3===e?2:6);t++){if(c.readBoolean()){const t=Math.min(64,1<<4+(e<<1));e>1&&c.readEG();for(let e=0;e<t;e++)c.readEG()}else c.readUEG()}}c.readBoolean(),c.readBoolean();c.readBoolean()&&(c.readUByte(),c.skipUEG(),c.skipUEG(),c.readBoolean());const D=c.readUEG();let x=0;for(let H=0;H<D;H++){let e=!1;if(0!==H&&(e=c.readBoolean()),e){H===D&&c.readUEG(),c.readBoolean(),c.readUEG();let e=0;for(let t=0;t<=x;t++){const t=c.readBoolean();let a=!1;t||(a=c.readBoolean()),(t||a)&&e++}x=e}else{const e=c.readUEG(),t=c.readUEG();x=e+t;for(let a=0;a<e;a++)c.readUEG(),c.readBoolean();for(let a=0;a<t;a++)c.readUEG(),c.readBoolean()}}if(c.readBoolean()){const e=c.readUEG();for(let t=0;t<e;t++){for(let e=0;e<R+4;e++)c.readBits(1);c.readBits(1)}}let P=0,C=1,O=1,M=!0,F=1,N=0;c.readBoolean(),c.readBoolean();let U=!1;if(c.readBoolean()){if(c.readBoolean()){const e=c.readUByte();e>0&&e<16?(C=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][e-1],O=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][e-1]):255===e&&(C=c.readBits(16),O=c.readBits(16))}c.readBoolean()&&c.readBoolean();if(c.readBoolean()){c.readBits(3),c.readBoolean();c.readBoolean()&&(c.readUByte(),c.readUByte(),c.readUByte())}c.readBoolean()&&(c.readUEG(),c.readUEG()),c.readBoolean(),c.readBoolean(),c.readBoolean(),U=c.readBoolean(),U&&(c.skipUEG(),c.skipUEG(),c.skipUEG(),c.skipUEG());if(c.readBoolean()){F=c.readBits(32),N=c.readBits(32);c.readBoolean()&&c.readUEG();if(c.readBoolean()){const e=c.readBoolean(),a=c.readBoolean();let r=!1;(e||a)&&(r=c.readBoolean(),r&&(c.readUByte(),c.readBits(5),c.readBoolean(),c.readBits(5)),c.readBits(4),c.readBits(4),r&&c.readBits(4),c.readBits(5),c.readBits(5),c.readBits(5));for(let i=0;i<=t;i++){M=c.readBoolean();let t=!1;M||c.readBoolean()?c.readEG():t=c.readBoolean();const i=t?1:c.readUEG()+1;if(e)for(let e=0;e<i;e++)c.readUEG(),c.readUEG(),r&&(c.readUEG(),c.readUEG()),c.skipBits(1);if(a)for(let e=0;e<i;e++)c.readUEG(),c.readUEG(),r&&(c.readUEG(),c.readUEG()),c.skipBits(1)}}}c.readBoolean()&&(c.readBoolean(),c.readBoolean(),c.readBoolean(),P=c.readUEG())}let B=E,$=S;if(_){let e=1,c=1;1===y?e=c=2:2==y&&(e=2),B=E-e*k-e*T,$=S-c*L-c*A}const j=a?["A","B","C"][a]:"",G=n<<24|f<<16|s<<8|o;let K=0;for(let H=0;H<32;H++)K=(K|(G>>H&1)<<31-H)>>>0;let V=K.toString(16);1===i&&"2"===V&&(V="6");return{codecString:`hvc1.${j}${i}.${V}.${r?"H":"L"}${g}.B0`,params:{general_tier_flag:r,general_profile_idc:i,general_profile_space:a,general_profile_compatibility_flags:[n,f,s,o],general_constraint_indicator_flags:[l,d,u,h,b,p],general_level_idc:g,bit_depth:I+8,bit_depth_luma_minus8:I,bit_depth_chroma_minus8:w,min_spatial_segmentation_idc:P,chroma_format_idc:y,frame_rate:{fixed:M,fps:N/F}},width:B,height:$,pixelRatio:[C,O]}}readPPS(e){const c=new On(this.ebsp2rbsp(e));c.readUByte(),c.readUByte(),c.skipUEG(),c.skipUEG(),c.skipBits(2),c.skipBits(3),c.skipBits(2),c.skipUEG(),c.skipUEG(),c.skipEG(),c.skipBits(2);c.readBoolean()&&c.skipUEG(),c.skipEG(),c.skipEG(),c.skipBits(4);const t=c.readBoolean(),a=c.readBoolean();let r=1;return a&&t?r=0:a?r=3:t&&(r=2),{parallelismType:r}}matchSPS(e,c){return String.fromCharCode.apply(null,e).substr(3)===String.fromCharCode.apply(null,c).substr(3)}}const Nn=188;class Un{constructor(e,c,t,a){this.logger=void 0,this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.sampleAes=null,this.pmtParsed=!1,this.audioCodec=void 0,this.videoCodec=void 0,this._pmtId=-1,this._videoTrack=void 0,this._audioTrack=void 0,this._id3Track=void 0,this._txtTrack=void 0,this.aacOverFlow=null,this.remainderData=null,this.videoParser=void 0,this.observer=e,this.config=c,this.typeSupported=t,this.logger=a,this.videoParser=null}static probe(e,c){const t=Un.syncOffset(e);return t>0&&c.warn(`MPEG2-TS detected but first sync word found @ offset ${t}`),-1!==t}static syncOffset(e){const c=e.length;let t=Math.min(940,c-Nn)+1,a=0;for(;a<t;){let r=!1,i=-1,n=0;for(let f=a;f<c;f+=Nn){if(71!==e[f]||c-f!==Nn&&71!==e[f+Nn]){if(n)return-1;break}if(n++,-1===i&&(i=f,0!==i&&(t=Math.min(i+18612,e.length-Nn)+1)),r||(r=0===Bn(e,f)),r&&n>1&&(0===i&&n>2||f+Nn>t))return i}a++}return-1}static createTrack(e,c){return{container:"video"===e||"audio"===e?"video/mp2t":void 0,type:e,id:at[e],pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0,duration:"audio"===e?c:void 0}}resetInitSegment(e,c,t,a){this.pmtParsed=!1,this._pmtId=-1,this._videoTrack=Un.createTrack("video"),this._videoTrack.duration=a,this._audioTrack=Un.createTrack("audio",a),this._id3Track=Un.createTrack("id3"),this._txtTrack=Un.createTrack("text"),this._audioTrack.segmentCodec="aac",this.videoParser=null,this.aacOverFlow=null,this.remainderData=null,this.audioCodec=c,this.videoCodec=t}resetTimeStamp(){}resetContiguity(){const{_audioTrack:e,_videoTrack:c,_id3Track:t}=this;e&&(e.pesData=null),c&&(c.pesData=null),t&&(t.pesData=null),this.aacOverFlow=null,this.remainderData=null}demux(e,c,t=!1,a=!1){let r;t||(this.sampleAes=null);const i=this._videoTrack,n=this._audioTrack,f=this._id3Track,s=this._txtTrack;let o=i.pid,l=i.pesData,d=n.pid,u=f.pid,h=n.pesData,b=f.pesData,p=null,g=this.pmtParsed,m=this._pmtId,v=e.length;if(this.remainderData&&(v=(e=yt(this.remainderData,e)).length,this.remainderData=null),v<Nn&&!a)return this.remainderData=e,{audioTrack:n,videoTrack:i,id3Track:f,textTrack:s};const y=Math.max(0,Un.syncOffset(e));v-=(v-y)%Nn,v<e.byteLength&&!a&&(this.remainderData=new Uint8Array(e.buffer,v,e.buffer.byteLength-v));let E=0;for(let _=y;_<v;_+=Nn)if(71===e[_]){const c=!!(64&e[_+1]),a=Bn(e,_);let v;if((48&e[_+3])>>4>1){if(v=_+5+e[_+4],v===_+Nn)continue}else v=_+4;switch(a){case o:c&&(l&&(r=Vn(l,this.logger))&&(this.readyVideoParser(i.segmentCodec),null!==this.videoParser&&this.videoParser.parsePES(i,s,r,!1)),l={data:[],size:0}),l&&(l.data.push(e.subarray(v,_+Nn)),l.size+=_+Nn-v);break;case d:if(c){if(h&&(r=Vn(h,this.logger)))switch(n.segmentCodec){case"aac":this.parseAACPES(n,r);break;case"mp3":this.parseMPEGPES(n,r);break;case"ac3":this.parseAC3PES(n,r)}h={data:[],size:0}}h&&(h.data.push(e.subarray(v,_+Nn)),h.size+=_+Nn-v);break;case u:c&&(b&&(r=Vn(b,this.logger))&&this.parseID3PES(f,r),b={data:[],size:0}),b&&(b.data.push(e.subarray(v,_+Nn)),b.size+=_+Nn-v);break;case 0:c&&(v+=e[v]+1),m=this._pmtId=$n(e,v);break;case m:{c&&(v+=e[v]+1);const a=jn(e,v,this.typeSupported,t,this.observer,this.logger);o=a.videoPid,o>0&&(i.pid=o,i.segmentCodec=a.segmentVideoCodec),d=a.audioPid,d>0&&(n.pid=d,n.segmentCodec=a.segmentAudioCodec),u=a.id3Pid,u>0&&(f.pid=u),null===p||g||(this.logger.warn(`MPEG-TS PMT found at ${_} after unknown PID '${p}'. Backtracking to sync byte @${y} to parse all TS packets.`),p=null,_=y-188),g=this.pmtParsed=!0;break}case 17:case 8191:break;default:p=a}}else E++;E>0&&Gn(this.observer,new Error(`Found ${E} TS packet/s that do not start with 0x47`),void 0,this.logger),i.pesData=l,n.pesData=h,f.pesData=b;const S={audioTrack:n,videoTrack:i,id3Track:f,textTrack:s};return a&&this.extractRemainingSamples(S),S}flush(){const{remainderData:e}=this;let c;return this.remainderData=null,c=e?this.demux(e,-1,!1,!0):{videoTrack:this._videoTrack,audioTrack:this._audioTrack,id3Track:this._id3Track,textTrack:this._txtTrack},this.extractRemainingSamples(c),this.sampleAes?this.decrypt(c,this.sampleAes):c}extractRemainingSamples(e){const{audioTrack:c,videoTrack:t,id3Track:a,textTrack:r}=e,i=t.pesData,n=c.pesData,f=a.pesData;let s;if(i&&(s=Vn(i,this.logger))?(this.readyVideoParser(t.segmentCodec),null!==this.videoParser&&(this.videoParser.parsePES(t,r,s,!0),t.pesData=null)):t.pesData=i,n&&(s=Vn(n,this.logger))){switch(c.segmentCodec){case"aac":this.parseAACPES(c,s);break;case"mp3":this.parseMPEGPES(c,s);break;case"ac3":this.parseAC3PES(c,s)}c.pesData=null}else null!=n&&n.size&&this.logger.log("last AAC PES packet truncated,might overlap between fragments"),c.pesData=n;f&&(s=Vn(f,this.logger))?(this.parseID3PES(a,s),a.pesData=null):a.pesData=f}demuxSampleAes(e,c,t){const a=this.demux(e,t,!0,!this.config.progressive),r=this.sampleAes=new Pn(this.observer,this.config,c);return this.decrypt(a,r)}readyVideoParser(e){null===this.videoParser&&("avc"===e?this.videoParser=new Mn:"hevc"===e&&(this.videoParser=new Fn))}decrypt(e,c){return new Promise((t=>{const{audioTrack:a,videoTrack:r}=e;a.samples&&"aac"===a.segmentCodec?c.decryptAacSamples(a.samples,0,(()=>{r.samples?c.decryptAvcSamples(r.samples,0,0,(()=>{t(e)})):t(e)})):r.samples&&c.decryptAvcSamples(r.samples,0,0,(()=>{t(e)}))}))}destroy(){this.observer&&this.observer.removeAllListeners(),this.config=this.logger=this.observer=null,this.aacOverFlow=this.videoParser=this.remainderData=this.sampleAes=null,this._videoTrack=this._audioTrack=this._id3Track=this._txtTrack=void 0}parseAACPES(e,c){let t=0;const a=this.aacOverFlow;let r,i,n,f=c.data;if(a){this.aacOverFlow=null;const c=a.missing,r=a.sample.unit.byteLength;if(-1===c)f=yt(a.sample.unit,f);else{const i=r-c;a.sample.unit.set(f.subarray(0,c),i),e.samples.push(a.sample),t=a.missing}}for(r=t,i=f.length;r<i-1&&!Ji(f,r);r++);if(r!==t){let e;const c=r<i-1;if(e=c?`AAC PES did not start with ADTS header,offset:${r}`:"No ADTS header found in AAC PES",Gn(this.observer,new Error(e),c,this.logger),!c)return}if(en(e,this.observer,f,r,this.audioCodec),void 0!==c.pts)n=c.pts;else{if(!a)return void this.logger.warn("[tsdemuxer]: AAC PES unknown PTS");{const c=cn(e.samplerate);n=a.sample.pts+c}}let s,o=0;for(;r<i;){if(s=tn(e,f,r,n,o),r+=s.length,s.missing){this.aacOverFlow=s;break}for(o++;r<i-1&&!Ji(f,r);r++);}}parseMPEGPES(e,c){const t=c.data,a=t.length;let r=0,i=0;const n=c.pts;if(void 0!==n)for(;i<a;)if(An(t,i)){const c=_n(e,t,i,n,r);if(!c)break;i+=c.length,r++}else i++;else this.logger.warn("[tsdemuxer]: MPEG PES unknown PTS")}parseAC3PES(e,c){{const t=c.data,a=c.pts;if(void 0===a)return void this.logger.warn("[tsdemuxer]: AC3 PES unknown PTS");const r=t.length;let i,n=0,f=0;for(;f<r&&(i=Rn(e,t,f,a,n++))>0;)f+=i}}parseID3PES(e,c){if(void 0===c.pts)return void this.logger.warn("[tsdemuxer]: ID3 PES unknown PTS");const t=_c({},c,{type:this._videoTrack?hn.emsg:hn.audioId3,duration:Number.POSITIVE_INFINITY});e.samples.push(t)}}function Bn(e,c){return((31&e[c+1])<<8)+e[c+2]}function $n(e,c){return(31&e[c+10])<<8|e[c+11]}function jn(e,c,t,a,r,i){const n={audioPid:-1,videoPid:-1,id3Pid:-1,segmentVideoCodec:"avc",segmentAudioCodec:"aac"},f=c+3+((15&e[c+1])<<8|e[c+2])-4;for(c+=12+((15&e[c+10])<<8|e[c+11]);c<f;){const f=Bn(e,c),s=(15&e[c+3])<<8|e[c+4];switch(e[c]){case 207:if(!a){Kn("ADTS AAC",i);break}case 15:-1===n.audioPid&&(n.audioPid=f);break;case 21:-1===n.id3Pid&&(n.id3Pid=f);break;case 219:if(!a){Kn("H.264",i);break}case 27:-1===n.videoPid&&(n.videoPid=f);break;case 3:case 4:t.mpeg||t.mp3?-1===n.audioPid&&(n.audioPid=f,n.segmentAudioCodec="mp3"):i.log("MPEG audio found, not supported in this browser");break;case 193:if(!a){Kn("AC-3",i);break}case 129:t.ac3?-1===n.audioPid&&(n.audioPid=f,n.segmentAudioCodec="ac3"):i.log("AC-3 audio found, not supported in this browser");break;case 6:if(-1===n.audioPid&&s>0){let a=c+5,r=s;for(;r>2;){if(106===e[a])!0!==t.ac3?i.log("AC-3 audio found, not supported in this browser for now"):(n.audioPid=f,n.segmentAudioCodec="ac3");const c=e[a+1]+2;a+=c,r-=c}}break;case 194:case 135:return Gn(r,new Error("Unsupported EC-3 in M2TS found"),void 0,i),n;case 36:-1===n.videoPid&&(n.videoPid=f,n.segmentVideoCodec="hevc",i.log("HEVC in M2TS found"))}c+=s+5}return n}function Gn(e,c,t,a){a.warn(`parsing error: ${c.message}`),e.emit(dc.ERROR,dc.ERROR,{type:oc.MEDIA_ERROR,details:lc.FRAG_PARSING_ERROR,fatal:!1,levelRetry:t,error:c,reason:c.message})}function Kn(e,c){c.log(`${e} with AES-128-CBC encryption found in unencrypted stream`)}function Vn(e,c){let t,a,r,i,n,f=0;const s=e.data;if(!e||0===e.size)return null;for(;s[0].length<19&&s.length>1;)s[0]=yt(s[0],s[1]),s.splice(1,1);t=s[0];if(1===(t[0]<<16)+(t[1]<<8)+t[2]){if(a=(t[4]<<8)+t[5],a&&a>e.size-6)return null;const o=t[7];192&o&&(i=536870912*(14&t[9])+4194304*(255&t[10])+16384*(254&t[11])+128*(255&t[12])+(254&t[13])/2,64&o?(n=536870912*(14&t[14])+4194304*(255&t[15])+16384*(254&t[16])+128*(255&t[17])+(254&t[18])/2,i-n>54e5&&(c.warn(`${Math.round((i-n)/9e4)}s delta between PTS and DTS, align them`),i=n)):n=i),r=t[8];let l=r+9;if(e.size<=l)return null;e.size-=l;const d=new Uint8Array(e.size);for(let e=0,c=s.length;e<c;e++){t=s[e];let c=t.byteLength;if(l){if(l>c){l-=c;continue}t=t.subarray(l),c-=l,l=0}d.set(t,f),f+=c}return a&&(a-=r+3),{data:d,pts:i,dts:n,len:a}}return null}let Hn=class{static getSilentFrame(e,c){if("mp4a.40.2"===e){if(1===c)return new Uint8Array([0,200,0,128,35,128]);if(2===c)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===c)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===c)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===c)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===c)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===c)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===c)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===c)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}}};const qn=Math.pow(2,32)-1;let Yn=class e{static init(){let c;for(c in e.types={avc1:[],avcC:[],hvc1:[],hvcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],".mp3":[],dac3:[],"ac-3":[],mvex:[],mvhd:[],pasp:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]},e.types)e.types.hasOwnProperty(c)&&(e.types[c]=[c.charCodeAt(0),c.charCodeAt(1),c.charCodeAt(2),c.charCodeAt(3)]);const t=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),a=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]);e.HDLR_TYPES={video:t,audio:a};const r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),i=new Uint8Array([0,0,0,0,0,0,0,0]);e.STTS=e.STSC=e.STCO=i,e.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),e.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),e.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),e.STSD=new Uint8Array([0,0,0,0,0,0,0,1]);const n=new Uint8Array([105,115,111,109]),f=new Uint8Array([97,118,99,49]),s=new Uint8Array([0,0,0,1]);e.FTYP=e.box(e.types.ftyp,n,s,n,f),e.DINF=e.box(e.types.dinf,e.box(e.types.dref,r))}static box(e,...c){let t=8,a=c.length;const r=a;for(;a--;)t+=c[a].byteLength;const i=new Uint8Array(t);for(i[0]=t>>24&255,i[1]=t>>16&255,i[2]=t>>8&255,i[3]=255&t,i.set(e,4),a=0,t=8;a<r;a++)i.set(c[a],t),t+=c[a].byteLength;return i}static hdlr(c){return e.box(e.types.hdlr,e.HDLR_TYPES[c])}static mdat(c){return e.box(e.types.mdat,c)}static mdhd(c,t){t*=c;const a=Math.floor(t/(qn+1)),r=Math.floor(t%(qn+1));return e.box(e.types.mdhd,new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,c>>24&255,c>>16&255,c>>8&255,255&c,a>>24,a>>16&255,a>>8&255,255&a,r>>24,r>>16&255,r>>8&255,255&r,85,196,0,0]))}static mdia(c){return e.box(e.types.mdia,e.mdhd(c.timescale||0,c.duration||0),e.hdlr(c.type),e.minf(c))}static mfhd(c){return e.box(e.types.mfhd,new Uint8Array([0,0,0,0,c>>24,c>>16&255,c>>8&255,255&c]))}static minf(c){return"audio"===c.type?e.box(e.types.minf,e.box(e.types.smhd,e.SMHD),e.DINF,e.stbl(c)):e.box(e.types.minf,e.box(e.types.vmhd,e.VMHD),e.DINF,e.stbl(c))}static moof(c,t,a){return e.box(e.types.moof,e.mfhd(c),e.traf(a,t))}static moov(c){let t=c.length;const a=[];for(;t--;)a[t]=e.trak(c[t]);return e.box.apply(null,[e.types.moov,e.mvhd(c[0].timescale||0,c[0].duration||0)].concat(a).concat(e.mvex(c)))}static mvex(c){let t=c.length;const a=[];for(;t--;)a[t]=e.trex(c[t]);return e.box.apply(null,[e.types.mvex,...a])}static mvhd(c,t){t*=c;const a=Math.floor(t/(qn+1)),r=Math.floor(t%(qn+1)),i=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,c>>24&255,c>>16&255,c>>8&255,255&c,a>>24,a>>16&255,a>>8&255,255&a,r>>24,r>>16&255,r>>8&255,255&r,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return e.box(e.types.mvhd,i)}static sdtp(c){const t=c.samples||[],a=new Uint8Array(4+t.length);let r,i;for(r=0;r<t.length;r++)i=t[r].flags,a[r+4]=i.dependsOn<<4|i.isDependedOn<<2|i.hasRedundancy;return e.box(e.types.sdtp,a)}static stbl(c){return e.box(e.types.stbl,e.stsd(c),e.box(e.types.stts,e.STTS),e.box(e.types.stsc,e.STSC),e.box(e.types.stsz,e.STSZ),e.box(e.types.stco,e.STCO))}static avc1(c){let t,a,r,i=[],n=[];for(t=0;t<c.sps.length;t++)a=c.sps[t],r=a.byteLength,i.push(r>>>8&255),i.push(255&r),i=i.concat(Array.prototype.slice.call(a));for(t=0;t<c.pps.length;t++)a=c.pps[t],r=a.byteLength,n.push(r>>>8&255),n.push(255&r),n=n.concat(Array.prototype.slice.call(a));const f=e.box(e.types.avcC,new Uint8Array([1,i[3],i[4],i[5],255,224|c.sps.length].concat(i).concat([c.pps.length]).concat(n))),s=c.width,o=c.height,l=c.pixelRatio[0],d=c.pixelRatio[1];return e.box(e.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,s>>8&255,255&s,o>>8&255,255&o,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),f,e.box(e.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),e.box(e.types.pasp,new Uint8Array([l>>24,l>>16&255,l>>8&255,255&l,d>>24,d>>16&255,d>>8&255,255&d])))}static esds(e){const c=e.config;return new Uint8Array([0,0,0,0,3,25,0,1,0,4,17,64,21,0,0,0,0,0,0,0,0,0,0,0,5,2,...c,6,1,2])}static audioStsd(e){const c=e.samplerate||0;return new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount||0,0,16,0,0,0,0,c>>8&255,255&c,0,0])}static mp4a(c){return e.box(e.types.mp4a,e.audioStsd(c),e.box(e.types.esds,e.esds(c)))}static mp3(c){return e.box(e.types[".mp3"],e.audioStsd(c))}static ac3(c){return e.box(e.types["ac-3"],e.audioStsd(c),e.box(e.types.dac3,c.config))}static stsd(c){const{segmentCodec:t}=c;if("audio"===c.type){if("aac"===t)return e.box(e.types.stsd,e.STSD,e.mp4a(c));if("ac3"===t&&c.config)return e.box(e.types.stsd,e.STSD,e.ac3(c));if("mp3"===t&&"mp3"===c.codec)return e.box(e.types.stsd,e.STSD,e.mp3(c))}else{if(!c.pps||!c.sps)throw new Error("video track missing pps or sps");if("avc"===t)return e.box(e.types.stsd,e.STSD,e.avc1(c));if("hevc"===t&&c.vps)return e.box(e.types.stsd,e.STSD,e.hvc1(c))}throw new Error(`unsupported ${c.type} segment codec (${t}/${c.codec})`)}static tkhd(c){const t=c.id,a=(c.duration||0)*(c.timescale||0),r=c.width||0,i=c.height||0,n=Math.floor(a/(qn+1)),f=Math.floor(a%(qn+1));return e.box(e.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,0,0,0,0,n>>24,n>>16&255,n>>8&255,255&n,f>>24,f>>16&255,f>>8&255,255&f,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>8&255,255&r,0,0,i>>8&255,255&i,0,0]))}static traf(c,t){const a=e.sdtp(c),r=c.id,i=Math.floor(t/(qn+1)),n=Math.floor(t%(qn+1));return e.box(e.types.traf,e.box(e.types.tfhd,new Uint8Array([0,0,0,0,r>>24,r>>16&255,r>>8&255,255&r])),e.box(e.types.tfdt,new Uint8Array([1,0,0,0,i>>24,i>>16&255,i>>8&255,255&i,n>>24,n>>16&255,n>>8&255,255&n])),e.trun(c,a.length+16+20+8+16+8+8),a)}static trak(c){return c.duration=c.duration||4294967295,e.box(e.types.trak,e.tkhd(c),e.mdia(c))}static trex(c){const t=c.id;return e.box(e.types.trex,new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))}static trun(c,t){const a=c.samples||[],r=a.length,i=12+16*r,n=new Uint8Array(i);let f,s,o,l,d,u;for(t+=8+i,n.set(["video"===c.type?1:0,0,15,1,r>>>24&255,r>>>16&255,r>>>8&255,255&r,t>>>24&255,t>>>16&255,t>>>8&255,255&t],0),f=0;f<r;f++)s=a[f],o=s.duration,l=s.size,d=s.flags,u=s.cts,n.set([o>>>24&255,o>>>16&255,o>>>8&255,255&o,l>>>24&255,l>>>16&255,l>>>8&255,255&l,d.isLeading<<2|d.dependsOn,d.isDependedOn<<6|d.hasRedundancy<<4|d.paddingValue<<1|d.isNonSync,61440&d.degradPrio,15&d.degradPrio,u>>>24&255,u>>>16&255,u>>>8&255,255&u],12+16*f);return e.box(e.types.trun,n)}static initSegment(c){e.types||e.init();const t=e.moov(c);return yt(e.FTYP,t)}static hvc1(c){const t=c.params,a=[c.vps,c.sps,c.pps],r=new Uint8Array([1,t.general_profile_space<<6|(t.general_tier_flag?32:0)|t.general_profile_idc,t.general_profile_compatibility_flags[0],t.general_profile_compatibility_flags[1],t.general_profile_compatibility_flags[2],t.general_profile_compatibility_flags[3],t.general_constraint_indicator_flags[0],t.general_constraint_indicator_flags[1],t.general_constraint_indicator_flags[2],t.general_constraint_indicator_flags[3],t.general_constraint_indicator_flags[4],t.general_constraint_indicator_flags[5],t.general_level_idc,240|t.min_spatial_segmentation_idc>>8,255&t.min_spatial_segmentation_idc,252|t.parallelismType,252|t.chroma_format_idc,248|t.bit_depth_luma_minus8,248|t.bit_depth_chroma_minus8,0,parseInt(t.frame_rate.fps),3|t.temporal_id_nested<<2|t.num_temporal_layers<<3|(t.frame_rate.fixed?64:0),a.length]);let i=r.length;for(let e=0;e<a.length;e+=1){i+=3;for(let c=0;c<a[e].length;c+=1)i+=2+a[e][c].length}const n=new Uint8Array(i);n.set(r,0),i=r.length;const f=a.length-1;for(let e=0;e<a.length;e+=1){n.set(new Uint8Array([32+e|(e===f?128:0),0,a[e].length]),i),i+=3;for(let c=0;c<a[e].length;c+=1)n.set(new Uint8Array([a[e][c].length>>8,255&a[e][c].length]),i),i+=2,n.set(a[e][c],i),i+=a[e][c].length}const s=e.box(e.types.hvcC,n),o=c.width,l=c.height,d=c.pixelRatio[0],u=c.pixelRatio[1];return e.box(e.types.hvc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,o>>8&255,255&o,l>>8&255,255&l,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),s,e.box(e.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),e.box(e.types.pasp,new Uint8Array([d>>24,d>>16&255,d>>8&255,255&d,u>>24,u>>16&255,u>>8&255,255&u])))}};Yn.types=void 0,Yn.HDLR_TYPES=void 0,Yn.STTS=void 0,Yn.STSC=void 0,Yn.STCO=void 0,Yn.STSZ=void 0,Yn.VMHD=void 0,Yn.SMHD=void 0,Yn.STSD=void 0,Yn.FTYP=void 0,Yn.DINF=void 0;function Wn(e,c,t=1,a=!1){const r=e*c*t;return a?Math.round(r):r}function zn(e,c=!1){return Wn(e,1e3,1/9e4,c)}function Xn(e){const{baseTime:c,timescale:t,trackId:a}=e;return`${c/t} (${c}/${t}) trackId: ${a}`}let Qn,Jn=null,Zn=null;function ef(e,c,t,a){return{duration:c,size:t,cts:a,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:e?2:1,isNonSync:e?0:1}}}class cf extends Ac{constructor(e,c,t,a){if(super("mp4-remuxer",a),this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.ISGenerated=!1,this._initPTS=null,this._initDTS=null,this.nextVideoTs=null,this.nextAudioTs=null,this.videoSampleDuration=null,this.isAudioContiguous=!1,this.isVideoContiguous=!1,this.videoTrackConfig=void 0,this.observer=e,this.config=c,this.typeSupported=t,this.ISGenerated=!1,null===Jn){const e=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);Jn=e?parseInt(e[1]):0}if(null===Zn){const e=navigator.userAgent.match(/Safari\/(\d+)/i);Zn=e?parseInt(e[1]):0}}destroy(){this.config=this.videoTrackConfig=this._initPTS=this._initDTS=null}resetTimeStamp(e){const c=this._initPTS;c&&e&&e.trackId===c.trackId&&e.baseTime===c.baseTime&&e.timescale===c.timescale||this.log(`Reset initPTS: ${c?Xn(c):c} > ${e?Xn(e):e}`),this._initPTS=this._initDTS=e}resetNextTimestamp(){this.log("reset next timestamp"),this.isVideoContiguous=!1,this.isAudioContiguous=!1}resetInitSegment(){this.log("ISGenerated flag reset"),this.ISGenerated=!1,this.videoTrackConfig=void 0}getVideoStartPts(e){let c=!1;const t=e[0].pts,a=e.reduce(((e,a)=>{let r=a.pts,i=r-e;return i<-4294967296&&(c=!0,r=tf(r,t),i=r-e),i>0?e:r}),t);return c&&this.debug("PTS rollover detected"),a}remux(e,c,t,a,r,i,n,f){let s,o,l,d,u,h,b=r,p=r;const g=e.pid>-1,m=c.pid>-1,v=c.samples.length,y=e.samples.length>0,E=n&&v>0||v>1;if((!g||y)&&(!m||E)||this.ISGenerated||n){if(this.ISGenerated){var S,_,T,k;const e=this.videoTrackConfig;(e&&(c.width!==e.width||c.height!==e.height||(null==(S=c.pixelRatio)?void 0:S[0])!==(null==(_=e.pixelRatio)?void 0:_[0])||(null==(T=c.pixelRatio)?void 0:T[1])!==(null==(k=e.pixelRatio)?void 0:k[1]))||!e&&E||null===this.nextAudioTs&&y)&&this.resetInitSegment()}this.ISGenerated||(l=this.generateIS(e,c,r,i));const t=this.isVideoContiguous;let a,n=-1;if(E&&(n=function(e){for(let c=0;c<e.length;c++)if(e[c].key)return c;return-1}(c.samples),!t&&this.config.forceKeyFrameOnDiscontinuity))if(h=!0,n>0){this.warn(`Dropped ${n} out of ${v} video samples due to a missing keyframe`);const e=this.getVideoStartPts(c.samples);c.samples=c.samples.slice(n),c.dropped+=n,p+=(c.samples[0].pts-e)/c.inputTimeScale,a=p}else-1===n&&(this.warn(`No keyframe found out of ${v} video samples`),h=!1);if(this.ISGenerated){if(y&&E){const t=this.getVideoStartPts(c.samples),a=(tf(e.samples[0].pts,t)-t)/c.inputTimeScale;b+=Math.max(0,a),p+=Math.max(0,-a)}if(y){if(e.samplerate||(this.warn("regenerate InitSegment as audio detected"),l=this.generateIS(e,c,r,i)),o=this.remuxAudio(e,b,this.isAudioContiguous,i,m||E||f===mc?p:void 0),E){const a=o?o.endPTS-o.startPTS:0;c.inputTimeScale||(this.warn("regenerate InitSegment as video detected"),l=this.generateIS(e,c,r,i)),s=this.remuxVideo(c,p,t,a)}}else E&&(s=this.remuxVideo(c,p,t,0));s&&(s.firstKeyFrame=n,s.independent=-1!==n,s.firstKeyFramePTS=a)}}return this.ISGenerated&&this._initPTS&&this._initDTS&&(t.samples.length&&(u=af(t,r,this._initPTS,this._initDTS)),a.samples.length&&(d=rf(a,r,this._initPTS))),{audio:o,video:s,initSegment:l,independent:h,text:d,id3:u}}computeInitPts(e,c,t,a){const r=Math.round(t*c);let i=tf(e,r);if(i<r+c)for(this.log(`Adjusting PTS for rollover in timeline near ${(r-i)/c} ${a}`);i<r+c;)i+=8589934592;return i-r}generateIS(e,c,t,a){const r=e.samples,i=c.samples,n=this.typeSupported,f={},s=this._initPTS;let o,l,d,u=!s||a,h="audio/mp4",b=-1;if(u&&(o=l=1/0),e.config&&r.length){switch(e.timescale=e.samplerate,e.segmentCodec){case"mp3":n.mpeg?(h="audio/mpeg",e.codec=""):n.mp3&&(e.codec="mp3");break;case"ac3":e.codec="ac-3"}f.audio={id:"audio",container:h,codec:e.codec,initSegment:"mp3"===e.segmentCodec&&n.mpeg?new Uint8Array(0):Yn.initSegment([e]),metadata:{channelCount:e.channelCount}},u&&(b=e.id,d=e.inputTimeScale,s&&d===s.timescale?u=!1:o=l=this.computeInitPts(r[0].pts,d,t,"audio"))}if(c.sps&&c.pps&&i.length){if(c.timescale=c.inputTimeScale,f.video={id:"main",container:"video/mp4",codec:c.codec,initSegment:Yn.initSegment([c]),metadata:{width:c.width,height:c.height}},u)if(b=c.id,d=c.inputTimeScale,s&&d===s.timescale)u=!1;else{const e=this.getVideoStartPts(i),c=tf(i[0].dts,e),a=this.computeInitPts(c,d,t,"video"),r=this.computeInitPts(e,d,t,"video");l=Math.min(l,a),o=Math.min(o,r)}this.videoTrackConfig={width:c.width,height:c.height,pixelRatio:c.pixelRatio}}if(Object.keys(f).length)return this.ISGenerated=!0,u?(s&&this.warn(`Timestamps at playlist time: ${a?"":"~"}${t} ${o/d} != initPTS: ${s.baseTime/s.timescale} (${s.baseTime}/${s.timescale}) trackId: ${s.trackId}`),this.log(`Found initPTS at playlist time: ${t} offset: ${o/d} (${o}/${d}) trackId: ${b}`),this._initPTS={baseTime:o,timescale:d,trackId:b},this._initDTS={baseTime:l,timescale:d,trackId:b}):o=d=void 0,{tracks:f,initPTS:o,timescale:d,trackId:b}}remuxVideo(e,c,t,a){const r=e.inputTimeScale,i=e.samples,n=[],f=i.length,s=this._initPTS,o=s.baseTime*r/s.timescale;let l,d,u=this.nextVideoTs,h=8,b=this.videoSampleDuration,p=Number.POSITIVE_INFINITY,g=Number.NEGATIVE_INFINITY,m=!1;if(!t||null===u){const e=o+c*r,a=i[0].pts-tf(i[0].dts,i[0].pts);Jn&&null!==u&&Math.abs(e-a-(u+o))<15e3?t=!0:u=e-a-o}const v=u+o;for(let M=0;M<f;M++){const e=i[M];e.pts=tf(e.pts,v),e.dts=tf(e.dts,v),e.dts<i[M>0?M-1:M].dts&&(m=!0)}m&&i.sort((function(e,c){const t=e.dts-c.dts,a=e.pts-c.pts;return t||a})),l=i[0].dts,d=i[i.length-1].dts;const y=d-l,E=y?Math.round(y/(f-1)):b||e.inputTimeScale/30;if(t){const t=l-v,a=t>E,r=t<-1;if((a||r)&&(a?this.warn(`${(e.segmentCodec||"").toUpperCase()}: ${zn(t,!0)} ms (${t}dts) hole between fragments detected at ${c.toFixed(3)}`):this.warn(`${(e.segmentCodec||"").toUpperCase()}: ${zn(-t,!0)} ms (${t}dts) overlapping between fragments detected at ${c.toFixed(3)}`),!r||v>=i[0].pts||Jn)){l=v;const e=i[0].pts-t;if(a)i[0].dts=l,i[0].pts=e;else{let c=!0;for(let a=0;a<i.length&&!(i[a].dts>e&&c);a++){const e=i[a].pts;if(i[a].dts-=t,i[a].pts-=t,a<i.length-1){const t=i[a+1].pts;c=t<=i[a].pts==t<=e}}}this.log(`Video: Initial PTS/DTS adjusted: ${zn(e,!0)}/${zn(l,!0)}, delta: ${zn(t,!0)} ms`)}}l=Math.max(0,l);let S=0,_=0,T=l;for(let M=0;M<f;M++){const e=i[M],c=e.units,t=c.length;let a=0;for(let r=0;r<t;r++)a+=c[r].data.length;_+=a,S+=t,e.length=a,e.dts<T?(e.dts=T,T+=E/4|0||1):T=e.dts,p=Math.min(e.pts,p),g=Math.max(e.pts,g)}d=i[f-1].dts;const k=_+4*S+8;let A;try{A=new Uint8Array(k)}catch(O){return void this.observer.emit(dc.ERROR,dc.ERROR,{type:oc.MUX_ERROR,details:lc.REMUX_ALLOC_ERROR,fatal:!1,error:O,bytes:k,reason:`fail allocating video mdat ${k}`})}const L=new DataView(A.buffer);L.setUint32(0,k),A.set(Yn.types.mdat,4);let I=!1,w=Number.POSITIVE_INFINITY,R=Number.POSITIVE_INFINITY,D=Number.NEGATIVE_INFINITY,x=Number.NEGATIVE_INFINITY;for(let M=0;M<f;M++){const e=i[M],c=e.units;let t,s=0;for(let a=0,r=c.length;a<r;a++){const e=c[a],t=e.data,r=e.data.byteLength;L.setUint32(h,r),h+=4,A.set(t,h),h+=r,s+=4+r}if(M<f-1)b=i[M+1].dts-e.dts,t=i[M+1].pts-e.pts;else{const c=this.config,n=M>0?e.dts-i[M-1].dts:E;if(t=M>0?e.pts-i[M-1].pts:E,c.stretchShortVideoTrack&&null!==this.nextAudioTs){const t=Math.floor(c.maxBufferHole*r),i=(a?p+a*r:this.nextAudioTs+o)-e.pts;i>t?(b=i-n,b<0?b=n:I=!0,this.log(`It is approximately ${i/90} ms to the next segment; using duration ${b/90} ms for the last video frame.`)):b=n}else b=n}const l=Math.round(e.pts-e.dts);w=Math.min(w,b),D=Math.max(D,b),R=Math.min(R,t),x=Math.max(x,t),n.push(ef(e.key,b,s,l))}if(n.length)if(Jn){if(Jn<70){const e=n[0].flags;e.dependsOn=2,e.isNonSync=0}}else if(Zn&&x-R<D-w&&E/D<.025&&0===n[0].cts){this.warn("Found irregular gaps in sample duration. Using PTS instead of DTS to determine MP4 sample duration.");let e=l;for(let c=0,t=n.length;c<t;c++){const a=e+n[c].duration,r=e+n[c].cts;if(c<t-1){const e=a+n[c+1].cts;n[c].duration=e-r}else n[c].duration=c?n[c-1].duration:E;n[c].cts=0,e=a}}b=I||!b?E:b;const P=d+b;this.nextVideoTs=u=P-o,this.videoSampleDuration=b,this.isVideoContiguous=!0;const C={data1:Yn.moof(e.sequenceNumber++,l,_c(e,{samples:n})),data2:A,startPTS:(p-o)/r,endPTS:(g+b-o)/r,startDTS:(l-o)/r,endDTS:u/r,type:"video",hasAudio:!1,hasVideo:!0,nb:n.length,dropped:e.dropped};return e.samples=[],e.dropped=0,C}getSamplesPerFrame(e){switch(e.segmentCodec){case"mp3":return 1152;case"ac3":return 1536;default:return 1024}}remuxAudio(e,c,t,a,r){const i=e.inputTimeScale,n=i/(e.samplerate?e.samplerate:i),f=this.getSamplesPerFrame(e),s=f*n,o=this._initPTS,l="mp3"===e.segmentCodec&&this.typeSupported.mpeg,d=[],u=void 0!==r;let h=e.samples,b=l?0:8,p=this.nextAudioTs||-1;const g=o.baseTime*i/o.timescale,m=g+c*i;if(this.isAudioContiguous=t=t||h.length&&p>0&&(a&&Math.abs(m-(p+g))<9e3||Math.abs(tf(h[0].pts,m)-(p+g))<20*s),h.forEach((function(e){e.pts=tf(e.pts,m)})),!t||p<0){const e=h.length;if(h=h.filter((e=>e.pts>=0)),e!==h.length&&this.warn(`Removed ${h.length-e} of ${e} samples (initPTS ${g} / ${i})`),!h.length)return;p=0===r?0:a&&!u?Math.max(0,m-g):h[0].pts-g}if("aac"===e.segmentCodec){const c=this.config.maxAudioFramesDrift;for(let t=0,a=p+g;t<h.length;t++){const r=h[t],n=r.pts,f=n-a,o=Math.abs(1e3*f/i);if(f<=-c*s&&u)0===t&&(this.warn(`Audio frame @ ${(n/i).toFixed(3)}s overlaps marker by ${Math.round(1e3*f/i)} ms.`),this.nextAudioTs=p=n-g,a=n);else if(f>=c*s&&o<1e4&&u){let c=Math.round(f/s);for(a=n-c*s;a<0&&c&&s;)c--,a+=s;0===t&&(this.nextAudioTs=p=a-g),this.warn(`Injecting ${c} audio frames @ ${((a-g)/i).toFixed(3)}s due to ${Math.round(1e3*f/i)} ms gap.`);for(let i=0;i<c;i++){let c=Hn.getSilentFrame(e.parsedCodec||e.manifestCodec||e.codec,e.channelCount);c||(this.log("Unable to get silent frame for given audio codec; duplicating last frame instead."),c=r.unit.subarray()),h.splice(t,0,{unit:c,pts:a}),a+=s,t++}}r.pts=a,a+=s}}let v,y=null,E=null,S=0,_=h.length;for(;_--;)S+=h[_].unit.byteLength;for(let D=0,x=h.length;D<x;D++){const c=h[D],a=c.unit;let r=c.pts;if(null!==E){d[D-1].duration=Math.round((r-E)/n)}else{if(t&&"aac"===e.segmentCodec&&(r=p+g),y=r,!(S>0))return;S+=b;try{v=new Uint8Array(S)}catch(R){return void this.observer.emit(dc.ERROR,dc.ERROR,{type:oc.MUX_ERROR,details:lc.REMUX_ALLOC_ERROR,fatal:!1,error:R,bytes:S,reason:`fail allocating audio mdat ${S}`})}if(!l){new DataView(v.buffer).setUint32(0,S),v.set(Yn.types.mdat,4)}}v.set(a,b);const i=a.byteLength;b+=i,d.push(ef(!0,f,i,0)),E=r}const T=d.length;if(!T)return;const k=d[d.length-1];p=E-g,this.nextAudioTs=p+n*k.duration;const A=l?new Uint8Array(0):Yn.moof(e.sequenceNumber++,y/n,_c({},e,{samples:d}));e.samples=[];const L=(y-g)/i,I=p/i,w={data1:A,data2:v,startPTS:L,endPTS:I,startDTS:L,endDTS:I,type:"audio",hasAudio:!0,hasVideo:!1,nb:T};return this.isAudioContiguous=!0,w}}function tf(e,c){let t;if(null===c)return e;for(t=c<e?-8589934592:8589934592;Math.abs(e-c)>4294967296;)e+=t;return e}function af(e,c,t,a){const r=e.samples.length;if(!r)return;const i=e.inputTimeScale;for(let f=0;f<r;f++){const r=e.samples[f];r.pts=tf(r.pts-t.baseTime*i/t.timescale,c*i)/i,r.dts=tf(r.dts-a.baseTime*i/a.timescale,c*i)/i}const n=e.samples;return e.samples=[],{samples:n}}function rf(e,c,t){const a=e.samples.length;if(!a)return;const r=e.inputTimeScale;for(let n=0;n<a;n++){const a=e.samples[n];a.pts=tf(a.pts-t.baseTime*r/t.timescale,c*r)/r}e.samples.sort(((e,c)=>e.pts-c.pts));const i=e.samples;return e.samples=[],{samples:i}}function nf(e,c,t=!1){return void 0!==(null==e?void 0:e.start)?(e.start+(t?e.duration:0))/e.timescale:c}function ff(e,c,t){const a=e.codec;if(a&&a.length>4)return a;if(c===Yc){if("ec-3"===a||"ac-3"===a||"alac"===a)return a;if("fLaC"===a||"Opus"===a){return Nt(a,!1)}return t.warn(`Unhandled audio codec "${a}" in mp4 MAP`),a||"mp4a"}return t.warn(`Unhandled video codec "${a}" in mp4 MAP`),a||"avc1"}try{Qn=self.performance.now.bind(self.performance)}catch(nm){Qn=Date.now}const sf=[{demux:class{constructor(e,c){this.remainderData=null,this.timeOffset=0,this.config=void 0,this.videoTrack=void 0,this.audioTrack=void 0,this.id3Track=void 0,this.txtTrack=void 0,this.config=c}resetTimeStamp(){}resetInitSegment(e,c,t,a){const r=this.videoTrack=bn("video",1),i=this.audioTrack=bn("audio",1),n=this.txtTrack=bn("text",1);if(this.id3Track=bn("id3",1),this.timeOffset=0,null==e||!e.byteLength)return;const f=dt(e);if(f.video){const{id:e,timescale:c,codec:t,supplemental:a}=f.video;r.id=e,r.timescale=n.timescale=c,r.codec=t,r.supplemental=a}if(f.audio){const{id:e,timescale:c,codec:t}=f.audio;i.id=e,i.timescale=c,i.codec=t}n.id=at.text,r.sampleDuration=0,r.duration=i.duration=a}resetContiguity(){this.remainderData=null}static probe(e){return function(e){const c=e.byteLength;for(let t=0;t<c;){const a=nt(e,t);if(a>8&&109===e[t+4]&&111===e[t+5]&&111===e[t+6]&&102===e[t+7])return!0;t=a>1?t+a:c}return!1}(e)}demux(e,c){this.timeOffset=c;let t=e;const a=this.videoTrack,r=this.txtTrack;if(this.config.progressive){this.remainderData&&(t=yt(this.remainderData,e));const c=function(e){const c={valid:null,remainder:null},t=ot(e,["moof"]);if(t.length<2)return c.remainder=e,c;const a=t[t.length-1];return c.valid=e.slice(0,a.byteOffset-8),c.remainder=e.slice(a.byteOffset-8),c}(t);this.remainderData=c.remainder,a.samples=c.valid||new Uint8Array}else a.samples=t;const i=this.extractID3Track(a,c);return r.samples=Et(c,a),{videoTrack:a,audioTrack:this.audioTrack,id3Track:i,textTrack:this.txtTrack}}flush(){const e=this.timeOffset,c=this.videoTrack,t=this.txtTrack;c.samples=this.remainderData||new Uint8Array,this.remainderData=null;const a=this.extractID3Track(c,this.timeOffset);return t.samples=Et(e,c),{videoTrack:c,audioTrack:bn(),id3Track:a,textTrack:bn()}}extractID3Track(e,c){const t=this.id3Track;if(e.samples.length){const a=ot(e.samples,["emsg"]);a&&a.forEach((e=>{const a=function(e){const c=e[0];let t="",a="",r=0,i=0,n=0,f=0,s=0,o=0;if(0===c){for(;"\0"!==rt(e.subarray(o,o+1));)t+=rt(e.subarray(o,o+1)),o+=1;for(t+=rt(e.subarray(o,o+1)),o+=1;"\0"!==rt(e.subarray(o,o+1));)a+=rt(e.subarray(o,o+1)),o+=1;a+=rt(e.subarray(o,o+1)),o+=1,r=nt(e,12),i=nt(e,16),f=nt(e,20),s=nt(e,24),o=28}else if(1===c){o+=4,r=nt(e,o),o+=4;const c=nt(e,o);o+=4;const i=nt(e,o);for(o+=4,n=2**32*c+i,fc(n)||(n=Number.MAX_SAFE_INTEGER,xc.warn("Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box")),f=nt(e,o),o+=4,s=nt(e,o),o+=4;"\0"!==rt(e.subarray(o,o+1));)t+=rt(e.subarray(o,o+1)),o+=1;for(t+=rt(e.subarray(o,o+1)),o+=1;"\0"!==rt(e.subarray(o,o+1));)a+=rt(e.subarray(o,o+1)),o+=1;a+=rt(e.subarray(o,o+1)),o+=1}return{schemeIdUri:t,value:a,timeScale:r,presentationTime:n,presentationTimeDelta:i,eventDuration:f,id:s,payload:e.subarray(o,e.byteLength)}}(e);if(Dn.test(a.schemeIdUri)){const e=xn(a,c);let r=4294967295===a.eventDuration?Number.POSITIVE_INFINITY:a.eventDuration/a.timeScale;r<=.001&&(r=Number.POSITIVE_INFINITY);const i=a.payload;t.samples.push({data:i,len:i.byteLength,dts:e,pts:e,type:hn.emsg,duration:r})}else if(this.config.enableEmsgKLVMetadata&&a.schemeIdUri.startsWith("urn:misb:KLV:bin:1910.1")){const e=xn(a,c);t.samples.push({data:a.payload,len:a.payload.byteLength,dts:e,pts:e,type:hn.misbklv,duration:Number.POSITIVE_INFINITY})}}))}return t}demuxSampleAes(e,c,t){return Promise.reject(new Error("The MP4 demuxer does not support SAMPLE-AES decryption"))}destroy(){this.config=null,this.remainderData=null,this.videoTrack=this.audioTrack=this.id3Track=this.txtTrack=void 0}},remux:class extends Ac{constructor(e,c,t,a){super("passthrough-remuxer",a),this.emitInitSegment=!1,this.audioCodec=void 0,this.videoCodec=void 0,this.initData=void 0,this.initPTS=null,this.initTracks=void 0,this.lastEndTime=null,this.isVideoContiguous=!1}destroy(){}resetTimeStamp(e){this.lastEndTime=null;const c=this.initPTS;c&&e&&c.baseTime===e.baseTime&&c.timescale===e.timescale||(this.initPTS=e)}resetNextTimestamp(){this.isVideoContiguous=!1,this.lastEndTime=null}resetInitSegment(e,c,t,a){this.audioCodec=c,this.videoCodec=t,this.generateInitSegment(e,a),this.emitInitSegment=!0}generateInitSegment(e,c){let{audioCodec:t,videoCodec:a}=this;if(null==e||!e.byteLength)return this.initTracks=void 0,void(this.initData=void 0);const{audio:r,video:i}=this.initData=dt(e);if(c)!function(e,c){if(!e||!c)return;const t=c.keyId;t&&c.isCommonEncryption&&mt(e,((e,c)=>{const a=e.subarray(8,24);a.some((e=>0!==e))||(xc.log(`[eme] Patching keyId in 'enc${c?"a":"v"}>sinf>>tenc' box: ${Mc(a)} -> ${Mc(t)}`),e.set(t,8))}))}(e,c);else{const e=r||i;null!=e&&e.encrypted&&this.warn(`Init segment with encrypted track with has no key ("${e.codec}")!`)}r&&(t=ff(r,Yc,this)),i&&(a=ff(i,Wc,this));const n={};r&&i?n.audiovideo={container:"video/mp4",codec:t+","+a,supplemental:i.supplemental,encrypted:i.encrypted,initSegment:e,id:"main"}:r?n.audio={container:"audio/mp4",codec:t,encrypted:r.encrypted,initSegment:e,id:"audio"}:i?n.video={container:"video/mp4",codec:a,supplemental:i.supplemental,encrypted:i.encrypted,initSegment:e,id:"main"}:this.warn("initSegment does not contain moov or trak boxes."),this.initTracks=n}remux(e,c,t,a,r,i){var n,f;let{initPTS:s,lastEndTime:o}=this;const l={audio:void 0,video:void 0,text:a,id3:t,initSegment:void 0};nc(o)||(o=this.lastEndTime=r||0);const d=c.samples;if(!d.length)return l;const u={initPTS:void 0,timescale:void 0,trackId:void 0};let h=this.initData;if(null!=(n=h)&&n.length||(this.generateInitSegment(d),h=this.initData),null==(f=h)||!f.length)return this.warn("Failed to generate initSegment."),l;this.emitInitSegment&&(u.tracks=this.initTracks,this.emitInitSegment=!1);const b=function(e,c,t){const a={},r=ot(e,["moof","traf"]);for(let i=0;i<r.length;i++){const e=r[i],n=ot(e,["tfhd"])[0],f=nt(n,4),s=c[f];if(!s)continue;a[f]||(a[f]={start:NaN,duration:0,sampleCount:0,timescale:s.timescale,type:s.type});const o=a[f],l=ot(e,["tfdt"])[0];if(l){const e=l[0];let c=nt(l,4);1===e&&(c===ct?t.warn("[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time"):(c*=ct+1,c+=nt(l,8))),nc(c)&&(!nc(o.start)||c<o.start)&&(o.start=c)}const d=s.default,u=nt(n,0)|(null==d?void 0:d.flags);let h=(null==d?void 0:d.duration)||0;8&u&&(h=nt(n,2&u?12:8));const b=ot(e,["trun"]);let p=o.start||0,g=0,m=h;for(let c=0;c<b.length;c++){const e=b[c],t=nt(e,4),a=o.sampleCount;o.sampleCount+=t;const r=1&e[3],i=4&e[3],n=1&e[2],f=2&e[2],s=4&e[2],l=8&e[2];let d=8,u=t;for(r&&(d+=4),i&&t&&(1&e[d+1]||void 0!==o.keyFrameIndex||(o.keyFrameIndex=a),d+=4,n?(m=nt(e,d),d+=4):m=h,f&&(d+=4),l&&(d+=4),p+=m,g+=m,u--);u--;)n?(m=nt(e,d),d+=4):m=h,f&&(d+=4),s&&(1&e[d+1]||void 0===o.keyFrameIndex&&(o.keyFrameIndex=o.sampleCount-(u+1),o.keyFrameStart=p),d+=4),l&&(d+=4),p+=m,g+=m;!g&&h&&(g+=h*t)}o.duration+=g}if(!Object.keys(a).some((e=>a[e].duration))){let c=1/0,t=0;const r=ot(e,["sidx"]);for(let e=0;e<r.length;e++){const a=lt(r[e]);if(null!=a&&a.references){c=Math.min(c,a.earliestPresentationTime/a.timescale);const e=a.references.reduce(((e,c)=>e+c.info.duration||0),0);t=Math.max(t,e+a.earliestPresentationTime/a.timescale)}}t&&nc(t)&&Object.keys(a).forEach((e=>{a[e].duration||(a[e].duration=t*a[e].timescale-a[e].start)}))}return a}(d,h,this),p=h.audio?b[h.audio.id]:null,g=h.video?b[h.video.id]:null,m=nf(g,1/0),v=nf(p,1/0),y=nf(g,0,!0),E=nf(p,0,!0);let S=r,_=0;const T=p&&(!g||!s&&v<m||s&&s.trackId===h.audio.id),k=T?p:g;if(k){const e=k.timescale,c=k.start-r*e,t=T?h.audio.id:h.video.id;S=k.start/e,_=T?E-v:y-m,!i&&s||!function(e,c,t,a){if(null===e)return!0;const r=Math.max(a,1),i=c-e.baseTime/e.timescale;return Math.abs(i-t)>r}(s,S,r,_)&&e===s.timescale||(s&&this.warn(`Timestamps at playlist time: ${i?"":"~"}${r} ${c/e} != initPTS: ${s.baseTime/s.timescale} (${s.baseTime}/${s.timescale}) trackId: ${s.trackId}`),this.log(`Found initPTS at playlist time: ${r} offset: ${S-r} (${c}/${e}) trackId: ${t}`),s=null,u.initPTS=c,u.timescale=e,u.trackId=t)}else this.warn(`No audio or video samples found for initPTS at playlist time: ${r}`);s?(u.initPTS=s.baseTime,u.timescale=s.timescale,u.trackId=s.trackId):(u.timescale&&void 0!==u.trackId&&void 0!==u.initPTS||(this.warn("Could not set initPTS"),u.initPTS=S,u.timescale=1,u.trackId=-1),this.initPTS=s={baseTime:u.initPTS,timescale:u.timescale,trackId:u.trackId});const A=S-s.baseTime/s.timescale,L=A+_;_>0?this.lastEndTime=L:(this.warn("Duration parsed from mp4 should be greater than zero"),this.resetNextTimestamp());const I=!!h.audio,w=!!h.video;let R="";I&&(R+="audio"),w&&(R+="video");const D={data1:d,startPTS:A,startDTS:A,endPTS:L,endDTS:L,type:R,hasAudio:I,hasVideo:w,nb:1,dropped:0,encrypted:!!h.audio&&h.audio.encrypted||!!h.video&&h.video.encrypted};l.audio=I&&!w?D:void 0,l.video=w?D:void 0;const x=null==g?void 0:g.sampleCount;if(x){const e=g.keyFrameIndex,c=-1!==e;D.nb=x,D.dropped=0===e||this.isVideoContiguous?0:c?e:x,D.independent=c,D.firstKeyFrame=e,c&&g.keyFrameStart&&(D.firstKeyFramePTS=(g.keyFrameStart-s.baseTime)/s.timescale),this.isVideoContiguous||(l.independent=c),this.isVideoContiguous||(this.isVideoContiguous=c),D.dropped&&this.warn(`fmp4 does not start with IDR: firstIDR ${e}/${x} dropped: ${D.dropped} start: ${D.firstKeyFramePTS||"NA"}`)}return l.initSegment=u,l.id3=af(t,r,s,s),a.samples.length&&(l.text=rf(a,r,s)),l}}},{demux:Un,remux:cf},{demux:class extends pn{constructor(e,c){super(),this.observer=void 0,this.config=void 0,this.observer=e,this.config=c}resetInitSegment(e,c,t,a){super.resetInitSegment(e,c,t,a),this._audioTrack={container:"audio/adts",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"aac",samples:[],manifestCodec:c,duration:a,inputTimeScale:9e4,dropped:0}}static probe(e,c){if(!e)return!1;const t=Wi(e,0);let a=(null==t?void 0:t.length)||0;if(Ln(e,a))return!1;for(let r=e.length;a<r;a++)if(Zi(e,a))return c.log("ADTS sync word found !"),!0;return!1}canParse(e,c){return function(e,c){return function(e,c){return c+5<e.length}(e,c)&&zi(e,c)&&Qi(e,c)<=e.length-c}(e,c)}appendFrame(e,c,t){en(e,this.observer,c,t,e.manifestCodec);const a=tn(e,c,t,this.basePTS,this.frameIndex);if(a&&0===a.missing)return a}},remux:cf},{demux:class extends pn{resetInitSegment(e,c,t,a){super.resetInitSegment(e,c,t,a),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"mp3",samples:[],manifestCodec:c,duration:a,inputTimeScale:9e4,dropped:0}}static probe(e){if(!e)return!1;const c=Wi(e,0);let t=(null==c?void 0:c.length)||0;if(c&&11===e[t]&&119===e[t+1]&&void 0!==un(c)&&In(e,t)<=16)return!1;for(let a=e.length;t<a;t++)if(Ln(e,t))return xc.log("MPEG Audio sync word found !"),!0;return!1}canParse(e,c){return function(e,c){return kn(e,c)&&4<=e.length-c}(e,c)}appendFrame(e,c,t){if(null!==this.basePTS)return _n(e,c,t,this.basePTS,this.frameIndex)}},remux:cf}];sf.splice(2,0,{demux:wn,remux:cf});let of=class{constructor(e,c,t,a,r,i){this.asyncResult=!1,this.logger=void 0,this.observer=void 0,this.typeSupported=void 0,this.config=void 0,this.id=void 0,this.demuxer=void 0,this.remuxer=void 0,this.decrypter=void 0,this.probe=void 0,this.decryptionPromise=null,this.transmuxConfig=void 0,this.currentTransmuxState=void 0,this.observer=e,this.typeSupported=c,this.config=t,this.id=r,this.logger=i}configure(e){this.transmuxConfig=e,this.decrypter&&this.decrypter.reset()}push(e,c,t,a){const r=t.transmuxing;r.executeStart=Qn();let i=new Uint8Array(e);const{currentTransmuxState:n,transmuxConfig:f}=this;a&&(this.currentTransmuxState=a);const{contiguous:s,discontinuity:o,trackSwitch:l,accurateTimeOffset:d,timeOffset:u,initSegmentChange:h}=a||n,{audioCodec:b,videoCodec:p,defaultInitPts:g,duration:m,initSegmentData:v}=f,y=function(e,c){let t=null;e.byteLength>0&&null!=(null==c?void 0:c.key)&&null!==c.iv&&null!=c.method&&(t=c);return t}(i,c);if(y&&yr(y.method)){const e=this.getDecrypter(),c=Er(y.method);if(!e.isSync())return this.asyncResult=!0,this.decryptionPromise=e.webCryptoDecrypt(i,y.key.buffer,y.iv.buffer,c).then((e=>{const c=this.push(e,null,t);return this.decryptionPromise=null,c})),this.decryptionPromise;{let a=e.softwareDecrypt(i,y.key.buffer,y.iv.buffer,c);if(t.part>-1){const c=e.flush();a=c?c.buffer:c}if(!a)return r.executeEnd=Qn(),lf(t);i=new Uint8Array(a)}}const E=this.needsProbing(o,l);if(E){const e=this.configureTransmuxer(i);if(e)return this.logger.warn(`[transmuxer] ${e.message}`),this.observer.emit(dc.ERROR,dc.ERROR,{type:oc.MEDIA_ERROR,details:lc.FRAG_PARSING_ERROR,fatal:!1,error:e,reason:e.message}),r.executeEnd=Qn(),lf(t)}(o||l||h||E)&&this.resetInitSegment(v,b,p,m,c),(o||h||E)&&this.resetInitialTimestamp(g),s||this.resetContiguity();const S=this.transmux(i,y,u,d,t);this.asyncResult=df(S);const _=this.currentTransmuxState;return _.contiguous=!0,_.discontinuity=!1,_.trackSwitch=!1,r.executeEnd=Qn(),S}flush(e){const c=e.transmuxing;c.executeStart=Qn();const{decrypter:t,currentTransmuxState:a,decryptionPromise:r}=this;if(r)return this.asyncResult=!0,r.then((()=>this.flush(e)));const i=[],{timeOffset:n}=a;if(t){const c=t.flush();c&&i.push(this.push(c.buffer,null,e))}const{demuxer:f,remuxer:s}=this;if(!f||!s){c.executeEnd=Qn();const t=[lf(e)];return this.asyncResult?Promise.resolve(t):t}const o=f.flush(n);return df(o)?(this.asyncResult=!0,o.then((c=>(this.flushRemux(i,c,e),i)))):(this.flushRemux(i,o,e),this.asyncResult?Promise.resolve(i):i)}flushRemux(e,c,t){const{audioTrack:a,videoTrack:r,id3Track:i,textTrack:n}=c,{accurateTimeOffset:f,timeOffset:s}=this.currentTransmuxState;this.logger.log(`[transmuxer.ts]: Flushed ${this.id} sn: ${t.sn}${t.part>-1?" part: "+t.part:""} of ${this.id===gc?"level":"track"} ${t.level}`);const o=this.remuxer.remux(a,r,i,n,s,f,!0,this.id);e.push({remuxResult:o,chunkMeta:t}),t.transmuxing.executeEnd=Qn()}resetInitialTimestamp(e){const{demuxer:c,remuxer:t}=this;c&&t&&(c.resetTimeStamp(e),t.resetTimeStamp(e))}resetContiguity(){const{demuxer:e,remuxer:c}=this;e&&c&&(e.resetContiguity(),c.resetNextTimestamp())}resetInitSegment(e,c,t,a,r){const{demuxer:i,remuxer:n}=this;i&&n&&(i.resetInitSegment(e,c,t,a),n.resetInitSegment(e,c,t,r))}destroy(){this.demuxer&&(this.demuxer.destroy(),this.demuxer=void 0),this.remuxer&&(this.remuxer.destroy(),this.remuxer=void 0)}transmux(e,c,t,a,r){let i;return i=c&&"SAMPLE-AES"===c.method?this.transmuxSampleAes(e,c,t,a,r):this.transmuxUnencrypted(e,t,a,r),i}transmuxUnencrypted(e,c,t,a){const{audioTrack:r,videoTrack:i,id3Track:n,textTrack:f}=this.demuxer.demux(e,c,!1,!this.config.progressive);return{remuxResult:this.remuxer.remux(r,i,n,f,c,t,!1,this.id),chunkMeta:a}}transmuxSampleAes(e,c,t,a,r){return this.demuxer.demuxSampleAes(e,c,t).then((e=>({remuxResult:this.remuxer.remux(e.audioTrack,e.videoTrack,e.id3Track,e.textTrack,t,a,!1,this.id),chunkMeta:r})))}configureTransmuxer(e){const{config:c,observer:t,typeSupported:a}=this;let r;for(let l=0,d=sf.length;l<d;l++){var i;if(null!=(i=sf[l].demux)&&i.probe(e,this.logger)){r=sf[l];break}}if(!r)return new Error("Failed to find demuxer by probing fragment data");const n=this.demuxer,f=this.remuxer,s=r.remux,o=r.demux;f&&f instanceof s||(this.remuxer=new s(t,c,a,this.logger)),n&&n instanceof o||(this.demuxer=new o(t,c,a,this.logger),this.probe=o.probe)}needsProbing(e,c){return!this.demuxer||!this.remuxer||e||c}getDecrypter(){let e=this.decrypter;return e||(e=this.decrypter=new Xa(this.config)),e}};const lf=e=>({remuxResult:{},chunkMeta:e});function df(e){return"then"in e&&e.then instanceof Function}class uf{constructor(e,c,t,a,r){this.audioCodec=void 0,this.videoCodec=void 0,this.initSegmentData=void 0,this.duration=void 0,this.defaultInitPts=void 0,this.audioCodec=e,this.videoCodec=c,this.initSegmentData=t,this.duration=a,this.defaultInitPts=r||null}}class hf{constructor(e,c,t,a,r,i){this.discontinuity=void 0,this.contiguous=void 0,this.accurateTimeOffset=void 0,this.trackSwitch=void 0,this.timeOffset=void 0,this.initSegmentChange=void 0,this.discontinuity=e,this.contiguous=c,this.accurateTimeOffset=t,this.trackSwitch=a,this.timeOffset=r,this.initSegmentChange=i}}let bf=0;class pf{constructor(e,c,t,a){this.error=null,this.hls=void 0,this.id=void 0,this.instanceNo=bf++,this.observer=void 0,this.frag=null,this.part=null,this.useWorker=void 0,this.workerContext=null,this.transmuxer=null,this.onTransmuxComplete=void 0,this.onFlush=void 0,this.onWorkerMessage=e=>{const c=e.data,t=this.hls;if(t&&null!=c&&c.event&&c.instanceNo===this.instanceNo)switch(c.event){case"init":{var a;const e=null==(a=this.workerContext)?void 0:a.objectURL;e&&self.URL.revokeObjectURL(e);break}case"transmuxComplete":this.handleTransmuxComplete(c.data);break;case"flush":this.onFlush(c.data);break;case"workerLog":t.logger[c.data.logType]&&t.logger[c.data.logType](c.data.message);break;default:c.data=c.data||{},c.data.frag=this.frag,c.data.part=this.part,c.data.id=this.id,t.trigger(c.event,c.data)}},this.onWorkerError=e=>{if(!this.hls)return;const c=new Error(`${e.message} (${e.filename}:${e.lineno})`);this.hls.config.enableWorker=!1,this.hls.logger.warn(`Error in "${this.id}" Web Worker, fallback to inline`),this.hls.trigger(dc.ERROR,{type:oc.OTHER_ERROR,details:lc.INTERNAL_EXCEPTION,fatal:!1,event:"demuxerWorker",error:c})};const r=e.config;this.hls=e,this.id=c,this.useWorker=!!r.enableWorker,this.onTransmuxComplete=t,this.onFlush=a;const i=(e,c)=>{(c=c||{}).frag=this.frag||void 0,e===dc.ERROR&&(c.parent=this.id,c.part=this.part,this.error=c.error),this.hls.trigger(e,c)};this.observer=new Gi,this.observer.on(dc.FRAG_DECRYPTED,i),this.observer.on(dc.ERROR,i);const n=jt(r.preferManagedMediaSource);if(this.useWorker&&"undefined"!=typeof Worker){const t=this.hls.logger;if(r.workerPath||"function"==typeof __HLS_WORKER_BUNDLE__){try{r.workerPath?(t.log(`loading Web Worker ${r.workerPath} for "${c}"`),this.workerContext=function(e){const c=Vi[e];if(c)return c.clientCount++,c;const t=new self.URL(e,self.location.href).href,a={worker:new self.Worker(t),scriptURL:t,clientCount:1};return Vi[e]=a,a}(r.workerPath)):(t.log(`injecting Web Worker for "${c}"`),this.workerContext=function(){const e=Vi[Ki];if(e)return e.clientCount++,e;const c=new self.Blob([`var exports={};var module={exports:exports};function define(f){f()};define.amd=true;(${__HLS_WORKER_BUNDLE__.toString()})(true);`],{type:"text/javascript"}),t=self.URL.createObjectURL(c),a={worker:new self.Worker(t),objectURL:t,clientCount:1};return Vi[Ki]=a,a}());const{worker:e}=this.workerContext;e.addEventListener("message",this.onWorkerMessage),e.addEventListener("error",this.onWorkerError),e.postMessage({instanceNo:this.instanceNo,cmd:"init",typeSupported:n,id:c,config:na(r)})}catch(nm){t.warn(`Error setting up "${c}" Web Worker, fallback to inline`,nm),this.terminateWorker(),this.error=null,this.transmuxer=new of(this.observer,n,r,"",c,e.logger)}return}}this.transmuxer=new of(this.observer,n,r,"",c,e.logger)}reset(){if(this.frag=null,this.part=null,this.workerContext){const e=this.instanceNo;this.instanceNo=bf++;const c=this.hls.config,t=jt(c.preferManagedMediaSource);this.workerContext.worker.postMessage({instanceNo:this.instanceNo,cmd:"reset",resetNo:e,typeSupported:t,id:this.id,config:na(c)})}}terminateWorker(){if(this.workerContext){const{worker:e}=this.workerContext;this.workerContext=null,e.removeEventListener("message",this.onWorkerMessage),e.removeEventListener("error",this.onWorkerError),function(e){const c=Vi[e||Ki];if(c&&1==c.clientCount--){const{worker:t,objectURL:a}=c;delete Vi[e||Ki],a&&self.URL.revokeObjectURL(a),t.terminate()}}(this.hls.config.workerPath)}}destroy(){if(this.workerContext)this.terminateWorker(),this.onWorkerMessage=this.onWorkerError=null;else{const e=this.transmuxer;e&&(e.destroy(),this.transmuxer=null)}const e=this.observer;e&&e.removeAllListeners(),this.frag=null,this.part=null,this.observer=null,this.hls=null}push(e,c,t,a,r,i,n,f,s,o){var l,d;s.transmuxing.start=self.performance.now();const{instanceNo:u,transmuxer:h}=this,b=i?i.start:r.start,p=r.decryptdata,g=this.frag,m=!(g&&r.cc===g.cc),v=!(g&&s.level===g.level),y=g?s.sn-g.sn:-1,E=this.part?s.part-this.part.index:-1,S=0===y&&s.id>1&&s.id===(null==g?void 0:g.stats.chunkCount),_=!v&&(1===y||0===y&&(1===E||S&&E<=0)),T=self.performance.now();(v||y||0===r.stats.parsing.start)&&(r.stats.parsing.start=T),!i||!E&&_||(i.stats.parsing.start=T);const k=!(g&&(null==(l=r.initSegment)?void 0:l.url)===(null==(d=g.initSegment)?void 0:d.url)),A=new hf(m,_,f,v,b,k);if(!_||m||k){this.hls.logger.log(`[transmuxer-interface]: Starting new transmux session for ${r.type} sn: ${s.sn}${s.part>-1?" part: "+s.part:""} ${this.id===gc?"level":"track"}: ${s.level} id: ${s.id}\n discontinuity: ${m}\n trackSwitch: ${v}\n contiguous: ${_}\n accurateTimeOffset: ${f}\n timeOffset: ${b}\n initSegmentChange: ${k}`);const e=new uf(t,a,c,n,o);this.configureTransmuxer(e)}if(this.frag=r,this.part=i,this.workerContext)this.workerContext.worker.postMessage({instanceNo:u,cmd:"demux",data:e,decryptdata:p,chunkMeta:s,state:A},e instanceof ArrayBuffer?[e]:[]);else if(h){const c=h.push(e,p,s,A);df(c)?c.then((e=>{this.handleTransmuxComplete(e)})).catch((e=>{this.transmuxerError(e,s,"transmuxer-interface push error")})):this.handleTransmuxComplete(c)}}flush(e){e.transmuxing.start=self.performance.now();const{instanceNo:c,transmuxer:t}=this;if(this.workerContext)this.workerContext.worker.postMessage({instanceNo:c,cmd:"flush",chunkMeta:e});else if(t){const c=t.flush(e);df(c)?c.then((c=>{this.handleFlushResult(c,e)})).catch((c=>{this.transmuxerError(c,e,"transmuxer-interface flush error")})):this.handleFlushResult(c,e)}}transmuxerError(e,c,t){this.hls&&(this.error=e,this.hls.trigger(dc.ERROR,{type:oc.MEDIA_ERROR,details:lc.FRAG_PARSING_ERROR,chunkMeta:c,frag:this.frag||void 0,part:this.part||void 0,fatal:!1,error:e,err:e,reason:t}))}handleFlushResult(e,c){e.forEach((e=>{this.handleTransmuxComplete(e)})),this.onFlush(c)}configureTransmuxer(e){const{instanceNo:c,transmuxer:t}=this;this.workerContext?this.workerContext.worker.postMessage({instanceNo:c,cmd:"configure",config:e}):t&&t.configure(e)}handleTransmuxComplete(e){e.chunkMeta.transmuxing.end=self.performance.now(),this.onTransmuxComplete(e)}}class gf extends Ac{constructor(e,c){super(c,e.logger),this.hls=void 0,this.canLoad=!1,this.timer=-1,this.hls=e}destroy(){this.clearTimer(),this.hls=this.log=this.warn=null}clearTimer(){-1!==this.timer&&(self.clearTimeout(this.timer),this.timer=-1)}startLoad(){this.canLoad=!0,this.loadPlaylist()}stopLoad(){this.canLoad=!1,this.clearTimer()}switchParams(e,c,t){const a=null==c?void 0:c.renditionReports;if(a){let i=-1;for(let t=0;t<a.length;t++){const n=a[t];let f;try{f=new self.URL(n.URI,c.url).href}catch(r){this.warn(`Could not construct new URL for Rendition Report: ${r}`),f=n.URI||""}if(f===e){i=t;break}f===e.substring(0,f.length)&&(i=t)}if(-1!==i){const e=a[i],r=parseInt(e["LAST-MSN"])||c.lastPartSn;let n=parseInt(e["LAST-PART"])||c.lastPartIndex;if(this.hls.config.lowLatencyMode){const e=Math.min(c.age-c.partTarget,c.targetduration);n>=0&&e>c.partTarget&&(n+=1)}const f=t&&ca(t);return new ta(r,n>=0?n:void 0,f)}}}loadPlaylist(e){this.clearTimer()}loadingPlaylist(e,c){this.clearTimer()}shouldLoadPlaylist(e){return this.canLoad&&!!e&&!!e.url&&(!e.details||e.details.live)}getUrlWithDirectives(e,c){if(c)try{return c.addDirectives(e)}catch(t){this.warn(`Could not construct new URL with HLS Delivery Directives: ${t}`)}return e}playlistLoaded(e,c,t){const{details:a,stats:r}=c,i=self.performance.now(),n=r.loading.first?Math.max(0,i-r.loading.first):0;a.advancedDateTime=Date.now()-n;const f=this.hls.config.timelineOffset;if(f!==a.appliedTimelineOffset){const e=Math.max(f||0,0);a.appliedTimelineOffset=e,a.fragments.forEach((c=>{c.setStart(c.playlistOffset+e)}))}if(a.live||null!=t&&t.live){const f="levelInfo"in c?c.levelInfo:c.track;if(a.reloaded(t),t&&a.fragments.length>0){ii(t,a,this);const e=a.playlistParsingError;if(e){this.warn(e);const t=this.hls;if(!t.config.ignorePlaylistParsingErrors){var s;const{networkDetails:i}=c;return void t.trigger(dc.ERROR,{type:oc.NETWORK_ERROR,details:lc.LEVEL_PARSING_ERROR,fatal:!1,url:a.url,error:e,reason:e.message,level:c.level||void 0,parent:null==(s=a.fragments[0])?void 0:s.type,networkDetails:i,stats:r})}a.playlistParsingError=null}}-1===a.requestScheduled&&(a.requestScheduled=r.loading.start);const o=this.hls.mainForwardBufferInfo,l=o?o.end-o.len:0,d=oi(a,1e3*(a.edge-l));if(a.requestScheduled+d<i?a.requestScheduled=i:a.requestScheduled+=d,this.log(`live playlist ${e} ${a.advanced?"REFRESHED "+a.lastPartSn+"-"+a.lastPartIndex:a.updated?"UPDATED":"MISSED"}`),!this.canLoad||!a.live)return;let u,h,b;if(a.canBlockReload&&a.endSN&&a.advanced){const e=this.hls.config.lowLatencyMode,r=a.lastPartSn,n=a.endSN,s=a.lastPartIndex,o=r===n;-1!==s?o?(h=n+1,b=e?0:s):(h=r,b=e?s+1:a.maxPartIndex):h=n+1;const l=a.age,d=l+a.ageHeader;let p=Math.min(d-a.partTarget,1.5*a.targetduration);if(p>0){if(d>3*a.targetduration)this.log(`Playlist last advanced ${l.toFixed(2)}s ago. Omitting segment and part directives.`),h=void 0,b=void 0;else if(null!=t&&t.tuneInGoal&&d-a.partTarget>t.tuneInGoal)this.warn(`CDN Tune-in goal increased from: ${t.tuneInGoal} to: ${p} with playlist age: ${a.age}`),p=0;else{const e=Math.floor(p/a.targetduration);if(h+=e,void 0!==b){b+=Math.round(p%a.targetduration/a.partTarget)}this.log(`CDN Tune-in age: ${a.ageHeader}s last advanced ${l.toFixed(2)}s goal: ${p} skip sn ${e} to part ${b}`)}a.tuneInGoal=p}if(u=this.getDeliveryDirectives(a,c.deliveryDirectives,h,b),e||!o)return a.requestScheduled=i,void this.loadingPlaylist(f,u)}else(a.canBlockReload||a.canSkipUntil)&&(u=this.getDeliveryDirectives(a,c.deliveryDirectives,h,b));u&&void 0!==h&&a.canBlockReload&&(a.requestScheduled=r.loading.first+Math.max(d-2*n,d/2)),this.scheduleLoading(f,u,a)}else this.clearTimer()}scheduleLoading(e,c,t){const a=t||e.details;if(!a)return void this.loadingPlaylist(e,c);const r=self.performance.now(),i=a.requestScheduled;if(r>=i)return void this.loadingPlaylist(e,c);const n=i-r;this.log(`reload live playlist ${e.name||e.bitrate+"bps"} in ${Math.round(n)} ms`),this.clearTimer(),this.timer=self.setTimeout((()=>this.loadingPlaylist(e,c)),n)}getDeliveryDirectives(e,c,t,a){let r=ca(e);return null!=c&&c.skip&&e.deltaUpdateFailed&&(t=c.msn,a=c.part,r=Jt),new ta(t,a,r)}checkRetry(e){const c=e.details,t=Ea(e),a=e.errorAction,{action:r,retryCount:i=0,retryConfig:n}=a||{},f=!!a&&!!n&&(r===xa||!a.resolved&&r===Ra);if(f){var s;if(i>=n.maxNumRetry)return!1;if(t&&null!=(s=e.context)&&s.deliveryDirectives)this.warn(`Retrying playlist loading ${i+1}/${n.maxNumRetry} after "${c}" without delivery-directives`),this.loadPlaylist();else{const e=ka(n,i);this.clearTimer(),this.timer=self.setTimeout((()=>this.loadPlaylist()),e),this.warn(`Retrying playlist loading ${i+1}/${n.maxNumRetry} after "${c}" in ${e}ms`)}e.levelRetry=!0,a.resolved=!0}return f}}function mf(e,c){if(e.length!==c.length)return!1;for(let t=0;t<e.length;t++)if(!vf(e[t].attrs,c[t].attrs))return!1;return!0}function vf(e,c,t){const a=e["STABLE-RENDITION-ID"];return a&&!t?a===c["STABLE-RENDITION-ID"]:!(t||["LANGUAGE","NAME","CHARACTERISTICS","AUTOSELECT","DEFAULT","FORCED","ASSOC-LANGUAGE"]).some((t=>e[t]!==c[t]))}class yf{constructor(e){this.tracks=void 0,this.queues={video:[],audio:[],audiovideo:[]},this.tracks=e}destroy(){this.tracks=this.queues=null}append(e,c,t){if(null===this.queues||null===this.tracks)return;const a=this.queues[c];a.push(e),1!==a.length||t||this.executeNext(c)}appendBlocker(e){return new Promise((c=>{const t={label:"async-blocker",execute:c,onStart:()=>{},onComplete:()=>{},onError:()=>{}};this.append(t,e)}))}prependBlocker(e){return new Promise((c=>{if(this.queues){const t={label:"async-blocker-prepend",execute:c,onStart:()=>{},onComplete:()=>{},onError:()=>{}};this.queues[e].unshift(t)}}))}removeBlockers(){null!==this.queues&&[this.queues.video,this.queues.audio,this.queues.audiovideo].forEach((e=>{var c;const t=null==(c=e[0])?void 0:c.label;"async-blocker"!==t&&"async-blocker-prepend"!==t||(e[0].execute(),e.splice(0,1))}))}unblockAudio(e){if(null===this.queues)return;this.queues.audio[0]===e&&this.shiftAndExecuteNext("audio")}executeNext(e){if(null===this.queues||null===this.tracks)return;const c=this.queues[e];if(c.length){const r=c[0];try{r.execute()}catch(a){var t;if(r.onError(a),null===this.queues||null===this.tracks)return;const c=null==(t=this.tracks[e])?void 0:t.buffer;null!=c&&c.updating||this.shiftAndExecuteNext(e)}}}shiftAndExecuteNext(e){null!==this.queues&&(this.queues[e].shift(),this.executeNext(e))}current(e){var c;return(null==(c=this.queues)?void 0:c[e][0])||null}toString(){const{queues:e,tracks:c}=this;return null===e||null===c?"<destroyed>":`\n${this.list("video")}\n${this.list("audio")}\n${this.list("audiovideo")}}`}list(e){var c,t;return null!=(c=this.queues)&&c[e]||null!=(t=this.tracks)&&t[e]?`${e}: (${this.listSbInfo(e)}) ${this.listOps(e)}`:""}listSbInfo(e){var c;const t=null==(c=this.tracks)?void 0:c[e],a=null==t?void 0:t.buffer;return a?`SourceBuffer${a.updating?" updating":""}${t.ended?" ended":""}${t.ending?" ending":""}`:"none"}listOps(e){var c;return(null==(c=this.queues)?void 0:c[e].map((e=>e.label)).join(", "))||""}}const Ef=/(avc[1234]|hvc1|hev1|dvh[1e]|vp09|av01)(?:\.[^.,]+)+/,Sf="HlsJsTrackRemovedError";class _f extends Error{constructor(e){super(e),this.name=Sf}}function Tf(e){const c=e.querySelectorAll("source");[].slice.call(c).forEach((c=>{e.removeChild(c)}))}function kf(e){return"audio"===e?1:0}class Af{constructor(e){this.hls=void 0,this.autoLevelCapping=void 0,this.firstLevel=void 0,this.media=void 0,this.restrictedLevels=void 0,this.timer=void 0,this.clientRect=void 0,this.streamController=void 0,this.hls=e,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners()}setStreamController(e){this.streamController=e}destroy(){this.hls&&this.unregisterListener(),this.timer&&this.stopCapping(),this.media=null,this.clientRect=null,this.hls=this.streamController=null}registerListeners(){const{hls:e}=this;e.on(dc.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),e.on(dc.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(dc.MANIFEST_PARSED,this.onManifestParsed,this),e.on(dc.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(dc.BUFFER_CODECS,this.onBufferCodecs,this),e.on(dc.MEDIA_DETACHING,this.onMediaDetaching,this)}unregisterListener(){const{hls:e}=this;e.off(dc.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),e.off(dc.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(dc.MANIFEST_PARSED,this.onManifestParsed,this),e.off(dc.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(dc.BUFFER_CODECS,this.onBufferCodecs,this),e.off(dc.MEDIA_DETACHING,this.onMediaDetaching,this)}onFpsDropLevelCapping(e,c){const t=this.hls.levels[c.droppedLevel];this.isLevelAllowed(t)&&this.restrictedLevels.push({bitrate:t.bitrate,height:t.height,width:t.width})}onMediaAttaching(e,c){this.media=c.media instanceof HTMLVideoElement?c.media:null,this.clientRect=null,this.timer&&this.hls.levels.length&&this.detectPlayerSize()}onManifestParsed(e,c){const t=this.hls;this.restrictedLevels=[],this.firstLevel=c.firstLevel,t.config.capLevelToPlayerSize&&c.video&&this.startCapping()}onLevelsUpdated(e,c){this.timer&&nc(this.autoLevelCapping)&&this.detectPlayerSize()}onBufferCodecs(e,c){this.hls.config.capLevelToPlayerSize&&c.video&&this.startCapping()}onMediaDetaching(){this.stopCapping(),this.media=null}detectPlayerSize(){if(this.media){if(this.mediaHeight<=0||this.mediaWidth<=0)return void(this.clientRect=null);const e=this.hls.levels;if(e.length){const c=this.hls,t=this.getMaxLevel(e.length-1);t!==this.autoLevelCapping&&c.logger.log(`Setting autoLevelCapping to ${t}: ${e[t].height}p@${e[t].bitrate} for media ${this.mediaWidth}x${this.mediaHeight}`),c.autoLevelCapping=t,c.autoLevelEnabled&&c.autoLevelCapping>this.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=c.autoLevelCapping}}}getMaxLevel(e){const c=this.hls.levels;if(!c.length)return-1;const t=c.filter(((c,t)=>this.isLevelAllowed(c)&&t<=e));return this.clientRect=null,Af.getMaxLevelByMediaSize(t,this.mediaWidth,this.mediaHeight)}startCapping(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())}stopCapping(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(self.clearInterval(this.timer),this.timer=void 0)}getDimensions(){if(this.clientRect)return this.clientRect;const e=this.media,c={width:0,height:0};if(e){const t=e.getBoundingClientRect();c.width=t.width,c.height=t.height,c.width||c.height||(c.width=t.right-t.left||e.width||0,c.height=t.bottom-t.top||e.height||0)}return this.clientRect=c,c}get mediaWidth(){return this.getDimensions().width*this.contentScaleFactor}get mediaHeight(){return this.getDimensions().height*this.contentScaleFactor}get contentScaleFactor(){let e=1;if(!this.hls.config.ignoreDevicePixelRatio)try{e=self.devicePixelRatio}catch(c){}return Math.min(e,this.hls.config.maxDevicePixelRatio)}isLevelAllowed(e){return!this.restrictedLevels.some((c=>e.bitrate===c.bitrate&&e.width===c.width&&e.height===c.height))}static getMaxLevelByMediaSize(e,c,t){if(null==e||!e.length)return-1;let a=e.length-1;const r=Math.max(c,t);for(let f=0;f<e.length;f+=1){const c=e[f];if((c.width>=r||c.height>=r)&&(i=c,!(n=e[f+1])||i.width!==n.width||i.height!==n.height)){a=f;break}}var i,n;return a}}const Lf={MANIFEST:"m",AUDIO:"a",VIDEO:"v",MUXED:"av",INIT:"i",CAPTION:"c",TIMED_TEXT:"tt",KEY:"k",OTHER:"o"},If={HLS:"h"};class wf{constructor(e,c){Array.isArray(e)&&(e=e.map((e=>e instanceof wf?e:new wf(e)))),this.value=e,this.params=c}}function Rf(e,c,t,a){return new Error(`failed to ${e} "${r=c,Array.isArray(r)?JSON.stringify(r):r instanceof Map?"Map{}":r instanceof Set?"Set{}":"object"==typeof r?JSON.stringify(r):String(r)}" as ${t}`,{cause:a});var r}function Df(e,c,t){return Rf("serialize",e,c,t)}class xf{constructor(e){this.description=e}}const Pf="Bare Item";function Cf(e){if(!1===ArrayBuffer.isView(e))throw Df(e,"Byte Sequence");return`:${c=e,btoa(String.fromCharCode(...c))}:`;var c}function Of(e){if(function(e){return e<-999999999999999||999999999999999<e}(e))throw Df(e,"Integer");return e.toString()}function Mf(e,c){if(e<0)return-Mf(-e,c);const t=Math.pow(10,c);if(Math.abs(e*t%1-.5)<Number.EPSILON){const c=Math.floor(e*t);return(c%2==0?c:c+1)/t}return Math.round(e*t)/t}function Ff(e){const c=Mf(e,3);if(Math.floor(Math.abs(c)).toString().length>12)throw Df(e,"Decimal");const t=c.toString();return t.includes(".")?t:`${t}.0`}const Nf=/[\x00-\x1f\x7f]+/;function Uf(e){const c=(t=e).description||t.toString().slice(7,-1);var t;if(!1===/^([a-zA-Z*])([!#$%&'*+\-.^_`|~\w:/]*)$/.test(c))throw Df(c,"Token");return c}function Bf(e){switch(typeof e){case"number":if(!nc(e))throw Df(e,Pf);return Number.isInteger(e)?Of(e):Ff(e);case"string":return function(e){if(Nf.test(e))throw Df(e,"String");return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}(e);case"symbol":return Uf(e);case"boolean":return function(e){if("boolean"!=typeof e)throw Df(e,"Boolean");return e?"?1":"?0"}(e);case"object":if(e instanceof Date)return function(e){return`@${Of(e.getTime()/1e3)}`}(e);if(e instanceof Uint8Array)return Cf(e);if(e instanceof xf)return Uf(e);default:throw Df(e,Pf)}}function $f(e){if(!1===/^[a-z*][a-z0-9\-_.*]*$/.test(e))throw Df(e,"Key");return e}function jf(e){return null==e?"":Object.entries(e).map((([e,c])=>!0===c?`;${$f(e)}`:`;${$f(e)}=${Bf(c)}`)).join("")}function Gf(e){return e instanceof wf?`${Bf(e.value)}${jf(e.params)}`:Bf(e)}function Kf(e,c={whitespace:!0}){if("object"!=typeof e||null==e)throw Df(e,"Dict");const t=e instanceof Map?e.entries():Object.entries(e),a=(null==c?void 0:c.whitespace)?" ":"";return Array.from(t).map((([e,c])=>{c instanceof wf==!1&&(c=new wf(c));let t=$f(e);var a;return!0===c.value?t+=jf(c.params):(t+="=",Array.isArray(c.value)?t+=`(${(a=c).value.map(Gf).join(" ")})${jf(a.params)}`:t+=Gf(c)),t})).join(`,${a}`)}function Vf(e,c){return Kf(e,c)}const Hf="CMCD-Object",qf="CMCD-Request",Yf="CMCD-Session",Wf="CMCD-Status",zf={br:Hf,ab:Hf,d:Hf,ot:Hf,tb:Hf,tpb:Hf,lb:Hf,tab:Hf,lab:Hf,url:Hf,pb:qf,bl:qf,tbl:qf,dl:qf,ltc:qf,mtp:qf,nor:qf,nrr:qf,rc:qf,sn:qf,sta:qf,su:qf,ttfb:qf,ttfbb:qf,ttlb:qf,cmsdd:qf,cmsds:qf,smrt:qf,df:qf,cs:qf,ts:qf,cid:Yf,pr:Yf,sf:Yf,sid:Yf,st:Yf,v:Yf,msd:Yf,bs:Wf,bsd:Wf,cdn:Wf,rtp:Wf,bg:Wf,pt:Wf,ec:Wf,e:Wf},Xf=qf;function Qf(e,c){const t={};if(!e)return t;const a=Object.keys(e),r=c?(i=c,Object.keys(i).reduce(((e,c)=>{var t;return null===(t=i[c])||void 0===t||t.forEach((t=>e[t]=c)),e}),{})):{};var i;return a.reduce(((c,t)=>{var a;const i=zf[t]||r[t]||Xf;return(null!==(a=c[i])&&void 0!==a?a:c[i]={})[t]=e[t],c}),t)}const Jf="event";const Zf=e=>Math.round(e),es=(e,c)=>Array.isArray(e)?e.map((e=>es(e,c))):e instanceof wf&&"string"==typeof e.value?new wf(es(e.value,c),e.params):(c.baseUrl&&(e=function(e,c){const t=new URL(e),a=new URL(c);if(t.origin!==a.origin)return e;const r=t.pathname.split("/").slice(1),i=a.pathname.split("/").slice(1,-1);for(;r[0]===i[0];)r.shift(),i.shift();for(;i.length;)i.shift(),r.unshift("..");return r.join("/")+t.search+t.hash}(e,c.baseUrl)),1===c.version?encodeURIComponent(e):e),cs=e=>100*Zf(e/100),ts={br:Zf,d:Zf,bl:cs,dl:cs,mtp:cs,nor:(e,c)=>{let t=e;return c.version>=2&&(e instanceof wf&&"string"==typeof e.value?t=new wf([e]):"string"==typeof e&&(t=[e])),es(t,c)},rtp:cs,tb:Zf},as="request",rs="response",is=["ab","bg","bl","br","bs","bsd","cdn","cid","cs","df","ec","lab","lb","ltc","msd","mtp","pb","pr","pt","sf","sid","sn","st","sta","tab","tb","tbl","tpb","ts","v"],ns=["e"],fs=/^[a-zA-Z0-9-.]+-[a-zA-Z0-9-.]+$/;function ss(e){return fs.test(e)}const os=["d","dl","nor","ot","rtp","su"];const ls=["cmsdd","cmsds","rc","smrt","ttfb","ttfbb","ttlb","url"];const ds=["bl","br","bs","cid","d","dl","mtp","nor","nrr","ot","pr","rtp","sf","sid","st","su","tb","v"];function us(e){return ds.includes(e)||ss(e)}const hs={[rs]:function(e){return is.includes(e)||os.includes(e)||ls.includes(e)||ss(e)},[Jf]:function(e){return is.includes(e)||ns.includes(e)||ss(e)},[as]:function(e){return is.includes(e)||os.includes(e)||ss(e)}};function bs(e,c={}){const t={};if(null==e||"object"!=typeof e)return t;const a=c.version||e.v||1,r=c.reportingMode||as,i=1===a?us:hs[r];let n=Object.keys(e).filter(i);const f=c.filter;"function"==typeof f&&(n=n.filter(f));const s=r===rs||r===Jf;s&&!n.includes("ts")&&n.push("ts"),a>1&&!n.includes("v")&&n.push("v");const o=_c({},ts,c.formatters),l={version:a,reportingMode:r,baseUrl:c.baseUrl};return n.sort().forEach((c=>{let r=e[c];const i=o[c];if("function"==typeof i&&(r=i(r,l)),"v"===c){if(1===a)return;r=a}"pr"==c&&1===r||(s&&"ts"===c&&!nc(r)&&(r=Date.now()),function(e){return"number"==typeof e?nc(e):null!=e&&""!==e&&!1!==e}(r)&&(function(e){return["ot","sf","st","e","sta"].includes(e)}(c)&&"string"==typeof r&&(r=new xf(r)),t[c]=r))})),t}function ps(e,c,t){return _c(e,function(e,c={}){const t={};if(!e)return t;const a=Qf(bs(e,c),null==c?void 0:c.customHeaderMap);return Object.entries(a).reduce(((e,[c,t])=>{const a=Vf(t,{whitespace:!1});return a&&(e[c]=a),e}),t)}(c,t))}function gs(e,c={}){if(!e)return"";const t=function(e,c={}){return e?Vf(bs(e,c),{whitespace:!1}):""}(e,c);return encodeURIComponent(t)}const ms=/CMCD=[^&#]+/;function vs(e,c,t){const a=function(e,c={}){return e?`CMCD=${gs(e,c)}`:""}(c,t);if(!a)return e;if(ms.test(e))return e.replace(ms,a);const r=e.includes("?")?"&":"?";return`${e}${r}${a}`}function ys(e,c,t,a){e&&Object.keys(c).forEach((r=>{const i=e.filter((e=>e.groupId===r)).map((e=>{const i=_c({},e);return i.details=void 0,i.attrs=new hr(i.attrs),i.url=i.attrs.URI=Es(e.url,e.attrs["STABLE-RENDITION-ID"],"PER-RENDITION-URIS",t),i.groupId=i.attrs["GROUP-ID"]=c[r],i.attrs["PATHWAY-ID"]=a,i}));e.push(...i)}))}function Es(e,c,t,a){const{HOST:r,PARAMS:i,[t]:n}=a;let f;c&&(f=null==n?void 0:n[c],f&&(e=f));const s=new self.URL(e);return r&&!f&&(s.host=r),i&&Object.keys(i).sort().forEach((e=>{e&&s.searchParams.set(e,i[e])})),s.href}class Ss extends Ac{constructor(e){super("eme",e.logger),this.hls=void 0,this.config=void 0,this.media=null,this.keyFormatPromise=null,this.keySystemAccessPromises={},this._requestLicenseFailureCount=0,this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},this.mediaKeys=null,this.setMediaKeysQueue=Ss.CDMCleanupPromise?[Ss.CDMCleanupPromise]:[],this.bannedKeyIds={},this.onMediaEncrypted=e=>{const{initDataType:c,initData:t}=e,a=`"${e.type}" event: init data type: "${c}"`;if(this.debug(a),null!==t){if(!this.keyFormatPromise){let e=Object.keys(this.keySystemAccessPromises);e.length||(e=Cr(this.config));const c=e.map(Pr).filter((e=>!!e));this.keyFormatPromise=this.getKeyFormatPromise(c)}this.keyFormatPromise.then((r=>{const i=xr(r);if("sinf"!==c||i!==Lr.FAIRPLAY)return void this.log(`Ignoring "${e.type}" event with init data type: "${c}" for selected key-system ${i}`);let n;try{const e=rt(new Uint8Array(t)),c=vt(Sr(JSON.parse(e).sinf));if(!c)throw new Error("'schm' box missing or not cbcs/cenc with schi > tenc");n=new Uint8Array(c.subarray(8,24))}catch(d){return void this.warn(`${a} Failed to parse sinf: ${d}`)}const f=Mc(n),{keyIdToKeySessionPromise:s,mediaKeySessions:o}=this;let l=s[f];for(let e=0;e<o.length;e++){const a=o[e],r=a.decryptdata;if(!r.keyId)continue;const i=Mc(r.keyId);if(mr(n,r.keyId)||-1!==r.uri.replace(/-/g,"").indexOf(f)){if(l=s[i],!l)continue;if(r.pssh)break;delete s[i],r.pssh=new Uint8Array(t),r.keyId=n,l=s[f]=l.then((()=>this.generateRequestWithPreferredKeySession(a,c,t,"encrypted-event-key-match"))),l.catch((e=>this.handleError(e)));break}}l||this.handleError(new Error(`Key ID ${f} not encountered in playlist. Key-system sessions ${o.length}.`))})).catch((e=>this.handleError(e)))}},this.onWaitingForKey=e=>{this.log(`"${e.type}" event`)},this.hls=e,this.config=e.config,this.registerListeners()}destroy(){this.onDestroying(),this.onMediaDetached();const e=this.config;e.requestMediaKeySystemAccessFunc=null,e.licenseXhrSetup=e.licenseResponseCallback=void 0,e.drmSystems=e.drmSystemOptions={},this.hls=this.config=this.keyIdToKeySessionPromise=null,this.onMediaEncrypted=this.onWaitingForKey=null}registerListeners(){this.hls.on(dc.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(dc.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.on(dc.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(dc.MANIFEST_LOADED,this.onManifestLoaded,this),this.hls.on(dc.DESTROYING,this.onDestroying,this)}unregisterListeners(){this.hls.off(dc.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(dc.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.off(dc.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(dc.MANIFEST_LOADED,this.onManifestLoaded,this),this.hls.off(dc.DESTROYING,this.onDestroying,this)}getLicenseServerUrl(e){const{drmSystems:c,widevineLicenseUrl:t}=this.config,a=null==c?void 0:c[e];return a?a.licenseUrl:e===Lr.WIDEVINE&&t?t:void 0}getLicenseServerUrlOrThrow(e){const c=this.getLicenseServerUrl(e);if(void 0===c)throw new Error(`no license server URL configured for key-system "${e}"`);return c}getServerCertificateUrl(e){const{drmSystems:c}=this.config,t=null==c?void 0:c[e];if(t)return t.serverCertificateUrl;this.log(`No Server Certificate in config.drmSystems["${e}"]`)}attemptKeySystemAccess(e){const c=this.hls.levels,t=(e,c,t)=>!!e&&t.indexOf(e)===c,a=c.map((e=>e.audioCodec)).filter(t),r=c.map((e=>e.videoCodec)).filter(t);return a.length+r.length===0&&r.push("avc1.42e01e"),new Promise(((c,t)=>{const i=e=>{const n=e.shift();this.getMediaKeysPromise(n,a,r).then((e=>c({keySystem:n,mediaKeys:e}))).catch((c=>{e.length?i(e):t(c instanceof ks?c:new ks({type:oc.KEY_SYSTEM_ERROR,details:lc.KEY_SYSTEM_NO_ACCESS,error:c,fatal:!0},c.message))}))};i(e)}))}requestMediaKeySystemAccess(e,c){const{requestMediaKeySystemAccessFunc:t}=this.config;if("function"!=typeof t){let e=`Configured requestMediaKeySystemAccess is not a function ${t}`;return null===Or&&"http:"===self.location.protocol&&(e=`navigator.requestMediaKeySystemAccess is not available over insecure protocol ${location.protocol}`),Promise.reject(new Error(e))}return t(e,c)}getMediaKeysPromise(e,c,t){var a;const r=function(e,c,t,a){let r;switch(e){case Lr.FAIRPLAY:r=["cenc","sinf"];break;case Lr.WIDEVINE:case Lr.PLAYREADY:r=["cenc"];break;case Lr.CLEARKEY:r=["cenc","keyids"];break;default:throw new Error(`Unknown key-system: ${e}`)}return function(e,c,t,a){return[{initDataTypes:e,persistentState:a.persistentState||"optional",distinctiveIdentifier:a.distinctiveIdentifier||"optional",sessionTypes:a.sessionTypes||[a.sessionType||"temporary"],audioCapabilities:c.map((e=>({contentType:`audio/mp4; codecs=${e}`,robustness:a.audioRobustness||"",encryptionScheme:a.audioEncryptionScheme||null}))),videoCapabilities:t.map((e=>({contentType:`video/mp4; codecs=${e}`,robustness:a.videoRobustness||"",encryptionScheme:a.videoEncryptionScheme||null})))}]}(r,c,t,a)}(e,c,t,this.config.drmSystemOptions||{});let i=this.keySystemAccessPromises[e],n=null==(a=i)?void 0:a.keySystemAccess;if(!n){this.log(`Requesting encrypted media "${e}" key-system access with config: ${na(r)}`),n=this.requestMediaKeySystemAccess(e,r);const c=i=this.keySystemAccessPromises[e]={keySystemAccess:n};return n.catch((c=>{this.log(`Failed to obtain access to key-system "${e}": ${c}`)})),n.then((t=>{this.log(`Access for key-system "${t.keySystem}" obtained`);const a=this.fetchServerCertificate(e);this.log(`Create media-keys for "${e}"`);const r=c.mediaKeys=t.createMediaKeys().then((t=>(this.log(`Media-keys created for "${e}"`),c.hasMediaKeys=!0,a.then((c=>c?this.setMediaKeysServerCertificate(t,e,c):t)))));return r.catch((c=>{this.error(`Failed to create media-keys for "${e}"}: ${c}`)})),r}))}return n.then((()=>i.mediaKeys))}createMediaKeySessionContext({decryptdata:e,keySystem:c,mediaKeys:t}){this.log(`Creating key-system session "${c}" keyId: ${Mc(e.keyId||[])} keyUri: ${e.uri}`);const a=t.createSession(),r={decryptdata:e,keySystem:c,mediaKeys:t,mediaKeysSession:a,keyStatus:"status-pending"};return this.mediaKeySessions.push(r),r}renewKeySession(e){const c=e.decryptdata;if(c.pssh){const t=this.createMediaKeySessionContext(e),a=_s(c),r="cenc";this.keyIdToKeySessionPromise[a]=this.generateRequestWithPreferredKeySession(t,r,c.pssh.buffer,"expired")}else this.warn("Could not renew expired session. Missing pssh initData.");this.removeSession(e)}updateKeySession(e,c){const t=e.mediaKeysSession;return this.log(`Updating key-session "${t.sessionId}" for keyId ${Mc(e.decryptdata.keyId||[])}\n } (data length: ${c.byteLength})`),t.update(c)}getSelectedKeySystemFormats(){return Object.keys(this.keySystemAccessPromises).map((e=>({keySystem:e,hasMediaKeys:this.keySystemAccessPromises[e].hasMediaKeys}))).filter((({hasMediaKeys:e})=>!!e)).map((({keySystem:e})=>Pr(e))).filter((e=>!!e))}getKeySystemAccess(e){return this.getKeySystemSelectionPromise(e).then((({keySystem:e,mediaKeys:c})=>this.attemptSetMediaKeys(e,c)))}selectKeySystem(e){return new Promise(((c,t)=>{this.getKeySystemSelectionPromise(e).then((({keySystem:e})=>{const a=Pr(e);a?c(a):t(new Error(`Unable to find format for key-system "${e}"`))})).catch(t)}))}selectKeySystemFormat(e){const c=Object.keys(e.levelkeys||{});return this.keyFormatPromise||(this.log(`Selecting key-system from fragment (sn: ${e.sn} ${e.type}: ${e.level}) key formats ${c.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(c)),this.keyFormatPromise}getKeyFormatPromise(e){const c=Cr(this.config),t=e.map(xr).filter((e=>!!e&&-1!==c.indexOf(e)));return this.selectKeySystem(t)}getKeyStatus(e){const{mediaKeySessions:c}=this;for(let t=0;t<c.length;t++){const a=Ts(e,c[t]);if(a)return a}}loadKey(e){const c=e.keyInfo.decryptdata,t=_s(c),a=this.bannedKeyIds[t];if(a||"internal-error"===this.getKeyStatus(c)){const t=As(a||"internal-error",c);return this.handleError(t,e.frag),Promise.reject(t)}const r=`(keyId: ${t} format: "${c.keyFormat}" method: ${c.method} uri: ${c.uri})`;this.log(`Starting session for key ${r}`);const i=this.keyIdToKeySessionPromise[t];if(!i){const a=this.getKeySystemForKeyPromise(c).then((({keySystem:t,mediaKeys:a})=>(this.throwIfDestroyed(),this.log(`Handle encrypted media sn: ${e.frag.sn} ${e.frag.type}: ${e.frag.level} using key ${r}`),this.attemptSetMediaKeys(t,a).then((()=>(this.throwIfDestroyed(),this.createMediaKeySessionContext({keySystem:t,mediaKeys:a,decryptdata:c}))))))).then((e=>{const t=c.pssh?c.pssh.buffer:null;return this.generateRequestWithPreferredKeySession(e,"cenc",t,"playlist-key")}));return a.catch((c=>this.handleError(c,e.frag))),this.keyIdToKeySessionPromise[t]=a,a}return i.catch((t=>{if(t instanceof ks){const a=kc({},t.data);"internal-error"===this.getKeyStatus(c)&&(a.decryptdata=c);const r=new ks(a,t.message);this.handleError(r,e.frag)}})),i}throwIfDestroyed(e="Invalid state"){if(!this.hls)throw new Error("invalid state")}handleError(e,c){if(this.hls)if(e instanceof ks){c&&(e.data.frag=c);const t=e.data.decryptdata;this.error(`${e.message}${t?` (${Mc(t.keyId||[])})`:""}`),this.hls.trigger(dc.ERROR,e.data)}else this.error(e.message),this.hls.trigger(dc.ERROR,{type:oc.KEY_SYSTEM_ERROR,details:lc.KEY_SYSTEM_NO_KEYS,error:e,fatal:!0})}getKeySystemForKeyPromise(e){const c=_s(e),t=this.keyIdToKeySessionPromise[c];if(!t){const c=xr(e.keyFormat),t=c?[c]:Cr(this.config);return this.attemptKeySystemAccess(t)}return t}getKeySystemSelectionPromise(e){if(e.length||(e=Cr(this.config)),0===e.length)throw new ks({type:oc.KEY_SYSTEM_ERROR,details:lc.KEY_SYSTEM_NO_CONFIGURED_LICENSE,fatal:!0},`Missing key-system license configuration options ${na({drmSystems:this.config.drmSystems})}`);return this.attemptKeySystemAccess(e)}attemptSetMediaKeys(e,c){if(this.mediaKeys===c)return Promise.resolve();const t=this.setMediaKeysQueue.slice();this.log(`Setting media-keys for "${e}"`);const a=Promise.all(t).then((()=>{if(!this.media)throw this.mediaKeys=null,new Error("Attempted to set mediaKeys without media element attached");return this.media.setMediaKeys(c)}));return this.mediaKeys=c,this.setMediaKeysQueue.push(a),a.then((()=>{this.log(`Media-keys set for "${e}"`),t.push(a),this.setMediaKeysQueue=this.setMediaKeysQueue.filter((e=>-1===t.indexOf(e)))}))}generateRequestWithPreferredKeySession(e,c,t,a){var r;const i=null==(r=this.config.drmSystems)||null==(r=r[e.keySystem])?void 0:r.generateRequest;if(i)try{const a=i.call(this.hls,c,t,e);if(!a)throw new Error("Invalid response from configured generateRequest filter");c=a.initDataType,t=a.initData?a.initData:null,e.decryptdata.pssh=t?new Uint8Array(t):null}catch(h){if(this.warn(h.message),this.hls&&this.hls.config.debug)throw h}if(null===t)return this.log(`Skipping key-session request for "${a}" (no initData)`),Promise.resolve(e);const n=_s(e.decryptdata),f=e.decryptdata.uri;this.log(`Generating key-session request for "${a}" keyId: ${n} URI: ${f} (init data type: ${c} length: ${t.byteLength})`);const s=new Gi,o=e._onmessage=c=>{const t=e.mediaKeysSession;if(!t)return void s.emit("error",new Error("invalid state"));const{messageType:a,message:r}=c;this.log(`"${a}" message event for session "${t.sessionId}" message size: ${r.byteLength}`),"license-request"===a||"license-renewal"===a?this.renewLicense(e,r).catch((e=>{s.eventNames().length?s.emit("error",e):this.handleError(e)})):"license-release"===a?e.keySystem===Lr.FAIRPLAY&&this.updateKeySession(e,_r("acknowledged")).then((()=>this.removeSession(e))).catch((e=>this.handleError(e))):this.warn(`unhandled media key message type "${a}"`)},l=(e,c)=>{let t;c.keyStatus=e,e.startsWith("usable")?s.emit("resolved"):"internal-error"===e||"output-restricted"===e||"output-downscaled"===e?t=As(e,c.decryptdata):"expired"===e?t=new Error(`key expired (keyId: ${n})`):"released"===e?t=new Error("key released"):"status-pending"===e||this.warn(`unhandled key status change "${e}" (keyId: ${n})`),t&&(s.eventNames().length?s.emit("error",t):this.handleError(t))},d=e._onkeystatuseschange=c=>{if(!e.mediaKeysSession)return void s.emit("error",new Error("invalid state"));const t=this.getKeyStatuses(e);if(!Object.keys(t).some((e=>"status-pending"!==t[e])))return;if("expired"===t[n])return this.log(`Expired key ${na(t)} in key-session "${e.mediaKeysSession.sessionId}"`),void this.renewKeySession(e);let a=t[n];if(a)l(a,e);else{var r;const c=1e3;e.keyStatusTimeouts||(e.keyStatusTimeouts={}),(r=e.keyStatusTimeouts)[n]||(r[n]=self.setTimeout((()=>{if(!e.mediaKeysSession||!this.mediaKeys)return;const t=this.getKeyStatus(e.decryptdata);if(t&&"status-pending"!==t)return this.log(`No status for keyId ${n} in key-session "${e.mediaKeysSession.sessionId}". Using session key-status ${t} from other session.`),l(t,e);this.log(`key status for ${n} in key-session "${e.mediaKeysSession.sessionId}" timed out after ${c}ms`),a="internal-error",l(a,e)}),c)),this.log(`No status for keyId ${n} (${na(t)}).`)}};Si(e.mediaKeysSession,"message",o),Si(e.mediaKeysSession,"keystatuseschange",d);const u=new Promise(((e,c)=>{s.on("error",c),s.on("resolved",e)}));return e.mediaKeysSession.generateRequest(c,t).then((()=>{this.log(`Request generated for key-session "${e.mediaKeysSession.sessionId}" keyId: ${n} URI: ${f}`)})).catch((c=>{throw new ks({type:oc.KEY_SYSTEM_ERROR,details:lc.KEY_SYSTEM_NO_SESSION,error:c,decryptdata:e.decryptdata,fatal:!1},`Error generating key-session request: ${c}`)})).then((()=>u)).catch((c=>(s.removeAllListeners(),this.removeSession(e).then((()=>{throw c}))))).then((()=>(s.removeAllListeners(),e)))}getKeyStatuses(e){const c={};return e.mediaKeysSession.keyStatuses.forEach(((t,a)=>{if("string"==typeof a&&"object"==typeof t){const e=a;a=t,t=e}const r="buffer"in a?new Uint8Array(a.buffer,a.byteOffset,a.byteLength):new Uint8Array(a);e.keySystem===Lr.PLAYREADY&&16===r.length&&Tr(r);const i=Mc(r);"internal-error"===t&&(this.bannedKeyIds[i]=t),this.log(`key status change "${t}" for keyStatuses keyId: ${i} key-session "${e.mediaKeysSession.sessionId}"`),c[i]=t})),c}fetchServerCertificate(e){const c=this.config,t=new(0,c.loader)(c),a=this.getServerCertificateUrl(e);return a?(this.log(`Fetching server certificate for "${e}"`),new Promise(((r,i)=>{const n={responseType:"arraybuffer",url:a},f=c.certLoadPolicy.default,s={loadPolicy:f,timeout:f.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},o={onSuccess:(e,c,t,a)=>{r(e.data)},onError:(c,t,r,f)=>{i(new ks({type:oc.KEY_SYSTEM_ERROR,details:lc.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:r,response:kc({url:n.url,data:void 0},c)},`"${e}" certificate request failed (${a}). Status: ${c.code} (${c.text})`))},onTimeout:(c,t,r)=>{i(new ks({type:oc.KEY_SYSTEM_ERROR,details:lc.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:r,response:{url:n.url,data:void 0}},`"${e}" certificate request timed out (${a})`))},onAbort:(e,c,t)=>{i(new Error("aborted"))}};t.load(n,s,o)}))):Promise.resolve()}setMediaKeysServerCertificate(e,c,t){return new Promise(((a,r)=>{e.setServerCertificate(t).then((r=>{this.log(`setServerCertificate ${r?"success":"not supported by CDM"} (${t.byteLength}) on "${c}"`),a(e)})).catch((e=>{r(new ks({type:oc.KEY_SYSTEM_ERROR,details:lc.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,error:e,fatal:!0},e.message))}))}))}renewLicense(e,c){return this.requestLicense(e,new Uint8Array(c)).then((c=>this.updateKeySession(e,new Uint8Array(c)).catch((c=>{throw new ks({type:oc.KEY_SYSTEM_ERROR,details:lc.KEY_SYSTEM_SESSION_UPDATE_FAILED,decryptdata:e.decryptdata,error:c,fatal:!1},c.message)}))))}unpackPlayReadyKeyMessage(e,c){const t=String.fromCharCode.apply(null,new Uint16Array(c.buffer));if(!t.includes("PlayReadyKeyMessage"))return e.setRequestHeader("Content-Type","text/xml; charset=utf-8"),c;const a=(new DOMParser).parseFromString(t,"application/xml"),r=a.querySelectorAll("HttpHeader");if(r.length>0){let c;for(let t=0,a=r.length;t<a;t++){var i,n;c=r[t];const a=null==(i=c.querySelector("name"))?void 0:i.textContent,f=null==(n=c.querySelector("value"))?void 0:n.textContent;a&&f&&e.setRequestHeader(a,f)}}const f=a.querySelector("Challenge"),s=null==f?void 0:f.textContent;if(!s)throw new Error("Cannot find <Challenge> in key message");return _r(atob(s))}setupLicenseXHR(e,c,t,a){const r=this.config.licenseXhrSetup;return r?Promise.resolve().then((()=>{if(!t.decryptdata)throw new Error("Key removed");return r.call(this.hls,e,c,t,a)})).catch((i=>{if(!t.decryptdata)throw i;return e.open("POST",c,!0),r.call(this.hls,e,c,t,a)})).then((t=>{e.readyState||e.open("POST",c,!0);return{xhr:e,licenseChallenge:t||a}})):(e.open("POST",c,!0),Promise.resolve({xhr:e,licenseChallenge:a}))}requestLicense(e,c){const t=this.config.keyLoadPolicy.default;return new Promise(((a,r)=>{const i=this.getLicenseServerUrlOrThrow(e.keySystem);this.log(`Sending license request to URL: ${i}`);const n=new XMLHttpRequest;n.responseType="arraybuffer",n.onreadystatechange=()=>{if(!this.hls||!e.mediaKeysSession)return r(new Error("invalid state"));if(4===n.readyState)if(200===n.status){this._requestLicenseFailureCount=0;let c=n.response;this.log(`License received ${c instanceof ArrayBuffer?c.byteLength:c}`);const t=this.config.licenseResponseCallback;if(t)try{c=t.call(this.hls,n,i,e)}catch(f){this.error(f)}a(c)}else{const f=t.errorRetry,s=f?f.maxNumRetry:0;if(this._requestLicenseFailureCount++,this._requestLicenseFailureCount>s||n.status>=400&&n.status<500)r(new ks({type:oc.KEY_SYSTEM_ERROR,details:lc.KEY_SYSTEM_LICENSE_REQUEST_FAILED,decryptdata:e.decryptdata,fatal:!0,networkDetails:n,response:{url:i,data:void 0,code:n.status,text:n.statusText}},`License Request XHR failed (${i}). Status: ${n.status} (${n.statusText})`));else{const t=s-this._requestLicenseFailureCount+1;this.warn(`Retrying license request, ${t} attempts left`),this.requestLicense(e,c).then(a,r)}}},e.licenseXhr&&e.licenseXhr.readyState!==XMLHttpRequest.DONE&&e.licenseXhr.abort(),e.licenseXhr=n,this.setupLicenseXHR(n,i,e,c).then((({xhr:c,licenseChallenge:t})=>{e.keySystem==Lr.PLAYREADY&&(t=this.unpackPlayReadyKeyMessage(c,t)),c.send(t)})).catch(r)}))}onDestroying(){this.unregisterListeners(),this._clear()}onMediaAttached(e,c){if(!this.config.emeEnabled)return;const t=c.media;this.media=t,Si(t,"encrypted",this.onMediaEncrypted),Si(t,"waitingforkey",this.onWaitingForKey)}onMediaDetached(){const e=this.media;e&&(_i(e,"encrypted",this.onMediaEncrypted),_i(e,"waitingforkey",this.onWaitingForKey),this.media=null,this.mediaKeys=null)}_clear(){var e;if(this._requestLicenseFailureCount=0,this.keyIdToKeySessionPromise={},this.bannedKeyIds={},!this.mediaKeys&&!this.mediaKeySessions.length)return;const c=this.media,t=this.mediaKeySessions.slice();this.mediaKeySessions=[],this.mediaKeys=null,Ur.clearKeyUriToKeyIdMap();const a=t.length;Ss.CDMCleanupPromise=Promise.all(t.map((e=>this.removeSession(e))).concat((null==c||null==(e=c.setMediaKeys(null))?void 0:e.catch((e=>{this.log(`Could not clear media keys: ${e}`),this.hls&&this.hls.trigger(dc.ERROR,{type:oc.OTHER_ERROR,details:lc.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR,fatal:!1,error:new Error(`Could not clear media keys: ${e}`)})})))||Promise.resolve())).catch((e=>{this.log(`Could not close sessions and clear media keys: ${e}`),this.hls&&this.hls.trigger(dc.ERROR,{type:oc.OTHER_ERROR,details:lc.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,fatal:!1,error:new Error(`Could not close sessions and clear media keys: ${e}`)})})).then((()=>{a&&this.log("finished closing key sessions and clearing media keys")}))}onManifestLoading(){this.keyFormatPromise=null,this.bannedKeyIds={}}onManifestLoaded(e,{sessionKeys:c}){if(c&&this.config.emeEnabled&&!this.keyFormatPromise){const e=c.reduce(((e,c)=>(-1===e.indexOf(c.keyFormat)&&e.push(c.keyFormat),e)),[]);this.log(`Selecting key-system from session-keys ${e.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(e)}}removeSession(e){const{mediaKeysSession:c,licenseXhr:t,decryptdata:a}=e;if(c){this.log(`Remove licenses and keys and close session "${c.sessionId}" keyId: ${Mc((null==a?void 0:a.keyId)||[])}`),e._onmessage&&(c.removeEventListener("message",e._onmessage),e._onmessage=void 0),e._onkeystatuseschange&&(c.removeEventListener("keystatuseschange",e._onkeystatuseschange),e._onkeystatuseschange=void 0),t&&t.readyState!==XMLHttpRequest.DONE&&t.abort(),e.mediaKeysSession=e.decryptdata=e.licenseXhr=void 0;const r=this.mediaKeySessions.indexOf(e);r>-1&&this.mediaKeySessions.splice(r,1);const{keyStatusTimeouts:i}=e;i&&Object.keys(i).forEach((e=>self.clearTimeout(i[e])));const{drmSystemOptions:n}=this.config,f=function(e){var c;return!(!e||"persistent-license"!==e.sessionType&&(null==(c=e.sessionTypes)||!c.some((e=>"persistent-license"===e))))}(n)?new Promise(((e,t)=>{self.setTimeout((()=>t(new Error("MediaKeySession.remove() timeout"))),8e3),c.remove().then(e).catch(t)})):Promise.resolve();return f.catch((e=>{this.log(`Could not remove session: ${e}`),this.hls&&this.hls.trigger(dc.ERROR,{type:oc.OTHER_ERROR,details:lc.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR,fatal:!1,error:new Error(`Could not remove session: ${e}`)})})).then((()=>c.close())).catch((e=>{this.log(`Could not close session: ${e}`),this.hls&&this.hls.trigger(dc.ERROR,{type:oc.OTHER_ERROR,details:lc.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,fatal:!1,error:new Error(`Could not close session: ${e}`)})}))}return Promise.resolve()}}function _s(e){if(!e)throw new Error("Could not read keyId of undefined decryptdata");if(null===e.keyId)throw new Error("keyId is null");return Mc(e.keyId)}function Ts(e,c){return e.keyId&&c.mediaKeysSession.keyStatuses.has(e.keyId)?c.mediaKeysSession.keyStatuses.get(e.keyId):e.matches(c.decryptdata)?c.keyStatus:void 0}Ss.CDMCleanupPromise=void 0;class ks extends Error{constructor(e,c){super(c),this.data=void 0,e.error||(e.error=new Error(c)),this.data=e,e.err=e.error}}function As(e,c){const t="output-restricted"===e,a=t?lc.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:lc.KEY_SYSTEM_STATUS_INTERNAL_ERROR;return new ks({type:oc.KEY_SYSTEM_ERROR,details:a,fatal:!1,decryptdata:c},t?"HDCP level output restricted":`key status changed to "${e}"`)}var Ls=function(){if(null!=Ar&&Ar.VTTCue)return self.VTTCue;const e=["","lr","rl"],c=["start","middle","end","left","right"];function t(e,c){if("string"!=typeof c)return!1;if(!Array.isArray(e))return!1;const t=c.toLowerCase();return!!~e.indexOf(t)&&t}function a(e){return t(c,e)}function r(e,...c){let t=1;for(;t<arguments.length;t++){const c=arguments[t];for(const t in c)e[t]=c[t]}return e}function i(c,i,n){const f=this,s={enumerable:!0};f.hasBeenReset=!1;let o="",l=!1,d=c,u=i,h=n,b=null,p="",g=!0,m="auto",v="start",y=50,E="middle",S=50,_="middle";Object.defineProperty(f,"id",r({},s,{get:function(){return o},set:function(e){o=""+e}})),Object.defineProperty(f,"pauseOnExit",r({},s,{get:function(){return l},set:function(e){l=!!e}})),Object.defineProperty(f,"startTime",r({},s,{get:function(){return d},set:function(e){if("number"!=typeof e)throw new TypeError("Start time must be set to a number.");d=e,this.hasBeenReset=!0}})),Object.defineProperty(f,"endTime",r({},s,{get:function(){return u},set:function(e){if("number"!=typeof e)throw new TypeError("End time must be set to a number.");u=e,this.hasBeenReset=!0}})),Object.defineProperty(f,"text",r({},s,{get:function(){return h},set:function(e){h=""+e,this.hasBeenReset=!0}})),Object.defineProperty(f,"region",r({},s,{get:function(){return b},set:function(e){b=e,this.hasBeenReset=!0}})),Object.defineProperty(f,"vertical",r({},s,{get:function(){return p},set:function(c){const a=function(c){return t(e,c)}(c);if(!1===a)throw new SyntaxError("An invalid or illegal string was specified.");p=a,this.hasBeenReset=!0}})),Object.defineProperty(f,"snapToLines",r({},s,{get:function(){return g},set:function(e){g=!!e,this.hasBeenReset=!0}})),Object.defineProperty(f,"line",r({},s,{get:function(){return m},set:function(e){if("number"!=typeof e&&"auto"!==e)throw new SyntaxError("An invalid number or illegal string was specified.");m=e,this.hasBeenReset=!0}})),Object.defineProperty(f,"lineAlign",r({},s,{get:function(){return v},set:function(e){const c=a(e);if(!c)throw new SyntaxError("An invalid or illegal string was specified.");v=c,this.hasBeenReset=!0}})),Object.defineProperty(f,"position",r({},s,{get:function(){return y},set:function(e){if(e<0||e>100)throw new Error("Position must be between 0 and 100.");y=e,this.hasBeenReset=!0}})),Object.defineProperty(f,"positionAlign",r({},s,{get:function(){return E},set:function(e){const c=a(e);if(!c)throw new SyntaxError("An invalid or illegal string was specified.");E=c,this.hasBeenReset=!0}})),Object.defineProperty(f,"size",r({},s,{get:function(){return S},set:function(e){if(e<0||e>100)throw new Error("Size must be between 0 and 100.");S=e,this.hasBeenReset=!0}})),Object.defineProperty(f,"align",r({},s,{get:function(){return _},set:function(e){const c=a(e);if(!c)throw new SyntaxError("An invalid or illegal string was specified.");_=c,this.hasBeenReset=!0}})),f.displayState=void 0}return i.prototype.getCueAsHTML=function(){return self.WebVTT.convertCueToDOMTree(self,this.text)},i}();class Is{decode(e,c){if(!e)return"";if("string"!=typeof e)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(e))}}function ws(e){function c(e,c,t,a){return 3600*(0|e)+60*(0|c)+(0|t)+parseFloat(a||0)}const t=e.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);return t?parseFloat(t[2])>59?c(t[2],t[3],0,t[4]):c(t[1],t[2],t[3],t[4]):null}class Rs{constructor(){this.values=Object.create(null)}set(e,c){this.get(e)||""===c||(this.values[e]=c)}get(e,c,t){return t?this.has(e)?this.values[e]:c[t]:this.has(e)?this.values[e]:c}has(e){return e in this.values}alt(e,c,t){for(let a=0;a<t.length;++a)if(c===t[a]){this.set(e,c);break}}integer(e,c){/^-?\d+$/.test(c)&&this.set(e,parseInt(c,10))}percent(e,c){if(/^([\d]{1,3})(\.[\d]*)?%$/.test(c)){const t=parseFloat(c);if(t>=0&&t<=100)return this.set(e,t),!0}return!1}}function Ds(e,c,t,a){const r=a?e.split(a):[e];for(const i in r){if("string"!=typeof r[i])continue;const e=r[i].split(t);if(2!==e.length)continue;c(e[0],e[1])}}const xs=new Ls(0,0,""),Ps="middle"===xs.align?"middle":"center";function Cs(e,c,t){const a=e;function r(){const c=ws(e);if(null===c)throw new Error("Malformed timestamp: "+a);return e=e.replace(/^[^\sa-zA-Z-]+/,""),c}function i(){e=e.replace(/^\s+/,"")}if(i(),c.startTime=r(),i(),"--\x3e"!==e.slice(0,3))throw new Error("Malformed time stamp (time stamps must be separated by '--\x3e'): "+a);e=e.slice(3),i(),c.endTime=r(),i(),function(e,c){const a=new Rs;Ds(e,(function(e,c){let r;switch(e){case"region":for(let r=t.length-1;r>=0;r--)if(t[r].id===c){a.set(e,t[r].region);break}break;case"vertical":a.alt(e,c,["rl","lr"]);break;case"line":r=c.split(","),a.integer(e,r[0]),a.percent(e,r[0])&&a.set("snapToLines",!1),a.alt(e,r[0],["auto"]),2===r.length&&a.alt("lineAlign",r[1],["start",Ps,"end"]);break;case"position":r=c.split(","),a.percent(e,r[0]),2===r.length&&a.alt("positionAlign",r[1],["start",Ps,"end","line-left","line-right","auto"]);break;case"size":a.percent(e,c);break;case"align":a.alt(e,c,["start",Ps,"end","left","right"])}}),/:/,/\s/),c.region=a.get("region",null),c.vertical=a.get("vertical","");let r=a.get("line","auto");"auto"===r&&-1===xs.line&&(r=-1),c.line=r,c.lineAlign=a.get("lineAlign","start"),c.snapToLines=a.get("snapToLines",!0),c.size=a.get("size",100),c.align=a.get("align",Ps);let i=a.get("position","auto");"auto"===i&&50===xs.position&&(i="start"===c.align||"left"===c.align?0:"end"===c.align||"right"===c.align?100:50),c.position=i}(e,c)}function Os(e){return e.replace(/<br(?: \/)?>/gi,"\n")}class Ms{constructor(){this.state="INITIAL",this.buffer="",this.decoder=new Is,this.regionList=[],this.cue=null,this.oncue=void 0,this.onparsingerror=void 0,this.onflush=void 0}parse(e){const c=this;function t(){let e=c.buffer,t=0;for(e=Os(e);t<e.length&&"\r"!==e[t]&&"\n"!==e[t];)++t;const a=e.slice(0,t);return"\r"===e[t]&&++t,"\n"===e[t]&&++t,c.buffer=e.slice(t),a}e&&(c.buffer+=c.decoder.decode(e,{stream:!0}));try{let e="";if("INITIAL"===c.state){if(!/\r\n|\n/.test(c.buffer))return this;e=t();const a=e.match(/^()?WEBVTT([ \t].*)?$/);if(null==a||!a[0])throw new Error("Malformed WebVTT signature.");c.state="HEADER"}let r=!1;for(;c.buffer;){if(!/\r\n|\n/.test(c.buffer))return this;switch(r?r=!1:e=t(),c.state){case"HEADER":/:/.test(e)?Ds(e,(function(e,c){}),/:/):e||(c.state="ID");continue;case"NOTE":e||(c.state="ID");continue;case"ID":if(/^NOTE($|[ \t])/.test(e)){c.state="NOTE";break}if(!e)continue;if(c.cue=new Ls(0,0,""),c.state="CUE",-1===e.indexOf("--\x3e")){c.cue.id=e;continue}case"CUE":if(!c.cue){c.state="BADCUE";continue}try{Cs(e,c.cue,c.regionList)}catch(a){c.cue=null,c.state="BADCUE";continue}c.state="CUETEXT";continue;case"CUETEXT":{const t=-1!==e.indexOf("--\x3e");if(!e||t&&(r=!0)){c.oncue&&c.cue&&c.oncue(c.cue),c.cue=null,c.state="ID";continue}if(null===c.cue)continue;c.cue.text&&(c.cue.text+="\n"),c.cue.text+=e}continue;case"BADCUE":e||(c.state="ID")}}}catch(a){"CUETEXT"===c.state&&c.cue&&c.oncue&&c.oncue(c.cue),c.cue=null,c.state="INITIAL"===c.state?"BADWEBVTT":"BADCUE"}return this}flush(){const e=this;try{if((e.cue||"HEADER"===e.state)&&(e.buffer+="\n\n",e.parse()),"INITIAL"===e.state||"BADWEBVTT"===e.state)throw new Error("Malformed WebVTT signature.")}catch(c){e.onparsingerror&&e.onparsingerror(c)}return e.onflush&&e.onflush(),this}}function Fs(e){let c=5381,t=e.length;for(;t;)c=33*c^e.charCodeAt(--t);return(c>>>0).toString()}const Ns=/\r\n|\n\r|\n|\r/g,Us=function(e,c,t=0){return e.slice(t,t+c.length)===c};function Bs(e,c,t){return Fs(e.toString())+Fs(c.toString())+Fs(t)}function $s(e,c,t,a,r,i,n){const f=new Ms,s=Oc(new Uint8Array(e)).trim().replace(Ns,"\n").split("\n"),o=[],l=c?function(e,c=1){return Wn(e,9e4,1/c)}(c.baseTime,c.timescale):0;let d,u="00:00.000",h=0,b=0,p=!0;f.oncue=function(e){const i=t[a];let n=t.ccOffset;const f=(h-l)/9e4;if(null!=i&&i.new&&(void 0!==b?n=t.ccOffset=i.start:function(e,c,t){let a=e[c],r=e[a.prevCC];if(!r||!r.new&&a.new)return e.ccOffset=e.presentationOffset=a.start,void(a.new=!1);for(;null!=(i=r)&&i.new;){var i;e.ccOffset+=a.start-r.start,a.new=!1,a=r,r=e[a.prevCC]}e.presentationOffset=t}(t,a,f)),f){if(!c)return void(d=new Error("Missing initPTS for VTT MPEGTS"));n=f-t.presentationOffset}const s=e.endTime-e.startTime,u=tf(9e4*(e.startTime+n-b),9e4*r)/9e4;e.startTime=Math.max(u,0),e.endTime=Math.max(u+s,0);const p=e.text.trim();e.text=decodeURIComponent(encodeURIComponent(p)),e.id||(e.id=Bs(e.startTime,e.endTime,p)),e.endTime>0&&o.push(e)},f.onparsingerror=function(e){d=e},f.onflush=function(){d?n(d):i(o)},s.forEach((e=>{if(p){if(Us(e,"X-TIMESTAMP-MAP=")){p=!1,e.slice(16).split(",").forEach((e=>{Us(e,"LOCAL:")?u=e.slice(6):Us(e,"MPEGTS:")&&(h=parseInt(e.slice(7)))}));try{b=function(e){let c=parseInt(e.slice(-3));const t=parseInt(e.slice(-6,-4)),a=parseInt(e.slice(-9,-7)),r=e.length>9?parseInt(e.substring(0,e.indexOf(":"))):0;if(!(nc(c)&&nc(t)&&nc(a)&&nc(r)))throw Error(`Malformed X-TIMESTAMP-MAP: Local:${e}`);return c+=1e3*t,c+=6e4*a,c+=36e5*r,c}(u)/1e3}catch(c){d=c}return}""===e&&(p=!1)}f.parse(e+"\n")})),f.flush()}const js="stpp.ttml.im1t",Gs=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,Ks=/^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/,Vs={left:"start",center:"center",right:"end",start:"start",end:"end"};function Hs(e,c,t,a){const r=ot(new Uint8Array(e),["mdat"]);if(0===r.length)return void a(new Error("Could not parse IMSC1 mdat"));const i=r.map((e=>Oc(e))),n=function(e,c,t=1,a=!1){return Wn(e,c,1/t,a)}(c.baseTime,1,c.timescale);try{i.forEach((e=>t(function(e,c){const t=(new DOMParser).parseFromString(e,"text/xml"),a=t.getElementsByTagName("tt")[0];if(!a)throw new Error("Invalid ttml");const r={frameRate:30,subFrameRate:1,frameRateMultiplier:0,tickRate:0},i=Object.keys(r).reduce(((e,c)=>(e[c]=a.getAttribute(`ttp:${c}`)||r[c],e)),{}),n="preserve"!==a.getAttribute("xml:space"),f=Ys(qs(a,"styling","style")),s=Ys(qs(a,"layout","region")),o=qs(a,"body","[begin]");return[].map.call(o,(e=>{const t=Ws(e,n);if(!t||!e.hasAttribute("begin"))return null;const a=Qs(e.getAttribute("begin"),i),r=Qs(e.getAttribute("dur"),i);let o=Qs(e.getAttribute("end"),i);if(null===a)throw Xs(e);if(null===o){if(null===r)throw Xs(e);o=a+r}const l=new Ls(a-c,o-c,t);l.id=Bs(l.startTime,l.endTime,l.text);const d=function(e,c,t){const a="http://www.w3.org/ns/ttml#styling";let r=null;const i=["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"],n=null!=e&&e.hasAttribute("style")?e.getAttribute("style"):null;n&&t.hasOwnProperty(n)&&(r=t[n]);return i.reduce(((t,i)=>{const n=zs(c,a,i)||zs(e,a,i)||zs(r,a,i);return n&&(t[i]=n),t}),{})}(s[e.getAttribute("region")],f[e.getAttribute("style")],f),{textAlign:u}=d;if(u){const e=Vs[u];e&&(l.lineAlign=e),l.align=u}return _c(l,d),l})).filter((e=>null!==e))}(e,n))))}catch(f){a(f)}}function qs(e,c,t){const a=e.getElementsByTagName(c)[0];return a?[].slice.call(a.querySelectorAll(t)):[]}function Ys(e){return e.reduce(((e,c)=>{const t=c.getAttribute("xml:id");return t&&(e[t]=c),e}),{})}function Ws(e,c){return[].slice.call(e.childNodes).reduce(((e,t,a)=>{var r;return"br"===t.nodeName&&a?e+"\n":null!=(r=t.childNodes)&&r.length?Ws(t,c):c?e+t.textContent.trim().replace(/\s+/g," "):e+t.textContent}),"")}function zs(e,c,t){return e&&e.hasAttributeNS(c,t)?e.getAttributeNS(c,t):null}function Xs(e){return new Error(`Could not parse ttml timestamp ${e}`)}function Qs(e,c){if(!e)return null;let t=ws(e);return null===t&&(Gs.test(e)?t=function(e,c){const t=Gs.exec(e),a=(0|t[4])+(0|t[5])/c.subFrameRate;return 3600*(0|t[1])+60*(0|t[2])+(0|t[3])+a/c.frameRate}(e,c):Ks.test(e)&&(t=function(e,c){const t=Ks.exec(e),a=Number(t[1]);switch(t[2]){case"h":return 3600*a;case"m":return 60*a;case"ms":return 1e3*a;case"f":return a/c.frameRate;case"t":return a/c.tickRate}return a}(e,c))),t}function Js(e,c,t,a="",r="disabled"){const i=e.ownerDocument.createElement("track");return i.kind=c,i.label=t,a&&(i.srclang=a),i.src="data:,WEBVTT",i.track.mode=r,e.appendChild(i),i}function Zs(e,c){const t=e.mode;if("disabled"===t&&(e.mode="hidden"),e.cues&&!e.cues.getCueById(c.id))try{if(e.addCue(c),!e.cues.getCueById(c.id))throw new Error(`addCue is failed for: ${c}`)}catch(nm){xc.debug(`[texttrack-utils]: ${nm}`);try{const t=new self.TextTrackCue(c.startTime,c.endTime,c.text);t.id=c.id,e.addCue(t)}catch(a){xc.debug(`[texttrack-utils]: Legacy TextTrackCue fallback failed: ${a}`)}}"disabled"===t&&(e.mode=t)}function eo(e,c,t,a){const r=e.mode;if("disabled"===r&&(e.mode="hidden"),e.cues&&e.cues.length>0){const r=function(e,c,t){const a=[],r=function(e,c){if(c<=e[0].startTime)return 0;const t=e.length-1;if(c>e[t].endTime)return-1;let a,r=0,i=t;for(;r<=i;)if(a=Math.floor((i+r)/2),c<e[a].startTime)i=a-1;else{if(!(c>e[a].startTime&&r<t))return a;r=a+1}return e[r].startTime-c<c-e[i].startTime?r:i}(e,c);if(r>-1)for(let i=r,n=e.length;i<n;i++){const r=e[i];if(r.startTime>=c&&r.endTime<=t)a.push(r);else if(r.startTime>t)return a}return a}(e.cues,c,t);for(let c=0;c<r.length;c++)a&&!a(r[c])||e.removeCue(r[c])}"disabled"===r&&(e.mode=r)}const co=.025;let to=function(e){return e[e.Point=0]="Point",e[e.Range=1]="Range",e}({});function ao(e,c,t){return`${e.identifier}-${t+1}-${Fs(c)}`}class ro{constructor(e,c){this.base=void 0,this._duration=null,this._timelineStart=null,this.appendInPlaceDisabled=void 0,this.appendInPlaceStarted=void 0,this.dateRange=void 0,this.hasPlayed=!1,this.cumulativeDuration=0,this.resumeOffset=NaN,this.playoutLimit=NaN,this.restrictions={skip:!1,jump:!1},this.snapOptions={out:!1,in:!1},this.assetList=[],this.assetListLoader=void 0,this.assetListResponse=null,this.resumeAnchor=void 0,this.error=void 0,this.resetOnResume=void 0,this.base=c,this.dateRange=e,this.setDateRange(e)}setDateRange(e){this.dateRange=e,this.resumeOffset=e.attr.optionalFloat("X-RESUME-OFFSET",this.resumeOffset),this.playoutLimit=e.attr.optionalFloat("X-PLAYOUT-LIMIT",this.playoutLimit),this.restrictions=e.attr.enumeratedStringList("X-RESTRICT",this.restrictions),this.snapOptions=e.attr.enumeratedStringList("X-SNAP",this.snapOptions)}reset(){var e;this.appendInPlaceStarted=!1,null==(e=this.assetListLoader)||e.destroy(),this.assetListLoader=void 0,this.supplementsPrimary||(this.assetListResponse=null,this.assetList=[],this._duration=null)}isAssetPastPlayoutLimit(e){var c;if(e>0&&e>=this.assetList.length)return!0;const t=this.playoutLimit;if(e<=0||isNaN(t))return!1;if(0===t)return!0;return((null==(c=this.assetList[e])?void 0:c.startOffset)||0)>t}findAssetIndex(e){return this.assetList.indexOf(e)}get identifier(){return this.dateRange.id}get startDate(){return this.dateRange.startDate}get startTime(){const e=this.dateRange.startTime;if(this.snapOptions.out){const c=this.dateRange.tagAnchor;if(c)return io(e,c)}return e}get startOffset(){return this.cue.pre?0:this.startTime}get startIsAligned(){if(0===this.startTime||this.snapOptions.out)return!0;const e=this.dateRange.tagAnchor;if(e){const c=this.dateRange.startTime;return c-io(c,e)<.1}return!1}get resumptionOffset(){const e=this.resumeOffset,c=nc(e)?e:this.duration;return this.cumulativeDuration+c}get resumeTime(){const e=this.startOffset+this.resumptionOffset;if(this.snapOptions.in){const c=this.resumeAnchor;if(c)return io(e,c)}return e}get appendInPlace(){return!!this.appendInPlaceStarted||!this.appendInPlaceDisabled&&!(this.cue.once||this.cue.pre||!this.startIsAligned||!(isNaN(this.playoutLimit)&&isNaN(this.resumeOffset)||this.resumeOffset&&this.duration&&Math.abs(this.resumeOffset-this.duration)<co))}set appendInPlace(e){this.appendInPlaceStarted?this.resetOnResume=!e:this.appendInPlaceDisabled=!e}get timelineStart(){return null!==this._timelineStart?this._timelineStart:this.startTime}set timelineStart(e){this._timelineStart=e}get duration(){const e=this.playoutLimit;let c;return c=null!==this._duration?this._duration:this.dateRange.duration?this.dateRange.duration:this.dateRange.plannedDuration||0,!isNaN(e)&&e<c&&(c=e),c}set duration(e){this._duration=e}get cue(){return this.dateRange.cue}get timelineOccupancy(){return"RANGE"===this.dateRange.attr["X-TIMELINE-OCCUPIES"]?to.Range:to.Point}get supplementsPrimary(){return"PRIMARY"===this.dateRange.attr["X-TIMELINE-STYLE"]}get contentMayVary(){return"NO"!==this.dateRange.attr["X-CONTENT-MAY-VARY"]}get assetUrl(){return this.dateRange.attr["X-ASSET-URI"]}get assetListUrl(){return this.dateRange.attr["X-ASSET-LIST"]}get baseUrl(){return this.base.url}get assetListLoaded(){return this.assetList.length>0||null!==this.assetListResponse}toString(){return`["${(e=this).identifier}" ${e.cue.pre?"<pre>":e.cue.post?"<post>":""}${e.timelineStart.toFixed(2)}-${e.resumeTime.toFixed(2)}]`;var e}}function io(e,c){return e-c.start<c.duration/2&&!(Math.abs(e-(c.start+c.duration))<co)?c.start:c.start+c.duration}function no(e,c,t){const a=new self.URL(e,t);return"data:"!==a.protocol&&a.searchParams.set("_HLS_primary_id",c),a}function fo(e,c){for(;null!=(t=e.assetList[++c])&&t.error;)var t;return c}function so(e){const c=e.timelineStart,t=e.duration||0;return`["${e.identifier}" ${c.toFixed(2)}-${(c+t).toFixed(2)}]`}class oo{constructor(e,c,t,a){this.hls=void 0,this.interstitial=void 0,this.assetItem=void 0,this.tracks=null,this.hasDetails=!1,this.mediaAttached=null,this._currentTime=void 0,this._bufferedEosTime=void 0,this.checkPlayout=()=>{this.reachedPlayout(this.currentTime)&&this.hls&&this.hls.trigger(dc.PLAYOUT_LIMIT_REACHED,{})};const r=this.hls=new e(c);this.interstitial=t,this.assetItem=a;const i=()=>{this.hasDetails=!0};r.once(dc.LEVEL_LOADED,i),r.once(dc.AUDIO_TRACK_LOADED,i),r.once(dc.SUBTITLE_TRACK_LOADED,i),r.on(dc.MEDIA_ATTACHING,((e,{media:c})=>{this.removeMediaListeners(),this.mediaAttached=c;this.interstitial.playoutLimit&&(c.addEventListener("timeupdate",this.checkPlayout),this.appendInPlace&&r.on(dc.BUFFER_APPENDED,(()=>{const e=this.bufferedEnd;this.reachedPlayout(e)&&(this._bufferedEosTime=e,r.trigger(dc.BUFFERED_TO_END,void 0))})))}))}get appendInPlace(){return this.interstitial.appendInPlace}loadSource(){const e=this.hls;if(e)if(e.url)e.levels.length&&!e.started&&e.startLoad(-1,!0);else{let t=this.assetItem.uri;try{t=no(t,e.config.primarySessionId||"").href}catch(c){}e.loadSource(t)}}bufferedInPlaceToEnd(e){var c;if(!this.appendInPlace)return!1;if(null!=(c=this.hls)&&c.bufferedToEnd)return!0;if(!e)return!1;const t=Math.min(this._bufferedEosTime||1/0,this.duration),a=this.timelineOffset,r=ir.bufferInfo(e,a,0);return this.getAssetTime(r.end)>=t-.02}reachedPlayout(e){const c=this.interstitial.playoutLimit;return this.startOffset+e>=c}get destroyed(){var e;return!(null!=(e=this.hls)&&e.userConfig)}get assetId(){return this.assetItem.identifier}get interstitialId(){return this.assetItem.parentIdentifier}get media(){var e;return(null==(e=this.hls)?void 0:e.media)||null}get bufferedEnd(){const e=this.media||this.mediaAttached;if(!e)return this._bufferedEosTime?this._bufferedEosTime:this.currentTime;const c=ir.bufferInfo(e,e.currentTime,.001);return this.getAssetTime(c.end)}get currentTime(){const e=this.media||this.mediaAttached;return e?this.getAssetTime(e.currentTime):this._currentTime||0}get duration(){const e=this.assetItem.duration;if(!e)return 0;const c=this.interstitial.playoutLimit;if(c){const t=c-this.startOffset;if(t>0&&t<e)return t}return e}get remaining(){const e=this.duration;return e?Math.max(0,e-this.currentTime):0}get startOffset(){return this.assetItem.startOffset}get timelineOffset(){var e;return(null==(e=this.hls)?void 0:e.config.timelineOffset)||0}set timelineOffset(e){const c=this.timelineOffset;if(e!==c){const t=e-c;if(Math.abs(t)>1/9e4&&this.hls){if(this.hasDetails)throw new Error("Cannot set timelineOffset after playlists are loaded");this.hls.config.timelineOffset=e}}}getAssetTime(e){const c=this.timelineOffset,t=this.duration;return Math.min(Math.max(0,e-c),t)}removeMediaListeners(){const e=this.mediaAttached;e&&(this._currentTime=e.currentTime,this.bufferSnapShot(),e.removeEventListener("timeupdate",this.checkPlayout))}bufferSnapShot(){var e;this.mediaAttached&&(null!=(e=this.hls)&&e.bufferedToEnd&&(this._bufferedEosTime=this.bufferedEnd))}destroy(){this.removeMediaListeners(),this.hls&&this.hls.destroy(),this.hls=null,this.tracks=this.mediaAttached=this.checkPlayout=null}attachMedia(e){var c;this.loadSource(),null==(c=this.hls)||c.attachMedia(e)}detachMedia(){var e;this.removeMediaListeners(),this.mediaAttached=null,null==(e=this.hls)||e.detachMedia()}resumeBuffering(){var e;null==(e=this.hls)||e.resumeBuffering()}pauseBuffering(){var e;null==(e=this.hls)||e.pauseBuffering()}transferMedia(){var e;return this.bufferSnapShot(),(null==(e=this.hls)?void 0:e.transferMedia())||null}resetDetails(){const e=this.hls;if(e&&this.hasDetails){e.stopLoad();const c=e=>delete e.details;e.levels.forEach(c),e.allAudioTracks.forEach(c),e.allSubtitleTracks.forEach(c),this.hasDetails=!1}}on(e,c,t){var a;null==(a=this.hls)||a.on(e,c)}once(e,c,t){var a;null==(a=this.hls)||a.once(e,c)}off(e,c,t){var a;null==(a=this.hls)||a.off(e,c)}toString(){var e;return`HlsAssetPlayer: ${so(this.assetItem)} ${null==(e=this.hls)?void 0:e.sessionId} ${this.appendInPlace?"append-in-place":""}`}}class lo extends Ac{constructor(e,c){super("interstitials-sched",c),this.onScheduleUpdate=void 0,this.eventMap={},this.events=null,this.items=null,this.durations={primary:0,playout:0,integrated:0},this.onScheduleUpdate=e}destroy(){this.reset(),this.onScheduleUpdate=null}reset(){this.eventMap={},this.setDurations(0,0,0),this.events&&this.events.forEach((e=>e.reset())),this.events=this.items=null}resetErrorsInRange(e,c){return this.events?this.events.reduce(((t,a)=>e<=a.startOffset&&c>a.startOffset?(delete a.error,t+1):t),0):0}get duration(){const e=this.items;return e?e[e.length-1].end:0}get length(){return this.items?this.items.length:0}getEvent(e){return e&&this.eventMap[e]||null}hasEvent(e){return e in this.eventMap}findItemIndex(e,c){if(e.event)return this.findEventIndex(e.event.identifier);let t=-1;e.nextEvent?t=this.findEventIndex(e.nextEvent.identifier)-1:e.previousEvent&&(t=this.findEventIndex(e.previousEvent.identifier)+1);const a=this.items;if(a)for(a[t]||(void 0===c&&(c=e.start),t=this.findItemIndexAtTime(c));t>=0&&null!=(r=a[t])&&r.event;){var r;t--}return t}findItemIndexAtTime(e,c){const t=this.items;if(t)for(let a=0;a<t.length;a++){let r=t[a];if(c&&"primary"!==c&&(r=r[c]),e===r.start||e>r.start&&e<r.end)return a}return-1}findJumpRestrictedIndex(e,c){const t=this.items;if(t)for(let a=e;a<=c&&t[a];a++){const e=t[a].event;if(null!=e&&e.restrictions.jump&&!e.appendInPlace)return a}return-1}findEventIndex(e){const c=this.items;if(c)for(let a=c.length;a--;){var t;if((null==(t=c[a].event)?void 0:t.identifier)===e)return a}return-1}findAssetIndex(e,c){const t=e.assetList,a=t.length;if(a>1)for(let r=0;r<a;r++){const e=t[r];if(!e.error){const t=e.timelineStart;if(c===t||c>t&&(c<t+(e.duration||0)||r===a-1))return r}}return 0}get assetIdAtEnd(){var e;const c=null==(e=this.items)||null==(e=e[this.length-1])?void 0:e.event;if(c){const e=c.assetList,t=e[e.length-1];if(t)return t.identifier}return null}parseInterstitialDateRanges(e,c){const t=e.main.details,{dateRanges:a}=t,r=this.events,i=this.parseDateRanges(a,{url:t.url},c),n=Object.keys(a),f=r?r.filter((e=>!n.includes(e.identifier))):[];i.length&&i.sort(((e,c)=>{const t=e.cue.pre,a=e.cue.post,r=c.cue.pre,i=c.cue.post;if(t&&!r)return-1;if(r&&!t)return 1;if(a&&!i)return 1;if(i&&!a)return-1;if(!(t||r||a||i)){const t=e.startTime,a=c.startTime;if(t!==a)return t-a}return e.dateRange.tagOrder-c.dateRange.tagOrder})),this.events=i,f.forEach((e=>{this.removeEvent(e)})),this.updateSchedule(e,f)}updateSchedule(e,c=[],t=!1){const a=this.events||[];if(a.length||c.length||this.length<2){const r=this.items,i=this.parseSchedule(a,e);(t||c.length||(null==r?void 0:r.length)!==i.length||i.some(((e,c)=>Math.abs(e.playout.start-r[c].playout.start)>.005||Math.abs(e.playout.end-r[c].playout.end)>.005)))&&(this.items=i,this.onScheduleUpdate(c,r))}}parseDateRanges(e,c,t){const a=[],r=Object.keys(e);for(let i=0;i<r.length;i++){const n=r[i],f=e[n];if(f.isInterstitial){let e=this.eventMap[n];e?e.setDateRange(f):(e=new ro(f,c),this.eventMap[n]=e,!1===t&&(e.appendInPlace=t)),a.push(e)}}return a}parseSchedule(e,c){const t=[],a=c.main.details,r=a.live?1/0:a.edge;let i=0;if((e=e.filter((e=>!(e.error||e.cue.once&&e.hasPlayed)))).length){this.resolveOffsets(e,c);let a=0,f=0;if(e.forEach(((c,n)=>{const s=c.cue.pre,o=c.cue.post,l=e[n-1]||null,d=c.appendInPlace,u=o?r:c.startOffset,h=c.duration,b=c.timelineOccupancy===to.Range?h:0,p=c.resumptionOffset,g=(null==l?void 0:l.startTime)===u,m=u+c.cumulativeDuration;let v=d?m+h:u+p;if(s||!o&&u<=0){const e=f;f+=b,c.timelineStart=m;const a=i;i+=h,t.push({event:c,start:m,end:v,playout:{start:a,end:i},integrated:{start:e,end:f}})}else{if(!(u<=r))return;{if(!g){const r=u-a;if(r>.033){const s=a,o=f;f+=r;const l=i;i+=r;const d={previousEvent:e[n-1]||null,nextEvent:c,start:s,end:s+r,playout:{start:l,end:i},integrated:{start:o,end:f}};t.push(d)}else r>0&&l&&(l.cumulativeDuration+=r,t[t.length-1].end=u)}o&&(v=m),c.timelineStart=m;const r=f;f+=b;const s=i;i+=h,t.push({event:c,start:m,end:v,playout:{start:s,end:i},integrated:{start:r,end:f}})}}const y=c.resumeTime;a=o||y>r?r:y})),a<r){var n;const e=a,c=f,s=r-a;f+=s;const o=i;i+=s,t.push({previousEvent:(null==(n=t[t.length-1])?void 0:n.event)||null,nextEvent:null,start:a,end:e+s,playout:{start:o,end:i},integrated:{start:c,end:f}})}this.setDurations(r,i,f)}else{const e=0;t.push({previousEvent:null,nextEvent:null,start:e,end:r,playout:{start:e,end:r},integrated:{start:e,end:r}}),this.setDurations(r,r,r)}return t}setDurations(e,c,t){this.durations={primary:e,playout:c,integrated:t}}resolveOffsets(e,c){const t=c.main.details,a=t.live?1/0:t.edge;let r=0,i=-1;e.forEach(((n,f)=>{const s=n.cue.pre,o=n.cue.post,l=s?0:o?a:n.startTime;this.updateAssetDurations(n);if(i===l?n.cumulativeDuration=r:(r=0,i=l),!o&&n.snapOptions.in&&(n.resumeAnchor=ga(null,t.fragments,n.startOffset+n.resumptionOffset,0,0)||void 0),n.appendInPlace&&!n.appendInPlaceStarted){this.primaryCanResumeInPlaceAt(n,c)||(n.appendInPlace=!1)}if(!n.appendInPlace&&f+1<e.length){e[f+1].startTime-e[f].resumeTime<.033&&(e[f+1].appendInPlace=!1,e[f+1].appendInPlace&&this.warn(`Could not change append strategy for abutting event ${n}`))}const d=nc(n.resumeOffset)?n.resumeOffset:n.duration;r+=d}))}primaryCanResumeInPlaceAt(e,c){const t=e.resumeTime,a=e.startTime+e.resumptionOffset;if(Math.abs(t-a)>co)return this.log(`"${e.identifier}" resumption ${t} not aligned with estimated timeline end ${a}`),!1;return!Object.keys(c).some((a=>{const r=c[a].details,i=r.edge;if(t>=i)return this.log(`"${e.identifier}" resumption ${t} past ${a} playlist end ${i}`),!1;const n=ga(null,r.fragments,t);if(!n)return this.log(`"${e.identifier}" resumption ${t} does not align with any fragments in ${a} playlist (${r.fragStart}-${r.fragmentEnd})`),!0;const f="audio"===a?.175:0;return!(Math.abs(n.start-t)<co+f||Math.abs(n.end-t)<co+f)&&(this.log(`"${e.identifier}" resumption ${t} not aligned with ${a} fragment bounds (${n.start}-${n.end} sn: ${n.sn} cc: ${n.cc})`),!0)}))}updateAssetDurations(e){if(!e.assetListLoaded)return;const c=e.timelineStart;let t=0,a=!1,r=!1;for(let i=0;i<e.assetList.length;i++){const n=e.assetList[i],f=c+t;n.startOffset=t,n.timelineStart=f,a||(a=null===n.duration),r||(r=!!n.error);t+=n.error?0:n.duration||0}e.duration=a&&!r?Math.max(t,e.duration):t}removeEvent(e){e.reset(),delete this.eventMap[e.identifier]}}function uo(e){return`[${e.event?'"'+e.event.identifier+'"':"primary"}: ${e.start.toFixed(2)}-${e.end.toFixed(2)}]`}class ho{constructor(e){this.hls=void 0,this.hls=e}destroy(){this.hls=null}loadAssetList(e,c){const t=e.assetListUrl;let a;try{a=no(t,this.hls.sessionId,e.baseUrl)}catch(l){const c=this.assignAssetListError(e,lc.ASSET_LIST_LOAD_ERROR,l,t);return void this.hls.trigger(dc.ERROR,c)}c&&"data:"!==a.protocol&&a.searchParams.set("_HLS_start_offset",""+c);const r=this.hls.config,i=new(0,r.loader)(r),n={responseType:"json",url:a.href},f=r.interstitialAssetListLoadPolicy.default,s={loadPolicy:f,timeout:f.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},o={onSuccess:(c,t,a,r)=>{const i=c.data,n=null==i?void 0:i.ASSETS;if(Array.isArray(n))e.assetListResponse=i,this.hls.trigger(dc.ASSET_LIST_LOADED,{event:e,assetListResponse:i,networkDetails:r});else{const c=this.assignAssetListError(e,lc.ASSET_LIST_PARSING_ERROR,new Error("Invalid interstitial asset list"),a.url,t,r);this.hls.trigger(dc.ERROR,c)}},onError:(c,t,a,r)=>{const i=this.assignAssetListError(e,lc.ASSET_LIST_LOAD_ERROR,new Error(`Error loading X-ASSET-LIST: HTTP status ${c.code} ${c.text} (${t.url})`),t.url,r,a);this.hls.trigger(dc.ERROR,i)},onTimeout:(c,t,a)=>{const r=this.assignAssetListError(e,lc.ASSET_LIST_LOAD_TIMEOUT,new Error(`Timeout loading X-ASSET-LIST (${t.url})`),t.url,c,a);this.hls.trigger(dc.ERROR,r)}};return i.load(n,s,o),this.hls.trigger(dc.ASSET_LIST_LOADING,{event:e}),i}assignAssetListError(e,c,t,a,r,i){return e.error=t,{type:oc.NETWORK_ERROR,details:c,fatal:!1,interstitial:e,url:a,error:t,networkDetails:i,stats:r}}}function bo(e){null==e||e.play().catch((()=>{}))}function po(e,c){return`[${e}] Advancing timeline position to ${c}`}class go{constructor(e){this.buffered=void 0;const c=(c,t,a)=>{if((t>>>=0)>a-1)throw new DOMException(`Failed to execute '${c}' on 'TimeRanges': The index provided (${t}) is greater than the maximum bound (${a})`);return e[t][c]};this.buffered={get length(){return e.length},end:t=>c("end",t,e.length),start:t=>c("start",t,e.length)}}}const mo={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,128:174,129:176,130:189,131:191,132:8482,133:162,134:163,135:9834,136:224,137:32,138:232,139:226,140:234,141:238,142:244,143:251,144:193,145:201,146:211,147:218,148:220,149:252,150:8216,151:161,152:42,153:8217,154:9473,155:169,156:8480,157:8226,158:8220,159:8221,160:192,161:194,162:199,163:200,164:202,165:203,166:235,167:206,168:207,169:239,170:212,171:217,172:249,173:219,174:171,175:187,176:195,177:227,178:205,179:204,180:236,181:210,182:242,183:213,184:245,185:123,186:125,187:92,188:94,189:95,190:124,191:8764,192:196,193:228,194:214,195:246,196:223,197:165,198:164,199:9475,200:197,201:229,202:216,203:248,204:9487,205:9491,206:9495,207:9499},vo=e=>String.fromCharCode(mo[e]||e),yo=15,Eo=100,So={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},_o={17:2,18:4,21:6,22:8,23:10,19:13,20:15},To={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},ko={25:2,26:4,29:6,30:8,31:10,27:13,28:15},Ao=["white","green","blue","cyan","red","yellow","magenta","black","transparent"];class Lo{constructor(){this.time=null,this.verboseLevel=0}log(e,c){if(this.verboseLevel>=e){const t="function"==typeof c?c():c;xc.log(`${this.time} [${e}] ${t}`)}}}const Io=function(e){const c=[];for(let t=0;t<e.length;t++)c.push(e[t].toString(16));return c};class wo{constructor(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1}reset(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1}setStyles(e){const c=["foreground","underline","italics","background","flash"];for(let t=0;t<c.length;t++){const a=c[t];e.hasOwnProperty(a)&&(this[a]=e[a])}}isDefault(){return"white"===this.foreground&&!this.underline&&!this.italics&&"black"===this.background&&!this.flash}equals(e){return this.foreground===e.foreground&&this.underline===e.underline&&this.italics===e.italics&&this.background===e.background&&this.flash===e.flash}copy(e){this.foreground=e.foreground,this.underline=e.underline,this.italics=e.italics,this.background=e.background,this.flash=e.flash}toString(){return"color="+this.foreground+", underline="+this.underline+", italics="+this.italics+", background="+this.background+", flash="+this.flash}}class Ro{constructor(){this.uchar=" ",this.penState=new wo}reset(){this.uchar=" ",this.penState.reset()}setChar(e,c){this.uchar=e,this.penState.copy(c)}setPenState(e){this.penState.copy(e)}equals(e){return this.uchar===e.uchar&&this.penState.equals(e.penState)}copy(e){this.uchar=e.uchar,this.penState.copy(e.penState)}isEmpty(){return" "===this.uchar&&this.penState.isDefault()}}class Do{constructor(e){this.chars=[],this.pos=0,this.currPenState=new wo,this.cueStartTime=null,this.logger=void 0;for(let c=0;c<Eo;c++)this.chars.push(new Ro);this.logger=e}equals(e){for(let c=0;c<Eo;c++)if(!this.chars[c].equals(e.chars[c]))return!1;return!0}copy(e){for(let c=0;c<Eo;c++)this.chars[c].copy(e.chars[c])}isEmpty(){let e=!0;for(let c=0;c<Eo;c++)if(!this.chars[c].isEmpty()){e=!1;break}return e}setCursor(e){this.pos!==e&&(this.pos=e),this.pos<0?(this.logger.log(3,"Negative cursor position "+this.pos),this.pos=0):this.pos>Eo&&(this.logger.log(3,"Too large cursor position "+this.pos),this.pos=Eo)}moveCursor(e){const c=this.pos+e;if(e>1)for(let t=this.pos+1;t<c+1;t++)this.chars[t].setPenState(this.currPenState);this.setCursor(c)}backSpace(){this.moveCursor(-1),this.chars[this.pos].setChar(" ",this.currPenState)}insertChar(e){e>=144&&this.backSpace();const c=vo(e);this.pos>=Eo?this.logger.log(0,(()=>"Cannot insert "+e.toString(16)+" ("+c+") at position "+this.pos+". Skipping it!")):(this.chars[this.pos].setChar(c,this.currPenState),this.moveCursor(1))}clearFromPos(e){let c;for(c=e;c<Eo;c++)this.chars[c].reset()}clear(){this.clearFromPos(0),this.pos=0,this.currPenState.reset()}clearToEndOfRow(){this.clearFromPos(this.pos)}getTextString(){const e=[];let c=!0;for(let t=0;t<Eo;t++){const a=this.chars[t].uchar;" "!==a&&(c=!1),e.push(a)}return c?"":e.join("")}setPenStyles(e){this.currPenState.setStyles(e);this.chars[this.pos].setPenState(this.currPenState)}}class xo{constructor(e){this.rows=[],this.currRow=14,this.nrRollUpRows=null,this.lastOutputScreen=null,this.logger=void 0;for(let c=0;c<yo;c++)this.rows.push(new Do(e));this.logger=e}reset(){for(let e=0;e<yo;e++)this.rows[e].clear();this.currRow=14}equals(e){let c=!0;for(let t=0;t<yo;t++)if(!this.rows[t].equals(e.rows[t])){c=!1;break}return c}copy(e){for(let c=0;c<yo;c++)this.rows[c].copy(e.rows[c])}isEmpty(){let e=!0;for(let c=0;c<yo;c++)if(!this.rows[c].isEmpty()){e=!1;break}return e}backSpace(){this.rows[this.currRow].backSpace()}clearToEndOfRow(){this.rows[this.currRow].clearToEndOfRow()}insertChar(e){this.rows[this.currRow].insertChar(e)}setPen(e){this.rows[this.currRow].setPenStyles(e)}moveCursor(e){this.rows[this.currRow].moveCursor(e)}setCursor(e){this.logger.log(2,"setCursor: "+e);this.rows[this.currRow].setCursor(e)}setPAC(e){this.logger.log(2,(()=>"pacData = "+na(e)));let c=e.row-1;if(this.nrRollUpRows&&c<this.nrRollUpRows-1&&(c=this.nrRollUpRows-1),this.nrRollUpRows&&this.currRow!==c){for(let c=0;c<yo;c++)this.rows[c].clear();const e=this.currRow+1-this.nrRollUpRows,t=this.lastOutputScreen;if(t){const a=t.rows[e].cueStartTime,r=this.logger.time;if(null!==a&&null!==r&&a<r)for(let i=0;i<this.nrRollUpRows;i++)this.rows[c-this.nrRollUpRows+i+1].copy(t.rows[e+i])}}this.currRow=c;const t=this.rows[this.currRow];if(null!==e.indent){const c=e.indent,a=Math.max(c-1,0);t.setCursor(e.indent),e.color=t.chars[a].penState.foreground}const a={foreground:e.color,underline:e.underline,italics:e.italics,background:"black",flash:!1};this.setPen(a)}setBkgData(e){this.logger.log(2,(()=>"bkgData = "+na(e))),this.backSpace(),this.setPen(e),this.insertChar(32)}setRollUpRows(e){this.nrRollUpRows=e}rollUp(){if(null===this.nrRollUpRows)return void this.logger.log(3,"roll_up but nrRollUpRows not set yet");this.logger.log(1,(()=>this.getDisplayText()));const e=this.currRow+1-this.nrRollUpRows,c=this.rows.splice(e,1)[0];c.clear(),this.rows.splice(this.currRow,0,c),this.logger.log(2,"Rolling up")}getDisplayText(e){e=e||!1;const c=[];let t="",a=-1;for(let r=0;r<yo;r++){const t=this.rows[r].getTextString();t&&(a=r+1,e?c.push("Row "+a+": '"+t+"'"):c.push(t.trim()))}return c.length>0&&(t=e?"["+c.join(" | ")+"]":c.join("\n")),t}getTextAndFormat(){return this.rows}}class Po{constructor(e,c,t){this.chNr=void 0,this.outputFilter=void 0,this.mode=void 0,this.verbose=void 0,this.displayedMemory=void 0,this.nonDisplayedMemory=void 0,this.lastOutputScreen=void 0,this.currRollUpRow=void 0,this.writeScreen=void 0,this.cueStartTime=void 0,this.logger=void 0,this.chNr=e,this.outputFilter=c,this.mode=null,this.verbose=0,this.displayedMemory=new xo(t),this.nonDisplayedMemory=new xo(t),this.lastOutputScreen=new xo(t),this.currRollUpRow=this.displayedMemory.rows[14],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.logger=t}reset(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.outputFilter.reset(),this.currRollUpRow=this.displayedMemory.rows[14],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null}getHandler(){return this.outputFilter}setHandler(e){this.outputFilter=e}setPAC(e){this.writeScreen.setPAC(e)}setBkgData(e){this.writeScreen.setBkgData(e)}setMode(e){e!==this.mode&&(this.mode=e,this.logger.log(2,(()=>"MODE="+e)),"MODE_POP-ON"===this.mode?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),"MODE_ROLL-UP"!==this.mode&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=e)}insertChars(e){for(let t=0;t<e.length;t++)this.writeScreen.insertChar(e[t]);const c=this.writeScreen===this.displayedMemory?"DISP":"NON_DISP";this.logger.log(2,(()=>c+": "+this.writeScreen.getDisplayText(!0))),"MODE_PAINT-ON"!==this.mode&&"MODE_ROLL-UP"!==this.mode||(this.logger.log(1,(()=>"DISPLAYED: "+this.displayedMemory.getDisplayText(!0))),this.outputDataUpdate())}ccRCL(){this.logger.log(2,"RCL - Resume Caption Loading"),this.setMode("MODE_POP-ON")}ccBS(){this.logger.log(2,"BS - BackSpace"),"MODE_TEXT"!==this.mode&&(this.writeScreen.backSpace(),this.writeScreen===this.displayedMemory&&this.outputDataUpdate())}ccAOF(){}ccAON(){}ccDER(){this.logger.log(2,"DER- Delete to End of Row"),this.writeScreen.clearToEndOfRow(),this.outputDataUpdate()}ccRU(e){this.logger.log(2,"RU("+e+") - Roll Up"),this.writeScreen=this.displayedMemory,this.setMode("MODE_ROLL-UP"),this.writeScreen.setRollUpRows(e)}ccFON(){this.logger.log(2,"FON - Flash On"),this.writeScreen.setPen({flash:!0})}ccRDC(){this.logger.log(2,"RDC - Resume Direct Captioning"),this.setMode("MODE_PAINT-ON")}ccTR(){this.logger.log(2,"TR"),this.setMode("MODE_TEXT")}ccRTD(){this.logger.log(2,"RTD"),this.setMode("MODE_TEXT")}ccEDM(){this.logger.log(2,"EDM - Erase Displayed Memory"),this.displayedMemory.reset(),this.outputDataUpdate(!0)}ccCR(){this.logger.log(2,"CR - Carriage Return"),this.writeScreen.rollUp(),this.outputDataUpdate(!0)}ccENM(){this.logger.log(2,"ENM - Erase Non-displayed Memory"),this.nonDisplayedMemory.reset()}ccEOC(){if(this.logger.log(2,"EOC - End Of Caption"),"MODE_POP-ON"===this.mode){const e=this.displayedMemory;this.displayedMemory=this.nonDisplayedMemory,this.nonDisplayedMemory=e,this.writeScreen=this.nonDisplayedMemory,this.logger.log(1,(()=>"DISP: "+this.displayedMemory.getDisplayText()))}this.outputDataUpdate(!0)}ccTO(e){this.logger.log(2,"TO("+e+") - Tab Offset"),this.writeScreen.moveCursor(e)}ccMIDROW(e){const c={flash:!1};if(c.underline=e%2==1,c.italics=e>=46,c.italics)c.foreground="white";else{const t=Math.floor(e/2)-16,a=["white","green","blue","cyan","red","yellow","magenta"];c.foreground=a[t]}this.logger.log(2,"MIDROW: "+na(c)),this.writeScreen.setPen(c)}outputDataUpdate(e=!1){const c=this.logger.time;null!==c&&this.outputFilter&&(null!==this.cueStartTime||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue(this.cueStartTime,c,this.lastOutputScreen),e&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue(),this.cueStartTime=this.displayedMemory.isEmpty()?null:c):this.cueStartTime=c,this.lastOutputScreen.copy(this.displayedMemory))}cueSplitAtTime(e){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,e,this.displayedMemory),this.cueStartTime=e))}}class Co{constructor(e,c,t){this.channels=void 0,this.currentChannel=0,this.cmdHistory={a:null,b:null},this.logger=void 0;const a=this.logger=new Lo;this.channels=[null,new Po(e,c,a),new Po(e+1,t,a)]}getHandler(e){return this.channels[e].getHandler()}setHandler(e,c){this.channels[e].setHandler(c)}addData(e,c){this.logger.time=e;for(let t=0;t<c.length;t+=2){const e=127&c[t],a=127&c[t+1];let r=!1,i=null;if(0===e&&0===a)continue;this.logger.log(3,(()=>"["+Io([c[t],c[t+1]])+"] -> ("+Io([e,a])+")"));const n=this.cmdHistory;if(e>=16&&e<=31){if(Mo(e,a,n)){Oo(null,null,n),this.logger.log(3,(()=>"Repeated command ("+Io([e,a])+") is dropped"));continue}Oo(e,a,this.cmdHistory),r=this.parseCmd(e,a),r||(r=this.parseMidrow(e,a)),r||(r=this.parsePAC(e,a)),r||(r=this.parseBackgroundAttributes(e,a))}else Oo(null,null,n);if(!r&&(i=this.parseChars(e,a),i)){const e=this.currentChannel;if(e&&e>0){this.channels[e].insertChars(i)}else this.logger.log(2,"No channel found yet. TEXT-MODE?")}r||i||this.logger.log(2,(()=>"Couldn't parse cleaned data "+Io([e,a])+" orig: "+Io([c[t],c[t+1]])))}}parseCmd(e,c){if(!((20===e||28===e||21===e||29===e)&&c>=32&&c<=47)&&!((23===e||31===e)&&c>=33&&c<=35))return!1;const t=20===e||21===e||23===e?1:2,a=this.channels[t];return 20===e||21===e||28===e||29===e?32===c?a.ccRCL():33===c?a.ccBS():34===c?a.ccAOF():35===c?a.ccAON():36===c?a.ccDER():37===c?a.ccRU(2):38===c?a.ccRU(3):39===c?a.ccRU(4):40===c?a.ccFON():41===c?a.ccRDC():42===c?a.ccTR():43===c?a.ccRTD():44===c?a.ccEDM():45===c?a.ccCR():46===c?a.ccENM():47===c&&a.ccEOC():a.ccTO(c-32),this.currentChannel=t,!0}parseMidrow(e,c){let t=0;if((17===e||25===e)&&c>=32&&c<=47){if(t=17===e?1:2,t!==this.currentChannel)return this.logger.log(0,"Mismatch channel in midrow parsing"),!1;const a=this.channels[t];return!!a&&(a.ccMIDROW(c),this.logger.log(3,(()=>"MIDROW ("+Io([e,c])+")")),!0)}return!1}parsePAC(e,c){let t;if(!((e>=17&&e<=23||e>=25&&e<=31)&&c>=64&&c<=127)&&!((16===e||24===e)&&c>=64&&c<=95))return!1;const a=e<=23?1:2;t=c>=64&&c<=95?1===a?So[e]:To[e]:1===a?_o[e]:ko[e];const r=this.channels[a];return!!r&&(r.setPAC(this.interpretPAC(t,c)),this.currentChannel=a,!0)}interpretPAC(e,c){let t;const a={color:null,italics:!1,indent:null,underline:!1,row:e};return t=c>95?c-96:c-64,a.underline=!(1&~t),t<=13?a.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(t/2)]:t<=15?(a.italics=!0,a.color="white"):a.indent=4*Math.floor((t-16)/2),a}parseChars(e,c){let t,a=null,r=null;if(e>=25?(t=2,r=e-8):(t=1,r=e),r>=17&&r<=19){let e;e=17===r?c+80:18===r?c+112:c+144,this.logger.log(2,(()=>"Special char '"+vo(e)+"' in channel "+t)),a=[e]}else e>=32&&e<=127&&(a=0===c?[e]:[e,c]);return a&&this.logger.log(3,(()=>"Char codes = "+Io(a).join(","))),a}parseBackgroundAttributes(e,c){if(!((16===e||24===e)&&c>=32&&c<=47)&&!((23===e||31===e)&&c>=45&&c<=47))return!1;let t;const a={};16===e||24===e?(t=Math.floor((c-32)/2),a.background=Ao[t],c%2==1&&(a.background=a.background+"_semi")):45===c?a.background="transparent":(a.foreground="black",47===c&&(a.underline=!0));const r=e<=23?1:2;return this.channels[r].setBkgData(a),!0}reset(){for(let e=0;e<Object.keys(this.channels).length;e++){const c=this.channels[e];c&&c.reset()}Oo(null,null,this.cmdHistory)}cueSplitAtTime(e){for(let c=0;c<this.channels.length;c++){const t=this.channels[c];t&&t.cueSplitAtTime(e)}}}function Oo(e,c,t){t.a=e,t.b=c}function Mo(e,c,t){return t.a===e&&t.b===c}class Fo{constructor(e,c){this.timelineController=void 0,this.cueRanges=[],this.trackName=void 0,this.startTime=null,this.endTime=null,this.screen=null,this.timelineController=e,this.trackName=c}dispatchCue(){null!==this.startTime&&(this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen,this.cueRanges),this.startTime=null)}newCue(e,c,t){(null===this.startTime||this.startTime>e)&&(this.startTime=e),this.endTime=c,this.screen=t,this.timelineController.createCaptionsTrack(this.trackName)}reset(){this.cueRanges=[],this.startTime=null}}const No=/\s/,Uo={newCue(e,c,t,a){const r=[];let i,n,f,s,o;const l=self.VTTCue||self.TextTrackCue;for(let u=0;u<a.rows.length;u++)if(i=a.rows[u],f=!0,s=0,o="",!i.isEmpty()){var d;for(let e=0;e<i.chars.length;e++)No.test(i.chars[e].uchar)&&f?s++:(o+=i.chars[e].uchar,f=!1);i.cueStartTime=c,c===t&&(t+=1e-4),s>=16?s--:s++;const a=Os(o.trim()),h=Bs(c,t,a);null!=e&&null!=(d=e.cues)&&d.getCueById(h)||(n=new l(c,t,a),n.id=h,n.line=u+1,n.align="left",n.position=10+Math.min(80,10*Math.floor(8*s/32)),r.push(n))}return e&&r.length&&(r.sort(((e,c)=>"auto"===e.line||"auto"===c.line?0:e.line>8&&c.line>8?c.line-e.line:e.line-c.line)),r.forEach((c=>Zs(e,c)))),r}};const Bo=/(\d+)-(\d+)\/(\d+)/;let $o=class{constructor(e){this.fetchSetup=void 0,this.requestTimeout=void 0,this.request=null,this.response=null,this.controller=void 0,this.context=null,this.config=null,this.callbacks=null,this.stats=void 0,this.loader=null,this.fetchSetup=e.fetchSetup||jo,this.controller=new self.AbortController,this.stats=new qc}destroy(){this.loader=this.callbacks=this.context=this.config=this.request=null,this.abortInternal(),this.response=null,this.fetchSetup=this.controller=this.stats=null}abortInternal(){this.controller&&!this.stats.loading.end&&(this.stats.aborted=!0,this.controller.abort())}abort(){var e;this.abortInternal(),null!=(e=this.callbacks)&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.response)}load(e,c,t){const a=this.stats;if(a.loading.start)throw new Error("Loader can only be used once.");a.loading.start=self.performance.now();const r=function(e,c){const t={method:"GET",mode:"cors",credentials:"same-origin",signal:c,headers:new self.Headers(_c({},e.headers))};e.rangeEnd&&t.headers.set("Range","bytes="+e.rangeStart+"-"+String(e.rangeEnd-1));return t}(e,this.controller.signal),i="arraybuffer"===e.responseType,n=i?"byteLength":"length",{maxTimeToFirstByteMs:f,maxLoadTimeMs:s}=c.loadPolicy;this.context=e,this.config=c,this.callbacks=t,this.request=this.fetchSetup(e,r),self.clearTimeout(this.requestTimeout),c.timeout=f&&nc(f)?f:s,this.requestTimeout=self.setTimeout((()=>{this.callbacks&&(this.abortInternal(),this.callbacks.onTimeout(a,e,this.response))}),c.timeout);(df(this.request)?this.request.then(self.fetch):self.fetch(this.request)).then((t=>{var r;this.response=this.loader=t;const n=Math.max(self.performance.now(),a.loading.start);if(self.clearTimeout(this.requestTimeout),c.timeout=s,this.requestTimeout=self.setTimeout((()=>{this.callbacks&&(this.abortInternal(),this.callbacks.onTimeout(a,e,this.response))}),s-(n-a.loading.start)),!t.ok){const{status:e,statusText:c}=t;throw new Go(c||"fetch, bad network response",e,t)}a.loading.first=n,a.total=function(e){const c=e.get("Content-Range");if(c){const e=function(e){const c=Bo.exec(e);if(c)return parseInt(c[2])-parseInt(c[1])+1}(c);if(nc(e))return e}const t=e.get("Content-Length");if(t)return parseInt(t)}(t.headers)||a.total;const f=null==(r=this.callbacks)?void 0:r.onProgress;return f&&nc(c.highWaterMark)?this.loadProgressively(t,a,e,c.highWaterMark,f):i?t.arrayBuffer():"json"===e.responseType?t.json():t.text()})).then((t=>{var r,i;const f=this.response;if(!f)throw new Error("loader destroyed");self.clearTimeout(this.requestTimeout),a.loading.end=Math.max(self.performance.now(),a.loading.first);const s=t[n];s&&(a.loaded=a.total=s);const o={url:f.url,data:t,code:f.status},l=null==(r=this.callbacks)?void 0:r.onProgress;l&&!nc(c.highWaterMark)&&l(a,e,t,f),null==(i=this.callbacks)||i.onSuccess(o,a,e,f)})).catch((c=>{var t;if(self.clearTimeout(this.requestTimeout),a.aborted)return;const r=c&&c.code||0,i=c?c.message:null;null==(t=this.callbacks)||t.onError({code:r,text:i},e,c?c.details:null,a)}))}getCacheAge(){let e=null;if(this.response){const c=this.response.headers.get("age");e=c?parseFloat(c):null}return e}getResponseHeader(e){return this.response?this.response.headers.get(e):null}loadProgressively(e,c,t,a=0,r){const i=new Ui,n=e.body.getReader(),f=()=>n.read().then((n=>{if(n.done)return i.dataLength&&r(c,t,i.flush().buffer,e),Promise.resolve(new ArrayBuffer(0));const s=n.value,o=s.length;return c.loaded+=o,o<a||i.dataLength?(i.push(s),i.dataLength>=a&&r(c,t,i.flush().buffer,e)):r(c,t,s.buffer,e),f()})).catch((()=>Promise.reject()));return f()}};function jo(e,c){return new self.Request(e.url,c)}class Go extends Error{constructor(e,c,t){super(e),this.code=void 0,this.details=void 0,this.code=c,this.details=t}}const Ko=/^age:\s*[\d.]+\s*$/im;let Vo=class{constructor(e){this.xhrSetup=void 0,this.requestTimeout=void 0,this.retryTimeout=void 0,this.retryDelay=void 0,this.config=null,this.callbacks=null,this.context=null,this.loader=null,this.stats=void 0,this.xhrSetup=e&&e.xhrSetup||null,this.stats=new qc,this.retryDelay=0}destroy(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null,this.context=null,this.xhrSetup=null}abortInternal(){const e=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),e&&(e.onreadystatechange=null,e.onprogress=null,4!==e.readyState&&(this.stats.aborted=!0,e.abort()))}abort(){var e;this.abortInternal(),null!=(e=this.callbacks)&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)}load(e,c,t){if(this.stats.loading.start)throw new Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=e,this.config=c,this.callbacks=t,this.loadInternal()}loadInternal(){const{config:e,context:c}=this;if(!e||!c)return;const t=this.loader=new self.XMLHttpRequest,a=this.stats;a.loading.first=0,a.loaded=0,a.aborted=!1;const r=this.xhrSetup;r?Promise.resolve().then((()=>{if(this.loader===t&&!this.stats.aborted)return r(t,c.url)})).catch((e=>{if(this.loader===t&&!this.stats.aborted)return t.open("GET",c.url,!0),r(t,c.url)})).then((()=>{this.loader!==t||this.stats.aborted||this.openAndSendXhr(t,c,e)})).catch((e=>{var r;null==(r=this.callbacks)||r.onError({code:t.status,text:e.message},c,t,a)})):this.openAndSendXhr(t,c,e)}openAndSendXhr(e,c,t){e.readyState||e.open("GET",c.url,!0);const a=c.headers,{maxTimeToFirstByteMs:r,maxLoadTimeMs:i}=t.loadPolicy;if(a)for(const n in a)e.setRequestHeader(n,a[n]);c.rangeEnd&&e.setRequestHeader("Range","bytes="+c.rangeStart+"-"+(c.rangeEnd-1)),e.onreadystatechange=this.readystatechange.bind(this),e.onprogress=this.loadprogress.bind(this),e.responseType=c.responseType,self.clearTimeout(this.requestTimeout),t.timeout=r&&nc(r)?r:i,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),t.timeout),e.send()}readystatechange(){const{context:e,loader:c,stats:t}=this;if(!e||!c)return;const a=c.readyState,r=this.config;if(!t.aborted&&a>=2&&(0===t.loading.first&&(t.loading.first=Math.max(self.performance.now(),t.loading.start),r.timeout!==r.loadPolicy.maxLoadTimeMs&&(self.clearTimeout(this.requestTimeout),r.timeout=r.loadPolicy.maxLoadTimeMs,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),r.loadPolicy.maxLoadTimeMs-(t.loading.first-t.loading.start)))),4===a)){self.clearTimeout(this.requestTimeout),c.onreadystatechange=null,c.onprogress=null;const a=c.status,s="text"===c.responseType?c.responseText:null;if(a>=200&&a<300){const r=null!=s?s:c.response;if(null!=r){var i,n;t.loading.end=Math.max(self.performance.now(),t.loading.first);const f="arraybuffer"===c.responseType?r.byteLength:r.length;t.loaded=t.total=f,t.bwEstimate=8e3*t.total/(t.loading.end-t.loading.first);const s=null==(i=this.callbacks)?void 0:i.onProgress;s&&s(t,e,r,c);const o={url:c.responseURL,data:r,code:a};return void(null==(n=this.callbacks)||n.onSuccess(o,t,e,c))}}const o=r.loadPolicy.errorRetry;var f;if(La(o,t.retry,!1,{url:e.url,data:void 0,code:a}))this.retry(o);else xc.error(`${a} while loading ${e.url}`),null==(f=this.callbacks)||f.onError({code:a,text:c.statusText},e,c,t)}}loadtimeout(){if(!this.config)return;const e=this.config.loadPolicy.timeoutRetry;if(La(e,this.stats.retry,!0))this.retry(e);else{var c;xc.warn(`timeout while loading ${null==(c=this.context)?void 0:c.url}`);const e=this.callbacks;e&&(this.abortInternal(),e.onTimeout(this.stats,this.context,this.loader))}}retry(e){const{context:c,stats:t}=this;this.retryDelay=ka(e,t.retry),t.retry++,xc.warn(`${status?"HTTP Status "+status:"Timeout"} while loading ${null==c?void 0:c.url}, retrying ${t.retry}/${e.maxNumRetry} in ${this.retryDelay}ms`),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay)}loadprogress(e){const c=this.stats;c.loaded=e.loaded,e.lengthComputable&&(c.total=e.total)}getCacheAge(){let e=null;if(this.loader&&Ko.test(this.loader.getAllResponseHeaders())){const c=this.loader.getResponseHeader("age");e=c?parseFloat(c):null}return e}getResponseHeader(e){return this.loader&&new RegExp(`^${e}:\\s*[\\d.]+\\s*$`,"im").test(this.loader.getAllResponseHeaders())?this.loader.getResponseHeader(e):null}};const Ho=kc(kc({autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,ignoreDevicePixelRatio:!1,maxDevicePixelRatio:Number.POSITIVE_INFINITY,preferManagedMediaSource:!0,initialLiveManifestSize:1,maxBufferLength:30,backBufferLength:1/0,frontBufferFlushThreshold:1/0,startOnSegmentBoundary:!1,maxBufferSize:6e7,maxFragLookUpTolerance:.25,maxBufferHole:.1,detectStallWithCurrentTimeMs:1250,highBufferWatchdogPeriod:2,nudgeOffset:.1,nudgeMaxRetry:3,nudgeOnVideoHole:!0,liveSyncMode:"edge",liveSyncDurationCount:3,liveSyncOnStallIncrease:1,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,maxLiveSyncPlaybackRate:1,liveDurationInfinity:!1,liveBackBufferLength:null,maxMaxBufferLength:600,enableWorker:!0,workerPath:null,enableSoftwareAES:!0,startLevel:void 0,startFragPrefetch:!1,fpsDroppedMonitoringPeriod:5e3,fpsDroppedMonitoringThreshold:.2,appendErrorMaxRetry:3,ignorePlaylistParsingErrors:!1,loader:Vo,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,licenseResponseCallback:void 0,abrController:class extends Ac{constructor(e){super("abr",e.logger),this.hls=void 0,this.lastLevelLoadSec=0,this.lastLoadedFragLevel=-1,this.firstSelection=-1,this._nextAutoLevel=-1,this.nextAutoLevelKey="",this.audioTracksByGroup=null,this.codecTiers=null,this.timer=-1,this.fragCurrent=null,this.partCurrent=null,this.bitrateTestDelay=0,this.rebufferNotice=-1,this.supportedCache={},this.bwEstimator=void 0,this._abandonRulesCheck=e=>{var c;const{fragCurrent:t,partCurrent:a,hls:r}=this,{autoLevelEnabled:i,media:n}=r;if(!t||!n)return;const f=performance.now(),s=a?a.stats:t.stats,o=a?a.duration:t.duration,l=f-s.loading.start,d=r.minAutoLevel,u=t.level,h=this._nextAutoLevel;if(s.aborted||s.loaded&&s.loaded===s.total||u<=d)return this.clearTimer(),void(this._nextAutoLevel=-1);if(!i)return;const b=h>-1&&h!==u,p=!!e||b;if(!p&&(n.paused||!n.playbackRate||!n.readyState))return;const g=r.mainForwardBufferInfo;if(!p&&null===g)return;const m=this.bwEstimator.getEstimateTTFB(),v=Math.abs(n.playbackRate);if(l<=Math.max(m,o/(2*v)*1e3))return;const y=g?g.len/v:0,E=s.loading.first?s.loading.first-s.loading.start:-1,S=s.loaded&&E>-1,_=this.getBwEstimate(),T=r.levels,k=T[u],A=Math.max(s.loaded,Math.round(o*(t.bitrate||k.averageBitrate)/8));let L=S?l-E:l;L<1&&S&&(L=Math.min(l,8*s.loaded/_));const I=S?1e3*s.loaded/L:0,w=m/1e3,R=I?(A-s.loaded)/I:8*A/_+w;if(R<=y)return;const D=I?8*I:_,x=!0===(null==(c=(null==e?void 0:e.details)||this.hls.latestLevelDetails)?void 0:c.live),P=this.hls.config.abrBandWidthUpFactor;let C,O=Number.POSITIVE_INFINITY;for(C=u-1;C>d;C--){const e=T[C].maxBitrate,c=!T[C].details||x;if(O=this.getTimeToLoadFrag(w,D,o*e,c),O<Math.min(y,o+w))break}if(O>=R)return;if(O>10*o)return;S?this.bwEstimator.sample(l-Math.min(m,E),s.loaded):this.bwEstimator.sampleTTFB(l);const M=T[C].maxBitrate;this.getBwEstimate()*P>M&&this.resetEstimator(M);const F=this.findBestLevel(M,d,C,0,y,1,1);F>-1&&(C=F),this.warn(`Fragment ${t.sn}${a?" part "+a.index:""} of level ${u} is loading too slowly;\n Fragment duration: ${t.duration.toFixed(3)}\n Time to underbuffer: ${y.toFixed(3)} s\n Estimated load time for current fragment: ${R.toFixed(3)} s\n Estimated load time for down switch fragment: ${O.toFixed(3)} s\n TTFB estimate: ${0|E} ms\n Current BW estimate: ${nc(_)?0|_:"Unknown"} bps\n New BW estimate: ${0|this.getBwEstimate()} bps\n Switching to level ${C} @ ${0|M} bps`),r.nextLoadLevel=r.nextAutoLevel=C,this.clearTimer();const N=()=>{if(this.clearTimer(),this.fragCurrent===t&&this.hls.loadLevel===C&&C>0){const e=this.getStarvationDelay();if(this.warn(`Aborting inflight request ${C>0?"and switching down":""}\n Fragment duration: ${t.duration.toFixed(3)} s\n Time to underbuffer: ${e.toFixed(3)} s`),t.abortRequests(),this.fragCurrent=this.partCurrent=null,C>d){let c=this.findBestLevel(this.hls.levels[d].bitrate,d,C,0,e,1,1);-1===c&&(c=d),this.hls.nextLoadLevel=this.hls.nextAutoLevel=c,this.resetEstimator(this.hls.levels[c].bitrate)}}};b||R>2*O?N():this.timer=self.setInterval(N,1e3*O),r.trigger(dc.FRAG_LOAD_EMERGENCY_ABORTED,{frag:t,part:a,stats:s})},this.hls=e,this.bwEstimator=this.initEstimator(),this.registerListeners()}resetEstimator(e){e&&(this.log(`setting initial bwe to ${e}`),this.hls.config.abrEwmaDefaultEstimate=e),this.firstSelection=-1,this.bwEstimator=this.initEstimator()}initEstimator(){const e=this.hls.config;return new Ec(e.abrEwmaSlowVoD,e.abrEwmaFastVoD,e.abrEwmaDefaultEstimate)}registerListeners(){const{hls:e}=this;e.on(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.on(dc.FRAG_LOADING,this.onFragLoading,this),e.on(dc.FRAG_LOADED,this.onFragLoaded,this),e.on(dc.FRAG_BUFFERED,this.onFragBuffered,this),e.on(dc.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(dc.LEVEL_LOADED,this.onLevelLoaded,this),e.on(dc.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(dc.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.on(dc.ERROR,this.onError,this)}unregisterListeners(){const{hls:e}=this;e&&(e.off(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.off(dc.FRAG_LOADING,this.onFragLoading,this),e.off(dc.FRAG_LOADED,this.onFragLoaded,this),e.off(dc.FRAG_BUFFERED,this.onFragBuffered,this),e.off(dc.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(dc.LEVEL_LOADED,this.onLevelLoaded,this),e.off(dc.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(dc.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.off(dc.ERROR,this.onError,this))}destroy(){this.unregisterListeners(),this.clearTimer(),this.hls=this._abandonRulesCheck=this.supportedCache=null,this.fragCurrent=this.partCurrent=null}onManifestLoading(e,c){this.lastLoadedFragLevel=-1,this.firstSelection=-1,this.lastLevelLoadSec=0,this.supportedCache={},this.fragCurrent=this.partCurrent=null,this.onLevelsUpdated(),this.clearTimer()}onLevelsUpdated(){this.lastLoadedFragLevel>-1&&this.fragCurrent&&(this.lastLoadedFragLevel=this.fragCurrent.level),this._nextAutoLevel=-1,this.onMaxAutoLevelUpdated(),this.codecTiers=null,this.audioTracksByGroup=null}onMaxAutoLevelUpdated(){this.firstSelection=-1,this.nextAutoLevelKey=""}onFragLoading(e,c){const t=c.frag;if(!this.ignoreFragment(t)){var a;if(!t.bitrateTest)this.fragCurrent=t,this.partCurrent=null!=(a=c.part)?a:null;this.clearTimer(),this.timer=self.setInterval(this._abandonRulesCheck,100)}}onLevelSwitching(e,c){this.clearTimer()}onError(e,c){if(!c.fatal)switch(c.details){case lc.BUFFER_ADD_CODEC_ERROR:case lc.BUFFER_APPEND_ERROR:this.lastLoadedFragLevel=-1,this.firstSelection=-1;break;case lc.FRAG_LOAD_TIMEOUT:{const e=c.frag,{fragCurrent:t,partCurrent:a}=this;if(e&&t&&e.sn===t.sn&&e.level===t.level){const c=performance.now(),t=a?a.stats:e.stats,r=c-t.loading.start,i=t.loading.first?t.loading.first-t.loading.start:-1;if(t.loaded&&i>-1){const e=this.bwEstimator.getEstimateTTFB();this.bwEstimator.sample(r-Math.min(e,i),t.loaded)}else this.bwEstimator.sampleTTFB(r)}break}}}getTimeToLoadFrag(e,c,t,a){return e+t/c+(a?e+this.lastLevelLoadSec:0)}onLevelLoaded(e,c){const t=this.hls.config,{loading:a}=c.stats,r=a.end-a.first;nc(r)&&(this.lastLevelLoadSec=r/1e3),c.details.live?this.bwEstimator.update(t.abrEwmaSlowLive,t.abrEwmaFastLive):this.bwEstimator.update(t.abrEwmaSlowVoD,t.abrEwmaFastVoD),this.timer>-1&&this._abandonRulesCheck(c.levelInfo)}onFragLoaded(e,{frag:c,part:t}){const a=t?t.stats:c.stats;if(c.type===gc&&this.bwEstimator.sampleTTFB(a.loading.first-a.loading.start),!this.ignoreFragment(c)){if(this.clearTimer(),c.level===this._nextAutoLevel&&(this._nextAutoLevel=-1),this.firstSelection=-1,this.hls.config.abrMaxWithRealBitrate){const e=t?t.duration:c.duration,r=this.hls.levels[c.level],i=(r.loaded?r.loaded.bytes:0)+a.loaded,n=(r.loaded?r.loaded.duration:0)+e;r.loaded={bytes:i,duration:n},r.realBitrate=Math.round(8*i/n)}if(c.bitrateTest){const e={stats:a,frag:c,part:t,id:c.type};this.onFragBuffered(dc.FRAG_BUFFERED,e),c.bitrateTest=!1}else this.lastLoadedFragLevel=c.level}}onFragBuffered(e,c){const{frag:t,part:a}=c,r=null!=a&&a.stats.loaded?a.stats:t.stats;if(r.aborted)return;if(this.ignoreFragment(t))return;const i=r.parsing.end-r.loading.start-Math.min(r.loading.first-r.loading.start,this.bwEstimator.getEstimateTTFB());this.bwEstimator.sample(i,r.loaded),r.bwEstimate=this.getBwEstimate(),t.bitrateTest?this.bitrateTestDelay=i/1e3:this.bitrateTestDelay=0}ignoreFragment(e){return e.type!==gc||"initSegment"===e.sn}clearTimer(){this.timer>-1&&(self.clearInterval(this.timer),this.timer=-1)}get firstAutoLevel(){const{maxAutoLevel:e,minAutoLevel:c}=this.hls,t=this.getBwEstimate(),a=this.hls.config.maxStarvationDelay,r=this.findBestLevel(t,c,e,0,a,1,1);if(r>-1)return r;const i=this.hls.firstLevel,n=Math.min(Math.max(i,c),e);return this.warn(`Could not find best starting auto level. Defaulting to first in playlist ${i} clamped to ${n}`),n}get forcedAutoLevel(){return this.nextAutoLevelKey?-1:this._nextAutoLevel}get nextAutoLevel(){const e=this.forcedAutoLevel,c=this.bwEstimator.canEstimate(),t=this.lastLoadedFragLevel>-1;if(!(-1===e||c&&t&&this.nextAutoLevelKey!==this.getAutoLevelKey()))return e;const a=c&&t?this.getNextABRAutoLevel():this.firstAutoLevel;if(-1!==e){const c=this.hls.levels;if(c.length>Math.max(e,a)&&c[e].loadError<=c[a].loadError)return e}return this._nextAutoLevel=a,this.nextAutoLevelKey=this.getAutoLevelKey(),a}getAutoLevelKey(){return`${this.getBwEstimate()}_${this.getStarvationDelay().toFixed(2)}`}getNextABRAutoLevel(){const{fragCurrent:e,partCurrent:c,hls:t}=this;if(t.levels.length<=1)return t.loadLevel;const{maxAutoLevel:a,config:r,minAutoLevel:i}=t,n=c?c.duration:e?e.duration:0,f=this.getBwEstimate(),s=this.getStarvationDelay();let o=r.abrBandWidthFactor,l=r.abrBandWidthUpFactor;if(s){const e=this.findBestLevel(f,i,a,s,0,o,l);if(e>=0)return this.rebufferNotice=-1,e}let d=n?Math.min(n,r.maxStarvationDelay):r.maxStarvationDelay;if(!s){const e=this.bitrateTestDelay;if(e){d=(n?Math.min(n,r.maxLoadingDelay):r.maxLoadingDelay)-e,this.info(`bitrate test took ${Math.round(1e3*e)}ms, set first fragment max fetchDuration to ${Math.round(1e3*d)} ms`),o=l=1}}const u=this.findBestLevel(f,i,a,s,d,o,l);if(this.rebufferNotice!==u&&(this.rebufferNotice=u,this.info(`${s?"rebuffering expected":"buffer is empty"}, optimal quality level ${u}`)),u>-1)return u;const h=t.levels[i],b=t.loadLevelObj;return b&&(null==h?void 0:h.bitrate)<b.bitrate?i:t.loadLevel}getStarvationDelay(){const e=this.hls,c=e.media;if(!c)return 1/0;const t=c&&0!==c.playbackRate?Math.abs(c.playbackRate):1,a=e.mainForwardBufferInfo;return(a?a.len:0)/t}getBwEstimate(){return this.bwEstimator.canEstimate()?this.bwEstimator.getEstimate():this.hls.config.abrEwmaDefaultEstimate}findBestLevel(e,c,t,a,r,i,n){var f;const s=a+r,o=this.lastLoadedFragLevel,l=-1===o?this.hls.firstLevel:o,{fragCurrent:d,partCurrent:u}=this,{levels:h,allAudioTracks:b,loadLevel:p,config:g}=this.hls;if(1===h.length)return 0;const m=h[l],v=!(null==(f=this.hls.latestLevelDetails)||!f.live),y=-1===p||-1===o;let E,S="SDR",_=(null==m?void 0:m.frameRate)||0;const{audioPreference:T,videoPreference:k}=g,A=this.audioTracksByGroup||(this.audioTracksByGroup=sa(b));let L=-1;if(y){if(-1!==this.firstSelection)return this.firstSelection;const a=this.codecTiers||(this.codecTiers=function(e,c,t,a){return e.slice(t,a+1).reduce(((e,t,a)=>{if(!t.codecSet)return e;const r=t.audioGroups;let i=e[t.codecSet];i||(e[t.codecSet]=i={minBitrate:1/0,minHeight:1/0,minFramerate:1/0,minIndex:a,maxScore:0,videoRanges:{SDR:0},channels:{2:0},hasDefaultAudio:!r,fragmentError:0}),i.minBitrate=Math.min(i.minBitrate,t.bitrate);const n=Math.min(t.height,t.width);return i.minHeight=Math.min(i.minHeight,n),i.minFramerate=Math.min(i.minFramerate,t.frameRate),i.minIndex=Math.min(i.minIndex,a),i.maxScore=Math.max(i.maxScore,t.score),i.fragmentError+=t.fragmentError,i.videoRanges[t.videoRange]=(i.videoRanges[t.videoRange]||0)+1,r&&r.forEach((e=>{if(!e)return;const t=c.groups[e];t&&(i.hasDefaultAudio=i.hasDefaultAudio||c.hasDefaultAudio?t.hasDefault:t.hasAutoSelect||!c.hasDefaultAudio&&!c.hasAutoSelectAudio,Object.keys(t.channels).forEach((e=>{i.channels[e]=(i.channels[e]||0)+t.channels[e]})))})),e}),{})}(h,A,c,t)),r=function(e,c,t,a,r){const i=Object.keys(e),n=null==a?void 0:a.channels,f=null==a?void 0:a.audioCodec,s=null==r?void 0:r.videoCodec,o=n&&2===parseInt(n);let l=!1,d=!1,u=1/0,h=1/0,b=1/0,p=1/0,g=0,m=[];const{preferHDR:v,allowedVideoRanges:y}=ia(c,r);for(let T=i.length;T--;){const c=e[i[T]];l||(l=c.channels[2]>0),u=Math.min(u,c.minHeight),h=Math.min(h,c.minFramerate),b=Math.min(b,c.minBitrate),y.filter((e=>c.videoRanges[e]>0)).length>0&&(d=!0)}u=nc(u)?u:0,h=nc(h)?h:0;const E=Math.max(1080,u),S=Math.max(30,h);b=nc(b)?b:t,t=Math.max(b,t),d||(c=void 0);const _=i.length>1;return{codecSet:i.reduce(((c,a)=>{const r=e[a];if(a===c)return c;if(m=d?y.filter((e=>r.videoRanges[e]>0)):[],_){if(r.minBitrate>t)return fa(a,`min bitrate of ${r.minBitrate} > current estimate of ${t}`),c;if(!r.hasDefaultAudio)return fa(a,"no renditions with default or auto-select sound found"),c;if(f&&a.indexOf(f.substring(0,4))%5!=0)return fa(a,`audio codec preference "${f}" not found`),c;if(n&&!o){if(!r.channels[n])return fa(a,`no renditions with ${n} channel sound found (channels options: ${Object.keys(r.channels)})`),c}else if((!f||o)&&l&&0===r.channels[2])return fa(a,"no renditions with stereo sound found"),c;if(r.minHeight>E)return fa(a,`min resolution of ${r.minHeight} > maximum of ${E}`),c;if(r.minFramerate>S)return fa(a,`min framerate of ${r.minFramerate} > maximum of ${S}`),c;if(!m.some((e=>r.videoRanges[e]>0)))return fa(a,`no variants with VIDEO-RANGE of ${na(m)} found`),c;if(s&&a.indexOf(s.substring(0,4))%5!=0)return fa(a,`video codec preference "${s}" not found`),c;if(r.maxScore<g)return fa(a,`max score of ${r.maxScore} < selected max of ${g}`),c}return c&&(Ot(a)>=Ot(c)||r.fragmentError>e[c].fragmentError)?c:(p=r.minIndex,g=r.maxScore,a)}),void 0),videoRanges:m,preferHDR:v,minFramerate:h,minBitrate:b,minIndex:p}}(a,S,e,T,k),{codecSet:i,videoRanges:n,minFramerate:f,minBitrate:s,minIndex:o,preferHDR:l}=r;L=o,E=i,S=l?n[n.length-1]:n[0],_=f,e=Math.max(e,s),this.log(`picked start tier ${na(r)}`)}else E=null==m?void 0:m.codecSet,S=null==m?void 0:m.videoRange;const I=u?u.duration:d?d.duration:0,w=this.bwEstimator.getEstimateTTFB()/1e3,R=[];for(let x=t;x>=c;x--){var D;const c=h[x],f=x>l;if(!c)continue;if(g.useMediaCapabilities&&!c.supportedResult&&!c.supportedPromise){const t=navigator.mediaCapabilities;"function"==typeof(null==t?void 0:t.decodingInfo)&&qt(c,A,S,_,e,T)?(c.supportedPromise=Yt(c,A,t,this.supportedCache),c.supportedPromise.then((e=>{if(!this.hls)return;c.supportedResult=e;const t=this.hls.levels,a=t.indexOf(c);e.error?this.warn(`MediaCapabilities decodingInfo error: "${e.error}" for level ${a} ${na(e)}`):e.supported?e.decodingInfoResults.some((e=>!1===e.smooth||!1===e.powerEfficient))&&this.log(`MediaCapabilities decodingInfo for level ${a} not smooth or powerEfficient: ${na(e)}`):(this.warn(`Unsupported MediaCapabilities decodingInfo result for level ${a} ${na(e)}`),a>-1&&t.length>1&&(this.log(`Removing unsupported level ${a}`),this.hls.removeLevel(a),-1===this.hls.loadLevel&&(this.hls.nextLoadLevel=0)))})).catch((e=>{this.warn(`Error handling MediaCapabilities decodingInfo: ${e}`)}))):c.supportedResult=Vt}if((E&&c.codecSet!==E||S&&c.videoRange!==S||f&&_>c.frameRate||!f&&_>0&&_<c.frameRate||null!=(D=c.supportedResult)&&null!=(D=D.decodingInfoResults)&&D.some((e=>!1===e.smooth)))&&(!y||x!==L)){R.push(x);continue}const d=c.details,b=(u?null==d?void 0:d.partTarget:null==d?void 0:d.averagetargetduration)||I;let m;m=f?n*e:i*e;const k=I&&a>=2*I&&0===r?c.averageBitrate:c.maxBitrate,P=this.getTimeToLoadFrag(w,m,k*b,void 0===d);if(m>=k&&(x===o||0===c.loadError&&0===c.fragmentError)&&(P<=w||!nc(P)||v&&!this.bitrateTestDelay||P<s)){const e=this.forcedAutoLevel;return x===p||-1!==e&&e===p||(R.length&&this.trace(`Skipped level(s) ${R.join(",")} of ${t} max with CODECS and VIDEO-RANGE:"${h[R[0]].codecs}" ${h[R[0]].videoRange}; not compatible with "${E}" ${S}`),this.info(`switch candidate:${l}->${x} adjustedbw(${Math.round(m)})-bitrate=${Math.round(m-k)} ttfb:${w.toFixed(1)} avgDuration:${b.toFixed(1)} maxFetchDuration:${s.toFixed(1)} fetchDuration:${P.toFixed(1)} firstSelection:${y} codecSet:${c.codecSet} videoRange:${c.videoRange} hls.loadLevel:${p}`)),y&&(this.firstSelection=x),x}}return-1}set nextAutoLevel(e){const c=this.deriveNextAutoLevel(e);this._nextAutoLevel!==c&&(this.nextAutoLevelKey="",this._nextAutoLevel=c)}deriveNextAutoLevel(e){const{maxAutoLevel:c,minAutoLevel:t}=this.hls;return Math.min(Math.max(e,t),c)}},bufferController:class extends Ac{constructor(e,c){var t;super("buffer-controller",e.logger),this.hls=void 0,this.fragmentTracker=void 0,this.details=null,this._objectUrl=null,this.operationQueue=null,this.bufferCodecEventsTotal=0,this.media=null,this.mediaSource=null,this.lastMpegAudioChunk=null,this.blockedAudioAppend=null,this.lastVideoAppendEnd=0,this.appendSource=void 0,this.transferData=void 0,this.overrides=void 0,this.appendErrors={audio:0,video:0,audiovideo:0},this.tracks={},this.sourceBuffers=[[null,null],[null,null]],this._onEndStreaming=e=>{var c;this.hls&&"open"===(null==(c=this.mediaSource)?void 0:c.readyState)&&this.hls.pauseBuffering()},this._onStartStreaming=e=>{this.hls&&this.hls.resumeBuffering()},this._onMediaSourceOpen=e=>{const{media:c,mediaSource:t}=this;e&&this.log("Media source opened"),c&&t&&(t.removeEventListener("sourceopen",this._onMediaSourceOpen),c.removeEventListener("emptied",this._onMediaEmptied),this.updateDuration(),this.hls.trigger(dc.MEDIA_ATTACHED,{media:c,mediaSource:t}),null!==this.mediaSource&&this.checkPendingTracks())},this._onMediaSourceClose=()=>{this.log("Media source closed")},this._onMediaSourceEnded=()=>{this.log("Media source ended")},this._onMediaEmptied=()=>{const{mediaSrc:e,_objectUrl:c}=this;e!==c&&this.error(`Media element src was set while attaching MediaSource (${c} > ${e})`)},this.hls=e,this.fragmentTracker=c,this.appendSource=(t=Pc(e.config.preferManagedMediaSource),"undefined"!=typeof self&&t===self.ManagedMediaSource),this.initTracks(),this.registerListeners()}hasSourceTypes(){return Object.keys(this.tracks).length>0}destroy(){this.unregisterListeners(),this.details=null,this.lastMpegAudioChunk=this.blockedAudioAppend=null,this.transferData=this.overrides=void 0,this.operationQueue&&(this.operationQueue.destroy(),this.operationQueue=null),this.hls=this.fragmentTracker=null,this._onMediaSourceOpen=this._onMediaSourceClose=null,this._onMediaSourceEnded=null,this._onStartStreaming=this._onEndStreaming=null}registerListeners(){const{hls:e}=this;e.on(dc.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(dc.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.on(dc.MANIFEST_PARSED,this.onManifestParsed,this),e.on(dc.BUFFER_RESET,this.onBufferReset,this),e.on(dc.BUFFER_APPENDING,this.onBufferAppending,this),e.on(dc.BUFFER_CODECS,this.onBufferCodecs,this),e.on(dc.BUFFER_EOS,this.onBufferEos,this),e.on(dc.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(dc.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(dc.FRAG_PARSED,this.onFragParsed,this),e.on(dc.FRAG_CHANGED,this.onFragChanged,this),e.on(dc.ERROR,this.onError,this)}unregisterListeners(){const{hls:e}=this;e.off(dc.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(dc.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.off(dc.MANIFEST_PARSED,this.onManifestParsed,this),e.off(dc.BUFFER_RESET,this.onBufferReset,this),e.off(dc.BUFFER_APPENDING,this.onBufferAppending,this),e.off(dc.BUFFER_CODECS,this.onBufferCodecs,this),e.off(dc.BUFFER_EOS,this.onBufferEos,this),e.off(dc.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(dc.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(dc.FRAG_PARSED,this.onFragParsed,this),e.off(dc.FRAG_CHANGED,this.onFragChanged,this),e.off(dc.ERROR,this.onError,this)}transferMedia(){const{media:e,mediaSource:c}=this;if(!e)return null;const t={};if(this.operationQueue){const e=this.isUpdating();e||this.operationQueue.removeBlockers();const c=this.isQueued();(e||c)&&this.warn(`Transfering MediaSource with${c?" operations in queue":""}${e?" updating SourceBuffer(s)":""} ${this.operationQueue}`),this.operationQueue.destroy()}const a=this.transferData;return!this.sourceBufferCount&&a&&a.mediaSource===c?_c(t,a.tracks):this.sourceBuffers.forEach((e=>{const[c]=e;c&&(t[c]=_c({},this.tracks[c]),this.removeBuffer(c)),e[0]=e[1]=null})),{media:e,mediaSource:c,tracks:t}}initTracks(){this.sourceBuffers=[[null,null],[null,null]],this.tracks={},this.resetQueue(),this.resetAppendErrors(),this.lastMpegAudioChunk=this.blockedAudioAppend=null,this.lastVideoAppendEnd=0}onManifestLoading(){this.bufferCodecEventsTotal=0,this.details=null}onManifestParsed(e,c){var t;let a=2;(c.audio&&!c.video||!c.altAudio)&&(a=1),this.bufferCodecEventsTotal=a,this.log(`${a} bufferCodec event(s) expected.`),null!=(t=this.transferData)&&t.mediaSource&&this.sourceBufferCount&&a&&this.bufferCreated()}onMediaAttaching(e,c){const t=this.media=c.media;this.transferData=this.overrides=void 0;const a=Pc(this.appendSource);if(a){const e=!!c.mediaSource;(e||c.overrides)&&(this.transferData=c,this.overrides=c.overrides);const i=this.mediaSource=c.mediaSource||new a;if(this.assignMediaSource(i),e)this._objectUrl=t.src,this.attachTransferred();else{const e=this._objectUrl=self.URL.createObjectURL(i);if(this.appendSource)try{t.removeAttribute("src");const c=self.ManagedMediaSource;t.disableRemotePlayback=t.disableRemotePlayback||c&&i instanceof c,Tf(t),function(e,c){const t=self.document.createElement("source");t.type="video/mp4",t.src=c,e.appendChild(t)}(t,e),t.load()}catch(r){t.src=e}else t.src=e}t.addEventListener("emptied",this._onMediaEmptied)}}assignMediaSource(e){var c,t;this.log(`${(null==(c=this.transferData)?void 0:c.mediaSource)===e?"transferred":"created"} media source: ${null==(t=e.constructor)?void 0:t.name}`),e.addEventListener("sourceopen",this._onMediaSourceOpen),e.addEventListener("sourceended",this._onMediaSourceEnded),e.addEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(e.addEventListener("startstreaming",this._onStartStreaming),e.addEventListener("endstreaming",this._onEndStreaming))}attachTransferred(){const e=this.media,c=this.transferData;if(!c||!e)return;const t=this.tracks,a=c.tracks,r=a?Object.keys(a):null,i=r?r.length:0,n=()=>{Promise.resolve().then((()=>{this.media&&this.mediaSourceOpenOrEnded&&this._onMediaSourceOpen()}))};if(a&&r&&i){if(!this.tracksReady)return this.hls.config.startFragPrefetch=!0,void this.log("attachTransferred: waiting for SourceBuffer track info");if(this.log(`attachTransferred: (bufferCodecEventsTotal ${this.bufferCodecEventsTotal})\nrequired tracks: ${na(t,((e,c)=>"initSegment"===e?void 0:c))};\ntransfer tracks: ${na(a,((e,c)=>"initSegment"===e?void 0:c))}}`),!Cc(a,t)){c.mediaSource=null,c.tracks=void 0;const r=e.currentTime,i=this.details,n=Math.max(r,(null==i?void 0:i.fragments[0].start)||0);return n-r>1?void this.log(`attachTransferred: waiting for playback to reach new tracks start time ${r} -> ${n}`):(this.warn(`attachTransferred: resetting MediaSource for incompatible tracks ("${Object.keys(a)}"->"${Object.keys(t)}") start time: ${n} currentTime: ${r}`),this.onMediaDetaching(dc.MEDIA_DETACHING,{}),this.onMediaAttaching(dc.MEDIA_ATTACHING,c),void(e.currentTime=n))}this.transferData=void 0,r.forEach((e=>{const c=e,t=a[c];if(t){const e=t.buffer;if(e){const a=this.fragmentTracker,r=t.id;if(a.hasFragments(r)||a.hasParts(r)){const t=ir.getBuffered(e);a.detectEvictedFragments(c,t,r,null,!0)}const i=kf(c),n=[c,e];this.sourceBuffers[i]=n,e.updating&&this.operationQueue&&this.operationQueue.prependBlocker(c),this.trackSourceBuffer(c,t)}}})),n(),this.bufferCreated()}else this.log("attachTransferred: MediaSource w/o SourceBuffers"),n()}get mediaSourceOpenOrEnded(){var e;const c=null==(e=this.mediaSource)?void 0:e.readyState;return"open"===c||"ended"===c}onMediaDetaching(e,c){const t=!!c.transferMedia;this.transferData=this.overrides=void 0;const{media:a,mediaSource:r,_objectUrl:i}=this;if(r){if(this.log("media source "+(t?"transferring":"detaching")),t)this.sourceBuffers.forEach((([e])=>{e&&this.removeBuffer(e)})),this.resetQueue();else{if(this.mediaSourceOpenOrEnded){const e="open"===r.readyState;try{const c=r.sourceBuffers;for(let t=c.length;t--;)e&&c[t].abort(),r.removeSourceBuffer(c[t]);e&&r.endOfStream()}catch(nm){this.warn(`onMediaDetaching: ${nm.message} while calling endOfStream`)}}this.sourceBufferCount&&this.onBufferReset()}r.removeEventListener("sourceopen",this._onMediaSourceOpen),r.removeEventListener("sourceended",this._onMediaSourceEnded),r.removeEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(r.removeEventListener("startstreaming",this._onStartStreaming),r.removeEventListener("endstreaming",this._onEndStreaming)),this.mediaSource=null,this._objectUrl=null}a&&(a.removeEventListener("emptied",this._onMediaEmptied),t||(i&&self.URL.revokeObjectURL(i),this.mediaSrc===i?(a.removeAttribute("src"),this.appendSource&&Tf(a),a.load()):this.warn("media|source.src was changed by a third party - skip cleanup")),this.media=null)}onBufferReset(){this.sourceBuffers.forEach((([e])=>{e&&this.resetBuffer(e)})),this.initTracks()}resetBuffer(e){var c;const t=null==(c=this.tracks[e])?void 0:c.buffer;if(this.removeBuffer(e),t)try{var a;null!=(a=this.mediaSource)&&a.sourceBuffers.length&&this.mediaSource.removeSourceBuffer(t)}catch(nm){this.warn(`onBufferReset ${e}`,nm)}delete this.tracks[e]}removeBuffer(e){this.removeBufferListeners(e),this.sourceBuffers[kf(e)]=[null,null];const c=this.tracks[e];c&&(c.buffer=void 0)}resetQueue(){this.operationQueue&&this.operationQueue.destroy(),this.operationQueue=new yf(this.tracks)}onBufferCodecs(e,c){var t;const a=this.tracks,r=Object.keys(c);this.log(`BUFFER_CODECS: "${r}" (current SB count ${this.sourceBufferCount})`);const i="audiovideo"in c&&(a.audio||a.video)||a.audiovideo&&("audio"in c||"video"in c),n=!i&&this.sourceBufferCount&&this.media&&r.some((e=>!a[e]));i||n?this.warn(`Unsupported transition between "${Object.keys(a)}" and "${r}" SourceBuffers`):(r.forEach((e=>{var t,r;const i=c[e],{id:n,codec:f,levelCodec:s,container:o,metadata:l,supplemental:d}=i;let u=a[e];const h=null==(t=this.transferData)||null==(t=t.tracks)?void 0:t[e],b=null!=h&&h.buffer?h:u,p=(null==b?void 0:b.pendingCodec)||(null==b?void 0:b.codec),g=null==b?void 0:b.levelCodec;u||(u=a[e]={buffer:void 0,listeners:[],codec:f,supplemental:d,container:o,levelCodec:s,metadata:l,id:n});const m=Ut(p,g),v=null==m?void 0:m.replace(Ef,"$1");let y=Ut(f,s);const E=null==(r=y)?void 0:r.replace(Ef,"$1");y&&m&&v!==E&&("audio"===e.slice(0,5)&&(y=Nt(y,this.appendSource)),this.log(`switching codec ${p} to ${y}`),y!==(u.pendingCodec||u.codec)&&(u.pendingCodec=y),u.container=o,this.appendChangeType(e,o,y))})),(this.tracksReady||this.sourceBufferCount)&&(c.tracks=this.sourceBufferTracks),this.sourceBufferCount||(this.bufferCodecEventsTotal>1&&!this.tracks.video&&!c.video&&"main"===(null==(t=c.audio)?void 0:t.id)&&(this.log("Main audio-only"),this.bufferCodecEventsTotal=1),this.mediaSourceOpenOrEnded&&this.checkPendingTracks()))}get sourceBufferTracks(){return Object.keys(this.tracks).reduce(((e,c)=>{const t=this.tracks[c];return e[c]={id:t.id,container:t.container,codec:t.codec,levelCodec:t.levelCodec},e}),{})}appendChangeType(e,c,t){const a=`${c};codecs=${t}`,r={label:`change-type=${a}`,execute:()=>{const r=this.tracks[e];if(r){const i=r.buffer;null!=i&&i.changeType&&(this.log(`changing ${e} sourceBuffer type to ${a}`),i.changeType(a),r.codec=t,r.container=c)}this.shiftAndExecuteNext(e)},onStart:()=>{},onComplete:()=>{},onError:c=>{this.warn(`Failed to change ${e} SourceBuffer type`,c)}};this.append(r,e,this.isPending(this.tracks[e]))}blockAudio(e){var c;const t=e.start,a=t+.05*e.duration;if(!0===(null==(c=this.fragmentTracker.getAppendedFrag(t,gc))?void 0:c.gap))return;const r={label:"block-audio",execute:()=>{var e;const c=this.tracks.video;(this.lastVideoAppendEnd>a||null!=c&&c.buffer&&ir.isBuffered(c.buffer,a)||!0===(null==(e=this.fragmentTracker.getAppendedFrag(a,gc))?void 0:e.gap))&&(this.blockedAudioAppend=null,this.shiftAndExecuteNext("audio"))},onStart:()=>{},onComplete:()=>{},onError:e=>{this.warn("Error executing block-audio operation",e)}};this.blockedAudioAppend={op:r,frag:e},this.append(r,"audio",!0)}unblockAudio(){const{blockedAudioAppend:e,operationQueue:c}=this;e&&c&&(this.blockedAudioAppend=null,c.unblockAudio(e.op))}onBufferAppending(e,c){const{tracks:t}=this,{data:a,type:r,parent:i,frag:n,part:f,chunkMeta:s,offset:o}=c,l=s.buffering[r],{sn:d,cc:u}=n,h=self.performance.now();l.start=h;const b=n.stats.buffering,p=f?f.stats.buffering:null;0===b.start&&(b.start=h),p&&0===p.start&&(p.start=h);const g=t.audio;let m=!1;"audio"===r&&"audio/mpeg"===(null==g?void 0:g.container)&&(m=!this.lastMpegAudioChunk||1===s.id||this.lastMpegAudioChunk.sn!==s.sn,this.lastMpegAudioChunk=s);const v=t.video,y=null==v?void 0:v.buffer;if(y&&"initSegment"!==d){const e=f||n,c=this.blockedAudioAppend;if("audio"!==r||"main"===i||this.blockedAudioAppend||v.ending||v.ended){if("video"===r){const t=e.end;if(c){const e=c.frag.start;(t>e||t<this.lastVideoAppendEnd||ir.isBuffered(y,e))&&this.unblockAudio()}this.lastVideoAppendEnd=t}}else{const c=e.start+.05*e.duration,t=y.buffered,a=this.currentOp("video");t.length||a?!a&&!ir.isBuffered(y,c)&&this.lastVideoAppendEnd<c&&this.blockAudio(e):this.blockAudio(e)}}const E=(f||n).start,S={label:`append-${r}`,execute:()=>{var e;l.executeStart=self.performance.now();const c=null==(e=this.tracks[r])?void 0:e.buffer;c&&(m?this.updateTimestampOffset(c,E,.1,r,d,u):void 0!==o&&nc(o)&&this.updateTimestampOffset(c,o,1e-6,r,d,u)),this.appendExecutor(a,r)},onStart:()=>{},onComplete:()=>{const e=self.performance.now();l.executeEnd=l.end=e,0===b.first&&(b.first=e),p&&0===p.first&&(p.first=e);const c={};this.sourceBuffers.forEach((([e,t])=>{e&&(c[e]=ir.getBuffered(t))})),this.appendErrors[r]=0,"audio"===r||"video"===r?this.appendErrors.audiovideo=0:(this.appendErrors.audio=0,this.appendErrors.video=0),this.hls.trigger(dc.BUFFER_APPENDED,{type:r,frag:n,part:f,chunkMeta:s,parent:n.type,timeRanges:c})},onError:e=>{var c;const t={type:oc.MEDIA_ERROR,parent:n.type,details:lc.BUFFER_APPEND_ERROR,sourceBufferName:r,frag:n,part:f,chunkMeta:s,error:e,err:e,fatal:!1},a=null==(c=this.media)?void 0:c.error;if(e.code===DOMException.QUOTA_EXCEEDED_ERR||"QuotaExceededError"==e.name||"quota"in e)t.details=lc.BUFFER_FULL_ERROR;else if(e.code===DOMException.INVALID_STATE_ERR&&this.mediaSourceOpenOrEnded&&!a)t.errorAction=Fa(!0);else if(e.name===Sf&&0===this.sourceBufferCount)t.errorAction=Fa(!0);else{const e=++this.appendErrors[r];this.warn(`Failed ${e}/${this.hls.config.appendErrorMaxRetry} times to append segment in "${r}" sourceBuffer (${a||"no media error"})`),(e>=this.hls.config.appendErrorMaxRetry||a)&&(t.fatal=!0)}this.hls.trigger(dc.ERROR,t)}};this.log(`queuing "${r}" append sn: ${d}${f?" p: "+f.index:""} of ${n.type===gc?"level":"track"} ${n.level} cc: ${u}`),this.append(S,r,this.isPending(this.tracks[r]))}getFlushOp(e,c,t){return this.log(`queuing "${e}" remove ${c}-${t}`),{label:"remove",execute:()=>{this.removeExecutor(e,c,t)},onStart:()=>{},onComplete:()=>{this.hls.trigger(dc.BUFFER_FLUSHED,{type:e})},onError:a=>{this.warn(`Failed to remove ${c}-${t} from "${e}" SourceBuffer`,a)}}}onBufferFlushing(e,c){const{type:t,startOffset:a,endOffset:r}=c;t?this.append(this.getFlushOp(t,a,r),t):this.sourceBuffers.forEach((([e])=>{e&&this.append(this.getFlushOp(e,a,r),e)}))}onFragParsed(e,c){const{frag:t,part:a}=c,r=[],i=a?a.elementaryStreams:t.elementaryStreams;i[zc]?r.push("audiovideo"):(i[Yc]&&r.push("audio"),i[Wc]&&r.push("video"));0===r.length&&this.warn(`Fragments must have at least one ElementaryStreamType set. type: ${t.type} level: ${t.level} sn: ${t.sn}`),this.blockBuffers((()=>{const e=self.performance.now();t.stats.buffering.end=e,a&&(a.stats.buffering.end=e);const c=a?a.stats:t.stats;this.hls.trigger(dc.FRAG_BUFFERED,{frag:t,part:a,stats:c,id:t.type})}),r).catch((e=>{this.warn(`Fragment buffered callback ${e}`),this.stepOperationQueue(this.sourceBufferTypes)}))}onFragChanged(e,c){this.trimBuffers()}get bufferedToEnd(){return this.sourceBufferCount>0&&!this.sourceBuffers.some((([e])=>{if(e){const c=this.tracks[e];if(c)return!c.ended||c.ending}return!1}))}onBufferEos(e,c){var t;this.sourceBuffers.forEach((([e])=>{if(e){const t=this.tracks[e];c.type&&c.type!==e||(t.ending=!0,t.ended||(t.ended=!0,this.log(`${e} buffer reached EOS`)))}}));const a=!1!==(null==(t=this.overrides)?void 0:t.endOfStream);this.sourceBufferCount>0&&!this.sourceBuffers.some((([e])=>{var c;return e&&!(null!=(c=this.tracks[e])&&c.ended)}))?a?(this.log("Queueing EOS"),this.blockUntilOpen((()=>{this.tracksEnded();const{mediaSource:e}=this;e&&"open"===e.readyState?(this.log("Calling mediaSource.endOfStream()"),e.endOfStream(),this.hls.trigger(dc.BUFFERED_TO_END,void 0)):e&&this.log(`Could not call mediaSource.endOfStream(). mediaSource.readyState: ${e.readyState}`)}))):(this.tracksEnded(),this.hls.trigger(dc.BUFFERED_TO_END,void 0)):"video"===c.type&&this.unblockAudio()}tracksEnded(){this.sourceBuffers.forEach((([e])=>{if(null!==e){const c=this.tracks[e];c&&(c.ending=!1)}}))}onLevelUpdated(e,{details:c}){c.fragments.length&&(this.details=c,this.updateDuration())}updateDuration(){this.blockUntilOpen((()=>{const e=this.getDurationAndRange();e&&this.updateMediaSource(e)}))}onError(e,c){if(c.details===lc.BUFFER_APPEND_ERROR&&c.frag){var t;const e=null==(t=c.errorAction)?void 0:t.nextAutoLevel;nc(e)&&e!==c.frag.level&&this.resetAppendErrors()}}resetAppendErrors(){this.appendErrors={audio:0,video:0,audiovideo:0}}trimBuffers(){const{hls:e,details:c,media:t}=this;if(!t||null===c)return;if(!this.sourceBufferCount)return;const a=e.config,r=t.currentTime,i=c.levelTargetDuration,n=c.live&&null!==a.liveBackBufferLength?a.liveBackBufferLength:a.backBufferLength;if(nc(n)&&n>=0){const e=Math.max(n,i),c=Math.floor(r/i)*i-e;this.flushBackBuffer(r,i,c)}const f=a.frontBufferFlushThreshold;if(nc(f)&&f>0){const e=Math.max(a.maxBufferLength,f),c=Math.max(e,i),t=Math.floor(r/i)*i+c;this.flushFrontBuffer(r,i,t)}}flushBackBuffer(e,c,t){this.sourceBuffers.forEach((([e,c])=>{if(c){const r=ir.getBuffered(c);if(r.length>0&&t>r.start(0)){var a;this.hls.trigger(dc.BACK_BUFFER_REACHED,{bufferEnd:t});const c=this.tracks[e];if(null!=(a=this.details)&&a.live)this.hls.trigger(dc.LIVE_BACK_BUFFER_REACHED,{bufferEnd:t});else if(null!=c&&c.ended)return void this.log(`Cannot flush ${e} back buffer while SourceBuffer is in ended state`);this.hls.trigger(dc.BUFFER_FLUSHING,{startOffset:0,endOffset:t,type:e})}}}))}flushFrontBuffer(e,c,t){this.sourceBuffers.forEach((([c,a])=>{if(a){const r=ir.getBuffered(a),i=r.length;if(i<2)return;const n=r.start(i-1),f=r.end(i-1);if(t>n||e>=n&&e<=f)return;this.hls.trigger(dc.BUFFER_FLUSHING,{startOffset:n,endOffset:1/0,type:c})}}))}getDurationAndRange(){var e;const{details:c,mediaSource:t}=this;if(!c||!this.media||"open"!==(null==t?void 0:t.readyState))return null;const a=c.edge;if(c.live&&this.hls.config.liveDurationInfinity){if(c.fragments.length&&t.setLiveSeekableRange){const e=Math.max(0,c.fragmentStart);return{duration:1/0,start:e,end:Math.max(e,a)}}return{duration:1/0}}const r=null==(e=this.overrides)?void 0:e.duration;if(r)return nc(r)?{duration:r}:null;const i=this.media.duration;return a>(nc(t.duration)?t.duration:0)&&a>i||!nc(i)?{duration:a}:null}updateMediaSource({duration:e,start:c,end:t}){const a=this.mediaSource;this.media&&a&&"open"===a.readyState&&(a.duration!==e&&(nc(e)&&this.log(`Updating MediaSource duration to ${e.toFixed(3)}`),a.duration=e),void 0!==c&&void 0!==t&&(this.log(`MediaSource duration is set to ${a.duration}. Setting seekable range to ${c}-${t}.`),a.setLiveSeekableRange(c,t)))}get tracksReady(){const e=this.pendingTrackCount;return e>0&&(e>=this.bufferCodecEventsTotal||this.isPending(this.tracks.audiovideo))}checkPendingTracks(){const{bufferCodecEventsTotal:e,pendingTrackCount:c,tracks:t}=this;if(this.log(`checkPendingTracks (pending: ${c} codec events expected: ${e}) ${na(t)}`),this.tracksReady){var a;const e=null==(a=this.transferData)?void 0:a.tracks;e&&Object.keys(e).length?this.attachTransferred():this.createSourceBuffers()}}bufferCreated(){if(this.sourceBufferCount){const e={};this.sourceBuffers.forEach((([c,t])=>{if(c){const a=this.tracks[c];e[c]={buffer:t,container:a.container,codec:a.codec,supplemental:a.supplemental,levelCodec:a.levelCodec,id:a.id,metadata:a.metadata}}})),this.hls.trigger(dc.BUFFER_CREATED,{tracks:e}),this.log(`SourceBuffers created. Running queue: ${this.operationQueue}`),this.sourceBuffers.forEach((([e])=>{this.executeNext(e)}))}else{const e=new Error("could not create source buffer for media codec(s)");this.hls.trigger(dc.ERROR,{type:oc.MEDIA_ERROR,details:lc.BUFFER_INCOMPATIBLE_CODECS_ERROR,fatal:!0,error:e,reason:e.message})}}createSourceBuffers(){const{tracks:e,sourceBuffers:c,mediaSource:t}=this;if(!t)throw new Error("createSourceBuffers called when mediaSource was null");for(const i in e){const n=i,f=e[n];if(this.isPending(f)){const e=this.getTrackCodec(f,n),i=`${f.container};codecs=${e}`;f.codec=e,this.log(`creating sourceBuffer(${i})${this.currentOp(n)?" Queued":""} ${na(f)}`);try{const e=t.addSourceBuffer(i),a=kf(n),r=[n,e];c[a]=r,f.buffer=e}catch(r){var a;return this.error(`error while trying to add sourceBuffer: ${r.message}`),this.shiftAndExecuteNext(n),null==(a=this.operationQueue)||a.removeBlockers(),delete this.tracks[n],void this.hls.trigger(dc.ERROR,{type:oc.MEDIA_ERROR,details:lc.BUFFER_ADD_CODEC_ERROR,fatal:!1,error:r,sourceBufferName:n,mimeType:i,parent:f.id})}this.trackSourceBuffer(n,f)}}this.bufferCreated()}getTrackCodec(e,c){const t=e.supplemental;let a=e.codec;t&&("video"===c||"audiovideo"===c)&&Dt(t,"video")&&(a=function(e,c){const t=[];if(e){const c=e.split(",");for(let e=0;e<c.length;e++)Rt(c[e],"video")||t.push(c[e])}return c&&t.push(c),t.join(",")}(a,t));const r=Ut(a,e.levelCodec);return r?"audio"===c.slice(0,5)?Nt(r,this.appendSource):r:""}trackSourceBuffer(e,c){const t=c.buffer;if(!t)return;const a=this.getTrackCodec(c,e);this.tracks[e]={buffer:t,codec:a,container:c.container,levelCodec:c.levelCodec,supplemental:c.supplemental,metadata:c.metadata,id:c.id,listeners:[]},this.removeBufferListeners(e),this.addBufferListener(e,"updatestart",this.onSBUpdateStart),this.addBufferListener(e,"updateend",this.onSBUpdateEnd),this.addBufferListener(e,"error",this.onSBUpdateError),this.appendSource&&this.addBufferListener(e,"bufferedchange",((e,c)=>{const t=c.removedRanges;null!=t&&t.length&&this.hls.trigger(dc.BUFFER_FLUSHED,{type:e})}))}get mediaSrc(){var e,c;const t=(null==(e=this.media)||null==(c=e.querySelector)?void 0:c.call(e,"source"))||this.media;return null==t?void 0:t.src}onSBUpdateStart(e){const c=this.currentOp(e);c&&c.onStart()}onSBUpdateEnd(e){var c;if("closed"===(null==(c=this.mediaSource)?void 0:c.readyState))return void this.resetBuffer(e);const t=this.currentOp(e);t&&(t.onComplete(),this.shiftAndExecuteNext(e))}onSBUpdateError(e,c){var t;const a=new Error(`${e} SourceBuffer error. MediaSource readyState: ${null==(t=this.mediaSource)?void 0:t.readyState}`);this.error(`${a}`,c),this.hls.trigger(dc.ERROR,{type:oc.MEDIA_ERROR,details:lc.BUFFER_APPENDING_ERROR,sourceBufferName:e,error:a,fatal:!1});const r=this.currentOp(e);r&&r.onError(a)}updateTimestampOffset(e,c,t,a,r,i){const n=c-e.timestampOffset;Math.abs(n)>=t&&(this.log(`Updating ${a} SourceBuffer timestampOffset to ${c} (sn: ${r} cc: ${i})`),e.timestampOffset=c)}removeExecutor(e,c,t){const{media:a,mediaSource:r}=this,i=this.tracks[e],n=null==i?void 0:i.buffer;if(!a||!r||!n)return this.warn(`Attempting to remove from the ${e} SourceBuffer, but it does not exist`),void this.shiftAndExecuteNext(e);const f=nc(a.duration)?a.duration:1/0,s=nc(r.duration)?r.duration:1/0,o=Math.max(0,c),l=Math.min(t,f,s);l>o&&(!i.ending||i.ended)?(i.ended=!1,this.log(`Removing [${o},${l}] from the ${e} SourceBuffer`),n.remove(o,l)):this.shiftAndExecuteNext(e)}appendExecutor(e,c){const t=this.tracks[c],a=null==t?void 0:t.buffer;if(!a)throw new _f(`Attempting to append to the ${c} SourceBuffer, but it does not exist`);t.ending=!1,t.ended=!1,a.appendBuffer(e)}blockUntilOpen(e){if(this.isUpdating()||this.isQueued())this.blockBuffers(e).catch((e=>{this.warn(`SourceBuffer blocked callback ${e}`),this.stepOperationQueue(this.sourceBufferTypes)}));else try{e()}catch(c){this.warn(`Callback run without blocking ${this.operationQueue} ${c}`)}}isUpdating(){return this.sourceBuffers.some((([e,c])=>e&&c.updating))}isQueued(){return this.sourceBuffers.some((([e])=>e&&!!this.currentOp(e)))}isPending(e){return!!e&&!e.buffer}blockBuffers(e,c=this.sourceBufferTypes){if(!c.length)return this.log("Blocking operation requested, but no SourceBuffers exist"),Promise.resolve().then(e);const{operationQueue:t}=this,a=c.map((e=>this.appendBlocker(e)));return c.length>1&&!!this.blockedAudioAppend&&this.unblockAudio(),Promise.all(a).then((c=>{t===this.operationQueue&&(e(),this.stepOperationQueue(this.sourceBufferTypes))}))}stepOperationQueue(e){e.forEach((e=>{var c;const t=null==(c=this.tracks[e])?void 0:c.buffer;t&&!t.updating&&this.shiftAndExecuteNext(e)}))}append(e,c,t){this.operationQueue&&this.operationQueue.append(e,c,t)}appendBlocker(e){if(this.operationQueue)return this.operationQueue.appendBlocker(e)}currentOp(e){return this.operationQueue?this.operationQueue.current(e):null}executeNext(e){e&&this.operationQueue&&this.operationQueue.executeNext(e)}shiftAndExecuteNext(e){this.operationQueue&&this.operationQueue.shiftAndExecuteNext(e)}get pendingTrackCount(){return Object.keys(this.tracks).reduce(((e,c)=>e+(this.isPending(this.tracks[c])?1:0)),0)}get sourceBufferCount(){return this.sourceBuffers.reduce(((e,[c])=>e+(c?1:0)),0)}get sourceBufferTypes(){return this.sourceBuffers.map((([e])=>e)).filter((e=>!!e))}addBufferListener(e,c,t){const a=this.tracks[e];if(!a)return;const r=a.buffer;if(!r)return;const i=t.bind(this,e);a.listeners.push({event:c,listener:i}),r.addEventListener(c,i)}removeBufferListeners(e){const c=this.tracks[e];if(!c)return;const t=c.buffer;t&&(c.listeners.forEach((e=>{t.removeEventListener(e.event,e.listener)})),c.listeners.length=0)}},capLevelController:Af,errorController:class extends Ac{constructor(e){super("error-controller",e.logger),this.hls=void 0,this.playlistError=0,this.hls=e,this.registerListeners()}registerListeners(){const e=this.hls;e.on(dc.ERROR,this.onError,this),e.on(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.on(dc.LEVEL_UPDATED,this.onLevelUpdated,this)}unregisterListeners(){const e=this.hls;e&&(e.off(dc.ERROR,this.onError,this),e.off(dc.ERROR,this.onErrorOut,this),e.off(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.off(dc.LEVEL_UPDATED,this.onLevelUpdated,this))}destroy(){this.unregisterListeners(),this.hls=null}startLoad(e){}stopLoad(){this.playlistError=0}getVariantLevelIndex(e){return(null==e?void 0:e.type)===gc?e.level:this.getVariantIndex()}getVariantIndex(){var e;const c=this.hls,t=c.currentLevel;return null!=(e=c.loadLevelObj)&&e.details||-1===t?c.loadLevel:t}variantHasKey(e,c){if(e){var t;if(null!=(t=e.details)&&t.hasKey(c))return!0;const a=e.audioGroups;if(a){return this.hls.allAudioTracks.filter((e=>a.indexOf(e.groupId)>=0)).some((e=>{var t;return null==(t=e.details)?void 0:t.hasKey(c)}))}}return!1}onManifestLoading(){this.playlistError=0}onLevelUpdated(){this.playlistError=0}onError(e,c){var t;if(c.fatal)return;const a=this.hls,r=c.context;switch(c.details){case lc.FRAG_LOAD_ERROR:case lc.FRAG_LOAD_TIMEOUT:case lc.KEY_LOAD_ERROR:case lc.KEY_LOAD_TIMEOUT:return void(c.errorAction=this.getFragRetryOrSwitchAction(c));case lc.FRAG_PARSING_ERROR:if(null!=(t=c.frag)&&t.gap)return void(c.errorAction=Fa());case lc.FRAG_GAP:case lc.FRAG_DECRYPT_ERROR:return c.errorAction=this.getFragRetryOrSwitchAction(c),void(c.errorAction.action=Ra);case lc.LEVEL_EMPTY_ERROR:case lc.LEVEL_PARSING_ERROR:{var i;const e=c.parent===gc?c.level:a.loadLevel;c.details===lc.LEVEL_EMPTY_ERROR&&null!=(i=c.context)&&null!=(i=i.levelDetails)&&i.live?c.errorAction=this.getPlaylistRetryOrSwitchAction(c,e):(c.levelRetry=!1,c.errorAction=this.getLevelSwitchAction(c,e))}return;case lc.LEVEL_LOAD_ERROR:case lc.LEVEL_LOAD_TIMEOUT:return void("number"==typeof(null==r?void 0:r.level)&&(c.errorAction=this.getPlaylistRetryOrSwitchAction(c,r.level)));case lc.AUDIO_TRACK_LOAD_ERROR:case lc.AUDIO_TRACK_LOAD_TIMEOUT:case lc.SUBTITLE_LOAD_ERROR:case lc.SUBTITLE_TRACK_LOAD_TIMEOUT:if(r){const e=a.loadLevelObj;if(e&&(r.type===bc&&e.hasAudioGroup(r.groupId)||r.type===pc&&e.hasSubtitleGroup(r.groupId)))return c.errorAction=this.getPlaylistRetryOrSwitchAction(c,a.loadLevel),c.errorAction.action=Ra,void(c.errorAction.flags=Ca)}return;case lc.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:return void(c.errorAction={action:Ra,flags:Oa});case lc.KEY_SYSTEM_SESSION_UPDATE_FAILED:case lc.KEY_SYSTEM_STATUS_INTERNAL_ERROR:case lc.KEY_SYSTEM_NO_SESSION:return void(c.errorAction={action:Ra,flags:Ma});case lc.BUFFER_ADD_CODEC_ERROR:case lc.REMUX_ALLOC_ERROR:case lc.BUFFER_APPEND_ERROR:var n;if(!c.errorAction)c.errorAction=this.getLevelSwitchAction(c,null!=(n=c.level)?n:a.loadLevel);return;case lc.INTERNAL_EXCEPTION:case lc.BUFFER_APPENDING_ERROR:case lc.BUFFER_FULL_ERROR:case lc.LEVEL_SWITCH_ERROR:case lc.BUFFER_STALLED_ERROR:case lc.BUFFER_SEEK_OVER_HOLE:case lc.BUFFER_NUDGE_ON_STALL:return void(c.errorAction=Fa())}c.type===oc.KEY_SYSTEM_ERROR&&(c.levelRetry=!1,c.errorAction=Fa())}getPlaylistRetryOrSwitchAction(e,c){const t=Ta(this.hls.config.playlistLoadPolicy,e),a=this.playlistError++;if(La(t,a,Ea(e),e.response))return{action:xa,flags:Pa,retryConfig:t,retryCount:a};const r=this.getLevelSwitchAction(e,c);return t&&(r.retryConfig=t,r.retryCount=a),r}getFragRetryOrSwitchAction(e){const c=this.hls,t=this.getVariantLevelIndex(e.frag),a=c.levels[t],{fragLoadPolicy:r,keyLoadPolicy:i}=c.config,n=Ta(Sa(e)?i:r,e),f=c.levels.reduce(((e,c)=>e+c.fragmentError),0);if(a&&(e.details!==lc.FRAG_GAP&&a.fragmentError++,!_a(e))){if(La(n,f,Ea(e),e.response))return{action:xa,flags:Pa,retryConfig:n,retryCount:f}}const s=this.getLevelSwitchAction(e,t);return n&&(s.retryConfig=n,s.retryCount=f),s}getLevelSwitchAction(e,c){const t=this.hls;null==c&&(c=t.loadLevel);const a=this.hls.levels[c];if(a){var r,i;const c=e.details;a.loadError++,c===lc.BUFFER_APPEND_ERROR&&a.fragmentError++;let s=-1;const{levels:o,loadLevel:l,minAutoLevel:d,maxAutoLevel:u}=t;t.autoLevelEnabled||t.config.preserveManualLevelOnError||(t.loadLevel=-1);const h=null==(r=e.frag)?void 0:r.type,b=(h===mc&&c===lc.FRAG_PARSING_ERROR||"audio"===e.sourceBufferName&&(c===lc.BUFFER_ADD_CODEC_ERROR||c===lc.BUFFER_APPEND_ERROR))&&o.some((({audioCodec:e})=>a.audioCodec!==e)),p="video"===e.sourceBufferName&&(c===lc.BUFFER_ADD_CODEC_ERROR||c===lc.BUFFER_APPEND_ERROR)&&o.some((({codecSet:e,audioCodec:c})=>a.codecSet!==e&&a.audioCodec===c)),{type:g,groupId:m}=null!=(i=e.context)?i:{};for(let t=o.length;t--;){const r=(t+l)%o.length;if(r!==l&&r>=d&&r<=u&&0===o[r].loadError){var n,f;const t=o[r];if(c===lc.FRAG_GAP&&h===gc&&e.frag){const c=o[r].details;if(c){const t=ga(e.frag,c.fragments,e.frag.start);if(null!=t&&t.gap)continue}}else{if(g===bc&&t.hasAudioGroup(m)||g===pc&&t.hasSubtitleGroup(m))continue;if(h===mc&&null!=(n=a.audioGroups)&&n.some((e=>t.hasAudioGroup(e)))||h===vc&&null!=(f=a.subtitleGroups)&&f.some((e=>t.hasSubtitleGroup(e)))||b&&a.audioCodec===t.audioCodec||p&&a.codecSet===t.codecSet||!b&&a.codecSet!==t.codecSet)continue}s=r;break}}if(s>-1&&t.loadLevel!==s)return e.levelRetry=!0,this.playlistError=0,{action:Ra,flags:Pa,nextAutoLevel:s}}return{action:Ra,flags:Ca}}onErrorOut(e,c){var t;switch(null==(t=c.errorAction)?void 0:t.action){case wa:break;case Ra:this.sendAlternateToPenaltyBox(c),c.errorAction.resolved||c.details===lc.FRAG_GAP?/MediaSource readyState: ended/.test(c.error.message)&&(this.warn(`MediaSource ended after "${c.sourceBufferName}" sourceBuffer append error. Attempting to recover from media error.`),this.hls.recoverMediaError()):c.fatal=!0}c.fatal&&this.hls.stopLoad()}sendAlternateToPenaltyBox(e){const c=this.hls,t=e.errorAction;if(!t)return;const{flags:a}=t,r=t.nextAutoLevel;switch(a){case Pa:this.switchLevel(e,r);break;case Oa:{const a=this.getVariantLevelIndex(e.frag),r=c.levels[a],i=null==r?void 0:r.attrs["HDCP-LEVEL"];if(t.hdcpLevel=i,"NONE"===i)this.warn("HDCP policy resticted output with HDCP-LEVEL=NONE");else if(i){c.maxHdcpLevel=Xt[Xt.indexOf(i)-1],t.resolved=!0,this.warn(`Restricting playback to HDCP-LEVEL of "${c.maxHdcpLevel}" or lower`);break}}case Ma:{const c=e.decryptdata;if(c){const a=this.hls.levels,r=a.length;for(let t=r;t--;){var i,n;if(this.variantHasKey(a[t],c))this.log(`Banned key found in level ${t} (${a[t].bitrate}bps) or audio group "${null==(i=a[t].audioGroups)?void 0:i.join(",")}" (${null==(n=e.frag)?void 0:n.type} fragment) ${Mc(c.keyId||[])}`),a[t].fragmentError++,a[t].loadError++,this.log(`Removing level ${t} with key error (${e.error})`),this.hls.removeLevel(t)}const f=e.frag;if(this.hls.levels.length<r)t.resolved=!0;else if(f&&f.type!==gc){const e=f.decryptdata;e&&!c.matches(e)&&(t.resolved=!0)}}break}}t.resolved||this.switchLevel(e,r)}switchLevel(e,c){if(void 0!==c&&e.errorAction&&(this.warn(`switching to level ${c} after ${e.details}`),this.hls.nextAutoLevel=c,e.errorAction.resolved=!0,this.hls.nextLoadLevel=this.hls.nextAutoLevel,e.details===lc.BUFFER_ADD_CODEC_ERROR&&e.mimeType&&"audiovideo"!==e.sourceBufferName)){const c=Gt(e.mimeType),t=this.hls.levels;for(let a=t.length;a--;)t[a][`${e.sourceBufferName}Codec`]===c&&(this.log(`Removing level ${a} for ${e.details} ("${c}" not supported)`),this.hls.removeLevel(a))}}},fpsController:class{constructor(e){this.hls=void 0,this.isVideoPlaybackQualityAvailable=!1,this.timer=void 0,this.media=null,this.lastTime=void 0,this.lastDroppedFrames=0,this.lastDecodedFrames=0,this.streamController=void 0,this.hls=e,this.registerListeners()}setStreamController(e){this.streamController=e}registerListeners(){this.hls.on(dc.MEDIA_ATTACHING,this.onMediaAttaching,this),this.hls.on(dc.MEDIA_DETACHING,this.onMediaDetaching,this)}unregisterListeners(){this.hls.off(dc.MEDIA_ATTACHING,this.onMediaAttaching,this),this.hls.off(dc.MEDIA_DETACHING,this.onMediaDetaching,this)}destroy(){this.timer&&clearInterval(this.timer),this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null}onMediaAttaching(e,c){const t=this.hls.config;if(t.capLevelOnFPSDrop){const e=c.media instanceof self.HTMLVideoElement?c.media:null;this.media=e,e&&"function"==typeof e.getVideoPlaybackQuality&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),t.fpsDroppedMonitoringPeriod)}}onMediaDetaching(){this.media=null}checkFPS(e,c,t){const a=performance.now();if(c){if(this.lastTime){const e=a-this.lastTime,r=t-this.lastDroppedFrames,i=c-this.lastDecodedFrames,n=1e3*r/e,f=this.hls;if(f.trigger(dc.FPS_DROP,{currentDropped:r,currentDecoded:i,totalDroppedFrames:t}),n>0&&r>f.config.fpsDroppedMonitoringThreshold*i){let e=f.currentLevel;f.logger.warn("drop FPS ratio greater than max allowed value for currentLevel: "+e),e>0&&(-1===f.autoLevelCapping||f.autoLevelCapping>=e)&&(e-=1,f.trigger(dc.FPS_DROP_LEVEL_CAPPING,{level:e,droppedLevel:f.currentLevel}),f.autoLevelCapping=e,this.streamController.nextLevelSwitch())}}this.lastTime=a,this.lastDroppedFrames=t,this.lastDecodedFrames=c}}checkFPSInterval(){const e=this.media;if(e)if(this.isVideoPlaybackQualityAvailable){const c=e.getVideoPlaybackQuality();this.checkFPS(e,c.totalVideoFrames,c.droppedVideoFrames)}else this.checkFPS(e,e.webkitDecodedFrameCount,e.webkitDroppedFrameCount)}},stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:5e5,abrEwmaDefaultEstimateMax:5e6,abrBandWidthFactor:.95,abrBandWidthUpFactor:.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0,emeEnabled:!1,widevineLicenseUrl:void 0,drmSystems:{},drmSystemOptions:{},requestMediaKeySystemAccessFunc:Or,requireKeySystemAccessOnStart:!1,testBandwidth:!0,progressive:!1,lowLatencyMode:!0,cmcd:void 0,enableDateRangeMetadataCues:!0,enableEmsgMetadataCues:!0,enableEmsgKLVMetadata:!1,enableID3MetadataCues:!0,enableInterstitialPlayback:!0,interstitialAppendInPlace:!0,interstitialLiveLookAhead:10,useMediaCapabilities:!0,preserveManualLevelOnError:!1,certLoadPolicy:{default:{maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:null,errorRetry:null}},keyLoadPolicy:{default:{maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"},errorRetry:{maxNumRetry:8,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"}}},manifestLoadPolicy:{default:{maxTimeToFirstByteMs:1/0,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},playlistLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:2,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},fragLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:12e4,timeoutRetry:{maxNumRetry:4,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:6,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},steeringManifestLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},interstitialAssetListLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:3e4,timeoutRetry:{maxNumRetry:0,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:0,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1e3,manifestLoadingMaxRetryTimeout:64e3,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1e3,levelLoadingMaxRetryTimeout:64e3,fragLoadingTimeOut:2e4,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1e3,fragLoadingMaxRetryTimeout:64e3},{cueHandler:Uo,enableWebVTT:!0,enableIMSC1:!0,enableCEA708Captions:!0,captionsTextTrack1Label:"English",captionsTextTrack1LanguageCode:"en",captionsTextTrack2Label:"Spanish",captionsTextTrack2LanguageCode:"es",captionsTextTrack3Label:"Unknown CC",captionsTextTrack3LanguageCode:"",captionsTextTrack4Label:"Unknown CC",captionsTextTrack4LanguageCode:"",renderTextTracksNatively:!0}),{},{subtitleStreamController:class extends Fi{constructor(e,c,t){super(e,c,t,"subtitle-stream-controller",vc),this.currentTrackId=-1,this.tracksBuffered=[],this.mainDetails=null,this.registerListeners()}onHandlerDestroying(){this.unregisterListeners(),super.onHandlerDestroying(),this.mainDetails=null}registerListeners(){super.registerListeners();const{hls:e}=this;e.on(dc.LEVEL_LOADED,this.onLevelLoaded,this),e.on(dc.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(dc.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.on(dc.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(dc.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.on(dc.BUFFER_FLUSHING,this.onBufferFlushing,this)}unregisterListeners(){super.unregisterListeners();const{hls:e}=this;e.off(dc.LEVEL_LOADED,this.onLevelLoaded,this),e.off(dc.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(dc.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.off(dc.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(dc.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.off(dc.BUFFER_FLUSHING,this.onBufferFlushing,this)}startLoad(e,c){this.stopLoad(),this.state=Ai,this.setInterval(500),this.nextLoadPosition=this.lastCurrentTime=e+this.timelineOffset,this.startPosition=c?-1:e,this.tick()}onManifestLoading(){super.onManifestLoading(),this.mainDetails=null}onMediaDetaching(e,c){this.tracksBuffered=[],super.onMediaDetaching(e,c)}onLevelLoaded(e,c){this.mainDetails=c.details}onSubtitleFragProcessed(e,c){const{frag:t,success:a}=c;if(this.fragContextChanged(t)||(Qc(t)&&(this.fragPrevious=t),this.state=Ai),!a)return;const r=this.tracksBuffered[this.currentTrackId];if(!r)return;let i;const n=t.start;for(let s=0;s<r.length;s++)if(n>=r[s].start&&n<=r[s].end){i=r[s];break}const f=t.start+t.duration;i?i.end=f:(i={start:n,end:f},r.push(i)),this.fragmentTracker.fragBuffered(t),this.fragBufferedComplete(t,null),this.media&&this.tick()}onBufferFlushing(e,c){const{startOffset:t,endOffset:a}=c;if(0===t&&a!==Number.POSITIVE_INFINITY){const e=a-1;if(e<=0)return;c.endOffsetSubtitles=Math.max(0,e),this.tracksBuffered.forEach((c=>{for(let t=0;t<c.length;)if(c[t].end<=e)c.shift();else{if(!(c[t].start<e))break;c[t].start=e,t++}})),this.fragmentTracker.removeFragmentsInRange(t,e,vc)}}onError(e,c){const t=c.frag;(null==t?void 0:t.type)===vc&&(c.details===lc.FRAG_GAP&&this.fragmentTracker.fragBuffered(t,!0),this.fragCurrent&&this.fragCurrent.abortRequests(),this.state!==ki&&(this.state=Ai))}onSubtitleTracksUpdated(e,{subtitleTracks:c}){this.levels&&mf(this.levels,c)?this.levels=c.map((e=>new aa(e))):(this.tracksBuffered=[],this.levels=c.map((e=>{const c=new aa(e);return this.tracksBuffered[c.id]=[],c})),this.fragmentTracker.removeFragmentsInRange(0,Number.POSITIVE_INFINITY,vc),this.fragPrevious=null,this.mediaBuffer=null)}onSubtitleTrackSwitch(e,c){var t;if(this.currentTrackId=c.id,null==(t=this.levels)||!t.length||-1===this.currentTrackId)return void this.clearInterval();const a=this.levels[this.currentTrackId];null!=a&&a.details?this.mediaBuffer=this.mediaBufferTimeRanges:this.mediaBuffer=null,a&&this.state!==ki&&this.setInterval(500)}onSubtitleTrackLoaded(e,c){var t;const{currentTrackId:a,levels:r}=this,{details:i,id:n}=c;if(!r)return void this.warn(`Subtitle tracks were reset while loading level ${n}`);const f=r[n];if(n>=r.length||!f)return;this.log(`Subtitle track ${n} loaded [${i.startSN},${i.endSN}]${i.lastPartSn?`[part-${i.lastPartSn}-${i.lastPartIndex}]`:""},duration:${i.totalduration}`),this.mediaBuffer=this.mediaBufferTimeRanges;let s=0;if(i.live||null!=(t=f.details)&&t.live){if(i.deltaUpdateFailed)return;const e=this.mainDetails;if(!e)return void(this.startFragRequested=!1);const c=e.fragments[0];var o;if(f.details)s=this.alignPlaylists(i,f.details,null==(o=this.levelLastLoaded)?void 0:o.details),0===s&&c&&(s=c.start,si(i,s));else i.hasProgramDateTime&&e.hasProgramDateTime?(Ei(i,e),s=i.fragmentStart):c&&(s=c.start,si(i,s));e&&!this.startFragRequested&&this.setStartPosition(e,s)}if(f.details=i,this.levelLastLoaded=f,n===a&&(this.hls.trigger(dc.SUBTITLE_TRACK_UPDATED,{details:i,id:n,groupId:c.groupId}),this.tick(),i.live&&!this.fragCurrent&&this.media&&this.state===Ai)){ga(null,i.fragments,this.media.currentTime,0)||(this.warn("Subtitle playlist not aligned with playback"),f.details=void 0)}}_handleFragmentLoadComplete(e){const{frag:c,payload:t}=e,a=c.decryptdata,r=this.hls;if(!this.fragContextChanged(c)&&t&&t.byteLength>0&&null!=a&&a.key&&a.iv&&yr(a.method)){const e=performance.now();this.decrypter.decrypt(new Uint8Array(t),a.key.buffer,a.iv.buffer,Er(a.method)).catch((e=>{throw r.trigger(dc.ERROR,{type:oc.MEDIA_ERROR,details:lc.FRAG_DECRYPT_ERROR,fatal:!1,error:e,reason:e.message,frag:c}),e})).then((t=>{const a=performance.now();r.trigger(dc.FRAG_DECRYPTED,{frag:c,payload:t,stats:{tstart:e,tdecrypt:a}})})).catch((e=>{this.warn(`${e.name}: ${e.message}`),this.state=Ai}))}}doTick(){if(this.media){if(this.state===Ai){const{currentTrackId:e,levels:c}=this,t=null==c?void 0:c[e];if(!t||!c.length||!t.details)return;if(this.waitForLive(t))return;const{config:a}=this,r=this.getLoadPosition(),i=ir.bufferedInfo(this.tracksBuffered[this.currentTrackId]||[],r,a.maxBufferHole),{end:n,len:f}=i,s=t.details;if(f>this.hls.maxBufferLength+s.levelTargetDuration)return;const o=s.fragments,l=o.length,d=s.edge;let u=null;const h=this.fragPrevious;if(n<d){const e=a.maxFragLookUpTolerance,c=n>d-e?0:e;u=ga(h,o,Math.max(o[0].start,n),c),!u&&h&&h.start<o[0].start&&(u=o[0])}else u=o[l-1];if(u=this.filterReplacedPrimary(u,t.details),!u)return;const b=o[u.sn-s.startSN-1];if(b&&b.cc===u.cc&&this.fragmentTracker.getState(b)===Na&&(u=b),this.fragmentTracker.getState(u)===Na){const e=this.mapToInitFragWhenRequired(u);e&&this.loadFragment(e,t,n)}}}else this.state=Ai}loadFragment(e,c,t){Qc(e)?super.loadFragment(e,c,t):this._loadInitSegment(e,c)}get mediaBufferTimeRanges(){return new go(this.tracksBuffered[this.currentTrackId]||[])}},subtitleTrackController:class extends gf{constructor(e){super(e,"subtitle-track-controller"),this.media=null,this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0,this.queuedDefaultTrack=-1,this.useTextTrackPolling=!1,this.subtitlePollingInterval=-1,this._subtitleDisplay=!0,this.asyncPollTrackChange=()=>this.pollTrackChange(0),this.onTextTracksChanged=()=>{if(this.useTextTrackPolling||self.clearInterval(this.subtitlePollingInterval),!this.media||!this.hls.config.renderTextTracksNatively)return;let e=-1,c=!1;if(this.currentTrack){var t;const a=null==(t=this.currentTrack.trackNode)?void 0:t.track.mode;"showing"===a?(e=this.trackId,c=!0):"hidden"===a&&(e=this.trackId)}if(!c)for(let i=0;i<this.tracksInGroup.length;i++){var a;const c=null==(a=this.tracksInGroup[i].trackNode)?void 0:a.track.mode;if("showing"===c){e=i;break}e<0&&"hidden"===c&&(e=i)}var r;e>-1&&(this._subtitleDisplay="showing"===(null==(r=this.tracksInGroup[e].trackNode)?void 0:r.track.mode));this.setSubtitleTrack(e,!0)},this.registerListeners()}destroy(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,this.onTextTracksChanged=this.asyncPollTrackChange=null,super.destroy()}get subtitleDisplay(){return this._subtitleDisplay}set subtitleDisplay(e){this._subtitleDisplay=e,this.trackId>-1&&this.toggleTrackModes()}registerListeners(){const{hls:e}=this;e.on(dc.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(dc.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.on(dc.MANIFEST_PARSED,this.onManifestParsed,this),e.on(dc.LEVEL_LOADING,this.onLevelLoading,this),e.on(dc.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(dc.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(dc.ERROR,this.onError,this)}unregisterListeners(){const{hls:e}=this;e.off(dc.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(dc.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.off(dc.MANIFEST_PARSED,this.onManifestParsed,this),e.off(dc.LEVEL_LOADING,this.onLevelLoading,this),e.off(dc.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(dc.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(dc.ERROR,this.onError,this)}createTracksInGroup(){var e;if(!this.media||!this.hls.config.renderTextTracksNatively)return;this.tracksInGroup.forEach((e=>{e.trackNode||(e.trackNode=Js(this.media,function(e){return e.forced&&(navigator.vendor.includes("Apple")||/iPhone|iPad|iPod/.test(navigator.userAgent))?"forced":e.characteristics&&/transcribes-spoken-dialog/gi.test(e.characteristics)&&/describes-music-and-sound/gi.test(e.characteristics)?"captions":"subtitles"}(e),e.name,e.lang))}));const c=null==(e=this.currentTrack)||null==(e=e.trackNode)?void 0:e.track;"disabled"===(null==c?void 0:c.mode)&&(c.mode=this._subtitleDisplay?"showing":"hidden")}onMediaAttached(e,c){const t=c.media;this.media=t;let a=this.trackId;this.queuedDefaultTrack>-1&&(a=this.queuedDefaultTrack,this.queuedDefaultTrack=-1),this.setSubtitleTrack(a),this.createTracksInGroup(),this.useTextTrackPolling=!(t.textTracks&&"onchange"in t.textTracks),this.useTextTrackPolling?this.pollTrackChange(500):t.textTracks.addEventListener("change",this.asyncPollTrackChange)}pollTrackChange(e){self.clearInterval(this.subtitlePollingInterval),this.subtitlePollingInterval=self.setInterval(this.onTextTracksChanged,e)}onMediaDetaching(e,c){const t=this.media;if(!t)return;const a=!!c.transferMedia;self.clearInterval(this.subtitlePollingInterval),this.useTextTrackPolling||t.textTracks.removeEventListener("change",this.asyncPollTrackChange),this.trackId>-1&&(this.queuedDefaultTrack=this.trackId,this.setSubtitleTrack(-1)),this.media=null,a||this.hls.config.renderTextTracksNatively&&this.tracksInGroup.forEach((e=>{e.trackNode&&(e.trackNode.remove(),e.trackNode=void 0)}))}onManifestLoading(){this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0}onManifestParsed(e,c){this.tracks=c.subtitleTracks}onSubtitleTrackLoaded(e,c){const{id:t,groupId:a,details:r}=c,i=this.tracksInGroup[t];if(!i||i.groupId!==a)return void this.warn(`Subtitle track with id:${t} and group:${a} not found in active group ${null==i?void 0:i.groupId}`);const n=i.details;i.details=c.details,this.log(`Subtitle track ${t} "${i.name}" lang:${i.lang} group:${a} loaded [${r.startSN}-${r.endSN}]`),t===this.trackId&&this.playlistLoaded(t,c,n)}onLevelLoading(e,c){this.switchLevel(c.level)}onLevelSwitching(e,c){this.switchLevel(c.level)}switchLevel(e){const c=this.hls.levels[e];if(!c)return;const t=c.subtitleGroups||null,a=this.groupIds;let r=this.currentTrack;if(!t||(null==a?void 0:a.length)!==(null==t?void 0:t.length)||null!=t&&t.some((e=>-1===(null==a?void 0:a.indexOf(e))))){this.groupIds=t;const e=[];if(this.tracks.forEach((c=>{(c.textCodec===js?this.hls.config.enableIMSC1:this.hls.config.enableWebVTT)&&(!t||t.includes(c.groupId)?(c.id=e.length,e.push(c)):c.trackNode&&(c.trackNode.remove(),c.trackNode=void 0))})),e.length===this.tracksInGroup.length){let c=!1;for(let t=0;t<e.length;t++)if(e[t]!==this.tracksInGroup[t]){c=!0;break}if(!c)return}e.length&&this.selectDefaultTrack&&!e.some((e=>e.default))&&(this.selectDefaultTrack=!1),this.tracksInGroup=e,this.trackId=-1,this.currentTrack=null;const c=this.hls.config.subtitlePreference;if(!r&&c){this.selectDefaultTrack=!1;const t=la(c,e);if(t>-1)r=e[t];else{const e=la(c,this.tracks);r=this.tracks[e]}}let a=this.findTrackId(r);-1===a&&r&&(a=this.findTrackId(null));const i={subtitleTracks:e};this.log(`Updating subtitle tracks, ${e.length} track(s) found in "${null==t?void 0:t.join(",")}" group-id`),this.hls.trigger(dc.SUBTITLE_TRACKS_UPDATED,i),this.setSubtitleTrack(a),this.createTracksInGroup()}}findTrackId(e){const c=this.tracksInGroup,t=this.selectDefaultTrack;for(let a=0;a<c.length;a++){const r=c[a];if((!t||r.default)&&(t||e)&&(!e||da(r,e)))return a}if(e){for(let t=0;t<c.length;t++){const a=c[t];if(vf(e.attrs,a.attrs,["LANGUAGE","ASSOC-LANGUAGE","CHARACTERISTICS"]))return t}for(let t=0;t<c.length;t++){const a=c[t];if(vf(e.attrs,a.attrs,["LANGUAGE"]))return t}}return-1}onError(e,c){!c.fatal&&c.context&&(c.context.type!==pc||c.context.id!==this.trackId||this.groupIds&&-1===this.groupIds.indexOf(c.context.groupId)||this.checkRetry(c))}get allSubtitleTracks(){return this.tracks}get subtitleTracks(){return this.tracksInGroup}get subtitleTrack(){return this.trackId}set subtitleTrack(e){this.selectDefaultTrack=!1,this.setSubtitleTrack(e,!0)}setSubtitleOption(e){if(this.hls.config.subtitlePreference=e,e){if(-1===e.id)return this.setSubtitleTrack(-1,!0),null;const c=this.allSubtitleTracks;if(this.selectDefaultTrack=!1,c.length){const t=this.currentTrack;if(t&&da(e,t))return t;const a=la(e,this.tracksInGroup);if(a>-1){const e=this.tracksInGroup[a];return this.setSubtitleTrack(a,!0),e}if(t)return null;{const t=la(e,c);if(t>-1)return c[t]}}}return null}loadPlaylist(e){super.loadPlaylist(),this.shouldLoadPlaylist(this.currentTrack)&&this.scheduleLoading(this.currentTrack,e)}loadingPlaylist(e,c){super.loadingPlaylist(e,c);const t=e.id,a=e.groupId,r=this.getUrlWithDirectives(e.url,c),i=e.details,n=null==i?void 0:i.age;this.log(`Loading subtitle ${t} "${e.name}" lang:${e.lang} group:${a}${void 0!==(null==c?void 0:c.msn)?" at sn "+c.msn+" part "+c.part:""}${n&&i.live?" age "+n.toFixed(1)+(i.type&&" "+i.type||""):""} ${r}`),this.hls.trigger(dc.SUBTITLE_TRACK_LOADING,{url:r,id:t,groupId:a,deliveryDirectives:c||null,track:e})}toggleTrackModes(){if(!this.media||!this.hls.config.renderTextTracksNatively)return;const e=this.currentTrack;this.tracksInGroup.forEach((c=>{if(c.trackNode){const t=c===e?this._subtitleDisplay?"showing":"hidden":"disabled",a=c.trackNode.track;a.mode!==t&&(a.mode=t)}}))}setSubtitleTrack(e,c=!1){const t=this.tracksInGroup;if(!this.media)return void(this.queuedDefaultTrack=e);if(e<-1||e>=t.length||!nc(e))return void this.warn(`Invalid subtitle track id: ${e}`);const a=this.currentTrack,r=t[e]||null;if(this.trackId=e,this.currentTrack=r,c&&this.toggleTrackModes(),!r)return void(a&&this.hls.trigger(dc.SUBTITLE_TRACK_SWITCH,{id:e}));const i=!!r.details&&!r.details.live;if(r===a&&i)return;this.log(`Switching to subtitle-track ${e}`+(r?` "${r.name}" lang:${r.lang} group:${r.groupId}`:""));const{id:n,groupId:f="",name:s,type:o,url:l}=r;this.hls.trigger(dc.SUBTITLE_TRACK_SWITCH,{id:n,groupId:f,name:s,type:o,url:l});const d=this.switchParams(r.url,null==a?void 0:a.details,r.details);this.loadPlaylist(d)}},timelineController:class{constructor(e){this.hls=void 0,this.media=null,this.config=void 0,this.enabled=!0,this.Cues=void 0,this.tracks=[],this.initPTS=[],this.unparsedVttFrags=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.cea608Parser1=void 0,this.cea608Parser2=void 0,this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs={ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!0}},this.captionsProperties=void 0,this.hls=e,this.config=e.config,this.Cues=e.config.cueHandler,this.captionsProperties={textTrack1:{label:this.config.captionsTextTrack1Label,languageCode:this.config.captionsTextTrack1LanguageCode},textTrack2:{label:this.config.captionsTextTrack2Label,languageCode:this.config.captionsTextTrack2LanguageCode},textTrack3:{label:this.config.captionsTextTrack3Label,languageCode:this.config.captionsTextTrack3LanguageCode},textTrack4:{label:this.config.captionsTextTrack4Label,languageCode:this.config.captionsTextTrack4LanguageCode}},e.on(dc.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(dc.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.on(dc.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(dc.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(dc.FRAG_LOADING,this.onFragLoading,this),e.on(dc.FRAG_LOADED,this.onFragLoaded,this),e.on(dc.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.on(dc.FRAG_DECRYPTED,this.onFragDecrypted,this),e.on(dc.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(dc.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.on(dc.BUFFER_FLUSHING,this.onBufferFlushing,this)}destroy(){const{hls:e}=this;e.off(dc.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(dc.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.off(dc.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(dc.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(dc.FRAG_LOADING,this.onFragLoading,this),e.off(dc.FRAG_LOADED,this.onFragLoaded,this),e.off(dc.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.off(dc.FRAG_DECRYPTED,this.onFragDecrypted,this),e.off(dc.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(dc.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.off(dc.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=this.media=null,this.cea608Parser1=this.cea608Parser2=void 0}initCea608Parsers(){const e=new Fo(this,"textTrack1"),c=new Fo(this,"textTrack2"),t=new Fo(this,"textTrack3"),a=new Fo(this,"textTrack4");this.cea608Parser1=new Co(1,e,c),this.cea608Parser2=new Co(3,t,a)}addCues(e,c,t,a,r){let i=!1;for(let l=r.length;l--;){const e=r[l],a=(n=e[0],f=e[1],s=c,o=t,Math.min(f,o)-Math.max(n,s));if(a>=0&&(e[0]=Math.min(e[0],c),e[1]=Math.max(e[1],t),i=!0,a/(t-c)>.5))return}var n,f,s,o;if(i||r.push([c,t]),this.config.renderTextTracksNatively){const r=this.captionsTracks[e].track;this.Cues.newCue(r,c,t,a)}else{const r=this.Cues.newCue(null,c,t,a);this.hls.trigger(dc.CUES_PARSED,{type:"captions",cues:r,track:e})}}onInitPtsFound(e,{frag:c,id:t,initPTS:a,timescale:r,trackId:i}){const{unparsedVttFrags:n}=this;t===gc&&(this.initPTS[c.cc]={baseTime:a,timescale:r,trackId:i}),n.length&&(this.unparsedVttFrags=[],n.forEach((e=>{this.initPTS[e.frag.cc]?this.onFragLoaded(dc.FRAG_LOADED,e):this.hls.trigger(dc.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:e.frag,error:new Error("Subtitle discontinuity domain does not match main")})})))}createCaptionsTrack(e){this.config.renderTextTracksNatively?this.createNativeTrack(e):this.createNonNativeTrack(e)}createNativeTrack(e){if(this.captionsTracks[e])return;const{captionsProperties:c,captionsTracks:t,media:a}=this,{label:r,languageCode:i}=c[e];a&&(t[e]=Js(a,"captions",r,i))}createNonNativeTrack(e){if(this.nonNativeCaptionsTracks[e])return;const c=this.captionsProperties[e];if(!c)return;const t={_id:e,label:c.label,kind:"captions",default:!!c.media&&!!c.media.default,closedCaptions:c.media};this.nonNativeCaptionsTracks[e]=t,this.hls.trigger(dc.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:[t]})}onMediaAttaching(e,c){this.media=c.media}onMediaDetaching(e,c){const t=!!c.transferMedia;if(this.media=null,!t){if(this.config.renderTextTracksNatively){const{captionsTracks:e}=this;for(const c in e)e[c].remove()}this.captionsTracks={},this.nonNativeCaptionsTracks={}}}onManifestLoading(){this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs={ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!0}},this.tracks=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.unparsedVttFrags=[],this.initPTS=[],this.cea608Parser1&&this.cea608Parser2&&(this.cea608Parser1.reset(),this.cea608Parser2.reset())}onSubtitleTracksUpdated(e,c){const t=c.subtitleTracks||[];if(t.length&&!this.config.renderTextTracksNatively&&!mf(this.tracks,t)){const e=t.map((e=>({label:e.name,kind:e.type.toLowerCase(),default:e.default,subtitleTrack:e})));this.hls.trigger(dc.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:e})}this.tracks=t}onManifestLoaded(e,c){this.config.enableCEA708Captions&&c.captions&&c.captions.forEach((e=>{const c=/(?:CC|SERVICE)([1-4])/.exec(e.instreamId);if(!c)return;const t=`textTrack${c[1]}`,a=this.captionsProperties[t];a&&(a.label=e.name,e.lang&&(a.languageCode=e.lang),a.media=e)}))}closedCaptionsForLevel(e){const c=this.hls.levels[e.level];return null==c?void 0:c.attrs["CLOSED-CAPTIONS"]}onFragLoading(e,c){if(this.enabled&&c.frag.type===gc){var t,a;const{cea608Parser1:e,cea608Parser2:r,lastSn:i}=this,{cc:n,sn:f}=c.frag,s=null!=(t=null==(a=c.part)?void 0:a.index)?t:-1;e&&r&&(f!==i+1||f===i&&s!==this.lastPartIndex+1||n!==this.lastCc)&&(e.reset(),r.reset()),this.lastCc=n,this.lastSn=f,this.lastPartIndex=s}}onFragLoaded(e,c){const{frag:t,payload:a}=c;if(t.level<this.tracks.length&&t.type===vc)if(a.byteLength){const e=t.decryptdata,r="stats"in c;if(null==e||!e.encrypted||r){const e=this.tracks[t.level],r=this.vttCCs;r[t.cc]||(r[t.cc]={start:t.start,prevCC:this.prevCC,new:!0},this.prevCC=t.cc),e.textCodec===js?this._parseIMSC1(t,a):this._parseVTTs(c)}}else this.hls.trigger(dc.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:t,error:new Error("Empty subtitle payload")})}_parseIMSC1(e,c){const t=this.hls;Hs(c,this.initPTS[e.cc],(c=>{this._appendCues(c,e.level),t.trigger(dc.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:e})}),(c=>{t.logger.log(`Failed to parse IMSC1: ${c}`),t.trigger(dc.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:e,error:c})}))}_parseVTTs(e){var c;const{frag:t,payload:a}=e,{initPTS:r,unparsedVttFrags:i}=this,n=r.length-1;if(!r[t.cc]&&-1===n)return void i.push(e);const f=this.hls;$s(null!=(c=t.initSegment)&&c.data?yt(t.initSegment.data,new Uint8Array(a)).buffer:a,this.initPTS[t.cc],this.vttCCs,t.cc,t.start,(e=>{this._appendCues(e,t.level),f.trigger(dc.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:t})}),(c=>{const r="Missing initPTS for VTT MPEGTS"===c.message;r?i.push(e):this.config.enableIMSC1&&this._fallbackToIMSC1(t,a),f.logger.log(`Failed to parse VTT cue: ${c}`),r&&n>t.cc||f.trigger(dc.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:t,error:c})}))}_fallbackToIMSC1(e,c){const t=this.tracks[e.level];t.textCodec||Hs(c,this.initPTS[e.cc],(()=>{t.textCodec=js,this._parseIMSC1(e,c)}),(()=>{t.textCodec="wvtt"}))}_appendCues(e,c){const t=this.hls;if(this.config.renderTextTracksNatively){var a;const t=null==(a=this.tracks[c].trackNode)?void 0:a.track;if(!t||"disabled"===t.mode)return;e.forEach((e=>Zs(t,e)))}else{const a=this.tracks[c];if(!a)return;const r=a.default?"default":"subtitles"+c;t.trigger(dc.CUES_PARSED,{type:"subtitles",cues:e,track:r})}}onFragDecrypted(e,c){const{frag:t}=c;t.type===vc&&this.onFragLoaded(dc.FRAG_LOADED,c)}onSubtitleTracksCleared(){this.tracks=[],this.captionsTracks={}}onFragParsingUserdata(e,c){if(!this.enabled||!this.config.enableCEA708Captions)return;const{frag:t,samples:a}=c;if(t.type!==gc||"NONE"!==this.closedCaptionsForLevel(t))for(let r=0;r<a.length;r++){const e=a[r].bytes;if(e){this.cea608Parser1||this.initCea608Parsers();const c=this.extractCea608Data(e);this.cea608Parser1.addData(a[r].pts,c[0]),this.cea608Parser2.addData(a[r].pts,c[1])}}}onBufferFlushing(e,{startOffset:c,endOffset:t,endOffsetSubtitles:a,type:r}){const{media:i}=this;if(i&&!(i.currentTime<t)){if(!r||"video"===r){const{captionsTracks:e}=this;Object.keys(e).forEach((a=>eo(e[a].track,c,t)))}this.config.renderTextTracksNatively&&0===c&&void 0!==a&&this.tracks.forEach((e=>{var t;const r=null==(t=e.trackNode)?void 0:t.track;r&&eo(r,c,a)}))}}extractCea608Data(e){const c=[[],[]],t=31&e[0];let a=2;for(let r=0;r<t;r++){const t=e[a++],r=127&e[a++],i=127&e[a++];if(0===r&&0===i)continue;if(!!(4&t)){const e=3&t;0!==e&&1!==e||(c[e].push(r),c[e].push(i))}}return c}},audioStreamController:class extends Fi{constructor(e,c,t){super(e,c,t,"audio-stream-controller",mc),this.mainAnchor=null,this.mainFragLoading=null,this.audioOnly=!1,this.bufferedTrack=null,this.switchingTrack=null,this.trackId=-1,this.waitingData=null,this.mainDetails=null,this.flushing=!1,this.bufferFlushed=!1,this.cachedTrackLoadedData=null,this.registerListeners()}onHandlerDestroying(){this.unregisterListeners(),super.onHandlerDestroying(),this.resetItem()}resetItem(){this.mainDetails=this.mainAnchor=this.mainFragLoading=this.bufferedTrack=this.switchingTrack=this.waitingData=this.cachedTrackLoadedData=null}registerListeners(){super.registerListeners();const{hls:e}=this;e.on(dc.LEVEL_LOADED,this.onLevelLoaded,this),e.on(dc.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.on(dc.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(dc.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(dc.BUFFER_RESET,this.onBufferReset,this),e.on(dc.BUFFER_CREATED,this.onBufferCreated,this),e.on(dc.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(dc.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(dc.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(dc.FRAG_LOADING,this.onFragLoading,this),e.on(dc.FRAG_BUFFERED,this.onFragBuffered,this)}unregisterListeners(){const{hls:e}=this;e&&(super.unregisterListeners(),e.off(dc.LEVEL_LOADED,this.onLevelLoaded,this),e.off(dc.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.off(dc.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(dc.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(dc.BUFFER_RESET,this.onBufferReset,this),e.off(dc.BUFFER_CREATED,this.onBufferCreated,this),e.off(dc.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(dc.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(dc.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(dc.FRAG_LOADING,this.onFragLoading,this),e.off(dc.FRAG_BUFFERED,this.onFragBuffered,this))}onInitPtsFound(e,{frag:c,id:t,initPTS:a,timescale:r,trackId:i}){if(t===gc){const e=c.cc,t=this.fragCurrent;if(this.initPTS[e]={baseTime:a,timescale:r,trackId:i},this.log(`InitPTS for cc: ${e} found from main: ${a/r} (${a}/${r}) trackId: ${i}`),this.mainAnchor=c,this.state===Oi){const t=this.waitingData;(!t&&!this.loadingParts||t&&t.frag.cc!==e)&&this.syncWithAnchor(c,null==t?void 0:t.frag)}else!this.hls.hasEnoughToStart&&t&&t.cc!==e?(t.abortRequests(),this.syncWithAnchor(c,t)):this.state===Ai&&this.tick()}}getLoadPosition(){return!this.startFragRequested&&this.nextLoadPosition>=0?this.nextLoadPosition:super.getLoadPosition()}syncWithAnchor(e,c){var t;const a=(null==(t=this.mainFragLoading)?void 0:t.frag)||null;if(c&&(null==a?void 0:a.cc)===c.cc)return;const r=(a||e).cc,i=ya(this.getLevelDetails(),r,this.getLoadPosition());i&&(this.log(`Syncing with main frag at ${i.start} cc ${i.cc}`),this.startFragRequested=!1,this.nextLoadPosition=i.start,this.resetLoadingState(),this.state===Ai&&this.doTickIdle())}startLoad(e,c){if(!this.levels)return this.startPosition=e,void(this.state=ki);const t=this.lastCurrentTime;this.stopLoad(),this.setInterval(100),t>0&&-1===e?(this.log(`Override startPosition with lastCurrentTime @${t.toFixed(3)}`),e=t,this.state=Ai):this.state=Ri,this.nextLoadPosition=this.lastCurrentTime=e+this.timelineOffset,this.startPosition=c?-1:e,this.tick()}doTick(){switch(this.state){case Ai:this.doTickIdle();break;case Ri:{const{levels:e,trackId:c}=this,t=null==e?void 0:e[c],a=null==t?void 0:t.details;if(a&&!this.waitForLive(t)){if(this.waitForCdnTuneIn(a))break;this.state=Oi}break}case wi:this.checkRetryDate();break;case Oi:{const e=this.waitingData;if(e){const{frag:c,part:t,cache:a,complete:r}=e,i=this.mainAnchor;if(void 0!==this.initPTS[c.cc]){this.waitingData=null,this.state=Ii;const e={frag:c,part:t,payload:a.flush().buffer,networkDetails:null};this._handleFragmentLoadProgress(e),r&&super._handleFragmentLoadComplete(e)}else i&&i.cc!==e.frag.cc&&this.syncWithAnchor(i,e.frag)}else this.state=Ai}}this.onTickEnd()}resetLoadingState(){const e=this.waitingData;e&&(this.fragmentTracker.removeFragment(e.frag),this.waitingData=null),super.resetLoadingState()}onTickEnd(){const{media:e}=this;null!=e&&e.readyState&&(this.lastCurrentTime=e.currentTime)}doTickIdle(){var e;const{hls:c,levels:t,media:a,trackId:r}=this,i=c.config;if(!this.buffering||!a&&!this.primaryPrefetch&&(this.startFragRequested||!i.startFragPrefetch)||null==t||!t[r])return;const n=t[r],f=n.details;if(!f||this.waitForLive(n)||this.waitForCdnTuneIn(f))return this.state=Ri,void(this.startFragRequested=!1);const s=this.mediaBuffer?this.mediaBuffer:this.media;this.bufferFlushed&&s&&(this.bufferFlushed=!1,this.afterBufferFlushed(s,Yc,mc));const o=this.getFwdBufferInfo(s,mc);if(null===o)return;if(!this.switchingTrack&&this._streamEnded(o,f))return c.trigger(dc.BUFFER_EOS,{type:"audio"}),void(this.state=Pi);const l=o.len,d=c.maxBufferLength,u=f.fragments,h=u[0].start,b=this.getLoadPosition(),p=this.flushing?b:o.end;if(this.switchingTrack&&a){const e=b;f.PTSKnown&&e<h&&(o.end>h||o.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),a.currentTime=h+.05)}if(l>=d&&!this.switchingTrack&&p<u[u.length-1].start)return;let g=this.getNextFragment(p,f);if(g&&this.isLoopLoading(g,p)&&(g=this.getNextFragmentLoopLoading(g,f,o,gc,d)),!g)return void(this.bufferFlushed=!0);let m=(null==(e=this.mainFragLoading)?void 0:e.frag)||null;if(!this.audioOnly&&this.startFragRequested&&m&&Qc(g)&&!g.endList&&(!f.live||!this.loadingParts&&p<this.hls.liveSyncPosition)&&(this.fragmentTracker.getState(m)===$a&&(this.mainFragLoading=m=null),m&&Qc(m))){if(g.start>m.end){const e=this.fragmentTracker.getFragAtPos(p,gc);e&&e.end>m.end&&(m=e,this.mainFragLoading={frag:e,targetBufferTime:null})}if(g.start>m.end)return}this.loadFragment(g,n,p)}onMediaDetaching(e,c){this.bufferFlushed=this.flushing=!1,super.onMediaDetaching(e,c)}onAudioTracksUpdated(e,{audioTracks:c}){this.resetTransmuxer(),this.levels=c.map((e=>new aa(e)))}onAudioTrackSwitching(e,c){const t=!!c.url;this.trackId=c.id;const{fragCurrent:a}=this;a&&(a.abortRequests(),this.removeUnbufferedFrags(a.start)),this.resetLoadingState(),t?(this.switchingTrack=c,this.flushAudioIfNeeded(c),this.state!==ki&&(this.setInterval(100),this.state=Ai,this.tick())):(this.resetTransmuxer(),this.switchingTrack=null,this.bufferedTrack=c,this.clearInterval())}onManifestLoading(){super.onManifestLoading(),this.bufferFlushed=this.flushing=this.audioOnly=!1,this.resetItem(),this.trackId=-1}onLevelLoaded(e,c){this.mainDetails=c.details;const t=this.cachedTrackLoadedData;t&&(this.cachedTrackLoadedData=null,this.onAudioTrackLoaded(dc.AUDIO_TRACK_LOADED,t))}onAudioTrackLoaded(e,c){var t;const{levels:a}=this,{details:r,id:i,groupId:n,track:f}=c;if(!a)return void this.warn(`Audio tracks reset while loading track ${i} "${f.name}" of "${n}"`);const s=this.mainDetails;if(!s||r.endCC>s.endCC||s.expired)return this.cachedTrackLoadedData=c,void(this.state!==ki&&(this.state=Ri));this.cachedTrackLoadedData=null,this.log(`Audio track ${i} "${f.name}" of "${n}" loaded [${r.startSN},${r.endSN}]${r.lastPartSn?`[part-${r.lastPartSn}-${r.lastPartIndex}]`:""},duration:${r.totalduration}`);const o=a[i];let l=0;if(r.live||null!=(t=o.details)&&t.live){if(this.checkLiveUpdate(r),r.deltaUpdateFailed)return;var d;if(o.details)l=this.alignPlaylists(r,o.details,null==(d=this.levelLastLoaded)?void 0:d.details);r.alignedSliding||(yi(r,s),r.alignedSliding||Ei(r,s),l=r.fragmentStart)}o.details=r,this.levelLastLoaded=o,this.startFragRequested||this.setStartPosition(s,l),this.hls.trigger(dc.AUDIO_TRACK_UPDATED,{details:r,id:i,groupId:c.groupId}),this.state!==Ri||this.waitForCdnTuneIn(r)||(this.state=Ai),this.tick()}_handleFragmentLoadProgress(e){var c;const t=e.frag,{part:a,payload:r}=e,{config:i,trackId:n,levels:f}=this;if(!f)return void this.warn(`Audio tracks were reset while fragment load was in progress. Fragment ${t.sn} of level ${t.level} will not be buffered`);const s=f[n];if(!s)return void this.warn("Audio track is undefined on fragment load progress");const o=s.details;if(!o)return this.warn("Audio track details undefined on fragment load progress"),void this.removeUnbufferedFrags(t.start);const l=i.defaultAudioCodec||s.audioCodec||"mp4a.40.2";let d=this.transmuxer;d||(d=this.transmuxer=new pf(this.hls,mc,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)));const u=this.initPTS[t.cc],h=null==(c=t.initSegment)?void 0:c.data;if(void 0!==u){const e=!1,c=a?a.index:-1,i=-1!==c,n=new ar(t.level,t.sn,t.stats.chunkCount,r.byteLength,c,i);d.push(r,h,l,"",t,a,o.totalduration,e,n,u)}else{this.log(`Unknown video PTS for cc ${t.cc}, waiting for video PTS before demuxing audio frag ${t.sn} of [${o.startSN} ,${o.endSN}],track ${n}`);const{cache:e}=this.waitingData=this.waitingData||{frag:t,part:a,cache:new Ui,complete:!1};e.push(new Uint8Array(r)),this.state!==ki&&(this.state=Oi)}}_handleFragmentLoadComplete(e){this.waitingData?this.waitingData.complete=!0:super._handleFragmentLoadComplete(e)}onBufferReset(){this.mediaBuffer=null}onBufferCreated(e,c){this.bufferFlushed=this.flushing=!1;const t=c.tracks.audio;t&&(this.mediaBuffer=t.buffer||null)}onFragLoading(e,c){!this.audioOnly&&c.frag.type===gc&&Qc(c.frag)&&(this.mainFragLoading=c,this.state===Ai&&this.tick())}onFragBuffered(e,c){const{frag:t,part:a}=c;if(t.type===mc)if(this.fragContextChanged(t))this.warn(`Fragment ${t.sn}${a?" p: "+a.index:""} of level ${t.level} finished buffering, but was aborted. state: ${this.state}, audioSwitch: ${this.switchingTrack?this.switchingTrack.name:"false"}`);else{if(Qc(t)){this.fragPrevious=t;const e=this.switchingTrack;e&&(this.bufferedTrack=e,this.switchingTrack=null,this.hls.trigger(dc.AUDIO_TRACK_SWITCHED,kc({},e)))}this.fragBufferedComplete(t,a),this.media&&this.tick()}else this.audioOnly||t.type!==gc||t.elementaryStreams.video||t.elementaryStreams.audiovideo||(this.audioOnly=!0,this.mainFragLoading=null)}onError(e,c){var t;if(c.fatal)this.state=Ci;else switch(c.details){case lc.FRAG_GAP:case lc.FRAG_PARSING_ERROR:case lc.FRAG_DECRYPT_ERROR:case lc.FRAG_LOAD_ERROR:case lc.FRAG_LOAD_TIMEOUT:case lc.KEY_LOAD_ERROR:case lc.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(mc,c);break;case lc.AUDIO_TRACK_LOAD_ERROR:case lc.AUDIO_TRACK_LOAD_TIMEOUT:case lc.LEVEL_PARSING_ERROR:c.levelRetry||this.state!==Ri||(null==(t=c.context)?void 0:t.type)!==bc||(this.state=Ai);break;case lc.BUFFER_ADD_CODEC_ERROR:case lc.BUFFER_APPEND_ERROR:if("audio"!==c.parent)return;this.reduceLengthAndFlushBuffer(c)||this.resetLoadingState();break;case lc.BUFFER_FULL_ERROR:if("audio"!==c.parent)return;this.reduceLengthAndFlushBuffer(c)&&(this.bufferedTrack=null,super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"));break;case lc.INTERNAL_EXCEPTION:this.recoverWorkerError(c)}}onBufferFlushing(e,{type:c}){c!==Wc&&(this.flushing=!0)}onBufferFlushed(e,{type:c}){if(c!==Wc){this.flushing=!1,this.bufferFlushed=!0,this.state===Pi&&(this.state=Ai);const e=this.mediaBuffer||this.media;e&&(this.afterBufferFlushed(e,c,mc),this.tick())}}_handleTransmuxComplete(e){var c;const t="audio",{hls:a}=this,{remuxResult:r,chunkMeta:i}=e,n=this.getCurrentContext(i);if(!n)return void this.resetWhenMissingContext(i);const{frag:f,part:s,level:o}=n,{details:l}=o,{audio:d,text:u,id3:h,initSegment:b}=r;if(!this.fragContextChanged(f)&&l){if(this.state=Di,this.switchingTrack&&d&&this.completeAudioSwitch(this.switchingTrack),null!=b&&b.tracks){const e=f.initSegment||f;if(this.unhandledEncryptionError(b,f))return;this._bufferInitSegment(o,b.tracks,e,i),a.trigger(dc.FRAG_PARSING_INIT_SEGMENT,{frag:e,id:t,tracks:b.tracks})}if(d){const{startPTS:e,endPTS:c,startDTS:t,endDTS:a}=d;s&&(s.elementaryStreams[Yc]={startPTS:e,endPTS:c,startDTS:t,endDTS:a}),f.setElementaryStreamInfo(Yc,e,c,t,a),this.bufferFragmentData(d,f,s,i)}if(null!=h&&null!=(c=h.samples)&&c.length){const e=_c({id:t,frag:f,details:l},h);a.trigger(dc.FRAG_PARSING_METADATA,e)}if(u){const e=_c({id:t,frag:f,details:l},u);a.trigger(dc.FRAG_PARSING_USERDATA,e)}}else this.fragmentTracker.removeFragment(f)}_bufferInitSegment(e,c,t,a){if(this.state!==Di)return;if(c.video&&delete c.video,c.audiovideo&&delete c.audiovideo,!c.audio)return;const r=c.audio;r.id=mc;const i=e.audioCodec;this.log(`Init audio buffer, container:${r.container}, codecs[level/parsed]=[${i}/${r.codec}]`),i&&1===i.split(",").length&&(r.levelCodec=i),this.hls.trigger(dc.BUFFER_CODECS,c);const n=r.initSegment;if(null!=n&&n.byteLength){const e={type:"audio",frag:t,part:null,chunkMeta:a,parent:t.type,data:n};this.hls.trigger(dc.BUFFER_APPENDING,e)}this.tickImmediate()}loadFragment(e,c,t){const a=this.fragmentTracker.getState(e);var r;if(this.switchingTrack||a===Na||a===Ba)if(Qc(e))if(null!=(r=c.details)&&r.live&&!this.initPTS[e.cc]){this.log(`Waiting for video PTS in continuity counter ${e.cc} of live stream before loading audio fragment ${e.sn} of level ${this.trackId}`),this.state=Oi;const t=this.mainDetails;t&&t.fragmentStart!==c.details.fragmentStart&&Ei(c.details,t)}else super.loadFragment(e,c,t);else this._loadInitSegment(e,c);else this.clearTrackerIfNeeded(e)}flushAudioIfNeeded(e){if(this.media&&this.bufferedTrack){const{name:c,lang:t,assocLang:a,characteristics:r,audioCodec:i,channels:n}=this.bufferedTrack;da({name:c,lang:t,assocLang:a,characteristics:r,audioCodec:i,channels:n},e,ua)||(ba(e.url,this.hls)?(this.log("Switching audio track : flushing all audio"),super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"),this.bufferedTrack=null):this.bufferedTrack=e)}}completeAudioSwitch(e){const{hls:c}=this;this.flushAudioIfNeeded(e),this.bufferedTrack=e,this.switchingTrack=null,c.trigger(dc.AUDIO_TRACK_SWITCHED,kc({},e))}},audioTrackController:class extends gf{constructor(e){super(e,"audio-track-controller"),this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0,this.registerListeners()}registerListeners(){const{hls:e}=this;e.on(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.on(dc.MANIFEST_PARSED,this.onManifestParsed,this),e.on(dc.LEVEL_LOADING,this.onLevelLoading,this),e.on(dc.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(dc.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(dc.ERROR,this.onError,this)}unregisterListeners(){const{hls:e}=this;e.off(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.off(dc.MANIFEST_PARSED,this.onManifestParsed,this),e.off(dc.LEVEL_LOADING,this.onLevelLoading,this),e.off(dc.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(dc.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(dc.ERROR,this.onError,this)}destroy(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,super.destroy()}onManifestLoading(){this.tracks=[],this.tracksInGroup=[],this.groupIds=null,this.currentTrack=null,this.trackId=-1,this.selectDefaultTrack=!0}onManifestParsed(e,c){this.tracks=c.audioTracks||[]}onAudioTrackLoaded(e,c){const{id:t,groupId:a,details:r}=c,i=this.tracksInGroup[t];if(!i||i.groupId!==a)return void this.warn(`Audio track with id:${t} and group:${a} not found in active group ${null==i?void 0:i.groupId}`);const n=i.details;i.details=c.details,this.log(`Audio track ${t} "${i.name}" lang:${i.lang} group:${a} loaded [${r.startSN}-${r.endSN}]`),t===this.trackId&&this.playlistLoaded(t,c,n)}onLevelLoading(e,c){this.switchLevel(c.level)}onLevelSwitching(e,c){this.switchLevel(c.level)}switchLevel(e){const c=this.hls.levels[e];if(!c)return;const t=c.audioGroups||null,a=this.groupIds;let r=this.currentTrack;if(!t||(null==a?void 0:a.length)!==(null==t?void 0:t.length)||null!=t&&t.some((e=>-1===(null==a?void 0:a.indexOf(e))))){this.groupIds=t,this.trackId=-1,this.currentTrack=null;const e=this.tracks.filter((e=>!t||-1!==t.indexOf(e.groupId)));if(e.length)this.selectDefaultTrack&&!e.some((e=>e.default))&&(this.selectDefaultTrack=!1),e.forEach(((e,c)=>{e.id=c}));else if(!r&&!this.tracksInGroup.length)return;this.tracksInGroup=e;const c=this.hls.config.audioPreference;if(!r&&c){const t=la(c,e,ua);if(t>-1)r=e[t];else{const e=la(c,this.tracks);r=this.tracks[e]}}let a=this.findTrackId(r);-1===a&&r&&(a=this.findTrackId(null));const n={audioTracks:e};this.log(`Updating audio tracks, ${e.length} track(s) found in group(s): ${null==t?void 0:t.join(",")}`),this.hls.trigger(dc.AUDIO_TRACKS_UPDATED,n);const f=this.trackId;if(-1!==a&&-1===f)this.setAudioTrack(a);else if(e.length&&-1===f){var i;const c=new Error(`No audio track selected for current audio group-ID(s): ${null==(i=this.groupIds)?void 0:i.join(",")} track count: ${e.length}`);this.warn(c.message),this.hls.trigger(dc.ERROR,{type:oc.MEDIA_ERROR,details:lc.AUDIO_TRACK_LOAD_ERROR,fatal:!0,error:c})}}}onError(e,c){!c.fatal&&c.context&&(c.context.type!==bc||c.context.id!==this.trackId||this.groupIds&&-1===this.groupIds.indexOf(c.context.groupId)||this.checkRetry(c))}get allAudioTracks(){return this.tracks}get audioTracks(){return this.tracksInGroup}get audioTrack(){return this.trackId}set audioTrack(e){this.selectDefaultTrack=!1,this.setAudioTrack(e)}setAudioOption(e){const c=this.hls;if(c.config.audioPreference=e,e){const t=this.allAudioTracks;if(this.selectDefaultTrack=!1,t.length){const a=this.currentTrack;if(a&&da(e,a,ua))return a;const r=la(e,this.tracksInGroup,ua);if(r>-1){const e=this.tracksInGroup[r];return this.setAudioTrack(r),e}if(a){let a=c.loadLevel;-1===a&&(a=c.firstAutoLevel);const r=function(e,c,t,a,r){const i=c[a],n=c.reduce(((e,c,t)=>{const a=c.uri;return(e[a]||(e[a]=[])).push(t),e}),{})[i.uri];n.length>1&&(a=Math.max.apply(Math,n));const f=i.videoRange,s=i.frameRate,o=i.codecSet.substring(0,4),l=ha(c,a,(c=>{if(c.videoRange!==f||c.frameRate!==s||c.codecSet.substring(0,4)!==o)return!1;const a=c.audioGroups,i=t.filter((e=>!a||-1!==a.indexOf(e.groupId)));return la(e,i,r)>-1}));return l>-1?l:ha(c,a,(c=>{const a=c.audioGroups,i=t.filter((e=>!a||-1!==a.indexOf(e.groupId)));return la(e,i,r)>-1}))}(e,c.levels,t,a,ua);if(-1===r)return null;c.nextLoadLevel=r}if(e.channels||e.audioCodec){const c=la(e,t);if(c>-1)return t[c]}}}return null}setAudioTrack(e){const c=this.tracksInGroup;if(e<0||e>=c.length)return void this.warn(`Invalid audio track id: ${e}`);this.selectDefaultTrack=!1;const t=this.currentTrack,a=c[e],r=a.details&&!a.details.live;if(e===this.trackId&&a===t&&r)return;if(this.log(`Switching to audio-track ${e} "${a.name}" lang:${a.lang} group:${a.groupId} channels:${a.channels}`),this.trackId=e,this.currentTrack=a,this.hls.trigger(dc.AUDIO_TRACK_SWITCHING,kc({},a)),r)return;const i=this.switchParams(a.url,null==t?void 0:t.details,a.details);this.loadPlaylist(i)}findTrackId(e){const c=this.tracksInGroup;for(let t=0;t<c.length;t++){const a=c[t];if((!this.selectDefaultTrack||a.default)&&(!e||da(e,a,ua)))return t}if(e){const{name:t,lang:a,assocLang:r,characteristics:i,audioCodec:n,channels:f}=e;for(let e=0;e<c.length;e++){if(da({name:t,lang:a,assocLang:r,characteristics:i,audioCodec:n,channels:f},c[e],ua))return e}for(let s=0;s<c.length;s++){const t=c[s];if(vf(e.attrs,t.attrs,["LANGUAGE","ASSOC-LANGUAGE","CHARACTERISTICS"]))return s}for(let s=0;s<c.length;s++){const t=c[s];if(vf(e.attrs,t.attrs,["LANGUAGE"]))return s}}return-1}loadPlaylist(e){super.loadPlaylist();const c=this.currentTrack;this.shouldLoadPlaylist(c)&&ba(c.url,this.hls)&&this.scheduleLoading(c,e)}loadingPlaylist(e,c){super.loadingPlaylist(e,c);const t=e.id,a=e.groupId,r=this.getUrlWithDirectives(e.url,c),i=e.details,n=null==i?void 0:i.age;this.log(`Loading audio-track ${t} "${e.name}" lang:${e.lang} group:${a}${void 0!==(null==c?void 0:c.msn)?" at sn "+c.msn+" part "+c.part:""}${n&&i.live?" age "+n.toFixed(1)+(i.type&&" "+i.type||""):""} ${r}`),this.hls.trigger(dc.AUDIO_TRACK_LOADING,{url:r,id:t,groupId:a,deliveryDirectives:c||null,track:e})}},emeController:Ss,cmcdController:class{constructor(e){this.hls=void 0,this.config=void 0,this.media=void 0,this.sid=void 0,this.cid=void 0,this.useHeaders=!1,this.includeKeys=void 0,this.initialized=!1,this.starved=!1,this.buffering=!0,this.audioBuffer=void 0,this.videoBuffer=void 0,this.onWaiting=()=>{this.initialized&&(this.starved=!0),this.buffering=!0},this.onPlaying=()=>{this.initialized||(this.initialized=!0),this.buffering=!1},this.applyPlaylistData=e=>{try{this.apply(e,{ot:Lf.MANIFEST,su:!this.initialized})}catch(c){this.hls.logger.warn("Could not generate manifest CMCD data.",c)}},this.applyFragmentData=e=>{try{const{frag:c,part:t}=e,a=this.hls.levels[c.level],r=this.getObjectType(c),i={d:1e3*(t||c).duration,ot:r};r!==Lf.VIDEO&&r!==Lf.AUDIO&&r!=Lf.MUXED||(i.br=a.bitrate/1e3,i.tb=this.getTopBandwidth(r)/1e3,i.bl=this.getBufferLength(r));const n=t?this.getNextPart(t):this.getNextFrag(c);null!=n&&n.url&&n.url!==c.url&&(i.nor=n.url),this.apply(e,i)}catch(c){this.hls.logger.warn("Could not generate segment CMCD data.",c)}},this.hls=e;const c=this.config=e.config,{cmcd:t}=c;null!=t&&(c.pLoader=this.createPlaylistLoader(),c.fLoader=this.createFragmentLoader(),this.sid=t.sessionId||e.sessionId,this.cid=t.contentId,this.useHeaders=!0===t.useHeaders,this.includeKeys=t.includeKeys,this.registerListeners())}registerListeners(){const e=this.hls;e.on(dc.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(dc.MEDIA_DETACHED,this.onMediaDetached,this),e.on(dc.BUFFER_CREATED,this.onBufferCreated,this)}unregisterListeners(){const e=this.hls;e.off(dc.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(dc.MEDIA_DETACHED,this.onMediaDetached,this),e.off(dc.BUFFER_CREATED,this.onBufferCreated,this)}destroy(){this.unregisterListeners(),this.onMediaDetached(),this.hls=this.config=this.audioBuffer=this.videoBuffer=null,this.onWaiting=this.onPlaying=this.media=null}onMediaAttached(e,c){this.media=c.media,this.media.addEventListener("waiting",this.onWaiting),this.media.addEventListener("playing",this.onPlaying)}onMediaDetached(){this.media&&(this.media.removeEventListener("waiting",this.onWaiting),this.media.removeEventListener("playing",this.onPlaying),this.media=null)}onBufferCreated(e,c){var t,a;this.audioBuffer=null==(t=c.tracks.audio)?void 0:t.buffer,this.videoBuffer=null==(a=c.tracks.video)?void 0:a.buffer}createData(){var e;return{v:1,sf:If.HLS,sid:this.sid,cid:this.cid,pr:null==(e=this.media)?void 0:e.playbackRate,mtp:this.hls.bandwidthEstimate/1e3}}apply(e,c={}){_c(c,this.createData());const t=c.ot===Lf.INIT||c.ot===Lf.VIDEO||c.ot===Lf.MUXED;this.starved&&t&&(c.bs=!0,c.su=!0,this.starved=!1),null==c.su&&(c.su=this.buffering);const{includeKeys:a}=this;a&&(c=Object.keys(c).reduce(((e,t)=>(a.includes(t)&&(e[t]=c[t]),e)),{}));const r={baseUrl:e.url};this.useHeaders?(e.headers||(e.headers={}),ps(e.headers,c,r)):e.url=vs(e.url,c,r)}getNextFrag(e){var c;const t=null==(c=this.hls.levels[e.level])?void 0:c.details;if(t){const c=e.sn-t.startSN;return t.fragments[c+1]}}getNextPart(e){var c;const{index:t,fragment:a}=e,r=null==(c=this.hls.levels[a.level])||null==(c=c.details)?void 0:c.partList;if(r){const{sn:e}=a;for(let c=r.length-1;c>=0;c--){const a=r[c];if(a.index===t&&a.fragment.sn===e)return r[c+1]}}}getObjectType(e){const{type:c}=e;return"subtitle"===c?Lf.TIMED_TEXT:"initSegment"===e.sn?Lf.INIT:"audio"===c?Lf.AUDIO:"main"===c?this.hls.audioTracks.length?Lf.VIDEO:Lf.MUXED:void 0}getTopBandwidth(e){let c,t=0;const a=this.hls;if(e===Lf.AUDIO)c=a.audioTracks;else{const e=a.maxAutoLevel,t=e>-1?e+1:a.levels.length;c=a.levels.slice(0,t)}return c.forEach((e=>{e.bitrate>t&&(t=e.bitrate)})),t>0?t:NaN}getBufferLength(e){const c=this.media,t=e===Lf.AUDIO?this.audioBuffer:this.videoBuffer;if(!t||!c)return NaN;return 1e3*ir.bufferInfo(t,c.currentTime,this.config.maxBufferHole).len}createPlaylistLoader(){const{pLoader:e}=this.config,c=this.applyPlaylistData,t=e||this.config.loader;return class{constructor(e){this.loader=void 0,this.loader=new t(e)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(e,t,a){c(e),this.loader.load(e,t,a)}}}createFragmentLoader(){const{fLoader:e}=this.config,c=this.applyFragmentData,t=e||this.config.loader;return class{constructor(e){this.loader=void 0,this.loader=new t(e)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(e,t,a){c(e),this.loader.load(e,t,a)}}}},contentSteeringController:class extends Ac{constructor(e){super("content-steering",e.logger),this.hls=void 0,this.loader=null,this.uri=null,this.pathwayId=".",this._pathwayPriority=null,this.timeToLoad=300,this.reloadTimer=-1,this.updated=0,this.started=!1,this.enabled=!0,this.levels=null,this.audioTracks=null,this.subtitleTracks=null,this.penalizedPathways={},this.hls=e,this.registerListeners()}registerListeners(){const e=this.hls;e.on(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.on(dc.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(dc.MANIFEST_PARSED,this.onManifestParsed,this),e.on(dc.ERROR,this.onError,this)}unregisterListeners(){const e=this.hls;e&&(e.off(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.off(dc.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(dc.MANIFEST_PARSED,this.onManifestParsed,this),e.off(dc.ERROR,this.onError,this))}pathways(){return(this.levels||[]).reduce(((e,c)=>(-1===e.indexOf(c.pathwayId)&&e.push(c.pathwayId),e)),[])}get pathwayPriority(){return this._pathwayPriority}set pathwayPriority(e){this.updatePathwayPriority(e)}startLoad(){if(this.started=!0,this.clearTimeout(),this.enabled&&this.uri){if(this.updated){const e=1e3*this.timeToLoad-(performance.now()-this.updated);if(e>0)return void this.scheduleRefresh(this.uri,e)}this.loadSteeringManifest(this.uri)}}stopLoad(){this.started=!1,this.loader&&(this.loader.destroy(),this.loader=null),this.clearTimeout()}clearTimeout(){-1!==this.reloadTimer&&(self.clearTimeout(this.reloadTimer),this.reloadTimer=-1)}destroy(){this.unregisterListeners(),this.stopLoad(),this.hls=null,this.levels=this.audioTracks=this.subtitleTracks=null}removeLevel(e){const c=this.levels;c&&(this.levels=c.filter((c=>c!==e)))}onManifestLoading(){this.stopLoad(),this.enabled=!0,this.timeToLoad=300,this.updated=0,this.uri=null,this.pathwayId=".",this.levels=this.audioTracks=this.subtitleTracks=null}onManifestLoaded(e,c){const{contentSteering:t}=c;null!==t&&(this.pathwayId=t.pathwayId,this.uri=t.uri,this.started&&this.startLoad())}onManifestParsed(e,c){this.audioTracks=c.audioTracks,this.subtitleTracks=c.subtitleTracks}onError(e,c){const{errorAction:t}=c;if((null==t?void 0:t.action)===Ra&&t.flags===Ca){const e=this.levels;let a=this._pathwayPriority,r=this.pathwayId;if(c.context){const{groupId:t,pathwayId:a,type:i}=c.context;t&&e?r=this.getPathwayForGroupId(t,i,r):a&&(r=a)}r in this.penalizedPathways||(this.penalizedPathways[r]=performance.now()),!a&&e&&(a=this.pathways()),a&&a.length>1&&(this.updatePathwayPriority(a),t.resolved=this.pathwayId!==r),c.details!==lc.BUFFER_APPEND_ERROR||c.fatal?t.resolved||this.warn(`Could not resolve ${c.details} ("${c.error.message}") with content-steering for Pathway: ${r} levels: ${e?e.length:e} priorities: ${na(a)} penalized: ${na(this.penalizedPathways)}`):t.resolved=!0}}filterParsedLevels(e){this.levels=e;let c=this.getLevelsForPathway(this.pathwayId);if(0===c.length){const t=e[0].pathwayId;this.log(`No levels found in Pathway ${this.pathwayId}. Setting initial Pathway to "${t}"`),c=this.getLevelsForPathway(t),this.pathwayId=t}return c.length!==e.length&&this.log(`Found ${c.length}/${e.length} levels in Pathway "${this.pathwayId}"`),c}getLevelsForPathway(e){return null===this.levels?[]:this.levels.filter((c=>e===c.pathwayId))}updatePathwayPriority(e){let c;this._pathwayPriority=e;const t=this.penalizedPathways,a=performance.now();Object.keys(t).forEach((e=>{a-t[e]>3e5&&delete t[e]}));for(let r=0;r<e.length;r++){const a=e[r];if(a in t)continue;if(a===this.pathwayId)return;const i=this.hls.nextLoadLevel,n=this.hls.levels[i];if(c=this.getLevelsForPathway(a),c.length>0){this.log(`Setting Pathway to "${a}"`),this.pathwayId=a,hi(c),this.hls.trigger(dc.LEVELS_UPDATED,{levels:c});const e=this.hls.levels[i];n&&e&&this.levels&&(e.attrs["STABLE-VARIANT-ID"]!==n.attrs["STABLE-VARIANT-ID"]&&e.bitrate!==n.bitrate&&this.log(`Unstable Pathways change from bitrate ${n.bitrate} to ${e.bitrate}`),this.hls.nextLoadLevel=i);break}}}getPathwayForGroupId(e,c,t){const a=this.getLevelsForPathway(t).concat(this.levels||[]);for(let r=0;r<a.length;r++)if(c===bc&&a[r].hasAudioGroup(e)||c===pc&&a[r].hasSubtitleGroup(e))return a[r].pathwayId;return t}clonePathways(e){const c=this.levels;if(!c)return;const t={},a={};e.forEach((e=>{const{ID:r,"BASE-ID":i,"URI-REPLACEMENT":n}=e;if(c.some((e=>e.pathwayId===r)))return;const f=this.getLevelsForPathway(i).map((e=>{const c=new hr(e.attrs);c["PATHWAY-ID"]=r;const i=c.AUDIO&&`${c.AUDIO}_clone_${r}`,f=c.SUBTITLES&&`${c.SUBTITLES}_clone_${r}`;i&&(t[c.AUDIO]=i,c.AUDIO=i),f&&(a[c.SUBTITLES]=f,c.SUBTITLES=f);const s=Es(e.uri,c["STABLE-VARIANT-ID"],"PER-VARIANT-URIS",n),o=new aa({attrs:c,audioCodec:e.audioCodec,bitrate:e.bitrate,height:e.height,name:e.name,url:s,videoCodec:e.videoCodec,width:e.width});if(e.audioGroups)for(let t=1;t<e.audioGroups.length;t++)o.addGroupId("audio",`${e.audioGroups[t]}_clone_${r}`);if(e.subtitleGroups)for(let t=1;t<e.subtitleGroups.length;t++)o.addGroupId("text",`${e.subtitleGroups[t]}_clone_${r}`);return o}));c.push(...f),ys(this.audioTracks,t,n,r),ys(this.subtitleTracks,a,n,r)}))}loadSteeringManifest(e){const c=this.hls.config,t=c.loader;let a;this.loader&&this.loader.destroy(),this.loader=new t(c);try{a=new self.URL(e)}catch(o){return this.enabled=!1,void this.log(`Failed to parse Steering Manifest URI: ${e}`)}if("data:"!==a.protocol){const e=0|(this.hls.bandwidthEstimate||c.abrEwmaDefaultEstimate);a.searchParams.set("_HLS_pathway",this.pathwayId),a.searchParams.set("_HLS_throughput",""+e)}const r={responseType:"json",url:a.href},i=c.steeringManifestLoadPolicy.default,n=i.errorRetry||i.timeoutRetry||{},f={loadPolicy:i,timeout:i.maxLoadTimeMs,maxRetry:n.maxNumRetry||0,retryDelay:n.retryDelayMs||0,maxRetryDelay:n.maxRetryDelayMs||0},s={onSuccess:(e,c,t,r)=>{this.log(`Loaded steering manifest: "${a}"`);const i=e.data;if(1!==(null==i?void 0:i.VERSION))return void this.log(`Steering VERSION ${i.VERSION} not supported!`);this.updated=performance.now(),this.timeToLoad=i.TTL;const{"RELOAD-URI":n,"PATHWAY-CLONES":f,"PATHWAY-PRIORITY":s}=i;if(n)try{this.uri=new self.URL(n,a).href}catch(o){return this.enabled=!1,void this.log(`Failed to parse Steering Manifest RELOAD-URI: ${n}`)}this.scheduleRefresh(this.uri||t.url),f&&this.clonePathways(f);const l={steeringManifest:i,url:a.toString()};this.hls.trigger(dc.STEERING_MANIFEST_LOADED,l),s&&this.updatePathwayPriority(s)},onError:(e,c,t,a)=>{if(this.log(`Error loading steering manifest: ${e.code} ${e.text} (${c.url})`),this.stopLoad(),410===e.code)return this.enabled=!1,void this.log(`Steering manifest ${c.url} no longer available`);let r=1e3*this.timeToLoad;if(429!==e.code)this.scheduleRefresh(this.uri||c.url,r);else{const e=this.loader;if("function"==typeof(null==e?void 0:e.getResponseHeader)){const c=e.getResponseHeader("Retry-After");c&&(r=1e3*parseFloat(c))}this.log(`Steering manifest ${c.url} rate limited`)}},onTimeout:(e,c,t)=>{this.log(`Timeout loading steering manifest (${c.url})`),this.scheduleRefresh(this.uri||c.url)}};this.log(`Requesting steering manifest: ${a}`),this.loader.load(r,f,s)}scheduleRefresh(e,c=1e3*this.timeToLoad){this.clearTimeout(),this.reloadTimer=self.setTimeout((()=>{var c;const t=null==(c=this.hls)?void 0:c.media;!t||t.ended?this.scheduleRefresh(e,1e3*this.timeToLoad):this.loadSteeringManifest(e)}),c)}},interstitialsController:class extends Ac{constructor(e,c){super("interstitials",e.logger),this.HlsPlayerClass=void 0,this.hls=void 0,this.assetListLoader=void 0,this.mediaSelection=null,this.altSelection=null,this.media=null,this.detachedData=null,this.requiredTracks=null,this.manager=null,this.playerQueue=[],this.bufferedPos=-1,this.timelinePos=-1,this.schedule=void 0,this.playingItem=null,this.bufferingItem=null,this.waitingItem=null,this.endedItem=null,this.playingAsset=null,this.endedAsset=null,this.bufferingAsset=null,this.shouldPlay=!1,this.onPlay=()=>{this.shouldPlay=!0},this.onPause=()=>{this.shouldPlay=!1},this.onSeeking=()=>{const e=this.currentTime;if(void 0===e||this.playbackDisabled||!this.schedule)return;const c=e-this.timelinePos;if(Math.abs(c)<1/7056e5)return;const t=c<=-.01;this.timelinePos=e,this.bufferedPos=e;const a=this.playingItem;if(!a)return void this.checkBuffer();if(t){this.schedule.resetErrorsInRange(e,e-c)&&this.updateSchedule(!0)}if(this.checkBuffer(),t&&e<a.start||e>=a.end){var r;const c=this.findItemIndex(a);let i=this.schedule.findItemIndexAtTime(e);if(-1===i&&(i=c+(t?-1:1),this.log(`seeked ${t?"back ":""}to position not covered by schedule ${e} (resolving from ${c} to ${i})`)),!this.isInterstitial(a)&&null!=(r=this.media)&&r.paused&&(this.shouldPlay=!1),!t&&i>c){const e=this.schedule.findJumpRestrictedIndex(c+1,i);if(e>c)return void this.setSchedulePosition(e)}return void this.setSchedulePosition(i)}const i=this.playingAsset;if(!i){if(this.playingLastItem&&this.isInterstitial(a)){const c=a.event.assetList[0];c&&(this.endedItem=this.playingItem,this.playingItem=null,this.setScheduleToAssetAtTime(e,c))}return}const n=i.timelineStart,f=i.duration||0;var s;(t&&e<n||e>=n+f)&&(null!=(s=a.event)&&s.appendInPlace&&(this.clearInterstitial(a.event,a),this.flushFrontBuffer(e)),this.setScheduleToAssetAtTime(e,i))},this.onTimeupdate=()=>{const e=this.currentTime;if(void 0===e||this.playbackDisabled)return;if(!(e>this.timelinePos))return;this.timelinePos=e,e>this.bufferedPos&&this.checkBuffer();const c=this.playingItem;if(!c||this.playingLastItem)return;if(e>=c.end){this.timelinePos=c.end;const e=this.findItemIndex(c);this.setSchedulePosition(e+1)}const t=this.playingAsset;if(!t)return;e>=t.timelineStart+(t.duration||0)&&this.setScheduleToAssetAtTime(e,t)},this.onScheduleUpdate=(e,c)=>{const t=this.schedule;if(!t)return;const a=this.playingItem,r=t.events||[],i=t.items||[],n=t.durations,f=e.map((e=>e.identifier)),s=!(!r.length&&!f.length);(s||c)&&this.log(`INTERSTITIALS_UPDATED (${r.length}): ${r}\nSchedule: ${i.map((e=>uo(e)))} pos: ${this.timelinePos}`),f.length&&this.log(`Removed events ${f}`);let o=null,l=null;a&&(o=this.updateItem(a,this.timelinePos),this.itemsMatch(a,o)?this.playingItem=o:this.waitingItem=this.endedItem=null),this.waitingItem=this.updateItem(this.waitingItem),this.endedItem=this.updateItem(this.endedItem);const d=this.bufferingItem;if(d&&(l=this.updateItem(d,this.bufferedPos),this.itemsMatch(d,l)?this.bufferingItem=l:d.event&&(this.bufferingItem=this.playingItem,this.clearInterstitial(d.event,null))),e.forEach((e=>{e.assetList.forEach((e=>{this.clearAssetPlayer(e.identifier,null)}))})),this.playerQueue.forEach((e=>{if(e.interstitial.appendInPlace){const t=e.assetItem.timelineStart,a=e.timelineOffset-t;if(a)try{e.timelineOffset=t}catch(c){Math.abs(a)>co&&this.warn(`${c} ("${e.assetId}" ${e.timelineOffset}->${t})`)}}})),s||c){if(this.hls.trigger(dc.INTERSTITIALS_UPDATED,{events:r.slice(0),schedule:i.slice(0),durations:n,removedIds:f}),this.isInterstitial(a)&&f.includes(a.event.identifier))return this.warn(`Interstitial "${a.event.identifier}" removed while playing`),void this.primaryFallback(a.event);a&&this.trimInPlace(o,a),d&&l!==o&&this.trimInPlace(l,d),this.checkBuffer()}},this.hls=e,this.HlsPlayerClass=c,this.assetListLoader=new ho(e),this.schedule=new lo(this.onScheduleUpdate,e.logger),this.registerListeners()}registerListeners(){const e=this.hls;e&&(e.on(dc.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(dc.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(dc.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.on(dc.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(dc.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(dc.AUDIO_TRACK_UPDATED,this.onAudioTrackUpdated,this),e.on(dc.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.on(dc.SUBTITLE_TRACK_UPDATED,this.onSubtitleTrackUpdated,this),e.on(dc.EVENT_CUE_ENTER,this.onInterstitialCueEnter,this),e.on(dc.ASSET_LIST_LOADED,this.onAssetListLoaded,this),e.on(dc.BUFFER_APPENDED,this.onBufferAppended,this),e.on(dc.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(dc.BUFFERED_TO_END,this.onBufferedToEnd,this),e.on(dc.MEDIA_ENDED,this.onMediaEnded,this),e.on(dc.ERROR,this.onError,this),e.on(dc.DESTROYING,this.onDestroying,this))}unregisterListeners(){const e=this.hls;e&&(e.off(dc.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(dc.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(dc.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.off(dc.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(dc.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(dc.AUDIO_TRACK_UPDATED,this.onAudioTrackUpdated,this),e.off(dc.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.off(dc.SUBTITLE_TRACK_UPDATED,this.onSubtitleTrackUpdated,this),e.off(dc.EVENT_CUE_ENTER,this.onInterstitialCueEnter,this),e.off(dc.ASSET_LIST_LOADED,this.onAssetListLoaded,this),e.off(dc.BUFFER_CODECS,this.onBufferCodecs,this),e.off(dc.BUFFER_APPENDED,this.onBufferAppended,this),e.off(dc.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(dc.BUFFERED_TO_END,this.onBufferedToEnd,this),e.off(dc.MEDIA_ENDED,this.onMediaEnded,this),e.off(dc.ERROR,this.onError,this),e.off(dc.DESTROYING,this.onDestroying,this))}startLoad(){this.resumeBuffering()}stopLoad(){this.pauseBuffering()}resumeBuffering(){var e;null==(e=this.getBufferingPlayer())||e.resumeBuffering()}pauseBuffering(){var e;null==(e=this.getBufferingPlayer())||e.pauseBuffering()}destroy(){this.unregisterListeners(),this.stopLoad(),this.assetListLoader&&this.assetListLoader.destroy(),this.emptyPlayerQueue(),this.clearScheduleState(),this.schedule&&this.schedule.destroy(),this.media=this.detachedData=this.mediaSelection=this.requiredTracks=this.altSelection=this.schedule=this.manager=null,this.hls=this.HlsPlayerClass=this.log=null,this.assetListLoader=null,this.onPlay=this.onPause=this.onSeeking=this.onTimeupdate=null,this.onScheduleUpdate=null}onDestroying(){const e=this.primaryMedia||this.media;e&&this.removeMediaListeners(e)}removeMediaListeners(e){_i(e,"play",this.onPlay),_i(e,"pause",this.onPause),_i(e,"seeking",this.onSeeking),_i(e,"timeupdate",this.onTimeupdate)}onMediaAttaching(e,c){const t=this.media=c.media;Si(t,"seeking",this.onSeeking),Si(t,"timeupdate",this.onTimeupdate),Si(t,"play",this.onPlay),Si(t,"pause",this.onPause)}onMediaAttached(e,c){const t=this.effectivePlayingItem,a=this.detachedData;if(this.detachedData=null,null===t)this.checkStart();else if(!a){this.clearScheduleState();const e=this.findItemIndex(t);this.setSchedulePosition(e)}}clearScheduleState(){this.log("clear schedule state"),this.playingItem=this.bufferingItem=this.waitingItem=this.endedItem=this.playingAsset=this.endedAsset=this.bufferingAsset=null}onMediaDetaching(e,c){const t=!!c.transferMedia,a=this.media;if(this.media=null,!t&&(a&&this.removeMediaListeners(a),this.detachedData)){const e=this.getBufferingPlayer();e&&(this.log(`Removing schedule state for detachedData and ${e}`),this.playingAsset=this.endedAsset=this.bufferingAsset=this.bufferingItem=this.waitingItem=this.detachedData=null,e.detachMedia()),this.shouldPlay=!1}}get interstitialsManager(){if(!this.hls)return null;if(this.manager)return this.manager;const e=this,c=()=>e.bufferingItem||e.waitingItem,t=c=>c?e.getAssetPlayer(c.identifier):c,a=(c,a,i,n,f)=>{if(c){let s=c[a].start;const o=c.event;if(o){if("playout"===a||o.timelineOccupancy!==to.Point){const e=t(i);(null==e?void 0:e.interstitial)===o&&(s+=e.assetItem.startOffset+e[f])}}else{s+=("bufferedPos"===n?r():e[n])-c.start}return s}return 0},r=()=>{const c=e.bufferedPos;return c===Number.MAX_VALUE?i("primary"):Math.max(c,0)},i=c=>{var t,a;return null!=(t=e.primaryDetails)&&t.live?e.primaryDetails.edge:(null==(a=e.schedule)?void 0:a.durations[c])||0},n=(c,r)=>{var i,n;const f=e.effectivePlayingItem;if(null!=f&&null!=(i=f.event)&&i.restrictions.skip||!e.schedule)return;e.log(`seek to ${c} "${r}"`);const s=e.effectivePlayingItem,o=e.schedule.findItemIndexAtTime(c,r),l=null==(n=e.schedule.items)?void 0:n[o],d=e.getBufferingPlayer(),u=null==d?void 0:d.interstitial,h=null==u?void 0:u.appendInPlace,b=s&&e.itemsMatch(s,l);if(s&&(h||b)){const i=t(e.playingAsset),n=(null==i?void 0:i.media)||e.primaryMedia;if(n){const t="primary"===r?n.currentTime:a(s,r,e.playingAsset,"timelinePos","currentTime"),f=c-t,o=(h?t:n.currentTime)+f;if(o>=0&&(!i||h||o<=i.duration))return void(n.currentTime=o)}}if(l){let t=c;if("primary"!==r){const e=c-l[r].start;t=l.start+e}const a=!e.isInterstitial(l);if(e.isInterstitial(s)&&!s.event.appendInPlace||!a&&!l.event.appendInPlace){if(s){const i=e.findItemIndex(s);if(o>i){const c=e.schedule.findJumpRestrictedIndex(i+1,o);if(c>i)return void e.setSchedulePosition(c)}let n=0;if(a)e.timelinePos=t,e.checkBuffer();else{const e=l.event.assetList,t=c-(l[r]||l).start;for(let c=e.length;c--;){const a=e[c];if(a.duration&&t>=a.startOffset&&t<a.startOffset+a.duration){n=c;break}}}e.setSchedulePosition(o,n)}}else{const c=e.media||(h?null==d?void 0:d.media:null);c&&(c.currentTime=t)}}},f=()=>{const t=e.effectivePlayingItem;if(e.isInterstitial(t))return t;const a=c();return e.isInterstitial(a)?a:null},s={get bufferedEnd(){const t=c(),r=e.bufferingItem;var i;return r&&r===t&&(a(r,"playout",e.bufferingAsset,"bufferedPos","bufferedEnd")-r.playout.start||(null==(i=e.bufferingAsset)?void 0:i.startOffset))||0},get currentTime(){const c=f(),t=e.effectivePlayingItem;return t&&t===c?a(t,"playout",e.effectivePlayingAsset,"timelinePos","currentTime")-t.playout.start:0},set currentTime(c){const t=f(),a=e.effectivePlayingItem;a&&a===t&&n(c+a.playout.start,"playout")},get duration(){const e=f();return e?e.playout.end-e.playout.start:0},get assetPlayers(){var c;const t=null==(c=f())?void 0:c.event.assetList;return t?t.map((c=>e.getAssetPlayer(c.identifier))):[]},get playingIndex(){var c;const t=null==(c=f())?void 0:c.event;return t&&e.effectivePlayingAsset?t.findAssetIndex(e.effectivePlayingAsset):-1},get scheduleItem(){return f()}};return this.manager={get events(){var c;return(null==(c=e.schedule)||null==(c=c.events)?void 0:c.slice(0))||[]},get schedule(){var c;return(null==(c=e.schedule)||null==(c=c.items)?void 0:c.slice(0))||[]},get interstitialPlayer(){return f()?s:null},get playerQueue(){return e.playerQueue.slice(0)},get bufferingAsset(){return e.bufferingAsset},get bufferingItem(){return c()},get bufferingIndex(){const t=c();return e.findItemIndex(t)},get playingAsset(){return e.effectivePlayingAsset},get playingItem(){return e.effectivePlayingItem},get playingIndex(){const c=e.effectivePlayingItem;return e.findItemIndex(c)},primary:{get bufferedEnd(){return r()},get currentTime(){const c=e.timelinePos;return c>0?c:0},set currentTime(e){n(e,"primary")},get duration(){return i("primary")},get seekableStart(){var c;return(null==(c=e.primaryDetails)?void 0:c.fragmentStart)||0}},integrated:{get bufferedEnd(){return a(c(),"integrated",e.bufferingAsset,"bufferedPos","bufferedEnd")},get currentTime(){return a(e.effectivePlayingItem,"integrated",e.effectivePlayingAsset,"timelinePos","currentTime")},set currentTime(e){n(e,"integrated")},get duration(){return i("integrated")},get seekableStart(){var c;return((c,t)=>{var a;if(0!==c&&"primary"!==t&&null!=(a=e.schedule)&&a.length){var r;const a=e.schedule.findItemIndexAtTime(c),i=null==(r=e.schedule.items)?void 0:r[a];if(i)return c+(i[t].start-i.start)}return c})((null==(c=e.primaryDetails)?void 0:c.fragmentStart)||0,"integrated")}},skip:()=>{const c=e.effectivePlayingItem,t=null==c?void 0:c.event;if(t&&!t.restrictions.skip){const a=e.findItemIndex(c);if(t.appendInPlace){const e=c.playout.start+c.event.duration;n(e+.001,"playout")}else e.advanceAfterAssetEnded(t,a,1/0)}}}}get effectivePlayingItem(){return this.waitingItem||this.playingItem||this.endedItem}get effectivePlayingAsset(){return this.playingAsset||this.endedAsset}get playingLastItem(){var e;const c=this.playingItem,t=null==(e=this.schedule)?void 0:e.items;return!!(this.playbackStarted&&c&&t)&&this.findItemIndex(c)===t.length-1}get playbackStarted(){return null!==this.effectivePlayingItem}get currentTime(){var e,c;if(null===this.mediaSelection)return;const t=this.waitingItem||this.playingItem;if(this.isInterstitial(t)&&!t.event.appendInPlace)return;let a=this.media;!a&&null!=(e=this.bufferingItem)&&null!=(e=e.event)&&e.appendInPlace&&(a=this.primaryMedia);const r=null==(c=a)?void 0:c.currentTime;return void 0!==r&&nc(r)?r:void 0}get primaryMedia(){var e;return this.media||(null==(e=this.detachedData)?void 0:e.media)||null}isInterstitial(e){return!(null==e||!e.event)}retreiveMediaSource(e,c){const t=this.getAssetPlayer(e);t&&this.transferMediaFromPlayer(t,c)}transferMediaFromPlayer(e,c){const t=e.interstitial.appendInPlace,a=e.media;if(t&&a===this.primaryMedia){if(this.bufferingAsset=null,(!c||this.isInterstitial(c)&&!c.event.appendInPlace)&&c&&a)return void(this.detachedData={media:a});const t=e.transferMedia();this.log(`transfer MediaSource from ${e} ${na(t)}`),this.detachedData=t}else c&&a&&(this.shouldPlay||(this.shouldPlay=!a.paused))}transferMediaTo(e,c){var t,a;if(e.media===c)return;let r=null;const i=this.hls,n=e!==i,f=n&&e.interstitial.appendInPlace,s=null==(t=this.detachedData)?void 0:t.mediaSource;let o;if(i.media)f&&(r=i.transferMedia(),this.detachedData=r),o="Primary";else if(s){const e=this.getBufferingPlayer();e?(r=e.transferMedia(),o=`${e}`):o="detached MediaSource"}else o="detached media";if(!r)if(s)r=this.detachedData,this.log(`using detachedData: MediaSource ${na(r)}`);else if(!this.detachedData||i.media===c){const e=this.playerQueue;e.length>1&&e.forEach((e=>{if(n&&e.interstitial.appendInPlace!==f){const c=e.interstitial;this.clearInterstitial(e.interstitial,null),c.appendInPlace=!1,c.appendInPlace&&this.warn(`Could not change append strategy for queued assets ${c}`)}})),this.hls.detachMedia(),this.detachedData={media:c}}const l=r&&"mediaSource"in r&&"closed"!==(null==(a=r.mediaSource)?void 0:a.readyState),d=l&&r?r:c;this.log(`${l?"transfering MediaSource":"attaching media"} to ${n?e:"Primary"} from ${o} (media.currentTime: ${c.currentTime})`);const u=this.schedule;if(d===r&&u){const c=n&&e.assetId===u.assetIdAtEnd;d.overrides={duration:u.duration,endOfStream:!n||c}}e.attachMedia(d)}onInterstitialCueEnter(){this.onTimeupdate()}checkStart(){const e=this.schedule,c=null==e?void 0:e.events;if(!c||this.playbackDisabled||!this.media)return;-1===this.bufferedPos&&(this.bufferedPos=0);const t=this.timelinePos,a=this.effectivePlayingItem;if(-1===t){const t=this.hls.startPosition;if(this.log(po("checkStart",t)),this.timelinePos=t,c.length&&c[0].cue.pre){const t=e.findEventIndex(c[0].identifier);this.setSchedulePosition(t)}else if(t>=0||!this.primaryLive){const c=this.timelinePos=t>0?t:0,a=e.findItemIndexAtTime(c);this.setSchedulePosition(a)}}else if(a&&!this.playingItem){const c=e.findItemIndex(a);this.setSchedulePosition(c)}}advanceAssetBuffering(e,c){const t=e.event,a=t.findAssetIndex(c),r=fo(t,a);if(t.isAssetPastPlayoutLimit(r)){if(this.schedule){var i;const c=null==(i=this.schedule.items)?void 0:i[this.findItemIndex(e)+1];c&&this.bufferedToItem(c)}}else this.bufferedToEvent(e,r)}advanceAfterAssetEnded(e,c,t){const a=fo(e,t);if(e.isAssetPastPlayoutLimit(a)){if(this.schedule){const t=this.schedule.items;if(t){const a=c+1;if(a>=t.length)return void this.setSchedulePosition(-1);const r=e.resumeTime;this.timelinePos<r&&(this.log(po("advanceAfterAssetEnded",r)),this.timelinePos=r,e.appendInPlace&&this.advanceInPlace(r),this.checkBuffer(this.bufferedPos<r)),this.setSchedulePosition(a)}}}else{if(e.appendInPlace){const c=e.assetList[a];c&&this.advanceInPlace(c.timelineStart)}this.setSchedulePosition(c,a)}}setScheduleToAssetAtTime(e,c){const t=this.schedule;if(!t)return;const a=c.parentIdentifier,r=t.getEvent(a);if(r){const c=t.findEventIndex(a),i=t.findAssetIndex(r,e);this.advanceAfterAssetEnded(r,c,i-1)}}setSchedulePosition(e,c){var t;const a=null==(t=this.schedule)?void 0:t.items;if(!a||this.playbackDisabled)return;const r=e>=0?a[e]:null;this.log(`setSchedulePosition ${e}, ${c} (${r?uo(r):r}) pos: ${this.timelinePos}`);const i=this.waitingItem||this.playingItem,n=this.playingLastItem;if(this.isInterstitial(i)){const t=i.event,o=this.playingAsset,l=null==o?void 0:o.identifier,d=l?this.getAssetPlayer(l):null;if(d&&l&&(!this.eventItemsMatch(i,r)||void 0!==c&&l!==t.assetList[c].identifier)){var f;const c=t.findAssetIndex(o);if(this.log(`INTERSTITIAL_ASSET_ENDED ${c+1}/${t.assetList.length} ${so(o)}`),this.endedAsset=o,this.playingAsset=null,this.hls.trigger(dc.INTERSTITIAL_ASSET_ENDED,{asset:o,assetListIndex:c,event:t,schedule:a.slice(0),scheduleIndex:e,player:d}),i!==this.playingItem)return void(this.itemsMatch(i,this.playingItem)&&!this.playingAsset&&this.advanceAfterAssetEnded(t,this.findItemIndex(this.playingItem),c));this.retreiveMediaSource(l,r),!d.media||null!=(f=this.detachedData)&&f.mediaSource||d.detachMedia()}if(!this.eventItemsMatch(i,r)&&(this.endedItem=i,this.playingItem=null,this.log(`INTERSTITIAL_ENDED ${t} ${uo(i)}`),t.hasPlayed=!0,this.hls.trigger(dc.INTERSTITIAL_ENDED,{event:t,schedule:a.slice(0),scheduleIndex:e}),t.cue.once)){var s;this.updateSchedule();const e=null==(s=this.schedule)?void 0:s.items;if(r&&e){const t=this.findItemIndex(r);this.advanceSchedule(t,e,c,i,n)}return}}this.advanceSchedule(e,a,c,i,n)}advanceSchedule(e,c,t,a,r){const i=this.schedule;if(!i)return;const n=c[e]||null,f=this.primaryMedia,s=this.playerQueue;if(s.length&&s.forEach((c=>{const t=c.interstitial,a=i.findEventIndex(t.identifier);(a<e||a>e+1)&&this.clearInterstitial(t,n)})),this.isInterstitial(n)){this.timelinePos=Math.min(Math.max(this.timelinePos,n.start),n.end);const r=n.event;if(void 0===t){const c=fo(r,(t=i.findAssetIndex(r,this.timelinePos))-1);if(r.isAssetPastPlayoutLimit(c)||r.appendInPlace&&this.timelinePos===n.end)return void this.advanceAfterAssetEnded(r,e,t);t=c}const s=this.waitingItem;this.assetsBuffered(n,f)||this.setBufferingItem(n);let o=this.preloadAssets(r,t);if(this.eventItemsMatch(n,s||a)||(this.waitingItem=n,this.log(`INTERSTITIAL_STARTED ${uo(n)} ${r.appendInPlace?"append in place":""}`),this.hls.trigger(dc.INTERSTITIAL_STARTED,{event:r,schedule:c.slice(0),scheduleIndex:e})),!r.assetListLoaded)return void this.log(`Waiting for ASSET-LIST to complete loading ${r}`);if(r.assetListLoader&&(r.assetListLoader.destroy(),r.assetListLoader=void 0),!f)return void this.log(`Waiting for attachMedia to start Interstitial ${r}`);this.waitingItem=this.endedItem=null,this.playingItem=n;const l=r.assetList[t];if(!l)return void this.advanceAfterAssetEnded(r,e,t||0);if(o||(o=this.getAssetPlayer(l.identifier)),null===o||o.destroyed){const e=r.assetList.length;this.warn(`asset ${t+1}/${e} player destroyed ${r}`),o=this.createAssetPlayer(r,l,t),o.loadSource()}if(!this.eventItemsMatch(n,this.bufferingItem)&&r.appendInPlace&&this.isAssetBuffered(l))return;this.startAssetPlayer(o,t,c,e,f),this.shouldPlay&&bo(o.media)}else n?(this.resumePrimary(n,e,a),this.shouldPlay&&bo(this.hls.media)):r&&this.isInterstitial(a)&&(this.endedItem=null,this.playingItem=a,a.event.appendInPlace||this.attachPrimary(i.durations.primary,null))}get playbackDisabled(){return!1===this.hls.config.enableInterstitialPlayback}get primaryDetails(){var e;return null==(e=this.mediaSelection)?void 0:e.main.details}get primaryLive(){var e;return!(null==(e=this.primaryDetails)||!e.live)}resumePrimary(e,c,t){var a,r;if(this.playingItem=e,this.playingAsset=this.endedAsset=null,this.waitingItem=this.endedItem=null,this.bufferedToItem(e),this.log(`resuming ${uo(e)}`),null==(a=this.detachedData)||!a.mediaSource){let t=this.timelinePos;(t<e.start||t>=e.end)&&(t=this.getPrimaryResumption(e,c),this.log(po("resumePrimary",t)),this.timelinePos=t),this.attachPrimary(t,e)}if(!t)return;const i=null==(r=this.schedule)?void 0:r.items;i&&(this.log(`INTERSTITIALS_PRIMARY_RESUMED ${uo(e)}`),this.hls.trigger(dc.INTERSTITIALS_PRIMARY_RESUMED,{schedule:i.slice(0),scheduleIndex:c}),this.checkBuffer())}getPrimaryResumption(e,c){const t=e.start;if(this.primaryLive){const e=this.primaryDetails;if(0===c)return this.hls.startPosition;if(e&&(t<e.fragmentStart||t>e.edge))return this.hls.liveSyncPosition||-1}return t}isAssetBuffered(e){const c=this.getAssetPlayer(e.identifier);if(null!=c&&c.hls)return c.hls.bufferedToEnd;return ir.bufferInfo(this.primaryMedia,this.timelinePos,0).end+1>=e.timelineStart+(e.duration||0)}attachPrimary(e,c,t){c?this.setBufferingItem(c):this.bufferingItem=this.playingItem,this.bufferingAsset=null;const a=this.primaryMedia;if(!a)return;const r=this.hls;r.media?this.checkBuffer():(this.transferMediaTo(r,a),t&&this.startLoadingPrimaryAt(e,t)),t||(this.log(po("attachPrimary",e)),this.timelinePos=e,this.startLoadingPrimaryAt(e,t))}startLoadingPrimaryAt(e,c){var t;const a=this.hls;!a.loadingEnabled||!a.media||Math.abs(((null==(t=a.mainForwardBufferInfo)?void 0:t.start)||a.media.currentTime)-e)>.5?a.startLoad(e,c):a.bufferingEnabled||a.resumeBuffering()}onManifestLoading(){var e;this.stopLoad(),null==(e=this.schedule)||e.reset(),this.emptyPlayerQueue(),this.clearScheduleState(),this.shouldPlay=!1,this.bufferedPos=this.timelinePos=-1,this.mediaSelection=this.altSelection=this.manager=this.requiredTracks=null,this.hls.off(dc.BUFFER_CODECS,this.onBufferCodecs,this),this.hls.on(dc.BUFFER_CODECS,this.onBufferCodecs,this)}onLevelUpdated(e,c){if(-1===c.level||!this.schedule)return;const t=this.hls.levels[c.level];if(!t.details)return;const a=kc(kc({},this.mediaSelection||this.altSelection),{},{main:t});this.mediaSelection=a,this.schedule.parseInterstitialDateRanges(a,this.hls.config.interstitialAppendInPlace),!this.effectivePlayingItem&&this.schedule.items&&this.checkStart()}onAudioTrackUpdated(e,c){const t=this.hls.audioTracks[c.id],a=this.mediaSelection;if(!a)return void(this.altSelection=kc(kc({},this.altSelection),{},{audio:t}));const r=kc(kc({},a),{},{audio:t});this.mediaSelection=r}onSubtitleTrackUpdated(e,c){const t=this.hls.subtitleTracks[c.id],a=this.mediaSelection;if(!a)return void(this.altSelection=kc(kc({},this.altSelection),{},{subtitles:t}));const r=kc(kc({},a),{},{subtitles:t});this.mediaSelection=r}onAudioTrackSwitching(e,c){const t=oa(c);this.playerQueue.forEach((({hls:e})=>e&&(e.setAudioOption(c)||e.setAudioOption(t))))}onSubtitleTrackSwitch(e,c){const t=oa(c);this.playerQueue.forEach((({hls:e})=>e&&(e.setSubtitleOption(c)||-1!==c.id&&e.setSubtitleOption(t))))}onBufferCodecs(e,c){const t=c.tracks;t&&(this.requiredTracks=t)}onBufferAppended(e,c){this.checkBuffer()}onBufferFlushed(e,c){const t=this.playingItem;if(t&&!this.itemsMatch(t,this.bufferingItem)&&!this.isInterstitial(t)){const e=this.timelinePos;this.bufferedPos=e,this.checkBuffer()}}onBufferedToEnd(e){if(!this.schedule)return;const c=this.schedule.events;if(this.bufferedPos<Number.MAX_VALUE&&c){for(let e=0;e<c.length;e++){const a=c[e];if(a.cue.post){var t;const e=this.schedule.findEventIndex(a.identifier),c=null==(t=this.schedule.items)?void 0:t[e];this.isInterstitial(c)&&this.eventItemsMatch(c,this.bufferingItem)&&this.bufferedToItem(c,0);break}}this.bufferedPos=Number.MAX_VALUE}}onMediaEnded(e){const c=this.playingItem;if(!this.playingLastItem&&c){const e=this.findItemIndex(c);this.setSchedulePosition(e+1)}else this.shouldPlay=!1}updateItem(e,c){var t;const a=null==(t=this.schedule)?void 0:t.items;if(e&&a){return a[this.findItemIndex(e,c)]||null}return null}trimInPlace(e,c){if(this.isInterstitial(e)&&e.event.appendInPlace&&c.end-e.end>.25){e.event.assetList.forEach(((c,t)=>{e.event.isAssetPastPlayoutLimit(t)&&this.clearAssetPlayer(c.identifier,null)}));const t=e.end+.25,a=ir.bufferInfo(this.primaryMedia,t,0);if(a.end>t||(a.nextStart||0)>t){this.log(`trim buffered interstitial ${uo(e)} (was ${uo(c)})`);const a=!0;this.attachPrimary(t,null,a),this.flushFrontBuffer(t)}}}itemsMatch(e,c){return!!c&&(e===c||e.event&&c.event&&this.eventItemsMatch(e,c)||!e.event&&!c.event&&this.findItemIndex(e)===this.findItemIndex(c))}eventItemsMatch(e,c){var t;return!!c&&(e===c||e.event.identifier===(null==(t=c.event)?void 0:t.identifier))}findItemIndex(e,c){return e&&this.schedule?this.schedule.findItemIndex(e,c):-1}updateSchedule(e=!1){var c;const t=this.mediaSelection;t&&(null==(c=this.schedule)||c.updateSchedule(t,[],e))}checkBuffer(e){var c;const t=null==(c=this.schedule)?void 0:c.items;if(!t)return;const a=ir.bufferInfo(this.primaryMedia,this.timelinePos,0);e&&(this.bufferedPos=this.timelinePos),e||(e=a.len<1),this.updateBufferedPos(a.end,t,e)}updateBufferedPos(e,c,t){const a=this.schedule,r=this.bufferingItem;if(this.bufferedPos>e||!a)return;if(1===c.length&&this.itemsMatch(c[0],r))return void(this.bufferedPos=e);const i=this.playingItem,n=this.findItemIndex(i);let f=a.findItemIndexAtTime(e);if(this.bufferedPos<e){var s;const t=this.findItemIndex(r),a=Math.min(t+1,c.length-1),i=c[a];if((-1===f&&r&&e>=r.end||null!=(s=i.event)&&s.appendInPlace&&e+.01>=i.start)&&(f=a),this.isInterstitial(r)){const e=r.event;if(a-n>1&&!1===e.appendInPlace)return;if(0===e.assetList.length&&e.assetListLoader)return}if(this.bufferedPos=e,f>t&&f>n)this.bufferedToItem(i);else{const c=this.primaryDetails;this.primaryLive&&c&&e>c.edge-c.targetduration&&i.start<c.edge+this.hls.config.interstitialLiveLookAhead&&this.isInterstitial(i)&&this.preloadAssets(i.event,0)}}else t&&i&&!this.itemsMatch(i,r)&&(f===n?this.bufferedToItem(i):f===n+1&&this.bufferedToItem(c[f]))}assetsBuffered(e,c){return 0!==e.event.assetList.length&&!e.event.assetList.some((e=>{const t=this.getAssetPlayer(e.identifier);return!(null!=t&&t.bufferedInPlaceToEnd(c))}))}setBufferingItem(e){const c=this.bufferingItem,t=this.schedule;if(!this.itemsMatch(e,c)&&t){const{items:a,events:r}=t;if(!a||!r)return c;const i=this.isInterstitial(e),n=this.getBufferingPlayer();this.bufferingItem=e,this.bufferedPos=Math.max(e.start,Math.min(e.end,this.timelinePos));const f=n?n.remaining:c?c.end-this.timelinePos:0;if(this.log(`INTERSTITIALS_BUFFERED_TO_BOUNDARY ${uo(e)}`+(c?` (${f.toFixed(2)} remaining)`:"")),!this.playbackDisabled)if(i){const c=t.findAssetIndex(e.event,this.bufferedPos);e.event.assetList.forEach(((e,t)=>{const a=this.getAssetPlayer(e.identifier);a&&(t===c&&a.loadSource(),a.resumeBuffering())}))}else this.hls.resumeBuffering(),this.playerQueue.forEach((e=>e.pauseBuffering()));this.hls.trigger(dc.INTERSTITIALS_BUFFERED_TO_BOUNDARY,{events:r.slice(0),schedule:a.slice(0),bufferingIndex:this.findItemIndex(e),playingIndex:this.findItemIndex(this.playingItem)})}else this.bufferingItem!==e&&(this.bufferingItem=e);return c}bufferedToItem(e,c=0){const t=this.setBufferingItem(e);if(!this.playbackDisabled)if(this.isInterstitial(e))this.bufferedToEvent(e,c);else if(null!==t){this.bufferingAsset=null;const c=this.detachedData;if(c)if(c.mediaSource){const c=!0;this.attachPrimary(e.start,e,c)}else this.preloadPrimary(e);else this.preloadPrimary(e)}}preloadPrimary(e){const c=this.findItemIndex(e),t=this.getPrimaryResumption(e,c);this.startLoadingPrimaryAt(t)}bufferedToEvent(e,c){const t=e.event,a=0===t.assetList.length&&!t.assetListLoader,r=t.cue.once;if(a||!r){const e=this.preloadAssets(t,c);if(null!=e&&e.interstitial.appendInPlace){const c=this.primaryMedia;c&&this.bufferAssetPlayer(e,c)}}}preloadAssets(e,c){const t=e.assetUrl,a=e.assetList.length,r=0===a&&!e.assetListLoader,i=e.cue.once;if(r){const r=e.timelineStart;if(e.appendInPlace){var n;const c=this.playingItem;this.isInterstitial(c)||(null==c||null==(n=c.nextEvent)?void 0:n.identifier)!==e.identifier||this.flushFrontBuffer(r+.25)}let i,f=0;if(!this.playingItem&&this.primaryLive&&(f=this.hls.startPosition,-1===f&&(f=this.hls.liveSyncPosition||0)),f&&!e.cue.pre&&!e.cue.post){const e=f-r;e>0&&(i=Math.round(1e3*e)/1e3)}if(this.log(`Load interstitial asset ${c+1}/${t?1:a} ${e}${i?` live-start: ${f} start-offset: ${i}`:""}`),t)return this.createAsset(e,0,0,r,e.duration,t);const s=this.assetListLoader.loadAssetList(e,i);s&&(e.assetListLoader=s)}else if(!i&&a){for(let r=c;r<a;r++){const c=e.assetList[r],t=this.getAssetPlayerQueueIndex(c.identifier);-1!==t&&!this.playerQueue[t].destroyed||c.error||this.createAssetPlayer(e,c,r)}const t=e.assetList[c];if(t){const e=this.getAssetPlayer(t.identifier);return e&&e.loadSource(),e}}return null}flushFrontBuffer(e){const c=this.requiredTracks;if(!c)return;this.log(`Removing front buffer starting at ${e}`);Object.keys(c).forEach((c=>{this.hls.trigger(dc.BUFFER_FLUSHING,{startOffset:e,endOffset:1/0,type:c})}))}getAssetPlayerQueueIndex(e){const c=this.playerQueue;for(let t=0;t<c.length;t++)if(e===c[t].assetId)return t;return-1}getAssetPlayer(e){const c=this.getAssetPlayerQueueIndex(e);return this.playerQueue[c]||null}getBufferingPlayer(){const{playerQueue:e,primaryMedia:c}=this;if(c)for(let t=0;t<e.length;t++)if(e[t].media===c)return e[t];return null}createAsset(e,c,t,a,r,i){const n={parentIdentifier:e.identifier,identifier:ao(e,i,c),duration:r,startOffset:t,timelineStart:a,uri:i};return this.createAssetPlayer(e,n,c)}createAssetPlayer(e,c,t){const a=this.hls,r=a.userConfig;let i=r.videoPreference;const n=a.loadLevelObj||a.levels[a.currentLevel];(i||n)&&(i=_c({},i),n.videoCodec&&(i.videoCodec=n.videoCodec),n.videoRange&&(i.allowedVideoRanges=[n.videoRange]));const f=a.audioTracks[a.audioTrack],s=a.subtitleTracks[a.subtitleTrack];let o=0;if(this.primaryLive||e.appendInPlace){const e=this.timelinePos-c.timelineStart;if(e>1){const t=c.duration;t&&e<t&&(o=e)}}const l=c.identifier,d=kc(kc({},r),{},{maxMaxBufferLength:Math.min(180,a.config.maxMaxBufferLength),autoStartLoad:!0,startFragPrefetch:!0,primarySessionId:a.sessionId,assetPlayerId:l,abrEwmaDefaultEstimate:a.bandwidthEstimate,interstitialsController:void 0,startPosition:o,liveDurationInfinity:!1,testBandwidth:!1,videoPreference:i,audioPreference:f||r.audioPreference,subtitlePreference:s||r.subtitlePreference});e.appendInPlace&&(e.appendInPlaceStarted=!0,c.timelineStart&&(d.timelineOffset=c.timelineStart));const u=d.cmcd;null!=u&&u.sessionId&&u.contentId&&(d.cmcd=_c({},u,{contentId:Fs(c.uri)})),this.getAssetPlayer(l)&&this.warn(`Duplicate date range identifier ${e} and asset ${l}`);const h=new oo(this.HlsPlayerClass,d,e,c);this.playerQueue.push(h),e.assetList[t]=c;let b=!0;const p=a=>{if(a.live){var r;const c=new Error(`Interstitials MUST be VOD assets ${e}`),a={fatal:!0,type:oc.OTHER_ERROR,details:lc.INTERSTITIAL_ASSET_ITEM_ERROR,error:c},i=(null==(r=this.schedule)?void 0:r.findEventIndex(e.identifier))||-1;return void this.handleAssetItemError(a,e,i,t,c.message)}const i=a.edge-a.fragmentStart,n=c.duration;(b||null===n||i>n)&&(b=!1,this.log(`Interstitial asset "${l}" duration change ${n} > ${i}`),c.duration=i,this.updateSchedule())};h.on(dc.LEVEL_UPDATED,((e,{details:c})=>p(c))),h.on(dc.LEVEL_PTS_UPDATED,((e,{details:c})=>p(c))),h.on(dc.EVENT_CUE_ENTER,(()=>this.onInterstitialCueEnter()));const g=(e,c)=>{const t=this.getAssetPlayer(l);if(t&&c.tracks){t.off(dc.BUFFER_CODECS,g),t.tracks=c.tracks;const e=this.primaryMedia;this.bufferingAsset===t.assetItem&&e&&!t.media&&this.bufferAssetPlayer(t,e)}};h.on(dc.BUFFER_CODECS,g);h.on(dc.BUFFERED_TO_END,(()=>{var t;const a=this.getAssetPlayer(l);if(this.log(`buffered to end of asset ${a}`),!a||!this.schedule)return;const r=this.schedule.findEventIndex(e.identifier),i=null==(t=this.schedule.items)?void 0:t[r];this.isInterstitial(i)&&this.advanceAssetBuffering(i,c)}));const m=c=>()=>{if(!this.getAssetPlayer(l)||!this.schedule)return;this.shouldPlay=!0;const t=this.schedule.findEventIndex(e.identifier);this.advanceAfterAssetEnded(e,t,c)};return h.once(dc.MEDIA_ENDED,m(t)),h.once(dc.PLAYOUT_LIMIT_REACHED,m(1/0)),h.on(dc.ERROR,((c,a)=>{if(!this.schedule)return;const r=this.getAssetPlayer(l);if(a.details===lc.BUFFER_STALLED_ERROR)return null!=r&&r.appendInPlace?void this.handleInPlaceStall(e):(this.onTimeupdate(),void this.checkBuffer(!0));this.handleAssetItemError(a,e,this.schedule.findEventIndex(e.identifier),t,`Asset player error ${a.error} ${e}`)})),h.on(dc.DESTROYING,(()=>{if(!this.getAssetPlayer(l)||!this.schedule)return;const c=new Error(`Asset player destroyed unexpectedly ${l}`),a={fatal:!0,type:oc.OTHER_ERROR,details:lc.INTERSTITIAL_ASSET_ITEM_ERROR,error:c};this.handleAssetItemError(a,e,this.schedule.findEventIndex(e.identifier),t,c.message)})),this.log(`INTERSTITIAL_ASSET_PLAYER_CREATED ${so(c)}`),this.hls.trigger(dc.INTERSTITIAL_ASSET_PLAYER_CREATED,{asset:c,assetListIndex:t,event:e,player:h}),h}clearInterstitial(e,c){e.assetList.forEach((e=>{this.clearAssetPlayer(e.identifier,c)})),e.reset()}resetAssetPlayer(e){const c=this.getAssetPlayerQueueIndex(e);if(-1!==c){this.log(`reset asset player "${e}" after error`);const t=this.playerQueue[c];this.transferMediaFromPlayer(t,null),t.resetDetails()}}clearAssetPlayer(e,c){const t=this.getAssetPlayerQueueIndex(e);if(-1!==t){const e=this.playerQueue[t];this.log(`clear ${e} toSegment: ${c?uo(c):c}`),this.transferMediaFromPlayer(e,c),this.playerQueue.splice(t,1),e.destroy()}}emptyPlayerQueue(){let e;for(;e=this.playerQueue.pop();)e.destroy();this.playerQueue=[]}startAssetPlayer(e,c,t,a,r){const{interstitial:i,assetItem:n,assetId:f}=e,s=i.assetList.length,o=this.playingAsset;this.endedAsset=null,this.playingAsset=n,o&&o.identifier===f||(o&&(this.clearAssetPlayer(o.identifier,t[a]),delete o.error),this.log(`INTERSTITIAL_ASSET_STARTED ${c+1}/${s} ${so(n)}`),this.hls.trigger(dc.INTERSTITIAL_ASSET_STARTED,{asset:n,assetListIndex:c,event:i,schedule:t.slice(0),scheduleIndex:a,player:e})),this.bufferAssetPlayer(e,r)}bufferAssetPlayer(e,c){var t,a;if(!this.schedule)return;const{interstitial:r,assetItem:i}=e,n=this.schedule.findEventIndex(r.identifier),f=null==(t=this.schedule.items)?void 0:t[n];if(!f)return;e.loadSource(),this.setBufferingItem(f),this.bufferingAsset=i;const s=this.getBufferingPlayer();if(s===e)return;const o=r.appendInPlace;if(o&&!1===(null==s?void 0:s.interstitial.appendInPlace))return;const l=(null==s?void 0:s.tracks)||(null==(a=this.detachedData)?void 0:a.tracks)||this.requiredTracks;if(o&&i!==this.playingAsset){if(!e.tracks)return void this.log(`Waiting for track info before buffering ${e}`);if(l&&!Cc(l,e.tracks)){const c=new Error(`Asset ${so(i)} SourceBuffer tracks ('${Object.keys(e.tracks)}') are not compatible with primary content tracks ('${Object.keys(l)}')`),t={fatal:!0,type:oc.OTHER_ERROR,details:lc.INTERSTITIAL_ASSET_ITEM_ERROR,error:c},a=r.findAssetIndex(i);return void this.handleAssetItemError(t,r,n,a,c.message)}}this.transferMediaTo(e,c)}handleInPlaceStall(e){const c=this.schedule,t=this.primaryMedia;if(!c||!t)return;const a=t.currentTime,r=c.findAssetIndex(e,a),i=e.assetList[r];if(i){const n=this.getAssetPlayer(i.identifier);if(n){const f=n.currentTime||a-i.timelineStart,s=n.duration-f;if(this.warn(`Stalled at ${f} of ${f+s} in ${n} ${e} (media.currentTime: ${a})`),f&&(s/t.playbackRate<.5||n.bufferedInPlaceToEnd(t))&&n.hls){const t=c.findEventIndex(e.identifier);this.advanceAfterAssetEnded(e,t,r)}}}}advanceInPlace(e){const c=this.primaryMedia;c&&c.currentTime<e&&(c.currentTime=e)}handleAssetItemError(e,c,t,a,r){if(e.details===lc.BUFFER_STALLED_ERROR)return;const i=c.assetList[a]||null;if(this.warn(`INTERSTITIAL_ASSET_ERROR ${i?so(i):i} ${e.error}`),!this.schedule)return;const n=(null==i?void 0:i.identifier)||"",f=this.getAssetPlayerQueueIndex(n),s=this.playerQueue[f]||null,o=this.schedule.items,l=_c({},e,{fatal:!1,errorAction:Fa(!0),asset:i,assetListIndex:a,event:c,schedule:o,scheduleIndex:t,player:s});if(this.hls.trigger(dc.INTERSTITIAL_ASSET_ERROR,l),!e.fatal)return;const d=this.playingAsset,u=this.bufferingAsset,h=new Error(r);if(i&&(this.clearAssetPlayer(n,null),i.error=h),c.assetList.some((e=>!e.error)))for(let b=a;b<c.assetList.length;b++)this.resetAssetPlayer(c.assetList[b].identifier);else c.error=h;this.updateSchedule(!0),c.error?this.primaryFallback(c):d&&d.identifier===n?this.advanceAfterAssetEnded(c,t,a):u&&u.identifier===n&&this.isInterstitial(this.bufferingItem)&&this.advanceAssetBuffering(this.bufferingItem,u)}primaryFallback(e){const c=e.timelineStart,t=this.effectivePlayingItem;if(t){this.log(`Fallback to primary from event "${e.identifier}" start: ${c} pos: ${this.timelinePos} playing: ${uo(t)} error: ${e.error}`);let a=this.timelinePos;-1===a&&(a=this.hls.startPosition);const r=this.updateItem(t,a);if(this.itemsMatch(t,r)&&this.clearInterstitial(e,null),e.appendInPlace&&(this.attachPrimary(c,null),this.flushFrontBuffer(c)),!this.schedule)return;const i=this.schedule.findItemIndexAtTime(a);this.setSchedulePosition(i)}else this.checkStart()}onAssetListLoaded(e,c){var t,a;const r=c.event,i=r.identifier,n=c.assetListResponse.ASSETS;if(null==(t=this.schedule)||!t.hasEvent(i))return;const f=r.timelineStart,s=r.duration;let o=0;n.forEach(((e,c)=>{const t=parseFloat(e.DURATION);this.createAsset(r,c,o,f+o,t,e.URI),o+=t})),r.duration=o,this.log(`Loaded asset-list with duration: ${o} (was: ${s}) ${r}`);const l=this.waitingItem,d=(null==l?void 0:l.event.identifier)===i;this.updateSchedule();const u=null==(a=this.bufferingItem)?void 0:a.event;if(d){var h;const e=this.schedule.findEventIndex(i),c=null==(h=this.schedule.items)?void 0:h[e];if(c){if(!this.playingItem&&this.timelinePos>c.end){if(this.schedule.findItemIndexAtTime(this.timelinePos)!==e)return r.error=new Error(`Interstitial no longer within playback range ${this.timelinePos} ${r}`),this.updateSchedule(!0),void this.primaryFallback(r)}this.setBufferingItem(c)}this.setSchedulePosition(e)}else if((null==u?void 0:u.identifier)===i){const e=r.assetList[0];if(e){const c=this.getAssetPlayer(e.identifier);if(u.appendInPlace){const e=this.primaryMedia;c&&e&&this.bufferAssetPlayer(c,e)}else c&&c.loadSource()}}}onError(e,c){if(this.schedule)switch(c.details){case lc.ASSET_LIST_PARSING_ERROR:case lc.ASSET_LIST_LOAD_ERROR:case lc.ASSET_LIST_LOAD_TIMEOUT:{const e=c.interstitial;e&&(this.updateSchedule(!0),this.primaryFallback(e));break}case lc.BUFFER_STALLED_ERROR:{const e=this.endedItem||this.waitingItem||this.playingItem;if(this.isInterstitial(e)&&e.event.appendInPlace)return void this.handleInPlaceStall(e.event);this.log(`Primary player stall @${this.timelinePos} bufferedPos: ${this.bufferedPos}`),this.onTimeupdate(),this.checkBuffer(!0);break}}}}});function qo(e){return e&&"object"==typeof e?Array.isArray(e)?e.map(qo):Object.keys(e).reduce(((c,t)=>(c[t]=qo(e[t]),c)),{}):e}function Yo(e,c){const t=e.loader;if(t!==$o&&t!==Vo)c.log("[config]: Custom loader detected, cannot enable progressive streaming"),e.progressive=!1;else{(function(){if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch(e){}return!1})()&&(e.loader=$o,e.progressive=!0,e.enableSoftwareAES=!0,c.log("[config]: Progressive streaming enabled, using FetchLoader"))}}class Wo extends tr{constructor(e,c){super("gap-controller",e.logger),this.hls=void 0,this.fragmentTracker=void 0,this.media=null,this.mediaSource=void 0,this.nudgeRetry=0,this.stallReported=!1,this.stalled=null,this.moved=!1,this.seeking=!1,this.buffered={},this.lastCurrentTime=0,this.ended=0,this.waiting=0,this.onMediaPlaying=()=>{this.ended=0,this.waiting=0},this.onMediaWaiting=()=>{var e;null!=(e=this.media)&&e.seeking||(this.waiting=self.performance.now(),this.tick())},this.onMediaEnded=()=>{var e;this.hls&&(this.ended=(null==(e=this.media)?void 0:e.currentTime)||1,this.hls.trigger(dc.MEDIA_ENDED,{stalled:!1}))},this.hls=e,this.fragmentTracker=c,this.registerListeners()}registerListeners(){const{hls:e}=this;e&&(e.on(dc.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(dc.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(dc.BUFFER_APPENDED,this.onBufferAppended,this))}unregisterListeners(){const{hls:e}=this;e&&(e.off(dc.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(dc.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(dc.BUFFER_APPENDED,this.onBufferAppended,this))}destroy(){super.destroy(),this.unregisterListeners(),this.media=this.hls=this.fragmentTracker=null,this.mediaSource=void 0}onMediaAttached(e,c){this.setInterval(100),this.mediaSource=c.mediaSource;const t=this.media=c.media;Si(t,"playing",this.onMediaPlaying),Si(t,"waiting",this.onMediaWaiting),Si(t,"ended",this.onMediaEnded)}onMediaDetaching(e,c){this.clearInterval();const{media:t}=this;t&&(_i(t,"playing",this.onMediaPlaying),_i(t,"waiting",this.onMediaWaiting),_i(t,"ended",this.onMediaEnded),this.media=null),this.mediaSource=void 0}onBufferAppended(e,c){this.buffered=c.timeRanges}get hasBuffered(){return Object.keys(this.buffered).length>0}tick(){var e;if(null==(e=this.media)||!e.readyState||!this.hasBuffered)return;const c=this.media.currentTime;this.poll(c,this.lastCurrentTime),this.lastCurrentTime=c}poll(e,c){var t,a;const r=null==(t=this.hls)?void 0:t.config;if(!r)return;const i=this.media;if(!i)return;const{seeking:n}=i,f=this.seeking&&!n,s=!this.seeking&&n,o=i.paused&&!n||i.ended||0===i.playbackRate;if(this.seeking=n,e!==c)return c&&(this.ended=0),this.moved=!0,n||(this.nudgeRetry=0,r.nudgeOnVideoHole&&!o&&e>c&&this.nudgeOnVideoHole(e,c)),void(0===this.waiting&&this.stallResolved(e));if(s||f)return void(f&&this.stallResolved(e));if(o)return this.nudgeRetry=0,this.stallResolved(e),void(!this.ended&&i.ended&&this.hls&&(this.ended=e||1,this.hls.trigger(dc.MEDIA_ENDED,{stalled:!1})));if(!ir.getBuffered(i).length)return void(this.nudgeRetry=0);const l=ir.bufferInfo(i,e,0),d=l.nextStart||0,u=this.fragmentTracker;if(n&&u&&this.hls){const c=zo(this.hls.inFlightFragments,e),t=l.len>2,a=!d||c||d-e>2&&!u.getPartialFragment(e);if(t||a)return;this.moved=!1}const h=null==(a=this.hls)?void 0:a.latestLevelDetails;if(!this.moved&&null!==this.stalled&&u){if(!(l.len>0)&&!d)return;const c=Math.max(d,l.start||0)-e,t=!(null==h||!h.live)?2*h.targetduration:2,a=Qo(e,u);if(c>0&&(c<=t||a))return void(i.paused||this._trySkipBufferHole(a))}const b=r.detectStallWithCurrentTimeMs,p=self.performance.now(),g=this.waiting;let m=this.stalled;if(null===m){if(!(g>0&&p-g<b))return void(this.stalled=p);m=this.stalled=g}const v=p-m;if(!n&&(v>=b||g)&&this.hls){var y;if("ended"===(null==(y=this.mediaSource)?void 0:y.readyState)&&(null==h||!h.live)&&Math.abs(e-((null==h?void 0:h.edge)||0))<1){if(this.ended)return;return this.ended=e||1,void this.hls.trigger(dc.MEDIA_ENDED,{stalled:!0})}if(this._reportStall(l),!this.media||!this.hls)return}const E=ir.bufferInfo(i,e,r.maxBufferHole);this._tryFixBufferStall(E,v,e)}stallResolved(e){const c=this.stalled;if(c&&this.hls&&(this.stalled=null,this.stallReported)){const t=self.performance.now()-c;this.log(`playback not stuck anymore @${e}, after ${Math.round(t)}ms`),this.stallReported=!1,this.waiting=0,this.hls.trigger(dc.STALL_RESOLVED,{})}}nudgeOnVideoHole(e,c){var t;const a=this.buffered.video;if(this.hls&&this.media&&this.fragmentTracker&&null!=(t=this.buffered.audio)&&t.length&&a&&a.length>1&&e>a.end(0)){const t=ir.bufferedInfo(ir.timeRangesToArray(this.buffered.audio),e,0);if(t.len>1&&c>=t.start){const t=ir.timeRangesToArray(a),r=ir.bufferedInfo(t,c,0).bufferedIndex;if(r>-1&&r<t.length-1){const c=ir.bufferedInfo(t,e,0).bufferedIndex,a=t[r].end,i=t[r+1].start;if((-1===c||c>r)&&i-a<1&&e-a<2){const t=new Error(`nudging playhead to flush pipeline after video hole. currentTime: ${e} hole: ${a} -> ${i} buffered index: ${c}`);this.warn(t.message),this.media.currentTime+=1e-6;let r=Qo(e,this.fragmentTracker);r&&"fragment"in r?r=r.fragment:r||(r=void 0);const n=ir.bufferInfo(this.media,e,0);this.hls.trigger(dc.ERROR,{type:oc.MEDIA_ERROR,details:lc.BUFFER_SEEK_OVER_HOLE,fatal:!1,error:t,reason:t.message,frag:r,buffer:n.len,bufferInfo:n})}}}}}_tryFixBufferStall(e,c,t){var a,r;const{fragmentTracker:i,media:n}=this,f=null==(a=this.hls)?void 0:a.config;if(!n||!i||!f)return;const s=null==(r=this.hls)?void 0:r.latestLevelDetails,o=Qo(t,i);if(o||null!=s&&s.live&&t<s.fragmentStart){if(this._trySkipBufferHole(o)||!this.media)return}const l=e.buffered,d=this.adjacentTraversal(e,t);(l&&l.length>1&&e.len>f.maxBufferHole||e.nextStart&&(e.nextStart-t<f.maxBufferHole||d))&&(c>1e3*f.highBufferWatchdogPeriod||this.waiting)&&(this.warn("Trying to nudge playhead over buffer-hole"),this._tryNudgeBuffer(e))}adjacentTraversal(e,c){const t=this.fragmentTracker,a=e.nextStart;if(t&&a){const e=t.getFragAtPos(c,gc),r=t.getFragAtPos(a,gc);if(e&&r)return r.sn-e.sn<2}return!1}_reportStall(e){const{hls:c,media:t,stallReported:a,stalled:r}=this;if(!a&&null!==r&&t&&c){this.stallReported=!0;const a=new Error(`Playback stalling at @${t.currentTime} due to low buffer (${na(e)})`);this.warn(a.message),c.trigger(dc.ERROR,{type:oc.MEDIA_ERROR,details:lc.BUFFER_STALLED_ERROR,fatal:!1,error:a,buffer:e.len,bufferInfo:e,stalled:{start:r}})}}_trySkipBufferHole(e){var c;const{fragmentTracker:t,media:a}=this,r=null==(c=this.hls)?void 0:c.config;if(!a||!t||!r)return 0;const i=a.currentTime,n=ir.bufferInfo(a,i,0),f=i<n.start?n.start:n.nextStart;if(f&&this.hls){const c=n.len<=r.maxBufferHole,o=n.len>0&&n.len<1&&a.readyState<3,l=f-i;if(l>0&&(c||o)){if(l>r.maxBufferHole){let c=!1;if(0===i){const e=t.getAppendedFrag(0,gc);e&&f<e.end&&(c=!0)}if(!c&&e){var s;if(null==(s=this.hls.loadLevelObj)||!s.details)return 0;if(zo(this.hls.inFlightFragments,f))return 0;let c=!1,a=e.end;for(;a<f;){const e=Qo(a,t);if(!e){c=!0;break}a+=e.duration}if(c)return 0}}const c=Math.max(f+.05,i+.1);if(this.warn(`skipping hole, adjusting currentTime from ${i} to ${c}`),this.moved=!0,a.currentTime=c,null==e||!e.gap){const t=new Error(`fragment loaded with buffer holes, seeking from ${i} to ${c}`),a={type:oc.MEDIA_ERROR,details:lc.BUFFER_SEEK_OVER_HOLE,fatal:!1,error:t,reason:t.message,buffer:n.len,bufferInfo:n};e&&("fragment"in e?a.part=e:a.frag=e),this.hls.trigger(dc.ERROR,a)}return c}}return 0}_tryNudgeBuffer(e){const{hls:c,media:t,nudgeRetry:a}=this,r=null==c?void 0:c.config;if(!t||!r)return 0;const i=t.currentTime;if(this.nudgeRetry++,a<r.nudgeMaxRetry){const n=i+(a+1)*r.nudgeOffset,f=new Error(`Nudging 'currentTime' from ${i} to ${n}`);this.warn(f.message),t.currentTime=n,c.trigger(dc.ERROR,{type:oc.MEDIA_ERROR,details:lc.BUFFER_NUDGE_ON_STALL,error:f,fatal:!1,buffer:e.len,bufferInfo:e})}else{const t=new Error(`Playhead still not moving while enough data buffered @${i} after ${r.nudgeMaxRetry} nudges`);this.error(t.message),c.trigger(dc.ERROR,{type:oc.MEDIA_ERROR,details:lc.BUFFER_STALLED_ERROR,error:t,fatal:!0,buffer:e.len,bufferInfo:e})}}}function zo(e,c){const t=Xo(e.main);if(t&&t.start<=c)return t;const a=Xo(e.audio);return a&&a.start<=c?a:null}function Xo(e){if(!e)return null;switch(e.state){case Ai:case ki:case Pi:case Ci:return null}return e.frag}function Qo(e,c){return c.getAppendedFrag(e,gc)||c.getPartialFragment(e)}function Jo(){if("undefined"!=typeof self)return self.VTTCue||self.TextTrackCue}function Zo(e,c,t,a,r){let i=new e(c,t,"");try{i.value=a,r&&(i.type=r)}catch(n){i=new e(c,t,na(r?kc({type:r},a):a))}return i}const el=(()=>{const e=Jo();try{e&&new e(0,Number.POSITIVE_INFINITY,"")}catch(c){return Number.MAX_VALUE}return Number.POSITIVE_INFINITY})();class cl{constructor(e){this.hls=void 0,this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.removeCues=!0,this.assetCue=void 0,this.onEventCueEnter=()=>{this.hls&&this.hls.trigger(dc.EVENT_CUE_ENTER,{})},this.hls=e,this._registerListeners()}destroy(){this._unregisterListeners(),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=this.onEventCueEnter=null}_registerListeners(){const{hls:e}=this;e&&(e.on(dc.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(dc.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(dc.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.on(dc.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),e.on(dc.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(dc.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(dc.LEVEL_PTS_UPDATED,this.onLevelPtsUpdated,this))}_unregisterListeners(){const{hls:e}=this;e&&(e.off(dc.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(dc.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(dc.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.off(dc.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),e.off(dc.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(dc.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(dc.LEVEL_PTS_UPDATED,this.onLevelPtsUpdated,this))}onMediaAttaching(e,c){this.media=c.media}onMediaAttached(){var e;const c=null==(e=this.hls)?void 0:e.latestLevelDetails;c&&this.updateDateRangeCues(c)}onMediaDetaching(e,c){this.media=null;!!c.transferMedia||(this.id3Track&&(this.id3Track.remove(),this.id3Track=null),this.dateRangeCuesAppended={})}onManifestLoading(){this.dateRangeCuesAppended={}}createTrack(e){return Js(e,"metadata","id3","","hidden")}onFragParsingMetadata(e,c){if(!this.media||!this.hls)return;const{enableEmsgMetadataCues:t,enableID3MetadataCues:a}=this.hls.config;if(!t&&!a)return;const{samples:r}=c;this.id3Track||(this.id3Track=this.createTrack(this.media));const i=Jo();if(i)for(let n=0;n<r.length;n++){const e=r[n].type;if(e===hn.emsg&&!t||!a)continue;const c=on(r[n].data),f=r[n].pts;let s=f+r[n].duration;s>el&&(s=el);s-f<=0&&(s=f+.25);for(let t=0;t<c.length;t++){const a=c[t];if(!ln(a)){this.updateId3CueEnds(f,e);const c=Zo(i,f,s,a,e);c&&this.id3Track.track.addCue(c)}}}}updateId3CueEnds(e,c){var t;const a=null==(t=this.id3Track)?void 0:t.track.cues;if(a)for(let r=a.length;r--;){const t=a[r];t.type===c&&t.startTime<e&&t.endTime===el&&(t.endTime=e)}}onBufferFlushing(e,{startOffset:c,endOffset:t,type:a}){const{id3Track:r,hls:i}=this;if(!i)return;const{config:{enableEmsgMetadataCues:n,enableID3MetadataCues:f}}=i;if(r&&(n||f)){let e;e="audio"===a?e=>e.type===hn.audioId3&&f:"video"===a?e=>e.type===hn.emsg&&n:e=>e.type===hn.audioId3&&f||e.type===hn.emsg&&n,eo(r.track,c,t,e)}}onLevelUpdated(e,{details:c}){this.updateDateRangeCues(c,!0)}onLevelPtsUpdated(e,c){Math.abs(c.drift)>.01&&this.updateDateRangeCues(c.details)}updateDateRangeCues(e,c){if(!this.hls||!this.media)return;const{assetPlayerId:t,timelineOffset:a,enableDateRangeMetadataCues:r,interstitialsController:i}=this.hls.config;if(!r)return;const n=Jo();if(t&&a&&!i){const{fragmentStart:c,fragmentEnd:a}=e;let r=this.assetCue;r?(r.startTime=c,r.endTime=a):n&&(r=this.assetCue=Zo(n,c,a,{assetPlayerId:this.hls.config.assetPlayerId},"hlsjs.interstitial.asset"),r&&(r.id=t,this.id3Track||(this.id3Track=this.createTrack(this.media)),this.id3Track.track.addCue(r),r.addEventListener("enter",this.onEventCueEnter)))}if(!e.hasProgramDateTime)return;const{id3Track:f}=this,{dateRanges:s}=e,o=Object.keys(s);let l=this.dateRangeCuesAppended;var d;if(f&&c)if(null!=(d=f.track.cues)&&d.length){const e=Object.keys(l).filter((e=>!o.includes(e)));for(let c=e.length;c--;){var u;const t=e[c],a=null==(u=l[t])?void 0:u.cues;delete l[t],a&&Object.keys(a).forEach((e=>{const c=a[e];if(c){c.removeEventListener("enter",this.onEventCueEnter);try{f.track.removeCue(c)}catch(t){}}}))}}else l=this.dateRangeCuesAppended={};const h=e.fragments[e.fragments.length-1];if(0!==o.length&&nc(null==h?void 0:h.programDateTime)){this.id3Track||(this.id3Track=this.createTrack(this.media));for(let e=0;e<o.length;e++){const c=o[e],t=s[c],a=t.startTime,r=l[c],f=(null==r?void 0:r.cues)||{};let d=(null==r?void 0:r.durationKnown)||!1,u=el;const{duration:h,endDate:p}=t;if(p&&null!==h)u=a+h,d=!0;else if(t.endOnNext&&!d){const e=o.reduce(((e,c)=>{if(c!==t.id){const a=s[c];if(a.class===t.class&&a.startDate>t.startDate&&(!e||t.startDate<e.startDate))return a}return e}),null);e&&(u=e.startTime,d=!0)}const g=Object.keys(t.attr);for(let e=0;e<g.length;e++){const s=g[e];if("ID"===(b=s)||"CLASS"===b||"CUE"===b||"START-DATE"===b||"DURATION"===b||"END-DATE"===b||"END-ON-NEXT"===b)continue;const o=f[s];if(o)!d||null!=r&&r.durationKnown?Math.abs(o.startTime-a)>.01&&(o.startTime=a,o.endTime=u):o.endTime=u;else if(n){let e=t.attr[s];br(s)&&(e=Fc(e));const r=Zo(n,a,u,{key:s,data:e},hn.dateRange);r&&(r.id=c,this.id3Track.track.addCue(r),f[s]=r,i&&("X-ASSET-LIST"!==s&&"X-ASSET-URL"!==s||r.addEventListener("enter",this.onEventCueEnter)))}}l[c]={cues:f,dateRange:t,durationKnown:d}}var b}}}class tl{constructor(e){this.hls=void 0,this.config=void 0,this.media=null,this.currentTime=0,this.stallCount=0,this._latency=null,this._targetLatencyUpdated=!1,this.onTimeupdate=()=>{const{media:e}=this,c=this.levelDetails;if(!e||!c)return;this.currentTime=e.currentTime;const t=this.computeLatency();if(null===t)return;this._latency=t;const{lowLatencyMode:a,maxLiveSyncPlaybackRate:r}=this.config;if(!a||1===r||!c.live)return;const i=this.targetLatency;if(null===i)return;const n=t-i;if(n<Math.min(this.maxLatency,i+c.targetduration)&&n>.05&&this.forwardBufferLength>1){const c=Math.min(2,Math.max(1,r)),t=Math.round(2/(1+Math.exp(-.75*n-this.edgeStalled))*20)/20,a=Math.min(c,Math.max(1,t));this.changeMediaPlaybackRate(e,a)}else 1!==e.playbackRate&&0!==e.playbackRate&&this.changeMediaPlaybackRate(e,1)},this.hls=e,this.config=e.config,this.registerListeners()}get levelDetails(){var e;return(null==(e=this.hls)?void 0:e.latestLevelDetails)||null}get latency(){return this._latency||0}get maxLatency(){const{config:e}=this;if(void 0!==e.liveMaxLatencyDuration)return e.liveMaxLatencyDuration;const c=this.levelDetails;return c?e.liveMaxLatencyDurationCount*c.targetduration:0}get targetLatency(){const e=this.levelDetails;if(null===e||null===this.hls)return null;const{holdBack:c,partHoldBack:t,targetduration:a}=e,{liveSyncDuration:r,liveSyncDurationCount:i,lowLatencyMode:n}=this.config,f=this.hls.userConfig;let s=n&&t||c;(this._targetLatencyUpdated||f.liveSyncDuration||f.liveSyncDurationCount||0===s)&&(s=void 0!==r?r:i*a);const o=a;return s+Math.min(this.stallCount*this.config.liveSyncOnStallIncrease,o)}set targetLatency(e){this.stallCount=0,this.config.liveSyncDuration=e,this._targetLatencyUpdated=!0}get liveSyncPosition(){const e=this.estimateLiveEdge(),c=this.targetLatency;if(null===e||null===c)return null;const t=this.levelDetails;if(null===t)return null;const a=t.edge,r=e-c-this.edgeStalled,i=a-t.totalduration,n=a-(this.config.lowLatencyMode&&t.partTarget||t.targetduration);return Math.min(Math.max(i,r),n)}get drift(){const e=this.levelDetails;return null===e?1:e.drift}get edgeStalled(){const e=this.levelDetails;if(null===e)return 0;const c=3*(this.config.lowLatencyMode&&e.partTarget||e.targetduration);return Math.max(e.age-c,0)}get forwardBufferLength(){const{media:e}=this,c=this.levelDetails;if(!e||!c)return 0;const t=e.buffered.length;return(t?e.buffered.end(t-1):c.edge)-this.currentTime}destroy(){this.unregisterListeners(),this.onMediaDetaching(),this.hls=null}registerListeners(){const{hls:e}=this;e&&(e.on(dc.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(dc.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.on(dc.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(dc.ERROR,this.onError,this))}unregisterListeners(){const{hls:e}=this;e&&(e.off(dc.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(dc.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.off(dc.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(dc.ERROR,this.onError,this))}onMediaAttached(e,c){this.media=c.media,this.media.addEventListener("timeupdate",this.onTimeupdate)}onMediaDetaching(){this.media&&(this.media.removeEventListener("timeupdate",this.onTimeupdate),this.media=null)}onManifestLoading(){this._latency=null,this.stallCount=0}onLevelUpdated(e,{details:c}){c.advanced&&this.onTimeupdate(),!c.live&&this.media&&this.media.removeEventListener("timeupdate",this.onTimeupdate)}onError(e,c){var t;c.details===lc.BUFFER_STALLED_ERROR&&(this.stallCount++,this.hls&&null!=(t=this.levelDetails)&&t.live&&this.hls.logger.warn("[latency-controller]: Stall detected, adjusting target latency"))}changeMediaPlaybackRate(e,c){var t,a;e.playbackRate!==c&&(null==(t=this.hls)||t.logger.debug(`[latency-controller]: latency=${this.latency.toFixed(3)}, targetLatency=${null==(a=this.targetLatency)?void 0:a.toFixed(3)}, forwardBufferLength=${this.forwardBufferLength.toFixed(3)}: adjusting playback rate from ${e.playbackRate} to ${c}`),e.playbackRate=c)}estimateLiveEdge(){const e=this.levelDetails;return null===e?null:e.edge+e.age}computeLatency(){const e=this.estimateLiveEdge();return null===e?null:e-this.currentTime}}class al extends gf{constructor(e,c){super(e,"level-controller"),this._levels=[],this._firstLevel=-1,this._maxAutoLevel=-1,this._startLevel=void 0,this.currentLevel=null,this.currentLevelIndex=-1,this.manualLevelIndex=-1,this.steering=void 0,this.onParsedComplete=void 0,this.steering=c,this._registerListeners()}_registerListeners(){const{hls:e}=this;e.on(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.on(dc.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(dc.LEVEL_LOADED,this.onLevelLoaded,this),e.on(dc.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(dc.FRAG_BUFFERED,this.onFragBuffered,this),e.on(dc.ERROR,this.onError,this)}_unregisterListeners(){const{hls:e}=this;e.off(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.off(dc.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(dc.LEVEL_LOADED,this.onLevelLoaded,this),e.off(dc.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(dc.FRAG_BUFFERED,this.onFragBuffered,this),e.off(dc.ERROR,this.onError,this)}destroy(){this._unregisterListeners(),this.steering=null,this.resetLevels(),super.destroy()}stopLoad(){this._levels.forEach((e=>{e.loadError=0,e.fragmentError=0})),super.stopLoad()}resetLevels(){this._startLevel=void 0,this.manualLevelIndex=-1,this.currentLevelIndex=-1,this.currentLevel=null,this._levels=[],this._maxAutoLevel=-1}onManifestLoading(e,c){this.resetLevels()}onManifestLoaded(e,c){const t=this.hls.config.preferManagedMediaSource,a=[],r={},i={};let n=!1,f=!1,s=!1;c.levels.forEach((e=>{const c=e.attrs;let{audioCodec:o,videoCodec:l}=e;o&&(e.audioCodec=o=Nt(o,t)||void 0),l&&(l=e.videoCodec=function(e){const c=e.split(",");for(let t=0;t<c.length;t++){const e=c[t].split(".");e.length>2&&"avc1"===e[0]&&(c[t]=`avc1.${parseInt(e[1]).toString(16)}${("000"+parseInt(e[2]).toString(16)).slice(-4)}`)}return c.join(",")}(l));const{width:d,height:u,unknownCodecs:h}=e,b=(null==h?void 0:h.length)||0;if(n||(n=!(!d||!u)),f||(f=!!l),s||(s=!!o),b||o&&!this.isAudioSupported(o)||l&&!this.isVideoSupported(l))return void this.log(`Some or all CODECS not supported "${c.CODECS}"`);const{CODECS:p,"FRAME-RATE":g,"HDCP-LEVEL":m,"PATHWAY-ID":v,RESOLUTION:y,"VIDEO-RANGE":E}=c,S=`${`${v||"."}-`}${e.bitrate}-${y}-${g}-${p}-${E}-${m}`;if(r[S])if(r[S].uri===e.url||e.attrs["PATHWAY-ID"])r[S].addGroupId("audio",c.AUDIO),r[S].addGroupId("text",c.SUBTITLES);else{const c=i[S]+=1;e.attrs["PATHWAY-ID"]=new Array(c+1).join(".");const t=this.createLevel(e);r[S]=t,a.push(t)}else{const c=this.createLevel(e);r[S]=c,i[S]=1,a.push(c)}})),this.filterAndSortMediaOptions(a,c,n,f,s)}createLevel(e){const c=new aa(e),t=e.supplemental;if(null!=t&&t.videoCodec&&!this.isVideoSupported(t.videoCodec)){const e=new Error(`SUPPLEMENTAL-CODECS not supported "${t.videoCodec}"`);this.log(e.message),c.supportedResult=Ht(e,[])}return c}isAudioSupported(e){return Dt(e,"audio",this.hls.config.preferManagedMediaSource)}isVideoSupported(e){return Dt(e,"video",this.hls.config.preferManagedMediaSource)}filterAndSortMediaOptions(e,c,t,a,r){var i;let n=[],f=[],s=e;const o=(null==(i=c.stats)?void 0:i.parsing)||{};if((t||a)&&r&&(s=s.filter((({videoCodec:e,videoRange:c,width:t,height:a})=>{return(!!e||!(!t||!a))&&(!!(r=c)&&Qt.indexOf(r)>-1);var r}))),0===s.length)return Promise.resolve().then((()=>{if(this.hls){let e="no level with compatible codecs found in manifest",t=e;c.levels.length&&(t=`one or more CODECS in variant not supported: ${na(c.levels.map((e=>e.attrs.CODECS)).filter(((e,c,t)=>t.indexOf(e)===c)))}`,this.warn(t),e+=` (${t})`);const a=new Error(e);this.hls.trigger(dc.ERROR,{type:oc.MEDIA_ERROR,details:lc.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:c.url,error:a,reason:t})}})),void(o.end=performance.now());c.audioTracks&&(n=c.audioTracks.filter((e=>!e.audioCodec||this.isAudioSupported(e.audioCodec))),rl(n)),c.subtitles&&(f=c.subtitles,rl(f));const l=s.slice(0);s.sort(((e,c)=>{if(e.attrs["HDCP-LEVEL"]!==c.attrs["HDCP-LEVEL"])return(e.attrs["HDCP-LEVEL"]||"")>(c.attrs["HDCP-LEVEL"]||"")?1:-1;if(t&&e.height!==c.height)return e.height-c.height;if(e.frameRate!==c.frameRate)return e.frameRate-c.frameRate;if(e.videoRange!==c.videoRange)return Qt.indexOf(e.videoRange)-Qt.indexOf(c.videoRange);if(e.videoCodec!==c.videoCodec){const t=Ct(e.videoCodec),a=Ct(c.videoCodec);if(t!==a)return a-t}if(e.uri===c.uri&&e.codecSet!==c.codecSet){const t=Ot(e.codecSet),a=Ot(c.codecSet);if(t!==a)return a-t}return e.averageBitrate!==c.averageBitrate?e.averageBitrate-c.averageBitrate:0}));let d=l[0];if(this.steering&&(s=this.steering.filterParsedLevels(s),s.length!==l.length))for(let m=0;m<l.length;m++)if(l[m].pathwayId===s[0].pathwayId){d=l[m];break}this._levels=s;for(let m=0;m<s.length;m++)if(s[m]===d){var u;this._firstLevel=m;const e=d.bitrate,c=this.hls.bandwidthEstimate;if(this.log(`manifest loaded, ${s.length} level(s) found, first bitrate: ${e}`),void 0===(null==(u=this.hls.userConfig)?void 0:u.abrEwmaDefaultEstimate)){const t=Math.min(e,this.hls.config.abrEwmaDefaultEstimateMax);t>c&&c===this.hls.abrEwmaDefaultEstimate&&(this.hls.bandwidthEstimate=t)}break}const h=r&&!a,b=this.hls.config,p=!(!b.audioStreamController||!b.audioTrackController),g={levels:s,audioTracks:n,subtitleTracks:f,sessionData:c.sessionData,sessionKeys:c.sessionKeys,firstLevel:this._firstLevel,stats:c.stats,audio:r,video:a,altAudio:p&&!h&&n.some((e=>!!e.url))};o.end=performance.now(),this.hls.trigger(dc.MANIFEST_PARSED,g)}get levels(){return 0===this._levels.length?null:this._levels}get loadLevelObj(){return this.currentLevel}get level(){return this.currentLevelIndex}set level(e){const c=this._levels;if(0===c.length)return;if(e<0||e>=c.length){const t=new Error("invalid level idx"),a=e<0;if(this.hls.trigger(dc.ERROR,{type:oc.OTHER_ERROR,details:lc.LEVEL_SWITCH_ERROR,level:e,fatal:a,error:t,reason:t.message}),a)return;e=Math.min(e,c.length-1)}const t=this.currentLevelIndex,a=this.currentLevel,r=a?a.attrs["PATHWAY-ID"]:void 0,i=c[e],n=i.attrs["PATHWAY-ID"];if(this.currentLevelIndex=e,this.currentLevel=i,t===e&&a&&r===n)return;this.log(`Switching to level ${e} (${i.height?i.height+"p ":""}${i.videoRange?i.videoRange+" ":""}${i.codecSet?i.codecSet+" ":""}@${i.bitrate})${n?" with Pathway "+n:""} from level ${t}${r?" with Pathway "+r:""}`);const f={level:e,attrs:i.attrs,details:i.details,bitrate:i.bitrate,averageBitrate:i.averageBitrate,maxBitrate:i.maxBitrate,realBitrate:i.realBitrate,width:i.width,height:i.height,codecSet:i.codecSet,audioCodec:i.audioCodec,videoCodec:i.videoCodec,audioGroups:i.audioGroups,subtitleGroups:i.subtitleGroups,loaded:i.loaded,loadError:i.loadError,fragmentError:i.fragmentError,name:i.name,id:i.id,uri:i.uri,url:i.url,urlId:0,audioGroupIds:i.audioGroupIds,textGroupIds:i.textGroupIds};this.hls.trigger(dc.LEVEL_SWITCHING,f);const s=i.details;if(!s||s.live){const e=this.switchParams(i.uri,null==a?void 0:a.details,s);this.loadPlaylist(e)}}get manualLevel(){return this.manualLevelIndex}set manualLevel(e){this.manualLevelIndex=e,void 0===this._startLevel&&(this._startLevel=e),-1!==e&&(this.level=e)}get firstLevel(){return this._firstLevel}set firstLevel(e){this._firstLevel=e}get startLevel(){if(void 0===this._startLevel){const e=this.hls.config.startLevel;return void 0!==e?e:this.hls.firstAutoLevel}return this._startLevel}set startLevel(e){this._startLevel=e}get pathways(){return this.steering?this.steering.pathways():[]}get pathwayPriority(){return this.steering?this.steering.pathwayPriority:null}set pathwayPriority(e){if(this.steering){const c=this.steering.pathways(),t=e.filter((e=>-1!==c.indexOf(e)));if(e.length<1)return void this.warn(`pathwayPriority ${e} should contain at least one pathway from list: ${c}`);this.steering.pathwayPriority=t}}onError(e,c){!c.fatal&&c.context&&c.context.type===hc&&c.context.level===this.level&&this.checkRetry(c)}onFragBuffered(e,{frag:c}){if(void 0!==c&&c.type===gc){const e=c.elementaryStreams;if(!Object.keys(e).some((c=>!!e[c])))return;const t=this._levels[c.level];null!=t&&t.loadError&&(this.log(`Resetting level error count of ${t.loadError} on frag buffered`),t.loadError=0)}}onLevelLoaded(e,c){var t;const{level:a,details:r}=c,i=c.levelInfo;var n;if(!i)return this.warn(`Invalid level index ${a}`),void(null!=(n=c.deliveryDirectives)&&n.skip&&(r.deltaUpdateFailed=!0));if(i===this.currentLevel||c.withoutMultiVariant){0===i.fragmentError&&(i.loadError=0);let e=i.details;e===c.details&&e.advanced&&(e=void 0),this.playlistLoaded(a,c,e)}else null!=(t=c.deliveryDirectives)&&t.skip&&(r.deltaUpdateFailed=!0)}loadPlaylist(e){super.loadPlaylist(),this.shouldLoadPlaylist(this.currentLevel)&&this.scheduleLoading(this.currentLevel,e)}loadingPlaylist(e,c){super.loadingPlaylist(e,c);const t=this.getUrlWithDirectives(e.uri,c),a=this.currentLevelIndex,r=e.attrs["PATHWAY-ID"],i=e.details,n=null==i?void 0:i.age;this.log(`Loading level index ${a}${void 0!==(null==c?void 0:c.msn)?" at sn "+c.msn+" part "+c.part:""}${r?" Pathway "+r:""}${n&&i.live?" age "+n.toFixed(1)+(i.type&&" "+i.type||""):""} ${t}`),this.hls.trigger(dc.LEVEL_LOADING,{url:t,level:a,levelInfo:e,pathwayId:e.attrs["PATHWAY-ID"],id:0,deliveryDirectives:c||null})}get nextLoadLevel(){return-1!==this.manualLevelIndex?this.manualLevelIndex:this.hls.nextAutoLevel}set nextLoadLevel(e){this.level=e,-1===this.manualLevelIndex&&(this.hls.nextAutoLevel=e)}removeLevel(e){var c;if(1===this._levels.length)return;const t=this._levels.filter(((c,t)=>t!==e||(this.steering&&this.steering.removeLevel(c),c===this.currentLevel&&(this.currentLevel=null,this.currentLevelIndex=-1,c.details&&c.details.fragments.forEach((e=>e.level=-1))),!1)));hi(t),this._levels=t,this.currentLevelIndex>-1&&null!=(c=this.currentLevel)&&c.details&&(this.currentLevelIndex=this.currentLevel.details.fragments[0].level),this.manualLevelIndex>-1&&(this.manualLevelIndex=this.currentLevelIndex);const a=t.length-1;this._firstLevel=Math.min(this._firstLevel,a),this._startLevel&&(this._startLevel=Math.min(this._startLevel,a)),this.hls.trigger(dc.LEVELS_UPDATED,{levels:t})}onLevelsUpdated(e,{levels:c}){this._levels=c}checkMaxAutoUpdated(){const{autoLevelCapping:e,maxAutoLevel:c,maxHdcpLevel:t}=this.hls;this._maxAutoLevel!==c&&(this._maxAutoLevel=c,this.hls.trigger(dc.MAX_AUTO_LEVEL_UPDATED,{autoLevelCapping:e,levels:this.levels,maxAutoLevel:c,minAutoLevel:this.hls.minAutoLevel,maxHdcpLevel:t}))}}function rl(e){const c={};e.forEach((e=>{const t=e.groupId||"";e.id=c[t]=c[t]||0,c[t]++}))}function il(){return self.SourceBuffer||self.WebKitSourceBuffer}function nl(){if(!Pc())return!1;const e=il();return!e||e.prototype&&"function"==typeof e.prototype.appendBuffer&&"function"==typeof e.prototype.remove}class fl extends Fi{constructor(e,c,t){super(e,c,t,"stream-controller",gc),this.audioCodecSwap=!1,this.level=-1,this._forceStartLoad=!1,this._hasEnoughToStart=!1,this.altAudio=0,this.audioOnly=!1,this.fragPlaying=null,this.fragLastKbps=0,this.couldBacktrack=!1,this.backtrackFragment=null,this.audioCodecSwitch=!1,this.videoBuffer=null,this.onMediaPlaying=()=>{this.tick()},this.onMediaSeeked=()=>{const e=this.media,c=e?e.currentTime:null;if(null===c||!nc(c))return;if(this.log(`Media seeked to ${c.toFixed(3)}`),!this.getBufferedFrag(c))return;const t=this.getFwdBufferInfoAtPos(e,c,gc,0);null!==t&&0!==t.len?this.tick():this.warn(`Main forward buffer length at ${c} on "seeked" event ${t?t.len:"empty"})`)},this.registerListeners()}registerListeners(){super.registerListeners();const{hls:e}=this;e.on(dc.MANIFEST_PARSED,this.onManifestParsed,this),e.on(dc.LEVEL_LOADING,this.onLevelLoading,this),e.on(dc.LEVEL_LOADED,this.onLevelLoaded,this),e.on(dc.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),e.on(dc.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(dc.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.on(dc.BUFFER_CREATED,this.onBufferCreated,this),e.on(dc.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(dc.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(dc.FRAG_BUFFERED,this.onFragBuffered,this)}unregisterListeners(){super.unregisterListeners();const{hls:e}=this;e.off(dc.MANIFEST_PARSED,this.onManifestParsed,this),e.off(dc.LEVEL_LOADED,this.onLevelLoaded,this),e.off(dc.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),e.off(dc.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(dc.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.off(dc.BUFFER_CREATED,this.onBufferCreated,this),e.off(dc.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(dc.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(dc.FRAG_BUFFERED,this.onFragBuffered,this)}onHandlerDestroying(){this.onMediaPlaying=this.onMediaSeeked=null,this.unregisterListeners(),super.onHandlerDestroying()}startLoad(e,c){if(this.levels){const{lastCurrentTime:t,hls:a}=this;if(this.stopLoad(),this.setInterval(100),this.level=-1,!this.startFragRequested){let e=a.startLevel;-1===e&&(a.config.testBandwidth&&this.levels.length>1?(e=0,this.bitrateTest=!0):e=a.firstAutoLevel),a.nextLoadLevel=e,this.level=a.loadLevel,this._hasEnoughToStart=!!c}t>0&&-1===e&&!c&&(this.log(`Override startPosition with lastCurrentTime @${t.toFixed(3)}`),e=t),this.state=Ai,this.nextLoadPosition=this.lastCurrentTime=e+this.timelineOffset,this.startPosition=c?-1:e,this.tick()}else this._forceStartLoad=!0,this.state=ki}stopLoad(){this._forceStartLoad=!1,super.stopLoad()}doTick(){switch(this.state){case Mi:{const{levels:e,level:c}=this,t=null==e?void 0:e[c],a=null==t?void 0:t.details;if(a&&(!a.live||this.levelLastLoaded===t&&!this.waitForLive(t))){if(this.waitForCdnTuneIn(a))break;this.state=Ai;break}if(this.hls.nextLoadLevel!==this.level){this.state=Ai;break}break}case wi:this.checkRetryDate()}this.state===Ai&&this.doTickIdle(),this.onTickEnd()}onTickEnd(){var e;super.onTickEnd(),null!=(e=this.media)&&e.readyState&&!1===this.media.seeking&&(this.lastCurrentTime=this.media.currentTime),this.checkFragmentChanged()}doTickIdle(){const{hls:e,levelLastLoaded:c,levels:t,media:a}=this;if(null===c||!a&&!this.primaryPrefetch&&(this.startFragRequested||!e.config.startFragPrefetch))return;if(this.altAudio&&this.audioOnly)return;const r=this.buffering?e.nextLoadLevel:e.loadLevel;if(null==t||!t[r])return;const i=t[r],n=this.getMainFwdBufferInfo();if(null===n)return;const f=this.getLevelDetails();if(f&&this._streamEnded(n,f)){const e={};return 2===this.altAudio&&(e.type="video"),this.hls.trigger(dc.BUFFER_EOS,e),void(this.state=Pi)}if(!this.buffering)return;e.loadLevel!==r&&-1===e.manualLevel&&this.log(`Adapting to level ${r} from level ${this.level}`),this.level=e.nextLoadLevel=r;const s=i.details;if(!s||this.state===Mi||this.waitForLive(i))return this.level=r,this.state=Mi,void(this.startFragRequested=!1);const o=n.len,l=this.getMaxBufferLength(i.maxBitrate);if(o>=l)return;this.backtrackFragment&&this.backtrackFragment.start>n.end&&(this.backtrackFragment=null);const d=this.backtrackFragment?this.backtrackFragment.start:n.end;let u=this.getNextFragment(d,s);if(this.couldBacktrack&&!this.fragPrevious&&u&&Qc(u)&&this.fragmentTracker.getState(u)!==$a){var h;const e=(null!=(h=this.backtrackFragment)?h:u).sn-s.startSN,c=s.fragments[e-1];c&&u.cc===c.cc&&(u=c,this.fragmentTracker.removeFragment(c))}else this.backtrackFragment&&n.len&&(this.backtrackFragment=null);if(u&&this.isLoopLoading(u,d)){if(!u.gap){const e=this.audioOnly&&!this.altAudio?Yc:Wc,c=(e===Wc?this.videoBuffer:this.mediaBuffer)||this.media;c&&this.afterBufferFlushed(c,e,gc)}u=this.getNextFragmentLoopLoading(u,s,n,gc,l)}u&&(!u.initSegment||u.initSegment.data||this.bitrateTest||(u=u.initSegment),this.loadFragment(u,i,d))}loadFragment(e,c,t){const a=this.fragmentTracker.getState(e);a===Na||a===Ba?Qc(e)?this.bitrateTest?(this.log(`Fragment ${e.sn} of level ${e.level} is being downloaded to test bitrate and will not be buffered`),this._loadBitrateTestFrag(e,c)):super.loadFragment(e,c,t):this._loadInitSegment(e,c):this.clearTrackerIfNeeded(e)}getBufferedFrag(e){return this.fragmentTracker.getBufferedFrag(e,gc)}followingBufferedFrag(e){return e?this.getBufferedFrag(e.end+.5):null}immediateLevelSwitch(){this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)}nextLevelSwitch(){const{levels:e,media:c}=this;if(null!=c&&c.readyState){let t;const a=this.getAppendedFrag(c.currentTime);a&&a.start>1&&this.flushMainBuffer(0,a.start-1);const r=this.getLevelDetails();if(null!=r&&r.live){const e=this.getMainFwdBufferInfo();if(!e||e.len<2*r.targetduration)return}if(!c.paused&&e){const c=e[this.hls.nextLoadLevel],a=this.fragLastKbps;t=a&&this.fragCurrent?this.fragCurrent.duration*c.maxBitrate/(1e3*a)+1:0}else t=0;const i=this.getBufferedFrag(c.currentTime+t);if(i){const e=this.followingBufferedFrag(i);if(e){this.abortCurrentFrag();const c=e.maxStartPTS?e.maxStartPTS:e.start,t=e.duration,a=Math.max(i.end,c+Math.min(Math.max(t-this.config.maxFragLookUpTolerance,t*(this.couldBacktrack?.5:.125)),t*(this.couldBacktrack?.75:.25)));this.flushMainBuffer(a,Number.POSITIVE_INFINITY)}}}}abortCurrentFrag(){const e=this.fragCurrent;switch(this.fragCurrent=null,this.backtrackFragment=null,e&&(e.abortRequests(),this.fragmentTracker.removeFragment(e)),this.state){case Li:case Ii:case wi:case Di:case xi:this.state=Ai}this.nextLoadPosition=this.getLoadPosition()}flushMainBuffer(e,c){super.flushMainBuffer(e,c,2===this.altAudio?"video":null)}onMediaAttached(e,c){super.onMediaAttached(e,c);const t=c.media;Si(t,"playing",this.onMediaPlaying),Si(t,"seeked",this.onMediaSeeked)}onMediaDetaching(e,c){const{media:t}=this;t&&(_i(t,"playing",this.onMediaPlaying),_i(t,"seeked",this.onMediaSeeked)),this.videoBuffer=null,this.fragPlaying=null,super.onMediaDetaching(e,c);!!c.transferMedia||(this._hasEnoughToStart=!1)}onManifestLoading(){super.onManifestLoading(),this.log("Trigger BUFFER_RESET"),this.hls.trigger(dc.BUFFER_RESET,void 0),this.couldBacktrack=!1,this.fragLastKbps=0,this.fragPlaying=this.backtrackFragment=null,this.altAudio=0,this.audioOnly=!1}onManifestParsed(e,c){let t=!1,a=!1;for(let r=0;r<c.levels.length;r++){const e=c.levels[r].audioCodec;e&&(t=t||-1!==e.indexOf("mp4a.40.2"),a=a||-1!==e.indexOf("mp4a.40.5"))}this.audioCodecSwitch=t&&a&&!function(){var e;const c=il();return"function"==typeof(null==c||null==(e=c.prototype)?void 0:e.changeType)}(),this.audioCodecSwitch&&this.log("Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=c.levels,this.startFragRequested=!1}onLevelLoading(e,c){const{levels:t}=this;if(!t||this.state!==Ai)return;const a=c.levelInfo;(!a.details||a.details.live&&(this.levelLastLoaded!==a||a.details.expired)||this.waitForCdnTuneIn(a.details))&&(this.state=Mi)}onLevelLoaded(e,c){var t;const{levels:a,startFragRequested:r}=this,i=c.level,n=c.details,f=n.totalduration;if(!a)return void this.warn(`Levels were reset while loading level ${i}`);this.log(`Level ${i} loaded [${n.startSN},${n.endSN}]${n.lastPartSn?`[part-${n.lastPartSn}-${n.lastPartIndex}]`:""}, cc [${n.startCC}, ${n.endCC}] duration:${f}`);const s=c.levelInfo,o=this.fragCurrent;!o||this.state!==Ii&&this.state!==wi||o.level!==c.level&&o.loader&&this.abortCurrentFrag();let l=0;if(n.live||null!=(t=s.details)&&t.live){var d;if(this.checkLiveUpdate(n),n.deltaUpdateFailed)return;l=this.alignPlaylists(n,s.details,null==(d=this.levelLastLoaded)?void 0:d.details)}if(s.details=n,this.levelLastLoaded=s,r||this.setStartPosition(n,l),this.hls.trigger(dc.LEVEL_UPDATED,{details:n,level:i}),this.state===Mi){if(this.waitForCdnTuneIn(n))return;this.state=Ai}r&&n.live&&this.synchronizeToLiveEdge(n),this.tick()}synchronizeToLiveEdge(e){const{config:c,media:t}=this;if(!t)return;const a=this.hls.liveSyncPosition,r=this.getLoadPosition(),i=e.fragmentStart,n=e.edge,f=r>=i-c.maxFragLookUpTolerance&&r<=n;if(null!==a&&t.duration>a&&(r<a||!f)){const i=void 0!==c.liveMaxLatencyDuration?c.liveMaxLatencyDuration:c.liveMaxLatencyDurationCount*e.targetduration;if((!f&&t.readyState<4||r<n-i)&&(this._hasEnoughToStart||(this.nextLoadPosition=a),t.readyState))if(this.warn(`Playback: ${r.toFixed(3)} is located too far from the end of live sliding playlist: ${n}, reset currentTime to : ${a.toFixed(3)}`),"buffered"===this.config.liveSyncMode){var s;const e=ir.bufferInfo(t,a,0);if(null==(s=e.buffered)||!s.length)return void(t.currentTime=a);if(e.start<=r)return void(t.currentTime=a);const{nextStart:c}=ir.bufferedInfo(e.buffered,r,0);c&&(t.currentTime=c)}else t.currentTime=a}}_handleFragmentLoadProgress(e){var c;const t=e.frag,{part:a,payload:r}=e,{levels:i}=this;if(!i)return void this.warn(`Levels were reset while fragment load was in progress. Fragment ${t.sn} of level ${t.level} will not be buffered`);const n=i[t.level];if(!n)return void this.warn(`Level ${t.level} not found on progress`);const f=n.details;if(!f)return this.warn(`Dropping fragment ${t.sn} of level ${t.level} after level details were reset`),void this.fragmentTracker.removeFragment(t);const s=n.videoCodec,o=f.PTSKnown||!f.live,l=null==(c=t.initSegment)?void 0:c.data,d=this._getAudioCodec(n),u=this.transmuxer=this.transmuxer||new pf(this.hls,gc,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)),h=a?a.index:-1,b=-1!==h,p=new ar(t.level,t.sn,t.stats.chunkCount,r.byteLength,h,b),g=this.initPTS[t.cc];u.push(r,l,d,s,t,a,f.totalduration,o,p,g)}onAudioTrackSwitching(e,c){const t=this.hls,a=2===this.altAudio;if(ba(c.url,t))this.altAudio=1;else{if(this.mediaBuffer!==this.media){this.log("Switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;const e=this.fragCurrent;e&&(this.log("Switching to main audio track, cancel main fragment load"),e.abortRequests(),this.fragmentTracker.removeFragment(e)),this.resetTransmuxer(),this.resetLoadingState()}else this.audioOnly&&this.resetTransmuxer();if(a)return this.fragmentTracker.removeAllFragments(),t.once(dc.BUFFER_FLUSHED,(()=>{this.hls&&this.hls.trigger(dc.AUDIO_TRACK_SWITCHED,c)})),void t.trigger(dc.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:null});t.trigger(dc.AUDIO_TRACK_SWITCHED,c)}}onAudioTrackSwitched(e,c){const t=ba(c.url,this.hls);if(t){const e=this.videoBuffer;e&&this.mediaBuffer!==e&&(this.log("Switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=e)}this.altAudio=t?2:0,this.tick()}onBufferCreated(e,c){const t=c.tracks;let a,r,i=!1;for(const n in t){const e=t[n];if("main"===e.id){if(r=n,a=e,"video"===n){const e=t[n];e&&(this.videoBuffer=e.buffer)}}else i=!0}i&&a?(this.log(`Alternate track found, use ${r}.buffered to schedule main fragment loading`),this.mediaBuffer=a.buffer):this.mediaBuffer=this.media}onFragBuffered(e,c){const{frag:t,part:a}=c,r=t.type===gc;if(r){if(this.fragContextChanged(t))return this.warn(`Fragment ${t.sn}${a?" p: "+a.index:""} of level ${t.level} finished buffering, but was aborted. state: ${this.state}`),void(this.state===xi&&(this.state=Ai));const e=a?a.stats:t.stats;this.fragLastKbps=Math.round(8*e.total/(e.buffering.end-e.loading.first)),Qc(t)&&(this.fragPrevious=t),this.fragBufferedComplete(t,a)}const i=this.media;i&&(!this._hasEnoughToStart&&ir.getBuffered(i).length&&(this._hasEnoughToStart=!0,this.seekToStartPos()),r&&this.tick())}get hasEnoughToStart(){return this._hasEnoughToStart}onError(e,c){var t;if(c.fatal)this.state=Ci;else switch(c.details){case lc.FRAG_GAP:case lc.FRAG_PARSING_ERROR:case lc.FRAG_DECRYPT_ERROR:case lc.FRAG_LOAD_ERROR:case lc.FRAG_LOAD_TIMEOUT:case lc.KEY_LOAD_ERROR:case lc.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(gc,c);break;case lc.LEVEL_LOAD_ERROR:case lc.LEVEL_LOAD_TIMEOUT:case lc.LEVEL_PARSING_ERROR:c.levelRetry||this.state!==Mi||(null==(t=c.context)?void 0:t.type)!==hc||(this.state=Ai);break;case lc.BUFFER_ADD_CODEC_ERROR:case lc.BUFFER_APPEND_ERROR:if("main"!==c.parent)return;this.reduceLengthAndFlushBuffer(c)&&this.resetLoadingState();break;case lc.BUFFER_FULL_ERROR:if("main"!==c.parent)return;if(this.reduceLengthAndFlushBuffer(c)){!this.config.interstitialsController&&this.config.assetPlayerId?this._hasEnoughToStart=!0:this.flushMainBuffer(0,Number.POSITIVE_INFINITY)}break;case lc.INTERNAL_EXCEPTION:this.recoverWorkerError(c)}}onFragLoadEmergencyAborted(){this.state=Ai,this._hasEnoughToStart||(this.startFragRequested=!1,this.nextLoadPosition=this.lastCurrentTime),this.tickImmediate()}onBufferFlushed(e,{type:c}){if(c!==Yc||!this.altAudio){const e=(c===Wc?this.videoBuffer:this.mediaBuffer)||this.media;e&&(this.afterBufferFlushed(e,c,gc),this.tick())}}onLevelsUpdated(e,c){this.level>-1&&this.fragCurrent&&(this.level=this.fragCurrent.level,-1===this.level&&this.resetWhenMissingContext(this.fragCurrent)),this.levels=c.levels}swapAudioCodec(){this.audioCodecSwap=!this.audioCodecSwap}seekToStartPos(){const{media:e}=this;if(!e)return;const c=e.currentTime;let t=this.startPosition;if(t>=0&&c<t){if(e.seeking)return void this.log(`could not seek to ${t}, already seeking at ${c}`);const a=this.timelineOffset;a&&t&&(t+=a);const r=this.getLevelDetails(),i=ir.getBuffered(e),n=i.length?i.start(0):0,f=n-t,s=Math.max(this.config.maxBufferHole,this.config.maxFragLookUpTolerance);(this.config.startOnSegmentBoundary||f>0&&(f<s||this.loadingParts&&f<2*((null==r?void 0:r.partTarget)||0)))&&(this.log(`adjusting start position by ${f} to match buffer start`),t+=f,this.startPosition=t),c<t&&(this.log(`seek to target start position ${t} from current time ${c} buffer start ${n}`),e.currentTime=t)}}_getAudioCodec(e){let c=this.config.defaultAudioCodec||e.audioCodec;return this.audioCodecSwap&&c&&(this.log("Swapping audio codec"),c=-1!==c.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5"),c}_loadBitrateTestFrag(e,c){e.bitrateTest=!0,this._doFragLoad(e,c).then((e=>{const{hls:t}=this,a=null==e?void 0:e.frag;if(!a||this.fragContextChanged(a))return;c.fragmentError=0,this.state=Ai,this.startFragRequested=!1,this.bitrateTest=!1;const r=a.stats;r.parsing.start=r.parsing.end=r.buffering.start=r.buffering.end=self.performance.now(),t.trigger(dc.FRAG_LOADED,e),a.bitrateTest=!1})).catch((c=>{this.state!==ki&&this.state!==Ci&&(this.warn(c),this.resetFragmentLoading(e))}))}_handleTransmuxComplete(e){const c=this.playlistType,{hls:t}=this,{remuxResult:a,chunkMeta:r}=e,i=this.getCurrentContext(r);if(!i)return void this.resetWhenMissingContext(r);const{frag:n,part:f,level:s}=i,{video:o,text:l,id3:d,initSegment:u}=a,{details:h}=s,b=this.altAudio?void 0:a.audio;if(this.fragContextChanged(n))this.fragmentTracker.removeFragment(n);else{if(this.state=Di,u){const e=u.tracks;if(e){const a=n.initSegment||n;if(this.unhandledEncryptionError(u,n))return;this._bufferInitSegment(s,e,a,r),t.trigger(dc.FRAG_PARSING_INIT_SEGMENT,{frag:a,id:c,tracks:e})}const a=u.initPTS,i=u.timescale,f=this.initPTS[n.cc];if(nc(a)&&(!f||f.baseTime!==a||f.timescale!==i)){const e=u.trackId;this.initPTS[n.cc]={baseTime:a,timescale:i,trackId:e},t.trigger(dc.INIT_PTS_FOUND,{frag:n,id:c,initPTS:a,timescale:i,trackId:e})}}if(o&&h){b&&"audiovideo"===o.type&&this.logMuxedErr(n);const e=h.fragments[n.sn-1-h.startSN],c=n.sn===h.startSN,t=!e||n.cc>e.cc;if(!1!==a.independent){const{startPTS:e,endPTS:a,startDTS:i,endDTS:s}=o;if(f)f.elementaryStreams[o.type]={startPTS:e,endPTS:a,startDTS:i,endDTS:s};else if(o.firstKeyFrame&&o.independent&&1===r.id&&!t&&(this.couldBacktrack=!0),o.dropped&&o.independent){const r=this.getMainFwdBufferInfo(),i=(r?r.end:this.getLoadPosition())+this.config.maxBufferHole,f=o.firstKeyFramePTS?o.firstKeyFramePTS:e;if(!c&&i<f-this.config.maxBufferHole&&!t)return void this.backtrack(n);t&&(n.gap=!0),n.setElementaryStreamInfo(o.type,n.start,a,n.start,s,!0)}else c&&e-(h.appliedTimelineOffset||0)>2&&(n.gap=!0);n.setElementaryStreamInfo(o.type,e,a,i,s),this.backtrackFragment&&(this.backtrackFragment=n),this.bufferFragmentData(o,n,f,r,c||t)}else{if(!c&&!t)return void this.backtrack(n);n.gap=!0}}if(b){const{startPTS:e,endPTS:c,startDTS:t,endDTS:a}=b;f&&(f.elementaryStreams[Yc]={startPTS:e,endPTS:c,startDTS:t,endDTS:a}),n.setElementaryStreamInfo(Yc,e,c,t,a),this.bufferFragmentData(b,n,f,r)}if(h&&null!=d&&d.samples.length){const e={id:c,frag:n,details:h,samples:d.samples};t.trigger(dc.FRAG_PARSING_METADATA,e)}if(h&&l){const e={id:c,frag:n,details:h,samples:l.samples};t.trigger(dc.FRAG_PARSING_USERDATA,e)}}}logMuxedErr(e){this.warn(`${Qc(e)?"Media":"Init"} segment with muxed audiovideo where only video expected: ${e.url}`)}_bufferInitSegment(e,c,t,a){if(this.state!==Di)return;this.audioOnly=!!c.audio&&!c.video,this.altAudio&&!this.audioOnly&&(delete c.audio,c.audiovideo&&this.logMuxedErr(t));const{audio:r,video:i,audiovideo:n}=c;if(r){const t=e.audioCodec;let a=Ut(r.codec,t);"mp4a"===a&&(a="mp4a.40.5");const i=navigator.userAgent.toLowerCase();if(this.audioCodecSwitch){a&&(a=-1!==a.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5");const e=r.metadata;e&&"channelCount"in e&&1!==(e.channelCount||1)&&-1===i.indexOf("firefox")&&(a="mp4a.40.5")}a&&-1!==a.indexOf("mp4a.40.5")&&-1!==i.indexOf("android")&&"audio/mpeg"!==r.container&&(a="mp4a.40.2",this.log(`Android: force audio codec to ${a}`)),t&&t!==a&&this.log(`Swapping manifest audio codec "${t}" for "${a}"`),r.levelCodec=a,r.id=gc,this.log(`Init audio buffer, container:${r.container}, codecs[selected/level/parsed]=[${a||""}/${t||""}/${r.codec}]`),delete c.audiovideo}if(i){i.levelCodec=e.videoCodec,i.id=gc;const t=i.codec;if(4===(null==t?void 0:t.length))switch(t){case"hvc1":case"hev1":i.codec="hvc1.1.6.L120.90";break;case"av01":i.codec="av01.0.04M.08";break;case"avc1":i.codec="avc1.42e01e"}this.log(`Init video buffer, container:${i.container}, codecs[level/parsed]=[${e.videoCodec||""}/${t}]${i.codec!==t?" parsed-corrected="+i.codec:""}${i.supplemental?" supplemental="+i.supplemental:""}`),delete c.audiovideo}n&&(this.log(`Init audiovideo buffer, container:${n.container}, codecs[level/parsed]=[${e.codecs}/${n.codec}]`),delete c.video,delete c.audio);const f=Object.keys(c);if(f.length){if(this.hls.trigger(dc.BUFFER_CODECS,c),!this.hls)return;f.forEach((e=>{const r=c[e].initSegment;null!=r&&r.byteLength&&this.hls.trigger(dc.BUFFER_APPENDING,{type:e,data:r,frag:t,part:null,chunkMeta:a,parent:t.type})}))}this.tickImmediate()}getMainFwdBufferInfo(){const e=this.mediaBuffer&&2===this.altAudio?this.mediaBuffer:this.media;return this.getFwdBufferInfo(e,gc)}get maxBufferLength(){const{levels:e,level:c}=this,t=null==e?void 0:e[c];return t?this.getMaxBufferLength(t.maxBitrate):this.config.maxBufferLength}backtrack(e){this.couldBacktrack=!0,this.backtrackFragment=e,this.resetTransmuxer(),this.flushBufferGap(e),this.fragmentTracker.removeFragment(e),this.fragPrevious=null,this.nextLoadPosition=e.start,this.state=Ai}checkFragmentChanged(){const e=this.media;let c=null;if(e&&e.readyState>1&&!1===e.seeking){const t=e.currentTime;if(ir.isBuffered(e,t)?c=this.getAppendedFrag(t):ir.isBuffered(e,t+.1)&&(c=this.getAppendedFrag(t+.1)),c){this.backtrackFragment=null;const e=this.fragPlaying,t=c.level;e&&c.sn===e.sn&&e.level===t||(this.fragPlaying=c,this.hls.trigger(dc.FRAG_CHANGED,{frag:c}),e&&e.level===t||this.hls.trigger(dc.LEVEL_SWITCHED,{level:t}))}}}get nextLevel(){const e=this.nextBufferedFrag;return e?e.level:-1}get currentFrag(){var e;if(this.fragPlaying)return this.fragPlaying;const c=(null==(e=this.media)?void 0:e.currentTime)||this.lastCurrentTime;return nc(c)?this.getAppendedFrag(c):null}get currentProgramDateTime(){var e;const c=(null==(e=this.media)?void 0:e.currentTime)||this.lastCurrentTime;if(nc(c)){const e=this.getLevelDetails(),t=this.currentFrag||(e?ga(null,e.fragments,c):null);if(t){const e=t.programDateTime;if(null!==e){const a=e+1e3*(c-t.start);return new Date(a)}}}return null}get currentLevel(){const e=this.currentFrag;return e?e.level:-1}get nextBufferedFrag(){const e=this.currentFrag;return e?this.followingBufferedFrag(e):null}get forceStartLoad(){return this._forceStartLoad}}class sl extends Ac{constructor(e,c){super("key-loader",c),this.config=void 0,this.keyIdToKeyInfo={},this.emeController=null,this.config=e}abort(e){for(const t in this.keyIdToKeyInfo){const a=this.keyIdToKeyInfo[t].loader;if(a){var c;if(e&&e!==(null==(c=a.context)?void 0:c.frag.type))return;a.abort()}}}detach(){for(const e in this.keyIdToKeyInfo){const c=this.keyIdToKeyInfo[e];(c.mediaKeySessionContext||c.decryptdata.isCommonEncryption)&&delete this.keyIdToKeyInfo[e]}}destroy(){this.detach();for(const e in this.keyIdToKeyInfo){const c=this.keyIdToKeyInfo[e].loader;c&&c.destroy()}this.keyIdToKeyInfo={}}createKeyLoadError(e,c=lc.KEY_LOAD_ERROR,t,a,r){return new cr({type:oc.NETWORK_ERROR,details:c,fatal:!1,frag:e,response:r,error:t,networkDetails:a||null})}loadClear(e,c,t){if(this.emeController&&this.config.emeEnabled&&!this.emeController.getSelectedKeySystemFormats().length){if(c.length)for(let a=0,r=c.length;a<r;a++){const i=c[a];if(e.cc<=i.cc&&(!Qc(e)||!Qc(i)||e.sn<i.sn)||!t&&a==r-1)return this.emeController.selectKeySystemFormat(i).then((e=>{if(!this.emeController)return;i.setKeyFormat(e);const c=xr(e);return c?this.emeController.getKeySystemAccess([c]):void 0}))}if(this.config.requireKeySystemAccessOnStart){const e=Cr(this.config);if(e.length)return this.emeController.getKeySystemAccess(e)}}return null}load(e){return!e.decryptdata&&e.encrypted&&this.emeController&&this.config.emeEnabled?this.emeController.selectKeySystemFormat(e).then((c=>this.loadInternal(e,c))):this.loadInternal(e)}loadInternal(e,c){var t,a;c&&e.setKeyFormat(c);const r=e.decryptdata;if(!r){const t=new Error(c?`Expected frag.decryptdata to be defined after setting format ${c}`:`Missing decryption data on fragment in onKeyLoading (emeEnabled with controller: ${this.emeController&&this.config.emeEnabled})`);return Promise.reject(this.createKeyLoadError(e,lc.KEY_LOAD_ERROR,t))}const i=r.uri;if(!i)return Promise.reject(this.createKeyLoadError(e,lc.KEY_LOAD_ERROR,new Error(`Invalid key URI: "${i}"`)));const n=ol(r);let f=this.keyIdToKeyInfo[n];if(null!=(t=f)&&t.decryptdata.key)return r.key=f.decryptdata.key,Promise.resolve({frag:e,keyInfo:f});if(this.emeController&&null!=(a=f)&&a.keyLoadPromise){switch(this.emeController.getKeyStatus(f.decryptdata)){case"usable":case"usable-in-future":return f.keyLoadPromise.then((c=>{const{keyInfo:t}=c;return r.key=t.decryptdata.key,{frag:e,keyInfo:t}}))}}switch(this.log(`${this.keyIdToKeyInfo[n]?"Rel":"L"}oading${r.keyId?" keyId: "+Mc(r.keyId):""} URI: ${r.uri} from ${e.type} ${e.level}`),f=this.keyIdToKeyInfo[n]={decryptdata:r,keyLoadPromise:null,loader:null,mediaKeySessionContext:null},r.method){case"SAMPLE-AES":case"SAMPLE-AES-CENC":case"SAMPLE-AES-CTR":return"identity"===r.keyFormat?this.loadKeyHTTP(f,e):this.loadKeyEME(f,e);case"AES-128":case"AES-256":case"AES-256-CTR":return this.loadKeyHTTP(f,e);default:return Promise.reject(this.createKeyLoadError(e,lc.KEY_LOAD_ERROR,new Error(`Key supplied with unsupported METHOD: "${r.method}"`)))}}loadKeyEME(e,c){const t={frag:c,keyInfo:e};if(this.emeController&&this.config.emeEnabled){var a;if(!e.decryptdata.keyId&&null!=(a=c.initSegment)&&a.data){const t=function(e){const c=[];return mt(e,(e=>c.push(e.subarray(8,24)))),c}(c.initSegment.data);if(t.length){const c=t[0];c.some((e=>0!==e))&&(this.log(`Using keyId found in init segment ${Mc(c)}`),e.decryptdata.keyId=c,Ur.setKeyIdForUri(e.decryptdata.uri,c))}}const r=this.emeController.loadKey(t);return(e.keyLoadPromise=r.then((c=>(e.mediaKeySessionContext=c,t)))).catch((t=>{throw e.keyLoadPromise=null,"data"in t&&(t.data.frag=c),t}))}return Promise.resolve(t)}loadKeyHTTP(e,c){const t=this.config,a=new(0,t.loader)(t);return c.keyLoader=e.loader=a,e.keyLoadPromise=new Promise(((r,i)=>{const n={keyInfo:e,frag:c,responseType:"arraybuffer",url:e.decryptdata.uri},f=t.keyLoadPolicy.default,s={loadPolicy:f,timeout:f.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},o={onSuccess:(e,c,t,a)=>{const{frag:n,keyInfo:f}=t,s=ol(f.decryptdata);if(!n.decryptdata||f!==this.keyIdToKeyInfo[s])return i(this.createKeyLoadError(n,lc.KEY_LOAD_ERROR,new Error("after key load, decryptdata unset or changed"),a));f.decryptdata.key=n.decryptdata.key=new Uint8Array(e.data),n.keyLoader=null,f.loader=null,r({frag:n,keyInfo:f})},onError:(e,t,a,r)=>{this.resetLoader(t),i(this.createKeyLoadError(c,lc.KEY_LOAD_ERROR,new Error(`HTTP Error ${e.code} loading key ${e.text}`),a,kc({url:n.url,data:void 0},e)))},onTimeout:(e,t,a)=>{this.resetLoader(t),i(this.createKeyLoadError(c,lc.KEY_LOAD_TIMEOUT,new Error("key loading timed out"),a))},onAbort:(e,t,a)=>{this.resetLoader(t),i(this.createKeyLoadError(c,lc.INTERNAL_ABORTED,new Error("key loading aborted"),a))}};a.load(n,s,o)}))}resetLoader(e){const{frag:c,keyInfo:t,url:a}=e,r=t.loader;c.keyLoader===r&&(c.keyLoader=null,t.loader=null);const i=ol(t.decryptdata)||a;delete this.keyIdToKeyInfo[i],r&&r.destroy()}}function ol(e){if(e.keyFormat!==wr){const c=e.keyId;if(c)return Mc(c)}return e.uri}function ll(e){const{type:c}=e;switch(c){case bc:return mc;case pc:return vc;default:return gc}}function dl(e,c){let t=e.url;return void 0!==t&&0!==t.indexOf("data:")||(t=c.url),t}class ul{constructor(e){this.hls=void 0,this.loaders=Object.create(null),this.variableList=null,this.onManifestLoaded=this.checkAutostartLoad,this.hls=e,this.registerListeners()}startLoad(e){}stopLoad(){this.destroyInternalLoaders()}registerListeners(){const{hls:e}=this;e.on(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.on(dc.LEVEL_LOADING,this.onLevelLoading,this),e.on(dc.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.on(dc.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this),e.on(dc.LEVELS_UPDATED,this.onLevelsUpdated,this)}unregisterListeners(){const{hls:e}=this;e.off(dc.MANIFEST_LOADING,this.onManifestLoading,this),e.off(dc.LEVEL_LOADING,this.onLevelLoading,this),e.off(dc.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.off(dc.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this),e.off(dc.LEVELS_UPDATED,this.onLevelsUpdated,this)}createInternalLoader(e){const c=this.hls.config,t=c.pLoader,a=c.loader,r=new(t||a)(c);return this.loaders[e.type]=r,r}getInternalLoader(e){return this.loaders[e.type]}resetInternalLoader(e){this.loaders[e]&&delete this.loaders[e]}destroyInternalLoaders(){for(const e in this.loaders){const c=this.loaders[e];c&&c.destroy(),this.resetInternalLoader(e)}}destroy(){this.variableList=null,this.unregisterListeners(),this.destroyInternalLoaders()}onManifestLoading(e,c){const{url:t}=c;this.variableList=null,this.load({id:null,level:0,responseType:"text",type:uc,url:t,deliveryDirectives:null,levelOrTrack:null})}onLevelLoading(e,c){const{id:t,level:a,pathwayId:r,url:i,deliveryDirectives:n,levelInfo:f}=c;this.load({id:t,level:a,pathwayId:r,responseType:"text",type:hc,url:i,deliveryDirectives:n,levelOrTrack:f})}onAudioTrackLoading(e,c){const{id:t,groupId:a,url:r,deliveryDirectives:i,track:n}=c;this.load({id:t,groupId:a,level:null,responseType:"text",type:bc,url:r,deliveryDirectives:i,levelOrTrack:n})}onSubtitleTrackLoading(e,c){const{id:t,groupId:a,url:r,deliveryDirectives:i,track:n}=c;this.load({id:t,groupId:a,level:null,responseType:"text",type:pc,url:r,deliveryDirectives:i,levelOrTrack:n})}onLevelsUpdated(e,c){const t=this.loaders[hc];if(t){const e=t.context;e&&!c.levels.some((c=>c===e.levelOrTrack))&&(t.abort(),delete this.loaders[hc])}}load(e){var c;const t=this.hls.config;let a,r=this.getInternalLoader(e);if(r){const c=this.hls.logger,t=r.context;if(t&&t.levelOrTrack===e.levelOrTrack&&(t.url===e.url||t.deliveryDirectives&&!e.deliveryDirectives))return void(t.url===e.url?c.log(`[playlist-loader]: ignore ${e.url} ongoing request`):c.log(`[playlist-loader]: ignore ${e.url} in favor of ${t.url}`));c.log(`[playlist-loader]: aborting previous loader for type: ${e.type}`),r.abort()}if(a=e.type===uc?t.manifestLoadPolicy.default:_c({},t.playlistLoadPolicy.default,{timeoutRetry:null,errorRetry:null}),r=this.createInternalLoader(e),nc(null==(c=e.deliveryDirectives)?void 0:c.part)){let c;if(e.type===hc&&null!==e.level?c=this.hls.levels[e.level].details:e.type===bc&&null!==e.id?c=this.hls.audioTracks[e.id].details:e.type===pc&&null!==e.id&&(c=this.hls.subtitleTracks[e.id].details),c){const e=c.partTarget,t=c.targetduration;if(e&&t){const c=1e3*Math.max(3*e,.8*t);a=_c({},a,{maxTimeToFirstByteMs:Math.min(c,a.maxTimeToFirstByteMs),maxLoadTimeMs:Math.min(c,a.maxTimeToFirstByteMs)})}}}const i=a.errorRetry||a.timeoutRetry||{},n={loadPolicy:a,timeout:a.maxLoadTimeMs,maxRetry:i.maxNumRetry||0,retryDelay:i.retryDelayMs||0,maxRetryDelay:i.maxRetryDelayMs||0},f={onSuccess:(e,c,t,a)=>{const r=this.getInternalLoader(t);this.resetInternalLoader(t.type);const i=e.data;c.parsing.start=performance.now(),Hr.isMediaPlaylist(i)||t.type!==uc?this.handleTrackOrLevelPlaylist(e,c,t,a||null,r):this.handleMasterPlaylist(e,c,t,a)},onError:(e,c,t,a)=>{this.handleNetworkError(c,t,!1,e,a)},onTimeout:(e,c,t)=>{this.handleNetworkError(c,t,!0,void 0,e)}};r.load(e,n,f)}checkAutostartLoad(){if(!this.hls)return;const{config:{autoStartLoad:e,startPosition:c},forceStartLoad:t}=this.hls;(e||t)&&(this.hls.logger.log(`${e?"auto":"force"} startLoad with configured startPosition ${c}`),this.hls.startLoad(c))}handleMasterPlaylist(e,c,t,a){const r=this.hls,i=e.data,n=dl(e,t),f=Hr.parseMasterPlaylist(i,n);if(f.playlistParsingError)return c.parsing.end=performance.now(),void this.handleManifestParsingError(e,t,f.playlistParsingError,a,c);const{contentSteering:s,levels:o,sessionData:l,sessionKeys:d,startTimeOffset:u,variableList:h}=f;this.variableList=h,o.forEach((e=>{const{unknownCodecs:c}=e;if(c){const{preferManagedMediaSource:t}=this.hls.config;let{audioCodec:a,videoCodec:r}=e;for(let i=c.length;i--;){const n=c[i];Dt(n,"audio",t)?(e.audioCodec=a=a?`${a},${n}`:n,wt.audio[a.substring(0,4)]=2,c.splice(i,1)):Dt(n,"video",t)&&(e.videoCodec=r=r?`${r},${n}`:n,wt.video[r.substring(0,4)]=2,c.splice(i,1))}}}));const{AUDIO:b=[],SUBTITLES:p,"CLOSED-CAPTIONS":g}=Hr.parseMasterPlaylistMedia(i,n,f);if(b.length){b.some((e=>!e.url))||!o[0].audioCodec||o[0].attrs.AUDIO||(this.hls.logger.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"),b.unshift({type:"main",name:"main",groupId:"main",default:!1,autoselect:!1,forced:!1,id:-1,attrs:new hr({}),bitrate:0,url:""}))}r.trigger(dc.MANIFEST_LOADED,{levels:o,audioTracks:b,subtitles:p,captions:g,contentSteering:s,url:n,stats:c,networkDetails:a,sessionData:l,sessionKeys:d,startTimeOffset:u,variableList:h})}handleTrackOrLevelPlaylist(e,c,t,a,r){const i=this.hls,{id:n,level:f,type:s}=t,o=dl(e,t),l=nc(f)?f:nc(n)?n:0,d=ll(t),u=Hr.parseLevelPlaylist(e.data,o,l,d,0,this.variableList);if(s===uc){const e={attrs:new hr({}),bitrate:0,details:u,name:"",url:o};u.requestScheduled=c.loading.start+oi(u,0),i.trigger(dc.MANIFEST_LOADED,{levels:[e],audioTracks:[],url:o,stats:c,networkDetails:a,sessionData:null,sessionKeys:null,contentSteering:null,startTimeOffset:null,variableList:null})}c.parsing.end=performance.now(),t.levelDetails=u,this.handlePlaylistLoaded(u,e,c,t,a,r)}handleManifestParsingError(e,c,t,a,r){this.hls.trigger(dc.ERROR,{type:oc.NETWORK_ERROR,details:lc.MANIFEST_PARSING_ERROR,fatal:c.type===uc,url:e.url,err:t,error:t,reason:t.message,response:e,context:c,networkDetails:a,stats:r})}handleNetworkError(e,c,t=!1,a,r){let i=`A network ${t?"timeout":"error"+(a?" (status "+a.code+")":"")} occurred while loading ${e.type}`;e.type===hc?i+=`: ${e.level} id: ${e.id}`:e.type!==bc&&e.type!==pc||(i+=` id: ${e.id} group-id: "${e.groupId}"`);const n=new Error(i);this.hls.logger.warn(`[playlist-loader]: ${i}`);let f=lc.UNKNOWN,s=!1;const o=this.getInternalLoader(e);switch(e.type){case uc:f=t?lc.MANIFEST_LOAD_TIMEOUT:lc.MANIFEST_LOAD_ERROR,s=!0;break;case hc:f=t?lc.LEVEL_LOAD_TIMEOUT:lc.LEVEL_LOAD_ERROR,s=!1;break;case bc:f=t?lc.AUDIO_TRACK_LOAD_TIMEOUT:lc.AUDIO_TRACK_LOAD_ERROR,s=!1;break;case pc:f=t?lc.SUBTITLE_TRACK_LOAD_TIMEOUT:lc.SUBTITLE_LOAD_ERROR,s=!1}o&&this.resetInternalLoader(e.type);const l={type:oc.NETWORK_ERROR,details:f,fatal:s,url:e.url,loader:o,context:e,error:n,networkDetails:c,stats:r};if(a){let t=e.url;c&&"url"in c&&(t=c.url),l.response=kc({url:t,data:void 0},a)}this.hls.trigger(dc.ERROR,l)}handlePlaylistLoaded(e,c,t,a,r,i){const n=this.hls,{type:f,level:s,levelOrTrack:o,id:l,groupId:d,deliveryDirectives:u}=a,h=dl(c,a),b=ll(a);let p="number"==typeof a.level&&b===gc?s:void 0;const g=e.playlistParsingError;if(g){if(this.hls.logger.warn(`${g} ${e.url}`),!n.config.ignorePlaylistParsingErrors)return void n.trigger(dc.ERROR,{type:oc.NETWORK_ERROR,details:lc.LEVEL_PARSING_ERROR,fatal:!1,url:h,error:g,reason:g.message,response:c,context:a,level:p,parent:b,networkDetails:r,stats:t});e.playlistParsingError=null}if(e.fragments.length)switch(e.live&&i&&(i.getCacheAge&&(e.ageHeader=i.getCacheAge()||0),i.getCacheAge&&!isNaN(e.ageHeader)||(e.ageHeader=0)),f){case uc:case hc:if(p)if(o){if(o!==n.levels[p]){const e=n.levels.indexOf(o);e>-1&&(p=e)}}else p=0;n.trigger(dc.LEVEL_LOADED,{details:e,levelInfo:o||n.levels[0],level:p||0,id:l||0,stats:t,networkDetails:r,deliveryDirectives:u,withoutMultiVariant:f===uc});break;case bc:n.trigger(dc.AUDIO_TRACK_LOADED,{details:e,track:o,id:l||0,groupId:d||"",stats:t,networkDetails:r,deliveryDirectives:u});break;case pc:n.trigger(dc.SUBTITLE_TRACK_LOADED,{details:e,track:o,id:l||0,groupId:d||"",stats:t,networkDetails:r,deliveryDirectives:u})}else{const i=e.playlistParsingError=new Error("No Segments found in Playlist");n.trigger(dc.ERROR,{type:oc.NETWORK_ERROR,details:lc.LEVEL_EMPTY_ERROR,fatal:!1,url:h,error:i,reason:i.message,response:c,context:a,level:p,parent:b,networkDetails:r,stats:t})}}}let hl=class e{static get version(){return Ki}static isMSESupported(){return nl()}static isSupported(){return function(){if(!nl())return!1;const e=Pc();return"function"==typeof(null==e?void 0:e.isTypeSupported)&&(["avc1.42E01E,mp4a.40.2","av01.0.01M.08","vp09.00.50.08"].some((c=>e.isTypeSupported(Pt(c,"video"))))||["mp4a.40.2","fLaC"].some((c=>e.isTypeSupported(Pt(c,"audio")))))}()}static getMediaSource(){return Pc()}static get Events(){return dc}static get MetadataSchema(){return hn}static get ErrorTypes(){return oc}static get ErrorDetails(){return lc}static get DefaultConfig(){return e.defaultConfig?e.defaultConfig:Ho}static set DefaultConfig(c){e.defaultConfig=c}constructor(c={}){this.config=void 0,this.userConfig=void 0,this.logger=void 0,this.coreComponents=void 0,this.networkControllers=void 0,this._emitter=new Gi,this._autoLevelCapping=-1,this._maxHdcpLevel=null,this.abrController=void 0,this.bufferController=void 0,this.capLevelController=void 0,this.latencyController=void 0,this.levelController=void 0,this.streamController=void 0,this.audioStreamController=void 0,this.subtititleStreamController=void 0,this.audioTrackController=void 0,this.subtitleTrackController=void 0,this.interstitialsController=void 0,this.gapController=void 0,this.emeController=void 0,this.cmcdController=void 0,this._media=null,this._url=null,this._sessionId=void 0,this.triggeringException=void 0,this.started=!1;const t=this.logger=function(e,c,t){const a=wc();if("object"==typeof console&&!0===e||"object"==typeof e){const i=["debug","log","info","warn","error"];i.forEach((c=>{a[c]=Rc(c,e,t)}));try{a.log(`Debug logs enabled for "${c}" in hls.js version 1.6.13-beta.1`)}catch(r){return wc()}i.forEach((c=>{Dc[c]=Rc(c,e)}))}else _c(Dc,a);return a}(c.debug||!1,"Hls instance",c.assetPlayerId),a=this.config=function(e,c,t){if((c.liveSyncDurationCount||c.liveMaxLatencyDurationCount)&&(c.liveSyncDuration||c.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");if(void 0!==c.liveMaxLatencyDurationCount&&(void 0===c.liveSyncDurationCount||c.liveMaxLatencyDurationCount<=c.liveSyncDurationCount))throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');if(void 0!==c.liveMaxLatencyDuration&&(void 0===c.liveSyncDuration||c.liveMaxLatencyDuration<=c.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');const a=qo(e),r=["TimeOut","MaxRetry","RetryDelay","MaxRetryTimeout"];return["manifest","level","frag"].forEach((e=>{const i=`${"level"===e?"playlist":e}LoadPolicy`,n=void 0===c[i],f=[];r.forEach((t=>{const r=`${e}Loading${t}`,s=c[r];if(void 0!==s&&n){f.push(r);const e=a[i].default;switch(c[i]={default:e},t){case"TimeOut":e.maxLoadTimeMs=s,e.maxTimeToFirstByteMs=s;break;case"MaxRetry":e.errorRetry.maxNumRetry=s,e.timeoutRetry.maxNumRetry=s;break;case"RetryDelay":e.errorRetry.retryDelayMs=s,e.timeoutRetry.retryDelayMs=s;break;case"MaxRetryTimeout":e.errorRetry.maxRetryDelayMs=s,e.timeoutRetry.maxRetryDelayMs=s}}})),f.length&&t.warn(`hls.js config: "${f.join('", "')}" setting(s) are deprecated, use "${i}": ${na(c[i])}`)})),kc(kc({},a),c)}(e.DefaultConfig,c,t);this.userConfig=c,a.progressive&&Yo(a,t);const{abrController:r,bufferController:i,capLevelController:n,errorController:f,fpsController:s}=a,o=new f(this),l=this.abrController=new r(this),d=new ja(this),u=a.interstitialsController,h=u?this.interstitialsController=new u(this,e):null,b=this.bufferController=new i(this,d),p=this.capLevelController=new n(this),g=new s(this),m=new ul(this),v=a.contentSteeringController,y=v?new v(this):null,E=this.levelController=new al(this,y),S=new cl(this),_=new sl(this.config,this.logger),T=this.streamController=new fl(this,d,_),k=this.gapController=new Wo(this,d);p.setStreamController(T),g.setStreamController(T);const A=[m,E,T];h&&A.splice(1,0,h),y&&A.splice(1,0,y),this.networkControllers=A;const L=[l,b,k,p,g,S,d];this.audioTrackController=this.createController(a.audioTrackController,A);const I=a.audioStreamController;I&&A.push(this.audioStreamController=new I(this,d,_)),this.subtitleTrackController=this.createController(a.subtitleTrackController,A);const w=a.subtitleStreamController;w&&A.push(this.subtititleStreamController=new w(this,d,_)),this.createController(a.timelineController,L),_.emeController=this.emeController=this.createController(a.emeController,L),this.cmcdController=this.createController(a.cmcdController,L),this.latencyController=this.createController(tl,L),this.coreComponents=L,A.push(o);const R=o.onErrorOut;"function"==typeof R&&this.on(dc.ERROR,R,o),this.on(dc.MANIFEST_LOADED,m.onManifestLoaded,m)}createController(e,c){if(e){const t=new e(this);return c&&c.push(t),t}return null}on(e,c,t=this){this._emitter.on(e,c,t)}once(e,c,t=this){this._emitter.once(e,c,t)}removeAllListeners(e){this._emitter.removeAllListeners(e)}off(e,c,t=this,a){this._emitter.off(e,c,t,a)}listeners(e){return this._emitter.listeners(e)}emit(e,c,t){return this._emitter.emit(e,c,t)}trigger(e,c){if(this.config.debug)return this.emit(e,e,c);try{return this.emit(e,e,c)}catch(t){if(this.logger.error("An internal error happened while handling event "+e+'. Error message: "'+t.message+'". Here is a stacktrace:',t),!this.triggeringException){this.triggeringException=!0;const c=e===dc.ERROR;this.trigger(dc.ERROR,{type:oc.OTHER_ERROR,details:lc.INTERNAL_EXCEPTION,fatal:c,event:e,error:t}),this.triggeringException=!1}}return!1}listenerCount(e){return this._emitter.listenerCount(e)}destroy(){this.logger.log("destroy"),this.trigger(dc.DESTROYING,void 0),this.detachMedia(),this.removeAllListeners(),this._autoLevelCapping=-1,this._url=null,this.networkControllers.forEach((e=>e.destroy())),this.networkControllers.length=0,this.coreComponents.forEach((e=>e.destroy())),this.coreComponents.length=0;const e=this.config;e.xhrSetup=e.fetchSetup=void 0,this.userConfig=null}attachMedia(e){if(!e||"media"in e&&!e.media){const c=new Error(`attachMedia failed: invalid argument (${e})`);return void this.trigger(dc.ERROR,{type:oc.OTHER_ERROR,details:lc.ATTACH_MEDIA_ERROR,fatal:!0,error:c})}this.logger.log("attachMedia"),this._media&&(this.logger.warn("media must be detached before attaching"),this.detachMedia());const c="media"in e,t=c?e.media:e,a=c?e:{media:t};this._media=t,this.trigger(dc.MEDIA_ATTACHING,a)}detachMedia(){this.logger.log("detachMedia");const e={};this.trigger(dc.MEDIA_DETACHING,e),this._media=null,this.trigger(dc.MEDIA_DETACHED,e)}transferMedia(){this._media=null;const e=this.bufferController.transferMedia(),c={transferMedia:e};return this.trigger(dc.MEDIA_DETACHING,c),this.trigger(dc.MEDIA_DETACHED,c),e}loadSource(e){this.stopLoad();const c=this.media,t=this._url,a=this._url=Hc.buildAbsoluteURL(self.location.href,e,{alwaysNormalize:!0});this._autoLevelCapping=-1,this._maxHdcpLevel=null,this.logger.log(`loadSource:${a}`),c&&t&&(t!==a||this.bufferController.hasSourceTypes())&&(this.detachMedia(),this.attachMedia(c)),this.trigger(dc.MANIFEST_LOADING,{url:e})}get url(){return this._url}get hasEnoughToStart(){return this.streamController.hasEnoughToStart}get startPosition(){return this.streamController.startPositionValue}startLoad(e=-1,c){this.logger.log(`startLoad(${e+(c?", <skip seek to start>":"")})`),this.started=!0,this.resumeBuffering();for(let t=0;t<this.networkControllers.length&&(this.networkControllers[t].startLoad(e,c),this.started&&this.networkControllers);t++);}stopLoad(){this.logger.log("stopLoad"),this.started=!1;for(let e=0;e<this.networkControllers.length&&(this.networkControllers[e].stopLoad(),!this.started&&this.networkControllers);e++);}get loadingEnabled(){return this.started}get bufferingEnabled(){return this.streamController.bufferingEnabled}resumeBuffering(){this.bufferingEnabled||(this.logger.log("resume buffering"),this.networkControllers.forEach((e=>{e.resumeBuffering&&e.resumeBuffering()})))}pauseBuffering(){this.bufferingEnabled&&(this.logger.log("pause buffering"),this.networkControllers.forEach((e=>{e.pauseBuffering&&e.pauseBuffering()})))}get inFlightFragments(){const e={[gc]:this.streamController.inFlightFrag};return this.audioStreamController&&(e[mc]=this.audioStreamController.inFlightFrag),this.subtititleStreamController&&(e[vc]=this.subtititleStreamController.inFlightFrag),e}swapAudioCodec(){this.logger.log("swapAudioCodec"),this.streamController.swapAudioCodec()}recoverMediaError(){this.logger.log("recoverMediaError");const e=this._media,c=null==e?void 0:e.currentTime;this.detachMedia(),e&&(this.attachMedia(e),c&&this.startLoad(c))}removeLevel(e){this.levelController.removeLevel(e)}get sessionId(){let e=this._sessionId;return e||(e=this._sessionId=function(){try{return crypto.randomUUID()}catch(e){try{const e=URL.createObjectURL(new Blob),c=e.toString();return URL.revokeObjectURL(e),c.slice(c.lastIndexOf("/")+1)}catch(c){let e=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(c=>{const t=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==c?t:3&t|8).toString(16)}))}}}()),e}get levels(){const e=this.levelController.levels;return e||[]}get latestLevelDetails(){return this.streamController.getLevelDetails()||null}get loadLevelObj(){return this.levelController.loadLevelObj}get currentLevel(){return this.streamController.currentLevel}set currentLevel(e){this.logger.log(`set currentLevel:${e}`),this.levelController.manualLevel=e,this.streamController.immediateLevelSwitch()}get nextLevel(){return this.streamController.nextLevel}set nextLevel(e){this.logger.log(`set nextLevel:${e}`),this.levelController.manualLevel=e,this.streamController.nextLevelSwitch()}get loadLevel(){return this.levelController.level}set loadLevel(e){this.logger.log(`set loadLevel:${e}`),this.levelController.manualLevel=e}get nextLoadLevel(){return this.levelController.nextLoadLevel}set nextLoadLevel(e){this.levelController.nextLoadLevel=e}get firstLevel(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)}set firstLevel(e){this.logger.log(`set firstLevel:${e}`),this.levelController.firstLevel=e}get startLevel(){const e=this.levelController.startLevel;return-1===e&&this.abrController.forcedAutoLevel>-1?this.abrController.forcedAutoLevel:e}set startLevel(e){this.logger.log(`set startLevel:${e}`),-1!==e&&(e=Math.max(e,this.minAutoLevel)),this.levelController.startLevel=e}get capLevelToPlayerSize(){return this.config.capLevelToPlayerSize}set capLevelToPlayerSize(e){const c=!!e;c!==this.config.capLevelToPlayerSize&&(c?this.capLevelController.startCapping():(this.capLevelController.stopCapping(),this.autoLevelCapping=-1,this.streamController.nextLevelSwitch()),this.config.capLevelToPlayerSize=c)}get autoLevelCapping(){return this._autoLevelCapping}get bandwidthEstimate(){const{bwEstimator:e}=this.abrController;return e?e.getEstimate():NaN}set bandwidthEstimate(e){this.abrController.resetEstimator(e)}get abrEwmaDefaultEstimate(){const{bwEstimator:e}=this.abrController;return e?e.defaultEstimate:NaN}get ttfbEstimate(){const{bwEstimator:e}=this.abrController;return e?e.getEstimateTTFB():NaN}set autoLevelCapping(e){this._autoLevelCapping!==e&&(this.logger.log(`set autoLevelCapping:${e}`),this._autoLevelCapping=e,this.levelController.checkMaxAutoUpdated())}get maxHdcpLevel(){return this._maxHdcpLevel}set maxHdcpLevel(e){(function(e){return Xt.indexOf(e)>-1})(e)&&this._maxHdcpLevel!==e&&(this._maxHdcpLevel=e,this.levelController.checkMaxAutoUpdated())}get autoLevelEnabled(){return-1===this.levelController.manualLevel}get manualLevel(){return this.levelController.manualLevel}get minAutoLevel(){const{levels:e,config:{minAutoBitrate:c}}=this;if(!e)return 0;const t=e.length;for(let a=0;a<t;a++)if(e[a].maxBitrate>=c)return a;return 0}get maxAutoLevel(){const{levels:e,autoLevelCapping:c,maxHdcpLevel:t}=this;let a;if(a=-1===c&&null!=e&&e.length?e.length-1:c,t)for(let r=a;r--;){const c=e[r].attrs["HDCP-LEVEL"];if(c&&c<=t)return r}return a}get firstAutoLevel(){return this.abrController.firstAutoLevel}get nextAutoLevel(){return this.abrController.nextAutoLevel}set nextAutoLevel(e){this.abrController.nextAutoLevel=e}get playingDate(){return this.streamController.currentProgramDateTime}get mainForwardBufferInfo(){return this.streamController.getMainFwdBufferInfo()}get maxBufferLength(){return this.streamController.maxBufferLength}setAudioOption(e){var c;return(null==(c=this.audioTrackController)?void 0:c.setAudioOption(e))||null}setSubtitleOption(e){var c;return(null==(c=this.subtitleTrackController)?void 0:c.setSubtitleOption(e))||null}get allAudioTracks(){const e=this.audioTrackController;return e?e.allAudioTracks:[]}get audioTracks(){const e=this.audioTrackController;return e?e.audioTracks:[]}get audioTrack(){const e=this.audioTrackController;return e?e.audioTrack:-1}set audioTrack(e){const c=this.audioTrackController;c&&(c.audioTrack=e)}get allSubtitleTracks(){const e=this.subtitleTrackController;return e?e.allSubtitleTracks:[]}get subtitleTracks(){const e=this.subtitleTrackController;return e?e.subtitleTracks:[]}get subtitleTrack(){const e=this.subtitleTrackController;return e?e.subtitleTrack:-1}get media(){return this._media}set subtitleTrack(e){const c=this.subtitleTrackController;c&&(c.subtitleTrack=e)}get subtitleDisplay(){const e=this.subtitleTrackController;return!!e&&e.subtitleDisplay}set subtitleDisplay(e){const c=this.subtitleTrackController;c&&(c.subtitleDisplay=e)}get lowLatencyMode(){return this.config.lowLatencyMode}set lowLatencyMode(e){this.config.lowLatencyMode=e}get liveSyncPosition(){return this.latencyController.liveSyncPosition}get latency(){return this.latencyController.latency}get maxLatency(){return this.latencyController.maxLatency}get targetLatency(){return this.latencyController.targetLatency}set targetLatency(e){this.latencyController.targetLatency=e}get drift(){return this.latencyController.drift}get forceStartLoad(){return this.streamController.forceStartLoad}get pathways(){return this.levelController.pathways}get pathwayPriority(){return this.levelController.pathwayPriority}set pathwayPriority(e){this.levelController.pathwayPriority=e}get bufferedToEnd(){var e;return!(null==(e=this.bufferController)||!e.bufferedToEnd)}get interstitialsManager(){var e;return(null==(e=this.interstitialsController)?void 0:e.interstitialsManager)||null}getMediaDecodingInfo(e,c=this.allAudioTracks){return Yt(e,sa(c),navigator.mediaCapabilities)}};hl.defaultConfig=void 0;const bl={liveSyncDuration:{key:"targetLatency",val:10},liveMaxLatencyDuration:{key:"maxLatency",val:20},backBufferLength:{key:"bufferBehind",val:10},initialLiveManifestSize:{key:"minSegmentsStartPlay",val:3},preferManagedMediaSource:[{key:"preferMMS",val:!1},{key:"preferMMSStreaming",val:!1}],lowLatencyMode:{key:"useLowLatency",val:!0},startPosition:{key:"startTime",val:0},interstitialLiveLookAhead:{key:"preloadTime",val:30}};class pl{constructor(e,c){this.hls=e,this.player=c}getAudioTracks(){if(!this.hls)return console.warn("HLS instance not initialized"),[];try{return this.hls.audioTracks||[]}catch(e){return console.error("Failed to get audio tracks:",e),[]}}getCurrentAudioTrack(){if(!this.hls)return console.warn("HLS instance not initialized"),-1;try{return this.hls.audioTrack}catch(e){return console.error("Failed to get current audio track:",e),-1}}switchAudioTrack(e){if(!this.hls)return console.warn("HLS instance not initialized"),!1;const c=this.getAudioTracks();if(0===c.length)return console.warn("No audio tracks available"),!1;if(!c.some(((c,t)=>t===e)))return console.warn(`Audio track with ID ${e} not found`),!1;try{return this.hls.audioTrack=e,this.player.emit("core_event",{eventName:"core.audiotrackchange",trackId:e,trackInfo:c[e]||null}),!0}catch(t){return console.error("Failed to switch audio track:",t),!1}}getSubtitleTracks(){if(!this.hls)return console.warn("HLS instance not initialized"),[];try{return this.hls.subtitleTracks||[]}catch(e){return console.error("Failed to get subtitle tracks:",e),[]}}getAllSubtitleTracks(){if(!this.hls)return console.warn("HLS instance not initialized"),[];try{return this.hls.allSubtitleTracks||[]}catch(e){return console.error("Failed to get all subtitle tracks:",e),[]}}getCurrentSubtitleTrack(){if(!this.hls)return console.warn("HLS instance not initialized"),-1;try{return this.hls.subtitleTrack}catch(e){return console.error("Failed to get current subtitle track:",e),-1}}switchSubtitleTrack(e){if(!this.hls)return console.warn("HLS instance not initialized"),!1;const c=this.getSubtitleTracks();if(-1===e)try{return this.hls.subtitleTrack=-1,this.player.emit("core_event",{eventName:"core.subtitletrackchange",trackId:-1,trackInfo:null}),!0}catch(t){return console.error("Failed to disable subtitle track:",t),!1}if(0===c.length)return console.warn("No subtitle tracks available"),!1;if(!c.some(((c,t)=>t===e)))return console.warn(`Subtitle track with ID ${e} not found`),!1;try{return this.hls.subtitleTrack=e,this.player.emit("core_event",{eventName:"core.subtitletrackchange",trackId:e,trackInfo:c[e]||null}),!0}catch(t){return console.error("Failed to switch subtitle track:",t),!1}}getSubtitleDisplay(){if(!this.hls)return console.warn("HLS instance not initialized"),!1;try{return this.hls.subtitleDisplay}catch(e){return console.error("Failed to get subtitle display status:",e),!1}}setSubtitleDisplay(e){if(!this.hls)return console.warn("HLS instance not initialized"),!1;try{return this.hls.subtitleDisplay=e,this.player.emit("core_event",{eventName:"core.subtitledisplaychange",enabled:e}),!0}catch(c){return console.error("Failed to set subtitle display:",c),!1}}}class gl extends Le.BasePlugin{constructor(e){super({...e,pluginName:gl.pluginName}),this._tickInterval=500,this._currentIndex=0,this._onPlay=()=>{this.hls.startLoad()},this.onUrlChange=e=>{/^blob/.test(e)||(this.playerConfig.url=e,this.register(e))},this._getBufferend=e=>{const{buffered:c}=e;let t=0;return t=c&&c.length?c.end(c.length-1):0,t},this._tick=()=>{clearTimeout(this._tickTimer);const e=this.player.media;if(!e)return;this._tickTimer=setTimeout(this._tick,this._tickInterval);const c=this._getBufferend(e);c<.1||!e.readyState||this.player.config.isLive&&4===e.readyState&&e.paused&&c-e.currentTime>this.config.disconnectTime&&this.hls.stopLoad()},this.on=(e,c)=>{var t;null==(t=this.hls)||t.on(e,c)},this.config=e.config||{},this.player.handleSource=!1}static get pluginName(){return"hls"}beforePlayerInit(){this.register(this.player.config.url)}initEvt(){var e,c;e=this.hls,c=this.player,e.on(hl.Events.SUBTITLE_FRAG_PROCESSED,((e,{frag:t})=>{c.emit("core_event",{eventName:"core.subtitlesegments",list:t})})),e.on(hl.Events.MANIFEST_PARSED,((e,{levels:t})=>{c.emit("core_event",{eventName:"core.hlsManifestParsed",list:t})})),e.on(hl.Events.MANIFEST_LOADING,((e,{url:t})=>{c.emit("core_event",{eventName:"core.loadstart",url:t})})),e.on(hl.Events.LEVEL_LOADING,((e,{url:t})=>{c.emit("core_event",{eventName:"core.loadstart",url:t})})),e.on(hl.Events.FRAG_LOADING,((e,{frag:t})=>{c.emit("core_event",{eventName:"core.loadstart",url:t.url})})),e.on(hl.Events.MANIFEST_LOADED,((e,t)=>{const{url:a}=t;c.emit("core_event",{eventName:"core.loadcomplete",url:a})})),e.on(hl.Events.LEVEL_LOADED,((e,t)=>{const{details:a,stats:r}=t;c.emit("core_event",{eventName:"core.loadcomplete",...r,url:null==a?void 0:a.url})})),e.on(hl.Events.FRAG_LOADED,((e,t)=>{const{frag:a}=t;c.emit("core_event",{eventName:"core.loadcomplete",url:a.url})})),e.on(hl.Events.FRAG_PARSING_USERDATA,((e,t)=>{const{samples:a}=t;a.forEach((e=>{let t;e.customSeiMessage&&(t={originPts:e.pts,pts:e.pts,time:0,data:{payload:e.payload,type:e.payloadType,size:e.payloadSize,uuid:5===e.payloadType?e.uuid:""},sei:{code:e.payloadType,content:e.payload,dts:e.pts}},c.emit("core_event",{eventName:"core.sei",...t}))}))})),e.on(hl.Events.MANIFEST_LOADED,((e,{levels:t,networkDetails:a})=>{c.emit("core_event",{eventName:"core.hlsmanifestloaded",playlist:t}),c.emit("core_event",{eventName:"core.loadresponseheaders",headers:a.headers})})),e.on(hl.Events.LEVEL_LOADED,((e,{details:t})=>{const a={};Object.keys(t.dateRanges).forEach((e=>{a[e]=t.dateRanges[e].attr["START-DATE"]})),c.emit("core_event",{eventName:"core.hlslevelloaded",playlist:{...t,segments:t.fragments,dateRanges:a}})})),[hl.Events.AUDIO_TRACKS_UPDATED,hl.Events.AUDIO_TRACK_SWITCHING,hl.Events.AUDIO_TRACK_SWITCHED,hl.Events.AUDIO_TRACK_LOADING,hl.Events.AUDIO_TRACK_LOADED].forEach((t=>e.on(t,((e,a)=>c.emit(t,a))))),e.on(hl.Events.ERROR,((t,a)=>{const{details:r,fatal:i,type:n,response:f,reason:s,error:o}=a;if(!i)return;let l,d;switch(n){case hl.ErrorTypes.NETWORK_ERROR:l=2100,r.includes("TimeOut")?l=2101:403===(null==f?void 0:f.code)?l=2103:404===(null==f?void 0:f.code)&&(l=2104),c.emit("error",{errorType:"network",errorCode:l,message:(null==o?void 0:o.message)||r,originError:a});break;case hl.ErrorTypes.MEDIA_ERROR:d="media",r===hl.ErrorDetails.MANIFEST_INCOMPATIBLE_CODECS_ERROR?l=5104:r===hl.ErrorDetails.FRAG_DECRYPT_ERROR?l=5105:r===hl.ErrorDetails.FRAG_PARSING_ERROR?(l=1100,d="manifest"):r===hl.ErrorDetails.FRAG_GAP?l=5104:r===hl.ErrorDetails.BUFFER_ADD_CODEC_ERROR?l=5200:r===hl.ErrorDetails.BUFFER_INCOMPATIBLE_CODECS_ERROR?l=5104:r===hl.ErrorDetails.BUFFER_APPEND_ERROR||r===hl.ErrorDetails.BUFFER_APPENDING_ERROR?l=5201:r===hl.ErrorDetails.BUFFER_STALLED_ERROR||r===hl.ErrorDetails.BUFFER_FULL_ERROR?l=5203:(r===hl.ErrorDetails.BUFFER_SEEK_OVER_HOLE||r===hl.ErrorDetails.BUFFER_NUDGE_ON_STALL)&&(l=5202),c.emit("error",{errorType:d||n,errorCode:l,message:(null==o?void 0:o.message)||r,originError:a});break;case hl.ErrorTypes.MUX_ERROR:l=4100,c.emit("error",{errorType:"remux",errorCode:l,message:(null==o?void 0:o.message)||r,originError:a});break;case hl.ErrorTypes.KEY_SYSTEM_ERROR:l=7111,r===hl.ErrorDetails.KEY_SYSTEM_NO_KEYS?l=7103:r===hl.ErrorDetails.KEY_SYSTEM_NO_ACCESS?l=7101:r===hl.ErrorDetails.KEY_SYSTEM_NO_SESSION?l=7104:r===hl.ErrorDetails.KEY_SYSTEM_NO_CONFIGURED_LICENSE?l=7107:r===hl.ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED?l=7108:r===hl.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED||r===hl.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED?l=7110:r===hl.ErrorDetails.KEY_SYSTEM_SESSION_UPDATE_FAILED?l=7104:r===hl.ErrorDetails.KEY_SYSTEM_STATUS_INTERNAL_ERROR&&(l=7111),c.emit("error",{errorType:"drm",errorCode:l,message:(null==o?void 0:o.message)||s||r,originError:a});break;default:r===hl.ErrorDetails.LEVEL_SWITCH_ERROR&&(l=2100,d="network"),c.emit("error",{errorType:d||"other",errorCode:l,message:(null==o?void 0:o.message)||s||r,originError:a})}try{e.stopLoad(),c.pause()}catch(u){}})),e.on(hl.Events.MEDIA_ATTACHED,(()=>{c.emit("sourceopen")})),e.on(hl.Events.BUFFER_APPENDED,(()=>{c.emit("bufferappend")})),e.on(hl.Events.AUDIO_TRACKS_UPDATED,((e,{audioTracks:t})=>{c.emit("core_event",{eventName:"core.audiotracksupdate",audioTracks:t})})),e.on(hl.Events.AUDIO_TRACK_SWITCHING,((e,t)=>{c.emit("core_event",{eventName:"core.audiotrackswitching",...t})})),e.on(hl.Events.AUDIO_TRACK_SWITCHED,((e,t)=>{c.emit("core_event",{eventName:"core.audiotrackswitched",...t})})),e.on(hl.Events.SUBTITLE_TRACKS_UPDATED,((e,{subtitleTracks:t})=>{c.emit("core_event",{eventName:"core.subtitleplaylist",subtitleTracks:t})})),e.on(hl.Events.SUBTITLE_TRACKS_CLEARED,(()=>{c.emit("core_event",{eventName:"core.subtitletracksclear"})})),e.on(hl.Events.SUBTITLE_TRACK_SWITCH,((e,t)=>{c.emit("core_event",{eventName:"core.subtitletrackswitch",...t})})),e.on(hl.Events.SUBTITLE_TRACK_LOADING,((e,t)=>{c.emit("core_event",{eventName:"core.subtitletrackloading",...t})})),e.on(hl.Events.SUBTITLE_TRACK_LOADED,((e,t)=>{c.emit("core_event",{eventName:"core.subtitletrackloaded",...t})}))}afterCreate(){const e=this.player.media;this.player.on(Le.Events.URL_CHANGE,this.onUrlChange);try{Le.BasePlugin.defineGetterOrSetter(this.player,{url:{get:()=>{try{return e.src}catch(c){return null}},configurable:!0}})}catch(c){}}register(e){const{player:c}=this;this.hls&&this.hls.destroy();const t=function(e){const c={};Object.keys(bl).forEach((t=>{const a=bl[t];a instanceof Array?a.forEach((e=>{c[t]=e.val})):c[t]=e[a.key]||a.val}));const t="number"==typeof e.retryCount?e.retryCount:3,a="number"==typeof e.retryDelay?e.retryDelay:1e3,r=e.loadTimeout||1e4,i="number"==typeof e.manifestLoadTimeout?e.manifestLoadTimeout:1e4,n={maxNumRetry:t,retryDelayMs:a,maxRetryDelayMs:a,shouldRetry:(e,c)=>c<e.maxNumRetry},f={maxNumRetry:t,retryDelayMs:a,maxRetryDelayMs:a,shouldRetry:(e,c)=>c<e.maxNumRetry};return c.manifestLoadPolicy={default:{maxTimeToFirstByteMs:1/0,maxLoadTimeMs:i,timeoutRetry:n,errorRetry:f}},c.playlistLoadPolicy={default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:r,timeoutRetry:n,errorRetry:f}},c.fragLoadPolicy={default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:r,timeoutRetry:n,errorRetry:f}},{...c,...e}}(this.config);if(this.hls=new hl(t),this._trackManager=new pl(this.hls,this.player),this.initEvt(),c.config.preProcessUrl&&e){const{url:t}=c.config.preProcessUrl(e);e=t}e&&this.hls.loadSource(e);const a=this.player.media;this.hls.attachMedia(a),this._tickTimer&&clearTimeout(this._tickTimer),this._tickTimer=setTimeout(this._tick,this._tickInterval),a.removeEventListener("play",this._onPlay),a.addEventListener("play",this._onPlay)}switchUrl(e,{startTime:c,bitrate:t,seamless:a}){if(this.hls.loadSource(e),void 0!==c){this.player.media.currentTime=c}}getAudioTracks(){return this._trackManager.getAudioTracks()}getCurrentAudioTrack(){return this._trackManager.getCurrentAudioTrack()}switchAudioTrack(e){return this._trackManager.switchAudioTrack(e)}getSubtitleTracks(){return this._trackManager.getSubtitleTracks()}getAllSubtitleTracks(){return this._trackManager.getAllSubtitleTracks()}getCurrentSubtitleTrack(){return this._trackManager.getCurrentSubtitleTrack()}switchSubtitleTrack(e){return this._trackManager.switchSubtitleTrack(e)}getSubtitleDisplay(){return this._trackManager.getSubtitleDisplay()}setSubtitleDisplay(e){return this._trackManager.setSubtitleDisplay(e)}destroy(){var e;clearTimeout(this._tickTimer),this.player.off(Le.Events.URL_CHANGE,this.onUrlChange),null==(e=this.hls)||e.destroy()}}var ml=function(e){return e[e.INDEXDB=0]="INDEXDB",e[e.MEMORY=1]="MEMORY",e}(ml||{}),vl=function(e){return e.PRELOAD_NEXT="PRELOAD_NEXT",e.PRELOAD_START="PRELOAD_START",e.PRELOAD_CANCEL="PRELOAD_CANCEL",e.PRELOAD_STOP="PRELOAD_STOP",e}(vl||{}),yl={exports:{}};!function(e){var c=Object.prototype.hasOwnProperty,t="~";function a(){}function r(e,c,t){this.fn=e,this.context=c,this.once=t||!1}function i(e,c,a,i,n){if("function"!=typeof a)throw new TypeError("The listener must be a function");var f=new r(a,i||e,n),s=t?t+c:c;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],f]:e._events[s].push(f):(e._events[s]=f,e._eventsCount++),e}function n(e,c){0==--e._eventsCount?e._events=new a:delete e._events[c]}function f(){this._events=new a,this._eventsCount=0}Object.create&&(a.prototype=Object.create(null),(new a).__proto__||(t=!1)),f.prototype.eventNames=function(){var e,a,r=[];if(0===this._eventsCount)return r;for(a in e=this._events)c.call(e,a)&&r.push(t?a.slice(1):a);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(e)):r},f.prototype.listeners=function(e){var c=t?t+e:e,a=this._events[c];if(!a)return[];if(a.fn)return[a.fn];for(var r=0,i=a.length,n=new Array(i);r<i;r++)n[r]=a[r].fn;return n},f.prototype.listenerCount=function(e){var c=t?t+e:e,a=this._events[c];return a?a.fn?1:a.length:0},f.prototype.emit=function(e,c,a,r,i,n){var f=t?t+e:e;if(!this._events[f])return!1;var s,o,l=this._events[f],d=arguments.length;if(l.fn){switch(l.once&&this.removeListener(e,l.fn,void 0,!0),d){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,c),!0;case 3:return l.fn.call(l.context,c,a),!0;case 4:return l.fn.call(l.context,c,a,r),!0;case 5:return l.fn.call(l.context,c,a,r,i),!0;case 6:return l.fn.call(l.context,c,a,r,i,n),!0}for(o=1,s=new Array(d-1);o<d;o++)s[o-1]=arguments[o];l.fn.apply(l.context,s)}else{var u,h=l.length;for(o=0;o<h;o++)switch(l[o].once&&this.removeListener(e,l[o].fn,void 0,!0),d){case 1:l[o].fn.call(l[o].context);break;case 2:l[o].fn.call(l[o].context,c);break;case 3:l[o].fn.call(l[o].context,c,a);break;case 4:l[o].fn.call(l[o].context,c,a,r);break;default:if(!s)for(u=1,s=new Array(d-1);u<d;u++)s[u-1]=arguments[u];l[o].fn.apply(l[o].context,s)}}return!0},f.prototype.on=function(e,c,t){return i(this,e,c,t,!1)},f.prototype.once=function(e,c,t){return i(this,e,c,t,!0)},f.prototype.removeListener=function(e,c,a,r){var i=t?t+e:e;if(!this._events[i])return this;if(!c)return n(this,i),this;var f=this._events[i];if(f.fn)f.fn!==c||r&&!f.once||a&&f.context!==a||n(this,i);else{for(var s=0,o=[],l=f.length;s<l;s++)(f[s].fn!==c||r&&!f[s].once||a&&f[s].context!==a)&&o.push(f[s]);o.length?this._events[i]=1===o.length?o[0]:o:n(this,i)}return this},f.prototype.removeAllListeners=function(e){var c;return e?(c=t?t+e:e,this._events[c]&&n(this,c)):(this._events=new a,this._eventsCount=0),this},f.prototype.off=f.prototype.removeListener,f.prototype.addListener=f.prototype.on,f.prefixed=t,f.EventEmitter=f,e.exports=f}(yl);var El,Sl=Ze(yl.exports),_l=function(e){return e.MP4="MP4",e.MP4_MSE_SOFT="MP4_MSE_SOFT",e.MP4_MSE="MP4_MSE",e.MP4_0="MP4_0",e.MP4_1="MP4_1",e.MP4_2="MP4_2",e.DASH="DASH",e.HLS="HLS",e}(_l||{}),Tl=function(e){return e[e.Normal=0]="Normal",e[e.Ad=1]="Ad",e}(Tl||{}),kl=function(e){return e[e.AVC=0]="AVC",e[e.HEVC=1]="HEVC",e[e.VVC=2]="VVC",e.H264="h264",e.H265="h265",e.H266="h266",e}(kl||{}),Al="cdn",Ll=1,Il=2,wl=3,Rl=4,Dl=5,xl=6,Pl=7,Cl=8,Ol=9;Fe(Fe(Fe(Fe(Fe(Fe(Fe(Fe(Fe(Fe({},0,"before start"),Ll,"codec not support"),Il,"start init destroy"),wl,"no preload"),Rl,"close downgrade"),Dl,"init promise catch"),xl,"player error"),Pl,"http error"),Cl,"mse error"),Ol,"destroy");var Ml,Fl=function(e){function c(){var e;return xe(this,c),(e=De(this,c,arguments))._ploys=[],e._curInstContext=null,e}return Be(c,e),Oe(c,[{key:"_findIndexFromPloys",value:function(e){for(var c=-1,t=this._ploys,a=0;a<t.length;a++)if(t[a]===e){c=a;break}return c}},{key:"_checkStrategy",value:function(e){return!(null==e||!e.start||!e.stop||this._findIndexFromPloys(e)>-1)}},{key:"registerStrategy",value:function(e){var c=this;e&&(Array.isArray(e)||(e=[e]),e.forEach((function(e){var t=e.Strategy,a=e.config;if(a)try{var r=new t(a,c);c._checkStrategy(r)&&(r.start(),c._ploys.push(r))}catch(i){console.log("InstStrategy Error:",i)}})))}},{key:"unregisterStrategy",value:function(e){if(e){e.stop();var c=this._findIndexFromPloys(e);c>-1&&this._ploys.splice(c,1)}else this._ploys.forEach((function(e){e.stop()})),this._ploys.splice(0,this._ploys.length)}},{key:"findStrategy",value:function(e){return this._ploys.find((function(c){return c.constructor.STRATEGY_NAME===e}))}},{key:"updateStrategyConfig",value:function(e,c){var t=arguments.length>2&&void 0!==arguments[2]&&arguments[2];e&&c&&this._ploys.forEach((function(a){a instanceof e&&a.updateConfig(c,t)}))}},{key:"setActive",value:function(e,t,a){var r=Ye(c,"setActive",this,3)([e,t]);return t&&a&&this.setVideoListContext(a),this.emit("UPDATE_INST_ORDER"),r}},{key:"setNext",value:function(e){var t=Ye(c,"setNext",this,3)([e]);return this.emit("UPDATE_INST_ORDER"),t}},{key:"getVideoListContext",value:function(){return this._curInstContext}},{key:"setVideoListContext",value:function(e){var c;if(e){var t=(null===(c=e.allVideos)||void 0===c?void 0:c.slice(0))||[],a=[],r=[],i=t.findIndex((function(e){return e.isActive}));if(-1!==i){for(var n=t[i],f=0;f<e.allVideos.length;f++)f<i?a.push(e.allVideos[f]):f>i&&r.push(e.allVideos[f]);this._curInstContext={current:n,prevVideos:a,nextVideos:r,allVideos:t},this.emit("VIDEO_LIST_CONTEXT_CHANGED")}}}}],[{key:"getInstance",value:function(){return El||(El=new c),El}}])}(Le.InstManager||Object.prototype.constructor);Le.instManager=Fl.getInstance();var Nl=function(e){function c(e){var t;xe(this,c);var a=t=De(this,c,[e]),r=a.player,i=a.playerConfig;return t.playerId=r.playerId,t.codecType=i.codecType?i.codecType.toLowerCase():kl.H264,t.bizType=r.bizType="number"==typeof i.bizType?i.bizType:Tl.Normal,i.vtype&&(t.vtype=i.vtype.toUpperCase()),Ml&&(r.preloader=Ml),t}return Be(c,e),Oe(c,[{key:"softDecode",get:function(){var e;return"xg-video"===(null===(e=this.playerConfig)||void 0===e?void 0:e.mediaType)}}],[{key:"registerPreloader",value:function(e){e&&(Ml=e,Fl.getInstance().findAll((function(e){return e.config.isLive||(e.preloader=Ml),!1})))}}])}(Le.BasePlugin);var Ul=Bl&&!function(){var e="_localstorage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(c){return!0}}();function Bl(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}var $l={length:Ul?localStorage.length:0,clear:function(e){try{for(var c=localStorage.length-1;c>=0;c--){var t=localStorage.key(c);0===t.indexOf(e)&&localStorage.removeItem(t)}}catch(a){}},getItem:function(e){try{return localStorage.getItem(e)}catch(c){return null}},key:function(e){try{return localStorage.key(e)}catch(c){return null}},setItem:function(e,c){try{localStorage.setItem(e,c)}catch(t){}},removeItem:function(e){try{localStorage.removeItem(e)}catch(c){}},isSupport:Ul},jl=$l,Gl=function(){return Oe((function e(){var c,t;xe(this,e);var a=new Promise((function(e,a){c=e,t=a}));return a.resolve=c,a.reject=t,a}),[{key:"resolve",value:function(e){}},{key:"reject",value:function(e){}}])}();Promise.withResolvers||(Promise.withResolvers=function(){var e={};return e.promise=new Promise((function(c,t){e.resolve=c,e.reject=t})),e});var Kl=function(){try{if("undefined"!=typeof indexedDB)return indexedDB}catch(e){}}();function Vl(e,c){c&&e.then((function(e){c(null,e)}),(function(e){c(e)}))}function Hl(e){return"string"!=typeof e&&(console.warn("".concat(e," used as a key, but it is not a string.")),e=String(e)),e}var ql={},Yl="readonly",Wl="readwrite";function zl(e){var c=ql[e.name],t={};t.promise=new Promise((function(e,c){t.resolve=e,t.reject=c})),c.deferredOperations.push(t),c.dbReady?c.dbReady=c.dbReady.then((function(){return t.promise})):c.dbReady=t.promise}function Xl(e,c){return new Promise((function(t,a){if(ql[e.name]=ql[e.name]||{forages:[],db:null,dbReady:null,deferredOperations:[]},e.db){if(!c)return t(e.db);zl(e),e.db.close()}var r=[e.name];c&&r.push(e.version);var i=null==Kl?void 0:Kl.open.apply(Kl,r);c&&(i.onupgradeneeded=function(c){var t=i.result;try{t.createObjectStore(e.storeName)}catch(a){if("ConstraintError"!==a.name)throw a;console.warn('The database "'.concat(e.name,'" has been upgraded from version ').concat(c.oldVersion," to\n version ").concat(c.newVersion,', but the storage "').concat(e.storeName,'" already exists.'))}}),i.onerror=function(e){e.preventDefault(),a(i.error)},i.onsuccess=function(){t(i.result),function(e){var c=ql[e.name].deferredOperations.pop();if(c)c.resolve(),c.promise}(e)}}))}function Ql(e){return Xl(e,!1)}function Jl(e){return Xl(e,!0)}function Zl(e,c){if(!e.db)return!0;var t=!e.db.objectStoreNames.contains(e.storeName),a=e.version<e.db.version,r=e.version>e.db.version;if(a&&(e.version!==c&&console.warn('The database "'.concat(e.name,"\" can't be downgraded from version ").concat(e.db.version," to\n version ").concat(e.version,".")),e.version=e.db.version),r||t){if(t){var i=e.db.version+1;i>e.version&&(e.version=i)}return!0}return!1}function ed(e){zl(e);for(var c=ql[e.name],t=c.forages,a=0;a<t.length;a++){var r=t[a];r._dbInfo.db&&(r._dbInfo.db.close(),r._dbInfo.db=null)}return e.db=null,Ql(e).then((function(c){return e.db=c,Zl(e)?Jl(e):c})).then((function(a){e.db=c.db=a;for(var r=0;r<t.length;r++)t[r]._dbInfo.db=a})).catch((function(c){throw function(e,c){var t=ql[e.name].deferredOperations.pop();if(t)t.reject(c),t.promise}(e,c),c}))}function cd(e,c,t,a){void 0===a&&(a=1);try{var r=e.db.transaction(e.storeName,c);t(null,r)}catch(nm){if(a>0&&(!e.db||"InvalidStateError"===nm.name||"NotFoundError"===nm.name))return Promise.resolve().then((function(){if(!e.db||"NotFoundError"===nm.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),Jl(e)})).then((function(){return ed(e).then((function(){cd(e,c,t,a-1)}))})).catch(t);t(nm)}}var td=function(){return Oe((function e(){xe(this,e)}),[{key:"ready",value:function(){return this._ready}},{key:"_initStorage",value:function(e){var c=this;c._defaultConfig=e;var t={db:null,name:"",version:""};if(e)for(var a in e)t[a]=e[a];var r=ql[t.name];r||(r={forages:[],db:null,dbReady:null,deferredOperations:[]},ql[t.name]=r),r.forages.push(c),c._initReady||(c._initReady=c.ready,c._ready=c._fullyReady);var i=[];function n(){return Promise.resolve()}for(var f=0;f<r.forages.length;f++){var s=r.forages[f];s!==c&&i.push(s._initReady().catch(n))}var o=r.forages.slice(0);return c._ready=Promise.all(i).then((function(){return t.db=r.db,Ql(t)})).then((function(e){return t.db=e,Zl(t,c._defaultConfig.version)?Jl(t):e})).then((function(e){t.db=r.db=e,c._dbInfo=t;for(var a=0;a<o.length;a++){var i=o[a];i!==c&&(i._dbInfo.db=t.db,i._dbInfo.version=t.version)}})),c._ready}},{key:"probeSupport",get:function(){return function(){try{if(null==Kl||!Kl.open)return!1;var e=/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),c="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||c)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(t){return!1}}()}},{key:"getItem",value:function(e,c){var t=this;e=Hl(e);var a=new Promise((function(c,a){t.ready().then((function(){cd(t._dbInfo,Yl,(function(r,i){if(r)return a(r);try{var n=i.objectStore(t._dbInfo.storeName).get(e);n.onsuccess=function(){var e=n.result;void 0===e&&(e=null),c(e)},n.onerror=function(){a(n.error)}}catch(f){a(f)}}))})).catch(a)}));return Vl(a,c),a}},{key:"setItem",value:function(e,c,t){var a=this;e=Hl(e);var r=new Promise((function(t,r){a.ready().then((function(){return a._dbInfo,c})).then((function(c){cd(a._dbInfo,Wl,(function(i,n){if(i)return r(i);try{var f=n.objectStore(a._dbInfo.storeName);null===c&&(c=void 0);var s=f.put(c,e);n.oncomplete=function(){void 0===c&&(c=null),t(c)},n.onabort=n.onerror=function(){var e=s.error?s.error:s.transaction.error;r(e)}}catch(o){r(o)}}))})).catch(r)}));return Vl(r,t),r}},{key:"removeItem",value:function(e,c){var t=this;e=Hl(e);var a=new Promise((function(c,a){t.ready().then((function(){cd(t._dbInfo,Wl,(function(r,i){if(r)return a(r);try{var n=i.objectStore(t._dbInfo.storeName).delete(e);i.oncomplete=function(){c()},i.onerror=function(){a(n.error)},i.onabort=function(){var e=n.error?n.error:n.transaction.error;a(e)}}catch(f){a(f)}}))})).catch(a)}));return Vl(a,c),a}},{key:"clear",value:function(e){var c=this,t=new Promise((function(e,t){c.ready().then((function(){cd(c._dbInfo,Wl,(function(a,r){if(a)return t(a);try{var i=r.objectStore(c._dbInfo.storeName).clear();r.oncomplete=function(){e()},r.onabort=r.onerror=function(){var e=i.error?i.error:i.transaction.error;t(e)}}catch(n){t(n)}}))})).catch(t)}));return Vl(t,e),t}},{key:"length",value:function(e){var c=this,t=new Promise((function(e,t){c.ready().then((function(){cd(c._dbInfo,Yl,(function(a,r){if(a)return t(a);try{var i=r.objectStore(c._dbInfo.storeName).count();i.onsuccess=function(){e(i.result)},i.onerror=function(){t(i.error)}}catch(n){t(n)}}))})).catch(t)}));return Vl(t,e),t}},{key:"all",value:function(e){var c=this,t=new Promise((function(e,t){c.ready().then((function(){cd(c._dbInfo,Yl,(function(a,r){if(a)return t(a);try{var i=r.objectStore(c._dbInfo.storeName).openCursor(),n=[];i.onsuccess=function(){var c=i.result;c?(n.push({key:c.key,value:c.value}),c.continue()):e(n)},i.onerror=function(){t(i.error)}}catch(f){t(f)}}))})).catch(t)}));return Vl(t,e),t}},{key:"_fullyReady",value:function(e){var c=this,t=c._initReady().then((function(){var e=ql[c._dbInfo.name];if(null!=e&&e.dbReady)return e.dbReady}));return function(e,c,t){"function"==typeof c&&e.then(c),"function"==typeof t&&e.catch(t)}(t,e,e),t}},{key:"getItemSync",value:function(){throw new Error("NotSupported")}}])}(),ad=td,rd=function(){return Oe((function e(){xe(this,e)}),[{key:"_initStorage",value:function(e){var c=e.name,t=e.storeName,a="".concat(c,"_").concat(t);return this.key=a,window[a]&&"object"===Xe(window[a])||(window[a]={}),this.store=window[a],Promise.resolve()}},{key:"getItem",value:function(e,c){var t=this.store[e];return void 0===t&&(t=null),this._internalPromise(c,t)}},{key:"getItemSync",value:function(e,c){var t=this.store[e];return void 0===t&&(t=null),c&&c(t),t}},{key:"setItem",value:function(e,c,t){return this.store[e]=c,this._internalPromise(t)}},{key:"removeItem",value:function(e,c){return delete this.store[e],this._internalPromise(c)}},{key:"clear",value:function(e){return this.store={},window[this.key]={},this._internalPromise(e)}},{key:"length",value:function(e){var c=Object.keys(this.store).length;return this._internalPromise(e,c)}},{key:"_internalPromise",value:function(e,c){var t=c?Promise.resolve(c):Promise.resolve();return Vl(t,e),t}},{key:"all",value:function(e){for(var c=[],t=Object.keys(this.store),a=0;a<t.length;a++){var r=t[a];c.push({key:r,value:this.store[r]})}return this._internalPromise(e,c)}},{key:"probeSupport",value:function(){return!0}}])}(),id=rd,nd={description:"",name:"__PRE_CACHE__",storeName:"keyvaluepairs",version:1},fd="__PRE_CACHE__KEYS",sd=function(){return Oe((function e(c,t){xe(this,e),this._allCachedKeyMap={},this._memory=0,this._cnt=0;var a=t===ml.MEMORY?id:ad;this._cacheType=t,this._driver=new a,this._driver._initStorage(nd).catch((function(){})),this._hasIdbForbidden=!1,this._maxCache=!c||c<=0?200:c,this.setMaxCache(this._maxCache),this._allCachedKeys={},this._allCachedTimeKeys={},this.getCachedKeysFromLocal(),this._readyPromise=new Gl,this.init()}),[{key:"supportSync",value:function(){return this._cacheType===ml.MEMORY}},{key:"getCachedKeysFromLocal",value:function(){var e=jl.getItem(fd);if(e)for(var c=e.split("|"),t=0;t<c.length;t++){var a=c[t],r=this._getCacheKeyInfos(a),i=r.time,n=r.cachedKey;this._allCachedKeys[n]=1,this._allCachedTimeKeys[n]=i}}},{key:"_getCacheKeyInfos",value:function(e){var c,t=e.split("$");return 2===t.length&&(c=t[0],e=t[1]),{time:c,cachedKey:e}}},{key:"writeCachedKeysToLocal",value:function(e){var c=[];this._allCachedKeys={},this._allCachedTimeKeys={};for(var t=0;t<e.length;t++){var a=e[t].key,r=this._getCacheKeyInfos(a),i=r.time,n=r.cachedKey;this._allCachedKeys[n]=1,this._allCachedTimeKeys[n]=i,c.push(a)}var f=c.join("|");jl.setItem(fd,f)}},{key:"init",value:function(){var e=this;this._driver.setItem("test","test").then((function(){})).catch((function(){e._hasIdbForbidden=!0})).finally((function(){e._driver.removeItem("test").catch((function(){})),e._hasIdbForbidden&&(e._driver=new id,e._driver._initStorage(nd)),e._getAll(),e._readyPromise.resolve()}))}},{key:"_getAll",value:function(){var e=this;this._memory=0,this._cnt=0,this._driver.all().then((function(c){e._cachedLength=c.length;var t=c.length-e._maxCache,a=c;if(t>0){var r=c.slice(0,t);a=c.slice(t);for(var i=0;i<r.length;i++)e.removeItem(r[i].key).then((function(){}))}e._cnt=a.length;for(var n=0;n<a.length;n++){var f=a[n];if("object"===Xe(f.value)){Object.values(f.value).forEach((function(c){e._memory+=(null==c?void 0:c.memory)||0}));var s=e._getCacheKeyInfos(f.key).cachedKey;e._allCachedKeyMap[s]=Object.keys(f.value)}}e.writeCachedKeysToLocal(a)})).catch((function(){}))}},{key:"getAllCachedDataKeys",value:function(){var e=[];return Object.values(this._allCachedKeyMap).forEach((function(c){e.push.apply(e,We(c))})),e}},{key:"getItem",value:(e=Re(Ve().mark((function e(c,t,a){var r,i,n,f,s;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((r=this.hasItem(c))&&a&&(i=this._allCachedKeyMap[c],r=(null==i?void 0:i.includes(a))||!1),r){e.next=4;break}return e.abrupt("return",Promise.resolve(!1));case 4:return n=this._getTimeKey(c),f=n.timeKey,e.next=7,this._driver.getItem(f,t);case 7:if(s=e.sent,!a){e.next=10;break}return e.abrupt("return",s[a]);case 10:return e.abrupt("return",s);case 11:case"end":return e.stop()}}),e,this)}))),function(c,t,a){return e.apply(this,arguments)})},{key:"getItemSync",value:function(e,c,t){var a=this.hasItem(e);if(a&&t){var r=this._allCachedKeyMap[e];a=(null==r?void 0:r.includes(t))||!1}if(!a)return!1;var i=this._getTimeKey(e).timeKey,n=this._driver.getItemSync(i,c);return n&&t?n[t]:n}},{key:"setItem",value:function(e,c,t){var a=this;this._getTimeKey(e).timeKey&&this.removeItem(e);var r=(new Date).getTime();this._allCachedKeys[e]=1,this._allCachedTimeKeys[e]=r;var i=this._genTimeKey(e,r);return t=t?function(){a._getAll(),t()}:function(){a._getAll()},this._driver.setItem(i,c,t)}},{key:"_getTimeKey",value:function(e){var c=this._allCachedTimeKeys[e],t=e;return c&&(t=this._genTimeKey(e,c)),{timeKey:t,time:c}}},{key:"_genTimeKey",value:function(e,c){return"".concat(c).concat("$").concat(e)}},{key:"removeItem",value:function(e,c){var t=this._getTimeKey(e).timeKey,a=this._driver.removeItem(t,c);return delete this._allCachedKeys[e],delete this._allCachedTimeKeys[e],delete this._allCachedKeyMap[e],a}},{key:"hasItem",value:function(e){return!!this._allCachedKeys[e]}},{key:"clear",value:function(e){return this._driver.clear(e)}},{key:"length",value:function(e){return this._driver.length(e)}},{key:"setMaxCache",value:function(e){"number"==typeof e&&e>0&&(this._maxCache=e)}},{key:"getMemoryInfo",value:function(){return{memory:this._memory,cnt:this._cnt}}}]);var e}(),od=sd,ld=["vid","loadType","size","speed","cacheKey","vtype","duration","bitrate"],dd=0,ud=function(){return Oe((function e(c){var t=this;xe(this,e),this._preload_bandwith_map=new Map,this._usepreload_info=new Map,this._pcdn_info_map=new Map,this._updateRealTimeSpeed=function(e){dd=e.speed,t.emit("real_time_speed",e)},this._manager=c}),[{key:"setPreloadBandwidth",value:function(e,c){this._preload_bandwith_map.set(e,c)}},{key:"getPreloadBandwidth",value:function(e){return this._preload_bandwith_map.get(e)}},{key:"_updateLoadInfo",value:function(e,c,t){var a=this._pcdn_info_map.get(e);!a&&(a={}),a[c]||(a[c]={},a[c].loadLen=0),a[c].loadLen=a[c].loadLen+t,this._pcdn_info_map.set(e,a)}},{key:"getLoadInfoAndDelete",value:function(e){var c=this._pcdn_info_map.get(e);return this._pcdn_info_map.delete(e),c}},{key:"getPreloadUnuseInfo",value:function(){var e,c={},t=Me(this._preload_bandwith_map);try{for(t.s();!(e=t.n()).done;){var a=qe(e.value,2),r=a[0],i=a[1];if(this._usepreload_info.get(r))this._preload_bandwith_map.delete(r);else{var n=r.split("#"),f=n.length>0?n[0]:r;c[f]?(c[f].bw+=i.bw||0,c[f].pbw+=i.pbw||0):c[f]={vid:f,bw:i.bw||0,pbw:i.pbw||0,bitrate:i.bitrate||0,duration:i.duration||0}}}}catch(nm){t.e(nm)}finally{t.f()}return Object.values(c)}},{key:"bwEventEmit",value:function(e){var c=e.vid,t=e.loadType,a=e.size,r=e.speed,i=e.cacheKey,n=e.vtype,f=e.duration,s=e.bitrate,o=Ke(e,ld),l=this.getPreloadBandwidth(i)||{bw:0,pbw:0,vid:c,duration:f,bitrate:s};t&&t!==Al?(l.pbw=l.pbw+a,this.emit("prf_data_size",Ge({vid:c,task_type:2,pcdn_size:a,pcdn_speed:r,vtype:n,bitrate:s,duration:f},o))):(l.bw=l.bw+a,this.emit("prf_data_size",Ge({vid:c,task_type:2,cdn_size:a,cdn_speed:r,vtype:n,duration:f,bitrate:s},o))),this.setPreloadBandwidth(i,l),this._updateRealTimeSpeed({speed:r,type:t||Al}),this._updateLoadInfo(i,t,a)}},{key:"setUsePreloadInfo",value:function(e,c){this._usepreload_info.set(e,c)}},{key:"realTimeSpeed",get:function(){return dd}},{key:"emit",value:function(e,c){var t;null===(t=this._manager)||void 0===t||t.emit(e,c)}},{key:"destroy",value:function(){this._preload_bandwith_map=new Map,this._usepreload_info=new Map,this._pcdn_info_map=new Map,this._manager=null}}])}();function hd(e,c){var t=[0,0];if(e)for(var a=0,r=e.length;a<r&&(t[0]=e.start(a),t[1]=e.end(a),!(t[0]<=c&&c<=t[1]));a++);return t[0]-c<=0&&c-t[1]<=0?t:[0,0]}function bd(e,c,t){for(var a=0;a<e.length;a++)if(t===e[a][c])return a;return-1}var pd=["vid","loadType","size","speed","cacheKey","vtype","duration","bitrate"],gd=!1,md=function(e){function c(){var e;return xe(this,c),(e=De(this,c))._loaders={},e._loaderInsts={},e._taskIntervalId=0,e._currentPreloadInst=null,e._preloadDataList=[],e._player=null,e._stepwise=!1,e._playingVids=[],e._isOpen=!0,e._userDefinition=null,e._startDefinition=null,e.onPreloadNext=Re(Ve().mark((function c(){var t,a,r,i,n,f,s,o,l,d,u,h,b,p;return Ve().wrap((function(c){for(;;)switch(c.prev=c.next){case 0:if(i=(r=e)._preloadDataList,n=r._config,e._canPreloadNext()){c.next=3;break}return c.abrupt("return",!1);case 3:if(f=e.findPreloadItem(i,!1),s=null==f?void 0:f.data,f&&null!=s&&s.payload){c.next=7;break}return c.abrupt("return",!1);case 7:if(null,o=e.selectBeforeStart(s),e._filterMixPayload(s,o),e.setStartDefinition(null===(t=o)||void 0===t?void 0:t.definition),e.log("log","selectBeforeStart",null===(a=o)||void 0===a?void 0:a.vtype,o),l=e._getPreloaderKey(o||s)){c.next=17;break}return e.log("warn","need to set vtype, no preloader",s),n.autoPreload&&e.emit(vl.PRELOAD_NEXT),c.abrupt("return",!1);case 17:if(d=e._getLoaderInst(l)){c.next=23;break}if(u=e._getLoader(l)){c.next=22;break}return c.abrupt("return",!1);case 22:d=new u(e,e._config);case 23:return e._currentPreloadInst=d,e._currentPreloadInst.setData(s),e._emitEvtByStart(s),c.prev=26,e.log("log","loaderInst.start",l,e.getStartDefinition(),s),c.next=30,d.start(s,e.getStartDefinition());case 30:(h=c.sent)&&h.remove&&(b=i.indexOf(f))>-1&&i.splice(b,1),c.next=37;break;case 34:c.prev=34,c.t0=c.catch(26),e.log("error","preload data error!",c.t0);case 37:return c.prev=37,null===(p=e._currentPreloadInst)||void 0===p||p.setData(null),e._currentPreloadInst=null,e._config.autoPreload&&(e._canPreloadNext()?e.emit(vl.PRELOAD_NEXT):e.emit(vl.PRELOAD_STOP)),c.finish(37);case 42:return c.abrupt("return",!0);case 43:case"end":return c.stop()}}),c,null,[[26,34,37,42]])}))),e._stats=new ud(e),e}return Be(c,e),Oe(c,[{key:"VTYPES",get:function(){return _l}},{key:"player",get:function(){return this._player}},{key:"stepwise",get:function(){return this._stepwise}},{key:"realTimeSpeed",get:function(){return this._stats.realTimeSpeed}},{key:"currentPreloadInst",get:function(){return this._currentPreloadInst}},{key:"cacheInst",get:function(){return this._cacheInst}},{key:"preloadDataList",get:function(){return this._preloadDataList}},{key:"log",value:function(e){for(var c,t=arguments.length,a=new Array(t>1?t-1:0),r=1;r<t;r++)a[r-1]=arguments[r];gd&&(c=console)[e].apply(c,["[PreloaderManager]"].concat(a))}},{key:"register",value:function(e){try{if("undefined"==typeof window)return void this.log("preloader in ssr");var t=c.getDefaultConfig();this._config=Object.assign({},t,e.config),this._options=e;var a=this._config,r=a.preloadMaxCacheCount,i=a.preloadCacheType;this._stepwise=!!this._config.stepwise,this._cacheInst=new od(r,i),this._selector=e.BitrateSelector,this.on(vl.PRELOAD_NEXT,this.onPreloadNext);for(var n=e.loaders,f=0;f<n.length;f++)this.registerLoader(n[f].vtype,n[f])}catch(s){this.log("register error",s)}}},{key:"registerLoader",value:function(e,c){e&&(this._loaders[e]&&this.log("warn","vtype:".concat(e," Preloader already exist")),this._loaders[e]=c,this._loaderInsts[e]=new c(this,this._config))}},{key:"_checkIfCanPreload",value:function(){if(null===this._currentPreloadInst&&this._preloadDataList.length>0){var e=this.findPreloadItem(this._preloadDataList),c=null==e?void 0:e.data;if(this._wipPreloadTask=e,e&&null!=c&&c.payload){if(!this._getPreloaderKey(c))return this.log("warn","need to set vtype"),this.stopCheckTask(),!1;var t=this._config.checkIfCanPreload;return t&&"function"==typeof t?t(c):this._config.autoCheckPreload?this._autoCheckPreload(c,e):(this.stopCheckTask(),!1)}}return!1}},{key:"_autoCheckPreload",value:function(e,c){var t,a=null==c||null===(t=c.data)||void 0===t?void 0:t.force;return"always"===a||(this._player?function(e,c,t){if(!e)return!1;var a=hd(e.buffered,e.currentTime),r=c.startPreloadControl,i=c.startPreloadMinBuffer,n=c.startPreloadMinPosTime,f=c.minBufferLength;if(r){var s=Math.max(a[1]-e.currentTime,0);if("number"==typeof i&&s>i){if("number"==typeof n&&e.currentTime>n||e.currentTime>e.duration/2)return null==t||t("log","[checkIfStartPreload] hit buffer",s,"startPreloadMinBuffer",i),!0}else if(e.currentTime+i+1>e.duration&&e.currentTime+s>e.duration-1)return null==t||t("log","[checkIfStartPreload] hit end"),!0}else{var o="number"==typeof f&&e.duration>f+5?f:e.duration/2,l=Math.min(e.currentTime+f,e.duration),d=a[1]-l;if(e.currentTime>o&&d>-1)return null==t||t("log","[checkIfStartPreload] hit minPos",o,"minCacheTime",l),!0}return!1}(this._player,this._config,this.log):"no-player"===a||(this.log("warn","need set video"),!1))}},{key:"_getPreloaderKey",value:function(e){return e.vtype?e.vtype.toUpperCase():""}},{key:"_sort",value:function(e){e.sort((function(e,c){return void 0===e.order&&void 0===c.order||"number"==typeof e.order&&"number"==typeof c.order&&e.order<c.order?-1:1}))}},{key:"_addPlayingVid",value:function(e,c){var t=this._playingVids,a=bd(this._playingVids,"playerId",e);a>-1?t[a].vid=c:t.push({vid:c,playerId:e})}},{key:"selectBeforeStart",value:function(e){var c=e.targetDefinition,t=e.defaultDefinition;if(c)return Ge({},c);var a=this.getUserSelectDefinition(),r=this.selectBitrate(null==e?void 0:e.payload,t,a,null==e?void 0:e.playlist_info),i=(null==r?void 0:r.vtype)||e.vtype,n=Ge(Ge({},r),{},{vtype:i});return e.targetDefinition=n,this.log("log","selectBeforeStart",null==e?void 0:e.vid,i,null==r?void 0:r.definition,null==e?void 0:e.payload,r),n}},{key:"selectBitrate",value:function(e,c,t,a){if(e.length<1)return null;var r=null;if(this._selector){var i,n,f;r=this._selector.getSuitableBitrate(e,t,null,a),this.log("log","BitRateAdapter result",null===(i=r)||void 0===i?void 0:i.vtype,null===(n=r)||void 0===n?void 0:n.definition,null===(f=r)||void 0===f?void 0:f.bitrate)}else{for(var s=-1,o=-1,l=0;l<e.length;l++){var d=e[l];t&&d.definition===t?s=l:c&&d.definition===c&&(o=l)}r=e[s>=0?s:o>=0?o:0]}return Ge({},r)}},{key:"startCheckTask",value:function(){var e=this,c=this._preloadDataList,t=this._currentPreloadInst,a=this._config.autoCheck;(this._taskIntervalId&&(clearTimeout(this._taskIntervalId),this._taskIntervalId=0),null!=t&&t.taskInProgress&&function(e,c,t){var a=c.endPreloadControl,r=c.endPreloadMinBuffer,i=c.startPreloadMinBuffer;if(!e)return!1;if(a){if("number"==typeof i&&e.currentTime+i>=e.duration)return!1;var n=hd(e.buffered,e.currentTime),f=Math.max(n[1]-e.currentTime,0);if(f<=r)return null==t||t("log","[checkIfCancelPreload] hit buffer:",f,"endPreloadMinBuffer:",r,"video:","".concat(e.currentTime,"/").concat(e.duration)),!0}return!1}(this._player,this._config,this.log))?this.cancelPreloadingTask():0!==c.length&&(this._checkIfCanPreload()&&this.onPreloadNext(),this._taskIntervalId=setTimeout((function(){e.startCheckTask()}),a.interval))}},{key:"cancelPreloadingTask",value:function(){var e=this._preloadDataList,c=this._wipPreloadTask,t=this._config.endPreloadTaskStrategy;if(this.cancel(),c){var a;if(this.stepwise)"number"==typeof(null===(a=c.data)||void 0===a?void 0:a.stepIdx)&&c.data.stepIdx>-1&&c.data.stepIdx--;else 0!==t&&e.unshift(c);this._emitEvtByCancel(c.data),this._wipPreloadTask=void 0}}},{key:"stopCheckTask",value:function(){this._taskIntervalId&&(clearTimeout(this._taskIntervalId),this._taskIntervalId=-1)}},{key:"getPreloadMetaByVid",value:function(e,t){for(var a=this.getAllCachedDataKeys(),r=[],i="",n=0;n<a.length;n++){var f=a[n],s=c.parseKey(f);s.vid===e&&(i=s.vtype,null!=t&&t.vtype&&t.vtype!==i||r.push(f))}if(0===r.length)return null;var o=this._getLoaderInst(i);return o?o.parseKey(r):null}},{key:"preloadNext",value:function(){this.onPreloadNext()}},{key:"_filterMixPayload",value:function(e,c){var t=c.vtype;if(t&&Array.isArray(e.payload)){var a=e.vtype===t;e.vtype=t,e.payload=e.payload.filter((function(e){return e.vtype===t||a}))}}},{key:"_canPreloadNext",value:function(){return this._isOpen&&!this._currentPreloadInst&&this._preloadDataList.length>0}},{key:"_emitEvtByStart",value:function(e){var c=this._player;if(e&&c)try{this.emit(vl.PRELOAD_START,this._getEventPayload(e,c))}catch(t){this.log("warn","preload emit start error",null==t?void 0:t.stack)}}},{key:"_emitEvtByCancel",value:function(e){var c=this._player;if(e&&c)try{this.emit(vl.PRELOAD_CANCEL,this._getEventPayload(e,c))}catch(t){this.log("warn","preload emit cancel error",null==t?void 0:t.stack)}}},{key:"_getEventPayload",value:function(e,c){var t=c.config.vid,a=this._config,r=a.minBufferLength,i=a.startPreloadControl,n=a.startPreloadMinBuffer,f=a.startPreloadMinPosTime,s=a.endPreloadMinBuffer,o=a.endPreloadControl,l=hd(c.video.buffered,c.currentTime),d=l[1]?l[1]-c.currentTime:0;return{vid:t,pid:e.vid,buffer:l,bufferHead:d,currentTime:c.currentTime,minBufferLength:r,startPreloadControl:i,startPreloadMinBuffer:n,startPreloadMinPosTime:f,endPreloadControl:o,endPreloadMinBuffer:s}}},{key:"addPreloadList",value:(f=Re(Ve().mark((function e(c){var t,a,r;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this._sort(c),t=Me(c),e.prev=2,t.s();case 4:if((a=t.n()).done){e.next=10;break}return r=a.value,e.next=8,this._addData(r);case 8:e.next=4;break;case 10:e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),t.e(e.t0);case 15:return e.prev=15,t.f(),e.finish(15);case 18:this._checkAutoTask();case 19:case"end":return e.stop()}}),e,this,[[2,12,15,18]])}))),function(e){return f.apply(this,arguments)})},{key:"addPlayingId",value:function(e,c){for(var t=this._preloadDataList,a=-1,r=0;r<t.length;r++){if(e===t[r].data.vid){a=r;break}}if(a>-1){var i=t.splice(a,1);this.log("log","cancelPreloadByVid remove from list",i.length>0&&i[0].data.vid)}var n=this._currentPreloadInst,f=n?n.getData():null;this.log("log","_currentPreloadInst",f),f&&f.vid===e&&this.cancel(),c&&this._addPlayingVid(c,e)}},{key:"removePlayingId",value:function(e){var c=this._playingVids,t=bd(c,"playerId",e);if(t>-1){var a=c.splice(t,1);this.log("log","removePlayingId",a.length>0&&a[0].playerId)}}},{key:"addPreload",value:(n=Re(Ve().mark((function e(c){return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._addData(c);case 2:if(e.sent){e.next=5;break}return e.abrupt("return");case 5:this._sort(this._preloadDataList),this._checkAutoTask();case 7:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"_addData",value:(i=Re(Ve().mark((function e(c){var t,a,r,i,n,f,s,o,l,d=this;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(c.data.vtype){e.next=3;break}return this.log("warn","vtype is null, can·t select loader"),e.abrupt("return",!1);case 3:if(t=c.data,a=this._getLoader(t.vtype)){e.next=8;break}return this.log("warn","the loader for ".concat(t.vtype," not registered")),e.abrupt("return",!1);case 8:if(r=this._playingVids,!((i=bd(r,"vid",c.data.vid))>=0)){e.next=14;break}return n=r[i],this.log("log","vid:".concat(n.vid," is already instantiated and loaded, playerId is ").concat(n.playerId)),e.abrupt("return");case 14:return f=this._getUniqueKey(c),e.next=17,this.getItem(c.data,!0);case 17:if(!(s=e.sent)){e.next=22;break}if(!a.isUniqueCache(s)){e.next=22;break}return this.log("log","".concat(f," already exist in cache")),e.abrupt("return",!1);case 22:if(!this._currentPreloadInst){e.next=29;break}if(!(o=this._currentPreloadInst.getData())){e.next=29;break}if(this._getUniqueKey({data:o,order:0})!==f){e.next=29;break}return this.log("log","currentKey repeat"),e.abrupt("return");case 29:if(l=this._preloadDataList.filter((function(e){return d._getUniqueKey(e)===f})),this.log("log","addedItems",f,l),0!==l.length){e.next=35;break}return this._stepwise&&void 0===c.data.steps&&(c.data.steps=[0]),this._preloadDataList.push(c),e.abrupt("return",!0);case 35:return this.log("log","".concat(f," already exist in preloadList")),e.abrupt("return",!1);case 37:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"_getUniqueKey",value:function(e){return e.data.vtype?c.generateUniqueCacheKey(e.data):e.data.vid}},{key:"_checkAutoTask",value:function(){var e=this,c=this._config,t=c.autoCheck,a=c.autoPreload;Promise.resolve().then((function(){a&&e.emit(vl.PRELOAD_NEXT),null!=t&&t.enable&&!e._taskIntervalId&&e.startCheckTask()}))}},{key:"setItem",value:function(e,t,a,r){var i=c.generateUniqueCacheKey(e);if(!a){var n=this._getLoader(e.vtype);if(!n)return this.log("warn","no ".concat(e.vtype," preloader, register")),Promise.resolve(!1);t=Fe({},n.generateUniqueKey(e),t)}return this._cacheInst.setItem(i,t,r)}},{key:"getItem",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=c.generateUniqueCacheKey(e),i=this._getLoader(e.vtype);if(!i)return this.log("warn","no ".concat(e.vtype," preloader, register")),Promise.resolve(!1);var n=t?"":i.generateUniqueKey(e);return this._cacheInst.getItem(r,a,n)}},{key:"getItemSync",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=c.generateUniqueCacheKey(e),i=this._getLoader(e.vtype);if(!i)return this.log("warn","no ".concat(e.vtype," preloader, register")),!1;var n=t?"":i.generateUniqueKey(e);return this._cacheInst.getItemSync(r,a,n)}},{key:"supportSync",value:function(){return this._cacheInst.supportSync()}},{key:"removeItem",value:function(e,t){var a=c.generateUniqueCacheKey(e);return this._cacheInst.removeItem(a,t)}},{key:"getPreLoadData",value:(r=Re(Ve().mark((function e(c){var t,a,r;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=c.vtype,!(a=this._getLoaderInst(t))){e.next=7;break}return e.next=5,a.getPreLoadData(c);case 5:return r=e.sent,e.abrupt("return",r);case 7:return e.abrupt("return",null);case 8:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"getPreLoadDataSync",value:function(e){var c=e.vtype,t=this._getLoaderInst(c);return t?t.getPreLoadDataSync(e):null}},{key:"removeAll",value:function(){var e=this;this.getAllCachedDataKeys().forEach((function(c){var t=e.getPreloadMetaByVid(c.split("#")[0]);t&&e.removeItem(t,null)}))}},{key:"removeAllPreloadTask",value:function(){this.cancel(),this._preloadDataList=[],this._playingVids=[]}},{key:"disable",value:function(){this._isOpen=!1,this.stopCheckTask()}},{key:"enable",value:function(){this._isOpen=!0,this._config.autoCheck.enable&&!this._taskIntervalId&&this._preloadDataList.length>0&&this.startCheckTask()}},{key:"setUserSelectDefinition",value:function(e){this._userDefinition=e}},{key:"getUserSelectDefinition",value:function(){return this._userDefinition||null}},{key:"getStartDefinition",value:function(){return this._startDefinition}},{key:"setStartDefinition",value:function(e){this._startDefinition=e}},{key:"destroy",value:(a=Re(Ve().mark((function e(){var c,t,a,r;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this._stats.destroy(),c=Object.keys(this._loaderInsts),t=0;case 3:if(!(t<c.length)){e.next=12;break}if(a=c[t],!(r=this._getLoaderInst(a))){e.next=9;break}return e.next=9,r.destroy();case 9:t++,e.next=3;break;case 12:this.removeAllListeners(),this._loaderInsts={},this._loaders={},this._playingVids=[],this.detachPlayer();case 17:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)})},{key:"cancel",value:(t=Re(Ve().mark((function e(){var c;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._currentPreloadInst){e.next=4;break}return e.next=3,this._currentPreloadInst.cancel();case 3:null===(c=this._currentPreloadInst)||void 0===c||c.setData(null);case 4:this._currentPreloadInst=null;case 5:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"removeByPlayInst",value:function(e,c){for(var t=this._preloadDataList.length-1;t>-1;t--){var a=this._preloadDataList[t];if(a.data.vid===e&&a.playerId===c){this._preloadDataList.splice(t,1);break}}}},{key:"getAllCachedDataKeys",value:function(){var e;return(null===(e=this._cacheInst)||void 0===e?void 0:e.getAllCachedDataKeys())||[]}},{key:"getDataUniqueKey",value:function(e){var c=this._getLoader(e.vtype);return!!c&&c.generateUniqueKey(e)}},{key:"hasItemSameVid",value:function(e){var c=this._getLoader(e.vtype),t=this._getLoaderInst(e.vtype);if(c&&t){var a=c.generateUniqueKey(e);return t.hasItemSameVid(a)}return!1}},{key:"_getLoader",value:function(e){e=e||"";var c=this._loaders[e]||this._loaders[e.toLocaleLowerCase()];return c||(this.log("warn","no ".concat(e," preloader, register")),null)}},{key:"_getLoaderInst",value:function(e){e=e||"";var c=this._loaderInsts[e]||this._loaderInsts[e.toLocaleLowerCase()];return c||(this.log("warn","no ".concat(e," preloader, register")),null)}},{key:"getPreloadMemoryInfo",value:function(){return this._cacheInst.getMemoryInfo()}},{key:"attachPlayer",value:function(e){this._player=e}},{key:"detachPlayer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e&&this._player!==e||(this._player=null)}},{key:"setPreloadBandwidth",value:function(e,c){this._stats.setPreloadBandwidth(e,c)}},{key:"getPreloadBandwidth",value:function(e){return this._stats.getPreloadBandwidth(e)}},{key:"getLoadInfoAndDelete",value:function(e){return this._stats.getLoadInfoAndDelete(e)}},{key:"getPreloadUnuseInfo",value:function(){return this._stats.getPreloadUnuseInfo()}},{key:"setUsePreloadInfo",value:function(e,c){this._stats.setUsePreloadInfo(e,c)}},{key:"bwEventEmit",value:function(e){var c=e.vid,t=e.loadType,a=e.size,r=e.speed,i=e.cacheKey,n=e.vtype,f=e.duration,s=e.bitrate,o=Ke(e,pd);this._stats.bwEventEmit(Ge({vid:c,loadType:t,size:a,speed:r,cacheKey:i,vtype:n,duration:f,bitrate:s},o))}},{key:"findPreloadItem",value:function(e){var c,t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this._stepwise){var a=e.reduce((function(e,c){return void 0===c.data.stepIdx||"number"==typeof c.data.stepIdx&&"number"==typeof e.data.stepIdx&&c.data.stepIdx<e.data.stepIdx?c:e})),r=e.filter((function(e){return e.data.stepIdx===a.data.stepIdx}));if(r.length>1&&this._sort(r),c=r[0],!t){if("number"!=typeof c.data.stepIdx&&(c.data.stepIdx=-1),c.data.stepIdx++,Array.isArray(c.data.steps)&&c.data.stepIdx>=c.data.steps.length-1){var i=e.indexOf(c);e.splice(i,1)}c.data.stepIdx===1/0&&(c=void 0)}}else c=t?e[0]:e.shift();return c}},{key:"updateConfig",value:function(e){arguments.length>1&&void 0!==arguments[1]&&arguments[1]?this._config=Object.assign({},c.getDefaultConfig(),e):Object.assign(this._config,e);var t=this._config.autoCheck;t&&!t.enable&&this.stopCheckTask(),t&&t.enable&&this.startCheckTask()}},{key:"preProcessUrl",value:function(e){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,t=this._config,a=t.preProcessUrl,r=t.preProcessUrlOptions;return"function"==typeof a?a(e,Object.assign({},r,c)):{url:e}}}],[{key:"getDefaultConfig",value:function(){return{autoPreload:!1,autoCheck:{enable:!1,interval:1e3},preloadMaxCacheCount:5,preloadCacheType:ml.MEMORY,autoCheckPreload:!0,startPreloadControl:!1,startPreloadMinBuffer:5,startPreloadMinPosTime:5,minBufferLength:5,endPreloadControl:!1,endPreloadTaskStrategy:0}}},{key:"generateUniqueCacheKey",value:function(e){var c=e.vid,t=e.codecType,a=e.vtype;return"".concat(c,"#").concat(t,"#").concat(a.toUpperCase())}},{key:"parseKey",value:function(e){if(!e)throw new Error("key ".concat(e," is empty"));var c=e.split("#");if(c.length<6)throw new Error("key ".concat(e," is not right format"));var t=c[0],a=c[1],r=c[2],i=c[3],n=c[4],f="mp4"===i.toLowerCase()?5:7;return{vid:t,mediaType:a,codecType:r,vtype:i,definition:n,bitrate:parseInt("".concat(c[f]||0),10)||0,fileId:c[8]}}},{key:"debugger",set:function(e){gd=!!e}}]);var t,a,r,i,n,f}(Sl),vd=function(e){function c(e,t){var a;return xe(this,c),(a=De(this,c))._data=null,a.preloadManager=e,a._config=t,a.promisePolyfill(),a}return Be(c,e),Oe(c,[{key:"taskInProgress",get:function(){return!1}},{key:"stepwise",get:function(){return this.preloadManager.stepwise}},{key:"getRequestOption",value:function(e){var c=this._config,t=c.getRequestOptionsCallback,a=c.reqOptions,r={};return e?r=e.reqOptions?e.reqOptions:"function"==typeof t?t(e):a||{}:r}},{key:"getUserSelectDefinition",value:function(){return this.preloadManager.getUserSelectDefinition()}},{key:"selectBitrate",value:function(e,c,t){return this.preloadManager.selectBitrate(e,c,t)}},{key:"promisePolyfill",value:function(){Promise.prototype.finally||(Promise.prototype.finally={finally:function(e){var c=function(c){return Promise.resolve(e()).then(c)};return this.then((function(e){return c((function(){return e}))}),(function(e){return c((function(){return Promise.reject(e)}))}))}}.finally)}},{key:"getData",value:function(){return this._data}},{key:"setData",value:function(e){this._data=e}},{key:"start",value:(i=Re(Ve().mark((function e(c,t){return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("start need implement, return Promise");case 1:case"end":return e.stop()}}),e)}))),function(e,c){return i.apply(this,arguments)})},{key:"cancel",value:(r=Re(Ve().mark((function e(){return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("cancel need implement, cancel current preload request");case 1:case"end":return e.stop()}}),e)}))),function(){return r.apply(this,arguments)})},{key:"getPreLoadData",value:(a=Re(Ve().mark((function e(c){return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("getPreLoadData not implement");case 1:case"end":return e.stop()}}),e)}))),function(e){return a.apply(this,arguments)})},{key:"getPreLoadDataSync",value:function(e){return null}},{key:"hasItemSameVid",value:function(e){return!0}},{key:"destroy",value:(t=Re(Ve().mark((function e(){return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.resolve());case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)})},{key:"parseKey",value:function(e){return md.parseKey(e[0])}}],[{key:"generateUniqueKey",value:function(e){throw new Error("generateUniqueCacheKey need implement, return string")}},{key:"vtype",get:function(){throw new Error("need vtype")}},{key:"isUniqueCache",value:function(e){return!0}}]);var t,a,r,i}(Sl);var yd="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};var Ed={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||9007199254740991,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},Sd={exports:{}};!function(e,c){const{MAX_SAFE_COMPONENT_LENGTH:t,MAX_SAFE_BUILD_LENGTH:a,MAX_LENGTH:r}=Ed,i=yd,n=(c=e.exports={}).re=[],f=c.safeRe=[],s=c.src=[],o=c.safeSrc=[],l=c.t={};let d=0;const u="[a-zA-Z0-9-]",h=[["\\s",1],["\\d",r],[u,a]],b=(e,c,t)=>{const a=(e=>{for(const[c,t]of h)e=e.split(`${c}*`).join(`${c}{0,${t}}`).split(`${c}+`).join(`${c}{1,${t}}`);return e})(c),r=d++;i(e,r,c),l[e]=r,s[r]=c,o[r]=a,n[r]=new RegExp(c,t?"g":void 0),f[r]=new RegExp(a,t?"g":void 0)};b("NUMERICIDENTIFIER","0|[1-9]\\d*"),b("NUMERICIDENTIFIERLOOSE","\\d+"),b("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${u}*`),b("MAINVERSION",`(${s[l.NUMERICIDENTIFIER]})\\.(${s[l.NUMERICIDENTIFIER]})\\.(${s[l.NUMERICIDENTIFIER]})`),b("MAINVERSIONLOOSE",`(${s[l.NUMERICIDENTIFIERLOOSE]})\\.(${s[l.NUMERICIDENTIFIERLOOSE]})\\.(${s[l.NUMERICIDENTIFIERLOOSE]})`),b("PRERELEASEIDENTIFIER",`(?:${s[l.NUMERICIDENTIFIER]}|${s[l.NONNUMERICIDENTIFIER]})`),b("PRERELEASEIDENTIFIERLOOSE",`(?:${s[l.NUMERICIDENTIFIERLOOSE]}|${s[l.NONNUMERICIDENTIFIER]})`),b("PRERELEASE",`(?:-(${s[l.PRERELEASEIDENTIFIER]}(?:\\.${s[l.PRERELEASEIDENTIFIER]})*))`),b("PRERELEASELOOSE",`(?:-?(${s[l.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${s[l.PRERELEASEIDENTIFIERLOOSE]})*))`),b("BUILDIDENTIFIER",`${u}+`),b("BUILD",`(?:\\+(${s[l.BUILDIDENTIFIER]}(?:\\.${s[l.BUILDIDENTIFIER]})*))`),b("FULLPLAIN",`v?${s[l.MAINVERSION]}${s[l.PRERELEASE]}?${s[l.BUILD]}?`),b("FULL",`^${s[l.FULLPLAIN]}$`),b("LOOSEPLAIN",`[v=\\s]*${s[l.MAINVERSIONLOOSE]}${s[l.PRERELEASELOOSE]}?${s[l.BUILD]}?`),b("LOOSE",`^${s[l.LOOSEPLAIN]}$`),b("GTLT","((?:<|>)?=?)"),b("XRANGEIDENTIFIERLOOSE",`${s[l.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),b("XRANGEIDENTIFIER",`${s[l.NUMERICIDENTIFIER]}|x|X|\\*`),b("XRANGEPLAIN",`[v=\\s]*(${s[l.XRANGEIDENTIFIER]})(?:\\.(${s[l.XRANGEIDENTIFIER]})(?:\\.(${s[l.XRANGEIDENTIFIER]})(?:${s[l.PRERELEASE]})?${s[l.BUILD]}?)?)?`),b("XRANGEPLAINLOOSE",`[v=\\s]*(${s[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${s[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${s[l.XRANGEIDENTIFIERLOOSE]})(?:${s[l.PRERELEASELOOSE]})?${s[l.BUILD]}?)?)?`),b("XRANGE",`^${s[l.GTLT]}\\s*${s[l.XRANGEPLAIN]}$`),b("XRANGELOOSE",`^${s[l.GTLT]}\\s*${s[l.XRANGEPLAINLOOSE]}$`),b("COERCEPLAIN",`(^|[^\\d])(\\d{1,${t}})(?:\\.(\\d{1,${t}}))?(?:\\.(\\d{1,${t}}))?`),b("COERCE",`${s[l.COERCEPLAIN]}(?:$|[^\\d])`),b("COERCEFULL",s[l.COERCEPLAIN]+`(?:${s[l.PRERELEASE]})?(?:${s[l.BUILD]})?(?:$|[^\\d])`),b("COERCERTL",s[l.COERCE],!0),b("COERCERTLFULL",s[l.COERCEFULL],!0),b("LONETILDE","(?:~>?)"),b("TILDETRIM",`(\\s*)${s[l.LONETILDE]}\\s+`,!0),c.tildeTrimReplace="$1~",b("TILDE",`^${s[l.LONETILDE]}${s[l.XRANGEPLAIN]}$`),b("TILDELOOSE",`^${s[l.LONETILDE]}${s[l.XRANGEPLAINLOOSE]}$`),b("LONECARET","(?:\\^)"),b("CARETTRIM",`(\\s*)${s[l.LONECARET]}\\s+`,!0),c.caretTrimReplace="$1^",b("CARET",`^${s[l.LONECARET]}${s[l.XRANGEPLAIN]}$`),b("CARETLOOSE",`^${s[l.LONECARET]}${s[l.XRANGEPLAINLOOSE]}$`),b("COMPARATORLOOSE",`^${s[l.GTLT]}\\s*(${s[l.LOOSEPLAIN]})$|^$`),b("COMPARATOR",`^${s[l.GTLT]}\\s*(${s[l.FULLPLAIN]})$|^$`),b("COMPARATORTRIM",`(\\s*)${s[l.GTLT]}\\s*(${s[l.LOOSEPLAIN]}|${s[l.XRANGEPLAIN]})`,!0),c.comparatorTrimReplace="$1$2$3",b("HYPHENRANGE",`^\\s*(${s[l.XRANGEPLAIN]})\\s+-\\s+(${s[l.XRANGEPLAIN]})\\s*$`),b("HYPHENRANGELOOSE",`^\\s*(${s[l.XRANGEPLAINLOOSE]})\\s+-\\s+(${s[l.XRANGEPLAINLOOSE]})\\s*$`),b("STAR","(<|>)?=?\\s*\\*"),b("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),b("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}(Sd,Sd.exports);var _d=Sd.exports;const Td=Object.freeze({loose:!0}),kd=Object.freeze({});var Ad=e=>e?"object"!=typeof e?Td:e:kd;const Ld=/^[0-9]+$/,Id=(e,c)=>{const t=Ld.test(e),a=Ld.test(c);return t&&a&&(e=+e,c=+c),e===c?0:t&&!a?-1:a&&!t?1:e<c?-1:1};var wd={compareIdentifiers:Id,rcompareIdentifiers:(e,c)=>Id(c,e)};const Rd=yd,{MAX_LENGTH:Dd,MAX_SAFE_INTEGER:xd}=Ed,{safeRe:Pd,safeSrc:Cd,t:Od}=_d,Md=Ad,{compareIdentifiers:Fd}=wd;const Nd=class e{constructor(c,t){if(t=Md(t),c instanceof e){if(c.loose===!!t.loose&&c.includePrerelease===!!t.includePrerelease)return c;c=c.version}else if("string"!=typeof c)throw new TypeError(`Invalid version. Must be a string. Got type "${typeof c}".`);if(c.length>Dd)throw new TypeError(`version is longer than ${Dd} characters`);Rd("SemVer",c,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const a=c.trim().match(t.loose?Pd[Od.LOOSE]:Pd[Od.FULL]);if(!a)throw new TypeError(`Invalid Version: ${c}`);if(this.raw=c,this.major=+a[1],this.minor=+a[2],this.patch=+a[3],this.major>xd||this.major<0)throw new TypeError("Invalid major version");if(this.minor>xd||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>xd||this.patch<0)throw new TypeError("Invalid patch version");a[4]?this.prerelease=a[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const c=+e;if(c>=0&&c<xd)return c}return e})):this.prerelease=[],this.build=a[5]?a[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(c){if(Rd("SemVer.compare",this.version,this.options,c),!(c instanceof e)){if("string"==typeof c&&c===this.version)return 0;c=new e(c,this.options)}return c.version===this.version?0:this.compareMain(c)||this.comparePre(c)}compareMain(c){return c instanceof e||(c=new e(c,this.options)),Fd(this.major,c.major)||Fd(this.minor,c.minor)||Fd(this.patch,c.patch)}comparePre(c){if(c instanceof e||(c=new e(c,this.options)),this.prerelease.length&&!c.prerelease.length)return-1;if(!this.prerelease.length&&c.prerelease.length)return 1;if(!this.prerelease.length&&!c.prerelease.length)return 0;let t=0;do{const e=this.prerelease[t],a=c.prerelease[t];if(Rd("prerelease compare",t,e,a),void 0===e&&void 0===a)return 0;if(void 0===a)return 1;if(void 0===e)return-1;if(e!==a)return Fd(e,a)}while(++t)}compareBuild(c){c instanceof e||(c=new e(c,this.options));let t=0;do{const e=this.build[t],a=c.build[t];if(Rd("build compare",t,e,a),void 0===e&&void 0===a)return 0;if(void 0===a)return 1;if(void 0===e)return-1;if(e!==a)return Fd(e,a)}while(++t)}inc(e,c,t){if(e.startsWith("pre")){if(!c&&!1===t)throw new Error("invalid increment argument: identifier is empty");if(c){const e=new RegExp(`^${this.options.loose?Cd[Od.PRERELEASELOOSE]:Cd[Od.PRERELEASE]}$`),t=`-${c}`.match(e);if(!t||t[1]!==c)throw new Error(`invalid identifier: ${c}`)}}switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",c,t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",c,t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",c,t),this.inc("pre",c,t);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",c,t),this.inc("pre",c,t);break;case"release":if(0===this.prerelease.length)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":{const e=Number(t)?1:0;if(0===this.prerelease.length)this.prerelease=[e];else{let a=this.prerelease.length;for(;--a>=0;)"number"==typeof this.prerelease[a]&&(this.prerelease[a]++,a=-2);if(-1===a){if(c===this.prerelease.join(".")&&!1===t)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(e)}}if(c){let a=[c,e];!1===t&&(a=[c]),0===Fd(this.prerelease[0],c)?isNaN(this.prerelease[1])&&(this.prerelease=a):this.prerelease=a}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};var Ud,Bd=Ze(((e,c,t=!1)=>{if(e instanceof Nd)return e;try{return new Nd(e,c)}catch(a){if(!t)return null;throw a}})),$d={exports:{}};Ud=$d,function(){var e=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,c=/^(?=([^\/?#]*))\1([^]*)$/,t=/(?:\/|^)\.(?=\/)/g,a=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,r={buildAbsoluteURL:function(e,t,a){if(a=a||{},e=e.trim(),!(t=t.trim())){if(!a.alwaysNormalize)return e;var i=r.parseURL(e);if(!i)throw new Error("Error trying to parse base URL.");return i.path=r.normalizePath(i.path),r.buildURLFromParts(i)}var n=r.parseURL(t);if(!n)throw new Error("Error trying to parse relative URL.");if(n.scheme)return a.alwaysNormalize?(n.path=r.normalizePath(n.path),r.buildURLFromParts(n)):t;var f=r.parseURL(e);if(!f)throw new Error("Error trying to parse base URL.");if(!f.netLoc&&f.path&&"/"!==f.path[0]){var s=c.exec(f.path);f.netLoc=s[1],f.path=s[2]}f.netLoc&&!f.path&&(f.path="/");var o={scheme:f.scheme,netLoc:n.netLoc,path:null,params:n.params,query:n.query,fragment:n.fragment};if(!n.netLoc&&(o.netLoc=f.netLoc,"/"!==n.path[0]))if(n.path){var l=f.path,d=l.substring(0,l.lastIndexOf("/")+1)+n.path;o.path=r.normalizePath(d)}else o.path=f.path,n.params||(o.params=f.params,n.query||(o.query=f.query));return null===o.path&&(o.path=a.alwaysNormalize?r.normalizePath(n.path):n.path),r.buildURLFromParts(o)},parseURL:function(c){var t=e.exec(c);return t?{scheme:t[1]||"",netLoc:t[2]||"",path:t[3]||"",params:t[4]||"",query:t[5]||"",fragment:t[6]||""}:null},normalizePath:function(e){for(e=e.split("").reverse().join("").replace(t,"");e.length!==(e=e.replace(a,"")).length;);return e.split("").reverse().join("")},buildURLFromParts:function(e){return e.scheme+e.netLoc+e.path+e.params+e.query+e.fragment}};Ud.exports=r}();var jd=Ze($d.exports);const Gd="4.2.0";var Kd=function(e){return e.GetKeyByKeyTokenFail="Get key by keyToken fail",e}(Kd||{}),Vd=function(){return Oe((function e(c,t,a){xe(this,e),this.loader=null,this.originalLoader=c,this.preloaderManager=t,this.config=a.config,this.context=a}),[{key:"load",value:function(e,c,t){var a=this;if(this.config.preloadEnabled)if(this.context.currentPreloadPayload){var r=md.generateUniqueCacheKey(this.context.currentPreloadPayload);this.preloaderManager.getPreLoadData(this.context.currentPreloadPayload).then((function(i){var n=a.handleCacheHit(i,e);if(n){var f;console.log("[".concat(a.LoaderName,"] Cache hit:"),r,e.url);var s=a.deepCopyResponse(n);if(!0===(null===(f=a.context.hlsConfig)||void 0===f?void 0:f.progressive)&&"function"==typeof t.onProgress){var o=s.response,l=s.stats,d=s.networkDetails,u=s.context,h=o.data instanceof ArrayBuffer?o.data.byteLength:"string"==typeof o.data?o.data.length:l.loaded||0,b=Ge(Ge({},l),{},{loaded:h,total:h}),p=o.data;void 0!==p&&("string"==typeof p||p instanceof ArrayBuffer)&&t.onProgress(b,u,p,d),t.onSuccess(o,b,u,d)}else t.onSuccess(s.response,s.stats,s.context,s.networkDetails)}else console.log("[".concat(a.LoaderName,"] Cache miss:"),r,e.url),a.useOriginalLoader(e,c,t)})).catch((function(r){console.error("[".concat(a.LoaderName,"] Cache error:"),r),a.useOriginalLoader(e,c,t)}))}else this.useOriginalLoader(e,c,t);else this.useOriginalLoader(e,c,t)}},{key:"useOriginalLoader",value:function(e,c,t){this.loader=new this.originalLoader(c);var a=Ge(Ge({},t),{},{onSuccess:function(e,c,a,r){t.onSuccess(e,c,a,r)}});this.loader.load(e,c,a)}},{key:"deepCopyResponse",value:function(e){var c=Ge({},e);if(e.response&&(c.response=Ge({},e.response),e.response.data instanceof ArrayBuffer)){var t=e.response.data,a="undefined"!=typeof structuredClone?structuredClone(t):t.slice(0);c.response.data=a}return c}},{key:"buildBasePreloadData",value:function(e){var c;return{vid:e.url||"unknown",vtype:_l.HLS,codecType:kl.H264,definition:(null===(c=e.level)||void 0===c?void 0:c.toString())||"0",payload:{url:e.url,level:e.level}}}},{key:"abort",value:function(){this.loader&&this.loader.abort()}},{key:"destroy",value:function(){this.loader&&(this.loader.destroy(),this.loader=null)}}])}(),Hd=function(e){function c(e,t,a){return xe(this,c),De(this,c,[e,t,a])}return Be(c,e),Oe(c,[{key:"LoaderName",get:function(){return"PreloadFragmentLoader"}},{key:"buildCacheKey",value:function(e){var c=e.url,t=e.frag,a=(null==t?void 0:t.sn)||0,r=(null==t?void 0:t.level)||0,i=e.rangeStart,n=e.rangeEnd,f="".concat(c,"#").concat(r,"#").concat(a);return void 0!==i&&(f+="#".concat(i,"-").concat(n)),f}},{key:"addToCache",value:function(e,c){if(this.config.preloadEnabled&&c&&c.data){var t=this.buildBasePreloadData(e),a=e.frag;t.payload.range=void 0!==e.rangeStart?[e.rangeStart,e.rangeEnd]:void 0,t.payload.sn=null==a?void 0:a.sn,t.payload.level=null==a?void 0:a.level;var r={res:c.data,headers:c.headers||{},status:c.status||200};this.preloaderManager.setItem(t,Fe({},this.buildCacheKey(e),r),!1)}}},{key:"handleCacheHit",value:function(e,c){var t=e.segments.find((function(e){var t;return e.sequenceNumber===(null===(t=c.frag)||void 0===t?void 0:t.sn)}));return null==t?void 0:t.response}}])}(Vd),qd=function(e){function c(e,t,a){return xe(this,c),De(this,c,[e,t,a])}return Be(c,e),Oe(c,[{key:"LoaderName",get:function(){return"PreloadPlaylistLoader"}},{key:"buildCacheKey",value:function(e){var c=e.url,t=e.level,a=e.type,r="".concat(c,"#").concat(a||"playlist");return void 0!==t&&(r+="#".concat(t)),r}},{key:"addToCache",value:function(e,c){if(this.config.preloadEnabled&&c&&c.data){var t=this.buildBasePreloadData(e);t.payload.type=e.type;var a={m3u8:{content:c.data,url:e.url,headers:c.headers||{},status:c.status||200,parsedManifest:null,response:{response:c,stats:c.stats,context:c.context,networkDetails:c.networkDetails}},segments:[],metadata:{totalSegments:0,preloadedSegments:0,timestamp:Date.now(),manifestType:e.type||"UNKNOWN"}};this.preloaderManager.setItem(t,a,!1)}}},{key:"handleCacheHit",value:function(e,c){var t;return null===(t=e.m3u8)||void 0===t?void 0:t.response}}])}(Vd),Yd=function(){return Oe((function e(c,t){xe(this,e),this.originalLoader=c,this.context=t,this.config=t.config,this.preloaderManager=this.config.preloaderManager}),[{key:"createFLoaderClass",value:function(){var e=this;return function(){return Oe((function c(t){xe(this,c),this.customLoader=new Hd(e.originalLoader,e.preloaderManager,e.context),this.context=null,this.stats=null}),[{key:"load",value:function(e,c,t){return this.context=e,this.customLoader.load(e,c,t)}},{key:"abort",value:function(){return this.customLoader.abort()}},{key:"destroy",value:function(){return this.customLoader.destroy()}}])}()}},{key:"createPLoaderClass",value:function(){var e=this;return function(){return Oe((function c(){xe(this,c),this.customLoader=new qd(e.originalLoader,e.preloaderManager,e.context),this.context=null,this.stats=null}),[{key:"load",value:function(e,c,t){return this.context=e,this.customLoader.load(e,c,t)}},{key:"abort",value:function(){return this.customLoader.abort()}},{key:"destroy",value:function(){return this.customLoader.destroy()}}])}()}}])}(),Wd=function(){return Oe((function e(c){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};xe(this,e),this.fragmentLoader=null,this.hls=c,this.config=Ge({preloadEnabled:!0,preloadFragmentCount:3,preloadMaxBufferLength:30,preloadCacheType:ml.MEMORY,preloadMaxCacheCount:5,autoPreload:!1},t),this.context={config:this.config,currentPreloadPayload:null,hlsConfig:c.config},this.originalLoader=c.config.loader,this.loaderFactory=new Yd(this.originalLoader,this.context),this.setupLoaders(),this.registerEventListeners()}),[{key:"setupLoaders",value:function(){this.hls.config.pLoader=this.loaderFactory.createPLoaderClass(),this.hls.config.fLoader=this.loaderFactory.createFLoaderClass()}},{key:"registerEventListeners",value:function(){this.config.preloadEnabled&&(this.hls.on(hl.Events.MANIFEST_PARSED,this.onManifestParsed.bind(this)),this.hls.on(hl.Events.LEVEL_LOADED,this.onLevelLoaded.bind(this)),this.hls.on(hl.Events.FRAG_BUFFERED,this.onFragBuffered.bind(this)),this.hls.on(hl.Events.ERROR,this.onError.bind(this)))}},{key:"onManifestParsed",value:function(e,c){}},{key:"onLevelLoaded",value:function(e,c){}},{key:"onFragBuffered",value:function(e,c){this.config.preloadEnabled&&this.checkPreloadConditions()&&this.preloadNextFragments()}},{key:"onError",value:function(e,c){}},{key:"checkPreloadConditions",value:function(){return!!this.hls.media&&(!(this.getBufferInfo().len<this.config.preloadMaxBufferLength)&&!(this.hls.bandwidthEstimate<=0))}},{key:"getBufferInfo",value:function(){var e=this.hls.media;if(!e)return{len:0,end:0};var c=e.currentTime,t=c,a=0;if(e.buffered.length)for(var r=0;r<e.buffered.length;r++){var i=e.buffered.start(r),n=e.buffered.end(r);if(i<=c&&c<n){a=(t=n)-c;break}}return{len:a,end:t}}},{key:"preloadNextFragments",value:function(){var e=this.getCurrentLevelDetails();if(e){var c=this.getBufferInfo(),t=this.findNextFragmentIndex(e,c.end);if(-1!==t)for(var a=0;a<this.config.preloadFragmentCount;a++){var r=t+a;if(r>=e.fragments.length)break;var i=e.fragments[r];this.preloadFragment(i)}}}},{key:"getCurrentLevelDetails",value:function(){var e=this.hls,c=e.currentLevel,t=e.levels;return-1!==c&&t&&t[c]?t[c].details:null}},{key:"findNextFragmentIndex",value:function(e,c){for(var t=e.fragments,a=0;a<t.length;a++)if(t[a].start>c)return a;return-1}},{key:"preloadFragment",value:function(e){var c={vid:this.hls.url||"unknown",vtype:_l.HLS,codecType:kl.H264,definition:this.hls.currentLevel.toString(),payload:{url:e.url,range:e.byteRange,sn:e.sn,level:e.level}};this.preloaderManager.addPreload({data:c,order:e.sn})}},{key:"getPreloadProgress",value:function(){return{}}},{key:"attachPayload",value:function(e){this.context.currentPreloadPayload=e}},{key:"destroy",value:function(){this.hls.off(hl.Events.MANIFEST_PARSED,this.onManifestParsed),this.hls.off(hl.Events.LEVEL_LOADED,this.onLevelLoaded),this.hls.off(hl.Events.FRAG_BUFFERED,this.onFragBuffered),this.hls.off(hl.Events.ERROR,this.onError),this.hls.config.fLoader=void 0,this.hls.config.loader=this.originalLoader,this.preloaderManager.destroy()}}])}();function zd(e){return(zd="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Xd(e,c){for(var t=0;t<c.length;t++){var a=c[t];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,Qd(a.key),a)}}function Qd(e){var c=function(e,c){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,c||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===c?String:Number)(e)}(e,"string");return"symbol"==typeof c?c:String(c)}var Jd,Zd,eu,cu={DEBUG:1,LOG:2,WARN:3,ERROR:4},tu=["Boolean","Number","String","Undefined","Null","Date","Object"],au=function(){function e(c,t){!function(e,c){if(!(e instanceof c))throw new TypeError("Cannot call a class as a function")}(this,e),this.name=c||"",this._prefix="[".concat(this.name,"]"),this.logCacheLevel=(null==t?void 0:t.logCacheLevel)||3,this.logMaxSize=(null==t?void 0:t.logMaxSize)||204800,this.logSize=0,this.logTextArray=[]}var c,t,a;return c=e,t=[{key:"debug",value:function(){for(var c,t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];this.logCache.apply(this,[cu.DEBUG].concat(a)),e.disabled||(c=console).debug.apply(c,[this._prefix,ru()].concat(a))}},{key:"log",value:function(){for(var c,t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];this.logCache.apply(this,[cu.LOG].concat(a)),e.disabled||(c=console).log.apply(c,[this._prefix,ru()].concat(a))}},{key:"warn",value:function(){for(var c,t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];this.logCache.apply(this,[cu.WARN].concat(a)),e.disabled||(c=console).warn.apply(c,[this._prefix,ru()].concat(a))}},{key:"error",value:function(){for(var c,t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];this.logCache.apply(this,[cu.ERROR].concat(a)),e.disabled||(c=console).error.apply(c,[this._prefix,ru()].concat(a))}},{key:"logCache",value:function(e){if(!(e<this.logCacheLevel)){var c="";try{for(var t=arguments.length,a=new Array(t>1?t-1:0),r=1;r<t;r++)a[r-1]=arguments[r];var i=a.map((function(e){return nu(e)}));c=this._prefix+ru()+JSON.stringify(i)}catch(f){return}if(e>=this.logCacheLevel&&(this.logSize+=c.length,this.logTextArray.push(c)),this.logSize>this.logMaxSize){var n=this.logTextArray.shift();this.logSize-=n.length}}}},{key:"getLogCache",value:function(){var e=this.logTextArray.join("\n");return this.reset(),e}},{key:"reset",value:function(){this.logTextArray=[],this.logSize=0}},{key:"table",value:function(){var c;e.disabled||(console.group(this._prefix),(c=console).table.apply(c,arguments),console.groupEnd())}},{key:"setLogLevel",value:function(e){this.logCacheLevel=e}}],a=[{key:"enable",value:function(){e.disabled=!1}},{key:"disable",value:function(){e.disabled=!0}}],t&&Xd(c.prototype,t),a&&Xd(c,a),Object.defineProperty(c,"prototype",{writable:!1}),e}();function ru(){return(new Date).toLocaleString()}function iu(e){if("object"!==zd(e))return e;var c=Object.prototype.toString.call(e).slice(8,-1);switch(c){case"Array":case"Uint8Array":case"ArrayBuffer":return c+"["+e.length+"]";case"Object":return"{}";default:return c}}function nu(e,c,t){t||(t=1),c||(c=2);var a={};if(!e||"object"!==zd(e))return e;var r=Object.prototype.toString.call(e).slice(8,-1);if(!tu.includes(r))return r;if(!(t>c)){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t===c?a[i]=iu(e[i]):"object"===zd(e[i])?a[i]=nu(e[i],c,t+1):a[i]=e[i]);return a}}Jd=au,eu=!0,(Zd=Qd(Zd="disabled"))in Jd?Object.defineProperty(Jd,Zd,{value:eu,enumerable:!0,configurable:!0,writable:!0}):Jd[Zd]=eu;var fu=function(){try{return"undefined"!=typeof localStorage&&"setItem"in window.localStorage&&!!window.localStorage.setItem}catch(e){return!1}}()&&!function(){var e="_localstorage_support_test";try{return window.localStorage.setItem(e,"true"),window.localStorage.removeItem(e),!1}catch(c){return!0}}(),su=lu();!function(){if(fu)try{return!!window.localStorage.getItem("playertestlog")}catch(e){return!1}}();var ou={1:"debug",2:"log",3:"warn",4:"error"};function lu(){if(fu)try{return!!window.localStorage.getItem("playerlog")}catch(e){return!1}return!1}function du(e,c,t){for(var a=ou[c],r=arguments.length,i=new Array(r>3?r-3:0),n=3;n<r;n++)i[n-3]=arguments[n];if(a&&e&&e[a])e[a].apply(e,[t].concat(i));else if(su&&console.log){var f;(f=console).log.apply(f,["[logger]",t].concat(i))}}function uu(e,c,t){for(var a=arguments.length,r=new Array(a>3?a-3:0),i=3;i<a;i++)r[i-3]=arguments[i];if(1===arguments.length)du(console,2,e);else du.apply(void 0,[e,2,t||""].concat(r))}var hu=$o,bu=Hr,pu=function(e){function c(){var e;return xe(this,c),(e=De(this,c,arguments)).logger=new au("[HlsjsPreloader]",{}),e}return Be(c,e),Oe(c,[{key:"downloadWithFetchLoader",value:(f=Re(Ve().mark((function e(c,t,a){var r=this;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise((function(e,i){var n=new hu({}),f=a||Ge({url:c,responseType:"text",range:void 0},r.getRequestOption(t)),s={onSuccess:function(c,t,a,r){e({response:c,stats:t,context:a,networkDetails:r})},onError:function(e,c,t){i(new Error("FetchLoader error: ".concat(e.message||e)))},onTimeout:function(e,c,t){i(new Error("FetchLoader timeout"))}};n.load(f,{loadPolicy:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:3,retryDelayMs:1e3,maxRetryDelayMs:5e3},errorRetry:{maxNumRetry:3,retryDelayMs:1e3,maxRetryDelayMs:5e3}},maxRetry:3,timeout:2e4,retryDelay:1e3,maxRetryDelay:5e3},s)})));case 1:case"end":return e.stop()}}),e)}))),function(e,c,t){return f.apply(this,arguments)})},{key:"_beforeStart",value:function(e,t){var a=e.payload||[];if(0===a.length)return this.log(cu.LOG,"[HlsjsPreloader] preload_is_null"),null;var r=e.vid,i=e.steps,n=e.stepIdx,f=e.targetDefinition,s=e.vtype||_l.HLS,o=e.codecType||kl.H264,l=this.getUserSelectDefinition(),d=this.checkCacheKey(r,a,null!==l?l:void 0,s,o);if(this.log(cu.LOG,"[HlsjsPreloader]",r,"codecType:",o,"vtype:",s,"hasCache:",d),d&&!this.stepwise)return this.log(cu.LOG,"[HlsjsPreloader] has_cache_skip"),null;var u=f||this.getInitDefinition(a,t);if(this.log(cu.LOG,"[HlsjsPreloader]",r,"getInitDefinition:",null==u?void 0:u.definition),!u)return this.log(cu.LOG,"[HlsjsPreloader] definition_error"),null;var h=u.definition,b=u.definition,p=c.generateUniqueKey({vid:r,definition:h,vtype:s,codecType:o});this.log(cu.LOG,"[HlsjsPreloader]",r,"cacheKey:",p,"definition:",h);var g=Ge({vid:r,definition:h,orgDefinition:b,cacheKey:p,codecType:o,vtype:s,steps:i,stepIdx:n,payload:e},u);return e.reqOptions&&(g.reqOptions=e.reqOptions),this.log(cu.LOG,"[HlsjsPreloader] start preload:",r),g}},{key:"start",value:(n=Re(Ve().mark((function e(c,t){var a,r,i,n,f,s,o,l,d,u,h,b,p,g,m,v,y,E,S,_,T=this;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=this._beforeStart(c,t)){e.next=3;break}return e.abrupt("return",{remove:!0});case 3:if((r=a)&&r.url){e.next=6;break}return e.abrupt("return",{remove:!0});case 6:return e.prev=6,f=Ge({url:r.url,type:"manifest",level:null,id:null,levelOrTrack:null,groupId:void 0,pathwayId:void 0,levelDetails:void 0,deliveryDirectives:null,responseType:"text"},this.getRequestOption(c)),e.next=10,this.downloadWithFetchLoader(r.url,c,f);case 10:s=e.sent,o=s.response,l=s.stats,d=s.context,u=s.networkDetails,h=o.data,b=null,e.prev=17,b=bu.isMediaPlaylist(h)?bu.parseLevelPlaylist(h,r.url,0,"main",0,null):bu.parseMasterPlaylist(h,r.url),e.next=24;break;case 21:return e.prev=21,e.t0=e.catch(17),e.abrupt("return",{remove:!0});case 24:if(p={content:h,url:r.url,status:o.code||200,parsedManifest:b,response:{response:o,stats:l,context:d,networkDetails:u}},0!==(g=this.extractSegmentsFromManifest(b,r.url)).length){e.next=31;break}return m={m3u8:p,segments:[],metadata:{totalSegments:0,preloadedSegments:0,timestamp:Date.now(),manifestType:this.getManifestType(b)}},e.next=30,this.setPreLoadData(c,m);case 30:case 40:return e.abrupt("return",{remove:!0});case 31:return v=Math.min(g.length,2),y=g.slice(0,v).map(function(){var e=Re(Ve().mark((function e(t,a){var r,i,n,f;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,r={url:t.url,duration:t.duration,start:t.startTime,end:t.endTime,sn:t.sequenceNumber,level:t.level,cc:a,type:"main",relurl:t.url,baseurl:"",loader:null,levelkey:null,encrypted:!1,programDateTime:null,rawProgramDateTime:null,title:null,tagList:[],byteRangeStartOffset:0,byteRangeEndOffset:0,decryptdata:null,urlId:0,fragment:null,part:null,gap:!1,independent:!1,discontinuity:!1,deltaFromStreamStart:null,deltaFromProgramStart:null},i=Ge({url:t.url,responseType:"arraybuffer",rangeStart:0,rangeEnd:0,frag:r,part:null,resetIV:!1},T.getRequestOption(c)),e.next=5,T.downloadWithFetchLoader(t.url,c,i);case 5:return n=e.sent,f=n.response,e.abrupt("return",Ge(Ge({},t),{},{data:f.data,status:f.code||200,index:t.sequenceNumber,response:{response:f,stats:l,context:d,networkDetails:u}}));case 10:return e.prev=10,e.t0=e.catch(0),T.log(cu.WARN,"[HlsjsPreloader] Segment download failed: ".concat(t.url),e.t0),e.abrupt("return",null);case 14:case"end":return e.stop()}}),e,null,[[0,10]])})));return function(c,t){return e.apply(this,arguments)}}()),e.next=35,Promise.all(y);case 35:return E=e.sent,S=E.filter((function(e){return null!==e})),_={m3u8:p,segments:S,metadata:{totalSegments:g.length,preloadedSegments:S.length,timestamp:Date.now(),manifestType:this.getManifestType(b),levels:(null===(i=b.levels)||void 0===i?void 0:i.length)||0,segments:(null===(n=b.fragments)||void 0===n?void 0:n.length)||0}},e.next=40,this.setPreLoadData(c,_);case 43:return e.prev=43,e.t1=e.catch(6),this.log(cu.ERROR,"[HlsjsPreloader] 关键预加载错误:",e.t1),e.abrupt("return",{remove:!0});case 47:case"end":return e.stop()}}),e,this,[[6,43],[17,21]])}))),function(e,c){return n.apply(this,arguments)})},{key:"checkCacheKey",value:function(e,t,a){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:_l.HLS,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:kl.H264;if(a){var n=c.generateUniqueKey({vid:e,definition:String(a),vtype:r,codecType:i});return n&&this.hasItemSameVid(n)?n:null}for(var f=0;f<t.length;f++){var s=c.generateUniqueKey({vid:e,definition:t[f].definition,vtype:r,codecType:i});if(s&&this.hasItemSameVid(s))return s}return null}},{key:"hasItemSameVid",value:function(e){if(!e)return!1;try{for(var c=this.preloadManager.getAllCachedDataKeys()||[],t=0;t<c.length;t++){if(c[t]===e)return!0}}catch(a){this.log(cu.WARN,"[HlsjsPreloader] hasItemSameVid error:",a)}return!1}},{key:"getUserSelectDefinition",value:function(){try{var e,c;return(null===(e=(c=this.preloadManager).getUserSelectDefinition)||void 0===e?void 0:e.call(c))||null}catch(t){return null}}},{key:"getInitDefinition",value:function(e,c){var t=null,a=0;if(null!=c)for(var r=0;r<e.length;r++){var i=e[r];if(i.definition===c||i.bitrate===c){a=r;break}}return(t=e[a])||(t=e[0]),t}},{key:"extractSegmentsFromManifest",value:function(e,c){var t=this,a=[];if(e.levels&&e.levels.length>0){var r=e.levels[0];r.details&&r.details.fragments&&r.details.fragments.forEach((function(e,i){var n=t.resolveUrl(e.url,c);a.push({url:n,duration:e.duration||0,startTime:e.start||0,endTime:(e.start||0)+(e.duration||0),sequenceNumber:e.sn||i,level:r.id||0})}))}else if(e.fragments||e.segments){(e.fragments||e.segments).forEach((function(e,r){var i=t.resolveUrl(e.url,c);a.push({url:i,duration:e.duration||0,startTime:e.start||0,endTime:(e.start||0)+(e.duration||0),sequenceNumber:e.sn||r,level:0})}))}return a}},{key:"resolveUrl",value:function(e,c){if(!e)return"";if(e.startsWith("http://")||e.startsWith("https://"))return e;try{var t=new URL(c);if(e.startsWith("/"))return"".concat(t.protocol,"//").concat(t.host).concat(e);var a=t.pathname.replace(/\/[^\/]*$/,"/");return"".concat(t.protocol,"//").concat(t.host).concat(a).concat(e)}catch(r){return e}}},{key:"getManifestType",value:function(e){return e.levels&&e.levels.length>1?"MULTI_LEVEL":e.segments||e.fragments?"SINGLE_LEVEL":e.playlists?"MASTER_PLAYLIST":"UNKNOWN"}},{key:"setPreLoadData",value:(i=Re(Ve().mark((function e(t,a){var r,i,n,f,s,o,l,d,u,h,b,p,g;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.vid,i=t.vtype,n=t.codecType,f=t.definition,s=t.mediaType,o=t.payload,l=0,d=0,u=a.segments,h=a.m3u8,u.forEach((function(e){if(e.data){var c=e.data.byteLength||0;l+=c,d+=c}})),h.content&&(d+=new Blob([h.content]).size),b=0,Array.isArray(o)?(p=this.getInitDefinition(o,f),b=(null==p?void 0:p.bitrate)||0):b=(null==o?void 0:o.bitrate)||0,g={vid:r,vtype:i||_l.HLS,codecType:n||"",definition:f||"-1",bitrate:b||0,mediaType:s||"video",cacheKey:c.generateUniqueKey(t),byteLength:l,preloadTime:a.metadata.preloadedSegments>0?u.reduce((function(e,c){return e+(c.duration||0)}),0):0,memory:d,m3u8:a.m3u8,segments:a.segments,metadata:a.metadata},e.next=11,this.setItem(t,g);case 11:case"end":return e.stop()}}),e,this)}))),function(e,c){return i.apply(this,arguments)})},{key:"setItem",value:function(e,c){return this.preloadManager.setItem(e,c,!1)}},{key:"cancel",value:(r=Re(Ve().mark((function e(){return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.resolve());case 1:case"end":return e.stop()}}),e)}))),function(){return r.apply(this,arguments)})},{key:"getPreLoadData",value:(a=Re(Ve().mark((function e(c){var t;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.preloadManager.getItem(c);case 2:return t=e.sent,e.abrupt("return",t||null);case 4:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"log",value:function(e,c){for(var t=arguments.length,a=new Array(t>2?t-2:0),r=2;r<t;r++)a[r-2]=arguments[r];uu.apply(void 0,[this.logger,e,c].concat(a))}},{key:"destroy",value:(t=Re(Ve().mark((function e(){return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.resolve());case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)})}],[{key:"vtype",get:function(){return"HLS"}},{key:"generateUniqueKey",value:function(e){var c=e.vid,t=e.mediaType,a=e.codecType,r=e.definition;return"".concat(c,"#").concat(t||"video","#").concat(a,"#HLS#").concat(null!=r?r:-1,"#_#_")}}]);var t,a,r,i,n,f}(vd),gu=function(e){return e[e.KDS=0]="KDS",e[e.DRM=1]="DRM",e}(gu||{});function mu(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],c=window.MediaSource=window.MediaSource||(e?window.ManagedMediaSource:void 0)||window.WebKitMediaSource;return c&&"function"==typeof c.isTypeSupported}function vu(e,c,t,a){e.once(a,(function r(){e.off(c,t),e.off(a,r)}))}var yu={getBrowserVersion:function(){var e=navigator.userAgent;if(e.toLowerCase().indexOf("mobile")>-1)return"Unknown";function c(c){return((e.match(c)||[""])[0].match(/[\d]+/)||["0"])[0]}if(e.indexOf("Firefox")>-1)return"Firefox ".concat(c(/firefox\/[\d.]+/gi));if(e.indexOf("Edge")>-1)return"Edge ".concat(c(/edge\/[\d.]+/gi));if(e.indexOf("rv:11")>-1)return"IE 11";if(e.indexOf("Opera")>-1||e.indexOf("OPR")>-1){if(e.indexOf("Opera")>-1)return"Opera ".concat(c(/opera\/[\d.]+/gi));if(e.indexOf("OPR")>-1)return"Opera ".concat(c(/opr\/[\d.]+/gi))}else{if(e.indexOf("Chrome")>-1)return"Chrome ".concat(c(/chrome\/[\d.]+/gi));if(e.indexOf("Safari")>-1)return"Safari ".concat(c(/safari\/[\d.]+/gi));if(!(e.indexOf("MSIE")>-1||e.indexOf("Trident")>-1))return"Unknown";if(e.indexOf("MSIE")>-1)return"IE ".concat(c(/msie [\d.]+/gi));if(e.indexOf("Trident")>-1){var t=c(/trident\/[\d.]+/gi),a=parseInt(t)+4;return"IE ".concat(a)}}},parseUrl:function(e){var c=e.split("?")[1],t={};return c&&c.split("&").forEach((function(e){var c=e.split("=");t[c[0]]=decodeURIComponent(c[1])})),t},isBase64:function(e){return/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/.test(e)},isPlainObject:function(e){return"[object Object]"===Object.prototype.toString.call(e)},isRelativeURL:function(e){return/^:?\/\//i.test(e)},isMobile:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],c=!1;return navigator.userAgent.toLocaleLowerCase().indexOf("ipad")>-1?(navigator.userAgent.toLocaleLowerCase().indexOf("mobile")>-1&&"Win32"!==navigator.platform||!mu(e))&&(c=!0):navigator.userAgent.toLocaleLowerCase().indexOf("mobile")>-1&&"Win32"!==navigator.platform&&!mu(e)&&(c=!0),c},checkMediaSourceSupport:mu,getAbsoluteURL:function(e){var c=new Image;return c.src=e,e=c.src},offInDestroy:vu,on:function(e,c,t,a){if(a)e.on(c,t),vu(e,c,t,a);else{var r=function(a){t(a),e.off(c,r)};e.on(c,r)}},once:function(e,c,t,a){if(a)e.once(c,t),vu(e,c,t,a);else{var r=function(a){t(a),e.off(c,r)};e.once(c,r)}}},Eu=function(){return Oe((function e(c,t){xe(this,e),this.timeID=void 0,this.func=c,this.frequency=t}),[{key:"repeat",value:function(){var e=this,c=this.func,t=this.frequency;c&&t&&(this.timeID=setTimeout((function(){c(),e.repeat()}),t))}},{key:"cancel",value:function(){this.timeID&&(clearTimeout(this.timeID),this.timeID=void 0)}}])}();function Su(e){var c=e.url,t=e.method,a=void 0===t?"GET":t,r=e.type,i=e.timeout,n=void 0===i?1e4:i,f=e.body,s=e.xhrSetup,o=e.cache,l=void 0===o||o;return new Promise((function(e,t){var i=new window.XMLHttpRequest;if("GET"!==(a=a.toUpperCase())&&"POST"!==a)throw new Error("XHR ".concat(a," is not allowed"));if(r&&(i.responseType=r),n&&(i.timeout=n),i.onload=function(){200===i.status||206===i.status?e(i):t(i)},i.onerror=function(){t(i)},i.ontimeout=function(){t(i)},i.onabort=function(){t(i)},"GET"===a&&!l){var o=/\?/gi.test(c)?"&":"?";c+="".concat(o,"_=").concat((new Date).getTime())}if(i.open(a,"".concat(c),!0),s)try{s(i,c)}catch(d){console.error("xhr setup failure: ".concat((null==d?void 0:d.stack)||(null==d?void 0:d.message)))}switch(a){case"POST":"text"===r&&i.setRequestHeader("Content-type","application/x-www-form-urlencoded"),i.send(f);break;case"GET":i.send()}}))}var _u=yu.getBrowserVersion();function Tu(e){return ku.apply(this,arguments)}function ku(){return ku=Re(Ve().mark((function e(c){var t,a,r,i,n=arguments;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=n.length>1&&void 0!==n[1]?n[1]:{},e.prev=1,r=t.payload?JSON.stringify(t.payload):void 0,i=/^blob:/.test(c),"IE 11"===_u){e.next=10;break}return e.next=7,Su({url:c,type:t.type||"text",cache:i,body:r,method:t.method});case 7:a=e.sent,e.next=13;break;case 10:return e.next=12,new Promise((function(e,a){var i=new XMLHttpRequest;t.type&&(i.responseType=t.type),i.open(t.method||"get",c),i.send(r),i.onload=function(){200===i.status||206===i.status?e(i):a(i.status)}}));case 12:a=e.sent;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(1),console.error("error",e.t0);case 18:return e.abrupt("return",a);case 19:case"end":return e.stop()}}),e,null,[[1,15]])}))),ku.apply(this,arguments)}function Au(e,c){return Lu.apply(this,arguments)}function Lu(){return Lu=Re(Ve().mark((function e(c,t){var a,r,i,n,f,s,o,l,d,u,h;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=c.config,r=c.isNativeMode,i=t.url,n="",e.next=5,Tu(i);case 5:if(!(f=e.sent)){e.next=28;break}if(e.prev=7,s=JSON.parse(f.responseText),"TOP"!==a.getKeyType){e.next=13;break}n=s.Result.SecretKey,e.next=23;break;case 13:if(!r){e.next=22;break}if(o=rc(s.data)){e.next=17;break}throw new Error("parse key data failed");case 17:l=o.encData,d=o.key,u=o.iv,h=tc(l,d,u),n=window.btoa(h),e.next=23;break;case 22:n=window.btoa(s.data);case 23:e.next=28;break;case 25:e.prev=25,e.t0=e.catch(7),n=yu.isBase64(f.responseText)?f.responseText:window.btoa(f.responseText);case 28:return e.abrupt("return",n);case 29:case"end":return e.stop()}}),e,null,[[7,25]])}))),Lu.apply(this,arguments)}function Iu(e,c){return wu.apply(this,arguments)}function wu(){return(wu=Re(Ve().mark((function e(c,t){var a;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:a=void 0,e.t0=t.system,e.next=e.t0===gu.KDS?4:8;break;case 4:return e.next=6,Au(c,t);case 6:return a=e.sent,e.abrupt("break",9);case 8:console.error("wrong key system:",t.system);case 9:return e.abrupt("return",a);case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ru(e,c){return Du.apply(this,arguments)}function Du(){return(Du=Re(Ve().mark((function e(c,t){var a,r,i,n,f,s,o,l,d;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=t.config,r={},e.next=4,Su({url:c,xhrSetup:function(e){a.netAllowCredentials&&(e.withCredentials=!0)}});case 4:return i=e.sent,(n=i.responseText).match(/#EXT-X-KEY:(\w+=\w+)+/)&&(f=n.match(/,URI="([^"]+)"/),s=f?f[1]:"",null!=(o=yu.parseUrl(s))&&o.ak&&("TOP"===a.getKeyType?(l=/^https?:/.test(a.playDomain)?a.playDomain:"//".concat((a.playDomain||"").replace(/^\/\//gi,"")),d=yu.isBase64(a.keyToken)?window.atob(a.keyToken):a.keyToken,s="".concat(l,"?").concat(d,"&Source=jarvis&Ak=").concat(o.ak)):s="".concat(a.keyDomain||"","/kds/api/v3/keys?source=jarvis&ak=").concat(o.ak,"&token=").concat(a.keyToken||"")),r.keyUrl=s,r.responseText=n),e.abrupt("return",r);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function xu(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=c.kid||e.kid,a=c.playAuth||e.secretKey;return!!(e.keyValue||e.getLicenseUrl||e.drmKeyToken||e.keyToken||e.keyDomain||e.playDomain||t||a)}function Pu(e,c){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);c&&(a=a.filter((function(c){return Object.getOwnPropertyDescriptor(e,c).enumerable}))),t.push.apply(t,a)}return t}function Cu(e){for(var c=1;c<arguments.length;c++){var t=null!=arguments[c]?arguments[c]:{};c%2?Pu(Object(t),!0).forEach((function(c){ju(e,c,t[c])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):Pu(Object(t)).forEach((function(c){Object.defineProperty(e,c,Object.getOwnPropertyDescriptor(t,c))}))}return e}function Ou(){Ou=function(){return e};var e={},c=Object.prototype,t=c.hasOwnProperty,a=Object.defineProperty||function(e,c,t){e[c]=t.value},r="function"==typeof Symbol?Symbol:{},i=r.iterator||"@@iterator",n=r.asyncIterator||"@@asyncIterator",f=r.toStringTag||"@@toStringTag";function s(e,c,t){return Object.defineProperty(e,c,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[c]}try{s({},"")}catch(nm){s=function(e,c,t){return e[c]=t}}function o(e,c,t,r){var i=c&&c.prototype instanceof u?c:u,n=Object.create(i.prototype),f=new A(r||[]);return a(n,"_invoke",{value:S(e,t,f)}),n}function l(e,c,t){try{return{type:"normal",arg:e.call(c,t)}}catch(nm){return{type:"throw",arg:nm}}}e.wrap=o;var d={};function u(){}function h(){}function b(){}var p={};s(p,i,(function(){return this}));var g=Object.getPrototypeOf,m=g&&g(g(L([])));m&&m!==c&&t.call(m,i)&&(p=m);var v=b.prototype=u.prototype=Object.create(p);function y(e){["next","throw","return"].forEach((function(c){s(e,c,(function(e){return this._invoke(c,e)}))}))}function E(e,c){function r(a,i,n,f){var s=l(e[a],e,i);if("throw"!==s.type){var o=s.arg,d=o.value;return d&&"object"==typeof d&&t.call(d,"__await")?c.resolve(d.__await).then((function(e){r("next",e,n,f)}),(function(e){r("throw",e,n,f)})):c.resolve(d).then((function(e){o.value=e,n(o)}),(function(e){return r("throw",e,n,f)}))}f(s.arg)}var i;a(this,"_invoke",{value:function(e,t){function a(){return new c((function(c,a){r(e,t,c,a)}))}return i=i?i.then(a,a):a()}})}function S(e,c,t){var a="suspendedStart";return function(r,i){if("executing"===a)throw new Error("Generator is already running");if("completed"===a){if("throw"===r)throw i;return{value:void 0,done:!0}}for(t.method=r,t.arg=i;;){var n=t.delegate;if(n){var f=_(n,t);if(f){if(f===d)continue;return f}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===a)throw a="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);a="executing";var s=l(e,c,t);if("normal"===s.type){if(a=t.done?"completed":"suspendedYield",s.arg===d)continue;return{value:s.arg,done:t.done}}"throw"===s.type&&(a="completed",t.method="throw",t.arg=s.arg)}}}function _(e,c){var t=c.method,a=e.iterator[t];if(void 0===a)return c.delegate=null,"throw"===t&&e.iterator.return&&(c.method="return",c.arg=void 0,_(e,c),"throw"===c.method)||"return"!==t&&(c.method="throw",c.arg=new TypeError("The iterator does not provide a '"+t+"' method")),d;var r=l(a,e.iterator,c.arg);if("throw"===r.type)return c.method="throw",c.arg=r.arg,c.delegate=null,d;var i=r.arg;return i?i.done?(c[e.resultName]=i.value,c.next=e.nextLoc,"return"!==c.method&&(c.method="next",c.arg=void 0),c.delegate=null,d):i:(c.method="throw",c.arg=new TypeError("iterator result is not an object"),c.delegate=null,d)}function T(e){var c={tryLoc:e[0]};1 in e&&(c.catchLoc=e[1]),2 in e&&(c.finallyLoc=e[2],c.afterLoc=e[3]),this.tryEntries.push(c)}function k(e){var c=e.completion||{};c.type="normal",delete c.arg,e.completion=c}function A(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function L(e){if(e){var c=e[i];if(c)return c.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var a=-1,r=function c(){for(;++a<e.length;)if(t.call(e,a))return c.value=e[a],c.done=!1,c;return c.value=void 0,c.done=!0,c};return r.next=r}}return{next:I}}function I(){return{value:void 0,done:!0}}return h.prototype=b,a(v,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:h,configurable:!0}),h.displayName=s(b,f,"GeneratorFunction"),e.isGeneratorFunction=function(e){var c="function"==typeof e&&e.constructor;return!!c&&(c===h||"GeneratorFunction"===(c.displayName||c.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,s(e,f,"GeneratorFunction")),e.prototype=Object.create(v),e},e.awrap=function(e){return{__await:e}},y(E.prototype),s(E.prototype,n,(function(){return this})),e.AsyncIterator=E,e.async=function(c,t,a,r,i){void 0===i&&(i=Promise);var n=new E(o(c,t,a,r),i);return e.isGeneratorFunction(t)?n:n.next().then((function(e){return e.done?e.value:n.next()}))},y(v),s(v,f,"Generator"),s(v,i,(function(){return this})),s(v,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var c=Object(e),t=[];for(var a in c)t.push(a);return t.reverse(),function e(){for(;t.length;){var a=t.pop();if(a in c)return e.value=a,e.done=!1,e}return e.done=!0,e}},e.values=L,A.prototype={constructor:A,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(k),!e)for(var c in this)"t"===c.charAt(0)&&t.call(this,c)&&!isNaN(+c.slice(1))&&(this[c]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var c=this;function a(t,a){return n.type="throw",n.arg=e,c.next=t,a&&(c.method="next",c.arg=void 0),!!a}for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r],n=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var f=t.call(i,"catchLoc"),s=t.call(i,"finallyLoc");if(f&&s){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(f){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,c){for(var a=this.tryEntries.length-1;a>=0;--a){var r=this.tryEntries[a];if(r.tryLoc<=this.prev&&t.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=c&&c<=i.finallyLoc&&(i=null);var n=i?i.completion:{};return n.type=e,n.arg=c,i?(this.method="next",this.next=i.finallyLoc,d):this.complete(n)},complete:function(e,c){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&c&&(this.next=c),d},finish:function(e){for(var c=this.tryEntries.length-1;c>=0;--c){var t=this.tryEntries[c];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),k(t),d}},catch:function(e){for(var c=this.tryEntries.length-1;c>=0;--c){var t=this.tryEntries[c];if(t.tryLoc===e){var a=t.completion;if("throw"===a.type){var r=a.arg;k(t)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,c,t){return this.delegate={iterator:L(e),resultName:c,nextLoc:t},"next"===this.method&&(this.arg=void 0),d}},e}function Mu(e){return(Mu="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Fu(e,c,t,a,r,i,n){try{var f=e[i](n),s=f.value}catch(o){return void t(o)}f.done?c(s):Promise.resolve(s).then(a,r)}function Nu(e){return function(){var c=this,t=arguments;return new Promise((function(a,r){var i=e.apply(c,t);function n(e){Fu(i,a,r,n,f,"next",e)}function f(e){Fu(i,a,r,n,f,"throw",e)}n(void 0)}))}}function Uu(e,c){if(!(e instanceof c))throw new TypeError("Cannot call a class as a function")}function Bu(e,c){for(var t=0;t<c.length;t++){var a=c[t];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,Ju(a.key),a)}}function $u(e,c,t){return c&&Bu(e.prototype,c),t&&Bu(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function ju(e,c,t){return(c=Ju(c))in e?Object.defineProperty(e,c,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[c]=t,e}function Gu(e,c){if("function"!=typeof c&&null!==c)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(c&&c.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),c&&Vu(e,c)}function Ku(e){return(Ku=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Vu(e,c){return(Vu=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,c){return e.__proto__=c,e})(e,c)}function Hu(e,c){if(null==e)return{};var t,a,r=function(e,c){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)t=i[a],c.indexOf(t)>=0||(r[t]=e[t]);return r}(e,c);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],c.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}function qu(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Yu(e){var c=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var t,a=Ku(e);if(c){var r=Ku(this).constructor;t=Reflect.construct(a,arguments,r)}else t=a.apply(this,arguments);return function(e,c){if(c&&("object"==typeof c||"function"==typeof c))return c;if(void 0!==c)throw new TypeError("Derived constructors may only return object or undefined");return qu(e)}(this,t)}}function Wu(e,c){return function(e){if(Array.isArray(e))return e}(e)||function(e,c){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var a,r,i,n,f=[],s=!0,o=!1;try{if(i=(t=t.call(e)).next,0===c){if(Object(t)!==t)return;s=!1}else for(;!(s=(a=i.call(t)).done)&&(f.push(a.value),f.length!==c);s=!0);}catch(nm){o=!0,r=nm}finally{try{if(!s&&null!=t.return&&(n=t.return(),Object(n)!==n))return}finally{if(o)throw r}}return f}}(e,c)||Xu(e,c)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function zu(e){return function(e){if(Array.isArray(e))return Qu(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Xu(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Xu(e,c){if(e){if("string"==typeof e)return Qu(e,c);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Qu(e,c):void 0}}function Qu(e,c){(null==c||c>e.length)&&(c=e.length);for(var t=0,a=new Array(c);t<c;t++)a[t]=e[t];return a}function Ju(e){var c=function(e,c){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,c||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===c?String:Number)(e)}(e,"string");return"symbol"==typeof c?c:String(c)}function Zu(e,c){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);c&&(a=a.filter((function(c){return Object.getOwnPropertyDescriptor(e,c).enumerable}))),t.push.apply(t,a)}return t}function eh(e){for(var c=1;c<arguments.length;c++){var t=null!=arguments[c]?arguments[c]:{};c%2?Zu(Object(t),!0).forEach((function(c){sh(e,c,t[c])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):Zu(Object(t)).forEach((function(c){Object.defineProperty(e,c,Object.getOwnPropertyDescriptor(t,c))}))}return e}function ch(){ch=function(){return e};var e={},c=Object.prototype,t=c.hasOwnProperty,a=Object.defineProperty||function(e,c,t){e[c]=t.value},r="function"==typeof Symbol?Symbol:{},i=r.iterator||"@@iterator",n=r.asyncIterator||"@@asyncIterator",f=r.toStringTag||"@@toStringTag";function s(e,c,t){return Object.defineProperty(e,c,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[c]}try{s({},"")}catch(nm){s=function(e,c,t){return e[c]=t}}function o(e,c,t,r){var i=c&&c.prototype instanceof u?c:u,n=Object.create(i.prototype),f=new A(r||[]);return a(n,"_invoke",{value:S(e,t,f)}),n}function l(e,c,t){try{return{type:"normal",arg:e.call(c,t)}}catch(nm){return{type:"throw",arg:nm}}}e.wrap=o;var d={};function u(){}function h(){}function b(){}var p={};s(p,i,(function(){return this}));var g=Object.getPrototypeOf,m=g&&g(g(L([])));m&&m!==c&&t.call(m,i)&&(p=m);var v=b.prototype=u.prototype=Object.create(p);function y(e){["next","throw","return"].forEach((function(c){s(e,c,(function(e){return this._invoke(c,e)}))}))}function E(e,c){function r(a,i,n,f){var s=l(e[a],e,i);if("throw"!==s.type){var o=s.arg,d=o.value;return d&&"object"==typeof d&&t.call(d,"__await")?c.resolve(d.__await).then((function(e){r("next",e,n,f)}),(function(e){r("throw",e,n,f)})):c.resolve(d).then((function(e){o.value=e,n(o)}),(function(e){return r("throw",e,n,f)}))}f(s.arg)}var i;a(this,"_invoke",{value:function(e,t){function a(){return new c((function(c,a){r(e,t,c,a)}))}return i=i?i.then(a,a):a()}})}function S(e,c,t){var a="suspendedStart";return function(r,i){if("executing"===a)throw new Error("Generator is already running");if("completed"===a){if("throw"===r)throw i;return{value:void 0,done:!0}}for(t.method=r,t.arg=i;;){var n=t.delegate;if(n){var f=_(n,t);if(f){if(f===d)continue;return f}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===a)throw a="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);a="executing";var s=l(e,c,t);if("normal"===s.type){if(a=t.done?"completed":"suspendedYield",s.arg===d)continue;return{value:s.arg,done:t.done}}"throw"===s.type&&(a="completed",t.method="throw",t.arg=s.arg)}}}function _(e,c){var t=c.method,a=e.iterator[t];if(void 0===a)return c.delegate=null,"throw"===t&&e.iterator.return&&(c.method="return",c.arg=void 0,_(e,c),"throw"===c.method)||"return"!==t&&(c.method="throw",c.arg=new TypeError("The iterator does not provide a '"+t+"' method")),d;var r=l(a,e.iterator,c.arg);if("throw"===r.type)return c.method="throw",c.arg=r.arg,c.delegate=null,d;var i=r.arg;return i?i.done?(c[e.resultName]=i.value,c.next=e.nextLoc,"return"!==c.method&&(c.method="next",c.arg=void 0),c.delegate=null,d):i:(c.method="throw",c.arg=new TypeError("iterator result is not an object"),c.delegate=null,d)}function T(e){var c={tryLoc:e[0]};1 in e&&(c.catchLoc=e[1]),2 in e&&(c.finallyLoc=e[2],c.afterLoc=e[3]),this.tryEntries.push(c)}function k(e){var c=e.completion||{};c.type="normal",delete c.arg,e.completion=c}function A(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function L(e){if(e){var c=e[i];if(c)return c.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var a=-1,r=function c(){for(;++a<e.length;)if(t.call(e,a))return c.value=e[a],c.done=!1,c;return c.value=void 0,c.done=!0,c};return r.next=r}}return{next:I}}function I(){return{value:void 0,done:!0}}return h.prototype=b,a(v,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:h,configurable:!0}),h.displayName=s(b,f,"GeneratorFunction"),e.isGeneratorFunction=function(e){var c="function"==typeof e&&e.constructor;return!!c&&(c===h||"GeneratorFunction"===(c.displayName||c.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,s(e,f,"GeneratorFunction")),e.prototype=Object.create(v),e},e.awrap=function(e){return{__await:e}},y(E.prototype),s(E.prototype,n,(function(){return this})),e.AsyncIterator=E,e.async=function(c,t,a,r,i){void 0===i&&(i=Promise);var n=new E(o(c,t,a,r),i);return e.isGeneratorFunction(t)?n:n.next().then((function(e){return e.done?e.value:n.next()}))},y(v),s(v,f,"Generator"),s(v,i,(function(){return this})),s(v,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var c=Object(e),t=[];for(var a in c)t.push(a);return t.reverse(),function e(){for(;t.length;){var a=t.pop();if(a in c)return e.value=a,e.done=!1,e}return e.done=!0,e}},e.values=L,A.prototype={constructor:A,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(k),!e)for(var c in this)"t"===c.charAt(0)&&t.call(this,c)&&!isNaN(+c.slice(1))&&(this[c]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var c=this;function a(t,a){return n.type="throw",n.arg=e,c.next=t,a&&(c.method="next",c.arg=void 0),!!a}for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r],n=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var f=t.call(i,"catchLoc"),s=t.call(i,"finallyLoc");if(f&&s){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(f){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,c){for(var a=this.tryEntries.length-1;a>=0;--a){var r=this.tryEntries[a];if(r.tryLoc<=this.prev&&t.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=c&&c<=i.finallyLoc&&(i=null);var n=i?i.completion:{};return n.type=e,n.arg=c,i?(this.method="next",this.next=i.finallyLoc,d):this.complete(n)},complete:function(e,c){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&c&&(this.next=c),d},finish:function(e){for(var c=this.tryEntries.length-1;c>=0;--c){var t=this.tryEntries[c];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),k(t),d}},catch:function(e){for(var c=this.tryEntries.length-1;c>=0;--c){var t=this.tryEntries[c];if(t.tryLoc===e){var a=t.completion;if("throw"===a.type){var r=a.arg;k(t)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,c,t){return this.delegate={iterator:L(e),resultName:c,nextLoc:t},"next"===this.method&&(this.arg=void 0),d}},e}function th(e){return(th="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ah(e,c,t,a,r,i,n){try{var f=e[i](n),s=f.value}catch(o){return void t(o)}f.done?c(s):Promise.resolve(s).then(a,r)}function rh(e){return function(){var c=this,t=arguments;return new Promise((function(a,r){var i=e.apply(c,t);function n(e){ah(i,a,r,n,f,"next",e)}function f(e){ah(i,a,r,n,f,"throw",e)}n(void 0)}))}}function ih(e,c){if(!(e instanceof c))throw new TypeError("Cannot call a class as a function")}function nh(e,c){for(var t=0;t<c.length;t++){var a=c[t];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,Sh(a.key),a)}}function fh(e,c,t){return c&&nh(e.prototype,c),t&&nh(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function sh(e,c,t){return(c=Sh(c))in e?Object.defineProperty(e,c,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[c]=t,e}function oh(e,c){if("function"!=typeof c&&null!==c)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(c&&c.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),c&&dh(e,c)}function lh(e){return(lh=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function dh(e,c){return(dh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,c){return e.__proto__=c,e})(e,c)}function uh(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function hh(e,c,t){return(hh=uh()?Reflect.construct.bind():function(e,c,t){var a=[null];a.push.apply(a,c);var r=new(Function.bind.apply(e,a));return t&&dh(r,t.prototype),r}).apply(null,arguments)}function bh(e){var c="function"==typeof Map?new Map:void 0;return bh=function(e){if(null===e||(t=e,-1===Function.toString.call(t).indexOf("[native code]")))return e;var t;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==c){if(c.has(e))return c.get(e);c.set(e,a)}function a(){return hh(e,arguments,lh(this).constructor)}return a.prototype=Object.create(e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),dh(a,e)},bh(e)}function ph(e,c){if(null==e)return{};var t,a,r=function(e,c){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)t=i[a],c.indexOf(t)>=0||(r[t]=e[t]);return r}(e,c);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],c.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}function gh(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function mh(e){var c=uh();return function(){var t,a=lh(e);if(c){var r=lh(this).constructor;t=Reflect.construct(a,arguments,r)}else t=a.apply(this,arguments);return function(e,c){if(c&&("object"==typeof c||"function"==typeof c))return c;if(void 0!==c)throw new TypeError("Derived constructors may only return object or undefined");return gh(e)}(this,t)}}function vh(){return vh="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,c,t){var a=function(e,c){for(;!Object.prototype.hasOwnProperty.call(e,c)&&null!==(e=lh(e)););return e}(e,c);if(a){var r=Object.getOwnPropertyDescriptor(a,c);return r.get?r.get.call(arguments.length<3?e:t):r.value}},vh.apply(this,arguments)}function yh(e,c){(null==c||c>e.length)&&(c=e.length);for(var t=0,a=new Array(c);t<c;t++)a[t]=e[t];return a}function Eh(e,c){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=function(e,c){if(e){if("string"==typeof e)return yh(e,c);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?yh(e,c):void 0}}(e))||c&&e&&"number"==typeof e.length){t&&(e=t);var a=0,r=function(){};return{s:r,n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,n=!0,f=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return n=e.done,e},e:function(e){f=!0,i=e},f:function(){try{n||null==t.return||t.return()}finally{if(f)throw i}}}}function Sh(e){var c=function(e,c){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,c||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===c?String:Number)(e)}(e,"string");return"symbol"==typeof c?c:String(c)}var _h,Th=function(){function e(){ih(this,e)}return fh(e,null,[{key:"start",value:function(e){return e&&e.length?1===e.length&&e.end(0)-e.start(0)<1e-6||1===e.length&&e.start(0)<0?0:e.start(0):0}},{key:"end",value:function(e){return e&&e.length?1===e.length&&e.end(0)-e.start(0)<1e-6?0:e.end(e.length-1):0}},{key:"get",value:function(e){if(e)try{return e.buffered}catch(c){}}},{key:"buffers",value:function(e,c){if(!e||!e.length)return[];for(var t=[],a=0,r=e.length;a<r;a++){var i=t.length;if(i&&c){var n=t[i-1],f=n[1];if(e.start(a)-f<=c){var s=e.end(a);s>f&&(n[1]=s)}else t.push([e.start(a),e.end(a)])}else t.push([e.start(a),e.end(a)])}return t}},{key:"totalLength",value:function(e){return e&&e.length?e.reduce((function(e,c){return e+(c[1]-c[0])}),0):0}},{key:"info",value:function(c){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(!c||!c.length)return{start:0,end:0,buffers:[]};for(var r=0,i=0,n=0,f=0,s=0,o=0,l=0,d=e.buffers(c,a),u=0,h=d.length;u<h;u++){var b=d[u];if(t+a>=b[0]&&t<=b[1])r=b[0],i=b[1],n=u;else{if(t+a<b[0]){f=b[0],s=b[1];break}t+a>b[1]&&(o=b[0],l=b[1])}}return{start:r,end:i,index:n,buffers:d,nextStart:f,nextEnd:s,prevStart:o,prevEnd:l,currentTime:t,behind:t-r,remaining:i?i-t:0,length:e.totalLength&&e.totalLength(d)}}},{key:"isBuffered",value:function(c,t){if(c){var a=e.get(c);if(null!=a&&a.length)for(var r=0;r<a.length;r++)if(t>=a.start(r)&&t<=a.end(r))return!0}return!1}}]),e}(),kh="undefined"!=typeof window,Ah="manifest",Lh="network",Ih="network_timeout",wh="network_forbidden",Rh="network_notfound",Dh="network_range_not_satisfiable",xh="demux",Ph="remux",Ch="media",Oh="drm",Mh="other",Fh="runtime",Nh={FLV:"FLV",HLS:"HLS",MP4:"MP4",FMP4:"FMP4",MSE_ADD_SB:"MSE_ADD_SB",MSE_APPEND_BUFFER:"MSE_APPEND_BUFFER",MSE_OTHER:"MSE_OTHER",MSE_FULL:"MSE_FULL",MSE_CHANGE_TYPE:"MSE_CHANGE_TYPE",OPTION:"OPTION",DASH:"DASH",LICENSE:"LICENSE",CUSTOM_LICENSE:"CUSTOM_LICENSE",MSE_HIJACK:"MSE_HIJACK",EME_HIJACK:"EME_HIJACK",SIDX:"SIDX",NO_CANPLAY_ERROR:"NO_CANPLAY_ERROR",BUFFERBREAK_ERROR:"BUFFERBREAK_ERROR",WAITING_TIMEOUT_ERROR:"WAITING_TIMEOUT_ERROR",MEDIA_ERR_ABORTED:"MEDIA_ERR_ABORTED",MEDIA_ERR_NETWORK:"MEDIA_ERR_NETWORK",MEDIA_ERR_DECODE:"MEDIA_ERR_DECODE",MEDIA_ERR_SRC_NOT_SUPPORTED:"MEDIA_ERR_SRC_NOT_SUPPORTED",MEDIA_ERR_CODEC_NOT_SUPPORTED:"MEDIA_ERR_CODEC_NOT_SUPPORTED",MEDIA_ERR_URL_EMPTY:"MEDIA_ERR_URL_EMPTY"},Uh=(sh(_h={},Ah,{HLS:1100,DASH:1200}),sh(_h,Lh,2100),sh(_h,Ih,2101),sh(_h,wh,2103),sh(_h,Rh,2104),sh(_h,Dh,2116),sh(_h,xh,{FLV:3100,HLS:3200,MP4:3300,FMP4:3400,SIDX:3410}),sh(_h,Ph,{FMP4:4100,MP4:4200}),sh(_h,Ch,{MEDIA_ERR_ABORTED:5101,MEDIA_ERR_NETWORK:5102,MEDIA_ERR_DECODE:5103,MEDIA_ERR_SRC_NOT_SUPPORTED:5104,MEDIA_ERR_CODEC_NOT_SUPPORTED:5105,MEDIA_ERR_URL_EMPTY:5106,MSE_ADD_SB:5200,MSE_APPEND_BUFFER:5201,MSE_OTHER:5202,MSE_FULL:5203,MSE_HIJACK:5204,MSE_CHANGE_TYPE:5205,EME_HIJACK:5301}),sh(_h,Oh,{LICENSE:7100,CUSTOM_LICENSE:7200}),sh(_h,Mh,8e3),sh(_h,Fh,{NO_CANPLAY_ERROR:9001,BUFFERBREAK_ERROR:9002,WAITING_TIMEOUT_ERROR:9003}),_h),Bh=function(e){oh(t,e);var c=mh(t);function t(e,a,r,i,n){var f;return ih(this,t),(f=c.call(this,n||(null==r?void 0:r.message))).errorType=e===Ih?Lh:e,f.originError=r,f.ext=i,f.errorCode=Uh[e][a]||Uh[e],f.errorMessage=f.message,f.errorCode||(f.errorType=Mh,f.errorCode=Uh[f.errorType]),f}return fh(t,null,[{key:"create",value:function(e,c,a,r,i){return e instanceof t?e:(e instanceof Error&&(a=e,e=""),e||(e=Mh),new t(e,c,a,r,i))}},{key:"network",value:function(e){var c;return new t(null!=e&&e.isTimeout?Ih:Lh,null,e instanceof Error?e:null,{url:null==e?void 0:e.url,response:null==e?void 0:e.response,httpCode:null==e||null===(c=e.response)||void 0===c?void 0:c.status})}}]),t}(bh(Error)),$h={DEBUG:1,LOG:2,WARN:3,ERROR:4},jh=["Boolean","Number","String","Undefined","Null","Date","Object"],Gh=function(){function e(c,t){ih(this,e),this.name=c||"",this._prefix="[".concat(this.name,"]"),this.logCacheLevel=(null==t?void 0:t.logCacheLevel)||3,this.logMaxSize=(null==t?void 0:t.logMaxSize)||204800,this.logSize=0,this.logTextArray=[]}return fh(e,[{key:"debug",value:function(){for(var c,t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];this.logCache.apply(this,[$h.DEBUG].concat(a)),e.disabled||(c=console).debug.apply(c,["[".concat(Kh(),"]"),this._prefix].concat(a))}},{key:"log",value:function(){for(var c,t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];this.logCache.apply(this,[$h.LOG].concat(a)),e.disabled||(c=console).log.apply(c,["[".concat(Kh(),"]"),this._prefix].concat(a))}},{key:"warn",value:function(){for(var c,t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];this.logCache.apply(this,[$h.WARN].concat(a)),e.disabled||(c=console).warn.apply(c,["[".concat(Kh(),"]"),this._prefix].concat(a))}},{key:"error",value:function(){for(var c,t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];this.logCache.apply(this,[$h.ERROR].concat(a)),e.disabled||(c=console).error.apply(c,["[".concat(Kh(),"]"),this._prefix].concat(a))}},{key:"logCache",value:function(e){if(!(e<this.logCacheLevel)){var c="";try{for(var t=arguments.length,a=new Array(t>1?t-1:0),r=1;r<t;r++)a[r-1]=arguments[r];var i=a.map((function(e){return Hh(e)}));c="[".concat(Kh(),"]")+this._prefix+JSON.stringify(i)}catch(f){return}if(e>=this.logCacheLevel&&(this.logSize+=c.length,this.logTextArray.push(c)),this.logSize>this.logMaxSize){var n=this.logTextArray.shift();this.logSize-=n.length}}}},{key:"getLogCache",value:function(){var e=this.logTextArray.join("\n");return this.reset(),e}},{key:"reset",value:function(){this.logTextArray=[],this.logSize=0}},{key:"table",value:function(){var c;e.disabled||(console.group(this._prefix),(c=console).table.apply(c,arguments),console.groupEnd())}},{key:"setLogLevel",value:function(e){this.logCacheLevel=e}}],[{key:"enable",value:function(){e.disabled=!1}},{key:"disable",value:function(){e.disabled=!0}}]),e}();function Kh(){return(new Date).toLocaleString()}function Vh(e){if("object"!==th(e))return e;var c=Object.prototype.toString.call(e).slice(8,-1);switch(c){case"Array":case"Uint8Array":case"ArrayBuffer":return c+"["+e.length+"]";case"Object":return"{}";default:return c}}function Hh(e,c,t){t||(t=1),c||(c=2);var a={};if(!e||"object"!==th(e))return e;var r=Object.prototype.toString.call(e).slice(8,-1);if(!jh.includes(r))return r;if(!(t>c)){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t===c?a[i]=Vh(e[i]):"object"===th(e[i])?a[i]=Hh(e[i],c,t+1):a[i]=e[i]);return a}}function qh(){var e,c,t=new Promise((function(t,a){e=t,c=a}));return t.used=!1,t.resolve=function(){return t.used=!0,e.apply(void 0,arguments)},t.reject=function(){return t.used=!0,c.apply(void 0,arguments)},t}function Yh(){try{return parseInt(performance.now(),10)}catch(e){return(new Date).getTime()}}sh(Gh,"disabled",!0);var Wh=function(e){try{return JSON.stringify(e)}catch(c){return""}};function zh(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];try{return kh?e&&"undefined"!=typeof ManagedMediaSource?ManagedMediaSource:window.MediaSource:null}catch(c){}}function Xh(e){return/ManagedMediaSource/gi.test(Object.prototype.toString.call(e))}var Qh="appendBuffer",Jh="removeBuffer",Zh="updateDuration",eb=function(){function e(c,t){var a=this;ih(this,e),sh(this,"media",null),sh(this,"mediaSource",null),sh(this,"_openPromise",qh()),sh(this,"_queue",Object.create(null)),sh(this,"_sourceBuffer",Object.create(null)),sh(this,"_mseFullFlag",{}),sh(this,"_st",0),sh(this,"_opst",0),sh(this,"_logger",null),sh(this,"_config",null),sh(this,"_url",null),sh(this,"_onStartStreaming",(function(){a._logger.debug("startstreaming")})),sh(this,"_onEndStreaming",(function(){a._logger.debug("endstreaming")})),sh(this,"_onSBUpdateEnd",(function(e){var c=a._queue[e];if(c){var t=c[0];if((null==t?void 0:t.opName)!==Zh&&c.shift(),t){var r,i,n=Yh()-a._opst;a._logger.debug("UpdateEnd(".concat(e,"/").concat(t.opName,")"),Wh(function(e){var c=[];if(e instanceof TimeRanges)for(var t=0;t<e.length;t++)c.push({start:e.start(t),end:e.end(t)});return c}(null===(r=a._sourceBuffer[e])||void 0===r?void 0:r.buffered)),n,t.context),t.promise.resolve({name:t.opName,context:t.context,costtime:n});var f=null===(i=t.context)||void 0===i?void 0:i.callback;f&&"function"==typeof f&&f(t.context),a._startQueue(e)}}})),sh(this,"_onSBUpdateError",(function(e,c){var t=a._queue[e];if(t){var r=t[0];r&&(a._logger.error("UpdateError",e,r.opName,r.context),r.promise.reject(new Bh(Ch,Nh.MSE_APPEND_BUFFER,c)))}})),this._config=Object.assign(e.getDefaultConfig(),t),c&&this.bindMedia(c),this._logger=new Gh("MSE"),this._config.openLog&&Gh.enable()}var c,t,a;return fh(e,[{key:"isOpened",get:function(){var e;return"open"===(null===(e=this.mediaSource)||void 0===e?void 0:e.readyState)}},{key:"hasOpTasks",get:function(){var e=this,c=!1;return Object.keys(this._queue).forEach((function(t){var a=e._queue[t];Array.isArray(a)&&(c||(c=a.length>0))})),c}},{key:"url",get:function(){return this._url}},{key:"duration",get:function(){var e;return(null===(e=this.mediaSource)||void 0===e?void 0:e.duration)||-1}},{key:"isEnded",get:function(){return!!this.mediaSource&&"ended"===this.mediaSource.readyState}},{key:"streaming",get:function(){return!Xh(this.mediaSource)||this.mediaSource.streaming}},{key:"isFull",value:function(c){return c?this._mseFullFlag[c]:this._mseFullFlag[e.VIDEO]}},{key:"updateDuration",value:function(e){var c=this,t=this.mediaSource&&this.mediaSource.duration>e;if(this.mediaSource&&this.mediaSource.duration>e){var a=0;if(Object.keys(this._sourceBuffer).forEach((function(e){try{a=Math.max(c.bufferEnd(e)||0,a)}catch(t){}})),e<a)return Promise.resolve()}return this._enqueueBlockingOp((function(){c.isEnded?c._logger.debug("setDuration but ended"):c.mediaSource&&(c.mediaSource.duration=e,c._logger.debug("setDuration",e))}),Zh,{isReduceDuration:t})}},{key:"open",value:function(){var e=this;if(this._openPromise.used&&!this.isOpened&&this.mediaSource){var c=this.mediaSource;c.addEventListener("sourceopen",(function t(){var a=Yh()-e._st;e._logger.debug("sourceopen",a),c.removeEventListener("sourceopen",t),e._openPromise.resolve({costtime:a})})),this._openPromise=qh()}return this._openPromise}},{key:"bindMedia",value:(a=rh(ch().mark((function e(c){var t,a,r,i,n=this;return ch().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.mediaSource&&!this.media){e.next=3;break}return e.next=3,this.unbindMedia();case 3:if(t=zh(this._config.preferMMS),c&&t){e.next=6;break}throw new Error("Param media or MediaSource does not exist");case 6:return this.media=c,a=this.mediaSource=new t,r=Xh(a),this._st=Yh(),i=function e(){var t=Yh()-n._st;n._logger.debug("sourceopen"),a.removeEventListener("sourceopen",e),URL.revokeObjectURL(c.src),n._openPromise.resolve({costtime:t})},a.addEventListener("sourceopen",i),r&&(a.addEventListener("startstreaming",this._onStartStreaming),a.addEventListener("endstreaming",this._onEndStreaming)),this._url=URL.createObjectURL(a),c.src=this._url,c.disableRemotePlayback=r,e.abrupt("return",this._openPromise);case 17:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"unbindMedia",value:(t=rh(ch().mark((function e(){var c,t,a,r=this;return ch().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._openPromise.used||this._openPromise.resolve(),c=this.mediaSource){if(Object.keys(this._queue).forEach((function(e){var c=r._queue[e];c&&c.forEach((function(e){var c,t;return null===(c=e.promise)||void 0===c||null===(t=c.resolve)||void 0===t?void 0:t.call(c)}))})),t=!!this.media&&this.media.readyState>=1,a="open"===c.readyState,t&&a)try{c.endOfStream()}catch(i){}Object.keys(this._sourceBuffer).forEach((function(e){try{c.removeSourceBuffer(r._sourceBuffer[e])}catch(i){}})),Xh(c)&&(c.removeEventListener("startstreaming",this._onStartStreaming),c.removeEventListener("endstreaming",this._onEndStreaming))}if(this.media){this.media.disableRemotePlayback=!1,this.media.removeAttribute("src");try{this.media.load()}catch(i){}this.media=null}this.mediaSource=null,this._openPromise=qh(),this._queue=Object.create(null),this._sourceBuffer=Object.create(null);case 8:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"createSource",value:function(e,c){if(!this._sourceBuffer[e]&&this.mediaSource){var t;try{t=this._sourceBuffer[e]=this.mediaSource.addSourceBuffer(c)}catch(a){throw new Bh(Ch,Nh.MSE_ADD_SB,a)}t.mimeType=c,t.addEventListener("updateend",this._onSBUpdateEnd.bind(this,e)),t.addEventListener("error",this._onSBUpdateError.bind(this,e))}}},{key:"changeType",value:function(e,c){var t=this,a=this._sourceBuffer[e];return this.mediaSource&&a&&a.mimeType!==c?"function"!=typeof a.changeType?Promise.reject(new Bh(Ch,Nh.MSE_CHANGE_TYPE,new Error("changeType is not a function"))):this._enqueueOp(e,(function(){try{a.changeType(c)}catch(r){throw new Bh(Ch,Nh.MSE_CHANGE_TYPE,r)}a.mimeType=c,t._onSBUpdateEnd(e)}),"changeType",{mimeType:c}):Promise.resolve()}},{key:"createOrChangeSource",value:function(e,c){return this.createSource(e,c),this.changeType(e,c)}},{key:"append",value:function(e,c,t){var a=this;return c&&c.byteLength&&this._sourceBuffer[e]?this._enqueueOp(e,(function(){var r;a.mediaSource&&!a.media.error&&(a._logger.debug("MSE APPEND START",t),a._opst=Yh(),null===(r=a._sourceBuffer[e])||void 0===r||r.appendBuffer(c))}),Qh,t):Promise.resolve()}},{key:"remove",value:function(e,c,t,a){var r=this,i=!1;return this._mseFullFlag[e]&&(i=!0),this._enqueueOp(e,(function(){if(r.mediaSource&&!r.media.error){var i=r._sourceBuffer[e];c>=t||!i?r._onSBUpdateEnd(e):(r._opst=Yh(),r._logger.debug("MSE REMOVE START",e,c,t,a),i.remove(c,t))}}),Jh,a,i)}},{key:"clearBuffer",value:function(e,c){var t,a=this;return Object.keys(this._sourceBuffer).forEach((function(r){t=a.remove(r,e,c)})),t||Promise.resolve()}},{key:"clearAllBuffer",value:function(){var e,c=this;return Object.keys(this._sourceBuffer).forEach((function(t){var a=c._sourceBuffer[t];e=c.remove(t,0,Th.end(Th.get(a)))})),e}},{key:"clearOpQueues",value:function(e,c){var t;this._logger.debug("MSE clearOpQueue START");var a=this._queue[e];if(c&&a)this._queue[e]=[];else if(a&&a[e]&&!(a.length<5)){var r=[];a.forEach((function(e){e.context&&e.context.isinit&&r.push(e)})),this._queue[e]=a.slice(0,2),r.length>0&&(t=this._queue[e]).push.apply(t,r)}}},{key:"endOfStream",value:function(e){var c=this;return this.mediaSource&&"open"===this.mediaSource.readyState?this._enqueueBlockingOp((function(){var t=c.mediaSource;t&&"open"===t.readyState&&(c._logger.debug("MSE endOfStream START"),e?t.endOfStream(e):t.endOfStream())}),"endOfStream"):Promise.resolve()}},{key:"setLiveSeekableRange",value:function(e,c){var t=this.mediaSource;e<0||c<e||null==t||!t.setLiveSeekableRange||"open"!==t.readyState||t.setLiveSeekableRange(e,c)}},{key:"getSourceBuffer",value:function(e){return this._sourceBuffer[e]}},{key:"buffered",value:function(e){return Th.get(this._sourceBuffer[e])}},{key:"bufferStart",value:function(e){return Th.start(this.buffered(e))}},{key:"bufferEnd",value:function(e){return Th.end(this.buffered(e))}},{key:"_enqueueOp",value:function(e,c,t,a,r){var i=this;if(!this.mediaSource)return Promise.resolve();var n=this._queue[e]=this._queue[e]||[],f={exec:c,promise:qh(),opName:t,context:a};return r?(n.splice(0,0,f),this._mseFullFlag[e]=!1,this._startQueue(e)):n.push(f),this.isOpened||this.isEnded?1===n.length&&this._startQueue(e):this._openPromise.then((function(){1===n.length&&i._startQueue(e)})),f.promise}},{key:"_enqueueBlockingOp",value:(c=rh(ch().mark((function e(c,t,a){var r,i,n=this;return ch().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.mediaSource){e.next=2;break}return e.abrupt("return",Promise.resolve());case 2:if((r=Object.keys(this._sourceBuffer)).length){e.next=5;break}return e.abrupt("return",c());case 5:return i=[],r.forEach((function(e){var c=n._queue[e],r=qh();i.push(r),c.push({exec:function(){r.resolve()},promise:r,opName:t,context:a}),1===c.length&&n._startQueue(e)})),e.abrupt("return",Promise.all(i).then((function(){try{return c()}finally{r.forEach((function(e){var c=n._queue[e],t=n._sourceBuffer[e];null==c||c.shift(),t&&t.updating||n._startQueue(e)}))}})));case 8:case"end":return e.stop()}}),e,this)}))),function(e,t,a){return c.apply(this,arguments)})},{key:"_startQueue",value:function(e){var c=this._queue[e];if(c){var t=c[0];if(t&&!this._mseFullFlag[e])try{t.exec()}catch(i){var a,r;if(i&&i.message&&i.message.indexOf("SourceBuffer is full")>=0)this._mseFullFlag[e]=!0,t.context&&"object"===th(t.context)&&(t.context.isFull=!0),this._logger.error("[MSE error], context,",t.context," ,name,",t.opName,",err,SourceBuffer is full"),null==t||null===(a=t.promise)||void 0===a||a.reject(new Bh(Ch,Nh.MSE_FULL,i));else this._logger.error(i),null==t||null===(r=t.promise)||void 0===r||r.reject(i.constructor===Bh?i:new Bh(Ch,Nh.MSE_OTHER,i)),c.shift(),this._startQueue(e)}}}},{key:"setTimeoffset",value:function(e,c,t){var a=this;return this._enqueueOp(e,(function(){c<0&&(c+=.001),a._sourceBuffer[e].timestampOffset=c,a._onSBUpdateEnd(e)}),"setTimeoffset",t)}},{key:"abort",value:function(e,c){var t=this;return this.isOpened?this._enqueueOp(e,(function(){t._sourceBuffer[e].abort(),t._onSBUpdateEnd(e)}),"abort",c):Promise.resolve()}}],[{key:"isSupported",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'video/mp4; codecs="avc1.42E01E,mp4a.40.2"',c=zh();if(!c)return!1;try{return c.isTypeSupported(e)}catch(t){return this._logger.error(e,t),!1}}},{key:"isMMSOnly",value:function(){return"undefined"!=typeof ManagedMediaSource&&"undefined"==typeof MediaSource}},{key:"getDefaultConfig",value:function(){return{openLog:!1,preferMMS:!1}}}]),e}();sh(eb,"VIDEO","video"),sh(eb,"AUDIO","audio");var cb="fetch",tb="xhr",ab="arraybuffer",rb="text",ib="json",nb=function(e){oh(t,e);var c=mh(t);function t(e,a,r,i){var n;return ih(this,t),sh(gh(n=c.call(this,i)),"retryCount",0),sh(gh(n),"isTimeout",!1),sh(gh(n),"loaderType",cb),sh(gh(n),"startTime",0),sh(gh(n),"endTime",0),sh(gh(n),"options",{}),n.url=e,n.request=a,n.response=r,n}return fh(t)}(bh(Error)),fb=Object.prototype.toString;function sb(e){if("[object Object]"!==fb.call(e))return!1;var c=Object.getPrototypeOf(e);return null===c||c===Object.prototype}function ob(e){if(e&&null!==e[0]&&void 0!==e[0]&&(0!==e[0]||null!==e[1]&&void 0!==e[1])){var c="bytes="+e[0]+"-";return e[1]&&(c+=e[1]),c}}function lb(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function db(e,c){if(e){if(!c)return e;var t,a=Object.keys(c).map((function(e){if(null!=(t=c[e]))return Array.isArray(t)?e+="[]":t=[t],t.map((function(c){var t;return t=c,"[object Date]"===fb.call(t)?c=c.toISOString():function(e){return null!==e&&"object"===th(e)}(c)&&(c=JSON.stringify(c)),"".concat(lb(e),"=").concat(lb(c))})).join("&")})).filter(Boolean).join("&");if(a){var r=e.indexOf("#");-1!==r&&(e=e.slice(0,r)),e+=(-1===e.indexOf("?")?"?":"&")+a}return e}}function ub(e,c,t,a,r,i,n,f,s,o,l){return r=null!=r?parseFloat(r):null,a=parseInt(a||"0",10),Number.isNaN(a)&&(a=0),{data:e,done:c,options:{range:s,vid:o,index:f,contentLength:a,age:r,startTime:i,firstByteTime:n,endTime:Date.now(),priOptions:l},response:t}}function hb(e,c){return Math.round(8*e*1e3/c/1024)}var bb={ERROR:"error",TTFB:"core.ttfb",LOAD_START:"core.loadstart",LOAD_RESPONSE_HEADERS:"core.loadresponseheaders",LOAD_COMPLETE:"core.loadcomplete",LOAD_RETRY:"core.loadretry",SOURCEBUFFER_CREATED:"core.sourcebuffercreated",MEDIASOURCE_OPENED:"core.mediasourceopened",ANALYZE_DURATION_EXCEEDED:"core.analyzedurationexceeded",APPEND_BUFFER:"core.appendbuffer",REMOVE_BUFFER:"core.removebuffer",BUFFEREOS:"core.buffereos",KEYFRAME:"core.keyframe",CHASEFRAME:"core.chaseframe",METADATA_PARSED:"core.metadataparsed",SEI:"core.sei",SEI_IN_TIME:"core.seiintime",FLV_SCRIPT_DATA:"core.flvscriptdata",LOWDECODE:"core.lowdecode",SWITCH_URL_SUCCESS:"core.switchurlsuccess",SWITCH_URL_FAILED:"core.switchurlfailed",SPEED:"core.speed",HLS_MANIFEST_LOADED:"core.hlsmanifestloaded",HLS_LEVEL_LOADED:"core.hlslevelloaded",DEMUXED_TRACK:"core.demuxedtrack",STREAM_EXCEPTION:"core.streamexception",LARGE_AV_FIRST_FRAME_GAP_DETECT:"LARGE_AV_FIRST_FRAME_GAP_DETECT",LARGE_VIDEO_DTS_GAP_DETECT:"LARGE_VIDEO_DTS_GAP_DETECT",LARGE_AUDIO_DTS_GAP_DETECT:"LARGE_AUDIO_DTS_GAP_DETECT",AUDIO_GAP_DETECT:"AUDIO_GAP_DETECT",AUDIO_OVERLAP_DETECT:"AUDIO_OVERLAP_DETECT",MAX_DTS_DELTA_WITH_NEXT_SEGMENT_DETECT:"MAX_DTS_DELTA_WITH_NEXT_SEGMENT_DETECT",REAL_TIME_SPEED:"real_time_speed"},pb=2097152,gb=function(e){oh(a,e);var c,t=mh(a);function a(){var e;return ih(this,a),sh(gh(e=t.call(this)),"_abortController",null),sh(gh(e),"_timeoutTimer",null),sh(gh(e),"_reader",null),sh(gh(e),"_response",null),sh(gh(e),"_aborted",!1),sh(gh(e),"_index",-1),sh(gh(e),"_range",null),sh(gh(e),"_receivedLength",0),sh(gh(e),"_running",!1),sh(gh(e),"_logger",null),sh(gh(e),"_vid",""),sh(gh(e),"_onProcessMinLen",0),sh(gh(e),"_onCancel",null),sh(gh(e),"_priOptions",null),e}return fh(a,[{key:"load",value:function(e){var c,t=this,a=e.url,r=e.vid,i=e.timeout,n=e.responseType,f=e.onProgress,s=e.index,o=e.onTimeout,l=e.onCancel,d=e.range,u=e.transformResponse,h=e.request,b=e.params,p=e.logger,g=e.method,m=e.headers,v=e.body,y=e.mode,E=e.credentials,S=e.cache,_=e.redirect,T=e.referrer,k=e.referrerPolicy,A=e.onProcessMinLen,L=e.priOptions;this._logger=p,this._aborted=!1,this._onProcessMinLen=A,this._onCancel=l,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._index=s,this._range=d||[0,0],this._vid=r||a,this._priOptions=L||{};var I={method:g,headers:m,body:v,mode:y,credentials:E,cache:S,redirect:_,referrer:T,referrerPolicy:k,signal:null===(c=this._abortController)||void 0===c?void 0:c.signal},w=!1;clearTimeout(this._timeoutTimer),a=db(a,b);var R=ob(d);R&&(m=h?h.headers:I.headers=I.headers||(Headers?new Headers:{}),Headers&&m instanceof Headers?m.append("Range",R):m.Range=R),i&&(this._timeoutTimer=setTimeout((function(){if(w=!0,t.cancel(),o){var e=new nb(a,I,null,"timeout");e.isTimeout=!0,o(e,{index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions})}}),i));var D=Date.now();return this._logger.debug("[fetch load start], index,",s,",range,",d),new Promise((function(e,c){fetch(h||a,h?void 0:I).then(function(){var r=rh(ch().mark((function r(i){var o,l,h,b;return ch().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(clearTimeout(t._timeoutTimer),t._response=i,!t._aborted&&t._running){r.next=4;break}return r.abrupt("return");case 4:if(u&&(i=u(i,a)||i),i.ok){r.next=7;break}throw new nb(a,I,i,"bad network response");case 7:if(o=Date.now(),n!==rb){r.next=15;break}return r.next=11,i.text();case 11:l=r.sent,t._running=!1,r.next=37;break;case 15:if(n!==ib){r.next=22;break}return r.next=18,i.json();case 18:l=r.sent,t._running=!1,r.next=37;break;case 22:if(!f){r.next=29;break}return t.resolve=e,t.reject=c,t._loadChunk(i,f,D,o),r.abrupt("return");case 29:return r.next=31,i.arrayBuffer();case 31:l=r.sent,l=new Uint8Array(l),t._running=!1,h=Date.now()-D,b=hb(l.byteLength,h),t.emit(bb.REAL_TIME_SPEED,{speed:b,len:l.byteLength,time:h,vid:t._vid,index:t._index,range:t._range,priOptions:t._priOptions});case 37:t._logger.debug("[fetch load end], index,",s,",range,",d),e(ub(l,!0,i,i.headers.get("Content-Length"),i.headers.get("age"),D,o,s,d,t._vid,t._priOptions));case 39:case"end":return r.stop()}}),r)})));return function(e){return r.apply(this,arguments)}}()).catch((function(e){var r;clearTimeout(t._timeoutTimer),t._running=!1,t._aborted&&!w||((e=e instanceof nb?e:new nb(a,I,null,null===(r=e)||void 0===r?void 0:r.message)).startTime=D,e.endTime=Date.now(),e.isTimeout=w,e.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},c(e))}))}))}},{key:"cancel",value:(c=rh(ch().mark((function e(){return ch().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._aborted){e.next=2;break}return e.abrupt("return");case 2:if(this._aborted=!0,this._running=!1,!this._response){e.next=14;break}if(e.prev=5,!this._reader){e.next=9;break}return e.next=9,this._reader.cancel();case 9:e.next=13;break;case 11:e.prev=11,e.t0=e.catch(5);case 13:this._response=this._reader=null;case 14:if(this._abortController){try{this._abortController.abort()}catch(c){}this._abortController=null}this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions});case 16:case"end":return e.stop()}}),e,this,[[5,11]])}))),function(){return c.apply(this,arguments)})},{key:"_loadChunk",value:function(e,c,t,a){var r=this;if(!e.body||!e.body.getReader){this._running=!1;var i=new nb(e.url,"",e,"onProgress of bad response.body.getReader");return i.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(i)}this._onProcessMinLen>0&&(this._cache=new Uint8Array(pb),this._writeIdx=0);var n,f,s,o=this._reader=e.body.getReader(),l=function(){var i=rh(ch().mark((function i(){var d,u,h,b,p,g,m,v;return ch().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return f=Date.now(),i.prev=1,i.next=4,o.read();case 4:n=i.sent,s=Date.now(),i.next=13;break;case 8:return i.prev=8,i.t0=i.catch(1),s=Date.now(),r._aborted||(r._running=!1,i.t0.options={index:r._index,range:r._range,vid:r._vid,priOptions:r._priOptions},r.reject(i.t0)),i.abrupt("return");case 13:if(u=(null===(d=r._range)||void 0===d?void 0:d.length)>0?r._range[0]:0,h=u+r._receivedLength,!r._aborted){i.next=19;break}return r._running=!1,c(void 0,!1,{range:[h,h],vid:r._vid,index:r._index,startTime:f,endTime:s,st:t,firstByteTime:a,priOptions:r._priOptions},e),i.abrupt("return");case 19:b=n.value?n.value.byteLength:0,r._receivedLength+=b,r._logger.debug("【fetchLoader,onProgress call】,task,",r._range,", start,",h,", end,",u+r._receivedLength,", done,",n.done),r._onProcessMinLen>0?r._writeIdx+b>=r._onProcessMinLen||n.done?((p=new Uint8Array(r._writeIdx+b)).set(r._cache.slice(0,r._writeIdx),0),b>0&&p.set(n.value,r._writeIdx),r._writeIdx=0,r._logger.debug("【fetchLoader,onProgress enough】,done,",n.done,",len,",p.byteLength,", writeIdx,",r._writeIdx)):b>0&&r._writeIdx+b<pb?(r._cache.set(n.value,r._writeIdx),r._writeIdx+=b,r._logger.debug("【fetchLoader,onProgress cache】,len,",b,", writeIdx,",r._writeIdx)):b>0&&(g=new Uint8Array(r._writeIdx+b+2048),r._logger.debug("【fetchLoader,onProgress extra start】,size,",r._writeIdx+b+2048,", datalen,",b,", writeIdx,",r._writeIdx),g.set(r._cache.slice(0,r._writeIdx),0),b>0&&g.set(n.value,r._writeIdx),r._writeIdx+=b,delete r._cache,r._cache=g,r._logger.debug("【fetchLoader,onProgress extra end】,len,",b,", writeIdx,",r._writeIdx)):p=n.value,(p&&p.byteLength>0||n.done)&&c(p,n.done,{range:[r._range[0]+r._receivedLength-(p?p.byteLength:0),r._range[0]+r._receivedLength],vid:r._vid,index:r._index,startTime:f,endTime:s,st:t,firstByteTime:a,priOptions:r._priOptions},e),n.done?(m=Date.now()-t,v=hb(r._receivedLength,m),r.emit(bb.REAL_TIME_SPEED,{speed:v,len:r._receivedLength,time:m,vid:r._vid,index:r._index,range:r._range,priOptions:r._priOptions}),r._running=!1,r._logger.debug("[fetchLoader onProgress end],task,",r._range,",done,",n.done),r.resolve(ub(n,!0,e,e.headers.get("Content-Length"),e.headers.get("age"),t,a,r._index,r._range,r._vid,r._priOptions))):l();case 25:case"end":return i.stop()}}),i,null,[[1,8]])})));return function(){return i.apply(this,arguments)}}();l()}},{key:"receiveLen",get:function(){return this._receivedLength}},{key:"running",get:function(){return this._running},set:function(e){this._running=e}}],[{key:"isSupported",value:function(){return!("undefined"==typeof fetch)}}]),a}(Sl);var mb=function(e){oh(t,e);var c=mh(t);function t(){var e;return ih(this,t),sh(gh(e=c.call(this)),"_xhr",null),sh(gh(e),"_aborted",!1),sh(gh(e),"_timeoutTimer",null),sh(gh(e),"_range",null),sh(gh(e),"_receivedLength",0),sh(gh(e),"_url",null),sh(gh(e),"_onProgress",null),sh(gh(e),"_index",-1),sh(gh(e),"_headers",null),sh(gh(e),"_currentChunkSizeKB",384),sh(gh(e),"_timeout",null),sh(gh(e),"_xhr",null),sh(gh(e),"_withCredentials",null),sh(gh(e),"_startTime",-1),sh(gh(e),"_loadCompleteResolve",null),sh(gh(e),"_loadCompleteReject",null),sh(gh(e),"_runing",!1),sh(gh(e),"_logger",!1),sh(gh(e),"_vid",""),sh(gh(e),"_responseType",void 0),sh(gh(e),"_credentials",void 0),sh(gh(e),"_method",void 0),sh(gh(e),"_transformResponse",void 0),sh(gh(e),"_firstRtt",void 0),sh(gh(e),"_onCancel",null),sh(gh(e),"_priOptions",null),e}return fh(t,[{key:"load",value:function(e){var c=this;clearTimeout(this._timeoutTimer),this._logger=e.logger,this._range=e.range,this._onProgress=e.onProgress,this._index=e.index,this._headers=e.headers,this._withCredentials="include"===e.credentials||"same-origin"===e.credentials,this._body=e.body||null,e.method&&(this._method=e.method),this._timeout=e.timeout||null,this._runing=!0,this._vid=e.vid||e.url,this._responseType=e.responseType,this._firstRtt=-1,this._onTimeout=e.onTimeout,this._onCancel=e.onCancel,this._request=e.request,this._priOptions=e.priOptions||{},this._logger.debug("【xhrLoader task】, range",this._range),this._url=db(e.url,e.params);var t=Date.now();return new Promise((function(e,t){c._loadCompleteResolve=e,c._loadCompleteReject=t,c._startLoad()})).catch((function(e){if(clearTimeout(c._timeoutTimer),c._runing=!1,!c._aborted)throw(e=e instanceof nb?e:new nb(c._url,c._request)).startTime=t,e.endTime=Date.now(),e.options={index:c._index,vid:c._vid,priOptions:c._priOptions},e}))}},{key:"_startLoad",value:function(){var e=null;if(this._responseType===ab&&this._range&&this._range.length>1)if(this._onProgress){this._firstRtt=-1;var c=1024*this._currentChunkSizeKB,t=this._range[0]+this._receivedLength,a=this._range[1];c<this._range[1]-t&&(a=t+c),e=[t,a],this._logger.debug("[xhr_loader->],tast :",this._range,", SubRange, ",e)}else e=this._range,this._logger.debug("[xhr_loader->],tast :",this._range,", allRange, ",e);this._internalOpen(e)}},{key:"_internalOpen",value:function(e){var c=this;try{this._startTime=Date.now();var t=this._xhr=new XMLHttpRequest;t.open(this._method||"GET",this._url,!0),t.responseType=this._responseType,this._timeout&&(t.timeout=this._timeout),t.withCredentials=this._withCredentials,t.onload=this._onLoad.bind(this),t.onreadystatechange=this._onReadyStatechange.bind(this),t.onerror=function(e){var t,a,r;c._running=!1;var i=new nb(c._url,c._request,null==e||null===(t=e.currentTarget)||void 0===t?void 0:t.response,"xhr.onerror.status:"+(null==e||null===(a=e.currentTarget)||void 0===a?void 0:a.status)+",statusText,"+(null==e||null===(r=e.currentTarget)||void 0===r?void 0:r.statusText));i.options={index:c._index,range:c._range,vid:c._vid,priOptions:c._priOptions},c._loadCompleteReject(i)},t.ontimeout=function(e){c.cancel();var t=new nb(c._url,c._request,{status:408},"timeout");c._onTimeout&&(t.isTimeout=!0,c._onTimeout(t,{index:c._index,range:c._range,vid:c._vid,priOptions:c._priOptions})),t.options={index:c._index,range:c._range,vid:c._vid,priOptions:c._priOptions},c._loadCompleteReject(t)};var a=this._headers||{},r=ob(e);r&&(a.Range=r),a&&Object.keys(a).forEach((function(e){t.setRequestHeader(e,a[e])})),this._logger.debug("[xhr.send->] tast,",this._range,",load sub range, ",e),t.send(this._body)}catch(i){i.options={index:this._index,range:e,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(i)}}},{key:"_onReadyStatechange",value:function(e){2===e.target.readyState&&this._firstRtt<0&&(this._firstRtt=Date.now())}},{key:"_onLoad",value:function(e){var c,t=e.target.status;if(t<200||t>299){var a=new nb(this._url,null,eh(eh({},e.target.response),{},{status:t}),"bad response,status:"+t);return a.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(a)}var r,i=null,n=!1,f=(null===(c=this._range)||void 0===c?void 0:c.length)>0?this._range[0]:0;if(this._responseType===ab){var s,o=new Uint8Array(e.target.response);if(r=f+this._receivedLength,o&&o.byteLength>0){this._receivedLength+=o.byteLength;var l=Date.now()-this._startTime,d=hb(this._receivedLength,l);this.emit(bb.REAL_TIME_SPEED,{speed:d,len:this._receivedLength,time:l,vid:this._vid,index:this._index,range:[r,f+this._receivedLength],priOptions:this._priOptions})}i=o,n=!((null===(s=this._range)||void 0===s?void 0:s.length)>1&&this._range[1]&&this._receivedLength<this._range[1]-this._range[0]),this._logger.debug("[xhr load done->], tast :",this._range,", start",r,"end ",f+this._receivedLength,",dataLen,",o?o.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",n)}else n=!0,i=e.target.response;var u={ok:t>=200&&t<300,status:t,statusText:this._xhr.statusText,url:this._xhr.responseURL,headers:this._getHeaders(this._xhr),body:this._xhr.response};this._transformResponse&&(u=this._transformResponse(u,this._url)||u),this._onProgress&&this._onProgress(i,n,{index:this._index,vid:this._vid,range:[r,f+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},u),n?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(ub(this._onProgress?null:i,n,u,u.headers["content-length"],u.headers.age,this._startTime,this._firstRtt,this._index,this._range,this._vid,this._priOptions))):this._startLoad()}},{key:"cancel",value:function(){if(!this._aborted)return this._aborted=!0,this._runing=!1,vh(lh(t.prototype),"removeAllListeners",this).call(this),this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions}),this._xhr?this._xhr.abort():void 0}},{key:"receiveLen",get:function(){return this._receivedLength}},{key:"running",get:function(){return this._running},set:function(e){this._running=e}},{key:"_getHeaders",value:function(e){var c,t={},a=Eh(e.getAllResponseHeaders().trim().split("\r\n"));try{for(a.s();!(c=a.n()).done;){var r=c.value.split(": ");t[r[0].toLowerCase()]=r.slice(1).join(": ")}}catch(nm){a.e(nm)}finally{a.f()}return t}}],[{key:"isSupported",value:function(){return"undefined"!=typeof XMLHttpRequest}}]),t}(Sl),vb=["retry","retryDelay","onRetryError","transformError"],yb=function(){function e(c,t){ih(this,e),this.promise=qh(),this.alive=!!t.onProgress,!t.logger&&(t.logger=new Gh("Loader")),this._loaderType=c,this._loader=c===cb&&"undefined"!=typeof fetch?new gb:new mb,this._config=t,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=t.retryCheckFunc,this._logger=t.logger}var c;return fh(e,[{key:"exec",value:function(){var e=this,c=this._config,t=c.retry,a=c.retryDelay,r=c.onRetryError,i=c.transformError,n=ph(c,vb),f=function(){var c=rh(ch().mark((function c(){var s,o,l;return ch().wrap((function(c){for(;;)switch(c.prev=c.next){case 0:return c.prev=0,c.next=3,e._loader.load(n);case 3:s=c.sent,e.promise.resolve(s),c.next=27;break;case 7:if(c.prev=7,c.t0=c.catch(0),e._loader.running=!1,e._logger.debug("[task request catch err]",c.t0),!e._canceled){c.next=13;break}return c.abrupt("return");case 13:if(c.t0.loaderType=e._loaderType,c.t0.retryCount=e._retryCount,o=c.t0,i&&(o=i(o)||o),r&&e._retryCount>0&&r(o,e._retryCount,{index:n.index,vid:n.vid,range:n.range,priOptions:n.priOptions}),e._retryCount++,l=!0,e._retryCheckFunc&&(l=e._retryCheckFunc(c.t0)),!(l&&e._retryCount<=t)){c.next=26;break}return clearTimeout(e._retryTimer),e._logger.debug("[task request setTimeout],retry",e._retryCount,",retry range,",n.range),e._retryTimer=setTimeout(f,a),c.abrupt("return");case 26:e.promise.reject(o);case 27:case"end":return c.stop()}}),c,null,[[0,7]])})));return function(){return c.apply(this,arguments)}}();return f(),this.promise}},{key:"cancel",value:(c=rh(ch().mark((function e(){return ch().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return clearTimeout(this._retryTimer),this._canceled=!0,this._loader.running=!1,e.abrupt("return",this._loader.cancel());case 4:case"end":return e.stop()}}),e,this)}))),function(){return c.apply(this,arguments)})},{key:"running",get:function(){return this._loader&&this._loader.running}},{key:"loader",get:function(){return this._loader}}]),e}();function Eb(){for(var e=arguments.length,c=new Array(e),t=0;t<e;t++)c[t]=arguments[t];if((c=c.filter(Boolean)).length<2)return c[0];var a=new Uint8Array(c.reduce((function(e,c){return e+c.byteLength}),0)),r=0;return c.forEach((function(e){a.set(e,r),r+=e.byteLength})),a}function Sb(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(c){return setTimeout(c,e)}))}var _b=function(e){oh(a,e);var c,t=mh(a);function a(e){var c;return ih(this,a),sh(gh(c=t.call(this,e)),"type",cb),sh(gh(c),"_queue",[]),sh(gh(c),"_alive",[]),sh(gh(c),"_currentTask",null),sh(gh(c),"_finnalUrl",""),sh(gh(c),"_config",void 0),c._config=function(e){return eh({loaderType:cb,retry:0,retryDelay:0,timeout:0,request:null,onTimeout:void 0,onProgress:void 0,onRetryError:void 0,transformRequest:void 0,transformResponse:void 0,transformError:void 0,responseType:rb,range:void 0,url:"",params:void 0,method:"GET",headers:{},body:void 0,mode:void 0,credentials:void 0,cache:void 0,redirect:void 0,referrer:void 0,referrerPolicy:void 0,integrity:void 0,onProcessMinLen:0},e)}(e),c._config.loaderType!==tb&&gb.isSupported()||(c.type=tb),c.log=e.logger,c}return fh(a,[{key:"isFetch",value:function(){return this.type===cb}},{key:"load",value:function(e){var c=this,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"string"!=typeof e&&e?t=e:t.url=e||t.url||this._config.url,(t=Object.assign({},this._config,t)).params&&(t.params=Object.assign({},t.params)),t.headers&&sb(t.headers)&&(t.headers=Object.assign({},t.headers)),t.body&&sb(t.body)&&(t.body=Object.assign({},t.body)),t.transformRequest&&(t=t.transformRequest(t)||t),t.logger=this.log;var a=new yb(this.type,t);return a.loader.on(bb.REAL_TIME_SPEED,(function(e){c.emit(bb.REAL_TIME_SPEED,e)})),this._queue.push(a),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),a.promise}},{key:"cancel",value:(c=rh(ch().mark((function e(){var c;return ch().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c=this._queue.map((function(e){return e.cancel()})).concat(this._alive.map((function(e){return e.cancel()}))),this._currentTask&&c.push(this._currentTask.cancel()),this._queue=[],this._alive=[],e.next=6,Promise.all(c);case 6:return e.next=8,Sb();case 8:case"end":return e.stop()}}),e,this)}))),function(){return c.apply(this,arguments)})},{key:"_processTask",value:function(){var e=this;if(this._currentTask=this._queue.shift(),this._currentTask){this._currentTask.alive&&this._alive.push(this._currentTask);var c=this._currentTask.exec().catch((function(e){}));c&&"function"==typeof c.finally&&c.finally((function(){var c,t;null!==(c=e._currentTask)&&void 0!==c&&c.alive&&(null===(t=e._alive)||void 0===t?void 0:t.length)>0&&(e._alive=e._alive.filter((function(c){return c&&c!==e._currentTask}))),e._processTask()}))}}}],[{key:"isFetchSupport",value:function(){return gb.isSupported()}}]),a}(Sl),Tb=function(){function e(){ih(this,e),sh(this,"_prevCurrentTime",0)}return fh(e,[{key:"do",value:function(e){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,t=arguments.length>2?arguments[2]:void 0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;if(e){var r=e.currentTime,i=0;if(this._prevCurrentTime===r){var n=Th.info(Th.get(e),r);if(!n.buffers.length)return;t&&n.nextStart||n.nextStart&&n.nextStart-r<c?i=n.nextStart+.1:n.end&&n.end-r>a&&!e.seeking&&(i=r+.1)}this._prevCurrentTime=r,i&&r!==i&&(e.currentTime=i)}}}]),e}(),kb=function(){function e(c){var t=this;ih(this,e),sh(this,"_seiSet",new Set),this.emitter=c,c.on(bb.SEI,(function(e){e&&t._seiSet.add(e)}))}return fh(e,[{key:"throw",value:function(e,c){var t=this;if(null!=e&&this._seiSet.size){var a=e-.2,r=e+.2,i=[];this._seiSet.forEach((function(e){e.time>=a&&e.time<=r&&i.push(e)})),i.forEach((function(e){t._seiSet.delete(e),t.emitter.emit(bb.SEI_IN_TIME,e)})),c&&this._seiSet.forEach((function(c){c.time<e-5&&t._seiSet.delete(c)}))}}},{key:"reset",value:function(){this._seiSet.clear()}}]),e}(),Ab=function(){function e(c){ih(this,e),sh(this,"_chunkSpeed",0),sh(this,"_chunkCache",[]),sh(this,"_speeds",[]),sh(this,"_totalSize",0),sh(this,"_totalCost",0),this._opts=c||{}}return fh(e,[{key:"addRecord",value:function(e,c){e&&c&&(this._speeds.push(8e3*e/c),this._speeds=this._speeds.slice(-3))}},{key:"addChunkRecord",value:function(e,c){var t,a;if(e&&c&&!(e<((null===(t=this._opts)||void 0===t?void 0:t.skipChunkSize)||1e3))){this._totalSize+=e,this._totalCost+=c,this._chunkSpeed=8e3*e/c,this._chunkCache.push({size:e,duration:c,timestamp:performance.now()});var r=(null===(a=this._opts)||void 0===a?void 0:a.chunkCountForSpeed)||50;this._chunkCache.length>r&&(this._chunkCache=this._chunkCache.slice(-r))}}},{key:"getAvgSpeed",value:function(){var e;if(!this._chunkCache.length&&!this._speeds.length)return 0;if(this._speeds.length)return this._speeds.reduce((function(e,c){return e+c}))/this._speeds.length;var c=this._chunkCache[this._chunkCache.length-1],t=performance.now()-c.timestamp;return t>((null===(e=this._opts)||void 0===e?void 0:e.longtimeNoReceived)||3e3)&&this._chunkCache.push({size:0,duration:t,timestamp:performance.now()}),8e3*this._chunkCache.reduce((function(e,c){return e+c.size}),0)/this._chunkCache.reduce((function(e,c){return e+c.duration}),0)}},{key:"getLatestSpeed",value:function(){return this._chunkCache.length||this._speeds.length?this._speeds.length?this._speeds[this._speeds.length-1]:this._chunkSpeed:0}},{key:"getTotalSize",value:function(){return this._totalSize}},{key:"getTotalCost",value:function(){return this._totalCost}},{key:"reset",value:function(){this._chunkCache=[],this._speeds=[],this._totalSize=0,this._totalCost=0}}]),e}(),Lb=function(){function e(c){ih(this,e),sh(this,"encodeType",""),sh(this,"audioCodec",""),sh(this,"videoCodec",""),sh(this,"domain",""),sh(this,"fps",0),sh(this,"bitrate",0),sh(this,"width",0),sh(this,"height",0),sh(this,"samplerate",0),sh(this,"channelCount",0),sh(this,"gop",0),sh(this,"_bitsAccumulateSize",0),sh(this,"_bitsAccumulateDuration",0),sh(this,"_startGopId",-1),this._timescale=c}return fh(e,[{key:"getStats",value:function(){return{encodeType:this.encodeType,audioCodec:this.audioCodec,videoCodec:this.videoCodec,domain:this.domain,fps:this.fps,bitrate:this.bitrate,width:this.width,height:this.height,samplerate:this.samplerate,channelCount:this.channelCount,gop:this.gop}}},{key:"setEncodeType",value:function(e){this.encodeType=e}},{key:"setFpsFromScriptData",value:function(e){var c,t=e.data,a=null==t||null===(c=t.onMetaData)||void 0===c?void 0:c.framerate;a&&a>0&&a<100&&(this.fps=a)}},{key:"setVideoMeta",value:function(e){if(this.width=e.width,this.height=e.height,this.videoCodec=e.codec,this.encodeType=e.codecType,e.fpsNum&&e.fpsDen){var c=e.fpsNum/e.fpsDen;c>0&&c<100&&(this.fps=c)}}},{key:"setAudioMeta",value:function(e){this.audioCodec=e.codec,this.samplerate=e.sampleRate,this.channelCount=e.channelCount}},{key:"setDomain",value:function(e){this.domain=e.split("/").slice(2,3)[0]}},{key:"updateBitrate",value:function(e){var c=this;if((!this.fps||this.fps>=100)&&e.length){var t=e.reduce((function(e,c){return e+c.duration}),0)/e.length;this.fps=Math.round(this._timescale/t)}e.forEach((function(e){-1===c._startGopId&&(c._startGopId=e.gopId),e.gopId===c._startGopId&&c.gop++,c._bitsAccumulateDuration+=e.duration/(c._timescale/1e3),c._bitsAccumulateSize+=e.units.reduce((function(e,c){return e+c.length}),0),c._bitsAccumulateDuration>=1e3&&(c.bitrate=8*c._bitsAccumulateSize,c._bitsAccumulateDuration=0,c._bitsAccumulateSize=0)}))}}]),e}(),Ib=function(){function e(c){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3;ih(this,e),sh(this,"_core",null),sh(this,"_samples",[]),this._core=c,this._timescale=t,this._stats=new Lb(t),this._bindEvents()}return fh(e,[{key:"getStats",value:function(){var e,c,t,a,r,i,n,f,s,o,l,d=(null===(e=this._core)||void 0===e?void 0:e.media)||{},u=d.currentTime,h=void 0===u?0:u,b=d.decodeFps,p=void 0===b?0:b;return eh(eh({},this._stats.getStats()),{},{downloadSpeed:(null===(c=this._core)||void 0===c||null===(t=c.speedInfo)||void 0===t?void 0:t.call(c).speed)||0,avgSpeed:(null===(a=this._core)||void 0===a||null===(r=a.speedInfo)||void 0===r?void 0:r.call(a).avgSpeed)||0,totalReceivedByte:(null===(i=this._core)||void 0===i||null===(n=i.speedInfo)||void 0===n?void 0:n.call(i).totalSize)||0,totalReceivedCost:(null===(f=this._core)||void 0===f||null===(s=f.speedInfo)||void 0===s?void 0:s.call(f).totalCost)||0,currentTime:h,bufferEnd:(null===(o=this._core)||void 0===o||null===(l=o.bufferInfo())||void 0===l?void 0:l.remaining)||0,decodeFps:p})}},{key:"_bindEvents",value:function(){var e=this;this._core.on(bb.DEMUXED_TRACK,(function(c){var t=c.videoTrack;return e._stats.updateBitrate(t.samples)})),this._core.on(bb.FLV_SCRIPT_DATA,(function(c){e._stats.setFpsFromScriptData(c)})),this._core.on(bb.METADATA_PARSED,(function(c){"video"===c.type?e._stats.setVideoMeta(c.track):e._stats.setAudioMeta(c.track)})),this._core.on(bb.TTFB,(function(c){e._stats.setDomain(c.responseUrl)}))}},{key:"reset",value:function(){this._samples=[],this._stats=new Lb(this._timescale)}}]),e}();function wb(e,c){if(!(e instanceof c))throw new TypeError("Cannot call a class as a function")}function Rb(e,c){for(var t=0;t<c.length;t++){var a=c[t];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,$b(a.key),a)}}function Db(e,c,t){return c&&Rb(e.prototype,c),t&&Rb(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function xb(e,c,t){return(c=$b(c))in e?Object.defineProperty(e,c,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[c]=t,e}function Pb(e){return(Pb=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Cb(e,c){return(Cb=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,c){return e.__proto__=c,e})(e,c)}function Ob(e,c){if(c&&("object"==typeof c||"function"==typeof c))return c;if(void 0!==c)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function Mb(e){var c=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var t,a=Pb(e);if(c){var r=Pb(this).constructor;t=Reflect.construct(a,arguments,r)}else t=a.apply(this,arguments);return Ob(this,t)}}function Fb(e,c){return function(e){if(Array.isArray(e))return e}(e)||function(e,c){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var a,r,i,n,f=[],s=!0,o=!1;try{if(i=(t=t.call(e)).next,0===c){if(Object(t)!==t)return;s=!1}else for(;!(s=(a=i.call(t)).done)&&(f.push(a.value),f.length!==c);s=!0);}catch(nm){o=!0,r=nm}finally{try{if(!s&&null!=t.return&&(n=t.return(),Object(n)!==n))return}finally{if(o)throw r}}return f}}(e,c)||Ub(e,c)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Nb(e){return function(e){if(Array.isArray(e))return Bb(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ub(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ub(e,c){if(e){if("string"==typeof e)return Bb(e,c);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Bb(e,c):void 0}}function Bb(e,c){(null==c||c>e.length)&&(c=e.length);for(var t=0,a=new Array(c);t<c;t++)a[t]=e[t];return a}function $b(e){var c=function(e,c){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,c||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===c?String:Number)(e)}(e,"string");return"symbol"==typeof c?c:String(c)}var jb="video",Gb="audio",Kb="metadata",Vb="av1",Hb="avc",qb="hevc",Yb="aac",Wb="g7110a",zb="g7110m",Xb="opus",Qb="mp3",Jb="LARGE_AV_SHIFT",Zb="LARGE_VIDEO_GAP",ep="LARGE_VIDEO_GAP_BETWEEN_CHUNK",cp="LARGE_AUDIO_GAP",tp="AUDIO_FILLED",ap="AUDIO_DROPPED",rp=function(){function e(){wb(this,e),xb(this,"id",1),xb(this,"type",jb),xb(this,"codecType",Hb),xb(this,"pid",-1),xb(this,"hvcC",void 0),xb(this,"codec",""),xb(this,"timescale",0),xb(this,"formatTimescale",0),xb(this,"sequenceNumber",0),xb(this,"baseMediaDecodeTime",0),xb(this,"baseDts",0),xb(this,"duration",0),xb(this,"warnings",[]),xb(this,"samples",[]),xb(this,"pps",[]),xb(this,"sps",[]),xb(this,"vps",[]),xb(this,"fpsNum",0),xb(this,"fpsDen",0),xb(this,"sarRatio",[]),xb(this,"width",0),xb(this,"height",0),xb(this,"nalUnitSize",4),xb(this,"present",!1),xb(this,"isVideoEncryption",!1),xb(this,"isAudioEncryption",!1),xb(this,"isVideo",!0),xb(this,"lastKeyFrameDts",0),xb(this,"kid",null),xb(this,"pssh",null),xb(this,"ext",void 0)}return Db(e,[{key:"reset",value:function(){this.sequenceNumber=this.width=this.height=this.fpsDen=this.fpsNum=this.duration=this.baseMediaDecodeTime=this.timescale=0,this.codec="",this.present=!1,this.pid=-1,this.pps=[],this.sps=[],this.vps=[],this.sarRatio=[],this.samples=[],this.warnings=[],this.hvcC=null}},{key:"firstDts",get:function(){return this.samples.length?this.samples[0].dts:null}},{key:"firstPts",get:function(){return this.samples.length?this.samples[0].pts:null}},{key:"samplesDuration",get:function(){if(this.samples.length>0){var e=this.samples[0],c=this.samples[this.samples.length-1];return c.dts-e.dts+c.duration}return 0}},{key:"exist",value:function(){return!!/av01/.test(this.codec)||!!(this.pps.length&&this.sps.length&&this.codec)}},{key:"hasSample",value:function(){return!!this.samples.length}},{key:"isEncryption",get:function(){return this.isVideoEncryption}}]),e}(),ip=function(){function e(){wb(this,e),xb(this,"id",2),xb(this,"type",Gb),xb(this,"codecType",Yb),xb(this,"pid",-1),xb(this,"codec",""),xb(this,"container",""),xb(this,"sequenceNumber",0),xb(this,"sampleDuration",0),xb(this,"timescale",0),xb(this,"formatTimescale",0),xb(this,"baseMediaDecodeTime",0),xb(this,"duration",0),xb(this,"warnings",[]),xb(this,"samples",[]),xb(this,"baseDts",0),xb(this,"sampleSize",16),xb(this,"sampleRate",0),xb(this,"channelCount",0),xb(this,"objectType",0),xb(this,"sampleRateIndex",0),xb(this,"config",[]),xb(this,"present",!1),xb(this,"isVideoEncryption",!1),xb(this,"isAudioEncryption",!1),xb(this,"kid",null),xb(this,"ext",void 0)}return Db(e,[{key:"reset",value:function(){this.sequenceNumber=0,this.timescale=0,this.sampleDuration=0,this.sampleRate=0,this.channelCount=0,this.baseMediaDecodeTime=0,this.present=!1,this.pid=-1,this.codec="",this.samples=[],this.config=[],this.warnings=[]}},{key:"exist",value:function(){return!(!this.sampleRate||!this.channelCount||!this.codec&&!this.container||this.codecType!==Yb&&this.codecType!==Wb&&this.codecType!==zb&&this.codecType!==Xb&&this.codecType!==Qb)}},{key:"hasSample",value:function(){return!!this.samples.length}},{key:"isEncryption",get:function(){return this.isAudioEncryption}},{key:"firstDts",get:function(){return this.samples.length?this.samples[0].dts:null}},{key:"firstPts",get:function(){return this.samples.length?this.samples[0].pts:null}},{key:"samplesDuration",get:function(){if(this.samples.length>0){var e=this.samples[0],c=this.samples[this.samples.length-1];return c.dts-e.dts+c.duration}return 0}}]),e}(),np=function(){function e(c,t,a){wb(this,e),xb(this,"flag",{}),xb(this,"keyframe",!1),xb(this,"gopId",0),xb(this,"duration",0),xb(this,"size",0),xb(this,"units",[]),xb(this,"chromaFormat",420),this.originPts=this.pts=c,this.originDts=this.dts=t,a&&(this.units=a)}return Db(e,[{key:"cts",get:function(){return this.pts-this.dts}},{key:"setToKeyframe",value:function(){this.keyframe=!0,this.flag.dependsOn=2,this.flag.isNonSyncSample=0}}]),e}(),fp=Db((function e(c,t,a,r){wb(this,e),xb(this,"duration",1024),xb(this,"flag",{dependsOn:2,isNonSyncSample:0}),xb(this,"keyframe",!0),this.originPts=this.pts=this.dts=c,this.data=t,this.size=t.byteLength,this.sampleOffset=r,a&&(this.duration=a)})),sp=function(e){!function(e,c){if("function"!=typeof c&&null!==c)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(c&&c.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),c&&Cb(e,c)}(t,e);var c=Mb(t);function t(){return wb(this,t),c.apply(this,arguments)}return Db(t)}(Db((function e(c,t){wb(this,e),xb(this,"time",0),this.data=c,this.originPts=this.pts=t}))),op=function(){function e(){wb(this,e),xb(this,"id",3),xb(this,"type",Kb),xb(this,"timescale",0),xb(this,"flvScriptSamples",[]),xb(this,"seiSamples",[])}return Db(e,[{key:"exist",value:function(){return!(!this.flvScriptSamples.length&&!this.seiSamples.length||!this.timescale)}},{key:"reset",value:function(){this.timescale=0,this.flvScriptSamples=[],this.seiSamples=[]}},{key:"hasSample",value:function(){return!(!this.flvScriptSamples.length&&!this.seiSamples.length)}}]),e}(),lp=function(){function e(c){wb(this,e),this.name=c||"",this._prefix="[".concat(this.name,"]")}return Db(e,[{key:"warn",value:function(){var c;if(!e.disabled){for(var t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];(c=console).warn.apply(c,[this._prefix].concat(a))}}}],[{key:"enable",value:function(){e.disabled=!1}},{key:"disable",value:function(){e.disabled=!0}}]),e}();xb(lp,"disabled",!0);var dp="undefined"!=typeof window,up=dp&&navigator.userAgent.toLocaleLowerCase(),hp=dp&&/^((?!chrome|android).)*safari/.test(up),bp=dp&&up.includes("firefox"),pp=dp&&up.includes("android"),gp=function(){function e(){wb(this,e)}return Db(e,null,[{key:"getRateIndexByRate",value:function(c){return e.FREQ.indexOf(c)}},{key:"parseADTS",value:function(c,t){for(var a=c.length,r=0;r+2<a&&(255!==c[r]||240!=(246&c[r+1]));)r++;if(!(r>=a)){var i=r,n=[],f=(60&c[r+2])>>>2,s=e.FREQ[f];if(!s)throw new Error("Invalid sampling index: ".concat(f));for(var o,l,d=1+((192&c[r+2])>>>6),u=(1&c[r+2])<<2|(192&c[r+3])>>>6,h=e._getConfig(f,u,d),b=h.config,p=h.codec,g=0,m=e.getFrameDuration(s);r+7<a;)if(255===c[r]&&240==(246&c[r+1])){if(!(l=(3&c[r+3])<<11|c[r+4]<<3|(224&c[r+5])>>5)||a-r<l)break;o=2*(1&~c[r+1]),n.push({pts:t+g*m,data:c.subarray(r+7+o,r+l)}),g++,r+=l}else r++;return{skip:i,remaining:r>=a?void 0:c.subarray(r),frames:n,samplingFrequencyIndex:f,sampleRate:s,objectType:d,channelCount:u,codec:p,config:b,originCodec:"mp4a.40.".concat(d)}}}},{key:"parseAudioSpecificConfig",value:function(c){if(c.length){var t=c[0]>>>3,a=(7&c[0])<<1|c[1]>>>7,r=(120&c[1])>>>3,i=e.FREQ[a];if(i){var n=e._getConfig(a,r,t);return{samplingFrequencyIndex:a,sampleRate:i,objectType:t,channelCount:r,config:n.config,codec:n.codec,originCodec:"mp4a.40.".concat(t)}}}}},{key:"getFrameDuration",value:function(e){return 1024*(arguments.length>1&&void 0!==arguments[1]?arguments[1]:9e4)/e}},{key:"_getConfig",value:function(e,c,t){var a,r,i=[];return bp?e>=6?(a=5,r=e-3):(a=2,r=e):pp?(a=2,r=e):(a=5,r=e,e>=6?r=e-3:1===c&&(a=2,r=e)),i[0]=a<<3,i[0]|=(14&e)>>1,i[1]=(1&e)<<7,i[1]|=c<<3,5===a&&(i[1]|=(14&r)>>1,i[2]=(1&r)<<7,i[2]|=8,i[3]=0),{config:i,codec:"mp4a.40.".concat(a)}}},{key:"getSilentFrame",value:function(e,c){if("mp4a.40.2"===e){if(1===c)return new Uint8Array([0,200,0,128,35,128]);if(2===c)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===c)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===c)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===c)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===c)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===c)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===c)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===c)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}}}]),e}();function mp(){for(var e=arguments.length,c=new Array(e),t=0;t<e;t++)c[t]=arguments[t];c=c.filter(Boolean);var a=new Uint8Array(c.reduce((function(e,c){return e+c.byteLength}),0)),r=0;return c.forEach((function(e){a.set(e,r),r+=e.byteLength})),a}xb(gp,"FREQ",[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350]);var vp=Math.pow(2,32);function yp(e){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[c]<<8)+(e[c+1]||0)}function Ep(e){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[c]<<24>>>0)+(e[c+1]<<16)+(e[c+2]<<8)+(e[c+3]||0)}function Sp(e){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return Ep(e,c)*vp+Ep(e,c+4)}function _p(e){for(var c,t="avc1.",a=0;a<3;a++)(c=e[a].toString(16)).length<2&&(c="0".concat(c)),t+=c;return t}function Tp(e){if(!Array.isArray(e)){for(var c=[],t="",a=0;a<e.length;a++)a%2&&(t=e[a-1]+e[a],c.push(parseInt(t,16)),t="");return c}return e.map((function(e){return parseInt(e,16)}))}function kp(e,c){return Number(e+"."+c)}var Ap=function(){function e(){wb(this,e)}return Db(e,null,[{key:"parseAnnexB",value:function(e){var c=e.byteLength-1,t=0;do{if(0!==e[c])break;t++,c--}while(c>0);t>=3&&(e=e.subarray(0,c+1));for(var a=e.length,r=2,i=0;null!==e[r]&&void 0!==e[r]&&1!==e[r];)r++;if((i=++r+2)>=a)return[];for(var n=[];i<a;)switch(e[i]){case 0:if(0!==e[i-1]){i+=2;break}if(0!==e[i-2]){i++;break}if(i<a-1&&1!==e[i+1]){i++;break}r!==i-2&&n.push(e.subarray(r,i-2));do{i++}while(1!==e[i]&&i<a);i=(r=i+1)+2;break;case 1:if(0!==e[i-1]||0!==e[i-2]){i+=3;break}r!==i-2&&n.push(e.subarray(r,i-2)),i=(r=i+1)+2;break;default:i+=3}return r<a&&n.push(e.subarray(r)),n}},{key:"parseAvcC",value:function(e){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4;if(!(e.length<4)){for(var t,a=e.length,r=[],i=0;i+c<a;)if(t=Ep(e,i),3===c&&(t>>>=8),i+=c,t){if(i+t>a)break;r.push(e.subarray(i,i+t)),i+=t}return r}}},{key:"parseSEI",value:function(e,c){for(var t=e.length,a=c?2:1,r=0,i=0,n="";255===e[a];)r+=255,a++;for(r+=e[a++];255===e[a];)i+=255,a++;if(i+=e[a++],5===r&&t>a+16)for(var f=0;f<16;f++)n+=e[a].toString(16),a++;return{payload:e.subarray(a,a+i),type:r,size:i,uuid:n}}},{key:"removeEPB",value:function(e){for(var c=e.byteLength,t=[],a=1;a<c-2;)0===e[a]&&0===e[a+1]&&3===e[a+2]?(t.push(a+2),a+=2):a++;if(!t.length)return e;var r=c-t.length,i=new Uint8Array(r),n=0;for(a=0;a<r;n++,a++)n===t[0]&&(n++,t.shift()),i[a]=e[n];return i}}]),e}(),Lp=function(){function e(c){if(wb(this,e),xb(this,"_bytesAvailable",void 0),xb(this,"_bitsAvailable",0),xb(this,"_word",0),!c)throw new Error("ExpGolomb data params is required");this._data=c,this._bytesAvailable=c.byteLength,this._bytesAvailable&&this._loadWord()}return Db(e,[{key:"bitsAvailable",get:function(){return this._bitsAvailable}},{key:"_loadWord",value:function(){var e=this._data.byteLength-this._bytesAvailable,c=Math.min(4,this._bytesAvailable);if(0===c)throw new Error("No bytes available");var t=new Uint8Array(4);t.set(this._data.subarray(e,e+c)),this._word=new DataView(t.buffer).getUint32(0),this._bitsAvailable=8*c,this._bytesAvailable-=c}},{key:"skipBits",value:function(e){if(this._bitsAvailable>e)this._word<<=e,this._bitsAvailable-=e;else{e-=this._bitsAvailable;var c=Math.floor(e/8);e-=8*c,this._bytesAvailable-=c,this._loadWord(),this._word<<=e,this._bitsAvailable-=e}}},{key:"readBits",value:function(e){if(e>32)throw new Error("Cannot read more than 32 bits");var c=Math.min(this._bitsAvailable,e),t=this._word>>>32-c;return this._bitsAvailable-=c,this._bitsAvailable>0?this._word<<=c:this._bytesAvailable>0&&this._loadWord(),(c=e-c)>0&&this._bitsAvailable?t<<c|this.readBits(c):t}},{key:"skipLZ",value:function(){var e;for(e=0;e<this._bitsAvailable;++e)if(this._word&2147483648>>>e)return this._word<<=e,this._bitsAvailable-=e,e;return this._loadWord(),e+this.skipLZ()}},{key:"skipUEG",value:function(){this.skipBits(1+this.skipLZ())}},{key:"readUEG",value:function(){var e=this.skipLZ();return this.readBits(e+1)-1}},{key:"readEG",value:function(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)}},{key:"readBool",value:function(){return 1===this.readBits(1)}},{key:"readUByte",value:function(){return this.readBits(8)}},{key:"skipScalingList",value:function(e){for(var c=8,t=8,a=0;a<e;a++)0!==t&&(t=(c+this.readEG()+256)%256),c=0===t?c:t}}]),e}(),Ip=function(){function e(){wb(this,e)}return Db(e,null,[{key:"parseAVCDecoderConfigurationRecord",value:function(c){if(!(c.length<7)){for(var t,a,r=1+(3&c[4]),i=[],n=[],f=6,s=31&c[5],o=0;o<s;o++)if(a=c[f]<<8|c[f+1],f+=2,a){var l=c.subarray(f,f+a);f+=a,i.push(l),t||(t=e.parseSPS(Ap.removeEPB(l)))}var d,u=c[f];f++;for(var h=0;h<u;h++)d=c[f]<<8|c[f+1],f+=2,d&&(n.push(c.subarray(f,f+d)),f+=d);return{sps:t,spsArr:i,ppsArr:n,nalUnitSize:r}}}},{key:"parseSPS",value:function(e){var c=new Lp(e);c.readUByte();var t=c.readUByte(),a=c.readUByte(),r=c.readUByte();c.skipUEG();var i=420;if(100===t||110===t||122===t||244===t||44===t||83===t||86===t||118===t||128===t||138===t||144===t){var n=c.readUEG();if(n<=3&&(i=[0,420,422,444][n]),3===n&&c.skipBits(1),c.skipUEG(),c.skipUEG(),c.skipBits(1),c.readBool())for(var f=3!==n?8:12,s=0;s<f;s++)c.readBool()&&(s<6?c.skipScalingList(16):c.skipScalingList(64))}c.skipUEG();var o=c.readUEG();if(0===o)c.readUEG();else if(1===o){c.skipBits(1),c.skipUEG(),c.skipUEG();for(var l=c.readUEG(),d=0;d<l;d++)c.skipUEG()}c.skipUEG(),c.skipBits(1);var u=c.readUEG(),h=c.readUEG(),b=c.readBits(1);0===b&&c.skipBits(1),c.skipBits(1);var p,g,m,v,y,E=0,S=0,_=0,T=0;if(c.readBool()&&(E=c.readUEG(),S=c.readUEG(),_=c.readUEG(),T=c.readUEG()),c.readBool()){if(c.readBool())switch(c.readUByte()){case 1:p=[1,1];break;case 2:p=[12,11];break;case 3:p=[10,11];break;case 4:p=[16,11];break;case 5:p=[40,33];break;case 6:p=[24,11];break;case 7:p=[20,11];break;case 8:p=[32,11];break;case 9:p=[80,33];break;case 10:p=[18,11];break;case 11:p=[15,11];break;case 12:p=[64,33];break;case 13:p=[160,99];break;case 14:p=[4,3];break;case 15:p=[3,2];break;case 16:p=[2,1];break;case 255:p=[c.readUByte()<<8|c.readUByte(),c.readUByte()<<8|c.readUByte()]}if(c.readBool()&&c.readBool(),c.readBool()&&(c.readBits(4),c.readBool()&&c.readBits(24)),c.readBool()&&(c.readUEG(),c.readUEG()),c.readBool()){var k=c.readBits(32),A=c.readBits(32);g=c.readBool(),y=(m=A)/(v=2*k)}}return{codec:_p(e.subarray(1,4)),profileIdc:t,profileCompatibility:a,levelIdc:r,chromaFormat:i,width:Math.ceil(16*(u+1)-2*(E+S)),height:(2-b)*(h+1)*16-(b?2:4)*(_+T),sarRatio:p,fpsNum:m,fpsDen:v,fps:y,fixedFrame:g}}}]),e}(),wp=function(){function e(){wb(this,e)}return Db(e,null,[{key:"parseHEVCDecoderConfigurationRecord",value:function(c){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!(c.length<23)){t=t||{};for(var a,r,i,n,f,s=1+(3&c[21]),o=[],l=[],d=[],u=23,h=c[22],b=0;b<h;b++){i=63&c[u],n=c[u+1]<<8|c[u+2],u+=3;for(var p=0;p<n;p++)if(f=c[u]<<8|c[u+1],u+=2,f){switch(i){case 32:var g=c.subarray(u,u+f);a||(a=e.parseVPS(Ap.removeEPB(g),t)),d.push(g);break;case 33:var m=c.subarray(u,u+f);r||(r=e.parseSPS(Ap.removeEPB(m),t)),o.push(m);break;case 34:l.push(c.subarray(u,u+f))}u+=f}}return{hvcC:t,sps:r,spsArr:o,ppsArr:l,vpsArr:d,nalUnitSize:s}}}},{key:"parseVPS",value:function(c,t){t=t||{};var a=new Lp(c);a.readUByte(),a.readUByte(),a.readBits(12);var r=a.readBits(3);return t.numTemporalLayers=Math.max(t.numTemporalLayers||0,r+1),a.readBits(17),e._parseProfileTierLevel(a,r,t),t}},{key:"parseSPS",value:function(c){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t=t||{};var a=new Lp(c);a.readUByte(),a.readUByte(),a.readBits(4);var r=a.readBits(3);t.numTemporalLayers=Math.max(r+1,t.numTemporalLayers||0),t.temporalIdNested=a.readBits(1),e._parseProfileTierLevel(a,r,t),a.readUEG();var i=t.chromaFormatIdc=a.readUEG(),n=420;i<=3&&(n=[0,420,422,444][i]);var f=0;3===i&&(f=a.readBits(1));var s,o,l,d,u=a.readUEG(),h=a.readUEG(),b=a.readBits(1);(1===b&&(s=a.readUEG(),o=a.readUEG(),l=a.readUEG(),d=a.readUEG()),t.bitDepthLumaMinus8=a.readUEG(),t.bitDepthChromaMinus8=a.readUEG(),1===b)&&(u-=(1!==i&&2!==i||0!==f?1:2)*(o+s),h-=(1===i&&0===f?2:1)*(d+l));return{codec:"hev1.1.6.L93.B0",width:u,height:h,chromaFormat:n,hvcC:t}}},{key:"_parseProfileTierLevel",value:function(e,c,t){var a=t.generalTierFlag||0;t.generalProfileSpace=e.readBits(2),t.generalTierFlag=Math.max(e.readBits(1),a),t.generalProfileIdc=Math.max(e.readBits(5),t.generalProfileIdc||0),t.generalProfileCompatibilityFlags=e.readBits(32),t.generalConstraintIndicatorFlags=[e.readBits(8),e.readBits(8),e.readBits(8),e.readBits(8),e.readBits(8),e.readBits(8)];var r=e.readBits(8);a<t.generalTierFlag?t.generalLevelIdc=r:t.generalLevelIdc=Math.max(r,t.generalLevelIdc||0);var i=[],n=[];if(c>e.bitsAvailable)throw new Error("maxSubLayersMinus inavlid size ".concat(c));for(var f=0;f<c;f++)i[f]=e.readBits(1),n[f]=e.readBits(1);c>0&&e.readBits(2*(8-c));for(var s=0;s<c;s++)0!==i[s]&&(e.readBits(2),e.readBits(1),e.readBits(5),e.readBits(16),e.readBits(16),e.readBits(4),e.readBits(16),e.readBits(16),e.readBits(12)),0!==n[s]&&e.readBits(8)}}]),e}(),Rp=9e4,Dp=45e4,xp=9e4,Pp=function(){function e(c,t,a,r){wb(this,e),this.videoTrack=c,this.audioTrack=t,this.metadataTrack=a,this._baseDts=-1,this._baseVideoDts=-1,this._baseAudioDts=-1,this._baseDtsInited=!1,this._audioNextPts=void 0,this._videoNextDts=void 0,this._audioTimestampBreak=!1,this._videoTimestampBreak=!1,this._lastAudioExceptionGapDot=0,this._lastAudioExceptionOverlapDot=0,this._lastAudioExceptionLargeGapDot=0,this._needForceFixLargeGap=null==r?void 0:r.forceFixLargeGap,this._largeGapThreshold=(null==r?void 0:r.largeGapThreshold)||45e4}return Db(e,[{key:"fix",value:function(){var e=this,c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];c=Math.round(9e4*c);var r=this.videoTrack,i=this.audioTrack,n=r.samples,f=i.samples;if(n.length||f.length){var s=n[0],o=f[0],l=0;if(n.length&&f.length&&(l=s.dts-o.pts),this._baseDtsInited||this._calculateBaseDts(this.audioTrack,this.videoTrack),t&&(this._calculateBaseDts(this.audioTrack,this.videoTrack),this._baseDts-=c,this._baseAudioDts-=c,this._baseVideoDts-=c),!a){this._videoNextDts=l>0?c+l:c,this._audioNextPts=l>0?c:c-l,this._needForceFixLargeGap&&(this._videoNextDts=0,this._audioNextPts=0);var d=s?s.dts-this._baseDts-this._videoNextDts:0,u=o?o.pts-this._baseDts-this._audioNextPts:0;Math.abs(d||u)>xp&&(this._calculateBaseDts(this.audioTrack,this.videoTrack),this._baseDts-=c)}if(this._resetBaseDtsWhenStreamBreaked(),this._fixAudio(i),this._fixVideo(r),this.metadataTrack.exist()){var h=this.metadataTrack.timescale;this.metadataTrack.seiSamples.forEach((function(c){c.pts=c.originPts-e._baseDts,c.time=Math.max(0,c.pts)/h}))}r.samples.length&&(r.baseMediaDecodeTime=r.samples[0].dts),i.samples.length&&(i.baseMediaDecodeTime=i.samples[0].pts*i.timescale/9e4)}}},{key:"_fixVideo",value:function(e){var c=this,t=e.samples;if(t.length){if(t.forEach((function(e){e.dts-=c._needForceFixLargeGap?c._baseVideoDts:c._baseDts,e.pts-=c._needForceFixLargeGap?c._baseVideoDts:c._baseDts})),void 0===this._videoNextDts){var a=t[0];this._videoNextDts=a.dts}var r,i,n=t.length,f=0,s=t[0],o=t[1],l=this._videoNextDts-s.dts;if(Math.abs(l)>45e3)if(e.warnings.push({type:ep,nextDts:this._videoNextDts/90,firstSampleDts:s.dts/90,nextSampleDts:((null===(r=t[1])||void 0===r?void 0:r.dts)||0)/90,sampleDuration:l/90}),s.dts+=l,s.pts+=l,o&&Math.abs(o.dts-s.dts)>xp)this._videoTimestampBreak=!0,t.forEach((function(e,c){0!==c&&(e.dts+=l,e.pts+=l)}));else for(var d=1;d<n-1;d++){var u,h=null===(u=t[d])||void 0===u?void 0:u.dts,b=t[d-1].dts;h&&h-b<0&&(t[d].dts+=l,t[d].pts+=l)}if(e.fpsNum&&e.fpsDen&&(i=e.timescale*(e.fpsDen/e.fpsNum)),i<900&&(i=0),!i){var p=e.samples[0],g=e.samples[1];i=1===n?9e3:Math.floor(g.dts-p.dts)}for(var m=0;m<n;m++){var v=t[m].dts,y=t[m+1];if((f=m<n-1?y.dts-v:t[m-1]?Math.min(v-t[m-1].dts,i):i)>xp||f<0){this._videoTimestampBreak=!0,f=this._audioTimestampBreak?i:Math.max(f,2700);var E=this._audioNextPts||0;y&&y.dts>E&&(f=i),e.warnings.push({type:Zb,time:v/e.timescale,dts:v,originDts:t[m].originDts,nextDts:this._videoNextDts,sampleDuration:f,refSampleDuration:i})}t[m].duration=f,this._videoNextDts+=f}}}},{key:"_fixAudio",value:function(e){var c=this,t=e.samples;if(t.length)if(e.codecType!==Qb)t.forEach((function(e){e.pts-=c._needForceFixLargeGap?c._baseAudioDts:c._baseDts,e.dts=e.pts})),this._doFixAudioInternal(e,t,9e4);else{this.lastAudioSample&&t.unshift(this.lastAudioSample);for(var a=0;a<t.length;a++){var r=t[a];if(!t[a+1])break;r.duration=t[a+1].pts-r.pts,r.pts-=this._baseDts,r.dts=r.pts}this.lastAudioSample=t.pop()}}},{key:"_calculateBaseDts",value:function(e,c){var t=e.samples,a=c.samples;if(!t.length&&!a.length)return!1;var r=1/0,i=1/0;t.length&&(e.baseDts=r=t[0].pts,this._baseAudioDts=r),a.length&&(c.baseDts=i=a[0].dts,this._baseVideoDts=i),this._baseDts=Math.min(r,i);var n=i-r,f=!1;return Number.isFinite(n)&&Math.abs(n)>45e3&&c.warnings.push({type:Jb,videoBaseDts:i,audioBasePts:r,baseDts:this._baseDts,delta:n}),Number.isFinite(n)&&Math.abs(n)>this._largeGapThreshold*Rp&&(f=!0),this._baseDtsInited||(f&&this._needForceFixLargeGap?this._needForceFixLargeGap=!0:this._needForceFixLargeGap=!1),this._baseDtsInited=!0,!0}},{key:"_resetBaseDtsWhenStreamBreaked",value:function(){if(this._baseDtsInited&&this._videoTimestampBreak&&this._audioTimestampBreak){if(!this._calculateBaseDts(this.audioTrack,this.videoTrack))return;this._baseDts-=Math.min(this._audioNextPts,this._videoNextDts),this._audioLastSample=null,this._videoLastSample=null,this._videoTimestampBreak=!1,this._audioTimestampBreak=!1}}},{key:"_doFixAudioInternal",value:function(e,c,t){e.sampleDuration||(e.sampleDuration=gp.getFrameDuration(e.timescale,t));var a=e.sampleDuration;if(void 0===this._audioNextPts){var r=c[0];this._audioNextPts=r.pts}for(var i=0;i<c.length;i++){var n=this._audioNextPts,f=c[i],s=f.pts-n;if(!this._audioTimestampBreak&&s>=3*a&&s<=Rp&&!hp){var o=gp.getSilentFrame(e.codec,e.channelCount)||c[0].data.subarray(),l=Math.floor(s/a);Math.abs(f.pts-this._lastAudioExceptionGapDot)>Dp&&(this._lastAudioExceptionGapDot=f.pts),e.warnings.push({type:tp,pts:f.pts/90,originPts:f.originPts,count:l,nextPts:n/90,refSampleDuration:a});for(var d=0;d<l;d++){var u=new fp(Math.floor(n),o);u.originPts=Math.floor(this._baseDts+n),c.splice(i,0,u),this._audioNextPts+=a,i++}i--}else s<=-3*a&&s>=-9e4?(Math.abs(f.pts-this._lastAudioExceptionOverlapDot)>Dp&&(this._lastAudioExceptionOverlapDot=f.pts,e.warnings.push({type:ap,pts:f.pts/90,originPts:f.originPts,nextPts:n/90,refSampleDuration:a})),c.splice(i,1),i--):(Math.abs(s)>=Rp&&(this._audioTimestampBreak=!0,Math.abs(f.pts-this._lastAudioExceptionLargeGapDot)>Dp&&(this._lastAudioExceptionLargeGapDot=f.pts,e.warnings.push({type:cp,time:f.pts/1e3,pts:f.pts/90,originPts:f.originPts,nextPts:n/90,sampleDuration:s,refSampleDuration:a}))),f.dts=f.pts=n,this._audioNextPts+=a)}}}]),e}(),Cp=[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160],Op=[44100,48e3,32e3,22050,24e3,16e3,11025,12e3,8e3],Mp=[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],Fp=[0,1,1,4],Np=null,Up=function(){function e(){wb(this,e)}return Db(e,null,[{key:"isHeader",value:function(e,c){return c+1<e.length&&255===e[c]&&!(224&~e[c+1])&&!!(6&e[c+1])}},{key:"appendFrame",value:function(c,t,a,r,i){if(!(a+24>t.length)){var n=e.parseHeader(t,a);if(n&&a+n.frameLength<=t.length){var f=r+i*(9e4*n.samplesPerFrame/n.sampleRate),s={data:t.subarray(a,a+n.frameLength),pts:f,dts:f};return s.size=s.data.byteLength,c.config=[],c.channelCount=n.channelCount,c.sampleRate=n.sampleRate,bp?c.codec="mp3":c.container="audio/mpeg",c.samples.push(s),{length:n.frameLength}}}}},{key:"parseHeader",value:function(e,c){var t=e[c+1]>>3&3,a=e[c+1]>>1&3,r=e[c+2]>>4&15,i=e[c+2]>>2&3;if(1!==t&&0!==r&&15!==r&&3!==i){var n=e[c+2]>>1&1,f=e[c+3]>>6,s=1e3*Cp[14*(3===t?3-a:3===a?3:4)+r-1],o=Op[3*(3===t?0:2===t?1:2)+i],l=3===f?1:2,d=Mp[t][a],u=Fp[a],h=8*d*u,b=Math.floor(d*s/o+n)*u;if(null===Np){var p=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);Np=p?parseInt(p[1]):0}return!!Np&&Np<=87&&2===a&&s>=224e3&&0===f&&(e[c+3]=128|e[c+3]),{sampleRate:o,channelCount:l,frameLength:b,samplesPerFrame:h}}}}]),e}(),Bp=new lp("TsDemuxer"),$p=function(){function e(c,t,a){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};wb(this,e),xb(this,"_pmtId",-1),xb(this,"_remainingPacketData",null),xb(this,"_videoPesData",[]),xb(this,"_audioPesData",[]),xb(this,"_gopId",0),this.videoTrack=c||new rp,this.audioTrack=t||new ip,this.metadataTrack=a||new op,this._fixer=new Pp(this.videoTrack,this.audioTrack,this.metadataTrack,r)}return Db(e,[{key:"demux",value:function(e){var c=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.audioTrack,r=this.videoTrack,i=this.metadataTrack;c&&(this._pmtId=-1,r.reset(),a.reset(),i.reset()),!t||c?(this._remainingPacketData=null,this._videoPesData=[],this._audioPesData=[]):(r.samples=[],a.samples=[],i.seiSamples=[],r.warnings=[],a.warnings=[],this._remainingPacketData&&(e=mp(this._remainingPacketData,e),this._remainingPacketData=null));var n=e.length,f=n%188;f&&(this._remainingPacketData=e.subarray(n-f),n-=f);for(var s=r.pid,o=a.pid,l=0;l<n;l+=188){if(71!==e[l])throw new Error("TS packet did not start with 0x47");var d=!!(64&e[l+1]),u=((31&e[l+1])<<8)+e[l+2],h=void 0;if((48&e[l+3])>>4>1){if((h=l+5+e[l+4])===l+188)continue}else h=l+4;switch(u){case 0:d&&(h+=e[h]+1),this._pmtId=(31&e[h+10])<<8|e[h+11];break;case this._pmtId:d&&(h+=e[h]+1);var b=h+3+((15&e[h+1])<<8|e[h+2])-4;for(h+=12+((15&e[h+10])<<8|e[h+11]);h<b;){var p=(31&e[h+1])<<8|e[h+2];switch(e[h]){case 15:a.pid=o=p;break;case 3:case 4:-1===a.pid&&(a.pid=o=p,a.codecType=Qb);break;case 27:if(-1!==s)break;r.codecType=Hb,r.pid=s=p;break;case 36:if(-1!==s)break;r.codecType=qb,r.pid=s=p;break;default:Bp.warn("Unsupported stream. type: ".concat(e[h],", pid: ").concat(p))}h+=5+((15&e[h+3])<<8|e[h+4])}break;case s:d&&this._videoPesData.length&&this._parseVideoData(),this._videoPesData.push(e.subarray(h,l+188));break;case o:d&&this._audioPesData.length&&this._parseAudioData(),this._audioPesData.push(e.subarray(h,l+188));break;case 17:case 8191:break;default:Bp.warn("Unknown pid: ".concat(u))}}return this._parseVideoData(),this._parseAudioData(),a.formatTimescale=r.formatTimescale=r.timescale=i.timescale=9e4,a.timescale=a.sampleRate||0,{videoTrack:r,audioTrack:a,metadataTrack:i}}},{key:"fix",value:function(e,c,t){return this._fixer.fix(e,c,t),{videoTrack:this.videoTrack,audioTrack:this.audioTrack,metadataTrack:this.metadataTrack}}},{key:"demuxAndFix",value:function(e,c,t,a){return this.demux(e,c,t),this.fix(a,c,t)}},{key:"_parseVideoData",value:function(){if(this._videoPesData.length){var c=e._parsePES(mp.apply(void 0,Nb(this._videoPesData)));if(c){var t=Ap.parseAnnexB(c.data);t?this._createVideoSample(t,c.pts,c.dts):Bp.warn("Cannot parse avc units",c),this._videoPesData=[]}else Bp.warn("Cannot parse video pes",this._videoPesData)}}},{key:"_createVideoSample",value:function(e,c,t){var a=this;if(e.length){var r=this.videoTrack,i=r.codecType===qb,n=new np(c,t);e.forEach((function(e){var t=i?e[0]>>>1&63:31&e[0];switch(t){case 5:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:if(!i&&5!==t||i&&5===t)break;n.setToKeyframe(),a._gopId++;break;case 6:case 39:case 40:if(!i&&6!==t||i&&6===t)break;return void a.metadataTrack.seiSamples.push(new sp(Ap.parseSEI(Ap.removeEPB(e),i),c));case 32:if(!i)break;if(!r.vps.length){var f=wp.parseVPS(Ap.removeEPB(e),r.hvcC);r.hvcC=r.hvcC||f,r.vps=[e]}break;case 7:case 33:if(!i&&7!==t||i&&7===t)break;if(!r.sps.length){var s=Ap.removeEPB(e),o=i?wp.parseSPS(s,r.hvcC):Ip.parseSPS(s);r.sps=[e],r.hvcC=r.hvcC||o.hvcC,r.codec=o.codec,r.width=o.width,r.height=o.height,r.sarRatio=o.sarRatio,r.fpsNum=o.fpsNum,r.fpsDen=o.fpsDen}break;case 8:case 34:if(!i&&8!==t||i&&8===t)break;r.pps.length||(r.pps=[e]);break;case 9:case 35:break;case 38:if(i){for(var l=!1,d=2;d<e.byteLength;d++)if(255===e[d]){l=!0;break}if(!l)return}}n.units.push(e)})),n.gopId=this._gopId,this._pushVideoSample(r,n)}}},{key:"_pushVideoSample",value:function(e,c){if(c.units.length)if(null===c.pts||void 0===c.pts){Bp.warn("Video sample no pts",c);var t=e.samples[e.samples.length-1];t?(c.pts=t.pts,c.dts=t.dts):Bp.warn("Drop video sample",c)}else e.samples.push(c)}},{key:"_parseAudioData",value:function(){if(this._audioPesData.length){var c=e._parsePES(mp.apply(void 0,Nb(this._audioPesData)));if(c){switch(this.audioTrack.codecType){case Yb:this._parseAacData(c);break;case Qb:this._parseMPEG(c)}this._audioPesData=[]}else Bp.warn("Cannot parse audio pes",this._audioPesData)}}},{key:"_parseAacData",value:function(e){var c=this.audioTrack,t=e.pts;if(null==t){if(Bp.warn("AAC pes not pts",c),!c.samples.length||!c.sampleRate)return;t=c.samples[c.samples.length-1].pts+gp.getFrameDuration(c.sampleRate)}var a,r=gp.parseADTS(e.data,t);r?(c.codec=r.codec,c.channelCount=r.channelCount,c.sampleRate=r.sampleRate,c.objectType=r.objectType,c.sampleRateIndex=r.samplingFrequencyIndex,c.config=r.config,(a=c.samples).push.apply(a,Nb(r.frames.map((function(e){return new fp(e.pts,e.data)})))),r.skip&&Bp.warn("Skip aac adts ".concat(r.skip," bits")),r.remaining&&Bp.warn("Remaining aac adts ".concat(r.remaining," bits"))):Bp.warn("Cannot parse aac adts",e)}},{key:"_parseMPEG",value:function(e){var c=e.data,t=c.length,a=0,r=0,i=e.pts;if(void 0!==i)for(;r<t;)if(Up.isHeader(c,r)){var n=Up.appendFrame(this.audioTrack,c,r,i,a);if(!n)break;r+=n.length,a++}else r++;else Bp.warn("[tsdemuxer]: MPEG PES unknown PTS")}}],[{key:"probe",value:function(e){return!!e.length&&(71===e[0]&&71===e[188]&&71===e[376])}},{key:"_parsePES",value:function(e){var c=e[8];if(!(null==c||e.length<c+9)&&1===(e[0]<<16|e[1]<<8|e[2])){var t=(e[4]<<8)+e[5];if(!(t&&t>e.length-6)){var a,r,i=e[7];return 192&i&&(a=536870912*(14&e[9])+4194304*(255&e[10])+16384*(254&e[11])+128*(255&e[12])+(254&e[13])/2,64&i?a-(r=536870912*(14&e[14])+4194304*(255&e[15])+16384*(254&e[16])+128*(255&e[17])+(254&e[18])/2)>54e5&&(a=r):r=a),{data:e.subarray(9+c),pts:a,dts:r}}}}}]),e}(),jp=function(){function e(c,t,a){wb(this,e),this.dv=new DataView(c),this.start=this.offset=t||this.dv.byteOffset,this.end=a?this.start+a:this.start+this.dv.byteLength}return Db(e,[{key:"buffer",get:function(){return this.dv.buffer}},{key:"unreadLength",get:function(){return Math.max(this.end-this.offset,0)}},{key:"size",get:function(){return this.end-this.start}},{key:"readFloat",value:function(e){var c=0;switch(e){case 4:c=this.dv.getFloat32(this.offset);break;case 8:c=this.dv.getFloat64(this.offset);break;default:throw new Error("read ".concat(e,"-byte float is not supported"))}return this.offset+=e,c}},{key:"back",value:function(e){this.offset-=e}},{key:"skip",value:function(e){this.offset+=e}},{key:"readInt",value:function(e){var c=this.offset;switch(this.offset+=e,e){case 1:return this.dv.getInt8(c);case 2:return this.dv.getInt16(c);case 4:return this.dv.getInt32(c);default:throw new Error("read ".concat(e,"-byte integers is not supported"))}}},{key:"read",value:function(e){var c=this.offset;switch(this.offset+=e,e){case 1:return this.dv.getUint8(c);case 2:return this.dv.getUint16(c);case 3:return(this.dv.getUint16(c)<<8)+this.dv.getUint8(c+2);case 4:return this.dv.getUint32(c);default:return this.back(e-4),this.read(e-4)+this.dv.getUint32(c)*Math.pow(256,e-4)}}},{key:"write",value:function(e,c){var t=this.offset;switch(this.offset+=e,e){case 1:return this.dv.setUint8(t,c);case 2:return this.dv.setUint16(t,c);case 3:return this.dv.setUint8(t,c>>>16),this.dv.setUint16(t+1,65535&c);case 4:return this.dv.setUint32(t,c);default:throw new Error("write ".concat(e,"-byte integers is not supported"))}}},{key:"readToBuffer",value:function(e){var c;return c=this.offset||e?this.dv.buffer.slice(this.offset,e?this.offset+e:this.end):this.dv.buffer,this.offset+=c.byteLength,c}},{key:"readToUint8",value:function(e){var c=new Uint8Array(this.dv.buffer,this.offset,e||this.unreadLength);return this.offset+=c.byteLength,c}},{key:"readString",value:function(e){for(var c=0,t="";c<e;c++)t+=String.fromCharCode(this.dv.getUint8(this.offset)),this.offset++;return t}}],[{key:"fromUint8",value:function(c){return new e(c.buffer,c.byteOffset,c.byteLength)}},{key:"concatUint8s",value:function(e){var c=new Uint8Array(e.reduce((function(e,c){return e+c.byteLength}),0)),t=0;return e.forEach((function(e){c.set(e,t),t+=e.byteLength})),c}},{key:"concatUint8",value:function(){for(var e=arguments.length,c=new Array(e),t=0;t<e;t++)c[t]=arguments[t];return this.concatUint8s(c)}}]),e}(),Gp=function(){function e(c,t){wb(this,e),this.offset=0,this.val=c,this.size=t}return Db(e,[{key:"skip",value:function(e){this.offset+=e}},{key:"read",value:function(e){var c=this.size-this.offset-e;if(c>=0){var t=0,a=0;if(this.offset+=e,this.size>31){for(;a<e;a++)t+=Math.pow(2,a);return this.val/Math.pow(2,c)&t}for(;a<e;a++)t+=1<<a;return this.val>>>c&t}throw new Error("the number of the read operation exceeds the total length limit of bits")}}],[{key:"fromByte",value:function(c,t){return new e(c.read(t),t<<3)}}]),e}(),Kp=function(){function e(){wb(this,e)}return Db(e,null,[{key:"findBox",value:function(c,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=[];if(!c)return r;for(var i=0,n="",f=0;c.length>7;){if(i=Ep(c),n=String.fromCharCode.apply(null,c.subarray(4,8)),f=8,1===i?(i=Sp(c,8),f+=8):i||(i=c.length),!t[0]||n===t[0]){var s=c.subarray(0,i);if(!(t.length<2))return e.findBox(s.subarray(f),t.slice(1),a+f);r.push({start:a,size:i,headerSize:f,type:n,data:s})}a+=i,c=c.subarray(i)}return r}},{key:"tfhd",value:function(e){return Yp(e,!0,(function(e,c){e.trackId=Ep(c);var t=4,a=1&e.flags,r=2&e.flags,i=8&e.flags,n=16&e.flags,f=32&e.flags;a&&(t+=4,e.baseDataOffset=Ep(c,t),t+=4),r&&(e.sampleDescriptionIndex=Ep(c,t),t+=4),i&&(e.defaultSampleDuration=Ep(c,t),t+=4),n&&(e.defaultSampleSize=Ep(c,t),t+=4),f&&(e.defaultSampleFlags=Ep(c,t))}))}},{key:"sidx",value:function(e){return Yp(e,!0,(function(e,c){var t=0;e.reference_ID=Ep(c,t),t+=4,e.timescale=Ep(c,t),t+=4,0===e.version?(e.earliest_presentation_time=Ep(c,t),t+=4,e.first_offset=Ep(c,t),t+=4):(e.earliest_presentation_time=Sp(c,t),t+=8,e.first_offset=Sp(c,t),t+=8),t+=2,e.references=[];var a=yp(c,t);t+=2;for(var r=0;r<a;r++){var i={};e.references.push(i);var n=Ep(c,t);t+=4,i.reference_type=n>>31&1,i.referenced_size=2147483647&n,i.subsegment_duration=Ep(c,t),n=Ep(c,t+=4),t+=4,i.starts_with_SAP=n>>31&1,i.SAP_type=n>>28&7,i.SAP_delta_time=268435455&n}}))}},{key:"moov",value:function(c){return Yp(c,!1,(function(c,t,a){c.mvhd=e.mvhd(e.findBox(t,["mvhd"],a)[0]),c.trak=e.findBox(t,["trak"],a).map((function(c){return e.trak(c)})),c.pssh=e.pssh(e.findBox(t,["pssh"],a)[0])}))}},{key:"mvhd",value:function(e){return Yp(e,!0,(function(e,c){var t=0;1===e.version?(e.timescale=Ep(c,16),e.duration=Sp(c,20),t+=28):(e.timescale=Ep(c,8),e.duration=Ep(c,12),t+=16),e.nextTrackId=Ep(c,t+76)}))}},{key:"trak",value:function(c){return Yp(c,!1,(function(c,t,a){c.tkhd=e.tkhd(e.findBox(t,["tkhd"],a)[0]),c.mdia=e.mdia(e.findBox(t,["mdia"],a)[0])}))}},{key:"tkhd",value:function(e){return Yp(e,!0,(function(e,c){var t=jp.fromUint8(c);1===e.version?(t.read(8),t.read(8),e.trackId=t.read(4),t.read(4),e.duration=t.read(8)):(t.read(4),t.read(4),e.trackId=t.read(4),t.read(4),e.duration=t.read(4)),t.skip(16),e.matrix=[];for(var a=0;a<36;a++)e.matrix.push(t.read(1));t.back(36);for(var r,i=[],n=0;n<3;n++)i.push(kp(t.readInt(2),t.readInt(2))),i.push(kp(t.readInt(2),t.readInt(2))),r=t.readInt(4),i.push(kp(r>>30,1073741823&r));e.rotation=function(e){if(e.length<5)return 0;var c=Math.hypot(e[0],e[3]),t=Math.hypot(e[1],e[4]);return 0===c||0===t?0:180*Math.atan2(e[1]/t,e[0]/c)/Math.PI}(i),e.width=t.read(4),e.height=t.read(4)}))}},{key:"mdia",value:function(c){return Yp(c,!1,(function(c,t,a){c.mdhd=e.mdhd(e.findBox(t,["mdhd"],a)[0]),c.hdlr=e.hdlr(e.findBox(t,["hdlr"],a)[0]),c.minf=e.minf(e.findBox(t,["minf"],a)[0])}))}},{key:"mdhd",value:function(e){return Yp(e,!0,(function(e,c){var t=0;1===e.version?(e.timescale=Ep(c,16),e.duration=Sp(c,20),t+=28):(e.timescale=Ep(c,8),e.duration=Ep(c,12),t+=16);var a=yp(c,t);e.language=String.fromCharCode(96+(a>>10&31),96+(a>>5&31),96+(31&a))}))}},{key:"hdlr",value:function(e){return Yp(e,!0,(function(e,c){0===e.version&&(e.handlerType=String.fromCharCode.apply(null,c.subarray(4,8)))}))}},{key:"minf",value:function(c){return Yp(c,!1,(function(c,t,a){c.vmhd=e.vmhd(e.findBox(t,["vmhd"],a)[0]),c.smhd=e.smhd(e.findBox(t,["smhd"],a)[0]),c.stbl=e.stbl(e.findBox(t,["stbl"],a)[0])}))}},{key:"vmhd",value:function(e){return Yp(e,!0,(function(e,c){e.graphicsmode=yp(c),e.opcolor=[yp(c,2),yp(c,4),yp(c,6)]}))}},{key:"smhd",value:function(e){return Yp(e,!0,(function(e,c){e.balance=yp(c)}))}},{key:"stbl",value:function(c){return Yp(c,!1,(function(c,t,a){var r,i,n;c.stsd=e.stsd(e.findBox(t,["stsd"],a)[0]),c.stts=e.stts(e.findBox(t,["stts"],a)[0]),c.ctts=e.ctts(e.findBox(t,["ctts"],a)[0]),c.stsc=e.stsc(e.findBox(t,["stsc"],a)[0]),c.stsz=e.stsz(e.findBox(t,["stsz"],a)[0]),c.stco=e.stco(e.findBox(t,["stco"],a)[0]),c.stco||(c.co64=e.co64(e.findBox(t,["co64"],a)[0]),c.stco=c.co64);var f=null===(r=c.stsd.entries[0])||void 0===r||null===(i=r.sinf)||void 0===i||null===(n=i.schi)||void 0===n?void 0:n.tenc.default_IV_size;c.stss=e.stss(e.findBox(t,["stss"],a)[0]),c.senc=e.senc(e.findBox(t,["senc"],a)[0],f)}))}},{key:"senc",value:function(e){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return Yp(e,!0,(function(e,t){var a=0,r=Ep(t,a);a+=4,e.samples=[];for(var i=0;i<r;i++){for(var n={InitializationVector:[]},f=0;f<c;f++)n.InitializationVector[f]=t[a+f];if(a+=c,2&e.flags){n.subsamples=[];var s=yp(t,a);a+=2;for(var o=0;o<s;o++){var l={};l.BytesOfClearData=yp(t,a),a+=2,l.BytesOfProtectedData=Ep(t,a),a+=4,n.subsamples.push(l)}}e.samples.push(n)}}))}},{key:"pssh",value:function(e){return Yp(e,!0,(function(e,c){for(var t=[],a=[],r=0,i=0;i<16;i++)a.push(Wp(c[r+i]));if(r+=16,e.version>0){var n=Ep(c,r);r+=4;for(var f=0;f<(""+n).length;f++)for(var s=0;s<16;s++){var o=c[r];r+=1,t.push(Wp(o))}}var l=Ep(c,r);e.data_size=l,r+=4,e.kid=t,e.system_id=a,e.buffer=c}))}},{key:"stsd",value:function(c){return Yp(c,!0,(function(c,t,a){c.entryCount=Ep(t),c.entries=e.findBox(t.subarray(4),[],a+4).map((function(c){switch(c.type){case"av01":return e.av01(c);case"avc1":case"avc2":case"avc3":case"avc4":return e.avc1(c);case"hvc1":case"hev1":return e.hvc1(c);case"mp4a":return e.mp4a(c);case"alaw":case"ulaw":return e.alaw(c);case"enca":return Yp(c,!1,(function(c,t,a){c.channelCount=yp(t,16),c.samplesize=yp(t,18),c.sampleRate=Ep(t,24)/65536,t=t.subarray(28),c.sinf=e.sinf(e.findBox(t,["sinf"],a)[0]),c.esds=e.esds(e.findBox(t,["esds"],a)[0])}));case"encv":return Yp(c,!1,(function(c,t,a){c.width=yp(t,24),c.height=yp(t,26),c.horizresolution=Ep(t,28),c.vertresolution=Ep(t,32),t=t.subarray(78),c.sinf=e.sinf(e.findBox(t,["sinf"],a)[0]),c.avcC=e.avcC(e.findBox(t,["avcC"],a)[0]),c.hvcC=e.hvcC(e.findBox(t,["hvcC"],a)[0]),c.pasp=e.pasp(e.findBox(t,["pasp"],a)[0])}))}})).filter(Boolean)}))}},{key:"tenc",value:function(e){return Yp(e,!1,(function(e,c){var t=6;e.default_IsEncrypted=c[t],t+=1,e.default_IV_size=c[t],t+=1,e.default_KID=[];for(var a=0;a<16;a++)e.default_KID.push(Wp(c[t])),t+=1}))}},{key:"schi",value:function(c){return Yp(c,!1,(function(c,t,a){c.tenc=e.tenc(e.findBox(t,["tenc"],a)[0])}))}},{key:"sinf",value:function(c){return Yp(c,!1,(function(c,t,a){c.schi=e.schi(e.findBox(t,["schi"],a)[0]),c.frma=e.frma(e.findBox(t,["frma"],a)[0])}))}},{key:"frma",value:function(e){return Yp(e,!1,(function(e,c){e.data_format="";for(var t=0;t<4;t++)e.data_format+=String.fromCharCode(c[t])}))}},{key:"colr",value:function(e){return Yp(e,!1,(function(c,t){var a=jp.fromUint8(t);c.data=e.data,c.colorType=a.readString(4),"nclx"===c.colorType?(c.colorPrimaries=a.read(2),c.transferCharacteristics=a.read(2),c.matrixCoefficients=a.read(2),c.fullRangeFlag=a.read(1)>>7):"rICC"!==c.colorType&&"prof"!==c.colorType||(c.iccProfile=t.readToUint8())}))}},{key:"av01",value:function(c){return Yp(c,!1,(function(c,t,a){var r=Hp(c,t),i=t.subarray(r);a+=r,c.av1C=e.av1C(e.findBox(i,["av1C"],a)[0]),c.colr=e.colr(e.findBox(i,["colr"],a)[0])}))}},{key:"av1C",value:function(e){return Yp(e,!1,(function(c,t){c.data=e.data;var a,r=jp.fromUint8(t),i=Gp.fromByte(r,4);c.marker=i.read(1),c.version=i.read(7),c.seqProfile=i.read(3),c.seqLevelIdx0=i.read(5),c.seqTier0=i.read(1),c.highBitdepth=i.read(1),c.twelveBit=i.read(1),c.monochrome=i.read(1),c.chromaSubsamplingX=i.read(1),c.chromaSubsamplingY=i.read(1),c.chromaSamplePosition=i.read(2),c.reserved=i.read(3),c.initialPresentationDelayPresent=i.read(1),c.initialPresentationDelayPresent?c.initialPresentationDelayMinusOne=i.read(4):c.initialPresentationDelayMinusOne=0,c.configOBUs=r.readToUint8(),2===c.seqLevelIdx0&&1===c.highBitdepth?a=1===c.twelveBit?"12":"10":c.seqProfile<=2&&(a=1===c.highBitdepth?"10":"08"),c.codec=["av01",c.seqProfile,(c.seqLevelIdx0<10?"0"+c.seqLevelIdx0:c.seqLevelIdx0)+(c.seqTier0?"H":"M"),a].join(".")}))}},{key:"avc1",value:function(c){return Yp(c,!1,(function(c,t,a){var r=Hp(c,t),i=t.subarray(r);a+=r,c.avcC=e.avcC(e.findBox(i,["avcC"],a)[0]),c.pasp=e.pasp(e.findBox(i,["pasp"],a)[0])}))}},{key:"avcC",value:function(e){return Yp(e,!1,(function(c,t){c.data=e.data,c.configurationVersion=t[0],c.AVCProfileIndication=t[1],c.profileCompatibility=t[2],c.AVCLevelIndication=t[3],c.codec=_p([t[1],t[2],t[3]]),c.lengthSizeMinusOne=3&t[4],c.spsLength=31&t[5],c.sps=[];for(var a=6,r=0;r<c.spsLength;r++){var i=yp(t,a);a+=2,c.sps.push(t.subarray(a,a+i)),a+=i}c.ppsLength=t[a],a+=1,c.pps=[];for(var n=0;n<c.ppsLength;n++){var f=yp(t,a);a+=2,c.pps.push(t.subarray(a,a+=f)),a+=f}}))}},{key:"hvc1",value:function(c){return Yp(c,!1,(function(c,t,a){var r=Hp(c,t),i=t.subarray(r);a+=r,c.hvcC=e.hvcC(e.findBox(i,["hvcC"],a)[0]),c.pasp=e.pasp(e.findBox(i,["pasp"],a)[0])}))}},{key:"hvcC",value:function(e){return Yp(e,!1,(function(c,t){c.data=e.data,c.codec="hev1.1.6.L93.B0",c.configurationVersion=t[0];var a=t[1];c.generalProfileSpace=a>>6,c.generalTierFlag=(32&a)>>5,c.generalProfileIdc=31&a,c.generalProfileCompatibility=Ep(t,2),c.generalConstraintIndicatorFlags=t.subarray(6,12),c.generalLevelIdc=t[12],c.avgFrameRate=yp(t,19),c.numOfArrays=t[22],c.vps=[],c.sps=[],c.pps=[];for(var r=23,i=0,n=0,f=0,s=0;s<c.numOfArrays;s++){i=63&t[r],n=yp(t,r+1),r+=3;for(var o,l=[],d=0;d<n;d++)f=yp(t,r),r+=2,l.push(t.subarray(r,r+f)),r+=f;if(32===i)(o=c.vps).push.apply(o,l);else if(33===i){var u;(u=c.sps).push.apply(u,l)}else if(34===i){var h;(h=c.pps).push.apply(h,l)}}}))}},{key:"pasp",value:function(e){return Yp(e,!1,(function(e,c){e.hSpacing=Ep(c),e.vSpacing=Ep(c,4)}))}},{key:"mp4a",value:function(c){return Yp(c,!1,(function(c,t,a){var r=qp(c,t);c.esds=e.esds(e.findBox(t.subarray(r),["esds"],a+r)[0])}))}},{key:"esds",value:function(e){return Yp(e,!0,(function(e,c){e.codec="mp4a.";for(var t=0,a=0,r=0,i=0;c.length;){for(i=c[t=0],a=c[t+1],t+=2;128&a;)r=(127&a)<<7,a=c[t],t+=1;if(r+=127&a,3===i)c=c.subarray(t+3);else{if(4!==i){if(5===i){var n=e.config=c.subarray(t,t+r),f=(248&n[0])>>3;return 31===f&&n.length>=2&&(f=32+((7&n[0])<<3)+((224&n[1])>>5)),e.objectType=f,e.codec+=f.toString(16),void("."===e.codec[e.codec.length-1]&&(e.codec=e.codec.substring(0,e.codec.length-1)))}return void("."===e.codec[e.codec.length-1]&&(e.codec=e.codec.substring(0,e.codec.length-1)))}e.codec+=(c[t].toString(16)+".").padStart(3,"0"),c=c.subarray(t+13)}}}))}},{key:"alaw",value:function(e){return Yp(e,!1,(function(e,c){qp(e,c)}))}},{key:"stts",value:function(e){return Yp(e,!0,(function(e,c){for(var t=Ep(c),a=[],r=4,i=0;i<t;i++)a.push({count:Ep(c,r),delta:Ep(c,r+4)}),r+=8;e.entryCount=t,e.entries=a}))}},{key:"ctts",value:function(e){return Yp(e,!0,(function(e,c){var t=Ep(c),a=[],r=4;if(1===e.version)for(var i=0;i<t;i++)a.push({count:Ep(c,r),offset:Ep(c,r+4)}),r+=8;else for(var n=0;n<t;n++)a.push({count:Ep(c,r),offset:-(1+~Ep(c,r+4))}),r+=8;e.entryCount=t,e.entries=a}))}},{key:"stsc",value:function(e){return Yp(e,!0,(function(e,c){for(var t=Ep(c),a=[],r=4,i=0;i<t;i++)a.push({firstChunk:Ep(c,r),samplesPerChunk:Ep(c,r+4),sampleDescriptionIndex:Ep(c,r+8)}),r+=12;e.entryCount=t,e.entries=a}))}},{key:"stsz",value:function(e){return Yp(e,!0,(function(e,c){var t=Ep(c),a=Ep(c,4),r=[];if(!t)for(var i=8,n=0;n<a;n++)r.push(Ep(c,i)),i+=4;e.sampleSize=t,e.sampleCount=a,e.entrySizes=r}))}},{key:"stco",value:function(e){return Yp(e,!0,(function(e,c){for(var t=Ep(c),a=[],r=4,i=0;i<t;i++)a.push(Ep(c,r)),r+=4;e.entryCount=t,e.entries=a}))}},{key:"co64",value:function(e){return Yp(e,!0,(function(e,c){for(var t=Ep(c),a=[],r=4,i=0;i<t;i++)a.push(Sp(c,r)),r+=8;e.entryCount=t,e.entries=a}))}},{key:"stss",value:function(e){return Yp(e,!0,(function(e,c){for(var t=Ep(c),a=[],r=4,i=0;i<t;i++)a.push(Ep(c,r)),r+=4;e.entryCount=t,e.entries=a}))}},{key:"moof",value:function(c){return Yp(c,!1,(function(c,t,a){c.mfhd=e.mfhd(e.findBox(t,["mfhd"],a)[0]),c.traf=e.findBox(t,["traf"],a).map((function(c){return e.traf(c)}))}))}},{key:"mfhd",value:function(e){return Yp(e,!0,(function(e,c){e.sequenceNumber=Ep(c)}))}},{key:"traf",value:function(c){return Yp(c,!1,(function(c,t,a){c.tfhd=e.tfhd(e.findBox(t,["tfhd"],a)[0]),c.tfdt=e.tfdt(e.findBox(t,["tfdt"],a)[0]),c.trun=e.trun(e.findBox(t,["trun"],a)[0])}))}},{key:"trun",value:function(e){return Yp(e,!0,(function(e,c){var t=e.version,a=e.flags,r=c.length,i=e.sampleCount=Ep(c),n=4;if(r>n&&1&a&&(e.dataOffset=-(1+~Ep(c,n)),n+=4),r>n&&4&a&&(e.firstSampleFlags=Ep(c,n),n+=4),e.samples=[],r>n)for(var f,s=0;s<i;s++)f={},256&a&&(f.duration=Ep(c,n),n+=4),512&a&&(f.size=Ep(c,n),n+=4),1024&a&&(f.flags=Ep(c,n),n+=4),2048&a&&(f.cts=t?-(1+~Ep(c,n+4)):Ep(c,n),n+=4),e.samples.push(f)}))}},{key:"tfdt",value:function(e){return Yp(e,!0,(function(e,c){1===e.version?e.baseMediaDecodeTime=Sp(c):e.baseMediaDecodeTime=Ep(c)}))}},{key:"probe",value:function(c){return!!e.findBox(c,["ftyp"])}},{key:"parseSampleFlags",value:function(e){return{isLeading:(12&e[0])>>>2,dependsOn:3&e[0],isDependedOn:(192&e[1])>>>6,hasRedundancy:(48&e[1])>>>4,paddingValue:(14&e[1])>>>1,isNonSyncSample:1&e[1],degradationPriority:e[2]<<8|e[3]}}},{key:"moovToTrack",value:function(e,c,t){var a,r,i=e.trak;if(i&&i.length){var n=i.find((function(e){var c,t;return"vide"===(null===(c=e.mdia)||void 0===c||null===(t=c.hdlr)||void 0===t?void 0:t.handlerType)})),f=i.find((function(e){var c,t;return"soun"===(null===(c=e.mdia)||void 0===c||null===(t=c.hdlr)||void 0===t?void 0:t.handlerType)}));if(n&&c){var s,o,l,d,u,h,b,p=c,g=null===(s=n.tkhd)||void 0===s?void 0:s.trackId;null!=g&&(p.id=n.tkhd.trackId),p.tkhdDuration=n.tkhd.duration,p.mvhdDurtion=e.mvhd.duration,p.mvhdTimecale=e.mvhd.timescale,p.timescale=p.formatTimescale=n.mdia.mdhd.timescale,p.duration=n.mdia.mdhd.duration||p.mvhdDurtion/p.mvhdTimecale*p.timescale,p.rotation=n.tkhd.rotation,p.matrix=n.tkhd.matrix;var m,v,y,E,S,_,T,k,A=n.mdia.minf.stbl.stsd.entries[0];if(p.width=A.width,p.height=A.height,A.pasp&&(p.sarRatio=[A.pasp.hSpacing,A.pasp.vSpacing]),A.av1C)p.codecType=Vb,p.codec=A.av1C.codec,p.av1C=A.av1C.data,p.colr=A.colr.data;else if(A.hvcC)p.codecType=qb,p.codec=A.hvcC.codec,p.vps=A.hvcC.vps,p.sps=A.hvcC.sps,p.pps=A.hvcC.pps,p.hvcC=A.hvcC.data;else{if(!A.avcC)throw new Error("unknown video stsd entry");p.codec=A.avcC.codec,p.sps=A.avcC.sps,p.pps=A.avcC.pps}if(p.present=!0,p.ext={},p.ext.stss=null===(o=n.mdia)||void 0===o||null===(l=o.minf)||void 0===l||null===(d=l.stbl)||void 0===d?void 0:d.stss,p.ext.ctts=null===(u=n.mdia)||void 0===u||null===(h=u.minf)||void 0===h||null===(b=h.stbl)||void 0===b?void 0:b.ctts,A&&"encv"===A.type)p.isVideoEncryption=!0,A.default_KID=null===(m=A.sinf)||void 0===m||null===(v=m.schi)||void 0===v?void 0:v.tenc.default_KID,A.default_IsEncrypted=null===(y=A.sinf)||void 0===y||null===(E=y.schi)||void 0===E?void 0:E.tenc.default_IsEncrypted,A.default_IV_size=null===(S=A.sinf)||void 0===S||null===(_=S.schi)||void 0===_?void 0:_.tenc.default_IV_size,p.videoSenc=n.mdia.minf.stbl.senc&&n.mdia.minf.stbl.senc.samples,A.data_format=null===(T=A.sinf)||void 0===T||null===(k=T.frma)||void 0===k?void 0:k.data_format,p.useEME=e.useEME,p.kidValue=e.kidValue,p.pssh=e.pssh,p.encv=A}if(f&&t){var L,I,w,R,D,x,P,C,O,M=t,F=null===(L=f.tkhd)||void 0===L?void 0:L.trackId;null!=F&&(M.id=f.tkhd.trackId),M.tkhdDuration=f.tkhd.duration,M.mvhdDurtion=e.mvhd.duration,M.mvhdTimecale=e.mvhd.timescale,M.timescale=M.formatTimescale=f.mdia.mdhd.timescale,M.duration=f.mdia.mdhd.duration||M.mvhdDurtion/M.mvhdTimecale*M.timescale;var N,U,B,$,j,G,K,V,H=f.mdia.minf.stbl.stsd.entries[0];switch(M.sampleSize=H.sampleSize,M.sampleRate=H.sampleRate,M.channelCount=H.channelCount,M.present=!0,H.type){case"alaw":M.codecType=M.codec=Wb,M.sampleRate=8e3;break;case"ulaw":M.codecType=M.codec=zb,M.sampleRate=8e3;break;default:M.sampleDuration=gp.getFrameDuration(M.sampleRate,M.timescale),M.sampleRateIndex=gp.getRateIndexByRate(M.sampleRate),M.objectType=(null===(a=H.esds)||void 0===a?void 0:a.objectType)||2,H.esds&&(M.config=Array.from(H.esds.config)),M.codec=(null===(r=H.esds)||void 0===r?void 0:r.codec)||"mp4a.40.2"}if(M.sampleDuration=gp.getFrameDuration(M.sampleRate,M.timescale),M.objectType=(null===(I=H.esds)||void 0===I?void 0:I.objectType)||2,H.esds&&(H.esds.config?M.config=Array.from(H.esds.config):console.warn("esds config is null")),M.codec=(null===(w=H.esds)||void 0===w?void 0:w.codec)||"mp4a.40.2",M.sampleRateIndex=gp.getRateIndexByRate(M.sampleRate),M.ext={},M.ext.stss=null===(R=f.mdia)||void 0===R||null===(D=R.minf)||void 0===D||null===(x=D.stbl)||void 0===x?void 0:x.stss,M.ext.ctts=null===(P=f.mdia)||void 0===P||null===(C=P.minf)||void 0===C||null===(O=C.stbl)||void 0===O?void 0:O.ctts,M.present=!0,H&&"enca"===H.type)M.isAudioEncryption=!0,H.data_format=null===(N=H.sinf)||void 0===N||null===(U=N.frma)||void 0===U?void 0:U.data_format,H.default_KID=null===(B=H.sinf)||void 0===B||null===($=B.schi)||void 0===$?void 0:$.tenc.default_KID,H.default_IsEncrypted=null===(j=H.sinf)||void 0===j||null===(G=j.schi)||void 0===G?void 0:G.tenc.default_IsEncrypted,H.default_IV_size=null===(K=H.sinf)||void 0===K||null===(V=K.schi)||void 0===V?void 0:V.tenc.default_IV_size,M.audioSenc=f.mdia.minf.stbl.senc&&f.mdia.minf.stbl.senc.samples,M.useEME=e.useEME,M.kidValue=e.kidValue,M.enca=H}if(t&&(t.isVideoEncryption=!!c&&c.isVideoEncryption),c&&(c.isAudioEncryption=!!t&&t.isAudioEncryption),null!=c&&c.encv||null!=t&&t.enca){var q,Y,W=null==c||null===(q=c.encv)||void 0===q?void 0:q.default_KID,z=null==t||null===(Y=t.enca)||void 0===Y?void 0:Y.default_KID,X=W||z?(W||z).join(""):null;c&&(c.kid=X),t&&(t.kid=X)}return c&&(c.flags=3841),t&&(t.flags=1793),{videoTrack:c,audioTrack:t}}}},{key:"evaluateDefaultDuration",value:function(e,c,t){var a,r=null==c||null===(a=c.samples)||void 0===a?void 0:a.length;return r?1024*r/c.timescale*e.timescale/t:1024}},{key:"moofToSamples",value:function(c,t,a){var r={};return c.mfhd&&(t&&(t.sequenceNumber=c.mfhd.sequenceNumber),a&&(a.sequenceNumber=c.mfhd.sequenceNumber)),c.traf.forEach((function(c){var i=c.tfhd,n=c.tfdt,f=c.trun;if(i&&f){n&&(t&&t.id===i.trackId&&(t.baseMediaDecodeTime=n.baseMediaDecodeTime),a&&a.id===i.trackId&&(a.baseMediaDecodeTime=n.baseMediaDecodeTime));var s=i.defaultSampleSize||0,o=i.defaultSampleDuration||e.evaluateDefaultDuration(t,a,f.samples.length||f.sampleCount),l=f.dataOffset||0,d=0,u=-1;if(!f.samples.length&&f.sampleCount){r[i.trackId]=[];for(var h=0;h<f.sampleCount;h++)r[i.trackId].push({offset:l,dts:d,duration:o,size:s}),d+=o,l+=s}else r[i.trackId]=f.samples.map((function(e,c){return(e={offset:l,dts:d,pts:d+(e.cts||0),duration:e.duration||o,size:e.size||s,gopId:u,keyframe:0===c||null!==e.flags&&void 0!==e.flags&&(65536&e.flags)>>>0!=65536}).keyframe&&(u++,e.gopId=u),d+=e.duration,l+=e.size,e}))}})),r}},{key:"moovToSamples",value:function(e){var c=e.trak;if(c&&c.length){var t=c.find((function(e){var c,t;return"vide"===(null===(c=e.mdia)||void 0===c||null===(t=c.hdlr)||void 0===t?void 0:t.handlerType)})),a=c.find((function(e){var c,t;return"soun"===(null===(c=e.mdia)||void 0===c||null===(t=c.hdlr)||void 0===t?void 0:t.handlerType)}));if(t||a){var r,i;if(t){var n,f,s=null===(n=t.mdia)||void 0===n||null===(f=n.minf)||void 0===f?void 0:f.stbl;if(!s)return;var o=s.stts,l=s.stsc,d=s.stsz,u=s.stco,h=s.stss,b=s.ctts;if(!(o&&l&&d&&u&&h))return;r=Vp(o,l,d,u,b,h)}if(a){var p,g,m,v=null===(p=a.mdia)||void 0===p||null===(g=p.minf)||void 0===g?void 0:g.stbl;if(!v)return;var y=null===(m=a.mdia.mdhd)||void 0===m?void 0:m.timescale,E=v.stts,S=v.stsc,_=v.stsz,T=v.stco;if(!(y&&E&&S&&_&&T))return;i=Vp(E,S,_,T)}return{videoSamples:r,audioSamples:i}}}}}]),e}();function Vp(e,c,t,a,r,i){var n,f,s,o=[],l=null==r?void 0:r.entries,d=c.entries,u=a.entries,h=t.entrySizes,b=null==i?void 0:i.entries;b&&(n={},b.forEach((function(e){n[e-1]=!0}))),l&&(f=[],l.forEach((function(e){for(var c=e.count,t=e.offset,a=0;a<c;a++)f.push(t)})));var p=-1,g=0,m=0,v=0,y=0,E=0,S=d[0].samplesPerChunk,_=d[1]?d[1].firstChunk-1:1/0;return e.entries.forEach((function(e){for(var c=e.count,a=e.delta,r=0;r<c;r++)s={dts:g,duration:a,size:h[m]||t.sampleSize,offset:u[v]+E,index:m},b&&(s.keyframe=n[m],s.keyframe&&p++,s.gopId=p),f&&m<f.length&&(s.pts=s.dts+f[m]),o.push(s),g+=a,++m<S?E+=s.size:(v++,E=0,v>=_&&(y++,_=d[y+1]?d[y+1].firstChunk-1:1/0),S+=d[y].samplesPerChunk)})),o}function Hp(e,c){return e.dataReferenceIndex=yp(c,6),e.width=yp(c,24),e.height=yp(c,26),e.horizresolution=Ep(c,28),e.vertresolution=Ep(c,32),e.frameCount=yp(c,40),e.depth=yp(c,74),78}function qp(e,c){return e.dataReferenceIndex=yp(c,6),e.channelCount=yp(c,16),e.sampleSize=yp(c,18),e.sampleRate=Ep(c,24)/65536,28}function Yp(e,c,t){if(e){if(e.size!==e.data.length)throw new Error("box ".concat(e.type," size !== data.length"));var a={start:e.start,size:e.size,headerSize:e.headerSize,type:e.type};return c&&(a.version=e.data[e.headerSize],a.flags=function(e){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[c]<<16)+(e[c+1]<<8)+(e[c+2]||0)}(e.data,e.headerSize+1),a.headerSize+=4),t(a,e.data.subarray(a.headerSize),a.start+a.headerSize),a}}var Wp=function(){for(var e=[],c=arguments.length,t=new Array(c),a=0;a<c;a++)t[a]=arguments[a];return t.forEach((function(c){e.push(function(e,c,t){for(var a=String(t),r=0|c,i=Math.ceil(r/a.length),n=[],f=String(e);i--;)n.push(a);return n.join("").substring(0,r-f.length)+f}(Number(c).toString(16),2,0))})),e[0]},zp=function(){function e(c,t,a){wb(this,e),xb(this,"__loadedMoofWraps",[]),xb(this,"__lastRemainData",null),xb(this,"__lastRemainDataStart",0),xb(this,"__nextMoofStart",-1),this.videoTrack=c||new rp,this.audioTrack=t||new ip,this.metadataTrack=a||new op}return Db(e,[{key:"demuxPart",value:function(e,c,t){var a=this,r=this.videoTrack,i=this.audioTrack,n=r.exist(),f=i.exist(),s=/av01/.test(r.codec);r.samples=[],i.samples=[];var o=e,l=c;if(this.__lastRemainData){var d=this.__lastRemainDataStart+this.__lastRemainData.byteLength;if(c<=d&&c>this.__lastRemainDataStart&&c+e.byteLength>d){var u=e.subarray(this.__lastRemainData.byteLength+this.__lastRemainDataStart-c);o=mp(this.__lastRemainData,u),l=this.__lastRemainDataStart,this.__lastRemainData=null}else this.__lastRemainData=null,this.__lastRemainDataStart=0,this.__nextMoofStart=-1}if(!t){var h=Kp.findBox(o,["moov"])[0];if(!h)throw new Error("cannot found moov box");t=Kp.moov(h)}if(o){var b=l+o.byteLength;n||f||Kp.moovToTrack(t,r,i);var p=[];this.__nextMoofStart<0?Kp.findBox(o,["moof"],l).forEach((function(e){return p.push(e)})):this.__nextMoofStart>=l&&this.__nextMoofStart<=b-8&&Kp.findBox(o.subarray(this.__nextMoofStart-l),["moof"],this.__nextMoofStart).forEach((function(e){return p.push(e)})),p.filter((function(e){return e.size<=e.data.length})).forEach((function(e){var c=Kp.moof(e);a.__nextMoofStart=c.start+Math.max.apply(Math,Nb(c.traf.map((function(e){return e.trun.samples.reduce((function(e,c){return e+c.size}),e.trun.dataOffset||0)})))),a.__loadedMoofWraps.push({start:c.start,nextMoofStart:a.__nextMoofStart,moof:c}),a.__loadedMoofWraps.sort((function(e,c){return e.start-c.start}))}));var g,m=function(e,c){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=Ub(e))||c&&e&&"number"==typeof e.length){t&&(e=t);var a=0,r=function(){};return{s:r,n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,n=!0,f=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return n=e.done,e},e:function(e){f=!0,i=e},f:function(){try{n||null==t.return||t.return()}finally{if(f)throw i}}}}(this.__loadedMoofWraps);try{var v=function(){var e=g.value;if(e.start>b||e.nextMoofStart<l)return"continue";var c,t=e.start,n=Kp.moofToSamples(e.moof,r,i),f=r.baseMediaDecodeTime,d=i.baseMediaDecodeTime;Object.keys(n).forEach((function(e){r.id==e?n[e].some((function(e){var i=e.offset+=t;if(!(i<l)){if(i+e.size>b)return!0;var n=new np((e.pts||e.dts)+f,e.dts+f);n.duration=e.duration,n.gopId=e.gopId,e.keyframe&&n.setToKeyframe();var d=o.subarray(i-l,i-l+e.size);if(n.data=d,!s)for(var u=0,h=d.length-1;u<h;)c=Ep(d,u),u+=4,n.units.push(d.subarray(u,u+c)),u+=c;a.__lastRemainDataStart=i+e.size,r.samples.push(n)}})):i.id==e&&n[e].some((function(e){var c=e.offset+t;if(!(c<l)){if(c+e.size>b)return!0;var r=o.subarray(c-l,c-l+e.size);i.samples.push(new fp(e.dts+d,r,e.duration)),a.__lastRemainDataStart=c+e.size}}))}))};for(m.s();!(g=m.n()).done;)v()}catch(nm){m.e(nm)}finally{m.f()}}return this.__lastRemainDataStart>l&&this.__lastRemainDataStart<o.byteLength+l?this.__lastRemainData=o.subarray(this.__lastRemainDataStart-l):(this.__lastRemainData=o,this.__lastRemainDataStart=l),r.samples.length&&(r.baseMediaDecodeTime=r.samples[0].pts),i.samples.length&&(i.baseMediaDecodeTime=i.samples[0].pts),{videoTrack:r,audioTrack:i,metadataTrack:this.metadataTrack}}},{key:"demux",value:function(e,c){var t=this.videoTrack,a=this.audioTrack,r=t.exist(),i=a.exist();if(t.samples=[],a.samples=[],c){if(!i){var n=Kp.findBox(c,["moov"])[0];if(!n)throw new Error("cannot found moov box");Kp.moovToTrack(Kp.moov(n),null,a)}var f=Kp.findBox(c,["moof"])[0];if(f){var s=Kp.moofToSamples(Kp.moof(f),null,a)[a.id],o=a.baseMediaDecodeTime;if(s){var l=f.start;s.map((function(e){e.offset+=l;var t=c.subarray(e.offset,e.offset+e.size);a.samples.push(new fp(e.dts+o,t,e.duration))}))}}}if(e){if(!r&&!i){var d=Kp.findBox(e,["moov"])[0];if(!d)throw new Error("cannot found moov box");Kp.moovToTrack(Kp.moov(d),t,a)}var u=Kp.findBox(e,["moof"])[0];if(u){var h,b=Kp.moofToSamples(Kp.moof(u),t,a),p=t.baseMediaDecodeTime,g=a.baseMediaDecodeTime,m=u.start;Object.keys(b).forEach((function(c){t.id==c?b[c].map((function(c){c.offset+=m;var a=new np((c.pts||c.dts)+p,c.dts+p);a.duration=c.duration,a.gopId=c.gopId,c.keyframe&&a.setToKeyframe();var r=e.subarray(c.offset,c.offset+c.size);a.data=r;for(var i=0,n=r.length-1;i<n;)h=Ep(r,i),i+=4,a.units.push(r.subarray(i,i+h)),i+=h;t.samples.push(a)})):a.id==c&&b[c].map((function(c){c.offset+=m;var t=e.subarray(c.offset,c.offset+c.size);a.samples.push(new fp(c.dts+g,t,c.duration))}))}))}}return{videoTrack:t,audioTrack:a,metadataTrack:this.metadataTrack}}},{key:"reset",value:function(){this.videoTrack.reset(),this.audioTrack.reset(),this.metadataTrack.reset()}}],[{key:"probe",value:function(e){return Kp.probe(e)}}]),e}();var Xp=function(){function e(){wb(this,e),this.buffer=new Uint8Array(0)}return Db(e,[{key:"write",value:function(){for(var e=this,c=arguments.length,t=new Array(c),a=0;a<c;a++)t[a]=arguments[a];t.forEach((function(c){c?e.buffer=function(e){for(var c=0,t=arguments.length,a=new Array(t>1?t-1:0),r=1;r<t;r++)a[r-1]=arguments[r];a.forEach((function(e){c+=e.length}));var i=new e(c),n=0;return a.forEach((function(e){i.set(e,n),n+=e.length})),i}(Uint8Array,e.buffer,c):window.console.warn(c)}))}}],[{key:"writeUint16",value:function(e){return new Uint8Array([e>>8&255,255&e])}},{key:"writeUint32",value:function(e){return new Uint8Array([e>>24,e>>16&255,e>>8&255,255&e])}}]),e}(),Qp=Math.pow(2,32)-1,Jp=function(){function e(){wb(this,e)}return Db(e,null,[{key:"box",value:function(e){for(var c=arguments.length,t=new Array(c>1?c-1:0),a=1;a<c;a++)t[a-1]=arguments[a];var r=8+(t=t.filter(Boolean)).reduce((function(e,c){return e+c.byteLength}),0),i=new Uint8Array(r);i[0]=r>>24&255,i[1]=r>>16&255,i[2]=r>>8&255,i[3]=255&r,i.set(e,4);var n=8;return t.forEach((function(e){i.set(e,n),n+=e.byteLength})),i}},{key:"ftyp",value:function(c){return c.find((function(e){return e.type===jb&&e.codecType===qb}))?e.FTYPHEV1:e.FTYPAVC1}},{key:"initSegment",value:function(c){return mp(e.ftyp(c),e.moov(c))}},{key:"pssh",value:function(c){var t=new Uint8Array([1,0,0,0].concat([16,119,239,236,192,178,77,2,172,227,60,30,82,226,251,75],[0,0,0,1],Tp(c.kid),[0,0,0,0]));return e.box(e.types.pssh,t)}},{key:"moov",value:function(c){if(c[0].useEME&&(c[0].encv||c[0].enca)){c[0].pssh||(c[0].pssh={kid:c[0].kid});var t=this.pssh(c[0].pssh);return e.box.apply(e,[e.types.moov,e.mvhd(c[0].mvhdDurtion||c[0].duration,c[0].mvhdTimecale||c[0].timescale),e.mvex(c)].concat(Nb(c.map((function(c){return e.trak(c)}))),[t]))}return e.box.apply(e,[e.types.moov,e.mvhd(c[0].mvhdDurtion||c[0].duration,c[0].mvhdTimecale||c[0].timescale)].concat(Nb(c.map((function(c){return e.trak(c)}))),[e.mvex(c)]))}},{key:"mvhd",value:function(c){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9e4;return e.box(e.types.mvhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,t>>24&255,t>>16&255,t>>8&255,255&t,c>>24&255,c>>16&255,c>>8&255,255&c,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]))}},{key:"trak",value:function(c){return e.box(e.types.trak,e.tkhd(c.id,c.tkhdDuration||0,c.width,c.height),e.mdia(c))}},{key:"tkhd",value:function(c,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;return e.box(e.types.tkhd,new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,c>>24&255,c>>16&255,c>>8&255,255&c,0,0,0,0,t>>24&255,t>>16&255,t>>8&255,255&t,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,a>>8&255,255&a,0,0,r>>8&255,255&r,0,0]))}},{key:"mdia",value:function(c){return e.box(e.types.mdia,e.mdhd(c.duration,c.timescale),e.hdlr(c.type),e.minf(c))}},{key:"mdhd",value:function(c){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9e4;return e.box(e.types.mdhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,t>>24&255,t>>16&255,t>>8&255,255&t,c>>24&255,c>>16&255,c>>8&255,255&c,85,196,0,0]))}},{key:"hdlr",value:function(c){return e.box(e.types.hdlr,e.HDLR_TYPES[c])}},{key:"minf",value:function(c){return e.box(e.types.minf,c.type===jb?e.VMHD:e.SMHD,e.DINF,e.stbl(c))}},{key:"stbl",value:function(c){var t=[];return c&&c.ext&&c.ext.stss&&t.push(e.stss(c.ext.stss.entries)),e.box(e.types.stbl,e.stsd(c),e.STTS,t[0],e.STSC,e.STSZ,e.STCO)}},{key:"stsd",value:function(c){var t;return t="audio"===c.type?c.useEME&&c.enca?e.enca(c):c.codecType===Xb?e.opus(c):e.mp4a(c):c.useEME&&c.encv?e.encv(c):c.av1C?e.av01(c):e.avc1hev1(c),e.box(e.types.stsd,new Uint8Array([0,0,0,0,0,0,0,1]),t)}},{key:"enca",value:function(c){var t=c.enca.channelCount,a=c.enca.sampleRate,r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,a>>8&255,255&a,0,0]),i=e.esds(c.config),n=e.sinf(c.enca);return e.box(e.types.enca,r,i,n)}},{key:"encv",value:function(c){var t,a,r=c.sps.length>0?c.sps[0]:[],i=c.pps.length>0?c.pps[0]:[],n=c.width,f=c.height,s=c.sarRatio[0],o=c.sarRatio[1],l=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,n>>8&255,255&n,f>>8&255,255&f,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),d=new Uint8Array((t=(a=[1,r[1],r[2],r[3],255,225,r.length>>>8&255,255&r.length]).concat.apply(a,Nb(r)).concat([1,i.length>>>8&255,255&i.length])).concat.apply(t,Nb(i))),u=new Uint8Array([0,0,88,57,0,15,200,192,0,4,86,72]),h=e.sinf(c.encv),b=new Uint8Array([s>>24,s>>16&255,s>>8&255,255&s,o>>24,o>>16&255,o>>8&255,255&o]);return e.box(e.types.encv,l,e.box(e.types.avcC,d),e.box(e.types.btrt,u),h,e.box(e.types.pasp,b))}},{key:"schi",value:function(c){var t=new Uint8Array([]),a=e.tenc(c);return e.box(e.types.schi,t,a)}},{key:"tenc",value:function(c){var t=new Uint8Array([0,0,0,0,0,0,255&c.default_IsEncrypted,255&c.default_IV_size].concat(Tp(c.default_KID)));return e.box(e.types.tenc,t)}},{key:"sinf",value:function(c){var t=new Uint8Array([]),a=new Uint8Array([c.data_format.charCodeAt(0),c.data_format.charCodeAt(1),c.data_format.charCodeAt(2),c.data_format.charCodeAt(3)]),r=new Uint8Array([0,0,0,0,99,101,110,99,0,1,0,0]),i=e.schi(c);return e.box(e.types.sinf,t,e.box(e.types.frma,a),e.box(e.types.schm,r),i)}},{key:"av01",value:function(c){return e.box(e.types.av01,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,c.width>>8&255,255&c.width,c.height>>8&255,255&c.height,0,72,0,0,0,72,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),c.av1C,c.colr)}},{key:"avc1hev1",value:function(c){var t=c.codecType===qb,a=t?e.types.hvc1:e.types.avc1,r=t?e.hvcC(c):e.avcC(c),i=[new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,c.width>>8&255,255&c.width,c.height>>8&255,255&c.height,0,72,0,0,0,72,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),r];return t?i.push(e.box(e.types.fiel,new Uint8Array([1,0]))):c.sarRatio&&c.sarRatio.length>1&&i.push(e.pasp(c.sarRatio)),e.box.apply(e,[a].concat(i))}},{key:"avcC",value:function(c){var t,a,r,i=[],n=[];return c.sps.forEach((function(e){r=e.byteLength,i.push(r>>>8&255),i.push(255&r),i.push.apply(i,Nb(e))})),c.pps.forEach((function(e){r=e.byteLength,n.push(r>>>8&255),n.push(255&r),n.push.apply(n,Nb(e))})),e.box(e.types.avcC,new Uint8Array((t=(a=[1,i[3],i[4],i[5],255,224|c.sps.length]).concat.apply(a,i).concat([c.pps.length])).concat.apply(t,n)))}},{key:"hvcC",value:function(c){var t=c.hvcC;if(t instanceof ArrayBuffer||t instanceof Uint8Array)return t;var a,r=c.vps,i=c.sps,n=c.pps;if(t){var f=t.generalProfileCompatibilityFlags,s=t.generalConstraintIndicatorFlags,o=(r.length&&1)+(i.length&&1)+(n.length&&1);a=[1,t.generalProfileSpace<<6|t.generalTierFlag<<5|t.generalProfileIdc,f>>>24,f>>>16,f>>>8,f,s[0],s[1],s[2],s[3],s[4],s[5],t.generalLevelIdc,240,0,252,252|t.chromaFormatIdc,248|t.bitDepthLumaMinus8,248|t.bitDepthChromaMinus8,0,0,t.numTemporalLayers<<3|t.temporalIdNested<<2|3,o];var l=function(e){var c;a.push(e.length>>8,e.length),(c=a).push.apply(c,Nb(e))};r.length&&(a.push(160,0,r.length),r.forEach(l)),i.length&&(a.push(161,0,i.length),i.forEach(l)),n.length&&(a.push(162,0,n.length),n.forEach(l))}else a=[1,1,96,0,0,0,144,0,0,0,0,0,93,240,0,252,253,248,248,0,0,15,3,160,0,1,0,24,64,1,12,1,255,255,1,96,0,0,3,0,144,0,0,3,0,0,3,0,93,153,152,9,161,0,1,0,45,66,1,1,1,96,0,0,3,0,144,0,0,3,0,0,3,0,93,160,2,128,128,45,22,89,153,164,147,43,154,128,128,128,130,0,0,3,0,2,0,0,3,0,50,16,162,0,1,0,7,68,1,193,114,180,98,64];return e.box(e.types.hvcC,new Uint8Array(a))}},{key:"pasp",value:function(c){var t=Fb(c,2),a=t[0],r=t[1];return e.box(e.types.pasp,new Uint8Array([a>>24,a>>16&255,a>>8&255,255&a,r>>24,r>>16&255,r>>8&255,255&r]))}},{key:"mp4a",value:function(c){return e.box(e.types.mp4a,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,c.channelCount,0,16,0,0,0,0,c.sampleRate>>8&255,255&c.sampleRate,0,0]),c.config.length?e.esds(c.config):void 0)}},{key:"esds",value:function(c){var t=c.length;return e.box(e.types.esds,new Uint8Array([0,0,0,0,3,23+t,0,0,0,4,15+t,64,21,0,6,0,0,0,218,192,0,0,218,192,5].concat([t]).concat(c).concat([6,1,2])))}},{key:"opus",value:function(c){var t=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,c.channelCount,0,16,0,0,0,0,c.sampleRate>>8&255,255&c.sampleRate,0,0]),a=c.config.length?e.dOps(c):[];return e.box(e.types.Opus,t,a)}},{key:"dOps",value:function(c){if(c.config)return c.config[4]=c.sampleRate>>>24&255,c.config[5]=c.sampleRate>>>16&255,c.config[6]=c.sampleRate>>>8&255,c.config[7]=255&c.sampleRate,e.box(e.types.dOps,c.config)}},{key:"mvex",value:function(c){return e.box.apply(e,[e.types.mvex].concat(Nb(c.map((function(c){return e.trex(c.id)})))))}},{key:"trex",value:function(c){return e.box(e.types.trex,new Uint8Array([0,0,0,0,c>>24,c>>16&255,c>>8&255,255&c,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))}},{key:"trex1",value:function(c){return e.box(e.types.trex,new Uint8Array([0,0,0,0,c>>24,c>>16&255,c>>8&255,255&c,0,0,0,1,0,0,2,0,0,0,0,0,0,1,0,0]))}},{key:"trex2",value:function(c){return e.box(e.types.trex,new Uint8Array([0,0,0,0,c>>24,c>>16&255,c>>8&255,255&c,0,0,0,1,0,0,4,0,0,0,0,0,2,0,0,0]))}},{key:"moof",value:function(c){return e.box.apply(e,[e.types.moof,e.mfhd(c[0].samples?c[0].samples[0].gopId:0)].concat(Nb(c.map((function(c){return e.traf(c)})))))}},{key:"mfhd",value:function(c){return e.box(e.types.mfhd,new Uint8Array([0,0,0,0,c>>24,c>>16&255,c>>8&255,255&c]))}},{key:"traf",value:function(c){var t=e.tfhd(c.id),a=e.tfdt(c,c.baseMediaDecodeTime),r=0;if(c.isVideo&&c.videoSenc&&c.videoSenc.forEach((function(e){r+=8,e.subsamples&&e.subsamples.length&&(r+=2,r+=6*e.subsamples.length)})),c.videoSencLength=r,c.useEME&&(c.isVideoEncryption||c.isAudioEncryption)){if(c.isVideoEncryption){if(c.isVideo){var i=e.saiz(c),n=e.saio(c),f=e.trun1(c),s=e.senc(c);return e.box(e.types.traf,t,a,i,n,f,s)}if(c.isAudioEncryption){var o=e.sbgp(),l=e.saiz(c),d=e.saio(c),u=e.senc(c),h=e.trun1(c);return e.box(e.types.traf,t,a,o,l,d,u,h)}var b=e.sbgp(),p=e.trun1(c);return e.box(e.types.traf,t,a,b,p)}if(c.isVideo){var g=e.trun1(c);return e.box(e.types.traf,t,a,g)}var m=e.sbgp(),v=e.saiz(c),y=e.saio(c),E=e.senc(c),S=e.trun1(c);return e.box(e.types.traf,t,a,m,v,y,E,S)}var _=e.sdtp(c);return e.box(e.types.traf,t,a,_,e.trun(c.samples,_.byteLength+76))}},{key:"sdtp",value:function(c){var t=new Xp;return c.samples.forEach((function(e){t.write(new Uint8Array(c.isVideo?[e.keyframe?32:16]:[16]))})),e.box(e.types.sdtp,this.extension(0,0),t.buffer)}},{key:"trun1",value:function(c){var t=new Xp,a=Xp.writeUint32(c.samples.length),r=null;if(c.isVideo){var i=c.videoSencLength;r=Xp.writeUint32(16*c.samples.length+i+149),!c.isVideoEncryption&&c.isAudioEncryption&&(r=Xp.writeUint32(16*c.samples.length+92))}else{var n=12*c.samples.length+124;c.isAudioEncryption&&(n=12*c.samples.length+8*c.audioSenc.length+177),r=Xp.writeUint32(n)}return c.samples.forEach((function(e){t.write(Xp.writeUint32(e.duration)),t.write(Xp.writeUint32(e.size)),t.write(Xp.writeUint32(e.keyframe?33554432:65536)),c.isVideo&&t.write(Xp.writeUint32(e.cts?e.cts:0))})),e.box(e.types.trun,this.extension(0,c.flags),a,r,t.buffer)}},{key:"senc",value:function(c){var t=new Xp,a=c.samples.length,r=c.isVideo?16:8,i=c.isVideo?2:0,n=[],f=0;return c.isVideo?(n=c.videoSenc,f=c.videoSencLength):n=c.audioSenc,f=f||r*a,t.write(Xp.writeUint32(16+f),e.types.senc,this.extension(0,i)),t.write(Xp.writeUint32(a)),n.forEach((function(e){for(var c=0;c<e.InitializationVector.length;c++)t.write(new Uint8Array([e.InitializationVector[c]]));e.subsamples&&e.subsamples.length&&(t.write(Xp.writeUint16(e.subsamples.length)),e.subsamples.forEach((function(e){t.write(Xp.writeUint16(e.BytesOfClearData)),t.write(Xp.writeUint32(e.BytesOfProtectedData))})))})),t.buffer}},{key:"saio",value:function(c){var t=12*c.samples.length+141;!c.isVideo&&c.isAudioEncryption&&(t=149);var a=new Uint8Array([1,0,0,0,0,0,0,1,0,0,0,0,t>>24&255,t>>16&255,t>>8&255,255&t]);return e.box(e.types.saio,a)}},{key:"saiz",value:function(c){var t=c.samples.length,a=new Uint8Array([0,0,0,0,16,t>>24&255,t>>16&255,t>>8&255,255&t]);return e.box(e.types.saiz,a)}},{key:"sbgp",value:function(){var c=new Uint8Array([114,111,108,108,0,0,0,1,0,0,1,25,0,0,0,1]);return e.box(e.types.sbgp,this.extension(0,0),c)}},{key:"extension",value:function(e,c){return new Uint8Array([e,c>>16&255,c>>8&255,255&c])}},{key:"tfhd",value:function(c){return e.box(e.types.tfhd,new Uint8Array([0,0,0,0,c>>24,c>>16&255,c>>8&255,255&c]))}},{key:"tfdt",value:function(c,t){var a=Math.floor(t/(Qp+1)),r=Math.floor(t%(Qp+1));return c.useEME&&(c.isVideoEncryption||c.isAudioEncryption)?e.box(e.types.tfdt,new Uint8Array([0,0,0,0,r>>24,r>>16&255,r>>8&255,255&r])):e.box(e.types.tfdt,new Uint8Array([1,0,0,0,a>>24,a>>16&255,a>>8&255,255&a,r>>24,r>>16&255,r>>8&255,255&r]))}},{key:"trun",value:function(c,t){var a=c.length,r=12+16*a;t+=8+r;var i=new Uint8Array(r);i.set([0,0,15,1,a>>>24&255,a>>>16&255,a>>>8&255,255&a,t>>>24&255,t>>>16&255,t>>>8&255,255&t],0);for(var n=0;n<a;n++){var f=c[n],s=f.duration,o=f.size,l=f.flag,d=void 0===l?{}:l,u=f.cts,h=void 0===u?0:u;i.set([s>>>24&255,s>>>16&255,s>>>8&255,255&s,o>>>24&255,o>>>16&255,o>>>8&255,255&o,d.isLeading<<2|(null===d.dependsOn||void 0===d.dependsOn?1:d.dependsOn),d.isDependedOn<<6|d.hasRedundancy<<4|d.paddingValue<<1|(null===d.isNonSyncSample||void 0===d.isNonSyncSample?1:d.isNonSyncSample),61440&d.degradationPriority,15&d.degradationPriority,h>>>24&255,h>>>16&255,h>>>8&255,255&h],12+16*n)}return e.box(e.types.trun,i)}},{key:"moovMP4",value:function(c){return e.box.apply(e,[e.types.moov,e.mvhd(c[0].duration,c[0].timescale)].concat(Nb(c.map((function(c){return e.trackMP4(c)})))))}},{key:"trackMP4",value:function(c){return e.box(e.types.trak,e.tkhd(c.id,c.duration,c.width,c.height),e.mdiaMP4(c))}},{key:"mdiaMP4",value:function(c){return e.box(e.types.mdia,e.mdhd(c.duration,c.timescale),e.hdlr(c.type),e.minfMP4(c))}},{key:"minfMP4",value:function(c){return e.box(e.types.minf,c.type===jb?e.VMHD:e.SMHD,e.DINF,e.stblMP4(c))}},{key:"stblMP4",value:function(c){var t=c.ext,a=[e.stsd(c),e.stts(t.stts),e.stsc(t.stsc),e.stsz(t.stsz),e.stco(t.stco)];return t.stss.length&&a.push(e.stss(t.stss)),t.ctts.length&&a.push(e.ctts(t.ctts)),e.box.apply(e,[e.types.stbl].concat(a))}},{key:"stts",value:function(c){var t=c.length,a=new Uint8Array(8*t),r=0;return c.forEach((function(e){var c=e.value,t=e.count;a.set([t>>24,t>>16&255,t>>8&255,255&t,c>>24,c>>16&255,c>>8&255,255&c],r),r+=8})),e.box(e.types.stts,mp(new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t]),a))}},{key:"stsc",value:function(c){var t=c.length,a=new Uint8Array(12*t),r=0;return c.forEach((function(e){var c=e.firstChunk,t=e.samplesPerChunk,i=e.sampleDescIndex;a.set([c>>24,c>>16&255,c>>8&255,255&c,t>>24,t>>16&255,t>>8&255,255&t,i>>24,i>>16&255,i>>8&255,255&i],r),r+=12})),e.box(e.types.stsc,mp(new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t]),a))}},{key:"stsz",value:function(c){var t=c.length,a=new Uint8Array(4*t),r=0;return c.forEach((function(e){a.set([e>>24,e>>16&255,e>>8&255,255&e],r),r+=4})),e.box(e.types.stsz,mp(new Uint8Array([0,0,0,0,0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t]),a))}},{key:"stco",value:function(c){var t=c.length,a=new Uint8Array(4*t),r=0;return c.forEach((function(e){a.set([e>>24,e>>16&255,e>>8&255,255&e],r),r+=4})),e.box(e.types.stco,mp(new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t]),a))}},{key:"stss",value:function(c){var t=c.length,a=new Uint8Array(4*t),r=0;return c.forEach((function(e){a.set([e>>24,e>>16&255,e>>8&255,255&e],r),r+=4})),e.box(e.types.stss,mp(new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t]),a))}},{key:"ctts",value:function(c){var t=c.length,a=new Uint8Array(8*t),r=0;return c.forEach((function(e){var c=e.value,t=e.count;a.set([t>>24,t>>16&255,t>>8&255,255&t,c>>24,c>>16&255,c>>8&255,255&c],r),r+=8})),e.box(e.types.ctts,mp(new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t]),a))}},{key:"styp",value:function(){return e.box(e.types.styp,new Uint8Array([109,115,100,104,0,0,0,0,109,115,100,104,109,115,105,120]))}},{key:"sidx",value:function(c){var t=c.timescale,a=c.samples[0].duration,r=a*c.samples.length,i=c.samples[0].sampleOffset*a,n=8;c.samples.forEach((function(e){n+=e.size}));var f=0;if(c.isVideo){var s,o=0;c.videoSenc&&(s=c.videoSenc),c.isVideo&&s.forEach((function(e){o+=8,e.subsamples&&e.subsamples.length&&(o+=2,o+=6*e.subsamples.length)})),c.videoSencLength=o,f=n+141+16*c.samples.length+o,c.useEME&&c.isAudioEncryption&&!c.isVideoEncryption&&(f=n+16*c.samples.length+84)}else f=n+116+12*c.samples.length,c.useEME&&c.isAudioEncryption&&(f=n+169+12*c.samples.length+8*c.audioSenc.length);var l=new Uint8Array([0,0,0,0,0,0,0,255&c.id,t>>24&255,t>>16&255,t>>8&255,255&t,i>>24&255,i>>16&255,i>>8&255,255&i,0,0,0,0,0,0,0,1,0,f>>16&255,f>>8&255,255&f,r>>24&255,r>>16&255,r>>8&255,255&r,144,0,0,0]);return e.box(e.types.sidx,l)}},{key:"mdat",value:function(c){return e.box(e.types.mdat,c)}}]),e}();xb(Jp,"types",["Opus","dOps","av01","av1C","avc1","avcC","hvc1","hvcC","dinf","dref","esds","ftyp","hdlr","mdat","mdhd","mdia","mfhd","minf","moof","moov","mp4a","mvex","mvhd","pasp","stbl","stco","stsc","stsd","stsz","stts","tfdt","tfhd","traf","trak","trex","tkhd","vmhd","smhd","ctts","stss","styp","pssh","sidx","sbgp","saiz","saio","senc","trun","encv","enca","sinf","btrt","frma","tenc","schm","schi","mehd","fiel","sdtp"].reduce((function(e,c){return e[c]=[c.charCodeAt(0),c.charCodeAt(1),c.charCodeAt(2),c.charCodeAt(3)],e}),Object.create(null))),xb(Jp,"HDLR_TYPES",{video:new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),audio:new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0])}),xb(Jp,"FTYPAVC1",Jp.box(Jp.types.ftyp,new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]))),xb(Jp,"FTYPHEV1",Jp.box(Jp.types.ftyp,new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,104,101,118,49]))),xb(Jp,"DINF",Jp.box(Jp.types.dinf,Jp.box(Jp.types.dref,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1])))),xb(Jp,"VMHD",Jp.box(Jp.types.vmhd,new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]))),xb(Jp,"SMHD",Jp.box(Jp.types.smhd,new Uint8Array([0,0,0,0,0,0,0,0]))),xb(Jp,"StblTable",new Uint8Array([0,0,0,0,0,0,0,0])),xb(Jp,"STTS",Jp.box(Jp.types.stts,Jp.StblTable)),xb(Jp,"STSC",Jp.box(Jp.types.stsc,Jp.StblTable)),xb(Jp,"STSZ",Jp.box(Jp.types.stsz,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]))),xb(Jp,"STCO",Jp.box(Jp.types.stco,Jp.StblTable));var Zp=function(){function e(c,t){wb(this,e),this.name=c||"",this._prefix="[".concat(this.name,"]"),e.disabled=t}return Db(e,[{key:"debug",value:function(){var c;if(!e.disabled){for(var t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];(c=console).debug.apply(c,[this._prefix].concat(a))}}},{key:"log",value:function(){var c;if(!e.disabled){for(var t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];(c=console).log.apply(c,[this._prefix].concat(a))}}},{key:"warn",value:function(){var c;if(!e.disabled){for(var t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];(c=console).warn.apply(c,[this._prefix].concat(a))}}},{key:"error",value:function(){var c;if(!e.disabled){for(var t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];(c=console).error.apply(c,[this._prefix].concat(a))}}},{key:"table",value:function(){var c;e.disabled||(console.group(this._prefix),(c=console).table.apply(c,arguments),console.groupEnd())}}],[{key:"enable",value:function(){e.disabled=!1}},{key:"disable",value:function(){e.disabled=!0}}]),e}();xb(Zp,"disabled",!0);var eg=function(){function e(c,t,a){wb(this,e),this.videoTrack=c,this.audioTrack=t;var r=/Chrome\/([^.]+)/.exec(navigator.userAgent);this.forceFirstIDR=r&&Number(r[1])<50,this.log=new Zp("FMP4Remuxer",!a||!a.openLog||!a.openLog)}return Db(e,[{key:"remux",value:function(){var e,c,t,a,r,i=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},f=this.videoTrack,s=this.audioTrack,o=f.exist(),l=s.exist(),d=[];return i&&(n&&n.initMerge?(o&&d.push(this.videoTrack),l&&d.push(this.audioTrack),t=Jp.initSegment(d)):(o&&(e=Jp.initSegment([this.videoTrack])),l&&(c=Jp.initSegment([this.audioTrack])))),o&&f.hasSample()&&(a=this._remuxVideo()),l&&s.hasSample()&&(r=this._remuxAudio()),f.samples=[],s.samples=[],{initSegment:t,videoInitSegment:e,audioInitSegment:c,videoSegment:a,audioSegment:r}}},{key:"_remuxVideo",value:function(){var e=this.videoTrack;this.forceFirstIDR&&(e.samples[0].flag={dependsOn:2,isNonSyncSample:0});var c=e.samples,t=/av01/.test(e.codec),a=0;t?c.forEach((function(e){a+=e.data.byteLength})):c.forEach((function(e){a+=e.units.reduce((function(e,c){return e+c.byteLength}),0),a+=4*e.units.length}));var r=new Uint8Array(a);if(t)for(var i,n=0,f=c.length,s=0;n<f;n++)i=c[n],r.set(i.data,s),i.size=i.data.byteLength,s+=i.size;else for(var o,l=new DataView(r.buffer),d=function(e,t){t=c[u];var a=0;t.units.forEach((function(c){l.setUint32(e,c.byteLength),e+=4,r.set(c,e),e+=c.byteLength,a+=4+c.byteLength})),t.size=a,b=e,o=t},u=0,h=c.length,b=0;u<h;u++)d(b,o);var p=Jp.mdat(r);return mp(Jp.moof([e]),p)}},{key:"_remuxAudio",value:function(){var e=this.audioTrack,c=new Uint8Array(e.samples.reduce((function(e,c){return e+c.size}),0));e.samples.reduce((function(e,t){return c.set(t.data,e),e+t.size}),0);var t=Jp.mdat(c);return mp(Jp.moof([e]),t)}},{key:"reset",value:function(){this.videoTrack.reset(),this.audioTrack.reset()}}]),e}(),cg=function(){function e(){Uu(this,e);var c=window.crypto||window.msCrypto;this.subtle=c&&(c.subtle||c.webkitSubtle),this.externalDecryptor=null}var c,t;return $u(e,[{key:"destroy",value:function(){var e;null!==(e=this.externalDecryptor)&&void 0!==e&&e.destroy&&this.externalDecryptor.destroy()}},{key:"decrypt",value:function(e,c){if(e||c){var t=[];return e&&(t[0]=this._decryptSegment(e)),c&&(t[1]=this._decryptSegment(c)),Promise.all(t)}}},{key:"_decryptSegment",value:(t=Nu(Ou().mark((function e(c){var t;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=c.data,!c.key){e.next=5;break}return e.next=4,this._decryptData(c.data,c.key,c.keyIv);case 4:t=e.sent;case 5:if(c.map){e.next=7;break}return e.abrupt("return",t);case 7:return e.abrupt("return",Eb(c.map,t));case 8:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"_decryptData",value:(c=Nu(Ou().mark((function e(c,t,a){var r;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.externalDecryptor){e.next=6;break}return e.next=3,this.externalDecryptor.decrypt(c,t,a);case 3:return e.abrupt("return",e.sent);case 6:if(this.subtle){e.next=8;break}throw new Error("crypto is not defined");case 8:return e.next=10,this.subtle.importKey("raw",t,{name:"AES-CBC"},!1,["encrypt","decrypt"]);case 10:return r=e.sent,e.t0=Uint8Array,e.next=14,this.subtle.decrypt({name:"AES-CBC",iv:a},r,c);case 14:return e.t1=e.sent,e.abrupt("return",new e.t0(e.t1));case 16:case"end":return e.stop()}}),e,this)}))),function(e,t,a){return c.apply(this,arguments)})}]),e}(),tg=Cu(Cu({},bb),{},{STREAM_PARSED:"core.streamparsed",NO_AUDIO_TRACK:"core.noaudiotrack",SUBTITLE_SEGMENTS:"core.subtitlesegments",SUBTITLE_PLAYLIST:"core.subtitleplaylist",SEI_PAYLOAD_TIME:"core.seipayloadtime",APPEND_COST:"core.appendcost"}),ag=new Gh("Transmuxer"),rg=function(){function e(c,t,a,r){Uu(this,e),ju(this,"_initSegmentId",""),this.hls=c,this._demuxer=t?new zp:new $p(null,null,null,r),this._isMP4=t,a&&(this._remuxer=new eg(this._demuxer.videoTrack,this._demuxer.audioTrack))}return $u(e,[{key:"transmux",value:function(e,c,t,a,r,i){var n=this._demuxer;try{this._isMP4?n.demux(e,c):n.demuxAndFix(Eb(e,c),t,a,r)}catch(E){throw new Bh(xh,Nh.HLS,E)}var f=n.videoTrack,s=n.audioTrack,o=n.metadataTrack,l={codec:f.codec,timescale:f.timescale,firstDts:f.firstDts/f.timescale,firstPts:f.firstPts/f.timescale,duration:f.samplesDuration/f.timescale},d={codec:s.codec,timescale:s.timescale,firstDts:s.firstDts/f.timescale,firstPts:s.firstPts/f.timescale,duration:s.samplesDuration/f.timescale,container:s.container},u="".concat(f.codec,"/").concat(f.width,"/").concat(f.height,"/").concat(s.codec,"/").concat(s.config);if(u!==this._initSegmentId&&(this._initSegmentId=u,i=!0),this._fireEvents(f,s,o,t||i),this.hls.emit(tg.DEMUXED_TRACK,{videoTrack:f,audioTrack:s}),!this._remuxer)return[f,s];i&&this.hls.isLive&&!this.hls.config.mseLowLatency&&(f.duration=this.hls.totalDuration*f.timescale,s.duration=this.hls.totalDuration*s.timescale);try{var h=this._remuxer.remux(i),b=h.videoInitSegment,p=h.videoSegment,g=h.audioInitSegment,m=h.audioSegment,v=Eb(b,p),y=Eb(g,m);return[v?Cu(Cu({},l),{},{data:v}):void 0,y?Cu(Cu({},d),{},{data:y}):void 0]}catch(E){throw new Bh(Ph,Nh.FMP4,E)}}},{key:"_fireEvents",value:function(e,c,t,a){var r=this,i=[e,c],n="discontinuity: ".concat(a);i.forEach((function(e){var c;null!==(c=e.samples)&&void 0!==c&&c.length&&(n+="; ".concat(e.samples.length," ").concat(e.type===jb?"video":"audio"," samples, firstDts/firstPts/duration: ").concat((e.firstDts/e.timescale).toFixed(3),"/").concat((e.firstPts/e.timescale).toFixed(3),"/").concat((e.samplesDuration/e.timescale).toFixed(3))),a&&e.exist()&&r.hls.emit(tg.METADATA_PARSED,{type:e.type,track:e,meta:Cu({codec:e.codec,timescale:e.timescale,baseDts:e.baseDts},e.type===jb?{width:e.width,height:e.height,sarRatio:e.sarRatio}:{codec:e.codec,channelCount:e.channelCount,sampleRate:e.sampleRate})})})),ag.debug(n),e.warnings.forEach((function(e){var c;switch(e.type){case Jb:c=tg.LARGE_AV_FIRST_FRAME_GAP_DETECT;break;case Zb:c=tg.LARGE_VIDEO_DTS_GAP_DETECT;break;case ep:c=tg.MAX_DTS_DELTA_WITH_NEXT_SEGMENT_DETECT}c&&r.hls.emit(tg.STREAM_EXCEPTION,Cu(Cu({},e),{},{type:c})),ag.warn("video exception",e)})),c.warnings.forEach((function(e){var c;switch(e.type){case cp:c=tg.LARGE_AUDIO_DTS_GAP_DETECT;break;case tp:c=tg.AUDIO_GAP_DETECT;break;case ap:c=tg.AUDIO_OVERLAP_DETECT}c&&r.hls.emit(tg.STREAM_EXCEPTION,Cu(Cu({},e),{},{type:c})),ag.warn("audio exception",e)})),e.samples.forEach((function(e){e.keyframe&&r.hls.emit(tg.KEYFRAME,{pts:e.pts})})),t.seiSamples.forEach((function(e){r.hls.emit(tg.SEI,Cu(Cu({},e),{},{originPts:e.originPts/90,sei:{code:e.data.type,content:e.data.payload,dts:e.pts}}))}))}}]),e}(),ig=["data"],ng=["data"],fg=new Gh("BufferService"),sg=function(){function e(c){var t=this;Uu(this,e),ju(this,"_decryptor",new cg),ju(this,"_transmuxer",null),ju(this,"_mse",null),ju(this,"_softVideo",null),ju(this,"_sourceCreated",!1),ju(this,"_needInitSegment",!0),ju(this,"_directAppend",!1),this.hls=c,c.config.softDecode?this._softVideo=c.media:(this._mse=new eb(null,{preferMMS:c.config.preferMMS}),c.config.url&&this._mse.bindMedia(c.media).then((function(e){t.hls.emit(bb.MEDIASOURCE_OPENED,e)}))),c.config.decryptor&&(this._decryptor.externalDecryptor=c.config.decryptor)}var c,t,a,r,i,n,f,s,o,l;return $u(e,[{key:"baseDts",get:function(){var e,c,t;return null===(e=this._transmuxer)||void 0===e||null===(c=e._demuxer)||void 0===c||null===(t=c._fixer)||void 0===t?void 0:t._baseDts}},{key:"nbSb",get:function(){var e;return null!==(e=this._mse)&&void 0!==e&&e._sourceBuffer?Object.keys(this._mse._sourceBuffer).length:0}},{key:"msIsOpened",get:function(){var e;return null===(e=this._mse)||void 0===e?void 0:e.isOpened}},{key:"msHasOpTasks",get:function(){var e;return null===(e=this._mse)||void 0===e?void 0:e.hasOpTasks}},{key:"msStreaming",get:function(){var e;return null===(e=this._mse)||void 0===e?void 0:e.streaming}},{key:"updateDuration",value:(l=Nu(Ou().mark((function e(c){return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(fg.debug("update duration",c),!this._mse){e.next=9;break}if(this._mse.isOpened){e.next=5;break}return e.next=5,this._mse.open();case 5:return e.next=7,this._mse.updateDuration(c);case 7:e.next=10;break;case 9:this._softVideo&&(this._softVideo.duration=c);case 10:case"end":return e.stop()}}),e,this)}))),function(e){return l.apply(this,arguments)})},{key:"createSource",value:function(e,c,t,a){if(!this._sourceCreated){var r=e||c;if(r){if($p.probe(r))this._transmuxer||(this._transmuxer=new rg(this.hls,!1,!this._softVideo,this.hls.config.fixerConfig));else{if(!Kp.probe(r))throw new Bh(Mh,null,null,null,"unsupported stream");if(this._softVideo)this._transmuxer||(this._transmuxer=new rg(this.hls,!0,null,this.hls.config.fixerConfig));else{this._directAppend=!0;var i=!1;e&&!t&&Kp.findBox(e,["moov","trak"]).forEach((function(e){var c=Kp.findBox(e.data,["trak","mdia","minf","stbl","stsd"])[0];if(c){var r=Kp.stsd(c).entries[0];if(r)if(r.hvcC)t=r.hvcC.codec||"hev1.1.6.L93.B0";else if(r.avcC)t=r.avcC.codec;else if(r.sampleRate||r.esds){var n;a=(null===(n=r.esds)||void 0===n?void 0:n.codec)||"mp4a.40.2",i=!0}}})),c&&!a&&Kp.findBox(c,["moov","trak","mdia","minf","stbl","stsd"]).forEach((function(e){var c=Kp.stsd(e).entries[0];c&&c.esds&&(a=c.esds.codec)})),e&&!t&&(t="avc1.42e01e"),c&&!a&&(a="mp4a.40.2"),i&&(t+=", ".concat(a),a=""),this._createMseSource(t,a)}}this._softVideo&&(this._sourceCreated=!0)}}}},{key:"appendBuffer",value:(o=Nu(Ou().mark((function e(c,t,a,r,i,n,f){var s,o,l,d,u,h,b,p,g,m,v,y,E,S,_,T=this;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null!=a&&a.length||null!=r&&r.length){e.next=2;break}return e.abrupt("return");case 2:if(s=function(){var e,t;null!==(e=T.hls)&&void 0!==e&&e.emit&&(null===(t=T.hls)||void 0===t||t.emit(bb.APPEND_BUFFER,{start:c.start,end:c.end}))},!this._directAppend){e.next=8;break}return o=[],a&&o.push(this._mse.append(eb.VIDEO,a)),r&&o.push(this._mse.append(eb.AUDIO,r)),e.abrupt("return",Promise.all(o).then(s));case 8:if(l=this._needInitSegment||i,d=this._transmuxer.transmux(a,r,l,n,f,this._needInitSegment||i),u=Wu(d,2),h=u[0],b=u[1],r&&t&&(null==t||t.setTrackExist(!1,!0)),r&&c&&(null==c||c.setTrackExist(!0,!1)),t||null==c||c.setTrackExist(!!h,!!b),h&&!b&&this.hls.emit(tg.NO_AUDIO_TRACK),!this._softVideo){e.next=20;break}this._softVideo.appendBuffer(h,b),this._needInitSegment=!1,s(),e.next=32;break;case 20:if(!this._mse){e.next=32;break}return(p=!this._sourceCreated)&&this._createMseSource(null==h?void 0:h.codec,null==b?void 0:b.codec,null==b?void 0:b.container),this._needInitSegment=!1,g=this._mse,m=[],l&&!p&&this._handleCodecChange(h,b).forEach((function(e){return m.push(e)})),h&&(v=h.data,y=Hu(h,ig),m.push(g.append(eb.VIDEO,v,y))),b&&(E=b.data,S=Hu(b,ng),m.push(g.append(eb.AUDIO,E,S))),(_=Promise.all(m)).then(s),e.abrupt("return",_);case 32:case"end":return e.stop()}}),e,this)}))),function(e,c,t,a,r,i,n){return o.apply(this,arguments)})},{key:"removeBuffer",value:(s=Nu(Ou().mark((function e(){var c,t,a,r=this,i=arguments;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(c=i.length>0&&void 0!==i[0]?i[0]:0,t=i.length>1&&void 0!==i[1]?i[1]:1/0,a=this.hls.media,!(!this._mse||!a||c<0||t<c||c>=this._mse.duration)){e.next=5;break}return e.abrupt("return");case 5:return e.abrupt("return",this._mse.clearBuffer(c,t).then((function(){return r.hls.emit(bb.REMOVE_BUFFER,{start:c,end:t,removeEnd:t})})));case 6:case"end":return e.stop()}}),e,this)}))),function(){return s.apply(this,arguments)})},{key:"evictBuffer",value:(f=Nu(Ou().mark((function e(c){var t,a,r;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.hls.media,this._mse&&t&&c&&!(c<0)){e.next=3;break}return e.abrupt("return");case 3:if(a=t.currentTime,!((r=a-c)<=0)){e.next=7;break}return e.abrupt("return");case 7:if(!(Th.start(Th.get(t))+1>=r)){e.next=10;break}return e.abrupt("return");case 10:return e.abrupt("return",this.removeBuffer(0,r));case 11:case"end":return e.stop()}}),e,this)}))),function(e){return f.apply(this,arguments)})},{key:"clearAllBuffer",value:(n=Nu(Ou().mark((function e(){return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._mse){e.next=2;break}return e.abrupt("return",this._mse.clearAllBuffer());case 2:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"decryptBuffer",value:function(e,c){return this._decryptor.decrypt(e,c)}},{key:"reset",value:(i=Nu(Ou().mark((function e(){var c,t=arguments;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(c=t.length>0&&void 0!==t[0]&&t[0],!this._mse||c){e.next=8;break}return this._transmuxer=null,this._sourceCreated=!1,e.next=6,this._mse.unbindMedia();case 6:return e.next=8,this._mse.bindMedia(this.hls.media);case 8:this._needInitSegment=!0,this._directAppend=!1;case 10:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"endOfStream",value:(r=Nu(Ou().mark((function e(){return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._mse){e.next=5;break}if(!this._sourceCreated){e.next=5;break}return e.next=4,this._mse.endOfStream();case 4:this.hls.emit(bb.BUFFEREOS);case 5:this._softVideo&&this._softVideo.endOfStream();case 6:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"setLiveSeekableRange",value:(a=Nu(Ou().mark((function e(c,t){return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this._mse&&this._mse.setLiveSeekableRange(c,t);case 1:case"end":return e.stop()}}),e,this)}))),function(e,c){return a.apply(this,arguments)})},{key:"detachMedia",value:(t=Nu(Ou().mark((function e(){return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._mse){e.next=3;break}return e.next=3,this._mse.unbindMedia();case 3:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"destroy",value:(c=Nu(Ou().mark((function e(){var c;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return null===(c=this._decryptor)||void 0===c||c.destroy(),e.next=3,this.detachMedia();case 3:this._decryptor=null,this._mse=null,this._softVideo=null;case 6:case"end":return e.stop()}}),e,this)}))),function(){return c.apply(this,arguments)})},{key:"_createMseSource",value:function(e,c,t){fg.debug("create mse source, videoCodec=".concat(e,", audioCodec=").concat(c));var a=this._mse;a&&(e&&(a.createSource(eb.VIDEO,"video/mp4;codecs=".concat(e)),this._sourceCreated=!0),c?(a.createSource(eb.AUDIO,"audio/mp4;codecs=".concat(c)),this._sourceCreated=!0):t&&(a.createSource(eb.AUDIO,"".concat(t,';codecs=""')),this._sourceCreated=!0),this.hls.emit(bb.SOURCEBUFFER_CREATED))}},{key:"_handleCodecChange",value:function(e,c){var t=[],a=this._mse;return[{type:eb.VIDEO,codecs:null==e?void 0:e.codec},{type:eb.AUDIO,codecs:null==c?void 0:c.codec}].filter((function(e){return!!e.codecs})).forEach((function(e){var c=e.type,r=e.codecs,i=a.getSourceBuffer(c);if(i){var n=r.split(",")[0];new RegExp(n,"ig").test(i.mimeType)||t.push(a.changeType(c,"".concat(c,"/mp4;codecs=").concat(r)))}})),t}},{key:"seamlessSwitch",value:function(){this._needInitSegment=!0}},{key:"isFull",value:function(){var e,c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eb.VIDEO;return null===(e=this._mse)||void 0===e?void 0:e.isFull(c)}}]),e}();var og=$u((function e(){Uu(this,e),ju(this,"version",0),ju(this,"streams",[]),ju(this,"isMaster",!0)})),lg="AUDIO",dg="SUBTITLE",ug={CLEAR_KEY:"org.w3.clearkey",FAIRPLAY:["urn:uuid:94ce86fb-07ff-4f43-adb8-93d2fa968ca2","com.apple.streamingkeydelivery"],WIDEVINE:["urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed","com.widevine.alpha","com.widevine"],PLAYREADY:["urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95","com.microsoft.playready"]};function hg(e){for(var c=[],t=0;t<e.length;t++)Array.isArray(e[t])?c=c.concat(hg(e[t])):c.push(e[t]);return c}var bg=$u((function e(){Uu(this,e),ju(this,"id",0),ju(this,"url",""),ju(this,"default",!1),ju(this,"autoSelect",!1),ju(this,"forced",!1),ju(this,"group",""),ju(this,"name",""),ju(this,"lang",""),ju(this,"segments",[]),ju(this,"endSN",0)})),pg=function(e){Gu(t,e);var c=Yu(t);function t(){var e;Uu(this,t);for(var a=arguments.length,r=new Array(a),i=0;i<a;i++)r[i]=arguments[i];return ju(qu(e=c.call.apply(c,[this].concat(r))),"mediaType",lg),ju(qu(e),"channels",0),e}return $u(t)}(bg),gg=function(e){Gu(t,e);var c=Yu(t);function t(){var e;Uu(this,t);for(var a=arguments.length,r=new Array(a),i=0;i<a;i++)r[i]=arguments[i];return ju(qu(e=c.call.apply(c,[this].concat(r))),"mediaType",dg),e}return $u(t)}(bg),mg=$u((function e(){Uu(this,e),ju(this,"id",0),ju(this,"bitrate",0),ju(this,"width",0),ju(this,"height",0),ju(this,"name",""),ju(this,"url",""),ju(this,"audioCodec",""),ju(this,"videoCodec",""),ju(this,"textCodec",""),ju(this,"audioGroup",""),ju(this,"audioStreams",[]),ju(this,"subtitleStreams",[]),ju(this,"closedCaptionsStream",[])})),vg=$u((function e(){Uu(this,e),ju(this,"version",0),ju(this,"url",""),ju(this,"type",""),ju(this,"startCC",0),ju(this,"endCC",0),ju(this,"startSN",0),ju(this,"endSN",0),ju(this,"totalDuration",0),ju(this,"targetDuration",0),ju(this,"partTargetDuration",0),ju(this,"canSkipUntil",0),ju(this,"canSkipDateRanges",!1),ju(this,"skippedSegments",0),ju(this,"canBlockReload",!1),ju(this,"partHoldBack",0),ju(this,"live",!0),ju(this,"lowLatency",!1),ju(this,"endPartIndex",0),ju(this,"segments",[]),ju(this,"dateRanges",{}),ju(this,"skippedSegments",0)})),yg=function(){function e(c){Uu(this,e),ju(this,"sn",0),ju(this,"cc",0),ju(this,"url",""),ju(this,"parentUrl",""),ju(this,"title",""),ju(this,"start",0),ju(this,"duration",0),ju(this,"dataTime",""),ju(this,"key",null),ju(this,"byteRange",null),ju(this,"isInitSegment",!1),ju(this,"initSegment",null),ju(this,"isLast",!1),ju(this,"hasAudio",!1),ju(this,"hasVideo",!1),ju(this,"independent",!1),ju(this,"partIndex",0),this.parentUrl=c}return $u(e,[{key:"end",get:function(){return this.start+this.duration}},{key:"setTrackExist",value:function(e,c){this.hasVideo=e,this.hasAudio=c}},{key:"setByteRange",value:function(e,c){this.byteRange=[0];var t=e.split("@");1===t.length&&c&&c.byteRange?(this.byteRange[0]=c.byteRange[1]||0,this.byteRange[0]&&(this.byteRange[0]+=1)):this.byteRange[0]=parseInt(t[1]),this.byteRange[1]=this.byteRange[0]+parseInt(t[0])-1}}]),e}(),Eg=function(){function e(c){Uu(this,e),ju(this,"method",""),ju(this,"url",""),ju(this,"iv",null),ju(this,"keyFormat",""),ju(this,"keyFormatVersions",""),c instanceof e&&(this.method=c.method,this.url=c.url,this.keyFormat=c.keyFormat,this.keyFormatVersions=c.keyFormatVersions,c.iv&&(this.iv=new Uint8Array(c.iv)))}return $u(e,[{key:"clone",value:function(c){var t=new e(this);return null!=c&&t.setIVFromSN(c),t}},{key:"setIVFromSN",value:function(e){if(!this.iv&&"AES-128"===this.method&&"number"==typeof e&&this.url){this.iv=new Uint8Array(16);for(var c=12;c<16;c++)this.iv[c]=e>>8*(15-c)&255}}},{key:"isSegmentEncrypted",value:function(){return"AES-128"===this.method}},{key:"isValidKeySystem",value:function(){return hg([ug.CLEAR_KEY,ug.FAIRPLAY,ug.WIDEVINE,ug.PLAYREADY]).indexOf(this.keyFormat)>-1&&!!(["SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)>-1)}},{key:"isSupported",value:function(){return!!this.method&&(!!this.isSegmentEncrypted()||!!this.isValidKeySystem())}}]),e}(),Sg=function(){function e(c,t,a){Uu(this,e),this.msn=c,this.part=t,this.skip=a}return $u(e,[{key:"addDirectives",value:function(e){var c=new self.URL(e);return void 0!==this.msn&&c.searchParams.set("_HLS_msn",this.msn.toString()),this.part&&c.searchParams.set("_HLS_part",this.part.toString()),this.skip&&c.searchParams.set("_HLS_skip",this.skip),c.href}}]),e}(),_g=/^#(EXT[^:]*)(?::(.*))?$/,Tg=/([^=]+)=(?:"([^"]*)"|([^",]*))(?:,|$)/g,kg=/^(?:[a-zA-Z0-9+\-.]+:)?\/\//,Ag=/^((?:[a-zA-Z0-9+\-.]+:)?\/\/[^/?#]*)?([^?#]*\/)?/;function Lg(e){var c=e.match(_g);if(c&&c[1])return[c[1].replace("EXT-X-",""),c[2]]}function Ig(e){for(var c={},t=Tg.exec(e);t;)c[t[1]]=t[2]||t[3],t=Tg.exec(e);return c}function wg(e,c){if(!c||!e||kg.test(e))return e;var t=Ag.exec(c);return t?"/"===e[0]?t[1]+e:t[1]+t[2]+e:e}var Rg={audio:[/^mp4a/,/^vorbis$/,/^opus$/,/^flac$/,/^[ae]c-3$/],video:[/^avc/,/^hev/,/^hvc/,/^vp0?[89]/,/^av1$/],text:[/^vtt$/,/^wvtt/,/^stpp/]};function Dg(e,c){var t=Rg[e];if(t&&c&&c.length)for(var a=0;a<t.length;a++)for(var r=0;r<c.length;r++)if(t[a].test(c[r]))return c[r]}function xg(e,c){var t;if(c)for(var a in c)if(Object.prototype.hasOwnProperty.call(c,a)&&e[a]!==c[a]){t=a;break}var r=null;e.DURATION&&(r=parseFloat(e.DURATION),Number.isFinite(r)?e._endDate&&(r=(e._endDate.getTime()-e._startDate.getTime())/1e3):r=null);var i,n,f=(i=e.CUE||e["X-CUE"],n={pre:!1,post:!1,once:!1},(i?i.split(/[ ,]+/):[]).reduce((function(e,c){return e[c.toLowerCase()]=!0,e}),n));return!!e.ID&&!t&&Number.isFinite(e._startDate.getTime())&&(null===r||r>=0)&&(!("YES"===e.END_ON_NEXT)||!!e.CLASS)&&(!e.CUE||!f.pre&&!f.post||f.pre!==f.post)&&(!("com.apple.hls.interstitial"===e.CLASS)||"X-ASSET-URI"in e||"X-ASSET-LIST"in e)}var Pg=function(){function e(){Uu(this,e)}return $u(e,null,[{key:"parse",value:function(){var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,a=arguments.length>2?arguments[2]:void 0;if(!c.includes("#EXTM3U"))throw new Error("Invalid m3u8 file");var r=function(e){return e.split(/[\r\n]/).map((function(e){return e.trim()})).filter(Boolean)}(c);return e.isMediaPlaylist(c)?function(e,c,t){var a=new vg;a.url=c;for(var r,i=new yg(c),n=null,f=null,s=0,o=0,l=0,d=0,u=!1,h=0;r=e[d++];)if("#"===r[0]){var b=Lg(r);if(b){var p=Wu(b,2),g=p[0],m=p[1];switch(g){case"VERSION":a.version=parseInt(m);break;case"PLAYLIST-TYPE":a.type=null==m?void 0:m.toUpperCase();break;case"TARGETDURATION":a.targetDuration=parseFloat(m);break;case"PART-INF":t&&(a.lowLatency=!0);var v=Ig(m);v["PART-TARGET"]&&(a.partTargetDuration=parseFloat(v["PART-TARGET"]));break;case"SERVER-CONTROL":var y=Ig(m);a.canBlockReload="YES"===y["CAN-BLOCK-RELOAD"],a.partHoldBack=parseFloat(y["PART-HOLD-BACK"]||0),a.canSkipUntil=parseFloat(y["CAN-SKIP-UNTIL"]||0),a.canSkipDateRanges=a.canSkipUntil>0&&"YES"===y["CAN-SKIP-DATERANGES"];break;case"ENDLIST":u=!0;break;case"MEDIA-SEQUENCE":o=a.startSN=parseInt(m);break;case"DISCONTINUITY-SEQUENCE":l=a.startCC=parseInt(m);break;case"DISCONTINUITY":l++;break;case"BYTERANGE":i.setByteRange(m,a.segments[a.segments.length-1]);break;case"PART":if(!a.lowLatency)break;var E=Ig(m);i.duration=parseFloat(E.DURATION),i.independent="YES"===E.INDEPENDENT,i.sn=o,i.cc=l,i.partIndex=h,i.start=s,i.duration=parseFloat(E.DURATION),s+=i.duration,i.url=wg(E.URI,c),f&&(i.key=f.clone(o)),n&&(i.initSegment=n),a.segments.push(i),i=new yg(c),h++;break;case"PRELOAD-HINT":var S=Ig(m);if(a.preloadHint=S,"PART"===S.TYPE&&S.URI){var _=S.URI.split(".ts")[0].split("-");a.nextSN=_[3],a.nextIndex=_[_.length-1]}break;case"PROGRAM-DATE-TIME":i.dataTime=m;break;case"EXTINF":if(a.lowLatency){h=0;break}var T=Wu(m.split(","),2),k=T[0],A=T[1];i.start=s,i.duration=parseFloat(k),s+=i.duration,i.title=A;break;case"KEY":var L=Ig(m);if("NONE"===L.METHOD){f=null;break}if((f=new Eg).method=L.METHOD,f.url=/^blob:/.test(L.URI)?L.URI:wg(L.URI,c),f.keyFormat=L.KEYFORMAT||"identity",f.keyFormatVersions=L.KEYFORMATVERSIONS,!f.isSupported())throw new Error("encrypt ".concat(L.METHOD,"/").concat(L.KEYFORMAT," is not supported"));if(L.IV){var I=L.IV.slice(2);I=(1&I.length?"0":"")+I,f.iv=new Uint8Array(I.length/2);for(var w=0,R=I.length/2;w<R;w++)f.iv[w]=parseInt(I.slice(2*w,2*w+2),16)}break;case"MAP":var D=Ig(m);i.url=wg(D.URI,c),D.BYTERANGE&&i.setByteRange(D.BYTERANGE),i.isInitSegment=!0,i.sn=0,f&&(i.key=f.clone(0)),n=i,i=new yg(c);break;case"SKIP":var x=Ig(m),P=parseInt(x["SKIPPED-SEGMENTS"],10);P<=Number.MAX_SAFE_INTEGER&&(a.skippedSegments+=P,o+=P);break;case"DATERANGE":var C=Ig(m),O=a.dateRanges[C.ID];C._startDate=O?O._startDate:new Date(C["START-DATE"]);var M=(null==O?void 0:O._endDate)||new Date(C.END_DATE);Number.isFinite(M)&&(C._endDate=M),(xg(C,O)||a.skippedSegments)&&(a.dateRanges[C.ID]=C)}}}else{if(a.lowLatency){o++;continue}i.sn=o,i.cc=l,i.url=wg(r,c),f&&(i.key=f.clone(o)),n&&(i.initSegment=n),a.segments.push(i),i=new yg(c),o++}a.segments=a.segments.filter((function(e){return 0!==e.duration}));var F=a.segments[a.segments.length-1];return F&&(u&&(F.isLast=!0),a.endSN=F.sn,a.endPartIndex=F.partIndex),u&&(a.live=!1),a.totalDuration=s,a.endCC=l,a}(r,t,a):function(e,c){for(var t,a=new og,r=0,i=[],n=[];t=e[r++];){var f=Lg(t);if(f){var s=Wu(f,2),o=s[0],l=s[1];if("VERSION"===o)a.version=parseInt(l);else if("MEDIA"===o&&l){var d=Ig(l),u=void 0;switch(d.TYPE){case"AUDIO":u=new pg;break;case"SUBTITLES":u=new gg;break;default:u=new bg}u.url=wg(d.URI,c),u.default="YES"===d.DEFAULT,u.autoSelect="YES"===d.AUTOSELECT,u.group=d["GROUP-ID"],u.name=d.NAME,u.lang=d.LANGUAGE,d.CHANNELS&&(u.channels=Number(d.CHANNELS.split("/")[0]),Number.isNaN(u.channels)&&(u.channels=0)),"AUDIO"===d.TYPE&&d.URI&&i.push(u),"SUBTITLES"===d.TYPE&&n.push(u)}else if("STREAM-INF"===o&&l){var h=new mg,b=Ig(l);if(h.bitrate=parseInt(b["AVERAGE-BANDWIDTH"]||b.BANDWIDTH),h.name=b.NAME,h.url=wg(e[r++],c),b.RESOLUTION){var p=Wu(b.RESOLUTION.split("x"),2),g=p[0],m=p[1];h.width=parseInt(g),h.height=parseInt(m)}if(b.CODECS){var v=b.CODECS.split(/[ ,]+/).filter(Boolean);h.videoCodec=Dg("video",v),h.audioCodec=Dg("audio",v),h.textCodec=Dg("text",v)}h.audioGroup=b.AUDIO,h.subtitleGroup=b.SUBTITLES,a.streams.push(h)}}}return a.streams.forEach((function(e,c){e.id=c})),i.length&&(i.forEach((function(e,c){e.id=c})),a.streams.forEach((function(e){e.audioGroup&&(e.audioStreams=i.filter((function(c){return c.group===e.audioGroup})))}))),n.length&&(n.forEach((function(e,c){e.id=c})),a.streams.forEach((function(e){e.subtitleGroup&&(e.subtitleStreams=n.filter((function(c){return c.group===e.subtitleGroup})))}))),a}(r,t)}},{key:"isMediaPlaylist",value:function(e){return e.includes("#EXTINF:")||e.includes("#EXT-X-TARGETDURATION:")}}]),e}(),Cg=function(){function e(c){var t=this;Uu(this,e),ju(this,"_emitOnLoaded",(function(e,c){var a=e.response,r=e.options||{},i=r.firstByteTime,n=r.startTime,f=r.endTime,s=r.contentLength,o=f-n;t.hls.emit(bb.SPEED,{time:o,byteLength:s,url:c}),t.hls.emit(bb.LOAD_COMPLETE,{url:c,elapsed:o||0}),t.hls.emit(bb.TTFB,{url:c,responseUrl:a.url,elapsed:i-n}),t.hls.emit(bb.LOAD_RESPONSE_HEADERS,{headers:a.headers,url:c})})),ju(this,"_onLoaderRetry",(function(e,c){t.hls.emit(tg.LOAD_RETRY,{error:Bh.network(e),retryTime:c})})),this.hls=c,this._timer=null,this._useLowLatency=c.config.useLowLatency;var a=this.hls.config,r=a.retryCount,i=a.retryDelay,n=a.manifestLoadTimeout,f=a.fetchOptions;this._loader=new _b(Cu(Cu({},f),{},{responseType:"text",retry:r,retryDelay:i,timeout:n,onRetryError:this._onLoaderRetry})),this._audioLoader=new _b(Cu(Cu({},f),{},{responseType:"text",retry:r,retryDelay:i,timeout:n,onRetryError:this._onLoaderRetry})),this._subtitleLoader=new _b(Cu(Cu({},f),{},{responseType:"text",retry:r,retryDelay:i,timeout:n,onRetryError:this._onLoaderRetry}))}var c;return $u(e,[{key:"load",value:(c=Nu(Ou().mark((function e(c,t,a){var r,i,n,f,s,o,l,d,u,h,b,p,g,m,v,y,E,S,_,T;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=[this._loader.load(c)],t&&r.push(this._audioLoader.load(t)),a&&r.push(this._subtitleLoader.load(a)),e.prev=3,e.next=6,Promise.all(r);case 6:if(d=e.sent,u=Wu(d,3),h=u[0],b=u[1],p=u[2],h){e.next=13;break}return e.abrupt("return",[]);case 13:this._emitOnLoaded(h,c),i=h.data,s=h.response.url||c,t?(n=null==b?void 0:b.data,f=null==p?void 0:p.data,o=(null==b||null===(g=b.response)||void 0===g?void 0:g.url)||t,l=(null==p||null===(m=p.response)||void 0===m?void 0:m.url)||a,n&&this._emitOnLoaded(b,t),f&&this._emitOnLoaded(p,a)):(f=null==b?void 0:b.data,l=(null==b||null===(v=b.response)||void 0===v?void 0:v.url)||a,f&&this._emitOnLoaded(b,a)),e.next=22;break;case 19:throw e.prev=19,e.t0=e.catch(3),Bh.network(e.t0);case 22:if(y=this.hls.config.onPreM3U8Parse,e.prev=23,y&&(i=y(i)||i,n&&(n=y(n,!0)||n),f&&(f=y(f,!0)||f)),E=Pg.parse(i,s,this._useLowLatency),!1!==(null===(T=E)||void 0===T?void 0:T.live)||!E.segments||E.segments.length){e.next=28;break}throw new Error("empty segments list");case 28:n&&(S=Pg.parse(n,o,this._useLowLatency)),f&&(_=Pg.parse(f,l,this._useLowLatency)),e.next=35;break;case 32:throw e.prev=32,e.t1=e.catch(23),new Bh(Ah,Nh.HLS,e.t1);case 35:return E&&(E.isMaster?this.hls.emit(tg.HLS_MANIFEST_LOADED,{playlist:E}):(this._useLowLatency&&(E.canBlockReload?this.deliveryDirectives=new Sg(E.nextSN,E.nextIndex,""):this.deliveryDirectives=null),this.hls.emit(tg.HLS_LEVEL_LOADED,{playlist:E}))),e.abrupt("return",[E,S,_]);case 37:case"end":return e.stop()}}),e,this,[[3,19],[23,32]])}))),function(e,t,a){return c.apply(this,arguments)})},{key:"parseText",value:function(e,c){var t,a=this.hls.config.onPreM3U8Parse;try{var r;if(a&&(e=a(e)||e),!1===(null===(r=t=Pg.parse(e,c,this._useLowLatency))||void 0===r?void 0:r.live)&&t.segments&&!t.segments.length)throw new Error("empty segments list")}catch(i){throw new Bh(Ah,Nh.HLS,i)}return t&&(t.isMaster?this.hls.emit(tg.HLS_MANIFEST_LOADED,{playlist:t}):this.hls.emit(tg.HLS_LEVEL_LOADED,{playlist:t})),[t]}},{key:"poll",value:function(e,c,t,a,r,i){var n=this;clearTimeout(this._timer),i=i||3e3;var f=this.hls.config.pollRetryCount,s=function(){var o=Nu(Ou().mark((function o(){var l,d;return Ou().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return clearTimeout(n._timer),l=e,o.prev=2,n.deliveryDirectives&&(l=n.deliveryDirectives.addDirectives(e)),o.next=6,n.load(l,c,t);case 6:if((d=o.sent)[0]){o.next=9;break}return o.abrupt("return");case 9:f=n.hls.config.pollRetryCount,a(d[0],d[1],d[2]),o.next=17;break;case 13:o.prev=13,o.t0=o.catch(2),--f<=0&&r(o.t0);case 17:n._timer=setTimeout(s,i);case 18:case"end":return o.stop()}}),o,null,[[2,13]])})));return function(){return o.apply(this,arguments)}}();this._timer=setTimeout(s,i)}},{key:"stopPoll",value:function(){return clearTimeout(this._timer),this.cancel()}},{key:"cancel",value:function(){return Promise.all([this._loader.cancel(),this._audioLoader.cancel()])}}]),e}();function Og(e,c,t){return c>t&&(t=c),Math.min(Math.max(e,c),t)}var Mg=new Gh("playlist"),Fg=function(){function e(c,t,a){Uu(this,e),ju(this,"live",void 0),ju(this,"id",0),ju(this,"bitrate",0),ju(this,"width",0),ju(this,"height",0),ju(this,"name",""),ju(this,"url",""),ju(this,"audioCodec",""),ju(this,"videoCodec",""),ju(this,"textCodec",""),ju(this,"startCC",0),ju(this,"endCC",0),ju(this,"startSN",0),ju(this,"endSN",-1),ju(this,"totalDuration",0),ju(this,"targetDuration",0),ju(this,"partTargetDuration",0),ju(this,"canSkipUntil",0),ju(this,"canSkipDateRanges",!1),ju(this,"skippedSegments",0),ju(this,"canBlockReload",!1),ju(this,"partHoldBack",0),ju(this,"lowLatency",!1),ju(this,"endPartIndex",0),ju(this,"snDiff",null),ju(this,"segments",[]),ju(this,"audioStreams",[]),ju(this,"subtitleStreams",[]),ju(this,"closedCaptions",[]),ju(this,"currentAudioStream",null),ju(this,"currentSubtitleStream",null),this.update(this._setLLPlaybackPoint(c),t,a)}return $u(e,[{key:"lastSegment",get:function(){return this.segments.length?this.segments[this.segments.length-1]:null}},{key:"segmentDuration",get:function(){var e;return this.targetDuration||(null===(e=this.segments[0])||void 0===e?void 0:e.duration)||0}},{key:"liveEdge",get:function(){return this.endTime},set:function(e){this.endTime=e}},{key:"endTime",get:function(){var e;return(null===(e=this.lastSegment)||void 0===e?void 0:e.end)||0},set:function(e){var c=this.lastSegment;c&&(c.duration=e-c.start)}},{key:"currentSubtitleEndSn",get:function(){var e;return(null===(e=this.currentSubtitleStream)||void 0===e?void 0:e.endSN)||0}},{key:"clearOldSegment",value:function(e,c){return this.currentAudioStream&&this._clearSegments(e,c),this._clearSegments(e,c)}},{key:"getAudioSegment",value:function(e){if(e&&this.currentAudioStream){var c=e.sn-this.snDiff;return this.currentAudioStream.segments.find((function(e){return e.sn===c}))}}},{key:"update",value:function(e,c){this.url=e.url,Array.isArray(e.segments)?(null!==this.live&&void 0!==this.live||(this.live=e.live),this._updateSegments(e,this),this.startCC=e.startCC,this.endCC=e.endCC,this.startSN=e.startSN,this.endSN=e.endSN||-1,this.totalDuration=e.totalDuration,this.targetDuration=e.targetDuration,this.live=e.live,this.lowLatency=e.lowLatency,this.canBlockReload=e.canBlockReload,this.canSkipDateRanges=e.canSkipDateRanges,this.canSkipUntil=e.canSkipUntil,this.partHoldBack=e.partHoldBack,this.partTargetDuration=e.partTargetDuration,this.skippedSegments=e.skippedSegments,this.endPartIndex=e.endPartIndex,c&&this.currentAudioStream&&Array.isArray(c.segments)&&(this._updateSegments(c,this.currentAudioStream),(null===this.snDiff||void 0===this.snDiff)&&e.segments.length&&c.segments.length&&(this.snDiff=e.segments[0].sn-c.segments[0].sn))):(this.id=e.id,this.bitrate=e.bitrate,this.width=e.width,this.height=e.height,this.name=e.name,this.audioCodec=e.audioCodec,this.videoCodec=e.videoCodec,this.textCodec=e.textCodec,this.audioStreams=e.audioStreams,this.subtitleStreams=e.subtitleStreams,!this.currentAudioStream&&this.audioStreams.length&&(this.currentAudioStream=this.audioStreams.find((function(e){return e.default}))||this.audioStreams[0]),!this.currentSubtitleStream&&this.subtitleStreams.length&&(this.currentSubtitleStream=this.subtitleStreams.find((function(e){return e.default}))||this.subtitleStreams[0]))}},{key:"updateSubtitle",value:function(e){var c=this;if(e&&this.currentSubtitleStream&&Array.isArray(e.segments)){var t=this._updateSegments(e,this.currentSubtitleStream),a=this.currentSubtitleStream.segments;if(a.length>100&&(this.currentSubtitleStream.segments=a.slice(100)),t)return t.map((function(e){return{sn:e.sn,url:e.url,duration:e.duration,start:e.start,end:e.end,lang:c.currentSubtitleStream.lang}}))}}},{key:"switchSubtitle",value:function(e){var c=this.subtitleStreams.find((function(c){return c.lang===e})),t=this.currentSubtitleStream;c&&(this.currentSubtitleStream=c,t.segments=[])}},{key:"_setLLPlaybackPoint",value:function(e){if(!e.lowLatency||!e.segments.length)return e;for(var c=e.totalDuration-e.partHoldBack,t=e.segments,a=0,r=0,i=t.length;r<i;r++)t[r].start<=c&&t[r].independent&&(a=r);var n=t.slice(a),f=0;return n.forEach((function(e){e.start=f,f=e.end})),e.segments=n,e.totalDuration=f,e.startSN=n[0].sn,e.startCC=n[0].cc,Mg.log("set ll-hls playback point: SN=".concat(e.startSN," partIndex=").concat(n[0].partIndex,", duration=").concat(f)),e}},{key:"_clearSegments",value:function(e,c){for(var t=0,a=this.segments,r=0,i=a.length;r<i;r++)if(a[r].end>=e){t=r;break}return t>c&&(t=c),t&&(this.segments=this.segments.slice(t),this.currentAudioStream&&(this.currentAudioStream.segments=this.currentAudioStream.segments.slice(t))),c-t}},{key:"_updateSegments",value:function(e,c){var t=c.segments;if(this.live){var a,r=e.lowLatency,i=t[t.length-1],n=null!==(a=null==i?void 0:i.sn)&&void 0!==a?a:-1,f=(null==i?void 0:i.partIndex)||0,s=n<e.endSN&&e.segments.length;if(r&&(s=s||f<e.endPartIndex),s){Mg.log("update segments: endSN:".concat(n,", partIndex:").concat(f," --\x3e endSN:").concat(e.endSN,", partIndex:").concat(e.endPartIndex));var o=e.segments.findIndex((function(e){return e.sn===n&&e.partIndex===f})),l=o<0?e.segments:e.segments.slice(o+1);if(t.length&&l.length){var d=i.end,u=d;l.forEach((function(e){e.start=d,d=e.end})),Mg.log("liveEdge: ".concat(u," -> ").concat(d));var h=(null==i?void 0:i.cc)||-1;h>l[0].cc&&l.forEach((function(e){return e.cc+=h}))}return c.endSN=e.endSN,c.segments=t.concat(l),l}}else c.segments=e.segments}}]),e}(),Ng=function(){function e(c){Uu(this,e),ju(this,"streams",[]),ju(this,"currentStream",null),ju(this,"dvrWindow",0),ju(this,"_segmentPointer",-1),this.hls=c}return $u(e,[{key:"lowLatency",get:function(){var e;return null===(e=this.currentStream)||void 0===e?void 0:e.lowLatency}},{key:"lastSegment",get:function(){var e;return null===(e=this.currentStream)||void 0===e?void 0:e.lastSegment}},{key:"currentSegment",get:function(){var e;return null===(e=this.currentSegments)||void 0===e?void 0:e[this._segmentPointer]}},{key:"nextSegment",get:function(){var e;return null===(e=this.currentSegments)||void 0===e?void 0:e[this._segmentPointer+1]}},{key:"currentSegments",get:function(){var e;return null===(e=this.currentStream)||void 0===e?void 0:e.segments}},{key:"currentSubtitleEndSn",get:function(){var e;return null===(e=this.currentStream)||void 0===e?void 0:e.currentSubtitleEndSn}},{key:"liveEdge",get:function(){var e;return null===(e=this.currentStream)||void 0===e?void 0:e.liveEdge},set:function(e){this.currentStream&&(this.currentStream.liveEdge=e)}},{key:"totalDuration",get:function(){var e;return(null===(e=this.currentStream)||void 0===e?void 0:e.totalDuration)||0}},{key:"seekRange",get:function(){var e=this.currentSegments;if(e&&e.length)return[e[0].start,e[e.length-1].end]}},{key:"nbSegments",get:function(){var e;return(null===(e=this.currentSegments)||void 0===e?void 0:e.length)||0}},{key:"isEmpty",get:function(){var e;return!(null!==(e=this.currentSegments)&&void 0!==e&&e.length)}},{key:"isLive",get:function(){var e;return null===(e=this.currentStream)||void 0===e?void 0:e.live}},{key:"hadSegmentLoaded",get:function(){return-1!==this._segmentPointer}},{key:"hasSubtitle",get:function(){var e;return!(null===(e=this.currentStream)||void 0===e||!e.currentSubtitleStream)}},{key:"getAudioSegment",value:function(e){var c;return null===(c=this.currentStream)||void 0===c?void 0:c.getAudioSegment(e)}},{key:"moveSegmentPointer",value:function(e){var c;null==e&&(e=this._segmentPointer+1),this._segmentPointer=Og(e,-1,null===(c=this.currentSegments)||void 0===c?void 0:c.length)}},{key:"reset",value:function(){this.streams=[],this.currentStream=null,this.dvrWindow=0,this._segmentPointer=-1}},{key:"getSegmentByIndex",value:function(e){var c;return null===(c=this.currentSegments)||void 0===c?void 0:c[e]}},{key:"setNextSegmentByIndex",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this._segmentPointer=e-1}},{key:"setNextSegmentBySN",value:function(){var e,c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=null===(e=this.currentSegments)||void 0===e?void 0:e.findIndex((function(e){return e.sn===c}));return-1!==t&&this.setNextSegmentByIndex(t+1),t}},{key:"findSegmentIndexByTime",value:function(e){var c=this.currentSegments;if(c){for(var t,a=0,r=c.length;a<r;a++)if(e>=(t=c[a]).start&&e<t.end)return a;var i=c[c.length-1];if(Math.abs(e-(null==i?void 0:i.end))<.2)return c.length-1}}},{key:"upsertPlaylist",value:function(e,c,t){var a=this;if(e){if(e.isMaster)this.streams.length=e.streams.length,e.streams.filter((function(e){return e.url})).forEach((function(e,c){a.streams[c]?a.streams[c].update(e):a.streams[c]=new Fg(e)})),this.currentStream=this.streams[0];else if(Array.isArray(e.segments)){var r=this.currentStream;if(r){r.update(e,c,t);var i=r.updateSubtitle(t);i&&this.hls.emit(tg.SUBTITLE_SEGMENTS,{list:i})}else this.reset(),this.currentStream=this.streams[0]=new Fg(e,c,t)}this.currentStream&&this.hls.isLive&&!this.dvrWindow&&(this.dvrWindow=this.currentSegments.reduce((function(e,c){return e+=c.duration}),0))}}},{key:"updateSegmentsRanges",value:function(e,c){var t;(null===(t=this.currentSegments)||void 0===t?void 0:t.filter((function(c){return c.sn>=e}))).forEach((function(e){e.start=c,c=e.end}))}},{key:"switchSubtitle",value:function(e){var c;null===(c=this.currentStream)||void 0===c||c.switchSubtitle(e)}},{key:"clearOldSegment",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.hls.config.maxPlaylistSize||50,c=this.currentStream;if(this.dvrWindow&&c){var t=c.endTime-this.dvrWindow;if(!(t<=0))c.segments.length<=e||(this._segmentPointer=c.clearOldSegment(t,this._segmentPointer))}}},{key:"checkSegmentTrackChange",value:function(e,c){var t=this.findSegmentIndexByTime(e),a=this.getSegmentByIndex(t);if(a&&(a.hasAudio||a.hasVideo)){if(2!==c&&a.hasAudio&&a.hasVideo)return a;if(!(a.end-e>.3)){var r=this.getSegmentByIndex(t+1);if(r&&(r.hasAudio||r.hasVideo))return r.hasAudio!==a.hasAudio||r.hasVideo!==a.hasVideo?r:void 0}}}},{key:"feedbackLiveEdge",value:function(e,c){var t;this.currentSegments&&((null===(t=this.lastSegment)||void 0===t?void 0:t.sn)===e.sn?this.liveEdge=c:this.updateSegmentsRanges(e.sn+1,c))}}]),e}(),Ug=function(){function e(c){var t=this;Uu(this,e),ju(this,"error",null),ju(this,"_emitOnLoaded",(function(e,c){var a=e.data,r=e.response,i=e.options||{},n=i.firstByteTime,f=i.startTime,s=i.endTime,o=i.contentLength,l=s-f;t._bandwidthService.addRecord(o||a.byteLength,l),t.hls.emit(bb.SPEED,{time:l,byteLength:o,url:c}),t.hls.emit(bb.LOAD_COMPLETE,{url:c,elapsed:l||0}),t.hls.emit(bb.TTFB,{url:c,responseUrl:r.url,elapsed:n-f}),t.hls.emit(bb.LOAD_RESPONSE_HEADERS,{headers:r.headers,url:c})})),ju(this,"_onLoaderRetry",(function(e,c){t.hls.emit(bb.LOAD_RETRY,{error:Bh.network(e),retryTime:c})})),this.hls=c,this._bandwidthService=new Ab,this._mapCache={},this._keyCache={};var a=this.hls.config,r=a.retryCount,i=a.retryDelay,n=a.loadTimeout,f=a.fetchOptions;this._segmentLoader=new _b(Cu(Cu({},f),{},{responseType:"arraybuffer",retry:r,retryDelay:i,timeout:n,onRetryError:this._onLoaderRetry})),this._audioSegmentLoader=new _b(Cu(Cu({},f),{},{responseType:"arraybuffer",retry:r,retryDelay:i,timeout:n,onRetryError:this._onLoaderRetry})),this._keyLoader=new _b(Cu(Cu({},f),{},{responseType:"arraybuffer",retry:r,retryDelay:i,timeout:n,onRetryError:this._onLoaderRetry}))}var c,t;return $u(e,[{key:"speedInfo",value:function(){return{speed:this._bandwidthService.getLatestSpeed(),avgSpeed:this._bandwidthService.getAvgSpeed()}}},{key:"load",value:function(e,c,t){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t,r=[];return e&&(r[0]=this.loadVideoSegment(e,t)),c&&(r[1]=this.loadAudioSegment(c,a)),Promise.all(r)}},{key:"loadVideoSegment",value:function(e,c){return this._loadSegment(this._segmentLoader,e,c)}},{key:"loadAudioSegment",value:function(e,c){return this._loadSegment(this._audioSegmentLoader,e,c)}},{key:"_loadSegment",value:(t=Nu(Ou().mark((function e(c,t,a){var r,i,n,f,s,o,l,d,u,h,b,p,g,m,v,y=this;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l=[],this.hls.emit(bb.LOAD_START,{url:t.url}),l[0]=c.load(t.url),a&&t.initSegment&&(u=t.initSegment.url,(i=this._mapCache[u])||(this.hls.emit(bb.LOAD_START,{url:u}),l[1]=c.load(u).then((function(e){e&&(Object.keys(y._mapCache)>30&&(y._mapCache={}),i=y._mapCache[u]=e.data,y._emitOnLoaded(e,u))}))),(h=null===(d=t.initSegment.key)||void 0===d?void 0:d.url)&&(o=t.initSegment.key.iv,(s=this._keyCache[h])||(this.hls.emit(bb.LOAD_START,{url:h}),l[2]=this._keyLoader.load(h).then((function(e){e&&(s=y._keyCache[h]=e.data,y._emitOnLoaded(e,h))}))))),(b=null===(r=t.key)||void 0===r?void 0:r.url)&&t.key.isSegmentEncrypted()&&(f=t.key.iv,(n=this._keyCache[b])||(this.hls.emit(bb.LOAD_START,{url:b}),l[3]=this._keyLoader.load(b).then((function(e){e&&(n=y._keyCache[b]=e.data,y._emitOnLoaded(e,b))})))),e.next=8,Promise.all(l);case 8:if(p=e.sent,g=Wu(p,1),m=g[0]){e.next=13;break}return e.abrupt("return");case 13:return v=m.data,this._emitOnLoaded(m,t.url),e.abrupt("return",{data:v,map:i,key:n,mapKey:s,keyIv:f,mapKeyIv:o});case 16:case"end":return e.stop()}}),e,this)}))),function(e,c,a){return t.apply(this,arguments)})},{key:"reset",value:function(){this.error=null,this._mapCache={},this._keyCache={},this._bandwidthService.reset()}},{key:"cancel",value:(c=Nu(Ou().mark((function e(){return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all([this._keyLoader.cancel(),this._segmentLoader.cancel(),this._audioSegmentLoader.cancel()]);case 2:case"end":return e.stop()}}),e,this)}))),function(){return c.apply(this,arguments)})}]),e}(),Bg=new Gh("hls"),$g=function(e){Gu(m,e);var c,t,a,r,i,n,f,s,o,l,d,u,h,b,p,g=Yu(m);function m(e){var c,t,a;return Uu(this,m),ju(qu(c=g.call(this)),"version",m.version),ju(qu(c),"media",null),ju(qu(c),"config",null),ju(qu(c),"_manifestLoader",null),ju(qu(c),"_segmentLoader",null),ju(qu(c),"_playlist",null),ju(qu(c),"_bufferService",null),ju(qu(c),"_gapService",null),ju(qu(c),"_seiService",null),ju(qu(c),"_stats",null),ju(qu(c),"_prevSegSn",null),ju(qu(c),"_prevSegCc",null),ju(qu(c),"_tickTimer",null),ju(qu(c),"_tickInterval",500),ju(qu(c),"_segmentProcessing",!1),ju(qu(c),"_reloadOnPlay",!1),ju(qu(c),"_switchUrlOpts",null),ju(qu(c),"_isProcessQuotaExceeded",!1),ju(qu(c),"_loadSegment",Nu(Ou().mark((function e(){var t,a,r,i,n,f,s,o;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!c._segmentProcessing&&c.media){e.next=2;break}return e.abrupt("return");case 2:if(t=c._playlist,a=t.nextSegment,r=t.lastSegment,i=qu(c),n=i.config,f=Math.min(Math.max((null==r?void 0:r.duration)-.008||0,.016),.1),a){e.next=8;break}return e.abrupt("return");case 8:if(c.isLive){e.next=18;break}if(s=c.bufferInfo(),c.media.paused&&!c.media.currentTime&&(s=c.bufferInfo(s.nextStart||.5)),o=Math.abs(s.end-c.media.duration)<f,!(s.remaining>=n.preloadTime||o)){e.next=15;break}return c._tryEos(),e.abrupt("return");case 15:if(!n.preferMMSStreaming||c._bufferService.msStreaming){e.next=17;break}return e.abrupt("return");case 17:!c._urlSwitching&&c._prevSegSn!==a.sn-1&&s.end&&Math.abs(a.start-s.end)>1&&c._playlist.setNextSegmentByIndex(c._playlist.findSegmentIndexByTime(s.end+.1));case 18:return e.abrupt("return",c._loadSegmentDirect());case 19:case"end":return e.stop()}}),e)})))),ju(qu(c),"_onLoadeddata",(function(){c.isLive&&!c.config.mseLowLatency&&c.media.duration!==1/0&&c._bufferService.updateDuration(1/0).catch((function(e){}))})),ju(qu(c),"_onPlay",Nu(Ou().mark((function e(){return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!c.media.seeking||0!==c.media.currentTime){e.next=3;break}return Bg.debug("replay currentTime 0, return"),e.abrupt("return");case 3:if(clearTimeout(c._disconnectTimer),!c._reloadOnPlay){e.next=9;break}c._reloadOnPlay=!1,c.replay(!0),e.next=12;break;case 9:return e.next=11,c._loadSegment();case 11:c._startTick();case 12:case"end":return e.stop()}}),e)})))),ju(qu(c),"_onPause",(function(){if(c.isLive){if(!c._reloadOnPlay){var e=c.config.disconnectTime;if(null==e&&(e=c._playlist.dvrWindow),!Number.isFinite(e))return;clearTimeout(c._disconnectTimer),c._disconnectTimer=setTimeout((function(){c._reloadOnPlay=!0,c._clear()}),e||0)}}else c._stopTick()})),ju(qu(c),"_onSeeking",Nu(Ou().mark((function e(){var t,a,r,i,n,f,s;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(c.media){e.next=2;break}return e.abrupt("return");case 2:if(c._onCheckQuotaExceeded(),t=c.media.currentTime,!(a=c._playlist.seekRange)){e.next=10;break}if(!((r=Og(t,a[0],c.isLive?a[1]:c.media.duration))>=0&&Math.abs(t-r)>=.1)){e.next=10;break}return c.media.currentTime=r,e.abrupt("return");case 10:if(i=c._playlist.currentSegment,n=Th.info(Th.get(c.media),t,.1),!i){e.next=17;break}if(!(n.end&&Math.abs(n.end-i.end)<.2)){e.next=15;break}return e.abrupt("return");case 15:if(!c.isLive||!n.end){e.next=17;break}return e.abrupt("return");case 17:if(f=c._playlist.findSegmentIndexByTime(t),s=c._playlist.getSegmentByIndex(f),null!=f&&s&&(!c._segmentProcessing||s!==c._playlist.nextSegment)){e.next=21;break}return e.abrupt("return");case 21:return Bg.debug("seek to",t,s),c._playlist.setNextSegmentByIndex(f),c._stopTick(),e.next=26,c._segmentLoader.cancel();case 26:if(c._segmentProcessing=!1,n.end&&!c.isLive){e.next=30;break}return e.next=30,c._loadSegmentDirect(!0);case 30:c._startTick();case 31:case"end":return e.stop()}}),e)})))),ju(qu(c),"_onTimeupdate",(function(){if(c.media){var e,t=c.config;if(t.isLive&&t.maxLatency&&t.targetLatency){var a=c._playlist.liveEdge;if(!a)return;var r=a-c.media.currentTime;r>=t.maxLatency&&(Bg.debug("latency jump, currentTime:".concat(c.media.currentTime,", liveEdge:").concat(a,", latency=").concat(r)),c.media.currentTime=a-t.targetLatency)}if(t.seiInTime)null===(e=c._seiService)||void 0===e||e.throw(c.media.currentTime);t.allowedStreamTrackChange&&!t.softDecode&&c.media.readyState&&c._checkStreamTrackChange(c.media.currentTime)}})),ju(qu(c),"_tick",(function(){if(c.media){c._startTick();var e=c.media,t=c._segmentLoader.error;if(c._onCheckQuotaExceeded(),c._isProcessQuotaExceeded&&(c._bufferService.isFull()||(c._isProcessQuotaExceeded=!1,c._segmentProcessing=!1)),t){(!e.readyState||c.bufferInfo(.5).remaining<1)&&(t.fatal=!0,c._emitError(Bh.network(t)))}else e.readyState&&(!function(e){return e&&!e.paused&&!e.ended&&0!==e.playbackRate&&0!==e.readyState}(e)?e.readyState<2&&c._gapService&&c._gapService.do(e,c.config.maxJumpDistance,!e.currentTime||c.isLive):(c._loadSegment(),c._gapService&&c._gapService.do(e,c.config.maxJumpDistance,c.isLive))),c.isLive||c._tryEos()}})),c.config=(a=(null==(t=e)?void 0:t.media)||document.createElement("video"),e=Cu(Cu({maxPlaylistSize:50,retryCount:3,retryDelay:1e3,pollRetryCount:2,loadTimeout:1e4,manifestLoadTimeout:1e4,preloadTime:30,softDecode:!1,bufferBehind:10,maxJumpDistance:3,startTime:0,useLowLatency:!0,targetLatency:10,maxLatency:20,allowedStreamTrackChange:!0,seiInTime:!1,manifestList:[],minSegmentsStartPlay:3,preferMMS:!1,preferMMSStreaming:!1,mseLowLatency:!0,fixerConfig:{forceFixLargeGap:!1,largeGapThreshold:5}},t),{},{media:a})),c.media=c.config.media,c._manifestLoader=new Cg(qu(c)),c._segmentLoader=new Ug(qu(c)),c._playlist=new Ng(qu(c)),c._bufferService=new sg(qu(c)),e.seiInTime&&(c._seiService=new kb(qu(c))),e.softDecode||(c._gapService=new Tb),c._stats=new Ib(qu(c),9e4),c.media.addEventListener("loadeddata",c._onLoadeddata),c.media.addEventListener("play",c._onPlay),c.media.addEventListener("pause",c._onPause),c.media.addEventListener("seeking",c._onSeeking),c.media.addEventListener("timeupdate",c._onTimeupdate),c}return $u(m,[{key:"isLive",get:function(){return this._playlist.isLive}},{key:"streams",get:function(){return this._playlist.streams}},{key:"currentStream",get:function(){return this._playlist.currentStream}},{key:"hasSubtitle",get:function(){return this._playlist.hasSubtitle}},{key:"totalDuration",get:function(){return this._playlist.totalDuration}},{key:"baseDts",get:function(){var e;return null===(e=this._bufferService)||void 0===e?void 0:e.baseDts}},{key:"abrSwitchPoint",get:function(){var e=this._urlSwitching?this._playlist.currentSegment:this._playlist.nextSegment;return e?e.start+e.duration/2:null}},{key:"speedInfo",value:function(){return this._segmentLoader.speedInfo()}},{key:"bufferInfo",value:function(){var e,c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.1;return Th.info(Th.get(this.media),null===(e=this.media)||void 0===e?void 0:e.currentTime,c)}},{key:"getStats",value:function(){return this._stats.getStats()}},{key:"playbackQuality",value:function(){return function(e){if(!e)return{};if("function"==typeof e.getVideoPlaybackQuality){var c=e.getVideoPlaybackQuality();return{droppedVideoFrames:c.droppedVideoFrames||c.corruptedVideoFrames,totalVideoFrames:c.totalVideoFrames,creationTime:c.creationTime}}return{droppedVideoFrames:e.webkitDroppedFrameCount,totalVideoFrames:e.webkitDecodedFrameCount,creationTime:performance.now()}}(this.media)}},{key:"load",value:(p=Nu(Ou().mark((function e(){var c,t,a,r=arguments;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c=r.length>0&&void 0!==r[0]?r[0]:"",a="boolean"==typeof(t=r.length>1&&void 0!==r[1]?r[1]:{})?t:!(null==t||!t.reuseMse),"object"===Mu(t)&&null!=t&&t.clearSwitchStatus&&(this._urlSwitching=!1,this._switchUrlOpts=null,this.config.startTime=void 0),c&&(this.config.url=c),c=this.config.url,e.next=8,this._reset(a);case 8:return e.next=10,this._loadData(c);case 10:this._startTick();case 11:case"end":return e.stop()}}),e,this)}))),function(){return p.apply(this,arguments)})},{key:"_loadData",value:(b=Nu(Ou().mark((function e(c){var t,a,r,i,n,f,s,o,l,d,u,h,b;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:try{c&&(c=c.trim())}catch(p){}if(c){e.next=3;break}throw this._emitError(new Bh(Mh,Nh.OPTION,null,null,"m3u8 url is missing"));case 3:return e.next=5,this._loadM3U8(c);case 5:if(t=e.sent,a=this._playlist.currentStream,!this._urlSwitching){e.next=23;break}if(!this.isLive){e.next=14;break}r=this._playlist.setNextSegmentBySN(this._prevSegSn),Bg.log("segment nb=".concat(this._prevSegSn," index of ").concat(r," in the new playlist")),-1===r&&(this._prevSegCc=null,this._prevSegSn=null),e.next=23;break;case 14:if(0===a.bitrate&&null!==(i=this._switchUrlOpts)&&void 0!==i&&i.bitrate&&(a.bitrate=null===(s=this._switchUrlOpts)||void 0===s?void 0:s.bitrate),o="number"==typeof(null===(n=this._switchUrlOpts)||void 0===n?void 0:n.startTime)?null===(f=this._switchUrlOpts)||void 0===f?void 0:f.startTime:this._getSeamlessSwitchPoint(),this.config.startTime=o,l=this._playlist.findSegmentIndexByTime(o),!(d=this._playlist.getSegmentByIndex(l+1))){e.next=23;break}return u=d.start,e.next=23,this._bufferService.removeBuffer(u);case 23:if(t){e.next=25;break}return e.abrupt("return");case 25:if(!this.isLive){e.next=36;break}if(this._bufferService.setLiveSeekableRange(0,4294967295),Bg.log("totalDuration first time got:",this._playlist.totalDuration),Bg.log("nb segments got:",this._playlist.nbSegments),this.config.targetLatency<this._playlist.totalDuration&&(this.config.targetLatency=this._playlist.totalDuration,this.config.maxLatency=1.5*this.config.targetLatency),t.isMaster||this._pollM3U8(c),!(this._playlist.nbSegments<this.config.minSegmentsStartPlay)){e.next=33;break}return e.abrupt("return");case 33:return e.next=35,this._loadSegment();case 35:return e.abrupt("return");case 36:return e.next=38,this._bufferService.updateDuration(a.totalDuration);case 38:return(h=this.config.startTime)&&(null!==(b=this._switchUrlOpts)&&void 0!==b&&b.seamless||(this.media.currentTime=h),this._playlist.setNextSegmentByIndex(this._playlist.findSegmentIndexByTime(h)||0)),e.next=42,this._loadSegment();case 42:case"end":return e.stop()}}),e,this)}))),function(e){return b.apply(this,arguments)})},{key:"replay",value:(h=Nu(Ou().mark((function e(c){return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.config.startTime=0,this._urlSwitching=!1,this._switchUrlOpts=null,e.next=5,this.load();case 5:return this._reloadOnPlay=!1,e.abrupt("return",this.media.play(!c));case 7:case"end":return e.stop()}}),e,this)}))),function(e){return h.apply(this,arguments)})},{key:"switchURL",value:(u=Nu(Ou().mark((function e(c){var t,a,r,i,n,f,s,o=arguments;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=o.length>1&&void 0!==o[1]?o[1]:{},a={seamless:!1,startTime:0,bitrate:0},e.t0=Mu(t),e.next="number"===e.t0?5:"boolean"===e.t0?7:"object"===e.t0?9:11;break;case 5:return t={startTime:t},e.abrupt("break",12);case 7:return t={seamless:t},e.abrupt("break",12);case 9:for(r in t)void 0!==t[r]&&null!==t[r]||delete t[r];return e.abrupt("break",12);case 11:throw"unsupported switchURL args: ".concat(t);case 12:if(t=Object.assign({},a,t),n=(i=t).seamless,f=i.startTime,this.config.url=c,this.config.startTime=f,this._switchUrlOpts=t,n){e.next=38;break}if(e.prev=18,!this.config.softDecode){e.next=23;break}e.t1=this.load(c),e.next=26;break;case 23:return e.next=25,this.load(c);case 25:e.t1=e.sent;case 26:s=e.t1,e.next=33;break;case 29:throw e.prev=29,e.t2=e.catch(18),this.emit(tg.SWITCH_URL_FAILED,e.t2),e.t2;case 33:return this._reloadOnPlay=!1,s&&this.emit(tg.SWITCH_URL_SUCCESS,{url:c}),e.abrupt("return",this.media.play(!0));case 38:return this._urlSwitching=!0,this.isLive||(this._prevSegSn=null,this._prevSegCc=null),this._playlist.reset(),this._bufferService.seamlessSwitch(),e.next=44,this._clear();case 44:return e.next=46,this._loadData(c);case 46:this._startTick();case 47:this._switchUrlOpts=null;case 48:case"end":return e.stop()}}),e,this,[[18,29]])}))),function(e){return u.apply(this,arguments)})},{key:"switchStream",value:(d=Nu(Ou().mark((function e(c){var t,a,r,i,n,f=arguments;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=!(f.length>1&&void 0!==f[1])||f[1],a=this.currentStream,r=this.streams,a&&a.id!==c&&r&&!(r.length<2)){e.next=5;break}return e.abrupt("return");case 5:if(i=r.find((function(e){return e.id===c}))){e.next=8;break}return e.abrupt("return");case 8:return e.prev=8,e.next=11,this._clear();case 11:if(!t){e.next=14;break}return e.next=14,this._bufferService.clearAllBuffer();case 14:e.next=19;break;case 16:throw e.prev=16,e.t0=e.catch(8),this._emitError(Bh.create(e.t0));case 19:if(a.currentAudioStream&&i.audioStreams.length>2&&(n=a.currentAudioStream.id,i.currentAudioStream=i.audioStreams.find((function(e){return e.id===n}))||i.currentAudioStream),this._playlist.currentStream=i,e.prev=21,!this.isLive&&i.segments.length){e.next=25;break}return e.next=25,this._refreshM3U8();case 25:return this._playlist.setNextSegmentByIndex(this._playlist.findSegmentIndexByTime(this.media.currentTime)||0),this._prevSegCc=null,e.next=29,this._loadSegmentDirect();case 29:e.next=35;break;case 31:throw e.prev=31,e.t1=e.catch(21),this._playlist.currentStream=a,e.t1;case 35:return this._startTick(),e.abrupt("return",i);case 37:case"end":return e.stop()}}),e,this,[[8,16],[21,31]])}))),function(e){return d.apply(this,arguments)})},{key:"switchAudioStream",value:(l=Nu(Ou().mark((function e(c){var t,a,r,i,n=arguments;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=!(n.length>1&&void 0!==n[1])||n[1],a=this.currentStream){e.next=4;break}return e.abrupt("return");case 4:if((r=a.currentAudioStream)&&r.id!==c&&!(a.audioStreams.length<2)){e.next=7;break}return e.abrupt("return");case 7:if(i=a.audioStreams.find((function(e){return e.id===c}))){e.next=10;break}return e.abrupt("return");case 10:return e.prev=10,e.next=13,this._clear();case 13:if(!t){e.next=16;break}return e.next=16,this._bufferService.clearAllBuffer();case 16:e.next=21;break;case 18:throw e.prev=18,e.t0=e.catch(10),this._emitError(Bh.create(e.t0));case 21:if(a.currentAudioStream=i,e.prev=22,!this.isLive&&i.segments.length){e.next=26;break}return e.next=26,this._refreshM3U8();case 26:return this._playlist.setNextSegmentByIndex(this._playlist.findSegmentIndexByTime(this.media.currentTime)||0),this._prevSegCc=null,e.next=30,this._loadSegmentDirect();case 30:e.next=36;break;case 32:throw e.prev=32,e.t1=e.catch(22),a.currentAudioStream=r,e.t1;case 36:return this._startTick(),e.abrupt("return",i);case 38:case"end":return e.stop()}}),e,this,[[10,18],[22,32]])}))),function(e){return l.apply(this,arguments)})},{key:"switchSubtitleStream",value:(o=Nu(Ou().mark((function e(c){return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this._playlist.switchSubtitle(c),e.next=3,this._manifestLoader.stopPoll();case 3:return e.next=5,this._refreshM3U8();case 5:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"detachMedia",value:(s=Nu(Ou().mark((function e(){return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._bufferService){e.next=3;break}return e.next=3,this._bufferService.detachMedia();case 3:case"end":return e.stop()}}),e,this)}))),function(){return s.apply(this,arguments)})},{key:"destroy",value:(f=Nu(Ou().mark((function e(){var c;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.media){e.next=2;break}return e.abrupt("return");case 2:return this.removeAllListeners(),this._playlist.reset(),this._segmentLoader.reset(),null===(c=this._seiService)||void 0===c||c.reset(),this.media.removeEventListener("loadeddata",this._onLoadeddata),this.media.removeEventListener("play",this._onPlay),this.media.removeEventListener("pause",this._onPause),this.media.removeEventListener("seeking",this._onSeeking),this.media.removeEventListener("timeupdate",this._onTimeupdate),e.next=13,Promise.all([this._clear(),this._bufferService.destroy()]);case 13:this.media=null;case 14:case"end":return e.stop()}}),e,this)}))),function(){return f.apply(this,arguments)})},{key:"_loadM3U8",value:(n=Nu(Ou().mark((function e(c){var t,a,r,i,n,f,s;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,!(i=null===(a=this.config.manifestList)||void 0===a||null===(r=a.filter((function(e){return e.url===c}))[0])||void 0===r?void 0:r.manifest)){e.next=6;break}e.t0=this._manifestLoader.parseText(i,c),e.next=9;break;case 6:return e.next=8,this._manifestLoader.load(c);case 8:e.t0=e.sent;case 9:n=e.t0,f=Wu(n,1),t=f[0],e.next=17;break;case 14:throw e.prev=14,e.t1=e.catch(0),this._emitError(Bh.create(e.t1));case 17:if(t){e.next=19;break}return e.abrupt("return");case 19:if(this._playlist.upsertPlaylist(t),!t.isMaster){e.next=24;break}return null!==(s=this._playlist.currentStream.subtitleStreams)&&void 0!==s&&s.length&&this.emit(tg.SUBTITLE_PLAYLIST,{list:this._playlist.currentStream.subtitleStreams}),e.next=24,this._refreshM3U8();case 24:return this.emit(tg.STREAM_PARSED),e.abrupt("return",t);case 26:case"end":return e.stop()}}),e,this,[[0,14]])}))),function(e){return n.apply(this,arguments)})},{key:"_refreshM3U8",value:function(){var e,c,t=this,a=this._playlist.currentStream;if(!a||!a.url)throw this._emitError(Bh.create(null,null,new Error("m3u8 url is not defined")));var r=a.url,i=null===(e=a.currentAudioStream)||void 0===e?void 0:e.url,n=null===(c=a.currentSubtitleStream)||void 0===c?void 0:c.url;return this._manifestLoader.load(r,i,n).then((function(e){var c=Wu(e,3),a=c[0],f=c[1],s=c[2];a&&(t._playlist.upsertPlaylist(a,f,s),t.isLive&&t._pollM3U8(r,i,n))})).catch((function(e){throw t._emitError(Bh.create(e))}))}},{key:"_pollM3U8",value:function(e,c,t){var a,r,i=this,n=this._playlist.isEmpty;this._playlist.lowLatency?a=1e3*(this._playlist.currentStream.partTargetDuration||0):a=1e3*((null===(r=this._playlist.lastSegment)||void 0===r?void 0:r.duration)||0);this._manifestLoader.poll(e,c,t,(function(e,c,t){i._playlist.upsertPlaylist(e,c,t),i._playlist.clearOldSegment(),(e&&n&&!i._playlist.isEmpty||!i._playlist.hadSegmentLoaded&&i._playlist.nbSegments>=i.config.minSegmentsStartPlay)&&i._loadSegment(),n&&(n=i._playlist.isEmpty)}),(function(e){i._emitError(Bh.create(e))}),a)}},{key:"_loadSegmentDirect",value:(i=Nu(Ou().mark((function e(c){var t,a,r,i,n,f;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this._playlist.nextSegment){e.next=3;break}return e.abrupt("return");case 3:return a=!1,r=null,e.prev=5,this._segmentProcessing=!0,Bg.log("load segment, sn:".concat(t.sn,", [").concat(t.start,", ").concat(t.end,"], partIndex:").concat(t.partIndex)),e.next=10,this._reqAndBufferSegment(t,this._playlist.getAudioSegment(t));case 10:a=e.sent,e.next=16;break;case 13:e.prev=13,e.t0=e.catch(5),r=e.t0;case 16:return e.prev=16,this._segmentProcessing=!1,e.finish(16);case 19:if(!r){e.next=26;break}if(!this._bufferService.isFull()){e.next=25;break}return Bg.log("load segment, sn:".concat(t.sn,", partIndex:").concat(t.partIndex)),this._segmentProcessing=!0,this._isProcessQuotaExceeded=!0,e.abrupt("return",!1);case 25:return e.abrupt("return",this._emitError(Bh.create(r)));case 26:return a&&(n=this.bufferInfo().end,this.isLive&&!this.media.seeking&&n&&Math.abs(t.end-n)>1&&(Bg.warn("segment: ".concat(t.sn," expected end=").concat(t.end,", real end=").concat(n)),this._playlist.feedbackLiveEdge(t,n)),f=(null===(i=this._playlist.currentStream)||void 0===i?void 0:i.url)===t.parentUrl,this._urlSwitching&&!f&&(Bg.warn("pre playlist segment appended!"),this._bufferService.seamlessSwitch()),this.isLive&&this._urlSwitching&&f&&(this._urlSwitching=!1,this.emit(tg.SWITCH_URL_SUCCESS,{url:this.config.url})),this._playlist.moveSegmentPointer(),t.isLast?this._end():c||this._loadSegment()),e.abrupt("return",a);case 28:case"end":return e.stop()}}),e,this,[[5,13,16,19]])}))),function(e){return i.apply(this,arguments)})},{key:"_reqAndBufferSegment",value:(r=Nu(Ou().mark((function e(c,t){var a,r,i,n,f,s,o,l,d,u,h;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=c?c.cc:t.cc,i=this._prevSegCc!==r,n=[],e.prev=3,e.next=6,this._segmentLoader.load(c,t,i);case 6:n=e.sent,e.next=14;break;case 9:throw e.prev=9,e.t0=e.catch(3),e.t0.fatal=!1,this._segmentLoader.error=e.t0,e.t0;case 14:if(n[0]){e.next=16;break}return e.abrupt("return");case 16:return e.next=18,(a=this._bufferService).decryptBuffer.apply(a,zu(n));case 18:if(f=e.sent){e.next=21;break}return e.abrupt("return");case 21:return s=c?c.sn:t.sn,o=c?c.start:t.start,l=this._playlist.currentStream,this._bufferService.createSource(f[0],f[1],null==l?void 0:l.videoCodec,null==l?void 0:l.audioCodec),d=Date.now(),u=this._prevSegSn===s-1,this.isLive&&this._urlSwitching&&(h=this.bufferInfo().end,this._playlist.updateSegmentsRanges(s,h),Bg.warn("update the new playlist liveEdge, segment id=".concat(s,", buffer start=").concat(h,", liveEdge=").concat(this._playlist.liveEdge)),o=h),e.next=30,this._bufferService.appendBuffer(c,t,f[0],f[1],i,u,o);case 30:return this.emit(tg.APPEND_COST,{elapsed:Date.now()-d,url:c.url}),e.next=33,this._bufferService.evictBuffer(this.config.bufferBehind);case 33:return this._prevSegCc=r,this._prevSegSn=s,e.abrupt("return",!0);case 36:case"end":return e.stop()}}),e,this,[[3,9]])}))),function(e,c){return r.apply(this,arguments)})},{key:"_onCheckQuotaExceeded",value:(a=Nu(Ou().mark((function e(){var c,t,a,r,i,n;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:c=this.media.currentTime,t=this.media.buffered,a=!1,r=0;case 4:if(!(r<t.length)){e.next=11;break}if(!(t.start(0)>=c&&c<t.end(r))){e.next=8;break}return a=!0,e.abrupt("break",11);case 8:r++,e.next=4;break;case 11:if(!this._bufferService.isFull()){e.next=17;break}if(i=a?this.config.bufferBehind:5,!((n=this.media.currentTime)-i>0)){e.next=17;break}return e.next=17,this._bufferService.removeBuffer(0,n-i);case 17:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)})},{key:"_checkStreamTrackChange",value:function(e){var c=this._playlist.checkSegmentTrackChange(e,this._bufferService.nbSb);c&&this.switchURL(this.config.url,c.start+.2)}},{key:"_clear",value:(t=Nu(Ou().mark((function e(){return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return clearTimeout(this._disconnectTimer),this._stopTick(),e.next=4,Promise.all([this._segmentLoader.cancel(),this._manifestLoader.stopPoll()]);case 4:this._segmentProcessing=!1;case 5:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"_reset",value:(c=Nu(Ou().mark((function e(){var c,t,a=arguments;return Ou().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=a.length>0&&void 0!==a[0]&&a[0],this._reloadOnPlay=!1,this._prevSegSn=null,this._prevSegCc=null,this._switchUrlOpts=null,this._playlist.reset(),this._segmentLoader.reset(),null===(c=this._seiService)||void 0===c||c.reset(),this._stats.reset(),e.next=11,this._clear();case 11:return e.abrupt("return",this._bufferService.reset(t));case 12:case"end":return e.stop()}}),e,this)}))),function(){return c.apply(this,arguments)})},{key:"_end",value:function(){this._clear(),this._bufferService.endOfStream(),(this.media.readyState<=2||this.media.buffered.length>1)&&this._startTick()}},{key:"_stopTick",value:function(){this._tickTimer&&clearTimeout(this._tickTimer),this._tickTimer=null}},{key:"_startTick",value:function(){this._stopTick(),this._tickTimer=setTimeout(this._tick,this._tickInterval)}},{key:"_emitError",value:function(e){var c,t,a,r,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];!1===(null===(c=e.originError)||void 0===c?void 0:c.fatal)?Bg.warn(e):(Bg.table(e),Bg.error(e),Bg.error(null===(t=this.media)||void 0===t?void 0:t.error),null!==(a=this.media)&&void 0!==a&&a.readyState&&this.media.pause(),this._stopTick(),this._urlSwitching&&(this._urlSwitching=!1,this.emit(tg.SWITCH_URL_FAILED,e)),this.emit(tg.ERROR,e),i&&this._end(),null===(r=this._seiService)||void 0===r||r.reset());return e}},{key:"_getSeamlessSwitchPoint",value:function(){var e=this.media,c=e.currentTime;if(!e.paused){var t,a=this._playlist.findSegmentIndexByTime(e.currentTime),r=this._playlist.getSegmentByIndex(a),i=null===(t=this._stats)||void 0===t?void 0:t.getStats().downloadSpeed;if(i&&r)c+=r.duration*this._playlist.currentStream.bitrate/i+1;else c+=5}return c}},{key:"_tryEos",value:function(){var e,c,t=this.media,a=this._playlist,r=a.nextSegment,i=a.lastSegment;if((!r||i&&Th.isBuffered(t,i.start+i.duration/2))&&t.readyState&&t.duration>0&&(null===(e=this._bufferService)||void 0===e?void 0:e.msIsOpened)&&!(null!==(c=this._bufferService)&&void 0!==c&&c.msHasOpTasks)){var n=this.bufferInfo();t.paused&&!t.currentTime&&(n=this.bufferInfo(n.nextStart||.5)),(Math.abs(n.end-t.duration)<.1||!this.isLive&&i&&n.end>=i.start+i.duration)&&this._bufferService.endOfStream()}}}],[{key:"isSupported",value:function(e){return e&&"video"!==e&&"audio"!==e?"undefined"!=typeof WebAssembly:eb.isSupported()}},{key:"enableLogger",value:function(){Gh.enable(),lp.enable()}},{key:"disableLogger",value:function(){Gh.disable(),lp.disable()}}]),m}(Sl);ju($g,"version","3.0.21");try{localStorage.getItem("xgd")?$g.enableLogger():$g.disableLogger()}catch(fm){}var jg=function(){function e(c,t){var a=this;Uu(this,e),ju(this,"_opts",null),ju(this,"_plugin",null),ju(this,"_onLowDecode",(function(){var e,c,t,r,i=a._opts,n=i.media,f=i.innerDegrade;null===(e=a._plugin)||void 0===e||null===(c=e.player)||void 0===c||c.emit("lowdecode",n.degradeInfo),null===(t=a._plugin)||void 0===t||null===(r=t.player)||void 0===r||r.emit("core_event",Cu(Cu({},n.degradeInfo),{},{eventName:tg.LOWDECODE})),1===f&&a._degrade(n.src)})),ju(this,"_degrade",(function(e){var c=a._plugin.player,t=c.video;if(!t||"MVideo"===t.TAG){var r=c.video.degradeVideo;c.video=r,t.degrade(e),e&&(c.config.url=e);var i=c.root.firstChild;"MVideo"===i.TAG&&c.root.replaceChild(r,i);var n=a._plugin.constructor.pluginName.toLowerCase();c.unRegisterPlugin(n),c.once("canplay",(function(){c.play()}))}})),ju(this,"forceDegradeToVideo",(function(e){1===a._opts.innerDegrade&&a._degrade(e)})),this._opts=c,this._plugin=t,this._init()}return $u(e,[{key:"_init",value:function(){var e=this._opts,c=e.media,t=e.preloadTime,a=e.innerDegrade,r=e.isLive;c&&(r||!c.setPlayMode?(a&&c.setAttribute("innerdegrade",a),t&&c.setAttribute("preloadtime",t),this._bindEvents()):c.setPlayMode("VOD"))}},{key:"_bindEvents",value:function(){this._opts.media.addEventListener("lowdecode",this._onLowDecode)}},{key:"destroy",value:function(){var e,c;null===(e=this._opts)||void 0===e||null===(c=e.media)||void 0===c||c.removeEventListener("lowdecode",this._onLowDecode),this._plugin=null}}]),e}(),Gg=["currentTime"];function Kg(e,c){var t={startTime:c.player.currentTime};switch(Mu(e)){case"boolean":t.seamless=e;break;case"object":var a=e.currentTime,r=Hu(e,Gg);Object.assign(t,r),"number"==typeof a&&(t.startTime=a)}return t}var Vg=function(e){Gu(t,e);var c=Yu(t);function t(){var e;Uu(this,t);for(var a=arguments.length,r=new Array(a),i=0;i<a;i++)r[i]=arguments[i];return ju(qu(e=c.call.apply(c,[this].concat(r))),"logger",Bg),ju(qu(e),"hls",null),ju(qu(e),"pluginExtension",null),ju(qu(e),"getStats",(function(){var c;return null===(c=e.hls)||void 0===c?void 0:c.getStats()})),ju(qu(e),"_onSwitchSubtitle",(function(c){var t,a=c.lang;null===(t=e.hls)||void 0===t||t.switchSubtitleStream(a)})),ju(qu(e),"_keepPauseStatus",(function(){e.player.paused&&e.player.once("canplay",(function(){e.player.pause()}))})),e}return $u(t,[{key:"core",get:function(){return this.hls}},{key:"version",get:function(){var e;return null===(e=this.hls)||void 0===e?void 0:e.version}},{key:"softDecode",get:function(){var e,c,t=null===(e=this.player)||void 0===e||null===(c=e.config)||void 0===c?void 0:c.mediaType;return!!t&&"video"!==t&&"audio"!==t&&"offscreen-video"!==t}},{key:"beforePlayerInit",value:function(){var e=this,c=this.player.config,t=this.player.media||this.player.video,a=c.hls||{};if((c.url||c.__allowHlsEmptyUrl__)&&(this.softDecode||a.preferMMS||!eb.isMMSOnly())){this.hls&&this.hls.destroy();var r=Object.getOwnPropertyDescriptor(this.player,"switchURL");r&&!r.writable||(this.player.switchURL=function(c,t){return new Promise((function(a,r){var i=e.player,n=e.hls;if(n){var f,s,o=Kg(t,e);i.config.url=c,n.switchURL(c,o).then((function(){return a(!0)})).catch(r),!o.seamless&&null!==(f=e.player.config)&&void 0!==f&&null!==(s=f.hls)&&void 0!==s&&s.keepStatusAfterSwitch&&e._keepPauseStatus()}else r()}))});var i,n=this.player.switchURL;if(this.player.handleSource=!1,a.innerDegrade=a.innerDegrade||c.innerDegrade,null!==a.disconnectTime&&void 0!==a.disconnectTime||(a.disconnectTime=0),this.hls=new $g(Cu({softDecode:this.softDecode,isLive:c.isLive,media:t,startTime:c.startTime,url:c.url},a)),this.softDecode||Le.BasePlugin.defineGetterOrSetter(this.player,{url:{get:function(){var c,t;return null===(c=e.hls)||void 0===c||null===(t=c.media)||void 0===t?void 0:t.src},configurable:!0}}),this.softDecode&&(this.pluginExtension=new jg(Cu({isLive:c.isLive,media:t},a),this),this.player.forceDegradeToVideo=function(){for(var c,t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];return null===(c=e.pluginExtension)||void 0===c?void 0:c.forceDegradeToVideo.apply(c,a)}),c.isLive)null===(i=this.player)||void 0===i||i.useHooks("replay",(function(){var c;return null===(c=e.hls)||void 0===c?void 0:c.replay()}));this.on(Le.Events.URL_CHANGE,n),this.on(Le.Events.SWITCH_SUBTITLE||"switch_subtitle",this._onSwitchSubtitle),this.on(Le.Events.DESTROY,this.destroy.bind(this)),this._transError(),this._transCoreEvent(bb.TTFB),this._transCoreEvent(bb.LOAD_START),this._transCoreEvent(bb.LOAD_RESPONSE_HEADERS),this._transCoreEvent(bb.LOAD_COMPLETE),this._transCoreEvent(bb.LOAD_RETRY),this._transCoreEvent(bb.SOURCEBUFFER_CREATED),this._transCoreEvent(bb.MEDIASOURCE_OPENED),this._transCoreEvent(bb.APPEND_BUFFER),this._transCoreEvent(bb.REMOVE_BUFFER),this._transCoreEvent(bb.BUFFEREOS),this._transCoreEvent(bb.KEYFRAME),this._transCoreEvent(bb.METADATA_PARSED),this._transCoreEvent(bb.DEMUXED_TRACK),this._transCoreEvent(bb.SEI),this._transCoreEvent(bb.SEI_IN_TIME),this._transCoreEvent(bb.SPEED),this._transCoreEvent(bb.HLS_MANIFEST_LOADED),this._transCoreEvent(bb.HLS_LEVEL_LOADED),this._transCoreEvent(bb.STREAM_EXCEPTION),this._transCoreEvent(bb.SWITCH_URL_SUCCESS),this._transCoreEvent(bb.SWITCH_URL_FAILED),this._transCoreEvent(tg.NO_AUDIO_TRACK),this._transCoreEvent(tg.STREAM_PARSED),this._transCoreEvent(tg.SUBTITLE_SEGMENTS),this._transCoreEvent(tg.SUBTITLE_PLAYLIST),this._transCoreEvent(tg.APPEND_COST),c.url&&this.hls.load(c.url,{reuseMse:!0}).catch((function(e){}))}}},{key:"destroy",value:function(){var e;this.hls&&(this.hls.destroy(),this.hls=null),null===(e=this.pluginExtension)||void 0===e||e.destroy(),this.pluginExtension=null}},{key:"_transError",value:function(){var e=this;this.hls.on(tg.ERROR,(function(c){e.player&&e.player.emit(Le.Events.ERROR,new Le.Errors(e.player,c))}))}},{key:"_transCoreEvent",value:function(e){var c=this;this.hls.on(e,(function(t){c.player&&(c.player.emit("core_event",Cu(Cu({},t),{},{eventName:e})),e===bb.SEI_IN_TIME&&c.hls.hasSubtitle&&c._emitSeiPaylodTime(t))}))}},{key:"_emitSeiPaylodTime",value:function(e){try{var c=JSON.parse(Array.from(e.data.payload).map((function(e){return String.fromCharCode(e)})).join("").slice(0,-1));if(!c.rtmp_dts)return;this.player.emit("core_event",{eventName:tg.SEI_PAYLOAD_TIME,time:c.rtmp_dts})}catch(t){}}}],[{key:"pluginName",get:function(){return"hls"}},{key:"isSupported",value:function(e,c){return $g.isSupported(e,c)}}]),t}(Le.BasePlugin);function Hg(e){return"auto"===e||"自动"===e}function qg(e){e.root&&Le.Util.addClass(e.root,"xgplayer-is-enter")}function Yg(e){e.root&&Le.Util.removeClass(e.root,"xgplayer-is-enter")}function Wg(e,c,t){if(e&&c&&t){var a=Object.getOwnPropertyDescriptor(e,c);null!=a&&a.configurable?delete e[c]:a&&!a.writable||(e[c]=t)}}ju(Vg,"Hls",$g),ju(Vg,"EVENT",tg);var zg=function(e){var c={};function t(a){if(c[a])return c[a].exports;var r=c[a]={i:a,l:!1,exports:{}};return e[a].call(r.exports,r,r.exports,t),r.l=!0,r.exports}return t.m=e,t.c=c,t.d=function(e,c,a){t.o(e,c)||Object.defineProperty(e,c,{enumerable:!0,get:a})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,c){if(1&c&&(e=t(e)),8&c)return e;if(4&c&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(t.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&c&&"string"!=typeof e)for(var r in e)t.d(a,r,function(c){return e[c]}.bind(null,r));return a},t.n=function(e){var c=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(c,"a",c),c},t.o=function(e,c){return Object.prototype.hasOwnProperty.call(e,c)},t.p="",t(t.s=22)}([function(e,c,t){var a=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=a)},function(e,c,t){var a=t(12)("wks"),r=t(13),i=t(0).Symbol,n="function"==typeof i;(e.exports=function(e){return a[e]||(a[e]=n&&i[e]||(n?i:r)("Symbol."+e))}).store=a},function(e,c,t){var a=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=a)},function(e,c,t){var a=t(4);e.exports=function(e){if(!a(e))throw TypeError(e+" is not an object!");return e}},function(e,c,t){var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=function(e){return"object"===(void 0===e?"undefined":a(e))?null!==e:"function"==typeof e}},function(e,c,t){var a=t(6);e.exports=function(e,c,t){if(a(e),void 0===c)return e;switch(t){case 1:return function(t){return e.call(c,t)};case 2:return function(t,a){return e.call(c,t,a)};case 3:return function(t,a,r){return e.call(c,t,a,r)}}return function(){return e.apply(c,arguments)}}},function(e,c,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,c,t){e.exports=!t(15)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(e,c,t){var a={}.toString;e.exports=function(e){return a.call(e).slice(8,-1)}},function(e,c,t){var a=t(3),r=t(26),i=t(27),n=Object.defineProperty;c.f=t(7)?Object.defineProperty:function(e,c,t){if(a(e),c=i(c,!0),a(t),r)try{return n(e,c,t)}catch(f){}if("get"in t||"set"in t)throw TypeError("Accessors not supported!");return"value"in t&&(e[c]=t.value),e}},function(e,c,t){e.exports=!1},function(e,c,t){var a=t(8),r=t(1)("toStringTag"),i="Arguments"==a(function(){return arguments}());e.exports=function(e){var c,t,n;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(t=function(e,c){try{return e[c]}catch(t){}}(c=Object(e),r))?t:i?a(c):"Object"==(n=a(c))&&"function"==typeof c.callee?"Arguments":n}},function(e,c,t){var a=t(2),r=t(0),i=r["__core-js_shared__"]||(r["__core-js_shared__"]={});(e.exports=function(e,c){return i[e]||(i[e]=void 0!==c?c:{})})("versions",[]).push({version:a.version,mode:t(10)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},function(e,c,t){var a=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++a+r).toString(36))}},function(e,c,t){var a=t(9),r=t(28);e.exports=t(7)?function(e,c,t){return a.f(e,c,r(1,t))}:function(e,c,t){return e[c]=t,e}},function(e,c,t){e.exports=function(e){try{return!!e()}catch(c){return!0}}},function(e,c,t){var a=t(4),r=t(0).document,i=a(r)&&a(r.createElement);e.exports=function(e){return i?r.createElement(e):{}}},function(e,c,t){var a=t(0),r=t(14),i=t(18),n=t(13)("src"),f=t(29),s=(""+f).split("toString");t(2).inspectSource=function(e){return f.call(e)},(e.exports=function(e,c,t,f){var o="function"==typeof t;o&&(i(t,"name")||r(t,"name",c)),e[c]!==t&&(o&&(i(t,n)||r(t,n,e[c]?""+e[c]:s.join(String(c)))),e===a?e[c]=t:f?e[c]?e[c]=t:r(e,c,t):(delete e[c],r(e,c,t)))})(Function.prototype,"toString",(function(){return"function"==typeof this&&this[n]||f.call(this)}))},function(e,c,t){var a={}.hasOwnProperty;e.exports=function(e,c){return a.call(e,c)}},function(e,c,t){e.exports={}},function(e,c,t){var a,r,i,n=t(5),f=t(38),s=t(39),o=t(16),l=t(0),d=l.process,u=l.setImmediate,h=l.clearImmediate,b=l.MessageChannel,p=l.Dispatch,g=0,m={},v=function(){var e=+this;if(m.hasOwnProperty(e)){var c=m[e];delete m[e],c()}},y=function(e){v.call(e.data)};u&&h||(u=function(e){for(var c=[],t=1;arguments.length>t;)c.push(arguments[t++]);return m[++g]=function(){f("function"==typeof e?e:Function(e),c)},a(g),g},h=function(e){delete m[e]},"process"==t(8)(d)?a=function(e){d.nextTick(n(v,e,1))}:p&&p.now?a=function(e){p.now(n(v,e,1))}:b?(i=(r=new b).port2,r.port1.onmessage=y,a=n(i.postMessage,i,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(a=function(e){l.postMessage(e+"","*")},l.addEventListener("message",y,!1)):a="onreadystatechange"in o("script")?function(e){s.appendChild(o("script")).onreadystatechange=function(){s.removeChild(this),v.call(e)}}:function(e){setTimeout(n(v,e,1),0)}),e.exports={set:u,clear:h}},function(e,c,t){var a=t(6);function r(e){var c,t;this.promise=new e((function(e,a){if(void 0!==c||void 0!==t)throw TypeError("Bad Promise constructor");c=e,t=a})),this.resolve=a(c),this.reject=a(t)}e.exports.f=function(e){return new r(e)}},function(e,c,t){e.exports=t(23)},function(e,c,t){Object.defineProperty(c,"__esModule",{value:!0}),t(24);var a,r=(a=t(48))&&a.__esModule?a:{default:a};c.default={url:r.default},e.exports=c.default},function(e,c,t){var a,r,i,n,f=t(10),s=t(0),o=t(5),l=t(11),d=t(25),u=t(4),h=t(6),b=t(30),p=t(31),g=t(37),m=t(20).set,v=t(40)(),y=t(21),E=t(41),S=t(42),_=t(43),T=s.TypeError,k=s.process,A=k&&k.versions,L=A&&A.v8||"",I=s.Promise,w="process"==l(k),R=function(){},D=r=y.f,x=!!function(){try{var e=I.resolve(1),c=(e.constructor={})[t(1)("species")]=function(e){e(R,R)};return(w||"function"==typeof PromiseRejectionEvent)&&e.then(R)instanceof c&&0!==L.indexOf("6.6")&&-1===S.indexOf("Chrome/66")}catch(a){}}(),P=function(e){var c;return!(!u(e)||"function"!=typeof(c=e.then))&&c},C=function(e,c){if(!e._n){e._n=!0;var t=e._c;v((function(){for(var a=e._v,r=1==e._s,i=0,n=function(c){var t,i,n,f=r?c.ok:c.fail,s=c.resolve,o=c.reject,l=c.domain;try{f?(r||(2==e._h&&F(e),e._h=1),!0===f?t=a:(l&&l.enter(),t=f(a),l&&(l.exit(),n=!0)),t===c.promise?o(T("Promise-chain cycle")):(i=P(t))?i.call(t,s,o):s(t)):o(a)}catch(d){l&&!n&&l.exit(),o(d)}};t.length>i;)n(t[i++]);e._c=[],e._n=!1,c&&!e._h&&O(e)}))}},O=function(e){m.call(s,(function(){var c,t,a,r=e._v,i=M(e);if(i&&(c=E((function(){w?k.emit("unhandledRejection",r,e):(t=s.onunhandledrejection)?t({promise:e,reason:r}):(a=s.console)&&a.error&&a.error("Unhandled promise rejection",r)})),e._h=w||M(e)?2:1),e._a=void 0,i&&c.e)throw c.v}))},M=function(e){return 1!==e._h&&0===(e._a||e._c).length},F=function(e){m.call(s,(function(){var c;w?k.emit("rejectionHandled",e):(c=s.onrejectionhandled)&&c({promise:e,reason:e._v})}))},N=function(e){var c=this;c._d||(c._d=!0,(c=c._w||c)._v=e,c._s=2,c._a||(c._a=c._c.slice()),C(c,!0))},U=function e(c){var t,a=this;if(!a._d){a._d=!0,a=a._w||a;try{if(a===c)throw T("Promise can't be resolved itself");(t=P(c))?v((function(){var r={_w:a,_d:!1};try{t.call(c,o(e,r,1),o(N,r,1))}catch(i){N.call(r,i)}})):(a._v=c,a._s=1,C(a,!1))}catch(r){N.call({_w:a,_d:!1},r)}}};x||(I=function(e){b(this,I,"Promise","_h"),h(e),a.call(this);try{e(o(U,this,1),o(N,this,1))}catch(c){N.call(this,c)}},(a=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=t(44)(I.prototype,{then:function(e,c){var t=D(g(this,I));return t.ok="function"!=typeof e||e,t.fail="function"==typeof c&&c,t.domain=w?k.domain:void 0,this._c.push(t),this._a&&this._a.push(t),this._s&&C(this,!1),t.promise},catch:function(e){return this.then(void 0,e)}}),i=function(){var e=new a;this.promise=e,this.resolve=o(U,e,1),this.reject=o(N,e,1)},y.f=D=function(e){return e===I||e===n?new i(e):r(e)}),d(d.G+d.W+d.F*!x,{Promise:I}),t(45)(I,"Promise"),t(46)("Promise"),n=t(2).Promise,d(d.S+d.F*!x,"Promise",{reject:function(e){var c=D(this);return(0,c.reject)(e),c.promise}}),d(d.S+d.F*(f||!x),"Promise",{resolve:function(e){return _(f&&this===n?I:this,e)}}),d(d.S+d.F*!(x&&t(47)((function(e){I.all(e).catch(R)}))),"Promise",{all:function(e){var c=this,t=D(c),a=t.resolve,r=t.reject,i=E((function(){var t=[],i=0,n=1;p(e,!1,(function(e){var f=i++,s=!1;t.push(void 0),n++,c.resolve(e).then((function(e){s||(s=!0,t[f]=e,--n||a(t))}),r)})),--n||a(t)}));return i.e&&r(i.v),t.promise},race:function(e){var c=this,t=D(c),a=t.reject,r=E((function(){p(e,!1,(function(e){c.resolve(e).then(t.resolve,a)}))}));return r.e&&a(r.v),t.promise}})},function(e,c,t){var a=t(0),r=t(2),i=t(14),n=t(17),f=t(5),s=function e(c,t,s){var o,l,d,u,h=c&e.F,b=c&e.G,p=c&e.P,g=c&e.B,m=b?a:c&e.S?a[t]||(a[t]={}):(a[t]||{}).prototype,v=b?r:r[t]||(r[t]={}),y=v.prototype||(v.prototype={});for(o in b&&(s=t),s)d=((l=!h&&m&&void 0!==m[o])?m:s)[o],u=g&&l?f(d,a):p&&"function"==typeof d?f(Function.call,d):d,m&&n(m,o,d,c&e.U),v[o]!=d&&i(v,o,u),p&&y[o]!=d&&(y[o]=d)};a.core=r,s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,e.exports=s},function(e,c,t){e.exports=!t(7)&&!t(15)((function(){return 7!=Object.defineProperty(t(16)("div"),"a",{get:function(){return 7}}).a}))},function(e,c,t){var a=t(4);e.exports=function(e,c){if(!a(e))return e;var t,r;if(c&&"function"==typeof(t=e.toString)&&!a(r=t.call(e)))return r;if("function"==typeof(t=e.valueOf)&&!a(r=t.call(e)))return r;if(!c&&"function"==typeof(t=e.toString)&&!a(r=t.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},function(e,c,t){e.exports=function(e,c){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:c}}},function(e,c,t){e.exports=t(12)("native-function-to-string",Function.toString)},function(e,c,t){e.exports=function(e,c,t,a){if(!(e instanceof c)||void 0!==a&&a in e)throw TypeError(t+": incorrect invocation!");return e}},function(e,c,t){var a=t(5),r=t(32),i=t(33),n=t(3),f=t(34),s=t(36),o={},l={},d=e.exports=function(e,c,t,d,u){var h,b,p,g,m=u?function(){return e}:s(e),v=a(t,d,c?2:1),y=0;if("function"!=typeof m)throw TypeError(e+" is not iterable!");if(i(m)){for(h=f(e.length);h>y;y++)if((g=c?v(n(b=e[y])[0],b[1]):v(e[y]))===o||g===l)return g}else for(p=m.call(e);!(b=p.next()).done;)if((g=r(p,v,b.value,c))===o||g===l)return g};d.BREAK=o,d.RETURN=l},function(e,c,t){var a=t(3);e.exports=function(e,c,t,r){try{return r?c(a(t)[0],t[1]):c(t)}catch(n){var i=e.return;throw void 0!==i&&a(i.call(e)),n}}},function(e,c,t){var a=t(19),r=t(1)("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(a.Array===e||i[r]===e)}},function(e,c,t){var a=t(35),r=Math.min;e.exports=function(e){return e>0?r(a(e),9007199254740991):0}},function(e,c,t){var a=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:a)(e)}},function(e,c,t){var a=t(11),r=t(1)("iterator"),i=t(19);e.exports=t(2).getIteratorMethod=function(e){if(null!=e)return e[r]||e["@@iterator"]||i[a(e)]}},function(e,c,t){var a=t(3),r=t(6),i=t(1)("species");e.exports=function(e,c){var t,n=a(e).constructor;return void 0===n||null==(t=a(n)[i])?c:r(t)}},function(e,c,t){e.exports=function(e,c,t){var a=void 0===t;switch(c.length){case 0:return a?e():e.call(t);case 1:return a?e(c[0]):e.call(t,c[0]);case 2:return a?e(c[0],c[1]):e.call(t,c[0],c[1]);case 3:return a?e(c[0],c[1],c[2]):e.call(t,c[0],c[1],c[2]);case 4:return a?e(c[0],c[1],c[2],c[3]):e.call(t,c[0],c[1],c[2],c[3])}return e.apply(t,c)}},function(e,c,t){var a=t(0).document;e.exports=a&&a.documentElement},function(e,c,t){var a=t(0),r=t(20).set,i=a.MutationObserver||a.WebKitMutationObserver,n=a.process,f=a.Promise,s="process"==t(8)(n);e.exports=function(){var e,c,t,o=function(){var a,r;for(s&&(a=n.domain)&&a.exit();e;){r=e.fn,e=e.next;try{r()}catch(i){throw e?t():c=void 0,i}}c=void 0,a&&a.enter()};if(s)t=function(){n.nextTick(o)};else if(!i||a.navigator&&a.navigator.standalone)if(f&&f.resolve){var l=f.resolve(void 0);t=function(){l.then(o)}}else t=function(){r.call(a,o)};else{var d=!0,u=document.createTextNode("");new i(o).observe(u,{characterData:!0}),t=function(){u.data=d=!d}}return function(a){var r={fn:a,next:void 0};c&&(c.next=r),e||(e=r,t()),c=r}}},function(e,c,t){e.exports=function(e){try{return{e:!1,v:e()}}catch(c){return{e:!0,v:c}}}},function(e,c,t){var a=t(0).navigator;e.exports=a&&a.userAgent||""},function(e,c,t){var a=t(3),r=t(4),i=t(21);e.exports=function(e,c){if(a(e),r(c)&&c.constructor===e)return c;var t=i.f(e);return(0,t.resolve)(c),t.promise}},function(e,c,t){var a=t(17);e.exports=function(e,c,t){for(var r in c)a(e,r,c[r],t);return e}},function(e,c,t){var a=t(9).f,r=t(18),i=t(1)("toStringTag");e.exports=function(e,c,t){e&&!r(e=t?e:e.prototype,i)&&a(e,i,{configurable:!0,value:c})}},function(e,c,t){var a=t(0),r=t(9),i=t(7),n=t(1)("species");e.exports=function(e){var c=a[e];i&&c&&!c[n]&&r.f(c,n,{configurable:!0,get:function(){return this}})}},function(e,c,t){var a=t(1)("iterator"),r=!1;try{var i=[7][a]();i.return=function(){r=!0},Array.from(i,(function(){throw 2}))}catch(n){}e.exports=function(e,c){if(!c&&!r)return!1;var t=!1;try{var i=[7],n=i[a]();n.next=function(){return{done:t=!0}},i[a]=function(){return n},e(i)}catch(f){}return t}},function(e,c,t){Object.defineProperty(c,"__esModule",{value:!0});var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};c.default=function(e,c,t){if(e&&c){var r=void 0;try{r=(0,i.getUri)(e,c,t)}catch(f){return Promise.reject(f.message)}return new n.default({type:"json",method:"GET",url:r}).then((function(e){return e&&e.response?"string"==typeof e.response?JSON.parse(e.response).Result:"object"===a(e.response)?e.response.Result:e.response:e}))}return Promise.reject("vid, host and token can't be empty")};var r,i=t(49),n=(r=t(51))&&r.__esModule?r:{default:r};e.exports=c.default},function(e,c,t){Object.defineProperty(c,"__esModule",{value:!0}),c.getUri=function(e,c){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};try{e=JSON.parse((0,a.decode)(e))}catch(f){throw new Error("base64 decode error: "+f.message)}var r=[];for(var i in t)r.push(i+"="+t[i]);var n=(/^http/.test(c)?c:"//"+c)+"?"+e.GetPlayInfoToken+"&ssl=true";return r.length>0&&(n+="&"+r.join("&")),n};var a=t(50)},function(e,c,t){Object.defineProperty(c,"__esModule",{value:!0}),c.decode=function(e){var c,t,a,r,i,n,f,s=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1];for(n=e.length,i=0,f="";i<n;){do{c=s[255&e.charCodeAt(i++)]}while(i<n&&-1===c);if(-1===c)break;do{t=s[255&e.charCodeAt(i++)]}while(i<n&&-1===t);if(-1===t)break;f+=String.fromCharCode(c<<2|(48&t)>>4);do{if(61==(a=255&e.charCodeAt(i++)))return f;a=s[a]}while(i<n&&-1===a);if(-1===a)break;f+=String.fromCharCode((15&t)<<4|(60&a)>>2);do{if(61==(r=255&e.charCodeAt(i++)))return f;r=s[r]}while(i<n&&-1===r);if(-1===r)break;f+=String.fromCharCode((3&a)<<6|r)}return f}},function(e,c,t){Object.defineProperty(c,"__esModule",{value:!0}),c.default=function e(){var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=c.url,a=c.method,r=void 0===a?"GET":a,i=(c.type,c.data),n=void 0===i?{}:i,f=c.headers,s=void 0===f?{}:f;return function(e,c){if(!(e instanceof c))throw new TypeError("Cannot call a class as a function")}(this,e),new Promise((function(e,c){var a=new window.XMLHttpRequest,i=r.toUpperCase(),f=[];for(var o in n)f.push(o+"="+n[o]);if("GET"!==i)throw new Error("xhr "+i+" is not supported");for(var l in a.open(i,""+t,!0),a.responseType="",s)a.setRequestHeader(l,""+s[l]);a.send(),a.onload=function(){200===a.status||206===a.status?e(a):c(a)},a.onerror=function(){c(a)},a.ontimeout=function(){c(a)}}))},e.exports=c.default}]),Xg=Ze(zg);function Qg(e,c){return Jg.apply(this,arguments)}function Jg(){return(Jg=Re(Ve().mark((function e(c,t){return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise((function(e){uu("service request: ".concat(t,", ").concat(c)),Xg.url(c,t).then((function(c){var t=[],a=(null==c?void 0:c.Data)||c;uu("service response: ".concat(a?JSON.stringify({Status:a.Status,vid:a.VideoID}):void 0)),null!=a&&a.PlayInfoList&&a.PlayInfoList.length>0?(t=a.PlayInfoList,e({videoList:t,vid:a.VideoID,rawData:c})):(console.error("HAS NO VIDEO INFORMATION CORRECTLY, PLEASE CHECK THE TOKEN."),e({videoList:[],rawData:c}))}))})));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Zg(e){if(e.sort((function(e,c){return c.Bitrate-e.Bitrate})),e[0].Bitrate){var c=0;e.every((function(t,a){return e[0].Bitrate===t.Bitrate&&(c=a,!0)})),c>0&&e.splice(c)}return e}function em(e,c,t){var a=t||[];if(e.sort((function(e,c){return c.Bitrate-e.Bitrate})),e[0].Bitrate){var r=0;e.every((function(c,t){return e[0].Bitrate===c.Bitrate&&(r=t,!0)})),r>0&&e.splice(r)}e.forEach((function(e){var c,t,r={name:e.Definition||"标清",definition:e.Definition,url:e.MainPlayUrl||e.src||"",backupUrl:e.BackupPlayUrl,bitrate:e.Bitrate,size:e.Size,kid:e.PlayAuthID,codec:e.Codec,width:e.Width,height:e.Height,playAuth:e.PlayAuth,drmType:e.DrmType},i=function(e,c){for(var t=0;t<c.length;t++)if(e.Definition.toLocaleLowerCase()===c[t].definition.toLocaleLowerCase())return t;return-1}(e,a);i>=0?(c=r,(t=a[i])||(t=c),Object.keys(c).map((function(e){t[e]=c[e]}))):a.push(r)}));var i=-1;if(c)for(var n=0;n<e.length;n++)e[n].Definition.toLocaleLowerCase()===c.toLocaleLowerCase()&&(i=n);return i<0&&(i=0),t[i]&&(t[i].selected=!0),{index:i,list:a}}function cm(e,c,t){function a(e,c){var t=parseInt(e.slice(c,c+2),16);return t>>>7==0?[1,t]:t>>>6==2?(t=(63&t)<<8,[2,t+=parseInt(e.slice(c+2,c+4),16)]):(t=(63&t)<<16,[3,t+=parseInt(e.slice(c+2,c+6),16)])}var r,i=0,n=[],f=[];for(r=0;r<4;++r)i+=(3&parseInt(e.slice(8+2*r,10+2*r),16))<<2*r;var s=parseInt(e.slice(16,24),16),o=2*parseInt(e.slice(32,40),16);for(r=40;r<o+40;r+=2)n.push(parseInt(e.slice(r,r+2),16));var l=o+40,d=parseInt(e.slice(l,l+4),16);for(l+=4,r=0;r<d;++r){var u=a(e,l);l+=2*u[0];for(var h="",b=0;b<u[1];++b){var p=a(e,l);h+=String.fromCharCode(i^p[1]),l+=2*p[0]}f.push(h)}return c.p=null,function e(c,t,a,r,i){var s,o,l,d,u,h=-1,b=[],p=[0,null],g=null,m=[t];for(o=Math.min(t.length,a),l=0;l<o;++l)m.push(t[l]);m.p=r;for(var v=[];;)try{switch(n[c++]){case 38:s=n[c++],b[++h]=s<<24>>24;break;case 19:s=((s=((s=n[c++])<<8)+n[c++])<<8)+n[c++],b[++h]=(s<<8)+n[c++];break;case 33:s=(n[c]<<8)+n[c+1],c+=2,b[++h]=f[s];break;case 61:b[++h]=void 0;break;case 23:b[++h]=i;break;case 50:s=(n[c]<<8)+n[c+1],c+=2,h=h-s+1,o=b.slice(h,h+s),b[h]=o;break;case 27:b[++h]={};break;case 60:s=(n[c]<<8)+n[c+1],c+=2,o=f[s],l=b[h--],b[h][o]=l;break;case 15:for(o=n[c++],l=n[c++],d=m;o>0;--o)d=d.p;b[++h]=d[l];break;case 36:s=(n[c]<<8)+n[c+1],c+=2,o=f[s],b[h]=b[h][o];break;case 28:o=b[h--],b[h]=b[h][o];break;case 21:for(o=n[c++],l=n[c++],d=m;o>0;--o)d=d.p;d[l]=b[h--];break;case 75:o=b[h--],b[h]+=o;break;case 62:o=b[h--],b[h]=b[h]===o;break;case 47:o=b[h--],b[h]=b[h]!==o;break;case 69:o=b[h--],b[h]=b[h]>o;break;case 29:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,b[h]?--h:c+=s;break;case 10:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,b[h]?c+=s:--h;break;case 7:s=n[c++],o=b[h--],(l=function e(){var c=e._v;return(0,e._u)(c[0],arguments,c[1],c[2],this)})._v=[o,s,m],l._u=e,b[++h]=l;break;case 5:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,(o=v[v.length-1])[1]=c+s;break;case 24:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,(o=v[v.length-1])&&!o[1]?(o[0]=3,o.push(c)):v.push([1,0,c]),c+=s;break;case 31:if(l=(o=v.pop())[0],d=p[0],1===l)c=o[1];else if(0===l)if(0===d)c=o[1];else{if(1!==d)throw p[1];if(!g)return p[1];c=g[1],i=g[2],m=g[3],v=g[4],b[++h]=p[1],p=[0,null],g=g[0]}else c=o[2],o[0]=0,v.push(o);break;case 11:for(o=b[h--],l=null;d=v.pop();)if(2===d[0]||3===d[0]){l=d;break}if(l)p=[1,o],c=l[2],l[0]=0,v.push(l);else{if(!g)return o;c=g[1],i=g[2],m=g[3],v=g[4],b[++h]=o,p=[0,null],g=g[0]}break;case 22:h-=s=n[c++],l=b.slice(h+1,h+s+1),o=b[h--],d=b[h--],o._u===e?(o=o._v,g=[g,c,i,m,v],c=o[0],null==d&&(d=function(){return this}()),i=d,(m=[l].concat(l)).length=Math.min(o[1],s)+1,m.p=o[2],v=[]):(u=o.apply(d,l),b[++h]=u);break;case 41:for(s=n[c++],d=[void 0],u=s;u>0;--u)d[u]=b[h--];l=b[h--],u=new(o=Function.bind.apply(l,d)),b[++h]=u;break;case 52:c+=2+(s=(s=(n[c]<<8)+n[c+1])<<16>>16);break;case 67:s=(s=(n[c]<<8)+n[c+1])<<16>>16,c+=2,(o=b[h--])||(c+=s);break;case 53:--h;break;case 40:o=b[h],b[++h]=o;break;default:throw new Error("ioe")}}catch(y){for(p=[0,null];(s=v.pop())&&!s[0];);if(!s){e:for(;g;){for(o=g[4];s=o.pop();)if(s[0])break e;g=g[0]}if(!g)throw y;c=g[1],i=g[2],m=g[3],v=g[4],g=g[0]}1===(o=s[0])?(c=s[2],s[0]=0,v.push(s),b[++h]=y):2===o?(c=s[2],s[0]=0,v.push(s),p=[3,y]):(c=s[3],s[0]=2,v.push(s),b[++h]=y)}}(s,[],0,c,t)}var tm=null,am=null,rm=function(){function e(){var c,t;xe(this,e);for(var a=arguments.length,r=new Array(a),i=0;i<a;i++)r[i]=arguments[i];return(c=De(this,e,[].concat(r))).coreType="hlsjs",c.abrService=null,c._levelMap=new Map,c._currentPlaySessionId=-1,c.preLoadData=null,c._preloadAdapter=null,tm||(tm=c.player._startInit),am||(am=c.player.playNext),Le.BasePlugin.defineGetterOrSetter(c.player,(t=c,{downloadSpeed:{get:function(){try{var e,c,a=null===(e=t.core)||void 0===e||null===(c=e.speedInfo)||void 0===c?void 0:c.call(e);return((null==a?void 0:a.speed)||0)/8e3}catch(r){return 0}},configurable:!0},historyAvspeed:{get:function(){try{var e,c,a=null===(e=t.core)||void 0===e||null===(c=e.speedInfo)||void 0===c?void 0:c.call(e);return((null==a?void 0:a.avgSpeed)||0)/8e3}catch(r){return 0}},configurable:!0},abrInstance:{get:function(){var e;return null===(e=t.abrService)||void 0===e?void 0:e.abrInstance},configurable:!0},logCache:{get:function(){if(t.logger)return t.logger.getLogCache()},configurable:!0},currentDefinitionFromPlayer:{get:function(){var e;return null!=t&&null!==(e=t.abrService)&&void 0!==e&&e.isCurrentInAbr()?t.abrService.curDefinition:t.player.curDefinition},configurable:!0},preLoadData:{get:function(){return t.preLoadData},configurable:!0},stat:{get:function(){return t.stat||{}},configurable:!0}})),Le.BasePlugin.defineMethod(c.player,function(e){var c=e.player,t=e.playerConfig,a=Object.getOwnPropertyDescriptor(c,"switchURL");return null!=a&&a.configurable&&delete c.switchURL,{playNext:function(a){var r;e._currentPlaySessionId++;var i=e._currentPlaySessionId,n=c.paused;c.pause(),c.hasStart=!1,c.curDefinition=null,["url","vid","kid","playAuthToken","keyToken","startTime","secretKey"].forEach((function(c){e.config[c]=void 0})),t.url=void 0,t.vid=void 0,t.definition&&(t.definition={list:[]}),Object.keys(a).map((function(c){c.toLocaleLowerCase()===e.pluginName.toLocaleLowerCase()?"Object"===Le.Util.typeOf(a[c])&&Object.keys(a[c]).map((function(t){e.config[t]=a[c][t]})):t[c]=a[c]})),t.autoplay="boolean"==typeof a.autoplay?a.autoplay:!n,e.getUrlTime=(new Date).getTime()/1e3,null===(r=e.abrService)||void 0===r||r.destroy(),e.abrService=null,e.isNativeMode?e.start(void 0,{playSessionId:i}):new Promise((function(c){("hlsjs"===e.coreType?e.core:e.hls)?c(void 0):setTimeout((function(){c(void 0)}),0)})).then((function(){if(e.isPlaySessionValid(i))if("hlsjs"===e.coreType){var c=e.hls;c.stopLoad(),c.detachMedia(),e.start(void 0,{playSessionId:i})}else{var t,a,r;null===(t=e.hls)||void 0===t||null===(a=t.detachMedia)||void 0===a||null===(a=a.call(t))||void 0===a||null===(r=a.then)||void 0===r||r.call(a,(function(){e.isPlaySessionValid(i)&&e.start(void 0,{playSessionId:i})}))}}))},_startInit:function(c){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a={};Le.Util.isNotNull(t.playSessionId)?a.playSessionId=t.playSessionId:e._currentPlaySessionId>0&&(a.playSessionId=e._currentPlaySessionId),e.start("",a)},switchURL:function(c,t){return Re(Ve().mark((function a(){var r,i,n,f,s,o,l;return Ve().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:if(r=e.player,i=e.hls,n=e.isNativeMode,f=r.paused,s=Kg(t,e),o=++e._currentPlaySessionId,!i&&!n){a.next=11;break}return r.config.url=c,s.seamless||(qg(r),n&&((l=r.media||r.video).removeAttribute("src"),l.load(),s.startTime>0&&(r.currentTime=s.startTime))),a.next=9,e.start(c,{switchUrlArgs:s,playSessionId:o});case 9:if(e.isPlaySessionValid(o)){a.next=11;break}return a.abrupt("return");case 11:return a.abrupt("return",new Promise((function(e){var c=function(){Yg(r),f?r.once("playing",(function(){r.pause(),e()})):e()};s.seamless?e():(Le.Sniffer.os.isAndroid?r.once("timeupdate",(function(){c()})):r.once("canplay",(function(){c()})),n&&!f&&r.play())})));case 12:case"end":return a.stop()}}),a)})))()},changeDefinition:function(c,t){var a,r,i,n,f,s,o,l,d,u,h,b,p,g,m,v=arguments.length>2&&void 0!==arguments[2]&&arguments[2],y=e.player,E=e.playerConfig,S=e.abrService,_=e.isNativeMode,T=y.config.definition,k="自动"===(null===(a=c)||void 0===a?void 0:a.definition)||"auto"===(null===(r=c)||void 0===r?void 0:r.definition);if(!t&&y.curDefinition&&(t=y.curDefinition),Array.isArray(null==T?void 0:T.list)&&T.list.forEach((function(e){var t,a;v?!Hg(e.definition)&&(null===(t=c)||void 0===t?void 0:t.bitrate)===e.bitrate&&y.curDefinition&&(y.curDefinition.bitrate=e.bitrate,"number"==typeof e.height&&"number"==typeof e.width&&(y.curDefinition.height=e.height,y.curDefinition.width=e.width)):(null===(a=c)||void 0===a?void 0:a.definition)===e.definition&&(y.curDefinition=e)})),null!==(i=c)&&void 0!==i&&i.bitrate&&"number"!=typeof c.bitrate&&(c.bitrate=parseInt(c.bitrate,10)||0),!v&&!k){var A,L=null===(A=E.definition)||void 0===A?void 0:A.list;if(L&&(!c.bitrate||!c.uri||!c.size||!c.duration))for(var I=0;I<L.length;I++)if(c.definition===L[I].definition){var w;c.bitrate=L[I].bitrate,c.uri=L[I].uri||(null===(w=t)||void 0===w?void 0:w.uri),c.size=L[I].size,c.duration=L[I].duration||E.duration;break}}v?e.log("[switchBitrate:ABR] switch bitrate to ".concat(c.definition,", ").concat(null===(d=t)||void 0===d?void 0:d.bitrate,"->").concat(c.bitrate),null===(u=e.core)||void 0===u?void 0:u.abrSwitchPoint,k):(y.emit(Le.Events.DEFINITION_CHANGE,{from:t,to:c}),k&&y.curDefinition&&Hg(null===(b=c=y.curDefinition)||void 0===b?void 0:b.definition)&&"number"==typeof(null===(p=t)||void 0===p?void 0:p.bitrate)&&t.bitrate>0&&(c.bitrate=null===(g=t)||void 0===g?void 0:g.bitrate),k?(null==S||S.enable(),S&&"number"==typeof(null===(m=t)||void 0===m?void 0:m.bitrate)&&t.bitrate>0&&(S.bitrate=t.bitrate)):null==S||S.disable(),e.log("[switchBitrate:CBS] switch bitrate to ".concat(c.definition,", ").concat(null===(h=t)||void 0===h?void 0:h.bitrate,"->").concat(c.bitrate)));if(!(!v&&k||v&&(null===(n=e.core)||void 0===n||!n.abrSwitchPoint)||v&&(null===(f=c)||void 0===f?void 0:f.bitrate)===(null===(s=t)||void 0===s?void 0:s.bitrate)))if(y.hasStart){v||(y.curDefinition=c);var R,D=v?null===(o=e.core)||void 0===o?void 0:o.abrSwitchPoint:y.currentTime,x=y.getBufferedRange(),P=Array.isArray(x)?x[1]:-1;e.log("beforeSwitchURL: ".concat(c.url,", isAbrSwitch: ").concat(v,", targetTime: ").concat(D),"duration: ".concat(y.duration,", bufferEnd: ").concat(P)),(null==e||null===(l=e.switchLevelIfPossible)||void 0===l?void 0:l.call(e,c,!0))||(R=y.switchURL(c.url,Ge({seamless:!_&&(!1!==(null==T?void 0:T.seamless)&&"undefined"!=typeof MediaSource&&"function"==typeof MediaSource.isTypeSupported||v),currentTime:D},c))),R&&R.then?R.then((function(){v||y.emit(Le.Events.AFTER_DEFINITION_CHANGE,{from:t,to:c})})):v||y.emit(Le.Events.AFTER_DEFINITION_CHANGE,{from:t,to:c})}else y.config.url=c.url}}}(c)),c}return Be(e,Nl),Oe(e,[{key:"versionNum",get:function(){return rm.semver.major}},{key:"hls",get:function(){var e;return null===(e=this.core)||void 0===e?void 0:e.hls}},{key:"stat",get:function(){return{preLoadData:this._getPreloadStat()}}},{key:"beforePlayerInit",value:function(){var e=this;this.log("beforePlayerInit");var c=this.playerConfig,t=this.config,a=yu.isMobile(t.preferMMS);this.isNativeMode=!(!a&&(void 0===t.useHls||t.useHls)),this.getUrlTime=(new Date).getTime()/1e3,this.hlsOpts=yu.isPlainObject(t.hlsjs)&&t.hlsjs||yu.isPlainObject(t.hlsOpts)&&t.hlsOpts||yu.isPlainObject(c.hlsjs)&&c.hlsjs||{},this.hlsTimer=new Eu((function(){e._detectExpires()}),t.checkExpireInterval),c.hls||(c.hls={}),c.hls.preferMMS=!!t.preferMMS,c.hls.preferMMSStreaming=!!t.preferMMSStreaming,c.hls.fetchOptions||(c.hls.fetchOptions={}),t.netAllowCredentials&&(c.hls.fetchOptions.credentials="include"),t.maxBufferLength>0&&(c.hls.preloadTime=t.maxBufferLength),this.isNativeMode||c.hls.decryptor||(c.hls.decryptor=new cc({enableSoftwareAES:!!this.hlsOpts.enableSoftwareAES})),!this.isNativeMode&&this._mseEnvValid()&&(this.core=new gl({player:this.player,config:Ge({debug:lu()},this.hlsOpts)}),c.url&&(t.url=c.url,c.url=""),c.__allowHlsEmptyUrl__=!0,this.core.beforePlayerInit(),this._initPreloadAdapter(),this._bindHlsLevelsMapping()),this._bindEvents()}},{key:"_initPreloadAdapter",value:function(){var e=this.player.preloader;if(e&&this.core&&this.hls&&!this._preloadAdapter)try{this._preloadAdapter=new Wd(this.hls,{preloaderManager:e,preloadEnabled:!0,autoPreload:!0,preloadFragmentCount:5,preloadMaxBufferLength:30,preloadCacheType:ml.MEMORY,preloadMaxCacheCount:10}),this.log("HlsjsPreloadAdapter initialized")}catch(c){this.log("Failed to initialize HlsjsPreloadAdapter:",c)}}},{key:"_bindEvents",value:function(){var e=this,c=this.config,t=this.player;this.isNativeMode||t.once("playing",(function(){var e=t.media||t.video,c=!1,a=e.querySelector("track");a&&("hidden"===a.track.mode&&(c=!0),a.track.mode="hidden",e.removeChild(a)),t.config.textTrack&&t.config.textTrack.length>0&&t.config.textTrack.some((function(t){if(t.src&&t.label&&t.default){var a=document.createElement("track");return a.src=t.src,a.kind=t.kind,a.label=t.label,a.srclang=t.srclang,a.default=!0,e.appendChild(a),c&&(a.track.mode="hidden"),!0}}))})),c.checkHlsOffline&&yu.on(this,"timeupdate",(function(){e._checkOffline()}),"destroy"),yu.on(t,"loadeddata",(function(){var c,t;e.isNativeMode||(null!==(c=e.abrService)&&void 0!==c&&c.isCurrentInAbr()&&e.abrService.enable(),null===(t=e.abrService)||void 0===t||t.execute())}),"destroy"),yu.on(t,"error",(function(){var c;null===(c=e.hlsTimer)||void 0===c||c.cancel()}),"destroy")}},{key:"destroy",value:function(){var c,t;Ye(e,"destroy",this,3)([]),this.hlsTimer&&(this.hlsTimer.cancel(),this.hlsTimer=void 0),Wg(this.player,"_startInit",tm),Wg(this.player,"playNext",am),this._playOriginalUrl=null,null===(c=this._secretKey)||void 0===c||c.destroy(),null===(t=this._preloadAdapter)||void 0===t||t.destroy(),this._preloadAdapter=null,this.preLoadData=null}},{key:"log",value:function(e){for(var c=arguments.length,t=new Array(c>1?c-1:0),a=1;a<c;a++)t[a-1]=arguments[a];uu.apply(void 0,[this.logger,2,e].concat(t))}},{key:"_checkPreloader",value:(n=Re(Ve().mark((function e(){var c,t,a,r,i,n,f,s,o,l,d,u,h,b;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(c=this.player,t=c.curDefinition,a=c.preloader,r=c.config,i=Promise.withResolvers(),n=i.promise,f=i.resolve,s={method:"checkPreloader",success:0,type:"error",cacheKey:""},a){e.next=8;break}return s.success=0,s.error=new Error("no_preloader"),f(s),e.abrupt("return",n);case 8:if((o=a.getPreloadMetaByVid((null==t?void 0:t.vid)||r.vid))&&(l=a.getDataUniqueKey(o),s.cacheKey=l),!l){e.next=50;break}return e.prev=11,e.next=14,a.getPreLoadData(o);case 14:if(!(d=e.sent)){e.next=36;break}if(h=d.bitrate,b=d.orgDefinition,delete d.generateBy,!(h&&t&&t.bitrate&&h!==t.bitrate)){e.next=25;break}return this.preLoadData=null,s.success=0,s.error=new Error("bitrate_not_match_cut_".concat(t.bitrate,"_cache_").concat(h)),this.log("Preloader bitrate_not_match cacheKey".concat(l," curDefinition:").concat(t.bitrate," cache:").concat(h)),f(s),e.abrupt("return",n);case 25:b&&(t.orgDefinition=b),this.log("Preloader result:",l,d),this.preLoadData=d,this.emit("PRELOAD_INFO",this.preLoadData),s.success=1,s.data=d,s.payload=o,null==a||null===(u=a.setUsePreloadInfo)||void 0===u||u.call(a,l,!0),f(s),e.next=40;break;case 36:this.preLoadData=null,s.success=0,s.error=new Error("none_preload"),f(s);case 40:e.next=48;break;case 42:e.prev=42,e.t0=e.catch(11),this.preLoadData=null,s.success=0,s.error=e.t0,f(s);case 48:e.next=53;break;case 50:s.success=0,s.error=new Error("none_preload"),f(s);case 53:return e.abrupt("return",n);case 54:case"end":return e.stop()}}),e,this,[[11,42]])}))),function(){return n.apply(this,arguments)})},{key:"_mseEnvValid",value:function(){var e=this.player,c=this.config,t=!1;return ic.checkMSEValid(c.preferMMS)?t=!0:e.emit("error",{msg:"MediaSource or SourceBuffer hijack",errorCode:-9995}),t}},{key:"start",value:(i=Re(Ve().mark((function e(){var c,t,a,r,i,n,f,s,o,l,d,u,h,b,p,g,m,v,y,E,S,_,T=arguments;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=T.length>0&&void 0!==T[0]?T[0]:"",r=T.length>1&&void 0!==T[1]?T[1]:{},this.log("_start"),i=this.player,n=r.playSessionId,(f=/^blob:/i.test(a))||(this._playOriginalUrl=null),e.prev=7,a){e.next=20;break}return e.next=11,this._getRawManifest({playSessionId:n});case 11:if(s=e.sent,this.isPlaySessionValid(n)){e.next=14;break}return e.abrupt("return");case 14:if(null!=s&&s.url){e.next=16;break}throw new Error("no service url");case 16:a=s.url,this._rawManifestInfo=s,e.next=21;break;case 20:this._rawManifestInfo&&(this._rawManifestInfo.url=a,this._rawManifestInfo.videoList=this._rawManifestInfo.videoList||i.definitionList||[]);case 21:if(o={playSessionId:n},!this._rawManifestInfo){e.next=36;break}if(l=this._rawManifestInfo,d=l.url,u=l.vid,h=l.videoList,!Array.isArray(h)){e.next=36;break}b=0;case 26:if(!(b<h.length)){e.next=36;break}if((p=h[b]).url!==d){e.next=33;break}return o.vid=u,o.kid=p.kid,o.playAuth=p.playAuth,e.abrupt("break",36);case 33:b++,e.next=26;break;case 36:if(f){e.next=44;break}return this._playOriginalUrl=i.config.url=a,e.next=40,this._getTransformManifestUrl(a,o);case 40:if(g=e.sent,this.isPlaySessionValid(n)&&g){e.next=43;break}return e.abrupt("return");case 43:i.config.url=g.url;case 44:e.next=53;break;case 46:return e.prev=46,e.t0=e.catch(7),m=e.t0.message||e.t0.name||"url transform error",v=e.t0.stack||"",y=e.t0.code||-9996,m===Kd.GetKeyByKeyTokenFail&&(y=-9991),e.abrupt("return",i.emit("error",{errorCode:y,msg:m,errorStack:v}));case 53:if(this.isPlaySessionValid(n)){e.next=55;break}return e.abrupt("return");case 55:if(f){e.next=66;break}return e.prev=56,e.next=59,this._checkPreloader();case 59:E=e.sent,this._preloadAdapter&&(1===(null==E?void 0:E.success)&&null!=E&&E.data?(this.log("Preload data found, attaching to adapter"),this._preloadAdapter.attachPayload(E.payload)):(this.log("No preload data found for current video"),this._preloadAdapter.attachPayload(null))),e.next=66;break;case 63:e.prev=63,e.t1=e.catch(56),this.log("Check preloader error:",e.t1);case 66:a=this.player.config.url,this.isNativeMode||(r.switchUrlArgs?(this.log("hls switchUrl: ".concat(a)),this._seamlessLoadSource(a,r.switchUrlArgs)):(this.log("hls load: ".concat(a)),this.hls.media||(S=this.player.media||this.player.video,this.hls.attachMedia(S)),this.hls.loadSource(a))),null!==(c=r.switchUrlArgs)&&void 0!==c&&c.seamless||null===(_=tm)||void 0===_||_.call(this.player,a,{playSessionId:n}),null===(t=this.hlsTimer)||void 0===t||t.repeat();case 70:case"end":return e.stop()}}),e,this,[[7,46],[56,63]])}))),function(){return i.apply(this,arguments)})},{key:"_getRawManifest",value:(r=Re(Ve().mark((function e(c){var t,a,r,i,n,f,s,o,l,d,u,h;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.log("getRawManifest()"),a=c.playSessionId,r=this.config,i=this.playerConfig,n=r.vid,f=r.playAuthToken,s=r.playDomain,o=r.testUrl,l=r.testUrlExpire,d={url:r.url||i.url,playAuthToken:f,vid:n,playDomain:s,testUrl:o,testUrlExpire:l},u=(null===(t=i.definition)||void 0===t?void 0:t.list)||[],this.isNativeMode,!d.url){e.next=18;break}if(this.log("directUrl: ".concat(d.url)),this.emit&&this.emit("can_start"),!(u.length>0)){e.next=15;break}if(this.isPlaySessionValid(a)){e.next=14;break}return e.abrupt("return",null);case 14:this._emitResourceReady(u);case 15:return e.abrupt("return",{url:d.url});case 18:if(!f){e.next=29;break}return e.prev=19,e.next=22,this._playByToken(f,s,{playSessionId:a});case 22:return h=e.sent,e.abrupt("return",h);case 26:throw e.prev=26,e.t0=e.catch(19),new Error("playByToken error: ".concat(e.t0.message));case 29:return e.abrupt("return",null);case 30:case"end":return e.stop()}}),e,this,[[19,26]])}))),function(e){return r.apply(this,arguments)})},{key:"_seamlessLoadSource",value:function(e,c){var t=this,a=this.hls;if(a){var r=this.player.media||this.player.video,i=!(null==r||!r.paused),n=null==c?void 0:c.startTime,f="number"==typeof n?n:(null==r?void 0:r.currentTime)||0,s=Math.max(f-.5,0);try{a.stopLoad(),this._onSeamlessManifestParsed&&(a.off(hl.Events.MANIFEST_PARSED,this._onSeamlessManifestParsed),this._onSeamlessManifestParsed=void 0),a.config.startPosition=s;var o=function(){a.off(hl.Events.MANIFEST_PARSED,o),t._onSeamlessManifestParsed=void 0;try{!t.player.config.isLive&&r&&Number.isFinite(s)&&r.readyState>=1&&(r.currentTime=s)}catch(c){}var e;a.startLoad(s),i||null==r||null===(e=r.play)||void 0===e||e.call(r).catch((function(){}))};this._onSeamlessManifestParsed=o,a.on(hl.Events.MANIFEST_PARSED,o),a.loadSource(e)}catch(l){this.log("seamless loadSource failed:",l),a.loadSource(e),a.startLoad()}}}},{key:"_bindHlsLevelsMapping",value:function(){var e=this;this.hls&&(this._onHlsManifestParsed&&this.hls.off(hl.Events.MANIFEST_PARSED,this._onHlsManifestParsed),this._onHlsManifestParsed=function(){var c=e.hls;if(c)try{e._levelMap.clear();var t=c.levels;Array.isArray(t)&&t.forEach((function(c,t){"number"==typeof(null==c?void 0:c.bitrate)&&c.bitrate>0&&e._levelMap.set(c.bitrate,t)}))}catch(a){e.log("bind levels mapping error:",a)}},this.hls.on(hl.Events.MANIFEST_PARSED,this._onHlsManifestParsed))}},{key:"switchLevelIfPossible",value:function(e){var c=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this.isNativeMode||!this.hls)return!1;if(!e)return!1;var t=this.hls;try{if(Hg(e.definition))return c?t.currentLevel=-1:t.nextLevel=-1,!0;var a=e.bitrate?Number(e.bitrate):0;if(!a||!this._levelMap.size)return!1;var r=this._levelMap.get(a);return"number"==typeof r&&(c?t.currentLevel=r:t.nextLevel=r,!0)}catch(i){return this.log("switchLevelIfPossible failed:",i),!1}}},{key:"_initAbrDefinition",value:function(){var e,c,t=this.player,a=this.playerConfig,r=this.config,i=(null===(e=a.definition)||void 0===e?void 0:e.list)||[],n=a.definition&&void 0!==Xe(a.definition.defaultDefinition)?a.definition.defaultDefinition:a.defaultDefinition,f=!(null===(c=r.autoBitrateOpts)||void 0===c||!c.isPlayAutoDefi),s=null;if(i.length>0){var o=i.filter((function(e){return!Hg(e.definition)}));s=o.length>0?o.filter((function(e){return e.definition===n}))[0]||o[0]:null,t.curDefinition&&!f||(t.curDefinition=i.filter((function(e){return f?Hg(e.definition):e.definition===n}))[0]||null),t.curDefinition.vwidth||Object.assign(t.curDefinition,this._getDefinitionItem(t.curDefinition.definition)),s&&!t.curDefinition.bitrate&&(t.curDefinition.bitrate=s.bitrate)}if(f)for(var l=0;l<i.length;l++){var d=i[l];d.selected=Hg(d.definition)}return s}},{key:"_getDefinitionItem",value:function(e){var c=this.playerConfig;if(!c.definition||!c.definition.list)return null;for(var t=0;t<c.definition.list.length;t++){var a=c.definition.list[t];if(a.definition===e)return a}return null}},{key:"_playByToken",value:(a=Re(Ve().mark((function e(c,t,a){var r,i,n,f,s,o,l,d,u,h,b,p,g,m,v;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=this.player,i=this.config,n=a.playSessionId,e.next=4,Qg(c,t);case 4:if(f=e.sent,s=f.vid,o=f.videoList,l=f.rawData,this.isPlaySessionValid(n)){e.next=10;break}return e.abrupt("return",null);case 10:if(this.emit&&this.emit("get_play_info",l),!(o&&o.length>0&&(o[0].MainPlayUrl||o[0].src))){e.next=30;break}if(Zg(o),this.getUrlTime=(new Date).getTime()/1e3,d=r.config.definition,u=(null==d?void 0:d.defaultDefinition)||r.config.defaultDefinition,o[0].UrlExpire&&(this.urlExpireTimestamp=i.testUrlExpire||o[0].UrlExpire),h=em(o,u,(null==d?void 0:d.list)||[]),this.isPlaySessionValid(n)){e.next=20;break}return e.abrupt("return",null);case 20:return b=h.list,p=b[h.index],r.curDefinition=p,"private_encrypt_upgrade"===p.drmType&&(i.secretKey=p.playAuth),g=p.url,this._emitResourceReady(b),this.emit&&this.emit("can_start"),e.abrupt("return",{url:g,vid:s,videoList:h.list});case 30:throw m=(l||{ResponseMetadata:{Error:{CodeN:0,Message:""},RequestId:""}}).ResponseMetadata,this.emit&&this.emit("playInterfaceInfo",{code:m.Error.CodeN,message:m.Error.Message,logid:m.RequestId}),v={msg:"HAS NO VIDEO INFORMATION CORRECTLY, PLEASE CHECK THE TOKEN.",errorCode:-9998},this.emit&&this.emit("error",v),v;case 36:case"end":return e.stop()}}),e,this)}))),function(e,c,t){return a.apply(this,arguments)})},{key:"_getTransformManifestUrl",value:(t=Re(Ve().mark((function e(c){var t,a,r=arguments;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=r.length>1&&void 0!==r[1]?r[1]:{},xu(this.config,t)){e.next=4;break}return this.log("loadSource: non-private encryption, fallback to native hls.js, url: ".concat(c)),e.abrupt("return",{url:c});case 4:return e.next=6,this._loadSource(c,t);case 6:if(a=e.sent,this.isPlaySessionValid(t.playSessionId)){e.next=9;break}return e.abrupt("return",null);case 9:if(a){e.next=11;break}return e.abrupt("return",null);case 11:if("string"!=typeof a){e.next=15;break}return e.abrupt("return",{url:a});case 15:return e.abrupt("return",new Promise((function(e){var c=new FileReader;c.onload=function(){e({url:c.result})},c.readAsDataURL(a)})));case 16:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"_processRetData",value:function(e){if(e.sort((function(e,c){return c.Bitrate-e.Bitrate})),e[0].Bitrate){var c=0;e.every((function(t,a){return e[0].Bitrate===t.Bitrate&&(c=a,!0)})),c>0&&e.splice(c)}}},{key:"_checkOffline",value:function(){var e,c,t=(null===(e=this.player)||void 0===e?void 0:e.media)||(null===(c=this.player)||void 0===c?void 0:c.video);this.hls&&t&&!t.videoHeight?(this.hls.hlsOfflineCount=void 0===this.hls.hlsOfflineCount?1:this.hls.hlsOfflineCount+1,this.hls.hlsOfflineCount>3&&(this.pause(),this.emit&&this.emit("error",{msg:"OFFLINE",errorCode:-9997}),this.onError())):this.hls&&(this.hls.hlsOfflineCount=0)}},{key:"pause",value:function(){throw new Error("Method not implemented.")}},{key:"onError",value:function(){throw new Error("Method not implemented.")}},{key:"_detectExpires",value:function(){var e=this,c=this.config,t=this.player;t&&!t.ended&&(c.expireDetectType.indexOf("getUrlTime")>-1&&this.getUrlTime&&t.duration&&(new Date).getTime()/1e3>this.getUrlTime+3300+t.duration&&(this.getUrlTime=0,this._emitExpireEvent()),c.expireDetectType.indexOf("xhrStatus")>-1&&this._playOriginalUrl&&Math.random()<1/7.5&&Su({url:this._playOriginalUrl,xhrSetup:function(e){c.netAllowCredentials&&(e.withCredentials=!0)}}).catch((function(c){c&&void 0!==c.status&&(e.hlsExpireCount=void 0===e.hlsExpireCount?1:e.hlsExpireCount+1,e.hlsExpireCount>3&&(e.hlsExpireCount=0,e._emitExpireEvent()))})),c.expireDetectType.indexOf("urlExpire")>-1&&this.urlExpireTimestamp&&(new Date).getTime()/1e3>=this.urlExpireTimestamp&&(this.urlExpireTimestamp=5e9,this._emitExpireEvent()))}},{key:"_emitExpireEvent",value:function(){var e=this.player,c=(new Date).getTime()/1e3;this.emitExpireTimestamp?c-this.emitExpireTimestamp>300&&(this.emitExpireTimestamp=c,e.emit("MEDIA_EXPIRED")):(this.emitExpireTimestamp=c,e.emit("MEDIA_EXPIRED"))}},{key:"_updateM3U8",value:function e(c,t,a){return cm("504B0101bdd3db150000005f15d8d2be0000024f0f020b21001d29012824001e0f00041601430020210019282400110f00020f00034b21001f1602282400110f000416010b340029210019282400110f00020f00034b21001f1602282400110f0206282400200f01070f0004160216010b3d0b17240000150001172400012400022100032f1d000a0f010a0f01012400043e43000f0f0102282400050f0109160115010918004315000c0f01022100061c0a00070f01022100071c0a00070f01022100081c1500030f000329001500020f0002282400090f01091601350f00022824000a16001500021f0500160f01030f01093200011b21000b3c000c29021500021f0f01042824000d0f000216011500040f01082824000e0f010b21000f2901210010282400110f0004210012160216021501080f0105282400130f000124000124001416014300150f0105282400150f000124000124001416013400090f00012400012400141500050f0005282400160f010b210017290116010a00033200001500060f00054300270f0006240018260145430015210019282400110f000626011c21001a16023400032100193400032100191500070f01082824000e0f010b21001b21001c290213000000000704160215010818004315000d0f01022100061c0a00070f01022100071c0a00070f01022100081c1500090f000929001500080f0008282400090f01081601350f00082824000a16001500081f0500160f01030f01083200011b2100213c000c29021500081f0f010528240022160015000a0f000a4300070f00080b3400130f01042824000d0f0008160115000b0f000b0b3d0b0023060d111c04180f061e12131b141a0a1a180936180429040d180329322d0336392e041c09121f0b3f11121f3f08141119180f112a181f3614093f11121f3f08141119180f0e3012073f11121f3f08141119180f061c0d0d181319071a18093f11121f090918050952150910110409040d180f1e0f181c0918321f17181e09282f31070f180d111c1e180e51282f34405f5526235f2056545f0651282f34405f061e12131e1c09015f0d140e2f18111c09140b18282f3103080f110e1a18093c1f0e1211080918282f3105101c091e152055551509090d011509090d0e544742215221525356542152210a562153210a56061118131a09150001523f555e38252934333b4754552119562153422119064d514f4d0054554247515542472623210f012113205754554247210f01211354575455535755425c5e5454011a14551509090d011509090d0e5442214742215221520409180e09025177101f081411193c1f0e1211080918282f31151c0d0d11141e1c09141213520550100d181a282f3108140e30121f141118",{get 0(){return e},get 1(){return gu},get 2(){return window},get 3(){return Blob},get 4(){return URL},get 5(){return yu},get 6(){return jd},7:arguments,8:c,9:t,10:a,11:RegExp},this)}},{key:"_loadSource",value:(c=Re(Ve().mark((function e(c){var t,a,r,i,n,f,s,o,l,d,u,h,b,p,g,m,v,y,E,S,_,T,k,A,L=arguments;return Ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=L.length>1&&void 0!==L[1]?L[1]:{},a=this.player,r=this.config,i=t.kid||r.kid,n=t.vid||r.vid,f=t.playSessionId,s=t.playAuth||r.secretKey,this.log("loadSource: ".concat(c,", Kid: ").concat(i,", vid: ").concat(n,", secretKey: ").concat(s)),e.next=9,Ru(c,this);case 9:if(o=e.sent,this.isPlaySessionValid(f)){e.next=12;break}return e.abrupt("return",null);case 12:if(null!=o&&o.keyUrl&&null!=o&&o.responseText){e.next=15;break}return this.log("loadSource with normal url: ".concat(a.config.url)),e.abrupt("return",a.config.url);case 15:if(l=o.keyUrl,d=o.responseText,u=r.getLicenseUrl,h=r.drmType,b=r.drmKeyToken,p=r.playDomain,g=r.sessionId,!r.keyValue){e.next=21;break}m=this._updateM3U8(d,r.keyValue),e.next=65;break;case 21:if(!(u&&i||i&&b&&p||s)){e.next=51;break}if(this._secretKey=new ic.XGSecretKey({getLicenseUrl:u,vid:n,useUnionInfoDRM:r.useUnionInfoDRM,playDomain:p,drmType:h,drmKeyToken:b,drm:r.drm,keyValue:r.keyValue,kid:i,useEME:!1,secretKey:s,keyTokenExpiredDuration:r.keyTokenExpiredDuration,sessionId:g}),e.prev=23,!this.isNativeMode){e.next=33;break}return e.next=27,this._secretKey.getLicense();case 27:if(y=e.sent,this.isPlaySessionValid(f)){e.next=30;break}return e.abrupt("return",null);case 30:v=(null==y?void 0:y.keyValue)||y,e.next=42;break;case 33:return e.next=35,this._secretKey.getLicenseSecret();case 35:if(E=e.sent,this.isPlaySessionValid(f)){e.next=38;break}return e.abrupt("return",null);case 38:S=null==E?void 0:E.secretKey,_=null==E?void 0:E.decryptKey,T=_&&ic.util.ArrayBufferToString(_),v="".concat(gu.DRM,"-").concat(S,"_").concat(T||"");case 42:e.next=48;break;case 44:throw e.prev=44,e.t0=e.catch(23),this.logger.error("getLicense, err: (".concat((null===e.t0||void 0===e.t0||null===(k=e.t0.error)||void 0===k?void 0:k.message)||(null===e.t0||void 0===e.t0?void 0:e.t0.message),")")),(null===e.t0||void 0===e.t0?void 0:e.t0.error)||e.t0||new Error("SecretKey failure without msg");case 48:m=this._updateM3U8(d,v,gu.DRM),e.next=65;break;case 51:if(!r.keyToken||!("TOP"===r.getKeyType?r.playDomain:r.keyDomain)){e.next=64;break}return e.next=54,Iu(this,{system:gu.KDS,url:l});case 54:if(A=e.sent,this.isPlaySessionValid(f)){e.next=57;break}return e.abrupt("return",null);case 57:if(!A){e.next=61;break}m=this._updateM3U8(d,A,gu.KDS),e.next=62;break;case 61:throw new Error(Kd.GetKeyByKeyTokenFail);case 62:e.next=65;break;case 64:throw new Error("There is no available ways for encrypt hls to generate manifest url");case 65:return this.log("loadSource by key and return: ".concat(m)),e.abrupt("return",m);case 67:case"end":return e.stop()}}),e,this,[[23,44]])}))),function(e){return cm("504B0101bdd3db150000000015d8d2be0000000e0f010028240000170f010116020b0001051c0d0d1104",{get 0(){return c},1:arguments,2:e},this)})},{key:"_emitResourceReady",value:function(e){var c=this.player,t=this.abrService;(null!=t&&t.isPlayAutoDef||!e.some((function(e){return!!e.selected})))&&e.forEach((function(e){var a;e.selected=null!=t&&t.isPlayAutoDef?t.isAutoDefValue(e.definition):e.definition===(null===(a=c.curDefinition)||void 0===a?void 0:a.definition)})),c.emit("resourceReady",e)}},{key:"isPlaySessionValid",value:function(e){return void 0===e&&-1===this._currentPlaySessionId||this._currentPlaySessionId===e}},{key:"_getPreloadStat",value:function(){var e={length:0,byteLength:0,duration:0};if(this.preLoadData){var c=this.preLoadData.segments,t=0,a=0;Array.isArray(c)&&c.forEach((function(e){var c;t+=(null===(c=e.data)||void 0===c?void 0:c.byteLength)||0,a+=e.duration})),e.length=(null==c?void 0:c.length)||0,e.byteLength=t,e.duration=a}return e}}],[{key:"pluginName",get:function(){return"EncryptHlsPlugin"}},{key:"defaultConfig",get:function(){return{expireDetectType:[],checkExpireInterval:400,type:"",playAuthToken:"",vid:"",checkHlsOffline:!1,getLicenseUrl:"",preferMMS:!1}}},{key:"version",get:function(){return Gd}},{key:"semver",get:function(){var e=Bd(Gd)||{},c=e.major,t=e.minor,a=e.patch;return{version:Gd,major:c,minor:t,patch:a}}}]);var c,t,a,r,i,n}(),im=rm;return im.registerPreloader=Nl.registerPreloader,im.updateUnionInfo=ic.XGSecretKey.updateUnionInfo,im.generateEncryptInfo=ic.XGSecretKey.generateEncryptInfo,im.isSupported=function(e){e=(e||navigator.userAgent).toLocaleLowerCase();var c=/(iphone)/.test(e)||/(ipad)/.test(e),t=/(android)/.test(e),a=/(windows phone)/.test(e),r=!(c||t||a),i=/(quark)/.test(e);if(r||t){var n=function(){return"undefined"!=typeof MediaSource?MediaSource:arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&void 0!==self.ManagedMediaSource?self.ManagedMediaSource:void 0!==self.WebKitMediaSource?self.WebKitMediaSource:void 0}(!0);return!(null==n||!n.isTypeSupported('video/mp4; codecs="avc1.42E01E, mp4a.40.2"'))}return!!c&&!i&&!/iphone os 11_[2-4]\D/gi.test(e)},im.HlsPreloader=pu,im.HlsPreloadAdapter=Wd,im}));