@byteplus/veplayer 1.15.3-rc.3 → 1.15.3-rc.31

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.
Files changed (46) hide show
  1. package/README.md +13 -0
  2. package/index.d.ts +1144 -311
  3. package/index.min.css +1 -1
  4. package/index.min.js +2 -2
  5. package/lite.cjs +2 -0
  6. package/lite.cjs.css +1 -0
  7. package/lite.d.ts +366 -0
  8. package/lite.esm.css +1 -0
  9. package/lite.esm.mjs +2 -0
  10. package/lite.min.css +1 -0
  11. package/lite.min.js +2 -0
  12. package/package.json +25 -1
  13. package/plugin/XGVideo.js +2 -1
  14. package/plugin/modules/DashAbralgo.d.ts +2 -0
  15. package/plugin/modules/DashAbralgo.mjs +2 -0
  16. package/plugin/modules/XGVideo.d.ts +2 -0
  17. package/plugin/modules/XGVideo.mjs +2 -0
  18. package/plugin/modules/danmuMask.d.ts +2 -0
  19. package/plugin/modules/danmuMask.mjs +2 -0
  20. package/plugin/modules/danmujs.d.ts +2 -0
  21. package/plugin/modules/danmujs.mjs +3 -0
  22. package/plugin/modules/dash.d.ts +2 -0
  23. package/plugin/modules/dash.mjs +2 -0
  24. package/plugin/modules/flv.d.ts +2 -0
  25. package/plugin/modules/flv.mjs +2 -0
  26. package/plugin/modules/hls.d.ts +2 -0
  27. package/plugin/modules/hls.mjs +2 -0
  28. package/plugin/modules/hlsEncrypt.d.ts +2 -0
  29. package/plugin/modules/hlsEncrypt.mjs +2 -0
  30. package/plugin/modules/mp4Encrypt.d.ts +2 -0
  31. package/plugin/modules/mp4Encrypt.mjs +2 -0
  32. package/plugin/modules/preloader.d.ts +2 -0
  33. package/plugin/modules/preloader.mjs +2 -0
  34. package/plugin/modules/streamprobe.d.ts +2 -0
  35. package/plugin/modules/streamprobe.mjs +2 -0
  36. package/plugin/modules/vestrategy.d.ts +2 -0
  37. package/plugin/modules/vestrategy.mjs +2 -0
  38. package/plugin/modules/vestrategy_adapt_range.d.ts +2 -0
  39. package/plugin/modules/vestrategy_adapt_range.mjs +2 -0
  40. package/plugin/modules/vestrategy_h265.d.ts +2 -0
  41. package/plugin/modules/vestrategy_h265.mjs +2 -0
  42. package/plugin/modules/vestrategy_preload.d.ts +2 -0
  43. package/plugin/modules/vestrategy_preload.mjs +2 -0
  44. package/plugin/mp4Encrypt.js +2 -2
  45. package/plugin/vestrategy.js +1 -1
  46. package/plugin/vestrategy_preload.js +1 -1
@@ -0,0 +1,2 @@
1
+ // @byteplus/veplayer@1.15.3-rc.31 Built @7/30/2026, 5:49:58 PM
2
+ function _arrayLikeToArray$8(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function _arrayWithoutHoles$5(e){if(Array.isArray(e))return _arrayLikeToArray$8(e)}function _assertThisInitialized$8(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function asyncGeneratorStep$6(e,t,n,r,i,a,o){try{var l=e[a](o),d=l.value}catch(e){return void n(e)}l.done?t(d):Promise.resolve(d).then(r,i)}function _asyncToGenerator$6(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){asyncGeneratorStep$6(a,r,i,o,l,"next",e)}function l(e){asyncGeneratorStep$6(a,r,i,o,l,"throw",e)}o(void 0)}))}}function _callSuper$3(e,t,n){return t=_getPrototypeOf$8(t),_possibleConstructorReturn$8(e,_isNativeReflectConstruct$8()?Reflect.construct(t,n||[],_getPrototypeOf$8(e).constructor):t.apply(e,n))}function _classCallCheck$a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _construct$3(e,t,n){if(_isNativeReflectConstruct$8())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&_setPrototypeOf$8(i,n.prototype),i}function _defineProperties$a(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey$a(r.key),r)}}function _createClass$a(e,t,n){return t&&_defineProperties$a(e.prototype,t),n&&_defineProperties$a(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty$9(e,t,n){return(t=_toPropertyKey$a(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _get$4(){return _get$4="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=_superPropBase$4(e,t);if(r){var i=Object.getOwnPropertyDescriptor(r,t);return i.get?i.get.call(arguments.length<3?e:n):i.value}},_get$4.apply(null,arguments)}function _getPrototypeOf$8(e){return(_getPrototypeOf$8=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits$8(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf$8(e,t)}function _isNativeReflectConstruct$8(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(_isNativeReflectConstruct$8=function(){return!!e})()}function _iterableToArray$5(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _nonIterableSpread$5(){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 ownKeys$a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread2$7(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$a(Object(n),!0).forEach((function(t){_defineProperty$9(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _possibleConstructorReturn$8(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$8(e)}function _regeneratorRuntime$6(){_regeneratorRuntime$6=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,i=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",l=a.asyncIterator||"@@asyncIterator",d=a.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var a=t&&t.prototype instanceof p?t:p,o=Object.create(a.prototype),l=new T(r||[]);return i(o,"_invoke",{value:b(e,n,l)}),o}function U(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=s;var F="suspendedStart",u="suspendedYield",Q="executing",R="completed",h={};function p(){}function B(){}function S(){}var f={};c(f,o,(function(){return this}));var m=Object.getPrototypeOf,V=m&&m(m(W([])));V&&V!==n&&r.call(V,o)&&(f=V);var y=S.prototype=p.prototype=Object.create(f);function E(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function Z(e,t){function n(i,a,o,l){var d=U(e[i],e,a);if("throw"!==d.type){var c=d.arg,s=c.value;return s&&"object"==typeof s&&r.call(s,"__await")?t.resolve(s.__await).then((function(e){n("next",e,o,l)}),(function(e){n("throw",e,o,l)})):t.resolve(s).then((function(e){c.value=e,o(c)}),(function(e){return n("throw",e,o,l)}))}l(d.arg)}var a;i(this,"_invoke",{value:function(e,r){function i(){return new t((function(t,i){n(e,r,t,i)}))}return a=a?a.then(i,i):i()}})}function b(t,n,r){var i=F;return function(a,o){if(i===Q)throw Error("Generator is already running");if(i===R){if("throw"===a)throw o;return{value:e,done:!0}}for(r.method=a,r.arg=o;;){var l=r.delegate;if(l){var d=J(l,r);if(d){if(d===h)continue;return d}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===F)throw i=R,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=Q;var c=U(t,n,r);if("normal"===c.type){if(i=r.done?R:u,c.arg===h)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(i=R,r.method="throw",r.arg=c.arg)}}}function J(t,n){var r=n.method,i=t.iterator[r];if(i===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,J(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),h;var a=U(i,t.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,h;var o=a.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,h):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,h)}function v(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function g(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(v,this),this.reset(!0)}function W(t){if(t||""===t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,a=function n(){for(;++i<t.length;)if(r.call(t,i))return n.value=t[i],n.done=!1,n;return n.value=e,n.done=!0,n};return a.next=a}}throw new TypeError(typeof t+" is not iterable")}return B.prototype=S,i(y,"constructor",{value:S,configurable:!0}),i(S,"constructor",{value:B,configurable:!0}),B.displayName=c(S,d,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===B||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,S):(e.__proto__=S,c(e,d,"GeneratorFunction")),e.prototype=Object.create(y),e},t.awrap=function(e){return{__await:e}},E(Z.prototype),c(Z.prototype,l,(function(){return this})),t.AsyncIterator=Z,t.async=function(e,n,r,i,a){void 0===a&&(a=Promise);var o=new Z(s(e,n,r,i),a);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},E(y),c(y,d,"Generator"),c(y,o,(function(){return this})),c(y,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=W,T.prototype={constructor:T,reset:function(t){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(g),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function i(r,i){return l.type="throw",l.arg=t,n.next=r,i&&(n.method="next",n.arg=e),!!i}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],l=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var d=r.call(o,"catchLoc"),c=r.call(o,"finallyLoc");if(d&&c){if(this.prev<o.catchLoc)return i(o.catchLoc,!0);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else if(d){if(this.prev<o.catchLoc)return i(o.catchLoc,!0)}else{if(!c)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return i(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var a=i;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,h):this.complete(o)},complete:function(e,t){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&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),g(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;g(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:W(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),h}},t}function _setPrototypeOf$8(e,t){return(_setPrototypeOf$8=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function _superPropBase$4(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf$8(e)););return e}function _superPropGet$1(e,t,n,r){var i=_get$4(_getPrototypeOf$8(1&r?e.prototype:e),t,n);return 2&r&&"function"==typeof i?function(e){return i.apply(n,e)}:i}function _toConsumableArray$5(e){return _arrayWithoutHoles$5(e)||_iterableToArray$5(e)||_unsupportedIterableToArray$8(e)||_nonIterableSpread$5()}function _toPrimitive$a(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$a(e){var t=_toPrimitive$a(e,"string");return"symbol"==typeof t?t:t+""}function _typeof$5(e){return(_typeof$5="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 _unsupportedIterableToArray$8(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray$8(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray$8(e,t):void 0}}var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var check=function(e){return e&&e.Math==Math&&e},global$I=check("object"==typeof globalThis&&globalThis)||check("object"==typeof window&&window)||check("object"==typeof self&&self)||check("object"==typeof commonjsGlobal&&commonjsGlobal)||function(){return this}()||Function("return this")(),objectGetOwnPropertyDescriptor={},fails$Q=function(e){try{return!!e()}catch(e){return!0}},fails$P=fails$Q,descriptors=!fails$P((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),fails$O=fails$Q,functionBindNative=!fails$O((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")})),NATIVE_BIND$4=functionBindNative,call$B=Function.prototype.call,functionCall=NATIVE_BIND$4?call$B.bind(call$B):function(){return call$B.apply(call$B,arguments)},objectPropertyIsEnumerable={},$propertyIsEnumerable$2={}.propertyIsEnumerable,getOwnPropertyDescriptor$6=Object.getOwnPropertyDescriptor,NASHORN_BUG=getOwnPropertyDescriptor$6&&!$propertyIsEnumerable$2.call({1:2},1);objectPropertyIsEnumerable.f=NASHORN_BUG?function(e){var t=getOwnPropertyDescriptor$6(this,e);return!!t&&t.enumerable}:$propertyIsEnumerable$2;var match,version$2,createPropertyDescriptor$7=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},NATIVE_BIND$3=functionBindNative,FunctionPrototype$3=Function.prototype,call$A=FunctionPrototype$3.call,uncurryThisWithBind=NATIVE_BIND$3&&FunctionPrototype$3.bind.bind(call$A,call$A),functionUncurryThis=NATIVE_BIND$3?uncurryThisWithBind:function(e){return function(){return call$A.apply(e,arguments)}},uncurryThis$N=functionUncurryThis,toString$l=uncurryThis$N({}.toString),stringSlice$c=uncurryThis$N("".slice),classofRaw$2=function(e){return stringSlice$c(toString$l(e),8,-1)},uncurryThis$M=functionUncurryThis,fails$N=fails$Q,classof$g=classofRaw$2,$Object$4=Object,split$3=uncurryThis$M("".split),indexedObject=fails$N((function(){return!$Object$4("z").propertyIsEnumerable(0)}))?function(e){return"String"==classof$g(e)?split$3(e,""):$Object$4(e)}:$Object$4,isNullOrUndefined$9=function(e){return null==e},isNullOrUndefined$8=isNullOrUndefined$9,$TypeError$m=TypeError,requireObjectCoercible$b=function(e){if(isNullOrUndefined$8(e))throw $TypeError$m("Can't call method on "+e);return e},IndexedObject$4=indexedObject,requireObjectCoercible$a=requireObjectCoercible$b,toIndexedObject$e=function(e){return IndexedObject$4(requireObjectCoercible$a(e))},documentAll$2="object"==typeof document&&document.all,IS_HTMLDDA=void 0===documentAll$2&&void 0!==documentAll$2,documentAll_1={all:documentAll$2,IS_HTMLDDA:IS_HTMLDDA},$documentAll$1=documentAll_1,documentAll$1=$documentAll$1.all,isCallable$t=$documentAll$1.IS_HTMLDDA?function(e){return"function"==typeof e||e===documentAll$1}:function(e){return"function"==typeof e},isCallable$s=isCallable$t,$documentAll=documentAll_1,documentAll=$documentAll.all,isObject$r=$documentAll.IS_HTMLDDA?function(e){return"object"==typeof e?null!==e:isCallable$s(e)||e===documentAll}:function(e){return"object"==typeof e?null!==e:isCallable$s(e)},global$H=global$I,isCallable$r=isCallable$t,aFunction=function(e){return isCallable$r(e)?e:void 0},getBuiltIn$h=function(e,t){return arguments.length<2?aFunction(global$H[e]):global$H[e]&&global$H[e][t]},uncurryThis$L=functionUncurryThis,objectIsPrototypeOf=uncurryThis$L({}.isPrototypeOf),getBuiltIn$g=getBuiltIn$h,engineUserAgent=getBuiltIn$g("navigator","userAgent")||"",global$G=global$I,userAgent$6=engineUserAgent,process$3=global$G.process,Deno$1=global$G.Deno,versions=process$3&&process$3.versions||Deno$1&&Deno$1.version,v8=versions&&versions.v8;v8&&(version$2=(match=v8.split("."))[0]>0&&match[0]<4?1:+(match[0]+match[1])),!version$2&&userAgent$6&&(!(match=userAgent$6.match(/Edge\/(\d+)/))||match[1]>=74)&&(match=userAgent$6.match(/Chrome\/(\d+)/))&&(version$2=+match[1]);var engineV8Version=version$2,V8_VERSION$3=engineV8Version,fails$M=fails$Q,symbolConstructorDetection=!!Object.getOwnPropertySymbols&&!fails$M((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&V8_VERSION$3&&V8_VERSION$3<41})),NATIVE_SYMBOL$6=symbolConstructorDetection,useSymbolAsUid=NATIVE_SYMBOL$6&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,getBuiltIn$f=getBuiltIn$h,isCallable$q=isCallable$t,isPrototypeOf$9=objectIsPrototypeOf,USE_SYMBOL_AS_UID$1=useSymbolAsUid,$Object$3=Object,isSymbol$6=USE_SYMBOL_AS_UID$1?function(e){return"symbol"==typeof e}:function(e){var t=getBuiltIn$f("Symbol");return isCallable$q(t)&&isPrototypeOf$9(t.prototype,$Object$3(e))},$String$4=String,tryToString$7=function(e){try{return $String$4(e)}catch(e){return"Object"}},isCallable$p=isCallable$t,tryToString$6=tryToString$7,$TypeError$l=TypeError,aCallable$i=function(e){if(isCallable$p(e))return e;throw $TypeError$l(tryToString$6(e)+" is not a function")},aCallable$h=aCallable$i,isNullOrUndefined$7=isNullOrUndefined$9,getMethod$6=function(e,t){var n=e[t];return isNullOrUndefined$7(n)?void 0:aCallable$h(n)},call$z=functionCall,isCallable$o=isCallable$t,isObject$q=isObject$r,$TypeError$k=TypeError,ordinaryToPrimitive$2=function(e,t){var n,r;if("string"===t&&isCallable$o(n=e.toString)&&!isObject$q(r=call$z(n,e)))return r;if(isCallable$o(n=e.valueOf)&&!isObject$q(r=call$z(n,e)))return r;if("string"!==t&&isCallable$o(n=e.toString)&&!isObject$q(r=call$z(n,e)))return r;throw $TypeError$k("Can't convert object to primitive value")},shared$7={exports:{}},isPure=!1,global$F=global$I,defineProperty$f=Object.defineProperty,defineGlobalProperty$3=function(e,t){try{defineProperty$f(global$F,e,{value:t,configurable:!0,writable:!0})}catch(n){global$F[e]=t}return t},global$E=global$I,defineGlobalProperty$2=defineGlobalProperty$3,SHARED="__core-js_shared__",store$4=global$E[SHARED]||defineGlobalProperty$2(SHARED,{}),sharedStore=store$4,store$3=sharedStore;(shared$7.exports=function(e,t){return store$3[e]||(store$3[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.26.1",mode:"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.26.1/LICENSE",source:"https://github.com/zloirock/core-js"});var sharedExports=shared$7.exports,requireObjectCoercible$9=requireObjectCoercible$b,$Object$2=Object,toObject$g=function(e){return $Object$2(requireObjectCoercible$9(e))},uncurryThis$K=functionUncurryThis,toObject$f=toObject$g,hasOwnProperty=uncurryThis$K({}.hasOwnProperty),hasOwnProperty_1=Object.hasOwn||function(e,t){return hasOwnProperty(toObject$f(e),t)},uncurryThis$J=functionUncurryThis,id$1=0,postfix=Math.random(),toString$k=uncurryThis$J(1..toString),uid$5=function(e){return"Symbol("+(void 0===e?"":e)+")_"+toString$k(++id$1+postfix,36)},global$D=global$I,shared$6=sharedExports,hasOwn$p=hasOwnProperty_1,uid$4=uid$5,NATIVE_SYMBOL$5=symbolConstructorDetection,USE_SYMBOL_AS_UID=useSymbolAsUid,WellKnownSymbolsStore$1=shared$6("wks"),Symbol$1=global$D.Symbol,symbolFor=Symbol$1&&Symbol$1.for,createWellKnownSymbol=USE_SYMBOL_AS_UID?Symbol$1:Symbol$1&&Symbol$1.withoutSetter||uid$4,wellKnownSymbol$v=function(e){if(!hasOwn$p(WellKnownSymbolsStore$1,e)||!NATIVE_SYMBOL$5&&"string"!=typeof WellKnownSymbolsStore$1[e]){var t="Symbol."+e;NATIVE_SYMBOL$5&&hasOwn$p(Symbol$1,e)?WellKnownSymbolsStore$1[e]=Symbol$1[e]:WellKnownSymbolsStore$1[e]=USE_SYMBOL_AS_UID&&symbolFor?symbolFor(t):createWellKnownSymbol(t)}return WellKnownSymbolsStore$1[e]},call$y=functionCall,isObject$p=isObject$r,isSymbol$5=isSymbol$6,getMethod$5=getMethod$6,ordinaryToPrimitive$1=ordinaryToPrimitive$2,wellKnownSymbol$u=wellKnownSymbol$v,$TypeError$j=TypeError,TO_PRIMITIVE$1=wellKnownSymbol$u("toPrimitive"),toPrimitive$3=function(e,t){if(!isObject$p(e)||isSymbol$5(e))return e;var n,r=getMethod$5(e,TO_PRIMITIVE$1);if(r){if(void 0===t&&(t="default"),n=call$y(r,e,t),!isObject$p(n)||isSymbol$5(n))return n;throw $TypeError$j("Can't convert object to primitive value")}return void 0===t&&(t="number"),ordinaryToPrimitive$1(e,t)},toPrimitive$2=toPrimitive$3,isSymbol$4=isSymbol$6,toPropertyKey$5=function(e){var t=toPrimitive$2(e,"string");return isSymbol$4(t)?t:t+""},global$C=global$I,isObject$o=isObject$r,document$3=global$C.document,EXISTS$1=isObject$o(document$3)&&isObject$o(document$3.createElement),documentCreateElement$2=function(e){return EXISTS$1?document$3.createElement(e):{}},DESCRIPTORS$q=descriptors,fails$L=fails$Q,createElement$1=documentCreateElement$2,ie8DomDefine=!DESCRIPTORS$q&&!fails$L((function(){return 7!=Object.defineProperty(createElement$1("div"),"a",{get:function(){return 7}}).a})),DESCRIPTORS$p=descriptors,call$x=functionCall,propertyIsEnumerableModule$2=objectPropertyIsEnumerable,createPropertyDescriptor$6=createPropertyDescriptor$7,toIndexedObject$d=toIndexedObject$e,toPropertyKey$4=toPropertyKey$5,hasOwn$o=hasOwnProperty_1,IE8_DOM_DEFINE$1=ie8DomDefine,$getOwnPropertyDescriptor$2=Object.getOwnPropertyDescriptor;objectGetOwnPropertyDescriptor.f=DESCRIPTORS$p?$getOwnPropertyDescriptor$2:function(e,t){if(e=toIndexedObject$d(e),t=toPropertyKey$4(t),IE8_DOM_DEFINE$1)try{return $getOwnPropertyDescriptor$2(e,t)}catch(e){}if(hasOwn$o(e,t))return createPropertyDescriptor$6(!call$x(propertyIsEnumerableModule$2.f,e,t),e[t])};var objectDefineProperty={},DESCRIPTORS$o=descriptors,fails$K=fails$Q,v8PrototypeDefineBug=DESCRIPTORS$o&&fails$K((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),isObject$n=isObject$r,$String$3=String,$TypeError$i=TypeError,anObject$z=function(e){if(isObject$n(e))return e;throw $TypeError$i($String$3(e)+" is not an object")},DESCRIPTORS$n=descriptors,IE8_DOM_DEFINE=ie8DomDefine,V8_PROTOTYPE_DEFINE_BUG$1=v8PrototypeDefineBug,anObject$y=anObject$z,toPropertyKey$3=toPropertyKey$5,$TypeError$h=TypeError,$defineProperty$1=Object.defineProperty,$getOwnPropertyDescriptor$1=Object.getOwnPropertyDescriptor,ENUMERABLE="enumerable",CONFIGURABLE$1="configurable",WRITABLE="writable";objectDefineProperty.f=DESCRIPTORS$n?V8_PROTOTYPE_DEFINE_BUG$1?function(e,t,n){if(anObject$y(e),t=toPropertyKey$3(t),anObject$y(n),"function"==typeof e&&"prototype"===t&&"value"in n&&WRITABLE in n&&!n[WRITABLE]){var r=$getOwnPropertyDescriptor$1(e,t);r&&r[WRITABLE]&&(e[t]=n.value,n={configurable:CONFIGURABLE$1 in n?n[CONFIGURABLE$1]:r[CONFIGURABLE$1],enumerable:ENUMERABLE in n?n[ENUMERABLE]:r[ENUMERABLE],writable:!1})}return $defineProperty$1(e,t,n)}:$defineProperty$1:function(e,t,n){if(anObject$y(e),t=toPropertyKey$3(t),anObject$y(n),IE8_DOM_DEFINE)try{return $defineProperty$1(e,t,n)}catch(e){}if("get"in n||"set"in n)throw $TypeError$h("Accessors not supported");return"value"in n&&(e[t]=n.value),e};var DESCRIPTORS$m=descriptors,definePropertyModule$7=objectDefineProperty,createPropertyDescriptor$5=createPropertyDescriptor$7,createNonEnumerableProperty$a=DESCRIPTORS$m?function(e,t,n){return definePropertyModule$7.f(e,t,createPropertyDescriptor$5(1,n))}:function(e,t,n){return e[t]=n,e},makeBuiltIn$3={exports:{}},DESCRIPTORS$l=descriptors,hasOwn$n=hasOwnProperty_1,FunctionPrototype$2=Function.prototype,getDescriptor=DESCRIPTORS$l&&Object.getOwnPropertyDescriptor,EXISTS=hasOwn$n(FunctionPrototype$2,"name"),PROPER=EXISTS&&"something"===function(){}.name,CONFIGURABLE=EXISTS&&(!DESCRIPTORS$l||DESCRIPTORS$l&&getDescriptor(FunctionPrototype$2,"name").configurable),functionName={EXISTS:EXISTS,PROPER:PROPER,CONFIGURABLE:CONFIGURABLE},uncurryThis$I=functionUncurryThis,isCallable$n=isCallable$t,store$2=sharedStore,functionToString$1=uncurryThis$I(Function.toString);isCallable$n(store$2.inspectSource)||(store$2.inspectSource=function(e){return functionToString$1(e)});var set$2,get$2,has,inspectSource$3=store$2.inspectSource,global$B=global$I,isCallable$m=isCallable$t,WeakMap$1=global$B.WeakMap,weakMapBasicDetection=isCallable$m(WeakMap$1)&&/native code/.test(String(WeakMap$1)),shared$5=sharedExports,uid$3=uid$5,keys$3=shared$5("keys"),sharedKey$4=function(e){return keys$3[e]||(keys$3[e]=uid$3(e))},hiddenKeys$6={},NATIVE_WEAK_MAP=weakMapBasicDetection,global$A=global$I,isObject$m=isObject$r,createNonEnumerableProperty$9=createNonEnumerableProperty$a,hasOwn$m=hasOwnProperty_1,shared$4=sharedStore,sharedKey$3=sharedKey$4,hiddenKeys$5=hiddenKeys$6,OBJECT_ALREADY_INITIALIZED="Object already initialized",TypeError$7=global$A.TypeError,WeakMap=global$A.WeakMap,enforce=function(e){return has(e)?get$2(e):set$2(e,{})},getterFor=function(e){return function(t){var n;if(!isObject$m(t)||(n=get$2(t)).type!==e)throw TypeError$7("Incompatible receiver, "+e+" required");return n}};if(NATIVE_WEAK_MAP||shared$4.state){var store$1=shared$4.state||(shared$4.state=new WeakMap);store$1.get=store$1.get,store$1.has=store$1.has,store$1.set=store$1.set,set$2=function(e,t){if(store$1.has(e))throw TypeError$7(OBJECT_ALREADY_INITIALIZED);return t.facade=e,store$1.set(e,t),t},get$2=function(e){return store$1.get(e)||{}},has=function(e){return store$1.has(e)}}else{var STATE=sharedKey$3("state");hiddenKeys$5[STATE]=!0,set$2=function(e,t){if(hasOwn$m(e,STATE))throw TypeError$7(OBJECT_ALREADY_INITIALIZED);return t.facade=e,createNonEnumerableProperty$9(e,STATE,t),t},get$2=function(e){return hasOwn$m(e,STATE)?e[STATE]:{}},has=function(e){return hasOwn$m(e,STATE)}}var internalState={set:set$2,get:get$2,has:has,enforce:enforce,getterFor:getterFor},fails$J=fails$Q,isCallable$l=isCallable$t,hasOwn$l=hasOwnProperty_1,DESCRIPTORS$k=descriptors,CONFIGURABLE_FUNCTION_NAME$2=functionName.CONFIGURABLE,inspectSource$2=inspectSource$3,InternalStateModule$a=internalState,enforceInternalState$3=InternalStateModule$a.enforce,getInternalState$7=InternalStateModule$a.get,defineProperty$e=Object.defineProperty,CONFIGURABLE_LENGTH=DESCRIPTORS$k&&!fails$J((function(){return 8!==defineProperty$e((function(){}),"length",{value:8}).length})),TEMPLATE=String(String).split("String"),makeBuiltIn$2=makeBuiltIn$3.exports=function(e,t,n){"Symbol("===String(t).slice(0,7)&&(t="["+String(t).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(t="get "+t),n&&n.setter&&(t="set "+t),(!hasOwn$l(e,"name")||CONFIGURABLE_FUNCTION_NAME$2&&e.name!==t)&&(DESCRIPTORS$k?defineProperty$e(e,"name",{value:t,configurable:!0}):e.name=t),CONFIGURABLE_LENGTH&&n&&hasOwn$l(n,"arity")&&e.length!==n.arity&&defineProperty$e(e,"length",{value:n.arity});try{n&&hasOwn$l(n,"constructor")&&n.constructor?DESCRIPTORS$k&&defineProperty$e(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var r=enforceInternalState$3(e);return hasOwn$l(r,"source")||(r.source=TEMPLATE.join("string"==typeof t?t:"")),e};Function.prototype.toString=makeBuiltIn$2((function(){return isCallable$l(this)&&getInternalState$7(this).source||inspectSource$2(this)}),"toString");var makeBuiltInExports=makeBuiltIn$3.exports,isCallable$k=isCallable$t,definePropertyModule$6=objectDefineProperty,makeBuiltIn$1=makeBuiltInExports,defineGlobalProperty$1=defineGlobalProperty$3,defineBuiltIn$j=function(e,t,n,r){r||(r={});var i=r.enumerable,a=void 0!==r.name?r.name:t;if(isCallable$k(n)&&makeBuiltIn$1(n,a,r),r.global)i?e[t]=n:defineGlobalProperty$1(t,n);else{try{r.unsafe?e[t]&&(i=!0):delete e[t]}catch(e){}i?e[t]=n:definePropertyModule$6.f(e,t,{value:n,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return e},objectGetOwnPropertyNames={},ceil$1=Math.ceil,floor$8=Math.floor,mathTrunc=Math.trunc||function(e){var t=+e;return(t>0?floor$8:ceil$1)(t)},trunc2=mathTrunc,toIntegerOrInfinity$b=function(e){var t=+e;return t!=t||0===t?0:trunc2(t)},toIntegerOrInfinity$a=toIntegerOrInfinity$b,max$4=Math.max,min$7=Math.min,toAbsoluteIndex$7=function(e,t){var n=toIntegerOrInfinity$a(e);return n<0?max$4(n+t,0):min$7(n,t)},toIntegerOrInfinity$9=toIntegerOrInfinity$b,min$6=Math.min,toLength$a=function(e){return e>0?min$6(toIntegerOrInfinity$9(e),9007199254740991):0},toLength$9=toLength$a,lengthOfArrayLike$g=function(e){return toLength$9(e.length)},toIndexedObject$c=toIndexedObject$e,toAbsoluteIndex$6=toAbsoluteIndex$7,lengthOfArrayLike$f=lengthOfArrayLike$g,createMethod$6=function(e){return function(t,n,r){var i,a=toIndexedObject$c(t),o=lengthOfArrayLike$f(a),l=toAbsoluteIndex$6(r,o);if(e&&n!=n){for(;o>l;)if((i=a[l++])!=i)return!0}else for(;o>l;l++)if((e||l in a)&&a[l]===n)return e||l||0;return!e&&-1}},arrayIncludes={includes:createMethod$6(!0),indexOf:createMethod$6(!1)},uncurryThis$H=functionUncurryThis,hasOwn$k=hasOwnProperty_1,toIndexedObject$b=toIndexedObject$e,indexOf$1=arrayIncludes.indexOf,hiddenKeys$4=hiddenKeys$6,push$a=uncurryThis$H([].push),objectKeysInternal=function(e,t){var n,r=toIndexedObject$b(e),i=0,a=[];for(n in r)!hasOwn$k(hiddenKeys$4,n)&&hasOwn$k(r,n)&&push$a(a,n);for(;t.length>i;)hasOwn$k(r,n=t[i++])&&(~indexOf$1(a,n)||push$a(a,n));return a},enumBugKeys$3=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],internalObjectKeys$1=objectKeysInternal,enumBugKeys$2=enumBugKeys$3,hiddenKeys$3=enumBugKeys$2.concat("length","prototype");objectGetOwnPropertyNames.f=Object.getOwnPropertyNames||function(e){return internalObjectKeys$1(e,hiddenKeys$3)};var objectGetOwnPropertySymbols={};objectGetOwnPropertySymbols.f=Object.getOwnPropertySymbols;var getBuiltIn$e=getBuiltIn$h,uncurryThis$G=functionUncurryThis,getOwnPropertyNamesModule$2=objectGetOwnPropertyNames,getOwnPropertySymbolsModule$3=objectGetOwnPropertySymbols,anObject$x=anObject$z,concat$4=uncurryThis$G([].concat),ownKeys$9=getBuiltIn$e("Reflect","ownKeys")||function(e){var t=getOwnPropertyNamesModule$2.f(anObject$x(e)),n=getOwnPropertySymbolsModule$3.f;return n?concat$4(t,n(e)):t},hasOwn$j=hasOwnProperty_1,ownKeys$8=ownKeys$9,getOwnPropertyDescriptorModule$4=objectGetOwnPropertyDescriptor,definePropertyModule$5=objectDefineProperty,copyConstructorProperties$2=function(e,t,n){for(var r=ownKeys$8(t),i=definePropertyModule$5.f,a=getOwnPropertyDescriptorModule$4.f,o=0;o<r.length;o++){var l=r[o];hasOwn$j(e,l)||n&&hasOwn$j(n,l)||i(e,l,a(t,l))}},fails$I=fails$Q,isCallable$j=isCallable$t,replacement=/#|\.prototype\./,isForced$5=function(e,t){var n=data[normalize(e)];return n==POLYFILL||n!=NATIVE&&(isCallable$j(t)?fails$I(t):!!t)},normalize=isForced$5.normalize=function(e){return String(e).replace(replacement,".").toLowerCase()},data=isForced$5.data={},NATIVE=isForced$5.NATIVE="N",POLYFILL=isForced$5.POLYFILL="P",isForced_1=isForced$5,global$z=global$I,getOwnPropertyDescriptor$5=objectGetOwnPropertyDescriptor.f,createNonEnumerableProperty$8=createNonEnumerableProperty$a,defineBuiltIn$i=defineBuiltIn$j,defineGlobalProperty=defineGlobalProperty$3,copyConstructorProperties$1=copyConstructorProperties$2,isForced$4=isForced_1,_export=function(e,t){var n,r,i,a,o,l=e.target,d=e.global,c=e.stat;if(n=d?global$z:c?global$z[l]||defineGlobalProperty(l,{}):(global$z[l]||{}).prototype)for(r in t){if(a=t[r],i=e.dontCallGetSet?(o=getOwnPropertyDescriptor$5(n,r))&&o.value:n[r],!isForced$4(d?r:l+(c?".":"#")+r,e.forced)&&void 0!==i){if(typeof a==typeof i)continue;copyConstructorProperties$1(a,i)}(e.sham||i&&i.sham)&&createNonEnumerableProperty$8(a,"sham",!0),defineBuiltIn$i(n,r,a,e)}},classof$f=classofRaw$2,isArray$5=Array.isArray||function(e){return"Array"==classof$f(e)},$TypeError$g=TypeError,MAX_SAFE_INTEGER=9007199254740991,doesNotExceedSafeInteger$2=function(e){if(e>MAX_SAFE_INTEGER)throw $TypeError$g("Maximum allowed index exceeded");return e},toPropertyKey$2=toPropertyKey$5,definePropertyModule$4=objectDefineProperty,createPropertyDescriptor$4=createPropertyDescriptor$7,createProperty$6=function(e,t,n){var r=toPropertyKey$2(t);r in e?definePropertyModule$4.f(e,r,createPropertyDescriptor$4(0,n)):e[r]=n},wellKnownSymbol$t=wellKnownSymbol$v,TO_STRING_TAG$4=wellKnownSymbol$t("toStringTag"),test$1={};test$1[TO_STRING_TAG$4]="z";var toStringTagSupport="[object z]"===String(test$1),TO_STRING_TAG_SUPPORT$2=toStringTagSupport,isCallable$i=isCallable$t,classofRaw$1=classofRaw$2,wellKnownSymbol$s=wellKnownSymbol$v,TO_STRING_TAG$3=wellKnownSymbol$s("toStringTag"),$Object$1=Object,CORRECT_ARGUMENTS="Arguments"==classofRaw$1(function(){return arguments}()),tryGet=function(e,t){try{return e[t]}catch(e){}},classof$e=TO_STRING_TAG_SUPPORT$2?classofRaw$1:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=tryGet(t=$Object$1(e),TO_STRING_TAG$3))?n:CORRECT_ARGUMENTS?classofRaw$1(t):"Object"==(r=classofRaw$1(t))&&isCallable$i(t.callee)?"Arguments":r},uncurryThis$F=functionUncurryThis,fails$H=fails$Q,isCallable$h=isCallable$t,classof$d=classof$e,getBuiltIn$d=getBuiltIn$h,inspectSource$1=inspectSource$3,noop=function(){},empty=[],construct$1=getBuiltIn$d("Reflect","construct"),constructorRegExp=/^\s*(?:class|function)\b/,exec$6=uncurryThis$F(constructorRegExp.exec),INCORRECT_TO_STRING=!constructorRegExp.exec(noop),isConstructorModern=function(e){if(!isCallable$h(e))return!1;try{return construct$1(noop,empty,e),!0}catch(e){return!1}},isConstructorLegacy=function(e){if(!isCallable$h(e))return!1;switch(classof$d(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return INCORRECT_TO_STRING||!!exec$6(constructorRegExp,inspectSource$1(e))}catch(e){return!0}};isConstructorLegacy.sham=!0;var isConstructor$4=!construct$1||fails$H((function(){var e;return isConstructorModern(isConstructorModern.call)||!isConstructorModern(Object)||!isConstructorModern((function(){e=!0}))||e}))?isConstructorLegacy:isConstructorModern,isArray$4=isArray$5,isConstructor$3=isConstructor$4,isObject$l=isObject$r,wellKnownSymbol$r=wellKnownSymbol$v,SPECIES$6=wellKnownSymbol$r("species"),$Array$4=Array,arraySpeciesConstructor$1=function(e){var t;return isArray$4(e)&&(t=e.constructor,(isConstructor$3(t)&&(t===$Array$4||isArray$4(t.prototype))||isObject$l(t)&&null===(t=t[SPECIES$6]))&&(t=void 0)),void 0===t?$Array$4:t},arraySpeciesConstructor=arraySpeciesConstructor$1,arraySpeciesCreate$3=function(e,t){return new(arraySpeciesConstructor(e))(0===t?0:t)},fails$G=fails$Q,wellKnownSymbol$q=wellKnownSymbol$v,V8_VERSION$2=engineV8Version,SPECIES$5=wellKnownSymbol$q("species"),arrayMethodHasSpeciesSupport$5=function(e){return V8_VERSION$2>=51||!fails$G((function(){var t=[];return(t.constructor={})[SPECIES$5]=function(){return{foo:1}},1!==t[e](Boolean).foo}))},$$Y=_export,fails$F=fails$Q,isArray$3=isArray$5,isObject$k=isObject$r,toObject$e=toObject$g,lengthOfArrayLike$e=lengthOfArrayLike$g,doesNotExceedSafeInteger$1=doesNotExceedSafeInteger$2,createProperty$5=createProperty$6,arraySpeciesCreate$2=arraySpeciesCreate$3,arrayMethodHasSpeciesSupport$4=arrayMethodHasSpeciesSupport$5,wellKnownSymbol$p=wellKnownSymbol$v,V8_VERSION$1=engineV8Version,IS_CONCAT_SPREADABLE=wellKnownSymbol$p("isConcatSpreadable"),IS_CONCAT_SPREADABLE_SUPPORT=V8_VERSION$1>=51||!fails$F((function(){var e=[];return e[IS_CONCAT_SPREADABLE]=!1,e.concat()[0]!==e})),SPECIES_SUPPORT=arrayMethodHasSpeciesSupport$4("concat"),isConcatSpreadable=function(e){if(!isObject$k(e))return!1;var t=e[IS_CONCAT_SPREADABLE];return void 0!==t?!!t:isArray$3(e)},FORCED$9=!IS_CONCAT_SPREADABLE_SUPPORT||!SPECIES_SUPPORT;$$Y({target:"Array",proto:!0,arity:1,forced:FORCED$9},{concat:function(e){var t,n,r,i,a,o=toObject$e(this),l=arraySpeciesCreate$2(o,0),d=0;for(t=-1,r=arguments.length;t<r;t++)if(isConcatSpreadable(a=-1===t?o:arguments[t]))for(i=lengthOfArrayLike$e(a),doesNotExceedSafeInteger$1(d+i),n=0;n<i;n++,d++)n in a&&createProperty$5(l,d,a[n]);else doesNotExceedSafeInteger$1(d+1),createProperty$5(l,d++,a);return l.length=d,l}});var classofRaw=classofRaw$2,uncurryThis$E=functionUncurryThis,functionUncurryThisClause=function(e){if("Function"===classofRaw(e))return uncurryThis$E(e)},uncurryThis$D=functionUncurryThisClause,aCallable$g=aCallable$i,NATIVE_BIND$2=functionBindNative,bind$i=functionUncurryThisClause(functionUncurryThisClause.bind),functionBindContext=function(e,t){return aCallable$g(e),void 0===t?e:NATIVE_BIND$2?bind$i(e,t):function(){return e.apply(t,arguments)}},bind$h=functionBindContext,uncurryThis$C=functionUncurryThis,IndexedObject$3=indexedObject,toObject$d=toObject$g,lengthOfArrayLike$d=lengthOfArrayLike$g,arraySpeciesCreate$1=arraySpeciesCreate$3,push$9=uncurryThis$C([].push),createMethod$5=function(e){var t=1==e,n=2==e,r=3==e,i=4==e,a=6==e,o=7==e,l=5==e||a;return function(d,c,s,U){for(var F,u,Q=toObject$d(d),R=IndexedObject$3(Q),h=bind$h(c,s),p=lengthOfArrayLike$d(R),B=0,S=U||arraySpeciesCreate$1,f=t?S(d,p):n||o?S(d,0):void 0;p>B;B++)if((l||B in R)&&(u=h(F=R[B],B,Q),e))if(t)f[B]=u;else if(u)switch(e){case 3:return!0;case 5:return F;case 6:return B;case 2:push$9(f,F)}else switch(e){case 4:return!1;case 7:push$9(f,F)}return a?-1:r||i?i:f}},arrayIteration={forEach:createMethod$5(0),map:createMethod$5(1),filter:createMethod$5(2),some:createMethod$5(3),every:createMethod$5(4),find:createMethod$5(5),findIndex:createMethod$5(6),filterReject:createMethod$5(7)},$$X=_export,$filter$1=arrayIteration.filter,arrayMethodHasSpeciesSupport$3=arrayMethodHasSpeciesSupport$5,HAS_SPECIES_SUPPORT$3=arrayMethodHasSpeciesSupport$3("filter");$$X({target:"Array",proto:!0,forced:!HAS_SPECIES_SUPPORT$3},{filter:function(e){return $filter$1(this,e,arguments.length>1?arguments[1]:void 0)}});var objectDefineProperties={},internalObjectKeys=objectKeysInternal,enumBugKeys$1=enumBugKeys$3,objectKeys$4=Object.keys||function(e){return internalObjectKeys(e,enumBugKeys$1)},DESCRIPTORS$j=descriptors,V8_PROTOTYPE_DEFINE_BUG=v8PrototypeDefineBug,definePropertyModule$3=objectDefineProperty,anObject$w=anObject$z,toIndexedObject$a=toIndexedObject$e,objectKeys$3=objectKeys$4;objectDefineProperties.f=DESCRIPTORS$j&&!V8_PROTOTYPE_DEFINE_BUG?Object.defineProperties:function(e,t){anObject$w(e);for(var n,r=toIndexedObject$a(t),i=objectKeys$3(t),a=i.length,o=0;a>o;)definePropertyModule$3.f(e,n=i[o++],r[n]);return e};var activeXDocument,getBuiltIn$c=getBuiltIn$h,html$2=getBuiltIn$c("document","documentElement"),anObject$v=anObject$z,definePropertiesModule$1=objectDefineProperties,enumBugKeys=enumBugKeys$3,hiddenKeys$2=hiddenKeys$6,html$1=html$2,documentCreateElement$1=documentCreateElement$2,sharedKey$2=sharedKey$4,GT=">",LT="<",PROTOTYPE$2="prototype",SCRIPT="script",IE_PROTO$1=sharedKey$2("IE_PROTO"),EmptyConstructor=function(){},scriptTag=function(e){return LT+SCRIPT+GT+e+LT+"/"+SCRIPT+GT},NullProtoObjectViaActiveX=function(e){e.write(scriptTag("")),e.close();var t=e.parentWindow.Object;return e=null,t},NullProtoObjectViaIFrame=function(){var e,t=documentCreateElement$1("iframe"),n="java"+SCRIPT+":";return t.style.display="none",html$1.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(scriptTag("document.F=Object")),e.close(),e.F},NullProtoObject=function(){try{activeXDocument=new ActiveXObject("htmlfile")}catch(e){}NullProtoObject="undefined"!=typeof document?document.domain&&activeXDocument?NullProtoObjectViaActiveX(activeXDocument):NullProtoObjectViaIFrame():NullProtoObjectViaActiveX(activeXDocument);for(var e=enumBugKeys.length;e--;)delete NullProtoObject[PROTOTYPE$2][enumBugKeys[e]];return NullProtoObject()};hiddenKeys$2[IE_PROTO$1]=!0;var objectCreate=Object.create||function(e,t){var n;return null!==e?(EmptyConstructor[PROTOTYPE$2]=anObject$v(e),n=new EmptyConstructor,EmptyConstructor[PROTOTYPE$2]=null,n[IE_PROTO$1]=e):n=NullProtoObject(),void 0===t?n:definePropertiesModule$1.f(n,t)},wellKnownSymbol$o=wellKnownSymbol$v,create$6=objectCreate,defineProperty$d=objectDefineProperty.f,UNSCOPABLES=wellKnownSymbol$o("unscopables"),ArrayPrototype$1=Array.prototype;null==ArrayPrototype$1[UNSCOPABLES]&&defineProperty$d(ArrayPrototype$1,UNSCOPABLES,{configurable:!0,value:create$6(null)});var addToUnscopables$4=function(e){ArrayPrototype$1[UNSCOPABLES][e]=!0},$$W=_export,$find$1=arrayIteration.find,addToUnscopables$3=addToUnscopables$4,FIND="find",SKIPS_HOLES$1=!0;FIND in[]&&Array(1)[FIND]((function(){SKIPS_HOLES$1=!1})),$$W({target:"Array",proto:!0,forced:SKIPS_HOLES$1},{find:function(e){return $find$1(this,e,arguments.length>1?arguments[1]:void 0)}}),addToUnscopables$3(FIND);var $$V=_export,$findIndex$1=arrayIteration.findIndex,addToUnscopables$2=addToUnscopables$4,FIND_INDEX="findIndex",SKIPS_HOLES=!0;FIND_INDEX in[]&&Array(1)[FIND_INDEX]((function(){SKIPS_HOLES=!1})),$$V({target:"Array",proto:!0,forced:SKIPS_HOLES},{findIndex:function(e){return $findIndex$1(this,e,arguments.length>1?arguments[1]:void 0)}}),addToUnscopables$2(FIND_INDEX);var $$U=_export,$includes$1=arrayIncludes.includes,fails$E=fails$Q,addToUnscopables$1=addToUnscopables$4,BROKEN_ON_SPARSE=fails$E((function(){return!Array(1).includes()}));$$U({target:"Array",proto:!0,forced:BROKEN_ON_SPARSE},{includes:function(e){return $includes$1(this,e,arguments.length>1?arguments[1]:void 0)}}),addToUnscopables$1("includes");var IteratorPrototype$2,PrototypeOfArrayIteratorPrototype,arrayIterator,iterators={},fails$D=fails$Q,correctPrototypeGetter=!fails$D((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),hasOwn$i=hasOwnProperty_1,isCallable$g=isCallable$t,toObject$c=toObject$g,sharedKey$1=sharedKey$4,CORRECT_PROTOTYPE_GETTER$1=correctPrototypeGetter,IE_PROTO=sharedKey$1("IE_PROTO"),$Object=Object,ObjectPrototype$4=$Object.prototype,objectGetPrototypeOf=CORRECT_PROTOTYPE_GETTER$1?$Object.getPrototypeOf:function(e){var t=toObject$c(e);if(hasOwn$i(t,IE_PROTO))return t[IE_PROTO];var n=t.constructor;return isCallable$g(n)&&t instanceof n?n.prototype:t instanceof $Object?ObjectPrototype$4:null},fails$C=fails$Q,isCallable$f=isCallable$t,isObject$j=isObject$r,getPrototypeOf$4=objectGetPrototypeOf,defineBuiltIn$h=defineBuiltIn$j,wellKnownSymbol$n=wellKnownSymbol$v,ITERATOR$8=wellKnownSymbol$n("iterator"),BUGGY_SAFARI_ITERATORS$1=!1;[].keys&&("next"in(arrayIterator=[].keys())?(PrototypeOfArrayIteratorPrototype=getPrototypeOf$4(getPrototypeOf$4(arrayIterator)))!==Object.prototype&&(IteratorPrototype$2=PrototypeOfArrayIteratorPrototype):BUGGY_SAFARI_ITERATORS$1=!0);var NEW_ITERATOR_PROTOTYPE=!isObject$j(IteratorPrototype$2)||fails$C((function(){var e={};return IteratorPrototype$2[ITERATOR$8].call(e)!==e}));NEW_ITERATOR_PROTOTYPE&&(IteratorPrototype$2={}),isCallable$f(IteratorPrototype$2[ITERATOR$8])||defineBuiltIn$h(IteratorPrototype$2,ITERATOR$8,(function(){return this}));var iteratorsCore={IteratorPrototype:IteratorPrototype$2,BUGGY_SAFARI_ITERATORS:BUGGY_SAFARI_ITERATORS$1},defineProperty$c=objectDefineProperty.f,hasOwn$h=hasOwnProperty_1,wellKnownSymbol$m=wellKnownSymbol$v,TO_STRING_TAG$2=wellKnownSymbol$m("toStringTag"),setToStringTag$b=function(e,t,n){e&&!n&&(e=e.prototype),e&&!hasOwn$h(e,TO_STRING_TAG$2)&&defineProperty$c(e,TO_STRING_TAG$2,{configurable:!0,value:t})},IteratorPrototype$1=iteratorsCore.IteratorPrototype,create$5=objectCreate,createPropertyDescriptor$3=createPropertyDescriptor$7,setToStringTag$a=setToStringTag$b,Iterators$4=iterators,returnThis$1=function(){return this},iteratorCreateConstructor=function(e,t,n,r){var i=t+" Iterator";return e.prototype=create$5(IteratorPrototype$1,{next:createPropertyDescriptor$3(+!r,n)}),setToStringTag$a(e,i,!1),Iterators$4[i]=returnThis$1,e},isCallable$e=isCallable$t,$String$2=String,$TypeError$f=TypeError,aPossiblePrototype$1=function(e){if("object"==typeof e||isCallable$e(e))return e;throw $TypeError$f("Can't set "+$String$2(e)+" as a prototype")},uncurryThis$B=functionUncurryThis,anObject$u=anObject$z,aPossiblePrototype=aPossiblePrototype$1,objectSetPrototypeOf=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=uncurryThis$B(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set))(n,[]),t=n instanceof Array}catch(e){}return function(n,r){return anObject$u(n),aPossiblePrototype(r),t?e(n,r):n.__proto__=r,n}}():void 0),$$T=_export,call$w=functionCall,FunctionName$1=functionName,isCallable$d=isCallable$t,createIteratorConstructor$1=iteratorCreateConstructor,getPrototypeOf$3=objectGetPrototypeOf,setPrototypeOf$5=objectSetPrototypeOf,setToStringTag$9=setToStringTag$b,createNonEnumerableProperty$7=createNonEnumerableProperty$a,defineBuiltIn$g=defineBuiltIn$j,wellKnownSymbol$l=wellKnownSymbol$v,Iterators$3=iterators,IteratorsCore=iteratorsCore,PROPER_FUNCTION_NAME$3=FunctionName$1.PROPER,CONFIGURABLE_FUNCTION_NAME$1=FunctionName$1.CONFIGURABLE,IteratorPrototype=IteratorsCore.IteratorPrototype,BUGGY_SAFARI_ITERATORS=IteratorsCore.BUGGY_SAFARI_ITERATORS,ITERATOR$7=wellKnownSymbol$l("iterator"),KEYS="keys",VALUES="values",ENTRIES="entries",returnThis=function(){return this},iteratorDefine=function(e,t,n,r,i,a,o){createIteratorConstructor$1(n,t,r);var l,d,c,s=function(e){if(e===i&&R)return R;if(!BUGGY_SAFARI_ITERATORS&&e in u)return u[e];switch(e){case KEYS:case VALUES:case ENTRIES:return function(){return new n(this,e)}}return function(){return new n(this)}},U=t+" Iterator",F=!1,u=e.prototype,Q=u[ITERATOR$7]||u["@@iterator"]||i&&u[i],R=!BUGGY_SAFARI_ITERATORS&&Q||s(i),h="Array"==t&&u.entries||Q;if(h&&(l=getPrototypeOf$3(h.call(new e)))!==Object.prototype&&l.next&&(getPrototypeOf$3(l)!==IteratorPrototype&&(setPrototypeOf$5?setPrototypeOf$5(l,IteratorPrototype):isCallable$d(l[ITERATOR$7])||defineBuiltIn$g(l,ITERATOR$7,returnThis)),setToStringTag$9(l,U,!0)),PROPER_FUNCTION_NAME$3&&i==VALUES&&Q&&Q.name!==VALUES&&(CONFIGURABLE_FUNCTION_NAME$1?createNonEnumerableProperty$7(u,"name",VALUES):(F=!0,R=function(){return call$w(Q,this)})),i)if(d={values:s(VALUES),keys:a?R:s(KEYS),entries:s(ENTRIES)},o)for(c in d)(BUGGY_SAFARI_ITERATORS||F||!(c in u))&&defineBuiltIn$g(u,c,d[c]);else $$T({target:t,proto:!0,forced:BUGGY_SAFARI_ITERATORS||F},d);return u[ITERATOR$7]!==R&&defineBuiltIn$g(u,ITERATOR$7,R,{name:i}),Iterators$3[t]=R,d},createIterResultObject$3=function(e,t){return{value:e,done:t}},toIndexedObject$9=toIndexedObject$e,addToUnscopables=addToUnscopables$4,Iterators$2=iterators,InternalStateModule$9=internalState,defineProperty$b=objectDefineProperty.f,defineIterator$2=iteratorDefine,createIterResultObject$2=createIterResultObject$3,DESCRIPTORS$i=descriptors,ARRAY_ITERATOR="Array Iterator",setInternalState$8=InternalStateModule$9.set,getInternalState$6=InternalStateModule$9.getterFor(ARRAY_ITERATOR),es_array_iterator=defineIterator$2(Array,"Array",(function(e,t){setInternalState$8(this,{type:ARRAY_ITERATOR,target:toIndexedObject$9(e),index:0,kind:t})}),(function(){var e=getInternalState$6(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,createIterResultObject$2(void 0,!0)):createIterResultObject$2("keys"==n?r:"values"==n?t[r]:[r,t[r]],!1)}),"values"),values=Iterators$2.Arguments=Iterators$2.Array;if(addToUnscopables("keys"),addToUnscopables("values"),addToUnscopables("entries"),DESCRIPTORS$i&&"values"!==values.name)try{defineProperty$b(values,"name",{value:"values"})}catch(e){}var fails$B=fails$Q,arrayMethodIsStrict$4=function(e,t){var n=[][e];return!!n&&fails$B((function(){n.call(null,t||function(){return 1},1)}))},$$S=_export,uncurryThis$A=functionUncurryThis,IndexedObject$2=indexedObject,toIndexedObject$8=toIndexedObject$e,arrayMethodIsStrict$3=arrayMethodIsStrict$4,nativeJoin=uncurryThis$A([].join),ES3_STRINGS=IndexedObject$2!=Object,STRICT_METHOD$3=arrayMethodIsStrict$3("join",",");$$S({target:"Array",proto:!0,forced:ES3_STRINGS||!STRICT_METHOD$3},{join:function(e){return nativeJoin(toIndexedObject$8(this),void 0===e?",":e)}});var $$R=_export,$map$1=arrayIteration.map,arrayMethodHasSpeciesSupport$2=arrayMethodHasSpeciesSupport$5,HAS_SPECIES_SUPPORT$2=arrayMethodHasSpeciesSupport$2("map");$$R({target:"Array",proto:!0,forced:!HAS_SPECIES_SUPPORT$2},{map:function(e){return $map$1(this,e,arguments.length>1?arguments[1]:void 0)}});var uncurryThis$z=functionUncurryThis,arraySlice$b=uncurryThis$z([].slice),$$Q=_export,isArray$2=isArray$5,isConstructor$2=isConstructor$4,isObject$i=isObject$r,toAbsoluteIndex$5=toAbsoluteIndex$7,lengthOfArrayLike$c=lengthOfArrayLike$g,toIndexedObject$7=toIndexedObject$e,createProperty$4=createProperty$6,wellKnownSymbol$k=wellKnownSymbol$v,arrayMethodHasSpeciesSupport$1=arrayMethodHasSpeciesSupport$5,nativeSlice=arraySlice$b,HAS_SPECIES_SUPPORT$1=arrayMethodHasSpeciesSupport$1("slice"),SPECIES$4=wellKnownSymbol$k("species"),$Array$3=Array,max$3=Math.max;$$Q({target:"Array",proto:!0,forced:!HAS_SPECIES_SUPPORT$1},{slice:function(e,t){var n,r,i,a=toIndexedObject$7(this),o=lengthOfArrayLike$c(a),l=toAbsoluteIndex$5(e,o),d=toAbsoluteIndex$5(void 0===t?o:t,o);if(isArray$2(a)&&(n=a.constructor,(isConstructor$2(n)&&(n===$Array$3||isArray$2(n.prototype))||isObject$i(n)&&null===(n=n[SPECIES$4]))&&(n=void 0),n===$Array$3||void 0===n))return nativeSlice(a,l,d);for(r=new(void 0===n?$Array$3:n)(max$3(d-l,0)),i=0;l<d;l++,i++)l in a&&createProperty$4(r,i,a[l]);return r.length=i,r}});var tryToString$5=tryToString$7,$TypeError$e=TypeError,deletePropertyOrThrow$3=function(e,t){if(!delete e[t])throw $TypeError$e("Cannot delete property "+tryToString$5(t)+" of "+tryToString$5(e))},classof$c=classof$e,$String$1=String,toString$j=function(e){if("Symbol"===classof$c(e))throw TypeError("Cannot convert a Symbol value to a string");return $String$1(e)},toAbsoluteIndex$4=toAbsoluteIndex$7,lengthOfArrayLike$b=lengthOfArrayLike$g,createProperty$3=createProperty$6,$Array$2=Array,max$2=Math.max,arraySliceSimple=function(e,t,n){for(var r=lengthOfArrayLike$b(e),i=toAbsoluteIndex$4(t,r),a=toAbsoluteIndex$4(void 0===n?r:n,r),o=$Array$2(max$2(a-i,0)),l=0;i<a;i++,l++)createProperty$3(o,l,e[i]);return o.length=l,o},arraySlice$a=arraySliceSimple,floor$7=Math.floor,mergeSort=function(e,t){var n=e.length,r=floor$7(n/2);return n<8?insertionSort(e,t):merge(e,mergeSort(arraySlice$a(e,0,r),t),mergeSort(arraySlice$a(e,r),t),t)},insertionSort=function(e,t){for(var n,r,i=e.length,a=1;a<i;){for(r=a,n=e[a];r&&t(e[r-1],n)>0;)e[r]=e[--r];r!==a++&&(e[r]=n)}return e},merge=function(e,t,n,r){for(var i=t.length,a=n.length,o=0,l=0;o<i||l<a;)e[o+l]=o<i&&l<a?r(t[o],n[l])<=0?t[o++]:n[l++]:o<i?t[o++]:n[l++];return e},arraySort$1=mergeSort,userAgent$5=engineUserAgent,firefox=userAgent$5.match(/firefox\/(\d+)/i),engineFfVersion=!!firefox&&+firefox[1],UA=engineUserAgent,engineIsIeOrEdge=/MSIE|Trident/.test(UA),userAgent$4=engineUserAgent,webkit=userAgent$4.match(/AppleWebKit\/(\d+)\./),engineWebkitVersion=!!webkit&&+webkit[1],$$P=_export,uncurryThis$y=functionUncurryThis,aCallable$f=aCallable$i,toObject$b=toObject$g,lengthOfArrayLike$a=lengthOfArrayLike$g,deletePropertyOrThrow$2=deletePropertyOrThrow$3,toString$i=toString$j,fails$A=fails$Q,internalSort$1=arraySort$1,arrayMethodIsStrict$2=arrayMethodIsStrict$4,FF$2=engineFfVersion,IE_OR_EDGE$1=engineIsIeOrEdge,V8$1=engineV8Version,WEBKIT$1=engineWebkitVersion,test=[],nativeSort$1=uncurryThis$y(test.sort),push$8=uncurryThis$y(test.push),FAILS_ON_UNDEFINED=fails$A((function(){test.sort(void 0)})),FAILS_ON_NULL=fails$A((function(){test.sort(null)})),STRICT_METHOD$2=arrayMethodIsStrict$2("sort"),STABLE_SORT$1=!fails$A((function(){if(V8$1)return V8$1<70;if(!(FF$2&&FF$2>3)){if(IE_OR_EDGE$1)return!0;if(WEBKIT$1)return WEBKIT$1<603;var e,t,n,r,i="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(r=0;r<47;r++)test.push({k:t+r,v:n})}for(test.sort((function(e,t){return t.v-e.v})),r=0;r<test.length;r++)t=test[r].k.charAt(0),i.charAt(i.length-1)!==t&&(i+=t);return"DGBEFHACIJK"!==i}})),FORCED$8=FAILS_ON_UNDEFINED||!FAILS_ON_NULL||!STRICT_METHOD$2||!STABLE_SORT$1,getSortCompare$1=function(e){return function(t,n){return void 0===n?-1:void 0===t?1:void 0!==e?+e(t,n)||0:toString$i(t)>toString$i(n)?1:-1}};$$P({target:"Array",proto:!0,forced:FORCED$8},{sort:function(e){void 0!==e&&aCallable$f(e);var t=toObject$b(this);if(STABLE_SORT$1)return void 0===e?nativeSort$1(t):nativeSort$1(t,e);var n,r,i=[],a=lengthOfArrayLike$a(t);for(r=0;r<a;r++)r in t&&push$8(i,t[r]);for(internalSort$1(i,getSortCompare$1(e)),n=lengthOfArrayLike$a(i),r=0;r<n;)t[r]=i[r++];for(;r<a;)deletePropertyOrThrow$2(t,r++);return t}});var DESCRIPTORS$h=descriptors,isArray$1=isArray$5,$TypeError$d=TypeError,getOwnPropertyDescriptor$4=Object.getOwnPropertyDescriptor,SILENT_ON_NON_WRITABLE_LENGTH_SET=DESCRIPTORS$h&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}(),arraySetLength=SILENT_ON_NON_WRITABLE_LENGTH_SET?function(e,t){if(isArray$1(e)&&!getOwnPropertyDescriptor$4(e,"length").writable)throw $TypeError$d("Cannot set read only .length");return e.length=t}:function(e,t){return e.length=t},$$O=_export,toObject$a=toObject$g,toAbsoluteIndex$3=toAbsoluteIndex$7,toIntegerOrInfinity$8=toIntegerOrInfinity$b,lengthOfArrayLike$9=lengthOfArrayLike$g,setArrayLength=arraySetLength,doesNotExceedSafeInteger=doesNotExceedSafeInteger$2,arraySpeciesCreate=arraySpeciesCreate$3,createProperty$2=createProperty$6,deletePropertyOrThrow$1=deletePropertyOrThrow$3,arrayMethodHasSpeciesSupport=arrayMethodHasSpeciesSupport$5,HAS_SPECIES_SUPPORT=arrayMethodHasSpeciesSupport("splice"),max$1=Math.max,min$5=Math.min;$$O({target:"Array",proto:!0,forced:!HAS_SPECIES_SUPPORT},{splice:function(e,t){var n,r,i,a,o,l,d=toObject$a(this),c=lengthOfArrayLike$9(d),s=toAbsoluteIndex$3(e,c),U=arguments.length;for(0===U?n=r=0:1===U?(n=0,r=c-s):(n=U-2,r=min$5(max$1(toIntegerOrInfinity$8(t),0),c-s)),doesNotExceedSafeInteger(c+n-r),i=arraySpeciesCreate(d,r),a=0;a<r;a++)(o=s+a)in d&&createProperty$2(i,a,d[o]);if(i.length=r,n<r){for(a=s;a<c-r;a++)l=a+n,(o=a+r)in d?d[l]=d[o]:deletePropertyOrThrow$1(d,l);for(a=c;a>c-r+n;a--)deletePropertyOrThrow$1(d,a-1)}else if(n>r)for(a=c-r;a>s;a--)l=a+n-1,(o=a+r-1)in d?d[l]=d[o]:deletePropertyOrThrow$1(d,l);for(a=0;a<n;a++)d[a+s]=arguments[a+2];return setArrayLength(d,c-r+n),i}});var DESCRIPTORS$g=descriptors,FUNCTION_NAME_EXISTS=functionName.EXISTS,uncurryThis$x=functionUncurryThis,defineProperty$a=objectDefineProperty.f,FunctionPrototype$1=Function.prototype,functionToString=uncurryThis$x(FunctionPrototype$1.toString),nameRE=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,regExpExec$2=uncurryThis$x(nameRE.exec),NAME$1="name";DESCRIPTORS$g&&!FUNCTION_NAME_EXISTS&&defineProperty$a(FunctionPrototype$1,NAME$1,{configurable:!0,get:function(){try{return regExpExec$2(nameRE,functionToString(this))[1]}catch(e){return""}}});var isCallable$c=isCallable$t,isObject$h=isObject$r,setPrototypeOf$4=objectSetPrototypeOf,inheritIfRequired$4=function(e,t,n){var r,i;return setPrototypeOf$4&&isCallable$c(r=t.constructor)&&r!==n&&isObject$h(i=r.prototype)&&i!==n.prototype&&setPrototypeOf$4(e,i),e},uncurryThis$w=functionUncurryThis,thisNumberValue$2=uncurryThis$w(1..valueOf),whitespaces$2="\t\n\v\f\r                 \u2028\u2029\ufeff",uncurryThis$v=functionUncurryThis,requireObjectCoercible$8=requireObjectCoercible$b,toString$h=toString$j,whitespaces$1=whitespaces$2,replace$8=uncurryThis$v("".replace),whitespace="["+whitespaces$1+"]",ltrim=RegExp("^"+whitespace+whitespace+"*"),rtrim=RegExp(whitespace+whitespace+"*$"),createMethod$4=function(e){return function(t){var n=toString$h(requireObjectCoercible$8(t));return 1&e&&(n=replace$8(n,ltrim,"")),2&e&&(n=replace$8(n,rtrim,"")),n}},stringTrim={start:createMethod$4(1),end:createMethod$4(2),trim:createMethod$4(3)},DESCRIPTORS$f=descriptors,global$y=global$I,uncurryThis$u=functionUncurryThis,isForced$3=isForced_1,defineBuiltIn$f=defineBuiltIn$j,hasOwn$g=hasOwnProperty_1,inheritIfRequired$3=inheritIfRequired$4,isPrototypeOf$8=objectIsPrototypeOf,isSymbol$3=isSymbol$6,toPrimitive$1=toPrimitive$3,fails$z=fails$Q,getOwnPropertyNames$3=objectGetOwnPropertyNames.f,getOwnPropertyDescriptor$3=objectGetOwnPropertyDescriptor.f,defineProperty$9=objectDefineProperty.f,thisNumberValue$1=thisNumberValue$2,trim=stringTrim.trim,NUMBER="Number",NativeNumber=global$y[NUMBER],NumberPrototype=NativeNumber.prototype,TypeError$6=global$y.TypeError,arraySlice$9=uncurryThis$u("".slice),charCodeAt$3=uncurryThis$u("".charCodeAt),toNumeric=function(e){var t=toPrimitive$1(e,"number");return"bigint"==typeof t?t:toNumber(t)},toNumber=function(e){var t,n,r,i,a,o,l,d,c=toPrimitive$1(e,"number");if(isSymbol$3(c))throw TypeError$6("Cannot convert a Symbol value to a number");if("string"==typeof c&&c.length>2)if(c=trim(c),43===(t=charCodeAt$3(c,0))||45===t){if(88===(n=charCodeAt$3(c,2))||120===n)return NaN}else if(48===t){switch(charCodeAt$3(c,1)){case 66:case 98:r=2,i=49;break;case 79:case 111:r=8,i=55;break;default:return+c}for(o=(a=arraySlice$9(c,2)).length,l=0;l<o;l++)if((d=charCodeAt$3(a,l))<48||d>i)return NaN;return parseInt(a,r)}return+c};if(isForced$3(NUMBER,!NativeNumber(" 0o1")||!NativeNumber("0b1")||NativeNumber("+0x1"))){for(var key$1,NumberWrapper=function(e){var t=arguments.length<1?0:NativeNumber(toNumeric(e)),n=this;return isPrototypeOf$8(NumberPrototype,n)&&fails$z((function(){thisNumberValue$1(n)}))?inheritIfRequired$3(Object(t),n,NumberWrapper):t},keys$2=DESCRIPTORS$f?getOwnPropertyNames$3(NativeNumber):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),j$1=0;keys$2.length>j$1;j$1++)hasOwn$g(NativeNumber,key$1=keys$2[j$1])&&!hasOwn$g(NumberWrapper,key$1)&&defineProperty$9(NumberWrapper,key$1,getOwnPropertyDescriptor$3(NativeNumber,key$1));NumberWrapper.prototype=NumberPrototype,NumberPrototype.constructor=NumberWrapper,defineBuiltIn$f(global$y,NUMBER,NumberWrapper,{constructor:!0})}var DESCRIPTORS$e=descriptors,uncurryThis$t=functionUncurryThis,call$v=functionCall,fails$y=fails$Q,objectKeys$2=objectKeys$4,getOwnPropertySymbolsModule$2=objectGetOwnPropertySymbols,propertyIsEnumerableModule$1=objectPropertyIsEnumerable,toObject$9=toObject$g,IndexedObject$1=indexedObject,$assign=Object.assign,defineProperty$8=Object.defineProperty,concat$3=uncurryThis$t([].concat),objectAssign=!$assign||fails$y((function(){if(DESCRIPTORS$e&&1!==$assign({b:1},$assign(defineProperty$8({},"a",{enumerable:!0,get:function(){defineProperty$8(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach((function(e){t[e]=e})),7!=$assign({},e)[n]||objectKeys$2($assign({},t)).join("")!=r}))?function(e,t){for(var n=toObject$9(e),r=arguments.length,i=1,a=getOwnPropertySymbolsModule$2.f,o=propertyIsEnumerableModule$1.f;r>i;)for(var l,d=IndexedObject$1(arguments[i++]),c=a?concat$3(objectKeys$2(d),a(d)):objectKeys$2(d),s=c.length,U=0;s>U;)l=c[U++],DESCRIPTORS$e&&!call$v(o,d,l)||(n[l]=d[l]);return n}:$assign,$$N=_export,assign$1=objectAssign;$$N({target:"Object",stat:!0,arity:2,forced:Object.assign!==assign$1},{assign:assign$1});var $$M=_export,toObject$8=toObject$g,nativeKeys=objectKeys$4,fails$x=fails$Q,FAILS_ON_PRIMITIVES$3=fails$x((function(){nativeKeys(1)}));$$M({target:"Object",stat:!0,forced:FAILS_ON_PRIMITIVES$3},{keys:function(e){return nativeKeys(toObject$8(e))}});var TO_STRING_TAG_SUPPORT$1=toStringTagSupport,classof$b=classof$e,objectToString=TO_STRING_TAG_SUPPORT$1?{}.toString:function(){return"[object "+classof$b(this)+"]"},TO_STRING_TAG_SUPPORT=toStringTagSupport,defineBuiltIn$e=defineBuiltIn$j,toString$g=objectToString;TO_STRING_TAG_SUPPORT||defineBuiltIn$e(Object.prototype,"toString",toString$g,{unsafe:!0});var $location,defer,channel,port,classof$a=classofRaw$2,global$x=global$I,engineIsNode="process"==classof$a(global$x.process),getBuiltIn$b=getBuiltIn$h,definePropertyModule$2=objectDefineProperty,wellKnownSymbol$j=wellKnownSymbol$v,DESCRIPTORS$d=descriptors,SPECIES$3=wellKnownSymbol$j("species"),setSpecies$5=function(e){var t=getBuiltIn$b(e),n=definePropertyModule$2.f;DESCRIPTORS$d&&t&&!t[SPECIES$3]&&n(t,SPECIES$3,{configurable:!0,get:function(){return this}})},isPrototypeOf$7=objectIsPrototypeOf,$TypeError$c=TypeError,anInstance$7=function(e,t){if(isPrototypeOf$7(t,e))return e;throw $TypeError$c("Incorrect invocation")},isConstructor$1=isConstructor$4,tryToString$4=tryToString$7,$TypeError$b=TypeError,aConstructor$3=function(e){if(isConstructor$1(e))return e;throw $TypeError$b(tryToString$4(e)+" is not a constructor")},anObject$t=anObject$z,aConstructor$2=aConstructor$3,isNullOrUndefined$6=isNullOrUndefined$9,wellKnownSymbol$i=wellKnownSymbol$v,SPECIES$2=wellKnownSymbol$i("species"),speciesConstructor$7=function(e,t){var n,r=anObject$t(e).constructor;return void 0===r||isNullOrUndefined$6(n=anObject$t(r)[SPECIES$2])?t:aConstructor$2(n)},NATIVE_BIND$1=functionBindNative,FunctionPrototype=Function.prototype,apply$8=FunctionPrototype.apply,call$u=FunctionPrototype.call,functionApply="object"==typeof Reflect&&Reflect.apply||(NATIVE_BIND$1?call$u.bind(apply$8):function(){return call$u.apply(apply$8,arguments)}),$TypeError$a=TypeError,validateArgumentsLength$3=function(e,t){if(e<t)throw $TypeError$a("Not enough arguments");return e},userAgent$3=engineUserAgent,engineIsIos=/(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent$3),global$w=global$I,apply$7=functionApply,bind$g=functionBindContext,isCallable$b=isCallable$t,hasOwn$f=hasOwnProperty_1,fails$w=fails$Q,html=html$2,arraySlice$8=arraySlice$b,createElement=documentCreateElement$2,validateArgumentsLength$2=validateArgumentsLength$3,IS_IOS$1=engineIsIos,IS_NODE$3=engineIsNode,set$1=global$w.setImmediate,clear=global$w.clearImmediate,process$2=global$w.process,Dispatch=global$w.Dispatch,Function$1=global$w.Function,MessageChannel=global$w.MessageChannel,String$1=global$w.String,counter=0,queue$1={},ONREADYSTATECHANGE="onreadystatechange";try{$location=global$w.location}catch(e){}var run=function(e){if(hasOwn$f(queue$1,e)){var t=queue$1[e];delete queue$1[e],t()}},runner=function(e){return function(){run(e)}},listener=function(e){run(e.data)},post=function(e){global$w.postMessage(String$1(e),$location.protocol+"//"+$location.host)};set$1&&clear||(set$1=function(e){validateArgumentsLength$2(arguments.length,1);var t=isCallable$b(e)?e:Function$1(e),n=arraySlice$8(arguments,1);return queue$1[++counter]=function(){apply$7(t,void 0,n)},defer(counter),counter},clear=function(e){delete queue$1[e]},IS_NODE$3?defer=function(e){process$2.nextTick(runner(e))}:Dispatch&&Dispatch.now?defer=function(e){Dispatch.now(runner(e))}:MessageChannel&&!IS_IOS$1?(port=(channel=new MessageChannel).port2,channel.port1.onmessage=listener,defer=bind$g(port.postMessage,port)):global$w.addEventListener&&isCallable$b(global$w.postMessage)&&!global$w.importScripts&&$location&&"file:"!==$location.protocol&&!fails$w(post)?(defer=post,global$w.addEventListener("message",listener,!1)):defer=ONREADYSTATECHANGE in createElement("script")?function(e){html.appendChild(createElement("script"))[ONREADYSTATECHANGE]=function(){html.removeChild(this),run(e)}}:function(e){setTimeout(runner(e),0)});var flush,head,last,notify$1,toggle,node,promise,then,task$1={set:set$1,clear:clear},userAgent$2=engineUserAgent,global$v=global$I,engineIsIosPebble=/ipad|iphone|ipod/i.test(userAgent$2)&&void 0!==global$v.Pebble,userAgent$1=engineUserAgent,engineIsWebosWebkit=/web0s(?!.*chrome)/i.test(userAgent$1),global$u=global$I,bind$f=functionBindContext,getOwnPropertyDescriptor$2=objectGetOwnPropertyDescriptor.f,macrotask=task$1.set,IS_IOS=engineIsIos,IS_IOS_PEBBLE=engineIsIosPebble,IS_WEBOS_WEBKIT=engineIsWebosWebkit,IS_NODE$2=engineIsNode,MutationObserver=global$u.MutationObserver||global$u.WebKitMutationObserver,document$2=global$u.document,process$1=global$u.process,Promise$1=global$u.Promise,queueMicrotaskDescriptor=getOwnPropertyDescriptor$2(global$u,"queueMicrotask"),queueMicrotask=queueMicrotaskDescriptor&&queueMicrotaskDescriptor.value;queueMicrotask||(flush=function(){var e,t;for(IS_NODE$2&&(e=process$1.domain)&&e.exit();head;){t=head.fn,head=head.next;try{t()}catch(e){throw head?notify$1():last=void 0,e}}last=void 0,e&&e.enter()},IS_IOS||IS_NODE$2||IS_WEBOS_WEBKIT||!MutationObserver||!document$2?!IS_IOS_PEBBLE&&Promise$1&&Promise$1.resolve?((promise=Promise$1.resolve(void 0)).constructor=Promise$1,then=bind$f(promise.then,promise),notify$1=function(){then(flush)}):IS_NODE$2?notify$1=function(){process$1.nextTick(flush)}:(macrotask=bind$f(macrotask,global$u),notify$1=function(){macrotask(flush)}):(toggle=!0,node=document$2.createTextNode(""),new MutationObserver(flush).observe(node,{characterData:!0}),notify$1=function(){node.data=toggle=!toggle}));var microtask$1=queueMicrotask||function(e){var t={fn:e,next:void 0};last&&(last.next=t),head||(head=t,notify$1()),last=t},global$t=global$I,hostReportErrors$1=function(e,t){var n=global$t.console;n&&n.error&&(1==arguments.length?n.error(e):n.error(e,t))},perform$3=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}},Queue$1=function(){this.head=null,this.tail=null};Queue$1.prototype={add:function(e){var t={item:e,next:null};this.head?this.tail.next=t:this.head=t,this.tail=t},get:function(){var e=this.head;if(e)return this.head=e.next,this.tail===e&&(this.tail=null),e.item}};var queue=Queue$1,global$s=global$I,promiseNativeConstructor=global$s.Promise,engineIsDeno="object"==typeof Deno&&Deno&&"object"==typeof Deno.version,IS_DENO$1=engineIsDeno,IS_NODE$1=engineIsNode,engineIsBrowser=!IS_DENO$1&&!IS_NODE$1&&"object"==typeof window&&"object"==typeof document,global$r=global$I,NativePromiseConstructor$4=promiseNativeConstructor,isCallable$a=isCallable$t,isForced$2=isForced_1,inspectSource=inspectSource$3,wellKnownSymbol$h=wellKnownSymbol$v,IS_BROWSER=engineIsBrowser,IS_DENO=engineIsDeno,V8_VERSION=engineV8Version;NativePromiseConstructor$4&&NativePromiseConstructor$4.prototype;var SPECIES$1=wellKnownSymbol$h("species"),SUBCLASSING=!1,NATIVE_PROMISE_REJECTION_EVENT$1=isCallable$a(global$r.PromiseRejectionEvent),FORCED_PROMISE_CONSTRUCTOR$5=isForced$2("Promise",(function(){var e=inspectSource(NativePromiseConstructor$4),t=e!==String(NativePromiseConstructor$4);if(!t&&66===V8_VERSION)return!0;if(!V8_VERSION||V8_VERSION<51||!/native code/.test(e)){var n=new NativePromiseConstructor$4((function(e){e(1)})),r=function(e){e((function(){}),(function(){}))};if((n.constructor={})[SPECIES$1]=r,!(SUBCLASSING=n.then((function(){}))instanceof r))return!0}return!t&&(IS_BROWSER||IS_DENO)&&!NATIVE_PROMISE_REJECTION_EVENT$1})),promiseConstructorDetection={CONSTRUCTOR:FORCED_PROMISE_CONSTRUCTOR$5,REJECTION_EVENT:NATIVE_PROMISE_REJECTION_EVENT$1,SUBCLASSING:SUBCLASSING},newPromiseCapability$2={},aCallable$e=aCallable$i,$TypeError$9=TypeError,PromiseCapability=function(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw $TypeError$9("Bad Promise constructor");t=e,n=r})),this.resolve=aCallable$e(t),this.reject=aCallable$e(n)};newPromiseCapability$2.f=function(e){return new PromiseCapability(e)};var Internal,OwnPromiseCapability,PromiseWrapper,nativeThen,$$L=_export,IS_NODE=engineIsNode,global$q=global$I,call$t=functionCall,defineBuiltIn$d=defineBuiltIn$j,setPrototypeOf$3=objectSetPrototypeOf,setToStringTag$8=setToStringTag$b,setSpecies$4=setSpecies$5,aCallable$d=aCallable$i,isCallable$9=isCallable$t,isObject$g=isObject$r,anInstance$6=anInstance$7,speciesConstructor$6=speciesConstructor$7,task=task$1.set,microtask=microtask$1,hostReportErrors=hostReportErrors$1,perform$2=perform$3,Queue=queue,InternalStateModule$8=internalState,NativePromiseConstructor$3=promiseNativeConstructor,PromiseConstructorDetection=promiseConstructorDetection,newPromiseCapabilityModule$3=newPromiseCapability$2,PROMISE="Promise",FORCED_PROMISE_CONSTRUCTOR$4=PromiseConstructorDetection.CONSTRUCTOR,NATIVE_PROMISE_REJECTION_EVENT=PromiseConstructorDetection.REJECTION_EVENT,NATIVE_PROMISE_SUBCLASSING=PromiseConstructorDetection.SUBCLASSING,getInternalPromiseState=InternalStateModule$8.getterFor(PROMISE),setInternalState$7=InternalStateModule$8.set,NativePromisePrototype$2=NativePromiseConstructor$3&&NativePromiseConstructor$3.prototype,PromiseConstructor=NativePromiseConstructor$3,PromisePrototype=NativePromisePrototype$2,TypeError$5=global$q.TypeError,document$1=global$q.document,process=global$q.process,newPromiseCapability$1=newPromiseCapabilityModule$3.f,newGenericPromiseCapability=newPromiseCapability$1,DISPATCH_EVENT=!!(document$1&&document$1.createEvent&&global$q.dispatchEvent),UNHANDLED_REJECTION="unhandledrejection",REJECTION_HANDLED="rejectionhandled",PENDING=0,FULFILLED=1,REJECTED=2,HANDLED=1,UNHANDLED=2,isThenable=function(e){var t;return!(!isObject$g(e)||!isCallable$9(t=e.then))&&t},callReaction=function(e,t){var n,r,i,a=t.value,o=t.state==FULFILLED,l=o?e.ok:e.fail,d=e.resolve,c=e.reject,s=e.domain;try{l?(o||(t.rejection===UNHANDLED&&onHandleUnhandled(t),t.rejection=HANDLED),!0===l?n=a:(s&&s.enter(),n=l(a),s&&(s.exit(),i=!0)),n===e.promise?c(TypeError$5("Promise-chain cycle")):(r=isThenable(n))?call$t(r,n,d,c):d(n)):c(a)}catch(e){s&&!i&&s.exit(),c(e)}},notify=function(e,t){e.notified||(e.notified=!0,microtask((function(){for(var n,r=e.reactions;n=r.get();)callReaction(n,e);e.notified=!1,t&&!e.rejection&&onUnhandled(e)})))},dispatchEvent=function(e,t,n){var r,i;DISPATCH_EVENT?((r=document$1.createEvent("Event")).promise=t,r.reason=n,r.initEvent(e,!1,!0),global$q.dispatchEvent(r)):r={promise:t,reason:n},!NATIVE_PROMISE_REJECTION_EVENT&&(i=global$q["on"+e])?i(r):e===UNHANDLED_REJECTION&&hostReportErrors("Unhandled promise rejection",n)},onUnhandled=function(e){call$t(task,global$q,(function(){var t,n=e.facade,r=e.value;if(isUnhandled(e)&&(t=perform$2((function(){IS_NODE?process.emit("unhandledRejection",r,n):dispatchEvent(UNHANDLED_REJECTION,n,r)})),e.rejection=IS_NODE||isUnhandled(e)?UNHANDLED:HANDLED,t.error))throw t.value}))},isUnhandled=function(e){return e.rejection!==HANDLED&&!e.parent},onHandleUnhandled=function(e){call$t(task,global$q,(function(){var t=e.facade;IS_NODE?process.emit("rejectionHandled",t):dispatchEvent(REJECTION_HANDLED,t,e.value)}))},bind$e=function(e,t,n){return function(r){e(t,r,n)}},internalReject=function(e,t,n){e.done||(e.done=!0,n&&(e=n),e.value=t,e.state=REJECTED,notify(e,!0))},internalResolve=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw TypeError$5("Promise can't be resolved itself");var r=isThenable(t);r?microtask((function(){var n={done:!1};try{call$t(r,t,bind$e(internalResolve,n,e),bind$e(internalReject,n,e))}catch(t){internalReject(n,t,e)}})):(e.value=t,e.state=FULFILLED,notify(e,!1))}catch(t){internalReject({done:!1},t,e)}}};if(FORCED_PROMISE_CONSTRUCTOR$4&&(PromisePrototype=(PromiseConstructor=function(e){anInstance$6(this,PromisePrototype),aCallable$d(e),call$t(Internal,this);var t=getInternalPromiseState(this);try{e(bind$e(internalResolve,t),bind$e(internalReject,t))}catch(e){internalReject(t,e)}}).prototype,(Internal=function(e){setInternalState$7(this,{type:PROMISE,done:!1,notified:!1,parent:!1,reactions:new Queue,rejection:!1,state:PENDING,value:void 0})}).prototype=defineBuiltIn$d(PromisePrototype,"then",(function(e,t){var n=getInternalPromiseState(this),r=newPromiseCapability$1(speciesConstructor$6(this,PromiseConstructor));return n.parent=!0,r.ok=!isCallable$9(e)||e,r.fail=isCallable$9(t)&&t,r.domain=IS_NODE?process.domain:void 0,n.state==PENDING?n.reactions.add(r):microtask((function(){callReaction(r,n)})),r.promise})),OwnPromiseCapability=function(){var e=new Internal,t=getInternalPromiseState(e);this.promise=e,this.resolve=bind$e(internalResolve,t),this.reject=bind$e(internalReject,t)},newPromiseCapabilityModule$3.f=newPromiseCapability$1=function(e){return e===PromiseConstructor||e===PromiseWrapper?new OwnPromiseCapability(e):newGenericPromiseCapability(e)},isCallable$9(NativePromiseConstructor$3)&&NativePromisePrototype$2!==Object.prototype)){nativeThen=NativePromisePrototype$2.then,NATIVE_PROMISE_SUBCLASSING||defineBuiltIn$d(NativePromisePrototype$2,"then",(function(e,t){var n=this;return new PromiseConstructor((function(e,t){call$t(nativeThen,n,e,t)})).then(e,t)}),{unsafe:!0});try{delete NativePromisePrototype$2.constructor}catch(e){}setPrototypeOf$3&&setPrototypeOf$3(NativePromisePrototype$2,PromisePrototype)}$$L({global:!0,constructor:!0,wrap:!0,forced:FORCED_PROMISE_CONSTRUCTOR$4},{Promise:PromiseConstructor}),setToStringTag$8(PromiseConstructor,PROMISE,!1),setSpecies$4(PROMISE);var wellKnownSymbol$g=wellKnownSymbol$v,Iterators$1=iterators,ITERATOR$6=wellKnownSymbol$g("iterator"),ArrayPrototype=Array.prototype,isArrayIteratorMethod$3=function(e){return void 0!==e&&(Iterators$1.Array===e||ArrayPrototype[ITERATOR$6]===e)},classof$9=classof$e,getMethod$4=getMethod$6,isNullOrUndefined$5=isNullOrUndefined$9,Iterators=iterators,wellKnownSymbol$f=wellKnownSymbol$v,ITERATOR$5=wellKnownSymbol$f("iterator"),getIteratorMethod$5=function(e){if(!isNullOrUndefined$5(e))return getMethod$4(e,ITERATOR$5)||getMethod$4(e,"@@iterator")||Iterators[classof$9(e)]},call$s=functionCall,aCallable$c=aCallable$i,anObject$s=anObject$z,tryToString$3=tryToString$7,getIteratorMethod$4=getIteratorMethod$5,$TypeError$8=TypeError,getIterator$4=function(e,t){var n=arguments.length<2?getIteratorMethod$4(e):t;if(aCallable$c(n))return anObject$s(call$s(n,e));throw $TypeError$8(tryToString$3(e)+" is not iterable")},call$r=functionCall,anObject$r=anObject$z,getMethod$3=getMethod$6,iteratorClose$2=function(e,t,n){var r,i;anObject$r(e);try{if(!(r=getMethod$3(e,"return"))){if("throw"===t)throw n;return n}r=call$r(r,e)}catch(e){i=!0,r=e}if("throw"===t)throw n;if(i)throw r;return anObject$r(r),n},bind$d=functionBindContext,call$q=functionCall,anObject$q=anObject$z,tryToString$2=tryToString$7,isArrayIteratorMethod$2=isArrayIteratorMethod$3,lengthOfArrayLike$8=lengthOfArrayLike$g,isPrototypeOf$6=objectIsPrototypeOf,getIterator$3=getIterator$4,getIteratorMethod$3=getIteratorMethod$5,iteratorClose$1=iteratorClose$2,$TypeError$7=TypeError,Result=function(e,t){this.stopped=e,this.result=t},ResultPrototype=Result.prototype,iterate$f=function(e,t,n){var r,i,a,o,l,d,c,s=n&&n.that,U=!(!n||!n.AS_ENTRIES),F=!(!n||!n.IS_RECORD),u=!(!n||!n.IS_ITERATOR),Q=!(!n||!n.INTERRUPTED),R=bind$d(t,s),h=function(e){return r&&iteratorClose$1(r,"normal",e),new Result(!0,e)},p=function(e){return U?(anObject$q(e),Q?R(e[0],e[1],h):R(e[0],e[1])):Q?R(e,h):R(e)};if(F)r=e.iterator;else if(u)r=e;else{if(!(i=getIteratorMethod$3(e)))throw $TypeError$7(tryToString$2(e)+" is not iterable");if(isArrayIteratorMethod$2(i)){for(a=0,o=lengthOfArrayLike$8(e);o>a;a++)if((l=p(e[a]))&&isPrototypeOf$6(ResultPrototype,l))return l;return new Result(!1)}r=getIterator$3(e,i)}for(d=F?e.next:r.next;!(c=call$q(d,r)).done;){try{l=p(c.value)}catch(e){iteratorClose$1(r,"throw",e)}if("object"==typeof l&&l&&isPrototypeOf$6(ResultPrototype,l))return l}return new Result(!1)},wellKnownSymbol$e=wellKnownSymbol$v,ITERATOR$4=wellKnownSymbol$e("iterator"),SAFE_CLOSING=!1;try{var called=0,iteratorWithReturn={next:function(){return{done:!!called++}},return:function(){SAFE_CLOSING=!0}};iteratorWithReturn[ITERATOR$4]=function(){return this},Array.from(iteratorWithReturn,(function(){throw 2}))}catch(e){}var checkCorrectnessOfIteration$4=function(e,t){if(!t&&!SAFE_CLOSING)return!1;var n=!1;try{var r={};r[ITERATOR$4]=function(){return{next:function(){return{done:n=!0}}}},e(r)}catch(e){}return n},NativePromiseConstructor$2=promiseNativeConstructor,checkCorrectnessOfIteration$3=checkCorrectnessOfIteration$4,FORCED_PROMISE_CONSTRUCTOR$3=promiseConstructorDetection.CONSTRUCTOR,promiseStaticsIncorrectIteration=FORCED_PROMISE_CONSTRUCTOR$3||!checkCorrectnessOfIteration$3((function(e){NativePromiseConstructor$2.all(e).then(void 0,(function(){}))})),$$K=_export,call$p=functionCall,aCallable$b=aCallable$i,newPromiseCapabilityModule$2=newPromiseCapability$2,perform$1=perform$3,iterate$e=iterate$f,PROMISE_STATICS_INCORRECT_ITERATION$1=promiseStaticsIncorrectIteration;$$K({target:"Promise",stat:!0,forced:PROMISE_STATICS_INCORRECT_ITERATION$1},{all:function(e){var t=this,n=newPromiseCapabilityModule$2.f(t),r=n.resolve,i=n.reject,a=perform$1((function(){var n=aCallable$b(t.resolve),a=[],o=0,l=1;iterate$e(e,(function(e){var d=o++,c=!1;l++,call$p(n,t,e).then((function(e){c||(c=!0,a[d]=e,--l||r(a))}),i)})),--l||r(a)}));return a.error&&i(a.value),n.promise}});var $$J=_export,FORCED_PROMISE_CONSTRUCTOR$2=promiseConstructorDetection.CONSTRUCTOR,NativePromiseConstructor$1=promiseNativeConstructor,getBuiltIn$a=getBuiltIn$h,isCallable$8=isCallable$t,defineBuiltIn$c=defineBuiltIn$j,NativePromisePrototype$1=NativePromiseConstructor$1&&NativePromiseConstructor$1.prototype;if($$J({target:"Promise",proto:!0,forced:FORCED_PROMISE_CONSTRUCTOR$2,real:!0},{catch:function(e){return this.then(void 0,e)}}),isCallable$8(NativePromiseConstructor$1)){var method$1=getBuiltIn$a("Promise").prototype.catch;NativePromisePrototype$1.catch!==method$1&&defineBuiltIn$c(NativePromisePrototype$1,"catch",method$1,{unsafe:!0})}var $$I=_export,call$o=functionCall,aCallable$a=aCallable$i,newPromiseCapabilityModule$1=newPromiseCapability$2,perform=perform$3,iterate$d=iterate$f,PROMISE_STATICS_INCORRECT_ITERATION=promiseStaticsIncorrectIteration;$$I({target:"Promise",stat:!0,forced:PROMISE_STATICS_INCORRECT_ITERATION},{race:function(e){var t=this,n=newPromiseCapabilityModule$1.f(t),r=n.reject,i=perform((function(){var i=aCallable$a(t.resolve);iterate$d(e,(function(e){call$o(i,t,e).then(n.resolve,r)}))}));return i.error&&r(i.value),n.promise}});var $$H=_export,call$n=functionCall,newPromiseCapabilityModule=newPromiseCapability$2,FORCED_PROMISE_CONSTRUCTOR$1=promiseConstructorDetection.CONSTRUCTOR;$$H({target:"Promise",stat:!0,forced:FORCED_PROMISE_CONSTRUCTOR$1},{reject:function(e){var t=newPromiseCapabilityModule.f(this);return call$n(t.reject,void 0,e),t.promise}});var anObject$p=anObject$z,isObject$f=isObject$r,newPromiseCapability=newPromiseCapability$2,promiseResolve$2=function(e,t){if(anObject$p(e),isObject$f(t)&&t.constructor===e)return t;var n=newPromiseCapability.f(e);return(0,n.resolve)(t),n.promise},$$G=_export,getBuiltIn$9=getBuiltIn$h,FORCED_PROMISE_CONSTRUCTOR=promiseConstructorDetection.CONSTRUCTOR,promiseResolve$1=promiseResolve$2;getBuiltIn$9("Promise"),$$G({target:"Promise",stat:!0,forced:FORCED_PROMISE_CONSTRUCTOR},{resolve:function(e){return promiseResolve$1(this,e)}});var $$F=_export,NativePromiseConstructor=promiseNativeConstructor,fails$v=fails$Q,getBuiltIn$8=getBuiltIn$h,isCallable$7=isCallable$t,speciesConstructor$5=speciesConstructor$7,promiseResolve=promiseResolve$2,defineBuiltIn$b=defineBuiltIn$j,NativePromisePrototype=NativePromiseConstructor&&NativePromiseConstructor.prototype,NON_GENERIC=!!NativePromiseConstructor&&fails$v((function(){NativePromisePrototype.finally.call({then:function(){}},(function(){}))}));if($$F({target:"Promise",proto:!0,real:!0,forced:NON_GENERIC},{finally:function(e){var t=speciesConstructor$5(this,getBuiltIn$8("Promise")),n=isCallable$7(e);return this.then(n?function(n){return promiseResolve(t,e()).then((function(){return n}))}:e,n?function(n){return promiseResolve(t,e()).then((function(){throw n}))}:e)}}),isCallable$7(NativePromiseConstructor)){var method=getBuiltIn$8("Promise").prototype.finally;NativePromisePrototype.finally!==method&&defineBuiltIn$b(NativePromisePrototype,"finally",method,{unsafe:!0})}var anObject$o=anObject$z,regexpFlags$1=function(){var e=anObject$o(this),t="";return e.hasIndices&&(t+="d"),e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.unicodeSets&&(t+="v"),e.sticky&&(t+="y"),t},fails$u=fails$Q,global$p=global$I,$RegExp$2=global$p.RegExp,UNSUPPORTED_Y$3=fails$u((function(){var e=$RegExp$2("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),MISSED_STICKY$1=UNSUPPORTED_Y$3||fails$u((function(){return!$RegExp$2("a","y").sticky})),BROKEN_CARET=UNSUPPORTED_Y$3||fails$u((function(){var e=$RegExp$2("^r","gy");return e.lastIndex=2,null!=e.exec("str")})),regexpStickyHelpers={BROKEN_CARET:BROKEN_CARET,MISSED_STICKY:MISSED_STICKY$1,UNSUPPORTED_Y:UNSUPPORTED_Y$3},fails$t=fails$Q,global$o=global$I,$RegExp$1=global$o.RegExp,regexpUnsupportedDotAll=fails$t((function(){var e=$RegExp$1(".","s");return!(e.dotAll&&e.exec("\n")&&"s"===e.flags)})),fails$s=fails$Q,global$n=global$I,$RegExp=global$n.RegExp,regexpUnsupportedNcg=fails$s((function(){var e=$RegExp("(?<a>b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$<a>c")})),call$m=functionCall,uncurryThis$s=functionUncurryThis,toString$f=toString$j,regexpFlags=regexpFlags$1,stickyHelpers$2=regexpStickyHelpers,shared$3=sharedExports,create$4=objectCreate,getInternalState$5=internalState.get,UNSUPPORTED_DOT_ALL$1=regexpUnsupportedDotAll,UNSUPPORTED_NCG$1=regexpUnsupportedNcg,nativeReplace=shared$3("native-string-replace",String.prototype.replace),nativeExec=RegExp.prototype.exec,patchedExec=nativeExec,charAt$8=uncurryThis$s("".charAt),indexOf=uncurryThis$s("".indexOf),replace$7=uncurryThis$s("".replace),stringSlice$b=uncurryThis$s("".slice),UPDATES_LAST_INDEX_WRONG=function(){var e=/a/,t=/b*/g;return call$m(nativeExec,e,"a"),call$m(nativeExec,t,"a"),0!==e.lastIndex||0!==t.lastIndex}(),UNSUPPORTED_Y$2=stickyHelpers$2.BROKEN_CARET,NPCG_INCLUDED=void 0!==/()??/.exec("")[1],PATCH=UPDATES_LAST_INDEX_WRONG||NPCG_INCLUDED||UNSUPPORTED_Y$2||UNSUPPORTED_DOT_ALL$1||UNSUPPORTED_NCG$1;PATCH&&(patchedExec=function(e){var t,n,r,i,a,o,l,d=this,c=getInternalState$5(d),s=toString$f(e),U=c.raw;if(U)return U.lastIndex=d.lastIndex,t=call$m(patchedExec,U,s),d.lastIndex=U.lastIndex,t;var F=c.groups,u=UNSUPPORTED_Y$2&&d.sticky,Q=call$m(regexpFlags,d),R=d.source,h=0,p=s;if(u&&(Q=replace$7(Q,"y",""),-1===indexOf(Q,"g")&&(Q+="g"),p=stringSlice$b(s,d.lastIndex),d.lastIndex>0&&(!d.multiline||d.multiline&&"\n"!==charAt$8(s,d.lastIndex-1))&&(R="(?: "+R+")",p=" "+p,h++),n=new RegExp("^(?:"+R+")",Q)),NPCG_INCLUDED&&(n=new RegExp("^"+R+"$(?!\\s)",Q)),UPDATES_LAST_INDEX_WRONG&&(r=d.lastIndex),i=call$m(nativeExec,u?n:d,p),u?i?(i.input=stringSlice$b(i.input,h),i[0]=stringSlice$b(i[0],h),i.index=d.lastIndex,d.lastIndex+=i[0].length):d.lastIndex=0:UPDATES_LAST_INDEX_WRONG&&i&&(d.lastIndex=d.global?i.index+i[0].length:r),NPCG_INCLUDED&&i&&i.length>1&&call$m(nativeReplace,i[0],n,(function(){for(a=1;a<arguments.length-2;a++)void 0===arguments[a]&&(i[a]=void 0)})),i&&F)for(i.groups=o=create$4(null),a=0;a<F.length;a++)o[(l=F[a])[0]]=i[l[1]];return i});var regexpExec$3=patchedExec,$$E=_export,exec$5=regexpExec$3;$$E({target:"RegExp",proto:!0,forced:/./.exec!==regexpExec$3},{exec:regexpExec$3});var call$l=functionCall,hasOwn$e=hasOwnProperty_1,isPrototypeOf$5=objectIsPrototypeOf,regExpFlags$1=regexpFlags$1,RegExpPrototype$4=RegExp.prototype,regexpGetFlags=function(e){var t=e.flags;return void 0!==t||"flags"in RegExpPrototype$4||hasOwn$e(e,"flags")||!isPrototypeOf$5(RegExpPrototype$4,e)?t:call$l(regExpFlags$1,e)},PROPER_FUNCTION_NAME$2=functionName.PROPER,defineBuiltIn$a=defineBuiltIn$j,anObject$n=anObject$z,$toString$3=toString$j,fails$r=fails$Q,getRegExpFlags$1=regexpGetFlags,TO_STRING="toString",RegExpPrototype$3=RegExp.prototype,nativeToString=RegExpPrototype$3[TO_STRING],NOT_GENERIC=fails$r((function(){return"/a/b"!=nativeToString.call({source:"a",flags:"b"})})),INCORRECT_NAME=PROPER_FUNCTION_NAME$2&&nativeToString.name!=TO_STRING;(NOT_GENERIC||INCORRECT_NAME)&&defineBuiltIn$a(RegExp.prototype,TO_STRING,(function(){var e=anObject$n(this);return"/"+$toString$3(e.source)+"/"+$toString$3(getRegExpFlags$1(e))}),{unsafe:!0});var isObject$e=isObject$r,classof$8=classofRaw$2,wellKnownSymbol$d=wellKnownSymbol$v,MATCH$2=wellKnownSymbol$d("match"),isRegexp=function(e){var t;return isObject$e(e)&&(void 0!==(t=e[MATCH$2])?!!t:"RegExp"==classof$8(e))},isRegExp$2=isRegexp,$TypeError$6=TypeError,notARegexp=function(e){if(isRegExp$2(e))throw $TypeError$6("The method doesn't accept regular expressions");return e},wellKnownSymbol$c=wellKnownSymbol$v,MATCH$1=wellKnownSymbol$c("match"),correctIsRegexpLogic=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[MATCH$1]=!1,"/./"[e](t)}catch(e){}}return!1},$$D=_export,uncurryThis$r=functionUncurryThis,notARegExp$1=notARegexp,requireObjectCoercible$7=requireObjectCoercible$b,toString$e=toString$j,correctIsRegExpLogic$1=correctIsRegexpLogic,stringIndexOf$2=uncurryThis$r("".indexOf);$$D({target:"String",proto:!0,forced:!correctIsRegExpLogic$1("includes")},{includes:function(e){return!!~stringIndexOf$2(toString$e(requireObjectCoercible$7(this)),toString$e(notARegExp$1(e)),arguments.length>1?arguments[1]:void 0)}});var uncurryThis$q=functionUncurryThis,toIntegerOrInfinity$7=toIntegerOrInfinity$b,toString$d=toString$j,requireObjectCoercible$6=requireObjectCoercible$b,charAt$7=uncurryThis$q("".charAt),charCodeAt$2=uncurryThis$q("".charCodeAt),stringSlice$a=uncurryThis$q("".slice),createMethod$3=function(e){return function(t,n){var r,i,a=toString$d(requireObjectCoercible$6(t)),o=toIntegerOrInfinity$7(n),l=a.length;return o<0||o>=l?e?"":void 0:(r=charCodeAt$2(a,o))<55296||r>56319||o+1===l||(i=charCodeAt$2(a,o+1))<56320||i>57343?e?charAt$7(a,o):r:e?stringSlice$a(a,o,o+2):i-56320+(r-55296<<10)+65536}},stringMultibyte={codeAt:createMethod$3(!1),charAt:createMethod$3(!0)},charAt$6=stringMultibyte.charAt,toString$c=toString$j,InternalStateModule$7=internalState,defineIterator$1=iteratorDefine,createIterResultObject$1=createIterResultObject$3,STRING_ITERATOR="String Iterator",setInternalState$6=InternalStateModule$7.set,getInternalState$4=InternalStateModule$7.getterFor(STRING_ITERATOR);defineIterator$1(String,"String",(function(e){setInternalState$6(this,{type:STRING_ITERATOR,string:toString$c(e),index:0})}),(function(){var e,t=getInternalState$4(this),n=t.string,r=t.index;return r>=n.length?createIterResultObject$1(void 0,!0):(e=charAt$6(n,r),t.index+=e.length,createIterResultObject$1(e,!1))}));var domIterables={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},documentCreateElement=documentCreateElement$2,classList=documentCreateElement("span").classList,DOMTokenListPrototype$2=classList&&classList.constructor&&classList.constructor.prototype,domTokenListPrototype=DOMTokenListPrototype$2===Object.prototype?void 0:DOMTokenListPrototype$2,$forEach$2=arrayIteration.forEach,arrayMethodIsStrict$1=arrayMethodIsStrict$4,STRICT_METHOD$1=arrayMethodIsStrict$1("forEach"),arrayForEach=STRICT_METHOD$1?[].forEach:function(e){return $forEach$2(this,e,arguments.length>1?arguments[1]:void 0)},global$m=global$I,DOMIterables$1=domIterables,DOMTokenListPrototype$1=domTokenListPrototype,forEach$1=arrayForEach,createNonEnumerableProperty$6=createNonEnumerableProperty$a,handlePrototype$1=function(e){if(e&&e.forEach!==forEach$1)try{createNonEnumerableProperty$6(e,"forEach",forEach$1)}catch(t){e.forEach=forEach$1}};for(var COLLECTION_NAME$1 in DOMIterables$1)DOMIterables$1[COLLECTION_NAME$1]&&handlePrototype$1(global$m[COLLECTION_NAME$1]&&global$m[COLLECTION_NAME$1].prototype);handlePrototype$1(DOMTokenListPrototype$1);var global$l=global$I,DOMIterables=domIterables,DOMTokenListPrototype=domTokenListPrototype,ArrayIteratorMethods=es_array_iterator,createNonEnumerableProperty$5=createNonEnumerableProperty$a,wellKnownSymbol$b=wellKnownSymbol$v,ITERATOR$3=wellKnownSymbol$b("iterator"),TO_STRING_TAG$1=wellKnownSymbol$b("toStringTag"),ArrayValues=ArrayIteratorMethods.values,handlePrototype=function(e,t){if(e){if(e[ITERATOR$3]!==ArrayValues)try{createNonEnumerableProperty$5(e,ITERATOR$3,ArrayValues)}catch(t){e[ITERATOR$3]=ArrayValues}if(e[TO_STRING_TAG$1]||createNonEnumerableProperty$5(e,TO_STRING_TAG$1,t),DOMIterables[t])for(var n in ArrayIteratorMethods)if(e[n]!==ArrayIteratorMethods[n])try{createNonEnumerableProperty$5(e,n,ArrayIteratorMethods[n])}catch(t){e[n]=ArrayIteratorMethods[n]}}};for(var COLLECTION_NAME in DOMIterables)handlePrototype(global$l[COLLECTION_NAME]&&global$l[COLLECTION_NAME].prototype,COLLECTION_NAME);handlePrototype(DOMTokenListPrototype,"DOMTokenList");var index_min={exports:{}};!function(e){var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==commonjsGlobal?commonjsGlobal:"undefined"!=typeof self?self:{};function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var r=function(e){return e&&e.Math==Math&&e},i=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof t&&t)||function(){return this}()||Function("return this")(),a={},o=function(e){try{return!!e()}catch(e){return!0}},l=!o((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),d={},c={}.propertyIsEnumerable,s=Object.getOwnPropertyDescriptor,U=s&&!c.call({1:2},1);d.f=U?function(e){var t=s(this,e);return!!t&&t.enumerable}:c;var F=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},u={}.toString,Q=function(e){return u.call(e).slice(8,-1)},R=Q,h="".split,p=o((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==R(e)?h.call(e,""):Object(e)}:Object,B=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},S=p,f=B,m=function(e){return S(f(e))},V=function(e){return"object"==typeof e?null!==e:"function"==typeof e},y=V,E=function(e,t){if(!y(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!y(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!y(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!y(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")},Z=B,b=function(e){return Object(Z(e))},J=b,v={}.hasOwnProperty,g=function(e,t){return v.call(J(e),t)},T=V,W=i.document,k=T(W)&&T(W.createElement),N=function(e){return k?W.createElement(e):{}},C=N,I=!l&&!o((function(){return 7!=Object.defineProperty(C("div"),"a",{get:function(){return 7}}).a})),L=l,_=d,x=F,D=m,G=E,X=g,M=I,P=Object.getOwnPropertyDescriptor;a.f=L?P:function(e,t){if(e=D(e),t=G(t,!0),M)try{return P(e,t)}catch(e){}if(X(e,t))return x(!_.f.call(e,t),e[t])};var w={},O=V,$=function(e){if(!O(e))throw TypeError(String(e)+" is not an object");return e},Y=l,K=I,j=$,H=E,A=Object.defineProperty;w.f=Y?A:function(e,t,n){if(j(e),t=H(t,!0),j(n),K)try{return A(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e};var z=w,q=F,ee=l?function(e,t,n){return z.f(e,t,q(1,n))}:function(e,t,n){return e[t]=n,e},te={exports:{}},ne=i,re=ee,ie=function(e,t){try{re(ne,e,t)}catch(n){ne[e]=t}return t},ae=ie,oe="__core-js_shared__",le=i[oe]||ae(oe,{}),de=le,ce=Function.toString;"function"!=typeof de.inspectSource&&(de.inspectSource=function(e){return ce.call(e)});var se=de.inspectSource,Ue=se,Fe=i.WeakMap,ue="function"==typeof Fe&&/native code/.test(Ue(Fe)),Qe={exports:{}},Re=le;(Qe.exports=function(e,t){return Re[e]||(Re[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.12.1",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"});var he,pe,Be,Se=Qe.exports,fe=0,me=Math.random(),Ve=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++fe+me).toString(36)},ye=Ve,Ee=Se("keys"),Ze=function(e){return Ee[e]||(Ee[e]=ye(e))},be={},Je=ue,ve=V,ge=ee,Te=g,We=le,ke=Ze,Ne=be,Ce="Object already initialized",Ie=i.WeakMap;if(Je||We.state){var Le=We.state||(We.state=new Ie),_e=Le.get,xe=Le.has,De=Le.set;he=function(e,t){if(xe.call(Le,e))throw new TypeError(Ce);return t.facade=e,De.call(Le,e,t),t},pe=function(e){return _e.call(Le,e)||{}},Be=function(e){return xe.call(Le,e)}}else{var Ge=ke("state");Ne[Ge]=!0,he=function(e,t){if(Te(e,Ge))throw new TypeError(Ce);return t.facade=e,ge(e,Ge,t),t},pe=function(e){return Te(e,Ge)?e[Ge]:{}},Be=function(e){return Te(e,Ge)}}var Xe={set:he,get:pe,has:Be,enforce:function(e){return Be(e)?pe(e):he(e,{})},getterFor:function(e){return function(t){var n;if(!ve(t)||(n=pe(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}},Me=i,Pe=ee,we=g,Oe=ie,$e=se,Ye=Xe.get,Ke=Xe.enforce,je=String(String).split("String");(te.exports=function(e,t,n,r){var i,a=!!r&&!!r.unsafe,o=!!r&&!!r.enumerable,l=!!r&&!!r.noTargetGet;"function"==typeof n&&("string"!=typeof t||we(n,"name")||Pe(n,"name",t),(i=Ke(n)).source||(i.source=je.join("string"==typeof t?t:""))),e!==Me?(a?!l&&e[t]&&(o=!0):delete e[t],o?e[t]=n:Pe(e,t,n)):o?e[t]=n:Oe(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&Ye(this).source||$e(this)}));var He=te.exports,Ae=i,ze=i,qe=function(e){return"function"==typeof e?e:void 0},et=function(e,t){return arguments.length<2?qe(Ae[e])||qe(ze[e]):Ae[e]&&Ae[e][t]||ze[e]&&ze[e][t]},tt={},nt=Math.ceil,rt=Math.floor,it=function(e){return isNaN(e=+e)?0:(e>0?rt:nt)(e)},at=it,ot=Math.min,lt=function(e){return e>0?ot(at(e),9007199254740991):0},dt=it,ct=Math.max,st=Math.min,Ut=function(e,t){var n=dt(e);return n<0?ct(n+t,0):st(n,t)},Ft=m,ut=lt,Qt=Ut,Rt=function(e){return function(t,n,r){var i,a=Ft(t),o=ut(a.length),l=Qt(r,o);if(e&&n!=n){for(;o>l;)if((i=a[l++])!=i)return!0}else for(;o>l;l++)if((e||l in a)&&a[l]===n)return e||l||0;return!e&&-1}},ht={includes:Rt(!0),indexOf:Rt(!1)},pt=g,Bt=m,St=ht.indexOf,ft=be,mt=function(e,t){var n,r=Bt(e),i=0,a=[];for(n in r)!pt(ft,n)&&pt(r,n)&&a.push(n);for(;t.length>i;)pt(r,n=t[i++])&&(~St(a,n)||a.push(n));return a},Vt=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],yt=mt,Et=Vt.concat("length","prototype");tt.f=Object.getOwnPropertyNames||function(e){return yt(e,Et)};var Zt={};Zt.f=Object.getOwnPropertySymbols;var bt=tt,Jt=Zt,vt=$,gt=et("Reflect","ownKeys")||function(e){var t=bt.f(vt(e)),n=Jt.f;return n?t.concat(n(e)):t},Tt=g,Wt=gt,kt=a,Nt=w,Ct=o,It=/#|\.prototype\./,Lt=function(e,t){var n=xt[_t(e)];return n==Gt||n!=Dt&&("function"==typeof t?Ct(t):!!t)},_t=Lt.normalize=function(e){return String(e).replace(It,".").toLowerCase()},xt=Lt.data={},Dt=Lt.NATIVE="N",Gt=Lt.POLYFILL="P",Xt=Lt,Mt=i,Pt=a.f,wt=ee,Ot=He,$t=ie,Yt=function(e,t){for(var n=Wt(t),r=Nt.f,i=kt.f,a=0;a<n.length;a++){var o=n[a];Tt(e,o)||r(e,o,i(t,o))}},Kt=Xt,jt=function(e,t){var n,r,i,a,o,l=e.target,d=e.global,c=e.stat;if(n=d?Mt:c?Mt[l]||$t(l,{}):(Mt[l]||{}).prototype)for(r in t){if(a=t[r],i=e.noTargetGet?(o=Pt(n,r))&&o.value:n[r],!Kt(d?r:l+(c?".":"#")+r,e.forced)&&void 0!==i){if(typeof a==typeof i)continue;Yt(a,i)}(e.sham||i&&i.sham)&&wt(a,"sham",!0),Ot(n,r,a,e)}};function Ht(e,t,n,r,i,a,o){try{var l=e[a](o),d=l.value}catch(e){return void n(e)}l.done?t(d):Promise.resolve(d).then(r,i)}function At(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){Ht(a,r,i,o,l,"next",e)}function l(e){Ht(a,r,i,o,l,"throw",e)}o(void 0)}))}}function zt(e,t,n){return t=rn(t),function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)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,on()?Reflect.construct(t,n||[],rn(e).constructor):t.apply(e,n))}function qt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function en(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,cn(r.key),r)}}function tn(e,t,n){return t&&en(e.prototype,t),n&&en(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function nn(e,t,n){return(t=cn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rn(e){return(rn=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function an(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&dn(e,t)}function on(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(on=function(){return!!e})()}function ln(){ln=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,i=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",l=a.asyncIterator||"@@asyncIterator",d=a.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var a=t&&t.prototype instanceof p?t:p,o=Object.create(a.prototype),l=new T(r||[]);return i(o,"_invoke",{value:b(e,n,l)}),o}function U(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=s;var F="suspendedStart",u="suspendedYield",Q="executing",R="completed",h={};function p(){}function B(){}function S(){}var f={};c(f,o,(function(){return this}));var m=Object.getPrototypeOf,V=m&&m(m(W([])));V&&V!==n&&r.call(V,o)&&(f=V);var y=S.prototype=p.prototype=Object.create(f);function E(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function Z(e,t){function n(i,a,o,l){var d=U(e[i],e,a);if("throw"!==d.type){var c=d.arg,s=c.value;return s&&"object"==typeof s&&r.call(s,"__await")?t.resolve(s.__await).then((function(e){n("next",e,o,l)}),(function(e){n("throw",e,o,l)})):t.resolve(s).then((function(e){c.value=e,o(c)}),(function(e){return n("throw",e,o,l)}))}l(d.arg)}var a;i(this,"_invoke",{value:function(e,r){function i(){return new t((function(t,i){n(e,r,t,i)}))}return a=a?a.then(i,i):i()}})}function b(t,n,r){var i=F;return function(a,o){if(i===Q)throw Error("Generator is already running");if(i===R){if("throw"===a)throw o;return{value:e,done:!0}}for(r.method=a,r.arg=o;;){var l=r.delegate;if(l){var d=J(l,r);if(d){if(d===h)continue;return d}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===F)throw i=R,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=Q;var c=U(t,n,r);if("normal"===c.type){if(i=r.done?R:u,c.arg===h)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(i=R,r.method="throw",r.arg=c.arg)}}}function J(t,n){var r=n.method,i=t.iterator[r];if(i===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,J(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),h;var a=U(i,t.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,h;var o=a.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,h):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,h)}function v(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function g(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(v,this),this.reset(!0)}function W(t){if(t||""===t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,a=function n(){for(;++i<t.length;)if(r.call(t,i))return n.value=t[i],n.done=!1,n;return n.value=e,n.done=!0,n};return a.next=a}}throw new TypeError(typeof t+" is not iterable")}return B.prototype=S,i(y,"constructor",{value:S,configurable:!0}),i(S,"constructor",{value:B,configurable:!0}),B.displayName=c(S,d,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===B||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,S):(e.__proto__=S,c(e,d,"GeneratorFunction")),e.prototype=Object.create(y),e},t.awrap=function(e){return{__await:e}},E(Z.prototype),c(Z.prototype,l,(function(){return this})),t.AsyncIterator=Z,t.async=function(e,n,r,i,a){void 0===a&&(a=Promise);var o=new Z(s(e,n,r,i),a);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},E(y),c(y,d,"Generator"),c(y,o,(function(){return this})),c(y,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=W,T.prototype={constructor:T,reset:function(t){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(g),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function i(r,i){return l.type="throw",l.arg=t,n.next=r,i&&(n.method="next",n.arg=e),!!i}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],l=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var d=r.call(o,"catchLoc"),c=r.call(o,"finallyLoc");if(d&&c){if(this.prev<o.catchLoc)return i(o.catchLoc,!0);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else if(d){if(this.prev<o.catchLoc)return i(o.catchLoc,!0)}else{if(!c)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return i(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var a=i;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,h):this.complete(o)},complete:function(e,t){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&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),g(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;g(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:W(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),h}},t}function dn(e,t){return(dn=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function cn(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}function sn(e){return(sn="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 Un(e){var t="function"==typeof Map?new Map:void 0;return Un=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){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!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(on())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&dn(i,n.prototype),i}(e,arguments,rn(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),dn(n,e)},Un(e)}jt({global:!0},{globalThis:i});var Fn,un,Qn=Q,Rn=Array.isArray||function(e){return"Array"==Qn(e)},hn=E,pn=w,Bn=F,Sn=function(e,t,n){var r=hn(t);r in e?pn.f(e,r,Bn(0,n)):e[r]=n},fn=et("navigator","userAgent")||"",mn=fn,Vn=i.process,yn=Vn&&Vn.versions,En=yn&&yn.v8;En?un=(Fn=En.split("."))[0]<4?1:Fn[0]+Fn[1]:mn&&(!(Fn=mn.match(/Edge\/(\d+)/))||Fn[1]>=74)&&(Fn=mn.match(/Chrome\/(\d+)/))&&(un=Fn[1]);var Zn=un&&+un,bn=Zn,Jn=o,vn=!!Object.getOwnPropertySymbols&&!Jn((function(){return!String(Symbol())||!Symbol.sham&&bn&&bn<41})),gn=vn&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Tn=i,Wn=g,kn=Ve,Nn=vn,Cn=gn,In=Se("wks"),Ln=Tn.Symbol,_n=Cn?Ln:Ln&&Ln.withoutSetter||kn,xn=function(e){return Wn(In,e)&&(Nn||"string"==typeof In[e])||(Nn&&Wn(Ln,e)?In[e]=Ln[e]:In[e]=_n("Symbol."+e)),In[e]},Dn=V,Gn=Rn,Xn=xn("species"),Mn=function(e,t){var n;return Gn(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!Gn(n.prototype)?Dn(n)&&null===(n=n[Xn])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===t?0:t)},Pn=o,wn=Zn,On=xn("species"),$n=function(e){return wn>=51||!Pn((function(){var t=[];return(t.constructor={})[On]=function(){return{foo:1}},1!==t[e](Boolean).foo}))},Yn=jt,Kn=o,jn=Rn,Hn=V,An=b,zn=lt,qn=Sn,er=Mn,tr=$n,nr=Zn,rr=xn("isConcatSpreadable"),ir=9007199254740991,ar="Maximum allowed index exceeded",or=nr>=51||!Kn((function(){var e=[];return e[rr]=!1,e.concat()[0]!==e})),lr=tr("concat"),dr=function(e){if(!Hn(e))return!1;var t=e[rr];return void 0!==t?!!t:jn(e)};Yn({target:"Array",proto:!0,forced:!or||!lr},{concat:function(e){var t,n,r,i,a,o=An(this),l=er(o,0),d=0;for(t=-1,r=arguments.length;t<r;t++)if(dr(a=-1===t?o:arguments[t])){if(d+(i=zn(a.length))>ir)throw TypeError(ar);for(n=0;n<i;n++,d++)n in a&&qn(l,d,a[n])}else{if(d>=ir)throw TypeError(ar);qn(l,d++,a)}return l.length=d,l}});var cr,sr=mt,Ur=Vt,Fr=Object.keys||function(e){return sr(e,Ur)},ur=w,Qr=$,Rr=Fr,hr=l?Object.defineProperties:function(e,t){Qr(e);for(var n,r=Rr(t),i=r.length,a=0;i>a;)ur.f(e,n=r[a++],t[n]);return e},pr=et("document","documentElement"),Br=$,Sr=hr,fr=Vt,mr=be,Vr=pr,yr=N,Er="prototype",Zr="script",br=Ze("IE_PROTO"),Jr=function(){},vr=function(e){return"<"+Zr+">"+e+"</"+Zr+">"},gr=function(){try{cr=document.domain&&new ActiveXObject("htmlfile")}catch(e){}var e,t,n;gr=cr?function(e){e.write(vr("")),e.close();var t=e.parentWindow.Object;return e=null,t}(cr):(t=yr("iframe"),n="java"+Zr+":",t.style.display="none",Vr.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(vr("document.F=Object")),e.close(),e.F);for(var r=fr.length;r--;)delete gr[Er][fr[r]];return gr()};mr[br]=!0;var Tr=Object.create||function(e,t){var n;return null!==e?(Jr[Er]=Br(e),n=new Jr,Jr[Er]=null,n[br]=e):n=gr(),void 0===t?n:Sr(n,t)},Wr=Tr,kr=w,Nr=xn("unscopables"),Cr=Array.prototype;null==Cr[Nr]&&kr.f(Cr,Nr,{configurable:!0,value:Wr(null)});var Ir,Lr,_r,xr={},Dr=!o((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),Gr=g,Xr=b,Mr=Dr,Pr=Ze("IE_PROTO"),wr=Object.prototype,Or=Mr?Object.getPrototypeOf:function(e){return e=Xr(e),Gr(e,Pr)?e[Pr]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?wr:null},$r=o,Yr=Or,Kr=ee,jr=g,Hr=xn("iterator"),Ar=!1;[].keys&&("next"in(_r=[].keys())?(Lr=Yr(Yr(_r)))!==Object.prototype&&(Ir=Lr):Ar=!0),(null==Ir||$r((function(){var e={};return Ir[Hr].call(e)!==e})))&&(Ir={}),jr(Ir,Hr)||Kr(Ir,Hr,(function(){return this}));var zr={IteratorPrototype:Ir,BUGGY_SAFARI_ITERATORS:Ar},qr=w.f,ei=g,ti=xn("toStringTag"),ni=function(e,t,n){e&&!ei(e=n?e:e.prototype,ti)&&qr(e,ti,{configurable:!0,value:t})},ri=zr.IteratorPrototype,ii=Tr,ai=F,oi=ni,li=xr,di=function(){return this},ci=V,si=$,Ui=function(e){if(!ci(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e},Fi=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(e){}return function(n,r){return si(n),Ui(r),t?e.call(n,r):n.__proto__=r,n}}():void 0),ui=jt,Qi=function(e,t,n){var r=t+" Iterator";return e.prototype=ii(ri,{next:ai(1,n)}),oi(e,r,!1),li[r]=di,e},Ri=Or,hi=Fi,pi=ni,Bi=ee,Si=He,fi=xr,mi=zr.IteratorPrototype,Vi=zr.BUGGY_SAFARI_ITERATORS,yi=xn("iterator"),Ei="keys",Zi="values",bi="entries",Ji=function(){return this},vi=function(e,t,n,r,i,a,o){Qi(n,t,r);var l,d,c,s=function(e){if(e===i&&R)return R;if(!Vi&&e in u)return u[e];switch(e){case Ei:case Zi:case bi:return function(){return new n(this,e)}}return function(){return new n(this)}},U=t+" Iterator",F=!1,u=e.prototype,Q=u[yi]||u["@@iterator"]||i&&u[i],R=!Vi&&Q||s(i),h="Array"==t&&u.entries||Q;if(h&&(l=Ri(h.call(new e)),mi!==Object.prototype&&l.next&&(Ri(l)!==mi&&(hi?hi(l,mi):"function"!=typeof l[yi]&&Bi(l,yi,Ji)),pi(l,U,!0))),i==Zi&&Q&&Q.name!==Zi&&(F=!0,R=function(){return Q.call(this)}),u[yi]!==R&&Bi(u,yi,R),fi[t]=R,i)if(d={values:s(Zi),keys:a?R:s(Ei),entries:s(bi)},o)for(c in d)(Vi||F||!(c in u))&&Si(u,c,d[c]);else ui({target:t,proto:!0,forced:Vi||F},d);return d},gi=m,Ti=function(e){Cr[Nr][e]=!0},Wi=xr,ki=Xe,Ni=vi,Ci="Array Iterator",Ii=ki.set,Li=ki.getterFor(Ci),_i=Ni(Array,"Array",(function(e,t){Ii(this,{type:Ci,target:gi(e),index:0,kind:t})}),(function(){var e=Li(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:t[r],done:!1}:{value:[r,t[r]],done:!1}}),"values");Wi.Arguments=Wi.Array,Ti("keys"),Ti("values"),Ti("entries");var xi="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView,Di=He,Gi=function(e,t,n){for(var r in t)Di(e,r,t[r],n);return e},Xi=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e},Mi=it,Pi=lt,wi=function(e){if(void 0===e)return 0;var t=Mi(e),n=Pi(t);if(t!==n)throw RangeError("Wrong length or index");return n},Oi=Math.abs,$i=Math.pow,Yi=Math.floor,Ki=Math.log,ji=Math.LN2,Hi=b,Ai=Ut,zi=lt,qi=function(e){for(var t=Hi(this),n=zi(t.length),r=arguments.length,i=Ai(r>1?arguments[1]:void 0,n),a=r>2?arguments[2]:void 0,o=void 0===a?n:Ai(a,n);o>i;)t[i++]=e;return t},ea=i,ta=l,na=xi,ra=ee,ia=Gi,aa=o,oa=Xi,la=it,da=lt,ca=wi,sa={pack:function(e,t,n){var r,i,a,o=new Array(n),l=8*n-t-1,d=(1<<l)-1,c=d>>1,s=23===t?$i(2,-24)-$i(2,-77):0,U=e<0||0===e&&1/e<0?1:0,F=0;for((e=Oi(e))!=e||e===1/0?(i=e!=e?1:0,r=d):(r=Yi(Ki(e)/ji),e*(a=$i(2,-r))<1&&(r--,a*=2),(e+=r+c>=1?s/a:s*$i(2,1-c))*a>=2&&(r++,a/=2),r+c>=d?(i=0,r=d):r+c>=1?(i=(e*a-1)*$i(2,t),r+=c):(i=e*$i(2,c-1)*$i(2,t),r=0));t>=8;o[F++]=255&i,i/=256,t-=8);for(r=r<<t|i,l+=t;l>0;o[F++]=255&r,r/=256,l-=8);return o[--F]|=128*U,o},unpack:function(e,t){var n,r=e.length,i=8*r-t-1,a=(1<<i)-1,o=a>>1,l=i-7,d=r-1,c=e[d--],s=127&c;for(c>>=7;l>0;s=256*s+e[d],d--,l-=8);for(n=s&(1<<-l)-1,s>>=-l,l+=t;l>0;n=256*n+e[d],d--,l-=8);if(0===s)s=1-o;else{if(s===a)return n?NaN:c?-1/0:1/0;n+=$i(2,t),s-=o}return(c?-1:1)*n*$i(2,s-t)}},Ua=Or,Fa=Fi,ua=tt.f,Qa=w.f,Ra=qi,ha=ni,pa=Xe.get,Ba=Xe.set,Sa="ArrayBuffer",fa="DataView",ma="prototype",Va="Wrong index",ya=ea[Sa],Ea=ya,Za=ea[fa],ba=Za&&Za[ma],Ja=Object.prototype,va=ea.RangeError,ga=sa.pack,Ta=sa.unpack,Wa=function(e){return[255&e]},ka=function(e){return[255&e,e>>8&255]},Na=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},Ca=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},Ia=function(e){return ga(e,23,4)},La=function(e){return ga(e,52,8)},_a=function(e,t){Qa(e[ma],t,{get:function(){return pa(this)[t]}})},xa=function(e,t,n,r){var i=ca(n),a=pa(e);if(i+t>a.byteLength)throw va(Va);var o=pa(a.buffer).bytes,l=i+a.byteOffset,d=o.slice(l,l+t);return r?d:d.reverse()},Da=function(e,t,n,r,i,a){var o=ca(n),l=pa(e);if(o+t>l.byteLength)throw va(Va);for(var d=pa(l.buffer).bytes,c=o+l.byteOffset,s=r(+i),U=0;U<t;U++)d[c+U]=s[a?U:t-U-1]};if(na){if(!aa((function(){ya(1)}))||!aa((function(){new ya(-1)}))||aa((function(){return new ya,new ya(1.5),new ya(NaN),ya.name!=Sa}))){for(var Ga,Xa=(Ea=function(e){return oa(this,Ea),new ya(ca(e))})[ma]=ya[ma],Ma=ua(ya),Pa=0;Ma.length>Pa;)(Ga=Ma[Pa++])in Ea||ra(Ea,Ga,ya[Ga]);Xa.constructor=Ea}Fa&&Ua(ba)!==Ja&&Fa(ba,Ja);var wa=new Za(new Ea(2)),Oa=ba.setInt8;wa.setInt8(0,2147483648),wa.setInt8(1,2147483649),!wa.getInt8(0)&&wa.getInt8(1)||ia(ba,{setInt8:function(e,t){Oa.call(this,e,t<<24>>24)},setUint8:function(e,t){Oa.call(this,e,t<<24>>24)}},{unsafe:!0})}else Ea=function(e){oa(this,Ea,Sa);var t=ca(e);Ba(this,{bytes:Ra.call(new Array(t),0),byteLength:t}),ta||(this.byteLength=t)},Za=function(e,t,n){oa(this,Za,fa),oa(e,Ea,fa);var r=pa(e).byteLength,i=la(t);if(i<0||i>r)throw va("Wrong offset");if(i+(n=void 0===n?r-i:da(n))>r)throw va("Wrong length");Ba(this,{buffer:e,byteLength:n,byteOffset:i}),ta||(this.buffer=e,this.byteLength=n,this.byteOffset=i)},ta&&(_a(Ea,"byteLength"),_a(Za,"buffer"),_a(Za,"byteLength"),_a(Za,"byteOffset")),ia(Za[ma],{getInt8:function(e){return xa(this,1,e)[0]<<24>>24},getUint8:function(e){return xa(this,1,e)[0]},getInt16:function(e){var t=xa(this,2,e,arguments.length>1?arguments[1]:void 0);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=xa(this,2,e,arguments.length>1?arguments[1]:void 0);return t[1]<<8|t[0]},getInt32:function(e){return Ca(xa(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return Ca(xa(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return Ta(xa(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return Ta(xa(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,t){Da(this,1,e,Wa,t)},setUint8:function(e,t){Da(this,1,e,Wa,t)},setInt16:function(e,t){Da(this,2,e,ka,t,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,t){Da(this,2,e,ka,t,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,t){Da(this,4,e,Na,t,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,t){Da(this,4,e,Na,t,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,t){Da(this,4,e,Ia,t,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,t){Da(this,8,e,La,t,arguments.length>2?arguments[2]:void 0)}});ha(Ea,Sa),ha(Za,fa);var $a={ArrayBuffer:Ea,DataView:Za},Ya=et,Ka=w,ja=l,Ha=xn("species"),Aa=function(e){var t=Ya(e),n=Ka.f;ja&&t&&!t[Ha]&&n(t,Ha,{configurable:!0,get:function(){return this}})},za=Aa,qa="ArrayBuffer",eo=$a[qa];jt({global:!0,forced:i[qa]!==eo},{ArrayBuffer:eo}),za(qa);var to=b,no=Fr;jt({target:"Object",stat:!0,forced:o((function(){no(1)}))},{keys:function(e){return no(to(e))}});var ro={};ro[xn("toStringTag")]="z";var io="[object z]"===String(ro),ao=io,oo=Q,lo=xn("toStringTag"),co="Arguments"==oo(function(){return arguments}()),so=ao?oo:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),lo))?n:co?oo(t):"Object"==(r=oo(t))&&"function"==typeof t.callee?"Arguments":r},Uo=so,Fo=io?{}.toString:function(){return"[object "+Uo(this)+"]"};io||He(Object.prototype,"toString",Fo,{unsafe:!0});var uo=i.Promise,Qo=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e},Ro=xr,ho=xn("iterator"),po=Array.prototype,Bo=function(e){return void 0!==e&&(Ro.Array===e||po[ho]===e)},So=Qo,fo=function(e,t,n){if(So(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}},mo=so,Vo=xr,yo=xn("iterator"),Eo=function(e){if(null!=e)return e[yo]||e["@@iterator"]||Vo[mo(e)]},Zo=$,bo=$,Jo=Bo,vo=lt,go=fo,To=Eo,Wo=function(e){var t=e.return;if(void 0!==t)return Zo(t.call(e)).value},ko=function(e,t){this.stopped=e,this.result=t},No=function(e,t,n){var r,i,a,o,l,d,c,s=n&&n.that,U=!(!n||!n.AS_ENTRIES),F=!(!n||!n.IS_ITERATOR),u=!(!n||!n.INTERRUPTED),Q=go(t,s,1+U+u),R=function(e){return r&&Wo(r),new ko(!0,e)},h=function(e){return U?(bo(e),u?Q(e[0],e[1],R):Q(e[0],e[1])):u?Q(e,R):Q(e)};if(F)r=e;else{if("function"!=typeof(i=To(e)))throw TypeError("Target is not iterable");if(Jo(i)){for(a=0,o=vo(e.length);o>a;a++)if((l=h(e[a]))&&l instanceof ko)return l;return new ko(!1)}r=i.call(e)}for(d=r.next;!(c=d.call(r)).done;){try{l=h(c.value)}catch(e){throw Wo(r),e}if("object"==typeof l&&l&&l instanceof ko)return l}return new ko(!1)},Co=xn("iterator"),Io=!1;try{var Lo=0,_o={next:function(){return{done:!!Lo++}},return:function(){Io=!0}};_o[Co]=function(){return this},Array.from(_o,(function(){throw 2}))}catch(e){}var xo,Do,Go,Xo=function(e,t){if(!t&&!Io)return!1;var n=!1;try{var r={};r[Co]=function(){return{next:function(){return{done:n=!0}}}},e(r)}catch(e){}return n},Mo=$,Po=Qo,wo=xn("species"),Oo=function(e,t){var n,r=Mo(e).constructor;return void 0===r||null==(n=Mo(r)[wo])?t:Po(n)},$o=/(?:iphone|ipod|ipad).*applewebkit/i.test(fn),Yo="process"==Q(i.process),Ko=i,jo=o,Ho=fo,Ao=pr,zo=N,qo=$o,el=Yo,tl=Ko.location,nl=Ko.setImmediate,rl=Ko.clearImmediate,il=Ko.process,al=Ko.MessageChannel,ol=Ko.Dispatch,ll=0,dl={},cl="onreadystatechange",sl=function(e){if(dl.hasOwnProperty(e)){var t=dl[e];delete dl[e],t()}},Ul=function(e){return function(){sl(e)}},Fl=function(e){sl(e.data)},ul=function(e){Ko.postMessage(e+"",tl.protocol+"//"+tl.host)};nl&&rl||(nl=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return dl[++ll]=function(){("function"==typeof e?e:Function(e)).apply(void 0,t)},xo(ll),ll},rl=function(e){delete dl[e]},el?xo=function(e){il.nextTick(Ul(e))}:ol&&ol.now?xo=function(e){ol.now(Ul(e))}:al&&!qo?(Go=(Do=new al).port2,Do.port1.onmessage=Fl,xo=Ho(Go.postMessage,Go,1)):Ko.addEventListener&&"function"==typeof postMessage&&!Ko.importScripts&&tl&&"file:"!==tl.protocol&&!jo(ul)?(xo=ul,Ko.addEventListener("message",Fl,!1)):xo=cl in zo("script")?function(e){Ao.appendChild(zo("script"))[cl]=function(){Ao.removeChild(this),sl(e)}}:function(e){setTimeout(Ul(e),0)});var Ql,Rl,hl,pl,Bl,Sl,fl,ml,Vl={set:nl,clear:rl},yl=/web0s(?!.*chrome)/i.test(fn),El=i,Zl=a.f,bl=Vl.set,Jl=$o,vl=yl,gl=Yo,Tl=El.MutationObserver||El.WebKitMutationObserver,Wl=El.document,kl=El.process,Nl=El.Promise,Cl=Zl(El,"queueMicrotask"),Il=Cl&&Cl.value;Il||(Ql=function(){var e,t;for(gl&&(e=kl.domain)&&e.exit();Rl;){t=Rl.fn,Rl=Rl.next;try{t()}catch(e){throw Rl?pl():hl=void 0,e}}hl=void 0,e&&e.enter()},Jl||gl||vl||!Tl||!Wl?Nl&&Nl.resolve?((fl=Nl.resolve(void 0)).constructor=Nl,ml=fl.then,pl=function(){ml.call(fl,Ql)}):pl=gl?function(){kl.nextTick(Ql)}:function(){bl.call(El,Ql)}:(Bl=!0,Sl=Wl.createTextNode(""),new Tl(Ql).observe(Sl,{characterData:!0}),pl=function(){Sl.data=Bl=!Bl}));var Ll=Il||function(e){var t={fn:e,next:void 0};hl&&(hl.next=t),Rl||(Rl=t,pl()),hl=t},_l={},xl=Qo,Dl=function(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=xl(t),this.reject=xl(n)};_l.f=function(e){return new Dl(e)};var Gl,Xl,Ml,Pl,wl=$,Ol=V,$l=_l,Yl=i,Kl="object"==typeof window,jl=jt,Hl=i,Al=et,zl=uo,ql=He,ed=Gi,td=Fi,nd=ni,rd=Aa,id=V,ad=Qo,od=Xi,ld=se,dd=No,cd=Xo,sd=Oo,Ud=Vl.set,Fd=Ll,ud=function(e,t){if(wl(e),Ol(t)&&t.constructor===e)return t;var n=$l.f(e);return(0,n.resolve)(t),n.promise},Qd=function(e,t){var n=Yl.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))},Rd=_l,hd=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}},pd=Xe,Bd=Xt,Sd=Kl,fd=Yo,md=Zn,Vd=xn("species"),yd="Promise",Ed=pd.get,Zd=pd.set,bd=pd.getterFor(yd),Jd=zl&&zl.prototype,vd=zl,gd=Jd,Td=Hl.TypeError,Wd=Hl.document,kd=Hl.process,Nd=Rd.f,Cd=Nd,Id=!!(Wd&&Wd.createEvent&&Hl.dispatchEvent),Ld="function"==typeof PromiseRejectionEvent,_d="unhandledrejection",xd=!1,Dd=Bd(yd,(function(){var e=ld(vd)!==String(vd);if(!e&&66===md)return!0;if(md>=51&&/native code/.test(vd))return!1;var t=new vd((function(e){e(1)})),n=function(e){e((function(){}),(function(){}))};return(t.constructor={})[Vd]=n,!(xd=t.then((function(){}))instanceof n)||!e&&Sd&&!Ld})),Gd=Dd||!cd((function(e){vd.all(e).catch((function(){}))})),Xd=function(e){var t;return!(!id(e)||"function"!=typeof(t=e.then))&&t},Md=function(e,t){if(!e.notified){e.notified=!0;var n=e.reactions;Fd((function(){for(var r=e.value,i=1==e.state,a=0;n.length>a;){var o,l,d,c=n[a++],s=i?c.ok:c.fail,U=c.resolve,F=c.reject,u=c.domain;try{s?(i||(2===e.rejection&&$d(e),e.rejection=1),!0===s?o=r:(u&&u.enter(),o=s(r),u&&(u.exit(),d=!0)),o===c.promise?F(Td("Promise-chain cycle")):(l=Xd(o))?l.call(o,U,F):U(o)):F(r)}catch(e){u&&!d&&u.exit(),F(e)}}e.reactions=[],e.notified=!1,t&&!e.rejection&&wd(e)}))}},Pd=function(e,t,n){var r,i;Id?((r=Wd.createEvent("Event")).promise=t,r.reason=n,r.initEvent(e,!1,!0),Hl.dispatchEvent(r)):r={promise:t,reason:n},!Ld&&(i=Hl["on"+e])?i(r):e===_d&&Qd("Unhandled promise rejection",n)},wd=function(e){Ud.call(Hl,(function(){var t,n=e.facade,r=e.value;if(Od(e)&&(t=hd((function(){fd?kd.emit("unhandledRejection",r,n):Pd(_d,n,r)})),e.rejection=fd||Od(e)?2:1,t.error))throw t.value}))},Od=function(e){return 1!==e.rejection&&!e.parent},$d=function(e){Ud.call(Hl,(function(){var t=e.facade;fd?kd.emit("rejectionHandled",t):Pd("rejectionhandled",t,e.value)}))},Yd=function(e,t,n){return function(r){e(t,r,n)}},Kd=function(e,t,n){e.done||(e.done=!0,n&&(e=n),e.value=t,e.state=2,Md(e,!0))},jd=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw Td("Promise can't be resolved itself");var r=Xd(t);r?Fd((function(){var n={done:!1};try{r.call(t,Yd(jd,n,e),Yd(Kd,n,e))}catch(t){Kd(n,t,e)}})):(e.value=t,e.state=1,Md(e,!1))}catch(t){Kd({done:!1},t,e)}}};if(Dd&&(gd=(vd=function(e){od(this,vd,yd),ad(e),Gl.call(this);var t=Ed(this);try{e(Yd(jd,t),Yd(Kd,t))}catch(e){Kd(t,e)}}).prototype,(Gl=function(e){Zd(this,{type:yd,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=ed(gd,{then:function(e,t){var n=bd(this),r=Nd(sd(this,vd));return r.ok="function"!=typeof e||e,r.fail="function"==typeof t&&t,r.domain=fd?kd.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&Md(n,!1),r.promise},catch:function(e){return this.then(void 0,e)}}),Xl=function(){var e=new Gl,t=Ed(e);this.promise=e,this.resolve=Yd(jd,t),this.reject=Yd(Kd,t)},Rd.f=Nd=function(e){return e===vd||e===Ml?new Xl(e):Cd(e)},"function"==typeof zl&&Jd!==Object.prototype)){Pl=Jd.then,xd||(ql(Jd,"then",(function(e,t){var n=this;return new vd((function(e,t){Pl.call(n,e,t)})).then(e,t)}),{unsafe:!0}),ql(Jd,"catch",gd.catch,{unsafe:!0}));try{delete Jd.constructor}catch(e){}td&&td(Jd,gd)}jl({global:!0,wrap:!0,forced:Dd},{Promise:vd}),nd(vd,yd,!1),rd(yd),Ml=Al(yd),jl({target:yd,stat:!0,forced:Dd},{reject:function(e){var t=Nd(this);return t.reject.call(void 0,e),t.promise}}),jl({target:yd,stat:!0,forced:Dd},{resolve:function(e){return ud(this,e)}}),jl({target:yd,stat:!0,forced:Gd},{all:function(e){var t=this,n=Nd(t),r=n.resolve,i=n.reject,a=hd((function(){var n=ad(t.resolve),a=[],o=0,l=1;dd(e,(function(e){var d=o++,c=!1;a.push(void 0),l++,n.call(t,e).then((function(e){c||(c=!0,a[d]=e,--l||r(a))}),i)})),--l||r(a)}));return a.error&&i(a.value),n.promise},race:function(e){var t=this,n=Nd(t),r=n.reject,i=hd((function(){var i=ad(t.resolve);dd(e,(function(e){i.call(t,e).then(n.resolve,r)}))}));return i.error&&r(i.value),n.promise}});var Hd=$,Ad=function(){var e=Hd(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t},zd=He,qd=$,ec=o,tc=Ad,nc="toString",rc=RegExp.prototype,ic=rc[nc],ac=ec((function(){return"/a/b"!=ic.call({source:"a",flags:"b"})})),oc=ic.name!=nc;(ac||oc)&&zd(RegExp.prototype,nc,(function(){var e=qd(this),t=String(e.source),n=e.flags;return"/"+t+"/"+String(void 0===n&&e instanceof RegExp&&!("flags"in rc)?tc.call(e):n)}),{unsafe:!0});var lc,dc={exports:{}},cc=xi,sc=l,Uc=i,Fc=V,uc=g,Qc=so,Rc=ee,hc=He,pc=w.f,Bc=Or,Sc=Fi,fc=xn,mc=Ve,Vc=Uc.Int8Array,yc=Vc&&Vc.prototype,Ec=Uc.Uint8ClampedArray,Zc=Ec&&Ec.prototype,bc=Vc&&Bc(Vc),Jc=yc&&Bc(yc),vc=Object.prototype,gc=vc.isPrototypeOf,Tc=fc("toStringTag"),Wc=mc("TYPED_ARRAY_TAG"),kc=cc&&!!Sc&&"Opera"!==Qc(Uc.opera),Nc=!1,Cc={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},Ic={BigInt64Array:8,BigUint64Array:8},Lc=function(e){if(!Fc(e))return!1;var t=Qc(e);return uc(Cc,t)||uc(Ic,t)};for(lc in Cc)Uc[lc]||(kc=!1);if((!kc||"function"!=typeof bc||bc===Function.prototype)&&(bc=function(){throw TypeError("Incorrect invocation")},kc))for(lc in Cc)Uc[lc]&&Sc(Uc[lc],bc);if((!kc||!Jc||Jc===vc)&&(Jc=bc.prototype,kc))for(lc in Cc)Uc[lc]&&Sc(Uc[lc].prototype,Jc);if(kc&&Bc(Zc)!==Jc&&Sc(Zc,Jc),sc&&!uc(Jc,Tc))for(lc in Nc=!0,pc(Jc,Tc,{get:function(){return Fc(this)?this[Wc]:void 0}}),Cc)Uc[lc]&&Rc(Uc[lc],Wc,lc);var _c={NATIVE_ARRAY_BUFFER_VIEWS:kc,TYPED_ARRAY_TAG:Nc&&Wc,aTypedArray:function(e){if(Lc(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(Sc){if(gc.call(bc,e))return e}else for(var t in Cc)if(uc(Cc,lc)){var n=Uc[t];if(n&&(e===n||gc.call(n,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n){if(sc){if(n)for(var r in Cc){var i=Uc[r];if(i&&uc(i.prototype,e))try{delete i.prototype[e]}catch(e){}}Jc[e]&&!n||hc(Jc,e,n?t:kc&&yc[e]||t)}},exportTypedArrayStaticMethod:function(e,t,n){var r,i;if(sc){if(Sc){if(n)for(r in Cc)if((i=Uc[r])&&uc(i,e))try{delete i[e]}catch(e){}if(bc[e]&&!n)return;try{return hc(bc,e,n?t:kc&&bc[e]||t)}catch(e){}}for(r in Cc)!(i=Uc[r])||i[e]&&!n||hc(i,e,t)}},isView:function(e){if(!Fc(e))return!1;var t=Qc(e);return"DataView"===t||uc(Cc,t)||uc(Ic,t)},isTypedArray:Lc,TypedArray:bc,TypedArrayPrototype:Jc},xc=i,Dc=o,Gc=Xo,Xc=_c.NATIVE_ARRAY_BUFFER_VIEWS,Mc=xc.ArrayBuffer,Pc=xc.Int8Array,wc=!Xc||!Dc((function(){Pc(1)}))||!Dc((function(){new Pc(-1)}))||!Gc((function(e){new Pc,new Pc(null),new Pc(1.5),new Pc(e)}),!0)||Dc((function(){return 1!==new Pc(new Mc(2),1,void 0).length})),Oc=it,$c=function(e){var t=Oc(e);if(t<0)throw RangeError("The argument can't be less than 0");return t},Yc=function(e,t){var n=$c(e);if(n%t)throw RangeError("Wrong offset");return n},Kc=b,jc=lt,Hc=Eo,Ac=Bo,zc=fo,qc=_c.aTypedArrayConstructor,es=fo,ts=p,ns=b,rs=lt,is=Mn,as=[].push,os=function(e){var t=1==e,n=2==e,r=3==e,i=4==e,a=6==e,o=7==e,l=5==e||a;return function(d,c,s,U){for(var F,u,Q=ns(d),R=ts(Q),h=es(c,s,3),p=rs(R.length),B=0,S=U||is,f=t?S(d,p):n||o?S(d,0):void 0;p>B;B++)if((l||B in R)&&(u=h(F=R[B],B,Q),e))if(t)f[B]=u;else if(u)switch(e){case 3:return!0;case 5:return F;case 6:return B;case 2:as.call(f,F)}else switch(e){case 4:return!1;case 7:as.call(f,F)}return a?-1:r||i?i:f}},ls={forEach:os(0),map:os(1),filter:os(2),some:os(3),every:os(4),find:os(5),findIndex:os(6),filterOut:os(7)},ds=V,cs=Fi,ss=function(e,t,n){var r,i;return cs&&"function"==typeof(r=t.constructor)&&r!==n&&ds(i=r.prototype)&&i!==n.prototype&&cs(e,i),e},Us=jt,Fs=i,us=l,Qs=wc,Rs=_c,hs=$a,ps=Xi,Bs=F,Ss=ee,fs=lt,ms=wi,Vs=Yc,ys=E,Es=g,Zs=so,bs=V,Js=Tr,vs=Fi,gs=tt.f,Ts=function(e){var t,n,r,i,a,o,l=Kc(e),d=arguments.length,c=d>1?arguments[1]:void 0,s=void 0!==c,U=Hc(l);if(null!=U&&!Ac(U))for(o=(a=U.call(l)).next,l=[];!(i=o.call(a)).done;)l.push(i.value);for(s&&d>2&&(c=zc(c,arguments[2],2)),n=jc(l.length),r=new(qc(this))(n),t=0;n>t;t++)r[t]=s?c(l[t],t):l[t];return r},Ws=ls.forEach,ks=Aa,Ns=w,Cs=a,Is=ss,Ls=Xe.get,_s=Xe.set,xs=Ns.f,Ds=Cs.f,Gs=Math.round,Xs=Fs.RangeError,Ms=hs.ArrayBuffer,Ps=hs.DataView,ws=Rs.NATIVE_ARRAY_BUFFER_VIEWS,Os=Rs.TYPED_ARRAY_TAG,$s=Rs.TypedArray,Ys=Rs.TypedArrayPrototype,Ks=Rs.aTypedArrayConstructor,js=Rs.isTypedArray,Hs="BYTES_PER_ELEMENT",As="Wrong length",zs=function(e,t){for(var n=0,r=t.length,i=new(Ks(e))(r);r>n;)i[n]=t[n++];return i},qs=function(e,t){xs(e,t,{get:function(){return Ls(this)[t]}})},eU=function(e){var t;return e instanceof Ms||"ArrayBuffer"==(t=Zs(e))||"SharedArrayBuffer"==t},tU=function(e,t){return js(e)&&"symbol"!=typeof t&&t in e&&String(+t)==String(t)},nU=function(e,t){return tU(e,t=ys(t,!0))?Bs(2,e[t]):Ds(e,t)},rU=function(e,t,n){return!(tU(e,t=ys(t,!0))&&bs(n)&&Es(n,"value"))||Es(n,"get")||Es(n,"set")||n.configurable||Es(n,"writable")&&!n.writable||Es(n,"enumerable")&&!n.enumerable?xs(e,t,n):(e[t]=n.value,e)};us?(ws||(Cs.f=nU,Ns.f=rU,qs(Ys,"buffer"),qs(Ys,"byteOffset"),qs(Ys,"byteLength"),qs(Ys,"length")),Us({target:"Object",stat:!0,forced:!ws},{getOwnPropertyDescriptor:nU,defineProperty:rU}),dc.exports=function(e,t,n){var r=e.match(/\d+$/)[0]/8,i=e+(n?"Clamped":"")+"Array",a="get"+e,o="set"+e,l=Fs[i],d=l,c=d&&d.prototype,s={},U=function(e,t){xs(e,t,{get:function(){return e=t,(n=Ls(this)).view[a](e*r+n.byteOffset,!0);var e,n},set:function(e){return i=t,a=e,l=Ls(this),n&&(a=(a=Gs(a))<0?0:a>255?255:255&a),void l.view[o](i*r+l.byteOffset,a,!0);var i,a,l},enumerable:!0})};ws?Qs&&(d=t((function(e,t,n,a){return ps(e,d,i),Is(bs(t)?eU(t)?void 0!==a?new l(t,Vs(n,r),a):void 0!==n?new l(t,Vs(n,r)):new l(t):js(t)?zs(d,t):Ts.call(d,t):new l(ms(t)),e,d)})),vs&&vs(d,$s),Ws(gs(l),(function(e){e in d||Ss(d,e,l[e])})),d.prototype=c):(d=t((function(e,t,n,a){ps(e,d,i);var o,l,c,s=0,F=0;if(bs(t)){if(!eU(t))return js(t)?zs(d,t):Ts.call(d,t);o=t,F=Vs(n,r);var u=t.byteLength;if(void 0===a){if(u%r)throw Xs(As);if((l=u-F)<0)throw Xs(As)}else if((l=fs(a)*r)+F>u)throw Xs(As);c=l/r}else c=ms(t),o=new Ms(l=c*r);for(_s(e,{buffer:o,byteOffset:F,byteLength:l,length:c,view:new Ps(o)});s<c;)U(e,s++)})),vs&&vs(d,$s),c=d.prototype=Js(Ys)),c.constructor!==d&&Ss(c,"constructor",d),Os&&Ss(c,Os,i),s[i]=d,Us({global:!0,forced:d!=l,sham:!ws},s),Hs in d||Ss(d,Hs,r),Hs in c||Ss(c,Hs,r),ks(i)}):dc.exports=function(){};var iU=dc.exports;iU("Uint8",(function(e){return function(t,n,r){return e(this,t,n,r)}})),iU("Uint16",(function(e){return function(t,n,r){return e(this,t,n,r)}}));var aU=b,oU=Ut,lU=lt,dU=Math.min,cU=[].copyWithin||function(e,t){var n=aU(this),r=lU(n.length),i=oU(e,r),a=oU(t,r),o=arguments.length>2?arguments[2]:void 0,l=dU((void 0===o?r:oU(o,r))-a,r-i),d=1;for(a<i&&i<a+l&&(d=-1,a+=l-1,i+=l-1);l-- >0;)a in n?n[i]=n[a]:delete n[i],i+=d,a+=d;return n},sU=cU,UU=_c.aTypedArray;(0,_c.exportTypedArrayMethod)("copyWithin",(function(e,t){return sU.call(UU(this),e,t,arguments.length>2?arguments[2]:void 0)}));var FU=ls.every,uU=_c.aTypedArray;(0,_c.exportTypedArrayMethod)("every",(function(e){return FU(uU(this),e,arguments.length>1?arguments[1]:void 0)}));var QU=qi,RU=_c.aTypedArray;(0,_c.exportTypedArrayMethod)("fill",(function(e){return QU.apply(RU(this),arguments)}));var hU=_c.aTypedArrayConstructor,pU=Oo,BU=ls.filter,SU=function(e,t){for(var n=pU(e,e.constructor),r=0,i=t.length,a=new(hU(n))(i);i>r;)a[r]=t[r++];return a},fU=_c.aTypedArray;(0,_c.exportTypedArrayMethod)("filter",(function(e){var t=BU(fU(this),e,arguments.length>1?arguments[1]:void 0);return SU(this,t)}));var mU=ls.find,VU=_c.aTypedArray;(0,_c.exportTypedArrayMethod)("find",(function(e){return mU(VU(this),e,arguments.length>1?arguments[1]:void 0)}));var yU=ls.findIndex,EU=_c.aTypedArray;(0,_c.exportTypedArrayMethod)("findIndex",(function(e){return yU(EU(this),e,arguments.length>1?arguments[1]:void 0)}));var ZU=ls.forEach,bU=_c.aTypedArray;(0,_c.exportTypedArrayMethod)("forEach",(function(e){ZU(bU(this),e,arguments.length>1?arguments[1]:void 0)}));var JU=ht.includes,vU=_c.aTypedArray;(0,_c.exportTypedArrayMethod)("includes",(function(e){return JU(vU(this),e,arguments.length>1?arguments[1]:void 0)}));var gU=ht.indexOf,TU=_c.aTypedArray;(0,_c.exportTypedArrayMethod)("indexOf",(function(e){return gU(TU(this),e,arguments.length>1?arguments[1]:void 0)}));var WU=i,kU=_c,NU=_i,CU=xn("iterator"),IU=WU.Uint8Array,LU=NU.values,_U=NU.keys,xU=NU.entries,DU=kU.aTypedArray,GU=kU.exportTypedArrayMethod,XU=IU&&IU.prototype[CU],MU=!!XU&&("values"==XU.name||null==XU.name),PU=function(){return LU.call(DU(this))};GU("entries",(function(){return xU.call(DU(this))})),GU("keys",(function(){return _U.call(DU(this))})),GU("values",PU,!MU),GU(CU,PU,!MU);var wU=_c.aTypedArray,OU=[].join;(0,_c.exportTypedArrayMethod)("join",(function(e){return OU.apply(wU(this),arguments)}));var $U=o,YU=function(e,t){var n=[][e];return!!n&&$U((function(){n.call(null,t||function(){throw 1},1)}))},KU=m,jU=it,HU=lt,AU=YU,zU=Math.min,qU=[].lastIndexOf,eF=!!qU&&1/[1].lastIndexOf(1,-0)<0,tF=AU("lastIndexOf"),nF=eF||!tF?function(e){if(eF)return qU.apply(this,arguments)||0;var t=KU(this),n=HU(t.length),r=n-1;for(arguments.length>1&&(r=zU(r,jU(arguments[1]))),r<0&&(r=n+r);r>=0;r--)if(r in t&&t[r]===e)return r||0;return-1}:qU,rF=nF,iF=_c.aTypedArray;(0,_c.exportTypedArrayMethod)("lastIndexOf",(function(e){return rF.apply(iF(this),arguments)}));var aF=ls.map,oF=Oo,lF=_c.aTypedArray,dF=_c.aTypedArrayConstructor;(0,_c.exportTypedArrayMethod)("map",(function(e){return aF(lF(this),e,arguments.length>1?arguments[1]:void 0,(function(e,t){return new(dF(oF(e,e.constructor)))(t)}))}));var cF=Qo,sF=b,UF=p,FF=lt,uF=function(e){return function(t,n,r,i){cF(n);var a=sF(t),o=UF(a),l=FF(a.length),d=e?l-1:0,c=e?-1:1;if(r<2)for(;;){if(d in o){i=o[d],d+=c;break}if(d+=c,e?d<0:l<=d)throw TypeError("Reduce of empty array with no initial value")}for(;e?d>=0:l>d;d+=c)d in o&&(i=n(i,o[d],d,a));return i}},QF={left:uF(!1),right:uF(!0)},RF=QF.left,hF=_c.aTypedArray;(0,_c.exportTypedArrayMethod)("reduce",(function(e){return RF(hF(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var pF=QF.right,BF=_c.aTypedArray;(0,_c.exportTypedArrayMethod)("reduceRight",(function(e){return pF(BF(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var SF=_c.aTypedArray,fF=_c.exportTypedArrayMethod,mF=Math.floor;fF("reverse",(function(){for(var e,t=this,n=SF(t).length,r=mF(n/2),i=0;i<r;)e=t[i],t[i++]=t[--n],t[n]=e;return t}));var VF=lt,yF=Yc,EF=b,ZF=_c.aTypedArray;(0,_c.exportTypedArrayMethod)("set",(function(e){ZF(this);var t=yF(arguments.length>1?arguments[1]:void 0,1),n=this.length,r=EF(e),i=VF(r.length),a=0;if(i+t>n)throw RangeError("Wrong length");for(;a<i;)this[t+a]=r[a++]}),o((function(){new Int8Array(1).set({})})));var bF=Oo,JF=_c.aTypedArray,vF=_c.aTypedArrayConstructor,gF=[].slice;(0,_c.exportTypedArrayMethod)("slice",(function(e,t){for(var n=gF.call(JF(this),e,t),r=bF(this,this.constructor),i=0,a=n.length,o=new(vF(r))(a);a>i;)o[i]=n[i++];return o}),o((function(){new Int8Array(1).slice()})));var TF=ls.some,WF=_c.aTypedArray;(0,_c.exportTypedArrayMethod)("some",(function(e){return TF(WF(this),e,arguments.length>1?arguments[1]:void 0)}));var kF=_c.aTypedArray,NF=[].sort;(0,_c.exportTypedArrayMethod)("sort",(function(e){return NF.call(kF(this),e)}));var CF=lt,IF=Ut,LF=Oo,_F=_c.aTypedArray;(0,_c.exportTypedArrayMethod)("subarray",(function(e,t){var n=_F(this),r=n.length,i=IF(e,r);return new(LF(n,n.constructor))(n.buffer,n.byteOffset+i*n.BYTES_PER_ELEMENT,CF((void 0===t?r:IF(t,r))-i))}));var xF=_c,DF=o,GF=i.Int8Array,XF=xF.aTypedArray,MF=xF.exportTypedArrayMethod,PF=[].toLocaleString,wF=[].slice,OF=!!GF&&DF((function(){PF.call(new GF(1))}));MF("toLocaleString",(function(){return PF.apply(OF?wF.call(XF(this)):XF(this),arguments)}),DF((function(){return[1,2].toLocaleString()!=new GF([1,2]).toLocaleString()}))||!DF((function(){GF.prototype.toLocaleString.call([1,2])})));var $F=_c.exportTypedArrayMethod,YF=o,KF=i.Uint8Array,jF=KF&&KF.prototype||{},HF=[].toString,AF=[].join;YF((function(){HF.call({})}))&&(HF=function(){return AF.call(this)});var zF=jF.toString!=HF;$F("toString",HF,zF);var qF={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},eu=ls.forEach,tu=YU("forEach")?[].forEach:function(e){return eu(this,e,arguments.length>1?arguments[1]:void 0)},nu=i,ru=qF,iu=tu,au=ee;for(var ou in ru){var lu=nu[ou],du=lu&&lu.prototype;if(du&&du.forEach!==iu)try{au(du,"forEach",iu)}catch(e){du.forEach=iu}}var cu=i,su=qF,Uu=_i,Fu=ee,uu=xn,Qu=uu("iterator"),Ru=uu("toStringTag"),hu=Uu.values;for(var pu in su){var Bu=cu[pu],Su=Bu&&Bu.prototype;if(Su){if(Su[Qu]!==hu)try{Fu(Su,Qu,hu)}catch(e){Su[Qu]=hu}if(Su[Ru]||Fu(Su,Ru,pu),su[pu])for(var fu in Uu)if(Su[fu]!==Uu[fu])try{Fu(Su,fu,Uu[fu])}catch(e){Su[fu]=Uu[fu]}}}var mu={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function i(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function a(e,t,r,a,o){if("function"!=typeof r)throw new TypeError("The listener must be a function");var l=new i(r,a||e,o),d=n?n+t:t;return e._events[d]?e._events[d].fn?e._events[d]=[e._events[d],l]:e._events[d].push(l):(e._events[d]=l,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function l(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),l.prototype.eventNames=function(){var e,r,i=[];if(0===this._eventsCount)return i;for(r in e=this._events)t.call(e,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},l.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,a=r.length,o=new Array(a);i<a;i++)o[i]=r[i].fn;return o},l.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},l.prototype.emit=function(e,t,r,i,a,o){var l=n?n+e:e;if(!this._events[l])return!1;var d,c,s=this._events[l],U=arguments.length;if(s.fn){switch(s.once&&this.removeListener(e,s.fn,void 0,!0),U){case 1:return s.fn.call(s.context),!0;case 2:return s.fn.call(s.context,t),!0;case 3:return s.fn.call(s.context,t,r),!0;case 4:return s.fn.call(s.context,t,r,i),!0;case 5:return s.fn.call(s.context,t,r,i,a),!0;case 6:return s.fn.call(s.context,t,r,i,a,o),!0}for(c=1,d=new Array(U-1);c<U;c++)d[c-1]=arguments[c];s.fn.apply(s.context,d)}else{var F,u=s.length;for(c=0;c<u;c++)switch(s[c].once&&this.removeListener(e,s[c].fn,void 0,!0),U){case 1:s[c].fn.call(s[c].context);break;case 2:s[c].fn.call(s[c].context,t);break;case 3:s[c].fn.call(s[c].context,t,r);break;case 4:s[c].fn.call(s[c].context,t,r,i);break;default:if(!d)for(F=1,d=new Array(U-1);F<U;F++)d[F-1]=arguments[F];s[c].fn.apply(s[c].context,d)}}return!0},l.prototype.on=function(e,t,n){return a(this,e,t,n,!1)},l.prototype.once=function(e,t,n){return a(this,e,t,n,!0)},l.prototype.removeListener=function(e,t,r,i){var a=n?n+e:e;if(!this._events[a])return this;if(!t)return o(this,a),this;var l=this._events[a];if(l.fn)l.fn!==t||i&&!l.once||r&&l.context!==r||o(this,a);else{for(var d=0,c=[],s=l.length;d<s;d++)(l[d].fn!==t||i&&!l[d].once||r&&l[d].context!==r)&&c.push(l[d]);c.length?this._events[a]=1===c.length?c[0]:c:o(this,a)}return this},l.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&o(this,t)):(this._events=new r,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=n,l.EventEmitter=l,e.exports=l}(mu);var Vu=n(mu.exports),yu=jt,Eu=m,Zu=[].join,bu=p!=Object,Ju=YU("join",",");yu({target:"Array",proto:!0,forced:bu||!Ju},{join:function(e){return Zu.call(Eu(this),void 0===e?",":e)}});var vu=ls.map;jt({target:"Array",proto:!0,forced:!$n("map")},{map:function(e){return vu(this,e,arguments.length>1?arguments[1]:void 0)}});var gu=jt,Tu=V,Wu=Rn,ku=Ut,Nu=lt,Cu=m,Iu=Sn,Lu=xn,_u=$n("slice"),xu=Lu("species"),Du=[].slice,Gu=Math.max;gu({target:"Array",proto:!0,forced:!_u},{slice:function(e,t){var n,r,i,a=Cu(this),o=Nu(a.length),l=ku(e,o),d=ku(void 0===t?o:t,o);if(Wu(a)&&("function"!=typeof(n=a.constructor)||n!==Array&&!Wu(n.prototype)?Tu(n)&&null===(n=n[xu])&&(n=void 0):n=void 0,n===Array||void 0===n))return Du.call(a,l,d);for(r=new(void 0===n?Array:n)(Gu(d-l,0)),i=0;l<d;l++,i++)l in a&&Iu(r,i,a[l]);return r.length=i,r}});var Xu=B,Mu="[\t\n\v\f\r                 \u2028\u2029\ufeff]",Pu=RegExp("^"+Mu+Mu+"*"),wu=RegExp(Mu+Mu+"*$"),Ou=function(e){return function(t){var n=String(Xu(t));return 1&e&&(n=n.replace(Pu,"")),2&e&&(n=n.replace(wu,"")),n}},$u={start:Ou(1),end:Ou(2),trim:Ou(3)},Yu=l,Ku=i,ju=Xt,Hu=He,Au=g,zu=Q,qu=ss,eQ=E,tQ=o,nQ=Tr,rQ=tt.f,iQ=a.f,aQ=w.f,oQ=$u.trim,lQ="Number",dQ=Ku[lQ],cQ=dQ.prototype,sQ=zu(nQ(cQ))==lQ,UQ=function(e){var t,n,r,i,a,o,l,d,c=eQ(e,!1);if("string"==typeof c&&c.length>2)if(43===(t=(c=oQ(c)).charCodeAt(0))||45===t){if(88===(n=c.charCodeAt(2))||120===n)return NaN}else if(48===t){switch(c.charCodeAt(1)){case 66:case 98:r=2,i=49;break;case 79:case 111:r=8,i=55;break;default:return+c}for(o=(a=c.slice(2)).length,l=0;l<o;l++)if((d=a.charCodeAt(l))<48||d>i)return NaN;return parseInt(a,r)}return+c};if(ju(lQ,!dQ(" 0o1")||!dQ("0b1")||dQ("+0x1"))){for(var FQ,uQ=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof uQ&&(sQ?tQ((function(){cQ.valueOf.call(n)})):zu(n)!=lQ)?qu(new dQ(UQ(t)),n,uQ):UQ(t)},QQ=Yu?rQ(dQ):"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(","),RQ=0;QQ.length>RQ;RQ++)Au(dQ,FQ=QQ[RQ])&&!Au(uQ,FQ)&&aQ(uQ,FQ,iQ(dQ,FQ));uQ.prototype=cQ,cQ.constructor=uQ,Hu(Ku,lQ,uQ)}var hQ={},pQ=o;function BQ(e,t){return RegExp(e,t)}hQ.UNSUPPORTED_Y=pQ((function(){var e=BQ("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),hQ.BROKEN_CARET=pQ((function(){var e=BQ("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));var SQ,fQ,mQ=Ad,VQ=hQ,yQ=Se,EQ=RegExp.prototype.exec,ZQ=yQ("native-string-replace",String.prototype.replace),bQ=EQ,JQ=(SQ=/a/,fQ=/b*/g,EQ.call(SQ,"a"),EQ.call(fQ,"a"),0!==SQ.lastIndex||0!==fQ.lastIndex),vQ=VQ.UNSUPPORTED_Y||VQ.BROKEN_CARET,gQ=void 0!==/()??/.exec("")[1];(JQ||gQ||vQ)&&(bQ=function(e){var t,n,r,i,a=this,o=vQ&&a.sticky,l=mQ.call(a),d=a.source,c=0,s=e;return o&&(-1===(l=l.replace("y","")).indexOf("g")&&(l+="g"),s=String(e).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&"\n"!==e[a.lastIndex-1])&&(d="(?: "+d+")",s=" "+s,c++),n=new RegExp("^(?:"+d+")",l)),gQ&&(n=new RegExp("^"+d+"$(?!\\s)",l)),JQ&&(t=a.lastIndex),r=EQ.call(o?n:a,s),o?r?(r.input=r.input.slice(c),r[0]=r[0].slice(c),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:JQ&&r&&(a.lastIndex=a.global?r.index+r[0].length:t),gQ&&r&&r.length>1&&ZQ.call(r[0],n,(function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(r[i]=void 0)})),r});var TQ=bQ;jt({target:"RegExp",proto:!0,forced:/./.exec!==TQ},{exec:TQ});var WQ=He,kQ=TQ,NQ=o,CQ=xn,IQ=ee,LQ=CQ("species"),_Q=RegExp.prototype,xQ=!NQ((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")})),DQ="$0"==="a".replace(/./,"$0"),GQ=CQ("replace"),XQ=!!/./[GQ]&&""===/./[GQ]("a","$0"),MQ=!NQ((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),PQ=function(e,t,n,r){var i=CQ(e),a=!NQ((function(){var t={};return t[i]=function(){return 7},7!=""[e](t)})),o=a&&!NQ((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[LQ]=function(){return n},n.flags="",n[i]=/./[i]),n.exec=function(){return t=!0,null},n[i](""),!t}));if(!a||!o||"replace"===e&&(!xQ||!DQ||XQ)||"split"===e&&!MQ){var l=/./[i],d=n(i,""[e],(function(e,t,n,r,i){var o=t.exec;return o===kQ||o===_Q.exec?a&&!i?{done:!0,value:l.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),{REPLACE_KEEPS_$0:DQ,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:XQ}),c=d[0],s=d[1];WQ(String.prototype,e,c),WQ(_Q,i,2==t?function(e,t){return s.call(e,this,t)}:function(e){return s.call(e,this)})}r&&IQ(_Q[i],"sham",!0)},wQ=it,OQ=B,$Q=function(e){return function(t,n){var r,i,a=String(OQ(t)),o=wQ(n),l=a.length;return o<0||o>=l?e?"":void 0:(r=a.charCodeAt(o))<55296||r>56319||o+1===l||(i=a.charCodeAt(o+1))<56320||i>57343?e?a.charAt(o):r:e?a.slice(o,o+2):i-56320+(r-55296<<10)+65536}},YQ={codeAt:$Q(!1),charAt:$Q(!0)},KQ=YQ.charAt,jQ=function(e,t,n){return t+(n?KQ(e,t).length:1)},HQ=Q,AQ=TQ,zQ=function(e,t){var n=e.exec;if("function"==typeof n){var r=n.call(e,t);if("object"!=typeof r)throw TypeError("RegExp exec method returned something other than an Object or null");return r}if("RegExp"!==HQ(e))throw TypeError("RegExp#exec called on incompatible receiver");return AQ.call(e,t)},qQ=$,eR=lt,tR=B,nR=jQ,rR=zQ;PQ("match",1,(function(e,t,n){return[function(t){var n=tR(this),r=null==t?void 0:t[e];return void 0!==r?r.call(t,n):new RegExp(t)[e](String(n))},function(e){var r=n(t,e,this);if(r.done)return r.value;var i=qQ(e),a=String(this);if(!i.global)return rR(i,a);var o=i.unicode;i.lastIndex=0;for(var l,d=[],c=0;null!==(l=rR(i,a));){var s=String(l[0]);d[c]=s,""===s&&(i.lastIndex=nR(a,eR(i.lastIndex),o)),c++}return 0===c?null:d}]}));var iR=b,aR=Math.floor,oR="".replace,lR=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,dR=/\$([$&'`]|\d{1,2})/g,cR=PQ,sR=$,UR=lt,FR=it,uR=B,QR=jQ,RR=function(e,t,n,r,i,a){var o=n+e.length,l=r.length,d=dR;return void 0!==i&&(i=iR(i),d=lR),oR.call(a,d,(function(a,d){var c;switch(d.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(o);case"<":c=i[d.slice(1,-1)];break;default:var s=+d;if(0===s)return a;if(s>l){var U=aR(s/10);return 0===U?a:U<=l?void 0===r[U-1]?d.charAt(1):r[U-1]+d.charAt(1):a}c=r[s-1]}return void 0===c?"":c}))},hR=zQ,pR=Math.max,BR=Math.min;cR("replace",2,(function(e,t,n,r){var i=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,a=r.REPLACE_KEEPS_$0,o=i?"$":"$0";return[function(n,r){var i=uR(this),a=null==n?void 0:n[e];return void 0!==a?a.call(n,i,r):t.call(String(i),n,r)},function(e,r){if(!i&&a||"string"==typeof r&&-1===r.indexOf(o)){var l=n(t,e,this,r);if(l.done)return l.value}var d=sR(e),c=String(this),s="function"==typeof r;s||(r=String(r));var U=d.global;if(U){var F=d.unicode;d.lastIndex=0}for(var u=[];;){var Q=hR(d,c);if(null===Q)break;if(u.push(Q),!U)break;""===String(Q[0])&&(d.lastIndex=QR(c,UR(d.lastIndex),F))}for(var R,h="",p=0,B=0;B<u.length;B++){Q=u[B];for(var S=String(Q[0]),f=pR(BR(FR(Q.index),c.length),0),m=[],V=1;V<Q.length;V++)m.push(void 0===(R=Q[V])?R:String(R));var y=Q.groups;if(s){var E=[S].concat(m,f,c);void 0!==y&&E.push(y);var Z=String(r.apply(void 0,E))}else Z=RR(S,c,f,m,y,r);f>=p&&(h+=c.slice(p,f)+Z,p=f+S.length)}return h+c.slice(p)}]}));var SR=_c.aTypedArrayConstructor;(0,_c.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,n=new(SR(this))(t);t>e;)n[e]=arguments[e++];return n}),wc);var fR=function(e){var t=0;for(t=0;0!==e;t++)e&=e-1;return t};function mR(e,t){return e^t}function VR(e,t,n){var r=e+fR(t)+n;return String.fromCharCode(255&r)}function yR(e,t,n){var r=e-fR(t)-n;return String.fromCharCode(255&r)}function ER(e){for(var t,n=e.length,r=0;r<n&&r!==n-1;r+=2)t=e[r],e[r]=e[r+1],e[r+1]=t;return e}function ZR(e,t){var n=85,r=250;ER(e);for(var i=0;i<e.length;i++){var a=e[i].charCodeAt(0),o=0===t?VR:yR;i%2==1?n=a=mR(n,o(a+r,i,21).charCodeAt(0)):r=a=mR(r,o(a+n,i,21).charCodeAt(0)),e[i]=String.fromCharCode(a)}return ER(e),e}function bR(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=function(e,t){var n,r=(e[0].charCodeAt(0)^e[1].charCodeAt(0)^e[2].charCodeAt(0))-"0".charCodeAt(0),i=t-r-1,a=new Array(r);for(n=r;n>0;n--)a[r-n]=String.fromCharCode(e[t-r-2].charCodeAt(0)^e[t-r-1].charCodeAt(0)^e[t-n].charCodeAt(0));return{convertKey:e.substring(1,i+1).split(""),convertLen:i,method:a.join(""),methodLen:r}}(e,t=t||e.length),a=i.convertKey,o=i.convertLen;switch(i.method){case"11":case"22":case"appdevice":case"webdevice":a=function(e,t,n){for(var r,i=85,a=250,o=0;o<t;o++){var l=e[o].charCodeAt(0);o%2==1?(r=i^l,i=l):(r=a^l,a=l),e[o]=0===n?yR(r,o,21):VR(r,o,21)}return e}(a,o,r);break;case"app_v2":case"web_v2":a=function(e,t){t=t||e.length;var n=85,r=250;ER(e);for(var i=0;i<t;i++){var a=e[i].charCodeAt(0),o=void 0,l=void 0;i%2==1?(l=mR(n,a),n=a,o=r):(l=mR(r,a),r=a,o=n);var d=VR(l,i,21).charCodeAt(0)-o;d<0&&(d+=256),e[i]=String.fromCharCode(d)}return ER(e),e}(a,o)}var l=o-((n=a[0])>="0"&&n<="9"?n.charCodeAt(0)-"0".charCodeAt(0):n>="a"&&n<="z"?n.charCodeAt(0)-"a".charCodeAt(0)+10:255)-1,d=new Array(l+1);d[l]="";var c=0;for(c=0;c<l;c++)d[c]=a[c+1];return d.join("")}var JR=tn((function e(){var t,n;qt(this,e);var r=new Promise((function(e,r){t=e,n=r}));return r.resolve=function(e){t(e),r.state="fulfilled"},r.reject=function(e){n(e),r.state="rejected",r.isBreak="DESTROYED"===e},r.state="pending",r}),[{key:"resolve",value:function(e){}},{key:"reject",value:function(e){}}]);function vR(e){var t=e||{},n=t.url,r=t.method,i=void 0===r?"GET":r,a=t.type,o=void 0===a?"arraybuffer":a,l=t.data,d=void 0===l?{}:l;return new Promise((function(e,t){var r=new window.XMLHttpRequest,a=i.toUpperCase(),l=[];if(Object.keys(d).map((function(e){l.push("k=".concat(d[e]))})),"GET"===a){var c="";c=n.indexOf("?")<0?"".concat(n,"?").concat(l.join("&")):(null==l?void 0:l.length)>0?"".concat(n,"&").concat(l.join("&")):n,r.open(a,c),o&&(r.responseType=o),r.send()}else{if("POST"!==a)throw new Error("xhr ".concat(a," is not supported"));r.open(a,n,!0),o&&(r.responseType=o),r.setRequestHeader("Content-Type","application/json"),r.send(JSON.stringify(d))}r.onload=function(){200===r.status||206===r.status?e(r):t(r)},r.onerror=function(){t(r)}}))}var gR,TR,WR,kR,NR,CR,IR,LR,_R=l,xR=w.f,DR=Function.prototype,GR=DR.toString,XR=/^\s*function ([^ (]*)/,MR="name";function PR(e){return wR.apply(this,arguments)}function wR(){return wR=At(ln().mark((function e(t){var n,r,i=arguments;return ln().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=!(i.length>1&&void 0!==i[1])||i[1],r=i.length>2&&void 0!==i[2]?i[2]:["encrypt","decrypt"],e.abrupt("return",new Promise((function(e,i){var a;"undefined"!=typeof crypto&&null!==(a=crypto)&&void 0!==a&&a.subtle?crypto.subtle.generateKey(t,n,r).then((function(t){e(t)})).catch((function(e){i(e)})):i(new Error(TR.WebCryptoNotSupport.msg))})));case 3:case"end":return e.stop()}}),e)}))),wR.apply(this,arguments)}function OR(){if("object"!==("undefined"==typeof crypto?"undefined":sn(crypto))||"[object crypto]"!==Object.prototype.toString.call(crypto).toLowerCase()||void 0===crypto.subtle)throw new WR(TR.WebCryptoNotSupport.code,TR.WebCryptoNotSupport.msg);return!0}function $R(e){for(var t=window.atob(e),n=new Uint8Array(t.length),r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n.buffer}function YR(e){return KR.apply(this,arguments)}function KR(){return(KR=At(ln().mark((function e(t){var n,r,i,a,o;return ln().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.data,r=t.privateKey,i=$R(n),OR(),e.prev=3,e.next=6,crypto.subtle.decrypt({name:"RSA-OAEP"},r,i);case 6:a=e.sent,e.next=12;break;case 9:throw e.prev=9,e.t0=e.catch(3),new WR(TR.PrivateKeyDecryptFail.code,"".concat(TR.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 o=(new TextDecoder).decode(a),e.abrupt("return",o);case 14:case"end":return e.stop()}}),e,null,[[3,9]])})))).apply(this,arguments)}function jR(e){for(var t="",n=0;n<e.length;n+=16e3){var r=e.subarray(n,n+16e3);t+=String.fromCharCode.apply(null,r)}return t}_R&&!(MR in DR)&&xR(DR,MR,{configurable:!0,get:function(){try{return GR.call(this).match(XR)[1]}catch(e){return""}}}),function(e,t,n){function r(e,t){var n=parseInt(e.slice(t,t+2),16);return n>>>7==0?[1,n]:n>>>6==2?(n=(63&n)<<8,[2,n+=parseInt(e.slice(t+2,t+4),16)]):(n=(63&n)<<16,[3,n+=parseInt(e.slice(t+2,t+6),16)])}var i,a=0,o=[],l=[];for(i=0;i<4;++i)a+=(3&parseInt(e.slice(8+2*i,10+2*i),16))<<2*i;var d=parseInt(e.slice(16,24),16),c=2*parseInt(e.slice(32,40),16);for(i=40;i<c+40;i+=2)o.push(parseInt(e.slice(i,i+2),16));var s=c+40,U=parseInt(e.slice(s,s+4),16);for(s+=4,i=0;i<U;++i){var F=r(e,s);s+=2*F[0];for(var u="",Q=0;Q<F[1];++Q){var R=r(e,s);u+=String.fromCharCode(a^R[1]),s+=2*R[0]}l.push(u)}t.p=null,function e(t,n,r,i,a){var d,c,s,U,F,u=-1,Q=[],R=[0,null],h=null,p=[n];for(c=Math.min(n.length,r),s=0;s<c;++s)p.push(n[s]);p.p=i;for(var B=[];;)try{switch(o[t++]){case 37:Q[++u]=!1;break;case 60:Q[++u]=null;break;case 12:d=o[t++],Q[++u]=d<<24>>24;break;case 21:d=(o[t]<<8)+o[t+1],t+=2,Q[++u]=d<<16>>16;break;case 75:d=((d=((d=o[t++])<<8)+o[t++])<<8)+o[t++],Q[++u]=(d<<8)+o[t++];break;case 15:d=(o[t]<<8)+o[t+1],t+=2,Q[++u]=l[d];break;case 67:Q[++u]=void 0;break;case 32:Q[++u]=a;break;case 41:d=(o[t]<<8)+o[t+1],t+=2,u=u-d+1,c=Q.slice(u,u+d),Q[u]=c;break;case 65:Q[++u]={};break;case 39:d=(o[t]<<8)+o[t+1],t+=2,c=l[d],s=Q[u--],Q[u][c]=s;break;case 48:for(c=o[t++],s=o[t++],U=p;c>0;--c)U=U.p;Q[++u]=U[s];break;case 38:d=(o[t]<<8)+o[t+1],t+=2,c=l[d],Q[u]=Q[u][c];break;case 57:c=Q[u--],Q[u]=Q[u][c];break;case 52:for(c=o[t++],s=o[t++],U=p;c>0;--c)U=U.p;U[s]=Q[u--];break;case 59:d=(o[t]<<8)+o[t+1],t+=2,c=l[d],s=Q[u--],U=Q[u--],s[c]=U;break;case 35:c=Q[u--],s=Q[u--],U=Q[u--],s[c]=U;break;case 45:for(c=o[t++],s=o[t++],U=p,U=p;c>0;--c)U=U.p;Q[++u]=U,Q[++u]=s;break;case 51:c=Q[u--],Q[u]-=c;break;case 9:c=Q[u--],U=(s=Q[u--])[c]++,Q[++u]=U;break;case 8:c=Q[u--],Q[u]=Q[u]===c;break;case 0:c=Q[u--],Q[u]=Q[u]<c;break;case 44:c=Q[u--],Q[u]=Q[u]>c;break;case 68:Q[u]=!Q[u];break;case 55:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,Q[u]?--u:t+=d;break;case 18:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,Q[u]?t+=d:--u;break;case 69:c=Q[u--],(s=Q[u--])[c]=Q[u];break;case 1:c=Q[u--],Q[u]=Q[u]instanceof c;break;case 26:Q[u]=void 0;break;case 7:Q[u]=typeof Q[u];break;case 20:d=o[t++],c=Q[u--],(s=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)})._v=[c,d,p],s._u=e,Q[++u]=s;break;case 13:d=o[t++],c=Q[u--],(U=[s=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)}]).p=p,s._v=[c,d,U],s._u=e,Q[++u]=s;break;case 40:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,(c=B[B.length-1])[1]=t+d;break;case 58:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,(c=B[B.length-1])&&!c[1]?(c[0]=3,c.push(t)):B.push([1,0,t]),t+=d;break;case 33:throw c=Q[u--];case 62:if(s=(c=B.pop())[0],U=R[0],1===s)t=c[1];else if(0===s)if(0===U)t=c[1];else{if(1!==U)throw R[1];if(!h)return R[1];t=h[1],a=h[2],p=h[3],B=h[4],Q[++u]=R[1],R=[0,null],h=h[0]}else t=c[2],c[0]=0,B.push(c);break;case 24:for(c=Q[u--],s=null;U=B.pop();)if(2===U[0]||3===U[0]){s=U;break}if(s)R=[1,c],t=s[2],s[0]=0,B.push(s);else{if(!h)return c;t=h[1],a=h[2],p=h[3],B=h[4],Q[++u]=c,R=[0,null],h=h[0]}break;case 50:u-=d=o[t++],s=Q.slice(u+1,u+d+1),c=Q[u--],U=Q[u--],c._u===e?(c=c._v,h=[h,t,a,p,B],t=c[0],null==U&&(U=function(){return this}()),a=U,(p=[s].concat(s)).length=Math.min(c[1],d)+1,p.p=c[2],B=[]):(F=c.apply(U,s),Q[++u]=F);break;case 53:for(d=o[t++],U=[void 0],F=d;F>0;--F)U[F]=Q[u--];s=Q[u--],F=new(c=Function.bind.apply(s,U)),Q[++u]=F;break;case 29:t+=2+(d=(d=(o[t]<<8)+o[t+1])<<16>>16);break;case 56:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,(c=Q[u--])||(t+=d);break;case 36:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,c=Q[u--],Q[u]===c&&(--u,t+=d);break;case 19:--u;break;case 2:c=Q[u],Q[++u]=c;break;default:throw new Error("ioe")}}catch(e){for(R=[0,null];(d=B.pop())&&!d[0];);if(!d){e:for(;h;){for(c=h[4];d=c.pop();)if(d[0])break e;h=h[0]}if(!h)throw e;t=h[1],a=h[2],p=h[3],B=h[4],h=h[0]}1===(c=d[0])?(t=d[2],d[0]=0,B.push(d),Q[++u]=e):2===c?(t=d[2],d[0]=0,B.push(d),R=[3,e]):(t=d[3],d[0]=2,B.push(d),Q[++u]=e)}}(d,[],0,t,n)}("504B01018bd91e220000055c231fdb8a000005f60f00003000010f0001230f00023000010f0003230f00043000010f000523300001184b0000004314023400023c30020c3000023000013202133c30020f3000023201183c30030e203001023202133c30030d2030010230000229000132033400033000013000033b00063000031830021135003400043c300212410f000c27000d0f000e27000f300003270010410f00112700120f00132700144130000127001529000002260016300002320127001729000127001827001932010226001a4b000000da14013201022600244b0000015e1400320113300004183000013c081200073000010c001a083800060c001a1d000630000126001b340002300002070f001c0838000f3003010226001d300002320134000230000238002130000226001e30010139300102393400033001040226001f3000033201131d00203c30031b0f00203001010f00213001020f00223205133001040226002332001343183c30031b0f00203001010f00213001020f002432051330010402260023320013431830010202260025203000003202183c30020a3c3002083200022600264b000001b80d063201320134010230010202260025203000003202183c3004083200022600274b000001cf0d013001003202180c013801683000012600283000010f0029450c002400320c052400800c0824008f0c092400930c0c2400b90c0d2400bd0c0f2400d20c162401160c172401210f002a24011b131d01213002011200030f002b34020130020238000b0c093000013b00281d01043002013700033002033700033002044438000b0c083000013b00281d00e60c053000013b00283c30061730020130020330020432031830000126002c3402020c093000013b00281d00ba3006000f002d3501213002050f0004084438000b0c0d3000013b00281d009b0c0c3000013b00283c30061930020230020632021830000126002c34020230020238000b0c0f3000013b00281d006c3006000f002e3501213c3006103c300602300202320132013402073002034438000b0c163000013b00281d003f414127002f34020830020730020826002f30020323300001022600300f0031300208320218300001022600300f0031300207320218300001022600323200181dfe93431830010302260025203000003202183c30020a3c3002083200022600264b000003760d023201320134010330010302260025203000003202183c3004083200022600274b0000038d0d013001003202180c0138009a3000012600283000010f0029450c002400190c0224003e0c042400580c0624006c0f002a240066131d006c30020144120004300202444438000b0c023000013b00281d0052300001022600300f00313002013202180c043000013b00283c3006134130020127001930020226003327003332011830000126002c340201300001022600300f0031300201320218300001022600323200181dff6143183a00043400023e280074300203070f0034083800060f00341d00093c30020930020332010f00350837000b300203260036070f003708380044300203260038300204022600390c000c610c730c6d0c010c000c000c00320835013400013000013002032600380138001330020326003a300001350130020326003a01183e25183001013c083800223a00043400063e28001830020537000e3002050226003b0f003c320144443401013e30000026003d3400033002063000030c012c3800093000030c01331d00020c0035013400040c0134000530000530000300380019300000300005393000043000050c0133232d000509131dffdd30010137000630020726003e3700253002072d00024526003e022600253000020f003f30000129000202260016300004320132021343184b0000006e14033401174b0000018014063401184b0000018e14003400024b0000033e14023401194b0000034c14003400034b0000042e140034011a4b000004ae140134011b3c3400013c4b0000000014013001141200014132013401144141151c212700060f000727000827000941151c222700060f000a27000827000b3401153c4b0000002214013c30010b30010032013201340116431800401080d480d380c680c980c380c680d580c380f880c280c980c480d580de80d780d31080f480f380e680e980e380e680f580e380f880e280e980e480f580fe80f780f30f80d780d580ce80d180c680d380c280f880c280c980c480d580de80d780d30f80f780f580ee80f180e680f380e280f880e280e980e480f580fe80f780f31780d780d580ce80d180c680d380c280f880c280c980c480d580de80d780d380f880d280d780c080d580c680c380c21780f780f580ee80f180e680f380e280f880e280e980e480f580fe80f780f380f880f280f780e080f580e680e380e20480c480c880c380c22580f080c280c5808780c480d580de80d780d380c880c080d580c680d780cf80de808780e680f780ee808780ce80d4808780c980c880d3808780d480d280d780d780c880d580d380c280c30380ca80d480c01380f080c280c580e480d580de80d780d380c880e980c880d380f480d280d780d780c880d580d31d80e380c280c480d580de80d780d380ce80c880c9808780c580de808780f580f480e6808a80e880e680e280f7808780c180c680ce80cb80c280c31580f780d580ce80d180c680d380c280ec80c280de80e380c280c480d580de80d780d380e180c680ce80cb0480cd80d480c880c90480d380de80d780c20480f780e880f480f30680ca80c280d380cf80c880c30380d280d580cb02809580950880c380d580ca80f880d380de80d780c2038095808980970780d180c280d580d480ce80c880c90380d180ce80c30680c480c880c980c480c680d30480cc80ce80c380d40f80cb80ce80c480c280c980d480c280f880d580c280d680d280c280d480d30480c380c680d380c60480d380cf80c280c90880d580c280d480d780c880c980d480c20680d480d380d580ce80c980c00580d780c680d580d480c20d80d780cb80c680de80f880cb80ce80c480c280c980d480c280d40780d580c280d480c880cb80d180c21b80c080c280d380f480c280c480d580c280d380ec80c280de80e580de80ec80ce80c3808780c280c980c3808b808780d180ce80c3808b05808b808780cc80ce80c30d80d580c280d480d780c880c980d480c2808780c980d280cb80cb0680d580c280cd80c280c480d30580c480c680d380c480cf0580c680d780d780cb80de0480ca80c680d580cc0480d080d580c680d70480c980c280df80d30480d780d580c280d10380c280c980c3000480d480c280c980d33580d480cf80c880d280cb80c3808780d780d580c880d180ce80c380c2808780d480c280c480d580c280d380ec80c280de808780c880d5808780d180ce80c3808b808780cc80c280de80ee80c3808780c680c980c3808780cb80ce80c480c280c980d480c280f280d580cb1880c080c280d380ec80c280de80f180c680cb80d280c2809d808780d480cc808780ce80d4808780c280ca80d780d380de0980c480cb80c280c680d580ec80c280de80d40680c680c580d580d280d780d30680d580c280d380d280d580c90480d480d380c880d70a80d780d580ce80d180c680d380c280ec80c280de0980d280c980c380c280c180ce80c980c280c30680c880c580cd80c280c480d30b80ce80c980d480d380c680c980d380ce80c680d380c20880c180d280c980c480d380ce80c880c90680ea80c880c380d280cb80c20280c880c10880ee80c980d480d380c680c980c480c20780c080c280d380ee80d380c280ca0c80d480c280c480d580c280d380cc80c280de80cb80c880c00680cb80c280c980c080d380cf0380cb80c880c00d80fc80ff80e080f480c280c480d580c280d380cc80c280de80fa",{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 ln},get 9(){return sn},get 10(){return At},get 11(){return Un},get 12(){return an},get 13(){return zt},get 14(){return qt},get 15(){return tn},get 16(){return bR},get 17(){return JR},get 18(){return vR},get 19(){return YR},get 20(){return gR},set 20(e){gR=e},get 21(){return TR},set 21(e){TR=e},get 22(){return WR},set 22(e){WR=e},get 23(){return kR},set 23(e){kR=e},get 24(){return NR},set 24(e){NR=e},get 25(){return CR},set 25(e){CR=e},get 26(){return IR},set 26(e){IR=e},get 27(){return LR},set 27(e){LR=e}},void 0);var HR,AR,zR,qR,eh,th,nh,rh,ih=(HR="vodTimestampSalt",AR=function(e){return e.split("").map((function(e){return e.charCodeAt(0)}))},zR=function(e){return"0".concat(Number(e).toString(16)).substr(-2)},qR=function(e){return AR(HR).reduce((function(e,t){return e^t}),e)},function(e){return e.split("").map(AR).map(qR).map(zR).join("")}),ah=(nh="vodTimestampSalt",rh=function(e){return(t=nh,t.split("").map((function(e){return e.charCodeAt(0)}))).reduce((function(e,t){return e^t}),e);var t},function(e){return e.match(/.{1,2}/g).map((function(e){return parseInt(e,16)})).map(rh).map((function(e){return String.fromCharCode(e)})).join("")}),oh={str2hex:function(e){if(""===e)return"";for(var t=[],n=0;n<e.length;n++)t.push(e.charCodeAt(n));return t},Base64ToHex:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=window.atob(e.replace(/-/g,"+").replace(/_/g,"/"));if(t){for(var r=[],i=0;i<n.length;i++)r.push(n.charCodeAt(i));return new Uint8Array(r).buffer}for(var a="",o=0;o<n.length;o++)a+="0".concat(n.charCodeAt(o).toString(16)).substr(-2);return a},checkUnionInfoExpired:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30;if(0===t.indexOf(e)){var r=parseInt(ah(t.slice(e.length))),i=(new Date).getTime()-r;if(i>0&&i<=1e3*n)return!0;LR("UnionInfo timestamp expire!!!")}else LR("unionID and UnionInfo not match!!!");return!1},getUnionInfo:function(){return"".concat(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").concat(ih((new Date).getTime().toString()))},StringToArrayBuffer:function(e){for(var t=new ArrayBuffer(e.length),n=new Uint8Array(t),r=0;r<e.length;r++)n[r]=e.charCodeAt(r);return t},ArrayBufferToString:function(e){var t=[];e=ArrayBuffer.isView(e)?e:new Uint8Array(e);for(var n,r=0;r<e.length;r++)n=e[r],t.push(String.fromCharCode(n));return t.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:jR,fromHex:function(e){for(var t=new Uint8Array(e.length/2),n=0;n<e.length;n+=2)t[n/2]=window.parseInt(e.substr(n,2),16);return t},toUTF8:function(e){for(var t=encodeURIComponent(e),n=unescape(t),r=new Uint8Array(n.length),i=0;i<n.length;++i)r[i]=n.charCodeAt(i);return r.buffer},toBase64:function(e,t){var n=jR(e);t=void 0===t||t;var r=window.btoa(n).replace(/\+/g,"-").replace(/\//g,"_");return t?r:r.replace(/=*$/,"")}};e.EVENT_EME=void 0,function(e,t,n){function r(e,t){var n=parseInt(e.slice(t,t+2),16);return n>>>7==0?[1,n]:n>>>6==2?(n=(63&n)<<8,[2,n+=parseInt(e.slice(t+2,t+4),16)]):(n=(63&n)<<16,[3,n+=parseInt(e.slice(t+2,t+6),16)])}var i,a=0,o=[],l=[];for(i=0;i<4;++i)a+=(3&parseInt(e.slice(8+2*i,10+2*i),16))<<2*i;var d=parseInt(e.slice(16,24),16),c=2*parseInt(e.slice(32,40),16);for(i=40;i<c+40;i+=2)o.push(parseInt(e.slice(i,i+2),16));var s=c+40,U=parseInt(e.slice(s,s+4),16);for(s+=4,i=0;i<U;++i){var F=r(e,s);s+=2*F[0];for(var u="",Q=0;Q<F[1];++Q){var R=r(e,s);u+=String.fromCharCode(a^R[1]),s+=2*R[0]}l.push(u)}t.p=null,function e(t,n,r,i,a){var d,c,s,U,F,u=-1,Q=[],R=null,h=[n];for(c=Math.min(n.length,r),s=0;s<c;++s)h.push(n[s]);h.p=i;for(var p=[];;)try{switch(o[t++]){case 37:Q[++u]=!1;break;case 60:Q[++u]=null;break;case 12:d=o[t++],Q[++u]=d<<24>>24;break;case 21:d=(o[t]<<8)+o[t+1],t+=2,Q[++u]=d<<16>>16;break;case 75:d=((d=((d=o[t++])<<8)+o[t++])<<8)+o[t++],Q[++u]=(d<<8)+o[t++];break;case 15:d=(o[t]<<8)+o[t+1],t+=2,Q[++u]=l[d];break;case 67:Q[++u]=void 0;break;case 32:Q[++u]=a;break;case 41:d=(o[t]<<8)+o[t+1],t+=2,u=u-d+1,c=Q.slice(u,u+d),Q[u]=c;break;case 65:Q[++u]={};break;case 39:d=(o[t]<<8)+o[t+1],t+=2,c=l[d],s=Q[u--],Q[u][c]=s;break;case 48:for(c=o[t++],s=o[t++],U=h;c>0;--c)U=U.p;Q[++u]=U[s];break;case 38:d=(o[t]<<8)+o[t+1],t+=2,c=l[d],Q[u]=Q[u][c];break;case 57:c=Q[u--],Q[u]=Q[u][c];break;case 52:for(c=o[t++],s=o[t++],U=h;c>0;--c)U=U.p;U[s]=Q[u--];break;case 59:d=(o[t]<<8)+o[t+1],t+=2,c=l[d],s=Q[u--],U=Q[u--],s[c]=U;break;case 35:c=Q[u--],s=Q[u--],U=Q[u--],s[c]=U;break;case 45:for(c=o[t++],s=o[t++],U=h,U=h;c>0;--c)U=U.p;Q[++u]=U,Q[++u]=s;break;case 9:c=Q[u--],U=(s=Q[u--])[c]++,Q[++u]=U;break;case 8:c=Q[u--],Q[u]=Q[u]===c;break;case 54:c=Q[u--],Q[u]=Q[u]!==c;break;case 68:Q[u]=!Q[u];break;case 55:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,Q[u]?--u:t+=d;break;case 18:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,Q[u]?t+=d:--u;break;case 69:c=Q[u--],(s=Q[u--])[c]=Q[u];break;case 26:Q[u]=void 0;break;case 25:c=Q[u--],U=delete(s=Q[u--])[c],Q[++u]=U;break;case 20:d=o[t++],c=Q[u--],(s=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)})._v=[c,d,h],s._u=e,Q[++u]=s;break;case 13:d=o[t++],c=Q[u--],(U=[s=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)}]).p=h,s._v=[c,d,U],s._u=e,Q[++u]=s;break;case 33:throw c=Q[u--];case 24:for(c=Q[u--],s=null;U=p.pop();)if(2===U[0]||3===U[0]){s=U;break}if(s)t=s[2],s[0]=0,p.push(s);else{if(!R)return c;t=R[1],a=R[2],h=R[3],p=R[4],Q[++u]=c,R=R[0]}break;case 50:u-=d=o[t++],s=Q.slice(u+1,u+d+1),c=Q[u--],U=Q[u--],c._u===e?(c=c._v,R=[R,t,a,h,p],t=c[0],null==U&&(U=function(){return this}()),a=U,(h=[s].concat(s)).length=Math.min(c[1],d)+1,h.p=c[2],p=[]):(F=c.apply(U,s),Q[++u]=F);break;case 53:for(d=o[t++],U=[void 0],F=d;F>0;--F)U[F]=Q[u--];s=Q[u--],F=new(c=Function.bind.apply(s,U)),Q[++u]=F;break;case 29:t+=2+(d=(d=(o[t]<<8)+o[t+1])<<16>>16);break;case 56:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,(c=Q[u--])||(t+=d);break;case 19:--u;break;case 2:c=Q[u],Q[++u]=c;break;default:throw new Error("ioe")}}catch(e){for(;(d=p.pop())&&!d[0];);if(!d){e:for(;R;){for(c=R[4];d=c.pop();)if(d[0])break e;R=R[0]}if(!R)throw e;t=R[1],a=R[2],h=R[3],p=R[4],R=R[0]}1===(c=d[0])?(t=d[2],d[0]=0,p.push(d),Q[++u]=e):2===c?(t=d[2],d[0]=0,p.push(d)):(t=d[3],d[0]=2,p.push(d),Q[++u]=e)}}(d,[],0,t,n)}("504B01018bd91e2200000fbc231fdb8a00000ff20f00013000010f0002230f00033000010f0004230f00053000010f0005230f00063000010f000623300001184b0000012d14013400023c30020f3000023000013202133c300211300002410f002d27002f4b000008be0d02270033410f003427002f4b0000097f0d01270033410f003527002f4b00000a120d00270033410f002927002f4b00000a500d01270033410f002427002f4b00000a700d01270033410f004b27002f4b00000b6a0d00270033410f001a27002f4b00000b6c0d03270033410f005227002f4b00000c020d01270033410f005327002f4b00000c140d01270033410f005627002f4b00000cb60d01270033410f002527002f4b00000ce40d01270033410f007a27002f4b00000f100d01270033410f008227002f4b00000fad0d0027003329000d3202183c300312203001023202133c3003102030010232023400020f00073000023b0008413000023b00090c001a3000023b000a3003153000023b00003c3000023b000b0c003000023b000c30030035000226000d32000226000e0c2432013000023b000f4b000001c914013000023b002c2900003000023b001b3000020226002d3000013201133000020226002e0f000330000226002c3202133000021830010234000230000226000b3400033001023400043000034438000243183001022600080f0010083800330f001134000530040102260012410f0013290001270014320134000630040230041402260015300006320135013400071d054f3001022600080f0016083800b90f001734000530000137000b30040230000126001835011200993004020c000c000c000c430c700c730c730c680c000c000c000c001500ed1500ef15008b1500a90c791500d60c4a1500ce1500a31500c80c271500dc1500d50c1d0c211500ed0c000c000c000c230c080c010c120c100c330c330c330c330c330c330c330c330c330c330c330c330c000c000c000c000c1a0c0a0c690c6e0c740c650c720c740c720c750c730c740c220c010c2a29004335013400071d04893001022600080f00190838047c0f001734000530000137000b300402300001260018350112045f3004020c000c000c020c260c700c730c730c680c000c000c000c0015009a0c041500f00c791500980c400c421500861500ab1500921500e60c5b1500e01500880c5f1500950c000c000c020c060c060c020c000c000c010c000c010c001500fc0c010c3c0c000c570c000c520c000c4d0c000c480c000c450c000c410c000c440c000c450c000c520c000c200c000c780c000c6d0c000c6c0c000c6e0c000c730c000c3d0c000c220c000c680c000c740c000c740c000c700c000c3a0c000c2f0c000c2f0c000c730c000c630c000c680c000c650c000c6d0c000c610c000c730c000c2e0c000c6d0c000c690c000c630c000c720c000c6f0c000c730c000c6f0c000c660c000c740c000c2e0c000c630c000c6f0c000c6d0c000c2f0c000c440c000c520c000c4d0c000c2f0c000c320c000c300c000c300c000c370c000c2f0c000c300c000c330c000c2f0c000c500c000c6c0c000c610c000c790c000c520c000c650c000c610c000c640c000c790c000c480c000c650c000c610c000c640c000c650c000c720c000c220c000c200c000c760c000c650c000c720c000c730c000c690c000c6f0c000c6e0c000c3d0c000c220c000c340c000c2e0c000c300c000c2e0c000c300c000c2e0c000c300c000c220c000c3e0c000c3c0c000c440c000c410c000c540c000c410c000c3e0c000c3c0c000c500c000c520c000c4f0c000c540c000c450c000c430c000c540c000c490c000c4e0c000c460c000c4f0c000c3e0c000c3c0c000c4b0c000c450c000c590c000c4c0c000c450c000c4e0c000c3e0c000c310c000c360c000c3c0c000c2f0c000c4b0c000c450c000c590c000c4c0c000c450c000c4e0c000c3e0c000c3c0c000c410c000c4c0c000c470c000c490c000c440c000c3e0c000c410c000c450c000c530c000c430c000c540c000c520c000c3c0c000c2f0c000c410c000c4c0c000c470c000c490c000c440c000c3e0c000c3c0c000c2f0c000c500c000c520c000c4f0c000c540c000c450c000c430c000c540c000c490c000c4e0c000c460c000c4f0c000c3e0c000c3c0c000c4b0c000c490c000c440c000c3e0c000c4d0c000c7a0c000c4d0c000c7a0c000c4d0c000c7a0c000c4d0c000c7a0c000c4d0c000c7a0c000c4d0c000c7a0c000c4d0c000c7a0c000c4d0c000c7a0c000c410c000c410c000c410c000c410c000c410c000c410c000c3d0c000c3d0c000c3c0c000c2f0c000c4b0c000c490c000c440c000c3e0c000c3c0c000c430c000c480c000c450c000c430c000c4b0c000c530c000c550c000c4d0c000c3e0c000c410c000c310c000c350c000c420c000c590c000c570c000c440c000c340c000c710c000c730c000c490c000c3d0c000c3c0c000c2f0c000c430c000c480c000c450c000c430c000c4b0c000c530c000c550c000c4d0c000c3e0c000c3c0c000c2f0c000c440c000c410c000c540c000c410c000c3e0c000c3c0c000c2f0c000c570c000c520c000c4d0c000c480c000c450c000c410c000c440c000c450c000c520c000c3e0c0029022635013400073000040226001a30000330000426000830000426001b32030226001c4b000007b914004b000008a2140032020226001c4b000008af14004b000008b11400320213431830010326001d2d0001453c081200073000010c001a083800060c001a1d00093000010226001e3200340002300002443800093005030f001f350121300103260020022600213000023201133001042600080f00100838002930040130010426000f39340003300002022600220f00233001040226002430000332013202131d00553001042600080f00160838001f300002022600220f00233001042600250226002630010432013202131d00293001042600080f00190838001c300002022600220f002330010426002502260026300104320132021330000202260027300105300107260028320218300104022600290f002a3201184318300104022600290f002b3201183000013c363700073000010c001a363700063000012600303800150f0010203b00083000012600303003012026000f233000013c363700073000010c001a3637000630000126003038000a0f0010203b00081d005b3000013c363700073000010c001a363700063000012600313800140f0016203b0008300001260031203b00091d002c3000013c363700073000010c001a363700063000012600323800110f0019203b0008300001260032203b0009300002370008300002200f000045134318202600003004150838007f202600080f00100837000e3003012026000f392d0002453c363700073000020c001a3637000830000220260000393800293003012026000f3920260000393003012026000f39300001233003012026000f3930041519131d002520260009202600003938001920260009300415392026000930000123202600093004151913300001203b00004318410f00110f0036290002270037410f003827003929000127003a410f003b270039410f003c270039410f003d27003929000327003e290001203b001b4318300404022600010f003f30000132021320022600400f00013000013202134318203400024b00000a7c140118290000340002290000340003300505022600093001013201022600414b00000aea1401320113413000022700093400043005010226001230000432013400053000012600470226004830051402260049300005320132010226001c4b00000b5b14004b00000b5d1400320213431830020130000139340002300614022600423000013201340003300614022600423000023201340004410f00432700443006140226004530000325320227000030061402260045300004253202270046340005300102022600213000053201133001030226002130000526000032011343184318300202022600290f004a3201184318203400042026000a12000630000126001d3800112026000a1200093004060226004c3200183004070226004d30000230000332020226001c4b00000bd114014b00000bdb140032020226001c4b00000be814014b00000bf514003202203b000a2026000a183000010226004e320018300104022600290f004f32011830010102260050300001320118300104022600290f0051320118300001203b000b2900003000013b002043180f005434000230040826005538008f200226005630000132013400033004082600553500340004300004022600573000030f00583202340005300005380015300005022600593000020f005a32020c00391d00013c340006300006380015300006022600593000020f005b32020c00391d00013c340007300007380015300007022600593000020f005c32020c00391d00013c3400083000083800023c183000011830040926005d0226005e3c300402300001350132023400023c30040a3c30040b30000232013201340003300003182034000230040c35003400033000030226005f0f0060202600092600613202134b00000d1d14003000033b00783000030226007932001343183001032600620c04083801163001012600233400013001032600633400023001022600080f0019083800333005010226006430010326006332013400020f0007022600653000022600660f0067320202260065300002260068320134000230000244380043300102022600400f0006410f0007022600653001022600092600610f006932020226006530010326006a0f006b32020226006530010326006c320127006d320213431830050c35003400033001012600473000033b006e0f006f3000033b0070253000033b00713000030226005f0f00723c30050930000232013202133001022600080f001908380010300003022600730f00740f00583202134b00000e4114003000033b0078300003022600793001020226007a300001320132011343183001032600620c04083800c130010326006a1500c83638003d300202022600400f0006410f0007022600653001020f007532020226006530010326006a0f006b32020226006530010326006c320127006d3202134318300202022600400f00054130020226000c27006d3202133002020f000c09133002022600080f0019083800153002020226005330010326006332013400011d000e300602300103260063350134000130010326006e02260048300001320102260076300604260001022600263006040f007732023201134318202600080f0019083800893c34000230040d350034000330040e300001350134000430040926005d0226005e3c3000043202340005300003022600573000050f007b32023400063000060226007c0f007d32010c00393800333000060226007c0f007e32010c003926007f0c003926008034000730000738000f3004080226008130000732013400021d0004300001183000021830040230000135011820022600833200133c203b000b43180f00003401153c4b000000001401300116120001413201340116413400013c4b0000002c14013001133201340002300002340117431800840380cc80ce80c30580c280d580d580c880d50580e280f580f580e880f50980c280c980c480d580de80d780d380c280c30980e280e980e480f580fe80f780f380e280e31380e480e380ea80f880eb80ee80e480e280e980f480e280f880f480f280e480e480e280f480f41180e480e380ea80f880eb80ee80e480e280e980f480e280f880e280f580f580e880f5000980cc80c280de80f480de80d480d380c280ca0480cc80c280de80d40d80c280c980d480d280d580c280f780d580c880ca80ce80d480c20580d180ce80c380c280c80b80cb80ce80c480c280c980d480c280f480d380c280d70780c080c280d380f380ce80ca80c20880d380c880f480d380d580ce80c980c00f80c480cb80c280c680d580ec80c280de80f480d380c880d580c280ee80c30f80c880d580c0808980d08094808980c480cb80c280c680d580cc80c280de0680cc80c280de80ce80c380d40980d480d380d580ce80c980c080ce80c180de2080978096809580948093809280918090809f809e80c680c580c480c380c280c180978096809580948093809280918090809f809e80c680c580c480c380c280c10480cc80ce80c380d40680d380c880f280f380e1809f1280c480c880ca808980d080ce80c380c280d180ce80c980c2808980c680cb80d780cf80c60480c480c280c980c40880ce80c980ce80d380e380c680d380c61780c480c880ca808980ca80ce80c480d580c880d480c880c180d3808980d780cb80c680de80d580c280c680c380de1680c280c980d480d280d580c280ea80c280c380ce80c680ec80c280de80d480e480d580c280c680d380c280c30780c880d780d380ce80c880c980d40480d380cf80c280c90980ca80c280c380ce80c680ec80c280de80d40d80c480d580c280c680d380c280f480c280d480d480ce80c880c91980e180c680ce80cb80c280c3808780d380c8808780c480d580c280c680d380c2808780d480c280d480d480ce80c880c980890880d480c280d480d480ce80c880c980d40480d780d280d480cf1080c680c380c380e280d180c280c980d380eb80ce80d480d380c280c980c280d50780ca80c280d480d480c680c080c21180d280d780c380c680d380c280f480c280d480d480ce80c880c980e180d280c980c41380cb80ce80c480c280c980d480c280f580c280d680d280c280d480d380f580c280c680c380de0480c580ce80c980c30f80c080c280c980c280d580c680d380c280f580c280d680d280c280d480d30680c580d280c180c180c280d50480c580c680ce80cb2f808780c180c680ce80cb80c280c3808780d380c8808780c280c980d480d280d580c2808780ea80c280c380ce80c680ec80c280de80d4808780c880c9808780ef80f380ea80eb80ea80c280c380ce80c680e280cb80c280ca80c280c980d31c808780e180c680ce80cb80c280c3808780d380c8808780c080c280c980c280d580c680d380c2808780d580c280d680d280c280d480d380890d80c280c980c480d580de80d780d380ef80c680c980c380cb80c20980d280d780c380c680d380c280e380d580ca0280c880c90380cc80c280de0980c480cb80c280c680d580ec80c280de80d40880d080ce80c380c280d180ce80c980c20980d780cb80c680de80d580c280c680c380de0580d180c680cb80d280c20980d280d780c380c680d380c280ec80ce80c30a80d480c280d380e880d780d380ce80c880c980d40480d080c280c580ca0d80ce80c980ce80d380e380c680d380c680f380de80d780c280d41d80c680d280c380ce80c8808880ca80d78093809c808780c480c880c380c280c480d4809a808580ca80d7809380c68089809380978089809580850b80c480c880c980d380c280c980d380f380de80d780c21180c680d280c380ce80c880e480c680d780c680c580ce80cb80ce80d380ce80c280d41f80d180ce80c380c280c8808880ca80d78093809c808780c480c880c380c280c480d4809a808580c680d180c4809680898093809580c48097809680c280852480d180ce80c380c280c8808880ca80d78093809c808780c480c880c380c280c480d4809a808580cf80c280d180968089809680898091808980eb8096809580978089809e809780851880d180ce80c380c280c8808880d080c280c580ca809c808780c480c880c380c280c480d4809a808580d180d7809f80851180d180ce80c380c280c880e480c680d780c680c580ce80cb80ce80d380ce80c280d40580fc80e280ea80e280fa0480c280ca80ce80d30780c180c880d580e280c680c480cf0780c180d580c880ca80ef80c280df0380c880c480d30380cc80d380de0880d380c880e580c680d480c2809180930180cc0680d380c680d580c080c280d30680d280d780c380c680d380c21380f480d380d580ce80c980c080f380c880e680d580d580c680de80e580d280c180c180c280d51e808780ea80c280c380ce80c680ec80c280de80f480c280d480d480ce80c880c9808780d280d780c380c680d380c2808780c180c680ce80cb80c280c30a80cc80c280de80d480e480cf80c680c980c080c20780d580c280d480c880cb80d180c21b80d580c280d680d280c280d480d380ea80c280c380ce80c680ec80c280de80f480de80d480d380c280ca80e680c480c480c280d480d40f80c480d580c280c680d380c280ea80c280c380ce80c680ec80c280de80d425808780e180c680ce80cb80c280c3808780d380c8808780d580c280d680d280c280d480d3808780cc80c280de808780d480de80d480d380c280ca808780c680c480c480c280d480d480890c80d480c280d380ea80c280c380ce80c680ec80c280de80d422808780c180c680ce80cb80c280c3808780d380c8808780c480d580c280c680d380c2808780ea80c280c380ce80c680ec80c280de80d4808780c880c580cd80c280c480d30880d480c280d380d280d780e280ea80e21380d780c680d580d480c280f480c280d580d180c280d580f580c280d480d780c880c980d480c22a80cf80d380d380d780d4809d8088808880d480c480cf80c280ca80c680d4808980df80ca80cb80d480c880c680d7808980c880d580c0808880d480c880c680d7808880c280c980d180c280cb80c880d780c280880980e380e880ea80f780c680d580d480c280d50c80d280ce80c980d380f380c880f480d380d580ce80c980c00f80d780c680d580d480c280e180d580c880ca80f480d380d580ce80c980c00880d380c280df80d3808880df80ca80cb1680c080c280d380e280cb80c280ca80c280c980d380d480e580de80f380c680c080e980c680ca80c280e980f40880e280c980d180c280cb80c880d780c20480e580c880c380de0580e180c680d280cb80d30c80c180d580c880ca80e480cf80c680d580e480c880c380c20580c680d780d780cb80de0480c880d780c280c90380e080e280f30980d480c280d580d180c280d580f280f580eb0a80d580c280c680c380de80f480d380c680d380c20880d580c280d480d780c880c980d480c20580d780c680d580d480c20680c480c880c980c480c680d31580cb80ce80c480c280c980d480c280e680c480d680d280ce80d480ce80d380ce80c880c980f280d580cb12809880e280df80d780d580c280d480d480f780cb80c680de80f380c880cc80c280c9809a0580d380c880cc80c280c923808780d580c280d680d280c280d480d3808780c180c680ce80cb80c280c38086808780ad808780878087808780878087808780878087808780d480d380c680d380d280d4809d0680d480d380c680d380d280d40c808780d480d380c680d380d280d480f380c280df80d3809d0a80d480d380c680d380d280d480f380c280df80d30480c380c680d380c60a80cc80c280de80f480c280d480d480ce80c880c90b80c680d580d580c680de80c580d280c180c180c280d50c80d580c280d480d780c880c980d480c280f380de80d780c20f80d080ce80d380cf80e480d580c280c380c280c980d380ce80c680cb80d40480f780e880f480f31080d480c280d380f580c280d680d280c280d480d380ef80c280c680c380c280d50c80e480c880c980d380c280c980d3808a80d380de80d780c227808780d580c280d680d280c280d480d3808780c180c680ce80cb80c280c38086808780ad8087808780878087808780878087808780878087808780878087808780d480d380c680d380d280d4809d0580c480c680d380c480cf0f80d280d780c380c680d380c2808f808e808780c180c680ce80cb80c280c31280c880c980d580c280c680c380de80d480d380c680d380c280c480cf80c680c980c080c20480d480c280c980c31c80c080c280d380eb80ce80c480c280c980d480c280f580c280d680d280c280d480d380e180d580c880ca80ea80c280d480d480c680c080c20f80c680d780d780cb80ce80c480c680d380ce80c880c9808880df80ca80cb1480c080c280d380e280cb80c280ca80c280c980d380d480e580de80f380c680c080e980c680ca80c21380f780cb80c680de80f580c280c680c380de80ec80c280de80ea80c280d480d480c680c080c20980e480cf80c680cb80cb80c280c980c080c20a80c480cf80ce80cb80c380e980c880c380c280d40980c980c880c380c280f180c680cb80d280c20480c680d380c880c50780c380c280d480d380d580c880de1280d580c280ca80c880d180c280e680cb80cb80eb80ce80d480d380c280c980c280d580d4",{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 an},get 16(){return zt},get 17(){return tn},get 18(){return qt},get 19(){return Vu},get 20(){return oh},get 21(){return eh},set 21(e){eh=e},get 22(){return e.EVENT_EME},set 22(t){e.EVENT_EME=t},get 23(){return th},set 23(e){th=e}},void 0);var lh,dh,ch=th,sh=V,Uh=Q,Fh=xn("match"),uh=l,Qh=i,Rh=Xt,hh=ss,ph=w.f,Bh=tt.f,Sh=function(e){var t;return sh(e)&&(void 0!==(t=e[Fh])?!!t:"RegExp"==Uh(e))},fh=Ad,mh=hQ,Vh=He,yh=o,Eh=Xe.enforce,Zh=Aa,bh=xn("match"),Jh=Qh.RegExp,vh=Jh.prototype,gh=/a/g,Th=/a/g,Wh=new Jh(gh)!==gh,kh=mh.UNSUPPORTED_Y;if(uh&&Rh("RegExp",!Wh||kh||yh((function(){return Th[bh]=!1,Jh(gh)!=gh||Jh(Th)==Th||"/a/i"!=Jh(gh,"i")})))){for(var Nh=function(e,t){var n,r=this instanceof Nh,i=Sh(e),a=void 0===t;if(!r&&i&&e.constructor===Nh&&a)return e;Wh?i&&!a&&(e=e.source):e instanceof Nh&&(a&&(t=fh.call(e)),e=e.source),kh&&(n=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,""));var o=hh(Wh?new Jh(e,t):Jh(e,t),r?this:vh,Nh);return kh&&n&&(Eh(o).sticky=!0),o},Ch=function(e){e in Nh||ph(Nh,e,{configurable:!0,get:function(){return Jh[e]},set:function(t){Jh[e]=t}})},Ih=Bh(Jh),Lh=0;Ih.length>Lh;)Ch(Ih[Lh++]);vh.constructor=Nh,Nh.prototype=vh,Vh(Qh,"RegExp",Nh)}Zh("RegExp"),e.isNativeFunction=void 0,e.checkMSEValid=void 0,e.checkEMEValid=void 0,function(e,t,n){function r(e,t){var n=parseInt(e.slice(t,t+2),16);return n>>>7==0?[1,n]:n>>>6==2?(n=(63&n)<<8,[2,n+=parseInt(e.slice(t+2,t+4),16)]):(n=(63&n)<<16,[3,n+=parseInt(e.slice(t+2,t+6),16)])}var i,a=0,o=[],l=[];for(i=0;i<4;++i)a+=(3&parseInt(e.slice(8+2*i,10+2*i),16))<<2*i;var d=parseInt(e.slice(16,24),16),c=2*parseInt(e.slice(32,40),16);for(i=40;i<c+40;i+=2)o.push(parseInt(e.slice(i,i+2),16));var s=c+40,U=parseInt(e.slice(s,s+4),16);for(s+=4,i=0;i<U;++i){var F=r(e,s);s+=2*F[0];for(var u="",Q=0;Q<F[1];++Q){var R=r(e,s);u+=String.fromCharCode(a^R[1]),s+=2*R[0]}l.push(u)}t.p=null,function e(t,n,r,i,a){var d,c,s,U,F,u=-1,Q=[],R=null,h=[n];for(c=Math.min(n.length,r),s=0;s<c;++s)h.push(n[s]);h.p=i;for(var p=[];;)try{switch(o[t++]){case 63:Q[++u]=!0;break;case 37:Q[++u]=!1;break;case 60:Q[++u]=null;break;case 12:d=o[t++],Q[++u]=d<<24>>24;break;case 75:d=((d=((d=o[t++])<<8)+o[t++])<<8)+o[t++],Q[++u]=(d<<8)+o[t++];break;case 15:d=(o[t]<<8)+o[t+1],t+=2,Q[++u]=l[d];break;case 67:Q[++u]=void 0;break;case 41:d=(o[t]<<8)+o[t+1],t+=2,u=u-d+1,c=Q.slice(u,u+d),Q[u]=c;break;case 48:for(c=o[t++],s=o[t++],U=h;c>0;--c)U=U.p;Q[++u]=U[s];break;case 38:d=(o[t]<<8)+o[t+1],t+=2,c=l[d],Q[u]=Q[u][c];break;case 57:c=Q[u--],Q[u]=Q[u][c];break;case 52:for(c=o[t++],s=o[t++],U=h;c>0;--c)U=U.p;U[s]=Q[u--];break;case 45:for(c=o[t++],s=o[t++],U=h,U=h;c>0;--c)U=U.p;Q[++u]=U,Q[++u]=s;break;case 28:Q[u]=-Q[u];break;case 8:c=Q[u--],Q[u]=Q[u]===c;break;case 54:c=Q[u--],Q[u]=Q[u]!==c;break;case 44:c=Q[u--],Q[u]=Q[u]>c;break;case 55:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,Q[u]?--u:t+=d;break;case 18:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,Q[u]?t+=d:--u;break;case 69:c=Q[u--],(s=Q[u--])[c]=Q[u];break;case 26:Q[u]=void 0;break;case 7:Q[u]=typeof Q[u];break;case 20:d=o[t++],c=Q[u--],(s=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)})._v=[c,d,h],s._u=e,Q[++u]=s;break;case 24:for(c=Q[u--],s=null;U=p.pop();)if(2===U[0]||3===U[0]){s=U;break}if(s)t=s[2],s[0]=0,p.push(s);else{if(!R)return c;t=R[1],a=R[2],h=R[3],p=R[4],Q[++u]=c,R=R[0]}break;case 50:u-=d=o[t++],s=Q.slice(u+1,u+d+1),c=Q[u--],U=Q[u--],c._u===e?(c=c._v,R=[R,t,a,h,p],t=c[0],null==U&&(U=function(){return this}()),a=U,(h=[s].concat(s)).length=Math.min(c[1],d)+1,h.p=c[2],p=[]):(F=c.apply(U,s),Q[++u]=F);break;case 53:for(d=o[t++],U=[void 0],F=d;F>0;--F)U[F]=Q[u--];s=Q[u--],F=new(c=Function.bind.apply(s,U)),Q[++u]=F;break;case 29:t+=2+(d=(d=(o[t]<<8)+o[t+1])<<16>>16);break;case 56:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,(c=Q[u--])||(t+=d);break;case 19:--u;break;case 2:c=Q[u],Q[++u]=c;break;default:throw new Error("ioe")}}catch(e){for(;(d=p.pop())&&!d[0];);if(!d){e:for(;R;){for(c=R[4];d=c.pop();)if(d[0])break e;R=R[0]}if(!R)throw e;t=R[1],a=R[2],h=R[3],p=R[4],R=R[0]}1===(c=d[0])?(t=d[2],d[0]=0,p.push(d),Q[++u]=e):2===c?(t=d[2],d[0]=0,p.push(d)):(t=d[3],d[0]=2,p.push(d),Q[++u]=e)}}(d,[],0,t,n)}("504B01018bd91e22000002f7231fdb8a000003433f340002300202022600023000013201380019300001022600034b0000009d140230000232023400021d006d3c3002030f0004022600053c3002043001013201022600063002030f00070f000835020f00093202022600063002030f000a0f000835020f000b32020f000c32023201340003300001070f000d083800183000030226000e3001020226000f300001320132011d000125340002300002183000013700093c30030c3000023201183000002600100c002c3700083000000c003943363800093000000c00391d000125340001300205070f001136380007300205181d003730000137000c3002060f001239070f00113638000b3002060f001239181d00173002060f001339070f0011363800083002060f0013391843183000002600100c002c3700083000000c003943363800093000000c00391d000125340001300207070f001136380007300207181d001d30000137000c3002060f001439070f0011363800083002060f0014391843183000002600100c002c3700083000000c003943363800093000000c00391d0001253400013c30020d30000132013400023c30020e300001320134000325340004300002370003300003380062290000340005300003380020300005022600153000033201133000050226001530000326000026001632011330000238002030000502260015300002320113300005022600153000022600002600173201133c30020c30000532013800043f34000430000418290000340001300208070f0011363800a930000102260015300208260000260018320113300001022600153002092600002600193201133000010226001530020826000026001a32011330020a070f00113637004530020b2d0002453c081200073000020c001a0812000c30000226001b2d0002453c081200073000020c001a083800060c001a1d000c3000020226001c0f001d32010c011c0838000d3000010226001530020a3201133000010226001530020b26001e3201133000012600100c00083800043f1d00093c30020c3000013201184b00000000140134010c4b000000ad140034010d4b0000011c140034010e4b00000171140034010f4b0000022314003401103001002600002600013400013001012600002600013400024318001f0980d780d580c880d380c880d380de80d780c20880d380c880f480d380d580ce80c980c00780ce80d480e680d580d580c680de0680d580c280c380d280c480c20180f90680c480c880c980c480c680d30780d580c280d780cb80c680c480c21480fc8089808d808c809880f9808380dc80da808f808e80db80fc80fb80fa80fb808880fb80fb80fa0180c00380fb808380812f80d380c880f480d380d580ce80c980c080db808f80c180d280c980c480d380ce80c880c9808e8089808d8098808f8098809a80fb80fb80fb808f808e80db808780c180c880d580878089808c8098808f8098809a80fb80fb80fb80fa808e05808380968089808d80980180830880c180d280c980c480d380ce80c880c90480d380c280d480d30480c480c680cb80cb0680cb80c280c980c080d380cf0980d280c980c380c280c180ce80c980c280c31280ea80c680c980c680c080c280c380ea80c280c380ce80c680f480c880d280d580c480c21180f080c280c580ec80ce80d380ea80c280c380ce80c680f480c880d280d580c480c21380ea80c680c980c680c080c280c380f480c880d280d580c480c280e580d280c180c180c280d50480d780d280d480cf0c80c680d780d780c280c980c380e580d280c180c180c280d50f80c680c380c380f480c880d280d580c480c280e580d280c180c180c280d50680d280d780c380c680d380c20d80c480d580c280c680d380c280f480c280d480d480ce80c880c91080c680c380c380e280d180c280c980d380eb80ce80d480d380c280c980c280d50980d280d480c280d580e680c080c280c980d30780ce80c980c380c280df80e880c10880e280cb80c280c480d380d580c880c91b80d580c280d680d280c280d480d380ea80c280c380ce80c680ec80c280de80f480de80d480d380c280ca80e680c480c480c280d480d4",{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(t){e.isNativeFunction=t},get 13(){return lh},set 13(e){lh=e},get 14(){return dh},set 14(e){dh=e},get 15(){return e.checkMSEValid},set 15(t){e.checkMSEValid=t},get 16(){return e.checkEMEValid},set 16(t){e.checkEMEValid=t}},void 0);var _h={exports:{}},xh=!o((function(){return Object.isExtensible(Object.preventExtensions({}))})),Dh=be,Gh=V,Xh=g,Mh=w.f,Ph=xh,wh=Ve("meta"),Oh=0,$h=Object.isExtensible||function(){return!0},Yh=function(e){Mh(e,wh,{value:{objectID:"O"+ ++Oh,weakData:{}}})},Kh=_h.exports={REQUIRED:!1,fastKey:function(e,t){if(!Gh(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!Xh(e,wh)){if(!$h(e))return"F";if(!t)return"E";Yh(e)}return e[wh].objectID},getWeakData:function(e,t){if(!Xh(e,wh)){if(!$h(e))return!0;if(!t)return!1;Yh(e)}return e[wh].weakData},onFreeze:function(e){return Ph&&Kh.REQUIRED&&$h(e)&&!Xh(e,wh)&&Yh(e),e}};Dh[wh]=!0;var jh=_h.exports,Hh=jt,Ah=i,zh=Xt,qh=He,ep=jh,tp=No,np=Xi,rp=V,ip=o,ap=Xo,op=ni,lp=ss,dp=w.f,cp=Tr,sp=Gi,Up=fo,Fp=Xi,up=No,Qp=vi,Rp=Aa,hp=l,pp=jh.fastKey,Bp=Xe.set,Sp=Xe.getterFor,fp={getConstructor:function(e,t,n,r){var i=e((function(e,a){Fp(e,i,t),Bp(e,{type:t,index:cp(null),first:void 0,last:void 0,size:0}),hp||(e.size=0),null!=a&&up(a,e[r],{that:e,AS_ENTRIES:n})})),a=Sp(t),o=function(e,t,n){var r,i,o=a(e),d=l(e,t);return d?d.value=n:(o.last=d={index:i=pp(t,!0),key:t,value:n,previous:r=o.last,next:void 0,removed:!1},o.first||(o.first=d),r&&(r.next=d),hp?o.size++:e.size++,"F"!==i&&(o.index[i]=d)),e},l=function(e,t){var n,r=a(e),i=pp(t);if("F"!==i)return r.index[i];for(n=r.first;n;n=n.next)if(n.key==t)return n};return sp(i.prototype,{clear:function(){for(var e=a(this),t=e.index,n=e.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete t[n.index],n=n.next;e.first=e.last=void 0,hp?e.size=0:this.size=0},delete:function(e){var t=this,n=a(t),r=l(t,e);if(r){var i=r.next,o=r.previous;delete n.index[r.index],r.removed=!0,o&&(o.next=i),i&&(i.previous=o),n.first==r&&(n.first=i),n.last==r&&(n.last=o),hp?n.size--:t.size--}return!!r},forEach:function(e){for(var t,n=a(this),r=Up(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.next:n.first;)for(r(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!l(this,e)}}),sp(i.prototype,n?{get:function(e){var t=l(this,e);return t&&t.value},set:function(e,t){return o(this,0===e?0:e,t)}}:{add:function(e){return o(this,e=0===e?0:e,e)}}),hp&&dp(i.prototype,"size",{get:function(){return a(this).size}}),i},setStrong:function(e,t,n){var r=t+" Iterator",i=Sp(t),a=Sp(r);Qp(e,t,(function(e,t){Bp(this,{type:r,target:e,state:i(e),kind:t,last:void 0})}),(function(){for(var e=a(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),Rp(t)}};!function(e,t,n){var r=-1!==e.indexOf("Map"),i=-1!==e.indexOf("Weak"),a=r?"set":"add",o=Ah[e],l=o&&o.prototype,d=o,c={},s=function(e){var t=l[e];qh(l,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(i&&!rp(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return i&&!rp(e)?void 0:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(i&&!rp(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(zh(e,"function"!=typeof o||!(i||l.forEach&&!ip((function(){(new o).entries().next()})))))d=n.getConstructor(t,e,r,a),ep.REQUIRED=!0;else if(zh(e,!0)){var U=new d,F=U[a](i?{}:-0,1)!=U,u=ip((function(){U.has(1)})),Q=ap((function(e){new o(e)})),R=!i&&ip((function(){for(var e=new o,t=5;t--;)e[a](t,t);return!e.has(-0)}));Q||((d=t((function(t,n){np(t,d,e);var i=lp(new o,t,d);return null!=n&&tp(n,i[a],{that:i,AS_ENTRIES:r}),i}))).prototype=l,l.constructor=d),(u||R)&&(s("delete"),s("has"),r&&s("get")),(R||F)&&s(a),i&&l.clear&&delete l.clear}c[e]=d,Hh({global:!0,forced:d!=o},c),op(d,e),i||n.setStrong(d,e,r)}("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),fp);var mp=YQ.charAt,Vp=Xe,yp=vi,Ep="String Iterator",Zp=Vp.set,bp=Vp.getterFor(Ep);yp(String,"String",(function(e){Zp(this,{type:Ep,string:String(e),index:0})}),(function(){var e,t=bp(this),n=t.string,r=t.index;return r>=n.length?{value:void 0,done:!0}:(e=mp(n,r),t.index+=e.length,{value:e,done:!1})}));var Jp=$,vp=Qo,gp=function(){for(var e,t=Jp(this),n=vp(t.delete),r=!0,i=0,a=arguments.length;i<a;i++)e=n.call(t,arguments[i]),r=r&&e;return!!r};jt({target:"Map",proto:!0,real:!0,forced:!1},{deleteAll:function(){return gp.apply(this,arguments)}});var Tp=function(e){return Map.prototype.entries.call(e)},Wp=$,kp=fo,Np=Tp,Cp=No;jt({target:"Map",proto:!0,real:!0,forced:!1},{every:function(e){var t=Wp(this),n=Np(t),r=kp(e,arguments.length>1?arguments[1]:void 0,3);return!Cp(n,(function(e,n,i){if(!r(n,e,t))return i()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var Ip=et,Lp=$,_p=Qo,xp=fo,Dp=Oo,Gp=Tp,Xp=No;jt({target:"Map",proto:!0,real:!0,forced:!1},{filter:function(e){var t=Lp(this),n=Gp(t),r=xp(e,arguments.length>1?arguments[1]:void 0,3),i=new(Dp(t,Ip("Map"))),a=_p(i.set);return Xp(n,(function(e,n){r(n,e,t)&&a.call(i,e,n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),i}});var Mp=$,Pp=fo,wp=Tp,Op=No;jt({target:"Map",proto:!0,real:!0,forced:!1},{find:function(e){var t=Mp(this),n=wp(t),r=Pp(e,arguments.length>1?arguments[1]:void 0,3);return Op(n,(function(e,n,i){if(r(n,e,t))return i(n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var $p=$,Yp=fo,Kp=Tp,jp=No;jt({target:"Map",proto:!0,real:!0,forced:!1},{findKey:function(e){var t=$p(this),n=Kp(t),r=Yp(e,arguments.length>1?arguments[1]:void 0,3);return jp(n,(function(e,n,i){if(r(n,e,t))return i(e)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var Hp=$,Ap=Tp,zp=function(e,t){return e===t||e!=e&&t!=t},qp=No;jt({target:"Map",proto:!0,real:!0,forced:!1},{includes:function(e){return qp(Ap(Hp(this)),(function(t,n,r){if(zp(n,e))return r()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var eB=$,tB=Tp,nB=No;jt({target:"Map",proto:!0,real:!0,forced:!1},{keyOf:function(e){return nB(tB(eB(this)),(function(t,n,r){if(n===e)return r(t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var rB=et,iB=$,aB=Qo,oB=fo,lB=Oo,dB=Tp,cB=No;jt({target:"Map",proto:!0,real:!0,forced:!1},{mapKeys:function(e){var t=iB(this),n=dB(t),r=oB(e,arguments.length>1?arguments[1]:void 0,3),i=new(lB(t,rB("Map"))),a=aB(i.set);return cB(n,(function(e,n){a.call(i,r(n,e,t),n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),i}});var sB=et,UB=$,FB=Qo,uB=fo,QB=Oo,RB=Tp,hB=No;jt({target:"Map",proto:!0,real:!0,forced:!1},{mapValues:function(e){var t=UB(this),n=RB(t),r=uB(e,arguments.length>1?arguments[1]:void 0,3),i=new(QB(t,sB("Map"))),a=FB(i.set);return hB(n,(function(e,n){a.call(i,e,r(n,e,t))}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),i}});var pB=$,BB=Qo,SB=No;jt({target:"Map",proto:!0,real:!0,forced:!1},{merge:function(e){for(var t=pB(this),n=BB(t.set),r=0;r<arguments.length;)SB(arguments[r++],n,{that:t,AS_ENTRIES:!0});return t}});var fB=$,mB=Qo,VB=Tp,yB=No;jt({target:"Map",proto:!0,real:!0,forced:!1},{reduce:function(e){var t=fB(this),n=VB(t),r=arguments.length<2,i=r?void 0:arguments[1];if(mB(e),yB(n,(function(n,a){r?(r=!1,i=a):i=e(i,a,n,t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),r)throw TypeError("Reduce of empty map with no initial value");return i}});var EB=$,ZB=fo,bB=Tp,JB=No;jt({target:"Map",proto:!0,real:!0,forced:!1},{some:function(e){var t=EB(this),n=bB(t),r=ZB(e,arguments.length>1?arguments[1]:void 0,3);return JB(n,(function(e,n,i){if(r(n,e,t))return i()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var vB=$,gB=Qo;jt({target:"Map",proto:!0,real:!0,forced:!1},{update:function(e,t){var n=vB(this),r=arguments.length;gB(t);var i=n.has(e);if(!i&&r<3)throw TypeError("Updating absent value");var a=i?n.get(e):gB(r>2?arguments[2]:void 0)(e,n);return n.set(e,t(a,e,n)),n}});var TB={exports:{}};TB.exports=function(e){var t=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function n(e,t){var n=e[0],r=e[1],i=e[2],a=e[3];r=((r+=((i=((i+=((a=((a+=((n=((n+=(r&i|~r&a)+t[0]-680876936|0)<<7|n>>>25)+r|0)&r|~n&i)+t[1]-389564586|0)<<12|a>>>20)+n|0)&n|~a&r)+t[2]+606105819|0)<<17|i>>>15)+a|0)&a|~i&n)+t[3]-1044525330|0)<<22|r>>>10)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r&i|~r&a)+t[4]-176418897|0)<<7|n>>>25)+r|0)&r|~n&i)+t[5]+1200080426|0)<<12|a>>>20)+n|0)&n|~a&r)+t[6]-1473231341|0)<<17|i>>>15)+a|0)&a|~i&n)+t[7]-45705983|0)<<22|r>>>10)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r&i|~r&a)+t[8]+1770035416|0)<<7|n>>>25)+r|0)&r|~n&i)+t[9]-1958414417|0)<<12|a>>>20)+n|0)&n|~a&r)+t[10]-42063|0)<<17|i>>>15)+a|0)&a|~i&n)+t[11]-1990404162|0)<<22|r>>>10)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r&i|~r&a)+t[12]+1804603682|0)<<7|n>>>25)+r|0)&r|~n&i)+t[13]-40341101|0)<<12|a>>>20)+n|0)&n|~a&r)+t[14]-1502002290|0)<<17|i>>>15)+a|0)&a|~i&n)+t[15]+1236535329|0)<<22|r>>>10)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r&a|i&~a)+t[1]-165796510|0)<<5|n>>>27)+r|0)&i|r&~i)+t[6]-1069501632|0)<<9|a>>>23)+n|0)&r|n&~r)+t[11]+643717713|0)<<14|i>>>18)+a|0)&n|a&~n)+t[0]-373897302|0)<<20|r>>>12)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r&a|i&~a)+t[5]-701558691|0)<<5|n>>>27)+r|0)&i|r&~i)+t[10]+38016083|0)<<9|a>>>23)+n|0)&r|n&~r)+t[15]-660478335|0)<<14|i>>>18)+a|0)&n|a&~n)+t[4]-405537848|0)<<20|r>>>12)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r&a|i&~a)+t[9]+568446438|0)<<5|n>>>27)+r|0)&i|r&~i)+t[14]-1019803690|0)<<9|a>>>23)+n|0)&r|n&~r)+t[3]-187363961|0)<<14|i>>>18)+a|0)&n|a&~n)+t[8]+1163531501|0)<<20|r>>>12)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r&a|i&~a)+t[13]-1444681467|0)<<5|n>>>27)+r|0)&i|r&~i)+t[2]-51403784|0)<<9|a>>>23)+n|0)&r|n&~r)+t[7]+1735328473|0)<<14|i>>>18)+a|0)&n|a&~n)+t[12]-1926607734|0)<<20|r>>>12)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r^i^a)+t[5]-378558|0)<<4|n>>>28)+r|0)^r^i)+t[8]-2022574463|0)<<11|a>>>21)+n|0)^n^r)+t[11]+1839030562|0)<<16|i>>>16)+a|0)^a^n)+t[14]-35309556|0)<<23|r>>>9)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r^i^a)+t[1]-1530992060|0)<<4|n>>>28)+r|0)^r^i)+t[4]+1272893353|0)<<11|a>>>21)+n|0)^n^r)+t[7]-155497632|0)<<16|i>>>16)+a|0)^a^n)+t[10]-1094730640|0)<<23|r>>>9)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r^i^a)+t[13]+681279174|0)<<4|n>>>28)+r|0)^r^i)+t[0]-358537222|0)<<11|a>>>21)+n|0)^n^r)+t[3]-722521979|0)<<16|i>>>16)+a|0)^a^n)+t[6]+76029189|0)<<23|r>>>9)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r^i^a)+t[9]-640364487|0)<<4|n>>>28)+r|0)^r^i)+t[12]-421815835|0)<<11|a>>>21)+n|0)^n^r)+t[15]+530742520|0)<<16|i>>>16)+a|0)^a^n)+t[2]-995338651|0)<<23|r>>>9)+i|0,r=((r+=((a=((a+=(r^((n=((n+=(i^(r|~a))+t[0]-198630844|0)<<6|n>>>26)+r|0)|~i))+t[7]+1126891415|0)<<10|a>>>22)+n|0)^((i=((i+=(n^(a|~r))+t[14]-1416354905|0)<<15|i>>>17)+a|0)|~n))+t[5]-57434055|0)<<21|r>>>11)+i|0,r=((r+=((a=((a+=(r^((n=((n+=(i^(r|~a))+t[12]+1700485571|0)<<6|n>>>26)+r|0)|~i))+t[3]-1894986606|0)<<10|a>>>22)+n|0)^((i=((i+=(n^(a|~r))+t[10]-1051523|0)<<15|i>>>17)+a|0)|~n))+t[1]-2054922799|0)<<21|r>>>11)+i|0,r=((r+=((a=((a+=(r^((n=((n+=(i^(r|~a))+t[8]+1873313359|0)<<6|n>>>26)+r|0)|~i))+t[15]-30611744|0)<<10|a>>>22)+n|0)^((i=((i+=(n^(a|~r))+t[6]-1560198380|0)<<15|i>>>17)+a|0)|~n))+t[13]+1309151649|0)<<21|r>>>11)+i|0,r=((r+=((a=((a+=(r^((n=((n+=(i^(r|~a))+t[4]-145523070|0)<<6|n>>>26)+r|0)|~i))+t[11]-1120210379|0)<<10|a>>>22)+n|0)^((i=((i+=(n^(a|~r))+t[2]+718787259|0)<<15|i>>>17)+a|0)|~n))+t[9]-343485551|0)<<21|r>>>11)+i|0,e[0]=n+e[0]|0,e[1]=r+e[1]|0,e[2]=i+e[2]|0,e[3]=a+e[3]|0}function r(e){var t,n=[];for(t=0;t<64;t+=4)n[t>>2]=e.charCodeAt(t)+(e.charCodeAt(t+1)<<8)+(e.charCodeAt(t+2)<<16)+(e.charCodeAt(t+3)<<24);return n}function i(e){var t,n=[];for(t=0;t<64;t+=4)n[t>>2]=e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24);return n}function a(e){var t,i,a,o,l,d,c=e.length,s=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=c;t+=64)n(s,r(e.substring(t-64,t)));for(i=(e=e.substring(t-64)).length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t<i;t+=1)a[t>>2]|=e.charCodeAt(t)<<(t%4<<3);if(a[t>>2]|=128<<(t%4<<3),t>55)for(n(s,a),t=0;t<16;t+=1)a[t]=0;return o=(o=8*c).toString(16).match(/(.*?)(.{0,8})$/),l=parseInt(o[2],16),d=parseInt(o[1],16)||0,a[14]=l,a[15]=d,n(s,a),s}function o(e){var t,r,a,o,l,d,c=e.length,s=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=c;t+=64)n(s,i(e.subarray(t-64,t)));for(r=(e=t-64<c?e.subarray(t-64):new Uint8Array(0)).length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t<r;t+=1)a[t>>2]|=e[t]<<(t%4<<3);if(a[t>>2]|=128<<(t%4<<3),t>55)for(n(s,a),t=0;t<16;t+=1)a[t]=0;return o=(o=8*c).toString(16).match(/(.*?)(.{0,8})$/),l=parseInt(o[2],16),d=parseInt(o[1],16)||0,a[14]=l,a[15]=d,n(s,a),s}function l(e){var n,r="";for(n=0;n<4;n+=1)r+=t[e>>8*n+4&15]+t[e>>8*n&15];return r}function d(e){var t;for(t=0;t<e.length;t+=1)e[t]=l(e[t]);return e.join("")}function c(e){return/[\u0080-\uFFFF]/.test(e)&&(e=unescape(encodeURIComponent(e))),e}function s(e,t){var n,r=e.length,i=new ArrayBuffer(r),a=new Uint8Array(i);for(n=0;n<r;n+=1)a[n]=e.charCodeAt(n);return t?a:i}function U(e){return String.fromCharCode.apply(null,new Uint8Array(e))}function F(e,t,n){var r=new Uint8Array(e.byteLength+t.byteLength);return r.set(new Uint8Array(e)),r.set(new Uint8Array(t),e.byteLength),n?r:r.buffer}function u(e){var t,n=[],r=e.length;for(t=0;t<r-1;t+=2)n.push(parseInt(e.substr(t,2),16));return String.fromCharCode.apply(String,n)}function Q(){this.reset()}return d(a("hello")),"undefined"==typeof ArrayBuffer||ArrayBuffer.prototype.slice||function(){function t(e,t){return(e=0|e||0)<0?Math.max(e+t,0):Math.min(e,t)}ArrayBuffer.prototype.slice=function(n,r){var i,a,o,l,d=this.byteLength,c=t(n,d),s=d;return r!==e&&(s=t(r,d)),c>s?new ArrayBuffer(0):(i=s-c,a=new ArrayBuffer(i),o=new Uint8Array(a),l=new Uint8Array(this,c,i),o.set(l),a)}}(),Q.prototype.append=function(e){return this.appendBinary(c(e)),this},Q.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var t,i=this._buff.length;for(t=64;t<=i;t+=64)n(this._hash,r(this._buff.substring(t-64,t)));return this._buff=this._buff.substring(t-64),this},Q.prototype.end=function(e){var t,n,r=this._buff,i=r.length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<i;t+=1)a[t>>2]|=r.charCodeAt(t)<<(t%4<<3);return this._finish(a,i),n=d(this._hash),e&&(n=u(n)),this.reset(),n},Q.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},Q.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},Q.prototype.setState=function(e){return this._buff=e.buff,this._length=e.length,this._hash=e.hash,this},Q.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},Q.prototype._finish=function(e,t){var r,i,a,o=t;if(e[o>>2]|=128<<(o%4<<3),o>55)for(n(this._hash,e),o=0;o<16;o+=1)e[o]=0;r=(r=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),i=parseInt(r[2],16),a=parseInt(r[1],16)||0,e[14]=i,e[15]=a,n(this._hash,e)},Q.hash=function(e,t){return Q.hashBinary(c(e),t)},Q.hashBinary=function(e,t){var n=d(a(e));return t?u(n):n},Q.ArrayBuffer=function(){this.reset()},Q.ArrayBuffer.prototype.append=function(e){var t,r=F(this._buff.buffer,e,!0),a=r.length;for(this._length+=e.byteLength,t=64;t<=a;t+=64)n(this._hash,i(r.subarray(t-64,t)));return this._buff=t-64<a?new Uint8Array(r.buffer.slice(t-64)):new Uint8Array(0),this},Q.ArrayBuffer.prototype.end=function(e){var t,n,r=this._buff,i=r.length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<i;t+=1)a[t>>2]|=r[t]<<(t%4<<3);return this._finish(a,i),n=d(this._hash),e&&(n=u(n)),this.reset(),n},Q.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},Q.ArrayBuffer.prototype.getState=function(){var e=Q.prototype.getState.call(this);return e.buff=U(e.buff),e},Q.ArrayBuffer.prototype.setState=function(e){return e.buff=s(e.buff,!0),Q.prototype.setState.call(this,e)},Q.ArrayBuffer.prototype.destroy=Q.prototype.destroy,Q.ArrayBuffer.prototype._finish=Q.prototype._finish,Q.ArrayBuffer.hash=function(e,t){var n=d(o(new Uint8Array(e)));return t?u(n):n},Q}();var WB=n(TB.exports),kB="KekHelper",NB="-----BEGIN PUBLIC KEY-----",CB="-----END PUBLIC KEY-----";function IB(e){return String.fromCharCode.apply(null,new Uint8Array(e))}function LB(e){return new Uint8Array(e.split("").map((function(e){return e.charCodeAt(0)})))}function _B(e,t,n){return xB.apply(this,arguments)}function xB(){return(xB=At(ln().mark((function e(t,n,r){var i,a,o,l;return ln().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=LB(t),e.next=3,crypto.subtle.importKey("pkcs8",i,{name:r.name,hash:r.hash},!0,["decrypt"]);case 3:return a=e.sent,o=LB(n),e.next=7,crypto.subtle.importKey("spki",o,{name:r.name,hash:r.hash},!0,["encrypt"]);case 7:return l=e.sent,e.abrupt("return",{privateKey:a,publicKey:l});case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function DB(){return GB.apply(this,arguments)}function GB(){return(GB=At(ln().mark((function e(){var t,n,r,i,a,o,l,d,c,s,U,F,u,Q,R,h,p,B;return ln().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t={name:"RSA-OAEP",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:"SHA-256"},n=null,r="",i="",a="",l=/kek=localstorage/gi.test("object"===("undefined"==typeof location?"undefined":sn(location))?location.href:""),e.prev=7,d=performance.now(),!(c=l?localStorage.getItem("player_keypair"):null)){e.next=23;break}if(!((s=JSON.parse(c))&&s.privateKey&&s.publicKey)){e.next=23;break}return LR(kB,"Found key pair in local storage",s),r=s.privateKey,i=s.publicKey,a=atob(s.publicKey.replace(NB,"").replace(CB,"").replace(/\s/g,"")),o=atob(s.privateKey.replace("-----BEGIN PRIVATE KEY-----","").replace("-----END PRIVATE KEY-----","").replace(/\s/g,"")),e.next=20,_B(o,a,t);case 20:n=e.sent,U=performance.now(),LR(kB,"importKeyPair took ".concat(U-d," milliseconds"));case 23:e.next=28;break;case 25:e.prev=25,e.t0=e.catch(7),LR(kB,"importKeyPair error:",e.t0);case 28:if(n){e.next=46;break}return F=performance.now(),e.next=32,PR(t);case 32:return n=e.sent,e.next=35,crypto.subtle.exportKey("pkcs8",n.privateKey);case 35:return u=e.sent,Q=IB(u),r=window.btoa(Q),e.next=40,crypto.subtle.exportKey("spki",n.publicKey);case 40:R=e.sent,a=IB(R),i=window.btoa(a),h=performance.now(),LR(kB,"keyPair generated, took ".concat(h-F," milliseconds")),l&&localStorage.setItem("player_keypair",JSON.stringify({privateKey:r,publicKey:i}));case 46:return p="".concat(NB,"\n").concat(i,"\n").concat(CB),LR(kB,"Public key (PEM format): \n".concat(p)),B=btoa(ZR(a.split("")).join("")),LR(kB,"drmKeK: ".concat(B)),e.abrupt("return",{keyPair:n,drmKeK:B});case 51:case"end":return e.stop()}}),e,null,[[7,25]])})))).apply(this,arguments)}var XB={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 MB(e,t){return PB.apply(this,arguments)}function PB(){return(PB=At(ln().mark((function e(t,n){var r,i,a,o,l;return ln().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.iv,i=n.tagLength,a=n.data,o=null,t=oh.StringToArrayBuffer(t),a=oh.Base64ToHex(a,!0),e.prev=4,e.next=7,crypto.subtle.importKey("raw",t,"AES-GCM",!0,["encrypt","decrypt"]);case 7:l=e.sent,e.next=13;break;case 10:throw e.prev=10,e.t0=e.catch(4),"importKey: ".concat((null===e.t0||void 0===e.t0?void 0:e.t0.message)||e.t0);case 13:return e.prev=13,e.next=16,crypto.subtle.decrypt({name:"AES-GCM",iv:new Uint8Array(r),tagLength:i},l,a);case 16:o=e.sent,e.next=30;break;case 19:if(e.prev=19,e.t1=e.catch(13),"OperationError"!==String(e.t1)){e.next=25;break}throw"Wrong Password.";case 25:if("InvalidAccessError"!==String(e.t1)){e.next=29;break}throw"Invalid Key";case 29:throw e.t1;case 30:return e.abrupt("return",new TextDecoder("utf-8").decode(o));case 31:case"end":return e.stop()}}),e,null,[[4,10],[13,19]])})))).apply(this,arguments)}function wB(e,t){return OB.apply(this,arguments)}function OB(){return(OB=At(ln().mark((function e(t,n){var r,i,a,o,l,d,c;return ln().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.iv,i=n.tagLength,a=n.data,o=btoa(oh.ArrayBufferToString(r)),l=XB.codec.base64.toBits(o),d=XB.codec.utf8String.toBits(t),c=new XB.cipher.aes(d),e.abrupt("return",XB.codec.utf8String.fromBits(XB.mode.gcm.decrypt(c,XB.codec.base64.toBits(a),l,[],i)));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}XB.cipher.aes=function(e){this._tables[0][0][0]||this._precompute();var t,n,r,i,a,o=this._tables[0][4],l=this._tables[1],d=e.length,c=1;if(4!==d&&6!==d&&8!==d)throw new XB.exception.invalid("invalid aes key size");for(this._key=[i=e.slice(0),a=[]],t=d;t<4*d+28;t++)r=i[t-1],(t%d==0||8===d&&t%d==4)&&(r=o[r>>>24]<<24^o[r>>16&255]<<16^o[r>>8&255]<<8^o[255&r],t%d==0&&(r=r<<8^r>>>24^c<<24,c=c<<1^283*(c>>7))),i[t]=i[t-d]^r;for(n=0;t;n++,t--)r=i[3&n?t:t-4],a[n]=t<=4||n<4?r:l[0][o[r>>>24]]^l[1][o[r>>16&255]]^l[2][o[r>>8&255]]^l[3][o[255&r]]},XB.cipher.aes.prototype={encrypt:function(e){return this._crypt(e,0)},decrypt:function(e){return this._crypt(e,1)},_tables:[[[],[],[],[],[]],[[],[],[],[],[]]],_precompute:function(){var e,t,n,r,i,a,o,l,d=this._tables[0],c=this._tables[1],s=d[4],U=c[4],F=[],u=[];for(e=0;e<256;e++)u[(F[e]=e<<1^283*(e>>7))^e]=e;for(t=n=0;!s[t];t^=r||1,n=u[n]||1)for(a=(a=n^n<<1^n<<2^n<<3^n<<4)>>8^255&a^99,s[t]=a,U[a]=t,l=16843009*F[i=F[r=F[t]]]^65537*i^257*r^16843008*t,o=257*F[a]^16843008*a,e=0;e<4;e++)d[e][t]=o=o<<24^o>>>8,c[e][a]=l=l<<24^l>>>8;for(e=0;e<5;e++)d[e]=d[e].slice(0),c[e]=c[e].slice(0)},_crypt:function(e,t){if(4!==e.length)throw new XB.exception.invalid("invalid aes block size");var n,r,i,a,o=this._key[t],l=e[0]^o[0],d=e[t?3:1]^o[1],c=e[2]^o[2],s=e[t?1:3]^o[3],U=o.length/4-2,F=4,u=[0,0,0,0],Q=this._tables[t],R=Q[0],h=Q[1],p=Q[2],B=Q[3],S=Q[4];for(a=0;a<U;a++)n=R[l>>>24]^h[d>>16&255]^p[c>>8&255]^B[255&s]^o[F],r=R[d>>>24]^h[c>>16&255]^p[s>>8&255]^B[255&l]^o[F+1],i=R[c>>>24]^h[s>>16&255]^p[l>>8&255]^B[255&d]^o[F+2],s=R[s>>>24]^h[l>>16&255]^p[d>>8&255]^B[255&c]^o[F+3],F+=4,l=n,d=r,c=i;for(a=0;a<4;a++)u[t?3&-a:a]=S[l>>>24]<<24^S[d>>16&255]<<16^S[c>>8&255]<<8^S[255&s]^o[F++],n=l,l=d,d=c,c=s,s=n;return u}},XB.bitArray={bitSlice:function(e,t,n){return e=XB.bitArray._shiftRight(e.slice(t/32),32-(31&t)).slice(1),void 0===n?e:XB.bitArray.clamp(e,n-t)},extract:function(e,t,n){var r=Math.floor(-t-n&31);return(-32&(t+n-1^t)?e[t/32|0]<<32-r^e[t/32+1|0]>>>r:e[t/32|0]>>>r)&(1<<n)-1},concat:function(e,t){if(0===e.length||0===t.length)return e.concat(t);var n=e[e.length-1],r=XB.bitArray.getPartial(n);return 32===r?e.concat(t):XB.bitArray._shiftRight(t,r,0|n,e.slice(0,e.length-1))},bitLength:function(e){var t,n=e.length;return 0===n?0:(t=e[n-1],32*(n-1)+XB.bitArray.getPartial(t))},clamp:function(e,t){if(32*e.length<t)return e;var n=(e=e.slice(0,Math.ceil(t/32))).length;return t&=31,n>0&&t&&(e[n-1]=XB.bitArray.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial:function(e,t,n){return 32===e?t:(n?0|t:t<<32-e)+1099511627776*e},getPartial:function(e){return Math.round(e/1099511627776)||32},equal:function(e,t){if(XB.bitArray.bitLength(e)!==XB.bitArray.bitLength(t))return!1;var n,r=0;for(n=0;n<e.length;n++)r|=e[n]^t[n];return 0===r},_shiftRight:function(e,t,n,r){var i,a,o;for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(i=0;i<e.length;i++)r.push(n|e[i]>>>t),n=e[i]<<32-t;return a=e.length?e[e.length-1]:0,o=XB.bitArray.getPartial(a),r.push(XB.bitArray.partial(t+o&31,t+o>32?n:r.pop(),1)),r},_xor4:function(e,t){return[e[0]^t[0],e[1]^t[1],e[2]^t[2],e[3]^t[3]]},byteswapM:function(e){var t,n;for(t=0;t<e.length;++t)n=e[t],e[t]=n>>>24|n>>>8&65280|(65280&n)<<8|n<<24;return e}},XB.codec.utf8String={fromBits:function(e){var t,n,r="",i=XB.bitArray.bitLength(e);for(t=0;t<i/8;t++)3&t||(n=e[t/4]),r+=String.fromCharCode(n>>>8>>>8>>>8),n<<=8;return decodeURIComponent(escape(r))},toBits:function(e){e=unescape(encodeURIComponent(e));var t,n=[],r=0;for(t=0;t<e.length;t++)r=r<<8|e.charCodeAt(t),3&~t||(n.push(r),r=0);return 3&t&&n.push(XB.bitArray.partial(8*(3&t),r)),n}},XB.codec.base64={_chars:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fromBits:function(e,t,n){var r,i="",a=0,o=XB.codec.base64._chars,l=0,d=XB.bitArray.bitLength(e);for(n&&(o=o.substr(0,62)+"-_"),r=0;6*i.length<d;)i+=o.charAt((l^e[r]>>>a)>>>26),a<6?(l=e[r]<<6-a,a+=26,r++):(l<<=6,a-=6);for(;3&i.length&&!t;)i+="=";return i},toBits:function(e,t){e=e.replace(/\s|=/g,"");var n,r,i=[],a=0,o=XB.codec.base64._chars,l=0;for(t&&(o=o.substr(0,62)+"-_"),n=0;n<e.length;n++){if((r=o.indexOf(e.charAt(n)))<0)throw new XB.exception.invalid("this isn't base64!");a>26?(a-=26,i.push(l^r>>>a),l=r<<32-a):l^=r<<32-(a+=6)}return 56&a&&i.push(XB.bitArray.partial(56&a,l,1)),i}},XB.codec.base64url={fromBits:function(e){return XB.codec.base64.fromBits(e,1,1)},toBits:function(e){return XB.codec.base64.toBits(e,1)}},XB.mode.gcm={name:"gcm",encrypt:function(e,t,n,r,i){var a,o=t.slice(0),l=XB.bitArray;return i=i||128,r=r||[],a=XB.mode.gcm._ctrMode(!0,e,o,r,n,i),l.concat(a.data,a.tag)},decrypt:function(e,t,n,r,i){var a,o,l=t.slice(0),d=XB.bitArray,c=d.bitLength(l);if(r=r||[],(i=i||128)<=c?(o=d.bitSlice(l,c-i),l=d.bitSlice(l,0,c-i)):(o=l,l=[]),a=XB.mode.gcm._ctrMode(!1,e,l,r,n,i),!d.equal(a.tag,o))throw new XB.exception.corrupt("gcm: tag doesn't match");return a.data},_galoisMultiply:function(e,t){var n,r,i,a,o,l=XB.bitArray._xor4;for(i=[0,0,0,0],a=t.slice(0),n=0;n<128;n++){for(!!(e[Math.floor(n/32)]&1<<31-n%32)&&(i=l(i,a)),o=!!(1&a[3]),r=3;r>0;r--)a[r]=a[r]>>>1|(1&a[r-1])<<31;a[0]=a[0]>>>1,o&&(a[0]=a[0]^225<<24)}return i},_ghash:function(e,t,n){var r,i,a=n.length;for(r=t.slice(0),i=0;i<a;i+=4)r[0]^=4294967295&n[i],r[1]^=4294967295&n[i+1],r[2]^=4294967295&n[i+2],r[3]^=4294967295&n[i+3],r=XB.mode.gcm._galoisMultiply(r,e);return r},_ctrMode:function(e,t,n,r,i,a){var o,l,d,c,s,U,F,u,Q,R,h,p,B=XB.bitArray;for(Q=n.length,R=B.bitLength(n),h=B.bitLength(r),p=B.bitLength(i),o=t.encrypt([0,0,0,0]),96===p?(l=i.slice(0),l=B.concat(l,[1])):(l=XB.mode.gcm._ghash(o,[0,0,0,0],i),l=XB.mode.gcm._ghash(o,l,[0,0,Math.floor(p/4294967296),4294967295&p])),d=XB.mode.gcm._ghash(o,[0,0,0,0],r),U=l.slice(0),F=d.slice(0),e||(F=XB.mode.gcm._ghash(o,d,n)),s=0;s<Q;s+=4)U[3]++,c=t.encrypt(U),n[s]^=c[0],n[s+1]^=c[1],n[s+2]^=c[2],n[s+3]^=c[3];return n=B.clamp(n,R),e&&(F=XB.mode.gcm._ghash(o,d,n)),u=[Math.floor(h/4294967296),4294967295&h,Math.floor(R/4294967296),4294967295&R],F=XB.mode.gcm._ghash(o,F,u),c=t.encrypt(l),F[0]^=c[0],F[1]^=c[1],F[2]^=c[2],F[3]^=c[3],{tag:B.bitSlice(F,0,a),data:n}}};var $B,YB={webCryptoDecrypt:MB,decrypt:($B=At(ln().mark((function e(t,n){var r,i;return ln().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("string"==typeof n&&(n=JSON.parse(n)),!n.enableSoftwareAES&&null!==(r=crypto)&&void 0!==r&&r.subtle){e.next=7;break}return e.next=4,wB(t,n);case 4:i=e.sent,e.next=18;break;case 7:return e.prev=7,e.next=10,MB(t,n);case 10:i=e.sent,e.next=18;break;case 13:return e.prev=13,e.t0=e.catch(7),e.next=17,wB(t,n);case 17:i=e.sent;case 18:return e.abrupt("return",i);case 19:case"end":return e.stop()}}),e,null,[[7,13]])}))),function(e,t){return $B.apply(this,arguments)})};function KB(e,t,n){function r(e,t){var n=parseInt(e.slice(t,t+2),16);return n>>>7==0?[1,n]:n>>>6==2?(n=(63&n)<<8,[2,n+=parseInt(e.slice(t+2,t+4),16)]):(n=(63&n)<<16,[3,n+=parseInt(e.slice(t+2,t+6),16)])}var i,a=0,o=[],l=[];for(i=0;i<4;++i)a+=(3&parseInt(e.slice(8+2*i,10+2*i),16))<<2*i;var d=parseInt(e.slice(16,24),16),c=2*parseInt(e.slice(32,40),16);for(i=40;i<c+40;i+=2)o.push(parseInt(e.slice(i,i+2),16));var s=c+40,U=parseInt(e.slice(s,s+4),16);for(s+=4,i=0;i<U;++i){var F=r(e,s);s+=2*F[0];for(var u="",Q=0;Q<F[1];++Q){var R=r(e,s);u+=String.fromCharCode(a^R[1]),s+=2*R[0]}l.push(u)}return t.p=null,function e(t,n,r,i,a){var d,c,s,U,F,u=-1,Q=[],R=null,h=[n];for(c=Math.min(n.length,r),s=0;s<c;++s)h.push(n[s]);h.p=i;for(var p=[];;)try{switch(o[t++]){case 63:Q[++u]=!0;break;case 37:Q[++u]=!1;break;case 60:Q[++u]=null;break;case 12:d=o[t++],Q[++u]=d<<24>>24;break;case 75:d=((d=((d=o[t++])<<8)+o[t++])<<8)+o[t++],Q[++u]=(d<<8)+o[t++];break;case 15:d=(o[t]<<8)+o[t+1],t+=2,Q[++u]=l[d];break;case 67:Q[++u]=void 0;break;case 32:Q[++u]=a;break;case 41:d=(o[t]<<8)+o[t+1],t+=2,u=u-d+1,c=Q.slice(u,u+d),Q[u]=c;break;case 65:Q[++u]={};break;case 39:d=(o[t]<<8)+o[t+1],t+=2,c=l[d],s=Q[u--],Q[u][c]=s;break;case 48:for(c=o[t++],s=o[t++],U=h;c>0;--c)U=U.p;Q[++u]=U[s];break;case 38:d=(o[t]<<8)+o[t+1],t+=2,c=l[d],Q[u]=Q[u][c];break;case 57:c=Q[u--],Q[u]=Q[u][c];break;case 52:for(c=o[t++],s=o[t++],U=h;c>0;--c)U=U.p;U[s]=Q[u--];break;case 59:d=(o[t]<<8)+o[t+1],t+=2,c=l[d],s=Q[u--],U=Q[u--],s[c]=U;break;case 35:c=Q[u--],s=Q[u--],U=Q[u--],s[c]=U;break;case 45:for(c=o[t++],s=o[t++],U=h,U=h;c>0;--c)U=U.p;Q[++u]=U,Q[++u]=s;break;case 71:c=Q[u--],Q[u]+=c;break;case 28:Q[u]=-Q[u];break;case 8:c=Q[u--],Q[u]=Q[u]===c;break;case 54:c=Q[u--],Q[u]=Q[u]!==c;break;case 44:c=Q[u--],Q[u]=Q[u]>c;break;case 68:Q[u]=!Q[u];break;case 55:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,Q[u]?--u:t+=d;break;case 18:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,Q[u]?t+=d:--u;break;case 69:c=Q[u--],(s=Q[u--])[c]=Q[u];break;case 26:Q[u]=void 0;break;case 7:Q[u]=typeof Q[u];break;case 20:d=o[t++],c=Q[u--],(s=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)})._v=[c,d,h],s._u=e,Q[++u]=s;break;case 13:d=o[t++],c=Q[u--],(U=[s=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)}]).p=h,s._v=[c,d,U],s._u=e,Q[++u]=s;break;case 33:throw c=Q[u--];case 24:for(c=Q[u--],s=null;U=p.pop();)if(2===U[0]||3===U[0]){s=U;break}if(s)t=s[2],s[0]=0,p.push(s);else{if(!R)return c;t=R[1],a=R[2],h=R[3],p=R[4],Q[++u]=c,R=R[0]}break;case 50:u-=d=o[t++],s=Q.slice(u+1,u+d+1),c=Q[u--],U=Q[u--],c._u===e?(c=c._v,R=[R,t,a,h,p],t=c[0],null==U&&(U=function(){return this}()),a=U,(h=[s].concat(s)).length=Math.min(c[1],d)+1,h.p=c[2],p=[]):(F=c.apply(U,s),Q[++u]=F);break;case 53:for(d=o[t++],U=[void 0],F=d;F>0;--F)U[F]=Q[u--];s=Q[u--],F=new(c=Function.bind.apply(s,U)),Q[++u]=F;break;case 29:t+=2+(d=(d=(o[t]<<8)+o[t+1])<<16>>16);break;case 56:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,(c=Q[u--])||(t+=d);break;case 36:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,c=Q[u--],Q[u]===c&&(--u,t+=d);break;case 19:--u;break;case 2:c=Q[u],Q[++u]=c;break;default:throw new Error("ioe")}}catch(e){for(;(d=p.pop())&&!d[0];);if(!d){e:for(;R;){for(c=R[4];d=c.pop();)if(d[0])break e;R=R[0]}if(!R)throw e;t=R[1],a=R[2],h=R[3],p=R[4],R=R[0]}1===(c=d[0])?(t=d[2],d[0]=0,p.push(d),Q[++u]=e):2===c?(t=d[2],d[0]=0,p.push(d)):(t=d[3],d[0]=2,p.push(d),Q[++u]=e)}}(d,[],0,t,n)}e.TRANSFORM_IV=void 0,e.transformUnionKey=void 0,function(e,t,n){function r(e,t){var n=parseInt(e.slice(t,t+2),16);return n>>>7==0?[1,n]:n>>>6==2?(n=(63&n)<<8,[2,n+=parseInt(e.slice(t+2,t+4),16)]):(n=(63&n)<<16,[3,n+=parseInt(e.slice(t+2,t+6),16)])}var i,a=0,o=[],l=[];for(i=0;i<4;++i)a+=(3&parseInt(e.slice(8+2*i,10+2*i),16))<<2*i;var d=parseInt(e.slice(16,24),16),c=2*parseInt(e.slice(32,40),16);for(i=40;i<c+40;i+=2)o.push(parseInt(e.slice(i,i+2),16));var s=c+40,U=parseInt(e.slice(s,s+4),16);for(s+=4,i=0;i<U;++i){var F=r(e,s);s+=2*F[0];for(var u="",Q=0;Q<F[1];++Q){var R=r(e,s);u+=String.fromCharCode(a^R[1]),s+=2*R[0]}l.push(u)}t.p=null,function e(t,n,r,i,a){var d,c,s,U,F,u=-1,Q=[],R=null,h=[n];for(c=Math.min(n.length,r),s=0;s<c;++s)h.push(n[s]);h.p=i;for(var p=[];;)try{switch(o[t++]){case 60:Q[++u]=null;break;case 12:d=o[t++],Q[++u]=d<<24>>24;break;case 21:d=(o[t]<<8)+o[t+1],t+=2,Q[++u]=d<<16>>16;break;case 75:d=((d=((d=o[t++])<<8)+o[t++])<<8)+o[t++],Q[++u]=(d<<8)+o[t++];break;case 15:d=(o[t]<<8)+o[t+1],t+=2,Q[++u]=l[d];break;case 67:Q[++u]=void 0;break;case 32:Q[++u]=a;break;case 41:d=(o[t]<<8)+o[t+1],t+=2,u=u-d+1,c=Q.slice(u,u+d),Q[u]=c;break;case 65:Q[++u]={};break;case 39:d=(o[t]<<8)+o[t+1],t+=2,c=l[d],s=Q[u--],Q[u][c]=s;break;case 48:for(c=o[t++],s=o[t++],U=h;c>0;--c)U=U.p;Q[++u]=U[s];break;case 38:d=(o[t]<<8)+o[t+1],t+=2,c=l[d],Q[u]=Q[u][c];break;case 52:for(c=o[t++],s=o[t++],U=h;c>0;--c)U=U.p;U[s]=Q[u--];break;case 59:d=(o[t]<<8)+o[t+1],t+=2,c=l[d],s=Q[u--],U=Q[u--],s[c]=U;break;case 69:c=Q[u--],(s=Q[u--])[c]=Q[u];break;case 20:d=o[t++],c=Q[u--],(s=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)})._v=[c,d,h],s._u=e,Q[++u]=s;break;case 13:d=o[t++],c=Q[u--],(U=[s=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)}]).p=h,s._v=[c,d,U],s._u=e,Q[++u]=s;break;case 24:for(c=Q[u--],s=null;U=p.pop();)if(2===U[0]||3===U[0]){s=U;break}if(s)t=s[2],s[0]=0,p.push(s);else{if(!R)return c;t=R[1],a=R[2],h=R[3],p=R[4],Q[++u]=c,R=R[0]}break;case 50:u-=d=o[t++],s=Q.slice(u+1,u+d+1),c=Q[u--],U=Q[u--],c._u===e?(c=c._v,R=[R,t,a,h,p],t=c[0],null==U&&(U=function(){return this}()),a=U,(h=[s].concat(s)).length=Math.min(c[1],d)+1,h.p=c[2],p=[]):(F=c.apply(U,s),Q[++u]=F);break;case 53:for(d=o[t++],U=[void 0],F=d;F>0;--F)U[F]=Q[u--];s=Q[u--],F=new(c=Function.bind.apply(s,U)),Q[++u]=F;break;case 29:t+=2+(d=(d=(o[t]<<8)+o[t+1])<<16>>16);break;case 56:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,(c=Q[u--])||(t+=d);break;case 36:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,c=Q[u--],Q[u]===c&&(--u,t+=d);break;case 19:--u;break;case 2:c=Q[u],Q[++u]=c;break;default:throw new Error("ioe")}}catch(e){for(;(d=p.pop())&&!d[0];);if(!d){e:for(;R;){for(c=R[4];d=c.pop();)if(d[0])break e;R=R[0]}if(!R)throw e;t=R[1],a=R[2],h=R[3],p=R[4],R=R[0]}1===(c=d[0])?(t=d[2],d[0]=0,p.push(d),Q[++u]=e):2===c?(t=d[2],d[0]=0,p.push(d)):(t=d[3],d[0]=2,p.push(d),Q[++u]=e)}}(d,[],0,t,n)}("504B01018bd91e22000000d9231fdb8a0000011a30010102260001203000003202183c3002013c3002023200022600024b000000380d023201320134010130010102260001203000003202183c3004023200022600034b0000004f0d013001003202180c013800833000012600043000010f0005450c002400140c032400460c0524005a0f0006240054131d005a3006040226000730020232013402030c033000013b0004300603022600083002034130020127000930060527000a15008027000b32021830000126000c3402043000010226000d0f000e3002043202183000010226000f3200181dff7843184b0000000014023401064b0000000e14003400013001000c5b0c680c450c4b15009c1500ab1500ee0c471500ca0c041500f40c0529000c3501260000340105431800100680c580d280c180c180c280d50580c680d780d780cb80de0480ca80c680d580cc0480d080d580c680d70480c980c280df80d30480d780d580c280d10380c280c980c30480cf80c680d480cf0780c380c280c480d580de80d780d30480c380c680d380c60280ce80d10980d380c680c080eb80c280c980c080d380cf0480d480c280c980d30680c680c580d580d280d780d30680d580c280d380d280d580c90480d480d380c880d7",{0:Uint8Array,get 1(){return At},get 2(){return ln},get 3(){return YB},get 4(){return WB},get 5(){return e.TRANSFORM_IV},set 5(t){e.TRANSFORM_IV=t},get 6(){return e.transformUnionKey},set 6(t){e.transformUnionKey=t}},void 0);var jB="volcvui",HB=new Map,AB=new Map,zB=void 0,qB=function(){function t(n){var r;return qt(this,t),(r=zt(this,t)).EMEError=function(t){r.emit(e.EVENT_EME.ERROR,t)},r.encryptHandle=function(){var t;null===(t=r.eme)||void 0===t||t.emit(e.EVENT_EME.ENCRYPTED)},r.config=qB.defaultConfig,r.updateConfig(n),r.config.isEncrypt=!!(r.config.kid||r.config.drm||r.config.secretKey||r.config.drmKeyToken||r.config.keyValue),r.on(e.EVENT_EME.ENCRYPTED,r.encryptHandle),r}return an(t,Vu),tn(t,[{key:"destroy",value:function(){this.removeAllListeners(),this.eme&&(this.eme.destroy(),this.eme=null)}},{key:"log",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];LR.apply(void 0,[e].concat(n))}},{key:"setupEME",value:function(e){this.eme&&this.eme.setupEME(e)}},{key:"updateConfig",value:function(e){var t=this;Object.keys(e).map((function(n){void 0!==e[n]&&null!==e[n]&&(t.config[n]=e[n])})),this.log("set config",JSON.stringify(this.config))}},{key:"setOptions",value:function(e){this.eme&&this.eme.setOptions(e)}},{key:"getSecretKeyByToken",value:function(e,t,n){var r=this,i=this.config,a=e||i.kid,o=t||i.playDomain||"";o.indexOf("//")<0&&(o="//".concat(o));var l=n||i.drmKeyToken||"",d=oh.isBase64(l)?window.atob(l):l,c="".concat(o,"?").concat(d,"&PlayAuthIds=").concat(a,"&ssl=true");d.indexOf("DrmType=")<0&&(c+="&DrmType=".concat(i.useUnionInfoDRM?"webdevice":"22")),this.log("getSecretKeyByToken start, vid,",i.vid,c);var s=Promise.withResolvers(),U=s.promise,F=s.resolve,u=s.reject;return vR({type:"json",method:"GET",url:c}).then((function(e){var t,n,a=e.response;if("string"==typeof a&&(a=JSON.parse(a)),a&&null!==(t=a)&&void 0!==t&&t.Result&&(null===(n=a.Result.PlayAuthInfoList)||void 0===n?void 0:n.length)>0){var o=a.Result.PlayAuthInfoList[0].PlayAuthContent;r.log("getSecretKeyByToken end, vid,",i.vid,",res,",JSON.stringify(a)),F(o)}else u(new Error("getSecretKeyByToken end, vid, ".concat(i.vid,", response null")))})).catch((function(e){u(e)})),U}},{key:"getLicense",value:function t(){return KB("504B01018bd91e220000031e231fdb8a000003a13c30030332000226000b4b000000220d013001003c0c050c202900022900013204180c013802f530000126000c3000010f000d450c002400460c032400670c0a2401060c0b24010a0c132401e10c162401f00c172401f40c192401fa0c1a2401fb0c202402560c252402880c2724028e0c2924029a0f000e240294131d029a410f000f270010252700113402010c033000013b000c3004010226001230020130040a3202183004012600002d020245133002022600132d020345133002022600142d020445133004041200033002031200033002041200093004012600002600154438000b0c273000013b000c1d02290c053000013b000d3004012600002600151200033002043402073002031200093004043700033004054438000b0c0b3000013b000c1d01f10c0a3000013b000c3c3005043004033002033004043004053004063005053206183000012600163402073004043700093002072d0205453c363700073002050c001a3637000630020526001738000d300207260017300404391d00033002073402083004012600002d020a451330020a2600182d020b451330020a2600192d020c45133004010226001a320034020d3002084437000d3004012600002600142d0208451330020b37000330020d3700183005060226001b30020d26001c30020d26001d30020c32034438000b0c193000013b000c1d011a300507070f001e084438000b0c163000013b000c1d01030c133000013b000c3c30050730020830020d26001d3202183000012600163402090c173000013b000c1d00d73005080f001f3501210c1a3000013b000c1d00c33002083402093004043700093002072d0206453c363700073002060c001a36370006300206260017380016300209300207260017300404233002073002013b00153002093002013b00143f3002013b00113c3004093002013201130c253000013b000c1d005d0c203000013b000d300001020f0020390c0532013000013b0021253002013b00113000012600213002013b00223c30040a3002013201130c293000013b000c1d001b3f3002013b00113c300409300201320113300001022600233200181dfd064318203400012026000034000230000226000134000330000226000234000430000226000334000530000226000434000630010102260005320034000730000726000634000830000726000734000930000726000834000a300101022600073200022600093c3001023c30010332000226000a4b000000000d00320132013201133000081800240680c480c880c980c180ce80c00380d180ce80c30380cc80ce80c30d80c080c280d380eb80ce80c480c280c980d480c280f280d580cb0780c380d580ca80f380de80d780c20d80d080ce80d380cf80f580c280d480c880cb80d180c280d580d40780d780d580c880ca80ce80d480c20780d580c280d480c880cb80d180c20680d580c280cd80c280c480d30480d380cf80c280c90480ca80c680d580cc0480d080d580c680d70480c980c280df80d30480d780d580c280d10380c280c980c30a80c080c280d380eb80ce80c480c280c980d480c20680ca80c280d380cf80c880c30780d480d280c480c480c280d480d41780f880d380d580de80e080c280d380f480c280c480d580c280d380ec80c280de80e580de80f380c880cc80c280c90980d480c280c480d580c280d380ec80c280de0880cc80c280de80f180c680cb80d280c20380c380d580ca0480d480c280c980d30980c480cb80c280c680d580ec80c280de80d40f80d280d480c280f280c980ce80c880c980ee80c980c180c880e380f580ea1780cc80c280de80f380c880cc80c280c980e280df80d780ce80d580c280c380e380d280d580c680d380ce80c880c90d80f880c080c280d380f280c980ce80c880c980ee80c980c180c81580c480cf80c280c480cc80f280c980ce80c880c980ee80c980c180c880e280df80d780ce80d580c280c30780d280c980ce80c880c980ee80e30980d280c980ce80c880c980ee80c980c180c80880c180d280c980c480d380ce80c880c94980f380cf80c28087808580d380d580c680c980d480c180c880d580ca80f280c980ce80c880c980ec80c280de8085808780d480cf80c880d280cb80c3808780c580c2808780d780d580c880d180ce80c380c280c3808780ce80c9808780c480c880c980c180ce80c080d280d580c680d380ce80c880c9808780c680d4808780c6808780c180d280c980c480d380ce80c880c90580c480c680d380c480cf0280d380970580c280d580d580c880d50480d480d380c880d7",{get 0(){return t},1:Promise,get 2(){return At},get 3(){return ln},get 4(){return NR},get 5(){return zB},get 6(){return oh},get 7(){return void 0!==e.transformUnionKey?e.transformUnionKey:void 0},8:Error,9:arguments},this)}},{key:"_tryGetSecretKeyByToken",value:(r=At(ln().mark((function e(t,n){var r,i,a,o;return ln().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=this.config,i=r.kid,a=r.drmKeyToken,o=r.playDomain,!(i&&a&&o)){e.next=14;break}return e.prev=2,e.next=5,this.getSecretKeyByToken(i,o,a);case 5:this.config.secretKey=e.sent,t.success=!0,e.next=14;break;case 9:e.prev=9,e.t0=e.catch(2),t.success=!1,t.error=e.t0,n(t);case 14:case"end":return e.stop()}}),e,this,[[2,9]])}))),function(e,t){return r.apply(this,arguments)})},{key:"updateKid",value:function e(t){return KB("504B01018bd91e2200000000231fdb8a000000172026000037000d2026000002260001300102320113431800020380c280ca80c20980d280d780c380c680d380c280ec80ce80c3",{get 0(){return e},1:arguments,2:t},this)}},{key:"getLicenseSecret",value:function t(){return KB("504B01018bd91e220000032c231fdb8a0000048a3001010226000c30020226000b30000132021343183001010226000c30020226000d30000132021343183c30030732000226001e4b0000004c0d013001003c0c0b0c1e2900022900013204180c013802d930000126001f3000010f0020450c002400410c032400620c052400890c0a2400e00c0b2400e40c0f2401150c102401190c172401d10c182401d50c192401ee0c1e2402510c232402830f002124027d131d0283410f0022270023252700243402010c033000013b001f3004010226002530020130040f320218300201260024443700063002012600264438000b0c053000013b001f1d023e300001022600270f002832011830040126000026002934020230020244370004300407444438000b0c0b3000013b001f1d020b3004043700033004054438000b0c0b3000013b001f1d01f30c0a3000013b001f3c3005083004031200030f002a30040430040532031830000126002b3402020c0b3000013b002030040830050926002c084438000b0c103000013b001f1d01ab0c0f3000013b001f3c30050a30020230050b32021830000126002b3402023004063800273004073800093004073402021d00183002023800123c30050c3c30050d300202320132013402023004012600002d0203451330020326002d2d0204451330020326002e2d020545133004010226002f320034020630020437000330020637001830050e0226003030020626003130020626003230020532034438000b0c193000013b001f1d01003004063700033002024438000b0c183000013b001f1d00e80c173000013b001f3c30050f30020230020626003232021830000126002b34020230050e0226003330051002260034300206260032320132013002013b003530040638003d414127003634020730040412000330051134020830020230020726003630020823300401260007022600173002073201130c001a3002013b00291d00093002023002013b00293f3002013b00243c30040e3002013201130c233000013b001f1d00410c1e3000013b0020300001020f0037390c0b32013000013b0038253002013b00243000012600383002013b00263c30040f300201320113300001022600393200181dfd2243182034000120260000340002300002260001340003300002260002340004300002260003340005300002260004340006300002260005340007300002260006340008202600002600043800bf3001013500203b000720260007022600083001022600092026000a320213202600070226000830010226000b4b000000001401320213202600070226000830010226000d4b0000001514013202132026000026000e34000930000437000330000938005b30010326000f260010022600113200022600120f001332010c011c2c3800060f00141d00030f001534000a3c3001044130000a4130000930000447270016320334000b202600070226001730000b3201133001050226001832001830010502260019320034000c30000c26001a34000d30000c26001834000e30000c26001b34000f3001050226001832000226001c3c3001063c30010732000226001d4b0000002a0d003201320132011330000d18003a0680c480c880c980c180ce80c00380d180ce80c30380cc80ce80c30d80c080c280d380eb80ce80c480c280c980d480c280f280d580cb0680d280d480c280e280ea80e20880cc80c280de80f180c680cb80d280c20780c380d580ca80f380de80d780c20380c280ca80c20280c880c90580e280f580f580e880f50880e280ea80e280e280d580d580c880d51380e480e380ea80f880eb80ee80e480e280e980f480e280f880f480f280e480e480e280f480f40480c280ca80ce80d31180e480e380ea80f880eb80ee80e480e280e980f480e280f880e280f580f580e880f51380ce80c980d380c280d580d380d580d280d480d380f480c280d580d180c280d580f280f580eb0980c980c680d180ce80c080c680d380c880d50980d280d480c280d580e680c080c280c980d31180d380c880eb80c880c480c680cb80c280eb80c880d080c280d580e480c680d480c20780ce80c980c380c280df80e880c10680c480cf80d580c880ca80c20880d080ce80c380c280d180ce80c980c20980d780cb80c680de80d580c280c680c380de0980d480c280d580d180c280d580f280f580eb0980d280d780c380c680d380c280e380d580ca0780d580c280d480c880cb80d180c20d80d080ce80d380cf80f580c280d480c880cb80d180c280d580d40780d780d580c880ca80ce80d480c20680d580c280cd80c280c480d30480d380cf80c280c90480ca80c680d580cc0480d080d580c680d70480c980c280df80d30480d780d580c280d10380c280c980c30a80c080c280d380eb80ce80c480c280c980d480c20680ca80c280d380cf80c880c30780d480d280c480c480c280d480d41780f880d380d580de80e080c280d380f480c280c480d580c280d380ec80c280de80e580de80f380c880cc80c280c90580c280d580d580c880d50680c680c580d580d280d780d30680d580c280d380d280d580c90980d480c280c480d580c280d380ec80c280de000480d480c280c980d31780f780f580ee80f180e680f380e280f880e280e980e480f580fe80f780f380f880f280f780e080f580e680e380e20f80d280d480c280f280c980ce80c880c980ee80c980c180c880e380f580ea1780cc80c280de80f380c880cc80c280c980e280df80d780ce80d580c280c380e380d280d580c680d380ce80c880c90d80f880c080c280d380f280c980ce80c880c980ee80c980c180c81580c480cf80c280c480cc80f280c980ce80c880c980ee80c980c180c880e280df80d780ce80d580c280c30780d280c980ce80c880c980ee80e30980d280c980ce80c880c980ee80c980c180c81380f480d380d580ce80c980c080f380c880e680d580d580c680de80e580d280c180c180c280d50480cf80c680d480cf0a80c380c280c480d580de80d780d380ec80c280de0980c480cb80c280c680d580ec80c280de80d40580c480c680d380c480cf0280d380970480d480d380c880d7",{get 0(){return t},get 1(){return ch},get 2(){return e.EVENT_EME},get 3(){return window},get 4(){return nn},5:Promise,get 6(){return At},get 7(){return ln},get 8(){return kR},get 9(){return gR},get 10(){return CR},get 11(){return zB},get 12(){return bR},get 13(){return atob},get 14(){return oh},get 15(){return e.transformUnionKey},get 16(){return WB},get 17(){return eh},18:arguments},this)}},{key:"getSecretKey",value:function(){var e=this.config,t=e.vid,n=e.kid,r=e.getLicenseUrl,i=e.drmKeyToken,a=e.playDomain,o=e.secretKey;return r&&n?kR(t||"",n,r):i&&n&&a?this.getSecretKeyByToken(n,a,i):o||(console.error("[DRM]DRM,getSecretKey args is invalid"),null)}},{key:"getKeyValue",value:function e(){return KB("504B01018bd91e2200000000231fdb8a0000004d202600003400013000012600013400023000012600023400033000012600033400043000012600043400053000012600053400063c30010130000230000530000330000430000630010232061800060680c480c880c980c180ce80c00380d180ce80c30380cc80ce80c30d80c080c280d380eb80ce80c480c280c980d480c280f280d580cb0980d480c280c480d580c280d380ec80c280de0780c380d580ca80f380de80d780c2",{get 0(){return e},get 1(){return NR},get 2(){return zB},3:arguments},this)}},{key:"_getUnionInfo",value:function(){var e=this.config,t=e.drmType,n=e.sessionId;if(!e.useUnionInfoDRM||!n)return null;var r=t===gR.PRIVATE_ENCRYPT_UPGRADE?AB:HB;if(!r.get(n))throw new Error('The "sessionId" '.concat(n," for unionInfo is not valid"));return r.get(n)}}],[{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:jB,useEME:!0,intertrustServerURL:void 0}}},{key:"updateUnionInfo",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:jB,n=oh.getUnionInfo(e);return HB.set(t,{unionID:e,unionInfo:n}),n}},{key:"generateEncryptInfo",value:(n=At(ln().mark((function e(){var t,n,r,i,a,o,l=arguments;return ln().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=l.length>0&&void 0!==l[0]?l[0]:"",n=l.length>1&&void 0!==l[1]?l[1]:jB,e.next=4,DB();case 4:return r=e.sent,i=r.drmKeK,a=r.keyPair,o=oh.getUnionInfo(t),AB.set(n,{unionID:t,unionInfo:o}),zB=a,e.abrupt("return",{sessionId:n,unionInfo:o,drmKeK:i});case 11:case"end":return e.stop()}}),e)}))),function(){return n.apply(this,arguments)})}]);var n,r}(),eS=qB;eS.isWebAssemblySupported=IR,e.XGSecretKey=eS,e.aes4js=YB,e.util=oh}(index_min.exports);var index_minExports=index_min.exports;function _assertThisInitialized$7(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function asyncGeneratorStep$5(e,t,n,r,i,a,o){try{var l=e[a](o),d=l.value}catch(e){return void n(e)}l.done?t(d):Promise.resolve(d).then(r,i)}function _asyncToGenerator$5(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){asyncGeneratorStep$5(a,r,i,o,l,"next",e)}function l(e){asyncGeneratorStep$5(a,r,i,o,l,"throw",e)}o(void 0)}))}}function _callSuper$2(e,t,n){return t=_getPrototypeOf$7(t),_possibleConstructorReturn$7(e,_isNativeReflectConstruct$7()?Reflect.construct(t,n||[],_getPrototypeOf$7(e).constructor):t.apply(e,n))}function _classCallCheck$9(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties$9(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey$9(r.key),r)}}function _createClass$9(e,t,n){return t&&_defineProperties$9(e.prototype,t),n&&_defineProperties$9(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty$8(e,t,n){return(t=_toPropertyKey$9(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _get$3(){return _get$3="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=_superPropBase$3(e,t);if(r){var i=Object.getOwnPropertyDescriptor(r,t);return i.get?i.get.call(arguments.length<3?e:n):i.value}},_get$3.apply(null,arguments)}function _getPrototypeOf$7(e){return(_getPrototypeOf$7=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits$7(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf$7(e,t)}function _isNativeReflectConstruct$7(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(_isNativeReflectConstruct$7=function(){return!!e})()}function _possibleConstructorReturn$7(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$7(e)}function _regeneratorRuntime$5(){_regeneratorRuntime$5=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,i=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",l=a.asyncIterator||"@@asyncIterator",d=a.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var a=t&&t.prototype instanceof p?t:p,o=Object.create(a.prototype),l=new T(r||[]);return i(o,"_invoke",{value:b(e,n,l)}),o}function U(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=s;var F="suspendedStart",u="suspendedYield",Q="executing",R="completed",h={};function p(){}function B(){}function S(){}var f={};c(f,o,(function(){return this}));var m=Object.getPrototypeOf,V=m&&m(m(W([])));V&&V!==n&&r.call(V,o)&&(f=V);var y=S.prototype=p.prototype=Object.create(f);function E(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function Z(e,t){function n(i,a,o,l){var d=U(e[i],e,a);if("throw"!==d.type){var c=d.arg,s=c.value;return s&&"object"==typeof s&&r.call(s,"__await")?t.resolve(s.__await).then((function(e){n("next",e,o,l)}),(function(e){n("throw",e,o,l)})):t.resolve(s).then((function(e){c.value=e,o(c)}),(function(e){return n("throw",e,o,l)}))}l(d.arg)}var a;i(this,"_invoke",{value:function(e,r){function i(){return new t((function(t,i){n(e,r,t,i)}))}return a=a?a.then(i,i):i()}})}function b(t,n,r){var i=F;return function(a,o){if(i===Q)throw Error("Generator is already running");if(i===R){if("throw"===a)throw o;return{value:e,done:!0}}for(r.method=a,r.arg=o;;){var l=r.delegate;if(l){var d=J(l,r);if(d){if(d===h)continue;return d}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===F)throw i=R,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=Q;var c=U(t,n,r);if("normal"===c.type){if(i=r.done?R:u,c.arg===h)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(i=R,r.method="throw",r.arg=c.arg)}}}function J(t,n){var r=n.method,i=t.iterator[r];if(i===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,J(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),h;var a=U(i,t.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,h;var o=a.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,h):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,h)}function v(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function g(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(v,this),this.reset(!0)}function W(t){if(t||""===t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,a=function n(){for(;++i<t.length;)if(r.call(t,i))return n.value=t[i],n.done=!1,n;return n.value=e,n.done=!0,n};return a.next=a}}throw new TypeError(typeof t+" is not iterable")}return B.prototype=S,i(y,"constructor",{value:S,configurable:!0}),i(S,"constructor",{value:B,configurable:!0}),B.displayName=c(S,d,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===B||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,S):(e.__proto__=S,c(e,d,"GeneratorFunction")),e.prototype=Object.create(y),e},t.awrap=function(e){return{__await:e}},E(Z.prototype),c(Z.prototype,l,(function(){return this})),t.AsyncIterator=Z,t.async=function(e,n,r,i,a){void 0===a&&(a=Promise);var o=new Z(s(e,n,r,i),a);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},E(y),c(y,d,"Generator"),c(y,o,(function(){return this})),c(y,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=W,T.prototype={constructor:T,reset:function(t){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(g),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function i(r,i){return l.type="throw",l.arg=t,n.next=r,i&&(n.method="next",n.arg=e),!!i}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],l=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var d=r.call(o,"catchLoc"),c=r.call(o,"finallyLoc");if(d&&c){if(this.prev<o.catchLoc)return i(o.catchLoc,!0);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else if(d){if(this.prev<o.catchLoc)return i(o.catchLoc,!0)}else{if(!c)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return i(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var a=i;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,h):this.complete(o)},complete:function(e,t){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&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),g(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;g(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:W(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),h}},t}function _setPrototypeOf$7(e,t){return(_setPrototypeOf$7=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function _superPropBase$3(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf$7(e)););return e}function _superPropGet(e,t,n,r){var i=_get$3(_getPrototypeOf$7(1&r?e.prototype:e),t,n);return 2&r&&"function"==typeof i?function(e){return i.apply(n,e)}:i}function _toPrimitive$9(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$9(e){var t=_toPrimitive$9(e,"string");return"symbol"==typeof t?t:t+""}var defaultAvgSpeed=1024,GopAdaptRange=function(){return _createClass$9((function e(t,n,r,i){var a=this;_classCallCheck$9(this,e),this.config=e.getDefaultConfig(),this.bitrate=0,i&&Object.keys(i).map((function(e){void 0!==i[e]&&null!==i[e]&&(a.config[e]=i[e])})),this.duration=r,this.player=t,this.updateBitrate(n)}),[{key:"updateBitrate",value:function(e){this.bitrate=e,this.bitrate||(this.bitrate=this.config.minBandwidth)}},{key:"getAdaptLoadDuration",value:function(){var e=this.player,t=this.config;if(!t.rangeControl)return-1;var n=(null==e?void 0:e.bufferedPoint)||null,r=e&&null!=n&&n.end?n.end-e.currentTime:0;return Math.max(t.rangeMaxDuration-r,t.rangeMinDuration)}},{key:"getAdaptCacheBuffer",value:function(){var e=this.player,t=this.config,n=this.bitrate;if(!t.targetCacheControl)return-1;var r=t.estPlayTime,i=r;if(t.estPTcontrol){var a=this.duration||(null==e?void 0:e.duration)||0,o=(null==e?void 0:e.currentTime)||0;i=Math.min(r,a-o)}var l=e&&e.avgSpeed*defaultAvgSpeed||0,d=Math.max(t.safeFactor*l,t.minBandwidth);null!=e&&e.avgSpeed&&(d=t.safeFactor*l);var c=n>0?Math.floor((1-d/n)*i):0;return c=t.minDangerThreshold+Math.max(c,0),Math.min(Math.max(t.cacheSafeFactor*c,t.minTargetCacheDur),t.maxTargetCacheDur)}}],[{key:"getDefaultConfig",value:function(){return{rangeMaxDuration:15,rangeMinDuration:5,rangeMinSize:409600,safeFactor:.1,cacheSafeFactor:3,minDangerThreshold:5,estPlayTime:12,minBandwidth:1e6,estPTcontrol:!1,minTargetCacheDur:30,maxTargetCacheDur:60,targetCacheControl:!1,rangeControl:!1}}}])}();function ownKeys$7(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread2$6(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$7(Object(n),!0).forEach((function(t){_defineProperty$7(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$7(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _typeof$4(e){return(_typeof$4="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 _classCallCheck$8(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties$8(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey$8(r.key),r)}}function _createClass$8(e,t,n){return t&&_defineProperties$8(e.prototype,t),n&&_defineProperties$8(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty$7(e,t,n){return(t=_toPropertyKey$8(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _inherits$6(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf$6(e,t)}function _getPrototypeOf$6(e){return(_getPrototypeOf$6=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _setPrototypeOf$6(e,t){return(_setPrototypeOf$6=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function _isNativeReflectConstruct$6(){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 _assertThisInitialized$6(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _possibleConstructorReturn$6(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$6(e)}function _createSuper$4(e){var t=_isNativeReflectConstruct$6();return function(){var n,r=_getPrototypeOf$6(e);if(t){var i=_getPrototypeOf$6(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return _possibleConstructorReturn$6(this,n)}}function _toConsumableArray$4(e){return _arrayWithoutHoles$4(e)||_iterableToArray$4(e)||_unsupportedIterableToArray$7(e)||_nonIterableSpread$4()}function _arrayWithoutHoles$4(e){if(Array.isArray(e))return _arrayLikeToArray$7(e)}function _iterableToArray$4(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _unsupportedIterableToArray$7(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray$7(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray$7(e,t):void 0}}function _arrayLikeToArray$7(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function _nonIterableSpread$4(){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 _toPrimitive$8(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$8(e){var t=_toPrimitive$8(e,"string");return"symbol"==typeof t?t:String(t)}var eventemitter3={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function i(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function a(e,t,r,a,o){if("function"!=typeof r)throw new TypeError("The listener must be a function");var l=new i(r,a||e,o),d=n?n+t:t;return e._events[d]?e._events[d].fn?e._events[d]=[e._events[d],l]:e._events[d].push(l):(e._events[d]=l,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function l(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),l.prototype.eventNames=function(){var e,r,i=[];if(0===this._eventsCount)return i;for(r in e=this._events)t.call(e,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},l.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,a=r.length,o=new Array(a);i<a;i++)o[i]=r[i].fn;return o},l.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},l.prototype.emit=function(e,t,r,i,a,o){var l=n?n+e:e;if(!this._events[l])return!1;var d,c,s=this._events[l],U=arguments.length;if(s.fn){switch(s.once&&this.removeListener(e,s.fn,void 0,!0),U){case 1:return s.fn.call(s.context),!0;case 2:return s.fn.call(s.context,t),!0;case 3:return s.fn.call(s.context,t,r),!0;case 4:return s.fn.call(s.context,t,r,i),!0;case 5:return s.fn.call(s.context,t,r,i,a),!0;case 6:return s.fn.call(s.context,t,r,i,a,o),!0}for(c=1,d=new Array(U-1);c<U;c++)d[c-1]=arguments[c];s.fn.apply(s.context,d)}else{var F,u=s.length;for(c=0;c<u;c++)switch(s[c].once&&this.removeListener(e,s[c].fn,void 0,!0),U){case 1:s[c].fn.call(s[c].context);break;case 2:s[c].fn.call(s[c].context,t);break;case 3:s[c].fn.call(s[c].context,t,r);break;case 4:s[c].fn.call(s[c].context,t,r,i);break;default:if(!d)for(F=1,d=new Array(U-1);F<U;F++)d[F-1]=arguments[F];s[c].fn.apply(s[c].context,d)}}return!0},l.prototype.on=function(e,t,n){return a(this,e,t,n,!1)},l.prototype.once=function(e,t,n){return a(this,e,t,n,!0)},l.prototype.removeListener=function(e,t,r,i){var a=n?n+e:e;if(!this._events[a])return this;if(!t)return o(this,a),this;var l=this._events[a];if(l.fn)l.fn!==t||i&&!l.once||r&&l.context!==r||o(this,a);else{for(var d=0,c=[],s=l.length;d<s;d++)(l[d].fn!==t||i&&!l[d].once||r&&l[d].context!==r)&&c.push(l[d]);c.length?this._events[a]=1===c.length?c[0]:c:o(this,a)}return this},l.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&o(this,t)):(this._events=new r,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=n,l.EventEmitter=l,e.exports=l}(eventemitter3);var eventemitter3Exports=eventemitter3.exports,EventEmitter=getDefaultExportFromCjs(eventemitter3Exports),XG_DEBUG_OPEN="undefined"!=typeof window&&window.location&&window.location.href.indexOf("xgplayerdebugger=1")>-1,STYLE={info:"color: #525252; background-color: #90ee90;",error:"color: #525252; background-color: red;",warn:"color: #525252; background-color: yellow; "},XGTAG="%c[xgplayer]",XG_DEBUG={config:{debug:XG_DEBUG_OPEN?3:0},logInfo:function(e){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];this.config.debug>=3&&(t=console).log.apply(t,[XGTAG,STYLE.info,e].concat(r))},logWarn:function(e){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];this.config.debug>=1&&(t=console).warn.apply(t,[XGTAG,STYLE.warn,e].concat(r))},logError:function(e){var t;if(!(this.config.debug<1)){for(var n=this.config.debug>=2?"trace":"error",r=arguments.length,i=new Array(r>1?r-1:0),a=1;a<r;a++)i[a-1]=arguments[a];(t=console)[n].apply(t,[XGTAG,STYLE.error,e].concat(i))}}},XgplayerTimeRange=function(){function e(t){_classCallCheck$8(this,e),this.bufferedList=t}return _createClass$8(e,[{key:"start",value:function(e){return this.bufferedList[e].start}},{key:"end",value:function(e){return this.bufferedList[e].end}},{key:"length",get:function(){return this.bufferedList.length}}]),e}(),util$1={};function checkIsIn(e,t){for(var n=0,r=t.length;n<r;n++)if(e.indexOf(t[n])>-1)return!0;return!1}util$1.createDom=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",i=document.createElement(e);return i.className=r,i.innerHTML=t,Object.keys(n).forEach((function(t){var r=t,a=n[t];"video"===e||"audio"===e||"live-video"===e?a&&i.setAttribute(r,a):i.setAttribute(r,a)})),i},util$1.createDomFromHtml=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";try{var r=document.createElement("div");r.innerHTML=e;var i=r.children;return r=null,i.length>0?(i=i[0],n&&util$1.addClass(i,n),t&&Object.keys(t).forEach((function(e){i.setAttribute(e,t[e])})),i):null}catch(e){return XG_DEBUG.logError("util.createDomFromHtml",e),null}},util$1.hasClass=function(e,t){if(!e||!t)return!1;try{return Array.prototype.some.call(e.classList,(function(e){return e===t}))}catch(r){var n=e.className&&"object"===_typeof$4(e.className)?e.getAttribute("class"):e.className;return n&&!!n.match(new RegExp("(\\s|^)"+t+"(\\s|$)"))}},util$1.addClass=function(e,t){if(e&&t)try{t.replace(/(^\s+|\s+$)/g,"").split(/\s+/g).forEach((function(t){t&&e.classList.add(t)}))}catch(n){util$1.hasClass(e,t)||(e.className&&"object"===_typeof$4(e.className)?e.setAttribute("class",e.getAttribute("class")+" "+t):e.className+=" "+t)}},util$1.removeClass=function(e,t){if(e&&t)try{t.replace(/(^\s+|\s+$)/g,"").split(/\s+/g).forEach((function(t){t&&e.classList.remove(t)}))}catch(n){util$1.hasClass(e,t)&&t.split(/\s+/g).forEach((function(t){var n=new RegExp("(\\s|^)"+t+"(\\s|$)");e.className&&"object"===_typeof$4(e.className)?e.setAttribute("class",e.getAttribute("class").replace(n," ")):e.className=e.className.replace(n," ")}))}},util$1.toggleClass=function(e,t){e&&t.split(/\s+/g).forEach((function(t){util$1.hasClass(e,t)?util$1.removeClass(e,t):util$1.addClass(e,t)}))},util$1.classNames=function(){for(var e=arguments,t=[],n=function(n){"String"===util$1.typeOf(e[n])?t.push(e[n]):"Object"===util$1.typeOf(e[n])&&Object.keys(e[n]).map((function(r){e[n][r]&&t.push(r)}))},r=0;r<arguments.length;r++)n(r);return t.join(" ")},util$1.findDom=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,n=arguments.length>1?arguments[1]:void 0;try{e=t.querySelector(n)}catch(r){XG_DEBUG.logError("util.findDom",r),0===n.indexOf("#")&&(e=t.getElementById(n.slice(1)))}return e},util$1.getCss=function(e,t){return e.currentStyle?e.currentStyle[t]:document.defaultView.getComputedStyle(e,!1)[t]},util$1.padStart=function(e,t,n){for(var r=String(n),i=t>>0,a=Math.ceil(i/r.length),o=[],l=String(e);a--;)o.push(r);return o.join("").substring(0,i-l.length)+l},util$1.format=function(e){if(window.isNaN(e))return"";e=Math.round(e);var t=util$1.padStart(Math.floor(e/3600),2,0),n=util$1.padStart(Math.floor((e-3600*t)/60),2,0),r=util$1.padStart(Math.floor(e-3600*t-60*n),2,0);return("00"===t?[n,r]:[t,n,r]).join(":")},util$1.event=function(e){if(e.touches){var t=e.touches[0]||e.changedTouches[0];e.clientX=t.clientX||0,e.clientY=t.clientY||0,e.offsetX=t.pageX-t.target.offsetLeft,e.offsetY=t.pageY-t.target.offsetTop}e._target=e.target||e.srcElement},util$1.typeOf=function(e){return Object.prototype.toString.call(e).match(/([^\s.*]+)(?=]$)/g)[0]},util$1.deepCopy=function(e,t){if("Object"===util$1.typeOf(t)&&"Object"===util$1.typeOf(e))return Object.keys(t).forEach((function(n){"Object"!==util$1.typeOf(t[n])||t[n]instanceof Node?"Array"===util$1.typeOf(t[n])?e[n]="Array"===util$1.typeOf(e[n])?e[n].concat(t[n]):t[n]:e[n]=t[n]:void 0===e[n]||void 0===e[n]?e[n]=t[n]:util$1.deepCopy(e[n],t[n])})),e},util$1.deepMerge=function(e,t){return Object.keys(t).map((function(n){var r;"Array"===util$1.typeOf(t[n])&&"Array"===util$1.typeOf(e[n])?"Array"===util$1.typeOf(e[n])&&(r=e[n]).push.apply(r,_toConsumableArray$4(t[n])):util$1.typeOf(e[n])!==util$1.typeOf(t[n])||null===e[n]||"Object"!==util$1.typeOf(e[n])||t[n]instanceof window.Node?null!==t[n]&&(e[n]=t[n]):util$1.deepMerge(e[n],t[n])})),e},util$1.getBgImage=function(e){var t=(e.currentStyle||window.getComputedStyle(e,null)).backgroundImage;if(!t||"none"===t)return"";var n=document.createElement("a");return n.href=t.replace(/url\("|"\)/g,""),n.href},util$1.copyDom=function(e){if(e&&1===e.nodeType){var t=document.createElement(e.tagName);return Array.prototype.forEach.call(e.attributes,(function(e){t.setAttribute(e.name,e.value)})),e.innerHTML&&(t.innerHTML=e.innerHTML),t}return""},util$1.setInterval=function(e,t,n,r){e._interval[t]||(e._interval[t]=window.setInterval(n.bind(e),r))},util$1.clearInterval=function(e,t){clearInterval(e._interval[t]),e._interval[t]=null},util$1.setTimeout=function(e,t,n){e._timers||(e._timers=[]);var r=setTimeout((function(){t(),util$1.clearTimeout(e,r)}),n);return e._timers.push(r),r},util$1.clearTimeout=function(e,t){var n=e._timers;if("Array"===util$1.typeOf(n)){for(var r=0;r<n.length;r++)if(n[r]===t){n.splice(r,1),clearTimeout(t);break}}else clearTimeout(t)},util$1.clearAllTimers=function(e){var t=e._timers;"Array"===util$1.typeOf(t)&&(t.map((function(e){clearTimeout(e)})),e._timerIds=[])},util$1.createImgBtn=function(e,t,n,r){var i,a,o,l=util$1.createDom("xg-".concat(e),"",{},"xgplayer-".concat(e,"-img"));(l.style.backgroundImage='url("'.concat(t,'")'),n&&r)&&(["px","rem","em","pt","dp","vw","vh","vm","%"].every((function(e){return!(n.indexOf(e)>-1&&r.indexOf(e)>-1)||(i=parseFloat(n.slice(0,n.indexOf(e)).trim()),a=parseFloat(r.slice(0,r.indexOf(e)).trim()),o=e,!1)})),l.style.width="".concat(i).concat(o),l.style.height="".concat(a).concat(o),l.style.backgroundSize="".concat(i).concat(o," ").concat(a).concat(o),l.style.margin="start"===e?"-".concat(a/2).concat(o," auto auto -").concat(i/2).concat(o):"auto 5px auto 5px");return l},util$1.Hex2RGBA=function(e,t){var n=[];if(/^\#[0-9A-F]{3}$/i.test(e)){var r="#";e.replace(/[0-9A-F]/gi,(function(e){r+=e+e})),e=r}return/^#[0-9A-F]{6}$/i.test(e)?(e.replace(/[0-9A-F]{2}/gi,(function(e){n.push(parseInt(e,16))})),"rgba(".concat(n.join(","),", ").concat(t,")")):"rgba(255, 255, 255, 0.1)"},util$1.getFullScreenEl=function(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement},util$1.checkIsFunction=function(e){return e&&"function"==typeof e},util$1.checkIsObject=function(e){return null!==e&&"object"===_typeof$4(e)},util$1.hide=function(e){e.style.display="none"},util$1.show=function(e,t){e.style.display=t||"block"},util$1.isUndefined=function(e){if(null==e)return!0},util$1.isNotNull=function(e){return!(null==e)},util$1.setStyleFromCsstext=function(e,t){t&&("String"===util$1.typeOf(t)?t.replace(/\s+/g,"").split(";").map((function(t){if(t){var n=t.split(":");n.length>1&&(e.style[n[0]]=n[1])}})):Object.keys(t).map((function(n){e.style[n]=t[n]})))},util$1.filterStyleFromText=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["width","height","top","left","bottom","right","position","z-index","padding","margin","transform"],n=e.style.cssText;if(!n)return{};var r=n.replace(/\s+/g,"").split(";"),i={},a={};return r.map((function(e){if(e){var n=e.split(":");n.length>1&&(checkIsIn(n[0],t)?i[n[0]]=n[1]:a[n[0]]=n[1])}})),e.setAttribute("style",""),Object.keys(a).map((function(t){e.style[t]=a[t]})),i},util$1.getStyleFromCsstext=function(e){var t=e.style.cssText;if(!t)return{};var n=t.replace(/\s+/g,"").split(";"),r={};return n.map((function(e){if(e){var t=e.split(":");t.length>1&&(r[t[0]]=t[1])}})),r},util$1.preloadImg=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){};if(e){var r=new window.Image;r.onload=function(e){r=null,t&&t(e)},r.onerror=function(e){r=null,n&&n(e)},r.src=e}},util$1.stopPropagation=function(e){e&&e.stopPropagation()},util$1.scrollTop=function(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0},util$1.scrollLeft=function(){return window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0},util$1.checkTouchSupport=function(){return"ontouchstart"in window},util$1.getBuffered2=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.5,n=[],r=0;r<e.length;r++)n.push({start:e.start(r)<.5?0:e.start(r),end:e.end(r)});n.sort((function(e,t){var n=e.start-t.start;return n||t.end-e.end}));var i=[];if(t)for(var a=0;a<n.length;a++){var o=i.length;if(o){var l=i[o-1].end;n[a].start-l<t?n[a].end>l&&(i[o-1].end=n[a].end):i.push(n[a])}else i.push(n[a])}else i=n;return new XgplayerTimeRange(i)},util$1.getEventPos=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return e.touches&&e.touches.length>0&&(e=e.touches[0]),{x:e.x/t,y:e.y/t,clientX:e.clientX/t,clientY:e.clientY/t,offsetX:e.offsetX/t,offsetY:e.offsetY/t,pageX:e.pageX/t,pageY:e.pageY/t}},util$1.requestAnimationFrame=function(e){var t=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame;if(t)return t(e)},util$1.getHostFromUrl=function(e){if("String"!==util$1.typeOf(e))return"";var t=e.split("/"),n="";return t.length>3&&t[2]&&(n=t[2]),n},util$1.cancelAnimationFrame=function(e){var t=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.cancelRequestAnimationFrame;t&&t(e)},util$1.isMSE=function(e){return e.media&&(e=e.media),!!(e&&e instanceof HTMLMediaElement)&&(/^blob/.test(e.currentSrc)||/^blob/.test(e.src))},util$1.isBlob=function(e){return"string"==typeof e&&/^blob/.test(e)},util$1.generateSessionId=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=(new Date).getTime();try{e=parseInt(e)}catch(t){e=0}return t+=e,window.performance&&"function"==typeof window.performance.now&&(t+=parseInt(window.performance.now())),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var n=(t+16*Math.random())%16|0;return t=Math.floor(t/16),("x"===e?n:3&n|8).toString(16)}))},util$1.createEvent=function(e){var t;return"function"==typeof window.Event?t=new Event(e):(t=document.createEvent("Event")).initEvent(e,!0,!0),t},util$1.adjustTimeByDuration=function(e,t,n){return t&&e&&(e>t||n&&e<t)?t:e},util$1.createPositionBar=function(e,t){var n=util$1.createDom("xg-bar","",{"data-index":-1},e);return t.appendChild(n),n},util$1.getTransformStyle=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{x:0,y:0,scale:1,rotate:0},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n={scale:"".concat(e.scale||1),translate:"".concat(e.x||0,"%, ").concat(e.y||0,"%"),rotate:"".concat(e.rotate||0,"deg")};return Object.keys(n).forEach((function(e){var r=new RegExp("".concat(e,"\\([^\\(]+\\)"),"g"),i="".concat(e,"(").concat(n[e],")");r.test(t)?(r.lastIndex=-1,t=t.replace(r,i)):t+="".concat(i," ")})),t},util$1.convertDeg=function(e){return Math.abs(e)<=1?360*e:e%360},util$1.getIndexByTime=function(e,t){var n=t.length,r=-1;if(n<1)return r;if(e<=t[0].end||n<2)r=0;else if(e>t[n-1].end)r=n-1;else for(var i=1;i<n;i++)if(e>t[i-1].end&&e<=t[i].end){r=i;break}return r},util$1.getOffsetCurrentTime=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,r=-1;if((r=n>=0&&n<t.length?n:util$1.getIndexByTime(e,t))<0)return-1;var i=t.length,a=t[r],o=a.start,l=a.end,d=a.cTime,c=a.offset;return e<o?d:e>=o&&e<=l?e-c:e>l&&r>=i-1?l:-1},util$1.getCurrentTimeByOffset=function(e,t){var n=-1;if(!t||t.length<0)return e;for(var r=0;r<t.length;r++)if(e<=t[r].duration){n=r;break}if(-1!==n){var i=t[n].start;return n-1<0?i+e:i+(e-t[n-1].duration)}return e};var VERSION_REG={android:/(Android)\s([\d.]+)/,harmony:/(OpenHarmony|HarmonyOS)\s([\d.]+)/,ios:/(Version)\/([\d.]+)/},H264_MIMETYPES=["avc1.42E01E, mp4a.40.2","avc1.58A01E, mp4a.40.2","avc1.4D401E, mp4a.40.2","avc1.64001E, mp4a.40.2","avc1.42E01E","mp4v.20.8","mp4v.20.8, mp4a.40.2","mp4v.20.240, mp4a.40.2"],sniffer={get device(){return sniffer.os.isPc?"pc":"mobile"},get browser(){if("undefined"==typeof navigator)return"";var e=navigator.userAgent.toLowerCase(),t={ie:/rv:([\d.]+)\) like gecko/,firefox:/firefox\/([\d.]+)/,chrome:/chrome\/([\d.]+)/,opera:/opera.([\d.]+)/,safari:/version\/([\d.]+).*safari/};return[].concat(Object.keys(t).filter((function(n){return t[n].test(e)})))[0]||""},get os(){if("undefined"==typeof navigator)return{};var e=navigator.userAgent,t=/(?:Windows Phone)/.test(e),n=/(?:SymbianOS)/.test(e)||t,r=/(?:Tizen)/gi.test(e),i=/(?:Web0S)/gi.test(e),a=/(?:OpenHarmony|HarmonyOS)/i.test(e),o=/(?:Android)/.test(e),l=/(?:Firefox)/.test(e),d=/(?:iPad|PlayBook)/.test(e)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1,c=d||o&&!/(?:Mobile)/.test(e)||(a||l)&&/(?:Tablet)/.test(e),s=/(?:Phone)/.test(e)&&!c;return{isTablet:c,isPhone:s,isIpad:d,isIos:s||d,isAndroid:o,isPc:!(s||o||n||c),isSymbian:n,isWindowsPhone:t,isFireFox:l,isHarmonyOS:a,isTizen:r,isWebOS:i}},get osVersion(){if("undefined"==typeof navigator)return 0;var e=navigator.userAgent,t="",n=(t=/(?:iPhone)|(?:iPad|PlayBook)/.test(e)?VERSION_REG.ios:/(?:OpenHarmony|HarmonyOS)/i.test(e)?VERSION_REG.harmony:VERSION_REG.android)?t.exec(e):[];if(n&&n.length>=3){var r=n[2].split(".");return r.length>0?parseInt(r[0]):0}return 0},get isWeixin(){if("undefined"==typeof navigator)return!1;return!!/(micromessenger)\/([\d.]+)/.exec(navigator.userAgent.toLocaleLowerCase())},isSupportMP4:function(){var e={isSupport:!1,mime:""};if("undefined"==typeof document)return e;if(this.supportResult)return this.supportResult;var t=document.createElement("video");return"function"==typeof t.canPlayType&&H264_MIMETYPES.map((function(n){"probably"===t.canPlayType('video/mp4; codecs="'.concat(n,'"'))&&(e.isSupport=!0,e.mime+="||".concat(n))})),this.supportResult=e,t=null,e},isMSESupport:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'video/mp4; codecs="avc1.42E01E,mp4a.40.2"';if("undefined"==typeof MediaSource||!MediaSource)return!1;try{return MediaSource.isTypeSupported(e)}catch(t){return this._logger.error(e,t),!1}},isHevcSupported:function(){return!("undefined"==typeof MediaSource||!MediaSource.isTypeSupported)&&(MediaSource.isTypeSupported('video/mp4;codecs="hev1.1.6.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.2.4.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.3.E.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.4.10.L120.90"'))},probeConfigSupported:function(e){var t={supported:!1,smooth:!1,powerEfficient:!1};if(!e||"undefined"==typeof navigator)return Promise.resolve(t);if(navigator.mediaCapabilities&&navigator.mediaCapabilities.decodingInfo)return navigator.mediaCapabilities.decodingInfo(e);var n=e.video||{},r=e.audio||{};try{var i=MediaSource.isTypeSupported(n.contentType),a=MediaSource.isTypeSupported(r.contentType);return Promise.resolve({supported:i&&a,smooth:!1,powerEfficient:!1})}catch(e){return Promise.resolve(t)}}},version$1="3.0.25-rc.8",ERROR_MAP={1:5101,2:5102,3:5103,4:5104,5:5105,6:5106},Errors=_createClass$8((function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{errorType:"",errorCode:0,errorMessage:"",originError:"",ext:{},mediaError:null};_classCallCheck$8(this,e);var r=t&&t.i18n?t.i18n.ERROR_TYPES:null;if(t.media){var i=n.mediaError?n.mediaError:t.media.error||{},a=t.duration,o=t.currentTime,l=t.ended,d=t.src,c=t.currentSrc,s=t.media,U=s.readyState,F=s.networkState,u=n.errorCode||i.code;ERROR_MAP[u]&&(u=ERROR_MAP[u]);var Q={playerVersion:version$1,currentTime:o,duration:a,ended:l,readyState:U,networkState:F,src:d||c,errorType:n.errorType,errorCode:u,message:n.errorMessage||i.message,mediaError:i,originError:n.originError?n.originError.stack:"",host:util$1.getHostFromUrl(d||c)};return n.ext&&Object.keys(n.ext).map((function(e){Q[e]=n.ext[e]})),Q}if(arguments.length>1){for(var R={playerVersion:version$1,domain:document.domain},h=["errorType","currentTime","duration","networkState","readyState","src","currentSrc","ended","errd","errorCode","mediaError"],p=0;p<arguments.length;p++)R[h[p]]=arguments[p];return R.ex=r?(r[arguments[0]]||{}).msg:"",R}})),PLAY="play",ENDED="ended",PAUSE="pause",TIME_UPDATE="timeupdate",WAITING="waiting",CANPLAY="canplay",CANPLAY_THROUGH="canplaythrough",LOADED_DATA="loadeddata",LOAD_START="loadstart",AUTOPLAY_STARTED="autoplay_started",DEFINITION_CHANGE="definition_change",AFTER_DEFINITION_CHANGE="after_definition_change",FPS_STUCK="fps_stuck";function callHandler(e,t,n){for(var r=arguments.length,i=new Array(r>3?r-3:0),a=3;a<r;a++)i[a-3]=arguments[a];var o=t.call.apply(t,[e].concat(i));n&&"function"==typeof n&&(o&&o.then?o.then((function(){for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];n.call.apply(n,[e].concat(r))})):n.call.apply(n,[e].concat(i)))}function hook(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{pre:null,next:null};return this.__hooks||(this.__hooks={}),!this.__hooks[e]&&(this.__hooks[e]=null),function(){var r=arguments,i=this;if(n.pre)try{var a;(a=n.pre).call.apply(a,[this].concat(Array.prototype.slice.call(arguments)))}catch(t){throw t.message="[pluginName: ".concat(this.pluginName,":").concat(e,":pre error] >> ").concat(t.message),t}if(this.__hooks&&this.__hooks[e])try{var o=runHooks.apply(void 0,[this,e,t].concat(Array.prototype.slice.call(arguments)));o?o.then?o.then((function(e){!1!==e&&callHandler.apply(void 0,[i,t,n.next].concat(_toConsumableArray$4(r)))})).catch((function(e){throw e})):callHandler.apply(void 0,[this,t,n.next].concat(Array.prototype.slice.call(arguments))):void 0===o&&callHandler.apply(void 0,[this,t,n.next].concat(Array.prototype.slice.call(arguments)))}catch(t){throw t.message="[pluginName: ".concat(this.pluginName,":").concat(e,"] >> ").concat(t.message),t}else callHandler.apply(void 0,[this,t,n.next].concat(Array.prototype.slice.call(arguments)))}.bind(this)}function findHookIndex(e,t){var n=this.__hooks;if(!n||!Array.isArray(n[e]))return-1;for(var r=n[e],i=0;i<r.length;i++)if(r[i]===t)return i;return-1}function useHooks(e,t){var n=this.__hooks;if(n)return n.hasOwnProperty(e)?(Array.isArray(n[e])||(n[e]=[]),-1===findHookIndex.call(this,e,t)&&n[e].push(t),!0):(console.warn("has no supported hook which name [".concat(e,"]")),!1)}function removeHooks(e,t){var n=this.__hooks;if(n)if(Array.isArray(n[e])){var r=n[e],i=findHookIndex.call(this,e,t);-1!==i&&r.splice(i,1)}else n[e]&&(n[e]=null)}function hooksDescriptor(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];e.__hooks={},t&&t.map((function(t){e.__hooks[t]=null})),Object.defineProperty(e,"hooks",{get:function(){return e.__hooks&&Object.keys(e.__hooks).map((function(t){if(e.__hooks[t])return t}))}})}function delHooksDescriptor(e){e.__hooks=null}function runHooks(e,t,n){for(var r=arguments.length,i=new Array(r>3?r-3:0),a=3;a<r;a++)i[a-3]=arguments[a];if(e.__hooks&&Array.isArray(e.__hooks[t])){var o=e.__hooks[t],l=-1;return function e(t,n,r){for(var i=arguments.length,a=new Array(i>3?i-3:0),d=3;d<i;d++)a[d-3]=arguments[d];if(l++,0===o.length||l===o.length)return r.call.apply(r,[t,t].concat(a));var c=o[l],s=c.call.apply(c,[t,t].concat(a));return s&&s.then?s.then((function(i){return!1===i?null:e.apply(void 0,[t,n,r].concat(a))})).catch((function(e){console.warn("[runHooks]".concat(n," reject"),e.message)})):!1!==s?e.apply(void 0,[t,n,r].concat(a)):!1!==s&&void 0}.apply(void 0,[e,t,n].concat(i))}return n.call.apply(n,[e,e].concat(i))}function showErrorMsg(e,t){XG_DEBUG.logError("[".concat(e,"] event or callback cant be undefined or null when call ").concat(t))}var instance,preloader,BasePlugin=function(){function e(t){_classCallCheck$8(this,e),util$1.checkIsFunction(this.beforeCreate)&&this.beforeCreate(t),hooksDescriptor(this),this.__args=t,this.__events={},this.__onceEvents={},this.config=t.config||{},this.player=null,this.playerConfig={},this.pluginName="",this.__init(t)}return _createClass$8(e,[{key:"beforeCreate",value:function(e){}},{key:"afterCreate",value:function(){}},{key:"beforePlayerInit",value:function(){}},{key:"onPluginsReady",value:function(){}},{key:"afterPlayerInit",value:function(){}},{key:"destroy",value:function(){}},{key:"__init",value:function(e){this.player=e.player,this.playerConfig=e.player&&e.player.config,this.pluginName=e.pluginName?e.pluginName.toLowerCase():this.constructor.pluginName.toLowerCase(),this.logger=e.player&&e.player.logger}},{key:"updateLang",value:function(e){e||(e=this.lang)}},{key:"lang",get:function(){return this.player.lang}},{key:"i18n",get:function(){return this.player.i18n}},{key:"i18nKeys",get:function(){return this.player.i18nKeys}},{key:"domEventType",get:function(){var e=util$1.checkTouchSupport()?"touch":"mouse";return!this.playerConfig||"touch"!==this.playerConfig.domEventType&&"mouse"!==this.playerConfig.domEventType||(e=this.playerConfig.domEventType),e}},{key:"on",value:function(e,t){var n=this;e&&t&&this.player?"string"==typeof e?(this.__events[e]=t,this.player.on(e,t)):Array.isArray(e)&&e.forEach((function(e){n.__events[e]=t,n.player.on(e,t)})):showErrorMsg(this.pluginName,"plugin.on(event, callback)")}},{key:"once",value:function(e,t){var n=this;e&&t&&this.player?"string"==typeof e?(this.__onceEvents[e]=t,this.player.once(e,t)):Array.isArray(e)&&e.forEach((function(r){n.__onceEvents[r]=t,n.player.once(e,t)})):showErrorMsg(this.pluginName,"plugin.once(event, callback)")}},{key:"off",value:function(e,t){var n=this;e&&t&&this.player?"string"==typeof e?(delete this.__events[e],this.player.off(e,t)):Array.isArray(e)&&e.forEach((function(r){delete n.__events[e],n.player.off(r,t)})):showErrorMsg(this.pluginName,"plugin.off(event, callback)")}},{key:"offAll",value:function(){var e=this;["__events","__onceEvents"].forEach((function(t){Object.keys(e[t]).forEach((function(n){e[t][n]&&e.off(n,e[t][n]),n&&delete e[t][n]}))})),this.__events={},this.__onceEvents={}}},{key:"emit",value:function(e){var t;if(this.player){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];(t=this.player).emit.apply(t,[e].concat(r))}}},{key:"emitUserAction",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(this.player){var r=_objectSpread2$6(_objectSpread2$6({},n),{},{pluginName:this.pluginName});this.player.emitUserAction(e,t,r)}}},{key:"hook",value:function(e,t){return hook.call.apply(hook,[this].concat(Array.prototype.slice.call(arguments)))}},{key:"useHooks",value:function(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];return useHooks.call.apply(useHooks,[this].concat(Array.prototype.slice.call(arguments)))}},{key:"removeHooks",value:function(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];return removeHooks.call.apply(removeHooks,[this].concat(Array.prototype.slice.call(arguments)))}},{key:"registerPlugin",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(this.player)return n&&(t.pluginName=n),this.player.registerPlugin({plugin:e,options:t})}},{key:"getPlugin",value:function(e){return this.player?this.player.getPlugin(e):null}},{key:"__destroy",value:function(){var e=this,t=this.player,n=this.pluginName;this.offAll(),util$1.clearAllTimers(this),util$1.checkIsFunction(this.destroy)&&this.destroy(),["player","playerConfig","pluginName","logger","__args","__hooks"].map((function(t){e[t]=null})),t.unRegisterPlugin(n),delHooksDescriptor(this)}}],[{key:"defineGetterOrSetter",value:function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&Object.defineProperty(e,n,t[n])}},{key:"defineMethod",value:function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&"function"==typeof t[n]&&Object.defineProperty(e,n,{configurable:!0,value:t[n]})}},{key:"defaultConfig",get:function(){return{}}},{key:"pluginName",get:function(){return"pluginName"}}]),e}(),store={},instance$1=null,InstManager=function(e){_inherits$6(n,eventemitter3Exports.EventEmitter);var t=_createSuper$4(n);function n(){return _classCallCheck$8(this,n),t.apply(this,arguments)}return _createClass$8(n,[{key:"add",value:function(e){e&&(store[e.playerId]=e,1===Object.keys(store).length&&this.setActive(e.playerId,!0))}},{key:"remove",value:function(e){e&&(e.isUserActive,delete store[e.playerId])}},{key:"_iterate",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];for(var n in store)if(Object.prototype.hasOwnProperty.call(store,n)){var r=store[n];if(t){if(e(r))break}else e(r)}}},{key:"forEach",value:function(e){this._iterate(e)}},{key:"find",value:function(e){var t=null;return this._iterate((function(n){var r=e(n);return r&&(t=n),r}),!0),t}},{key:"findAll",value:function(e){var t=[];return this._iterate((function(n){e(n)&&t.push(n)})),t}},{key:"setActive",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(store[e])return t?this.forEach((function(t){e===t.playerId?(t.isUserActive=!0,t.isInstNext=!1):t.isUserActive=!1})):store[e].isUserActive=t,e}},{key:"getActiveId",value:function(){for(var e=Object.keys(store),t=0;t<e.length;t++){var n=store[e[t]];if(n&&n.isUserActive)return e[t]}return null}},{key:"setNext",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(store[e])return t?this.forEach((function(t){e===t.playerId?(t.isUserActive=!1,t.isInstNext=!0):t.isInstNext=!1})):store[e].isInstNext=t,e}}],[{key:"getInstance",value:function(){return instance$1||(instance$1=new n),instance$1}}]),n}(),EnhancedInstManager=function(e){function t(){var e;return _classCallCheck$9(this,t),(e=_callSuper$2(this,t,arguments))._ploys=[],e}return _inherits$7(t,InstManager||Object.prototype.constructor),_createClass$9(t,[{key:"_findIndexFromPloys",value:function(e){for(var t=-1,n=this._ploys,r=0;r<n.length;r++)if(n[r]===e){t=r;break}return t}},{key:"_checkStrategy",value:function(e){return!(null==e||!e.start||!e.stop||this._findIndexFromPloys(e)>-1)}},{key:"registerStrategy",value:function(e){var t=this;e&&(Array.isArray(e)||(e=[e]),e.forEach((function(e){var n=e.Strategy,r=e.config;if(r)try{var i=new n(r,t);t._checkStrategy(i)&&(i.start(),t._ploys.push(i))}catch(e){console.log("InstStrategy Error:",e)}})))}},{key:"unregisterStrategy",value:function(e){if(e){e.stop();var t=this._findIndexFromPloys(e);t>-1&&this._ploys.splice(t,1)}else this._ploys.forEach((function(e){e.stop()})),this._ploys.splice(0,this._ploys.length)}},{key:"updateStrategyConfig",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];e&&t&&this._ploys.forEach((function(r){r instanceof e&&r.updateConfig(t,n)}))}},{key:"setActive",value:function(e,n){var r=_superPropGet(t,"setActive",this,3)([e,n]);return this.emit("UPDATE_INST_ORDER"),r}},{key:"setNext",value:function(e){var n=_superPropGet(t,"setNext",this,3)([e]);return this.emit("UPDATE_INST_ORDER"),n}}],[{key:"getInstance",value:function(){return instance||(instance=new t),instance}}])}(),VTYPES=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}(VTYPES||{}),BizTypes=function(e){return e[e.Normal=0]="Normal",e[e.Ad=1]="Ad",e}(BizTypes||{}),CodecTypes=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}(CodecTypes||{}),REAL_TIME_SPEED_EVENT$1="real_time_speed",LOAD_TYPE$1={CDN:"cdn",PCDN:"pcdn"},START_TIMELINES={BEFEORE_START:0,NOT_SUPPORTED:1,START_INIT_DESTROY:2,NO_PRELOAD:3,CLOSE_DWNGRADE:4,INIT_PROMISE_CATCH:5,PLAYER_ERROR:6,HTTP_ERROR:7,MSE_ERROR:8,DESTROY:9},START_TIMELINES_MESSAGE=_defineProperty$8(_defineProperty$8(_defineProperty$8(_defineProperty$8(_defineProperty$8(_defineProperty$8(_defineProperty$8(_defineProperty$8(_defineProperty$8(_defineProperty$8({},START_TIMELINES.BEFEORE_START,"before start"),START_TIMELINES.NOT_SUPPORTED,"codec not support"),START_TIMELINES.START_INIT_DESTROY,"start init destroy"),START_TIMELINES.NO_PRELOAD,"no preload"),START_TIMELINES.CLOSE_DWNGRADE,"close downgrade"),START_TIMELINES.INIT_PROMISE_CATCH,"init promise catch"),START_TIMELINES.PLAYER_ERROR,"player error"),START_TIMELINES.HTTP_ERROR,"http error"),START_TIMELINES.MSE_ERROR,"mse error"),START_TIMELINES.DESTROY,"destroy"),EncryptBasePlugin=function(e){function t(e){var n;_classCallCheck$9(this,t);var r=n=_callSuper$2(this,t,[e]),i=r.player,a=r.playerConfig;return n.playerId=i.playerId,n.codecType=a.codecType?a.codecType.toLowerCase():CodecTypes.H264,n.bizType=i.bizType="number"==typeof a.bizType?a.bizType:BizTypes.Normal,a.vtype&&(n.vtype=a.vtype.toUpperCase()),preloader&&(i.preloader=preloader),n}return _inherits$7(t,BasePlugin),_createClass$9(t,[{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&&(preloader=e,EnhancedInstManager.getInstance().findAll((function(e){return e.config.isLive||(e.preloader=preloader),!1})))}}])}(),internalMetadata={exports:{}},objectGetOwnPropertyNamesExternal={},classof$7=classofRaw$2,toIndexedObject$6=toIndexedObject$e,$getOwnPropertyNames$1=objectGetOwnPropertyNames.f,arraySlice$7=arraySliceSimple,windowNames="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],getWindowNames=function(e){try{return $getOwnPropertyNames$1(e)}catch(e){return arraySlice$7(windowNames)}};objectGetOwnPropertyNamesExternal.f=function(e){return windowNames&&"Window"==classof$7(e)?getWindowNames(e):$getOwnPropertyNames$1(toIndexedObject$6(e))};var fails$q=fails$Q,arrayBufferNonExtensible=fails$q((function(){if("function"==typeof ArrayBuffer){var e=new ArrayBuffer(8);Object.isExtensible(e)&&Object.defineProperty(e,"a",{value:8})}})),fails$p=fails$Q,isObject$d=isObject$r,classof$6=classofRaw$2,ARRAY_BUFFER_NON_EXTENSIBLE=arrayBufferNonExtensible,$isExtensible=Object.isExtensible,FAILS_ON_PRIMITIVES$2=fails$p((function(){$isExtensible(1)})),objectIsExtensible=FAILS_ON_PRIMITIVES$2||ARRAY_BUFFER_NON_EXTENSIBLE?function(e){return!!isObject$d(e)&&((!ARRAY_BUFFER_NON_EXTENSIBLE||"ArrayBuffer"!=classof$6(e))&&(!$isExtensible||$isExtensible(e)))}:$isExtensible,fails$o=fails$Q,freezing=!fails$o((function(){return Object.isExtensible(Object.preventExtensions({}))})),$$C=_export,uncurryThis$p=functionUncurryThis,hiddenKeys$1=hiddenKeys$6,isObject$c=isObject$r,hasOwn$d=hasOwnProperty_1,defineProperty$7=objectDefineProperty.f,getOwnPropertyNamesModule$1=objectGetOwnPropertyNames,getOwnPropertyNamesExternalModule=objectGetOwnPropertyNamesExternal,isExtensible2=objectIsExtensible,uid$2=uid$5,FREEZING=freezing,REQUIRED=!1,METADATA=uid$2("meta"),id=0,setMetadata=function(e){defineProperty$7(e,METADATA,{value:{objectID:"O"+id++,weakData:{}}})},fastKey$1=function(e,t){if(!isObject$c(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!hasOwn$d(e,METADATA)){if(!isExtensible2(e))return"F";if(!t)return"E";setMetadata(e)}return e[METADATA].objectID},getWeakData=function(e,t){if(!hasOwn$d(e,METADATA)){if(!isExtensible2(e))return!0;if(!t)return!1;setMetadata(e)}return e[METADATA].weakData},onFreeze=function(e){return FREEZING&&REQUIRED&&isExtensible2(e)&&!hasOwn$d(e,METADATA)&&setMetadata(e),e},enable=function(){meta.enable=function(){},REQUIRED=!0;var e=getOwnPropertyNamesModule$1.f,t=uncurryThis$p([].splice),n={};n[METADATA]=1,e(n).length&&(getOwnPropertyNamesModule$1.f=function(n){for(var r=e(n),i=0,a=r.length;i<a;i++)if(r[i]===METADATA){t(r,i,1);break}return r},$$C({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:getOwnPropertyNamesExternalModule.f}))},meta=internalMetadata.exports={enable:enable,fastKey:fastKey$1,getWeakData:getWeakData,onFreeze:onFreeze};hiddenKeys$1[METADATA]=!0;var internalMetadataExports=internalMetadata.exports,$$B=_export,global$k=global$I,uncurryThis$o=functionUncurryThis,isForced$1=isForced_1,defineBuiltIn$9=defineBuiltIn$j,InternalMetadataModule=internalMetadataExports,iterate$c=iterate$f,anInstance$5=anInstance$7,isCallable$6=isCallable$t,isNullOrUndefined$4=isNullOrUndefined$9,isObject$b=isObject$r,fails$n=fails$Q,checkCorrectnessOfIteration$2=checkCorrectnessOfIteration$4,setToStringTag$7=setToStringTag$b,inheritIfRequired$2=inheritIfRequired$4,collection$1=function(e,t,n){var r=-1!==e.indexOf("Map"),i=-1!==e.indexOf("Weak"),a=r?"set":"add",o=global$k[e],l=o&&o.prototype,d=o,c={},s=function(e){var t=uncurryThis$o(l[e]);defineBuiltIn$9(l,e,"add"==e?function(e){return t(this,0===e?0:e),this}:"delete"==e?function(e){return!(i&&!isObject$b(e))&&t(this,0===e?0:e)}:"get"==e?function(e){return i&&!isObject$b(e)?void 0:t(this,0===e?0:e)}:"has"==e?function(e){return!(i&&!isObject$b(e))&&t(this,0===e?0:e)}:function(e,n){return t(this,0===e?0:e,n),this})};if(isForced$1(e,!isCallable$6(o)||!(i||l.forEach&&!fails$n((function(){(new o).entries().next()})))))d=n.getConstructor(t,e,r,a),InternalMetadataModule.enable();else if(isForced$1(e,!0)){var U=new d,F=U[a](i?{}:-0,1)!=U,u=fails$n((function(){U.has(1)})),Q=checkCorrectnessOfIteration$2((function(e){new o(e)})),R=!i&&fails$n((function(){for(var e=new o,t=5;t--;)e[a](t,t);return!e.has(-0)}));Q||((d=t((function(e,t){anInstance$5(e,l);var n=inheritIfRequired$2(new o,e,d);return isNullOrUndefined$4(t)||iterate$c(t,n[a],{that:n,AS_ENTRIES:r}),n}))).prototype=l,l.constructor=d),(u||R)&&(s("delete"),s("has"),r&&s("get")),(R||F)&&s(a),i&&l.clear&&delete l.clear}return c[e]=d,$$B({global:!0,constructor:!0,forced:d!=o},c),setToStringTag$7(d,e),i||n.setStrong(d,e,r),d},defineBuiltIn$8=defineBuiltIn$j,defineBuiltIns$3=function(e,t,n){for(var r in t)defineBuiltIn$8(e,r,t[r],n);return e},defineProperty$6=objectDefineProperty.f,create$3=objectCreate,defineBuiltIns$2=defineBuiltIns$3,bind$c=functionBindContext,anInstance$4=anInstance$7,isNullOrUndefined$3=isNullOrUndefined$9,iterate$b=iterate$f,defineIterator=iteratorDefine,createIterResultObject=createIterResultObject$3,setSpecies$3=setSpecies$5,DESCRIPTORS$c=descriptors,fastKey=internalMetadataExports.fastKey,InternalStateModule$6=internalState,setInternalState$5=InternalStateModule$6.set,internalStateGetterFor=InternalStateModule$6.getterFor,collectionStrong$1={getConstructor:function(e,t,n,r){var i=e((function(e,i){anInstance$4(e,a),setInternalState$5(e,{type:t,index:create$3(null),first:void 0,last:void 0,size:0}),DESCRIPTORS$c||(e.size=0),isNullOrUndefined$3(i)||iterate$b(i,e[r],{that:e,AS_ENTRIES:n})})),a=i.prototype,o=internalStateGetterFor(t),l=function(e,t,n){var r,i,a=o(e),l=d(e,t);return l?l.value=n:(a.last=l={index:i=fastKey(t,!0),key:t,value:n,previous:r=a.last,next:void 0,removed:!1},a.first||(a.first=l),r&&(r.next=l),DESCRIPTORS$c?a.size++:e.size++,"F"!==i&&(a.index[i]=l)),e},d=function(e,t){var n,r=o(e),i=fastKey(t);if("F"!==i)return r.index[i];for(n=r.first;n;n=n.next)if(n.key==t)return n};return defineBuiltIns$2(a,{clear:function(){for(var e=o(this),t=e.index,n=e.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete t[n.index],n=n.next;e.first=e.last=void 0,DESCRIPTORS$c?e.size=0:this.size=0},delete:function(e){var t=this,n=o(t),r=d(t,e);if(r){var i=r.next,a=r.previous;delete n.index[r.index],r.removed=!0,a&&(a.next=i),i&&(i.previous=a),n.first==r&&(n.first=i),n.last==r&&(n.last=a),DESCRIPTORS$c?n.size--:t.size--}return!!r},forEach:function(e){for(var t,n=o(this),r=bind$c(e,arguments.length>1?arguments[1]:void 0);t=t?t.next:n.first;)for(r(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!d(this,e)}}),defineBuiltIns$2(a,n?{get:function(e){var t=d(this,e);return t&&t.value},set:function(e,t){return l(this,0===e?0:e,t)}}:{add:function(e){return l(this,e=0===e?0:e,e)}}),DESCRIPTORS$c&&defineProperty$6(a,"size",{get:function(){return o(this).size}}),i},setStrong:function(e,t,n){var r=t+" Iterator",i=internalStateGetterFor(t),a=internalStateGetterFor(r);defineIterator(e,t,(function(e,t){setInternalState$5(this,{type:r,target:e,state:i(e),kind:t,last:void 0})}),(function(){for(var e=a(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?createIterResultObject("keys"==t?n.key:"values"==t?n.value:[n.key,n.value],!1):(e.target=void 0,createIterResultObject(void 0,!0))}),n?"entries":"values",!n,!0),setSpecies$3(t)}},collection=collection$1,collectionStrong=collectionStrong$1;collection("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),collectionStrong);var call$k=functionCall,aCallable$9=aCallable$i,anObject$m=anObject$z,collectionDeleteAll=function(){for(var e,t=anObject$m(this),n=aCallable$9(t.delete),r=!0,i=0,a=arguments.length;i<a;i++)e=call$k(n,t,arguments[i]),r=r&&e;return!!r},$$A=_export,deleteAll2=collectionDeleteAll;$$A({target:"Map",proto:!0,real:!0,forced:!0},{deleteAll:deleteAll2});var call$j=functionCall,getMapIterator$a=function(e){return call$j(Map.prototype.entries,e)},$$z=_export,anObject$l=anObject$z,bind$b=functionBindContext,getMapIterator$9=getMapIterator$a,iterate$a=iterate$f;$$z({target:"Map",proto:!0,real:!0,forced:!0},{every:function(e){var t=anObject$l(this),n=getMapIterator$9(t),r=bind$b(e,arguments.length>1?arguments[1]:void 0);return!iterate$a(n,(function(e,n,i){if(!r(n,e,t))return i()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var $$y=_export,getBuiltIn$7=getBuiltIn$h,bind$a=functionBindContext,call$i=functionCall,aCallable$8=aCallable$i,anObject$k=anObject$z,speciesConstructor$4=speciesConstructor$7,getMapIterator$8=getMapIterator$a,iterate$9=iterate$f;$$y({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(e){var t=anObject$k(this),n=getMapIterator$8(t),r=bind$a(e,arguments.length>1?arguments[1]:void 0),i=new(speciesConstructor$4(t,getBuiltIn$7("Map"))),a=aCallable$8(i.set);return iterate$9(n,(function(e,n){r(n,e,t)&&call$i(a,i,e,n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),i}});var $$x=_export,anObject$j=anObject$z,bind$9=functionBindContext,getMapIterator$7=getMapIterator$a,iterate$8=iterate$f;$$x({target:"Map",proto:!0,real:!0,forced:!0},{find:function(e){var t=anObject$j(this),n=getMapIterator$7(t),r=bind$9(e,arguments.length>1?arguments[1]:void 0);return iterate$8(n,(function(e,n,i){if(r(n,e,t))return i(n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var $$w=_export,anObject$i=anObject$z,bind$8=functionBindContext,getMapIterator$6=getMapIterator$a,iterate$7=iterate$f;$$w({target:"Map",proto:!0,real:!0,forced:!0},{findKey:function(e){var t=anObject$i(this),n=getMapIterator$6(t),r=bind$8(e,arguments.length>1?arguments[1]:void 0);return iterate$7(n,(function(e,n,i){if(r(n,e,t))return i(e)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var sameValueZero$1=function(e,t){return e===t||e!=e&&t!=t},$$v=_export,anObject$h=anObject$z,getMapIterator$5=getMapIterator$a,sameValueZero=sameValueZero$1,iterate$6=iterate$f;$$v({target:"Map",proto:!0,real:!0,forced:!0},{includes:function(e){return iterate$6(getMapIterator$5(anObject$h(this)),(function(t,n,r){if(sameValueZero(n,e))return r()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var $$u=_export,anObject$g=anObject$z,getMapIterator$4=getMapIterator$a,iterate$5=iterate$f;$$u({target:"Map",proto:!0,real:!0,forced:!0},{keyOf:function(e){return iterate$5(getMapIterator$4(anObject$g(this)),(function(t,n,r){if(n===e)return r(t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var $$t=_export,getBuiltIn$6=getBuiltIn$h,bind$7=functionBindContext,call$h=functionCall,aCallable$7=aCallable$i,anObject$f=anObject$z,speciesConstructor$3=speciesConstructor$7,getMapIterator$3=getMapIterator$a,iterate$4=iterate$f;$$t({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(e){var t=anObject$f(this),n=getMapIterator$3(t),r=bind$7(e,arguments.length>1?arguments[1]:void 0),i=new(speciesConstructor$3(t,getBuiltIn$6("Map"))),a=aCallable$7(i.set);return iterate$4(n,(function(e,n){call$h(a,i,r(n,e,t),n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),i}});var $$s=_export,getBuiltIn$5=getBuiltIn$h,bind$6=functionBindContext,call$g=functionCall,aCallable$6=aCallable$i,anObject$e=anObject$z,speciesConstructor$2=speciesConstructor$7,getMapIterator$2=getMapIterator$a,iterate$3=iterate$f;$$s({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(e){var t=anObject$e(this),n=getMapIterator$2(t),r=bind$6(e,arguments.length>1?arguments[1]:void 0),i=new(speciesConstructor$2(t,getBuiltIn$5("Map"))),a=aCallable$6(i.set);return iterate$3(n,(function(e,n){call$g(a,i,e,r(n,e,t))}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),i}});var $$r=_export,aCallable$5=aCallable$i,anObject$d=anObject$z,iterate$2=iterate$f;$$r({target:"Map",proto:!0,real:!0,arity:1,forced:!0},{merge:function(e){for(var t=anObject$d(this),n=aCallable$5(t.set),r=arguments.length,i=0;i<r;)iterate$2(arguments[i++],n,{that:t,AS_ENTRIES:!0});return t}});var $$q=_export,anObject$c=anObject$z,aCallable$4=aCallable$i,getMapIterator$1=getMapIterator$a,iterate$1=iterate$f,$TypeError$5=TypeError;$$q({target:"Map",proto:!0,real:!0,forced:!0},{reduce:function(e){var t=anObject$c(this),n=getMapIterator$1(t),r=arguments.length<2,i=r?void 0:arguments[1];if(aCallable$4(e),iterate$1(n,(function(n,a){r?(r=!1,i=a):i=e(i,a,n,t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),r)throw $TypeError$5("Reduce of empty map with no initial value");return i}});var $$p=_export,anObject$b=anObject$z,bind$5=functionBindContext,getMapIterator=getMapIterator$a,iterate=iterate$f;$$p({target:"Map",proto:!0,real:!0,forced:!0},{some:function(e){var t=anObject$b(this),n=getMapIterator(t),r=bind$5(e,arguments.length>1?arguments[1]:void 0);return iterate(n,(function(e,n,i){if(r(n,e,t))return i()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var $$o=_export,call$f=functionCall,anObject$a=anObject$z,aCallable$3=aCallable$i,$TypeError$4=TypeError;function ownKeys$6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread2$5(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$6(Object(n),!0).forEach((function(t){_defineProperty$6(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$6(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _regeneratorRuntime$4(){_regeneratorRuntime$4=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function d(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{d({},"")}catch(e){d=function(e,t,n){return e[t]=n}}function c(e,t,n,i){var a=t&&t.prototype instanceof F?t:F,o=Object.create(a.prototype),l=new Z(i||[]);return r(o,"_invoke",{value:m(e,n,l)}),o}function s(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var U={};function F(){}function u(){}function Q(){}var R={};d(R,a,(function(){return this}));var h=Object.getPrototypeOf,p=h&&h(h(b([])));p&&p!==t&&n.call(p,a)&&(R=p);var B=Q.prototype=F.prototype=Object.create(R);function S(e){["next","throw","return"].forEach((function(t){d(e,t,(function(e){return this._invoke(t,e)}))}))}function f(e,t){function i(r,a,o,l){var d=s(e[r],e,a);if("throw"!==d.type){var c=d.arg,U=c.value;return U&&"object"==typeof U&&n.call(U,"__await")?t.resolve(U.__await).then((function(e){i("next",e,o,l)}),(function(e){i("throw",e,o,l)})):t.resolve(U).then((function(e){c.value=e,o(c)}),(function(e){return i("throw",e,o,l)}))}l(d.arg)}var a;r(this,"_invoke",{value:function(e,n){function r(){return new t((function(t,r){i(e,n,t,r)}))}return a=a?a.then(r,r):r()}})}function m(e,t,n){var r="suspendedStart";return function(i,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw a;return{value:void 0,done:!0}}for(n.method=i,n.arg=a;;){var o=n.delegate;if(o){var l=V(o,n);if(l){if(l===U)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var d=s(e,t,n);if("normal"===d.type){if(r=n.done?"completed":"suspendedYield",d.arg===U)continue;return{value:d.arg,done:n.done}}"throw"===d.type&&(r="completed",n.method="throw",n.arg=d.arg)}}}function V(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,V(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),U;var i=s(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,U;var a=i.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,U):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,U)}function y(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function Z(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(y,this),this.reset(!0)}function b(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return i.next=i}}return{next:J}}function J(){return{value:void 0,done:!0}}return u.prototype=Q,r(B,"constructor",{value:Q,configurable:!0}),r(Q,"constructor",{value:u,configurable:!0}),u.displayName=d(Q,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===u||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,Q):(e.__proto__=Q,d(e,l,"GeneratorFunction")),e.prototype=Object.create(B),e},e.awrap=function(e){return{__await:e}},S(f.prototype),d(f.prototype,o,(function(){return this})),e.AsyncIterator=f,e.async=function(t,n,r,i,a){void 0===a&&(a=Promise);var o=new f(c(t,n,r,i),a);return e.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},S(B),d(B,l,"Generator"),d(B,a,(function(){return this})),d(B,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=b,Z.prototype={constructor:Z,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(E),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=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 t=this;function r(n,r){return o.type="throw",o.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var l=n.call(a,"catchLoc"),d=n.call(a,"finallyLoc");if(l&&d){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!d)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var a=i;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,U):this.complete(o)},complete:function(e,t){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&&t&&(this.next=t),U},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),U}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;E(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:b(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),U}},e}function _typeof$3(e){return(_typeof$3="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 asyncGeneratorStep$4(e,t,n,r,i,a,o){try{var l=e[a](o),d=l.value}catch(e){return void n(e)}l.done?t(d):Promise.resolve(d).then(r,i)}function _asyncToGenerator$4(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){asyncGeneratorStep$4(a,r,i,o,l,"next",e)}function l(e){asyncGeneratorStep$4(a,r,i,o,l,"throw",e)}o(void 0)}))}}function _classCallCheck$7(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties$7(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey$7(r.key),r)}}function _createClass$7(e,t,n){return t&&_defineProperties$7(e.prototype,t),n&&_defineProperties$7(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty$6(e,t,n){return(t=_toPropertyKey$7(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _inherits$5(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf$5(e,t)}function _getPrototypeOf$5(e){return(_getPrototypeOf$5=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _setPrototypeOf$5(e,t){return(_setPrototypeOf$5=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function _isNativeReflectConstruct$5(){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 _construct$2(e,t,n){return(_construct$2=_isNativeReflectConstruct$5()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&_setPrototypeOf$5(i,n.prototype),i}).apply(null,arguments)}function _isNativeFunction$2(e){return-1!==Function.toString.call(e).indexOf("[native code]")}function _wrapNativeSuper$2(e){var t="function"==typeof Map?new Map:void 0;return _wrapNativeSuper$2=function(e){if(null===e||!_isNativeFunction$2(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return _construct$2(e,arguments,_getPrototypeOf$5(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),_setPrototypeOf$5(n,e)},_wrapNativeSuper$2(e)}function _objectWithoutPropertiesLoose$5(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}function _objectWithoutProperties$5(e,t){if(null==e)return{};var n,r,i=_objectWithoutPropertiesLoose$5(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function _assertThisInitialized$5(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _possibleConstructorReturn$5(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$5(e)}function _createSuper$3(e){var t=_isNativeReflectConstruct$5();return function(){var n,r=_getPrototypeOf$5(e);if(t){var i=_getPrototypeOf$5(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return _possibleConstructorReturn$5(this,n)}}function _superPropBase$2(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf$5(e)););return e}function _get$2(){return _get$2="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=_superPropBase$2(e,t);if(r){var i=Object.getOwnPropertyDescriptor(r,t);return i.get?i.get.call(arguments.length<3?e:n):i.value}},_get$2.apply(this,arguments)}function _unsupportedIterableToArray$6(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray$6(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray$6(e,t):void 0}}function _arrayLikeToArray$6(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function _createForOfIteratorHelper$3(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=_unsupportedIterableToArray$6(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}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 a,o=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){l=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(l)throw a}}}}function _toPrimitive$7(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$7(e){var t=_toPrimitive$7(e,"string");return"symbol"==typeof t?t:String(t)}function createPublicPromise$2(){var e,t,n=new Promise((function(n,r){e=n,t=r}));return n.used=!1,n.resolve=function(){return n.used=!0,e.apply(void 0,arguments)},n.reject=function(){return n.used=!0,t.apply(void 0,arguments)},n}$$o({target:"Map",proto:!0,real:!0,forced:!0},{update:function(e,t){var n=anObject$a(this),r=aCallable$3(n.get),i=aCallable$3(n.has),a=aCallable$3(n.set),o=arguments.length;aCallable$3(t);var l=call$f(i,n,e);if(!l&&o<3)throw $TypeError$4("Updating absent value");var d=l?call$f(r,n,e):aCallable$3(o>2?arguments[2]:void 0)(e,n);return call$f(a,n,e,t(d,e,n)),n}});var LogCacheLevel$2={DEBUG:1,LOG:2,WARN:3,ERROR:4},LOG_MAX_SIZE$2=204800,SIMPLE_TYPE$2=["Boolean","Number","String","Undefined","Null","Date","Object"],Logger$3=function(){function e(t,n){_classCallCheck$7(this,e),this.name=t||"",this._prefix="[".concat(this.name,"]"),this.logCacheLevel=(null==n?void 0:n.logCacheLevel)||3,this.logMaxSize=(null==n?void 0:n.logMaxSize)||LOG_MAX_SIZE$2,this.logSize=0,this.logTextArray=[]}return _createClass$7(e,[{key:"debug",value:function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];this.logCache.apply(this,[LogCacheLevel$2.DEBUG].concat(r)),e.disabled||(t=console).debug.apply(t,[this._prefix,nowTime$4()].concat(r))}},{key:"log",value:function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];this.logCache.apply(this,[LogCacheLevel$2.LOG].concat(r)),e.disabled||(t=console).log.apply(t,[this._prefix,nowTime$4()].concat(r))}},{key:"warn",value:function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];this.logCache.apply(this,[LogCacheLevel$2.WARN].concat(r)),e.disabled||(t=console).warn.apply(t,[this._prefix,nowTime$4()].concat(r))}},{key:"error",value:function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];this.logCache.apply(this,[LogCacheLevel$2.ERROR].concat(r)),e.disabled||(t=console).error.apply(t,[this._prefix,nowTime$4()].concat(r))}},{key:"logCache",value:function(e){if(!(e<this.logCacheLevel)){var t="";try{for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];var a=r.map((function(e){return logable$2(e)}));t=this._prefix+nowTime$4()+JSON.stringify(a)}catch(e){return}if(e>=this.logCacheLevel&&(this.logSize+=t.length,this.logTextArray.push(t)),this.logSize>this.logMaxSize){var o=this.logTextArray.shift();this.logSize-=o.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 t;e.disabled||(console.group(this._prefix),(t=console).table.apply(t,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 nowTime$4(){return(new Date).toLocaleString()}function reduceDepth$2(e){if("object"!==_typeof$3(e))return e;var t=Object.prototype.toString.call(e).slice(8,-1);switch(t){case"Array":case"Uint8Array":case"ArrayBuffer":return t+"["+e.length+"]";case"Object":return"{}";default:return t}}function logable$2(e,t,n){n||(n=1),t||(t=2);var r={};if(!e||"object"!==_typeof$3(e))return e;var i=Object.prototype.toString.call(e).slice(8,-1);if(!SIMPLE_TYPE$2.includes(i))return i;if(!(n>t)){for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(n===t?r[a]=reduceDepth$2(e[a]):"object"===_typeof$3(e[a])?r[a]=logable$2(e[a],t,n+1):r[a]=e[a]);return r}}_defineProperty$6(Logger$3,"disabled",!0);var LoaderType$2={FETCH:"fetch",XHR:"xhr"},ResponseType$2={ARRAY_BUFFER:"arraybuffer",TEXT:"text",JSON:"json"},NetError$2=function(e){_inherits$5(n,_wrapNativeSuper$2(Error));var t=_createSuper$3(n);function n(e,r,i,a){var o;return _classCallCheck$7(this,n),_defineProperty$6(_assertThisInitialized$5(o=t.call(this,a)),"retryCount",0),_defineProperty$6(_assertThisInitialized$5(o),"isTimeout",!1),_defineProperty$6(_assertThisInitialized$5(o),"loaderType",LoaderType$2.FETCH),_defineProperty$6(_assertThisInitialized$5(o),"startTime",0),_defineProperty$6(_assertThisInitialized$5(o),"endTime",0),_defineProperty$6(_assertThisInitialized$5(o),"options",{}),o.url=e,o.request=r,o.response=i,o}return _createClass$7(n)}(),toString$b=Object.prototype.toString;function isObject$a(e){return null!==e&&"object"===_typeof$3(e)}function isPlainObject$2(e){if("[object Object]"!==toString$b.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function isDate$2(e){return"[object Date]"===toString$b.call(e)}function getRangeValue$2(e){if(e&&null!==e[0]&&void 0!==e[0]&&(0!==e[0]||null!==e[1]&&void 0!==e[1])){var t="bytes="+e[0]+"-";return e[1]&&(t+=e[1]),t}}function encode$3(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function setUrlParams$2(e,t){if(e){if(!t)return e;var n,r=Object.keys(t).map((function(e){if(null!=(n=t[e]))return Array.isArray(n)?e+="[]":n=[n],n.map((function(t){return isDate$2(t)?t=t.toISOString():isObject$a(t)&&(t=JSON.stringify(t)),"".concat(encode$3(e),"=").concat(encode$3(t))})).join("&")})).filter(Boolean).join("&");if(r){var i=e.indexOf("#");-1!==i&&(e=e.slice(0,i)),e+=(-1===e.indexOf("?")?"?":"&")+r}return e}}function createResponse$2(e,t,n,r,i,a,o,l,d,c,s){return i=null!=i?parseFloat(i):null,r=parseInt(r||"0",10),Number.isNaN(r)&&(r=0),{data:e,done:t,options:{range:d,vid:c,index:l,contentLength:r,age:i,startTime:a,firstByteTime:o,endTime:Date.now(),priOptions:s},response:n}}function calculateSpeed$3(e,t){return Math.round(8*e*1e3/t/1024)}var EVENT$2={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",ANALYZE_DURATION_EXCEEDED:"core.analyzedurationexceeded",REMOVE_BUFFER:"core.removebuffer",BUFFEREOS:"core.buffereos",KEYFRAME:"core.keyframe",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"},CACHESIZE$2=2097152,FetchLoader$2=function(e){_inherits$5(r,EventEmitter);var t,n=_createSuper$3(r);function r(){var e;return _classCallCheck$7(this,r),_defineProperty$6(_assertThisInitialized$5(e=n.call(this)),"_abortController",null),_defineProperty$6(_assertThisInitialized$5(e),"_timeoutTimer",null),_defineProperty$6(_assertThisInitialized$5(e),"_reader",null),_defineProperty$6(_assertThisInitialized$5(e),"_response",null),_defineProperty$6(_assertThisInitialized$5(e),"_aborted",!1),_defineProperty$6(_assertThisInitialized$5(e),"_index",-1),_defineProperty$6(_assertThisInitialized$5(e),"_range",null),_defineProperty$6(_assertThisInitialized$5(e),"_receivedLength",0),_defineProperty$6(_assertThisInitialized$5(e),"_running",!1),_defineProperty$6(_assertThisInitialized$5(e),"_logger",null),_defineProperty$6(_assertThisInitialized$5(e),"_vid",""),_defineProperty$6(_assertThisInitialized$5(e),"_onProcessMinLen",0),_defineProperty$6(_assertThisInitialized$5(e),"_onCancel",null),_defineProperty$6(_assertThisInitialized$5(e),"_priOptions",null),e}return _createClass$7(r,[{key:"load",value:function(e){var t,n=this,r=e.url,i=e.vid,a=e.timeout,o=e.responseType,l=e.onProgress,d=e.index,c=e.onTimeout,s=e.onCancel,U=e.range,F=e.transformResponse,u=e.request,Q=e.params,R=e.logger,h=e.method,p=e.headers,B=e.body,S=e.mode,f=e.credentials,m=e.cache,V=e.redirect,y=e.referrer,E=e.referrerPolicy,Z=e.onProcessMinLen,b=e.priOptions;this._logger=R,this._aborted=!1,this._onProcessMinLen=Z,this._onCancel=s,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._index=d,this._range=U||[0,0],this._vid=i||r,this._priOptions=b||{};var J={method:h,headers:p,body:B,mode:S,credentials:f,cache:m,redirect:V,referrer:y,referrerPolicy:E,signal:null===(t=this._abortController)||void 0===t?void 0:t.signal},v=!1;clearTimeout(this._timeoutTimer),r=setUrlParams$2(r,Q);var g=getRangeValue$2(U);g&&(p=u?u.headers:J.headers=J.headers||(Headers?new Headers:{}),Headers&&p instanceof Headers?p.append("Range",g):p.Range=g),a&&(this._timeoutTimer=setTimeout((function(){if(v=!0,n.cancel(),c){var e=new NetError$2(r,J,null,"timeout");e.isTimeout=!0,c(e,{index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions})}}),a));var T=Date.now();return this._logger.debug("[fetch load start], index,",d,",range,",U),new Promise((function(e,t){fetch(u||r,u?void 0:J).then(function(){var i=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function i(a){var c,s,u,Q;return _regeneratorRuntime$4().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(clearTimeout(n._timeoutTimer),n._response=a,!n._aborted&&n._running){i.next=4;break}return i.abrupt("return");case 4:if(F&&(a=F(a,r)||a),a.ok){i.next=7;break}throw new NetError$2(r,J,a,"bad network response");case 7:if(c=Date.now(),o!==ResponseType$2.TEXT){i.next=15;break}return i.next=11,a.text();case 11:s=i.sent,n._running=!1,i.next=37;break;case 15:if(o!==ResponseType$2.JSON){i.next=22;break}return i.next=18,a.json();case 18:s=i.sent,n._running=!1,i.next=37;break;case 22:if(!l){i.next=29;break}return n.resolve=e,n.reject=t,n._loadChunk(a,l,T,c),i.abrupt("return");case 29:return i.next=31,a.arrayBuffer();case 31:s=i.sent,s=new Uint8Array(s),n._running=!1,u=Date.now()-T,Q=calculateSpeed$3(s.byteLength,u),n.emit(EVENT$2.REAL_TIME_SPEED,{speed:Q,len:s.byteLength,time:u,vid:n._vid,index:n._index,range:n._range,priOptions:n._priOptions});case 37:n._logger.debug("[fetch load end], index,",d,",range,",U),e(createResponse$2(s,!0,a,a.headers.get("Content-Length"),a.headers.get("age"),T,c,d,U,n._vid,n._priOptions));case 39:case"end":return i.stop()}}),i)})));return function(e){return i.apply(this,arguments)}}()).catch((function(e){var i;clearTimeout(n._timeoutTimer),n._running=!1,n._aborted&&!v||((e=e instanceof NetError$2?e:new NetError$2(r,J,null,null===(i=e)||void 0===i?void 0:i.message)).startTime=T,e.endTime=Date.now(),e.isTimeout=v,e.options={index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions},t(e))}))}))}},{key:"cancel",value:(t=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(){return _regeneratorRuntime$4().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(e){}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 t.apply(this,arguments)})},{key:"_loadChunk",value:function(e,t,n,r){var i=this;if(!e.body||!e.body.getReader){this._running=!1;var a=new NetError$2(e.url,"",e,"onProgress of bad response.body.getReader");return a.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(a)}this._onProcessMinLen>0&&(this._cache=new Uint8Array(CACHESIZE$2),this._writeIdx=0);var o,l,d,c=this._reader=e.body.getReader(),s=function(){var a=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function a(){var U,F,u,Q,R,h,p,B;return _regeneratorRuntime$4().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return l=Date.now(),a.prev=1,a.next=4,c.read();case 4:o=a.sent,d=Date.now(),a.next=13;break;case 8:return a.prev=8,a.t0=a.catch(1),d=Date.now(),i._aborted||(i._running=!1,a.t0.options={index:i._index,range:i._range,vid:i._vid,priOptions:i._priOptions},i.reject(a.t0)),a.abrupt("return");case 13:if(F=(null===(U=i._range)||void 0===U?void 0:U.length)>0?i._range[0]:0,u=F+i._receivedLength,!i._aborted){a.next=19;break}return i._running=!1,t(void 0,!1,{range:[u,u],vid:i._vid,index:i._index,startTime:l,endTime:d,st:n,firstByteTime:r,priOptions:i._priOptions},e),a.abrupt("return");case 19:Q=o.value?o.value.byteLength:0,i._receivedLength+=Q,i._logger.debug("【fetchLoader,onProgress call】,task,",i._range,", start,",u,", end,",F+i._receivedLength,", done,",o.done),i._onProcessMinLen>0?i._writeIdx+Q>=i._onProcessMinLen||o.done?((R=new Uint8Array(i._writeIdx+Q)).set(i._cache.slice(0,i._writeIdx),0),Q>0&&R.set(o.value,i._writeIdx),i._writeIdx=0,i._logger.debug("【fetchLoader,onProgress enough】,done,",o.done,",len,",R.byteLength,", writeIdx,",i._writeIdx)):Q>0&&i._writeIdx+Q<CACHESIZE$2?(i._cache.set(o.value,i._writeIdx),i._writeIdx+=Q,i._logger.debug("【fetchLoader,onProgress cache】,len,",Q,", writeIdx,",i._writeIdx)):Q>0&&(h=new Uint8Array(i._writeIdx+Q+2048),i._logger.debug("【fetchLoader,onProgress extra start】,size,",i._writeIdx+Q+2048,", datalen,",Q,", writeIdx,",i._writeIdx),h.set(i._cache.slice(0,i._writeIdx),0),Q>0&&h.set(o.value,i._writeIdx),i._writeIdx+=Q,delete i._cache,i._cache=h,i._logger.debug("【fetchLoader,onProgress extra end】,len,",Q,", writeIdx,",i._writeIdx)):R=o.value,(R&&R.byteLength>0||o.done)&&t(R,o.done,{range:[i._range[0]+i._receivedLength-(R?R.byteLength:0),i._range[0]+i._receivedLength],vid:i._vid,index:i._index,startTime:l,endTime:d,st:n,firstByteTime:r,priOptions:i._priOptions},e),o.done?(p=Date.now()-n,B=calculateSpeed$3(i._receivedLength,p),i.emit(EVENT$2.REAL_TIME_SPEED,{speed:B,len:i._receivedLength,time:p,vid:i._vid,index:i._index,range:i._range,priOptions:i._priOptions}),i._running=!1,i._logger.debug("[fetchLoader onProgress end],task,",i._range,",done,",o.done),i.resolve(createResponse$2(o,!0,e,e.headers.get("Content-Length"),e.headers.get("age"),n,r,i._index,i._range,i._vid,i._priOptions))):s();case 25:case"end":return a.stop()}}),a,null,[[1,8]])})));return function(){return a.apply(this,arguments)}}();s()}},{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)}}]),r}();function getConfig$3(e){return _objectSpread2$5({loaderType:LoaderType$2.FETCH,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:ResponseType$2.TEXT,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)}var XhrLoader$2=function(e){_inherits$5(n,EventEmitter);var t=_createSuper$3(n);function n(){var e;return _classCallCheck$7(this,n),_defineProperty$6(_assertThisInitialized$5(e=t.call(this)),"_xhr",null),_defineProperty$6(_assertThisInitialized$5(e),"_aborted",!1),_defineProperty$6(_assertThisInitialized$5(e),"_timeoutTimer",null),_defineProperty$6(_assertThisInitialized$5(e),"_range",null),_defineProperty$6(_assertThisInitialized$5(e),"_receivedLength",0),_defineProperty$6(_assertThisInitialized$5(e),"_url",null),_defineProperty$6(_assertThisInitialized$5(e),"_onProgress",null),_defineProperty$6(_assertThisInitialized$5(e),"_index",-1),_defineProperty$6(_assertThisInitialized$5(e),"_headers",null),_defineProperty$6(_assertThisInitialized$5(e),"_currentChunkSizeKB",384),_defineProperty$6(_assertThisInitialized$5(e),"_timeout",null),_defineProperty$6(_assertThisInitialized$5(e),"_xhr",null),_defineProperty$6(_assertThisInitialized$5(e),"_withCredentials",null),_defineProperty$6(_assertThisInitialized$5(e),"_startTime",-1),_defineProperty$6(_assertThisInitialized$5(e),"_loadCompleteResolve",null),_defineProperty$6(_assertThisInitialized$5(e),"_loadCompleteReject",null),_defineProperty$6(_assertThisInitialized$5(e),"_runing",!1),_defineProperty$6(_assertThisInitialized$5(e),"_logger",!1),_defineProperty$6(_assertThisInitialized$5(e),"_vid",""),_defineProperty$6(_assertThisInitialized$5(e),"_responseType",void 0),_defineProperty$6(_assertThisInitialized$5(e),"_credentials",void 0),_defineProperty$6(_assertThisInitialized$5(e),"_method",void 0),_defineProperty$6(_assertThisInitialized$5(e),"_transformResponse",void 0),_defineProperty$6(_assertThisInitialized$5(e),"_firstRtt",void 0),_defineProperty$6(_assertThisInitialized$5(e),"_onCancel",null),_defineProperty$6(_assertThisInitialized$5(e),"_priOptions",null),e}return _createClass$7(n,[{key:"load",value:function(e){var t=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=setUrlParams$2(e.url,e.params);var n=Date.now();return new Promise((function(e,n){t._loadCompleteResolve=e,t._loadCompleteReject=n,t._startLoad()})).catch((function(e){if(clearTimeout(t._timeoutTimer),t._runing=!1,!t._aborted)throw(e=e instanceof NetError$2?e:new NetError$2(t._url,t._request)).startTime=n,e.endTime=Date.now(),e.options={index:t._index,vid:t._vid,priOptions:t._priOptions},e}))}},{key:"_startLoad",value:function(){var e=null;if(this._responseType===ResponseType$2.ARRAY_BUFFER&&this._range&&this._range.length>1)if(this._onProgress){this._firstRtt=-1;var t=1024*this._currentChunkSizeKB,n=this._range[0]+this._receivedLength,r=this._range[1];t<this._range[1]-n&&(r=n+t),e=[n,r],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 t=this;try{this._startTime=Date.now();var n=this._xhr=new XMLHttpRequest;n.open(this._method||"GET",this._url,!0),n.responseType=this._responseType,this._timeout&&(n.timeout=this._timeout),n.withCredentials=this._withCredentials,n.onload=this._onLoad.bind(this),n.onreadystatechange=this._onReadyStatechange.bind(this),n.onerror=function(e){var n,r,i;t._running=!1;var a=new NetError$2(t._url,t._request,null==e||null===(n=e.currentTarget)||void 0===n?void 0:n.response,"xhr.onerror.status:"+(null==e||null===(r=e.currentTarget)||void 0===r?void 0:r.status)+",statusText,"+(null==e||null===(i=e.currentTarget)||void 0===i?void 0:i.statusText));a.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(a)},n.ontimeout=function(e){t.cancel();var n=new NetError$2(t._url,t._request,{status:408},"timeout");t._onTimeout&&(n.isTimeout=!0,t._onTimeout(n,{index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions})),n.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(n)};var r=this._headers||{},i=getRangeValue$2(e);i&&(r.Range=i),r&&Object.keys(r).forEach((function(e){n.setRequestHeader(e,r[e])})),this._logger.debug("[xhr.send->] tast,",this._range,",load sub range, ",e),n.send(this._body)}catch(t){t.options={index:this._index,range:e,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(t)}}},{key:"_onReadyStatechange",value:function(e){2===e.target.readyState&&this._firstRtt<0&&(this._firstRtt=Date.now())}},{key:"_onLoad",value:function(e){var t,n=e.target.status;if(n<200||n>299){var r=new NetError$2(this._url,null,_objectSpread2$5(_objectSpread2$5({},e.target.response),{},{status:n}),"bad response,status:"+n);return r.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(r)}var i,a=null,o=!1,l=(null===(t=this._range)||void 0===t?void 0:t.length)>0?this._range[0]:0;if(this._responseType===ResponseType$2.ARRAY_BUFFER){var d,c=new Uint8Array(e.target.response);if(i=l+this._receivedLength,c&&c.byteLength>0){this._receivedLength+=c.byteLength;var s=Date.now()-this._startTime,U=calculateSpeed$3(this._receivedLength,s);this.emit(EVENT$2.REAL_TIME_SPEED,{speed:U,len:this._receivedLength,time:s,vid:this._vid,index:this._index,range:[i,l+this._receivedLength],priOptions:this._priOptions})}a=c,o=!((null===(d=this._range)||void 0===d?void 0:d.length)>1&&this._range[1]&&this._receivedLength<this._range[1]-this._range[0]),this._logger.debug("[xhr load done->], tast :",this._range,", start",i,"end ",l+this._receivedLength,",dataLen,",c?c.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",o)}else o=!0,a=e.target.response;var F={ok:n>=200&&n<300,status:n,statusText:this._xhr.statusText,url:this._xhr.responseURL,headers:this._getHeaders(this._xhr),body:this._xhr.response};this._transformResponse&&(F=this._transformResponse(F,this._url)||F),this._onProgress&&this._onProgress(a,o,{index:this._index,vid:this._vid,range:[i,l+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},F),o?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(createResponse$2(this._onProgress?null:a,o,F,F.headers["content-length"],F.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,_get$2(_getPrototypeOf$5(n.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 t,n={},r=_createForOfIteratorHelper$3(e.getAllResponseHeaders().trim().split("\r\n"));try{for(r.s();!(t=r.n()).done;){var i=t.value.split(": ");n[i[0].toLowerCase()]=i.slice(1).join(": ")}}catch(e){r.e(e)}finally{r.f()}return n}}],[{key:"isSupported",value:function(){return"undefined"!=typeof XMLHttpRequest}}]),n}(),_excluded$6=["retry","retryDelay","onRetryError","transformError"],Task$2=function(){function e(t,n){_classCallCheck$7(this,e),this.promise=createPublicPromise$2(),this.alive=!!n.onProgress,!n.logger&&(n.logger=new Logger$3("Loader")),this._loaderType=t,this._loader=t===LoaderType$2.FETCH&&"undefined"!=typeof fetch?new FetchLoader$2:new XhrLoader$2,this._config=n,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=n.retryCheckFunc,this._logger=n.logger}var t;return _createClass$7(e,[{key:"exec",value:function(){var e=this,t=this._config,n=t.retry,r=t.retryDelay,i=t.onRetryError,a=t.transformError,o=_objectWithoutProperties$5(t,_excluded$6),l=function(){var t=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function t(){var d,c,s;return _regeneratorRuntime$4().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e._loader.load(o);case 3:d=t.sent,e.promise.resolve(d),t.next=27;break;case 7:if(t.prev=7,t.t0=t.catch(0),e._loader.running=!1,e._logger.debug("[task request catch err]",t.t0),!e._canceled){t.next=13;break}return t.abrupt("return");case 13:if(t.t0.loaderType=e._loaderType,t.t0.retryCount=e._retryCount,c=t.t0,a&&(c=a(c)||c),i&&e._retryCount>0&&i(c,e._retryCount,{index:o.index,vid:o.vid,range:o.range,priOptions:o.priOptions}),e._retryCount++,s=!0,e._retryCheckFunc&&(s=e._retryCheckFunc(t.t0)),!(s&&e._retryCount<=n)){t.next=26;break}return clearTimeout(e._retryTimer),e._logger.debug("[task request setTimeout],retry",e._retryCount,",retry range,",o.range),e._retryTimer=setTimeout(l,r),t.abrupt("return");case 26:e.promise.reject(c);case 27:case"end":return t.stop()}}),t,null,[[0,7]])})));return function(){return t.apply(this,arguments)}}();return l(),this.promise}},{key:"cancel",value:(t=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(){return _regeneratorRuntime$4().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 t.apply(this,arguments)})},{key:"running",get:function(){return this._loader&&this._loader.running}},{key:"loader",get:function(){return this._loader}}]),e}();function sleep$2(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(t){return setTimeout(t,e)}))}var NetLoader$2=function(e){_inherits$5(r,EventEmitter);var t,n=_createSuper$3(r);function r(e){var t;return _classCallCheck$7(this,r),_defineProperty$6(_assertThisInitialized$5(t=n.call(this,e)),"type",LoaderType$2.FETCH),_defineProperty$6(_assertThisInitialized$5(t),"_queue",[]),_defineProperty$6(_assertThisInitialized$5(t),"_alive",[]),_defineProperty$6(_assertThisInitialized$5(t),"_currentTask",null),_defineProperty$6(_assertThisInitialized$5(t),"_finnalUrl",""),_defineProperty$6(_assertThisInitialized$5(t),"_config",void 0),t._config=getConfig$3(e),t._config.loaderType!==LoaderType$2.XHR&&FetchLoader$2.isSupported()||(t.type=LoaderType$2.XHR),t.log=e.logger,t}return _createClass$7(r,[{key:"isFetch",value:function(){return this.type===LoaderType$2.FETCH}},{key:"load",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"string"!=typeof e&&e?n=e:n.url=e||n.url||this._config.url,(n=Object.assign({},this._config,n)).params&&(n.params=Object.assign({},n.params)),n.headers&&isPlainObject$2(n.headers)&&(n.headers=Object.assign({},n.headers)),n.body&&isPlainObject$2(n.body)&&(n.body=Object.assign({},n.body)),n.transformRequest&&(n=n.transformRequest(n)||n),n.logger=this.log;var r=new Task$2(this.type,n);return r.loader.on(EVENT$2.REAL_TIME_SPEED,(function(e){t.emit(EVENT$2.REAL_TIME_SPEED,e)})),this._queue.push(r),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),r.promise}},{key:"cancel",value:(t=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(){var t;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this._queue.map((function(e){return e.cancel()})).concat(this._alive.map((function(e){return e.cancel()}))),this._currentTask&&t.push(this._currentTask.cancel()),this._queue=[],this._alive=[],e.next=6,Promise.all(t);case 6:return e.next=8,sleep$2();case 8:case"end":return e.stop()}}),e,this)}))),function(){return t.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 t=this._currentTask.exec().catch((function(e){}));t&&"function"==typeof t.finally&&t.finally((function(){var t,n;null!==(t=e._currentTask)&&void 0!==t&&t.alive&&(null===(n=e._alive)||void 0===n?void 0:n.length)>0&&(e._alive=e._alive.filter((function(t){return t&&t!==e._currentTask}))),e._processTask()}))}}}],[{key:"isFetchSupport",value:function(){return FetchLoader$2.isSupported()}}]),r}(),DEFAULT_PCDN_CHANGE_CNT=2,NUM_1024=1024,AdaptPCDN=function(){return _createClass$9((function e(t,n,r,i){var a=this;_classCallCheck$9(this,e),this.config=e.getDefaultConfig(),Object.keys(i).map((function(e){void 0!==i[e]&&null!==i[e]&&(a.config[e]=i[e])})),this.duration=r,this.player=t,this.updateBitrate(n),this.curPCDNInBuffer=this.config.maxPCDNInBuffer,this.curPCDNOutBuffer=this.config.maxPCDNOutBuffer,this.PCDNChangeCnt=0}),[{key:"updateBitrate",value:function(e){this.bitrate=e,this.bitrate||(this.bitrate=this.config.minBandwidth)}},{key:"getPCDNInBuffer",value:function(){var e=this.config,t=this.player,n=this.bitrate;if(!e.PCDNBufferControl)return null;var r=e.estPlayTime,i=r;e.estPTcontrol&&(i=Math.min(r,Math.max(0,this.duration-((null==t?void 0:t.currentTime)||0))));var a=e.safePCDNInFactor,o=e.minBandwidth,l=e.maxPCDNInBuffer,d=e.minPCDNInBuffer,c=a*Math.max((null==t?void 0:t.avgSpeedPCDN)*NUM_1024||0,o),s=n>0?(1-c/n)*i:0;return this.curPCDNInBuffer=Math.min(l,Math.max(d,s)),this.curPCDNInBuffer}},{key:"getPCDNOutBuffer",value:function(){var e=this.config,t=this.player,n=this.bitrate;if(!e.PCDNBufferControl)return null;var r=e.estPlayTime,i=r;e.estPTcontrol&&(i=Math.min(r,Math.max(0,this.duration-((null==t?void 0:t.currentTime)||0))));var a=e.safePCDNOutFactor,o=e.minBandwidth,l=e.maxPCDNOutBuffer,d=e.minPCDNOutBuffer,c=a*Math.max((null==t?void 0:t.avgSpeedPCDN)*NUM_1024||0,o),s=n>0?(1-c/n)*i:0;return this.curPCDNOutBuffer=Math.min(l,Math.max(d,s)),this.curPCDNOutBuffer}},{key:"getPCDNChangeCnt",value:function(){var e=this.config,t=e.PCDNCntControl,n=e.alpha,r=this.curPCDNInBuffer,i=this.player,a=(null==i?void 0:i.bufferedPoint)||null,o=a&&a.end?a.end-i.currentTime:0;t?o>r+(this.PCDNChangeCnt-1)*n&&this.PCDNChangeCnt++:o>=r&&this.PCDNChangeCnt<DEFAULT_PCDN_CHANGE_CNT&&this.PCDNChangeCnt++;return this.PCDNChangeCnt}}],[{key:"getDefaultConfig",value:function(){return{PCDNBufferControl:!1,PCDNCntControl:!1,estPTcontrol:!1,minPCDNInBuffer:8,maxPCDNInBuffer:12,minPCDNOutBuffer:3,maxPCDNOutBuffer:6,safePCDNInFactor:.1,safePCDNOutFactor:.4,alpha:.5,estPlayTime:12,minBandwidth:1e6}}}])}(),PCDN_NODE_MAP=new Map,PCDN=function(){function e(t,n,r,i){var a,o=this;_classCallCheck$9(this,e),this.options=e.getDefaultConfig(),Object.keys(t).map((function(e){void 0!==t[e]&&null!==t[e]&&(o.options[e]=t[e])})),this.options.productConfig&&this.options.productConfig.app_id||console.error("productConfig must has"),this.loader=new NetLoader$2(this.options),this.resetTrackeArgs(),this._lastFileInfo=null,this.lastfetchNodeTime=-1,this._lastRetFileKey=null,this._minUpdateNodeStep=this.options.ErrorTimeStep,null!==(a=this.options)&&void 0!==a&&null!==(a=a.adaptPCDNConfig)&&void 0!==a&&a.PCDNBufferControl&&(this.pcdnAdapt=new AdaptPCDN(n,r,i,this.options.adaptPCDNConfig))}return _createClass$9(e,[{key:"isOpenAdaptPCDN",get:function(){return!!this.pcdnAdapt}},{key:"curPCDNInBuffer",get:function(){return this.pcdnAdapt.curPCDNInBuffer}},{key:"getPCDNInBuffer",value:function(){var e;return null===(e=this.pcdnAdapt)||void 0===e?void 0:e.getPCDNInBuffer()}},{key:"curPCDNOutBuffer",get:function(){return this.pcdnAdapt.curPCDNOutBuffer}},{key:"getPCDNOutBuffer",value:function(){var e;return null===(e=this.pcdnAdapt)||void 0===e?void 0:e.getPCDNOutBuffer()}},{key:"curPCDNChangeCnt",get:function(){return this.pcdnAdapt.PCDNChangeCnt}},{key:"getPCDNChangeCnt",value:function(){var e;return null===(e=this.pcdnAdapt)||void 0===e?void 0:e.getPCDNChangeCnt()}},{key:"updatePCDNBitrate",value:function(e){var t;return null===(t=this.pcdnAdapt)||void 0===t?void 0:t.updateBitrate(e)}},{key:"resetTrackeArgs",value:function(e){this.trackeArgs={fid:null,trace_id:null,req_times:(null==e?void 0:e.req_times)||0,resp_times:(null==e?void 0:e.resp_times)||0,token:null,node_num:this.options.node_num,client_info:this.options.client_info}}},{key:"getPCDNNode",value:function(e,t,n){var r,i=getByteRate(t),a=PCDN_NODE_MAP.get(genKey(e,i)),o=new createPublicPromise$2;return null==a||!a.nodes||(null==a||null===(r=a.nodes)||void 0===r?void 0:r.length)<1?this.fetchPCDNNode(null,null,n).then((function(e){o.resolve(e)})).catch((function(e){o.reject(e)})):(a.fromCache=!0,o.resolve(a)),o}},{key:"removePCDNNode",value:function(e,t,n){var r=getByteRate(t),i=PCDN_NODE_MAP.get(genKey(e,r)),a=null==i?void 0:i.nodes;a&&(n?i.nodes=a.filter((function(e){return e&&n.indexOf(e.url)<0})):a.shift(),PCDN_NODE_MAP.set(genKey(e,r),i)),a&&a.length||this.fetchPCDNNode().then().catch((function(){}))}},{key:"fetchPCDNNode",value:(n=_asyncToGenerator$5(_regeneratorRuntime$5().mark((function t(n,r,i){var a,o,l,d,c,s,U,F,u,Q,R,h,p,B,S,f,m;return _regeneratorRuntime$5().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=new createPublicPromise$2,r){t.next=5;break}r=this._lastFileInfo,t.next=15;break;case 5:if(r.byterate=getByteRate(r.bitrate),this.options.trackerOptions&&Object.assign(r,this.options.trackerOptions),this._lastFileInfo=Object.assign({},r,{byterate:r.byterate}),!((null==(l=PCDN_NODE_MAP.get(genKey(r.vid,r.byterate)))||null===(o=l.nodes)||void 0===o?void 0:o.length)>0)){t.next=13;break}return l.fromCache=!0,a.resolve(l),t.abrupt("return",a);case 13:delete r.bitrate,this._lastFileInfo=r;case 15:if(r){t.next=18;break}return a.resolve(null),t.abrupt("return",a);case 18:if(d=!1,c=genKey(r.vid,r.byterate),this._lastRetFileKey!==c&&(this.resetTrackeArgs(),d=!0),!(Date.now()-this.lastfetchNodeTime<this._minUpdateNodeStep)||d){t.next=24;break}return a.resolve(null),t.abrupt("return",a);case 24:if(this.lastfetchNodeTime=Date.now(),this._lastRetFileKey=c,r.sfid?r.version=1:r.vid&&(r.version=2),this.options.withReferer&&(r.with_referer=this.options.withReferer),s=Object.assign(this.options.productConfig,{file_info:r},this.trackeArgs,{req_id:i}),U=JSON.stringify(s),!(this.trackeArgs.req_times>=this.options.maxCnt)){t.next=33;break}return a.resolve(null),t.abrupt("return",a);case 33:return this.loader||(this.loader=new NetLoader$2(this.options)),this.trackeArgs.req_times+=1,t.prev=35,e.pcdn_tracker_request_cnt++,t.next=39,this.loader.load(n||this.options.trackerUrl,{body:U});case 39:F=t.sent,u=null,F&&(this.trackeArgs.resp_times+=1,R=8*r.byterate,F.done&&null!==(Q=F.data)&&void 0!==Q&&Q.Result?(h=F.data.Result,(u=h.nodes)&&u.length>0?e.pcdn_tracker_success_cnt++:this._minUpdateNodeStep=this.options.NULLNodeTimeStep,u.map((function(e){e.vid=r.vid,e.bitrate=R})),p=h.fid,B=h.trace_id,S=h.req_id,f={nodes:u,fid:p,vid:r.vid,trace_id:B,req_id:S,bitrate:R},m=genKey(r.vid,r.byterate),PCDN_NODE_MAP.set(m,f),this.trackeArgs.fid=h.fid,this.trackeArgs.trace_id=h.trace_id,this.trackeArgs.token=h.token,a.resolve(f)):(this._minUpdateNodeStep=this.options.ErrorTimeStep,a.reject(F))),t.next=49;break;case 44:t.prev=44,t.t0=t.catch(35),this._minUpdateNodeStep=this.options.ErrorTimeStep,console.warn("tracker catch ERR,",t.t0),a.reject(t.t0);case 49:return t.abrupt("return",a);case 50:case"end":return t.stop()}}),t,this,[[35,44]])}))),function(e,t,r){return n.apply(this,arguments)})}],[{key:"pluginName",get:function(){return"PCDN"}},{key:"pcdnReqCnt",get:function(){var t=e.pcdn_tracker_request_cnt,n=e.pcdn_tracker_success_cnt;return e.pcdn_tracker_request_cnt=0,e.pcdn_tracker_success_cnt=0,{pcdn_tracker_request_cnt:t,pcdn_tracker_failed_cnt:t-n}}},{key:"getDefaultConfig",value:function(){return{trackerUrl:"",loaderType:LoaderType$2.FETCH,responseType:ResponseType$2.JSON,mode:"cors",method:"POST",retry:0,retryDelay:3e3,timeout:5e3,node_num:5,client_info:null,maxCnt:30,withReferer:0,NULLNodeTimeStep:6e4,ErrorTimeStep:15e3}}},{key:"gainPCDNNode",value:(t=_asyncToGenerator$5(_regeneratorRuntime$5().mark((function t(n,r,i,a){var o,l,d,c,s,U,F;return _regeneratorRuntime$5().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=e.getDefaultConfig(),Object.keys(r).map((function(e){void 0!==r[e]&&null!==r[e]&&(o[e]=r[e])})),a&&a.app_id||console.error("productConfig must has"),l=new createPublicPromise$2,i?(i.byterate=getByteRate(i.bitrate),this.options.trackerOptions&&Object.assign(i,this.options.trackerOptions),delete i.bitrate):l.reject("video fileInfo need set"),d=Object.assign(a,{file_info:i},{node_num:(null==r?void 0:r.node_num)||3}),c=JSON.stringify(d),s=new NetLoader$2(o),t.prev=8,e.pcdn_tracker_request_cnt++,t.next=12,s.load(n,{body:c});case 12:(F=t.sent).done&&(null===(U=F.data)||void 0===U||null===(U=U.Result)||void 0===U||null===(U=U.nodes)||void 0===U?void 0:U.length)>0&&e.pcdn_tracker_success_cnt++,l.resolve(F),t.next=20;break;case 17:t.prev=17,t.t0=t.catch(8),l.reject((null===t.t0||void 0===t.t0?void 0:t.t0.message)||"get pcdnNode error");case 20:return t.abrupt("return",l);case 21:case"end":return t.stop()}}),t,this,[[8,17]])}))),function(e,n,r,i){return t.apply(this,arguments)})}]);var t,n}();function genKey(e,t){return"".concat(e,"-").concat(t)}function getByteRate(e){return Math.floor(e/8)}_defineProperty$8(PCDN,"pcdn_tracker_request_cnt",0),_defineProperty$8(PCDN,"pcdn_tracker_success_cnt",0);var defineProperty$5=objectDefineProperty.f,proxyAccessor$1=function(e,t,n){n in e||defineProperty$5(e,n,{configurable:!0,get:function(){return t[n]},set:function(e){t[n]=e}})},DESCRIPTORS$b=descriptors,global$j=global$I,uncurryThis$n=functionUncurryThis,isForced=isForced_1,inheritIfRequired$1=inheritIfRequired$4,createNonEnumerableProperty$4=createNonEnumerableProperty$a,getOwnPropertyNames$2=objectGetOwnPropertyNames.f,isPrototypeOf$4=objectIsPrototypeOf,isRegExp$1=isRegexp,toString$a=toString$j,getRegExpFlags=regexpGetFlags,stickyHelpers$1=regexpStickyHelpers,proxyAccessor=proxyAccessor$1,defineBuiltIn$7=defineBuiltIn$j,fails$m=fails$Q,hasOwn$c=hasOwnProperty_1,enforceInternalState$2=internalState.enforce,setSpecies$2=setSpecies$5,wellKnownSymbol$a=wellKnownSymbol$v,UNSUPPORTED_DOT_ALL=regexpUnsupportedDotAll,UNSUPPORTED_NCG=regexpUnsupportedNcg,MATCH=wellKnownSymbol$a("match"),NativeRegExp=global$j.RegExp,RegExpPrototype$2=NativeRegExp.prototype,SyntaxError=global$j.SyntaxError,exec$4=uncurryThis$n(RegExpPrototype$2.exec),charAt$5=uncurryThis$n("".charAt),replace$6=uncurryThis$n("".replace),stringIndexOf$1=uncurryThis$n("".indexOf),stringSlice$9=uncurryThis$n("".slice),IS_NCG=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,re1=/a/g,re2=/a/g,CORRECT_NEW=new NativeRegExp(re1)!==re1,MISSED_STICKY=stickyHelpers$1.MISSED_STICKY,UNSUPPORTED_Y$1=stickyHelpers$1.UNSUPPORTED_Y,BASE_FORCED=DESCRIPTORS$b&&(!CORRECT_NEW||MISSED_STICKY||UNSUPPORTED_DOT_ALL||UNSUPPORTED_NCG||fails$m((function(){return re2[MATCH]=!1,NativeRegExp(re1)!=re1||NativeRegExp(re2)==re2||"/a/i"!=NativeRegExp(re1,"i")}))),handleDotAll=function(e){for(var t,n=e.length,r=0,i="",a=!1;r<=n;r++)"\\"!==(t=charAt$5(e,r))?a||"."!==t?("["===t?a=!0:"]"===t&&(a=!1),i+=t):i+="[\\s\\S]":i+=t+charAt$5(e,++r);return i},handleNCG=function(e){for(var t,n=e.length,r=0,i="",a=[],o={},l=!1,d=!1,c=0,s="";r<=n;r++){if("\\"===(t=charAt$5(e,r)))t+=charAt$5(e,++r);else if("]"===t)l=!1;else if(!l)switch(!0){case"["===t:l=!0;break;case"("===t:exec$4(IS_NCG,stringSlice$9(e,r+1))&&(r+=2,d=!0),i+=t,c++;continue;case">"===t&&d:if(""===s||hasOwn$c(o,s))throw new SyntaxError("Invalid capture group name");o[s]=!0,a[a.length]=[s,c],d=!1,s="";continue}d?s+=t:i+=t}return[i,a]};if(isForced("RegExp",BASE_FORCED)){for(var RegExpWrapper=function(e,t){var n,r,i,a,o,l,d=isPrototypeOf$4(RegExpPrototype$2,this),c=isRegExp$1(e),s=void 0===t,U=[],F=e;if(!d&&c&&s&&e.constructor===RegExpWrapper)return e;if((c||isPrototypeOf$4(RegExpPrototype$2,e))&&(e=e.source,s&&(t=getRegExpFlags(F))),e=void 0===e?"":toString$a(e),t=void 0===t?"":toString$a(t),F=e,UNSUPPORTED_DOT_ALL&&"dotAll"in re1&&(r=!!t&&stringIndexOf$1(t,"s")>-1)&&(t=replace$6(t,/s/g,"")),n=t,MISSED_STICKY&&"sticky"in re1&&(i=!!t&&stringIndexOf$1(t,"y")>-1)&&UNSUPPORTED_Y$1&&(t=replace$6(t,/y/g,"")),UNSUPPORTED_NCG&&(e=(a=handleNCG(e))[0],U=a[1]),o=inheritIfRequired$1(NativeRegExp(e,t),d?this:RegExpPrototype$2,RegExpWrapper),(r||i||U.length)&&(l=enforceInternalState$2(o),r&&(l.dotAll=!0,l.raw=RegExpWrapper(handleDotAll(e),n)),i&&(l.sticky=!0),U.length&&(l.groups=U)),e!==F)try{createNonEnumerableProperty$4(o,"source",""===F?"(?:)":F)}catch(e){}return o},keys$1=getOwnPropertyNames$2(NativeRegExp),index=0;keys$1.length>index;)proxyAccessor(RegExpWrapper,NativeRegExp,keys$1[index++]);RegExpPrototype$2.constructor=RegExpWrapper,RegExpWrapper.prototype=RegExpPrototype$2,defineBuiltIn$7(global$j,"RegExp",RegExpWrapper,{constructor:!0})}setSpecies$2("RegExp");var uncurryThis$m=functionUncurryThisClause,defineBuiltIn$6=defineBuiltIn$j,regexpExec$2=regexpExec$3,fails$l=fails$Q,wellKnownSymbol$9=wellKnownSymbol$v,createNonEnumerableProperty$3=createNonEnumerableProperty$a,SPECIES=wellKnownSymbol$9("species"),RegExpPrototype$1=RegExp.prototype,fixRegexpWellKnownSymbolLogic=function(e,t,n,r){var i=wellKnownSymbol$9(e),a=!fails$l((function(){var t={};return t[i]=function(){return 7},7!=""[e](t)})),o=a&&!fails$l((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[SPECIES]=function(){return n},n.flags="",n[i]=/./[i]),n.exec=function(){return t=!0,null},n[i](""),!t}));if(!a||!o||n){var l=uncurryThis$m(/./[i]),d=t(i,""[e],(function(e,t,n,r,i){var o=uncurryThis$m(e),d=t.exec;return d===regexpExec$2||d===RegExpPrototype$1.exec?a&&!i?{done:!0,value:l(t,n,r)}:{done:!0,value:o(n,t,r)}:{done:!1}}));defineBuiltIn$6(String.prototype,e,d[0]),defineBuiltIn$6(RegExpPrototype$1,i,d[1])}r&&createNonEnumerableProperty$3(RegExpPrototype$1[i],"sham",!0)},charAt$4=stringMultibyte.charAt,advanceStringIndex$3=function(e,t,n){return t+(n?charAt$4(e,t).length:1)},call$e=functionCall,anObject$9=anObject$z,isCallable$5=isCallable$t,classof$5=classofRaw$2,regexpExec$1=regexpExec$3,$TypeError$3=TypeError,regexpExecAbstract=function(e,t){var n=e.exec;if(isCallable$5(n)){var r=call$e(n,e,t);return null!==r&&anObject$9(r),r}if("RegExp"===classof$5(e))return call$e(regexpExec$1,e,t);throw $TypeError$3("RegExp#exec called on incompatible receiver")},call$d=functionCall,fixRegExpWellKnownSymbolLogic$2=fixRegexpWellKnownSymbolLogic,anObject$8=anObject$z,isNullOrUndefined$2=isNullOrUndefined$9,toLength$8=toLength$a,toString$9=toString$j,requireObjectCoercible$5=requireObjectCoercible$b,getMethod$2=getMethod$6,advanceStringIndex$2=advanceStringIndex$3,regExpExec$1=regexpExecAbstract;fixRegExpWellKnownSymbolLogic$2("match",(function(e,t,n){return[function(t){var n=requireObjectCoercible$5(this),r=isNullOrUndefined$2(t)?void 0:getMethod$2(t,e);return r?call$d(r,t,n):new RegExp(t)[e](toString$9(n))},function(e){var r=anObject$8(this),i=toString$9(e),a=n(t,r,i);if(a.done)return a.value;if(!r.global)return regExpExec$1(r,i);var o=r.unicode;r.lastIndex=0;for(var l,d=[],c=0;null!==(l=regExpExec$1(r,i));){var s=toString$9(l[0]);d[c]=s,""===s&&(r.lastIndex=advanceStringIndex$2(i,toLength$8(r.lastIndex),o)),c++}return 0===c?null:d}]}));var SHARED_EVENTS=function(e){return e.CHANGE_FLYING_PLUGIN_CONFIG="CHANGE_FLYING_PLUGIN_CONFIG",e}(SHARED_EVENTS||{});function _arrayLikeToArray$5(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function _arrayWithoutHoles$3(e){if(Array.isArray(e))return _arrayLikeToArray$5(e)}function _assertThisInitialized$4(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _callSuper$1(e,t,n){return t=_getPrototypeOf$4(t),_possibleConstructorReturn$4(e,_isNativeReflectConstruct$4()?Reflect.construct(t,n||[],_getPrototypeOf$4(e).constructor):t.apply(e,n))}function _classCallCheck$6(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties$6(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey$6(r.key),r)}}function _createClass$6(e,t,n){return t&&_defineProperties$6(e.prototype,t),n&&_defineProperties$6(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty$5(e,t,n){return(t=_toPropertyKey$6(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _getPrototypeOf$4(e){return(_getPrototypeOf$4=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits$4(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf$4(e,t)}function _isNativeReflectConstruct$4(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(_isNativeReflectConstruct$4=function(){return!!e})()}function _iterableToArray$3(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _nonIterableSpread$3(){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 ownKeys$5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread2$4(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$5(Object(n),!0).forEach((function(t){_defineProperty$5(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$5(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _objectWithoutProperties$4(e,t){if(null==e)return{};var n,r,i=_objectWithoutPropertiesLoose$4(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],-1===t.indexOf(n)&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function _objectWithoutPropertiesLoose$4(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}function _possibleConstructorReturn$4(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$4(e)}function _setPrototypeOf$4(e,t){return(_setPrototypeOf$4=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function _toConsumableArray$3(e){return _arrayWithoutHoles$3(e)||_iterableToArray$3(e)||_unsupportedIterableToArray$5(e)||_nonIterableSpread$3()}function _toPrimitive$6(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$6(e){var t=_toPrimitive$6(e,"string");return"symbol"==typeof t?t:t+""}function _unsupportedIterableToArray$5(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray$5(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray$5(e,t):void 0}}function installUnStagedWithPromise(){Promise.withResolvers||(Promise.withResolvers=function(){var e={};return e.promise=new Promise((function(t,n){e.resolve=t,e.reject=n})),e})}function installPolyfill(){installUnStagedWithPromise()}function debounce(e,t,n){var r;return function(){for(var i=this,a=arguments.length,o=new Array(a),l=0;l<a;l++)o[l]=arguments[l];var d=o,c=n&&!r;clearTimeout(r),r=setTimeout((function(){r=null,n||e.apply(i,d)}),t),c&&e.apply(i,d)}}function _classCallCheck$5(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties$5(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey$5(r.key),r)}}function _createClass$5(e,t,n){return t&&_defineProperties$5(e.prototype,t),n&&_defineProperties$5(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _toPrimitive$5(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$5(e){var t=_toPrimitive$5(e,"string");return"symbol"==typeof t?t:String(t)}var Raf=function(){function e(){_classCallCheck$5(this,e)}return _createClass$5(e,null,[{key:"install",value:function(){if(window.requestAnimationFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame,window.cancelAnimationFrame=window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.cancelRequestAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame,!window.requestAnimationFrame){var e=Date.now();window.requestAnimationFrame=function(t){var n=Date.now(),r=Math.max(16.7-(n-e),0),i=setTimeout(t,r);return e=n+r,i}}window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})}}]),e}(),FpsDetection=function(){function e(){_classCallCheck$5(this,e),this.fps=0,this.isStoped=!0,this.ticks=[],this.isSupport=!0,this.maxFps=0,this.step=this._step.bind(this),this.rafId=null}return _createClass$5(e,[{key:"_step",value:function(e){var t=this.ticks;if(t.unshift(e),t.length>10){var n=t.pop();n&&(this.fps=Math.floor(1e4/(e-n)),this.updateFpsInfo())}this.isStoped||(this.rafId=window.requestAnimationFrame(this.step))}},{key:"updateFpsInfo",value:function(){this.fps>this.maxFps&&(this.maxFps=this.fps)}},{key:"start",value:function(){void 0!==window.requestAnimationFrame&&(this.isStoped=!1,this.rafId=window.requestAnimationFrame(this.step))}},{key:"stop",value:function(){window.cancelAnimationFrame(this.rafId),this.isStoped=!0}}],[{key:"install",value:function(){Raf.install()}}]),e}(),apply$6=functionApply,call$c=functionCall,uncurryThis$l=functionUncurryThis,fixRegExpWellKnownSymbolLogic$1=fixRegexpWellKnownSymbolLogic,anObject$7=anObject$z,isNullOrUndefined$1=isNullOrUndefined$9,isRegExp=isRegexp,requireObjectCoercible$4=requireObjectCoercible$b,speciesConstructor$1=speciesConstructor$7,advanceStringIndex$1=advanceStringIndex$3,toLength$7=toLength$a,toString$8=toString$j,getMethod$1=getMethod$6,arraySlice$6=arraySliceSimple,callRegExpExec=regexpExecAbstract,regexpExec=regexpExec$3,stickyHelpers=regexpStickyHelpers,fails$k=fails$Q,UNSUPPORTED_Y=stickyHelpers.UNSUPPORTED_Y,MAX_UINT32=4294967295,min$4=Math.min,$push=[].push,exec$3=uncurryThis$l(/./.exec),push$7=uncurryThis$l($push),stringSlice$8=uncurryThis$l("".slice),SPLIT_WORKS_WITH_OVERWRITTEN_EXEC=!fails$k((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));fixRegExpWellKnownSymbolLogic$1("split",(function(e,t,n){var r;return r="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var r=toString$8(requireObjectCoercible$4(this)),i=void 0===n?MAX_UINT32:n>>>0;if(0===i)return[];if(void 0===e)return[r];if(!isRegExp(e))return call$c(t,r,e,i);for(var a,o,l,d=[],c=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),s=0,U=new RegExp(e.source,c+"g");(a=call$c(regexpExec,U,r))&&!((o=U.lastIndex)>s&&(push$7(d,stringSlice$8(r,s,a.index)),a.length>1&&a.index<r.length&&apply$6($push,d,arraySlice$6(a,1)),l=a[0].length,s=o,d.length>=i));)U.lastIndex===a.index&&U.lastIndex++;return s===r.length?!l&&exec$3(U,"")||push$7(d,""):push$7(d,stringSlice$8(r,s)),d.length>i?arraySlice$6(d,0,i):d}:"0".split(void 0,0).length?function(e,n){return void 0===e&&0===n?[]:call$c(t,this,e,n)}:t,[function(t,n){var i=requireObjectCoercible$4(this),a=isNullOrUndefined$1(t)?void 0:getMethod$1(t,e);return a?call$c(a,t,i,n):call$c(r,toString$8(i),t,n)},function(e,i){var a=anObject$7(this),o=toString$8(e),l=n(r,a,o,i,r!==t);if(l.done)return l.value;var d=speciesConstructor$1(a,RegExp),c=a.unicode,s=(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.unicode?"u":"")+(UNSUPPORTED_Y?"g":"y"),U=new d(UNSUPPORTED_Y?"^(?:"+a.source+")":a,s),F=void 0===i?MAX_UINT32:i>>>0;if(0===F)return[];if(0===o.length)return null===callRegExpExec(U,o)?[o]:[];for(var u=0,Q=0,R=[];Q<o.length;){U.lastIndex=UNSUPPORTED_Y?0:Q;var h,p=callRegExpExec(U,UNSUPPORTED_Y?stringSlice$8(o,Q):o);if(null===p||(h=min$4(toLength$7(U.lastIndex+(UNSUPPORTED_Y?Q:0)),o.length))===u)Q=advanceStringIndex$1(o,Q,c);else{if(push$7(R,stringSlice$8(o,u,Q)),R.length===F)return R;for(var B=1;B<=p.length-1;B++)if(push$7(R,p[B]),R.length===F)return R;Q=u=h}}return push$7(R,stringSlice$8(o,u)),R}]}),!SPLIT_WORKS_WITH_OVERWRITTEN_EXEC,UNSUPPORTED_Y);var PROPER_FUNCTION_NAME$1=functionName.PROPER,fails$j=fails$Q,whitespaces=whitespaces$2,non="​…᠎",stringTrimForced=function(e){return fails$j((function(){return!!whitespaces[e]()||non[e]()!==non||PROPER_FUNCTION_NAME$1&&whitespaces[e].name!==e}))},$$n=_export,$trim=stringTrim.trim,forcedStringTrimMethod=stringTrimForced;$$n({target:"String",proto:!0,forced:forcedStringTrimMethod("trim")},{trim:function(){return $trim(this)}});var isSupport$1=_isLocalStorageUsable();function probeSupport$1(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}function checkIfLocalStorageThrows$1(){var e="_localstorage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(e){return!0}}function _isLocalStorageUsable(){return probeSupport$1&&!checkIfLocalStorageThrows$1()}var proxyLocalStorage={length:isSupport$1?localStorage.length:0,clear:function(e){try{for(var t=localStorage.length-1;t>=0;t--){var n=localStorage.key(t);0===n.indexOf(e)&&localStorage.removeItem(n)}}catch(e){}},getItem:function(e){try{return localStorage.getItem(e)}catch(e){return null}},key:function(e){try{return localStorage.key(e)}catch(e){return null}},setItem:function(e,t){try{localStorage.setItem(e,t)}catch(e){}},removeItem:function(e){try{localStorage.removeItem(e)}catch(e){}},isSupport:isSupport$1};const proxyLocalStorage$1=proxyLocalStorage;var NAME,Constructor,Prototype,ProxyPromise$1=function(){function e(){var t,n;_classCallCheck$5(this,e);var r=new Promise((function(e,r){t=e,n=r}));return r.resolve=t,r.reject=n,r}return _createClass$5(e,[{key:"resolve",value:function(e){}},{key:"reject",value:function(e){}}]),e}(),typedArrayConstructor={exports:{}},arrayBufferBasicDetection="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView,NATIVE_ARRAY_BUFFER$1=arrayBufferBasicDetection,DESCRIPTORS$a=descriptors,global$i=global$I,isCallable$4=isCallable$t,isObject$9=isObject$r,hasOwn$b=hasOwnProperty_1,classof$4=classof$e,tryToString$1=tryToString$7,createNonEnumerableProperty$2=createNonEnumerableProperty$a,defineBuiltIn$5=defineBuiltIn$j,defineProperty$4=objectDefineProperty.f,isPrototypeOf$3=objectIsPrototypeOf,getPrototypeOf$2=objectGetPrototypeOf,setPrototypeOf$2=objectSetPrototypeOf,wellKnownSymbol$8=wellKnownSymbol$v,uid$1=uid$5,InternalStateModule$5=internalState,enforceInternalState$1=InternalStateModule$5.enforce,getInternalState$3=InternalStateModule$5.get,Int8Array$4=global$i.Int8Array,Int8ArrayPrototype$1=Int8Array$4&&Int8Array$4.prototype,Uint8ClampedArray$1=global$i.Uint8ClampedArray,Uint8ClampedArrayPrototype=Uint8ClampedArray$1&&Uint8ClampedArray$1.prototype,TypedArray$1=Int8Array$4&&getPrototypeOf$2(Int8Array$4),TypedArrayPrototype$2=Int8ArrayPrototype$1&&getPrototypeOf$2(Int8ArrayPrototype$1),ObjectPrototype$3=Object.prototype,TypeError$4=global$i.TypeError,TO_STRING_TAG=wellKnownSymbol$8("toStringTag"),TYPED_ARRAY_TAG$1=uid$1("TYPED_ARRAY_TAG"),TYPED_ARRAY_CONSTRUCTOR="TypedArrayConstructor",NATIVE_ARRAY_BUFFER_VIEWS$2=NATIVE_ARRAY_BUFFER$1&&!!setPrototypeOf$2&&"Opera"!==classof$4(global$i.opera),TYPED_ARRAY_TAG_REQUIRED=!1,TypedArrayConstructorsList={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},BigIntArrayConstructorsList={BigInt64Array:8,BigUint64Array:8},isView=function(e){if(!isObject$9(e))return!1;var t=classof$4(e);return"DataView"===t||hasOwn$b(TypedArrayConstructorsList,t)||hasOwn$b(BigIntArrayConstructorsList,t)},getTypedArrayConstructor$1=function(e){var t=getPrototypeOf$2(e);if(isObject$9(t)){var n=getInternalState$3(t);return n&&hasOwn$b(n,TYPED_ARRAY_CONSTRUCTOR)?n[TYPED_ARRAY_CONSTRUCTOR]:getTypedArrayConstructor$1(t)}},isTypedArray$1=function(e){if(!isObject$9(e))return!1;var t=classof$4(e);return hasOwn$b(TypedArrayConstructorsList,t)||hasOwn$b(BigIntArrayConstructorsList,t)},aTypedArray$m=function(e){if(isTypedArray$1(e))return e;throw TypeError$4("Target is not a typed array")},aTypedArrayConstructor$4=function(e){if(isCallable$4(e)&&(!setPrototypeOf$2||isPrototypeOf$3(TypedArray$1,e)))return e;throw TypeError$4(tryToString$1(e)+" is not a typed array constructor")},exportTypedArrayMethod$n=function(e,t,n,r){if(DESCRIPTORS$a){if(n)for(var i in TypedArrayConstructorsList){var a=global$i[i];if(a&&hasOwn$b(a.prototype,e))try{delete a.prototype[e]}catch(n){try{a.prototype[e]=t}catch(e){}}}TypedArrayPrototype$2[e]&&!n||defineBuiltIn$5(TypedArrayPrototype$2,e,n?t:NATIVE_ARRAY_BUFFER_VIEWS$2&&Int8ArrayPrototype$1[e]||t,r)}},exportTypedArrayStaticMethod$1=function(e,t,n){var r,i;if(DESCRIPTORS$a){if(setPrototypeOf$2){if(n)for(r in TypedArrayConstructorsList)if((i=global$i[r])&&hasOwn$b(i,e))try{delete i[e]}catch(e){}if(TypedArray$1[e]&&!n)return;try{return defineBuiltIn$5(TypedArray$1,e,n?t:NATIVE_ARRAY_BUFFER_VIEWS$2&&TypedArray$1[e]||t)}catch(e){}}for(r in TypedArrayConstructorsList)!(i=global$i[r])||i[e]&&!n||defineBuiltIn$5(i,e,t)}};for(NAME in TypedArrayConstructorsList)(Prototype=(Constructor=global$i[NAME])&&Constructor.prototype)?enforceInternalState$1(Prototype)[TYPED_ARRAY_CONSTRUCTOR]=Constructor:NATIVE_ARRAY_BUFFER_VIEWS$2=!1;for(NAME in BigIntArrayConstructorsList)(Prototype=(Constructor=global$i[NAME])&&Constructor.prototype)&&(enforceInternalState$1(Prototype)[TYPED_ARRAY_CONSTRUCTOR]=Constructor);if((!NATIVE_ARRAY_BUFFER_VIEWS$2||!isCallable$4(TypedArray$1)||TypedArray$1===Function.prototype)&&(TypedArray$1=function(){throw TypeError$4("Incorrect invocation")},NATIVE_ARRAY_BUFFER_VIEWS$2))for(NAME in TypedArrayConstructorsList)global$i[NAME]&&setPrototypeOf$2(global$i[NAME],TypedArray$1);if((!NATIVE_ARRAY_BUFFER_VIEWS$2||!TypedArrayPrototype$2||TypedArrayPrototype$2===ObjectPrototype$3)&&(TypedArrayPrototype$2=TypedArray$1.prototype,NATIVE_ARRAY_BUFFER_VIEWS$2))for(NAME in TypedArrayConstructorsList)global$i[NAME]&&setPrototypeOf$2(global$i[NAME].prototype,TypedArrayPrototype$2);if(NATIVE_ARRAY_BUFFER_VIEWS$2&&getPrototypeOf$2(Uint8ClampedArrayPrototype)!==TypedArrayPrototype$2&&setPrototypeOf$2(Uint8ClampedArrayPrototype,TypedArrayPrototype$2),DESCRIPTORS$a&&!hasOwn$b(TypedArrayPrototype$2,TO_STRING_TAG))for(NAME in TYPED_ARRAY_TAG_REQUIRED=!0,defineProperty$4(TypedArrayPrototype$2,TO_STRING_TAG,{get:function(){return isObject$9(this)?this[TYPED_ARRAY_TAG$1]:void 0}}),TypedArrayConstructorsList)global$i[NAME]&&createNonEnumerableProperty$2(global$i[NAME],TYPED_ARRAY_TAG$1,NAME);var arrayBufferViewCore={NATIVE_ARRAY_BUFFER_VIEWS:NATIVE_ARRAY_BUFFER_VIEWS$2,TYPED_ARRAY_TAG:TYPED_ARRAY_TAG_REQUIRED&&TYPED_ARRAY_TAG$1,aTypedArray:aTypedArray$m,aTypedArrayConstructor:aTypedArrayConstructor$4,exportTypedArrayMethod:exportTypedArrayMethod$n,exportTypedArrayStaticMethod:exportTypedArrayStaticMethod$1,getTypedArrayConstructor:getTypedArrayConstructor$1,isView:isView,isTypedArray:isTypedArray$1,TypedArray:TypedArray$1,TypedArrayPrototype:TypedArrayPrototype$2},global$h=global$I,fails$i=fails$Q,checkCorrectnessOfIteration$1=checkCorrectnessOfIteration$4,NATIVE_ARRAY_BUFFER_VIEWS$1=arrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS,ArrayBuffer$3=global$h.ArrayBuffer,Int8Array$3=global$h.Int8Array,typedArrayConstructorsRequireWrappers=!NATIVE_ARRAY_BUFFER_VIEWS$1||!fails$i((function(){Int8Array$3(1)}))||!fails$i((function(){new Int8Array$3(-1)}))||!checkCorrectnessOfIteration$1((function(e){new Int8Array$3,new Int8Array$3(null),new Int8Array$3(1.5),new Int8Array$3(e)}),!0)||fails$i((function(){return 1!==new Int8Array$3(new ArrayBuffer$3(2),1,void 0).length})),toIntegerOrInfinity$6=toIntegerOrInfinity$b,toLength$6=toLength$a,$RangeError$5=RangeError,toIndex$2=function(e){if(void 0===e)return 0;var t=toIntegerOrInfinity$6(e),n=toLength$6(t);if(t!==n)throw $RangeError$5("Wrong length or index");return n},$Array$1=Array,abs=Math.abs,pow$2=Math.pow,floor$6=Math.floor,log$2=Math.log,LN2=Math.LN2,pack=function(e,t,n){var r,i,a,o=$Array$1(n),l=8*n-t-1,d=(1<<l)-1,c=d>>1,s=23===t?pow$2(2,-24)-pow$2(2,-77):0,U=e<0||0===e&&1/e<0?1:0,F=0;for((e=abs(e))!=e||e===1/0?(i=e!=e?1:0,r=d):(r=floor$6(log$2(e)/LN2),e*(a=pow$2(2,-r))<1&&(r--,a*=2),(e+=r+c>=1?s/a:s*pow$2(2,1-c))*a>=2&&(r++,a/=2),r+c>=d?(i=0,r=d):r+c>=1?(i=(e*a-1)*pow$2(2,t),r+=c):(i=e*pow$2(2,c-1)*pow$2(2,t),r=0));t>=8;)o[F++]=255&i,i/=256,t-=8;for(r=r<<t|i,l+=t;l>0;)o[F++]=255&r,r/=256,l-=8;return o[--F]|=128*U,o},unpack=function(e,t){var n,r=e.length,i=8*r-t-1,a=(1<<i)-1,o=a>>1,l=i-7,d=r-1,c=e[d--],s=127&c;for(c>>=7;l>0;)s=256*s+e[d--],l-=8;for(n=s&(1<<-l)-1,s>>=-l,l+=t;l>0;)n=256*n+e[d--],l-=8;if(0===s)s=1-o;else{if(s===a)return n?NaN:c?-1/0:1/0;n+=pow$2(2,t),s-=o}return(c?-1:1)*n*pow$2(2,s-t)},ieee754={pack:pack,unpack:unpack},toObject$7=toObject$g,toAbsoluteIndex$2=toAbsoluteIndex$7,lengthOfArrayLike$7=lengthOfArrayLike$g,arrayFill$1=function(e){for(var t=toObject$7(this),n=lengthOfArrayLike$7(t),r=arguments.length,i=toAbsoluteIndex$2(r>1?arguments[1]:void 0,n),a=r>2?arguments[2]:void 0,o=void 0===a?n:toAbsoluteIndex$2(a,n);o>i;)t[i++]=e;return t},global$g=global$I,uncurryThis$k=functionUncurryThis,DESCRIPTORS$9=descriptors,NATIVE_ARRAY_BUFFER=arrayBufferBasicDetection,FunctionName=functionName,createNonEnumerableProperty$1=createNonEnumerableProperty$a,defineBuiltIns$1=defineBuiltIns$3,fails$h=fails$Q,anInstance$3=anInstance$7,toIntegerOrInfinity$5=toIntegerOrInfinity$b,toLength$5=toLength$a,toIndex$1=toIndex$2,IEEE754=ieee754,getPrototypeOf$1=objectGetPrototypeOf,setPrototypeOf$1=objectSetPrototypeOf,getOwnPropertyNames$1=objectGetOwnPropertyNames.f,defineProperty$3=objectDefineProperty.f,arrayFill=arrayFill$1,arraySlice$5=arraySliceSimple,setToStringTag$6=setToStringTag$b,InternalStateModule$4=internalState,PROPER_FUNCTION_NAME=FunctionName.PROPER,CONFIGURABLE_FUNCTION_NAME=FunctionName.CONFIGURABLE,getInternalState$2=InternalStateModule$4.get,setInternalState$4=InternalStateModule$4.set,ARRAY_BUFFER$1="ArrayBuffer",DATA_VIEW="DataView",PROTOTYPE$1="prototype",WRONG_LENGTH$1="Wrong length",WRONG_INDEX="Wrong index",NativeArrayBuffer$1=global$g[ARRAY_BUFFER$1],$ArrayBuffer=NativeArrayBuffer$1,ArrayBufferPrototype$1=$ArrayBuffer&&$ArrayBuffer[PROTOTYPE$1],$DataView=global$g[DATA_VIEW],DataViewPrototype=$DataView&&$DataView[PROTOTYPE$1],ObjectPrototype$2=Object.prototype,Array$1=global$g.Array,RangeError$3=global$g.RangeError,fill2=uncurryThis$k(arrayFill),reverse=uncurryThis$k([].reverse),packIEEE754=IEEE754.pack,unpackIEEE754=IEEE754.unpack,packInt8=function(e){return[255&e]},packInt16=function(e){return[255&e,e>>8&255]},packInt32=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},unpackInt32=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},packFloat32=function(e){return packIEEE754(e,23,4)},packFloat64=function(e){return packIEEE754(e,52,8)},addGetter$1=function(e,t){defineProperty$3(e[PROTOTYPE$1],t,{get:function(){return getInternalState$2(this)[t]}})},get$1=function(e,t,n,r){var i=toIndex$1(n),a=getInternalState$2(e);if(i+t>a.byteLength)throw RangeError$3(WRONG_INDEX);var o=getInternalState$2(a.buffer).bytes,l=i+a.byteOffset,d=arraySlice$5(o,l,l+t);return r?d:reverse(d)},set=function(e,t,n,r,i,a){var o=toIndex$1(n),l=getInternalState$2(e);if(o+t>l.byteLength)throw RangeError$3(WRONG_INDEX);for(var d=getInternalState$2(l.buffer).bytes,c=o+l.byteOffset,s=r(+i),U=0;U<t;U++)d[c+U]=s[a?U:t-U-1]};if(NATIVE_ARRAY_BUFFER){var INCORRECT_ARRAY_BUFFER_NAME=PROPER_FUNCTION_NAME&&NativeArrayBuffer$1.name!==ARRAY_BUFFER$1;if(fails$h((function(){NativeArrayBuffer$1(1)}))&&fails$h((function(){new NativeArrayBuffer$1(-1)}))&&!fails$h((function(){return new NativeArrayBuffer$1,new NativeArrayBuffer$1(1.5),new NativeArrayBuffer$1(NaN),1!=NativeArrayBuffer$1.length||INCORRECT_ARRAY_BUFFER_NAME&&!CONFIGURABLE_FUNCTION_NAME})))INCORRECT_ARRAY_BUFFER_NAME&&CONFIGURABLE_FUNCTION_NAME&&createNonEnumerableProperty$1(NativeArrayBuffer$1,"name",ARRAY_BUFFER$1);else{($ArrayBuffer=function(e){return anInstance$3(this,ArrayBufferPrototype$1),new NativeArrayBuffer$1(toIndex$1(e))})[PROTOTYPE$1]=ArrayBufferPrototype$1;for(var key2,keys5=getOwnPropertyNames$1(NativeArrayBuffer$1),j=0;keys5.length>j;)(key2=keys5[j++])in $ArrayBuffer||createNonEnumerableProperty$1($ArrayBuffer,key2,NativeArrayBuffer$1[key2]);ArrayBufferPrototype$1.constructor=$ArrayBuffer}setPrototypeOf$1&&getPrototypeOf$1(DataViewPrototype)!==ObjectPrototype$2&&setPrototypeOf$1(DataViewPrototype,ObjectPrototype$2);var testView=new $DataView(new $ArrayBuffer(2)),$setInt8=uncurryThis$k(DataViewPrototype.setInt8);testView.setInt8(0,2147483648),testView.setInt8(1,2147483649),!testView.getInt8(0)&&testView.getInt8(1)||defineBuiltIns$1(DataViewPrototype,{setInt8:function(e,t){$setInt8(this,e,t<<24>>24)},setUint8:function(e,t){$setInt8(this,e,t<<24>>24)}},{unsafe:!0})}else ArrayBufferPrototype$1=($ArrayBuffer=function(e){anInstance$3(this,ArrayBufferPrototype$1);var t=toIndex$1(e);setInternalState$4(this,{bytes:fill2(Array$1(t),0),byteLength:t}),DESCRIPTORS$9||(this.byteLength=t)})[PROTOTYPE$1],DataViewPrototype=($DataView=function(e,t,n){anInstance$3(this,DataViewPrototype),anInstance$3(e,ArrayBufferPrototype$1);var r=getInternalState$2(e).byteLength,i=toIntegerOrInfinity$5(t);if(i<0||i>r)throw RangeError$3("Wrong offset");if(i+(n=void 0===n?r-i:toLength$5(n))>r)throw RangeError$3(WRONG_LENGTH$1);setInternalState$4(this,{buffer:e,byteLength:n,byteOffset:i}),DESCRIPTORS$9||(this.buffer=e,this.byteLength=n,this.byteOffset=i)})[PROTOTYPE$1],DESCRIPTORS$9&&(addGetter$1($ArrayBuffer,"byteLength"),addGetter$1($DataView,"buffer"),addGetter$1($DataView,"byteLength"),addGetter$1($DataView,"byteOffset")),defineBuiltIns$1(DataViewPrototype,{getInt8:function(e){return get$1(this,1,e)[0]<<24>>24},getUint8:function(e){return get$1(this,1,e)[0]},getInt16:function(e){var t=get$1(this,2,e,arguments.length>1?arguments[1]:void 0);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=get$1(this,2,e,arguments.length>1?arguments[1]:void 0);return t[1]<<8|t[0]},getInt32:function(e){return unpackInt32(get$1(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return unpackInt32(get$1(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return unpackIEEE754(get$1(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return unpackIEEE754(get$1(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,t){set(this,1,e,packInt8,t)},setUint8:function(e,t){set(this,1,e,packInt8,t)},setInt16:function(e,t){set(this,2,e,packInt16,t,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,t){set(this,2,e,packInt16,t,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,t){set(this,4,e,packInt32,t,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,t){set(this,4,e,packInt32,t,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,t){set(this,4,e,packFloat32,t,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,t){set(this,8,e,packFloat64,t,arguments.length>2?arguments[2]:void 0)}});setToStringTag$6($ArrayBuffer,ARRAY_BUFFER$1),setToStringTag$6($DataView,DATA_VIEW);var arrayBuffer={ArrayBuffer:$ArrayBuffer,DataView:$DataView},isObject$8=isObject$r,floor$5=Math.floor,isIntegralNumber$1=Number.isInteger||function(e){return!isObject$8(e)&&isFinite(e)&&floor$5(e)===e},toIntegerOrInfinity$4=toIntegerOrInfinity$b,$RangeError$4=RangeError,toPositiveInteger$1=function(e){var t=toIntegerOrInfinity$4(e);if(t<0)throw $RangeError$4("The argument can't be less than 0");return t},toPositiveInteger=toPositiveInteger$1,$RangeError$3=RangeError,toOffset$2=function(e,t){var n=toPositiveInteger(e);if(n%t)throw $RangeError$3("Wrong offset");return n},classof$3=classof$e,uncurryThis$j=functionUncurryThis,slice$1=uncurryThis$j("".slice),isBigIntArray$1=function(e){return"Big"===slice$1(classof$3(e),0,3)},toPrimitive=toPrimitive$3,$TypeError$2=TypeError,toBigInt$2=function(e){var t=toPrimitive(e,"number");if("number"==typeof t)throw $TypeError$2("Can't convert number to bigint");return BigInt(t)},bind$4=functionBindContext,call$b=functionCall,aConstructor$1=aConstructor$3,toObject$6=toObject$g,lengthOfArrayLike$6=lengthOfArrayLike$g,getIterator$2=getIterator$4,getIteratorMethod$2=getIteratorMethod$5,isArrayIteratorMethod$1=isArrayIteratorMethod$3,isBigIntArray=isBigIntArray$1,aTypedArrayConstructor$3=arrayBufferViewCore.aTypedArrayConstructor,toBigInt$1=toBigInt$2,typedArrayFrom$1=function(e){var t,n,r,i,a,o,l,d,c=aConstructor$1(this),s=toObject$6(e),U=arguments.length,F=U>1?arguments[1]:void 0,u=void 0!==F,Q=getIteratorMethod$2(s);if(Q&&!isArrayIteratorMethod$1(Q))for(d=(l=getIterator$2(s,Q)).next,s=[];!(o=call$b(d,l)).done;)s.push(o.value);for(u&&U>2&&(F=bind$4(F,arguments[2])),n=lengthOfArrayLike$6(s),r=new(aTypedArrayConstructor$3(c))(n),i=isBigIntArray(r),t=0;n>t;t++)a=u?F(s[t],t):s[t],r[t]=i?toBigInt$1(a):+a;return r},$$m=_export,global$f=global$I,call$a=functionCall,DESCRIPTORS$8=descriptors,TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS$1=typedArrayConstructorsRequireWrappers,ArrayBufferViewCore$o=arrayBufferViewCore,ArrayBufferModule=arrayBuffer,anInstance$2=anInstance$7,createPropertyDescriptor$2=createPropertyDescriptor$7,createNonEnumerableProperty=createNonEnumerableProperty$a,isIntegralNumber=isIntegralNumber$1,toLength$4=toLength$a,toIndex=toIndex$2,toOffset$1=toOffset$2,toPropertyKey$1=toPropertyKey$5,hasOwn$a=hasOwnProperty_1,classof$2=classof$e,isObject$7=isObject$r,isSymbol$2=isSymbol$6,create$2=objectCreate,isPrototypeOf$2=objectIsPrototypeOf,setPrototypeOf=objectSetPrototypeOf,getOwnPropertyNames3=objectGetOwnPropertyNames.f,typedArrayFrom=typedArrayFrom$1,forEach2=arrayIteration.forEach,setSpecies$1=setSpecies$5,definePropertyModule$1=objectDefineProperty,getOwnPropertyDescriptorModule$3=objectGetOwnPropertyDescriptor,InternalStateModule$3=internalState,inheritIfRequired=inheritIfRequired$4,getInternalState$1=InternalStateModule$3.get,setInternalState$3=InternalStateModule$3.set,enforceInternalState=InternalStateModule$3.enforce,nativeDefineProperty$1=definePropertyModule$1.f,nativeGetOwnPropertyDescriptor$2=getOwnPropertyDescriptorModule$3.f,round=Math.round,RangeError$2=global$f.RangeError,ArrayBuffer$2=ArrayBufferModule.ArrayBuffer,ArrayBufferPrototype=ArrayBuffer$2.prototype,DataView$1=ArrayBufferModule.DataView,NATIVE_ARRAY_BUFFER_VIEWS=ArrayBufferViewCore$o.NATIVE_ARRAY_BUFFER_VIEWS,TYPED_ARRAY_TAG=ArrayBufferViewCore$o.TYPED_ARRAY_TAG,TypedArray=ArrayBufferViewCore$o.TypedArray,TypedArrayPrototype$1=ArrayBufferViewCore$o.TypedArrayPrototype,aTypedArrayConstructor$2=ArrayBufferViewCore$o.aTypedArrayConstructor,isTypedArray=ArrayBufferViewCore$o.isTypedArray,BYTES_PER_ELEMENT="BYTES_PER_ELEMENT",WRONG_LENGTH="Wrong length",fromList=function(e,t){aTypedArrayConstructor$2(e);for(var n=0,r=t.length,i=new e(r);r>n;)i[n]=t[n++];return i},addGetter=function(e,t){nativeDefineProperty$1(e,t,{get:function(){return getInternalState$1(this)[t]}})},isArrayBuffer=function(e){var t;return isPrototypeOf$2(ArrayBufferPrototype,e)||"ArrayBuffer"==(t=classof$2(e))||"SharedArrayBuffer"==t},isTypedArrayIndex=function(e,t){return isTypedArray(e)&&!isSymbol$2(t)&&t in e&&isIntegralNumber(+t)&&t>=0},wrappedGetOwnPropertyDescriptor=function(e,t){return t=toPropertyKey$1(t),isTypedArrayIndex(e,t)?createPropertyDescriptor$2(2,e[t]):nativeGetOwnPropertyDescriptor$2(e,t)},wrappedDefineProperty=function(e,t,n){return t=toPropertyKey$1(t),!(isTypedArrayIndex(e,t)&&isObject$7(n)&&hasOwn$a(n,"value"))||hasOwn$a(n,"get")||hasOwn$a(n,"set")||n.configurable||hasOwn$a(n,"writable")&&!n.writable||hasOwn$a(n,"enumerable")&&!n.enumerable?nativeDefineProperty$1(e,t,n):(e[t]=n.value,e)};DESCRIPTORS$8?(NATIVE_ARRAY_BUFFER_VIEWS||(getOwnPropertyDescriptorModule$3.f=wrappedGetOwnPropertyDescriptor,definePropertyModule$1.f=wrappedDefineProperty,addGetter(TypedArrayPrototype$1,"buffer"),addGetter(TypedArrayPrototype$1,"byteOffset"),addGetter(TypedArrayPrototype$1,"byteLength"),addGetter(TypedArrayPrototype$1,"length")),$$m({target:"Object",stat:!0,forced:!NATIVE_ARRAY_BUFFER_VIEWS},{getOwnPropertyDescriptor:wrappedGetOwnPropertyDescriptor,defineProperty:wrappedDefineProperty}),typedArrayConstructor.exports=function(e,t,n){var r=e.match(/\d+$/)[0]/8,i=e+(n?"Clamped":"")+"Array",a="get"+e,o="set"+e,l=global$f[i],d=l,c=d&&d.prototype,s={},U=function(e,t){nativeDefineProperty$1(e,t,{get:function(){return function(e,t){var n=getInternalState$1(e);return n.view[a](t*r+n.byteOffset,!0)}(this,t)},set:function(e){return function(e,t,i){var a=getInternalState$1(e);n&&(i=(i=round(i))<0?0:i>255?255:255&i),a.view[o](t*r+a.byteOffset,i,!0)}(this,t,e)},enumerable:!0})};NATIVE_ARRAY_BUFFER_VIEWS?TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS$1&&(d=t((function(e,t,n,i){return anInstance$2(e,c),inheritIfRequired(isObject$7(t)?isArrayBuffer(t)?void 0!==i?new l(t,toOffset$1(n,r),i):void 0!==n?new l(t,toOffset$1(n,r)):new l(t):isTypedArray(t)?fromList(d,t):call$a(typedArrayFrom,d,t):new l(toIndex(t)),e,d)})),setPrototypeOf&&setPrototypeOf(d,TypedArray),forEach2(getOwnPropertyNames3(l),(function(e){e in d||createNonEnumerableProperty(d,e,l[e])})),d.prototype=c):(d=t((function(e,t,n,i){anInstance$2(e,c);var a,o,l,s=0,F=0;if(isObject$7(t)){if(!isArrayBuffer(t))return isTypedArray(t)?fromList(d,t):call$a(typedArrayFrom,d,t);a=t,F=toOffset$1(n,r);var u=t.byteLength;if(void 0===i){if(u%r)throw RangeError$2(WRONG_LENGTH);if((o=u-F)<0)throw RangeError$2(WRONG_LENGTH)}else if((o=toLength$4(i)*r)+F>u)throw RangeError$2(WRONG_LENGTH);l=o/r}else l=toIndex(t),a=new ArrayBuffer$2(o=l*r);for(setInternalState$3(e,{buffer:a,byteOffset:F,byteLength:o,length:l,view:new DataView$1(a)});s<l;)U(e,s++)})),setPrototypeOf&&setPrototypeOf(d,TypedArray),c=d.prototype=create$2(TypedArrayPrototype$1)),c.constructor!==d&&createNonEnumerableProperty(c,"constructor",d),enforceInternalState(c).TypedArrayConstructor=d,TYPED_ARRAY_TAG&&createNonEnumerableProperty(c,TYPED_ARRAY_TAG,i);var F=d!=l;s[i]=d,$$m({global:!0,constructor:!0,forced:F,sham:!NATIVE_ARRAY_BUFFER_VIEWS},s),BYTES_PER_ELEMENT in d||createNonEnumerableProperty(d,BYTES_PER_ELEMENT,r),BYTES_PER_ELEMENT in c||createNonEnumerableProperty(c,BYTES_PER_ELEMENT,r),setSpecies$1(i)}):typedArrayConstructor.exports=function(){};var typedArrayConstructorExports=typedArrayConstructor.exports,createTypedArrayConstructor$8=typedArrayConstructorExports;createTypedArrayConstructor$8("Uint8",(function(e){return function(t,n,r){return e(this,t,n,r)}}));var toObject$5=toObject$g,toAbsoluteIndex$1=toAbsoluteIndex$7,lengthOfArrayLike$5=lengthOfArrayLike$g,deletePropertyOrThrow=deletePropertyOrThrow$3,min$3=Math.min,arrayCopyWithin=[].copyWithin||function(e,t){var n=toObject$5(this),r=lengthOfArrayLike$5(n),i=toAbsoluteIndex$1(e,r),a=toAbsoluteIndex$1(t,r),o=arguments.length>2?arguments[2]:void 0,l=min$3((void 0===o?r:toAbsoluteIndex$1(o,r))-a,r-i),d=1;for(a<i&&i<a+l&&(d=-1,a+=l-1,i+=l-1);l-- >0;)a in n?n[i]=n[a]:deletePropertyOrThrow(n,i),i+=d,a+=d;return n},uncurryThis$i=functionUncurryThis,ArrayBufferViewCore$n=arrayBufferViewCore,$ArrayCopyWithin=arrayCopyWithin,u$ArrayCopyWithin=uncurryThis$i($ArrayCopyWithin),aTypedArray$l=ArrayBufferViewCore$n.aTypedArray,exportTypedArrayMethod$m=ArrayBufferViewCore$n.exportTypedArrayMethod;exportTypedArrayMethod$m("copyWithin",(function(e,t){return u$ArrayCopyWithin(aTypedArray$l(this),e,t,arguments.length>2?arguments[2]:void 0)}));var ArrayBufferViewCore$m=arrayBufferViewCore,$every=arrayIteration.every,aTypedArray$k=ArrayBufferViewCore$m.aTypedArray,exportTypedArrayMethod$l=ArrayBufferViewCore$m.exportTypedArrayMethod;exportTypedArrayMethod$l("every",(function(e){return $every(aTypedArray$k(this),e,arguments.length>1?arguments[1]:void 0)}));var ArrayBufferViewCore$l=arrayBufferViewCore,$fill=arrayFill$1,toBigInt=toBigInt$2,classof$1=classof$e,call$9=functionCall,uncurryThis$h=functionUncurryThis,fails$g=fails$Q,aTypedArray$j=ArrayBufferViewCore$l.aTypedArray,exportTypedArrayMethod$k=ArrayBufferViewCore$l.exportTypedArrayMethod,slice2=uncurryThis$h("".slice),CONVERSION_BUG=fails$g((function(){var e=0;return new Int8Array(2).fill({valueOf:function(){return e++}}),1!==e}));exportTypedArrayMethod$k("fill",(function(e){var t=arguments.length;aTypedArray$j(this);var n="Big"===slice2(classof$1(this),0,3)?toBigInt(e):+e;return call$9($fill,this,n,t>1?arguments[1]:void 0,t>2?arguments[2]:void 0)}),CONVERSION_BUG);var lengthOfArrayLike$4=lengthOfArrayLike$g,arrayFromConstructorAndList$1=function(e,t){for(var n=0,r=lengthOfArrayLike$4(t),i=new e(r);r>n;)i[n]=t[n++];return i},ArrayBufferViewCore$k=arrayBufferViewCore,speciesConstructor=speciesConstructor$7,aTypedArrayConstructor$1=ArrayBufferViewCore$k.aTypedArrayConstructor,getTypedArrayConstructor=ArrayBufferViewCore$k.getTypedArrayConstructor,typedArraySpeciesConstructor$4=function(e){return aTypedArrayConstructor$1(speciesConstructor(e,getTypedArrayConstructor(e)))},arrayFromConstructorAndList=arrayFromConstructorAndList$1,typedArraySpeciesConstructor$3=typedArraySpeciesConstructor$4,typedArrayFromSpeciesAndList=function(e,t){return arrayFromConstructorAndList(typedArraySpeciesConstructor$3(e),t)},ArrayBufferViewCore$j=arrayBufferViewCore,$filter=arrayIteration.filter,fromSpeciesAndList=typedArrayFromSpeciesAndList,aTypedArray$i=ArrayBufferViewCore$j.aTypedArray,exportTypedArrayMethod$j=ArrayBufferViewCore$j.exportTypedArrayMethod;exportTypedArrayMethod$j("filter",(function(e){var t=$filter(aTypedArray$i(this),e,arguments.length>1?arguments[1]:void 0);return fromSpeciesAndList(this,t)}));var ArrayBufferViewCore$i=arrayBufferViewCore,$find=arrayIteration.find,aTypedArray$h=ArrayBufferViewCore$i.aTypedArray,exportTypedArrayMethod$i=ArrayBufferViewCore$i.exportTypedArrayMethod;exportTypedArrayMethod$i("find",(function(e){return $find(aTypedArray$h(this),e,arguments.length>1?arguments[1]:void 0)}));var ArrayBufferViewCore$h=arrayBufferViewCore,$findIndex=arrayIteration.findIndex,aTypedArray$g=ArrayBufferViewCore$h.aTypedArray,exportTypedArrayMethod$h=ArrayBufferViewCore$h.exportTypedArrayMethod;exportTypedArrayMethod$h("findIndex",(function(e){return $findIndex(aTypedArray$g(this),e,arguments.length>1?arguments[1]:void 0)}));var ArrayBufferViewCore$g=arrayBufferViewCore,$forEach$1=arrayIteration.forEach,aTypedArray$f=ArrayBufferViewCore$g.aTypedArray,exportTypedArrayMethod$g=ArrayBufferViewCore$g.exportTypedArrayMethod;exportTypedArrayMethod$g("forEach",(function(e){$forEach$1(aTypedArray$f(this),e,arguments.length>1?arguments[1]:void 0)}));var ArrayBufferViewCore$f=arrayBufferViewCore,$includes=arrayIncludes.includes,aTypedArray$e=ArrayBufferViewCore$f.aTypedArray,exportTypedArrayMethod$f=ArrayBufferViewCore$f.exportTypedArrayMethod;exportTypedArrayMethod$f("includes",(function(e){return $includes(aTypedArray$e(this),e,arguments.length>1?arguments[1]:void 0)}));var ArrayBufferViewCore$e=arrayBufferViewCore,$indexOf=arrayIncludes.indexOf,aTypedArray$d=ArrayBufferViewCore$e.aTypedArray,exportTypedArrayMethod$e=ArrayBufferViewCore$e.exportTypedArrayMethod;exportTypedArrayMethod$e("indexOf",(function(e){return $indexOf(aTypedArray$d(this),e,arguments.length>1?arguments[1]:void 0)}));var global$e=global$I,fails$f=fails$Q,uncurryThis$g=functionUncurryThis,ArrayBufferViewCore$d=arrayBufferViewCore,ArrayIterators=es_array_iterator,wellKnownSymbol$7=wellKnownSymbol$v,ITERATOR$2=wellKnownSymbol$7("iterator"),Uint8Array$2=global$e.Uint8Array,arrayValues=uncurryThis$g(ArrayIterators.values),arrayKeys=uncurryThis$g(ArrayIterators.keys),arrayEntries=uncurryThis$g(ArrayIterators.entries),aTypedArray$c=ArrayBufferViewCore$d.aTypedArray,exportTypedArrayMethod$d=ArrayBufferViewCore$d.exportTypedArrayMethod,TypedArrayPrototype=Uint8Array$2&&Uint8Array$2.prototype,GENERIC=!fails$f((function(){TypedArrayPrototype[ITERATOR$2].call([1])})),ITERATOR_IS_VALUES=!!TypedArrayPrototype&&TypedArrayPrototype.values&&TypedArrayPrototype[ITERATOR$2]===TypedArrayPrototype.values&&"values"===TypedArrayPrototype.values.name,typedArrayValues=function(){return arrayValues(aTypedArray$c(this))};exportTypedArrayMethod$d("entries",(function(){return arrayEntries(aTypedArray$c(this))}),GENERIC),exportTypedArrayMethod$d("keys",(function(){return arrayKeys(aTypedArray$c(this))}),GENERIC),exportTypedArrayMethod$d("values",typedArrayValues,GENERIC||!ITERATOR_IS_VALUES,{name:"values"}),exportTypedArrayMethod$d(ITERATOR$2,typedArrayValues,GENERIC||!ITERATOR_IS_VALUES,{name:"values"});var ArrayBufferViewCore$c=arrayBufferViewCore,uncurryThis$f=functionUncurryThis,aTypedArray$b=ArrayBufferViewCore$c.aTypedArray,exportTypedArrayMethod$c=ArrayBufferViewCore$c.exportTypedArrayMethod,$join=uncurryThis$f([].join);exportTypedArrayMethod$c("join",(function(e){return $join(aTypedArray$b(this),e)}));var apply$5=functionApply,toIndexedObject$5=toIndexedObject$e,toIntegerOrInfinity$3=toIntegerOrInfinity$b,lengthOfArrayLike$3=lengthOfArrayLike$g,arrayMethodIsStrict=arrayMethodIsStrict$4,min$2=Math.min,$lastIndexOf$1=[].lastIndexOf,NEGATIVE_ZERO=!!$lastIndexOf$1&&1/[1].lastIndexOf(1,-0)<0,STRICT_METHOD=arrayMethodIsStrict("lastIndexOf"),FORCED$7=NEGATIVE_ZERO||!STRICT_METHOD,arrayLastIndexOf=FORCED$7?function(e){if(NEGATIVE_ZERO)return apply$5($lastIndexOf$1,this,arguments)||0;var t=toIndexedObject$5(this),n=lengthOfArrayLike$3(t),r=n-1;for(arguments.length>1&&(r=min$2(r,toIntegerOrInfinity$3(arguments[1]))),r<0&&(r=n+r);r>=0;r--)if(r in t&&t[r]===e)return r||0;return-1}:$lastIndexOf$1,ArrayBufferViewCore$b=arrayBufferViewCore,apply$4=functionApply,$lastIndexOf=arrayLastIndexOf,aTypedArray$a=ArrayBufferViewCore$b.aTypedArray,exportTypedArrayMethod$b=ArrayBufferViewCore$b.exportTypedArrayMethod;exportTypedArrayMethod$b("lastIndexOf",(function(e){var t=arguments.length;return apply$4($lastIndexOf,aTypedArray$a(this),t>1?[e,arguments[1]]:[e])}));var ArrayBufferViewCore$a=arrayBufferViewCore,$map=arrayIteration.map,typedArraySpeciesConstructor$2=typedArraySpeciesConstructor$4,aTypedArray$9=ArrayBufferViewCore$a.aTypedArray,exportTypedArrayMethod$a=ArrayBufferViewCore$a.exportTypedArrayMethod;exportTypedArrayMethod$a("map",(function(e){return $map(aTypedArray$9(this),e,arguments.length>1?arguments[1]:void 0,(function(e,t){return new(typedArraySpeciesConstructor$2(e))(t)}))}));var aCallable$2=aCallable$i,toObject$4=toObject$g,IndexedObject=indexedObject,lengthOfArrayLike$2=lengthOfArrayLike$g,$TypeError$1=TypeError,createMethod$2=function(e){return function(t,n,r,i){aCallable$2(n);var a=toObject$4(t),o=IndexedObject(a),l=lengthOfArrayLike$2(a),d=e?l-1:0,c=e?-1:1;if(r<2)for(;;){if(d in o){i=o[d],d+=c;break}if(d+=c,e?d<0:l<=d)throw $TypeError$1("Reduce of empty array with no initial value")}for(;e?d>=0:l>d;d+=c)d in o&&(i=n(i,o[d],d,a));return i}},arrayReduce={left:createMethod$2(!1),right:createMethod$2(!0)},ArrayBufferViewCore$9=arrayBufferViewCore,$reduce=arrayReduce.left,aTypedArray$8=ArrayBufferViewCore$9.aTypedArray,exportTypedArrayMethod$9=ArrayBufferViewCore$9.exportTypedArrayMethod;exportTypedArrayMethod$9("reduce",(function(e){var t=arguments.length;return $reduce(aTypedArray$8(this),e,t,t>1?arguments[1]:void 0)}));var ArrayBufferViewCore$8=arrayBufferViewCore,$reduceRight=arrayReduce.right,aTypedArray$7=ArrayBufferViewCore$8.aTypedArray,exportTypedArrayMethod$8=ArrayBufferViewCore$8.exportTypedArrayMethod;exportTypedArrayMethod$8("reduceRight",(function(e){var t=arguments.length;return $reduceRight(aTypedArray$7(this),e,t,t>1?arguments[1]:void 0)}));var ArrayBufferViewCore$7=arrayBufferViewCore,aTypedArray$6=ArrayBufferViewCore$7.aTypedArray,exportTypedArrayMethod$7=ArrayBufferViewCore$7.exportTypedArrayMethod,floor$4=Math.floor;exportTypedArrayMethod$7("reverse",(function(){for(var e,t=this,n=aTypedArray$6(t).length,r=floor$4(n/2),i=0;i<r;)e=t[i],t[i++]=t[--n],t[n]=e;return t}));var global$d=global$I,call$8=functionCall,ArrayBufferViewCore$6=arrayBufferViewCore,lengthOfArrayLike$1=lengthOfArrayLike$g,toOffset=toOffset$2,toIndexedObject$4=toObject$g,fails$e=fails$Q,RangeError$1=global$d.RangeError,Int8Array$2=global$d.Int8Array,Int8ArrayPrototype=Int8Array$2&&Int8Array$2.prototype,$set=Int8ArrayPrototype&&Int8ArrayPrototype.set,aTypedArray$5=ArrayBufferViewCore$6.aTypedArray,exportTypedArrayMethod$6=ArrayBufferViewCore$6.exportTypedArrayMethod,WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS=!fails$e((function(){var e=new Uint8ClampedArray(2);return call$8($set,e,{length:1,0:3},1),3!==e[1]})),TO_OBJECT_BUG=WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS&&ArrayBufferViewCore$6.NATIVE_ARRAY_BUFFER_VIEWS&&fails$e((function(){var e=new Int8Array$2(2);return e.set(1),e.set("2",1),0!==e[0]||2!==e[1]}));exportTypedArrayMethod$6("set",(function(e){aTypedArray$5(this);var t=toOffset(arguments.length>1?arguments[1]:void 0,1),n=toIndexedObject$4(e);if(WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS)return call$8($set,this,n,t);var r=this.length,i=lengthOfArrayLike$1(n),a=0;if(i+t>r)throw RangeError$1("Wrong length");for(;a<i;)this[t+a]=n[a++]}),!WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS||TO_OBJECT_BUG);var ArrayBufferViewCore$5=arrayBufferViewCore,typedArraySpeciesConstructor$1=typedArraySpeciesConstructor$4,fails$d=fails$Q,arraySlice$4=arraySlice$b,aTypedArray$4=ArrayBufferViewCore$5.aTypedArray,exportTypedArrayMethod$5=ArrayBufferViewCore$5.exportTypedArrayMethod,FORCED$6=fails$d((function(){new Int8Array(1).slice()}));exportTypedArrayMethod$5("slice",(function(e,t){for(var n=arraySlice$4(aTypedArray$4(this),e,t),r=typedArraySpeciesConstructor$1(this),i=0,a=n.length,o=new r(a);a>i;)o[i]=n[i++];return o}),FORCED$6);var ArrayBufferViewCore$4=arrayBufferViewCore,$some=arrayIteration.some,aTypedArray$3=ArrayBufferViewCore$4.aTypedArray,exportTypedArrayMethod$4=ArrayBufferViewCore$4.exportTypedArrayMethod;exportTypedArrayMethod$4("some",(function(e){return $some(aTypedArray$3(this),e,arguments.length>1?arguments[1]:void 0)}));var global$c=global$I,uncurryThis$e=functionUncurryThisClause,fails$c=fails$Q,aCallable$1=aCallable$i,internalSort=arraySort$1,ArrayBufferViewCore$3=arrayBufferViewCore,FF$1=engineFfVersion,IE_OR_EDGE=engineIsIeOrEdge,V8=engineV8Version,WEBKIT=engineWebkitVersion,aTypedArray$2=ArrayBufferViewCore$3.aTypedArray,exportTypedArrayMethod$3=ArrayBufferViewCore$3.exportTypedArrayMethod,Uint16Array$1=global$c.Uint16Array,nativeSort=Uint16Array$1&&uncurryThis$e(Uint16Array$1.prototype.sort),ACCEPT_INCORRECT_ARGUMENTS=!(!nativeSort||fails$c((function(){nativeSort(new Uint16Array$1(2),null)}))&&fails$c((function(){nativeSort(new Uint16Array$1(2),{})}))),STABLE_SORT=!!nativeSort&&!fails$c((function(){if(V8)return V8<74;if(FF$1)return FF$1<67;if(IE_OR_EDGE)return!0;if(WEBKIT)return WEBKIT<602;var e,t,n=new Uint16Array$1(516),r=Array(516);for(e=0;e<516;e++)t=e%4,n[e]=515-e,r[e]=e-2*t+3;for(nativeSort(n,(function(e,t){return(e/4|0)-(t/4|0)})),e=0;e<516;e++)if(n[e]!==r[e])return!0})),getSortCompare=function(e){return function(t,n){return void 0!==e?+e(t,n)||0:n!=n?-1:t!=t?1:0===t&&0===n?1/t>0&&1/n<0?1:-1:t>n}};exportTypedArrayMethod$3("sort",(function(e){return void 0!==e&&aCallable$1(e),STABLE_SORT?nativeSort(this,e):internalSort(aTypedArray$2(this),getSortCompare(e))}),!STABLE_SORT||ACCEPT_INCORRECT_ARGUMENTS);var ArrayBufferViewCore$2=arrayBufferViewCore,toLength$3=toLength$a,toAbsoluteIndex=toAbsoluteIndex$7,typedArraySpeciesConstructor=typedArraySpeciesConstructor$4,aTypedArray$1=ArrayBufferViewCore$2.aTypedArray,exportTypedArrayMethod$2=ArrayBufferViewCore$2.exportTypedArrayMethod;exportTypedArrayMethod$2("subarray",(function(e,t){var n=aTypedArray$1(this),r=n.length,i=toAbsoluteIndex(e,r);return new(typedArraySpeciesConstructor(n))(n.buffer,n.byteOffset+i*n.BYTES_PER_ELEMENT,toLength$3((void 0===t?r:toAbsoluteIndex(t,r))-i))}));var global$b=global$I,apply$3=functionApply,ArrayBufferViewCore$1=arrayBufferViewCore,fails$b=fails$Q,arraySlice$3=arraySlice$b,Int8Array$1=global$b.Int8Array,aTypedArray=ArrayBufferViewCore$1.aTypedArray,exportTypedArrayMethod$1=ArrayBufferViewCore$1.exportTypedArrayMethod,$toLocaleString=[].toLocaleString,TO_LOCALE_STRING_BUG=!!Int8Array$1&&fails$b((function(){$toLocaleString.call(new Int8Array$1(1))})),FORCED$5=fails$b((function(){return[1,2].toLocaleString()!=new Int8Array$1([1,2]).toLocaleString()}))||!fails$b((function(){Int8Array$1.prototype.toLocaleString.call([1,2])}));exportTypedArrayMethod$1("toLocaleString",(function(){return apply$3($toLocaleString,TO_LOCALE_STRING_BUG?arraySlice$3(aTypedArray(this)):aTypedArray(this),arraySlice$3(arguments))}),FORCED$5);var exportTypedArrayMethod=arrayBufferViewCore.exportTypedArrayMethod,fails$a=fails$Q,global$a=global$I,uncurryThis$d=functionUncurryThis,Uint8Array$1=global$a.Uint8Array,Uint8ArrayPrototype=Uint8Array$1&&Uint8Array$1.prototype||{},arrayToString=[].toString,join$4=uncurryThis$d([].join);fails$a((function(){arrayToString.call({})}))&&(arrayToString=function(){return join$4(this)});var IS_NOT_ARRAY_METHOD=Uint8ArrayPrototype.toString!=arrayToString;exportTypedArrayMethod("toString",arrayToString,IS_NOT_ARRAY_METHOD);var fails$9=fails$Q,wellKnownSymbol$6=wellKnownSymbol$v,IS_PURE=isPure,ITERATOR$1=wellKnownSymbol$6("iterator"),urlConstructorDetection=!fails$9((function(){var e=new URL("b?a=1&b=2&c=3","http://a"),t=e.searchParams,n="";return e.pathname="c%20d",t.forEach((function(e,r){t.delete("b"),n+=r+e})),IS_PURE&&!e.toJSON||!t.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[ITERATOR$1]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==n||"x"!==new URL("http://x",void 0).host})),makeBuiltIn=makeBuiltInExports,defineProperty$2=objectDefineProperty,defineBuiltInAccessor$2=function(e,t,n){return n.get&&makeBuiltIn(n.get,t,{getter:!0}),n.set&&makeBuiltIn(n.set,t,{setter:!0}),defineProperty$2.f(e,t,n)},anObject$6=anObject$z,iteratorClose=iteratorClose$2,callWithSafeIterationClosing$1=function(e,t,n,r){try{return r?t(anObject$6(n)[0],n[1]):t(n)}catch(t){iteratorClose(e,"throw",t)}},bind$3=functionBindContext,call$7=functionCall,toObject$3=toObject$g,callWithSafeIterationClosing=callWithSafeIterationClosing$1,isArrayIteratorMethod=isArrayIteratorMethod$3,isConstructor3=isConstructor$4,lengthOfArrayLike=lengthOfArrayLike$g,createProperty$1=createProperty$6,getIterator$1=getIterator$4,getIteratorMethod$1=getIteratorMethod$5,$Array=Array,arrayFrom$1=function(e){var t=toObject$3(e),n=isConstructor3(this),r=arguments.length,i=r>1?arguments[1]:void 0,a=void 0!==i;a&&(i=bind$3(i,r>2?arguments[2]:void 0));var o,l,d,c,s,U,F=getIteratorMethod$1(t),u=0;if(!F||this===$Array&&isArrayIteratorMethod(F))for(o=lengthOfArrayLike(t),l=n?new this(o):$Array(o);o>u;u++)U=a?i(t[u],u):t[u],createProperty$1(l,u,U);else for(s=(c=getIterator$1(t,F)).next,l=n?new this:[];!(d=call$7(s,c)).done;u++)U=a?callWithSafeIterationClosing(c,i,[d.value,u],!0):d.value,createProperty$1(l,u,U);return l.length=u,l},uncurryThis$c=functionUncurryThis,maxInt=2147483647,base=36,tMin=1,tMax=26,skew=38,damp=700,initialBias=72,initialN=128,delimiter="-",regexNonASCII=/[^\0-\u007E]/,regexSeparators=/[.\u3002\uFF0E\uFF61]/g,OVERFLOW_ERROR="Overflow: input needs wider integers to process",baseMinusTMin=base-tMin,$RangeError$2=RangeError,exec$2=uncurryThis$c(regexSeparators.exec),floor$3=Math.floor,fromCharCode$1=String.fromCharCode,charCodeAt$1=uncurryThis$c("".charCodeAt),join$3=uncurryThis$c([].join),push$6=uncurryThis$c([].push),replace$5=uncurryThis$c("".replace),split$2=uncurryThis$c("".split),toLowerCase$1=uncurryThis$c("".toLowerCase),ucs2decode=function(e){for(var t=[],n=0,r=e.length;n<r;){var i=charCodeAt$1(e,n++);if(i>=55296&&i<=56319&&n<r){var a=charCodeAt$1(e,n++);56320==(64512&a)?push$6(t,((1023&i)<<10)+(1023&a)+65536):(push$6(t,i),n--)}else push$6(t,i)}return t},digitToBasic=function(e){return e+22+75*(e<26)},adapt=function(e,t,n){var r=0;for(e=n?floor$3(e/damp):e>>1,e+=floor$3(e/t);e>baseMinusTMin*tMax>>1;)e=floor$3(e/baseMinusTMin),r+=base;return floor$3(r+(baseMinusTMin+1)*e/(e+skew))},encode$2=function(e){var t,n,r=[],i=(e=ucs2decode(e)).length,a=initialN,o=0,l=initialBias;for(t=0;t<e.length;t++)(n=e[t])<128&&push$6(r,fromCharCode$1(n));var d=r.length,c=d;for(d&&push$6(r,delimiter);c<i;){var s=maxInt;for(t=0;t<e.length;t++)(n=e[t])>=a&&n<s&&(s=n);var U=c+1;if(s-a>floor$3((maxInt-o)/U))throw $RangeError$2(OVERFLOW_ERROR);for(o+=(s-a)*U,a=s,t=0;t<e.length;t++){if((n=e[t])<a&&++o>maxInt)throw $RangeError$2(OVERFLOW_ERROR);if(n==a){for(var F=o,u=base;;){var Q=u<=l?tMin:u>=l+tMax?tMax:u-l;if(F<Q)break;var R=F-Q,h=base-Q;push$6(r,fromCharCode$1(digitToBasic(Q+R%h))),F=floor$3(R/h),u+=base}push$6(r,fromCharCode$1(digitToBasic(F))),l=adapt(o,U,c==d),o=0,c++}}o++,a++}return join$3(r,"")},stringPunycodeToAscii=function(e){var t,n,r=[],i=split$2(replace$5(toLowerCase$1(e),regexSeparators,"."),".");for(t=0;t<i.length;t++)n=i[t],push$6(r,exec$2(regexNonASCII,n)?"xn--"+encode$2(n):n);return join$3(r,".")},$$l=_export,global$9=global$I,call$6=functionCall,uncurryThis$b=functionUncurryThis,DESCRIPTORS$7=descriptors,USE_NATIVE_URL$1=urlConstructorDetection,defineBuiltIn$4=defineBuiltIn$j,defineBuiltIns=defineBuiltIns$3,setToStringTag$5=setToStringTag$b,createIteratorConstructor=iteratorCreateConstructor,InternalStateModule$2=internalState,anInstance$1=anInstance$7,isCallable$3=isCallable$t,hasOwn$9=hasOwnProperty_1,bind$2=functionBindContext,classof=classof$e,anObject$5=anObject$z,isObject$6=isObject$r,$toString$2=toString$j,create$1=objectCreate,createPropertyDescriptor$1=createPropertyDescriptor$7,getIterator=getIterator$4,getIteratorMethod=getIteratorMethod$5,validateArgumentsLength$1=validateArgumentsLength$3,wellKnownSymbol$5=wellKnownSymbol$v,arraySort=arraySort$1,ITERATOR=wellKnownSymbol$5("iterator"),URL_SEARCH_PARAMS="URLSearchParams",URL_SEARCH_PARAMS_ITERATOR=URL_SEARCH_PARAMS+"Iterator",setInternalState$2=InternalStateModule$2.set,getInternalParamsState=InternalStateModule$2.getterFor(URL_SEARCH_PARAMS),getInternalIteratorState=InternalStateModule$2.getterFor(URL_SEARCH_PARAMS_ITERATOR),getOwnPropertyDescriptor$1=Object.getOwnPropertyDescriptor,safeGetBuiltIn=function(e){if(!DESCRIPTORS$7)return global$9[e];var t=getOwnPropertyDescriptor$1(global$9,e);return t&&t.value},nativeFetch=safeGetBuiltIn("fetch"),NativeRequest=safeGetBuiltIn("Request"),Headers$1=safeGetBuiltIn("Headers"),RequestPrototype=NativeRequest&&NativeRequest.prototype,HeadersPrototype=Headers$1&&Headers$1.prototype,RegExp$2=global$9.RegExp,TypeError$3=global$9.TypeError,decodeURIComponent$1=global$9.decodeURIComponent,encodeURIComponent$1=global$9.encodeURIComponent,charAt$3=uncurryThis$b("".charAt),join$2=uncurryThis$b([].join),push$5=uncurryThis$b([].push),replace$4=uncurryThis$b("".replace),shift$1=uncurryThis$b([].shift),splice2=uncurryThis$b([].splice),split$1=uncurryThis$b("".split),stringSlice$7=uncurryThis$b("".slice),plus=/\+/g,sequences=Array(4),percentSequence=function(e){return sequences[e-1]||(sequences[e-1]=RegExp$2("((?:%[\\da-f]{2}){"+e+"})","gi"))},percentDecode=function(e){try{return decodeURIComponent$1(e)}catch(t){return e}},deserialize=function(e){var t=replace$4(e,plus," "),n=4;try{return decodeURIComponent$1(t)}catch(e){for(;n;)t=replace$4(t,percentSequence(n--),percentDecode);return t}},find4=/[!'()~]|%20/g,replacements={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},replacer=function(e){return replacements[e]},serialize=function(e){return replace$4(encodeURIComponent$1(e),find4,replacer)},URLSearchParamsIterator=createIteratorConstructor((function(e,t){setInternalState$2(this,{type:URL_SEARCH_PARAMS_ITERATOR,iterator:getIterator(getInternalParamsState(e).entries),kind:t})}),"Iterator",(function(){var e=getInternalIteratorState(this),t=e.kind,n=e.iterator.next(),r=n.value;return n.done||(n.value="keys"===t?r.key:"values"===t?r.value:[r.key,r.value]),n}),!0),URLSearchParamsState=function(e){this.entries=[],this.url=null,void 0!==e&&(isObject$6(e)?this.parseObject(e):this.parseQuery("string"==typeof e?"?"===charAt$3(e,0)?stringSlice$7(e,1):e:$toString$2(e)))};URLSearchParamsState.prototype={type:URL_SEARCH_PARAMS,bindURL:function(e){this.url=e,this.update()},parseObject:function(e){var t,n,r,i,a,o,l,d=getIteratorMethod(e);if(d)for(n=(t=getIterator(e,d)).next;!(r=call$6(n,t)).done;){if(a=(i=getIterator(anObject$5(r.value))).next,(o=call$6(a,i)).done||(l=call$6(a,i)).done||!call$6(a,i).done)throw TypeError$3("Expected sequence with length 2");push$5(this.entries,{key:$toString$2(o.value),value:$toString$2(l.value)})}else for(var c in e)hasOwn$9(e,c)&&push$5(this.entries,{key:c,value:$toString$2(e[c])})},parseQuery:function(e){if(e)for(var t,n,r=split$1(e,"&"),i=0;i<r.length;)(t=r[i++]).length&&(n=split$1(t,"="),push$5(this.entries,{key:deserialize(shift$1(n)),value:deserialize(join$2(n,"="))}))},serialize:function(){for(var e,t=this.entries,n=[],r=0;r<t.length;)e=t[r++],push$5(n,serialize(e.key)+"="+serialize(e.value));return join$2(n,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var URLSearchParamsConstructor=function(){anInstance$1(this,URLSearchParamsPrototype),setInternalState$2(this,new URLSearchParamsState(arguments.length>0?arguments[0]:void 0))},URLSearchParamsPrototype=URLSearchParamsConstructor.prototype;if(defineBuiltIns(URLSearchParamsPrototype,{append:function(e,t){validateArgumentsLength$1(arguments.length,2);var n=getInternalParamsState(this);push$5(n.entries,{key:$toString$2(e),value:$toString$2(t)}),n.updateURL()},delete:function(e){validateArgumentsLength$1(arguments.length,1);for(var t=getInternalParamsState(this),n=t.entries,r=$toString$2(e),i=0;i<n.length;)n[i].key===r?splice2(n,i,1):i++;t.updateURL()},get:function(e){validateArgumentsLength$1(arguments.length,1);for(var t=getInternalParamsState(this).entries,n=$toString$2(e),r=0;r<t.length;r++)if(t[r].key===n)return t[r].value;return null},getAll:function(e){validateArgumentsLength$1(arguments.length,1);for(var t=getInternalParamsState(this).entries,n=$toString$2(e),r=[],i=0;i<t.length;i++)t[i].key===n&&push$5(r,t[i].value);return r},has:function(e){validateArgumentsLength$1(arguments.length,1);for(var t=getInternalParamsState(this).entries,n=$toString$2(e),r=0;r<t.length;)if(t[r++].key===n)return!0;return!1},set:function(e,t){validateArgumentsLength$1(arguments.length,1);for(var n,r=getInternalParamsState(this),i=r.entries,a=!1,o=$toString$2(e),l=$toString$2(t),d=0;d<i.length;d++)(n=i[d]).key===o&&(a?splice2(i,d--,1):(a=!0,n.value=l));a||push$5(i,{key:o,value:l}),r.updateURL()},sort:function(){var e=getInternalParamsState(this);arraySort(e.entries,(function(e,t){return e.key>t.key?1:-1})),e.updateURL()},forEach:function(e){for(var t,n=getInternalParamsState(this).entries,r=bind$2(e,arguments.length>1?arguments[1]:void 0),i=0;i<n.length;)r((t=n[i++]).value,t.key,this)},keys:function(){return new URLSearchParamsIterator(this,"keys")},values:function(){return new URLSearchParamsIterator(this,"values")},entries:function(){return new URLSearchParamsIterator(this,"entries")}},{enumerable:!0}),defineBuiltIn$4(URLSearchParamsPrototype,ITERATOR,URLSearchParamsPrototype.entries,{name:"entries"}),defineBuiltIn$4(URLSearchParamsPrototype,"toString",(function(){return getInternalParamsState(this).serialize()}),{enumerable:!0}),setToStringTag$5(URLSearchParamsConstructor,URL_SEARCH_PARAMS),$$l({global:!0,constructor:!0,forced:!USE_NATIVE_URL$1},{URLSearchParams:URLSearchParamsConstructor}),!USE_NATIVE_URL$1&&isCallable$3(Headers$1)){var headersHas=uncurryThis$b(HeadersPrototype.has),headersSet=uncurryThis$b(HeadersPrototype.set),wrapRequestOptions=function(e){if(isObject$6(e)){var t,n=e.body;if(classof(n)===URL_SEARCH_PARAMS)return t=e.headers?new Headers$1(e.headers):new Headers$1,headersHas(t,"content-type")||headersSet(t,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),create$1(e,{body:createPropertyDescriptor$1(0,$toString$2(n)),headers:createPropertyDescriptor$1(0,t)})}return e};if(isCallable$3(nativeFetch)&&$$l({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(e){return nativeFetch(e,arguments.length>1?wrapRequestOptions(arguments[1]):{})}}),isCallable$3(NativeRequest)){var RequestConstructor=function(e){return anInstance$1(this,RequestPrototype),new NativeRequest(e,arguments.length>1?wrapRequestOptions(arguments[1]):{})};RequestPrototype.constructor=RequestConstructor,RequestConstructor.prototype=RequestPrototype,$$l({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:RequestConstructor})}}var EOF,web_urlSearchParams_constructor={URLSearchParams:URLSearchParamsConstructor,getState:getInternalParamsState},$$k=_export,DESCRIPTORS$6=descriptors,USE_NATIVE_URL=urlConstructorDetection,global$8=global$I,bind$1=functionBindContext,uncurryThis$a=functionUncurryThis,defineBuiltIn$3=defineBuiltIn$j,defineBuiltInAccessor$1=defineBuiltInAccessor$2,anInstance=anInstance$7,hasOwn$8=hasOwnProperty_1,assign2=objectAssign,arrayFrom=arrayFrom$1,arraySlice$2=arraySliceSimple,codeAt=stringMultibyte.codeAt,toASCII=stringPunycodeToAscii,$toString$1=toString$j,setToStringTag$4=setToStringTag$b,validateArgumentsLength=validateArgumentsLength$3,URLSearchParamsModule=web_urlSearchParams_constructor,InternalStateModule$1=internalState,setInternalState$1=InternalStateModule$1.set,getInternalURLState=InternalStateModule$1.getterFor("URL"),URLSearchParams$1=URLSearchParamsModule.URLSearchParams,getInternalSearchParamsState=URLSearchParamsModule.getState,NativeURL=global$8.URL,TypeError$2=global$8.TypeError,parseInt$1=global$8.parseInt,floor$2=Math.floor,pow$1=Math.pow,charAt$2=uncurryThis$a("".charAt),exec$1=uncurryThis$a(/./.exec),join$1=uncurryThis$a([].join),numberToString$1=uncurryThis$a(1..toString),pop=uncurryThis$a([].pop),push$4=uncurryThis$a([].push),replace$3=uncurryThis$a("".replace),shift=uncurryThis$a([].shift),split=uncurryThis$a("".split),stringSlice$6=uncurryThis$a("".slice),toLowerCase=uncurryThis$a("".toLowerCase),unshift=uncurryThis$a([].unshift),INVALID_AUTHORITY="Invalid authority",INVALID_SCHEME="Invalid scheme",INVALID_HOST="Invalid host",INVALID_PORT="Invalid port",ALPHA=/[a-z]/i,ALPHANUMERIC=/[\d+-.a-z]/i,DIGIT=/\d/,HEX_START=/^0x/i,OCT=/^[0-7]+$/,DEC=/^\d+$/,HEX=/^[\da-f]+$/i,FORBIDDEN_HOST_CODE_POINT=/[\0\t\n\r #%/:<>?@[\\\]^|]/,FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT=/[\0\t\n\r #/:<>?@[\\\]^|]/,LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,TAB_AND_NEW_LINE=/[\t\n\r]/g,parseIPv4=function(e){var t,n,r,i,a,o,l,d=split(e,".");if(d.length&&""==d[d.length-1]&&d.length--,(t=d.length)>4)return e;for(n=[],r=0;r<t;r++){if(""==(i=d[r]))return e;if(a=10,i.length>1&&"0"==charAt$2(i,0)&&(a=exec$1(HEX_START,i)?16:8,i=stringSlice$6(i,8==a?1:2)),""===i)o=0;else{if(!exec$1(10==a?DEC:8==a?OCT:HEX,i))return e;o=parseInt$1(i,a)}push$4(n,o)}for(r=0;r<t;r++)if(o=n[r],r==t-1){if(o>=pow$1(256,5-t))return null}else if(o>255)return null;for(l=pop(n),r=0;r<n.length;r++)l+=n[r]*pow$1(256,3-r);return l},parseIPv6=function(e){var t,n,r,i,a,o,l,d=[0,0,0,0,0,0,0,0],c=0,s=null,U=0,F=function(){return charAt$2(e,U)};if(":"==F()){if(":"!=charAt$2(e,1))return;U+=2,s=++c}for(;F();){if(8==c)return;if(":"!=F()){for(t=n=0;n<4&&exec$1(HEX,F());)t=16*t+parseInt$1(F(),16),U++,n++;if("."==F()){if(0==n)return;if(U-=n,c>6)return;for(r=0;F();){if(i=null,r>0){if(!("."==F()&&r<4))return;U++}if(!exec$1(DIGIT,F()))return;for(;exec$1(DIGIT,F());){if(a=parseInt$1(F(),10),null===i)i=a;else{if(0==i)return;i=10*i+a}if(i>255)return;U++}d[c]=256*d[c]+i,2!=++r&&4!=r||c++}if(4!=r)return;break}if(":"==F()){if(U++,!F())return}else if(F())return;d[c++]=t}else{if(null!==s)return;U++,s=++c}}if(null!==s)for(o=c-s,c=7;0!=c&&o>0;)l=d[c],d[c--]=d[s+o-1],d[s+--o]=l;else if(8!=c)return;return d},findLongestZeroSequence=function(e){for(var t=null,n=1,r=null,i=0,a=0;a<8;a++)0!==e[a]?(i>n&&(t=r,n=i),r=null,i=0):(null===r&&(r=a),++i);return i>n&&(t=r,n=i),t},serializeHost=function(e){var t,n,r,i;if("number"==typeof e){for(t=[],n=0;n<4;n++)unshift(t,e%256),e=floor$2(e/256);return join$1(t,".")}if("object"==typeof e){for(t="",r=findLongestZeroSequence(e),n=0;n<8;n++)i&&0===e[n]||(i&&(i=!1),r===n?(t+=n?":":"::",i=!0):(t+=numberToString$1(e[n],16),n<7&&(t+=":")));return"["+t+"]"}return e},C0ControlPercentEncodeSet={},fragmentPercentEncodeSet=assign2({},C0ControlPercentEncodeSet,{" ":1,'"':1,"<":1,">":1,"`":1}),pathPercentEncodeSet=assign2({},fragmentPercentEncodeSet,{"#":1,"?":1,"{":1,"}":1}),userinfoPercentEncodeSet=assign2({},pathPercentEncodeSet,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),percentEncode=function(e,t){var n=codeAt(e,0);return n>32&&n<127&&!hasOwn$8(t,e)?e:encodeURIComponent(e)},specialSchemes={ftp:21,file:null,http:80,https:443,ws:80,wss:443},isWindowsDriveLetter=function(e,t){var n;return 2==e.length&&exec$1(ALPHA,charAt$2(e,0))&&(":"==(n=charAt$2(e,1))||!t&&"|"==n)},startsWithWindowsDriveLetter=function(e){var t;return e.length>1&&isWindowsDriveLetter(stringSlice$6(e,0,2))&&(2==e.length||"/"===(t=charAt$2(e,2))||"\\"===t||"?"===t||"#"===t)},isSingleDot=function(e){return"."===e||"%2e"===toLowerCase(e)},isDoubleDot=function(e){return".."===(e=toLowerCase(e))||"%2e."===e||".%2e"===e||"%2e%2e"===e},SCHEME_START={},SCHEME={},NO_SCHEME={},SPECIAL_RELATIVE_OR_AUTHORITY={},PATH_OR_AUTHORITY={},RELATIVE={},RELATIVE_SLASH={},SPECIAL_AUTHORITY_SLASHES={},SPECIAL_AUTHORITY_IGNORE_SLASHES={},AUTHORITY={},HOST={},HOSTNAME={},PORT={},FILE={},FILE_SLASH={},FILE_HOST={},PATH_START={},PATH={},CANNOT_BE_A_BASE_URL_PATH={},QUERY={},FRAGMENT={},URLState=function(e,t,n){var r,i,a,o=$toString$1(e);if(t){if(i=this.parse(o))throw TypeError$2(i);this.searchParams=null}else{if(void 0!==n&&(r=new URLState(n,!0)),i=this.parse(o,null,r))throw TypeError$2(i);(a=getInternalSearchParamsState(new URLSearchParams$1)).bindURL(this),this.searchParams=a}};URLState.prototype={type:"URL",parse:function(e,t,n){var r,i,a,o,l=this,d=t||SCHEME_START,c=0,s="",U=!1,F=!1,u=!1;for(e=$toString$1(e),t||(l.scheme="",l.username="",l.password="",l.host=null,l.port=null,l.path=[],l.query=null,l.fragment=null,l.cannotBeABaseURL=!1,e=replace$3(e,LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE,"")),e=replace$3(e,TAB_AND_NEW_LINE,""),r=arrayFrom(e);c<=r.length;){switch(i=r[c],d){case SCHEME_START:if(!i||!exec$1(ALPHA,i)){if(t)return INVALID_SCHEME;d=NO_SCHEME;continue}s+=toLowerCase(i),d=SCHEME;break;case SCHEME:if(i&&(exec$1(ALPHANUMERIC,i)||"+"==i||"-"==i||"."==i))s+=toLowerCase(i);else{if(":"!=i){if(t)return INVALID_SCHEME;s="",d=NO_SCHEME,c=0;continue}if(t&&(l.isSpecial()!=hasOwn$8(specialSchemes,s)||"file"==s&&(l.includesCredentials()||null!==l.port)||"file"==l.scheme&&!l.host))return;if(l.scheme=s,t)return void(l.isSpecial()&&specialSchemes[l.scheme]==l.port&&(l.port=null));s="","file"==l.scheme?d=FILE:l.isSpecial()&&n&&n.scheme==l.scheme?d=SPECIAL_RELATIVE_OR_AUTHORITY:l.isSpecial()?d=SPECIAL_AUTHORITY_SLASHES:"/"==r[c+1]?(d=PATH_OR_AUTHORITY,c++):(l.cannotBeABaseURL=!0,push$4(l.path,""),d=CANNOT_BE_A_BASE_URL_PATH)}break;case NO_SCHEME:if(!n||n.cannotBeABaseURL&&"#"!=i)return INVALID_SCHEME;if(n.cannotBeABaseURL&&"#"==i){l.scheme=n.scheme,l.path=arraySlice$2(n.path),l.query=n.query,l.fragment="",l.cannotBeABaseURL=!0,d=FRAGMENT;break}d="file"==n.scheme?FILE:RELATIVE;continue;case SPECIAL_RELATIVE_OR_AUTHORITY:if("/"!=i||"/"!=r[c+1]){d=RELATIVE;continue}d=SPECIAL_AUTHORITY_IGNORE_SLASHES,c++;break;case PATH_OR_AUTHORITY:if("/"==i){d=AUTHORITY;break}d=PATH;continue;case RELATIVE:if(l.scheme=n.scheme,i==EOF)l.username=n.username,l.password=n.password,l.host=n.host,l.port=n.port,l.path=arraySlice$2(n.path),l.query=n.query;else if("/"==i||"\\"==i&&l.isSpecial())d=RELATIVE_SLASH;else if("?"==i)l.username=n.username,l.password=n.password,l.host=n.host,l.port=n.port,l.path=arraySlice$2(n.path),l.query="",d=QUERY;else{if("#"!=i){l.username=n.username,l.password=n.password,l.host=n.host,l.port=n.port,l.path=arraySlice$2(n.path),l.path.length--,d=PATH;continue}l.username=n.username,l.password=n.password,l.host=n.host,l.port=n.port,l.path=arraySlice$2(n.path),l.query=n.query,l.fragment="",d=FRAGMENT}break;case RELATIVE_SLASH:if(!l.isSpecial()||"/"!=i&&"\\"!=i){if("/"!=i){l.username=n.username,l.password=n.password,l.host=n.host,l.port=n.port,d=PATH;continue}d=AUTHORITY}else d=SPECIAL_AUTHORITY_IGNORE_SLASHES;break;case SPECIAL_AUTHORITY_SLASHES:if(d=SPECIAL_AUTHORITY_IGNORE_SLASHES,"/"!=i||"/"!=charAt$2(s,c+1))continue;c++;break;case SPECIAL_AUTHORITY_IGNORE_SLASHES:if("/"!=i&&"\\"!=i){d=AUTHORITY;continue}break;case AUTHORITY:if("@"==i){U&&(s="%40"+s),U=!0,a=arrayFrom(s);for(var Q=0;Q<a.length;Q++){var R=a[Q];if(":"!=R||u){var h=percentEncode(R,userinfoPercentEncodeSet);u?l.password+=h:l.username+=h}else u=!0}s=""}else if(i==EOF||"/"==i||"?"==i||"#"==i||"\\"==i&&l.isSpecial()){if(U&&""==s)return INVALID_AUTHORITY;c-=arrayFrom(s).length+1,s="",d=HOST}else s+=i;break;case HOST:case HOSTNAME:if(t&&"file"==l.scheme){d=FILE_HOST;continue}if(":"!=i||F){if(i==EOF||"/"==i||"?"==i||"#"==i||"\\"==i&&l.isSpecial()){if(l.isSpecial()&&""==s)return INVALID_HOST;if(t&&""==s&&(l.includesCredentials()||null!==l.port))return;if(o=l.parseHost(s))return o;if(s="",d=PATH_START,t)return;continue}"["==i?F=!0:"]"==i&&(F=!1),s+=i}else{if(""==s)return INVALID_HOST;if(o=l.parseHost(s))return o;if(s="",d=PORT,t==HOSTNAME)return}break;case PORT:if(!exec$1(DIGIT,i)){if(i==EOF||"/"==i||"?"==i||"#"==i||"\\"==i&&l.isSpecial()||t){if(""!=s){var p=parseInt$1(s,10);if(p>65535)return INVALID_PORT;l.port=l.isSpecial()&&p===specialSchemes[l.scheme]?null:p,s=""}if(t)return;d=PATH_START;continue}return INVALID_PORT}s+=i;break;case FILE:if(l.scheme="file","/"==i||"\\"==i)d=FILE_SLASH;else{if(!n||"file"!=n.scheme){d=PATH;continue}if(i==EOF)l.host=n.host,l.path=arraySlice$2(n.path),l.query=n.query;else if("?"==i)l.host=n.host,l.path=arraySlice$2(n.path),l.query="",d=QUERY;else{if("#"!=i){startsWithWindowsDriveLetter(join$1(arraySlice$2(r,c),""))||(l.host=n.host,l.path=arraySlice$2(n.path),l.shortenPath()),d=PATH;continue}l.host=n.host,l.path=arraySlice$2(n.path),l.query=n.query,l.fragment="",d=FRAGMENT}}break;case FILE_SLASH:if("/"==i||"\\"==i){d=FILE_HOST;break}n&&"file"==n.scheme&&!startsWithWindowsDriveLetter(join$1(arraySlice$2(r,c),""))&&(isWindowsDriveLetter(n.path[0],!0)?push$4(l.path,n.path[0]):l.host=n.host),d=PATH;continue;case FILE_HOST:if(i==EOF||"/"==i||"\\"==i||"?"==i||"#"==i){if(!t&&isWindowsDriveLetter(s))d=PATH;else if(""==s){if(l.host="",t)return;d=PATH_START}else{if(o=l.parseHost(s))return o;if("localhost"==l.host&&(l.host=""),t)return;s="",d=PATH_START}continue}s+=i;break;case PATH_START:if(l.isSpecial()){if(d=PATH,"/"!=i&&"\\"!=i)continue}else if(t||"?"!=i)if(t||"#"!=i){if(i!=EOF&&(d=PATH,"/"!=i))continue}else l.fragment="",d=FRAGMENT;else l.query="",d=QUERY;break;case PATH:if(i==EOF||"/"==i||"\\"==i&&l.isSpecial()||!t&&("?"==i||"#"==i)){if(isDoubleDot(s)?(l.shortenPath(),"/"==i||"\\"==i&&l.isSpecial()||push$4(l.path,"")):isSingleDot(s)?"/"==i||"\\"==i&&l.isSpecial()||push$4(l.path,""):("file"==l.scheme&&!l.path.length&&isWindowsDriveLetter(s)&&(l.host&&(l.host=""),s=charAt$2(s,0)+":"),push$4(l.path,s)),s="","file"==l.scheme&&(i==EOF||"?"==i||"#"==i))for(;l.path.length>1&&""===l.path[0];)shift(l.path);"?"==i?(l.query="",d=QUERY):"#"==i&&(l.fragment="",d=FRAGMENT)}else s+=percentEncode(i,pathPercentEncodeSet);break;case CANNOT_BE_A_BASE_URL_PATH:"?"==i?(l.query="",d=QUERY):"#"==i?(l.fragment="",d=FRAGMENT):i!=EOF&&(l.path[0]+=percentEncode(i,C0ControlPercentEncodeSet));break;case QUERY:t||"#"!=i?i!=EOF&&("'"==i&&l.isSpecial()?l.query+="%27":l.query+="#"==i?"%23":percentEncode(i,C0ControlPercentEncodeSet)):(l.fragment="",d=FRAGMENT);break;case FRAGMENT:i!=EOF&&(l.fragment+=percentEncode(i,fragmentPercentEncodeSet))}c++}},parseHost:function(e){var t,n,r;if("["==charAt$2(e,0)){if("]"!=charAt$2(e,e.length-1))return INVALID_HOST;if(!(t=parseIPv6(stringSlice$6(e,1,-1))))return INVALID_HOST;this.host=t}else if(this.isSpecial()){if(e=toASCII(e),exec$1(FORBIDDEN_HOST_CODE_POINT,e))return INVALID_HOST;if(null===(t=parseIPv4(e)))return INVALID_HOST;this.host=t}else{if(exec$1(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT,e))return INVALID_HOST;for(t="",n=arrayFrom(e),r=0;r<n.length;r++)t+=percentEncode(n[r],C0ControlPercentEncodeSet);this.host=t}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||"file"==this.scheme},includesCredentials:function(){return""!=this.username||""!=this.password},isSpecial:function(){return hasOwn$8(specialSchemes,this.scheme)},shortenPath:function(){var e=this.path,t=e.length;!t||"file"==this.scheme&&1==t&&isWindowsDriveLetter(e[0],!0)||e.length--},serialize:function(){var e=this,t=e.scheme,n=e.username,r=e.password,i=e.host,a=e.port,o=e.path,l=e.query,d=e.fragment,c=t+":";return null!==i?(c+="//",e.includesCredentials()&&(c+=n+(r?":"+r:"")+"@"),c+=serializeHost(i),null!==a&&(c+=":"+a)):"file"==t&&(c+="//"),c+=e.cannotBeABaseURL?o[0]:o.length?"/"+join$1(o,"/"):"",null!==l&&(c+="?"+l),null!==d&&(c+="#"+d),c},setHref:function(e){var t=this.parse(e);if(t)throw TypeError$2(t);this.searchParams.update()},getOrigin:function(){var e=this.scheme,t=this.port;if("blob"==e)try{return new URLConstructor(e.path[0]).origin}catch(e){return"null"}return"file"!=e&&this.isSpecial()?e+"://"+serializeHost(this.host)+(null!==t?":"+t:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(e){this.parse($toString$1(e)+":",SCHEME_START)},getUsername:function(){return this.username},setUsername:function(e){var t=arrayFrom($toString$1(e));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var n=0;n<t.length;n++)this.username+=percentEncode(t[n],userinfoPercentEncodeSet)}},getPassword:function(){return this.password},setPassword:function(e){var t=arrayFrom($toString$1(e));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var n=0;n<t.length;n++)this.password+=percentEncode(t[n],userinfoPercentEncodeSet)}},getHost:function(){var e=this.host,t=this.port;return null===e?"":null===t?serializeHost(e):serializeHost(e)+":"+t},setHost:function(e){this.cannotBeABaseURL||this.parse(e,HOST)},getHostname:function(){var e=this.host;return null===e?"":serializeHost(e)},setHostname:function(e){this.cannotBeABaseURL||this.parse(e,HOSTNAME)},getPort:function(){var e=this.port;return null===e?"":$toString$1(e)},setPort:function(e){this.cannotHaveUsernamePasswordPort()||(""==(e=$toString$1(e))?this.port=null:this.parse(e,PORT))},getPathname:function(){var e=this.path;return this.cannotBeABaseURL?e[0]:e.length?"/"+join$1(e,"/"):""},setPathname:function(e){this.cannotBeABaseURL||(this.path=[],this.parse(e,PATH_START))},getSearch:function(){var e=this.query;return e?"?"+e:""},setSearch:function(e){""==(e=$toString$1(e))?this.query=null:("?"==charAt$2(e,0)&&(e=stringSlice$6(e,1)),this.query="",this.parse(e,QUERY)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var e=this.fragment;return e?"#"+e:""},setHash:function(e){""!=(e=$toString$1(e))?("#"==charAt$2(e,0)&&(e=stringSlice$6(e,1)),this.fragment="",this.parse(e,FRAGMENT)):this.fragment=null},update:function(){this.query=this.searchParams.serialize()||null}};var URLConstructor=function(e){var t=anInstance(this,URLPrototype),n=validateArgumentsLength(arguments.length,1)>1?arguments[1]:void 0,r=setInternalState$1(t,new URLState(e,!1,n));DESCRIPTORS$6||(t.href=r.serialize(),t.origin=r.getOrigin(),t.protocol=r.getProtocol(),t.username=r.getUsername(),t.password=r.getPassword(),t.host=r.getHost(),t.hostname=r.getHostname(),t.port=r.getPort(),t.pathname=r.getPathname(),t.search=r.getSearch(),t.searchParams=r.getSearchParams(),t.hash=r.getHash())},URLPrototype=URLConstructor.prototype,accessorDescriptor=function(e,t){return{get:function(){return getInternalURLState(this)[e]()},set:t&&function(e){return getInternalURLState(this)[t](e)},configurable:!0,enumerable:!0}};if(DESCRIPTORS$6&&(defineBuiltInAccessor$1(URLPrototype,"href",accessorDescriptor("serialize","setHref")),defineBuiltInAccessor$1(URLPrototype,"origin",accessorDescriptor("getOrigin")),defineBuiltInAccessor$1(URLPrototype,"protocol",accessorDescriptor("getProtocol","setProtocol")),defineBuiltInAccessor$1(URLPrototype,"username",accessorDescriptor("getUsername","setUsername")),defineBuiltInAccessor$1(URLPrototype,"password",accessorDescriptor("getPassword","setPassword")),defineBuiltInAccessor$1(URLPrototype,"host",accessorDescriptor("getHost","setHost")),defineBuiltInAccessor$1(URLPrototype,"hostname",accessorDescriptor("getHostname","setHostname")),defineBuiltInAccessor$1(URLPrototype,"port",accessorDescriptor("getPort","setPort")),defineBuiltInAccessor$1(URLPrototype,"pathname",accessorDescriptor("getPathname","setPathname")),defineBuiltInAccessor$1(URLPrototype,"search",accessorDescriptor("getSearch","setSearch")),defineBuiltInAccessor$1(URLPrototype,"searchParams",accessorDescriptor("getSearchParams")),defineBuiltInAccessor$1(URLPrototype,"hash",accessorDescriptor("getHash","setHash"))),defineBuiltIn$3(URLPrototype,"toJSON",(function(){return getInternalURLState(this).serialize()}),{enumerable:!0}),defineBuiltIn$3(URLPrototype,"toString",(function(){return getInternalURLState(this).serialize()}),{enumerable:!0}),NativeURL){var nativeCreateObjectURL=NativeURL.createObjectURL,nativeRevokeObjectURL=NativeURL.revokeObjectURL;nativeCreateObjectURL&&defineBuiltIn$3(URLConstructor,"createObjectURL",bind$1(nativeCreateObjectURL,NativeURL)),nativeRevokeObjectURL&&defineBuiltIn$3(URLConstructor,"revokeObjectURL",bind$1(nativeRevokeObjectURL,NativeURL))}setToStringTag$4(URLConstructor,"URL"),$$k({global:!0,constructor:!0,forced:!USE_NATIVE_URL,sham:!DESCRIPTORS$6},{URL:URLConstructor});var encodedJs$1="IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlPXt9LHQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBhKHQscyl7ZVt0XT1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3Bvc3RNZXNzYWdlKHtkYXRhOntmYWtlSWQ6dH19KSxhKHQscyl9KSxzKX1wb3N0TWVzc2FnZSh7ZXZlbnQ6InJlYWR5In0pLGFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLChmdW5jdGlvbihzKXt0cnl7dmFyIHI9cy5kYXRhLG89dm9pZCAwPT09cj97fTpyLGM9by5hY3Rpb24sbj1vLmZha2VJZCxpPW8udGltZTtzd2l0Y2goYyl7Y2FzZSJzZXRJbnRlcnZhbCI6YShuLGkpO2JyZWFrO2Nhc2UiY2xlYXJJbnRlcnZhbCI6Y2FzZSJjbGVhclRpbWVvdXQiOnQuY2FsbChlLG4pJiYoY2xlYXJUaW1lb3V0KGVbbl0pLGRlbGV0ZSBlW25dKTticmVhaztjYXNlInNldFRpbWVvdXQiOmVbbl09c2V0VGltZW91dCgoZnVuY3Rpb24oKXtwb3N0TWVzc2FnZSh7ZGF0YTp7ZmFrZUlkOm59fSksdC5jYWxsKGUsbikmJmRlbGV0ZSBlW25dfSksaSl9fWNhdGNoKGQpe3Bvc3RNZXNzYWdlKHtldmVudDoiZXJyb3IiLGRhdGE6e2Vycm9yOmR9fSl9fSkpfSgpOwo=",blob$1="undefined"!=typeof window&&window.Blob&&new Blob([atob(encodedJs$1)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper$1(){var e;try{if(!(e=blob$1&&(window.URL||window.webkitURL).createObjectURL(blob$1)))throw"";return new Worker(e)}catch(e){return new Worker("data:application/javascript;base64,"+encodedJs$1)}finally{!("undefined"!=typeof window&&navigator.userAgent.indexOf("Trident/")>0)&&e&&(window.URL||window.webkitlRL).revokeObjectURL(e)}}var worker,setIntervalWarp,clearIntervalWarp,fakeIdToCallback={},currentFakeId=0,maxFakeId=2147483647;function getFakeId(){do{currentFakeId===maxFakeId?currentFakeId=0:currentFakeId++}while(currentFakeId in fakeIdToCallback);return currentFakeId}if("undefined"!=typeof Worker){var workerPromise,isWorkerReady=!1,isWorkerError=!1,getWorker=function(){if(!workerPromise){var e=Promise.withResolvers(),t=e.promise,n=e.resolve,r=e.reject;workerPromise=t;try{(worker=new WorkerWrapper$1).addEventListener("message",(function(e){var t=e.data,i=t.event,a=t.data;switch(i){case"error":isWorkerError=!0,r(a.error);break;case"ready":isWorkerReady=!0,n();break;default:var o=a.fakeId;if(o in fakeIdToCallback){var l=fakeIdToCallback[o]||{},d=l.cb,c=l.param,s=l.keepAlive;if("setInterval"!==l.type&&delete fakeIdToCallback[o],!s&&document.hidden)return;if("function"==typeof d)try{d.apply(window,c)}catch(e){console.error("Error when parse callback function, code %s",e)}}}})),worker.addEventListener("error",(function(e){console.error(e),isWorkerError=!0,r(e)}))}catch(e){isWorkerError=!0,r(e)}}return workerPromise},tryWorker=function(e,t){isWorkerError?t&&t():isWorkerReady?e():getWorker().then(e,t)};setIntervalWarp=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("function"!=typeof e)throw new Error("cb must be a function");for(var r=getFakeId(),i=arguments.length,a=new Array(i>3?i-3:0),o=3;o<i;o++)a[o-3]=arguments[o];return fakeIdToCallback[r]={cb:e,param:a,keepAlive:!!n,type:"setInterval"},tryWorker((function(){worker.postMessage({action:"setInterval",fakeId:r,time:t})}),(function(){r in fakeIdToCallback&&(fakeIdToCallback[r].degradeId=setInterval(e,t))})),r},clearIntervalWarp=function(e){if("number"==typeof e&&e in fakeIdToCallback){var t=fakeIdToCallback[e].degradeId;delete fakeIdToCallback[e],tryWorker((function(){worker.postMessage({action:"clearInterval",fakeId:e})}),(function(){t&&clearInterval(t)}))}}}else setIntervalWarp=setInterval,clearIntervalWarp=clearInterval,console.error("the browser not support web worker, fallback to unWarp function!");installPolyfill();var _excluded$5=["module"],SPEED_CACHE="danger_d_speed";function convert32ToC64(e){var t=e.toString(16);return t.length<=8?{high:0,low:e}:{high:parseInt(t.substr(0,t.length-8),16),low:parseInt(t.substr(t.length-8),16)}}var DEFEALT_CONFIG={stall_penalty:11,switch_penalty:4,interval:1e3,startInterval:1e3,decodeUnderflowBuffer:1,decodeUnderflowMode:1,decodeUnderflowCount:1},BaseAbr=function(){return _createClass$6((function e(t,n,r,i){var a=this,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{logger:function(){},openLog:!1};_classCallCheck$6(this,e),this._wasmPromise=new ProxyPromise$1,this._hasDeviceInfoChanged=!0,this.uuid=(new Date).getTime().toString(36).slice(4),this._defaultMaxBitrate=0,this._underflowBitrate=0,this._minBitrate=1/0,this._isCurrentHDR=!1,this.config=t,this.segment_duration=i||5e3,this.logger=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];o.logger.apply(o,["abr(".concat(a.uuid,")::")].concat(t))},this.openLog=o.openLog,this.autoBitrateOpts=Object.assign({},DEFEALT_CONFIG,t.autoBitrateOpts),this.stall_penalty=this.autoBitrateOpts.stall_penalty,this.switch_penalty=this.autoBitrateOpts.switch_penalty,this.interval=this.autoBitrateOpts.interval;var l=t.progressTimer||1e3,d=this.autoBitrateOpts.startInterval||l;this.initInterval=.8*d,this._preloadMethod=t.preloadmethod||0,this._videoWidth=0,this._videoHeight=0,this._maxDefinition=this.autoBitrateOpts.maxDefinition||null,this._underflowDefinition=this.autoBitrateOpts.underflowDefinition||null,this.updateBitrate(n),this.updateMediaInfos(r,!1)}),[{key:"_onLoadWasm",value:function(){var e=this,t=this.autoBitrateOpts.module,n=this.autoBitrateOpts;n.module;var r=_objectWithoutProperties$4(n,_excluded$5),i=this.autoBitrateOpts.isClassic||!1;t&&(i?this.module=new t(_objectSpread2$4({promise:this._wasmPromise},r)):t(this.module={onRuntimeInitialized:function(){e._wasmPromise.resolve()}}));return this._wasmPromise}},{key:"updateMediaInfos",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this._heightToDefinitionConfig=new Map,this._bitrateToDefinitionConfig=new Map,this._definitionToDefitionConfig=new Map,e?(e.dynamic_video_list.forEach((function(e){var n,r;null===(n=t._heightToDefinitionConfig)||void 0===n||n.set(e.height||e.vheight,e);var i,a=e.bandwidth||e.bitrate;(a<t._minBitrate&&(t._minBitrate=a),null===(r=t._bitrateToDefinitionConfig)||void 0===r||r.set(a,e),e.definition)&&(null===(i=t._definitionToDefitionConfig)||void 0===i||i.set(e.definition,e))})),this._maxDefinition&&(this._defaultMaxBitrate=this._getBitrate(this._maxDefinition)),this._underflowDefinition&&(this._underflowBitrate=this._getBitrate(this._underflowDefinition)),this.mediaInfos=e):n&&console.error("baseAbr mediaInfos null")}},{key:"_getBitrate",value:function(e){var t;return(null===(t=this._definitionToDefitionConfig)||void 0===t||null===(t=t.get(e))||void 0===t?void 0:t.bandwidth)||-1}},{key:"transformMediaInfo",value:function(){if(this.setDebugModel(this.openLog),this.mediaInfos){this.logger("mediaInfos",this.mediaInfos);try{for(var e,t=[],n=this.mediaInfos.dynamic_video_list,r=0;r<n.length;r++){var i=n[r];this._isCurrentHDR===!!i.isHDR&&t.push({stream_id:"s".concat(r),bandwidth:i.bitrate||i.bandwidth,width:i.vwidth||i.width,height:i.vheight||i.height,codec:i.codecs||i.codec_type||"h264",frame_rate:Number(i.fps)||-1,segment_duration:this.segment_duration,definition:i.qualityType,gearName:i.gearName})}var a={v_adaptation:t},o=JSON.stringify(a);null===(e=this.module)||void 0===e||e.ccall("parseMPD","null",["string"],[o])}catch(e){}}else console.warn("mediaInfos is null")}},{key:"_getDefaultSpeed",value:function(e){var t=0,n=navigator.connection;if(n&&n.downlink)t=1024*n.downlink/8,this.logger("initSpeed connect",t);else try{t=parseFloat(proxyLocalStorage$1.getItem(SPEED_CACHE)||"")||0,this.logger("initSpeed connect",t)}catch(e){}return 0===t&&(t=e&&e.historyAvspeed||0,this.logger("initSpeed history",t)),t}},{key:"setDebugModel",value:function(e){var t,n;null===(t=this.module)||void 0===t||null===(n=t._setDebugModel)||void 0===n||n.call(t,e)}},{key:"updateBitrate",value:function(e){var t,n,r=this;(this.bitrate=e,e>0)&&(this.module?null===(t=(n=this.module).updateBitrate)||void 0===t||t.call(n,e):this.readyPromise().then((function(){var t,n;null===(t=r.module)||void 0===t||null===(n=t.updateBitrate)||void 0===n||n.call(t,e)})))}},{key:"getPreloadBitrate",value:function(){return null}},{key:"_updateDeviceInfo",value:function(e){try{if(this._hasDeviceInfoChanged){var t,n=window.devicePixelRatio||1;null===(t=this.module)||void 0===t||t._updateDeviceInfo(this._videoWidth||Number(this.config.width),this._videoHeight||Number(this.config.height),n,e||-1)}this._hasDeviceInfoChanged=!1}catch(e){}}},{key:"readyPromise",value:function(){return this._wasmPromise}}])}();BaseAbr.SPPED_CACHE=SPEED_CACHE;var $$j=_export,global$7=global$I,arrayBufferModule=arrayBuffer,setSpecies=setSpecies$5,ARRAY_BUFFER="ArrayBuffer",ArrayBuffer$1=arrayBufferModule[ARRAY_BUFFER],NativeArrayBuffer=global$7[ARRAY_BUFFER];$$j({global:!0,constructor:!0,forced:NativeArrayBuffer!==ArrayBuffer$1},{ArrayBuffer:ArrayBuffer$1}),setSpecies(ARRAY_BUFFER);var toIntegerOrInfinity$2=toIntegerOrInfinity$b,toString$7=toString$j,requireObjectCoercible$3=requireObjectCoercible$b,$RangeError$1=RangeError,stringRepeat=function(e){var t=toString$7(requireObjectCoercible$3(this)),n="",r=toIntegerOrInfinity$2(e);if(r<0||r==1/0)throw $RangeError$1("Wrong number of repetitions");for(;r>0;(r>>>=1)&&(t+=t))1&r&&(n+=t);return n},$$i=_export,uncurryThis$9=functionUncurryThis,toIntegerOrInfinity$1=toIntegerOrInfinity$b,thisNumberValue=thisNumberValue$2,$repeat$1=stringRepeat,fails$8=fails$Q,$RangeError=RangeError,$String=String,floor$1=Math.floor,repeat$1=uncurryThis$9($repeat$1),stringSlice$5=uncurryThis$9("".slice),nativeToFixed=uncurryThis$9(1..toFixed),pow=function(e,t,n){return 0===t?n:t%2==1?pow(e,t-1,n*e):pow(e*e,t/2,n)},log$1=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t},multiply=function(e,t,n){for(var r=-1,i=n;++r<6;)i+=t*e[r],e[r]=i%1e7,i=floor$1(i/1e7)},divide=function(e,t){for(var n=6,r=0;--n>=0;)r+=e[n],e[n]=floor$1(r/t),r=r%t*1e7},dataToString=function(e){for(var t=6,n="";--t>=0;)if(""!==n||0===t||0!==e[t]){var r=$String(e[t]);n=""===n?r:n+repeat$1("0",7-r.length)+r}return n},FORCED$4=fails$8((function(){return"0.000"!==nativeToFixed(8e-5,3)||"1"!==nativeToFixed(.9,0)||"1.25"!==nativeToFixed(1.255,2)||"1000000000000000128"!==nativeToFixed(0xde0b6b3a7640080,0)}))||!fails$8((function(){nativeToFixed({})}));$$i({target:"Number",proto:!0,forced:FORCED$4},{toFixed:function(e){var t,n,r,i,a=thisNumberValue(this),o=toIntegerOrInfinity$1(e),l=[0,0,0,0,0,0],d="",c="0";if(o<0||o>20)throw $RangeError("Incorrect fraction digits");if(a!=a)return"NaN";if(a<=-1e21||a>=1e21)return $String(a);if(a<0&&(d="-",a=-a),a>1e-21)if(n=(t=log$1(a*pow(2,69,1))-69)<0?a*pow(2,-t,1):a/pow(2,t,1),n*=4503599627370496,(t=52-t)>0){for(multiply(l,0,n),r=o;r>=7;)multiply(l,1e7,0),r-=7;for(multiply(l,pow(10,r,1),0),r=t-1;r>=23;)divide(l,1<<23),r-=23;divide(l,1<<r),multiply(l,1,1),divide(l,2),c=dataToString(l)}else multiply(l,0,n),multiply(l,1<<-t,0),c=dataToString(l)+repeat$1("0",o);return c=o>0?d+((i=c.length)<=o?"0."+repeat$1("0",o-i)+c:stringSlice$5(c,0,i-o)+"."+stringSlice$5(c,i-o)):d+c}});var createTypedArrayConstructor$7=typedArrayConstructorExports;createTypedArrayConstructor$7("Int32",(function(e){return function(t,n,r){return e(this,t,n,r)}}));var ABR_EVENTS=function(e){return e.ABR_CHANGE="ABR_CHANGE_A",e.ABR_UPDATE_SPEC="ABR_UPDATE_SPEC",e.START_ABR="START_ABR",e.UPDATE_AUTO_DESC="UPDATE_AUTO_DESC",e.ABR_START_PROGRESS="ABR_START_PROGRESS",e.MAX_BUFFER_CHANGE="MAX_BUFFER_CHANGE",e.NEXT_SEGMENT_PREDICT="NEXT_SEGMENT_PREDICT",e.ABR_STAT="ABR_STAT",e.ABR_DEFINITION_REAL_CHANGE="ABR_DEFINITION_REAL_CHANGE",e.ABR_LIMIT_BITRATE="ABR_LIMIT_BITRATE",e}(ABR_EVENTS||{}),INIT_BIRTATE=0,MIN_WAITING=200,AVG_ARGS={PLAYBACK_BITRATE:"avg_play_bitrate",DOWNLOAD_BITRATE:"avg_download_bitrate",DOWNLOAD_NETWORK_SPEED:"avg_download_speed",PREDICT_NETWORK_SPEED:"avg_predict_speed",BUFFER_LENGTH:"avg_buffer_length",QOE:"avg_qoe"},ABR=function(e){function t(e,n,r,i,a){var o,l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{logger:function(){},openLog:!1};_classCallCheck$6(this,t),(o=_callSuper$1(this,t,[n,r,i,a,l]))._bufferRange=new Map,o._sortedBufferRange=[],o._lastCheckResolutionStamp=0,o._currentDefinition=null,o._isSeeking=!1,o._waitingStartTime=0,o._stallCount=0,o._seekState=0,o._stallState=0,o._videoCurrentTime=0,o._hasStart=!1,o._isPaused=!1,o._hasAddFragment=!1,o._eventInfo={local_time_ms:0,internet_speed:0,buffer_length:0,last_bitrate:0,now_bitrate:0,play_speed:1},o._bitrateSet=[],o._generalInfo={},o._currentInAbr=!1,o._hasCalcTimelineLog=!1,o._abr_play_info={start_play_time_ms:0,is_hint:0,playback_info:{internet_speed_record:[],play_bitrate_record:[],buffer_length_record:[],play_speed_record:[],qoe_record:[],qoe_a_record:[],qoe_b_record:[],qoe_c_record:[]}},o._tickCount=0,o._fps=30,o.startTime=performance.now(),o._prevDefinitionItem=null,o._currentItem=null,o._switchCount=0,o._switchBitrate=0,o._avgStatItems={},o._qoeArgs=[0,0,0,0],o._abrUsed=-1,o._abrAlwaysOn=1,o._preloadInfo=null,o._hasLogStartInfo=!1,o._hasExecuteAbrAlgo=!1,o._lastExecuteTimeInMs=0,o._isSegmentDrive=!1,o._prevCurrentTime=-1,o._abrChangeTimeMap={},o._underFlowDecodeCount=0,o._onSegmentPredict=function(e){if(o.isCurrentInAbr&&o._isSegmentDrive){var t=Math.floor(o.player.downloadSpeed);e.isInitSegment||"video"!==e.mediaType||o._loopAbr(t,e.start,e.fix?e.end:0,e)}},o._onPlay=function(){o._hasStart=!0,o.logger("onplay")},o._onSeeking=function(){var e,t;o._isSeeking=!0,o.player.currentTime<o._videoCurrentTime?o._seekState=-1:o._seekState=1,null===(e=o.module)||void 0===e||null===(t=e._updateSeekInfo)||void 0===t||t.call(e,o._seekState),o.logger("seekState",o._seekState)},o._onSeekEnd=function(){o._isSeeking=!1,o.checkRestart()},o._onWaiting=function(){if(!(o._isSeeking||o._waitingStartTime>0)){for(var e=o.player.video.buffered,t=o.player.currentTime,n=!0,r=0;r<e.length;r++){var i=e.start(r),a=e.end(r);if(i<=t&&t<a-(o.autoBitrateOpts.decodeUnderflowBuffer||1)&&o.player.readyState<HTMLVideoElement.HAVE_ENOUGH_DATA){o._underFlowDecodeCount++,n=!1;break}}var l=o._underFlowDecodeCount>=(o.autoBitrateOpts.decodeUnderflowCount||1),d=o._defaultMaxBitrate>0||o._underflowBitrate>0,c=1===o.autoBitrateOpts.decodeUnderflowMode&&o._isSegmentDrive;if(l&&(d||c)){var s=!0;if(c){var U=o._maxBitrate;o._maxBitrate=o._minBitrate,s=o._maxBitrate!==U}o.player.emit("ABR_LIMIT_BITRATE",{removed:s}),o._underflowBitrate>0&&(o._maxBitrate=o._underflowBitrate)}o._waitingStartTime=(new Date).getTime(),o._stallId=setTimeout((function(){var e,t;clearTimeout(o._stallId),o._stallCount++,o._stallState=1,null===(e=o.module)||void 0===e||null===(t=e.updateWaitingState)||void 0===t||t.call(e,n)}),MIN_WAITING)}},o._onPlaying=function(){o._waitingStartTime=0,o._stallState=0,clearTimeout(o._stallId),o.checkRestart()},o._onTimeUpdate=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(o._sortedBufferRange&&0!==o._sortedBufferRange.length&&o._currentInAbr&&o.player){o._videoCurrentTime=o.player.currentTime;var n=Date.now();if(!(n-o._lastCheckResolutionStamp<1e3&&0!==o._lastCheckResolutionStamp)||t){o._lastCheckResolutionStamp=n;for(var r=o.player.currentTime,i=0,a=o._sortedBufferRange.length-1,l=null;i<=a;){var d=Math.floor(i+(a-i)/2),c=o._sortedBufferRange[d];if(r<c.start)a=d-1;else{if(!(r>=c.end)){l=c;break}i=d+1}}if(l){var s,U=null===(s=o._bitrateToDefinitionConfig)||void 0===s?void 0:s.get(l.bandwidth),F=null==U?void 0:U.definition;if(o._currentDefinition===F&&!t||!F)return void(F||o.logger("error definition, mpd配置与接口配置不一致"));o._currentDefinition=F,o._prevDefinitionItem=o._currentItem,o._currentFps=U.fps,o._currentItem=U,o._emitAutoDescChange(F,!1,o._currentFps,U),o._prevDefinitionItem&&o._currentDefinition&&o._prevDefinitionItem.definition!==o._currentDefinition.definition&&o._emitDefinitionRealChange(l)}}}},o._onCanPlay=function(){o._currentInAbr&&o._currentDefinition&&(o._updateId=setTimeout((function(){clearTimeout(o._updateId),o._emitAutoDescChange(o._currentDefinition,!1,o._currentFps,o._currentItem)}),0))},o._onBufferRangeUpdate=function(e){if(void 0!==e.start){null===o._currentItem&&o._onTimeUpdate(null,!0);var t=e.start;o._hasAddFragment=!0,o._bufferRange.set(t,e);var n=_toConsumableArray$3(o._bufferRange.values());o._sortedBufferRange=n.sort((function(e,t){return e.start-t.start})),o.avgStat(AVG_ARGS.DOWNLOAD_BITRATE,e.bandwidth)}},o._onReplay=function(){o.checkRestart()},o._onEnded=function(){o.stop()},o._onError=function(){o.stop()},o.start=function(){if(o.logger("start"),o._isPaused=!1,!o._hasCalcTimelineLog){var e=1===Math.floor(100*Math.random());o._abr_play_info.is_hint=e?1:0}o._hasCalcTimelineLog=!0,o._loop()},o.stop=function(){!0===(arguments.length>0&&void 0!==arguments[0]&&arguments[0])&&(o._abrAlwaysOn=-1),clearTimeout(o.timerId),o._isPaused=!0,o.logger("stop")},o.logger("constructor",n,r,i,a,o.bitrate),o.player=e,o.isOpenAutoDefi=!!o.autoBitrateOpts.isOpenAutoDefi,o._isSegmentDrive=1===o.autoBitrateOpts.abrDriveMode,o.onPlayRateChange=o._onPlayrateChange.bind(o),o._onWinSizeChange=debounce(o.onWinElemSizeChange.bind(o),1e3,!1),o._maxDefinition=o.autoBitrateOpts.maxDefinition||null,o._maxBitrate=-1,o.listeners=[{evt:"MAX_BUFFER_CHANGE",handler:o._onMaxBufferChange.bind(o)},{evt:"playbackrateChange",handler:o.onPlayRateChange},{evt:"replay",handler:o._onReplay},{evt:"ended",handler:o._onEnded},{evt:"error",handler:o._onError},{evt:"timeupdate",handler:o._onTimeUpdate},{evt:"addVideoBufferEnd",handler:o._onBufferRangeUpdate},{evt:"canplay",handler:o._onCanPlay},{evt:"play",handler:o._onPlay},{evt:"seeking",handler:o._onSeeking},{evt:"seeked",handler:o._onSeekEnd},{evt:"waiting",handler:o._onWaiting},{evt:"playing",handler:o._onPlaying},{evt:"video_resize",handler:o._onWinSizeChange},{evt:"NEXT_SEGMENT_PREDICT",handler:o._onSegmentPredict}],o.listeners.forEach((function(e){var t=e.evt,n=e.handler;o.player.on(t,n)})),o._abrMethod=o.autoBitrateOpts.method||0,o._loopInterval=o.initInterval,FpsDetection.install(),o._maxCacheTimeVideo=o.config.preloadTime||5,o._maxCacheTimeAudio=o._maxCacheTimeVideo;for(var d=Object.keys(AVG_ARGS),c=0;c<d.length;c++){var s=d[c],U=AVG_ARGS[s];o._avgStatItems[U]=new AvgStat}return o}return _inherits$4(t,BaseAbr),_createClass$6(t,[{key:"init",value:function(e){return this._mediaList=e,this.isOpenAutoDefi?this._onLoadWasm():this._wasmPromise.resolve(),this._wasmPromise}},{key:"execute",value:function(){return this.listenSize(),this.initFps(),this.onWinElemSizeChange(),this._execDecision()}},{key:"initFps",value:function(){this.fpsDetection=new FpsDetection,this.fpsDetection.start(),this._fps=this.fpsDetection.fps,this._hasDeviceInfoChanged=!0}},{key:"listenSize",value:function(){window.removeEventListener("resize",this._onWinSizeChange),window.addEventListener("resize",this._onWinSizeChange)}},{key:"onWinElemSizeChange",value:function(){var e,t,n=(null===(e=this.player)||void 0===e?void 0:e.media)||(null===(t=this.player)||void 0===t?void 0:t.video);if(n){var r=n.getBoundingClientRect();this._videoWidth=Math.floor(r.width),this._videoHeight=Math.floor(r.height),this._hasDeviceInfoChanged=!0}}},{key:"execTimeUpdate",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._onTimeUpdate(null,e)}},{key:"_onMaxBufferChange",value:function(e){var t=e.videoCacheTime,n=e.audioCacheTime;this._maxCacheTimeAudio=n,this._maxCacheTimeVideo=t}},{key:"_emitAutoDescChange",value:function(e,t,n,r){var i;this.logger("[ABR],emitAutoDescChange, definition, ",e,",item,",r,",pre_item,",this._prevDefinitionItem),null===(i=this.player)||void 0===i||i.emit("UPDATE_AUTO_DESC",{definition:e,reset:t,fps:n,item:r,pre_item:this._prevDefinitionItem})}},{key:"_emitDefinitionRealChange",value:function(e){var t,n=0,r=e.start;this._abrChangeTimeMap[r]&&(this._abrChangeTimeMap[r]=0,delete this._abrChangeTimeMap[r],n=1),null===(t=this.player)||void 0===t||t.emit("ABR_DEFINITION_REAL_CHANGE",{orgDefinition:this._prevDefinitionItem.definition,orgBitrate:this._prevDefinitionItem.bitrate||this._prevDefinitionItem.bandwidth,currentDefinition:this._currentItem.definition,currentBitrate:this._currentItem.bitrate||this._currentItem.bandwidth,abrChange:n})}},{key:"_onPlayrateChange",value:function(){this.module&&this.updateBufferInfo()}},{key:"_execDecision",value:function(){if(!this.isOpenAutoDefi)return INIT_BIRTATE;var e=INIT_BIRTATE;try{this.logger("exec decision"),this.updateSwitchInfo(),this.transformMediaInfo(),this.updateDeviceInfo();var t=!!this.autoBitrateOpts.isPlayAutoDefi;if(this.isOpenAutoDefi&&t){this._abrUsed=1;var n=this._getDefaultSpeed(this.player);this._isSegmentDrive||(e=this._loopAbr(n)),this.start(),this._changeLoopInterval(),this.logger("time start progress",(new Date).getTime()),this.logger("time costTime",performance.now()-this.startTime)}}catch(e){this.logger("decision error",e),this.logger("time costTime err",performance.now()-this.startTime)}return e}},{key:"_changeLoopInterval",value:function(){var e=this;this.startTimer&&(clearTimeout(this.startTimer),this.startTimer=null),this.startTimer=setTimeout((function(){e._loopInterval=e.interval,e.startTimer&&clearTimeout(e.startTimer),e.logger("interval change")}),5e3)}},{key:"_loop",value:function(){var e=this;this._isPaused||this._isSegmentDrive||(clearTimeout(this.timerId),this.timerId=setTimeout((function(){var t,n=e.player,r=e.config;if(e._hasStart&&null!==(t=r.autoBitrateOpts)&&void 0!==t&&t.stillRunWhenPaused||!n.paused||!n.config.autoplay&&!e._hasStart){var i=e._hasAddFragment?void 0:e._getDefaultSpeed(n);e._loopAbr(i)}e._loop()}),this._loopInterval))}},{key:"checkRestart",value:function(){var e;null!==(e=this.config.autoBitrateOpts)&&void 0!==e&&e.autoRestartAbr&&this._currentInAbr&&this._isPaused&&this.start()}},{key:"updateDeviceInfo",value:function(){try{if(this.fpsDetection){var e=this.fpsDetection.fps;e!==this._fps&&(this._fps=e,this._hasDeviceInfoChanged=!0)}this._updateDeviceInfo(this._fps)}catch(e){}}},{key:"updateBufferInfo",value:function(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=this.player.playbackRate,o=this.bufferLength;i>0&&(this.player&&(o=i-this.player.video.currentTime));var l=e||Math.floor(this.player.downloadSpeed);this._tickCount<5&&0===l&&(l=this._getDefaultSpeed(this.player),this.logger("initSpeed fix"));var d=-1===this._maxBitrate?this._defaultMaxBitrate:this._maxBitrate;return this.logger("downloadSpeed:",l,"buffer:",o,"maxCacheTimeAudio:",this._maxCacheTimeAudio,"maxCacheVideoTime",this._maxCacheTimeVideo,"seekState",this._seekState,"stallState",this._stallState,"segmentBufferStart",r,"segmentBufferEnd",i),null===(t=this.module)||void 0===t||t._updateBufferInfo(a,this._maxCacheTimeAudio,this._maxCacheTimeVideo,o,this._isSegmentDrive?i:o,l,this._seekState,null===(n=this.player)||void 0===n?void 0:n.currentTime,this._stallState,d),this._seekState=0,this._eventInfo={internet_speed:l,buffer_length:o,last_bitrate:this.bitrate,play_speed:a},this.logger("playRate:",a,"buff:",o,"downloadSpeed:",l),{buffer:o,downloadSpeed:l}}},{key:"updateSwitchInfo",value:function(){var e,t,n=(new Date).getTime();this._openTimeMs=n,this._abr_play_info.start_play_time_ms=n;var r=(null===(e=this.player)||void 0===e?void 0:e.config.preloadTime)||50,i=convert32ToC64(n),a=this.autoBitrateOpts.noStallCheckTime||5,o=this.openLog;this.logger("openTime:",n,"this.logger",o),null===(t=this.module)||void 0===t||t._updateSwitchInfo(i.low,i.high,a,o,this.stall_penalty,this.switch_penalty);var l=this._mediaList.video,d=l.map((function(e){var t=e.bandwidth,n=e.bitrate;return t||n}));this._bitrateSet=d.map((function(e,t){return{bitrate:e,codecs:l[t].codecs||l[t].codec_type||""}})),this._generalInfo={max_cache_time:r,bitrate_set:this._bitrateSet,segment_duration:this.segment_duration,preload_info:{},startup_info:{}}}},{key:"updatePreloadCacheInfo",value:function(e){try{this._preloadInfo=e,this.logger("update preloadInfo",e),e&&e.item_num!==e.items.length&&(this.logger("preloadInfo invalid"),this._preloadInfo=null)}catch(e){this.logger("updatePreloadCacheInfo",e),this._preloadInfo=null}}},{key:"updatePreloadLogInfo",value:function(e){this._generalInfo.preload_info=e||{}}},{key:"_loopAbr",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};this._tickCount++;var i=-1,a=[];if(!this.module||!this.player)return this.bitrate;try{var o,l=(new Date).getTime(),d=this.player;this.updateDeviceInfo();var c=this.updateBufferInfo(e,t,n),s=c.downloadSpeed,U=c.buffer;if(this.module.updateDropFrame&&d.video.getVideoPlaybackQuality){var F,u=d.video.getVideoPlaybackQuality(),Q=u.droppedVideoFrames/u.totalVideoFrames;null===(F=this.module)||void 0===F||F.updateDropFrame(Q)}i=this.module._getPredictedBitrate(this.bitrate,this._abrMethod);for(var R=0;R<7;R++)a.push(this.module.HEAP32[i/Int32Array.BYTES_PER_ELEMENT+R]);var h=a[0],p=1===a[1];this._eventInfo.now_bitrate=h,this._eventInfo.local_time_ms=(new Date).getTime();var B=0;if(h!==this.bitrate&&0!==h||this.autoBitrateOpts.reportVerboseAbrLog){var S=this.player.currentTime;if(this.module.getStat){var f=this.module.getStat();d.emit("ABR_STAT",_objectSpread2$4(_objectSpread2$4({v_time:S,diff_current_position:-1===this._prevCurrentTime?0:S-this._prevCurrentTime,net_speed:8*s,costTime:(new Date).getTime()-l,download_time:null==r?void 0:r.costTime},f),{},{gop_size:null==r?void 0:r.gopSize,audio_buffer:null==r?void 0:r.audioBuffer})),this._abrChangeTimeMap[f.download_position]=1}this._prevCurrentTime=S}if(h!==this.bitrate&&0!==h){var m=this.bitrate;B=Math.abs(m-h);for(var V=[],y=(d.media||d.video).buffered,E=0;E<y.length;E++)V.push({start:y.start(E),end:y.end(E)});var Z=this._videoWidth||Number(this.config.width),b=this._videoHeight||Number(this.config.height),J=(new Date).getTime(),v={speed:"".concat(s," KB/s"),buffer_length:"".concat(U," s"),video_pos:d.currentTime,all_buffers:V,seek_state:this._seekState,stall_state:this._stallState,screen_width:Z,screen_height:b,dpr:window&&window.devicePixelRatio,playbackRate:d.playbackRate,bitrateSet:this._bitrateSet,abrMethod:this._abrMethod,delta:this._hasExecuteAbrAlgo?J-this._lastExecuteTimeInMs:0};this._lastExecuteTimeInMs=J,this._hasExecuteAbrAlgo=!0,this.logger("abr predicate: ".concat(h,", prevBitrate: ").concat(m,","),"willStall: ".concat(p,", switchBitrate: ").concat(B)),this.updateBitrate(h),d.emit("ABR_CHANGE_A",m,h,p,JSON.stringify(v))}this._hasLogStartInfo||(this._hasLogStartInfo=!0,this._generalInfo.startup_info={predict_bitrate:h,download_speed:s,screen_width:this._videoWidth||Number(this.config.width),screen_height:this._videoHeight||Number(this.config.height),device_pixel_ratio:window&&window.devicePixelRatio,screen_fps:this._fps,startup_method:this._abrMethod}),null===(o=this.player)||void 0===o||o.emit("ABR_LOOP"),this.onAbrLoop(s,a[2],B,a.slice(3))}catch(e){this.logger("abr error",e),console.error("loopAbr error",e)}finally{i>-1&&this.module._free(i)}return this.bitrate}},{key:"destroy",value:function(){var e,t=this;this.stop(),this.listeners.forEach((function(e){var n,r=e.evt,i=e.handler;null===(n=t.player)||void 0===n||n.off(r,i)})),this._maxBitrate=-1,this.player=null,this._heightToDefinitionConfig=null,this._bitrateToDefinitionConfig=null,this._bitrateToDefinitionConfig=null,this._bufferRange.clear(),this._sortedBufferRange=[],this.module=null,clearTimeout(this._stallId),clearTimeout(this._updateId),this.startTimer&&clearTimeout(this.startTimer),window.removeEventListener("resize",this._onWinSizeChange),null===(e=this.fpsDetection)||void 0===e||e.stop()}},{key:"eventInfo",get:function(){return this._eventInfo}},{key:"generalInfo",get:function(){return this._generalInfo}},{key:"bufferLength",get:function(){var e,t,n=(null===(e=this.player)||void 0===e?void 0:e.getBufferedRange())||[],r=((null===(t=this.player)||void 0===t?void 0:t.video)||{currentTime:0}).currentTime,i=n[1]-Math.max(n[0],r),a=Math.max(0,i).toFixed(2);return parseFloat(a)}},{key:"downloadSpeed",get:function(){return Math.floor(this.player.downloadSpeed)}},{key:"nowBitrate",get:function(){return this.bitrate}},{key:"openTimeMs",get:function(){return this._openTimeMs}},{key:"isCurrentInAbr",get:function(){return this._currentInAbr},set:function(e){this._currentInAbr=e}},{key:"isCurrentHDR",get:function(){return this._isCurrentHDR},set:function(e){this._isCurrentHDR=e}},{key:"onAbrLoop",value:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(this._qoeArgs=i,this._currentItem&&this.avgStat(AVG_ARGS.PLAYBACK_BITRATE,this._currentItem.bitrate),this.avgStat(AVG_ARGS.DOWNLOAD_NETWORK_SPEED,1e3*e*8),this.avgStat(AVG_ARGS.PREDICT_NETWORK_SPEED,n),this.avgStat(AVG_ARGS.BUFFER_LENGTH,this.bufferLength),this.avgStat(AVG_ARGS.QOE,this.getQoeRelValue(0)),r>0&&(this._switchCount++,this._switchBitrate+=r),this._abr_play_info.is_hint){var a=((new Date).getTime()-this.openTimeMs)/1e3;a=parseFloat(a.toFixed(2)),this._abr_play_info.playback_info.internet_speed_record.push([a,this.downloadSpeed]),this._abr_play_info.playback_info.play_bitrate_record.push([a,this.nowBitrate]),this._abr_play_info.playback_info.buffer_length_record.push([a,this.bufferLength]),this._abr_play_info.playback_info.play_speed_record.push([a,(null===(t=this.player)||void 0===t?void 0:t.playbackRate)||-1]),this._abr_play_info.playback_info.qoe_record.push([a,this.getQoeRelValue(0)]),this._abr_play_info.playback_info.qoe_a_record.push([a,this.getQoeRelValue(1)]),this._abr_play_info.playback_info.qoe_b_record.push([a,this.getQoeRelValue(2)]),this._abr_play_info.playback_info.qoe_c_record.push([a,this.getQoeRelValue(3)])}}},{key:"getQoeRelValue",value:function(e){return this._qoeArgs[e]/100}},{key:"avgStat",value:function(e,t){var n=this._avgStatItems[e];n&&n.add(t)}},{key:"getAbrPlayInfo",value:function(){return this._abr_play_info}},{key:"updateAbrMethod",value:function(e){this._abrMethod=e}},{key:"getAbrMethod",value:function(){return this._abrMethod}},{key:"updateSegmentDuration",value:function(e){var t;this.segment_duration=e,null!==(t=this.module)&&void 0!==t&&t.updateSegmentDuration&&this.module.updateSegmentDuration(e)}},{key:"getAbrVVStats",value:function(){for(var e={},t=Object.keys(AVG_ARGS),n=0;n<t.length;n++){var r=t[n],i=AVG_ARGS[r],a=this._avgStatItems[i];e[i]=a.avg()}return e.switch_counts=this._switchCount,e.avg_switch_bitrate=0===this._switchCount?0:this._switchBitrate/this._switchCount,e.abr_qoe=this.getQoeRelValue(0),e.abr_qoe_a=this.getQoeRelValue(1),e.abr_qoe_b=this.getQoeRelValue(2),e.abr_qoe_c=this.getQoeRelValue(3),e.abr_method=this._abrMethod,e.abr_used=this._abrUsed,e.abr_always_on=this._abrAlwaysOn,this.logger("abrVVStats",e),e}}])}(),AvgStat=function(){return _createClass$6((function e(){_classCallCheck$6(this,e),this.total=0,this.count=0}),[{key:"add",value:function(e){this.total+=e,this.count++}},{key:"avg",value:function(){if(0===this.count)return 0;var e=this.total/this.count;return Math.floor(e)}}])}(),logLevels={1:"debug",2:"log",3:"warn",4:"error"},isSupport=isLocalStorageUsable(),openLog=checkOpenLog(),openTestLog=checkTestOpenLog();function probeSupport(){try{return"undefined"!=typeof localStorage&&"setItem"in window.localStorage&&!!window.localStorage.setItem}catch(e){return!1}}function checkIfLocalStorageThrows(){var e="local_storage_support_test";try{return window.localStorage.setItem(e,"true"),window.localStorage.removeItem(e),!1}catch(e){return!0}}function checkOpenLog(){if(isSupport)try{return!!window.localStorage.getItem("playerlog")}catch(e){return!1}return!1}function isLocalStorageUsable(){return probeSupport()&&!checkIfLocalStorageThrows()}function log(e,t,n){var r=logLevels[t];if(r&&null!=e&&e[r]){for(var i=arguments.length,a=new Array(i>3?i-3:0),o=3;o<i;o++)a[o-3]=arguments[o];e[r].apply(e,[n].concat(a))}}function checkTestOpenLog(){if(isSupport)try{return!!window.localStorage.getItem("playertestlog")}catch(e){return!1}return!1}var START_TYPES={FIXED:"FIXED",AUTO:"AUTO"},AbrService=function(){return _createClass$a((function e(t,n){var r=this;_classCallCheck$a(this,e),this.bitrateMap={},this.defIdMap={},this._startPlay=!1,this.canplayHandler=function(){r._startPlay=!0},this.onAbrChange=function(e,t,n,i){var a=r.pluginInst.player,o=r.bitrateMap[e],l=r.bitrateMap[t],d=o?o.definition:"",c=null!=l&&l.definition?l.definition:d;d!==c&&r._startPlay&&(r._abrSwitchHandler(l),a.emit("ABR_CHANGE",{prev:d,cur:c,prevName:null==o?void 0:o.definitionName,curName:null==l?void 0:l.definitionName,abrInfo:i}))},this.onAutoDescChange=function(e){var t=e.definition,n=e.reset,i=e.fps,a=e.item;r.updateAutoDefiDesc(t,n,i,a)};var i=t.player;this.pluginInst=t;var a=this.pluginInst.config.autoBitrateOpts||{};this.isPlayAutoDefi=!!a.isPlayAutoDefi,this.isOpenAutoDefi=!!a.isOpenAutoDefi,this.isCurrentAutoDefi=this.isOpenAutoDefi&&this.isPlayAutoDefi,this._abrSwitchHandler=n,i.once("playing",this.canplayHandler)}),[{key:"init",value:(e=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t){var n,r,i,a;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.isOpenAutoDefi){e.next=2;break}return e.abrupt("return",{type:START_TYPES.FIXED});case 2:return n=this.pluginInst,r=n.player,i=n.playerConfig,a=n.config,r.on(ABR_EVENTS.UPDATE_AUTO_DESC,this.onAutoDescChange),this.bitrateMap={},this.defIdMap={},this.abrInstance=new ABR(r,a,0,{dynamic_video_list:i.definition.list.concat()},5e3,{logger:log,openLog:openLog}),e.next=9,this.abrInstance.init(t);case 9:r.on(ABR_EVENTS.ABR_CHANGE,this.onAbrChange),this.abrInstance&&(this.abrInstance.isCurrentInAbr=this.isCurrentAutoDefi);case 11:case"end":return e.stop()}}),e,this)}))),function(t){return e.apply(this,arguments)})},{key:"execute",value:function(){var e,t=null===(e=this.abrInstance)||void 0===e?void 0:e.execute();return{bitrate:t,type:-1===t?START_TYPES.FIXED:START_TYPES.AUTO}}},{key:"updateBitrate",value:function(e){var t;null===(t=this.abrInstance)||void 0===t||t.updateBitrate(e)}},{key:"updateCurrentHDRStatus",value:function(e){this.abrInstance&&(this.abrInstance.isCurrentHDR=!!e)}},{key:"enable",value:function(){this.isCurrentAutoDefi=!0,this.abrInstance&&(this.abrInstance.start(),this.abrInstance.isCurrentInAbr=!0,this.abrInstance.execTimeUpdate(!0))}},{key:"disable",value:function(){this.abrInstance&&(this.updateAutoDefiDesc("",!0),this.isCurrentAutoDefi=!1,this.abrInstance.isCurrentInAbr=!1,this.abrInstance.stop(!0))}},{key:"isCurrentInAbr",value:function(){return!!this.abrInstance&&this.abrInstance.isCurrentInAbr}},{key:"updateAutoDefiDesc",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=this.pluginInst,a=i.player,o=(i.config.autoBitrateOpts||{}).autoDefiText||"auto";a.emit("ABR_AUTO_DESC_CHANGE",o,t?void 0:e,n,r),t||(a._currentDefinitionFromPlayer={definition:"自动 ".concat(e),item:r})}},{key:"updateAbrCacheData",value:function(){var e=this,t=this.pluginInst,n=t.player,r=t.config,i=t.playerConfig,a=r.autoBitrateOpts||{},o=i.definition.list,l=!1;if(o.forEach((function(t){e.bitrateMap[t.bitrate]={url:t.url,definition:t.definition,definitionName:t.text},e.defIdMap[t.definition]={bitrate:t.bitrate,definition:t.definition},"auto"!==t.definition&&"自动"!==t.definition||(l=!0)})),this.isOpenAutoDefi&&!l){var d=a.autoDefiText||"auto",c={definition:"自动",bitrate:n.curDefinition.bitrate,text:d,url:"__auto__",selected:this.isPlayAutoDefi,name:"自动",vwidth:n.curDefinition.vwidth,vheight:n.curDefinition.vheight};i.definition.list.push(c)}}},{key:"destroy",value:function(){var e=this.pluginInst.player;e&&(e.off(ABR_EVENTS.ABR_CHANGE,this.onAbrChange),e.off("playing",this.canplayHandler),this.abrInstance&&(e.off(ABR_EVENTS.UPDATE_AUTO_DESC,this.onAutoDescChange),this.abrInstance.destroy(),this.abrInstance=void 0))}}]);var e}(),CUSTOM_EVENTS={MEDIA_EXPIRED:"MEDIA_EXPIRED",INIT_FAIL:"INIT_FAIL",PARSE_ERROR:"PARSE_ERROR",PLAYER_LOG:"PLAYER_LOG",BUFFERED_RESET:"BUFFERED_RESET",MEDIA_LIST:"MEDIA_LIST",MSE_RESPONSE_INFO:"mse_response_info"},REAL_TIME_SPEED_EVENT="real_time_speed",MSE_NOT_SUPPORT="is unsupported",EVENT_BUFFER_CONTROL="buffer_control",BUFFER_CONTROL_TYPE={WAITING:"waiting",PLAYING:"playing"},PRODUCT_CONFIG={app_id:6383,sid:5,task_type:1},NEW_ARRAY_MAX_CNT$2=10,USE_WAIT_WATER_LEVEL_MIN_TIME=2,TIMER_LIST_LIMIT=10,LOAD_RANGE_TYPE=function(e){return e.GOP="gop",e.SIZE="size",e.UNMUX="un_mux",e.ONLY_SIZE="only_size",e}(LOAD_RANGE_TYPE||{}),PAUSE_TYPES={BUFFER_CONTROLS:"buffer_control"},TIMER_UPDATE_EVENT="timer_update",DEFAULT_TICK_IN_SECONDS=.2,DEFAULT_FIRST_LOAD_TIME_POS=5,LOAD_STATES={PRELOAD_ERROR:"PRELOAD_ERROR",PRELOAD_CHECK:"PRELOAD_CHECK",PRELOAD_OK:"PRELOAD_OK",PRELOAD_MATCH:"PRELOAD_MATCH",USER_DEFI_CHECK:"USER_DEFI_CHECK"},BIND_SRC_TIMING={META_READY:"meta_ready",INIT:"init"},WAIT_TIMEOUT_TIMELIST=[{range:[0,1800],time:5e3},{range:[1800,3600],time:1e4},{range:[3600,7200],time:15e3},{range:[7200,18e3],time:2e4},{range:[18e3,Number.MAX_VALUE],time:3e4}],ERROR_DATA_LEN_NOT_MATCH="progress dataLen not match",wellKnownSymbolWrapped={},wellKnownSymbol$4=wellKnownSymbol$v;wellKnownSymbolWrapped.f=wellKnownSymbol$4;var global$6=global$I,path$1=global$6,path=path$1,hasOwn$7=hasOwnProperty_1,wrappedWellKnownSymbolModule$1=wellKnownSymbolWrapped,defineProperty$1=objectDefineProperty.f,wellKnownSymbolDefine=function(e){var t=path.Symbol||(path.Symbol={});hasOwn$7(t,e)||defineProperty$1(t,e,{value:wrappedWellKnownSymbolModule$1.f(e)})},call$5=functionCall,getBuiltIn$4=getBuiltIn$h,wellKnownSymbol$3=wellKnownSymbol$v,defineBuiltIn$2=defineBuiltIn$j,symbolDefineToPrimitive=function(){var e=getBuiltIn$4("Symbol"),t=e&&e.prototype,n=t&&t.valueOf,r=wellKnownSymbol$3("toPrimitive");t&&!t[r]&&defineBuiltIn$2(t,r,(function(e){return call$5(n,this)}),{arity:1})},$$h=_export,global$5=global$I,call$4=functionCall,uncurryThis$8=functionUncurryThis,DESCRIPTORS$5=descriptors,NATIVE_SYMBOL$4=symbolConstructorDetection,fails$7=fails$Q,hasOwn$6=hasOwnProperty_1,isPrototypeOf$1=objectIsPrototypeOf,anObject$4=anObject$z,toIndexedObject$3=toIndexedObject$e,toPropertyKey=toPropertyKey$5,$toString=toString$j,createPropertyDescriptor=createPropertyDescriptor$7,nativeObjectCreate=objectCreate,objectKeys$1=objectKeys$4,getOwnPropertyNamesModule=objectGetOwnPropertyNames,getOwnPropertyNamesExternal=objectGetOwnPropertyNamesExternal,getOwnPropertySymbolsModule$1=objectGetOwnPropertySymbols,getOwnPropertyDescriptorModule$2=objectGetOwnPropertyDescriptor,definePropertyModule=objectDefineProperty,definePropertiesModule=objectDefineProperties,propertyIsEnumerableModule=objectPropertyIsEnumerable,defineBuiltIn$1=defineBuiltIn$j,shared$2=sharedExports,sharedKey=sharedKey$4,hiddenKeys=hiddenKeys$6,uid=uid$5,wellKnownSymbol$2=wellKnownSymbol$v,wrappedWellKnownSymbolModule=wellKnownSymbolWrapped,defineWellKnownSymbol$4=wellKnownSymbolDefine,defineSymbolToPrimitive$1=symbolDefineToPrimitive,setToStringTag$3=setToStringTag$b,InternalStateModule=internalState,$forEach=arrayIteration.forEach,HIDDEN=sharedKey("hidden"),SYMBOL="Symbol",PROTOTYPE="prototype",setInternalState=InternalStateModule.set,getInternalState=InternalStateModule.getterFor(SYMBOL),ObjectPrototype$1=Object[PROTOTYPE],$Symbol=global$5.Symbol,SymbolPrototype$1=$Symbol&&$Symbol[PROTOTYPE],TypeError$1=global$5.TypeError,QObject=global$5.QObject,nativeGetOwnPropertyDescriptor$1=getOwnPropertyDescriptorModule$2.f,nativeDefineProperty=definePropertyModule.f,nativeGetOwnPropertyNames=getOwnPropertyNamesExternal.f,nativePropertyIsEnumerable=propertyIsEnumerableModule.f,push$3=uncurryThis$8([].push),AllSymbols=shared$2("symbols"),ObjectPrototypeSymbols=shared$2("op-symbols"),WellKnownSymbolsStore=shared$2("wks"),USE_SETTER=!QObject||!QObject[PROTOTYPE]||!QObject[PROTOTYPE].findChild,setSymbolDescriptor=DESCRIPTORS$5&&fails$7((function(){return 7!=nativeObjectCreate(nativeDefineProperty({},"a",{get:function(){return nativeDefineProperty(this,"a",{value:7}).a}})).a}))?function(e,t,n){var r=nativeGetOwnPropertyDescriptor$1(ObjectPrototype$1,t);r&&delete ObjectPrototype$1[t],nativeDefineProperty(e,t,n),r&&e!==ObjectPrototype$1&&nativeDefineProperty(ObjectPrototype$1,t,r)}:nativeDefineProperty,wrap=function(e,t){var n=AllSymbols[e]=nativeObjectCreate(SymbolPrototype$1);return setInternalState(n,{type:SYMBOL,tag:e,description:t}),DESCRIPTORS$5||(n.description=t),n},$defineProperty=function(e,t,n){e===ObjectPrototype$1&&$defineProperty(ObjectPrototypeSymbols,t,n),anObject$4(e);var r=toPropertyKey(t);return anObject$4(n),hasOwn$6(AllSymbols,r)?(n.enumerable?(hasOwn$6(e,HIDDEN)&&e[HIDDEN][r]&&(e[HIDDEN][r]=!1),n=nativeObjectCreate(n,{enumerable:createPropertyDescriptor(0,!1)})):(hasOwn$6(e,HIDDEN)||nativeDefineProperty(e,HIDDEN,createPropertyDescriptor(1,{})),e[HIDDEN][r]=!0),setSymbolDescriptor(e,r,n)):nativeDefineProperty(e,r,n)},$defineProperties=function(e,t){anObject$4(e);var n=toIndexedObject$3(t),r=objectKeys$1(n).concat($getOwnPropertySymbols(n));return $forEach(r,(function(t){DESCRIPTORS$5&&!call$4($propertyIsEnumerable$1,n,t)||$defineProperty(e,t,n[t])})),e},$create=function(e,t){return void 0===t?nativeObjectCreate(e):$defineProperties(nativeObjectCreate(e),t)},$propertyIsEnumerable$1=function(e){var t=toPropertyKey(e),n=call$4(nativePropertyIsEnumerable,this,t);return!(this===ObjectPrototype$1&&hasOwn$6(AllSymbols,t)&&!hasOwn$6(ObjectPrototypeSymbols,t))&&(!(n||!hasOwn$6(this,t)||!hasOwn$6(AllSymbols,t)||hasOwn$6(this,HIDDEN)&&this[HIDDEN][t])||n)},$getOwnPropertyDescriptor=function(e,t){var n=toIndexedObject$3(e),r=toPropertyKey(t);if(n!==ObjectPrototype$1||!hasOwn$6(AllSymbols,r)||hasOwn$6(ObjectPrototypeSymbols,r)){var i=nativeGetOwnPropertyDescriptor$1(n,r);return!i||!hasOwn$6(AllSymbols,r)||hasOwn$6(n,HIDDEN)&&n[HIDDEN][r]||(i.enumerable=!0),i}},$getOwnPropertyNames=function(e){var t=nativeGetOwnPropertyNames(toIndexedObject$3(e)),n=[];return $forEach(t,(function(e){hasOwn$6(AllSymbols,e)||hasOwn$6(hiddenKeys,e)||push$3(n,e)})),n},$getOwnPropertySymbols=function(e){var t=e===ObjectPrototype$1,n=nativeGetOwnPropertyNames(t?ObjectPrototypeSymbols:toIndexedObject$3(e)),r=[];return $forEach(n,(function(e){!hasOwn$6(AllSymbols,e)||t&&!hasOwn$6(ObjectPrototype$1,e)||push$3(r,AllSymbols[e])})),r};NATIVE_SYMBOL$4||(defineBuiltIn$1(SymbolPrototype$1=($Symbol=function(){if(isPrototypeOf$1(SymbolPrototype$1,this))throw TypeError$1("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?$toString(arguments[0]):void 0,t=uid(e),n=function(e){this===ObjectPrototype$1&&call$4(n,ObjectPrototypeSymbols,e),hasOwn$6(this,HIDDEN)&&hasOwn$6(this[HIDDEN],t)&&(this[HIDDEN][t]=!1),setSymbolDescriptor(this,t,createPropertyDescriptor(1,e))};return DESCRIPTORS$5&&USE_SETTER&&setSymbolDescriptor(ObjectPrototype$1,t,{configurable:!0,set:n}),wrap(t,e)})[PROTOTYPE],"toString",(function(){return getInternalState(this).tag})),defineBuiltIn$1($Symbol,"withoutSetter",(function(e){return wrap(uid(e),e)})),propertyIsEnumerableModule.f=$propertyIsEnumerable$1,definePropertyModule.f=$defineProperty,definePropertiesModule.f=$defineProperties,getOwnPropertyDescriptorModule$2.f=$getOwnPropertyDescriptor,getOwnPropertyNamesModule.f=getOwnPropertyNamesExternal.f=$getOwnPropertyNames,getOwnPropertySymbolsModule$1.f=$getOwnPropertySymbols,wrappedWellKnownSymbolModule.f=function(e){return wrap(wellKnownSymbol$2(e),e)},DESCRIPTORS$5&&(nativeDefineProperty(SymbolPrototype$1,"description",{configurable:!0,get:function(){return getInternalState(this).description}}),defineBuiltIn$1(ObjectPrototype$1,"propertyIsEnumerable",$propertyIsEnumerable$1,{unsafe:!0}))),$$h({global:!0,constructor:!0,wrap:!0,forced:!NATIVE_SYMBOL$4,sham:!NATIVE_SYMBOL$4},{Symbol:$Symbol}),$forEach(objectKeys$1(WellKnownSymbolsStore),(function(e){defineWellKnownSymbol$4(e)})),$$h({target:SYMBOL,stat:!0,forced:!NATIVE_SYMBOL$4},{useSetter:function(){USE_SETTER=!0},useSimple:function(){USE_SETTER=!1}}),$$h({target:"Object",stat:!0,forced:!NATIVE_SYMBOL$4,sham:!DESCRIPTORS$5},{create:$create,defineProperty:$defineProperty,defineProperties:$defineProperties,getOwnPropertyDescriptor:$getOwnPropertyDescriptor}),$$h({target:"Object",stat:!0,forced:!NATIVE_SYMBOL$4},{getOwnPropertyNames:$getOwnPropertyNames}),defineSymbolToPrimitive$1(),setToStringTag$3($Symbol,SYMBOL),hiddenKeys[HIDDEN]=!0;var NATIVE_SYMBOL$3=symbolConstructorDetection,symbolRegistryDetection=NATIVE_SYMBOL$3&&!!Symbol.for&&!!Symbol.keyFor,$$g=_export,getBuiltIn$3=getBuiltIn$h,hasOwn$5=hasOwnProperty_1,toString$6=toString$j,shared$1=sharedExports,NATIVE_SYMBOL_REGISTRY$1=symbolRegistryDetection,StringToSymbolRegistry=shared$1("string-to-symbol-registry"),SymbolToStringRegistry$1=shared$1("symbol-to-string-registry");$$g({target:"Symbol",stat:!0,forced:!NATIVE_SYMBOL_REGISTRY$1},{for:function(e){var t=toString$6(e);if(hasOwn$5(StringToSymbolRegistry,t))return StringToSymbolRegistry[t];var n=getBuiltIn$3("Symbol")(t);return StringToSymbolRegistry[t]=n,SymbolToStringRegistry$1[n]=t,n}});var $$f=_export,hasOwn$4=hasOwnProperty_1,isSymbol$1=isSymbol$6,tryToString=tryToString$7,shared=sharedExports,NATIVE_SYMBOL_REGISTRY=symbolRegistryDetection,SymbolToStringRegistry=shared("symbol-to-string-registry");$$f({target:"Symbol",stat:!0,forced:!NATIVE_SYMBOL_REGISTRY},{keyFor:function(e){if(!isSymbol$1(e))throw TypeError(tryToString(e)+" is not a symbol");if(hasOwn$4(SymbolToStringRegistry,e))return SymbolToStringRegistry[e]}});var $$e=_export,getBuiltIn$2=getBuiltIn$h,apply$2=functionApply,call$3=functionCall,uncurryThis$7=functionUncurryThis,fails$6=fails$Q,isArray2=isArray$5,isCallable$2=isCallable$t,isObject$5=isObject$r,isSymbol=isSymbol$6,arraySlice$1=arraySlice$b,NATIVE_SYMBOL$2=symbolConstructorDetection,$stringify=getBuiltIn$2("JSON","stringify"),exec=uncurryThis$7(/./.exec),charAt$1=uncurryThis$7("".charAt),charCodeAt=uncurryThis$7("".charCodeAt),replace$2=uncurryThis$7("".replace),numberToString=uncurryThis$7(1..toString),tester=/[\uD800-\uDFFF]/g,low=/^[\uD800-\uDBFF]$/,hi=/^[\uDC00-\uDFFF]$/,WRONG_SYMBOLS_CONVERSION=!NATIVE_SYMBOL$2||fails$6((function(){var e=getBuiltIn$2("Symbol")();return"[null]"!=$stringify([e])||"{}"!=$stringify({a:e})||"{}"!=$stringify(Object(e))})),ILL_FORMED_UNICODE=fails$6((function(){return'"\\udf06\\ud834"'!==$stringify("\udf06\ud834")||'"\\udead"'!==$stringify("\udead")})),stringifyWithSymbolsFix=function(e,t){var n=arraySlice$1(arguments),r=t;if((isObject$5(t)||void 0!==e)&&!isSymbol(e))return isArray2(t)||(t=function(e,t){if(isCallable$2(r)&&(t=call$3(r,this,e,t)),!isSymbol(t))return t}),n[1]=t,apply$2($stringify,null,n)},fixIllFormed=function(e,t,n){var r=charAt$1(n,t-1),i=charAt$1(n,t+1);return exec(low,e)&&!exec(hi,i)||exec(hi,e)&&!exec(low,r)?"\\u"+numberToString(charCodeAt(e,0),16):e};$stringify&&$$e({target:"JSON",stat:!0,arity:3,forced:WRONG_SYMBOLS_CONVERSION||ILL_FORMED_UNICODE},{stringify:function(e,t,n){var r=arraySlice$1(arguments),i=apply$2(WRONG_SYMBOLS_CONVERSION?stringifyWithSymbolsFix:$stringify,null,r);return ILL_FORMED_UNICODE&&"string"==typeof i?replace$2(i,tester,fixIllFormed):i}});var $$d=_export,NATIVE_SYMBOL$1=symbolConstructorDetection,fails$5=fails$Q,getOwnPropertySymbolsModule=objectGetOwnPropertySymbols,toObject$2=toObject$g,FORCED$3=!NATIVE_SYMBOL$1||fails$5((function(){getOwnPropertySymbolsModule.f(1)}));$$d({target:"Object",stat:!0,forced:FORCED$3},{getOwnPropertySymbols:function(e){var t=getOwnPropertySymbolsModule.f;return t?t(toObject$2(e)):[]}});var $$c=_export,DESCRIPTORS$4=descriptors,global$4=global$I,uncurryThis$6=functionUncurryThis,hasOwn$3=hasOwnProperty_1,isCallable$1=isCallable$t,isPrototypeOf=objectIsPrototypeOf,toString$5=toString$j,defineProperty5=objectDefineProperty.f,copyConstructorProperties=copyConstructorProperties$2,NativeSymbol=global$4.Symbol,SymbolPrototype=NativeSymbol&&NativeSymbol.prototype;if(DESCRIPTORS$4&&isCallable$1(NativeSymbol)&&(!("description"in SymbolPrototype)||void 0!==NativeSymbol().description)){var EmptyStringDescriptionStore={},SymbolWrapper=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:toString$5(arguments[0]),t=isPrototypeOf(SymbolPrototype,this)?new NativeSymbol(e):void 0===e?NativeSymbol():NativeSymbol(e);return""===e&&(EmptyStringDescriptionStore[t]=!0),t};copyConstructorProperties(SymbolWrapper,NativeSymbol),SymbolWrapper.prototype=SymbolPrototype,SymbolPrototype.constructor=SymbolWrapper;var NATIVE_SYMBOL="Symbol(test)"==String(NativeSymbol("test")),thisSymbolValue=uncurryThis$6(SymbolPrototype.valueOf),symbolDescriptiveString=uncurryThis$6(SymbolPrototype.toString),regexp=/^Symbol\((.*)\)[^)]+$/,replace$1=uncurryThis$6("".replace),stringSlice$4=uncurryThis$6("".slice);defineProperty5(SymbolPrototype,"description",{configurable:!0,get:function(){var e=thisSymbolValue(this);if(hasOwn$3(EmptyStringDescriptionStore,e))return"";var t=symbolDescriptiveString(e),n=NATIVE_SYMBOL?stringSlice$4(t,7,-1):replace$1(t,regexp,"$1");return""===n?void 0:n}}),$$c({global:!0,constructor:!0,forced:!0},{Symbol:SymbolWrapper})}var defineWellKnownSymbol$3=wellKnownSymbolDefine;defineWellKnownSymbol$3("asyncIterator");var defineWellKnownSymbol$2=wellKnownSymbolDefine;defineWellKnownSymbol$2("iterator");var defineWellKnownSymbol$1=wellKnownSymbolDefine,defineSymbolToPrimitive=symbolDefineToPrimitive;defineWellKnownSymbol$1("toPrimitive"),defineSymbolToPrimitive();var getBuiltIn$1=getBuiltIn$h,defineWellKnownSymbol=wellKnownSymbolDefine,setToStringTag$2=setToStringTag$b;defineWellKnownSymbol("toStringTag"),setToStringTag$2(getBuiltIn$1("Symbol"),"Symbol");var $$b=_export,from3=arrayFrom$1,checkCorrectnessOfIteration=checkCorrectnessOfIteration$4,INCORRECT_ITERATION=!checkCorrectnessOfIteration((function(e){Array.from(e)}));$$b({target:"Array",stat:!0,forced:INCORRECT_ITERATION},{from:from3});var anObject$3=anObject$z,ordinaryToPrimitive=ordinaryToPrimitive$2,$TypeError=TypeError,dateToPrimitive$1=function(e){if(anObject$3(this),"string"===e||"default"===e)e="string";else if("number"!==e)throw $TypeError("Incorrect hint");return ordinaryToPrimitive(this,e)},hasOwn$2=hasOwnProperty_1,defineBuiltIn=defineBuiltIn$j,dateToPrimitive=dateToPrimitive$1,wellKnownSymbol$1=wellKnownSymbol$v,TO_PRIMITIVE=wellKnownSymbol$1("toPrimitive"),DatePrototype=Date.prototype;hasOwn$2(DatePrototype,TO_PRIMITIVE)||defineBuiltIn(DatePrototype,TO_PRIMITIVE,dateToPrimitive);var global$3=global$I,setToStringTag$1=setToStringTag$b;setToStringTag$1(global$3.JSON,"JSON",!0);var setToStringTag=setToStringTag$b;setToStringTag(Math,"Math",!0);var $$a=_export,fails$4=fails$Q,toIndexedObject$2=toIndexedObject$e,nativeGetOwnPropertyDescriptor=objectGetOwnPropertyDescriptor.f,DESCRIPTORS$3=descriptors,FAILS_ON_PRIMITIVES$1=fails$4((function(){nativeGetOwnPropertyDescriptor(1)})),FORCED$2=!DESCRIPTORS$3||FAILS_ON_PRIMITIVES$1;$$a({target:"Object",stat:!0,forced:FORCED$2,sham:!DESCRIPTORS$3},{getOwnPropertyDescriptor:function(e,t){return nativeGetOwnPropertyDescriptor(toIndexedObject$2(e),t)}});var $$9=_export,DESCRIPTORS$2=descriptors,ownKeys$4=ownKeys$9,toIndexedObject$1=toIndexedObject$e,getOwnPropertyDescriptorModule$1=objectGetOwnPropertyDescriptor,createProperty=createProperty$6;$$9({target:"Object",stat:!0,sham:!DESCRIPTORS$2},{getOwnPropertyDescriptors:function(e){for(var t,n,r=toIndexedObject$1(e),i=getOwnPropertyDescriptorModule$1.f,a=ownKeys$4(r),o={},l=0;a.length>l;)void 0!==(n=i(r,t=a[l++]))&&createProperty(o,t,n);return o}});var $$8=_export,fails$3=fails$Q,toObject$1=toObject$g,nativeGetPrototypeOf=objectGetPrototypeOf,CORRECT_PROTOTYPE_GETTER=correctPrototypeGetter,FAILS_ON_PRIMITIVES=fails$3((function(){nativeGetPrototypeOf(1)}));$$8({target:"Object",stat:!0,forced:FAILS_ON_PRIMITIVES,sham:!CORRECT_PROTOTYPE_GETTER},{getPrototypeOf:function(e){return nativeGetPrototypeOf(toObject$1(e))}});var uncurryThis$5=functionUncurryThis,aCallable=aCallable$i,isObject$4=isObject$r,hasOwn$1=hasOwnProperty_1,arraySlice=arraySlice$b,NATIVE_BIND=functionBindNative,$Function=Function,concat$2=uncurryThis$5([].concat),join3=uncurryThis$5([].join),factories={},construct=function(e,t,n){if(!hasOwn$1(factories,t)){for(var r=[],i=0;i<t;i++)r[i]="a["+i+"]";factories[t]=$Function("C,a","return new C("+join3(r,",")+")")}return factories[t](e,n)},functionBind=NATIVE_BIND?$Function.bind:function(e){var t=aCallable(this),n=t.prototype,r=arraySlice(arguments,1),i=function(){var n=concat$2(r,arraySlice(arguments));return this instanceof i?construct(t,n.length,n):t.apply(e,n)};return isObject$4(n)&&(i.prototype=n),i},$$7=_export,getBuiltIn=getBuiltIn$h,apply$1=functionApply,bind2=functionBind,aConstructor=aConstructor$3,anObject$2=anObject$z,isObject$3=isObject$r,create3=objectCreate,fails$2=fails$Q,nativeConstruct=getBuiltIn("Reflect","construct"),ObjectPrototype=Object.prototype,push$2=[].push,NEW_TARGET_BUG=fails$2((function(){function e(){}return!(nativeConstruct((function(){}),[],e)instanceof e)})),ARGS_BUG=!fails$2((function(){nativeConstruct((function(){}))})),FORCED$1=NEW_TARGET_BUG||ARGS_BUG;$$7({target:"Reflect",stat:!0,forced:FORCED$1,sham:FORCED$1},{construct:function(e,t){aConstructor(e),anObject$2(t);var n=arguments.length<3?e:aConstructor(arguments[2]);if(ARGS_BUG&&!NEW_TARGET_BUG)return nativeConstruct(e,t,n);if(e==n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var r=[null];return apply$1(push$2,r,t),new(apply$1(bind2,e,r))}var i=n.prototype,a=create3(isObject$3(i)?i:ObjectPrototype),o=apply$1(e,a,t);return isObject$3(o)?o:a}});var hasOwn2=hasOwnProperty_1,isDataDescriptor$1=function(e){return void 0!==e&&(hasOwn2(e,"value")||hasOwn2(e,"writable"))},$$6=_export,call$2=functionCall,isObject$2=isObject$r,anObject$1=anObject$z,isDataDescriptor=isDataDescriptor$1,getOwnPropertyDescriptorModule=objectGetOwnPropertyDescriptor,getPrototypeOf2=objectGetPrototypeOf;function get2(e,t){var n,r,i=arguments.length<3?e:arguments[2];return anObject$1(e)===i?e[t]:(n=getOwnPropertyDescriptorModule.f(e,t))?isDataDescriptor(n)?n.value:void 0===n.get?void 0:call$2(n.get,i):isObject$2(r=getPrototypeOf2(e))?get2(r,t,i):void 0}function ownKeys$3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread2$3(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$3(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$3(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _regeneratorRuntime$3(){_regeneratorRuntime$3=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function d(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{d({},"")}catch(e){d=function(e,t,n){return e[t]=n}}function c(e,t,n,i){var a=t&&t.prototype instanceof F?t:F,o=Object.create(a.prototype),l=new Z(i||[]);return r(o,"_invoke",{value:m(e,n,l)}),o}function s(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var U={};function F(){}function u(){}function Q(){}var R={};d(R,a,(function(){return this}));var h=Object.getPrototypeOf,p=h&&h(h(b([])));p&&p!==t&&n.call(p,a)&&(R=p);var B=Q.prototype=F.prototype=Object.create(R);function S(e){["next","throw","return"].forEach((function(t){d(e,t,(function(e){return this._invoke(t,e)}))}))}function f(e,t){function i(r,a,o,l){var d=s(e[r],e,a);if("throw"!==d.type){var c=d.arg,U=c.value;return U&&"object"==_typeof$5(U)&&n.call(U,"__await")?t.resolve(U.__await).then((function(e){i("next",e,o,l)}),(function(e){i("throw",e,o,l)})):t.resolve(U).then((function(e){c.value=e,o(c)}),(function(e){return i("throw",e,o,l)}))}l(d.arg)}var a;r(this,"_invoke",{value:function(e,n){function r(){return new t((function(t,r){i(e,n,t,r)}))}return a=a?a.then(r,r):r()}})}function m(e,t,n){var r="suspendedStart";return function(i,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw a;return{value:void 0,done:!0}}for(n.method=i,n.arg=a;;){var o=n.delegate;if(o){var l=V(o,n);if(l){if(l===U)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var d=s(e,t,n);if("normal"===d.type){if(r=n.done?"completed":"suspendedYield",d.arg===U)continue;return{value:d.arg,done:n.done}}"throw"===d.type&&(r="completed",n.method="throw",n.arg=d.arg)}}}function V(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,V(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),U;var i=s(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,U;var a=i.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,U):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,U)}function y(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function Z(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(y,this),this.reset(!0)}function b(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return i.next=i}}return{next:J}}function J(){return{value:void 0,done:!0}}return u.prototype=Q,r(B,"constructor",{value:Q,configurable:!0}),r(Q,"constructor",{value:u,configurable:!0}),u.displayName=d(Q,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===u||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,Q):(e.__proto__=Q,d(e,l,"GeneratorFunction")),e.prototype=Object.create(B),e},e.awrap=function(e){return{__await:e}},S(f.prototype),d(f.prototype,o,(function(){return this})),e.AsyncIterator=f,e.async=function(t,n,r,i,a){void 0===a&&(a=Promise);var o=new f(c(t,n,r,i),a);return e.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},S(B),d(B,l,"Generator"),d(B,a,(function(){return this})),d(B,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=b,Z.prototype={constructor:Z,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(E),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=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 t=this;function r(n,r){return o.type="throw",o.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var l=n.call(a,"catchLoc"),d=n.call(a,"finallyLoc");if(l&&d){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!d)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var a=i;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,U):this.complete(o)},complete:function(e,t){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&&t&&(this.next=t),U},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),U}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;E(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:b(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),U}},e}function _typeof$2(e){return(_typeof$2="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 asyncGeneratorStep$3(e,t,n,r,i,a,o){try{var l=e[a](o),d=l.value}catch(e){return void n(e)}l.done?t(d):Promise.resolve(d).then(r,i)}function _asyncToGenerator$3(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){asyncGeneratorStep$3(a,r,i,o,l,"next",e)}function l(e){asyncGeneratorStep$3(a,r,i,o,l,"throw",e)}o(void 0)}))}}function _classCallCheck$4(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties$4(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey$4(r.key),r)}}function _createClass$4(e,t,n){return t&&_defineProperties$4(e.prototype,t),n&&_defineProperties$4(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty$4(e,t,n){return(t=_toPropertyKey$4(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _inherits$3(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf$3(e,t)}function _getPrototypeOf$3(e){return(_getPrototypeOf$3=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _setPrototypeOf$3(e,t){return(_setPrototypeOf$3=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function _isNativeReflectConstruct$3(){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 _construct$1(e,t,n){return(_construct$1=_isNativeReflectConstruct$3()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&_setPrototypeOf$3(i,n.prototype),i}).apply(null,arguments)}function _isNativeFunction$1(e){return-1!==Function.toString.call(e).indexOf("[native code]")}function _wrapNativeSuper$1(e){var t="function"==typeof Map?new Map:void 0;return _wrapNativeSuper$1=function(e){if(null===e||!_isNativeFunction$1(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return _construct$1(e,arguments,_getPrototypeOf$3(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),_setPrototypeOf$3(n,e)},_wrapNativeSuper$1(e)}function _objectWithoutPropertiesLoose$3(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}function _objectWithoutProperties$3(e,t){if(null==e)return{};var n,r,i=_objectWithoutPropertiesLoose$3(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function _assertThisInitialized$3(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _possibleConstructorReturn$3(e,t){if(t&&("object"===_typeof$5(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$3(e)}function _createSuper$2(e){var t=_isNativeReflectConstruct$3();return function(){var n,r=_getPrototypeOf$3(e);if(t){var i=_getPrototypeOf$3(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return _possibleConstructorReturn$3(this,n)}}function _superPropBase$1(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf$3(e)););return e}function _get$1(){return _get$1="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=_superPropBase$1(e,t);if(r){var i=Object.getOwnPropertyDescriptor(r,t);return i.get?i.get.call(arguments.length<3?e:n):i.value}},_get$1.apply(this,arguments)}function _unsupportedIterableToArray$4(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray$4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray$4(e,t):void 0}}function _arrayLikeToArray$4(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function _createForOfIteratorHelper$2(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=_unsupportedIterableToArray$4(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}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 a,o=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){l=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(l)throw a}}}}function _toPrimitive$4(e,t){if("object"!==_typeof$5(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==_typeof$5(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$4(e){var t=_toPrimitive$4(e,"string");return"symbol"===_typeof$5(t)?t:String(t)}$$6({target:"Reflect",stat:!0},{get:get2});var LogCacheLevel$1={DEBUG:1,LOG:2,WARN:3,ERROR:4},LOG_MAX_SIZE$1=204800,SIMPLE_TYPE$1=["Boolean","Number","String","Undefined","Null","Date","Object"],Logger$2=function(){function e(t,n){_classCallCheck$4(this,e),this.name=t||"",this._prefix="[".concat(this.name,"]"),this.logCacheLevel=(null==n?void 0:n.logCacheLevel)||3,this.logMaxSize=(null==n?void 0:n.logMaxSize)||LOG_MAX_SIZE$1,this.logSize=0,this.logTextArray=[]}return _createClass$4(e,[{key:"debug",value:function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];this.logCache.apply(this,[LogCacheLevel$1.DEBUG].concat(r)),e.disabled||(t=console).debug.apply(t,["[".concat(nowTime$3(),"]"),this._prefix].concat(r))}},{key:"log",value:function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];this.logCache.apply(this,[LogCacheLevel$1.LOG].concat(r)),e.disabled||(t=console).log.apply(t,["[".concat(nowTime$3(),"]"),this._prefix].concat(r))}},{key:"warn",value:function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];this.logCache.apply(this,[LogCacheLevel$1.WARN].concat(r)),e.disabled||(t=console).warn.apply(t,["[".concat(nowTime$3(),"]"),this._prefix].concat(r))}},{key:"error",value:function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];this.logCache.apply(this,[LogCacheLevel$1.ERROR].concat(r)),e.disabled||(t=console).error.apply(t,["[".concat(nowTime$3(),"]"),this._prefix].concat(r))}},{key:"logCache",value:function(e){if(!(e<this.logCacheLevel)){var t="";try{for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];var a=r.map((function(e){return logable$1(e)}));t="[".concat(nowTime$3(),"]")+this._prefix+JSON.stringify(a)}catch(e){return}if(e>=this.logCacheLevel&&(this.logSize+=t.length,this.logTextArray.push(t)),this.logSize>this.logMaxSize){var o=this.logTextArray.shift();this.logSize-=o.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 t;e.disabled||(console.group(this._prefix),(t=console).table.apply(t,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 nowTime$3(){return(new Date).toLocaleString()}function reduceDepth$1(e){if("object"!==_typeof$2(e))return e;var t=Object.prototype.toString.call(e).slice(8,-1);switch(t){case"Array":case"Uint8Array":case"ArrayBuffer":return t+"["+e.length+"]";case"Object":return"{}";default:return t}}function logable$1(e,t,n){n||(n=1),t||(t=2);var r={};if(!e||"object"!==_typeof$2(e))return e;var i=Object.prototype.toString.call(e).slice(8,-1);if(!SIMPLE_TYPE$1.includes(i))return i;if(!(n>t)){for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(n===t?r[a]=reduceDepth$1(e[a]):"object"===_typeof$2(e[a])?r[a]=logable$1(e[a],t,n+1):r[a]=e[a]);return r}}_defineProperty$4(Logger$2,"disabled",!0);var DEFAULT_CONFIG={onlyInit:!1,useWaterLevel:!1,maxBufferLength:10,minBufferLength:5,tickInSeconds:.2,getLicenseUrl:"",xhrSetup:{},retryCount:1,retryDelay:1e3,timeout:3e3,processMaxGapTime:1/0,preloadCacheType:1,needPreloadRangeList:!1,isOpenPreload:!0,needPreloadCheck:!1,preloadTime:0,preloadMaxCacheCount:0,needAutoBitrate:!0,keyValue:null,drm:null,switchBitRateWay:!1,enableWorker:!1,bufferThreshold:10,removeBufferLen:60,removeBufferAtSeek:!1,resumePlayWaterLevel:2,waitJampBufferMaxCnt:3,waitingInBufferTimeOut:5e3,waitingTimeOut:1e4,notDegradeErrorList:["timeout",403,404],h265Degrade:!1,forceVideoPlay:!1,segmentMinDuration:3,supportHevc:void 0,H264Config:null,reqOptions:{},rangeMaxDuration:15,getRequestOptionsCallback:null,closeDowngrade:!1,loaderType:"fetch",reUseMSE:!1,urlExpireDisableErrorEvent:!1,logCacheConfig:{logCacheLevel:LogCacheLevel$1.LOG,logMaxSize:204800},noPreloadAddBufferLen:0,enableFPSStuckHandle:!1,loadRangeType:LOAD_RANGE_TYPE.GOP,timerInWorker:!1,waitingRetrySeekTimes:null,waitingRetryDuration:null,disableInactiveWaitingCheck:!1,alwaysStreamingLoad:!0,enableCusExpiryCheck:!1,enableCheckTrackGap:!1,trackGap:1,reqParams:{},isAddRange:!1,disableRepeatRange:!1,audioGroupingStrategy:2,reuseSecretKey:!1,bindSrcTiming:BIND_SRC_TIMING.META_READY},NUM_1000=1e3,Timer=function(){return _createClass$a((function e(t){var n=this;_classCallCheck$a(this,e),this.alive=!0,this.timeoutId=null,this.onTick=function(e){var t,r;(null===(t=n.cancelPending)||void 0===t||t.call(n),n.alive)&&(null===(r=n.onTick_)||void 0===r||r.call(n),null==e||e())},this.onTick_=t}),[{key:"tickAfter",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return this.cancelPending?this.cancelPending():this.cancelPending=function(){t.timeoutId&&(clearTimeout(t.timeoutId),t.timeoutId=null)},this.alive=!0,this.timeoutId=setTimeout(this.onTick,e*NUM_1000,n),this}},{key:"tickEvery",value:function(e){var t=this;this.tickAfter(e,(function(){t.tickEvery(e)}))}},{key:"stop",value:function(){this.alive=!1,this.cancelPending&&(this.cancelPending(),this.cancelPending=void 0)}}])}(),timeScale=1e3,ControlTimer=function(e){function t(e){var n;return _classCallCheck$a(this,t),(n=_callSuper$3(this,t)).onVisibleChange=function(){var e=n.masterTimer||n.workerTimer;n.stop(),e&&n.start()},n.options=e,document.addEventListener("visibilitychange",n.onVisibleChange),n}return _inherits$8(t,eventemitter3Exports.EventEmitter),_createClass$a(t,[{key:"start",value:function(){var e=this,t=this.options,n=t.timerInWorker,r=t.frequency,i=function(){try{(e.masterTimer||e.workerTimer)&&e.emit(TIMER_UPDATE_EVENT)}catch(e){}};this.stop(),n&&"undefined"!=typeof Worker&&document.hidden?this.workerTimer=setIntervalWarp(i,r*timeScale,!0):(this.masterTimer=new Timer(i),this.masterTimer.tickEvery(r))}},{key:"stop",value:function(){this.workerTimer&&(clearIntervalWarp(this.workerTimer),this.workerTimer=void 0),this.masterTimer&&(this.masterTimer.stop(),this.masterTimer=void 0)}},{key:"destroy",value:function(){this.removeAllListeners(),document.removeEventListener("visibilitychange",this.onVisibleChange),this.stop()}}])}();const version="3.0.31-alpha.2";var _ERR_CODE,ERR={MANIFEST:"manifest",NETWORK:"network",NETWORK_TIMEOUT:"network_timeout",NETWORK_FORBIDDEN:"network_forbidden",NETWORK_NOTFOUND:"network_notfound",NETWROK_RANGE_NOT_SATISFIABLE:"network_range_not_satisfiable",DEMUX:"demux",REMUX:"remux",MEDIA:"media",DRM:"drm",OTHER:"other",RUNTIME:"runtime",SUB_TYPES:{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"}},ERR_CODE=(_defineProperty$4(_ERR_CODE={},ERR.MANIFEST,{HLS:1100,DASH:1200}),_defineProperty$4(_ERR_CODE,ERR.NETWORK,2100),_defineProperty$4(_ERR_CODE,ERR.NETWORK_TIMEOUT,2101),_defineProperty$4(_ERR_CODE,ERR.NETWORK_FORBIDDEN,2103),_defineProperty$4(_ERR_CODE,ERR.NETWORK_NOTFOUND,2104),_defineProperty$4(_ERR_CODE,ERR.NETWROK_RANGE_NOT_SATISFIABLE,2116),_defineProperty$4(_ERR_CODE,ERR.DEMUX,{FLV:3100,HLS:3200,MP4:3300,FMP4:3400,SIDX:3410}),_defineProperty$4(_ERR_CODE,ERR.REMUX,{FMP4:4100,MP4:4200}),_defineProperty$4(_ERR_CODE,ERR.MEDIA,{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}),_defineProperty$4(_ERR_CODE,ERR.DRM,{LICENSE:7100,CUSTOM_LICENSE:7200}),_defineProperty$4(_ERR_CODE,ERR.OTHER,8e3),_defineProperty$4(_ERR_CODE,ERR.RUNTIME,{NO_CANPLAY_ERROR:9001,BUFFERBREAK_ERROR:9002,WAITING_TIMEOUT_ERROR:9003}),_ERR_CODE),StreamingError=function(e){_inherits$3(n,_wrapNativeSuper$1(Error));var t=_createSuper$2(n);function n(e,r,i,a,o){var l;return _classCallCheck$4(this,n),(l=t.call(this,o||(null==i?void 0:i.message))).errorType=e===ERR.NETWORK_TIMEOUT?ERR.NETWORK:e,l.originError=i,l.ext=a,l.errorCode=ERR_CODE[e][r]||ERR_CODE[e],l.errorMessage=l.message,l.errorCode||(l.errorType=ERR.OTHER,l.errorCode=ERR_CODE[l.errorType]),l}return _createClass$4(n,null,[{key:"create",value:function(e,t,r,i,a){return e instanceof n?e:(e instanceof Error&&(r=e,e=""),e||(e=ERR.OTHER),new n(e,t,r,i,a))}},{key:"network",value:function(e){var t;return new n(null!=e&&e.isTimeout?ERR.NETWORK_TIMEOUT:ERR.NETWORK,null,e instanceof Error?e:null,{url:null==e?void 0:e.url,response:null==e?void 0:e.response,httpCode:null==e||null===(t=e.response)||void 0===t?void 0:t.status})}}]),n}(),ERROR_CODES={416:ERR_CODE[ERR.NETWROK_RANGE_NOT_SATISFIABLE],403:ERR_CODE[ERR.NETWORK_FORBIDDEN],404:ERR_CODE[ERR.NETWORK_NOTFOUND],timeout:ERR_CODE[ERR.NETWORK_TIMEOUT],networkError:ERR_CODE[ERR.NETWORK],lenNotMatch:2130,mse:ERR_CODE[ERR.MEDIA][ERR.SUB_TYPES.MSE_OTHER],mseOpen:ERR_CODE[ERR.MEDIA][ERR.SUB_TYPES.MSE_ADD_SB],mseAppend:ERR_CODE[ERR.MEDIA][ERR.SUB_TYPES.MSE_APPEND_BUFFER],mse_hijack:ERR_CODE[ERR.MEDIA][ERR.SUB_TYPES.MSE_HIJACK],eme_hijack:ERR_CODE[ERR.MEDIA][ERR.SUB_TYPES.EME_HIJACK],metaError:ERR_CODE[ERR.DEMUX][ERR.SUB_TYPES.MP4],muxError:ERR_CODE[ERR.REMUX][ERR.SUB_TYPES.FMP4],other:ERR_CODE[ERR.OTHER],waitTimeout:ERR_CODE[ERR.RUNTIME][ERR.SUB_TYPES.BUFFERBREAK_ERROR],waitTimeoutWithHidden:ERR_CODE[ERR.RUNTIME][ERR.SUB_TYPES.WAITING_TIMEOUT_ERROR],drm:ERR_CODE[ERR.DRM][ERR.SUB_TYPES.LICENSE],custom_drm:ERR_CODE[ERR.DRM][ERR.SUB_TYPES.CUSTOM_LICENSE]},ERROR_TYPES=ERR;function getErrorCodeByHttpCode(e){return ERROR_CODES[e]||e}var NetWorkError=_createClass$a((function e(t,n,r){_classCallCheck$a(this,e);var i=0,a=0;null!=r&&r.range&&r.range.length>1&&(i=r.range[0],a=r.range[1]);var o=getErrorCodeByHttpCode(n);return{headers:(null==r?void 0:r.headers)||null,errorCode:o,errorType:t,errorMessage:(null==r?void 0:r.httpText)||(null==r?void 0:r.message),url:null==r?void 0:r.url,httpCode:n,version:version,rangeStart:i,rangeEnd:a,ext:r,mediaError:{code:o,message:(null==r?void 0:r.httpText)||(null==r?void 0:r.message)}}})),ParserError=_createClass$a((function e(t,n,r){return _classCallCheck$a(this,e),{version:version,errorCode:n,errorType:t,errorMessage:r.msg,ext:r,mediaError:{code:n,message:r.msg}}})),global$2=global$I,globalIsFinite=global$2.isFinite,numberIsFinite$1=Number.isFinite||function(e){return"number"==typeof e&&globalIsFinite(e)},$$5=_export,numberIsFinite=numberIsFinite$1;$$5({target:"Number",stat:!0},{isFinite:numberIsFinite});var metaSizeConfig=[{range:[0,90],size:614400},{range:[90,120],size:819200},{range:[120,Number.MAX_VALUE],size:1024e3}];function getMetaSize(e,t,n){var r=n>51200?Math.min(n,t):t;if(!e)return r||metaSizeConfig[0].size;var i=metaSizeConfig.find((function(t){return e>=t.range[0]&&e<t.range[1]}));return i&&(r=Math.min(i.size,n>0?n:t)),r||metaSizeConfig[0].size}var userGestureEventMiddleware={playBtnClick:function(e,t,n,r){e.paused||e.waitingMoreBuffer&&(e.waitingMoreBuffer=!1),r.call(e,t,n)}},videoEventMiddleware={waiting:function(e,t){var n=e.player,r=e.eventName;n.waitingMoreBuffer=!0,t(r,e)},play:function(e,t){var n=e.player,r=e.eventName;n.waitingMoreBuffer||t(r,e)},pause:function(e,t){var n=e.player,r=e.eventName;n.waitingMoreBuffer||t(r,e)},seeking:function(e,t){var n=e.player,r=e.eventName;n.isSeekingStart=!0,t(r,e)},progress:function(e,t){log(">>>>progress");var n=e.player,r=e.eventName;if(n.waitingMoreBuffer){var i=n.getBufferedRange(n.buffered2);0===i[0]&&0===i[1]||(void 0===n.inWaitingStart||n.isSeekingStart?(log("progress startplay or seek ended"),i[1]-n.currentTime>=(n.config.canplayWaterLevel||1)||i[1]>n.duration-1?(log("progress out bufferWaterLevel"),n.play()):(log("progress not out bufferWaterLevel"),n.emit("waiting"))):(log("progress video waiting end"),i[1]-n.currentTime>=(n.config.bufferWaterLevel||5)||i[1]>n.duration-1?(log("progress out bufferWaterLevel"),n.play()):(log("progress not out bufferWaterLevel"),n.emit("waiting"))))}t(r,e)},playing:function(e,t){var n=e.player,r=e.eventName;log("playing");var i=n.getBufferedRange(n.buffered2);if(0===i[0]&&0===i[1])return log("playing currentTime no buffer, not out bufferWaterLevel"),n.waitingMoreBuffer=!0,n.pause(),void t.call("waiting",e);void 0===n.inWaitingStart||n.isSeekingStart?(log("playing startplay or seek ended"),i[1]-n.currentTime>=(n.config.canplayWaterLevel||1)||i[1]>n.duration-1?(log("playing out bufferWaterLevel"),n.waitingMoreBuffer=!1,n.isSeekingStart=!1,t(r,e)):(log("playing not out bufferWaterLevel"),n.waitingMoreBuffer=!0,n.pause(),t.call("waiting",e))):(log("playing video waiting ended"),i[1]-n.currentTime>=(n.config.bufferWaterLevel||5)||i[1]>n.duration-1?(log("playing out bufferWaterLevel"),n.waitingMoreBuffer=!1,t(r,e)):(log("playing not out bufferWaterLevel"),n.waitingMoreBuffer=!0,n.pause(),t.call("waiting",e)))}};function isHTTPS(e){return/^http(s)?:\/\/.+/.test(e)}function calculateSpeed$2(e,t){return Math.round(8*e*1e3/t/1024)}function retryCheckFuncNew(e){var t,n;return!((null==e||null===(t=e.message)||void 0===t?void 0:t.indexOf("Failed to fetch"))>=0||null!=e&&e.isTimeout||null!=e&&e.response&&(null===(n=e.response)||void 0===n?void 0:n.status)>=400&&e.response.status<=599)}function retryCheckFunc(e){var t,n;return!((null==e||null===(t=e.message)||void 0===t?void 0:t.indexOf("Failed to fetch"))>=0||null!=e&&e.response&&(null===(n=e.response)||void 0===n?void 0:n.status)>=400&&e.response.status<=599)}function getPreloadMeta(e){return e.preLoadMeta||{}}function matchPreload(e,t){for(var n,r=e.vtype,i=e.codecType,a=e.definition,o=e.bitrate,l=null,d=0;n=t[d];d++){var c=n.vtype===r;if(c&&(c=n.codecType===i),c&&(c=n.definition===a||n.definition===Number(a)),c&&(c=!n.bitrate||!o||Number(n.bitrate)===Number(o)),c){l=n;break}}return l}var uncurryThis$4=functionUncurryThis,toObject=toObject$g,floor=Math.floor,charAt=uncurryThis$4("".charAt),replace=uncurryThis$4("".replace),stringSlice$3=uncurryThis$4("".slice),SUBSTITUTION_SYMBOLS=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,SUBSTITUTION_SYMBOLS_NO_NAMED=/\$([$&'`]|\d{1,2})/g,getSubstitution$1=function(e,t,n,r,i,a){var o=n+e.length,l=r.length,d=SUBSTITUTION_SYMBOLS_NO_NAMED;return void 0!==i&&(i=toObject(i),d=SUBSTITUTION_SYMBOLS),replace(a,d,(function(a,d){var c;switch(charAt(d,0)){case"$":return"$";case"&":return e;case"`":return stringSlice$3(t,0,n);case"'":return stringSlice$3(t,o);case"<":c=i[stringSlice$3(d,1,-1)];break;default:var s=+d;if(0===s)return a;if(s>l){var U=floor(s/10);return 0===U?a:U<=l?void 0===r[U-1]?charAt(d,1):r[U-1]+charAt(d,1):a}c=r[s-1]}return void 0===c?"":c}))},apply=functionApply,call$1=functionCall,uncurryThis$3=functionUncurryThis,fixRegExpWellKnownSymbolLogic=fixRegexpWellKnownSymbolLogic,fails$1=fails$Q,anObject=anObject$z,isCallable=isCallable$t,isNullOrUndefined=isNullOrUndefined$9,toIntegerOrInfinity=toIntegerOrInfinity$b,toLength$2=toLength$a,toString$4=toString$j,requireObjectCoercible$2=requireObjectCoercible$b,advanceStringIndex=advanceStringIndex$3,getMethod=getMethod$6,getSubstitution=getSubstitution$1,regExpExec=regexpExecAbstract,wellKnownSymbol=wellKnownSymbol$v,REPLACE=wellKnownSymbol("replace"),max=Math.max,min$1=Math.min,concat$1=uncurryThis$3([].concat),push$1=uncurryThis$3([].push),stringIndexOf=uncurryThis$3("".indexOf),stringSlice$2=uncurryThis$3("".slice),maybeToString=function(e){return void 0===e?e:String(e)},REPLACE_KEEPS_$0="$0"==="a".replace(/./,"$0"),REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE=!!/./[REPLACE]&&""===/./[REPLACE]("a","$0"),REPLACE_SUPPORTS_NAMED_GROUPS=!fails$1((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")}));fixRegExpWellKnownSymbolLogic("replace",(function(e,t,n){var r=REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE?"$":"$0";return[function(e,n){var r=requireObjectCoercible$2(this),i=isNullOrUndefined(e)?void 0:getMethod(e,REPLACE);return i?call$1(i,e,r,n):call$1(t,toString$4(r),e,n)},function(e,i){var a=anObject(this),o=toString$4(e);if("string"==typeof i&&-1===stringIndexOf(i,r)&&-1===stringIndexOf(i,"$<")){var l=n(t,a,o,i);if(l.done)return l.value}var d=isCallable(i);d||(i=toString$4(i));var c=a.global;if(c){var s=a.unicode;a.lastIndex=0}for(var U=[];;){var F=regExpExec(a,o);if(null===F)break;if(push$1(U,F),!c)break;""===toString$4(F[0])&&(a.lastIndex=advanceStringIndex(o,toLength$2(a.lastIndex),s))}for(var u="",Q=0,R=0;R<U.length;R++){for(var h=toString$4((F=U[R])[0]),p=max(min$1(toIntegerOrInfinity(F.index),o.length),0),B=[],S=1;S<F.length;S++)push$1(B,maybeToString(F[S]));var f=F.groups;if(d){var m=concat$1([h],B,p,o);void 0!==f&&push$1(m,f);var V=toString$4(apply(i,void 0,m))}else V=getSubstitution(h,o,p,B,f,i);p>=Q&&(u+=stringSlice$2(o,Q,p)+V,Q=p+h.length)}return u+stringSlice$2(o,Q)}]}),!REPLACE_SUPPORTS_NAMED_GROUPS||!REPLACE_KEEPS_$0||REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);var $$4=_export,uncurryThis$2=functionUncurryThisClause,getOwnPropertyDescriptor5=objectGetOwnPropertyDescriptor.f,toLength$1=toLength$a,toString$3=toString$j,notARegExp=notARegexp,requireObjectCoercible$1=requireObjectCoercible$b,correctIsRegExpLogic=correctIsRegexpLogic,nativeStartsWith=uncurryThis$2("".startsWith),stringSlice$1=uncurryThis$2("".slice),min=Math.min,CORRECT_IS_REGEXP_LOGIC=correctIsRegExpLogic("startsWith"),MDN_POLYFILL_BUG=!CORRECT_IS_REGEXP_LOGIC&&!!function(){var e=getOwnPropertyDescriptor5(String.prototype,"startsWith");return e&&!e.writable}();function extUrl(e,t){try{if(!t||e.startsWith("blob"))return e;var n=e.indexOf("?"),r=n<0,i=n===e.length-1,a="";return Object.keys(t).forEach((function(e){var n=t[e];null!=n&&""!==n&&(a+="".concat(a?"&":"").concat(e,"=").concat(t[e]))})),e+=(r?"?":i?"":"&")+a}catch(t){return e}}$$4({target:"String",proto:!0,forced:!MDN_POLYFILL_BUG&&!CORRECT_IS_REGEXP_LOGIC},{startsWith:function(e){var t=toString$3(requireObjectCoercible$1(this));notARegExp(e);var n=toLength$1(min(arguments.length>1?arguments[1]:void 0,t.length)),r=toString$3(e);return nativeStartsWith?nativeStartsWith(t,r,n):stringSlice$1(t,n,n+r.length)===r}});const util={findBox:findBox,padStart:padStart$1,toHex:toHex$1,fromHex:fromHex,sum:sum,StringToArrayBuffer:StringToArrayBuffer,ArrayBufferToString:ArrayBufferToString,fromCharCode:fromCharCode,Base64ToHex:Base64ToHex,toBase64:toBase64,toUTF8:toUTF8,strToBuf:strToBuf,str2hex:str2hex,formatIV:formatIV$1,parse:parse$1,generateUniqueKey:generateUniqueKey,validateFragment:validateFragment,typeOf:typeOf,nowTime:nowTime$2,extUrl:extUrl,deepMerge:deepMerge,getFileSize:getFileSize,hashVal:hashVal,ArrayCopy:ArrayCopy,concatData:concatData,getFragRange:getFragRange,getHostFromUrl:getHostFromUrl,newUint8Array:newUint8Array$1,checkUrlIsExpired:checkUrlIsExpired,getBufferSplits:getBufferSplits,getFirstFrameStartRange:getFirstFrameStartRange,getEndFramePos:getEndFramePos};function findBox(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(e.type!==t){if(e&&e.subBox){var r=e.subBox.filter((function(e){return e.type===t}));r.length?r.forEach((function(e){return n.push(e)})):e.subBox.forEach((function(e){return findBox(e,t,n)}))}}else n.push(e);return(n=_toConsumableArray$5(n)).length>1?n:n[0]}function padStart$1(e,t,n){for(var r=String(n),i=t>>0,a=Math.ceil(i/r.length),o=[],l=String(e);a--;)o.push(r);return o.join("").substring(0,i-l.length)+l}function toHex$1(){for(var e=[],t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return n.forEach((function(t){var n=Number(t).toString(16);e.push(padStart$1(n,2,0))})),e}function sum(){for(var e=0,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return n.forEach((function(t){e+=t})),e}function StringToArrayBuffer(e){for(var t=new ArrayBuffer(e.length),n=new Uint8Array(t),r=0;r<e.length;r++)n[r]=e.charCodeAt(r);return t}function fromHex(e){for(var t=new Uint8Array(e.length/2),n=0;n<e.length;n+=2)t[n/2]=window.parseInt(e.substr(n,2),16);return t}function fromCharCode(e){for(var t="",n=0;n<e.length;n+=16e3){var r=e.subarray(n,n+16e3);t+=String.fromCharCode.apply(null,r)}return t}function ArrayBufferToString(e){for(var t="",n=new Uint8Array(e),r=0;r<n.length;r++)t+=String.fromCharCode(n[r]);return t}function Base64ToHex(e){for(var t=window.atob(e.replace(/-/g,"+").replace(/_/g,"/")),n="",r=0;r<t.length;r++)n+="0".concat(t.charCodeAt(r).toString(16)).substr(-2);return n}function toBase64(e,t){var n=fromCharCode(e);t=void 0===t||t;var r=window.btoa(n).replace(/\+/g,"-").replace(/\//g,"_");return t?r:r.replace(/=*$/,"")}function toUTF8(e){for(var t=encodeURIComponent(e),n=unescape(t),r=new Uint8Array(n.length),i=0;i<n.length;++i)r[i]=n.charCodeAt(i);return r.buffer}function strToBuf(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e[n]+e[n+1],16));return new Uint8Array(t)}function formatIV$1(e){if(e.length>=16)return e;for(var t=new Uint8Array(16),n=0;n<t.length;n++)t[n]=n<e.length?e[n]:0;return t}function str2hex(e){if(""===e)return"";for(var t=[],n=0;n<e.length;n++)t.push(e.charCodeAt(n));return t}function parse$1(e){if(!Array.isArray(e)){for(var t=[],n="",r=0;r<e.length;r++)r%2&&(n=e[r-1]+e[r],t.push(parseInt(n,16)),n="");return t}return e.map((function(e){return parseInt(e,16)}))}function generateUniqueKey(e){var t=e.vid,n=e.mediaType,r=e.definition;return n=n||"video",r=r||-1,t?"".concat(t,"#").concat(n,"#").concat(r,"#mp4"):null}function validateFragment(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(e instanceof ArrayBuffer){try{if(2===t.length){var n=t[1]-t[0]+1;if(!(e.byteLength===n))return}}catch(e){return console.error(e),!1}return!0}return!1}function typeOf(e){return Object.prototype.toString.call(e).match(/([^\s.*]+)(?=]$)/g)[0]}function getBufferSplits(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5e5;if(t-e-n<n/2||!t)return[[e,t]];for(var r=[];e<t;){var i=e+n;(i>t||t-i<n/2)&&(i=t),r.push([e,i]),e=i+1}return r}function nowTime$2(){try{return parseInt("".concat(performance.now()),10)}catch(e){return(new Date).getTime()}}function deepMerge(e,t){return Object.keys(t).forEach((function(n){var r,i=typeOf(t[n]),a=typeOf(e[n]);"Array"===i?("Array"!==a&&(e[n]=[]),(r=e[n]).push.apply(r,_toConsumableArray$5(t[n]))):"Object"===i?("Object"!==a&&(e[n]={}),deepMerge(e[n],t[n])):e[n]=t[n]})),e}function hashVal(e){var t,n=0;if(0===e.length)return n;for(t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return n}function ArrayCopy(e){var t=[];if(!e||!e.length||0===e.length)return t;for(var n=0;n<e.length;n++){var r=e[n],i={};for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(i[a]=r[a]);t.push(i)}return t}function getFileSize(e,t){try{return e&&t?parseInt("".concat(t*e/8),10):0}catch(e){return 0}}function concatData(e,t){var n=[],r=0;e&&n.push(e),t&&n.push(t),n.every((function(e){return e&&(r+=e.byteLength),!0}));var i=new Uint8Array(r),a=0;return n.every((function(e){return e&&(i.set(e,a),a+=e.byteLength),!0})),i}function getEndFramePos(e,t){var n,r,i=0,a=0;e&&(i=(null===(n=e[e.length-1])||void 0===n||null===(n=n.range)||void 0===n?void 0:n[1])||0);t&&(a=(null===(r=t[t.length-1])||void 0===r||null===(r=r.range)||void 0===r?void 0:r[1])||0);return Math.max(i,a)}function getFirstFrameStartRange(e,t){var n,r,i=Number.MAX_VALUE,a=Number.MAX_VALUE;e&&(i=(null===(n=e[0])||void 0===n||null===(n=n.range)||void 0===n?void 0:n[0])||Number.MAX_VALUE);t&&(a=(null===(r=t[0])||void 0===r||null===(r=r.range)||void 0===r?void 0:r[0])||Number.MAX_VALUE);return Math.min(i,a)}function getFragRange(e,t,n){var r,i,a,o,l=null,d=null;return l=e<t.length-1?t[e]:t[t.length-1],d=e<n.length-1?n[e]:n[n.length-1],[Math.min((null===(r=l)||void 0===r?void 0:r.range[0])||1/0,(null===(i=d)||void 0===i?void 0:i.range[0])||1/0),Math.max(null===(a=l)||void 0===a?void 0:a.range[1],null===(o=d)||void 0===o?void 0:o.range[1])]}function getHostFromUrl(e){if("String"!==typeOf(e)||!e)return"";var t=e.split("/"),n="";return t.length>3&&t[2]&&(n=t[2]),n}function checkUrlIsExpired(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!e||"String"!==typeOf(e))return 0;var n=0;try{var r=new RegExp("(\\?|&)x-tos-expires=([^&]*)(&|$)"),i=e.match(r);if(null!==i)n=parseInt(i[2],10);else{var a=e.split("/");a.length>5&&8===a[4].length&&(n=parseInt(a[4],16))}return n>0?n<parseInt("".concat(t&&"number"==typeof t?(new Date).getTime()/1e3+t:(new Date).getTime()/1e3),10)?1:2:0}catch(e){return 0}}function newUint8Array$1(e){for(var t,n=0;n<NEW_ARRAY_MAX_CNT$2;)try{if((t=new Uint8Array(e))&&t.byteLength>0)break;n++}catch(e){n<NEW_ARRAY_MAX_CNT$2?n++:console.error("repeat data cache new array failed final",NEW_ARRAY_MAX_CNT$2)}return t}var monitorHeaders={"x-cache":"x_cache","x-response-sinfo":"server_ip","x-response-cinfo":"x-response-cinfo","content-range":"content-range","content-length":"content-length","content-type":"content-type"};function transformHeaders(e){var t={};return Object.keys(monitorHeaders).forEach((function(n){var r,i=null==e||null===(r=e.get)||void 0===r?void 0:r.call(e,n);if(i){var a=monitorHeaders[n];t[a]=i}})),t}function getAllHeaders(e){var t={};return e?"function"==typeof e.forEach?(e.forEach((function(e,n){t[n]=e})),t):(Object.keys(e).forEach((function(n){var r=e[n];r&&(t[n]=r)})),t):t}function getFileSizeFromHeaders(e){var t,n=monitorHeaders["content-range"],r=null==e||null===(t=e.get)||void 0===t?void 0:t.call(e,n);if(r){var i=r.split("/");if(Array.isArray(i)&&2===i.length)return i[1]}return null}function getContentLengthFromHeader(e){var t,n=monitorHeaders["content-length"];return(null==e||null===(t=e.get)||void 0===t?void 0:t.call(e,n))||null}var $$3=_export,call=functionCall;$$3({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return call(URL.prototype.toString,this)}});var encodedJs="IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEEoQSxnKXsobnVsbD09Z3x8Zz5BLmxlbmd0aCkmJihnPUEubGVuZ3RoKTtmb3IodmFyIEk9MCxCPUFycmF5KGcpO0k8ZztJKyspQltJXT1BW0ldO3JldHVybiBCfWZ1bmN0aW9uIGcoQSxnLEksQixRLEUsQyl7dHJ5e3ZhciB0PUFbRV0oQyksaT10LnZhbHVlfWNhdGNoKGUpe3JldHVybiB2b2lkIEkoZSl9dC5kb25lP2coaSk6UHJvbWlzZS5yZXNvbHZlKGkpLnRoZW4oQixRKX1mdW5jdGlvbiBJKEEsZyxJKXtyZXR1cm4gZz1pKGcpLGZ1bmN0aW9uKEEsZyl7aWYoZyYmKCJvYmplY3QiPT10eXBlb2YgZ3x8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24oQSl7aWYodm9pZCAwPT09QSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBBfShBKX0oQSxvKCk/UmVmbGVjdC5jb25zdHJ1Y3QoZyxJfHxbXSxpKEEpLmNvbnN0cnVjdG9yKTpnLmFwcGx5KEEsSSkpfWZ1bmN0aW9uIEIoQSxnKXtpZighKEEgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBRKEEsZyl7Zm9yKHZhciBJPTA7STxnLmxlbmd0aDtJKyspe3ZhciBCPWdbSV07Qi5lbnVtZXJhYmxlPUIuZW51bWVyYWJsZXx8ITEsQi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIEImJihCLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxmKEIua2V5KSxCKX19ZnVuY3Rpb24gRShBLGcsSSl7cmV0dXJuIGcmJlEoQS5wcm90b3R5cGUsZyksSSYmUShBLEkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLEF9ZnVuY3Rpb24gQyhBLGcsSSl7cmV0dXJuKGc9ZihnKSlpbiBBP09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLGcse3ZhbHVlOkksZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpBW2ddPUksQX1mdW5jdGlvbiB0KCl7cmV0dXJuIHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCPWZ1bmN0aW9uKEEsZyl7Zm9yKDshe30uaGFzT3duUHJvcGVydHkuY2FsbChBLGcpJiZudWxsIT09KEE9aShBKSk7KTtyZXR1cm4gQX0oQSxnKTtpZihCKXt2YXIgUT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEIsZyk7cmV0dXJuIFEuZ2V0P1EuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP0E6SSk6US52YWx1ZX19LHQuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIGkoQSl7cmV0dXJuKGk9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oQSl7cmV0dXJuIEEuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoQSl9KShBKX1mdW5jdGlvbiBlKEEsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOkEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJnMoQSxnKX1mdW5jdGlvbiBvKCl7dHJ5e3ZhciBBPSFCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpfWNhdGNoKGcpe31yZXR1cm4obz1mdW5jdGlvbigpe3JldHVybiEhQX0pKCl9ZnVuY3Rpb24gcihBLGcpe3ZhciBJPU9iamVjdC5rZXlzKEEpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBCPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoQSk7ZyYmKEI9Qi5maWx0ZXIoKGZ1bmN0aW9uKGcpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEEsZykuZW51bWVyYWJsZX0pKSksSS5wdXNoLmFwcGx5KEksQil9cmV0dXJuIEl9ZnVuY3Rpb24gbihBKXtmb3IodmFyIGc9MTtnPGFyZ3VtZW50cy5sZW5ndGg7ZysrKXt2YXIgST1udWxsIT1hcmd1bWVudHNbZ10/YXJndW1lbnRzW2ddOnt9O2clMj9yKE9iamVjdChJKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24oZyl7QyhBLGcsSVtnXSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhJKSk6cihPYmplY3QoSSkpLmZvckVhY2goKGZ1bmN0aW9uKGcpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLGcsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLGcpKX0pKX1yZXR1cm4gQX1mdW5jdGlvbiBhKCl7YT1mdW5jdGlvbigpe3JldHVybiBnfTt2YXIgQSxnPXt9LEk9T2JqZWN0LnByb3RvdHlwZSxCPUkuaGFzT3duUHJvcGVydHksUT1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKEEsZyxJKXtBW2ddPUkudmFsdWV9LEU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30sQz1FLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsdD1FLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLGk9RS50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGUoQSxnLEkpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxnLHt2YWx1ZTpJLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksQVtnXX10cnl7ZSh7fSwiIil9Y2F0Y2godil7ZT1mdW5jdGlvbihBLGcsSSl7cmV0dXJuIEFbZ109SX19ZnVuY3Rpb24gbyhBLGcsSSxCKXt2YXIgRT1nJiZnLnByb3RvdHlwZSBpbnN0YW5jZW9mIHU/Zzp1LEM9T2JqZWN0LmNyZWF0ZShFLnByb3RvdHlwZSksdD1uZXcgTihCfHxbXSk7cmV0dXJuIFEoQywiX2ludm9rZSIse3ZhbHVlOlUoQSxJLHQpfSksQ31mdW5jdGlvbiByKEEsZyxJKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOkEuY2FsbChnLEkpfX1jYXRjaChCKXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzpCfX19Zy53cmFwPW87dmFyIG49InN1c3BlbmRlZFN0YXJ0IixzPSJzdXNwZW5kZWRZaWVsZCIsYz0iZXhlY3V0aW5nIixoPSJjb21wbGV0ZWQiLGY9e307ZnVuY3Rpb24gdSgpe31mdW5jdGlvbiB5KCl7fWZ1bmN0aW9uIEQoKXt9dmFyIGw9e307ZShsLEMsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIHc9T2JqZWN0LmdldFByb3RvdHlwZU9mLGQ9dyYmdyh3KE0oW10pKSk7ZCYmZCE9PUkmJkIuY2FsbChkLEMpJiYobD1kKTt2YXIgRj1ELnByb3RvdHlwZT11LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGwpO2Z1bmN0aW9uIEcoQSl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihnKXtlKEEsZywoZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuX2ludm9rZShnLEEpfSkpfSkpfWZ1bmN0aW9uIFIoQSxnKXtmdW5jdGlvbiBJKFEsRSxDLHQpe3ZhciBpPXIoQVtRXSxBLEUpO2lmKCJ0aHJvdyIhPT1pLnR5cGUpe3ZhciBlPWkuYXJnLG89ZS52YWx1ZTtyZXR1cm4gbyYmIm9iamVjdCI9PXR5cGVvZiBvJiZCLmNhbGwobywiX19hd2FpdCIpP2cucmVzb2x2ZShvLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKEEpe0koIm5leHQiLEEsQyx0KX0pLChmdW5jdGlvbihBKXtJKCJ0aHJvdyIsQSxDLHQpfSkpOmcucmVzb2x2ZShvKS50aGVuKChmdW5jdGlvbihBKXtlLnZhbHVlPUEsQyhlKX0pLChmdW5jdGlvbihBKXtyZXR1cm4gSSgidGhyb3ciLEEsQyx0KX0pKX10KGkuYXJnKX12YXIgRTtRKHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbihBLEIpe2Z1bmN0aW9uIFEoKXtyZXR1cm4gbmV3IGcoKGZ1bmN0aW9uKGcsUSl7SShBLEIsZyxRKX0pKX1yZXR1cm4gRT1FP0UudGhlbihRLFEpOlEoKX19KX1mdW5jdGlvbiBVKGcsSSxCKXt2YXIgUT1uO3JldHVybiBmdW5jdGlvbihFLEMpe2lmKFE9PT1jKXRocm93IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYoUT09PWgpe2lmKCJ0aHJvdyI9PT1FKXRocm93IEM7cmV0dXJue3ZhbHVlOkEsZG9uZTohMH19Zm9yKEIubWV0aG9kPUUsQi5hcmc9Qzs7KXt2YXIgdD1CLmRlbGVnYXRlO2lmKHQpe3ZhciBpPWsodCxCKTtpZihpKXtpZihpPT09Ziljb250aW51ZTtyZXR1cm4gaX19aWYoIm5leHQiPT09Qi5tZXRob2QpQi5zZW50PUIuX3NlbnQ9Qi5hcmc7ZWxzZSBpZigidGhyb3ciPT09Qi5tZXRob2Qpe2lmKFE9PT1uKXRocm93IFE9aCxCLmFyZztCLmRpc3BhdGNoRXhjZXB0aW9uKEIuYXJnKX1lbHNlInJldHVybiI9PT1CLm1ldGhvZCYmQi5hYnJ1cHQoInJldHVybiIsQi5hcmcpO1E9Yzt2YXIgZT1yKGcsSSxCKTtpZigibm9ybWFsIj09PWUudHlwZSl7aWYoUT1CLmRvbmU/aDpzLGUuYXJnPT09Ziljb250aW51ZTtyZXR1cm57dmFsdWU6ZS5hcmcsZG9uZTpCLmRvbmV9fSJ0aHJvdyI9PT1lLnR5cGUmJihRPWgsQi5tZXRob2Q9InRocm93IixCLmFyZz1lLmFyZyl9fX1mdW5jdGlvbiBrKGcsSSl7dmFyIEI9SS5tZXRob2QsUT1nLml0ZXJhdG9yW0JdO2lmKFE9PT1BKXJldHVybiBJLmRlbGVnYXRlPW51bGwsInRocm93Ij09PUImJmcuaXRlcmF0b3IucmV0dXJuJiYoSS5tZXRob2Q9InJldHVybiIsSS5hcmc9QSxrKGcsSSksInRocm93Ij09PUkubWV0aG9kKXx8InJldHVybiIhPT1CJiYoSS5tZXRob2Q9InRocm93IixJLmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK0IrIicgbWV0aG9kIikpLGY7dmFyIEU9cihRLGcuaXRlcmF0b3IsSS5hcmcpO2lmKCJ0aHJvdyI9PT1FLnR5cGUpcmV0dXJuIEkubWV0aG9kPSJ0aHJvdyIsSS5hcmc9RS5hcmcsSS5kZWxlZ2F0ZT1udWxsLGY7dmFyIEM9RS5hcmc7cmV0dXJuIEM/Qy5kb25lPyhJW2cucmVzdWx0TmFtZV09Qy52YWx1ZSxJLm5leHQ9Zy5uZXh0TG9jLCJyZXR1cm4iIT09SS5tZXRob2QmJihJLm1ldGhvZD0ibmV4dCIsSS5hcmc9QSksSS5kZWxlZ2F0ZT1udWxsLGYpOkM6KEkubWV0aG9kPSJ0aHJvdyIsSS5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxJLmRlbGVnYXRlPW51bGwsZil9ZnVuY3Rpb24gUyhBKXt2YXIgZz17dHJ5TG9jOkFbMF19OzEgaW4gQSYmKGcuY2F0Y2hMb2M9QVsxXSksMiBpbiBBJiYoZy5maW5hbGx5TG9jPUFbMl0sZy5hZnRlckxvYz1BWzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChnKX1mdW5jdGlvbiBwKEEpe3ZhciBnPUEuY29tcGxldGlvbnx8e307Zy50eXBlPSJub3JtYWwiLGRlbGV0ZSBnLmFyZyxBLmNvbXBsZXRpb249Z31mdW5jdGlvbiBOKEEpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSxBLmZvckVhY2goUyx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBNKGcpe2lmKGd8fCIiPT09Zyl7dmFyIEk9Z1tDXTtpZihJKXJldHVybiBJLmNhbGwoZyk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGcubmV4dClyZXR1cm4gZztpZighaXNOYU4oZy5sZW5ndGgpKXt2YXIgUT0tMSxFPWZ1bmN0aW9uIEkoKXtmb3IoOysrUTxnLmxlbmd0aDspaWYoQi5jYWxsKGcsUSkpcmV0dXJuIEkudmFsdWU9Z1tRXSxJLmRvbmU9ITEsSTtyZXR1cm4gSS52YWx1ZT1BLEkuZG9uZT0hMCxJfTtyZXR1cm4gRS5uZXh0PUV9fXRocm93IG5ldyBUeXBlRXJyb3IodHlwZW9mIGcrIiBpcyBub3QgaXRlcmFibGUiKX1yZXR1cm4geS5wcm90b3R5cGU9RCxRKEYsImNvbnN0cnVjdG9yIix7dmFsdWU6RCxjb25maWd1cmFibGU6ITB9KSxRKEQsImNvbnN0cnVjdG9yIix7dmFsdWU6eSxjb25maWd1cmFibGU6ITB9KSx5LmRpc3BsYXlOYW1lPWUoRCxpLCJHZW5lcmF0b3JGdW5jdGlvbiIpLGcuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbihBKXt2YXIgZz0iZnVuY3Rpb24iPT10eXBlb2YgQSYmQS5jb25zdHJ1Y3RvcjtyZXR1cm4hIWcmJihnPT09eXx8IkdlbmVyYXRvckZ1bmN0aW9uIj09PShnLmRpc3BsYXlOYW1lfHxnLm5hbWUpKX0sZy5tYXJrPWZ1bmN0aW9uKEEpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKEEsRCk6KEEuX19wcm90b19fPUQsZShBLGksIkdlbmVyYXRvckZ1bmN0aW9uIikpLEEucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRiksQX0sZy5hd3JhcD1mdW5jdGlvbihBKXtyZXR1cm57X19hd2FpdDpBfX0sRyhSLnByb3RvdHlwZSksZShSLnByb3RvdHlwZSx0LChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGcuQXN5bmNJdGVyYXRvcj1SLGcuYXN5bmM9ZnVuY3Rpb24oQSxJLEIsUSxFKXt2b2lkIDA9PT1FJiYoRT1Qcm9taXNlKTt2YXIgQz1uZXcgUihvKEEsSSxCLFEpLEUpO3JldHVybiBnLmlzR2VuZXJhdG9yRnVuY3Rpb24oSSk/QzpDLm5leHQoKS50aGVuKChmdW5jdGlvbihBKXtyZXR1cm4gQS5kb25lP0EudmFsdWU6Qy5uZXh0KCl9KSl9LEcoRiksZShGLGksIkdlbmVyYXRvciIpLGUoRixDLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGUoRiwidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEdlbmVyYXRvcl0ifSkpLGcua2V5cz1mdW5jdGlvbihBKXt2YXIgZz1PYmplY3QoQSksST1bXTtmb3IodmFyIEIgaW4gZylJLnB1c2goQik7cmV0dXJuIEkucmV2ZXJzZSgpLGZ1bmN0aW9uIEEoKXtmb3IoO0kubGVuZ3RoOyl7dmFyIEI9SS5wb3AoKTtpZihCIGluIGcpcmV0dXJuIEEudmFsdWU9QixBLmRvbmU9ITEsQX1yZXR1cm4gQS5kb25lPSEwLEF9fSxnLnZhbHVlcz1NLE4ucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpOLHJlc2V0OmZ1bmN0aW9uKGcpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PUEsdGhpcy5kb25lPSExLHRoaXMuZGVsZWdhdGU9bnVsbCx0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5hcmc9QSx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChwKSwhZylmb3IodmFyIEkgaW4gdGhpcykidCI9PT1JLmNoYXJBdCgwKSYmQi5jYWxsKHRoaXMsSSkmJiFpc05hTigrSS5zbGljZSgxKSkmJih0aGlzW0ldPUEpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciBBPXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1BLnR5cGUpdGhyb3cgQS5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oZyl7aWYodGhpcy5kb25lKXRocm93IGc7dmFyIEk9dGhpcztmdW5jdGlvbiBRKEIsUSl7cmV0dXJuIHQudHlwZT0idGhyb3ciLHQuYXJnPWcsSS5uZXh0PUIsUSYmKEkubWV0aG9kPSJuZXh0IixJLmFyZz1BKSwhIVF9Zm9yKHZhciBFPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtFPj0wOy0tRSl7dmFyIEM9dGhpcy50cnlFbnRyaWVzW0VdLHQ9Qy5jb21wbGV0aW9uO2lmKCJyb290Ij09PUMudHJ5TG9jKXJldHVybiBRKCJlbmQiKTtpZihDLnRyeUxvYzw9dGhpcy5wcmV2KXt2YXIgaT1CLmNhbGwoQywiY2F0Y2hMb2MiKSxlPUIuY2FsbChDLCJmaW5hbGx5TG9jIik7aWYoaSYmZSl7aWYodGhpcy5wcmV2PEMuY2F0Y2hMb2MpcmV0dXJuIFEoQy5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PEMuZmluYWxseUxvYylyZXR1cm4gUShDLmZpbmFsbHlMb2MpfWVsc2UgaWYoaSl7aWYodGhpcy5wcmV2PEMuY2F0Y2hMb2MpcmV0dXJuIFEoQy5jYXRjaExvYywhMCl9ZWxzZXtpZighZSl0aHJvdyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8Qy5maW5hbGx5TG9jKXJldHVybiBRKEMuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbihBLGcpe2Zvcih2YXIgST10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ST49MDstLUkpe3ZhciBRPXRoaXMudHJ5RW50cmllc1tJXTtpZihRLnRyeUxvYzw9dGhpcy5wcmV2JiZCLmNhbGwoUSwiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8US5maW5hbGx5TG9jKXt2YXIgRT1RO2JyZWFrfX1FJiYoImJyZWFrIj09PUF8fCJjb250aW51ZSI9PT1BKSYmRS50cnlMb2M8PWcmJmc8PUUuZmluYWxseUxvYyYmKEU9bnVsbCk7dmFyIEM9RT9FLmNvbXBsZXRpb246e307cmV0dXJuIEMudHlwZT1BLEMuYXJnPWcsRT8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1FLmZpbmFsbHlMb2MsZik6dGhpcy5jb21wbGV0ZShDKX0sY29tcGxldGU6ZnVuY3Rpb24oQSxnKXtpZigidGhyb3ciPT09QS50eXBlKXRocm93IEEuYXJnO3JldHVybiJicmVhayI9PT1BLnR5cGV8fCJjb250aW51ZSI9PT1BLnR5cGU/dGhpcy5uZXh0PUEuYXJnOiJyZXR1cm4iPT09QS50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9QS5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKToibm9ybWFsIj09PUEudHlwZSYmZyYmKHRoaXMubmV4dD1nKSxmfSxmaW5pc2g6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtnPj0wOy0tZyl7dmFyIEk9dGhpcy50cnlFbnRyaWVzW2ddO2lmKEkuZmluYWxseUxvYz09PUEpcmV0dXJuIHRoaXMuY29tcGxldGUoSS5jb21wbGV0aW9uLEkuYWZ0ZXJMb2MpLHAoSSksZn19LGNhdGNoOmZ1bmN0aW9uKEEpe2Zvcih2YXIgZz10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7Zz49MDstLWcpe3ZhciBJPXRoaXMudHJ5RW50cmllc1tnXTtpZihJLnRyeUxvYz09PUEpe3ZhciBCPUkuY29tcGxldGlvbjtpZigidGhyb3ciPT09Qi50eXBlKXt2YXIgUT1CLmFyZztwKEkpfXJldHVybiBRfX10aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZyxJLEIpe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpNKGcpLHJlc3VsdE5hbWU6SSxuZXh0TG9jOkJ9LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9QSksZn19LGd9ZnVuY3Rpb24gcyhBLGcpe3JldHVybihzPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIEEuX19wcm90b19fPWcsQX0pKEEsZyl9ZnVuY3Rpb24gYyhBLGcsSSxCKXt2YXIgUT10KGkoMSZCP0EucHJvdG90eXBlOkEpLGcsSSk7cmV0dXJuIDImQiYmImZ1bmN0aW9uIj09dHlwZW9mIFE/ZnVuY3Rpb24oQSl7cmV0dXJuIFEuYXBwbHkoSSxBKX06UX1mdW5jdGlvbiBoKGcpe3JldHVybiBmdW5jdGlvbihnKXtpZihBcnJheS5pc0FycmF5KGcpKXJldHVybiBBKGcpfShnKXx8ZnVuY3Rpb24oQSl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPUFbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9QVsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKEEpfShnKXx8ZnVuY3Rpb24oZyxJKXtpZihnKXtpZigic3RyaW5nIj09dHlwZW9mIGcpcmV0dXJuIEEoZyxJKTt2YXIgQj17fS50b1N0cmluZy5jYWxsKGcpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09QiYmZy5jb25zdHJ1Y3RvciYmKEI9Zy5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PUJ8fCJTZXQiPT09Qj9BcnJheS5mcm9tKGcpOiJBcmd1bWVudHMiPT09Qnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoQik/QShnLEkpOnZvaWQgMH19KGcpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGYoQSl7dmFyIGc9ZnVuY3Rpb24oQSxnKXtpZigib2JqZWN0IiE9dHlwZW9mIEF8fCFBKXJldHVybiBBO3ZhciBJPUFbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1JKXt2YXIgQj1JLmNhbGwoQSxnfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgQilyZXR1cm4gQjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWc/U3RyaW5nOk51bWJlcikoQSl9KEEsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgZz9nOmcrIiJ9ZnVuY3Rpb24gdShBKXtyZXR1cm4odT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihBKXtyZXR1cm4gdHlwZW9mIEF9OmZ1bmN0aW9uKEEpe3JldHVybiBBJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZBLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZBIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgQX0pKEEpfXZhciB5PSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sRD1mdW5jdGlvbihBKXt0cnl7cmV0dXJuISFBKCl9Y2F0Y2goZyl7cmV0dXJuITB9fSxsPXt9LnRvU3RyaW5nLHc9ZnVuY3Rpb24oQSl7cmV0dXJuIGwuY2FsbChBKS5zbGljZSg4LC0xKX0sZD13LEY9IiIuc3BsaXQsRz1EKChmdW5jdGlvbigpe3JldHVybiFPYmplY3QoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbihBKXtyZXR1cm4iU3RyaW5nIj09ZChBKT9GLmNhbGwoQSwiIik6T2JqZWN0KEEpfTpPYmplY3QsUj1mdW5jdGlvbihBKXtpZihudWxsPT1BKXRocm93IFR5cGVFcnJvcigiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIitBKTtyZXR1cm4gQX0sVT1HLGs9UixTPWZ1bmN0aW9uKEEpe3JldHVybiBVKGsoQSkpfSxwPWZ1bmN0aW9uKEEpe3JldHVybiBBJiZBLk1hdGg9PU1hdGgmJkF9LE49cCgib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMpfHxwKCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cpfHxwKCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZil8fHAoIm9iamVjdCI9PXR5cGVvZiB5JiZ5KXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxNPXtleHBvcnRzOnt9fSx2PSFEKChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sMSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSlbMV19KSksWT17fSxIPWZ1bmN0aW9uKEEpe3JldHVybiJvYmplY3QiPT10eXBlb2YgQT9udWxsIT09QToiZnVuY3Rpb24iPT10eXBlb2YgQX0sTD1ILEo9Ti5kb2N1bWVudCxtPUwoSikmJkwoSi5jcmVhdGVFbGVtZW50KSxLPWZ1bmN0aW9uKEEpe3JldHVybiBtP0ouY3JlYXRlRWxlbWVudChBKTp7fX0seD1LLHE9IXYmJiFEKChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoeCgiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSkpLGI9SCxUPWZ1bmN0aW9uKEEpe2lmKCFiKEEpKXRocm93IFR5cGVFcnJvcihTdHJpbmcoQSkrIiBpcyBub3QgYW4gb2JqZWN0Iik7cmV0dXJuIEF9LE89SCxQPWZ1bmN0aW9uKEEsZyl7aWYoIU8oQSkpcmV0dXJuIEE7dmFyIEksQjtpZihnJiYiZnVuY3Rpb24iPT10eXBlb2YoST1BLnRvU3RyaW5nKSYmIU8oQj1JLmNhbGwoQSkpKXJldHVybiBCO2lmKCJmdW5jdGlvbiI9PXR5cGVvZihJPUEudmFsdWVPZikmJiFPKEI9SS5jYWxsKEEpKSlyZXR1cm4gQjtpZighZyYmImZ1bmN0aW9uIj09dHlwZW9mKEk9QS50b1N0cmluZykmJiFPKEI9SS5jYWxsKEEpKSlyZXR1cm4gQjt0aHJvdyBUeXBlRXJyb3IoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfSxqPXYsVz1xLFo9VCxYPVAsVj1PYmplY3QuZGVmaW5lUHJvcGVydHk7WS5mPWo/VjpmdW5jdGlvbihBLGcsSSl7aWYoWihBKSxnPVgoZywhMCksWihJKSxXKXRyeXtyZXR1cm4gVihBLGcsSSl9Y2F0Y2goQil7fWlmKCJnZXQiaW4gSXx8InNldCJpbiBJKXRocm93IFR5cGVFcnJvcigiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gSSYmKEFbZ109SS52YWx1ZSksQX07dmFyIHo9ZnVuY3Rpb24oQSxnKXtyZXR1cm57ZW51bWVyYWJsZTohKDEmQSksY29uZmlndXJhYmxlOiEoMiZBKSx3cml0YWJsZTohKDQmQSksdmFsdWU6Z319LF89WSwkPXosQUE9dj9mdW5jdGlvbihBLGcsSSl7cmV0dXJuIF8uZihBLGcsJCgxLEkpKX06ZnVuY3Rpb24oQSxnLEkpe3JldHVybiBBW2ddPUksQX0sZ0E9TixJQT1BQSxCQT1mdW5jdGlvbihBLGcpe3RyeXtJQShnQSxBLGcpfWNhdGNoKEkpe2dBW0FdPWd9cmV0dXJuIGd9LFFBPUJBLEVBPSJfX2NvcmUtanNfc2hhcmVkX18iLENBPU5bRUFdfHxRQShFQSx7fSksdEE9Q0E7KE0uZXhwb3J0cz1mdW5jdGlvbihBLGcpe3JldHVybiB0QVtBXXx8KHRBW0FdPXZvaWQgMCE9PWc/Zzp7fSl9KSgidmVyc2lvbnMiLFtdKS5wdXNoKHt2ZXJzaW9uOiIzLjEyLjEiLG1vZGU6Imdsb2JhbCIsY29weXJpZ2h0OiLCqSAyMDIxIERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpIn0pO3ZhciBpQSxlQSxvQT1NLmV4cG9ydHMsckE9UixuQT1mdW5jdGlvbihBKXtyZXR1cm4gT2JqZWN0KHJBKEEpKX0sYUE9bkEsc0E9e30uaGFzT3duUHJvcGVydHksY0E9ZnVuY3Rpb24oQSxnKXtyZXR1cm4gc0EuY2FsbChhQShBKSxnKX0saEE9MCxmQT1NYXRoLnJhbmRvbSgpLHVBPWZ1bmN0aW9uKEEpe3JldHVybiJTeW1ib2woIitTdHJpbmcodm9pZCAwPT09QT8iIjpBKSsiKV8iKygrK2hBK2ZBKS50b1N0cmluZygzNil9LHlBPU4sREE9eUEsbEE9Tix3QT1mdW5jdGlvbihBKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgQT9BOnZvaWQgMH0sZEE9ZnVuY3Rpb24oQSxnKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP3dBKERBW0FdKXx8d0EobEFbQV0pOkRBW0FdJiZEQVtBXVtnXXx8bEFbQV0mJmxBW0FdW2ddfSxGQT1kQSgibmF2aWdhdG9yIiwidXNlckFnZW50Iil8fCIiLEdBPUZBLFJBPU4ucHJvY2VzcyxVQT1SQSYmUkEudmVyc2lvbnMsa0E9VUEmJlVBLnY4O2tBP2VBPShpQT1rQS5zcGxpdCgiLiIpKVswXTw0PzE6aUFbMF0raUFbMV06R0EmJighKGlBPUdBLm1hdGNoKC9FZGdlXC8oXGQrKS8pKXx8aUFbMV0+PTc0KSYmKGlBPUdBLm1hdGNoKC9DaHJvbWVcLyhcZCspLykpJiYoZUE9aUFbMV0pO3ZhciBTQSxwQT1lQSYmK2VBLE5BPXBBLE1BPUQsdkE9ISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYhTUEoKGZ1bmN0aW9uKCl7cmV0dXJuIVN0cmluZyhTeW1ib2woKSl8fCFTeW1ib2wuc2hhbSYmTkEmJk5BPDQxfSkpLFlBPXZBJiYhU3ltYm9sLnNoYW0mJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yLEhBPU4sTEE9Y0EsSkE9dUEsbUE9dkEsS0E9WUEseEE9b0EoIndrcyIpLHFBPUhBLlN5bWJvbCxiQT1LQT9xQTpxQSYmcUEud2l0aG91dFNldHRlcnx8SkEsVEE9ZnVuY3Rpb24oQSl7cmV0dXJuIExBKHhBLEEpJiYobUF8fCJzdHJpbmciPT10eXBlb2YgeEFbQV0pfHwobUEmJkxBKHFBLEEpP3hBW0FdPXFBW0FdOnhBW0FdPWJBKCJTeW1ib2wuIitBKSkseEFbQV19LE9BPU1hdGguY2VpbCxQQT1NYXRoLmZsb29yLGpBPWZ1bmN0aW9uKEEpe3JldHVybiBpc05hTihBPStBKT8wOihBPjA/UEE6T0EpKEEpfSxXQT1qQSxaQT1NYXRoLm1pbixYQT1mdW5jdGlvbihBKXtyZXR1cm4gQT4wP1pBKFdBKEEpLDkwMDcxOTkyNTQ3NDA5OTEpOjB9LFZBPWpBLHpBPU1hdGgubWF4LF9BPU1hdGgubWluLCRBPWZ1bmN0aW9uKEEsZyl7dmFyIEk9VkEoQSk7cmV0dXJuIEk8MD96QShJK2csMCk6X0EoSSxnKX0sQWc9UyxnZz1YQSxJZz0kQSxCZz1mdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3ZhciBRLEU9QWcoZyksQz1nZyhFLmxlbmd0aCksdD1JZyhCLEMpO2lmKEEmJkkhPUkpe2Zvcig7Qz50OylpZigoUT1FW3QrK10pIT1RKXJldHVybiEwfWVsc2UgZm9yKDtDPnQ7dCsrKWlmKChBfHx0IGluIEUpJiZFW3RdPT09SSlyZXR1cm4gQXx8dHx8MDtyZXR1cm4hQSYmLTF9fSxRZz17aW5jbHVkZXM6QmcoITApLGluZGV4T2Y6QmcoITEpfSxFZz17fSxDZz1jQSx0Zz1TLGlnPVFnLmluZGV4T2YsZWc9RWcsb2c9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCPXRnKEEpLFE9MCxFPVtdO2ZvcihJIGluIEIpIUNnKGVnLEkpJiZDZyhCLEkpJiZFLnB1c2goSSk7Zm9yKDtnLmxlbmd0aD5ROylDZyhCLEk9Z1tRKytdKSYmKH5pZyhFLEkpfHxFLnB1c2goSSkpO3JldHVybiBFfSxyZz1bImNvbnN0cnVjdG9yIiwiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0b0xvY2FsZVN0cmluZyIsInRvU3RyaW5nIiwidmFsdWVPZiJdLG5nPW9nLGFnPXJnLHNnPU9iamVjdC5rZXlzfHxmdW5jdGlvbihBKXtyZXR1cm4gbmcoQSxhZyl9LGNnPVksaGc9VCxmZz1zZyx1Zz12P09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKEEsZyl7aGcoQSk7Zm9yKHZhciBJLEI9ZmcoZyksUT1CLmxlbmd0aCxFPTA7UT5FOyljZy5mKEEsST1CW0UrK10sZ1tJXSk7cmV0dXJuIEF9LHlnPWRBKCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIpLERnPXVBLGxnPW9BKCJrZXlzIiksd2c9ZnVuY3Rpb24oQSl7cmV0dXJuIGxnW0FdfHwobGdbQV09RGcoQSkpfSxkZz1ULEZnPXVnLEdnPXJnLFJnPUVnLFVnPXlnLGtnPUssU2c9InByb3RvdHlwZSIscGc9InNjcmlwdCIsTmc9d2coIklFX1BST1RPIiksTWc9ZnVuY3Rpb24oKXt9LHZnPWZ1bmN0aW9uKEEpe3JldHVybiI8IitwZysiPiIrQSsiPC8iK3BnKyI+In0sWWc9ZnVuY3Rpb24oKXt0cnl7U0E9ZG9jdW1lbnQuZG9tYWluJiZuZXcgQWN0aXZlWE9iamVjdCgiaHRtbGZpbGUiKX1jYXRjaChRKXt9dmFyIEEsZyxJO1lnPVNBP2Z1bmN0aW9uKEEpe0Eud3JpdGUodmcoIiIpKSxBLmNsb3NlKCk7dmFyIGc9QS5wYXJlbnRXaW5kb3cuT2JqZWN0O3JldHVybiBBPW51bGwsZ30oU0EpOihnPWtnKCJpZnJhbWUiKSxJPSJqYXZhIitwZysiOiIsZy5zdHlsZS5kaXNwbGF5PSJub25lIixVZy5hcHBlbmRDaGlsZChnKSxnLnNyYz1TdHJpbmcoSSksKEE9Zy5jb250ZW50V2luZG93LmRvY3VtZW50KS5vcGVuKCksQS53cml0ZSh2ZygiZG9jdW1lbnQuRj1PYmplY3QiKSksQS5jbG9zZSgpLEEuRik7Zm9yKHZhciBCPUdnLmxlbmd0aDtCLS07KWRlbGV0ZSBZZ1tTZ11bR2dbQl1dO3JldHVybiBZZygpfTtSZ1tOZ109ITA7dmFyIEhnPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKEEsZyl7dmFyIEk7cmV0dXJuIG51bGwhPT1BPyhNZ1tTZ109ZGcoQSksST1uZXcgTWcsTWdbU2ddPW51bGwsSVtOZ109QSk6ST1ZZygpLHZvaWQgMD09PWc/STpGZyhJLGcpfSxMZz1IZyxKZz1ZLG1nPVRBKCJ1bnNjb3BhYmxlcyIpLEtnPUFycmF5LnByb3RvdHlwZTtudWxsPT1LZ1ttZ10mJkpnLmYoS2csbWcse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTpMZyhudWxsKX0pO3ZhciB4Zz1mdW5jdGlvbihBKXtLZ1ttZ11bQV09ITB9LHFnPXt9LGJnPUNBLFRnPUZ1bmN0aW9uLnRvU3RyaW5nOyJmdW5jdGlvbiIhPXR5cGVvZiBiZy5pbnNwZWN0U291cmNlJiYoYmcuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbihBKXtyZXR1cm4gVGcuY2FsbChBKX0pO3ZhciBPZyxQZyxqZyxXZz1iZy5pbnNwZWN0U291cmNlLFpnPVdnLFhnPU4uV2Vha01hcCxWZz0iZnVuY3Rpb24iPT10eXBlb2YgWGcmJi9uYXRpdmUgY29kZS8udGVzdChaZyhYZykpLHpnPUgsX2c9QUEsJGc9Y0EsQUk9Q0EsZ0k9d2csSUk9RWcsQkk9Ik9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIixRST1OLldlYWtNYXA7aWYoVmd8fEFJLnN0YXRlKXt2YXIgRUk9QUkuc3RhdGV8fChBSS5zdGF0ZT1uZXcgUUkpLENJPUVJLmdldCx0ST1FSS5oYXMsaUk9RUkuc2V0O09nPWZ1bmN0aW9uKEEsZyl7aWYodEkuY2FsbChFSSxBKSl0aHJvdyBuZXcgVHlwZUVycm9yKEJJKTtyZXR1cm4gZy5mYWNhZGU9QSxpSS5jYWxsKEVJLEEsZyksZ30sUGc9ZnVuY3Rpb24oQSl7cmV0dXJuIENJLmNhbGwoRUksQSl8fHt9fSxqZz1mdW5jdGlvbihBKXtyZXR1cm4gdEkuY2FsbChFSSxBKX19ZWxzZXt2YXIgZUk9Z0koInN0YXRlIik7SUlbZUldPSEwLE9nPWZ1bmN0aW9uKEEsZyl7aWYoJGcoQSxlSSkpdGhyb3cgbmV3IFR5cGVFcnJvcihCSSk7cmV0dXJuIGcuZmFjYWRlPUEsX2coQSxlSSxnKSxnfSxQZz1mdW5jdGlvbihBKXtyZXR1cm4gJGcoQSxlSSk/QVtlSV06e319LGpnPWZ1bmN0aW9uKEEpe3JldHVybiAkZyhBLGVJKX19dmFyIG9JPXtzZXQ6T2csZ2V0OlBnLGhhczpqZyxlbmZvcmNlOmZ1bmN0aW9uKEEpe3JldHVybiBqZyhBKT9QZyhBKTpPZyhBLHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnKXt2YXIgSTtpZighemcoZyl8fChJPVBnKGcpKS50eXBlIT09QSl0aHJvdyBUeXBlRXJyb3IoIkluY29tcGF0aWJsZSByZWNlaXZlciwgIitBKyIgcmVxdWlyZWQiKTtyZXR1cm4gSX19fSxyST17fSxuST17fSxhST17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxzST1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGNJPXNJJiYhYUkuY2FsbCh7MToyfSwxKTtuSS5mPWNJP2Z1bmN0aW9uKEEpe3ZhciBnPXNJKHRoaXMsQSk7cmV0dXJuISFnJiZnLmVudW1lcmFibGV9OmFJO3ZhciBoST12LGZJPW5JLHVJPXoseUk9UyxEST1QLGxJPWNBLHdJPXEsZEk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtySS5mPWhJP2RJOmZ1bmN0aW9uKEEsZyl7aWYoQT15SShBKSxnPURJKGcsITApLHdJKXRyeXtyZXR1cm4gZEkoQSxnKX1jYXRjaChJKXt9aWYobEkoQSxnKSlyZXR1cm4gdUkoIWZJLmYuY2FsbChBLGcpLEFbZ10pfTt2YXIgRkk9e2V4cG9ydHM6e319LEdJPU4sUkk9QUEsVUk9Y0Esa0k9QkEsU0k9V2cscEk9b0kuZ2V0LE5JPW9JLmVuZm9yY2UsTUk9U3RyaW5nKFN0cmluZykuc3BsaXQoIlN0cmluZyIpOyhGSS5leHBvcnRzPWZ1bmN0aW9uKEEsZyxJLEIpe3ZhciBRLEU9ISFCJiYhIUIudW5zYWZlLEM9ISFCJiYhIUIuZW51bWVyYWJsZSx0PSEhQiYmISFCLm5vVGFyZ2V0R2V0OyJmdW5jdGlvbiI9PXR5cGVvZiBJJiYoInN0cmluZyIhPXR5cGVvZiBnfHxVSShJLCJuYW1lIil8fFJJKEksIm5hbWUiLGcpLChRPU5JKEkpKS5zb3VyY2V8fChRLnNvdXJjZT1NSS5qb2luKCJzdHJpbmciPT10eXBlb2YgZz9nOiIiKSkpLEEhPT1HST8oRT8hdCYmQVtnXSYmKEM9ITApOmRlbGV0ZSBBW2ddLEM/QVtnXT1JOlJJKEEsZyxJKSk6Qz9BW2ddPUk6a0koZyxJKX0pKEZ1bmN0aW9uLnByb3RvdHlwZSwidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzJiZwSSh0aGlzKS5zb3VyY2V8fFNJKHRoaXMpfSkpO3ZhciB2ST1GSS5leHBvcnRzLFlJPXt9LEhJPW9nLExJPXJnLmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIik7WUkuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24oQSl7cmV0dXJuIEhJKEEsTEkpfTt2YXIgSkk9e307SkkuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO3ZhciBtSSxLSSx4SSxxST1ZSSxiST1KSSxUST1ULE9JPWRBKCJSZWZsZWN0Iiwib3duS2V5cyIpfHxmdW5jdGlvbihBKXt2YXIgZz1xSS5mKFRJKEEpKSxJPWJJLmY7cmV0dXJuIEk/Zy5jb25jYXQoSShBKSk6Z30sUEk9Y0Esakk9T0ksV0k9ckksWkk9WSxYST1mdW5jdGlvbihBLGcpe2Zvcih2YXIgST1qSShnKSxCPVpJLmYsUT1XSS5mLEU9MDtFPEkubGVuZ3RoO0UrKyl7dmFyIEM9SVtFXTtQSShBLEMpfHxCKEEsQyxRKGcsQykpfX0sVkk9RCx6ST0vI3xcLnByb3RvdHlwZVwuLyxfST1mdW5jdGlvbihBLGcpe3ZhciBJPUFCWyRJKEEpXTtyZXR1cm4gST09SUJ8fEkhPWdCJiYoImZ1bmN0aW9uIj09dHlwZW9mIGc/VkkoZyk6ISFnKX0sJEk9X0kubm9ybWFsaXplPWZ1bmN0aW9uKEEpe3JldHVybiBTdHJpbmcoQSkucmVwbGFjZSh6SSwiLiIpLnRvTG93ZXJDYXNlKCl9LEFCPV9JLmRhdGE9e30sZ0I9X0kuTkFUSVZFPSJOIixJQj1fSS5QT0xZRklMTD0iUCIsQkI9X0ksUUI9TixFQj1ySS5mLENCPUFBLHRCPXZJLGlCPUJBLGVCPVhJLG9CPUJCLHJCPWZ1bmN0aW9uKEEsZyl7dmFyIEksQixRLEUsQyx0PUEudGFyZ2V0LGk9QS5nbG9iYWwsZT1BLnN0YXQ7aWYoST1pP1FCOmU/UUJbdF18fGlCKHQse30pOihRQlt0XXx8e30pLnByb3RvdHlwZSlmb3IoQiBpbiBnKXtpZihFPWdbQl0sUT1BLm5vVGFyZ2V0R2V0PyhDPUVCKEksQikpJiZDLnZhbHVlOklbQl0sIW9CKGk/Qjp0KyhlPyIuIjoiIyIpK0IsQS5mb3JjZWQpJiZ2b2lkIDAhPT1RKXtpZih0eXBlb2YgRT09dHlwZW9mIFEpY29udGludWU7ZUIoRSxRKX0oQS5zaGFtfHxRJiZRLnNoYW0pJiZDQihFLCJzaGFtIiwhMCksdEIoSSxCLEUsQSl9fSxuQj0hRCgoZnVuY3Rpb24oKXtmdW5jdGlvbiBBKCl7fXJldHVybiBBLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1udWxsLE9iamVjdC5nZXRQcm90b3R5cGVPZihuZXcgQSkhPT1BLnByb3RvdHlwZX0pKSxhQj1jQSxzQj1uQSxjQj1uQixoQj13ZygiSUVfUFJPVE8iKSxmQj1PYmplY3QucHJvdG90eXBlLHVCPWNCP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihBKXtyZXR1cm4gQT1zQihBKSxhQihBLGhCKT9BW2hCXToiZnVuY3Rpb24iPT10eXBlb2YgQS5jb25zdHJ1Y3RvciYmQSBpbnN0YW5jZW9mIEEuY29uc3RydWN0b3I/QS5jb25zdHJ1Y3Rvci5wcm90b3R5cGU6QSBpbnN0YW5jZW9mIE9iamVjdD9mQjpudWxsfSx5Qj1ELERCPXVCLGxCPUFBLHdCPWNBLGRCPVRBKCJpdGVyYXRvciIpLEZCPSExO1tdLmtleXMmJigibmV4dCJpbih4ST1bXS5rZXlzKCkpPyhLST1EQihEQih4SSkpKSE9PU9iamVjdC5wcm90b3R5cGUmJihtST1LSSk6RkI9ITApLChudWxsPT1tSXx8eUIoKGZ1bmN0aW9uKCl7dmFyIEE9e307cmV0dXJuIG1JW2RCXS5jYWxsKEEpIT09QX0pKSkmJihtST17fSksd0IobUksZEIpfHxsQihtSSxkQiwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKTt2YXIgR0I9e0l0ZXJhdG9yUHJvdG90eXBlOm1JLEJVR0dZX1NBRkFSSV9JVEVSQVRPUlM6RkJ9LFJCPVkuZixVQj1jQSxrQj1UQSgidG9TdHJpbmdUYWciKSxTQj1mdW5jdGlvbihBLGcsSSl7QSYmIVVCKEE9ST9BOkEucHJvdG90eXBlLGtCKSYmUkIoQSxrQix7Y29uZmlndXJhYmxlOiEwLHZhbHVlOmd9KX0scEI9R0IuSXRlcmF0b3JQcm90b3R5cGUsTkI9SGcsTUI9eix2Qj1TQixZQj1xZyxIQj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxMQj1ILEpCPVQsbUI9ZnVuY3Rpb24oQSl7aWYoIUxCKEEpJiZudWxsIT09QSl0aHJvdyBUeXBlRXJyb3IoIkNhbid0IHNldCAiK1N0cmluZyhBKSsiIGFzIGEgcHJvdG90eXBlIik7cmV0dXJuIEF9LEtCPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8KCJfX3Byb3RvX18iaW57fT9mdW5jdGlvbigpe3ZhciBBLGc9ITEsST17fTt0cnl7KEE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iKS5zZXQpLmNhbGwoSSxbXSksZz1JIGluc3RhbmNlb2YgQXJyYXl9Y2F0Y2goQil7fXJldHVybiBmdW5jdGlvbihJLEIpe3JldHVybiBKQihJKSxtQihCKSxnP0EuY2FsbChJLEIpOkkuX19wcm90b19fPUIsSX19KCk6dm9pZCAwKSx4Qj1yQixxQj1mdW5jdGlvbihBLGcsSSl7dmFyIEI9ZysiIEl0ZXJhdG9yIjtyZXR1cm4gQS5wcm90b3R5cGU9TkIocEIse25leHQ6TUIoMSxJKX0pLHZCKEEsQiwhMSksWUJbQl09SEIsQX0sYkI9dUIsVEI9S0IsT0I9U0IsUEI9QUEsakI9dkksV0I9cWcsWkI9R0IuSXRlcmF0b3JQcm90b3R5cGUsWEI9R0IuQlVHR1lfU0FGQVJJX0lURVJBVE9SUyxWQj1UQSgiaXRlcmF0b3IiKSx6Qj0ia2V5cyIsX0I9InZhbHVlcyIsJEI9ImVudHJpZXMiLEFRPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGdRPWZ1bmN0aW9uKEEsZyxJLEIsUSxFLEMpe3FCKEksZyxCKTt2YXIgdCxpLGUsbz1mdW5jdGlvbihBKXtpZihBPT09USYmYylyZXR1cm4gYztpZighWEImJkEgaW4gYSlyZXR1cm4gYVtBXTtzd2l0Y2goQSl7Y2FzZSB6QjpjYXNlIF9COmNhc2UgJEI6cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBJKHRoaXMsQSl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgSSh0aGlzKX19LHI9ZysiIEl0ZXJhdG9yIixuPSExLGE9QS5wcm90b3R5cGUscz1hW1ZCXXx8YVsiQEBpdGVyYXRvciJdfHxRJiZhW1FdLGM9IVhCJiZzfHxvKFEpLGg9IkFycmF5Ij09ZyYmYS5lbnRyaWVzfHxzO2lmKGgmJih0PWJCKGguY2FsbChuZXcgQSkpLFpCIT09T2JqZWN0LnByb3RvdHlwZSYmdC5uZXh0JiYoYkIodCkhPT1aQiYmKFRCP1RCKHQsWkIpOiJmdW5jdGlvbiIhPXR5cGVvZiB0W1ZCXSYmUEIodCxWQixBUSkpLE9CKHQsciwhMCkpKSxRPT1fQiYmcyYmcy5uYW1lIT09X0ImJihuPSEwLGM9ZnVuY3Rpb24oKXtyZXR1cm4gcy5jYWxsKHRoaXMpfSksYVtWQl0hPT1jJiZQQihhLFZCLGMpLFdCW2ddPWMsUSlpZihpPXt2YWx1ZXM6byhfQiksa2V5czpFP2M6byh6QiksZW50cmllczpvKCRCKX0sQylmb3IoZSBpbiBpKShYQnx8bnx8IShlIGluIGEpKSYmakIoYSxlLGlbZV0pO2Vsc2UgeEIoe3RhcmdldDpnLHByb3RvOiEwLGZvcmNlZDpYQnx8bn0saSk7cmV0dXJuIGl9LElRPVMsQlE9eGcsUVE9cWcsRVE9b0ksQ1E9Z1EsdFE9IkFycmF5IEl0ZXJhdG9yIixpUT1FUS5zZXQsZVE9RVEuZ2V0dGVyRm9yKHRRKSxvUT1DUShBcnJheSwiQXJyYXkiLChmdW5jdGlvbihBLGcpe2lRKHRoaXMse3R5cGU6dFEsdGFyZ2V0OklRKEEpLGluZGV4OjAsa2luZDpnfSl9KSwoZnVuY3Rpb24oKXt2YXIgQT1lUSh0aGlzKSxnPUEudGFyZ2V0LEk9QS5raW5kLEI9QS5pbmRleCsrO3JldHVybiFnfHxCPj1nLmxlbmd0aD8oQS50YXJnZXQ9dm9pZCAwLHt2YWx1ZTp2b2lkIDAsZG9uZTohMH0pOiJrZXlzIj09ST97dmFsdWU6Qixkb25lOiExfToidmFsdWVzIj09ST97dmFsdWU6Z1tCXSxkb25lOiExfTp7dmFsdWU6W0IsZ1tCXV0sZG9uZTohMX19KSwidmFsdWVzIik7UVEuQXJndW1lbnRzPVFRLkFycmF5LEJRKCJrZXlzIiksQlEoInZhbHVlcyIpLEJRKCJlbnRyaWVzIik7dmFyIHJRPSJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJiJ1bmRlZmluZWQiIT10eXBlb2YgRGF0YVZpZXcsblE9dkksYVE9ZnVuY3Rpb24oQSxnLEkpe2Zvcih2YXIgQiBpbiBnKW5RKEEsQixnW0JdLEkpO3JldHVybiBBfSxzUT1mdW5jdGlvbihBLGcsSSl7aWYoIShBIGluc3RhbmNlb2YgZykpdGhyb3cgVHlwZUVycm9yKCJJbmNvcnJlY3QgIisoST9JKyIgIjoiIikrImludm9jYXRpb24iKTtyZXR1cm4gQX0sY1E9akEsaFE9WEEsZlE9ZnVuY3Rpb24oQSl7aWYodm9pZCAwPT09QSlyZXR1cm4gMDt2YXIgZz1jUShBKSxJPWhRKGcpO2lmKGchPT1JKXRocm93IFJhbmdlRXJyb3IoIldyb25nIGxlbmd0aCBvciBpbmRleCIpO3JldHVybiBJfSx1UT1NYXRoLmFicyx5UT1NYXRoLnBvdyxEUT1NYXRoLmZsb29yLGxRPU1hdGgubG9nLHdRPU1hdGguTE4yLGRRPW5BLEZRPSRBLEdRPVhBLFJRPWZ1bmN0aW9uKEEpe2Zvcih2YXIgZz1kUSh0aGlzKSxJPUdRKGcubGVuZ3RoKSxCPWFyZ3VtZW50cy5sZW5ndGgsUT1GUShCPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxJKSxFPUI+Mj9hcmd1bWVudHNbMl06dm9pZCAwLEM9dm9pZCAwPT09RT9JOkZRKEUsSSk7Qz5ROylnW1ErK109QTtyZXR1cm4gZ30sVVE9TixrUT12LFNRPXJRLHBRPUFBLE5RPWFRLE1RPUQsdlE9c1EsWVE9akEsSFE9WEEsTFE9ZlEsSlE9e3BhY2s6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFEsRSxDPW5ldyBBcnJheShJKSx0PTgqSS1nLTEsaT0oMTw8dCktMSxlPWk+PjEsbz0yMz09PWc/eVEoMiwtMjQpLXlRKDIsLTc3KTowLHI9QTwwfHwwPT09QSYmMS9BPDA/MTowLG49MDtmb3IoKEE9dVEoQSkpIT1BfHxBPT09MS8wPyhRPUEhPUE/MTowLEI9aSk6KEI9RFEobFEoQSkvd1EpLEEqKEU9eVEoMiwtQikpPDEmJihCLS0sRSo9MiksKEErPUIrZT49MT9vL0U6byp5USgyLDEtZSkpKkU+PTImJihCKyssRS89MiksQitlPj1pPyhRPTAsQj1pKTpCK2U+PTE/KFE9KEEqRS0xKSp5USgyLGcpLEIrPWUpOihRPUEqeVEoMixlLTEpKnlRKDIsZyksQj0wKSk7Zz49ODtDW24rK109MjU1JlEsUS89MjU2LGctPTgpO2ZvcihCPUI8PGd8USx0Kz1nO3Q+MDtDW24rK109MjU1JkIsQi89MjU2LHQtPTgpO3JldHVybiBDWy0tbl18PTEyOCpyLEN9LHVucGFjazpmdW5jdGlvbihBLGcpe3ZhciBJLEI9QS5sZW5ndGgsUT04KkItZy0xLEU9KDE8PFEpLTEsQz1FPj4xLHQ9US03LGk9Qi0xLGU9QVtpLS1dLG89MTI3JmU7Zm9yKGU+Pj03O3Q+MDtvPTI1NipvK0FbaV0saS0tLHQtPTgpO2ZvcihJPW8mKDE8PC10KS0xLG8+Pj0tdCx0Kz1nO3Q+MDtJPTI1NipJK0FbaV0saS0tLHQtPTgpO2lmKDA9PT1vKW89MS1DO2Vsc2V7aWYobz09PUUpcmV0dXJuIEk/TmFOOmU/LTEvMDoxLzA7SSs9eVEoMixnKSxvLT1DfXJldHVybihlPy0xOjEpKkkqeVEoMixvLWcpfX0sbVE9dUIsS1E9S0IseFE9WUkuZixxUT1ZLmYsYlE9UlEsVFE9U0IsT1E9b0kuZ2V0LFBRPW9JLnNldCxqUT0iQXJyYXlCdWZmZXIiLFdRPSJEYXRhVmlldyIsWlE9InByb3RvdHlwZSIsWFE9Ildyb25nIGluZGV4IixWUT1VUVtqUV0selE9VlEsX1E9VVFbV1FdLCRRPV9RJiZfUVtaUV0sQUU9T2JqZWN0LnByb3RvdHlwZSxnRT1VUS5SYW5nZUVycm9yLElFPUpRLnBhY2ssQkU9SlEudW5wYWNrLFFFPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQV19LEVFPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQSxBPj44JjI1NV19LENFPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQSxBPj44JjI1NSxBPj4xNiYyNTUsQT4+MjQmMjU1XX0sdEU9ZnVuY3Rpb24oQSl7cmV0dXJuIEFbM108PDI0fEFbMl08PDE2fEFbMV08PDh8QVswXX0saUU9ZnVuY3Rpb24oQSl7cmV0dXJuIElFKEEsMjMsNCl9LGVFPWZ1bmN0aW9uKEEpe3JldHVybiBJRShBLDUyLDgpfSxvRT1mdW5jdGlvbihBLGcpe3FRKEFbWlFdLGcse2dldDpmdW5jdGlvbigpe3JldHVybiBPUSh0aGlzKVtnXX19KX0sckU9ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9TFEoSSksRT1PUShBKTtpZihRK2c+RS5ieXRlTGVuZ3RoKXRocm93IGdFKFhRKTt2YXIgQz1PUShFLmJ1ZmZlcikuYnl0ZXMsdD1RK0UuYnl0ZU9mZnNldCxpPUMuc2xpY2UodCx0K2cpO3JldHVybiBCP2k6aS5yZXZlcnNlKCl9LG5FPWZ1bmN0aW9uKEEsZyxJLEIsUSxFKXt2YXIgQz1MUShJKSx0PU9RKEEpO2lmKEMrZz50LmJ5dGVMZW5ndGgpdGhyb3cgZ0UoWFEpO2Zvcih2YXIgaT1PUSh0LmJ1ZmZlcikuYnl0ZXMsZT1DK3QuYnl0ZU9mZnNldCxvPUIoK1EpLHI9MDtyPGc7cisrKWlbZStyXT1vW0U/cjpnLXItMV19O2lmKFNRKXtpZighTVEoKGZ1bmN0aW9uKCl7VlEoMSl9KSl8fCFNUSgoZnVuY3Rpb24oKXtuZXcgVlEoLTEpfSkpfHxNUSgoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFZRLG5ldyBWUSgxLjUpLG5ldyBWUShOYU4pLFZRLm5hbWUhPWpRfSkpKXtmb3IodmFyIGFFLHNFPSh6UT1mdW5jdGlvbihBKXtyZXR1cm4gdlEodGhpcyx6USksbmV3IFZRKExRKEEpKX0pW1pRXT1WUVtaUV0sY0U9eFEoVlEpLGhFPTA7Y0UubGVuZ3RoPmhFOykoYUU9Y0VbaEUrK10paW4gelF8fHBRKHpRLGFFLFZRW2FFXSk7c0UuY29uc3RydWN0b3I9elF9S1EmJm1RKCRRKSE9PUFFJiZLUSgkUSxBRSk7dmFyIGZFPW5ldyBfUShuZXcgelEoMikpLHVFPSRRLnNldEludDg7ZkUuc2V0SW50OCgwLDIxNDc0ODM2NDgpLGZFLnNldEludDgoMSwyMTQ3NDgzNjQ5KSwhZkUuZ2V0SW50OCgwKSYmZkUuZ2V0SW50OCgxKXx8TlEoJFEse3NldEludDg6ZnVuY3Rpb24oQSxnKXt1RS5jYWxsKHRoaXMsQSxnPDwyND4+MjQpfSxzZXRVaW50ODpmdW5jdGlvbihBLGcpe3VFLmNhbGwodGhpcyxBLGc8PDI0Pj4yNCl9fSx7dW5zYWZlOiEwfSl9ZWxzZSB6UT1mdW5jdGlvbihBKXt2USh0aGlzLHpRLGpRKTt2YXIgZz1MUShBKTtQUSh0aGlzLHtieXRlczpiUS5jYWxsKG5ldyBBcnJheShnKSwwKSxieXRlTGVuZ3RoOmd9KSxrUXx8KHRoaXMuYnl0ZUxlbmd0aD1nKX0sX1E9ZnVuY3Rpb24oQSxnLEkpe3ZRKHRoaXMsX1EsV1EpLHZRKEEselEsV1EpO3ZhciBCPU9RKEEpLmJ5dGVMZW5ndGgsUT1ZUShnKTtpZihRPDB8fFE+Qil0aHJvdyBnRSgiV3Jvbmcgb2Zmc2V0Iik7aWYoUSsoST12b2lkIDA9PT1JP0ItUTpIUShJKSk+Qil0aHJvdyBnRSgiV3JvbmcgbGVuZ3RoIik7UFEodGhpcyx7YnVmZmVyOkEsYnl0ZUxlbmd0aDpJLGJ5dGVPZmZzZXQ6UX0pLGtRfHwodGhpcy5idWZmZXI9QSx0aGlzLmJ5dGVMZW5ndGg9SSx0aGlzLmJ5dGVPZmZzZXQ9USl9LGtRJiYob0UoelEsImJ5dGVMZW5ndGgiKSxvRShfUSwiYnVmZmVyIiksb0UoX1EsImJ5dGVMZW5ndGgiKSxvRShfUSwiYnl0ZU9mZnNldCIpKSxOUShfUVtaUV0se2dldEludDg6ZnVuY3Rpb24oQSl7cmV0dXJuIHJFKHRoaXMsMSxBKVswXTw8MjQ+PjI0fSxnZXRVaW50ODpmdW5jdGlvbihBKXtyZXR1cm4gckUodGhpcywxLEEpWzBdfSxnZXRJbnQxNjpmdW5jdGlvbihBKXt2YXIgZz1yRSh0aGlzLDIsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuKGdbMV08PDh8Z1swXSk8PDE2Pj4xNn0sZ2V0VWludDE2OmZ1bmN0aW9uKEEpe3ZhciBnPXJFKHRoaXMsMixBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKTtyZXR1cm4gZ1sxXTw8OHxnWzBdfSxnZXRJbnQzMjpmdW5jdGlvbihBKXtyZXR1cm4gdEUockUodGhpcyw0LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApKX0sZ2V0VWludDMyOmZ1bmN0aW9uKEEpe3JldHVybiB0RShyRSh0aGlzLDQsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCkpPj4+MH0sZ2V0RmxvYXQzMjpmdW5jdGlvbihBKXtyZXR1cm4gQkUockUodGhpcyw0LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLDIzKX0sZ2V0RmxvYXQ2NDpmdW5jdGlvbihBKXtyZXR1cm4gQkUockUodGhpcyw4LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLDUyKX0sc2V0SW50ODpmdW5jdGlvbihBLGcpe25FKHRoaXMsMSxBLFFFLGcpfSxzZXRVaW50ODpmdW5jdGlvbihBLGcpe25FKHRoaXMsMSxBLFFFLGcpfSxzZXRJbnQxNjpmdW5jdGlvbihBLGcpe25FKHRoaXMsMixBLEVFLGcsYXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfSxzZXRVaW50MTY6ZnVuY3Rpb24oQSxnKXtuRSh0aGlzLDIsQSxFRSxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0SW50MzI6ZnVuY3Rpb24oQSxnKXtuRSh0aGlzLDQsQSxDRSxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0VWludDMyOmZ1bmN0aW9uKEEsZyl7bkUodGhpcyw0LEEsQ0UsZyxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9LHNldEZsb2F0MzI6ZnVuY3Rpb24oQSxnKXtuRSh0aGlzLDQsQSxpRSxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0RmxvYXQ2NDpmdW5jdGlvbihBLGcpe25FKHRoaXMsOCxBLGVFLGcsYXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfX0pO1RRKHpRLGpRKSxUUShfUSxXUSk7dmFyIHlFPXtBcnJheUJ1ZmZlcjp6USxEYXRhVmlldzpfUX0sREU9ZEEsbEU9WSx3RT12LGRFPVRBKCJzcGVjaWVzIiksRkU9ZnVuY3Rpb24oQSl7dmFyIGc9REUoQSksST1sRS5mO3dFJiZnJiYhZ1tkRV0mJkkoZyxkRSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0pfSxHRT1GRSxSRT0iQXJyYXlCdWZmZXIiLFVFPXlFW1JFXTtyQih7Z2xvYmFsOiEwLGZvcmNlZDpOW1JFXSE9PVVFfSx7QXJyYXlCdWZmZXI6VUV9KSxHRShSRSk7dmFyIGtFPXt9O2tFW1RBKCJ0b1N0cmluZ1RhZyIpXT0ieiI7dmFyIFNFPSJbb2JqZWN0IHpdIj09PVN0cmluZyhrRSkscEU9U0UsTkU9dyxNRT1UQSgidG9TdHJpbmdUYWciKSx2RT0iQXJndW1lbnRzIj09TkUoZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKSxZRT1wRT9ORTpmdW5jdGlvbihBKXt2YXIgZyxJLEI7cmV0dXJuIHZvaWQgMD09PUE/IlVuZGVmaW5lZCI6bnVsbD09PUE/Ik51bGwiOiJzdHJpbmciPT10eXBlb2YoST1mdW5jdGlvbihBLGcpe3RyeXtyZXR1cm4gQVtnXX1jYXRjaChJKXt9fShnPU9iamVjdChBKSxNRSkpP0k6dkU/TkUoZyk6Ik9iamVjdCI9PShCPU5FKGcpKSYmImZ1bmN0aW9uIj09dHlwZW9mIGcuY2FsbGVlPyJBcmd1bWVudHMiOkJ9LEhFPVlFLExFPVNFP3t9LnRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgIitIRSh0aGlzKSsiXSJ9O1NFfHx2SShPYmplY3QucHJvdG90eXBlLCJ0b1N0cmluZyIsTEUse3Vuc2FmZTohMH0pO3ZhciBKRT17ZXhwb3J0czp7fX0sbUU9VEEoIml0ZXJhdG9yIiksS0U9ITE7dHJ5e3ZhciB4RT0wLHFFPXtuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ISF4RSsrfX0scmV0dXJuOmZ1bmN0aW9uKCl7S0U9ITB9fTtxRVttRV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sQXJyYXkuZnJvbShxRSwoZnVuY3Rpb24oKXt0aHJvdyAyfSkpfWNhdGNoKFBsKXt9dmFyIGJFLFRFPWZ1bmN0aW9uKEEsZyl7aWYoIWcmJiFLRSlyZXR1cm4hMTt2YXIgST0hMTt0cnl7dmFyIEI9e307QlttRV09ZnVuY3Rpb24oKXtyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOkk9ITB9fX19LEEoQil9Y2F0Y2goUGwpe31yZXR1cm4gSX0sT0U9clEsUEU9dixqRT1OLFdFPUgsWkU9Y0EsWEU9WUUsVkU9QUEsekU9dkksX0U9WS5mLCRFPXVCLEFDPUtCLGdDPVRBLElDPXVBLEJDPWpFLkludDhBcnJheSxRQz1CQyYmQkMucHJvdG90eXBlLEVDPWpFLlVpbnQ4Q2xhbXBlZEFycmF5LENDPUVDJiZFQy5wcm90b3R5cGUsdEM9QkMmJiRFKEJDKSxpQz1RQyYmJEUoUUMpLGVDPU9iamVjdC5wcm90b3R5cGUsb0M9ZUMuaXNQcm90b3R5cGVPZixyQz1nQygidG9TdHJpbmdUYWciKSxuQz1JQygiVFlQRURfQVJSQVlfVEFHIiksYUM9T0UmJiEhQUMmJiJPcGVyYSIhPT1YRShqRS5vcGVyYSksc0M9ITEsY0M9e0ludDhBcnJheToxLFVpbnQ4QXJyYXk6MSxVaW50OENsYW1wZWRBcnJheToxLEludDE2QXJyYXk6MixVaW50MTZBcnJheToyLEludDMyQXJyYXk6NCxVaW50MzJBcnJheTo0LEZsb2F0MzJBcnJheTo0LEZsb2F0NjRBcnJheTo4fSxoQz17QmlnSW50NjRBcnJheTo4LEJpZ1VpbnQ2NEFycmF5Ojh9LGZDPWZ1bmN0aW9uKEEpe2lmKCFXRShBKSlyZXR1cm4hMTt2YXIgZz1YRShBKTtyZXR1cm4gWkUoY0MsZyl8fFpFKGhDLGcpfTtmb3IoYkUgaW4gY0MpakVbYkVdfHwoYUM9ITEpO2lmKCghYUN8fCJmdW5jdGlvbiIhPXR5cGVvZiB0Q3x8dEM9PT1GdW5jdGlvbi5wcm90b3R5cGUpJiYodEM9ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoIkluY29ycmVjdCBpbnZvY2F0aW9uIil9LGFDKSlmb3IoYkUgaW4gY0MpakVbYkVdJiZBQyhqRVtiRV0sdEMpO2lmKCghYUN8fCFpQ3x8aUM9PT1lQykmJihpQz10Qy5wcm90b3R5cGUsYUMpKWZvcihiRSBpbiBjQylqRVtiRV0mJkFDKGpFW2JFXS5wcm90b3R5cGUsaUMpO2lmKGFDJiYkRShDQykhPT1pQyYmQUMoQ0MsaUMpLFBFJiYhWkUoaUMsckMpKWZvcihiRSBpbiBzQz0hMCxfRShpQyxyQyx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFdFKHRoaXMpP3RoaXNbbkNdOnZvaWQgMH19KSxjQylqRVtiRV0mJlZFKGpFW2JFXSxuQyxiRSk7dmFyIHVDPXtOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTOmFDLFRZUEVEX0FSUkFZX1RBRzpzQyYmbkMsYVR5cGVkQXJyYXk6ZnVuY3Rpb24oQSl7aWYoZkMoQSkpcmV0dXJuIEE7dGhyb3cgVHlwZUVycm9yKCJUYXJnZXQgaXMgbm90IGEgdHlwZWQgYXJyYXkiKX0sYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjpmdW5jdGlvbihBKXtpZihBQyl7aWYob0MuY2FsbCh0QyxBKSlyZXR1cm4gQX1lbHNlIGZvcih2YXIgZyBpbiBjQylpZihaRShjQyxiRSkpe3ZhciBJPWpFW2ddO2lmKEkmJihBPT09SXx8b0MuY2FsbChJLEEpKSlyZXR1cm4gQX10aHJvdyBUeXBlRXJyb3IoIlRhcmdldCBpcyBub3QgYSB0eXBlZCBhcnJheSBjb25zdHJ1Y3RvciIpfSxleHBvcnRUeXBlZEFycmF5TWV0aG9kOmZ1bmN0aW9uKEEsZyxJKXtpZihQRSl7aWYoSSlmb3IodmFyIEIgaW4gY0Mpe3ZhciBRPWpFW0JdO2lmKFEmJlpFKFEucHJvdG90eXBlLEEpKXRyeXtkZWxldGUgUS5wcm90b3R5cGVbQV19Y2F0Y2goUGwpe319aUNbQV0mJiFJfHx6RShpQyxBLEk/ZzphQyYmUUNbQV18fGcpfX0sZXhwb3J0VHlwZWRBcnJheVN0YXRpY01ldGhvZDpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUTtpZihQRSl7aWYoQUMpe2lmKEkpZm9yKEIgaW4gY0MpaWYoKFE9akVbQl0pJiZaRShRLEEpKXRyeXtkZWxldGUgUVtBXX1jYXRjaChQbCl7fWlmKHRDW0FdJiYhSSlyZXR1cm47dHJ5e3JldHVybiB6RSh0QyxBLEk/ZzphQyYmdENbQV18fGcpfWNhdGNoKFBsKXt9fWZvcihCIGluIGNDKSEoUT1qRVtCXSl8fFFbQV0mJiFJfHx6RShRLEEsZyl9fSxpc1ZpZXc6ZnVuY3Rpb24oQSl7aWYoIVdFKEEpKXJldHVybiExO3ZhciBnPVhFKEEpO3JldHVybiJEYXRhVmlldyI9PT1nfHxaRShjQyxnKXx8WkUoaEMsZyl9LGlzVHlwZWRBcnJheTpmQyxUeXBlZEFycmF5OnRDLFR5cGVkQXJyYXlQcm90b3R5cGU6aUN9LHlDPU4sREM9RCxsQz1URSx3Qz11Qy5OQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTLGRDPXlDLkFycmF5QnVmZmVyLEZDPXlDLkludDhBcnJheSxHQz0hd0N8fCFEQygoZnVuY3Rpb24oKXtGQygxKX0pKXx8IURDKChmdW5jdGlvbigpe25ldyBGQygtMSl9KSl8fCFsQygoZnVuY3Rpb24oQSl7bmV3IEZDLG5ldyBGQyhudWxsKSxuZXcgRkMoMS41KSxuZXcgRkMoQSl9KSwhMCl8fERDKChmdW5jdGlvbigpe3JldHVybiAxIT09bmV3IEZDKG5ldyBkQygyKSwxLHZvaWQgMCkubGVuZ3RofSkpLFJDPWpBLFVDPWZ1bmN0aW9uKEEpe3ZhciBnPVJDKEEpO2lmKGc8MCl0aHJvdyBSYW5nZUVycm9yKCJUaGUgYXJndW1lbnQgY2FuJ3QgYmUgbGVzcyB0aGFuIDAiKTtyZXR1cm4gZ30sa0M9ZnVuY3Rpb24oQSxnKXt2YXIgST1VQyhBKTtpZihJJWcpdGhyb3cgUmFuZ2VFcnJvcigiV3Jvbmcgb2Zmc2V0Iik7cmV0dXJuIEl9LFNDPVlFLHBDPXFnLE5DPVRBKCJpdGVyYXRvciIpLE1DPWZ1bmN0aW9uKEEpe2lmKG51bGwhPUEpcmV0dXJuIEFbTkNdfHxBWyJAQGl0ZXJhdG9yIl18fHBDW1NDKEEpXX0sdkM9cWcsWUM9VEEoIml0ZXJhdG9yIiksSEM9QXJyYXkucHJvdG90eXBlLExDPWZ1bmN0aW9uKEEpe3JldHVybiB2b2lkIDAhPT1BJiYodkMuQXJyYXk9PT1BfHxIQ1tZQ109PT1BKX0sSkM9ZnVuY3Rpb24oQSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIEEpdGhyb3cgVHlwZUVycm9yKFN0cmluZyhBKSsiIGlzIG5vdCBhIGZ1bmN0aW9uIik7cmV0dXJuIEF9LG1DPUpDLEtDPWZ1bmN0aW9uKEEsZyxJKXtpZihtQyhBKSx2b2lkIDA9PT1nKXJldHVybiBBO3N3aXRjaChJKXtjYXNlIDA6cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEEuY2FsbChnKX07Y2FzZSAxOnJldHVybiBmdW5jdGlvbihJKXtyZXR1cm4gQS5jYWxsKGcsSSl9O2Nhc2UgMjpyZXR1cm4gZnVuY3Rpb24oSSxCKXtyZXR1cm4gQS5jYWxsKGcsSSxCKX07Y2FzZSAzOnJldHVybiBmdW5jdGlvbihJLEIsUSl7cmV0dXJuIEEuY2FsbChnLEksQixRKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEEuYXBwbHkoZyxhcmd1bWVudHMpfX0seEM9bkEscUM9WEEsYkM9TUMsVEM9TEMsT0M9S0MsUEM9dUMuYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcixqQz13LFdDPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKEEpe3JldHVybiJBcnJheSI9PWpDKEEpfSxaQz1ILFhDPVdDLFZDPVRBKCJzcGVjaWVzIiksekM9ZnVuY3Rpb24oQSxnKXt2YXIgSTtyZXR1cm4gWEMoQSkmJigiZnVuY3Rpb24iIT10eXBlb2YoST1BLmNvbnN0cnVjdG9yKXx8SSE9PUFycmF5JiYhWEMoSS5wcm90b3R5cGUpP1pDKEkpJiZudWxsPT09KEk9SVtWQ10pJiYoST12b2lkIDApOkk9dm9pZCAwKSxuZXcodm9pZCAwPT09ST9BcnJheTpJKSgwPT09Zz8wOmcpfSxfQz1LQywkQz1HLEF0PW5BLGd0PVhBLEl0PXpDLEJ0PVtdLnB1c2gsUXQ9ZnVuY3Rpb24oQSl7dmFyIGc9MT09QSxJPTI9PUEsQj0zPT1BLFE9ND09QSxFPTY9PUEsQz03PT1BLHQ9NT09QXx8RTtyZXR1cm4gZnVuY3Rpb24oaSxlLG8scil7Zm9yKHZhciBuLGEscz1BdChpKSxjPSRDKHMpLGg9X0MoZSxvLDMpLGY9Z3QoYy5sZW5ndGgpLHU9MCx5PXJ8fEl0LEQ9Zz95KGksZik6SXx8Qz95KGksMCk6dm9pZCAwO2Y+dTt1KyspaWYoKHR8fHUgaW4gYykmJihhPWgobj1jW3VdLHUscyksQSkpaWYoZylEW3VdPWE7ZWxzZSBpZihhKXN3aXRjaChBKXtjYXNlIDM6cmV0dXJuITA7Y2FzZSA1OnJldHVybiBuO2Nhc2UgNjpyZXR1cm4gdTtjYXNlIDI6QnQuY2FsbChELG4pfWVsc2Ugc3dpdGNoKEEpe2Nhc2UgNDpyZXR1cm4hMTtjYXNlIDc6QnQuY2FsbChELG4pfXJldHVybiBFPy0xOkJ8fFE/UTpEfX0sRXQ9e2ZvckVhY2g6UXQoMCksbWFwOlF0KDEpLGZpbHRlcjpRdCgyKSxzb21lOlF0KDMpLGV2ZXJ5OlF0KDQpLGZpbmQ6UXQoNSksZmluZEluZGV4OlF0KDYpLGZpbHRlck91dDpRdCg3KX0sQ3Q9SCx0dD1LQixpdD1mdW5jdGlvbihBLGcsSSl7dmFyIEIsUTtyZXR1cm4gdHQmJiJmdW5jdGlvbiI9PXR5cGVvZihCPWcuY29uc3RydWN0b3IpJiZCIT09SSYmQ3QoUT1CLnByb3RvdHlwZSkmJlEhPT1JLnByb3RvdHlwZSYmdHQoQSxRKSxBfSxldD1yQixvdD1OLHJ0PXYsbnQ9R0MsYXQ9dUMsc3Q9eUUsY3Q9c1EsaHQ9eixmdD1BQSx1dD1YQSx5dD1mUSxEdD1rQyxsdD1QLHd0PWNBLGR0PVlFLEZ0PUgsR3Q9SGcsUnQ9S0IsVXQ9WUkuZixrdD1mdW5jdGlvbihBKXt2YXIgZyxJLEIsUSxFLEMsdD14QyhBKSxpPWFyZ3VtZW50cy5sZW5ndGgsZT1pPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxvPXZvaWQgMCE9PWUscj1iQyh0KTtpZihudWxsIT1yJiYhVEMocikpZm9yKEM9KEU9ci5jYWxsKHQpKS5uZXh0LHQ9W107IShRPUMuY2FsbChFKSkuZG9uZTspdC5wdXNoKFEudmFsdWUpO2ZvcihvJiZpPjImJihlPU9DKGUsYXJndW1lbnRzWzJdLDIpKSxJPXFDKHQubGVuZ3RoKSxCPW5ldyhQQyh0aGlzKSkoSSksZz0wO0k+ZztnKyspQltnXT1vP2UodFtnXSxnKTp0W2ddO3JldHVybiBCfSxTdD1FdC5mb3JFYWNoLHB0PUZFLE50PVksTXQ9ckksdnQ9aXQsWXQ9b0kuZ2V0LEh0PW9JLnNldCxMdD1OdC5mLEp0PU10LmYsbXQ9TWF0aC5yb3VuZCxLdD1vdC5SYW5nZUVycm9yLHh0PXN0LkFycmF5QnVmZmVyLHF0PXN0LkRhdGFWaWV3LGJ0PWF0Lk5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MsVHQ9YXQuVFlQRURfQVJSQVlfVEFHLE90PWF0LlR5cGVkQXJyYXksUHQ9YXQuVHlwZWRBcnJheVByb3RvdHlwZSxqdD1hdC5hVHlwZWRBcnJheUNvbnN0cnVjdG9yLFd0PWF0LmlzVHlwZWRBcnJheSxadD0iQllURVNfUEVSX0VMRU1FTlQiLFh0PSJXcm9uZyBsZW5ndGgiLFZ0PWZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPTAsQj1nLmxlbmd0aCxRPW5ldyhqdChBKSkoQik7Qj5JOylRW0ldPWdbSSsrXTtyZXR1cm4gUX0senQ9ZnVuY3Rpb24oQSxnKXtMdChBLGcse2dldDpmdW5jdGlvbigpe3JldHVybiBZdCh0aGlzKVtnXX19KX0sX3Q9ZnVuY3Rpb24oQSl7dmFyIGc7cmV0dXJuIEEgaW5zdGFuY2VvZiB4dHx8IkFycmF5QnVmZmVyIj09KGc9ZHQoQSkpfHwiU2hhcmVkQXJyYXlCdWZmZXIiPT1nfSwkdD1mdW5jdGlvbihBLGcpe3JldHVybiBXdChBKSYmInN5bWJvbCIhPXR5cGVvZiBnJiZnIGluIEEmJlN0cmluZygrZyk9PVN0cmluZyhnKX0sQWk9ZnVuY3Rpb24oQSxnKXtyZXR1cm4gJHQoQSxnPWx0KGcsITApKT9odCgyLEFbZ10pOkp0KEEsZyl9LGdpPWZ1bmN0aW9uKEEsZyxJKXtyZXR1cm4hKCR0KEEsZz1sdChnLCEwKSkmJkZ0KEkpJiZ3dChJLCJ2YWx1ZSIpKXx8d3QoSSwiZ2V0Iil8fHd0KEksInNldCIpfHxJLmNvbmZpZ3VyYWJsZXx8d3QoSSwid3JpdGFibGUiKSYmIUkud3JpdGFibGV8fHd0KEksImVudW1lcmFibGUiKSYmIUkuZW51bWVyYWJsZT9MdChBLGcsSSk6KEFbZ109SS52YWx1ZSxBKX07cnQ/KGJ0fHwoTXQuZj1BaSxOdC5mPWdpLHp0KFB0LCJidWZmZXIiKSx6dChQdCwiYnl0ZU9mZnNldCIpLHp0KFB0LCJieXRlTGVuZ3RoIiksenQoUHQsImxlbmd0aCIpKSxldCh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOiFidH0se2dldE93blByb3BlcnR5RGVzY3JpcHRvcjpBaSxkZWZpbmVQcm9wZXJ0eTpnaX0pLEpFLmV4cG9ydHM9ZnVuY3Rpb24oQSxnLEkpe3ZhciBCPUEubWF0Y2goL1xkKyQvKVswXS84LFE9QSsoST8iQ2xhbXBlZCI6IiIpKyJBcnJheSIsRT0iZ2V0IitBLEM9InNldCIrQSx0PW90W1FdLGk9dCxlPWkmJmkucHJvdG90eXBlLG89e30scj1mdW5jdGlvbihBLGcpe0x0KEEsZyx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKEEsZyl7dmFyIEk9WXQoQSk7cmV0dXJuIEkudmlld1tFXShnKkIrSS5ieXRlT2Zmc2V0LCEwKX0odGhpcyxnKX0sc2V0OmZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihBLGcsUSl7dmFyIEU9WXQoQSk7SSYmKFE9KFE9bXQoUSkpPDA/MDpRPjI1NT8yNTU6MjU1JlEpLEUudmlld1tDXShnKkIrRS5ieXRlT2Zmc2V0LFEsITApfSh0aGlzLGcsQSl9LGVudW1lcmFibGU6ITB9KX07YnQ/bnQmJihpPWcoKGZ1bmN0aW9uKEEsZyxJLEUpe3JldHVybiBjdChBLGksUSksdnQoRnQoZyk/X3QoZyk/dm9pZCAwIT09RT9uZXcgdChnLER0KEksQiksRSk6dm9pZCAwIT09ST9uZXcgdChnLER0KEksQikpOm5ldyB0KGcpOld0KGcpP1Z0KGksZyk6a3QuY2FsbChpLGcpOm5ldyB0KHl0KGcpKSxBLGkpfSkpLFJ0JiZSdChpLE90KSxTdChVdCh0KSwoZnVuY3Rpb24oQSl7QSBpbiBpfHxmdChpLEEsdFtBXSl9KSksaS5wcm90b3R5cGU9ZSk6KGk9ZygoZnVuY3Rpb24oQSxnLEksRSl7Y3QoQSxpLFEpO3ZhciBDLHQsZSxvPTAsbj0wO2lmKEZ0KGcpKXtpZighX3QoZykpcmV0dXJuIFd0KGcpP1Z0KGksZyk6a3QuY2FsbChpLGcpO0M9ZyxuPUR0KEksQik7dmFyIGE9Zy5ieXRlTGVuZ3RoO2lmKHZvaWQgMD09PUUpe2lmKGElQil0aHJvdyBLdChYdCk7aWYoKHQ9YS1uKTwwKXRocm93IEt0KFh0KX1lbHNlIGlmKCh0PXV0KEUpKkIpK24+YSl0aHJvdyBLdChYdCk7ZT10L0J9ZWxzZSBlPXl0KGcpLEM9bmV3IHh0KHQ9ZSpCKTtmb3IoSHQoQSx7YnVmZmVyOkMsYnl0ZU9mZnNldDpuLGJ5dGVMZW5ndGg6dCxsZW5ndGg6ZSx2aWV3Om5ldyBxdChDKX0pO288ZTspcihBLG8rKyl9KSksUnQmJlJ0KGksT3QpLGU9aS5wcm90b3R5cGU9R3QoUHQpKSxlLmNvbnN0cnVjdG9yIT09aSYmZnQoZSwiY29uc3RydWN0b3IiLGkpLFR0JiZmdChlLFR0LFEpLG9bUV09aSxldCh7Z2xvYmFsOiEwLGZvcmNlZDppIT10LHNoYW06IWJ0fSxvKSxadCBpbiBpfHxmdChpLFp0LEIpLFp0IGluIGV8fGZ0KGUsWnQsQikscHQoUSl9KTpKRS5leHBvcnRzPWZ1bmN0aW9uKCl7fTt2YXIgSWk9SkUuZXhwb3J0cztJaSgiVWludDgiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKTt2YXIgQmk9bkEsUWk9JEEsRWk9WEEsQ2k9TWF0aC5taW4sdGk9W10uY29weVdpdGhpbnx8ZnVuY3Rpb24oQSxnKXt2YXIgST1CaSh0aGlzKSxCPUVpKEkubGVuZ3RoKSxRPVFpKEEsQiksRT1RaShnLEIpLEM9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsdD1DaSgodm9pZCAwPT09Qz9COlFpKEMsQikpLUUsQi1RKSxpPTE7Zm9yKEU8USYmUTxFK3QmJihpPS0xLEUrPXQtMSxRKz10LTEpO3QtLSA+MDspRSBpbiBJP0lbUV09SVtFXTpkZWxldGUgSVtRXSxRKz1pLEUrPWk7cmV0dXJuIEl9LGlpPXRpLGVpPXVDLmFUeXBlZEFycmF5OygwLHVDLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJjb3B5V2l0aGluIiwoZnVuY3Rpb24oQSxnKXtyZXR1cm4gaWkuY2FsbChlaSh0aGlzKSxBLGcsYXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfSkpO3ZhciBvaT1FdC5ldmVyeSxyaT11Qy5hVHlwZWRBcnJheTsoMCx1Qy5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZXZlcnkiLChmdW5jdGlvbihBKXtyZXR1cm4gb2kocmkodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIG5pPVJRLGFpPXVDLmFUeXBlZEFycmF5OygwLHVDLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJmaWxsIiwoZnVuY3Rpb24oQSl7cmV0dXJuIG5pLmFwcGx5KGFpKHRoaXMpLGFyZ3VtZW50cyl9KSk7dmFyIHNpPVQsY2k9SkMsaGk9VEEoInNwZWNpZXMiKSxmaT1mdW5jdGlvbihBLGcpe3ZhciBJLEI9c2koQSkuY29uc3RydWN0b3I7cmV0dXJuIHZvaWQgMD09PUJ8fG51bGw9PShJPXNpKEIpW2hpXSk/ZzpjaShJKX0sdWk9dUMuYVR5cGVkQXJyYXlDb25zdHJ1Y3Rvcix5aT1maSxEaT1FdC5maWx0ZXIsbGk9ZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9eWkoQSxBLmNvbnN0cnVjdG9yKSxCPTAsUT1nLmxlbmd0aCxFPW5ldyh1aShJKSkoUSk7UT5COylFW0JdPWdbQisrXTtyZXR1cm4gRX0sd2k9dUMuYVR5cGVkQXJyYXk7KDAsdUMuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImZpbHRlciIsKGZ1bmN0aW9uKEEpe3ZhciBnPURpKHdpKHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApO3JldHVybiBsaSh0aGlzLGcpfSkpO3ZhciBkaT1FdC5maW5kLEZpPXVDLmFUeXBlZEFycmF5OygwLHVDLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJmaW5kIiwoZnVuY3Rpb24oQSl7cmV0dXJuIGRpKEZpKHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciBHaT1FdC5maW5kSW5kZXgsUmk9dUMuYVR5cGVkQXJyYXk7KDAsdUMuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImZpbmRJbmRleCIsKGZ1bmN0aW9uKEEpe3JldHVybiBHaShSaSh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgVWk9RXQuZm9yRWFjaCxraT11Qy5hVHlwZWRBcnJheTsoMCx1Qy5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZm9yRWFjaCIsKGZ1bmN0aW9uKEEpe1VpKGtpKHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciBTaT1RZy5pbmNsdWRlcyxwaT11Qy5hVHlwZWRBcnJheTsoMCx1Qy5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiaW5jbHVkZXMiLChmdW5jdGlvbihBKXtyZXR1cm4gU2kocGkodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIE5pPVFnLmluZGV4T2YsTWk9dUMuYVR5cGVkQXJyYXk7KDAsdUMuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImluZGV4T2YiLChmdW5jdGlvbihBKXtyZXR1cm4gTmkoTWkodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIHZpPU4sWWk9dUMsSGk9b1EsTGk9VEEoIml0ZXJhdG9yIiksSmk9dmkuVWludDhBcnJheSxtaT1IaS52YWx1ZXMsS2k9SGkua2V5cyx4aT1IaS5lbnRyaWVzLHFpPVlpLmFUeXBlZEFycmF5LGJpPVlpLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QsVGk9SmkmJkppLnByb3RvdHlwZVtMaV0sT2k9ISFUaSYmKCJ2YWx1ZXMiPT1UaS5uYW1lfHxudWxsPT1UaS5uYW1lKSxQaT1mdW5jdGlvbigpe3JldHVybiBtaS5jYWxsKHFpKHRoaXMpKX07YmkoImVudHJpZXMiLChmdW5jdGlvbigpe3JldHVybiB4aS5jYWxsKHFpKHRoaXMpKX0pKSxiaSgia2V5cyIsKGZ1bmN0aW9uKCl7cmV0dXJuIEtpLmNhbGwocWkodGhpcykpfSkpLGJpKCJ2YWx1ZXMiLFBpLCFPaSksYmkoTGksUGksIU9pKTt2YXIgamk9dUMuYVR5cGVkQXJyYXksV2k9W10uam9pbjsoMCx1Qy5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiam9pbiIsKGZ1bmN0aW9uKEEpe3JldHVybiBXaS5hcHBseShqaSh0aGlzKSxhcmd1bWVudHMpfSkpO3ZhciBaaT1ELFhpPWZ1bmN0aW9uKEEsZyl7dmFyIEk9W11bQV07cmV0dXJuISFJJiZaaSgoZnVuY3Rpb24oKXtJLmNhbGwobnVsbCxnfHxmdW5jdGlvbigpe3Rocm93IDF9LDEpfSkpfSxWaT1TLHppPWpBLF9pPVhBLCRpPVhpLEFlPU1hdGgubWluLGdlPVtdLmxhc3RJbmRleE9mLEllPSEhZ2UmJjEvWzFdLmxhc3RJbmRleE9mKDEsLTApPDAsQmU9JGkoImxhc3RJbmRleE9mIiksUWU9SWV8fCFCZT9mdW5jdGlvbihBKXtpZihJZSlyZXR1cm4gZ2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfHwwO3ZhciBnPVZpKHRoaXMpLEk9X2koZy5sZW5ndGgpLEI9SS0xO2Zvcihhcmd1bWVudHMubGVuZ3RoPjEmJihCPUFlKEIsemkoYXJndW1lbnRzWzFdKSkpLEI8MCYmKEI9SStCKTtCPj0wO0ItLSlpZihCIGluIGcmJmdbQl09PT1BKXJldHVybiBCfHwwO3JldHVybi0xfTpnZSxFZT1RZSxDZT11Qy5hVHlwZWRBcnJheTsoMCx1Qy5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgibGFzdEluZGV4T2YiLChmdW5jdGlvbihBKXtyZXR1cm4gRWUuYXBwbHkoQ2UodGhpcyksYXJndW1lbnRzKX0pKTt2YXIgdGU9RXQubWFwLGllPWZpLGVlPXVDLmFUeXBlZEFycmF5LG9lPXVDLmFUeXBlZEFycmF5Q29uc3RydWN0b3I7KDAsdUMuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoIm1hcCIsKGZ1bmN0aW9uKEEpe3JldHVybiB0ZShlZSh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLChmdW5jdGlvbihBLGcpe3JldHVybiBuZXcob2UoaWUoQSxBLmNvbnN0cnVjdG9yKSkpKGcpfSkpfSkpO3ZhciByZT1KQyxuZT1uQSxhZT1HLHNlPVhBLGNlPWZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQixRKXtyZShJKTt2YXIgRT1uZShnKSxDPWFlKEUpLHQ9c2UoRS5sZW5ndGgpLGk9QT90LTE6MCxlPUE/LTE6MTtpZihCPDIpZm9yKDs7KXtpZihpIGluIEMpe1E9Q1tpXSxpKz1lO2JyZWFrfWlmKGkrPWUsQT9pPDA6dDw9aSl0aHJvdyBUeXBlRXJyb3IoIlJlZHVjZSBvZiBlbXB0eSBhcnJheSB3aXRoIG5vIGluaXRpYWwgdmFsdWUiKX1mb3IoO0E/aT49MDp0Pmk7aSs9ZSlpIGluIEMmJihRPUkoUSxDW2ldLGksRSkpO3JldHVybiBRfX0saGU9e2xlZnQ6Y2UoITEpLHJpZ2h0OmNlKCEwKX0sZmU9aGUubGVmdCx1ZT11Qy5hVHlwZWRBcnJheTsoMCx1Qy5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgicmVkdWNlIiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZlKHVlKHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIHllPWhlLnJpZ2h0LERlPXVDLmFUeXBlZEFycmF5OygwLHVDLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJyZWR1Y2VSaWdodCIsKGZ1bmN0aW9uKEEpe3JldHVybiB5ZShEZSh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciBsZT11Qy5hVHlwZWRBcnJheSx3ZT11Qy5leHBvcnRUeXBlZEFycmF5TWV0aG9kLGRlPU1hdGguZmxvb3I7d2UoInJldmVyc2UiLChmdW5jdGlvbigpe2Zvcih2YXIgQSxnPXRoaXMsST1sZShnKS5sZW5ndGgsQj1kZShJLzIpLFE9MDtRPEI7KUE9Z1tRXSxnW1ErK109Z1stLUldLGdbSV09QTtyZXR1cm4gZ30pKTt2YXIgRmU9WEEsR2U9a0MsUmU9bkEsVWU9dUMuYVR5cGVkQXJyYXk7KDAsdUMuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoInNldCIsKGZ1bmN0aW9uKEEpe1VlKHRoaXMpO3ZhciBnPUdlKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDEpLEk9dGhpcy5sZW5ndGgsQj1SZShBKSxRPUZlKEIubGVuZ3RoKSxFPTA7aWYoUStnPkkpdGhyb3cgUmFuZ2VFcnJvcigiV3JvbmcgbGVuZ3RoIik7Zm9yKDtFPFE7KXRoaXNbZytFXT1CW0UrK119KSxEKChmdW5jdGlvbigpe25ldyBJbnQ4QXJyYXkoMSkuc2V0KHt9KX0pKSk7dmFyIGtlPWZpLFNlPXVDLmFUeXBlZEFycmF5LHBlPXVDLmFUeXBlZEFycmF5Q29uc3RydWN0b3IsTmU9W10uc2xpY2U7KDAsdUMuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoInNsaWNlIiwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9TmUuY2FsbChTZSh0aGlzKSxBLGcpLEI9a2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKSxRPTAsRT1JLmxlbmd0aCxDPW5ldyhwZShCKSkoRSk7RT5ROylDW1FdPUlbUSsrXTtyZXR1cm4gQ30pLEQoKGZ1bmN0aW9uKCl7bmV3IEludDhBcnJheSgxKS5zbGljZSgpfSkpKTt2YXIgTWU9RXQuc29tZSx2ZT11Qy5hVHlwZWRBcnJheTsoMCx1Qy5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic29tZSIsKGZ1bmN0aW9uKEEpe3JldHVybiBNZSh2ZSh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgWWU9dUMuYVR5cGVkQXJyYXksSGU9W10uc29ydDsoMCx1Qy5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic29ydCIsKGZ1bmN0aW9uKEEpe3JldHVybiBIZS5jYWxsKFllKHRoaXMpLEEpfSkpO3ZhciBMZT1YQSxKZT0kQSxtZT1maSxLZT11Qy5hVHlwZWRBcnJheTsoMCx1Qy5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic3ViYXJyYXkiLChmdW5jdGlvbihBLGcpe3ZhciBJPUtlKHRoaXMpLEI9SS5sZW5ndGgsUT1KZShBLEIpO3JldHVybiBuZXcobWUoSSxJLmNvbnN0cnVjdG9yKSkoSS5idWZmZXIsSS5ieXRlT2Zmc2V0K1EqSS5CWVRFU19QRVJfRUxFTUVOVCxMZSgodm9pZCAwPT09Zz9COkplKGcsQikpLVEpKX0pKTt2YXIgeGU9dUMscWU9RCxiZT1OLkludDhBcnJheSxUZT14ZS5hVHlwZWRBcnJheSxPZT14ZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kLFBlPVtdLnRvTG9jYWxlU3RyaW5nLGplPVtdLnNsaWNlLFdlPSEhYmUmJnFlKChmdW5jdGlvbigpe1BlLmNhbGwobmV3IGJlKDEpKX0pKTtPZSgidG9Mb2NhbGVTdHJpbmciLChmdW5jdGlvbigpe3JldHVybiBQZS5hcHBseShXZT9qZS5jYWxsKFRlKHRoaXMpKTpUZSh0aGlzKSxhcmd1bWVudHMpfSkscWUoKGZ1bmN0aW9uKCl7cmV0dXJuWzEsMl0udG9Mb2NhbGVTdHJpbmcoKSE9bmV3IGJlKFsxLDJdKS50b0xvY2FsZVN0cmluZygpfSkpfHwhcWUoKGZ1bmN0aW9uKCl7YmUucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLmNhbGwoWzEsMl0pfSkpKTt2YXIgWmU9dUMuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxYZT1ELFZlPU4uVWludDhBcnJheSx6ZT1WZSYmVmUucHJvdG90eXBlfHx7fSxfZT1bXS50b1N0cmluZywkZT1bXS5qb2luO1hlKChmdW5jdGlvbigpe19lLmNhbGwoe30pfSkpJiYoX2U9ZnVuY3Rpb24oKXtyZXR1cm4gJGUuY2FsbCh0aGlzKX0pO3ZhciBBbz16ZS50b1N0cmluZyE9X2U7WmUoInRvU3RyaW5nIixfZSxBbyk7dmFyIGdvPVAsSW89WSxCbz16LFFvPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQj1nbyhnKTtCIGluIEE/SW8uZihBLEIsQm8oMCxJKSk6QVtCXT1JfSxFbz1ELENvPXBBLHRvPVRBKCJzcGVjaWVzIiksaW89ZnVuY3Rpb24oQSl7cmV0dXJuIENvPj01MXx8IUVvKChmdW5jdGlvbigpe3ZhciBnPVtdO3JldHVybihnLmNvbnN0cnVjdG9yPXt9KVt0b109ZnVuY3Rpb24oKXtyZXR1cm57Zm9vOjF9fSwxIT09Z1tBXShCb29sZWFuKS5mb299KSl9LGVvPXJCLG9vPUgscm89V0Msbm89JEEsYW89WEEsc289Uyxjbz1Rbyxobz1UQSxmbz1pbygic2xpY2UiKSx1bz1obygic3BlY2llcyIpLHlvPVtdLnNsaWNlLERvPU1hdGgubWF4O2VvKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IWZvfSx7c2xpY2U6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFEsRT1zbyh0aGlzKSxDPWFvKEUubGVuZ3RoKSx0PW5vKEEsQyksaT1ubyh2b2lkIDA9PT1nP0M6ZyxDKTtpZihybyhFKSYmKCJmdW5jdGlvbiIhPXR5cGVvZihJPUUuY29uc3RydWN0b3IpfHxJIT09QXJyYXkmJiFybyhJLnByb3RvdHlwZSk/b28oSSkmJm51bGw9PT0oST1JW3VvXSkmJihJPXZvaWQgMCk6ST12b2lkIDAsST09PUFycmF5fHx2b2lkIDA9PT1JKSlyZXR1cm4geW8uY2FsbChFLHQsaSk7Zm9yKEI9bmV3KHZvaWQgMD09PUk/QXJyYXk6SSkoRG8oaS10LDApKSxRPTA7dDxpO3QrKyxRKyspdCBpbiBFJiZjbyhCLFEsRVt0XSk7cmV0dXJuIEIubGVuZ3RoPVEsQn19KTt2YXIgbG89Uix3bz0iW1x0XG5cdlxmXHIgwqDhmoDigIDigIHigILigIPigITigIXigIbigIfigIjigInigIrigK/igZ/jgIBcdTIwMjhcdTIwMjlcdWZlZmZdIixGbz1SZWdFeHAoIl4iK3dvK3dvKyIqIiksR289UmVnRXhwKHdvK3dvKyIqJCIpLFJvPWZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnKXt2YXIgST1TdHJpbmcobG8oZykpO3JldHVybiAxJkEmJihJPUkucmVwbGFjZShGbywiIikpLDImQSYmKEk9SS5yZXBsYWNlKEdvLCIiKSksSX19LFVvPXtzdGFydDpSbygxKSxlbmQ6Um8oMiksdHJpbTpSbygzKX0sa289dixTbz1OLHBvPUJCLE5vPXZJLE1vPWNBLHZvPXcsWW89aXQsSG89UCxMbz1ELEpvPUhnLG1vPVlJLmYsS289ckkuZix4bz1ZLmYscW89VW8udHJpbSxibz0iTnVtYmVyIixUbz1Tb1tib10sT289VG8ucHJvdG90eXBlLFBvPXZvKEpvKE9vKSk9PWJvLGpvPWZ1bmN0aW9uKEEpe3ZhciBnLEksQixRLEUsQyx0LGksZT1IbyhBLCExKTtpZigic3RyaW5nIj09dHlwZW9mIGUmJmUubGVuZ3RoPjIpaWYoNDM9PT0oZz0oZT1xbyhlKSkuY2hhckNvZGVBdCgwKSl8fDQ1PT09Zyl7aWYoODg9PT0oST1lLmNoYXJDb2RlQXQoMikpfHwxMjA9PT1JKXJldHVybiBOYU59ZWxzZSBpZig0OD09PWcpe3N3aXRjaChlLmNoYXJDb2RlQXQoMSkpe2Nhc2UgNjY6Y2FzZSA5ODpCPTIsUT00OTticmVhaztjYXNlIDc5OmNhc2UgMTExOkI9OCxRPTU1O2JyZWFrO2RlZmF1bHQ6cmV0dXJuK2V9Zm9yKEM9KEU9ZS5zbGljZSgyKSkubGVuZ3RoLHQ9MDt0PEM7dCsrKWlmKChpPUUuY2hhckNvZGVBdCh0KSk8NDh8fGk+USlyZXR1cm4gTmFOO3JldHVybiBwYXJzZUludChFLEIpfXJldHVybitlfTtpZihwbyhibywhVG8oIiAwbzEiKXx8IVRvKCIwYjEiKXx8VG8oIisweDEiKSkpe2Zvcih2YXIgV28sWm89ZnVuY3Rpb24oQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aDwxPzA6QSxJPXRoaXM7cmV0dXJuIEkgaW5zdGFuY2VvZiBabyYmKFBvP0xvKChmdW5jdGlvbigpe09vLnZhbHVlT2YuY2FsbChJKX0pKTp2byhJKSE9Ym8pP1lvKG5ldyBUbyhqbyhnKSksSSxabyk6am8oZyl9LFhvPWtvP21vKFRvKToiTUFYX1ZBTFVFLE1JTl9WQUxVRSxOYU4sTkVHQVRJVkVfSU5GSU5JVFksUE9TSVRJVkVfSU5GSU5JVFksRVBTSUxPTixpc0Zpbml0ZSxpc0ludGVnZXIsaXNOYU4saXNTYWZlSW50ZWdlcixNQVhfU0FGRV9JTlRFR0VSLE1JTl9TQUZFX0lOVEVHRVIscGFyc2VGbG9hdCxwYXJzZUludCxpc0ludGVnZXIsZnJvbVN0cmluZyxyYW5nZSIuc3BsaXQoIiwiKSxWbz0wO1hvLmxlbmd0aD5WbztWbysrKU1vKFRvLFdvPVhvW1ZvXSkmJiFNbyhabyxXbykmJnhvKFpvLFdvLEtvKFRvLFdvKSk7Wm8ucHJvdG90eXBlPU9vLE9vLmNvbnN0cnVjdG9yPVpvLE5vKFNvLGJvLFpvKX12YXIgem89eGc7ckIoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwfSx7Y29weVdpdGhpbjp0aX0pLHpvKCJjb3B5V2l0aGluIik7dmFyIF9vPVFnLmluY2x1ZGVzLCRvPXhnO3JCKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMH0se2luY2x1ZGVzOmZ1bmN0aW9uKEEpe3JldHVybiBfbyh0aGlzLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLCRvKCJpbmNsdWRlcyIpO3ZhciBBcj12LGdyPUQsSXI9c2csQnI9SkksUXI9bkksRXI9bkEsQ3I9Ryx0cj1PYmplY3QuYXNzaWduLGlyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxlcj0hdHJ8fGdyKChmdW5jdGlvbigpe2lmKEFyJiYxIT09dHIoe2I6MX0sdHIoaXIoe30sImEiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lyKHRoaXMsImIiLHt2YWx1ZTozLGVudW1lcmFibGU6ITF9KX19KSx7YjoyfSkpLmIpcmV0dXJuITA7dmFyIEE9e30sZz17fSxJPVN5bWJvbCgpLEI9ImFiY2RlZmdoaWprbG1ub3BxcnN0IjtyZXR1cm4gQVtJXT03LEIuc3BsaXQoIiIpLmZvckVhY2goKGZ1bmN0aW9uKEEpe2dbQV09QX0pKSw3IT10cih7fSxBKVtJXXx8SXIodHIoe30sZykpLmpvaW4oIiIpIT1CfSkpP2Z1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPUVyKEEpLEI9YXJndW1lbnRzLmxlbmd0aCxRPTEsRT1Cci5mLEM9UXIuZjtCPlE7KWZvcih2YXIgdCxpPUNyKGFyZ3VtZW50c1tRKytdKSxlPUU/SXIoaSkuY29uY2F0KEUoaSkpOklyKGkpLG89ZS5sZW5ndGgscj0wO28+cjspdD1lW3IrK10sQXImJiFDLmNhbGwoaSx0KXx8KElbdF09aVt0XSk7cmV0dXJuIEl9OnRyLG9yPWVyO3JCKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6T2JqZWN0LmFzc2lnbiE9PW9yfSx7YXNzaWduOm9yfSk7dmFyIHJyLG5yLGFyLHNyPU4uUHJvbWlzZSxjcj1ULGhyPWZ1bmN0aW9uKEEpe3ZhciBnPUEucmV0dXJuO2lmKHZvaWQgMCE9PWcpcmV0dXJuIGNyKGcuY2FsbChBKSkudmFsdWV9LGZyPVQsdXI9TEMseXI9WEEsRHI9S0MsbHI9TUMsd3I9aHIsZHI9ZnVuY3Rpb24oQSxnKXt0aGlzLnN0b3BwZWQ9QSx0aGlzLnJlc3VsdD1nfSxGcj0vKD86aXBob25lfGlwb2R8aXBhZCkuKmFwcGxld2Via2l0L2kudGVzdChGQSksR3I9InByb2Nlc3MiPT13KE4ucHJvY2VzcyksUnI9TixVcj1ELGtyPUtDLFNyPXlnLHByPUssTnI9RnIsTXI9R3IsdnI9UnIubG9jYXRpb24sWXI9UnIuc2V0SW1tZWRpYXRlLEhyPVJyLmNsZWFySW1tZWRpYXRlLExyPVJyLnByb2Nlc3MsSnI9UnIuTWVzc2FnZUNoYW5uZWwsbXI9UnIuRGlzcGF0Y2gsS3I9MCx4cj17fSxxcj0ib25yZWFkeXN0YXRlY2hhbmdlIixicj1mdW5jdGlvbihBKXtpZih4ci5oYXNPd25Qcm9wZXJ0eShBKSl7dmFyIGc9eHJbQV07ZGVsZXRlIHhyW0FdLGcoKX19LFRyPWZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbigpe2JyKEEpfX0sT3I9ZnVuY3Rpb24oQSl7YnIoQS5kYXRhKX0sUHI9ZnVuY3Rpb24oQSl7UnIucG9zdE1lc3NhZ2UoQSsiIix2ci5wcm90b2NvbCsiLy8iK3ZyLmhvc3QpfTtZciYmSHJ8fChZcj1mdW5jdGlvbihBKXtmb3IodmFyIGc9W10sST0xO2FyZ3VtZW50cy5sZW5ndGg+STspZy5wdXNoKGFyZ3VtZW50c1tJKytdKTtyZXR1cm4geHJbKytLcl09ZnVuY3Rpb24oKXsoImZ1bmN0aW9uIj09dHlwZW9mIEE/QTpGdW5jdGlvbihBKSkuYXBwbHkodm9pZCAwLGcpfSxycihLciksS3J9LEhyPWZ1bmN0aW9uKEEpe2RlbGV0ZSB4cltBXX0sTXI/cnI9ZnVuY3Rpb24oQSl7THIubmV4dFRpY2soVHIoQSkpfTptciYmbXIubm93P3JyPWZ1bmN0aW9uKEEpe21yLm5vdyhUcihBKSl9OkpyJiYhTnI/KGFyPShucj1uZXcgSnIpLnBvcnQyLG5yLnBvcnQxLm9ubWVzc2FnZT1Pcixycj1rcihhci5wb3N0TWVzc2FnZSxhciwxKSk6UnIuYWRkRXZlbnRMaXN0ZW5lciYmImZ1bmN0aW9uIj09dHlwZW9mIHBvc3RNZXNzYWdlJiYhUnIuaW1wb3J0U2NyaXB0cyYmdnImJiJmaWxlOiIhPT12ci5wcm90b2NvbCYmIVVyKFByKT8ocnI9UHIsUnIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsT3IsITEpKTpycj1xciBpbiBwcigic2NyaXB0Iik/ZnVuY3Rpb24oQSl7U3IuYXBwZW5kQ2hpbGQocHIoInNjcmlwdCIpKVtxcl09ZnVuY3Rpb24oKXtTci5yZW1vdmVDaGlsZCh0aGlzKSxicihBKX19OmZ1bmN0aW9uKEEpe3NldFRpbWVvdXQoVHIoQSksMCl9KTt2YXIganIsV3IsWnIsWHIsVnIsenIsX3IsJHIsQW49e3NldDpZcixjbGVhcjpIcn0sZ249L3dlYjBzKD8hLipjaHJvbWUpL2kudGVzdChGQSksSW49TixCbj1ySS5mLFFuPUFuLnNldCxFbj1GcixDbj1nbix0bj1Hcixlbj1Jbi5NdXRhdGlvbk9ic2VydmVyfHxJbi5XZWJLaXRNdXRhdGlvbk9ic2VydmVyLG9uPUluLmRvY3VtZW50LHJuPUluLnByb2Nlc3Msbm49SW4uUHJvbWlzZSxhbj1CbihJbiwicXVldWVNaWNyb3Rhc2siKSxzbj1hbiYmYW4udmFsdWU7c258fChqcj1mdW5jdGlvbigpe3ZhciBBLGc7Zm9yKHRuJiYoQT1ybi5kb21haW4pJiZBLmV4aXQoKTtXcjspe2c9V3IuZm4sV3I9V3IubmV4dDt0cnl7ZygpfWNhdGNoKFBsKXt0aHJvdyBXcj9YcigpOlpyPXZvaWQgMCxQbH19WnI9dm9pZCAwLEEmJkEuZW50ZXIoKX0sRW58fHRufHxDbnx8IWVufHwhb24/bm4mJm5uLnJlc29sdmU/KChfcj1ubi5yZXNvbHZlKHZvaWQgMCkpLmNvbnN0cnVjdG9yPW5uLCRyPV9yLnRoZW4sWHI9ZnVuY3Rpb24oKXskci5jYWxsKF9yLGpyKX0pOlhyPXRuP2Z1bmN0aW9uKCl7cm4ubmV4dFRpY2soanIpfTpmdW5jdGlvbigpe1FuLmNhbGwoSW4sanIpfTooVnI9ITAsenI9b24uY3JlYXRlVGV4dE5vZGUoIiIpLG5ldyBlbihqcikub2JzZXJ2ZSh6cix7Y2hhcmFjdGVyRGF0YTohMH0pLFhyPWZ1bmN0aW9uKCl7enIuZGF0YT1Wcj0hVnJ9KSk7dmFyIGNuPXNufHxmdW5jdGlvbihBKXt2YXIgZz17Zm46QSxuZXh0OnZvaWQgMH07WnImJihaci5uZXh0PWcpLFdyfHwoV3I9ZyxYcigpKSxacj1nfSxobj17fSxmbj1KQyx1bj1mdW5jdGlvbihBKXt2YXIgZyxJO3RoaXMucHJvbWlzZT1uZXcgQSgoZnVuY3Rpb24oQSxCKXtpZih2b2lkIDAhPT1nfHx2b2lkIDAhPT1JKXRocm93IFR5cGVFcnJvcigiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTtnPUEsST1CfSkpLHRoaXMucmVzb2x2ZT1mbihnKSx0aGlzLnJlamVjdD1mbihJKX07aG4uZj1mdW5jdGlvbihBKXtyZXR1cm4gbmV3IHVuKEEpfTt2YXIgeW4sRG4sbG4sd24sZG49VCxGbj1ILEduPWhuLFJuPU4sVW49Im9iamVjdCI9PXR5cGVvZiB3aW5kb3csa249ckIsU249Tixwbj1kQSxObj1zcixNbj12SSx2bj1hUSxZbj1LQixIbj1TQixMbj1GRSxKbj1ILG1uPUpDLEtuPXNRLHhuPVdnLHFuPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEUsQyx0LGksZSxvPUkmJkkudGhhdCxyPSEoIUl8fCFJLkFTX0VOVFJJRVMpLG49ISghSXx8IUkuSVNfSVRFUkFUT1IpLGE9ISghSXx8IUkuSU5URVJSVVBURUQpLHM9RHIoZyxvLDErcithKSxjPWZ1bmN0aW9uKEEpe3JldHVybiBCJiZ3cihCKSxuZXcgZHIoITAsQSl9LGg9ZnVuY3Rpb24oQSl7cmV0dXJuIHI/KGZyKEEpLGE/cyhBWzBdLEFbMV0sYyk6cyhBWzBdLEFbMV0pKTphP3MoQSxjKTpzKEEpfTtpZihuKUI9QTtlbHNle2lmKCJmdW5jdGlvbiIhPXR5cGVvZihRPWxyKEEpKSl0aHJvdyBUeXBlRXJyb3IoIlRhcmdldCBpcyBub3QgaXRlcmFibGUiKTtpZih1cihRKSl7Zm9yKEU9MCxDPXlyKEEubGVuZ3RoKTtDPkU7RSsrKWlmKCh0PWgoQVtFXSkpJiZ0IGluc3RhbmNlb2YgZHIpcmV0dXJuIHQ7cmV0dXJuIG5ldyBkcighMSl9Qj1RLmNhbGwoQSl9Zm9yKGk9Qi5uZXh0OyEoZT1pLmNhbGwoQikpLmRvbmU7KXt0cnl7dD1oKGUudmFsdWUpfWNhdGNoKFBsKXt0aHJvdyB3cihCKSxQbH1pZigib2JqZWN0Ij09dHlwZW9mIHQmJnQmJnQgaW5zdGFuY2VvZiBkcilyZXR1cm4gdH1yZXR1cm4gbmV3IGRyKCExKX0sYm49VEUsVG49ZmksT249QW4uc2V0LFBuPWNuLGpuPWZ1bmN0aW9uKEEsZyl7aWYoZG4oQSksRm4oZykmJmcuY29uc3RydWN0b3I9PT1BKXJldHVybiBnO3ZhciBJPUduLmYoQSk7cmV0dXJuKDAsSS5yZXNvbHZlKShnKSxJLnByb21pc2V9LFduPWZ1bmN0aW9uKEEsZyl7dmFyIEk9Um4uY29uc29sZTtJJiZJLmVycm9yJiYoMT09PWFyZ3VtZW50cy5sZW5ndGg/SS5lcnJvcihBKTpJLmVycm9yKEEsZykpfSxabj1obixYbj1mdW5jdGlvbihBKXt0cnl7cmV0dXJue2Vycm9yOiExLHZhbHVlOkEoKX19Y2F0Y2goUGwpe3JldHVybntlcnJvcjohMCx2YWx1ZTpQbH19fSxWbj1vSSx6bj1CQixfbj1Vbiwkbj1HcixBYT1wQSxnYT1UQSgic3BlY2llcyIpLElhPSJQcm9taXNlIixCYT1Wbi5nZXQsUWE9Vm4uc2V0LEVhPVZuLmdldHRlckZvcihJYSksQ2E9Tm4mJk5uLnByb3RvdHlwZSx0YT1ObixpYT1DYSxlYT1Tbi5UeXBlRXJyb3Isb2E9U24uZG9jdW1lbnQscmE9U24ucHJvY2VzcyxuYT1abi5mLGFhPW5hLHNhPSEhKG9hJiZvYS5jcmVhdGVFdmVudCYmU24uZGlzcGF0Y2hFdmVudCksY2E9ImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2VSZWplY3Rpb25FdmVudCxoYT0idW5oYW5kbGVkcmVqZWN0aW9uIixmYT0hMSx1YT16bihJYSwoZnVuY3Rpb24oKXt2YXIgQT14bih0YSkhPT1TdHJpbmcodGEpO2lmKCFBJiY2Nj09PUFhKXJldHVybiEwO2lmKEFhPj01MSYmL25hdGl2ZSBjb2RlLy50ZXN0KHRhKSlyZXR1cm4hMTt2YXIgZz1uZXcgdGEoKGZ1bmN0aW9uKEEpe0EoMSl9KSksST1mdW5jdGlvbihBKXtBKChmdW5jdGlvbigpe30pLChmdW5jdGlvbigpe30pKX07cmV0dXJuKGcuY29uc3RydWN0b3I9e30pW2dhXT1JLCEoZmE9Zy50aGVuKChmdW5jdGlvbigpe30pKWluc3RhbmNlb2YgSSl8fCFBJiZfbiYmIWNhfSkpLHlhPXVhfHwhYm4oKGZ1bmN0aW9uKEEpe3RhLmFsbChBKS5jYXRjaCgoZnVuY3Rpb24oKXt9KSl9KSksRGE9ZnVuY3Rpb24oQSl7dmFyIGc7cmV0dXJuISghSm4oQSl8fCJmdW5jdGlvbiIhPXR5cGVvZihnPUEudGhlbikpJiZnfSxsYT1mdW5jdGlvbihBLGcpe2lmKCFBLm5vdGlmaWVkKXtBLm5vdGlmaWVkPSEwO3ZhciBJPUEucmVhY3Rpb25zO1BuKChmdW5jdGlvbigpe2Zvcih2YXIgQj1BLnZhbHVlLFE9MT09QS5zdGF0ZSxFPTA7SS5sZW5ndGg+RTspe3ZhciBDLHQsaSxlPUlbRSsrXSxvPVE/ZS5vazplLmZhaWwscj1lLnJlc29sdmUsbj1lLnJlamVjdCxhPWUuZG9tYWluO3RyeXtvPyhRfHwoMj09PUEucmVqZWN0aW9uJiZHYShBKSxBLnJlamVjdGlvbj0xKSwhMD09PW8/Qz1COihhJiZhLmVudGVyKCksQz1vKEIpLGEmJihhLmV4aXQoKSxpPSEwKSksQz09PWUucHJvbWlzZT9uKGVhKCJQcm9taXNlLWNoYWluIGN5Y2xlIikpOih0PURhKEMpKT90LmNhbGwoQyxyLG4pOnIoQykpOm4oQil9Y2F0Y2goUGwpe2EmJiFpJiZhLmV4aXQoKSxuKFBsKX19QS5yZWFjdGlvbnM9W10sQS5ub3RpZmllZD0hMSxnJiYhQS5yZWplY3Rpb24mJmRhKEEpfSkpfX0sd2E9ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFE7c2E/KChCPW9hLmNyZWF0ZUV2ZW50KCJFdmVudCIpKS5wcm9taXNlPWcsQi5yZWFzb249SSxCLmluaXRFdmVudChBLCExLCEwKSxTbi5kaXNwYXRjaEV2ZW50KEIpKTpCPXtwcm9taXNlOmcscmVhc29uOkl9LCFjYSYmKFE9U25bIm9uIitBXSk/UShCKTpBPT09aGEmJlduKCJVbmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb24iLEkpfSxkYT1mdW5jdGlvbihBKXtPbi5jYWxsKFNuLChmdW5jdGlvbigpe3ZhciBnLEk9QS5mYWNhZGUsQj1BLnZhbHVlO2lmKEZhKEEpJiYoZz1YbigoZnVuY3Rpb24oKXskbj9yYS5lbWl0KCJ1bmhhbmRsZWRSZWplY3Rpb24iLEIsSSk6d2EoaGEsSSxCKX0pKSxBLnJlamVjdGlvbj0kbnx8RmEoQSk/MjoxLGcuZXJyb3IpKXRocm93IGcudmFsdWV9KSl9LEZhPWZ1bmN0aW9uKEEpe3JldHVybiAxIT09QS5yZWplY3Rpb24mJiFBLnBhcmVudH0sR2E9ZnVuY3Rpb24oQSl7T24uY2FsbChTbiwoZnVuY3Rpb24oKXt2YXIgZz1BLmZhY2FkZTskbj9yYS5lbWl0KCJyZWplY3Rpb25IYW5kbGVkIixnKTp3YSgicmVqZWN0aW9uaGFuZGxlZCIsZyxBLnZhbHVlKX0pKX0sUmE9ZnVuY3Rpb24oQSxnLEkpe3JldHVybiBmdW5jdGlvbihCKXtBKGcsQixJKX19LFVhPWZ1bmN0aW9uKEEsZyxJKXtBLmRvbmV8fChBLmRvbmU9ITAsSSYmKEE9SSksQS52YWx1ZT1nLEEuc3RhdGU9MixsYShBLCEwKSl9LGthPWZ1bmN0aW9uKEEsZyxJKXtpZighQS5kb25lKXtBLmRvbmU9ITAsSSYmKEE9SSk7dHJ5e2lmKEEuZmFjYWRlPT09Zyl0aHJvdyBlYSgiUHJvbWlzZSBjYW4ndCBiZSByZXNvbHZlZCBpdHNlbGYiKTt2YXIgQj1EYShnKTtCP1BuKChmdW5jdGlvbigpe3ZhciBJPXtkb25lOiExfTt0cnl7Qi5jYWxsKGcsUmEoa2EsSSxBKSxSYShVYSxJLEEpKX1jYXRjaChQbCl7VWEoSSxQbCxBKX19KSk6KEEudmFsdWU9ZyxBLnN0YXRlPTEsbGEoQSwhMSkpfWNhdGNoKFBsKXtVYSh7ZG9uZTohMX0sUGwsQSl9fX07aWYodWEmJihpYT0odGE9ZnVuY3Rpb24oQSl7S24odGhpcyx0YSxJYSksbW4oQSkseW4uY2FsbCh0aGlzKTt2YXIgZz1CYSh0aGlzKTt0cnl7QShSYShrYSxnKSxSYShVYSxnKSl9Y2F0Y2goUGwpe1VhKGcsUGwpfX0pLnByb3RvdHlwZSwoeW49ZnVuY3Rpb24oQSl7UWEodGhpcyx7dHlwZTpJYSxkb25lOiExLG5vdGlmaWVkOiExLHBhcmVudDohMSxyZWFjdGlvbnM6W10scmVqZWN0aW9uOiExLHN0YXRlOjAsdmFsdWU6dm9pZCAwfSl9KS5wcm90b3R5cGU9dm4oaWEse3RoZW46ZnVuY3Rpb24oQSxnKXt2YXIgST1FYSh0aGlzKSxCPW5hKFRuKHRoaXMsdGEpKTtyZXR1cm4gQi5vaz0iZnVuY3Rpb24iIT10eXBlb2YgQXx8QSxCLmZhaWw9ImZ1bmN0aW9uIj09dHlwZW9mIGcmJmcsQi5kb21haW49JG4/cmEuZG9tYWluOnZvaWQgMCxJLnBhcmVudD0hMCxJLnJlYWN0aW9ucy5wdXNoKEIpLDAhPUkuc3RhdGUmJmxhKEksITEpLEIucHJvbWlzZX0sY2F0Y2g6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsQSl9fSksRG49ZnVuY3Rpb24oKXt2YXIgQT1uZXcgeW4sZz1CYShBKTt0aGlzLnByb21pc2U9QSx0aGlzLnJlc29sdmU9UmEoa2EsZyksdGhpcy5yZWplY3Q9UmEoVWEsZyl9LFpuLmY9bmE9ZnVuY3Rpb24oQSl7cmV0dXJuIEE9PT10YXx8QT09PWxuP25ldyBEbihBKTphYShBKX0sImZ1bmN0aW9uIj09dHlwZW9mIE5uJiZDYSE9PU9iamVjdC5wcm90b3R5cGUpKXt3bj1DYS50aGVuLGZhfHwoTW4oQ2EsInRoZW4iLChmdW5jdGlvbihBLGcpe3ZhciBJPXRoaXM7cmV0dXJuIG5ldyB0YSgoZnVuY3Rpb24oQSxnKXt3bi5jYWxsKEksQSxnKX0pKS50aGVuKEEsZyl9KSx7dW5zYWZlOiEwfSksTW4oQ2EsImNhdGNoIixpYS5jYXRjaCx7dW5zYWZlOiEwfSkpO3RyeXtkZWxldGUgQ2EuY29uc3RydWN0b3J9Y2F0Y2goUGwpe31ZbiYmWW4oQ2EsaWEpfWtuKHtnbG9iYWw6ITAsd3JhcDohMCxmb3JjZWQ6dWF9LHtQcm9taXNlOnRhfSksSG4odGEsSWEsITEpLExuKElhKSxsbj1wbihJYSksa24oe3RhcmdldDpJYSxzdGF0OiEwLGZvcmNlZDp1YX0se3JlamVjdDpmdW5jdGlvbihBKXt2YXIgZz1uYSh0aGlzKTtyZXR1cm4gZy5yZWplY3QuY2FsbCh2b2lkIDAsQSksZy5wcm9taXNlfX0pLGtuKHt0YXJnZXQ6SWEsc3RhdDohMCxmb3JjZWQ6dWF9LHtyZXNvbHZlOmZ1bmN0aW9uKEEpe3JldHVybiBqbih0aGlzLEEpfX0pLGtuKHt0YXJnZXQ6SWEsc3RhdDohMCxmb3JjZWQ6eWF9LHthbGw6ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcyxJPW5hKGcpLEI9SS5yZXNvbHZlLFE9SS5yZWplY3QsRT1YbigoZnVuY3Rpb24oKXt2YXIgST1tbihnLnJlc29sdmUpLEU9W10sQz0wLHQ9MTtxbihBLChmdW5jdGlvbihBKXt2YXIgaT1DKyssZT0hMTtFLnB1c2godm9pZCAwKSx0KyssSS5jYWxsKGcsQSkudGhlbigoZnVuY3Rpb24oQSl7ZXx8KGU9ITAsRVtpXT1BLC0tdHx8QihFKSl9KSxRKX0pKSwtLXR8fEIoRSl9KSk7cmV0dXJuIEUuZXJyb3ImJlEoRS52YWx1ZSksSS5wcm9taXNlfSxyYWNlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMsST1uYShnKSxCPUkucmVqZWN0LFE9WG4oKGZ1bmN0aW9uKCl7dmFyIFE9bW4oZy5yZXNvbHZlKTtxbihBLChmdW5jdGlvbihBKXtRLmNhbGwoZyxBKS50aGVuKEkucmVzb2x2ZSxCKX0pKX0pKTtyZXR1cm4gUS5lcnJvciYmQihRLnZhbHVlKSxJLnByb21pc2V9fSk7dmFyIFNhPUgscGE9dyxOYT1UQSgibWF0Y2giKSxNYT1mdW5jdGlvbihBKXt2YXIgZztyZXR1cm4gU2EoQSkmJih2b2lkIDAhPT0oZz1BW05hXSk/ISFnOiJSZWdFeHAiPT1wYShBKSl9LHZhPVQsWWE9ZnVuY3Rpb24oKXt2YXIgQT12YSh0aGlzKSxnPSIiO3JldHVybiBBLmdsb2JhbCYmKGcrPSJnIiksQS5pZ25vcmVDYXNlJiYoZys9ImkiKSxBLm11bHRpbGluZSYmKGcrPSJtIiksQS5kb3RBbGwmJihnKz0icyIpLEEudW5pY29kZSYmKGcrPSJ1IiksQS5zdGlja3kmJihnKz0ieSIpLGd9LEhhPXt9LExhPUQ7ZnVuY3Rpb24gSmEoQSxnKXtyZXR1cm4gUmVnRXhwKEEsZyl9SGEuVU5TVVBQT1JURURfWT1MYSgoZnVuY3Rpb24oKXt2YXIgQT1KYSgiYSIsInkiKTtyZXR1cm4gQS5sYXN0SW5kZXg9MixudWxsIT1BLmV4ZWMoImFiY2QiKX0pKSxIYS5CUk9LRU5fQ0FSRVQ9TGEoKGZ1bmN0aW9uKCl7dmFyIEE9SmEoIl5yIiwiZ3kiKTtyZXR1cm4gQS5sYXN0SW5kZXg9MixudWxsIT1BLmV4ZWMoInN0ciIpfSkpO3ZhciBtYT12LEthPU4seGE9QkIscWE9aXQsYmE9WS5mLFRhPVlJLmYsT2E9TWEsUGE9WWEsamE9SGEsV2E9dkksWmE9RCxYYT1vSS5lbmZvcmNlLFZhPUZFLHphPVRBKCJtYXRjaCIpLF9hPUthLlJlZ0V4cCwkYT1fYS5wcm90b3R5cGUsQXM9L2EvZyxncz0vYS9nLElzPW5ldyBfYShBcykhPT1BcyxCcz1qYS5VTlNVUFBPUlRFRF9ZO2lmKG1hJiZ4YSgiUmVnRXhwIiwhSXN8fEJzfHxaYSgoZnVuY3Rpb24oKXtyZXR1cm4gZ3NbemFdPSExLF9hKEFzKSE9QXN8fF9hKGdzKT09Z3N8fCIvYS9pIiE9X2EoQXMsImkiKX0pKSkpe2Zvcih2YXIgUXM9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCPXRoaXMgaW5zdGFuY2VvZiBRcyxRPU9hKEEpLEU9dm9pZCAwPT09ZztpZighQiYmUSYmQS5jb25zdHJ1Y3Rvcj09PVFzJiZFKXJldHVybiBBO0lzP1EmJiFFJiYoQT1BLnNvdXJjZSk6QSBpbnN0YW5jZW9mIFFzJiYoRSYmKGc9UGEuY2FsbChBKSksQT1BLnNvdXJjZSksQnMmJihJPSEhZyYmZy5pbmRleE9mKCJ5Iik+LTEpJiYoZz1nLnJlcGxhY2UoL3kvZywiIikpO3ZhciBDPXFhKElzP25ldyBfYShBLGcpOl9hKEEsZyksQj90aGlzOiRhLFFzKTtCcyYmSSYmKFhhKEMpLnN0aWNreT0hMCk7cmV0dXJuIEN9LEVzPWZ1bmN0aW9uKEEpe0EgaW4gUXN8fGJhKFFzLEEse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gX2FbQV19LHNldDpmdW5jdGlvbihnKXtfYVtBXT1nfX0pfSxDcz1UYShfYSksdHM9MDtDcy5sZW5ndGg+dHM7KUVzKENzW3RzKytdKTskYS5jb25zdHJ1Y3Rvcj1RcyxRcy5wcm90b3R5cGU9JGEsV2EoS2EsIlJlZ0V4cCIsUXMpfVZhKCJSZWdFeHAiKTt2YXIgaXMsZXMsb3M9WWEscnM9SGEsbnM9b0EsYXM9UmVnRXhwLnByb3RvdHlwZS5leGVjLHNzPW5zKCJuYXRpdmUtc3RyaW5nLXJlcGxhY2UiLFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSksY3M9YXMsaHM9KGlzPS9hLyxlcz0vYiovZyxhcy5jYWxsKGlzLCJhIiksYXMuY2FsbChlcywiYSIpLDAhPT1pcy5sYXN0SW5kZXh8fDAhPT1lcy5sYXN0SW5kZXgpLGZzPXJzLlVOU1VQUE9SVEVEX1l8fHJzLkJST0tFTl9DQVJFVCx1cz12b2lkIDAhPT0vKCk/Py8uZXhlYygiIilbMV07KGhzfHx1c3x8ZnMpJiYoY3M9ZnVuY3Rpb24oQSl7dmFyIGcsSSxCLFEsRT10aGlzLEM9ZnMmJkUuc3RpY2t5LHQ9b3MuY2FsbChFKSxpPUUuc291cmNlLGU9MCxvPUE7cmV0dXJuIEMmJigtMT09PSh0PXQucmVwbGFjZSgieSIsIiIpKS5pbmRleE9mKCJnIikmJih0Kz0iZyIpLG89U3RyaW5nKEEpLnNsaWNlKEUubGFzdEluZGV4KSxFLmxhc3RJbmRleD4wJiYoIUUubXVsdGlsaW5lfHxFLm11bHRpbGluZSYmIlxuIiE9PUFbRS5sYXN0SW5kZXgtMV0pJiYoaT0iKD86ICIraSsiKSIsbz0iICIrbyxlKyspLEk9bmV3IFJlZ0V4cCgiXig/OiIraSsiKSIsdCkpLHVzJiYoST1uZXcgUmVnRXhwKCJeIitpKyIkKD8hXFxzKSIsdCkpLGhzJiYoZz1FLmxhc3RJbmRleCksQj1hcy5jYWxsKEM/STpFLG8pLEM/Qj8oQi5pbnB1dD1CLmlucHV0LnNsaWNlKGUpLEJbMF09QlswXS5zbGljZShlKSxCLmluZGV4PUUubGFzdEluZGV4LEUubGFzdEluZGV4Kz1CWzBdLmxlbmd0aCk6RS5sYXN0SW5kZXg9MDpocyYmQiYmKEUubGFzdEluZGV4PUUuZ2xvYmFsP0IuaW5kZXgrQlswXS5sZW5ndGg6ZyksdXMmJkImJkIubGVuZ3RoPjEmJnNzLmNhbGwoQlswXSxJLChmdW5jdGlvbigpe2ZvcihRPTE7UTxhcmd1bWVudHMubGVuZ3RoLTI7USsrKXZvaWQgMD09PWFyZ3VtZW50c1tRXSYmKEJbUV09dm9pZCAwKX0pKSxCfSk7dmFyIHlzPWNzO3JCKHt0YXJnZXQ6IlJlZ0V4cCIscHJvdG86ITAsZm9yY2VkOi8uLy5leGVjIT09eXN9LHtleGVjOnlzfSk7dmFyIERzPXZJLGxzPVQsd3M9RCxkcz1ZYSxGcz0idG9TdHJpbmciLEdzPVJlZ0V4cC5wcm90b3R5cGUsUnM9R3NbRnNdLFVzPXdzKChmdW5jdGlvbigpe3JldHVybiIvYS9iIiE9UnMuY2FsbCh7c291cmNlOiJhIixmbGFnczoiYiJ9KX0pKSxrcz1Scy5uYW1lIT1GczsoVXN8fGtzKSYmRHMoUmVnRXhwLnByb3RvdHlwZSxGcywoZnVuY3Rpb24oKXt2YXIgQT1scyh0aGlzKSxnPVN0cmluZyhBLnNvdXJjZSksST1BLmZsYWdzO3JldHVybiIvIitnKyIvIitTdHJpbmcodm9pZCAwPT09SSYmQSBpbnN0YW5jZW9mIFJlZ0V4cCYmISgiZmxhZ3MiaW4gR3MpP2RzLmNhbGwoQSk6SSl9KSx7dW5zYWZlOiEwfSk7dmFyIFNzPU1hLHBzPWZ1bmN0aW9uKEEpe2lmKFNzKEEpKXRocm93IFR5cGVFcnJvcigiVGhlIG1ldGhvZCBkb2Vzbid0IGFjY2VwdCByZWd1bGFyIGV4cHJlc3Npb25zIik7cmV0dXJuIEF9LE5zPVRBKCJtYXRjaCIpLE1zPWZ1bmN0aW9uKEEpe3ZhciBnPS8uLzt0cnl7Ii8uLyJbQV0oZyl9Y2F0Y2goSSl7dHJ5e3JldHVybiBnW05zXT0hMSwiLy4vIltBXShnKX1jYXRjaChCKXt9fXJldHVybiExfSx2cz1wcyxZcz1SO3JCKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOiFNcygiaW5jbHVkZXMiKX0se2luY2x1ZGVzOmZ1bmN0aW9uKEEpe3JldHVybiEhflN0cmluZyhZcyh0aGlzKSkuaW5kZXhPZih2cyhBKSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSk7dmFyIEhzPXZJLExzPXlzLEpzPUQsbXM9VEEsS3M9QUEseHM9bXMoInNwZWNpZXMiKSxxcz1SZWdFeHAucHJvdG90eXBlLGJzPSFKcygoZnVuY3Rpb24oKXt2YXIgQT0vLi87cmV0dXJuIEEuZXhlYz1mdW5jdGlvbigpe3ZhciBBPVtdO3JldHVybiBBLmdyb3Vwcz17YToiNyJ9LEF9LCI3IiE9PSIiLnJlcGxhY2UoQSwiJDxhPiIpfSkpLFRzPSIkMCI9PT0iYSIucmVwbGFjZSgvLi8sIiQwIiksT3M9bXMoInJlcGxhY2UiKSxQcz0hIS8uL1tPc10mJiIiPT09Ly4vW09zXSgiYSIsIiQwIiksanM9IUpzKChmdW5jdGlvbigpe3ZhciBBPS8oPzopLyxnPUEuZXhlYztBLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3ZhciBJPSJhYiIuc3BsaXQoQSk7cmV0dXJuIDIhPT1JLmxlbmd0aHx8ImEiIT09SVswXXx8ImIiIT09SVsxXX0pKSxXcz1mdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1tcyhBKSxFPSFKcygoZnVuY3Rpb24oKXt2YXIgZz17fTtyZXR1cm4gZ1tRXT1mdW5jdGlvbigpe3JldHVybiA3fSw3IT0iIltBXShnKX0pKSxDPUUmJiFKcygoZnVuY3Rpb24oKXt2YXIgZz0hMSxJPS9hLztyZXR1cm4ic3BsaXQiPT09QSYmKChJPXt9KS5jb25zdHJ1Y3Rvcj17fSxJLmNvbnN0cnVjdG9yW3hzXT1mdW5jdGlvbigpe3JldHVybiBJfSxJLmZsYWdzPSIiLElbUV09Ly4vW1FdKSxJLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gZz0hMCxudWxsfSxJW1FdKCIiKSwhZ30pKTtpZighRXx8IUN8fCJyZXBsYWNlIj09PUEmJighYnN8fCFUc3x8UHMpfHwic3BsaXQiPT09QSYmIWpzKXt2YXIgdD0vLi9bUV0saT1JKFEsIiJbQV0sKGZ1bmN0aW9uKEEsZyxJLEIsUSl7dmFyIEM9Zy5leGVjO3JldHVybiBDPT09THN8fEM9PT1xcy5leGVjP0UmJiFRP3tkb25lOiEwLHZhbHVlOnQuY2FsbChnLEksQil9Ontkb25lOiEwLHZhbHVlOkEuY2FsbChJLGcsQil9Ontkb25lOiExfX0pLHtSRVBMQUNFX0tFRVBTXyQwOlRzLFJFR0VYUF9SRVBMQUNFX1NVQlNUSVRVVEVTX1VOREVGSU5FRF9DQVBUVVJFOlBzfSksZT1pWzBdLG89aVsxXTtIcyhTdHJpbmcucHJvdG90eXBlLEEsZSksSHMocXMsUSwyPT1nP2Z1bmN0aW9uKEEsZyl7cmV0dXJuIG8uY2FsbChBLHRoaXMsZyl9OmZ1bmN0aW9uKEEpe3JldHVybiBvLmNhbGwoQSx0aGlzKX0pfUImJktzKHFzW1FdLCJzaGFtIiwhMCl9LFpzPWpBLFhzPVIsVnM9ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSl7dmFyIEIsUSxFPVN0cmluZyhYcyhnKSksQz1acyhJKSx0PUUubGVuZ3RoO3JldHVybiBDPDB8fEM+PXQ/QT8iIjp2b2lkIDA6KEI9RS5jaGFyQ29kZUF0KEMpKTw1NTI5Nnx8Qj41NjMxOXx8QysxPT09dHx8KFE9RS5jaGFyQ29kZUF0KEMrMSkpPDU2MzIwfHxRPjU3MzQzP0E/RS5jaGFyQXQoQyk6QjpBP0Uuc2xpY2UoQyxDKzIpOlEtNTYzMjArKEItNTUyOTY8PDEwKSs2NTUzNn19LHpzPXtjb2RlQXQ6VnMoITEpLGNoYXJBdDpWcyghMCl9LF9zPXpzLmNoYXJBdCwkcz1mdW5jdGlvbihBLGcsSSl7cmV0dXJuIGcrKEk/X3MoQSxnKS5sZW5ndGg6MSl9LEFjPW5BLGdjPU1hdGguZmxvb3IsSWM9IiIucmVwbGFjZSxCYz0vXCQoWyQmJ2BdfFxkezEsMn18PFtePl0qPikvZyxRYz0vXCQoWyQmJ2BdfFxkezEsMn0pL2csRWM9dyxDYz15cyx0Yz1mdW5jdGlvbihBLGcpe3ZhciBJPUEuZXhlYztpZigiZnVuY3Rpb24iPT10eXBlb2YgSSl7dmFyIEI9SS5jYWxsKEEsZyk7aWYoIm9iamVjdCIhPXR5cGVvZiBCKXRocm93IFR5cGVFcnJvcigiUmVnRXhwIGV4ZWMgbWV0aG9kIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIE9iamVjdCBvciBudWxsIik7cmV0dXJuIEJ9aWYoIlJlZ0V4cCIhPT1FYyhBKSl0aHJvdyBUeXBlRXJyb3IoIlJlZ0V4cCNleGVjIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgcmVjZWl2ZXIiKTtyZXR1cm4gQ2MuY2FsbChBLGcpfSxpYz1XcyxlYz1ULG9jPVhBLHJjPWpBLG5jPVIsYWM9JHMsc2M9ZnVuY3Rpb24oQSxnLEksQixRLEUpe3ZhciBDPUkrQS5sZW5ndGgsdD1CLmxlbmd0aCxpPVFjO3JldHVybiB2b2lkIDAhPT1RJiYoUT1BYyhRKSxpPUJjKSxJYy5jYWxsKEUsaSwoZnVuY3Rpb24oRSxpKXt2YXIgZTtzd2l0Y2goaS5jaGFyQXQoMCkpe2Nhc2UiJCI6cmV0dXJuIiQiO2Nhc2UiJiI6cmV0dXJuIEE7Y2FzZSJgIjpyZXR1cm4gZy5zbGljZSgwLEkpO2Nhc2UiJyI6cmV0dXJuIGcuc2xpY2UoQyk7Y2FzZSI8IjplPVFbaS5zbGljZSgxLC0xKV07YnJlYWs7ZGVmYXVsdDp2YXIgbz0raTtpZigwPT09bylyZXR1cm4gRTtpZihvPnQpe3ZhciByPWdjKG8vMTApO3JldHVybiAwPT09cj9FOnI8PXQ/dm9pZCAwPT09QltyLTFdP2kuY2hhckF0KDEpOkJbci0xXStpLmNoYXJBdCgxKTpFfWU9QltvLTFdfXJldHVybiB2b2lkIDA9PT1lPyIiOmV9KSl9LGNjPXRjLGhjPU1hdGgubWF4LGZjPU1hdGgubWluO2ljKCJyZXBsYWNlIiwyLChmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1CLlJFR0VYUF9SRVBMQUNFX1NVQlNUSVRVVEVTX1VOREVGSU5FRF9DQVBUVVJFLEU9Qi5SRVBMQUNFX0tFRVBTXyQwLEM9UT8iJCI6IiQwIjtyZXR1cm5bZnVuY3Rpb24oSSxCKXt2YXIgUT1uYyh0aGlzKSxFPW51bGw9PUk/dm9pZCAwOklbQV07cmV0dXJuIHZvaWQgMCE9PUU/RS5jYWxsKEksUSxCKTpnLmNhbGwoU3RyaW5nKFEpLEksQil9LGZ1bmN0aW9uKEEsQil7aWYoIVEmJkV8fCJzdHJpbmciPT10eXBlb2YgQiYmLTE9PT1CLmluZGV4T2YoQykpe3ZhciB0PUkoZyxBLHRoaXMsQik7aWYodC5kb25lKXJldHVybiB0LnZhbHVlfXZhciBpPWVjKEEpLGU9U3RyaW5nKHRoaXMpLG89ImZ1bmN0aW9uIj09dHlwZW9mIEI7b3x8KEI9U3RyaW5nKEIpKTt2YXIgcj1pLmdsb2JhbDtpZihyKXt2YXIgbj1pLnVuaWNvZGU7aS5sYXN0SW5kZXg9MH1mb3IodmFyIGE9W107Oyl7dmFyIHM9Y2MoaSxlKTtpZihudWxsPT09cylicmVhaztpZihhLnB1c2gocyksIXIpYnJlYWs7IiI9PT1TdHJpbmcoc1swXSkmJihpLmxhc3RJbmRleD1hYyhlLG9jKGkubGFzdEluZGV4KSxuKSl9Zm9yKHZhciBjLGg9IiIsZj0wLHU9MDt1PGEubGVuZ3RoO3UrKyl7cz1hW3VdO2Zvcih2YXIgeT1TdHJpbmcoc1swXSksRD1oYyhmYyhyYyhzLmluZGV4KSxlLmxlbmd0aCksMCksbD1bXSx3PTE7dzxzLmxlbmd0aDt3KyspbC5wdXNoKHZvaWQgMD09PShjPXNbd10pP2M6U3RyaW5nKGMpKTt2YXIgZD1zLmdyb3VwcztpZihvKXt2YXIgRj1beV0uY29uY2F0KGwsRCxlKTt2b2lkIDAhPT1kJiZGLnB1c2goZCk7dmFyIEc9U3RyaW5nKEIuYXBwbHkodm9pZCAwLEYpKX1lbHNlIEc9c2MoeSxlLEQsbCxkLEIpO0Q+PWYmJihoKz1lLnNsaWNlKGYsRCkrRyxmPUQreS5sZW5ndGgpfXJldHVybiBoK2Uuc2xpY2UoZil9XX0pKTt2YXIgdWMseWM9ckIsRGM9ckkuZixsYz1YQSx3Yz1wcyxkYz1SLEZjPU1zLEdjPSIiLnN0YXJ0c1dpdGgsUmM9TWF0aC5taW4sVWM9RmMoInN0YXJ0c1dpdGgiKTt5Yyh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDohIShVY3x8KHVjPURjKFN0cmluZy5wcm90b3R5cGUsInN0YXJ0c1dpdGgiKSwhdWN8fHVjLndyaXRhYmxlKSkmJiFVY30se3N0YXJ0c1dpdGg6ZnVuY3Rpb24oQSl7dmFyIGc9U3RyaW5nKGRjKHRoaXMpKTt3YyhBKTt2YXIgST1sYyhSYyhhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxnLmxlbmd0aCkpLEI9U3RyaW5nKEEpO3JldHVybiBHYz9HYy5jYWxsKGcsQixJKTpnLnNsaWNlKEksSStCLmxlbmd0aCk9PT1CfX0pLElpKCJGbG9hdDMyIiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSksSWkoIkZsb2F0NjQiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKSxJaSgiSW50OCIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLElpKCJJbnQxNiIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLElpKCJJbnQzMiIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLElpKCJVaW50MTYiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKSxJaSgiVWludDMyIiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSk7dmFyIGtjPXtDU1NSdWxlTGlzdDowLENTU1N0eWxlRGVjbGFyYXRpb246MCxDU1NWYWx1ZUxpc3Q6MCxDbGllbnRSZWN0TGlzdDowLERPTVJlY3RMaXN0OjAsRE9NU3RyaW5nTGlzdDowLERPTVRva2VuTGlzdDoxLERhdGFUcmFuc2Zlckl0ZW1MaXN0OjAsRmlsZUxpc3Q6MCxIVE1MQWxsQ29sbGVjdGlvbjowLEhUTUxDb2xsZWN0aW9uOjAsSFRNTEZvcm1FbGVtZW50OjAsSFRNTFNlbGVjdEVsZW1lbnQ6MCxNZWRpYUxpc3Q6MCxNaW1lVHlwZUFycmF5OjAsTmFtZWROb2RlTWFwOjAsTm9kZUxpc3Q6MSxQYWludFJlcXVlc3RMaXN0OjAsUGx1Z2luOjAsUGx1Z2luQXJyYXk6MCxTVkdMZW5ndGhMaXN0OjAsU1ZHTnVtYmVyTGlzdDowLFNWR1BhdGhTZWdMaXN0OjAsU1ZHUG9pbnRMaXN0OjAsU1ZHU3RyaW5nTGlzdDowLFNWR1RyYW5zZm9ybUxpc3Q6MCxTb3VyY2VCdWZmZXJMaXN0OjAsU3R5bGVTaGVldExpc3Q6MCxUZXh0VHJhY2tDdWVMaXN0OjAsVGV4dFRyYWNrTGlzdDowLFRvdWNoTGlzdDowfSxTYz1FdC5mb3JFYWNoLHBjPVhpKCJmb3JFYWNoIik/W10uZm9yRWFjaDpmdW5jdGlvbihBKXtyZXR1cm4gU2ModGhpcyxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0sTmM9TixNYz1rYyx2Yz1wYyxZYz1BQTtmb3IodmFyIEhjIGluIE1jKXt2YXIgTGM9TmNbSGNdLEpjPUxjJiZMYy5wcm90b3R5cGU7aWYoSmMmJkpjLmZvckVhY2ghPT12Yyl0cnl7WWMoSmMsImZvckVhY2giLHZjKX1jYXRjaChQbCl7SmMuZm9yRWFjaD12Y319dmFyIG1jPUE9PmZ1bmN0aW9uKEEsZyl7aWYoZy5zdGFydHNXaXRoKCJkYXRhOiIpKXt2YXIgSSxCPWcucmVwbGFjZSgvXmRhdGE6Lio/YmFzZTY0LC8sIiIpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBCdWZmZXImJiJmdW5jdGlvbiI9PXR5cGVvZiBCdWZmZXIuZnJvbSlJPUJ1ZmZlci5mcm9tKEIsImJhc2U2NCIpO2Vsc2V7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGF0b2IpdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gZGVjb2RlIGJhc2U2NC1lbmNvZGVkIGRhdGEgVVJMLCBCdWZmZXIgYW5kIGF0b2IgYXJlIG5vdCBzdXBwb3J0ZWQiKTt2YXIgUT1hdG9iKEIpO0k9bmV3IFVpbnQ4QXJyYXkoUS5sZW5ndGgpO2Zvcih2YXIgRT0wO0U8US5sZW5ndGg7RSsrKUlbRV09US5jaGFyQ29kZUF0KEUpfXJldHVybiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShJLEEpLnRoZW4oKGZ1bmN0aW9uKEEpe3JldHVybiBBLmluc3RhbmNlfSkpfXZhciBDPXZvaWQgMCx0PXZvaWQgMDtyZXR1cm4gZmV0Y2goZykudGhlbigoZnVuY3Rpb24oZyl7cmV0dXJuIHQ9KEM9ZykuaGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpfHwiIiwiaW5zdGFudGlhdGVTdHJlYW1pbmciaW4gV2ViQXNzZW1ibHkmJnQuc3RhcnRzV2l0aCgiYXBwbGljYXRpb24vd2FzbSIpP1dlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKEMsQSk6Qy5hcnJheUJ1ZmZlcigpfSkpLnRoZW4oKGZ1bmN0aW9uKGcpe3JldHVybiBnIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoZyxBKTpnfSkpLnRoZW4oKGZ1bmN0aW9uKEEpe3JldHVybiBBLmluc3RhbmNlfSkpfShBLCJkYXRhOmFwcGxpY2F0aW9uL3dhc207YmFzZTY0LEFHRnpiUUVBQUFBQi9BSXVZQUYvQVg5Z0FYOEFZQUovZndGL1lBSi9md0JnQTM5L2Z3Ri9ZQVovZjM5L2YzOEJmMkFGZjM5L2YzOEJmMkFEZjM5L0FHQUVmMzkvZndCZ0JuOS9mMzkvZndCZ0JYOS9mMzkvQUdBRWYzOS9md0YvWUFoL2YzOS9mMzkvZndGL1lBZC9mMzkvZjM5L0FYOWdCWDkrZm41K0FHQUFBR0FIZjM5L2YzOS9md0JnQkg5L2YzOEJmbUFGZjM5L2YzNEJmMkFBQVg5Z0JIOStmbjhBWUFKL2ZnQmdCWDkvZm45L0FHQUtmMzkvZjM5L2YzOS9md0YvWUF4L2YzOS9mMzkvZjM5L2YzOEJmMkFJZjM5L2YzOS9mMzhBWUE5L2YzOS9mMzkvZjM5L2YzOS9mMzhBWUFwL2YzOS9mMzkvZjM5L0FHQUxmMzkvZjM5L2YzOS9mMzhCZjJBR2YzeC9mMzkvQVg5Z0IzOS9mMzkvZm40QmYyQUdmMzkvZjM1K0FYOWdCWDkvZjM5OEFYOWdBbjk4QUdBRWZuNStmZ0YvWUFKK2Z3Ri9ZQUorZmdGOFlBRi9BWHhnQTM1K2ZnRi9ZQU4vZjM4QmZHQURmMzkvQVgxZ0JIOS9mMzRCZm1BQ2ZIOEJmR0FEZjM5K0FHQUNmbjRCZldBQ2YzOEJmZ0l4Q0FGaEFXRUFEd0ZoQVdJQUJnRmhBV01BQWdGaEFXUUFBZ0ZoQVdVQUFBRmhBV1lBQkFGaEFXY0FCd0ZoQVdnQUFBUExCTWtFQWdBQUFnTUFBUU1CQUFBQUF3TVREdzRBQUFFREFRUUFBUUFBQVFBQUFnTUNBZ2NPQmdnS0ZBTUNBQU1EQUFJREFBTURBQTRDQkFRQUF3UUFCQUFFQUFBQUF3TURBd1FBQUFFQ0ZRSUhCUU1HQmdzQ0FDRUNBQXdNQlFnQ0FBQUFBd01EQXdBSUFBZ0FCd0FBQUFNQ0FnTURBaUlVQUFBRUF3SUFBQU1BQndJQ0FBQVhBQmNBSXdNQUFBTUFBUUFCQndJSENBQURBZ0lLQXdJQkJBTUFCd0lEQUFBREF4QUVFQUlOQWcwTEFnc0FBQUlWQUFBRUNBSUFDUWNJQWdjRENnRUFCQVlEQVFBQUF3UVlDZ1FZQ2dnUkFnQUVKQTRsSmdBQkFRQUFDZzhBQUFjQkF4VUJCQWdDQWdvWkFBY0hHUUFCQXdjQ0F3RUNFd0VJQndvQUFBQUJBQVlIREFBQkF3RUFBQU1CQVFFQUJCb2JHaHNBQWdBQUFnTWNBd0lBQUFjREhBTURBZ0lEQ1FjS0NRa0tDUWtBRUFRUUF3SUZCd1FBQ0Njb0VRc0ZDeEVMQUFJSEVTa0FDd0FCQXdJQ0FnY0VBQVlxQWdBQ0FnUXJMQzBJRGdJT0ZBNEFBUUlDQUFBQUJ3TURCd01EQVFBQUFnTUNBQUFDQVFBQ0FBRUJBZ1FBQUFRSUZnUUJBUUFBQVJNQkFRQUpDUWtLQ2dvQUNBZ0lCQThCQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFNREF3TURBd0FBQVFFR0RBd0dEQXdBQmdBR0RBd0JCZ1lFQ3dRQ0JBSUJCZ1FMQkFJRUFnc0xDd1FCQVFFQkNRa0ZIZ1VlRFEwTkRRME5EQVVGQlFVRkJ3d0ZCUVVGQlFZZklCSUdFZ2NHQmdZZklCSUdFZ2tHQmdVRkJRVUZCUVVGQlFVRkJRVUZBQVVGQlFrRkJBZ0dCQWdJQmdRREhRUUJBUUFCQUFnQkZnSUNBQUFCQVFBQUFRQUJBUUFFQkFjQmNBSEJBc0VDQlFZQkFUQ0FnQUlHQ0FGL0FVR2cxd0VMQjBnUEFXa0NBQUZxQU9jQkFXc0FHUUZzQUJBQmJRRGFBZ0Z1QUxRRUFXOEFyZ1FCY0FDWkJBRnhBSkFFQVhJQXJBRUJjd0NEQkFGMEFRQUJkUUNWQXdGMkFKUURBWGNBa3dNSnh3UUJBRUVCQzhBQ3pRU3FCTUVCdkFHUUE2d0Jqd09PQTQwRFQwK01BNHNEaWdPSUE5QUVpQVBsQVljRHp3VE9CT1FCK1FMTUJNc0V1QUhqQWNvRXlBVEpCTWNFMEFIQkJNSUV3QVRGQk1RRXd3UitrUU9LQWVJQnZ3UytCTDBFdkFUaEFic0V1Z1M1QkxnRXR3UVF5UUh2QSswRHdBTytBN3dEdWdPNEE3WUR0QU95QTdBRHJnT3NBNm9EcUFPbUE1TUM4QVB1QTQ0QzRRUGdBOThEM2dQZEE2OEMzQVBiQTlvRG1BTFlBOWNEMWdQVkE5UURUOU1EMGdPSEFzc0R5UVBJQThjRHhRUERBNFlDeWdQR0JKSUR4Z1BFQThJRFppQWc3QVByQStvRDZRUG9BK2NENWdQbEE2OEM1QVBqQStJRElJMENqUUxNQWIwQnZRSFpBNzBCSU5FRDBBUE1BVTlQendPSUFpRE9BODBEekFGUFQ4d0RpQUptSUxZRXRRU3pCR1lnc2dTeEJMQUVJSzhFclFTc0JLc0V5QUxJQXFrRXFBU25CS1lFcFFRZ3BBU2pCS0lFb1FTL0FyOENvQVNmQko0RW5RU2NCQ0NiQkpvRW1BU1hCSllFbFFTVUJKTUVJSklFa1FTUEJJNEVqUVNNQklzRWlnUm1JTGtDaVFTSUJJY0VoZ1NGQklRRXdRTzlBN2tEclFPcEE3VURzUU5tSUxrQ2dnU0JCSUFFL3dQK0EvMER2d083QTdjRHF3T25BN01EcndQS0FZSUMvQVBLQVlJQyt3TWdxd0dyQVd0cmE2MENUMnBxSUtzQnF3RnJhMnV0QWs5cWFpQ3FBYW9CYTZrQnFRR3NBazlxYWlDcUFhb0JhNmtCcVFHc0FrOXFhaUQ2QS9rRElQZ0Q5d01nOWdQMUF5RDBBL01ESUprQzhnT3NBU0NaQXZFRHJBRm1wUU9rQTJZZ3lRSEpBYU1EbVFPY0E2SURJSm9EblFPaEF5Q2JBNTREb0FObUlKZ0Rsd09mQTVZRENxVGZCOGtFQndBZ0FDQUJlQXNVQUNBQUVEVUVRQ0FBS0FJRUR3c2dBQzBBQ3dzZEFRRi9JQUFRTlFSQUlBQW9BZ0FoQVNBQUVIMGFJQUVRRUFzZ0FBc0pBQ0FBRUEwZ0FXb0wwZ0VCQkg4Q1FDQUJJQUFRQ1NJRFN3UkFJd0JCRUdzaUFpUUFJQUVnQTJzaUF3UkFJQUFRRXlFRUlBQVFDU0lCSUFOcUlRVWdBeUFFSUFGclN3UkFJQUFnQkNBRklBUnJJQUVnQVJESUFRc2dBU0FBRUEwaUJHb2dBMEVBRVBjQklBQWdCUkI0SUFKQkFEb0FEeUFFSUFWcUlBSkJEMm9RTkFzTUFRc2pBRUVRYXlJQ0pBQUNRQ0FBRURVRVFDQUFLQUlBSVFNZ0FrRUFPZ0FQSUFFZ0Eyb2dBa0VQYWhBMElBQWdBUkE1REFFTElBSkJBRG9BRGlBQUlBRnFJQUpCRG1vUU5DQUFJQUVRT2dzTElBSkJFR29rQUFzUkFDQUFFRFVFUUNBQUtBSUFEd3NnQUFzS0FDQUFLQUlBRUtNQkN3d0FJQUFnQVVFY2FoQ1FBZ3ZNREFFSGZ3SkFJQUJGRFFBZ0FFRUlheUlESUFCQkJHc29BZ0FpQVVGNGNTSUFhaUVGQWtBZ0FVRUJjUTBBSUFGQkEzRkZEUUVnQXlBREtBSUFJZ0ZySWdOQjZJRUJLQUlBU1EwQklBQWdBV29oQUNBRFFleUJBU2dDQUVjRVFDQUJRZjhCVFFSQUlBTW9BZ2dpQWlBQlFRTjJJZ1JCQTNSQmdJSUJha1lhSUFJZ0F5Z0NEQ0lCUmdSQVFkaUJBVUhZZ1FFb0FnQkJmaUFFZDNFMkFnQU1Bd3NnQWlBQk5nSU1JQUVnQWpZQ0NBd0NDeUFES0FJWUlRWUNRQ0FESUFNb0Fnd2lBVWNFUUNBREtBSUlJZ0lnQVRZQ0RDQUJJQUkyQWdnTUFRc0NRQ0FEUVJScUlnSW9BZ0FpQkEwQUlBTkJFR29pQWlnQ0FDSUVEUUJCQUNFQkRBRUxBMEFnQWlFSElBUWlBVUVVYWlJQ0tBSUFJZ1FOQUNBQlFSQnFJUUlnQVNnQ0VDSUVEUUFMSUFkQkFEWUNBQXNnQmtVTkFRSkFJQU1nQXlnQ0hDSUNRUUowUVlpRUFXb2lCQ2dDQUVZRVFDQUVJQUUyQWdBZ0FRMEJRZHlCQVVIY2dRRW9BZ0JCZmlBQ2QzRTJBZ0FNQXdzZ0JrRVFRUlFnQmlnQ0VDQURSaHRxSUFFMkFnQWdBVVVOQWdzZ0FTQUdOZ0lZSUFNb0FoQWlBZ1JBSUFFZ0FqWUNFQ0FDSUFFMkFoZ0xJQU1vQWhRaUFrVU5BU0FCSUFJMkFoUWdBaUFCTmdJWURBRUxJQVVvQWdRaUFVRURjVUVEUncwQVFlQ0JBU0FBTmdJQUlBVWdBVUYrY1RZQ0JDQURJQUJCQVhJMkFnUWdBQ0FEYWlBQU5nSUFEd3NnQXlBRlR3MEFJQVVvQWdRaUFVRUJjVVVOQUFKQUlBRkJBbkZGQkVBZ0JVSHdnUUVvQWdCR0JFQkI4SUVCSUFNMkFnQkI1SUVCUWVTQkFTZ0NBQ0FBYWlJQU5nSUFJQU1nQUVFQmNqWUNCQ0FEUWV5QkFTZ0NBRWNOQTBIZ2dRRkJBRFlDQUVIc2dRRkJBRFlDQUE4TElBVkI3SUVCS0FJQVJnUkFRZXlCQVNBRE5nSUFRZUNCQVVIZ2dRRW9BZ0FnQUdvaUFEWUNBQ0FESUFCQkFYSTJBZ1FnQUNBRGFpQUFOZ0lBRHdzZ0FVRjRjU0FBYWlFQUFrQWdBVUgvQVUwRVFDQUZLQUlJSWdJZ0FVRURkaUlFUVFOMFFZQ0NBV3BHR2lBQ0lBVW9BZ3dpQVVZRVFFSFlnUUZCMklFQktBSUFRWDRnQkhkeE5nSUFEQUlMSUFJZ0FUWUNEQ0FCSUFJMkFnZ01BUXNnQlNnQ0dDRUdBa0FnQlNBRktBSU1JZ0ZIQkVBZ0JTZ0NDQ0lDUWVpQkFTZ0NBRWthSUFJZ0FUWUNEQ0FCSUFJMkFnZ01BUXNDUUNBRlFSUnFJZ0lvQWdBaUJBMEFJQVZCRUdvaUFpZ0NBQ0lFRFFCQkFDRUJEQUVMQTBBZ0FpRUhJQVFpQVVFVWFpSUNLQUlBSWdRTkFDQUJRUkJxSVFJZ0FTZ0NFQ0lFRFFBTElBZEJBRFlDQUFzZ0JrVU5BQUpBSUFVZ0JTZ0NIQ0lDUVFKMFFZaUVBV29pQkNnQ0FFWUVRQ0FFSUFFMkFnQWdBUTBCUWR5QkFVSGNnUUVvQWdCQmZpQUNkM0UyQWdBTUFnc2dCa0VRUVJRZ0JpZ0NFQ0FGUmh0cUlBRTJBZ0FnQVVVTkFRc2dBU0FHTmdJWUlBVW9BaEFpQWdSQUlBRWdBallDRUNBQ0lBRTJBaGdMSUFVb0FoUWlBa1VOQUNBQklBSTJBaFFnQWlBQk5nSVlDeUFESUFCQkFYSTJBZ1FnQUNBRGFpQUFOZ0lBSUFOQjdJRUJLQUlBUncwQlFlQ0JBU0FBTmdJQUR3c2dCU0FCUVg1eE5nSUVJQU1nQUVFQmNqWUNCQ0FBSUFOcUlBQTJBZ0FMSUFCQi93Rk5CRUFnQUVFRGRpSUJRUU4wUVlDQ0FXb2hBQUovUWRpQkFTZ0NBQ0lDUVFFZ0FYUWlBWEZGQkVCQjJJRUJJQUVnQW5JMkFnQWdBQXdCQ3lBQUtBSUlDeUVDSUFBZ0F6WUNDQ0FDSUFNMkFnd2dBeUFBTmdJTUlBTWdBallDQ0E4TFFSOGhBaUFEUWdBM0FoQWdBRUgvLy84SFRRUkFJQUJCQ0hZaUFTQUJRWUQrUDJwQkVIWkJDSEVpQVhRaUFpQUNRWURnSDJwQkVIWkJCSEVpQW5RaUJDQUVRWUNBRDJwQkVIWkJBbkVpQkhSQkQzWWdBU0FDY2lBRWNtc2lBVUVCZENBQUlBRkJGV3AyUVFGeGNrRWNhaUVDQ3lBRElBSTJBaHdnQWtFQ2RFR0loQUZxSVFFQ1FBSkFBa0JCM0lFQktBSUFJZ1JCQVNBQ2RDSUhjVVVFUUVIY2dRRWdCQ0FIY2pZQ0FDQUJJQU0yQWdBZ0F5QUJOZ0lZREFFTElBQkJBRUVaSUFKQkFYWnJJQUpCSDBZYmRDRUNJQUVvQWdBaEFRTkFJQUVpQkNnQ0JFRjRjU0FBUmcwQ0lBSkJIWFloQVNBQ1FRRjBJUUlnQkNBQlFRUnhhaUlIUVJCcUtBSUFJZ0VOQUFzZ0J5QUROZ0lRSUFNZ0JEWUNHQXNnQXlBRE5nSU1JQU1nQXpZQ0NBd0JDeUFFS0FJSUlnQWdBellDRENBRUlBTTJBZ2dnQTBFQU5nSVlJQU1nQkRZQ0RDQURJQUEyQWdnTFFmaUJBVUg0Z1FFb0FnQkJBV3NpQUVGL0lBQWJOZ0lBQ3dza0FRRi9Jd0JCRUdzaUFTUUFJQUJDQURjQ0FDQUFRUUEyQWdnZ0FVRVFhaVFBSUFBTGl3SUNBMzhDZmdKQUlBQXBBM0FpQkZCRklBUWdBQ2tEZUNBQUtBSUVJZ0VnQUNnQ0xDSUNhNng4SWdWWGNVVUVRQ01BUVJCcklnSWtBRUYvSVFFQ1FDQUFFT2tCRFFBZ0FDQUNRUTlxUVFFZ0FDZ0NJQkVFQUVFQlJ3MEFJQUl0QUE4aEFRc2dBa0VRYWlRQUlBRWlBMEVBVGcwQklBQW9BZ1FoQVNBQUtBSXNJUUlMSUFCQ2Z6Y0RjQ0FBSUFFMkFtZ2dBQ0FGSUFJZ0FXdXNmRGNEZUVGL0R3c2dCVUlCZkNFRklBQW9BZ1FoQVNBQUtBSUlJUUlDUUNBQUtRTndJZ1JRRFFBZ0JDQUZmU0lFSUFJZ0FXdXNXUTBBSUFFZ0JLZHFJUUlMSUFBZ0FqWUNhQ0FBSUFVZ0FDZ0NMQ0lBSUFGcnJIdzNBM2dnQUNBQlR3UkFJQUZCQVdzZ0F6b0FBQXNnQXdzWkFRRi9RUW9oQVNBQUVEVUVmeUFBRUgxQkFXc0ZJQUVMQytNQkFRWi9JQUVRMHdJaEF5TUFRUkJySWdVa0FBSkFJQU1nQUNJRUVNOEJJZ0JOQkVBZ0JCQU5JZ1loQWlBRElnQUVmd0pBSUFFZ0FrWU5BQ0FDSUFGcklBQkJBblJQQkVBZ0FFVU5BUU5BSUFJZ0FTZ0NBRFlDQUNBQ1FRUnFJUUlnQVVFRWFpRUJJQUJCQVdzaUFBMEFDd3dCQ3lBQVJRMEFBMEFnQWlBQVFRRnJJZ0JCQW5RaUIyb2dBU0FIYWlnQ0FEWUNBQ0FBRFFBTEMwRUFCU0FDQ3hvZ0JVRUFOZ0lNSUFZZ0EwRUNkR29nQlVFTWFoQXpJQVFnQXhCNERBRUxJQVFnQUNBRElBQnJJQVFRQ1NJQVFRQWdBQ0FESUFFUTlBRUxJQVZCRUdva0FBdHpBUU4vSUFFUWtnRWhBaU1BUVJCcklnUWtBQUpBSUFJZ0FCQVRJZ05OQkVBZ0FCQU5JUU1nQWdSQUlBTWdBU0FDRU9vQkN5QUVRUUE2QUE4Z0FpQURhaUFFUVE5cUVEUWdBQ0FDRUhnTUFRc2dBQ0FESUFJZ0Eyc2dBQkFKSWdCQkFDQUFJQUlnQVJENEFRc2dCRUVRYWlRQUMrMENBUVIvQWtCQjNJZ0JMUUFBUVFGeERRQkIzSWdCRUNSRkRRQWpBRUVnYXlJQ0pBQUNRQUpBQTBBZ0FrRUlhaUFBUVFKMGFnSi9RUUVnQUhSQi8vLy8vd2R4SWdOQkFYSkZCRUFnQUVFQ2RDZ0NBQXdCQ3lBQVFab2VRYVFmSUFNYkVPQUNDeUlETmdJQUlBTkJmMGNFUUNBQVFRRnFJZ0JCQmtZTkFnd0JDd3NNQVF0QkFCRGZBa1VFUUVISUxTRUJJQUpCQ0dwQnlDMFFud0ZGRFFGQjRDMGhBU0FDUVFocVFlQXRFSjhCUlEwQlFRQWhBRUd3aHdFdEFBQkZCRUFEUUNBQVFRSjBRWUNIQVdvZ0FFR2tIeERnQWpZQ0FDQUFRUUZxSWdCQkJrY05BQXRCc0ljQlFRRTZBQUJCbUljQlFZQ0hBU2dDQURZQ0FBdEJnSWNCSVFFZ0FrRUlha0dBaHdFUW53RkZEUUZCbUljQklRRWdBa0VJYWtHWWh3RVFud0ZGRFFGQkdCQVpJZ0ZGRFFFTElBRWdBaWtEQ0RjQ0FDQUJJQUlwQXhnM0FoQWdBU0FDS1FNUU53SUlDeUFDUVNCcUpBQkIySWdCSUFFMkFnQkIzSWdCRUNNTFFkaUlBU2dDQUFzRkFCQUFBQXZmQ2dJRmZ3OStJd0JCNEFCcklnVWtBQ0FFUXYvLy8vLy8veitESWcxQ0Q0WWdBMEl4aUlRaERpQUNJQVNGUW9DQWdJQ0FnSUNBZ0grRElRb2dBa0wvLy8vLy8vOC9neUlMUWlDSUlROGdEVUlSaUNFUUlBUkNNSWluUWYvL0FYRWhCd0pBQWtBZ0FrSXdpS2RCLy84QmNTSUpRUUZyUWYzL0FVMEVRQ0FIUVFGclFmNy9BVWtOQVFzZ0FWQWdBa0wvLy8vLy8vLy8vLzhBZ3lJTVFvQ0FnSUNBZ01ELy93QlVJQXhDZ0lDQWdJQ0F3UC8vQUZFYlJRUkFJQUpDZ0lDQWdJQ0FJSVFoQ2d3Q0N5QURVQ0FFUXYvLy8vLy8vLy8vL3dDRElnSkNnSUNBZ0lDQXdQLy9BRlFnQWtLQWdJQ0FnSURBLy84QVVSdEZCRUFnQkVLQWdJQ0FnSUFnaENFS0lBTWhBUXdDQ3lBQklBeENnSUNBZ0lDQXdQLy9BSVdFVUFSQUlBSWdBNFJRQkVCQ2dJQ0FnSUNBNFAvL0FDRUtRZ0FoQVF3REN5QUtRb0NBZ0lDQWdNRC8vd0NFSVFwQ0FDRUJEQUlMSUFNZ0FrS0FnSUNBZ0lEQS8vOEFoWVJRQkVBZ0FTQU1oQ0VDUWdBaEFTQUNVQVJBUW9DQWdJQ0FnT0QvL3dBaENnd0RDeUFLUW9DQWdJQ0FnTUQvL3dDRUlRb01BZ3NnQVNBTWhGQUVRRUlBSVFFTUFnc2dBaUFEaEZBRVFFSUFJUUVNQWdzZ0RFTC8vLy8vLy84L1dBUkFJQVZCMEFCcUlBRWdDeUFCSUFzZ0MxQWlCaHQ1SUFaQkJuU3RmS2NpQmtFUGF4QXZRUkFnQm1zaEJpQUZLUU5ZSWd0Q0lJZ2hEeUFGS1FOUUlRRUxJQUpDLy8vLy8vLy9QMVlOQUNBRlFVQnJJQU1nRFNBRElBMGdEVkFpQ0J0NUlBaEJCblN0ZktjaUNFRVBheEF2SUFZZ0NHdEJFR29oQmlBRktRTklJZ0pDRDRZZ0JTa0RRQ0lEUWpHSWhDRU9JQUpDRVlnaEVBc2dBMElQaGtLQWdQNy9ENE1pQWlBQlFpQ0lJZ1IrSWhJZ0EwSVJpRUwvLy8vL0Q0TWlEQ0FCUXYvLy8vOFBneUlCZm53aUVVSWdoaUlOSUFFZ0FuNThJZ01nRFZTdElBSWdDMEwvLy8vL0Q0TWlDMzRpRlNBRUlBeCtmQ0lUSUE1Qy8vLy8vdytESWcwZ0FYNThJaFFnRVNBU1ZLMUNJSVlnRVVJZ2lJUjhJaEVnQWlBUFFvQ0FCSVFpRG40aUZpQUxJQXgrZkNJUElBUWdEWDU4SWhJZ0VFTC8vLy8vQjROQ2dJQ0FnQWlFSWdJZ0FYNThJaEJDSUlaOEloZDhJUUVnQnlBSmFpQUdha0gvL3dCcklRWUNRQ0FMSUExK0loZ2dEQ0FPZm53aURDQVlWSzBnRENBQ0lBUitmQ0lFSUF4VXJYd2dBaUFPZm53Z0JDQUVJQk1nRlZTdElCTWdGRmF0Zkh3aUJGYXRmQ0FDSUF0K0lnc2dEU0FPZm53aUFpQUxWSzFDSUlZZ0FrSWdpSVI4SUFRZ0FrSWdobndpQWlBRVZLMThJQUlnQWlBUUlCSlVyU0FQSUJaVXJTQVBJQkpXclh4OFFpQ0dJQkJDSUlpRWZDSUNWcTE4SUFJZ0FpQVJJQlJVclNBUklCZFdyWHg4SWdKV3JYd2lCRUtBZ0lDQWdJREFBSU5RUlFSQUlBWkJBV29oQmd3QkN5QURRaitJSVFzZ0JFSUJoaUFDUWorSWhDRUVJQUpDQVlZZ0FVSS9pSVFoQWlBRFFnR0dJUU1nQ3lBQlFnR0doQ0VCQ3lBR1FmLy9BVTRFUUNBS1FvQ0FnSUNBZ01ELy93Q0VJUXBDQUNFQkRBRUxBbjRnQmtFQVRBUkFRUUVnQm1zaUIwR0FBVThFUUVJQUlRRU1Bd3NnQlVFd2FpQURJQUVnQmtIL0FHb2lCaEF2SUFWQklHb2dBaUFFSUFZUUx5QUZRUkJxSUFNZ0FTQUhFSHdnQlNBQ0lBUWdCeEI4SUFVcEF6QWdCU2tET0lSQ0FGS3RJQVVwQXlBZ0JTa0RFSVNFSVFNZ0JTa0RLQ0FGS1FNWWhDRUJJQVVwQXdBaEFpQUZLUU1JREFFTElBUkMvLy8vLy8vL1A0TWdCcTFDTUlhRUN5QUtoQ0VLSUFOUUlBRkNBRmtnQVVLQWdJQ0FnSUNBZ0lCL1VSdEZCRUFnQ2lBQ1FnRjhJZ0VnQWxTdGZDRUtEQUVMSUFNZ0FVS0FnSUNBZ0lDQWdJQi9oWVJRUlFSQUlBSWhBUXdCQ3lBS0lBSWdBa0lCZzN3aUFTQUNWSzE4SVFvTElBQWdBVGNEQUNBQUlBbzNBd2dnQlVIZ0FHb2tBQXVBTGdFTGZ5TUFRUkJySWdza0FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnQUVIMEFVMEVRRUhZZ1FFb0FnQWlCa0VRSUFCQkMycEJlSEVnQUVFTFNSc2lCMEVEZGlJQ2RpSUJRUU54QkVBZ0FVRi9jMEVCY1NBQ2FpSURRUU4wSWdGQmlJSUJhaWdDQUNJRVFRaHFJUUFDUUNBRUtBSUlJZ0lnQVVHQWdnRnFJZ0ZHQkVCQjJJRUJJQVpCZmlBRGQzRTJBZ0FNQVFzZ0FpQUJOZ0lNSUFFZ0FqWUNDQXNnQkNBRFFRTjBJZ0ZCQTNJMkFnUWdBU0FFYWlJQklBRW9BZ1JCQVhJMkFnUU1EQXNnQjBIZ2dRRW9BZ0FpQ2swTkFTQUJCRUFDUUVFQ0lBSjBJZ0JCQUNBQWEzSWdBU0FDZEhFaUFFRUFJQUJyY1VFQmF5SUFJQUJCREhaQkVIRWlBbllpQVVFRmRrRUljU0lBSUFKeUlBRWdBSFlpQVVFQ2RrRUVjU0lBY2lBQklBQjJJZ0ZCQVhaQkFuRWlBSElnQVNBQWRpSUJRUUYyUVFGeElnQnlJQUVnQUhacUlnTkJBM1FpQUVHSWdnRnFLQUlBSWdRb0FnZ2lBU0FBUVlDQ0FXb2lBRVlFUUVIWWdRRWdCa0YrSUFOM2NTSUdOZ0lBREFFTElBRWdBRFlDRENBQUlBRTJBZ2dMSUFSQkNHb2hBQ0FFSUFkQkEzSTJBZ1FnQkNBSGFpSUNJQU5CQTNRaUFTQUhheUlEUVFGeU5nSUVJQUVnQkdvZ0F6WUNBQ0FLQkVBZ0NrRURkaUlCUVFOMFFZQ0NBV29oQlVIc2dRRW9BZ0FoQkFKL0lBWkJBU0FCZENJQmNVVUVRRUhZZ1FFZ0FTQUdjallDQUNBRkRBRUxJQVVvQWdnTElRRWdCU0FFTmdJSUlBRWdCRFlDRENBRUlBVTJBZ3dnQkNBQk5nSUlDMEhzZ1FFZ0FqWUNBRUhnZ1FFZ0F6WUNBQXdNQzBIY2dRRW9BZ0FpQ1VVTkFTQUpRUUFnQ1d0eFFRRnJJZ0FnQUVFTWRrRVFjU0lDZGlJQlFRVjJRUWh4SWdBZ0FuSWdBU0FBZGlJQlFRSjJRUVJ4SWdCeUlBRWdBSFlpQVVFQmRrRUNjU0lBY2lBQklBQjJJZ0ZCQVhaQkFYRWlBSElnQVNBQWRtcEJBblJCaUlRQmFpZ0NBQ0lCS0FJRVFYaHhJQWRySVFNZ0FTRUNBMEFDUUNBQ0tBSVFJZ0JGQkVBZ0FpZ0NGQ0lBUlEwQkN5QUFLQUlFUVhoeElBZHJJZ0lnQXlBQ0lBTkpJZ0liSVFNZ0FDQUJJQUliSVFFZ0FDRUNEQUVMQ3lBQktBSVlJUWdnQVNBQktBSU1JZ1JIQkVBZ0FTZ0NDQ0lBUWVpQkFTZ0NBRWthSUFBZ0JEWUNEQ0FFSUFBMkFnZ01Dd3NnQVVFVWFpSUNLQUlBSWdCRkJFQWdBU2dDRUNJQVJRMERJQUZCRUdvaEFnc0RRQ0FDSVFVZ0FDSUVRUlJxSWdJb0FnQWlBQTBBSUFSQkVHb2hBaUFFS0FJUUlnQU5BQXNnQlVFQU5nSUFEQW9MUVg4aEJ5QUFRYjkvU3cwQUlBQkJDMm9pQUVGNGNTRUhRZHlCQVNnQ0FDSUpSUTBBUVFBZ0Iyc2hBd0pBQWtBQ1FBSi9RUUFnQjBHQUFra05BQnBCSHlBSFFmLy8vd2RMRFFBYUlBQkJDSFlpQUNBQVFZRCtQMnBCRUhaQkNIRWlBblFpQUNBQVFZRGdIMnBCRUhaQkJIRWlBWFFpQUNBQVFZQ0FEMnBCRUhaQkFuRWlBSFJCRDNZZ0FTQUNjaUFBY21zaUFFRUJkQ0FISUFCQkZXcDJRUUZ4Y2tFY2Fnc2lCa0VDZEVHSWhBRnFLQUlBSWdKRkJFQkJBQ0VBREFFTFFRQWhBQ0FIUVFCQkdTQUdRUUYyYXlBR1FSOUdHM1FoQVFOQUFrQWdBaWdDQkVGNGNTQUhheUlGSUFOUERRQWdBaUVFSUFVaUF3MEFRUUFoQXlBQ0lRQU1Bd3NnQUNBQ0tBSVVJZ1VnQlNBQ0lBRkJIWFpCQkhGcUtBSVFJZ0pHR3lBQUlBVWJJUUFnQVVFQmRDRUJJQUlOQUFzTElBQWdCSEpGQkVCQkFDRUVRUUlnQm5RaUFFRUFJQUJyY2lBSmNTSUFSUTBESUFCQkFDQUFhM0ZCQVdzaUFDQUFRUXgyUVJCeElnSjJJZ0ZCQlhaQkNIRWlBQ0FDY2lBQklBQjJJZ0ZCQW5aQkJIRWlBSElnQVNBQWRpSUJRUUYyUVFKeElnQnlJQUVnQUhZaUFVRUJka0VCY1NJQWNpQUJJQUIyYWtFQ2RFR0loQUZxS0FJQUlRQUxJQUJGRFFFTEEwQWdBQ2dDQkVGNGNTQUhheUlCSUFOSklRSWdBU0FESUFJYklRTWdBQ0FFSUFJYklRUWdBQ2dDRUNJQkJIOGdBUVVnQUNnQ0ZBc2lBQTBBQ3dzZ0JFVU5BQ0FEUWVDQkFTZ0NBQ0FIYTA4TkFDQUVLQUlZSVFZZ0JDQUVLQUlNSWdGSEJFQWdCQ2dDQ0NJQVFlaUJBU2dDQUVrYUlBQWdBVFlDRENBQklBQTJBZ2dNQ1FzZ0JFRVVhaUlDS0FJQUlnQkZCRUFnQkNnQ0VDSUFSUTBESUFSQkVHb2hBZ3NEUUNBQ0lRVWdBQ0lCUVJScUlnSW9BZ0FpQUEwQUlBRkJFR29oQWlBQktBSVFJZ0FOQUFzZ0JVRUFOZ0lBREFnTElBZEI0SUVCS0FJQUlnSk5CRUJCN0lFQktBSUFJUU1DUUNBQ0lBZHJJZ0ZCRUU4RVFFSGdnUUVnQVRZQ0FFSHNnUUVnQXlBSGFpSUFOZ0lBSUFBZ0FVRUJjallDQkNBQ0lBTnFJQUUyQWdBZ0F5QUhRUU55TmdJRURBRUxRZXlCQVVFQU5nSUFRZUNCQVVFQU5nSUFJQU1nQWtFRGNqWUNCQ0FDSUFOcUlnQWdBQ2dDQkVFQmNqWUNCQXNnQTBFSWFpRUFEQW9MSUFkQjVJRUJLQUlBSWdoSkJFQkI1SUVCSUFnZ0Iyc2lBVFlDQUVId2dRRkI4SUVCS0FJQUlnSWdCMm9pQURZQ0FDQUFJQUZCQVhJMkFnUWdBaUFIUVFOeU5nSUVJQUpCQ0dvaEFBd0tDMEVBSVFBZ0IwRXZhaUlKQW45QnNJVUJLQUlBQkVCQnVJVUJLQUlBREFFTFFieUZBVUovTndJQVFiU0ZBVUtBb0lDQWdJQUVOd0lBUWJDRkFTQUxRUXhxUVhCeFFkaXExYW9GY3pZQ0FFSEVoUUZCQURZQ0FFR1VoUUZCQURZQ0FFR0FJQXNpQVdvaUJrRUFJQUZySWdWeElnSWdCMDBOQ1VHUWhRRW9BZ0FpQkFSQVFZaUZBU2dDQUNJRElBSnFJZ0VnQTAwZ0FTQUVTM0lOQ2d0QmxJVUJMUUFBUVFSeERRUUNRQUpBUWZDQkFTZ0NBQ0lEQkVCQm1JVUJJUUFEUUNBRElBQW9BZ0FpQVU4RVFDQUJJQUFvQWdScUlBTkxEUU1MSUFBb0FnZ2lBQTBBQ3d0QkFCQnlJZ0ZCZjBZTkJTQUNJUVpCdElVQktBSUFJZ05CQVdzaUFDQUJjUVJBSUFJZ0FXc2dBQ0FCYWtFQUlBTnJjV29oQmdzZ0JpQUhUU0FHUWY3Ly8vOEhTM0lOQlVHUWhRRW9BZ0FpQkFSQVFZaUZBU2dDQUNJRElBWnFJZ0FnQTAwZ0FDQUVTM0lOQmdzZ0JoQnlJZ0FnQVVjTkFRd0hDeUFHSUFocklBVnhJZ1pCL3YvLy93ZExEUVFnQmhCeUlnRWdBQ2dDQUNBQUtBSUVha1lOQXlBQklRQUxJQUJCZjBZZ0IwRXdhaUFHVFhKRkJFQkJ1SVVCS0FJQUlnRWdDU0FHYTJwQkFDQUJhM0VpQVVIKy8vLy9CMHNFUUNBQUlRRU1Cd3NnQVJCeVFYOUhCRUFnQVNBR2FpRUdJQUFoQVF3SEMwRUFJQVpyRUhJYURBUUxJQUFpQVVGL1J3MEZEQU1MUVFBaEJBd0hDMEVBSVFFTUJRc2dBVUYvUncwQ0MwR1VoUUZCbElVQktBSUFRUVJ5TmdJQUN5QUNRZjcvLy84SFN3MEJJQUlRY2lJQlFYOUdRUUFRY2lJQVFYOUdjaUFBSUFGTmNnMEJJQUFnQVdzaUJpQUhRU2hxVFEwQkMwR0loUUZCaUlVQktBSUFJQVpxSWdBMkFnQkJqSVVCS0FJQUlBQkpCRUJCaklVQklBQTJBZ0FMQWtBQ1FBSkFRZkNCQVNnQ0FDSUZCRUJCbUlVQklRQURRQ0FCSUFBb0FnQWlBeUFBS0FJRUlnSnFSZzBDSUFBb0FnZ2lBQTBBQ3d3Q0MwSG9nUUVvQWdBaUFFRUFJQUFnQVUwYlJRUkFRZWlCQVNBQk5nSUFDMEVBSVFCQm5JVUJJQVkyQWdCQm1JVUJJQUUyQWdCQitJRUJRWDgyQWdCQi9JRUJRYkNGQVNnQ0FEWUNBRUdraFFGQkFEWUNBQU5BSUFCQkEzUWlBMEdJZ2dGcUlBTkJnSUlCYWlJQ05nSUFJQU5CaklJQmFpQUNOZ0lBSUFCQkFXb2lBRUVnUncwQUMwSGtnUUVnQmtFb2F5SURRWGdnQVd0QkIzRkJBQ0FCUVFocVFRZHhHeUlBYXlJQ05nSUFRZkNCQVNBQUlBRnFJZ0EyQWdBZ0FDQUNRUUZ5TmdJRUlBRWdBMnBCS0RZQ0JFSDBnUUZCd0lVQktBSUFOZ0lBREFJTElBQXRBQXhCQ0hFZ0F5QUZTM0lnQVNBRlRYSU5BQ0FBSUFJZ0JtbzJBZ1JCOElFQklBVkJlQ0FGYTBFSGNVRUFJQVZCQ0dwQkIzRWJJZ0JxSWdJMkFnQkI1SUVCUWVTQkFTZ0NBQ0FHYWlJQklBQnJJZ0EyQWdBZ0FpQUFRUUZ5TmdJRUlBRWdCV3BCS0RZQ0JFSDBnUUZCd0lVQktBSUFOZ0lBREFFTFFlaUJBU2dDQUNBQlN3UkFRZWlCQVNBQk5nSUFDeUFCSUFacUlRSkJtSVVCSVFBQ1FBSkFBa0FDUUFKQUFrQURRQ0FDSUFBb0FnQkhCRUFnQUNnQ0NDSUFEUUVNQWdzTElBQXRBQXhCQ0hGRkRRRUxRWmlGQVNFQUEwQWdCU0FBS0FJQUlnSlBCRUFnQWlBQUtBSUVhaUlFSUFWTERRTUxJQUFvQWdnaEFBd0FDd0FMSUFBZ0FUWUNBQ0FBSUFBb0FnUWdCbW8yQWdRZ0FVRjRJQUZyUVFkeFFRQWdBVUVJYWtFSGNSdHFJZ2tnQjBFRGNqWUNCQ0FDUVhnZ0FtdEJCM0ZCQUNBQ1FRaHFRUWR4RzJvaUJpQUhJQWxxSWdocklRSWdCU0FHUmdSQVFmQ0JBU0FJTmdJQVFlU0JBVUhrZ1FFb0FnQWdBbW9pQURZQ0FDQUlJQUJCQVhJMkFnUU1Bd3NnQmtIc2dRRW9BZ0JHQkVCQjdJRUJJQWcyQWdCQjRJRUJRZUNCQVNnQ0FDQUNhaUlBTmdJQUlBZ2dBRUVCY2pZQ0JDQUFJQWhxSUFBMkFnQU1Bd3NnQmlnQ0JDSUFRUU54UVFGR0JFQWdBRUY0Y1NFRkFrQWdBRUgvQVUwRVFDQUdLQUlJSWdNZ0FFRURkaUlBUVFOMFFZQ0NBV3BHR2lBRElBWW9BZ3dpQVVZRVFFSFlnUUZCMklFQktBSUFRWDRnQUhkeE5nSUFEQUlMSUFNZ0FUWUNEQ0FCSUFNMkFnZ01BUXNnQmlnQ0dDRUhBa0FnQmlBR0tBSU1JZ0ZIQkVBZ0JpZ0NDQ0lBSUFFMkFnd2dBU0FBTmdJSURBRUxBa0FnQmtFVWFpSUFLQUlBSWdNTkFDQUdRUkJxSWdBb0FnQWlBdzBBUVFBaEFRd0JDd05BSUFBaEJDQURJZ0ZCRkdvaUFDZ0NBQ0lERFFBZ0FVRVFhaUVBSUFFb0FoQWlBdzBBQ3lBRVFRQTJBZ0FMSUFkRkRRQUNRQ0FHSUFZb0Fod2lBMEVDZEVHSWhBRnFJZ0FvQWdCR0JFQWdBQ0FCTmdJQUlBRU5BVUhjZ1FGQjNJRUJLQUlBUVg0Z0EzZHhOZ0lBREFJTElBZEJFRUVVSUFjb0FoQWdCa1liYWlBQk5nSUFJQUZGRFFFTElBRWdCellDR0NBR0tBSVFJZ0FFUUNBQklBQTJBaEFnQUNBQk5nSVlDeUFHS0FJVUlnQkZEUUFnQVNBQU5nSVVJQUFnQVRZQ0dBc2dCU0FHYWlFR0lBSWdCV29oQWdzZ0JpQUdLQUlFUVg1eE5nSUVJQWdnQWtFQmNqWUNCQ0FDSUFocUlBSTJBZ0FnQWtIL0FVMEVRQ0FDUVFOMklnQkJBM1JCZ0lJQmFpRUNBbjlCMklFQktBSUFJZ0ZCQVNBQWRDSUFjVVVFUUVIWWdRRWdBQ0FCY2pZQ0FDQUNEQUVMSUFJb0FnZ0xJUUFnQWlBSU5nSUlJQUFnQ0RZQ0RDQUlJQUkyQWd3Z0NDQUFOZ0lJREFNTFFSOGhBQ0FDUWYvLy93ZE5CRUFnQWtFSWRpSUFJQUJCZ1A0L2FrRVFka0VJY1NJRGRDSUFJQUJCZ09BZmFrRVFka0VFY1NJQmRDSUFJQUJCZ0lBUGFrRVFka0VDY1NJQWRFRVBkaUFCSUFOeUlBQnlheUlBUVFGMElBSWdBRUVWYW5aQkFYRnlRUnhxSVFBTElBZ2dBRFlDSENBSVFnQTNBaEFnQUVFQ2RFR0loQUZxSVFRQ1FFSGNnUUVvQWdBaUEwRUJJQUIwSWdGeFJRUkFRZHlCQVNBQklBTnlOZ0lBSUFRZ0NEWUNBQ0FJSUFRMkFoZ01BUXNnQWtFQVFSa2dBRUVCZG1zZ0FFRWZSaHQwSVFBZ0JDZ0NBQ0VCQTBBZ0FTSURLQUlFUVhoeElBSkdEUU1nQUVFZGRpRUJJQUJCQVhRaEFDQURJQUZCQkhGcUlnUW9BaEFpQVEwQUN5QUVJQWcyQWhBZ0NDQUROZ0lZQ3lBSUlBZzJBZ3dnQ0NBSU5nSUlEQUlMUWVTQkFTQUdRU2hySWdOQmVDQUJhMEVIY1VFQUlBRkJDR3BCQjNFYklnQnJJZ0kyQWdCQjhJRUJJQUFnQVdvaUFEWUNBQ0FBSUFKQkFYSTJBZ1FnQVNBRGFrRW9OZ0lFUWZTQkFVSEFoUUVvQWdBMkFnQWdCU0FFUVNjZ0JHdEJCM0ZCQUNBRVFTZHJRUWR4RzJwQkwyc2lBQ0FBSUFWQkVHcEpHeUlDUVJzMkFnUWdBa0dnaFFFcEFnQTNBaEFnQWtHWWhRRXBBZ0EzQWdoQm9JVUJJQUpCQ0dvMkFnQkJuSVVCSUFZMkFnQkJtSVVCSUFFMkFnQkJwSVVCUVFBMkFnQWdBa0VZYWlFQUEwQWdBRUVITmdJRUlBQkJDR29oQVNBQVFRUnFJUUFnQVNBRVNRMEFDeUFDSUFWR0RRTWdBaUFDS0FJRVFYNXhOZ0lFSUFVZ0FpQUZheUlFUVFGeU5nSUVJQUlnQkRZQ0FDQUVRZjhCVFFSQUlBUkJBM1lpQUVFRGRFR0FnZ0ZxSVFJQ2YwSFlnUUVvQWdBaUFVRUJJQUIwSWdCeFJRUkFRZGlCQVNBQUlBRnlOZ0lBSUFJTUFRc2dBaWdDQ0FzaEFDQUNJQVUyQWdnZ0FDQUZOZ0lNSUFVZ0FqWUNEQ0FGSUFBMkFnZ01CQXRCSHlFQUlBVkNBRGNDRUNBRVFmLy8vd2ROQkVBZ0JFRUlkaUlBSUFCQmdQNC9ha0VRZGtFSWNTSUNkQ0lBSUFCQmdPQWZha0VRZGtFRWNTSUJkQ0lBSUFCQmdJQVBha0VRZGtFQ2NTSUFkRUVQZGlBQklBSnlJQUJ5YXlJQVFRRjBJQVFnQUVFVmFuWkJBWEZ5UVJ4cUlRQUxJQVVnQURZQ0hDQUFRUUowUVlpRUFXb2hBd0pBUWR5QkFTZ0NBQ0lDUVFFZ0FIUWlBWEZGQkVCQjNJRUJJQUVnQW5JMkFnQWdBeUFGTmdJQUlBVWdBellDR0F3QkN5QUVRUUJCR1NBQVFRRjJheUFBUVI5R0czUWhBQ0FES0FJQUlRRURRQ0FCSWdJb0FnUkJlSEVnQkVZTkJDQUFRUjEySVFFZ0FFRUJkQ0VBSUFJZ0FVRUVjV29pQXlnQ0VDSUJEUUFMSUFNZ0JUWUNFQ0FGSUFJMkFoZ0xJQVVnQlRZQ0RDQUZJQVUyQWdnTUF3c2dBeWdDQ0NJQUlBZzJBZ3dnQXlBSU5nSUlJQWhCQURZQ0dDQUlJQU0yQWd3Z0NDQUFOZ0lJQ3lBSlFRaHFJUUFNQlFzZ0FpZ0NDQ0lBSUFVMkFnd2dBaUFGTmdJSUlBVkJBRFlDR0NBRklBSTJBZ3dnQlNBQU5nSUlDMEhrZ1FFb0FnQWlBQ0FIVFEwQVFlU0JBU0FBSUFkcklnRTJBZ0JCOElFQlFmQ0JBU2dDQUNJQ0lBZHFJZ0EyQWdBZ0FDQUJRUUZ5TmdJRUlBSWdCMEVEY2pZQ0JDQUNRUWhxSVFBTUF3dEIxSUVCUVRBMkFnQkJBQ0VBREFJTEFrQWdCa1VOQUFKQUlBUW9BaHdpQWtFQ2RFR0loQUZxSWdBb0FnQWdCRVlFUUNBQUlBRTJBZ0FnQVEwQlFkeUJBU0FKUVg0Z0FuZHhJZ2syQWdBTUFnc2dCa0VRUVJRZ0JpZ0NFQ0FFUmh0cUlBRTJBZ0FnQVVVTkFRc2dBU0FHTmdJWUlBUW9BaEFpQUFSQUlBRWdBRFlDRUNBQUlBRTJBaGdMSUFRb0FoUWlBRVVOQUNBQklBQTJBaFFnQUNBQk5nSVlDd0pBSUFOQkQwMEVRQ0FFSUFNZ0Iyb2lBRUVEY2pZQ0JDQUFJQVJxSWdBZ0FDZ0NCRUVCY2pZQ0JBd0JDeUFFSUFkQkEzSTJBZ1FnQkNBSGFpSUZJQU5CQVhJMkFnUWdBeUFGYWlBRE5nSUFJQU5CL3dGTkJFQWdBMEVEZGlJQVFRTjBRWUNDQVdvaEFnSi9RZGlCQVNnQ0FDSUJRUUVnQUhRaUFIRkZCRUJCMklFQklBQWdBWEkyQWdBZ0Fnd0JDeUFDS0FJSUN5RUFJQUlnQlRZQ0NDQUFJQVUyQWd3Z0JTQUNOZ0lNSUFVZ0FEWUNDQXdCQzBFZklRQWdBMEgvLy84SFRRUkFJQU5CQ0hZaUFDQUFRWUQrUDJwQkVIWkJDSEVpQW5RaUFDQUFRWURnSDJwQkVIWkJCSEVpQVhRaUFDQUFRWUNBRDJwQkVIWkJBbkVpQUhSQkQzWWdBU0FDY2lBQWNtc2lBRUVCZENBRElBQkJGV3AyUVFGeGNrRWNhaUVBQ3lBRklBQTJBaHdnQlVJQU53SVFJQUJCQW5SQmlJUUJhaUVCQWtBQ1FDQUpRUUVnQUhRaUFuRkZCRUJCM0lFQklBSWdDWEkyQWdBZ0FTQUZOZ0lBREFFTElBTkJBRUVaSUFCQkFYWnJJQUJCSDBZYmRDRUFJQUVvQWdBaEJ3TkFJQWNpQVNnQ0JFRjRjU0FEUmcwQ0lBQkJIWFloQWlBQVFRRjBJUUFnQVNBQ1FRUnhhaUlDS0FJUUlnY05BQXNnQWlBRk5nSVFDeUFGSUFFMkFoZ2dCU0FGTmdJTUlBVWdCVFlDQ0F3QkN5QUJLQUlJSWdBZ0JUWUNEQ0FCSUFVMkFnZ2dCVUVBTmdJWUlBVWdBVFlDRENBRklBQTJBZ2dMSUFSQkNHb2hBQXdCQ3dKQUlBaEZEUUFDUUNBQktBSWNJZ0pCQW5SQmlJUUJhaUlBS0FJQUlBRkdCRUFnQUNBRU5nSUFJQVFOQVVIY2dRRWdDVUYrSUFKM2NUWUNBQXdDQ3lBSVFSQkJGQ0FJS0FJUUlBRkdHMm9nQkRZQ0FDQUVSUTBCQ3lBRUlBZzJBaGdnQVNnQ0VDSUFCRUFnQkNBQU5nSVFJQUFnQkRZQ0dBc2dBU2dDRkNJQVJRMEFJQVFnQURZQ0ZDQUFJQVEyQWhnTEFrQWdBMEVQVFFSQUlBRWdBeUFIYWlJQVFRTnlOZ0lFSUFBZ0FXb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBRWdCMEVEY2pZQ0JDQUJJQWRxSWdJZ0EwRUJjallDQkNBQ0lBTnFJQU0yQWdBZ0NnUkFJQXBCQTNZaUFFRURkRUdBZ2dGcUlRVkI3SUVCS0FJQUlRUUNmMEVCSUFCMElnQWdCbkZGQkVCQjJJRUJJQUFnQm5JMkFnQWdCUXdCQ3lBRktBSUlDeUVBSUFVZ0JEWUNDQ0FBSUFRMkFnd2dCQ0FGTmdJTUlBUWdBRFlDQ0F0QjdJRUJJQUkyQWdCQjRJRUJJQU0yQWdBTElBRkJDR29oQUFzZ0MwRVFhaVFBSUFBTHB3RUJCSDhqQUVFZ2F5SUJKQUFnQVVFQU5nSU1JQUZCTnpZQ0NDQUJJQUVwQXdnM0F3QWdBVUVRYWlJRElBRXBBZ0EzQWdRZ0F5QUFOZ0lBSXdCQkVHc2lBaVFBSUFBb0FnQkJmMGNFUUNBQ1FRaHFJZ1FnQXhCNkdpQUNJQVFRZWhvRFFDQUFLQUlBUVFGR0RRQUxJQUFvQWdCRkJFQWdBRUVCTmdJQUlBSkJPQkVCQUNBQVFYODJBZ0FMQ3lBQ1FSQnFKQUFnQUNnQ0JDRUFJQUZCSUdva0FDQUFRUUZyQ3hzQUlBQkJBRFlDQkNBQVFkajhBRFlDQUNBQVFaaldBRFlDQUF1WUJnRUpmeU1BUVJCcklnZ2tBQ0FBRU00Qkl3QkJFR3NpQWlRQUlBSWdBRFlDRENBSVFRaHFJZ1VnQWtFTWFoQXpJQUpCRUdva0FFR3dsUUVRVUNBQlRRUkFBa0JCc0pVQkVGQWlBaUFCUVFGcUlnQkpCRUFqQUVFZ2F5SUpKQUFDUUNBQUlBSnJJZ1pCc0pVQkVFTW9BZ0JCdEpVQktBSUFhMEVDZFUwRVFDQUdFSmNDREFFTFFiQ1ZBUkIwSVFjZ0NVRUlhaUVDQW45QnNKVUJFRkFnQm1vaEJDTUFRUkJySWdBa0FDQUFJQVEyQWd3Z0JCQ0JBaUlEVFFSQVFiQ1ZBUkJ6SWdRZ0EwRUJka2tFUUNBQUlBUkJBWFEyQWdnZ0FFRUlhaUFBUVF4cUVIWW9BZ0FoQXdzZ0FFRVFhaVFBSUFNTUFRc1FGd0FMSVFCQnNKVUJFRkFoQ2tFQUlRTWpBRUVRYXlJRUpBQWdCRUVBTmdJTUlBSkJER29nQkVFTWFpQUhFSVFDSUFBRVFDQUNLQUlRSUFBUWdBSWhBd3NnQWlBRE5nSUFJQUlnQXlBS1FRSjBhaUlITmdJSUlBSWdCellDQkNBQ0VJTUJJQU1nQUVFQ2RHbzJBZ0FnQkVFUWFpUUFJd0JCRUdzaUFDUUFJQUFnQWlnQ0NEWUNBQ0FDS0FJSUlRTWdBQ0FDUVFocU5nSUlJQUFnQXlBR1FRSjBhallDQkNBQUtBSUFJUU1EUUNBQUtBSUVJQU5IQkVBZ0FpZ0NFQ0FBS0FJQUVQNEJJQUFnQUNnQ0FFRUVhaUlETmdJQURBRUxDeUFBS0FJSUlBQW9BZ0EyQWdBZ0FFRVFhaVFBUWJDVkFSQ1JBa0d3bFFFUWRFR3dsUUVvQWdCQnRKVUJLQUlBSUFKQkJHb2lBQkNEQWtHd2xRRWdBQkIxUWJTVkFTQUNRUWhxRUhWQnNKVUJFRU1nQWhDREFSQjFJQUlnQWlnQ0JEWUNBRUd3bFFFUVVCRC9BU0FDS0FJRUlRQURRQ0FBSUFJb0FnaEhCRUFnQWlnQ0VCb2dBaUFDS0FJSVFRUnJOZ0lJREFFTEN5QUNLQUlBQkVBZ0FpZ0NFQ0FDS0FJQUlBSVFnd0VvQWdBZ0FpZ0NBR3RCQW5VUS9BRUxDeUFKUVNCcUpBQU1BUXNnQUNBQ1NRUkFRYkNWQVNnQ0FDQUFRUUowYWlFQVFiQ1ZBUkJRSVFKQnNKVUJJQUFRK3dGQnNKVUJJQUlRbEFJTEN3dEJzSlVCSUFFUWR5Z0NBQVJBUWJDVkFTQUJFSGNvQWdBUW93RUxJQVVRcGdFaEFFR3dsUUVnQVJCM0lBQTJBZ0FnQlNnQ0FDRUFJQVZCQURZQ0FDQUFCRUFnQUJDakFRc2dDRUVRYWlRQUN3Z0FJQUJCQUJBbkN5OEJBWDhqQUVFUWF5SURKQUFnQXlBQk5nSU1JQUFnQTBFTWFoQXpJQUJCQkdvZ0FoQXpJQU5CRUdva0FDQUFDeEFBSUFBb0FnQVFnQU5CR0hSQkdIVUxCZ0FnQUJBUUN3b0FJQUFvQWdBUSt3SUxEUUFnQUNnQ0FCRC9BaG9nQUF0TEFRSi9Jd0JCRUdzaUFTUUFJQUVnQUJEeUFTRUFJd0JCRUdzaUFpUUFJQUpCQ0dvZ0FDZ0NCQkI2S0FJQVFRRTZBQUFnQUNnQ0NFRUJPZ0FBSUFKQkVHb2tBQ0FCUVJCcUpBQUxkd0VEZnlNQVFSQnJJZ0lrQUNBQ0lBQVE4Z0VoQUNNQVFSQnJJZ01rQUNBRFFRaHFJQUFvQWdRUWVpZ0NBQzBBQUVVRVFBSi9Ba0FnQUNnQ0NDSUFMUUFBSWdGQkFVY0VmeUFCUVFKeERRRWdBRUVDT2dBQVFRRUZRUUFMREFFTEVCY0FDeUVCQ3lBRFFSQnFKQUFnQWtFUWFpUUFJQUVMRFFBZ0FDZ0NBQkQ2QWhvZ0FBc0pBQ0FBSUFFUWdRTUxKQUVCZnlBQUtBSUFJUUlnQUNBQk5nSUFJQUlFUUNBQ0lBQVFsZ0VvQWdBUkFRQUxDd2tBSUFBZ0FSRDhBZ3NSQUNBQUlBRWdBQ2dDQUNnQ0hCRUNBQXUvQVFFRGZ5QUFMUUFBUVNCeFJRUkFBa0FnQVNFREFrQWdBaUFBSWdFb0FoQWlBQVIvSUFBRklBRVE2QUVOQVNBQktBSVFDeUFCS0FJVUlnVnJTd1JBSUFFZ0F5QUNJQUVvQWlRUkJBQWFEQUlMQWtBZ0FTZ0NVRUVBU0EwQUlBSWhBQU5BSUFBaUJFVU5BU0FESUFSQkFXc2lBR290QUFCQkNrY05BQXNnQVNBRElBUWdBU2dDSkJFRUFDQUVTUTBCSUFNZ0JHb2hBeUFDSUFScklRSWdBU2dDRkNFRkN5QUZJQU1nQWhCQ0dpQUJJQUVvQWhRZ0FtbzJBaFFMQ3dzTGRRRUJmaUFBSUFFZ0JINGdBaUFEZm53Z0EwSWdpQ0lDSUFGQ0lJZ2lCSDU4SUFOQy8vLy8vdytESWdNZ0FVTC8vLy8vRDRNaUFYNGlCVUlnaUNBRElBUitmQ0lEUWlDSWZDQUJJQUorSUFOQy8vLy8vdytEZkNJQlFpQ0lmRGNEQ0NBQUlBVkMvLy8vL3crRElBRkNJSWFFTndNQUMwTUJBWDhqQUVFUWF5SUZKQUFnQlNBQ05nSU1JQVVnQkRZQ0NDQUZJQVZCREdvUVVpRUNJQUFnQVNBRElBVW9BZ2dRdFFFaEFDQUNFRkVnQlVFUWFpUUFJQUFMb1FFQkFuOENRQ0FBRUFsRklBSWdBV3RCQlVoeURRQWdBU0FDRUswQklBSkJCR3NoQkNBQUVBMGlBaUFBRUFscUlRVUNRQU5BQWtBZ0Fpd0FBQ0VBSUFFZ0JFOE5BQ0FBUVFCTUlBQkIvd0JPY2tVRVFDQUJLQUlBSUFJc0FBQkhEUU1MSUFGQkJHb2hBU0FDSUFVZ0FtdEJBVXBxSVFJTUFRc0xJQUJCQUV3Z0FFSC9BRTV5RFFFZ0Fpd0FBQ0FFS0FJQVFRRnJTdzBCQ3lBRFFRUTJBZ0FMQzIwQkFYOGpBRUdBQW1zaUJTUUFJQVJCZ01BRWNTQUNJQU5NY2tVRVFDQUZJQUZCL3dGeElBSWdBMnNpQWtHQUFpQUNRWUFDU1NJQkd4QkdHaUFCUlFSQUEwQWdBQ0FGUVlBQ0VDb2dBa0dBQW1zaUFrSC9BVXNOQUFzTElBQWdCU0FDRUNvTElBVkJnQUpxSkFBTFVBRUJmZ0pBSUFOQndBQnhCRUFnQVNBRFFVQnFyWVloQWtJQUlRRU1BUXNnQTBVTkFDQUNJQU90SWdTR0lBRkJ3QUFnQTJ1dGlJUWhBaUFCSUFTR0lRRUxJQUFnQVRjREFDQUFJQUkzQXdnTFZRRUNmeU1BUVJCcklnSWtBQ0FBRURVRVFDQUFLQUlBSVFNZ0FCQjlHaUFERUJBTElBQWdBU2dDQ0RZQ0NDQUFJQUVwQWdBM0FnQWdBVUVBRURvZ0FrRUFPZ0FQSUFFZ0FrRVBhaEEwSUFKQkVHb2tBQXNNQUNBQUlBRVFnUU5CQVhNTENnQWdBRUdFaVFFUVpBc01BQ0FBSUFFb0FnQTJBZ0FMREFBZ0FDQUJMUUFBT2dBQUN3b0FJQUF0QUF0QkIzWUxEQUFnQUNBQkVQd0NRUUZ6Q3hFQUlBQWdBU0FCS0FJQUtBSVVFUU1BQ3c4QUlBQWdBQ2dDQUNnQ0VCRUFBQXNKQUNBQUlBRTJBZ1FMQ1FBZ0FDQUJPZ0FMQ3dvQUlBQkIvSWdCRUdRTDBRa0NCSDhFZmlNQVFmQUFheUlGSkFBZ0JFTC8vLy8vLy8vLy8vOEFneUVLQWtBQ1FDQUJRZ0Y5SWd0Q2YxRWdBa0wvLy8vLy8vLy8vLzhBZ3lJSklBRWdDMWF0ZkVJQmZTSUxRdi8vLy8vLy83Ly8vd0JXSUF0Qy8vLy8vLy8vdi8vL0FGRWJSUVJBSUFOQ0FYMGlDMEovVWlBS0lBTWdDMWF0ZkVJQmZTSUxRdi8vLy8vLy83Ly8vd0JVSUF0Qy8vLy8vLy8vdi8vL0FGRWJEUUVMSUFGUUlBbENnSUNBZ0lDQXdQLy9BRlFnQ1VLQWdJQ0FnSURBLy84QVVSdEZCRUFnQWtLQWdJQ0FnSUFnaENFRUlBRWhBd3dDQ3lBRFVDQUtRb0NBZ0lDQWdNRC8vd0JVSUFwQ2dJQ0FnSUNBd1AvL0FGRWJSUVJBSUFSQ2dJQ0FnSUNBSUlRaEJBd0NDeUFCSUFsQ2dJQ0FnSUNBd1AvL0FJV0VVQVJBUW9DQWdJQ0FnT0QvL3dBZ0FpQUJJQU9GSUFJZ0JJVkNnSUNBZ0lDQWdJQ0FmNFdFVUNJR0d5RUVRZ0FnQVNBR0d5RUREQUlMSUFNZ0NrS0FnSUNBZ0lEQS8vOEFoWVJRRFFFZ0FTQUpoRkFFUUNBRElBcUVRZ0JTRFFJZ0FTQURneUVESUFJZ0JJTWhCQXdDQ3lBRElBcUVVRVVOQUNBQklRTWdBaUVFREFFTElBTWdBU0FCSUFOVUlBa2dDbFFnQ1NBS1VSc2lCeHNoQ2lBRUlBSWdCeHNpQzBMLy8vLy8vLzgvZ3lFSklBSWdCQ0FIR3lJQ1FqQ0lwMEgvL3dGeElRZ2dDMEl3aUtkQi8vOEJjU0lHUlFSQUlBVkI0QUJxSUFvZ0NTQUtJQWtnQ1ZBaUJodDVJQVpCQm5TdGZLY2lCa0VQYXhBdklBVXBBMmdoQ1NBRktRTmdJUXBCRUNBR2F5RUdDeUFCSUFNZ0J4c2hBeUFDUXYvLy8vLy8veitESVFRZ0NFVUVRQ0FGUWRBQWFpQURJQVFnQXlBRUlBUlFJZ2NiZVNBSFFRWjByWHluSWdkQkQyc1FMMEVRSUFkcklRZ2dCU2tEV0NFRUlBVXBBMUFoQXdzZ0JFSURoaUFEUWoySWhFS0FnSUNBZ0lDQUJJUWhCQ0FKUWdPR0lBcENQWWlFSVFrZ0FpQUxoU0VNQW40Z0EwSURoaUlCSUFZZ0NHc2lCMFVOQUJvZ0IwSC9BRXNFUUVJQUlRUkNBUXdCQ3lBRlFVQnJJQUVnQkVHQUFTQUhheEF2SUFWQk1Hb2dBU0FFSUFjUWZDQUZLUU00SVFRZ0JTa0RNQ0FGS1FOQUlBVXBBMGlFUWdCU3JZUUxJUUlnQ1VLQWdJQ0FnSUNBQklRaENTQUtRZ09HSVFNQ1FDQU1RZ0JUQkVBZ0F5QUNmU0lCSUFrZ0JIMGdBaUFEVnExOUlnU0VVQVJBUWdBaEEwSUFJUVFNQXdzZ0JFTC8vLy8vLy8vL0ExWU5BU0FGUVNCcUlBRWdCQ0FCSUFRZ0JGQWlCeHQ1SUFkQkJuU3RmS2RCREdzaUJ4QXZJQVlnQjJzaEJpQUZLUU1vSVFRZ0JTa0RJQ0VCREFFTElBSWdBM3dpQVNBQ1ZLMGdCQ0FKZkh3aUJFS0FnSUNBZ0lDQUNJTlFEUUFnQVVJQmd5QUVRaitHSUFGQ0FZaUVoQ0VCSUFaQkFXb2hCaUFFUWdHSUlRUUxJQXRDZ0lDQWdJQ0FnSUNBZjRNaEFpQUdRZi8vQVU0RVFDQUNRb0NBZ0lDQWdNRC8vd0NFSVFSQ0FDRUREQUVMUVFBaEJ3SkFJQVpCQUVvRVFDQUdJUWNNQVFzZ0JVRVFhaUFCSUFRZ0JrSC9BR29RTHlBRklBRWdCRUVCSUFackVId2dCU2tEQUNBRktRTVFJQVVwQXhpRVFnQlNyWVFoQVNBRktRTUlJUVFMSUFHblFRZHhJZ1pCQkV1dElBUkNQWVlnQVVJRGlJUWlBWHdpQXlBQlZLMGdCRUlEaUVMLy8vLy8vLzgvZ3lBSHJVSXdob1FnQW9SOElRUUNRQ0FHUVFSR0JFQWdCQ0FEUWdHRElnRWdBM3dpQXlBQlZLMThJUVFNQVFzZ0JrVU5BUXNMSUFBZ0F6Y0RBQ0FBSUFRM0F3Z2dCVUh3QUdva0FBc1JBQ0FBSUFFZ0FDZ0NBQ2dDTEJFQ0FBc3RBQ0FDUlFSQUlBQW9BZ1FnQVNnQ0JFWVBDeUFBSUFGR0JFQkJBUThMSUFBb0FnUWdBU2dDQkJDMkFVVUxZd0FnQWlnQ0JFR3dBWEVpQWtFZ1JnUkFJQUVQQ3dKQUlBSkJFRWNOQUFKQUFrQWdBQzBBQUNJQ1FTdHJEZ01BQVFBQkN5QUFRUUZxRHdzZ0FrRXdSeUFCSUFCclFRSkljZzBBSUFBdEFBRkJJSEpCK0FCSERRQWdBRUVDYWlFQUN5QUFDeVlCQVg4akFFRVFheUlCSkFBZ0FVRUlhaUFBRUEwUWVpZ0NBQ0VBSUFGQkVHb2tBQ0FBQzM0Q0FuOEJmaU1BUVJCcklnTWtBQ0FBQW40Z0FVVUVRRUlBREFFTElBTWdBU0FCUVI5MUlnSnFJQUp6SWdLdFFnQWdBbWNpQWtIUkFHb1FMeUFES1FNSVFvQ0FnSUNBZ01BQWhVR2VnQUVnQW11dFFqQ0dmQ0FCUVlDQWdJQjRjYTFDSUlhRUlRUWdBeWtEQUFzM0F3QWdBQ0FFTndNSUlBTkJFR29rQUF1REJBRURmeUFDUVlBRVR3UkFJQUFnQVNBQ0VBVWFJQUFQQ3lBQUlBSnFJUU1DUUNBQUlBRnpRUU54UlFSQUFrQWdBRUVEY1VVRVFDQUFJUUlNQVFzZ0FrRUFUQVJBSUFBaEFnd0JDeUFBSVFJRFFDQUNJQUV0QUFBNkFBQWdBVUVCYWlFQklBSkJBV29pQWtFRGNVVU5BU0FDSUFOSkRRQUxDd0pBSUFOQmZIRWlCRUhBQUVrTkFDQUNJQVJCUUdvaUJVc05BQU5BSUFJZ0FTZ0NBRFlDQUNBQ0lBRW9BZ1EyQWdRZ0FpQUJLQUlJTmdJSUlBSWdBU2dDRERZQ0RDQUNJQUVvQWhBMkFoQWdBaUFCS0FJVU5nSVVJQUlnQVNnQ0dEWUNHQ0FDSUFFb0FodzJBaHdnQWlBQktBSWdOZ0lnSUFJZ0FTZ0NKRFlDSkNBQ0lBRW9BaWcyQWlnZ0FpQUJLQUlzTmdJc0lBSWdBU2dDTURZQ01DQUNJQUVvQWpRMkFqUWdBaUFCS0FJNE5nSTRJQUlnQVNnQ1BEWUNQQ0FCUVVCcklRRWdBa0ZBYXlJQ0lBVk5EUUFMQ3lBQ0lBUlBEUUVEUUNBQ0lBRW9BZ0EyQWdBZ0FVRUVhaUVCSUFKQkJHb2lBaUFFU1EwQUN3d0JDeUFEUVFSSkJFQWdBQ0VDREFFTElBQWdBMEVFYXlJRVN3UkFJQUFoQWd3QkN5QUFJUUlEUUNBQ0lBRXRBQUE2QUFBZ0FpQUJMUUFCT2dBQklBSWdBUzBBQWpvQUFpQUNJQUV0QUFNNkFBTWdBVUVFYWlFQklBSkJCR29pQWlBRVRRMEFDd3NnQWlBRFNRUkFBMEFnQWlBQkxRQUFPZ0FBSUFGQkFXb2hBU0FDUVFGcUlnSWdBMGNOQUFzTElBQUxCd0FnQUVFSWFnc25BUUYvSUFKQkFFNEVmeUFBS0FJSUlBSkIvd0Z4UVFGMGFpOEJBQ0FCY1VFQVJ3VWdBd3NMQ2dBZ0FFRXdhMEVLU1F2eUFnSUNmd0YrQWtBZ0FrVU5BQ0FBSUFFNkFBQWdBQ0FDYWlJRFFRRnJJQUU2QUFBZ0FrRURTUTBBSUFBZ0FUb0FBaUFBSUFFNkFBRWdBMEVEYXlBQk9nQUFJQU5CQW1zZ0FUb0FBQ0FDUVFkSkRRQWdBQ0FCT2dBRElBTkJCR3NnQVRvQUFDQUNRUWxKRFFBZ0FFRUFJQUJyUVFOeElnUnFJZ01nQVVIL0FYRkJnWUtFQ0d3aUFUWUNBQ0FESUFJZ0JHdEJmSEVpQkdvaUFrRUVheUFCTmdJQUlBUkJDVWtOQUNBRElBRTJBZ2dnQXlBQk5nSUVJQUpCQ0dzZ0FUWUNBQ0FDUVF4cklBRTJBZ0FnQkVFWlNRMEFJQU1nQVRZQ0dDQURJQUUyQWhRZ0F5QUJOZ0lRSUFNZ0FUWUNEQ0FDUVJCcklBRTJBZ0FnQWtFVWF5QUJOZ0lBSUFKQkdHc2dBVFlDQUNBQ1FSeHJJQUUyQWdBZ0JDQURRUVJ4UVJoeUlnUnJJZ0pCSUVrTkFDQUJyVUtCZ0lDQUVINGhCU0FESUFScUlRRURRQ0FCSUFVM0F4Z2dBU0FGTndNUUlBRWdCVGNEQ0NBQklBVTNBd0FnQVVFZ2FpRUJJQUpCSUdzaUFrRWZTdzBBQ3dzZ0FBczNBUUovSXdCQkVHc2lBaVFBQTBBZ0FVRURSd1JBSUFBZ0FVRUNkR3BCQURZQ0FDQUJRUUZxSVFFTUFRc0xJQUpCRUdva0FDQUFDdzhBSUFBZ0FDZ0NBQ2dDREJFQUFBc0hBQ0FBRUFsRkN4RUFJQUFnQVNBQktBSUFLQUljRVFNQUN4RUFJQUFnQVNBQktBSUFLQUlZRVFNQUN4QUFJQUFnQVVHQWdJQ0FlSEkyQWdnTENRQWdBQ0FCTmdJQUN4TUFJQUFnQVNBQ0lBQW9BZ0FvQWd3UkJBQUxCQUJCQUFzUUFDQUFLQUlFSUFBb0FnQnJRUUoxQ3hJQUlBQW9BZ0FpQUFSQUlBQVEwUUlhQ3dzUkFDQUFJQUVvQWdBUTBRSTJBZ0FnQUF0QkFRRi9JQUFnQVRjRGNDQUFJQUFvQWl3Z0FDZ0NCQ0lDYTZ3M0EzZ2dBQ0FCVUNBQUtBSUlJZ0FnQW11c0lBRlhjZ1IvSUFBRklBSWdBYWRxQ3pZQ2FBc2lBUUYvSXdCQkVHc2lBaVFBSUFBZ0FTQUJFSklCRVBZQklBSkJFR29rQUNBQUN4QUFJQUlFUUNBQUlBRWdBaEJDR2dzTG5RRUJCSDhqQUVFUWF5SUhKQUFDUUNBQVJRMEFJQVFvQWd3aEJpQUNJQUZySWdoQkFFb0VRQ0FBSUFFZ0NCQi9JQWhIRFFFTElBWWdBeUFCYXlJQmEwRUFJQUVnQmtnYklnRkJBRW9FUUNBQUlBY2dBU0FGRU84QklnVVFEU0FCRUg4aEJpQUZFQW9hSUFFZ0JrY05BUXNnQXlBQ2F5SUJRUUJLQkVBZ0FDQUNJQUVRZnlBQlJ3MEJDeUFFRU80QklBQWhDUXNnQjBFUWFpUUFJQWtMVlFFQ2Z5TUFRUkJySWdJa0FDQUFFRFVFUUNBQUtBSUFJUU1nQUJCOUdpQURFQkFMSUFBZ0FTZ0NDRFlDQ0NBQUlBRXBBZ0EzQWdBZ0FVRUFFRG9nQWtFQU5nSU1JQUVnQWtFTWFoQXpJQUpCRUdva0FBdThBUUVEZnlNQVFSQnJJZ1VrQUNBRklBRTJBZ2hCQUNFQlFRWWhCZ0pBQWtBZ0FDQUZRUWhxRUNnTkFFRUVJUVlnQTBHQUVDQUFFQ0VpQnhCT1JRMEFJQU1nQnhDSEFTRUJBMEFDUUNBQUVDVWFJQUZCTUdzaEFTQUFJQVZCQ0dvUU5rVWdCRUVDU0hJTkFDQURRWUFRSUFBUUlTSUdFRTVGRFFNZ0JFRUJheUVFSUFNZ0JoQ0hBU0FCUVFwc2FpRUJEQUVMQzBFQ0lRWWdBQ0FGUVFocUVDaEZEUUVMSUFJZ0FpZ0NBQ0FHY2pZQ0FBc2dCVUVRYWlRQUlBRUx2QUVCQTM4akFFRVFheUlGSkFBZ0JTQUJOZ0lJUVFBaEFVRUdJUVlDUUFKQUlBQWdCVUVJYWhBbURRQkJCQ0VHSUFOQmdCQWdBQkFmSWdjUVJFVU5BQ0FESUFjUWlBRWhBUU5BQWtBZ0FCQWlHaUFCUVRCcklRRWdBQ0FGUVFocUVERkZJQVJCQWtoeURRQWdBMEdBRUNBQUVCOGlCaEJFUlEwRElBUkJBV3NoQkNBRElBWVFpQUVnQVVFS2JHb2hBUXdCQ3d0QkFpRUdJQUFnQlVFSWFoQW1SUTBCQ3lBQ0lBSW9BZ0FnQm5JMkFnQUxJQVZCRUdva0FDQUJDNW9CQVFOL0l3QkJFR3NpQkNRQUlBUWdBVFlDRENBRUlBTTJBZ2dnQkNBRVFReHFFRkloQmlBRUtBSUlJUU1qQUVFUWF5SUJKQUFnQVNBRE5nSU1JQUVnQXpZQ0NFRi9JUVVDUUVFQVFRQWdBaUFERUxVQklnTkJBRWdOQUNBQUlBTkJBV29pQXhBWklnQTJBZ0FnQUVVTkFDQUFJQU1nQWlBQktBSU1FTFVCSVFVTElBRkJFR29rQUNBRklRQWdCaEJSSUFSQkVHb2tBQ0FBQ3cwQUlBQW9BZ0FnQVNnQ0FFY0xMZ0FDUUNBQUtBSUVRY29BY1NJQUJFQWdBRUhBQUVZRVFFRUlEd3NnQUVFSVJ3MEJRUkFQQzBFQUR3dEJDZ3Y1QVFJRGZnSi9Jd0JCRUdzaUJTUUFBbjRnQWIwaUEwTC8vLy8vLy8vLy8vOEFneUlDUW9DQWdJQ0FnSUFJZlVMLy8vLy8vLy8vNy84QVdBUkFJQUpDUElZaEJDQUNRZ1NJUW9DQWdJQ0FnSUNBUEh3TUFRc2dBa0tBZ0lDQWdJQ0ErUDhBV2dSQUlBTkNQSVloQkNBRFFnU0lRb0NBZ0lDQWdNRC8vd0NFREFFTElBSlFCRUJDQUF3QkN5QUZJQUpDQUNBRHAyZEJJR29nQWtJZ2lLZG5JQUpDZ0lDQWdCQlVHeUlHUVRGcUVDOGdCU2tEQUNFRUlBVXBBd2hDZ0lDQWdJQ0F3QUNGUVl6NEFDQUdhNjFDTUlhRUN5RUNJQUFnQkRjREFDQUFJQUlnQTBLQWdJQ0FnSUNBZ0lCL2c0UTNBd2dnQlVFUWFpUUFDd2NBSUFBZ0FVWUxNd0VCZnlBQVFRRWdBQnNoQUFKQUEwQWdBQkFaSWdFTkFVR1lsd0VvQWdBaUFRUkFJQUVSRHdBTUFRc0xFQUFBQ3lBQkM4UURBUU4vSXdCQklHc2lDQ1FBSUFnZ0FqWUNFQ0FJSUFFMkFoZ2dDRUVJYWlJQklBTVFEeUFCRURzaENTQUJFQTRnQkVFQU5nSUFRUUFoQWdKQUEwQWdCaUFIUmlBQ2NnMEJBa0FnQ0VFWWFpQUlRUkJxRUNnTkFBSkFJQWtnQmlnQ0FCQ0hBVUVsUmdSQUlBWkJCR29pQWlBSFJnMENRUUFoQ2dKL0lBa2dBaWdDQUJDSEFTSUJRY1VBUmlBQlFmOEJjVUV3Um5KRkJFQWdCaUVDSUFFTUFRc2dCa0VJYWlBSFJnMERJQUVoQ2lBSklBWW9BZ2dRaHdFTElRRWdDQ0FBSUFnb0FoZ2dDQ2dDRUNBRElBUWdCU0FCSUFvZ0FDZ0NBQ2dDSkJFTUFEWUNHQ0FDUVFocUlRWU1BUXNnQ1VHQXdBQWdCaWdDQUJCT0JFQURRQUpBSUFjZ0JrRUVhaUlHUmdSQUlBY2hCZ3dCQ3lBSlFZREFBQ0FHS0FJQUVFNE5BUXNMQTBBZ0NFRVlhaUFJUVJCcUVEWkZEUUlnQ1VHQXdBQWdDRUVZYWhBaEVFNUZEUUlnQ0VFWWFoQWxHZ3dBQ3dBTElBa2dDRUVZYWhBaEVDa2dDU0FHS0FJQUVDbEdCRUFnQmtFRWFpRUdJQWhCR0dvUUpSb01BUXNnQkVFRU5nSUFDeUFFS0FJQUlRSU1BUXNMSUFSQkJEWUNBQXNnQ0VFWWFpQUlRUkJxRUNnRVFDQUVJQVFvQWdCQkFuSTJBZ0FMSUFnb0FoZ2hBQ0FJUVNCcUpBQWdBQXZHQXdFRGZ5TUFRU0JySWdna0FDQUlJQUkyQWhBZ0NDQUJOZ0lZSUFoQkNHb2lBU0FERUE4Z0FSQXlJUWtnQVJBT0lBUkJBRFlDQUVFQUlRSUNRQU5BSUFZZ0IwWWdBbklOQVFKQUlBaEJHR29nQ0VFUWFoQW1EUUFDUUNBSklBWXNBQUFRaUFGQkpVWUVRQ0FHUVFGcUlnSWdCMFlOQWtFQUlRb0NmeUFKSUFJc0FBQVFpQUVpQVVIRkFFWWdBVUgvQVhGQk1FWnlSUVJBSUFZaEFpQUJEQUVMSUFaQkFtb2dCMFlOQXlBQklRb2dDU0FHTEFBQ0VJZ0JDeUVCSUFnZ0FDQUlLQUlZSUFnb0FoQWdBeUFFSUFVZ0FTQUtJQUFvQWdBb0FpUVJEQUEyQWhnZ0FrRUNhaUVHREFFTElBbEJnTUFBSUFZc0FBQVFSQVJBQTBBQ1FDQUhJQVpCQVdvaUJrWUVRQ0FISVFZTUFRc2dDVUdBd0FBZ0Jpd0FBQkJFRFFFTEN3TkFJQWhCR0dvZ0NFRVFhaEF4UlEwQ0lBbEJnTUFBSUFoQkdHb1FIeEJFUlEwQ0lBaEJHR29RSWhvTUFBc0FDeUFKSUFoQkdHb1FIeEN6QVNBSklBWXNBQUFRc3dGR0JFQWdCa0VCYWlFR0lBaEJHR29RSWhvTUFRc2dCRUVFTmdJQUN5QUVLQUlBSVFJTUFRc0xJQVJCQkRZQ0FBc2dDRUVZYWlBSVFSQnFFQ1lFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQWdvQWhnaEFDQUlRU0JxSkFBZ0FBdXFBUUVFZnlNQVFSQnJJZ2drQUFKQUlBQkZEUUFnQkNnQ0RDRUdJQUlnQVdzaUIwRUFTZ1JBSUFBZ0FTQUhRUUoxSWdjUWZ5QUhSdzBCQ3lBR0lBTWdBV3RCQW5VaUFXdEJBQ0FCSUFaSUd5SUJRUUJLQkVBZ0FDQUlJQUVnQlJDN0FpSUZFQTBnQVJCL0lRWWdCUkFLR2lBQklBWkhEUUVMSUFNZ0Ftc2lBVUVBU2dSQUlBQWdBaUFCUVFKMUlnRVFmeUFCUncwQkN5QUVFTzRCSUFBaENRc2dDRUVRYWlRQUlBa0xGZ0FnQUNBQklBSWdBeUFBS0FJQUtBSXdFUXNBR2d0Q0FRRi9JQUFvQWdBaEFpQUJFQm9oQUNBQ1FRaHFJZ0VRVUNBQVN3Ui9JQUVnQUJCM0tBSUFRUUJIQlVFQUMwVUVRQkFYQUFzZ0FrRUlhaUFBRUhjb0FnQUxDQUFnQUVIL0FYRUxCQUFnQUFzUEFDQUFJQUFvQWdBb0FpUVJBQUFMRVFBZ0FDQUJJQUVvQWdBb0FpQVJBd0FMRVFBZ0FDQUJJQUVvQWdBb0Fpd1JBd0FMREFBZ0FFR0Nob0FnTmdBQUN3Y0FJQUFRRVJvTExnRUJmeU1BUVJCcklnRWtBQ0FCUVFocUlBQVFEU0FBRUFsQkFuUnFFSG9vQWdBaEFDQUJRUkJxSkFBZ0FBdXFBUUVCZndKQUlBTkJnQkJ4UlEwQUlBSkZJQU5CeWdCeElnUkJDRVlnQkVIQUFFWnljZzBBSUFCQkt6b0FBQ0FBUVFGcUlRQUxJQU5CZ0FSeEJFQWdBRUVqT2dBQUlBQkJBV29oQUFzRFFDQUJMUUFBSWdRRVFDQUFJQVE2QUFBZ0FFRUJhaUVBSUFGQkFXb2hBUXdCQ3dzZ0FBSi9RZThBSUFOQnlnQnhJZ0ZCd0FCR0RRQWFRZGdBUWZnQUlBTkJnSUFCY1JzZ0FVRUlSZzBBR2tIa0FFSDFBQ0FDR3dzNkFBQUxLd0VCZnlNQVFSQnJJZ0VrQUNBQlFRaHFJQUFRRFNBQUVBbHFFSG9vQWdBaEFDQUJRUkJxSkFBZ0FBc1dBQ0FBSUFFZ0FpQURJQUFvQWdBb0FpQVJDd0FhQ3hBQUlBQkJJRVlnQUVFSmEwRUZTWElMTmdBZ0FnUi9JQUlFUUFOQUlBQWdBU2dDQURZQ0FDQUFRUVJxSVFBZ0FVRUVhaUVCSUFKQkFXc2lBZzBBQ3d0QkFBVWdBQXNhQzFJQkFuOUI4SUFCS0FJQUlnRWdBRUVEYWtGOGNTSUNhaUVBQWtBZ0FrRUFJQUFnQVUwYkRRQWdBRDhBUVJCMFN3UkFJQUFRQkVVTkFRdEI4SUFCSUFBMkFnQWdBUThMUWRTQkFVRXdOZ0lBUVg4TEVnQWdBQkJES0FJQUlBQW9BZ0JyUVFKMUN3Y0FJQUJCRUdvTE5RRUJmeU1BUVJCcklnSWtBQ0FDSUFBb0FnQTJBZ3dnQUNBQktBSUFOZ0lBSUFFZ0FrRU1haWdDQURZQ0FDQUNRUkJxSkFBTEpBRUNmeU1BUVJCcklnSWtBQ0FBSUFFUThRRWhBeUFDUVJCcUpBQWdBU0FBSUFNYkN3MEFJQUFvQWdBZ0FVRUNkR29MRmdBZ0FCQTFCRUFnQUNBQkVEa1BDeUFBSUFFUU9nc3NBQUpBSUFBZ0FVWU5BQU5BSUFBZ0FVRUJheUlCVHcwQklBQWdBUkN3QWlBQVFRRnFJUUFNQUFzQUN3c0xBQ0FBSUFFMkFnQWdBQXZiQVFJQmZ3SitRUUVoQkFKQUlBQkNBRklnQVVMLy8vLy8vLy8vLy84QWd5SUZRb0NBZ0lDQWdNRC8vd0JXSUFWQ2dJQ0FnSUNBd1AvL0FGRWJEUUFnQWtJQVVpQURRdi8vLy8vLy8vLy8vd0NESWdaQ2dJQ0FnSUNBd1AvL0FGWWdCa0tBZ0lDQWdJREEvLzhBVVJzTkFDQUFJQUtFSUFVZ0JvU0VVQVJBUVFBUEN5QUJJQU9EUWdCWkJFQkJmeUVFSUFBZ0FsUWdBU0FEVXlBQklBTlJHdzBCSUFBZ0FvVWdBU0FEaFlSQ0FGSVBDMEYvSVFRZ0FDQUNWaUFCSUFOVklBRWdBMUViRFFBZ0FDQUNoU0FCSUFPRmhFSUFVaUVFQ3lBRUMxQUJBWDRDUUNBRFFjQUFjUVJBSUFJZ0EwRkFhcTJJSVFGQ0FDRUNEQUVMSUFORkRRQWdBa0hBQUNBRGE2MkdJQUVnQTYwaUJJaUVJUUVnQWlBRWlDRUNDeUFBSUFFM0F3QWdBQ0FDTndNSUN3NEFJQUFvQWdoQi8vLy8vd2R4Q3dvQUlBQVE0UUVhSUFBTEV3QWdBQ0FCSUFJZ0FDZ0NBQ2dDTUJFRUFBc21BQ0FBSUFBb0FoaEZJQUFvQWhBZ0FYSnlJZ0UyQWhBZ0FDZ0NGQ0FCY1FSQUVCY0FDd3NKQUNBQUlBRVEvUUVMSkFBZ0FFRUNUd1IvSUFCQkJHcEJmSEVpQUNBQVFRRnJJZ0FnQUVFQ1Joc0ZRUUVMQ3djQUlBQkJER29MbFFFQkJYOGpBRUVRYXlJRkpBQWdBUkRUQWlFQ0l3QkJFR3NpQXlRQUFrQWdBa0h2Ly8vL0EwMEVRQUpBSUFKQkFVMEVRQ0FBSUFJUU9pQUFJUVFNQVFzZ0FDQUFJQUlRZ2dGQkFXb2lCaENCQVNJRUVFMGdBQ0FHRUV3Z0FDQUNFRGtMSUFRZ0FTQUNFSEVnQTBFQU5nSU1JQVFnQWtFQ2RHb2dBMEVNYWhBeklBTkJFR29rQUF3QkN4QVhBQXNnQlVFUWFpUUFDdzhBSUFBUVF5Z0NBQ0FBS0FJQWF3dkVBUUVHZnlNQVFSQnJJZ1FrQUNBQUVKWUJLQUlBSVFVQ2Z5QUNLQUlBSUFBb0FnQnJJZ05CLy8vLy93ZEpCRUFnQTBFQmRBd0JDMEYvQ3lJRFFRUWdBeHNoQXlBQktBSUFJUVlnQUNnQ0FDRUhJQVZCTmtZRWYwRUFCU0FBS0FJQUN5QURFSjRCSWdnRVFDQUZRVFpIQkVBZ0FCQ21BUm9MSUFSQk5UWUNCQ0FBSUFSQkNHb2dDQ0FFUVFScUVCNGlCUkNsQWlBRkVCMGdBU0FBS0FJQUlBWWdCMnRxTmdJQUlBSWdBQ2dDQUNBRFFYeHhhallDQUNBRVFSQnFKQUFQQ3hBWEFBc1RBQ0FBSUFGQkFDQUFLQUlBS0FJMEVRUUFDeE1BSUFBZ0FVRUFJQUFvQWdBb0FpUVJCQUFMRFFBZ0FDZ0NCQ0FBS0FJQWF3dERBUUYvSUFCQnJDWW9BZ0FpQVRZQ0FDQUFJQUZCREdzb0FnQnFRY3dtS0FJQU5nSUFJQUJCMENZb0FnQTJBZ2dnQUVFTWFoRFFBUm9nQUVGQWF4QitHaUFBQy9JQ0FRSi9Jd0JCRUdzaUNpUUFJQW9nQURZQ0RBSkFBa0FDUUNBREtBSUFJQUpIRFFCQkt5RUxJQUFnQ1NnQ1lFY0VRRUV0SVFzZ0NTZ0NaQ0FBUncwQkN5QURJQUpCQVdvMkFnQWdBaUFMT2dBQURBRUxJQVlRQ1VVZ0FDQUZSM0pGQkVCQkFDRUFJQWdvQWdBaUFTQUhhMEdmQVVvTkFpQUVLQUlBSVFBZ0NDQUJRUVJxTmdJQUlBRWdBRFlDQUF3QkMwRi9JUUFnQ1NBSlFlZ0FhaUFLUVF4cUVOSUJJQWxySWdaQjNBQktEUUVnQmtFQ2RTRUZBa0FDUUFKQUlBRkJDR3NPQXdBQ0FBRUxJQUVnQlVvTkFRd0RDeUFCUVJCSElBWkIyQUJJY2cwQUlBTW9BZ0FpQVNBQ1JpQUJJQUpyUVFKS2NnMENJQUZCQVdzdEFBQkJNRWNOQWtFQUlRQWdCRUVBTmdJQUlBTWdBVUVCYWpZQ0FDQUJJQVZCNE5BQWFpMEFBRG9BQUF3Q0N5QURJQU1vQWdBaUFFRUJhallDQUNBQUlBVkI0TkFBYWkwQUFEb0FBQ0FFSUFRb0FnQkJBV28yQWdCQkFDRUFEQUVMUVFBaEFDQUVRUUEyQWdBTElBcEJFR29rQUNBQUN3b0FJQUJCdElrQkVHUUw3Z0lCQTM4akFFRVFheUlLSkFBZ0NpQUFPZ0FQQWtBQ1FBSkFJQU1vQWdBZ0FrY05BRUVySVFzZ0FFSC9BWEVpRENBSkxRQVlSd1JBUVMwaEN5QUpMUUFaSUF4SERRRUxJQU1nQWtFQmFqWUNBQ0FDSUFzNkFBQU1BUXNnQmhBSlJTQUFJQVZIY2tVRVFFRUFJUUFnQ0NnQ0FDSUJJQWRyUVo4QlNnMENJQVFvQWdBaEFDQUlJQUZCQkdvMkFnQWdBU0FBTmdJQURBRUxRWDhoQUNBSklBbEJHbW9nQ2tFUGFoRFZBU0FKYXlJRlFSZEtEUUVDUUFKQUFrQWdBVUVJYXc0REFBSUFBUXNnQVNBRlNnMEJEQU1MSUFGQkVFY2dCVUVXU0hJTkFDQURLQUlBSWdFZ0FrWWdBU0FDYTBFQ1NuSU5BaUFCUVFGckxRQUFRVEJIRFFKQkFDRUFJQVJCQURZQ0FDQURJQUZCQVdvMkFnQWdBU0FGUWVEUUFHb3RBQUE2QUFBTUFnc2dBeUFES0FJQUlnQkJBV28yQWdBZ0FDQUZRZURRQUdvdEFBQTZBQUFnQkNBRUtBSUFRUUZxTmdJQVFRQWhBQXdCQzBFQUlRQWdCRUVBTmdJQUN5QUtRUkJxSkFBZ0FBc0tBQ0FBUWF5SkFSQmtDNE1CQWdOL0FYNENRQ0FBUW9DQWdJQVFWQVJBSUFBaEJRd0JDd05BSUFGQkFXc2lBU0FBSUFCQ0NvQWlCVUlLZm4yblFUQnlPZ0FBSUFCQy8vLy8vNThCVmlFQ0lBVWhBQ0FDRFFBTEN5QUZweUlDQkVBRFFDQUJRUUZySWdFZ0FpQUNRUXB1SWdOQkNteHJRVEJ5T2dBQUlBSkJDVXNoQkNBRElRSWdCQTBBQ3dzZ0FRdGpBZ0YvQVg0akFFRVFheUlDSkFBZ0FBSitJQUZGQkVCQ0FBd0JDeUFDSUFHdFFnQWdBV2NpQVVIUkFHb1FMeUFDS1FNSVFvQ0FnSUNBZ01BQWhVR2VnQUVnQVd1dFFqQ0dmQ0VESUFJcEF3QUxOd01BSUFBZ0F6Y0RDQ0FDUVJCcUpBQUxKQUFnQUVFTFR3Ui9JQUJCRUdwQmNIRWlBQ0FBUVFGcklnQWdBRUVMUmhzRlFRb0xDMzhCQTM4Z0FDRUJBa0FnQUVFRGNRUkFBMEFnQVMwQUFFVU5BaUFCUVFGcUlnRkJBM0VOQUFzTEEwQWdBU0lDUVFScUlRRWdBaWdDQUNJRFFYOXpJQU5CZ1lLRUNHdHhRWUNCZ29SNGNVVU5BQXNnQTBIL0FYRkZCRUFnQWlBQWF3OExBMEFnQWkwQUFTRURJQUpCQVdvaUFTRUNJQU1OQUFzTElBRWdBR3NMS1FBZ0FDQUJRUWgwUVlDQS9BZHhJQUZCR0hSeUlBRkJDSFpCZ1A0RGNTQUJRUmgyY25JMkFBQUxLUUFnQUNnQUFDSUFRUmgwSUFCQkNIUkJnSUQ4QjNGeUlBQkJDSFpCZ1A0RGNTQUFRUmgyY25JTER3QWdBQ0FBS0FJQVFRUnFOZ0lBQ3djQUlBQkJCR29MRHdBZ0FDQUFLQUlBUVFGcU5nSUFDemNCQW44akFFRVFheUlESkFBZ0EwRUlhaUlFSUFFUUR5QUNJQVFRakFFaUFSQTROZ0lBSUFBZ0FSQTNJQVFRRGlBRFFSQnFKQUFMTlFFQ2Z5TUFRUkJySWdJa0FDQUNRUWhxSWdNZ0FCQVBJQU1RTzBIZzBBQkIrdEFBSUFFUVl5QURFQTRnQWtFUWFpUUFJQUVMTndFQ2Z5TUFRUkJySWdNa0FDQURRUWhxSWdRZ0FSQVBJQUlnQkJDT0FTSUJFRGc2QUFBZ0FDQUJFRGNnQkJBT0lBTkJFR29rQUFzWEFDQUFJQU0yQWhBZ0FDQUNOZ0lNSUFBZ0FUWUNDQXNLQUNBQVFSaDBRUmgxQzBJQUlBQWdBQ2dDQUNBQktBSUFjellDQUNBQUlBQW9BZ1FnQVNnQ0JITTJBZ1FnQUNBQUtBSUlJQUVvQWdoek5nSUlJQUFnQUNnQ0RDQUJLQUlNY3pZQ0RBdWNDQUVMZnlBQVJRUkFJQUVRR1E4TElBRkJRRThFUUVIVWdRRkJNRFlDQUVFQUR3c0NmMEVRSUFGQkMycEJlSEVnQVVFTFNSc2hCaUFBUVFocklnVW9BZ1FpQ1VGNGNTRUVBa0FnQ1VFRGNVVUVRRUVBSUFaQmdBSkpEUUlhSUFaQkJHb2dCRTBFUUNBRklRSWdCQ0FHYTBHNGhRRW9BZ0JCQVhSTkRRSUxRUUFNQWdzZ0JDQUZhaUVIQWtBZ0JDQUdUd1JBSUFRZ0Jtc2lBMEVRU1EwQklBVWdDVUVCY1NBR2NrRUNjallDQkNBRklBWnFJZ0lnQTBFRGNqWUNCQ0FISUFjb0FnUkJBWEkyQWdRZ0FpQURFT3dCREFFTElBZEI4SUVCS0FJQVJnUkFRZVNCQVNnQ0FDQUVhaUlFSUFaTkRRSWdCU0FKUVFGeElBWnlRUUp5TmdJRUlBVWdCbW9pQXlBRUlBWnJJZ0pCQVhJMkFnUkI1SUVCSUFJMkFnQkI4SUVCSUFNMkFnQU1BUXNnQjBIc2dRRW9BZ0JHQkVCQjRJRUJLQUlBSUFScUlnTWdCa2tOQWdKQUlBTWdCbXNpQWtFUVR3UkFJQVVnQ1VFQmNTQUdja0VDY2pZQ0JDQUZJQVpxSWdRZ0FrRUJjallDQkNBRElBVnFJZ01nQWpZQ0FDQURJQU1vQWdSQmZuRTJBZ1FNQVFzZ0JTQUpRUUZ4SUFOeVFRSnlOZ0lFSUFNZ0JXb2lBaUFDS0FJRVFRRnlOZ0lFUVFBaEFrRUFJUVFMUWV5QkFTQUVOZ0lBUWVDQkFTQUNOZ0lBREFFTElBY29BZ1FpQTBFQ2NRMEJJQU5CZUhFZ0JHb2lDaUFHU1EwQklBb2dCbXNoREFKQUlBTkIvd0ZOQkVBZ0J5Z0NDQ0lFSUFOQkEzWWlBa0VEZEVHQWdnRnFSaG9nQkNBSEtBSU1JZ05HQkVCQjJJRUJRZGlCQVNnQ0FFRitJQUozY1RZQ0FBd0NDeUFFSUFNMkFnd2dBeUFFTmdJSURBRUxJQWNvQWhnaEN3SkFJQWNnQnlnQ0RDSUlSd1JBSUFjb0FnZ2lBa0hvZ1FFb0FnQkpHaUFDSUFnMkFnd2dDQ0FDTmdJSURBRUxBa0FnQjBFVWFpSUVLQUlBSWdJTkFDQUhRUkJxSWdRb0FnQWlBZzBBUVFBaENBd0JDd05BSUFRaEF5QUNJZ2hCRkdvaUJDZ0NBQ0lDRFFBZ0NFRVFhaUVFSUFnb0FoQWlBZzBBQ3lBRFFRQTJBZ0FMSUF0RkRRQUNRQ0FISUFjb0Fod2lBMEVDZEVHSWhBRnFJZ0lvQWdCR0JFQWdBaUFJTmdJQUlBZ05BVUhjZ1FGQjNJRUJLQUlBUVg0Z0EzZHhOZ0lBREFJTElBdEJFRUVVSUFzb0FoQWdCMFliYWlBSU5nSUFJQWhGRFFFTElBZ2dDellDR0NBSEtBSVFJZ0lFUUNBSUlBSTJBaEFnQWlBSU5nSVlDeUFIS0FJVUlnSkZEUUFnQ0NBQ05nSVVJQUlnQ0RZQ0dBc2dERUVQVFFSQUlBVWdDVUVCY1NBS2NrRUNjallDQkNBRklBcHFJZ0lnQWlnQ0JFRUJjallDQkF3QkN5QUZJQWxCQVhFZ0JuSkJBbkkyQWdRZ0JTQUdhaUlESUF4QkEzSTJBZ1FnQlNBS2FpSUNJQUlvQWdSQkFYSTJBZ1FnQXlBTUVPd0JDeUFGSVFJTElBSUxJZ0lFUUNBQ1FRaHFEd3NnQVJBWklnVkZCRUJCQUE4TElBVWdBRUY4UVhnZ0FFRUVheWdDQUNJQ1FRTnhHeUFDUVhoeGFpSUNJQUVnQVNBQ1N4c1FRaG9nQUJBUUlBVUxmUUVEZjBFWUlRSUNRQUpBSUFBZ0FYSkJBM0VOQUFOQUlBQW9BZ0FnQVNnQ0FFY05BU0FCUVFScUlRRWdBRUVFYWlFQUlBSkJCR3NpQWtFRFN3MEFDeUFDUlEwQkN3TkFJQUF0QUFBaUF5QUJMUUFBSWdSR0JFQWdBVUVCYWlFQklBQkJBV29oQUNBQ1FRRnJJZ0lOQVF3Q0N3c2dBeUFFYXc4TFFRQUxTUUVDZnlBQUtBSUVJZ1pCQ0hVaEJTQUdRUUZ4QkVBZ0FpZ0NBQ0FGRU1VQklRVUxJQUFvQWdBaUFDQUJJQUlnQldvZ0EwRUNJQVpCQW5FYklBUWdBQ2dDQUNnQ0dCRUtBQXUyQVFFRGZ5TUFRUkJySWdNa0FDQURJQUU2QUE4Q1FBSkFBa0FDUUNBQUVEVUVRQ0FBRUgwaEFTQUFLQUlFSWdRZ0FVRUJheUlDUmcwQkRBTUxRUW9oQkVFS0lRSWdBQzBBQ3lJQlFRcEhEUUVMSUFBZ0FrRUJJQUlnQWhESUFTQUVJUUVnQUJBMURRRUxJQUFoQWlBQUlBRkJBV29RT2d3QkN5QUFLQUlBSVFJZ0FDQUVRUUZxRURrZ0JDRUJDeUFCSUFKcUlnQWdBMEVQYWhBMElBTkJBRG9BRGlBQVFRRnFJQU5CRG1vUU5DQURRUkJxSkFBTEpBRUNmeU1BUVJCcklnSWtBQ0FCSUFBUThRRWhBeUFDUVJCcUpBQWdBU0FBSUFNYkN4MEFJQUJCQkdvUWtnSkJmMFlFUUNBQUlBQW9BZ0FvQWdnUkFRQUxDeVFBSUFBUStRRWhBQ0FCRVBrQklBQnJJZ0VFUUNBQ0lBQWdBUkRxQVFzZ0FTQUNhZ3NSQUNBQUlBRWdBU2dDQUNnQ0tCRURBQXNVQVFGL0lBQW9BZ0FoQVNBQVFRQTJBZ0FnQVF1ckxBRVJmeUFBS0FMd0FTRVNJQUFvQWdRZ0FTZ0FCQ0lFUVJoMElBUkJDSFJCZ0lEOEIzRnlJQVJCQ0haQmdQNERjU0FFUVJoMmNuSnpJZ1JCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQmlBQUtBSUlJQUVvQUFnaUJVRVlkQ0FGUVFoMFFZQ0EvQWR4Y2lBRlFRaDJRWUQrQTNFZ0JVRVlkbkp5Y3lJRlFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRZ2dBQ2dDRENBQktBQU1JZ05CR0hRZ0EwRUlkRUdBZ1B3SGNYSWdBMEVJZGtHQS9nTnhJQU5CR0haeWNuTWlBMEgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VISUFWQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaENTQURRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUW9nQUNnQ0FDQUJLQUFBSWdGQkdIUWdBVUVJZEVHQWdQd0hjWElnQVVFSWRrR0EvZ054SUFGQkdIWnljbk1pQVVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFTElBTkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hEQ0FCUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVEwZ0JFSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRU9JQUZCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoRHlBRVFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlSQWdCVUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VSSUFBb0FoUWdDeUFLSUFrZ0JFRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUVRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUWtnQUNnQ0dDQU9JQTBnRENBRlFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnVkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hDaUFBS0FJY0lCRWdFQ0FQSUFOQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUEwSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRUxJQVZCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoRENBRFFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRMGdBQ2dDRUNBSElBZ2dCaUFCUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdGQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEJpQURRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUWdnQVVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFSElBUkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hEaUFCUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVE4Z0JFRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRVFJQVZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoRVNBQUtBSWtJQVlnRFNBTUlBUkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlCRUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VHSUFBb0FpZ2dEaUFISUFnZ0JVRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUZRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUWdnQUNnQ0xDQVJJQkFnRHlBRFFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnTkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hCeUFGUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVF3Z0EwRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRU5JQUFvQWlBZ0N5QUtJQWtnQVVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJQlFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRa2dBMEVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VLSUFGQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaEN5QUVRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUTRnQVVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFUElBUkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hFQ0FGUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVJFZ0FDZ0NOQ0FKSUEwZ0RDQUVRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ1JCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQ1NBQUtBSTRJQTRnQ3lBS0lBVkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlCVUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VLSUFBb0Fqd2dFU0FRSUE4Z0EwRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SURRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUXNnQlVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFTUlBTkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hEU0FBS0FJd0lBY2dDQ0FHSUFGQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUFVSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRUdJQU5CRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQ0NBQlFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRY2dCRUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VPSUFGQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaER5QUVRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUkFnQlVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFUklBQW9Ba1FnQmlBTklBd2dCRUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlFUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFZZ0FDZ0NTQ0FPSUFjZ0NDQUZRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ1ZCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoQ0NBQUtBSk1JQkVnRUNBUElBTkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlBMEgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VISUFWQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaERDQURRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUTBnQUNnQ1FDQUxJQW9nQ1NBQlFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnRkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hDU0FEUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFvZ0FVRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRUxJQVJCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoRGlBQlFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlROGdCRUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VRSUFWQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEVTQUFLQUpVSUFrZ0RTQU1JQVJCRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQkVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFSklBQW9BbGdnRGlBTElBb2dCVUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlGUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVFvZ0FDZ0NYQ0FSSUJBZ0R5QURRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ05CL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoQ3lBRlFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRd2dBMEVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VOSUFBb0FsQWdCeUFJSUFZZ0FVRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUJRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUVlnQTBFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFSUlBRkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hCeUFFUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVE0Z0FVRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRVBJQVJCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoRUNBRlFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlSRWdBQ2dDWkNBR0lBMGdEQ0FFUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdSQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaEJpQUFLQUpvSUE0Z0J5QUlJQVZCRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQlVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFSUlBQW9BbXdnRVNBUUlBOGdBMEVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlEUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVFjZ0JVRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRU1JQU5CQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoRFNBQUtBSmdJQXNnQ2lBSklBRkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlBVUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VKSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaENpQUJRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUXNnQkVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFT0lBRkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hEeUFFUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVJBZ0JVSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRVJJQUFvQW5RZ0NTQU5JQXdnQkVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRVFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRa2dBQ2dDZUNBT0lBc2dDaUFGUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdWQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaENpQUFLQUo4SUJFZ0VDQVBJQU5CRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQTBIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFTElBVkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hEQ0FEUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVEwZ0FDZ0NjQ0FISUFnZ0JpQUJRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ0ZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoQmlBRFFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRY2dBVUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VPSUFSQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaER5QUJRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUkFnQkVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFUklBVkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hFeUFBS0FLRUFTQUdJQTBnRENBRVFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnWkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2dBQ2dDZ0FFZ0N5QUtJQWtnQVVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJSVFSWjJRZndIY1VHQUNHb29BZ0J6SUFBb0FvZ0JJQThnRGlBSElBVkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlCMEVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDSE1nQUNnQ2pBRWdFeUFSSUJBZ0EwRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SURRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUljeUFBS0FLUUFYTWhBU0FIUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSUFaQkZuWkIvQWR4UVlBSWFpZ0NBSE1nQTBFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0hNZ0NFSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNITWdBQ2dDbEFGeklRUWdBMEVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0FIUVJaMlFmd0hjVUdBQ0dvb0FnQnpJQWhCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWh6SUFaQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFoeklBQW9BcGdCY3lFRkFuOGdDRUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0FEUVJaMlFmd0hjVUdBQ0dvb0FnQnpJQVpCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWh6SUFkQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFoeklBQW9BcHdCY3lJRElCSkJDMGdOQUJvZ0JFRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUlJQVZCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoQnlBRFFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRa2dCVUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VHSUFOQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaENpQUJRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUXNnQTBFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFTUlBRkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hEU0FFUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVE0Z0FVRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRVBJQVJCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoRUNBRlFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlSRWdBQ2dDcEFFZ0N5QUtJQVlnQkVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJR1FRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlBQW9BcUFCSUFrZ0J5QUlJQUZCRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQ0VFV2RrSDhCM0ZCZ0FocUtBSUFjeUFBS0FLb0FTQU9JQTBnRENBRlFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnZEJCblpCL0FkeFFZQUlhaWdDQUVFUUVBaHpJQUFvQXF3QklCRWdFQ0FQSUFOQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUEwSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNITWdBQ2dDc0FGeklRRWdCMEVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0FHUVJaMlFmd0hjVUdBQ0dvb0FnQnpJQU5CQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWh6SUFoQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFoeklBQW9BclFCY3lFRUlBTkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2dCMEVXZGtIOEIzRkJnQWhxS0FJQWN5QUlRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUljeUFHUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJY3lBQUtBSzRBWE1oQlNBSVFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlBTkJGblpCL0FkeFFZQUlhaWdDQUhNZ0JrRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNITWdCMEgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDSE1nQUNnQ3ZBRnpJZ01nRWtFTlNBMEFHaUFFUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFnZ0JVRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRUhJQU5CL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoQ1NBRlFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRWWdBMEVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VLSUFGQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEN5QURRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUXdnQVVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFTklBUkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hEaUFCUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVE4Z0JFRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRVFJQVZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoRVNBQUtBTEVBU0FMSUFvZ0JpQUVRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ1pCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdnQUNnQ3dBRWdDU0FISUFnZ0FVRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUlRUloyUWZ3SGNVR0FDR29vQWdCeklBQW9Bc2dCSUE0Z0RTQU1JQVZCRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQjBFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0hNZ0FDZ0N6QUVnRVNBUUlBOGdBMEVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlEUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJY3lBQUtBTFFBWE1oQVNBSFFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlBWkJGblpCL0FkeFFZQUlhaWdDQUhNZ0EwRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNITWdDRUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDSE1nQUNnQzFBRnpJUVFnQTBFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NBSFFSWjJRZndIY1VHQUNHb29BZ0J6SUFoQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFoeklBWkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBaHpJQUFvQXRnQmN5RUZJQWhCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdnQTBFV2RrSDhCM0ZCZ0FocUtBSUFjeUFHUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJY3lBSFFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSWN5QUFLQUxjQVhNTElRTWdBaUFBSUJKQkJIUnFJZ0FvQWdBZ0EwSC9BWEZCQW5SQmdBaHFMUUFCSUFGQkZuWkIvQWR4UVlBSWFpZ0NBRUVJZEVHQWdJQjRjU0FFUVE1MlFmd0hjVUdBQ0dvdEFBSkJFSFJ5SUFWQkJuWkIvQWR4UVlBSWFpMEFBVUVJZEhKeWN5SVNRUmgwSUJKQkNIUkJnSUQ4QjNGeUlCSkJDSFpCZ1A0RGNTQVNRUmgyY25JMkFBQWdBaUFBS0FJRUlBRkIvd0Z4UVFKMFFZQUlhaTBBQVNBRVFSWjJRZndIY1VHQUNHb29BZ0JCQ0hSQmdJQ0FlSEVnQlVFT2RrSDhCM0ZCZ0FocUxRQUNRUkIwY2lBRFFRWjJRZndIY1VHQUNHb3RBQUZCQ0hSeWNuTWlFa0VZZENBU1FRaDBRWUNBL0FkeGNpQVNRUWgyUVlEK0EzRWdFa0VZZG5KeU5nQUVJQUlnQUNnQ0NDQUVRZjhCY1VFQ2RFR0FDR290QUFFZ0JVRVdka0g4QjNGQmdBaHFLQUlBUVFoMFFZQ0FnSGh4SUFOQkRuWkIvQWR4UVlBSWFpMEFBa0VRZEhJZ0FVRUdka0g4QjNGQmdBaHFMUUFCUVFoMGNuSnpJaEpCR0hRZ0VrRUlkRUdBZ1B3SGNYSWdFa0VJZGtHQS9nTnhJQkpCR0haeWNqWUFDQ0FDSUFBb0Fnd2dCVUgvQVhGQkFuUkJnQWhxTFFBQklBTkJGblpCL0FkeFFZQUlhaWdDQUVFSWRFR0FnSUI0Y1NBQlFRNTJRZndIY1VHQUNHb3RBQUpCRUhSeUlBUkJCblpCL0FkeFFZQUlhaTBBQVVFSWRISnljeUlBUVJoMElBQkJDSFJCZ0lEOEIzRnlJQUJCQ0haQmdQNERjU0FBUVJoMmNuSTJBQXdMRGdBZ0FDQUJLQUlBTmdJQUlBQUxCd0FnQUJCSEdnc0lBRUgvLy8vL0J3c0ZBRUgvQUFzREFBRUxLd0FDUUNBQUlBRkdEUUFEUUNBQUlBRkJCR3NpQVU4TkFTQUFJQUVRZFNBQVFRUnFJUUFNQUFzQUN3dlVBd0VJZnlNQVFSQnJJZ29rQUNBR0VEc2hDeUFLSUFZUWpBRWlCaEEzQWtBZ0NoQkpCRUFnQ3lBQUlBSWdBeEJqSUFVZ0F5QUNJQUJyUVFKMGFpSUdOZ0lBREFFTElBVWdBellDQUFKQUFrQWdBQ0lJTFFBQUlnZEJLMnNPQXdBQkFBRUxJQXNnQjBFWWRFRVlkUkE5SVFnZ0JTQUZLQUlBSWdkQkJHbzJBZ0FnQnlBSU5nSUFJQUJCQVdvaENBc0NRQ0FDSUFoclFRSklEUUFnQ0MwQUFFRXdSdzBBSUFndEFBRkJJSEpCK0FCSERRQWdDMEV3RUQwaEJ5QUZJQVVvQWdBaUNVRUVhallDQUNBSklBYzJBZ0FnQ3lBSUxBQUJFRDBoQnlBRklBVW9BZ0FpQ1VFRWFqWUNBQ0FKSUFjMkFnQWdDRUVDYWlFSUN5QUlJQUlRZVVFQUlRa2dCaEE0SVF4QkFDRUhJQWdoQmdOL0lBSWdCazBFZnlBRElBZ2dBR3RCQW5ScUlBVW9BZ0FRclFFZ0JTZ0NBQVVDUUNBS0lBY1FDeTBBQUVVTkFDQUpJQW9nQnhBTExBQUFSdzBBSUFVZ0JTZ0NBQ0lKUVFScU5nSUFJQWtnRERZQ0FDQUhJQWNnQ2hBSlFRRnJTV29oQjBFQUlRa0xJQXNnQml3QUFCQTlJUTBnQlNBRktBSUFJZzVCQkdvMkFnQWdEaUFOTmdJQUlBWkJBV29oQmlBSlFRRnFJUWtNQVFzTElRWUxJQVFnQmlBRElBRWdBR3RCQW5ScUlBRWdBa1liTmdJQUlBb1FDaG9nQ2tFUWFpUUFDOUFCQVFKL0lBSkJnQkJ4QkVBZ0FFRXJPZ0FBSUFCQkFXb2hBQXNnQWtHQUNIRUVRQ0FBUVNNNkFBQWdBRUVCYWlFQUN5QUNRWVFDY1NJRFFZUUNSd1JBSUFCQnJ0UUFPd0FBSUFCQkFtb2hBQXNnQWtHQWdBRnhJUUlEUUNBQkxRQUFJZ1FFUUNBQUlBUTZBQUFnQUVFQmFpRUFJQUZCQVdvaEFRd0JDd3NnQUFKL0FrQWdBMEdBQWtjRVFDQURRUVJIRFFGQnhnQkI1Z0FnQWhzTUFndEJ4UUJCNVFBZ0Foc01BUXRCd1FCQjRRQWdBaHNnQTBHRUFrWU5BQnBCeHdCQjV3QWdBaHNMT2dBQUlBTkJoQUpIQzhvREFRaC9Jd0JCRUdzaUNpUUFJQVlRTWlFTElBb2dCaENPQVNJR0VEY0NRQ0FLRUVrRVFDQUxJQUFnQWlBREVHOGdCU0FESUFJZ0FHdHFJZ1kyQWdBTUFRc2dCU0FETmdJQUFrQUNRQ0FBSWdndEFBQWlCMEVyYXc0REFBRUFBUXNnQ3lBSFFSaDBRUmgxRUNraENDQUZJQVVvQWdBaUIwRUJhallDQUNBSElBZzZBQUFnQUVFQmFpRUlDd0pBSUFJZ0NHdEJBa2dOQUNBSUxRQUFRVEJIRFFBZ0NDMEFBVUVnY2tINEFFY05BQ0FMUVRBUUtTRUhJQVVnQlNnQ0FDSUpRUUZxTmdJQUlBa2dCem9BQUNBTElBZ3NBQUVRS1NFSElBVWdCU2dDQUNJSlFRRnFOZ0lBSUFrZ0J6b0FBQ0FJUVFKcUlRZ0xJQWdnQWhCNVFRQWhDU0FHRURnaERFRUFJUWNnQ0NFR0EzOGdBaUFHVFFSL0lBTWdDQ0FBYTJvZ0JTZ0NBQkI1SUFVb0FnQUZBa0FnQ2lBSEVBc3RBQUJGRFFBZ0NTQUtJQWNRQ3l3QUFFY05BQ0FGSUFVb0FnQWlDVUVCYWpZQ0FDQUpJQXc2QUFBZ0J5QUhJQW9RQ1VFQmEwbHFJUWRCQUNFSkN5QUxJQVlzQUFBUUtTRU5JQVVnQlNnQ0FDSU9RUUZxTmdJQUlBNGdEVG9BQUNBR1FRRnFJUVlnQ1VFQmFpRUpEQUVMQ3lFR0N5QUVJQVlnQXlBQklBQnJhaUFCSUFKR0d6WUNBQ0FLRUFvYUlBcEJFR29rQUFzTUFDQUFFQTBnQVVFQ2RHb0xxZ1FCQzM4akFFR0FBV3NpQ2lRQUlBb2dBVFlDZUNBQ0lBTVF6UUloQ0NBS1FUVTJBaEFnQ2tFSWFrRUFJQXBCRUdvaUNSQWVJUkFDUUNBSVFlVUFUd1JBSUFnUUdTSUpSUTBCSUJBZ0NSQW5DeUFKSVFjZ0FpRUJBMEFnQVNBRFJnUkFBMEFDUUNBQUlBcEIrQUJxRURaQkFDQUlHMFVFUUNBQUlBcEIrQUJxRUNnRVFDQUZJQVVvQWdCQkFuSTJBZ0FMREFFTElBQVFJU0VPSUFaRkJFQWdCQ0FPRUNraERnc2dERUVCYWlFTlFRQWhEeUFKSVFjZ0FpRUJBMEFnQVNBRFJnUkFJQTBoRENBUFJRMERJQUFRSlJvZ0NTRUhJQUloQVNBSUlBdHFRUUpKRFFNRFFDQUJJQU5HQkVBTUJRVUNRQ0FITFFBQVFRSkhEUUFnQVJBSklBMUdEUUFnQjBFQU9nQUFJQXRCQVdzaEN3c2dCMEVCYWlFSElBRkJER29oQVF3QkN3QUxBQVVDUUNBSExRQUFRUUZIRFFBZ0FTQU1FTEVCS0FJQUlSRUNRQ0FHQkg4Z0VRVWdCQ0FSRUNrTElBNUdCRUJCQVNFUElBRVFDU0FOUncwQ0lBZEJBam9BQUNBTFFRRnFJUXNNQVFzZ0IwRUFPZ0FBQ3lBSVFRRnJJUWdMSUFkQkFXb2hCeUFCUVF4cUlRRU1BUXNBQ3dBTEN3SkFBa0FEUUNBQ0lBTkdEUUVnQ1MwQUFFRUNSd1JBSUFsQkFXb2hDU0FDUVF4cUlRSU1BUXNMSUFJaEF3d0JDeUFGSUFVb0FnQkJCSEkyQWdBTElCQVFIU0FLUVlBQmFpUUFJQU1QQlFKQUlBRVFTVVVFUUNBSFFRRTZBQUFNQVFzZ0IwRUNPZ0FBSUF0QkFXb2hDeUFJUVFGcklRZ0xJQWRCQVdvaEJ5QUJRUXhxSVFFTUFRc0FDd0FMRUJjQUN4RUFJQUFnQVNBQUtBSUFLQUlNRVFJQUM3TUVBUXQvSXdCQmdBRnJJZ29rQUNBS0lBRTJBbmdnQWlBREVNMENJUWdnQ2tFMU5nSVFJQXBCQ0dwQkFDQUtRUkJxSWdrUUhpRVFBa0FnQ0VIbEFFOEVRQ0FJRUJraUNVVU5BU0FRSUFrUUp3c2dDU0VISUFJaEFRTkFJQUVnQTBZRVFBTkFBa0FnQUNBS1FmZ0FhaEF4UVFBZ0NCdEZCRUFnQUNBS1FmZ0FhaEFtQkVBZ0JTQUZLQUlBUVFKeU5nSUFDd3dCQ3lBQUVCOGhEaUFHUlFSQUlBUWdEaEN6QVNFT0N5QU1RUUZxSVExQkFDRVBJQWtoQnlBQ0lRRURRQ0FCSUFOR0JFQWdEU0VNSUE5RkRRTWdBQkFpR2lBSklRY2dBaUVCSUFnZ0MycEJBa2tOQXdOQUlBRWdBMFlFUUF3RkJRSkFJQWN0QUFCQkFrY05BQ0FCRUFrZ0RVWU5BQ0FIUVFBNkFBQWdDMEVCYXlFTEN5QUhRUUZxSVFjZ0FVRU1haUVCREFFTEFBc0FCUUpBSUFjdEFBQkJBVWNOQUNBQklBd1FDeXdBQUNFUkFrQWdEa0gvQVhFZ0JnUi9JQkVGSUFRZ0VSQ3pBUXRCL3dGeFJnUkFRUUVoRHlBQkVBa2dEVWNOQWlBSFFRSTZBQUFnQzBFQmFpRUxEQUVMSUFkQkFEb0FBQXNnQ0VFQmF5RUlDeUFIUVFGcUlRY2dBVUVNYWlFQkRBRUxBQXNBQ3dzQ1FBSkFBMEFnQWlBRFJnMEJJQWt0QUFCQkFrY0VRQ0FKUVFGcUlRa2dBa0VNYWlFQ0RBRUxDeUFDSVFNTUFRc2dCU0FGS0FJQVFRUnlOZ0lBQ3lBUUVCMGdDa0dBQVdva0FDQUREd1VDUUNBQkVFbEZCRUFnQjBFQk9nQUFEQUVMSUFkQkFqb0FBQ0FMUVFGcUlRc2dDRUVCYXlFSUN5QUhRUUZxSVFjZ0FVRU1haUVCREFFTEFBc0FDeEFYQUF2bEF3RURmeU1BUWFBQmF5SUVKQUJCZnlFRklBUWdBVUVCYTBFQUlBRWJOZ0tVQVNBRUlBQWdCRUdlQVdvZ0FSc2lCallDa0FFZ0JFRUFRWkFCRUVZaUFFRi9OZ0pNSUFCQk5EWUNKQ0FBUVg4MkFsQWdBQ0FBUVo4QmFqWUNMQ0FBSUFCQmtBRnFOZ0pVQWtBZ0FVRUFTQVJBUWRTQkFVRTlOZ0lBREFFTElBWkJBRG9BQUVFQUlRUWpBRUhRQVdzaUFTUUFJQUVnQXpZQ3pBRWdBVUdnQVdvaUEwRUFRU2dRUmhvZ0FTQUJLQUxNQVRZQ3lBRUNRRUVBSUFJZ0FVSElBV29nQVVIUUFHb2dBeERjQWtFQVNBUkFRWDhoQWd3QkN5QUFLQUpNUVFCT0lRVWdBQ2dDQUNFRElBQW9Ba2hCQUV3RVFDQUFJQU5CWDNFMkFnQUxBbjhDUUFKQUlBQW9BakJGQkVBZ0FFSFFBRFlDTUNBQVFRQTJBaHdnQUVJQU53TVFJQUFvQWl3aEJDQUFJQUUyQWl3TUFRc2dBQ2dDRUEwQkMwRi9JQUFRNkFFTkFSb0xJQUFnQWlBQlFjZ0JhaUFCUWRBQWFpQUJRYUFCYWhEY0Fnc2hBaUFFQkVBZ0FFRUFRUUFnQUNnQ0pCRUVBQm9nQUVFQU5nSXdJQUFnQkRZQ0xDQUFRUUEyQWh3Z0FFRUFOZ0lRSUFBb0FoUWhCQ0FBUVFBMkFoUWdBa0YvSUFRYklRSUxJQUFnQUNnQ0FDSUVJQU5CSUhGeU5nSUFRWDhnQWlBRVFTQnhHeUVDSUFWRkRRQUxJQUZCMEFGcUpBQWdBaUVGQ3lBQVFhQUJhaVFBSUFVTFNnRUNmd0pBSUFBdEFBQWlBa1VnQWlBQkxRQUFJZ05IY2cwQUEwQWdBUzBBQVNFRElBQXRBQUVpQWtVTkFTQUJRUUZxSVFFZ0FFRUJhaUVBSUFJZ0EwWU5BQXNMSUFJZ0Eyc0w1QUlCQm44akFFRVFheUlISkFBZ0EwSHdoZ0VnQXhzaUJTZ0NBQ0VEQWtBQ1FBSkFJQUZGQkVBZ0F3MEJEQU1MUVg0aEJDQUNSUTBDSUFBZ0IwRU1haUFBR3lFR0FrQWdBd1JBSUFJaEFBd0JDeUFCTFFBQUlnQkJHSFJCR0hVaUEwRUFUZ1JBSUFZZ0FEWUNBQ0FEUVFCSElRUU1CQXNnQVN3QUFDRUFRZGlHQVNnQ0FDZ0NBRVVFUUNBR0lBQkIvNzhEY1RZQ0FFRUJJUVFNQkFzZ0FFSC9BWEZCd2dGcklnQkJNa3NOQVNBQVFRSjBRY0FyYWlnQ0FDRURJQUpCQVdzaUFFVU5BaUFCUVFGcUlRRUxJQUV0QUFBaUNFRURkaUlKUVJCcklBTkJHblVnQ1dweVFRZExEUUFEUUNBQVFRRnJJUUFnQ0VHQUFXc2dBMEVHZEhJaUEwRUFUZ1JBSUFWQkFEWUNBQ0FHSUFNMkFnQWdBaUFBYXlFRURBUUxJQUJGRFFJZ0FVRUJhaUlCTFFBQUlnaEJ3QUZ4UVlBQlJnMEFDd3NnQlVFQU5nSUFRZFNCQVVFWk5nSUFRWDhoQkF3QkN5QUZJQU0yQWdBTElBZEJFR29rQUNBRUN3d0FJQUJCREdvUWZob2dBQXNJQUNBQUtBSVFSUXNvQVFKL0l3QkJFR3NpQWlRQUlBRW9BZ0FnQUNnQ0FFZ2hBeUFDUVJCcUpBQWdBU0FBSUFNYkN4QUFJQUFnQVRjRENDQUFRZ0EzQXdBTEV3QWdBRUc4SHpZQ0FDQUFRUVJxRUE0Z0FBc0VBRUVCQzJVQkEzOGdBa1VFUUVFQUR3c0NRQ0FBTFFBQUlnTkZEUUFEUUFKQUlBRXRBQUFpQlVVTkFDQUNRUUZySWdKRklBTWdCVWR5RFFBZ0FVRUJhaUVCSUFBdEFBRWhBeUFBUVFGcUlRQWdBdzBCREFJTEN5QURJUVFMSUFSQi93RnhJQUV0QUFCckM2NEJBUVIvSXdCQkVHc2lCU1FBSUFFaEJDQUNRUkJQQkVBZ0FrRUVkaUVIQTBBZ0F5QUVFSjBCSUFNZ0FDQUZFTElDSUFNZ0JTa0RDRGNBQ0NBRElBVXBBd0EzQUFBZ0JFRVFhaUVFSUFaQkFXb2lCaUFIUncwQUN3c2dCQ0FCSUFKcUlnRkpCRUFnQlNBRUlBRWdCR3NpQWhCQ0lnRWdBbXBCQUVFUUlBSnJFRVlhSUFNZ0FSQ2RBU0FESUFBZ0FSQ3lBaUFESUFFcEF3ZzNBQWdnQXlBQktRTUFOd0FBQ3lBRlFSQnFKQUFMR2dBZ0FDQUJJQUVvQWdCQkRHc29BZ0JxS0FJWU5nSUFJQUFMS3dFQmZ5QUFRZnovQURZQ0FBSkFJQUFvQWdSQkRHc2lBVUVJYWhDU0FrRUFUZzBBSUFFUUVBc2dBQXRMQVFKL0lBQW9BZ1FpQjBFSWRTRUdJQWRCQVhFRVFDQURLQUlBSUFZUXhRRWhCZ3NnQUNnQ0FDSUFJQUVnQWlBRElBWnFJQVJCQWlBSFFRSnhHeUFGSUFBb0FnQW9BaFFSQ1FBTElBQUNRQ0FBS0FJRUlBRkhEUUFnQUNnQ0hFRUJSZzBBSUFBZ0FqWUNIQXNMbWdFQUlBQkJBVG9BTlFKQUlBQW9BZ1FnQWtjTkFDQUFRUUU2QURRQ1FDQUFLQUlRSWdKRkJFQWdBRUVCTmdJa0lBQWdBellDR0NBQUlBRTJBaEFnQUNnQ01FRUJSdzBDSUFOQkFVWU5BUXdDQ3lBQklBSkdCRUFnQUNnQ0dDSUNRUUpHQkVBZ0FDQUROZ0lZSUFNaEFnc2dBQ2dDTUVFQlJ3MENJQUpCQVVZTkFRd0NDeUFBSUFBb0FpUkJBV28yQWlRTElBQkJBVG9BTmdzTENnQWdBQ0FCYWlnQ0FBdGRBUUYvSUFBb0FoQWlBMFVFUUNBQVFRRTJBaVFnQUNBQ05nSVlJQUFnQVRZQ0VBOExBa0FnQVNBRFJnUkFJQUFvQWhoQkFrY05BU0FBSUFJMkFoZ1BDeUFBUVFFNkFEWWdBRUVDTmdJWUlBQWdBQ2dDSkVFQmFqWUNKQXNMdVFFQkEzOGpBRUVRYXlJREpBQWdBeUFCTmdJTUFrQUNRQUpBQWtBZ0FCQTFCRUFnQUJCOUlRRWdBQ2dDQkNJRUlBRkJBV3NpQWtZTkFRd0RDMEVCSVFSQkFTRUNJQUF0QUFzaUFVRUJSdzBCQ3lBQUlBSkJBU0FDSUFJUTh3RWdCQ0VCSUFBUU5RMEJDeUFBSVFJZ0FDQUJRUUZxRURvTUFRc2dBQ2dDQUNFQ0lBQWdCRUVCYWhBNUlBUWhBUXNnQWlBQlFRSjBhaUlBSUFOQkRHb1FNeUFEUVFBMkFnZ2dBRUVFYWlBRFFRaHFFRE1nQTBFUWFpUUFDNjhCQVFOL0l3QkJFR3NpQlNRQUlBSkJieUlHSUFGclRRUkFJQUFRRFNFSEFuOGdBU0FHUVFGMlFSQnJTUVJBSUFVZ0FVRUJkRFlDQ0NBRklBRWdBbW8yQWd3Z0JVRU1haUFGUVFocUVIWW9BZ0FRa1FFTUFRc2dCa0VCYXd0QkFXb2lCaEJmSVFJZ0JBUkFJQUlnQnlBRUVGVUxJQU1nQkdzaUF3UkFJQUlnQkdvZ0JDQUhhaUFERUZVTElBRkJDa2NFUUNBSEVCQUxJQUFnQWhCTklBQWdCaEJNSUFWQkVHb2tBQThMRUJjQUN3TUFBUXNYQUNBQUtBSUlFQlpIQkVBZ0FDZ0NDQkRVQWdzZ0FBczRBUUYvSXdCQkVHc2lBeVFBSUFNZ0FqWUNEQ0FEUVFocUlBTkJER29RVWlFQ0lBQWdBUkRhQVNFQUlBSVFVU0FEUVJCcUpBQWdBQXNMQUNBRUlBSTJBZ0JCQXdzSkFDQUFRUUEyQWdBTER3QWdBQ0FBS0FJRVFRRnFOZ0lFQ3hrQkFYOUJBU0VCSUFBUU5RUi9JQUFRZlVFQmF3VWdBUXNMR2dBZ0FFRzBJVFlDQUNBQVFTQnFFQW9hSUFBUXZBRWFJQUFMa3dFQkJIOGpBRUVRYXlJREpBQUNRQ0FCRURWRkJFQWdBQ0FCS0FJSU5nSUlJQUFnQVNrQ0FEY0NBQXdCQ3lBQktBSUFJUVFDUUFKQUFrQWdBU2dDQkNJQ1FRcE5CRUFnQUNFQklBQWdBaEE2REFFTElBSkJiMHNOQVNBQUlBSVFrUUZCQVdvaUJSQmZJZ0VRVFNBQUlBVVFUQ0FBSUFJUU9Rc2dBU0FFSUFKQkFXb1FWUXdCQ3hBWEFBc0xJQU5CRUdva0FBc3hBQ0FDS0FJQUlRSURRQUpBSUFBZ0FVY0VmeUFBS0FJQUlBSkhEUUVnQUFVZ0FRc1BDeUFBUVFScUlRQU1BQXNBQy9rREFRRi9Jd0JCRUdzaURDUUFJQXdnQURZQ0RBSkFBa0FnQUNBRlJnUkFJQUV0QUFCRkRRRkJBQ0VBSUFGQkFEb0FBQ0FFSUFRb0FnQWlBVUVCYWpZQ0FDQUJRUzQ2QUFBZ0J4QUpSUTBDSUFrb0FnQWlBU0FJYTBHZkFVb05BaUFLS0FJQUlRSWdDU0FCUVFScU5nSUFJQUVnQWpZQ0FBd0NDd0pBSUFBZ0JrY05BQ0FIRUFsRkRRQWdBUzBBQUVVTkFVRUFJUUFnQ1NnQ0FDSUJJQWhyUVo4QlNnMENJQW9vQWdBaEFDQUpJQUZCQkdvMkFnQWdBU0FBTmdJQVFRQWhBQ0FLUVFBMkFnQU1BZ3RCZnlFQUlBc2dDMEdBQVdvZ0RFRU1haERTQVNBTGF5SUZRZndBU2cwQklBVkJBblZCNE5BQWFpMEFBQ0VHQWtBQ1FDQUZRWHR4SWdCQjJBQkhCRUFnQUVIZ0FFY05BU0FESUFRb0FnQWlBVWNFUUVGL0lRQWdBVUVCYXkwQUFFSGZBSEVnQWkwQUFFSC9BSEZIRFFVTElBUWdBVUVCYWpZQ0FDQUJJQVk2QUFCQkFDRUFEQVFMSUFKQjBBQTZBQUFNQVFzZ0Fpd0FBQ0lBSUFaQjN3QnhSdzBBSUFJZ0FFR0FBWEk2QUFBZ0FTMEFBRVVOQUNBQlFRQTZBQUFnQnhBSlJRMEFJQWtvQWdBaUFDQUlhMEdmQVVvTkFDQUtLQUlBSVFFZ0NTQUFRUVJxTmdJQUlBQWdBVFlDQUFzZ0JDQUVLQUlBSWdCQkFXbzJBZ0FnQUNBR09nQUFRUUFoQUNBRlFkUUFTZzBCSUFvZ0NpZ0NBRUVCYWpZQ0FBd0JDMEYvSVFBTElBeEJFR29rQUNBQUMxQUJBbjhqQUVFUWF5SUdKQUFnQmtFSWFpSUZJQUVRRHlBRkVEdEI0TkFBUVlEUkFDQUNFR01nQXlBRkVJd0JJZ0VRU0RZQ0FDQUVJQUVRT0RZQ0FDQUFJQUVRTnlBRkVBNGdCa0VRYWlRQUN6RUFJQUl0QUFBaEFnTkFBa0FnQUNBQlJ3Ui9JQUF0QUFBZ0FrY05BU0FBQlNBQkN3OExJQUJCQVdvaEFBd0FDd0FMN1FNQkFYOGpBRUVRYXlJTUpBQWdEQ0FBT2dBUEFrQUNRQ0FBSUFWR0JFQWdBUzBBQUVVTkFVRUFJUUFnQVVFQU9nQUFJQVFnQkNnQ0FDSUJRUUZxTmdJQUlBRkJMam9BQUNBSEVBbEZEUUlnQ1NnQ0FDSUJJQWhyUVo4QlNnMENJQW9vQWdBaEFpQUpJQUZCQkdvMkFnQWdBU0FDTmdJQURBSUxBa0FnQUNBR1J3MEFJQWNRQ1VVTkFDQUJMUUFBUlEwQlFRQWhBQ0FKS0FJQUlnRWdDR3RCbndGS0RRSWdDaWdDQUNFQUlBa2dBVUVFYWpZQ0FDQUJJQUEyQWdCQkFDRUFJQXBCQURZQ0FBd0NDMEYvSVFBZ0N5QUxRU0JxSUF4QkQyb1ExUUVnQzJzaUJVRWZTZzBCSUFWQjROQUFhaTBBQUNFR0FrQUNRQUpBQWtBZ0JVRitjVUVXYXc0REFRSUFBZ3NnQXlBRUtBSUFJZ0ZIQkVBZ0FVRUJheTBBQUVIZkFIRWdBaTBBQUVIL0FIRkhEUVVMSUFRZ0FVRUJhallDQUNBQklBWTZBQUJCQUNFQURBUUxJQUpCMEFBNkFBQU1BUXNnQWl3QUFDSUFJQVpCM3dCeFJ3MEFJQUlnQUVHQUFYSTZBQUFnQVMwQUFFVU5BQ0FCUVFBNkFBQWdCeEFKUlEwQUlBa29BZ0FpQUNBSWEwR2ZBVW9OQUNBS0tBSUFJUUVnQ1NBQVFRUnFOZ0lBSUFBZ0FUWUNBQXNnQkNBRUtBSUFJZ0JCQVdvMkFnQWdBQ0FHT2dBQVFRQWhBQ0FGUVJWS0RRRWdDaUFLS0FJQVFRRnFOZ0lBREFFTFFYOGhBQXNnREVFUWFpUUFJQUFMVUFFQ2Z5TUFRUkJySWdZa0FDQUdRUWhxSWdVZ0FSQVBJQVVRTWtIZzBBQkJnTkVBSUFJUWJ5QURJQVVRamdFaUFSQklPZ0FBSUFRZ0FSQTRPZ0FBSUFBZ0FSQTNJQVVRRGlBR1FSQnFKQUFMZmdJQ2Z3SitJd0JCb0FGcklnUWtBQ0FFSUFFMkFqd2dCQ0FCTmdJVUlBUkJmellDR0NBRVFSQnFJZ1ZDQUJCVElBUWdCU0FEUVFFUTVnSWdCQ2tEQ0NFR0lBUXBBd0FoQnlBQ0JFQWdBaUFCSUFRb0FoUWdCQ2dDaUFGcUlBUW9BanhyYWpZQ0FBc2dBQ0FITndNQUlBQWdCamNEQ0NBRVFhQUJhaVFBQ3cwQUlBQWdBU0FDUW44UTBBSUxpUUlBQWtBZ0FBUi9JQUZCL3dCTkRRRUNRRUhZaGdFb0FnQW9BZ0JGQkVBZ0FVR0FmM0ZCZ0w4RFJnMEREQUVMSUFGQi93OU5CRUFnQUNBQlFUOXhRWUFCY2pvQUFTQUFJQUZCQm5aQndBRnlPZ0FBUVFJUEN5QUJRWUJBY1VHQXdBTkhJQUZCZ0xBRFQzRkZCRUFnQUNBQlFUOXhRWUFCY2pvQUFpQUFJQUZCREhaQjRBRnlPZ0FBSUFBZ0FVRUdka0UvY1VHQUFYSTZBQUZCQXc4TElBRkJnSUFFYTBILy96OU5CRUFnQUNBQlFUOXhRWUFCY2pvQUF5QUFJQUZCRW5aQjhBRnlPZ0FBSUFBZ0FVRUdka0UvY1VHQUFYSTZBQUlnQUNBQlFReDJRVDl4UVlBQmNqb0FBVUVFRHdzTFFkU0JBVUVaTmdJQVFYOEZRUUVMRHdzZ0FDQUJPZ0FBUVFFTHJ3SUJCSDhDZndKQUlBQWlBVUVEY1FSQUEwQWdBUzBBQUNJQ1JTQUNRVDFHY2cwQ0lBRkJBV29pQVVFRGNRMEFDd3NDUUNBQktBSUFJZ0pCZjNNZ0FrR0Jnb1FJYTNGQmdJR0NoSGh4RFFBRFFDQUNRYjM2OU9rRGN5SUNRWDl6SUFKQmdZS0VDR3R4UVlDQmdvUjRjUTBCSUFFb0FnUWhBaUFCUVFScUlRRWdBa0dCZ29RSWF5QUNRWDl6Y1VHQWdZS0VlSEZGRFFBTEN3TkFJQUVpQWkwQUFDSURCRUFnQWtFQmFpRUJJQU5CUFVjTkFRc0xJQUlNQVFzZ0FRc2dBR3NpQWtVRVFFRUFEd3NDUUNBQUlBSnFMUUFBRFFCQjlJWUJLQUlBSWdGRkRRQWdBU2dDQUNJRFJRMEFBMEFDUUNBQUlBTWdBaEMrQVVVRVFDQUJLQUlBSUFKcUlnTXRBQUJCUFVZTkFRc2dBU2dDQkNFRElBRkJCR29oQVNBRERRRU1BZ3NMSUFOQkFXb2hCQXNnQkF2aEFRRUNmeUFDUVFCSElRTUNRQUpBQWtBZ0FFRURjVVVnQWtWeURRQWdBVUgvQVhFaEJBTkFJQUF0QUFBZ0JFWU5BaUFDUVFGcklnSkJBRWNoQXlBQVFRRnFJZ0JCQTNGRkRRRWdBZzBBQ3dzZ0EwVU5BUXNDUUNBQUxRQUFJQUZCL3dGeFJpQUNRUVJKY2cwQUlBRkIvd0Z4UVlHQ2hBaHNJUU1EUUNBQUtBSUFJQU56SWdSQmYzTWdCRUdCZ29RSWEzRkJnSUdDaEhoeERRRWdBRUVFYWlFQUlBSkJCR3NpQWtFRFN3MEFDd3NnQWtVTkFDQUJRZjhCY1NFQkEwQWdBU0FBTFFBQVJnUkFJQUFQQ3lBQVFRRnFJUUFnQWtFQmF5SUNEUUFMQzBFQUM5Y0RBZ0orQW44akFFRWdheUlFSkFBQ1FDQUJRdi8vLy8vLy8vLy8vd0NESWdOQ2dJQ0FnSUNBd0lBOGZTQURRb0NBZ0lDQWdNRC93d0I5VkFSQUlBRkNCSVlnQUVJOGlJUWhBeUFBUXYvLy8vLy8vLy8vRDRNaUFFS0JnSUNBZ0lDQWdBaGFCRUFnQTBLQmdJQ0FnSUNBZ01BQWZDRUNEQUlMSUFOQ2dJQ0FnSUNBZ0lCQWZTRUNJQUJDZ0lDQWdJQ0FnSUFJaFVJQVVnMEJJQUlnQTBJQmczd2hBZ3dCQ3lBQVVDQURRb0NBZ0lDQWdNRC8vd0JVSUFOQ2dJQ0FnSUNBd1AvL0FGRWJSUVJBSUFGQ0JJWWdBRUk4aUlSQy8vLy8vLy8vL3dPRFFvQ0FnSUNBZ0lEOC93Q0VJUUlNQVF0Q2dJQ0FnSUNBZ1BqL0FDRUNJQU5DLy8vLy8vLy92Ly9EQUZZTkFFSUFJUUlnQTBJd2lLY2lCVUdSOXdCSkRRQWdCRUVRYWlBQUlBRkMvLy8vLy8vL1A0TkNnSUNBZ0lDQXdBQ0VJZ0lnQlVHQjl3QnJFQzhnQkNBQUlBSkJnZmdBSUFWckVId2dCQ2tEQ0VJRWhpQUVLUU1BSWdCQ1BJaUVJUUlnQkNrREVDQUVLUU1ZaEVJQVVxMGdBRUwvLy8vLy8vLy8vdytEaENJQVFvR0FnSUNBZ0lDQUNGb0VRQ0FDUWdGOElRSU1BUXNnQUVLQWdJQ0FnSUNBZ0FpRlFnQlNEUUFnQWtJQmd5QUNmQ0VDQ3lBRVFTQnFKQUFnQWlBQlFvQ0FnSUNBZ0lDQWdIK0RoTDhMUkFFQmZ5TUFRUkJySWdVa0FDQUZJQUVnQWlBRElBUkNnSUNBZ0lDQWdJQ0FmNFVRUENBRktRTUFJUUVnQUNBRktRTUlOd01JSUFBZ0FUY0RBQ0FGUVJCcUpBQUxxUUVCQVh4RUFBQUFBQUFBOEQ4aEFRSkFJQUJCZ0FoT0JFQkVBQUFBQUFBQTRIOGhBU0FBUWY4UFNBUkFJQUJCL3dkcklRQU1BZ3RFQUFBQUFBQUE4SDhoQVNBQVFmMFhJQUJCL1JkSUcwSCtEMnNoQUF3QkN5QUFRWUY0U2cwQVJBQUFBQUFBQUdBRElRRWdBRUc0Y0VvRVFDQUFRY2tIYWlFQURBRUxSQUFBQUFBQUFBQUFJUUVnQUVId2FDQUFRZkJvU2h0QmtnOXFJUUFMSUFFZ0FFSC9CMnF0UWpTR3Y2SUx4QUVDQVg4Q2ZrRi9JUU1DUUNBQVFnQlNJQUZDLy8vLy8vLy8vLy8vQUlNaUJFS0FnSUNBZ0lEQS8vOEFWaUFFUW9DQWdJQ0FnTUQvL3dCUkd3MEFRUUFnQWtMLy8vLy8vLy8vLy84QWd5SUZRb0NBZ0lDQWdNRC8vd0JXSUFWQ2dJQ0FnSUNBd1AvL0FGRWJEUUFnQUNBRUlBV0VoRkFFUUVFQUR3c2dBU0FDZzBJQVdRUkFRUUFnQVNBQ1V5QUJJQUpSR3cwQklBQWdBU0FDaFlSQ0FGSVBDeUFBUWdCU0lBRWdBbFVnQVNBQ1VSc05BQ0FBSUFFZ0FvV0VRZ0JTSVFNTElBTUxhUUVDZnlBQVFid29OZ0lBSUFBb0FpZ2hBUU5BSUFFRVFFRUFJQUFnQVVFQmF5SUJRUUowSWdJZ0FDZ0NKR29vQWdBZ0FDZ0NJQ0FDYWlnQ0FCRUhBQXdCQ3dzZ0FFRWNhaEFPSUFBb0FpQVFFQ0FBS0FJa0VCQWdBQ2dDTUJBUUlBQW9BandRRUNBQUN3a0FJQUFRaWdFUUVBc0pBQ0FBRUxnQkVCQUxEQUFnQUVFRWFoQitHaUFBQ3d3QUlBQkJDR29RZmhvZ0FBdi9Md0VSZnlNQVFTQnJJaE1rQUFKL1FmUUJFQmtpQ0FSL0FrQWdDQ0lHSUFBZ0FVRURkQkNKQXlJQVFRQk1EUUFnQUVFQ2RDRVBBMEFnQmlBUlFRSjBJZ2RxSWdFb0FnQWhDaUFCSUFZZ0QwRUNkQ0lRYWlJQktBSUFOZ0lBSUFFZ0NqWUNBQ0FHSUFkQkJISnFJZ0VvQWdBaENpQUJJQVlnRUVFRWNtb2lBU2dDQURZQ0FDQUJJQW8yQWdBZ0JpQUhRUWh5YWlJQktBSUFJUW9nQVNBR0lCQkJDSEpxSWdFb0FnQTJBZ0FnQVNBS05nSUFJQVlnQjBFTWNtb2lBU2dDQUNFS0lBRWdCaUFRUVF4eWFpSUJLQUlBTmdJQUlBRWdDallDQUNBUlFRUnFJaEVnRDBFRWF5SVBTQTBBQzBFQklSRWdBRUVCVEEwQUEwQWdCa0VRYWlFR1FRQWhEd05BSUFZZ0QwRUNkR29pQVNBQktBSUFJZ0ZCRG5aQi9BZHhRWUFJYWlnQ0FFRUdka0g4QjNGQmdCQnFLQUlBUVFnUUNDQUJRUloyUWZ3SGNVR0FDR29vQWdCQkJuWkIvQWR4UVlBUWFpZ0NBSE1nQVVFR2RrSDhCM0ZCZ0FocUtBSUFRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFCUWY4QmNVRUNkRUdBQ0dvb0FnQkJCblpCL0FkeFFZQVFhaWdDQUVFWUVBaHpOZ0lBSUE5QkFXb2lEMEVFUncwQUN5QVJRUUZxSWhFZ0FFY05BQXNMSUFCQkFFZ0VRQ0FJRUJCQkFBd0NDeUFJSUFBMkF2QUJJQWdGUVFBTEN5SUFCSDhnRXlBQ0tRQUFOd01RSUJNZ0Fpa0FDRGNER0NBRVFSQlBCRUFnQkVFRWRpRVZRUUFoQVFOQUlCTWdBeWtBQURjREFDQVRJQU1wQUFnM0F3Z2dBQ2dDOEFFaEZDQUFLQUlNSUFNb0FBd2lBa0VZZENBQ1FRaDBRWUNBL0FkeGNpQUNRUWgyUVlEK0EzRWdBa0VZZG5KeWN5SVBRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUklnQUNnQ0NDQURLQUFJSWdKQkdIUWdBa0VJZEVHQWdQd0hjWElnQWtFSWRrR0EvZ054SUFKQkdIWnljbk1pRVVFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFT0lBQW9BZ1FnQXlnQUJDSUNRUmgwSUFKQkNIUkJnSUQ4QjNGeUlBSkJDSFpCZ1A0RGNTQUNRUmgyY25KeklnZEIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hDU0FBS0FJQUlBTW9BQUFpQWtFWWRDQUNRUWgwUVlDQS9BZHhjaUFDUVFoMlFZRCtBM0VnQWtFWWRuSnljeUlMUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVJBZ0QwRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRUtJQkZCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQmlBSFFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlRZ2dDMEVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VFSUE5Qi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEFpQVJRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJQTlCRm5aQi9BZHhRWUFRYWlnQ0FITWdCMEVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDSE1nQzBIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0hNZ0FDZ0NISE1pREVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFUElBQW9BaGdnQWlBRUlBZ2dFVUVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlOUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVJFZ0FDZ0NGQ0FHSUFvZ0VDQUhRUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZ1ZCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQnlBQUtBSVFJQWtnRGlBU0lBdEJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlDMEVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VRSUF4QkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaENpQU5RZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUVlnQlVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFSUlBdEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hCQ0FNUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFJZ0RVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDQU1RUloyUWZ3SGNVR0FFR29vQWdCeklBVkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQXRCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0FpeHpJZ3hCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoRWlBQUtBSW9JQUlnQkNBSUlBMUJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlEVUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VPSUFBb0FpUWdCaUFLSUJBZ0JVRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SUZRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUWtnQUNnQ0lDQUhJQkVnRHlBTFFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklndEJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hFQ0FNUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVFvZ0RVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUdJQVZCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoQ0NBTFFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlRUWdERUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VDSUExQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0RFRVdka0g4QjNGQmdCQnFLQUlBY3lBRlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUxRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FJOGN5SU1RUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUThnQUNnQ09DQUNJQVFnQ0NBTlFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnMUJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hFU0FBS0FJMElBWWdDaUFRSUFWQkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUJVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUhJQUFvQWpBZ0NTQU9JQklnQzBFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJTFFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlSQWdERUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VLSUExQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEJpQUZRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUWdnQzBFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFRUlBeEIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hBaUFOUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUF4QkZuWkIvQWR4UVlBUWFpZ0NBSE1nQlVFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0MwSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDVEhNaURFRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRVNJQUFvQWtnZ0FpQUVJQWdnRFVFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJTlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlRNGdBQ2dDUkNBR0lBb2dFQ0FGUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWdWQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaENTQUFLQUpBSUFjZ0VTQVBJQXRCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQzBFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFUUlBeEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hDaUFOUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFZZ0JVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRUlJQXRCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoQkNBTVFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRSWdEVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FNUVJaMlFmd0hjVUdBRUdvb0FnQnpJQVZCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUF0Qi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9BbHh6SWd4QkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaER5QUFLQUpZSUFJZ0JDQUlJQTFCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pRFVFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFUklBQW9BbFFnQmlBS0lCQWdCVUVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlGUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFjZ0FDZ0NVQ0FKSUE0Z0VpQUxRUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZ3RCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoRUNBTVFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlRb2dEVUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VHSUFWQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaENDQUxRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUVFnREVIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFQ0lBMUJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dERUVXZGtIOEIzRkJnQkJxS0FJQWN5QUZRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFMUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBSnNjeUlNUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVJJZ0FDZ0NhQ0FDSUFRZ0NDQU5RUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZzFCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoRGlBQUtBSmtJQVlnQ2lBUUlBVkJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlCVUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VKSUFBb0FtQWdCeUFSSUE4Z0MwRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SUxRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUkFnREVFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFS0lBMUIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hCaUFGUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVFnZ0MwRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRUVJQXhCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQWlBTlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBeEJGblpCL0FkeFFZQVFhaWdDQUhNZ0JVRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNITWdDMEgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDSE1nQUNnQ2ZITWlERUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VQSUFBb0FuZ2dBaUFFSUFnZ0RVRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SU5RUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUkVnQUNnQ2RDQUdJQW9nRUNBRlFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnVkIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hCeUFBS0FKd0lBa2dEaUFTSUF0QkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaURrRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRVFJQXhCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoQ2lBTlFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRWWdCVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VJSUE1QkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaEJDQU1RZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUUlnRFVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NBTVFSWjJRZndIY1VHQUVHb29BZ0J6SUFWQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFoeklBNUIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBaHpJQUFvQW93QmN5SUpRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJQUFvQW9BQklBY2dFU0FQSUE1QkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUIwRVdka0g4QjNGQmdCQnFLQUlBY3lBQUtBS0lBU0FDSUFRZ0NDQU5RUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZ1JCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUFBb0FvUUJJQVlnQ2lBUUlBVkJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlBa0gvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDSE1nQUNnQ2tBRnpJUVVnQjBFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NBQ1FSWjJRZndIY1VHQUVHb29BZ0J6SUFsQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFoeklBUkIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBaHpJQUFvQXBRQmN5RVNJQUpCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdnQkVFV2RrSDhCM0ZCZ0JCcUtBSUFjeUFIUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJY3lBSlFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSWN5QUFLQUtZQVhNaERnSi9JQVJCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdnQ1VFV2RrSDhCM0ZCZ0JCcUtBSUFjeUFDUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJY3lBSFFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSWN5QUFLQUtjQVhNaUNTQVVRUXRJRFFBYUlBbEJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hEeUFPUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVJFZ0VrSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUhJQVZCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoRUNBSlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlRb2dEa0gvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VHSUJKQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaENDQUZRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUVFnQ1VIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFQ0lBNUJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dDVUVXZGtIOEIzRkJnQkJxS0FJQWN5QVNRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFGUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBS3NBWE1pQ1VFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NBQUtBS2dBU0FISUJFZ0R5QUZRUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZ2RCRm5aQi9BZHhRWUFRYWlnQ0FITWdBQ2dDcUFFZ0FpQUVJQWdnRGtFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJRVFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUFLQUtrQVNBR0lBb2dFQ0FTUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWdKQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9BckFCY3lFRklBZEJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dBa0VXZGtIOEIzRkJnQkJxS0FJQWN5QUpRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFFUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBSzBBWE1oRWlBQ1FRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBUkJGblpCL0FkeFFZQVFhaWdDQUhNZ0IwRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNITWdDVUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDSE1nQUNnQ3VBRnpJUTRnQkVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NBSlFSWjJRZndIY1VHQUVHb29BZ0J6SUFKQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFoeklBZEIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBaHpJQUFvQXJ3QmN5SUpJQlJCRFVnTkFCb2dDVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VQSUE1QkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaEVTQVNRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUWNnQlVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFUUlBbEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hDaUFPUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFZZ0VrRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRUlJQVZCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoQkNBSlFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRSWdEa0VPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FKUVJaMlFmd0hjVUdBRUdvb0FnQnpJQkpCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUFWQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9Bc3dCY3lJSlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBQW9Bc0FCSUFjZ0VTQVBJQVZCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQjBFV2RrSDhCM0ZCZ0JCcUtBSUFjeUFBS0FMSUFTQUNJQVFnQ0NBT1FSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnUkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQUFvQXNRQklBWWdDaUFRSUJKQkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUFrSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDMEFGeklRVWdCMEVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FDUVJaMlFmd0hjVUdBRUdvb0FnQnpJQWxCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUFSQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9BdFFCY3lFU0lBSkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dCRUVXZGtIOEIzRkJnQkJxS0FJQWN5QUhRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFKUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBTFlBWE1oRGlBRVFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBbEJGblpCL0FkeFFZQVFhaWdDQUhNZ0FrRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNITWdCMEgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDSE1nQUNnQzNBRnpDeUVJSUFNZ0FDQVVRUVIwYWlJRUtBSUFJQkpCL3dGeFFZQVlhaTBBQUNBSVFSQjJRZjhCY1VHQUdHb3RBQUJCRUhRZ0JVRVlka0dBR0dvdEFBQkJHSFJ5SUE1QkNIWkIvd0Z4UVlBWWFpMEFBRUVJZEhKeWN5SUNRUmgwSUFKQkNIUkJnSUQ4QjNGeUlBSkJDSFpCZ1A0RGNTQUNRUmgyY25JMkFBQWdBeUFFS0FJRUlBNUIvd0Z4UVlBWWFpMEFBQ0FGUVJCMlFmOEJjVUdBR0dvdEFBQkJFSFFnRWtFWWRrR0FHR290QUFCQkdIUnlJQWhCQ0haQi93RnhRWUFZYWkwQUFFRUlkSEp5Y3lJQ1FSaDBJQUpCQ0hSQmdJRDhCM0Z5SUFKQkNIWkJnUDREY1NBQ1FSaDJjbkkyQUFRZ0F5QUVLQUlJSUFoQi93RnhRWUFZYWkwQUFDQVNRUkIyUWY4QmNVR0FHR290QUFCQkVIUWdEa0VZZGtHQUdHb3RBQUJCR0hSeUlBVkJDSFpCL3dGeFFZQVlhaTBBQUVFSWRISnljeUlDUVJoMElBSkJDSFJCZ0lEOEIzRnlJQUpCQ0haQmdQNERjU0FDUVJoMmNuSTJBQWdnQXlBRUtBSU1JQVZCL3dGeFFZQVlhaTBBQUNBT1FSQjJRZjhCY1VHQUdHb3RBQUJCRUhRZ0NFRVlka0dBR0dvdEFBQkJHSFJ5SUJKQkNIWkIvd0Z4UVlBWWFpMEFBRUVJZEhKeWN5SUNRUmgwSUFKQkNIUkJnSUQ4QjNGeUlBSkJDSFpCZ1A0RGNTQUNRUmgyY25JMkFBeEJBQ0VDQTBBZ0FpQURhaUlFSUFRdEFBQWdFMEVRYWlBQ2FpMEFBSE02QUFBZ0FrRUJhaUlDUVJCSERRQUxJQk1nRXlrRENEY0RHQ0FUSUJNcEF3QTNBeEFnQTBFUWFpRURJQUZCQVdvaUFTQVZSdzBBQ3dzZ0FCQVFRUUFGUVg4TEdpQVRRU0JxSkFBTGxnRUJBbjhqQUVFUWF5SUFKQUFDUUNBQVFReHFJQUJCQ0dvUUF3MEFRZlNHQVNBQUtBSU1RUUowUVFScUVCa2lBVFlDQUNBQlJRMEFJQUFvQWdnUUdTSUJCRUJCOUlZQktBSUFJQUFvQWd4QkFuUnFRUUEyQWdCQjlJWUJLQUlBSUFFUUFrVU5BUXRCOUlZQlFRQTJBZ0FMSUFCQkVHb2tBRUhJZ1FGQnZSNFFWQnBCMklZQlFlaUZBVFlDQUVHUWhnRkJLallDQUF0WkFRRi9JQUFnQUNnQ1NDSUJRUUZySUFGeU5nSklJQUFvQWdBaUFVRUljUVJBSUFBZ0FVRWdjallDQUVGL0R3c2dBRUlBTndJRUlBQWdBQ2dDTENJQk5nSWNJQUFnQVRZQ0ZDQUFJQUVnQUNnQ01HbzJBaEJCQUF0OEFRSi9JQUFnQUNnQ1NDSUJRUUZySUFGeU5nSklJQUFvQWhRZ0FDZ0NIRWNFUUNBQVFRQkJBQ0FBS0FJa0VRUUFHZ3NnQUVFQU5nSWNJQUJDQURjREVDQUFLQUlBSWdGQkJIRUVRQ0FBSUFGQklISTJBZ0JCZnc4TElBQWdBQ2dDTENBQUtBSXdhaUlDTmdJSUlBQWdBallDQkNBQlFSdDBRUjkxQzlVQ0FRSi9Ba0FnQUNBQlJnMEFJQUVnQUNBQ2FpSUVhMEVBSUFKQkFYUnJUUVJBSUFBZ0FTQUNFRUlhRHdzZ0FDQUJjMEVEY1NFREFrQUNRQ0FBSUFGSkJFQWdBdzBDSUFCQkEzRkZEUUVEUUNBQ1JRMEVJQUFnQVMwQUFEb0FBQ0FCUVFGcUlRRWdBa0VCYXlFQ0lBQkJBV29pQUVFRGNRMEFDd3dCQ3dKQUlBTU5BQ0FFUVFOeEJFQURRQ0FDUlEwRklBQWdBa0VCYXlJQ2FpSURJQUVnQW1vdEFBQTZBQUFnQTBFRGNRMEFDd3NnQWtFRFRRMEFBMEFnQUNBQ1FRUnJJZ0pxSUFFZ0Ftb29BZ0EyQWdBZ0FrRURTdzBBQ3dzZ0FrVU5BZ05BSUFBZ0FrRUJheUlDYWlBQklBSnFMUUFBT2dBQUlBSU5BQXNNQWdzZ0FrRURUUTBBQTBBZ0FDQUJLQUlBTmdJQUlBRkJCR29oQVNBQVFRUnFJUUFnQWtFRWF5SUNRUU5MRFFBTEN5QUNSUTBBQTBBZ0FDQUJMUUFBT2dBQUlBQkJBV29oQUNBQlFRRnFJUUVnQWtFQmF5SUNEUUFMQ3dzVUFDQUFRUXhxSWdBZ0FCQ1VBVUVCYWhDVEFRdUxEQUVHZnlBQUlBRnFJUVVDUUFKQUlBQW9BZ1FpQWtFQmNRMEFJQUpCQTNGRkRRRWdBQ2dDQUNJQ0lBRnFJUUVDUUNBQUlBSnJJZ0JCN0lFQktBSUFSd1JBSUFKQi93Rk5CRUFnQUNnQ0NDSUVJQUpCQTNZaUFrRURkRUdBZ2dGcVJob2dBQ2dDRENJRElBUkhEUUpCMklFQlFkaUJBU2dDQUVGK0lBSjNjVFlDQUF3REN5QUFLQUlZSVFZQ1FDQUFJQUFvQWd3aUEwY0VRQ0FBS0FJSUlnSkI2SUVCS0FJQVNSb2dBaUFETmdJTUlBTWdBallDQ0F3QkN3SkFJQUJCRkdvaUFpZ0NBQ0lFRFFBZ0FFRVFhaUlDS0FJQUlnUU5BRUVBSVFNTUFRc0RRQ0FDSVFjZ0JDSURRUlJxSWdJb0FnQWlCQTBBSUFOQkVHb2hBaUFES0FJUUlnUU5BQXNnQjBFQU5nSUFDeUFHUlEwQ0FrQWdBQ0FBS0FJY0lnUkJBblJCaUlRQmFpSUNLQUlBUmdSQUlBSWdBellDQUNBRERRRkIzSUVCUWR5QkFTZ0NBRUYrSUFSM2NUWUNBQXdFQ3lBR1FSQkJGQ0FHS0FJUUlBQkdHMm9nQXpZQ0FDQURSUTBEQ3lBRElBWTJBaGdnQUNnQ0VDSUNCRUFnQXlBQ05nSVFJQUlnQXpZQ0dBc2dBQ2dDRkNJQ1JRMENJQU1nQWpZQ0ZDQUNJQU0yQWhnTUFnc2dCU2dDQkNJQ1FRTnhRUU5IRFFGQjRJRUJJQUUyQWdBZ0JTQUNRWDV4TmdJRUlBQWdBVUVCY2pZQ0JDQUZJQUUyQWdBUEN5QUVJQU0yQWd3Z0F5QUVOZ0lJQ3dKQUlBVW9BZ1FpQWtFQ2NVVUVRQ0FGUWZDQkFTZ0NBRVlFUUVId2dRRWdBRFlDQUVIa2dRRkI1SUVCS0FJQUlBRnFJZ0UyQWdBZ0FDQUJRUUZ5TmdJRUlBQkI3SUVCS0FJQVJ3MERRZUNCQVVFQU5nSUFRZXlCQVVFQU5nSUFEd3NnQlVIc2dRRW9BZ0JHQkVCQjdJRUJJQUEyQWdCQjRJRUJRZUNCQVNnQ0FDQUJhaUlCTmdJQUlBQWdBVUVCY2pZQ0JDQUFJQUZxSUFFMkFnQVBDeUFDUVhoeElBRnFJUUVDUUNBQ1FmOEJUUVJBSUFVb0FnZ2lCQ0FDUVFOMklnSkJBM1JCZ0lJQmFrWWFJQVFnQlNnQ0RDSURSZ1JBUWRpQkFVSFlnUUVvQWdCQmZpQUNkM0UyQWdBTUFnc2dCQ0FETmdJTUlBTWdCRFlDQ0F3QkN5QUZLQUlZSVFZQ1FDQUZJQVVvQWd3aUEwY0VRQ0FGS0FJSUlnSkI2SUVCS0FJQVNSb2dBaUFETmdJTUlBTWdBallDQ0F3QkN3SkFJQVZCRkdvaUJDZ0NBQ0lDRFFBZ0JVRVFhaUlFS0FJQUlnSU5BRUVBSVFNTUFRc0RRQ0FFSVFjZ0FpSURRUlJxSWdRb0FnQWlBZzBBSUFOQkVHb2hCQ0FES0FJUUlnSU5BQXNnQjBFQU5nSUFDeUFHUlEwQUFrQWdCU0FGS0FJY0lnUkJBblJCaUlRQmFpSUNLQUlBUmdSQUlBSWdBellDQUNBRERRRkIzSUVCUWR5QkFTZ0NBRUYrSUFSM2NUWUNBQXdDQ3lBR1FSQkJGQ0FHS0FJUUlBVkdHMm9nQXpZQ0FDQURSUTBCQ3lBRElBWTJBaGdnQlNnQ0VDSUNCRUFnQXlBQ05nSVFJQUlnQXpZQ0dBc2dCU2dDRkNJQ1JRMEFJQU1nQWpZQ0ZDQUNJQU0yQWhnTElBQWdBVUVCY2pZQ0JDQUFJQUZxSUFFMkFnQWdBRUhzZ1FFb0FnQkhEUUZCNElFQklBRTJBZ0FQQ3lBRklBSkJmbkUyQWdRZ0FDQUJRUUZ5TmdJRUlBQWdBV29nQVRZQ0FBc2dBVUgvQVUwRVFDQUJRUU4ySWdKQkEzUkJnSUlCYWlFQkFuOUIySUVCS0FJQUlnTkJBU0FDZENJQ2NVVUVRRUhZZ1FFZ0FpQURjallDQUNBQkRBRUxJQUVvQWdnTElRSWdBU0FBTmdJSUlBSWdBRFlDRENBQUlBRTJBZ3dnQUNBQ05nSUlEd3RCSHlFQ0lBQkNBRGNDRUNBQlFmLy8vd2ROQkVBZ0FVRUlkaUlDSUFKQmdQNC9ha0VRZGtFSWNTSUVkQ0lDSUFKQmdPQWZha0VRZGtFRWNTSURkQ0lDSUFKQmdJQVBha0VRZGtFQ2NTSUNkRUVQZGlBRElBUnlJQUp5YXlJQ1FRRjBJQUVnQWtFVmFuWkJBWEZ5UVJ4cUlRSUxJQUFnQWpZQ0hDQUNRUUowUVlpRUFXb2hCd0pBQWtCQjNJRUJLQUlBSWdSQkFTQUNkQ0lEY1VVRVFFSGNnUUVnQXlBRWNqWUNBQ0FISUFBMkFnQWdBQ0FITmdJWURBRUxJQUZCQUVFWklBSkJBWFpySUFKQkgwWWJkQ0VDSUFjb0FnQWhBd05BSUFNaUJDZ0NCRUY0Y1NBQlJnMENJQUpCSFhZaEF5QUNRUUYwSVFJZ0JDQURRUVJ4YWlJSFFSQnFLQUlBSWdNTkFBc2dCeUFBTmdJUUlBQWdCRFlDR0FzZ0FDQUFOZ0lNSUFBZ0FEWUNDQThMSUFRb0FnZ2lBU0FBTmdJTUlBUWdBRFlDQ0NBQVFRQTJBaGdnQUNBRU5nSU1JQUFnQVRZQ0NBc0xaQUFnQUNBQlFpaUdRb0NBZ0lDQWdNRC9BSU1nQVVJNGhvUWdBVUlZaGtLQWdJQ0FnT0EvZ3lBQlFnaUdRb0NBZ0lEd0g0T0VoQ0FCUWdpSVFvQ0FnUGdQZ3lBQlFoaUlRb0NBL0FlRGhDQUJRaWlJUW9EK0E0TWdBVUk0aUlTRWhEY0FBQXNQQUNBQUtBSU1HaUFBUVFBMkFnd0xod0VCQkg4akFFRVFheUlGSkFBakFFRVFheUlESkFBQ1FDQUJRVzlOQkVBQ1FDQUJRUXBOQkVBZ0FDQUJFRG9nQUNFRURBRUxJQUFnQVJDUkFVRUJhaUlHRUY4aUJCQk5JQUFnQmhCTUlBQWdBUkE1Q3lBRUlBRWdBaEQzQVNBRFFRQTZBQThnQVNBRWFpQURRUTlxRURRZ0EwRVFhaVFBREFFTEVCY0FDeUFGUVJCcUpBQWdBQXRWQVFKL0lBQW9BZ1FoQkFKL1FRQWdBa1VOQUJvZ0JFRUlkU0lGSUFSQkFYRkZEUUFhSUFJb0FnQWdCUkRGQVFzaEJTQUFLQUlBSWdBZ0FTQUNJQVZxSUFOQkFpQUVRUUp4R3lBQUtBSUFLQUljRVFnQUN3MEFJQUFvQWdBZ0FTZ0NBRWtMSXdBZ0FFRUFOZ0lNSUFBZ0FUWUNCQ0FBSUFFMkFnQWdBQ0FCUVFGcU5nSUlJQUFMdXdFQkEzOGpBRUVRYXlJRkpBQWdBa0h2Ly8vL0F5SUdJQUZyVFFSQUlBQVFEU0VISUFBQ2Z5QUJJQVpCQVhaQkVHdEpCRUFnQlNBQlFRRjBOZ0lJSUFVZ0FTQUNhallDRENBRlFReHFJQVZCQ0dvUWRpZ0NBQkNDQVF3QkN5QUdRUUZyQzBFQmFpSUdFSUVCSVFJZ0JBUkFJQUlnQnlBRUVIRUxJQU1nQkdzaUF3UkFJQVJCQW5RaUJDQUNhaUFFSUFkcUlBTVFjUXNnQVVFQlJ3UkFJQWNRRUFzZ0FDQUNFRTBnQUNBR0VFd2dCVUVRYWlRQUR3c1FGd0FMaEFJQkEzOGpBRUVRYXlJSUpBQWdBa0h2Ly8vL0F5SUpJQUZCZjNOcVRRUkFJQUFRRFNFS0lBQUNmeUFCSUFsQkFYWkJFR3RKQkVBZ0NDQUJRUUYwTmdJSUlBZ2dBU0FDYWpZQ0RDQUlRUXhxSUFoQkNHb1FkaWdDQUJDQ0FRd0JDeUFKUVFGckMwRUJhaUlKRUlFQklRSWdCQVJBSUFJZ0NpQUVFSEVMSUFZRVFDQUVRUUowSUFKcUlBY2dCaEJ4Q3lBRElBUWdCV3BySWdNRVFDQUVRUUowSWdjZ0Ftb2dCa0VDZEdvZ0J5QUthaUFGUVFKMGFpQURFSEVMSUFGQkFVY0VRQ0FLRUJBTElBQWdBaEJOSUFBZ0NSQk1JQUFnQkNBR2FpQURhaUlBRURrZ0NFRUFOZ0lFSUFJZ0FFRUNkR29nQ0VFRWFoQXpJQWhCRUdva0FBOExFQmNBQzFnQkEzOUJ5SUVCRUEwaEEwSElnUUVRQ1NFQkl3QkJFR3NpQWlRQUlBSWdBRG9BRDBGL0lRQWdBUVJBSUFFRWZ5QURJQUlzQUE4UVpTQUJFTndCQlVFQUN5SUFJQU5yUVg4Z0FCc2hBQXNnQWtFUWFpUUFJQUFMY0FFRGZ5TUFRUkJySWdNa0FDQUNRVzlOQkVBQ1FDQUNRUXBOQkVBZ0FDQUNFRG9nQUNFRURBRUxJQUFnQWhDUkFVRUJhaUlGRUY4aUJCQk5JQUFnQlJCTUlBQWdBaEE1Q3lBRUlBRWdBaEJWSUFOQkFEb0FEeUFDSUFScUlBTkJEMm9RTkNBRFFSQnFKQUFQQ3hBWEFBc1NBQ0FCQkVBZ0FDQUNFR1VnQVJCR0dnc0w3QUVCQTM4akFFRVFheUlJSkFBZ0FrRnZJZ2tnQVVGL2MycE5CRUFnQUJBTklRb0NmeUFCSUFsQkFYWkJFR3RKQkVBZ0NDQUJRUUYwTmdJSUlBZ2dBU0FDYWpZQ0RDQUlRUXhxSUFoQkNHb1FkaWdDQUJDUkFRd0JDeUFKUVFGckMwRUJhaUlKRUY4aEFpQUVCRUFnQWlBS0lBUVFWUXNnQmdSQUlBSWdCR29nQnlBR0VGVUxJQU1nQkNBRmFtc2lBd1JBSUFJZ0JHb2dCbW9nQkNBS2FpQUZhaUFERUZVTElBRkJDa2NFUUNBS0VCQUxJQUFnQWhCTklBQWdDUkJNSUFBZ0JDQUdhaUFEYWlJQUVEa2dDRUVBT2dBSElBQWdBbW9nQ0VFSGFoQTBJQWhCRUdva0FBOExFQmNBQ3lRQkFYOGpBRUVRYXlJQkpBQWdBU0FBTmdJSUlBRW9BZ2doQUNBQlFSQnFKQUFnQUFzSkFDQUFFQlkyQWdBTEt3RUJmeUFBS0FJRUlRSURRQ0FCSUFKSEJFQWdBQkIwR2lBQ1FRUnJJUUlNQVFzTElBQWdBVFlDQkFzcUFDTUFRUkJySWdJa0FBSkFJQUFnQVVZRVFDQUFRUUE2QUhnTUFRc2dBUkFRQ3lBQ1FSQnFKQUFMSEFBZ0FVSC8vLy8vQTBzRVFFSDRIQkNXQWdBTElBRkJBblFRWHdzSkFDQUJRUUEyQWdBTE5nQkJzSlVCS0FJQUdrR3dsUUVvQWdCQnNKVUJFSE5CQW5ScUdrR3dsUUVvQWdCQnNKVUJFSE5CQW5ScUdrR3dsUUVvQWdBYUN6MEJBWDhqQUVFUWF5SUNKQUFDUUNBQUxRQjRJQUZCSGt0eVJRUkFJQUJCQVRvQWVBd0JDeUFDUVFocUlBRVEvUUVoQUFzZ0FrRVFhaVFBSUFBTFJRRUNmeU1BUVJCcklnQWtBRUd3bFFFUWRCb2dBRUgvLy8vL0F6WUNEQ0FBUWYvLy8vOEhOZ0lJSUFCQkRHb2dBRUVJYWhDaUFTZ0NBQ0VCSUFCQkVHb2tBQ0FCQ3drQUlBQVF5Z0VRRUFzbkFDQURJQU1vQWdBZ0FpQUJheUlBYXlJQ05nSUFJQUJCQUVvRVFDQUNJQUVnQUJCQ0dnc0xFQUFnQUNBQkVNMEJJQUFnQWpZQ0JBdklBUUVFZnlNQVFTQnJJZ1VrQUNBRklBRXBBQUEzQXhBZ0JTQUJLUUFJTndNWUFrQWdBMEVRU1FSQUlBSWhBUXdCQ3lBRFFRUjJJUWNnQWlFQkEwQWdBQ0FGUVJCcUlnZ2dCQkNuQVNBRUlBRVFuUUVnQkVFUWFpRUVJQUZCRUdvaEFTQUlFT3NCSUFaQkFXb2lCaUFIUncwQUN3c2dBaUFEYWlBQmF5SUNCRUFnQUNBRlFSQnFJQVVRcHdGQkFDRUdBMEFnQkNBRklBWnFMUUFBSUFFdEFBQnpPZ0FBSUFSQkFXb2hCQ0FCUVFGcUlRRWdCa0VCYWlJR0lBSkhEUUFMQ3lBRlFTQnFKQUFMRlFBZ0FFSDQwd0EyQWdBZ0FFRVFhaEFLR2lBQUN4VUFJQUJCME5NQU5nSUFJQUJCREdvUUNob2dBQXNFQUVFRUN3OEFJQUFvQWdBZ0FDZ0NCRFlDQkF0QUFRSi9Jd0JCRUdzaUFTUUFJQUVnQURZQ0RDQUJRUWhxSUFGQkRHb1FVaUVBUVFSQkFVSFloZ0VvQWdBb0FnQWJJUUlnQUJCUklBRkJFR29rQUNBQ0N6d0JBWDhqQUVFUWF5SUZKQUFnQlNBRU5nSU1JQVZCQ0dvZ0JVRU1haEJTSVFRZ0FDQUJJQUlnQXhDM0FTRUFJQVFRVVNBRlFSQnFKQUFnQUFzTUFDQUJJQUl0QUFBNkFBQUxFZ0FnQkNBQ05nSUFJQWNnQlRZQ0FFRURDeWdCQVg4Z0FFSHMwZ0EyQWdBQ1FDQUFLQUlJSWdGRkRRQWdBQzBBREVVTkFDQUJFQkFMSUFBTDVBa0JBWDhDUUVIMGlBRXRBQUJCQVhFTkFFSDBpQUVRSkVVTkFBSkFRZWlJQVMwQUFFRUJjUTBBUWVpSUFSQWtSUTBBUWFpVkFSQWJRYWlWQVVIWTBnQTJBZ0FqQUVFUWF5SUJKQUJCc0pVQlFnQTNBd0FnQVVFQU5nSU1RYmlWQVNBQlFReHFFTTBCUWJpV0FVRUFPZ0FBSUFGQkVHb2tBQkNCQWtFZVNRUkFFQmNBQzBHd2xRRkJzSlVCRUhSQkhoQ0FBaUlCTmdJQVFiU1ZBU0FCTmdJQVFiQ1ZBUkJESUFGQitBQnFOZ0lBUVFBUS93RkJIaENYQWtIQWxnRkJtaDRRVkJwQnNKVUJFRkFoQVVHd2xRRVFsUUpCc0pVQklBRVFsQUpCOEpJQkVCdEI4SklCUVlUZEFEWUNBRUh3a2dGQnVJY0JFQm9RSEVINGtnRVFHMEg0a2dGQnBOMEFOZ0lBUWZpU0FVSEFod0VRR2hBY1FZQ1RBUkFiUVl5VEFVRUFPZ0FBUVlpVEFVRUFOZ0lBUVlDVEFVSHMwZ0EyQWdCQmlKTUJRYkF5S0FJQU5nSUFRWUNUQVVHRWlRRVFHaEFjUVpDVEFSQWJRWkNUQVVIUTFnQTJBZ0JCa0pNQlFmeUlBUkFhRUJ4Qm1KTUJFQnRCbUpNQlFlVFhBRFlDQUVHWWt3RkJqSWtCRUJvUUhFR2drd0VRRzBHZ2t3RkJvTk1BTmdJQVFhaVRBUkFXTmdJQVFhQ1RBVUdVaVFFUUdoQWNRYkNUQVJBYlFiQ1RBVUg0MkFBMkFnQkJzSk1CUVp5SkFSQWFFQnhCdUpNQkVCdEJ1Sk1CUWV6WkFEWUNBRUc0a3dGQnBJa0JFQm9RSEVIQWt3RVFHMEhJa3dGQnJ0Z0FPd0VBUWNDVEFVSFEwd0EyQWdCQnpKTUJFQkVhUWNDVEFVR3NpUUVRR2hBY1FkaVRBUkFiUWVDVEFVS3VnSUNBd0FVM0FnQkIySk1CUWZqVEFEWUNBRUhva3dFUUVScEIySk1CUWJTSkFSQWFFQnhCK0pNQkVCdEIrSk1CUWNUZEFEWUNBRUg0a3dGQnlJY0JFQm9RSEVHQWxBRVFHMEdBbEFGQnVOOEFOZ0lBUVlDVUFVSFFod0VRR2hBY1FZaVVBUkFiUVlpVUFVR000UUEyQWdCQmlKUUJRZGlIQVJBYUVCeEJrSlFCRUJ0QmtKUUJRZlRpQURZQ0FFR1FsQUZCNEljQkVCb1FIRUdZbEFFUUcwR1lsQUZCek9vQU5nSUFRWmlVQVVHSWlBRVFHaEFjUWFDVUFSQWJRYUNVQVVIZzZ3QTJBZ0JCb0pRQlFaQ0lBUkFhRUJ4QnFKUUJFQnRCcUpRQlFkVHNBRFlDQUVHb2xBRkJtSWdCRUJvUUhFR3dsQUVRRzBHd2xBRkJ5TzBBTmdJQVFiQ1VBVUdnaUFFUUdoQWNRYmlVQVJBYlFiaVVBVUc4N2dBMkFnQkJ1SlFCUWFpSUFSQWFFQnhCd0pRQkVCdEJ3SlFCUWVEdkFEWUNBRUhBbEFGQnNJZ0JFQm9RSEVISWxBRVFHMEhJbEFGQmhQRUFOZ0lBUWNpVUFVRzRpQUVRR2hBY1FkQ1VBUkFiUWRDVUFVR284Z0EyQWdCQjBKUUJRY0NJQVJBYUVCeEIySlFCRUJ0QjRKUUJRWkQ4QURZQ0FFSFlsQUZCdk9RQU5nSUFRZUNVQVVIczVBQTJBZ0JCMkpRQlFlaUhBUkFhRUJ4QjZKUUJFQnRCOEpRQlFiVDhBRFlDQUVIb2xBRkJ4T1lBTmdJQVFmQ1VBVUgwNWdBMkFnQkI2SlFCUWZDSEFSQWFFQnhCK0pRQkVCdEJnSlVCRVBvQlFmaVVBVUd3NkFBMkFnQkIrSlFCUWZpSEFSQWFFQnhCaUpVQkVCdEJrSlVCRVBvQlFZaVZBVUhNNlFBMkFnQkJpSlVCUVlDSUFSQWFFQnhCbUpVQkVCdEJtSlVCUWN6ekFEWUNBRUdZbFFGQnlJZ0JFQm9RSEVHZ2xRRVFHMEdnbFFGQnhQUUFOZ0lBUWFDVkFVSFFpQUVRR2hBY1FlQ0lBVUdvbFFFMkFnQkI1SWdCUWVDSUFUWUNBRUhvaUFFUUl3dEI3SWdCUWVTSUFTZ0NBQkNRQWtId2lBRkI3SWdCTmdJQVFmU0lBUkFqQ3lBQVFmQ0lBU2dDQUNnQ0FDSUFOZ0lBSUFBUXpnRUxFd0FnQUNBQktBSUFJZ0EyQWdBZ0FCRE9BUXN5QUNBQUtBSUFHaUFBS0FJQUlBQVFjMEVDZEdvYUlBQW9BZ0FnQUJCUVFRSjBhaG9nQUNnQ0FDQUFFSE5CQW5ScUdnc1RBQ0FBSUFBb0FnQkJBV3NpQURZQ0FDQUFDMjhCQW44Z0FFSFkwZ0EyQWdBZ0FFRUlhaUVCQTBBZ0FSQlFJQUpMQkVBZ0FTQUNFSGNvQWdBRVFDQUJJQUlRZHlnQ0FCQ2pBUXNnQWtFQmFpRUNEQUVMQ3lBQVFaZ0JhaEFLR2lBQkVKRUNJQUVvQWdBRVFDQUJFSlVDSUFFUWRDQUJLQUlBSUFFUWN4RDhBUXNnQUFzcUFDQUFLQUlBR2lBQUtBSUFJQUFRYzBFQ2RHb2FJQUFvQWdBYUlBQW9BZ0FnQUJCUVFRSjBhaG9MREFBZ0FDQUFLQUlBRVBzQkMySUJBMzlCQ0JBSElnRkIwUDhBTmdJQUlBRkIvUDhBTmdJQUlBQVFrZ0VpQWtFTmFoQmZJZ05CQURZQ0NDQURJQUkyQWdRZ0F5QUNOZ0lBSUFFZ0EwRU1haUFBSUFKQkFXb1FRallDQkNBQlFheUFBVFlDQUNBQlFjeUFBVUVERUFZQUMzSUJBMzhqQUVFUWF5SUJKQUFnQVVHd2xRRTJBZ0FnQVVHMGxRRW9BZ0FpQWpZQ0JDQUJJQUlnQUVFQ2RHbzJBZ2dnQVNJREtBSUVJUUFnQXlnQ0NDRUNBMEFnQUNBQ1JnUkFJQU1RaVFJZ0FVRVFhaVFBQlVHd2xRRVFkQ0FBRVA0QklBTWdBRUVFYWlJQU5nSUVEQUVMQ3dzZ0FDQUFRYURUQURZQ0FDQUFLQUlJRUJaSEJFQWdBQ2dDQ0JEVUFnc2dBQXNFQUVGL0MrSUZBUXAvSXdCQkVHc2lFeVFBSUFJZ0FEWUNBQ0FEUVlBRWNTRVZJQWRCQW5RaEZnTkFJQlJCQkVZRVFDQU5FQWxCQVVzRVFDQVRJQTBRUURZQ0NDQUNJQk5CQ0dwQkFSQ2ZBaUFORUd3Z0FpZ0NBQkNrQVRZQ0FBc2dBMEd3QVhFaUEwRVFSd1JBSUFFZ0EwRWdSZ1IvSUFJb0FnQUZJQUFMTmdJQUN5QVRRUkJxSkFBRkFrQUNRQUpBQWtBQ1FBSkFJQWdnRkdvc0FBQU9CUUFCQXdJRUJRc2dBU0FDS0FJQU5nSUFEQVFMSUFFZ0FpZ0NBRFlDQUNBR1FTQVFQU0VISUFJZ0FpZ0NBQ0lQUVFScU5nSUFJQThnQnpZQ0FBd0RDeUFORUVrTkFpQU5RUUFRc1FFb0FnQWhCeUFDSUFJb0FnQWlEMEVFYWpZQ0FDQVBJQWMyQWdBTUFnc2dEQkJKSUJWRmNnMEJJQUlnREJCQUlBd1FiQ0FDS0FJQUVLUUJOZ0lBREFFTElBSW9BZ0FoRnlBRUlCWnFJZ1FoQndOQUFrQWdCU0FIVFEwQUlBWkJnQkFnQnlnQ0FCQk9SUTBBSUFkQkJHb2hCd3dCQ3dzZ0RpSVBRUUJLQkVBRFFDQVBRUUJNSUFRZ0IwOXlSUVJBSUFkQkJHc2lCeWdDQUNFUUlBSWdBaWdDQUNJUlFRUnFOZ0lBSUJFZ0VEWUNBQ0FQUVFGcklROE1BUXNMSUE5QkFFd0VmMEVBQlNBR1FUQVFQUXNoRVFOQUlBSWdBaWdDQUNJUVFRUnFOZ0lBSUE5QkFFb0VRQ0FRSUJFMkFnQWdEMEVCYXlFUERBRUxDeUFRSUFrMkFnQUxBa0FnQkNBSFJnUkFJQVpCTUJBOUlROGdBaUFDS0FJQUloQkJCR29pQnpZQ0FDQVFJQTgyQWdBTUFRc2dDeEJKQkg5QmZ3VWdDMEVBRUFzc0FBQUxJUkJCQUNFUFFRQWhFZ05BSUFRZ0IwY0VRQUpBSUE4Z0VFY0VRQ0FQSVJFTUFRc2dBaUFDS0FJQUloQkJCR28yQWdBZ0VDQUtOZ0lBUVFBaEVTQUxFQWtnRWtFQmFpSVNUUVJBSUE4aEVBd0JDeUFMSUJJUUN5MEFBRUgvQUVZRVFFRi9JUkFNQVFzZ0N5QVNFQXNzQUFBaEVBc2dCMEVFYXlJSEtBSUFJUThnQWlBQ0tBSUFJaGhCQkdvMkFnQWdHQ0FQTmdJQUlCRkJBV29oRHd3QkN3c2dBaWdDQUNFSEN5QVhJQWNRclFFTElCUkJBV29oRkF3QkN3c0xwUUlCQVg4akFFRVFheUlLSkFBZ0NRSi9JQUFFUUNBQ0VLRUNJUUFDUUNBQkJFQWdDaUFBRUdrZ0F5QUtLQUlBTmdBQUlBb2dBQkJvREFFTElBb2dBQkNsQVNBRElBb29BZ0EyQUFBZ0NpQUFFRW9MSUFnZ0NoQlhJQW9RQ2hvZ0JDQUFFRWcyQWdBZ0JTQUFFRGcyQWdBZ0NpQUFFRGNnQmlBS0VEQWdDaEFLR2lBS0lBQVFTeUFISUFvUVZ5QUtFQW9hSUFBUVp3d0JDeUFDRUtBQ0lRQUNRQ0FCQkVBZ0NpQUFFR2tnQXlBS0tBSUFOZ0FBSUFvZ0FCQm9EQUVMSUFvZ0FCQ2xBU0FESUFvb0FnQTJBQUFnQ2lBQUVFb0xJQWdnQ2hCWElBb1FDaG9nQkNBQUVFZzJBZ0FnQlNBQUVEZzJBZ0FnQ2lBQUVEY2dCaUFLRURBZ0NoQUtHaUFLSUFBUVN5QUhJQW9RVnlBS0VBb2FJQUFRWndzMkFnQWdDa0VRYWlRQUM5UUZBUXAvSXdCQkVHc2lGQ1FBSUFJZ0FEWUNBQ0FEUVlBRWNTRVdBMEFnRlVFRVJnUkFJQTBRQ1VFQlN3UkFJQlFnRFJCQU5nSUlJQUlnRkVFSWFrRUJFS1lDSUEwUWJpQUNLQUlBRUtRQk5nSUFDeUFEUWJBQmNTSURRUkJIQkVBZ0FTQURRU0JHQkg4Z0FpZ0NBQVVnQUFzMkFnQUxJQlJCRUdva0FBOExBa0FDUUFKQUFrQUNRQUpBSUFnZ0ZXb3NBQUFPQlFBQkF3SUVCUXNnQVNBQ0tBSUFOZ0lBREFRTElBRWdBaWdDQURZQ0FDQUdRU0FRS1NFUElBSWdBaWdDQUNJUVFRRnFOZ0lBSUJBZ0R6b0FBQXdEQ3lBTkVFa05BaUFOUVFBUUN5MEFBQ0VQSUFJZ0FpZ0NBQ0lRUVFGcU5nSUFJQkFnRHpvQUFBd0NDeUFNRUVrZ0ZrVnlEUUVnQWlBTUVFQWdEQkJ1SUFJb0FnQVFwQUUyQWdBTUFRc2dBaWdDQUNFWElBUWdCMm9pQkNFUkEwQUNRQ0FGSUJGTkRRQWdCa0dBRUNBUkxBQUFFRVJGRFFBZ0VVRUJhaUVSREFFTEN5QU9JZzlCQUVvRVFBTkFJQTlCQUV3Z0JDQVJUM0pGQkVBZ0VVRUJheUlSTFFBQUlSQWdBaUFDS0FJQUloSkJBV28yQWdBZ0VpQVFPZ0FBSUE5QkFXc2hEd3dCQ3dzZ0QwRUFUQVIvUVFBRklBWkJNQkFwQ3lFU0EwQWdBaUFDS0FJQUloQkJBV28yQWdBZ0QwRUFTZ1JBSUJBZ0Vqb0FBQ0FQUVFGcklROE1BUXNMSUJBZ0NUb0FBQXNDUUNBRUlCRkdCRUFnQmtFd0VDa2hEeUFDSUFJb0FnQWlFRUVCYWpZQ0FDQVFJQTg2QUFBTUFRc2dDeEJKQkg5QmZ3VWdDMEVBRUFzc0FBQUxJUkJCQUNFUFFRQWhFd05BSUFRZ0VVWU5BUUpBSUE4Z0VFY0VRQ0FQSVJJTUFRc2dBaUFDS0FJQUloQkJBV28yQWdBZ0VDQUtPZ0FBUVFBaEVpQUxFQWtnRTBFQmFpSVRUUVJBSUE4aEVBd0JDeUFMSUJNUUN5MEFBRUgvQUVZRVFFRi9JUkFNQVFzZ0N5QVRFQXNzQUFBaEVBc2dFVUVCYXlJUkxRQUFJUThnQWlBQ0tBSUFJaGhCQVdvMkFnQWdHQ0FQT2dBQUlCSkJBV29oRHd3QUN3QUxJQmNnQWlnQ0FCQjVDeUFWUVFGcUlSVU1BQXNBQzZVQ0FRRi9Jd0JCRUdzaUNpUUFJQWtDZnlBQUJFQWdBaENvQWlFQUFrQWdBUVJBSUFvZ0FCQnBJQU1nQ2lnQ0FEWUFBQ0FLSUFBUWFBd0JDeUFLSUFBUXBRRWdBeUFLS0FJQU5nQUFJQW9nQUJCS0N5QUlJQW9RTUNBS0VBb2FJQVFnQUJCSU9nQUFJQVVnQUJBNE9nQUFJQW9nQUJBM0lBWWdDaEF3SUFvUUNob2dDaUFBRUVzZ0J5QUtFREFnQ2hBS0dpQUFFR2NNQVFzZ0FoQ25BaUVBQWtBZ0FRUkFJQW9nQUJCcElBTWdDaWdDQURZQUFDQUtJQUFRYUF3QkN5QUtJQUFRcFFFZ0F5QUtLQUlBTmdBQUlBb2dBQkJLQ3lBSUlBb1FNQ0FLRUFvYUlBUWdBQkJJT2dBQUlBVWdBQkE0T2dBQUlBb2dBQkEzSUFZZ0NoQXdJQW9RQ2hvZ0NpQUFFRXNnQnlBS0VEQWdDaEFLR2lBQUVHY0xOZ0lBSUFwQkVHb2tBQXNJQUNBQUtBSUFSUXMzQVFGL0l3QkJFR3NpQWlRQUlBSWdBQ2dDQURZQ0NDQUNJQUlvQWdnZ0FVRUNkR28yQWdnZ0FpZ0NDQ0VBSUFKQkVHb2tBQ0FBQ3dvQUlBQkJtSWdCRUdRTENnQWdBRUdnaUFFUVpBc0pBQ0FBSUFFUXJnSUxId0VCZnlBQktBSUFFUG9DSVFJZ0FDQUJLQUlBTmdJRUlBQWdBallDQUF2eER3RUtmeU1BUWJBRWF5SUxKQUFnQ3lBS05nS2tCQ0FMSUFFMkFxZ0VJQXRCTmpZQ1lDQUxJQXRCaUFGcUlBdEJrQUZxSUF0QjRBQnFJZ0VRSGlJUEtBSUFJZ28yQW9RQklBc2dDa0dRQTJvMkFvQUJJQUVRRVNFUklBdEIwQUJxRUVjaERpQUxRVUJyRUVjaERDQUxRVEJxRUVjaERTQUxRU0JxRUVjaEVDTUFRUkJySWdFa0FDQUxBbjhnQWdSQUlBRWdBeENoQWlJQ0VHa2dDeUFCS0FJQU5nQjRJQUVnQWhCb0lBMGdBUkJYSUFFUUNob2dBU0FDRUVvZ0RDQUJFRmNnQVJBS0dpQUxJQUlRU0RZQ2RDQUxJQUlRT0RZQ2NDQUJJQUlRTnlBUklBRVFNQ0FCRUFvYUlBRWdBaEJMSUE0Z0FSQlhJQUVRQ2hvZ0FoQm5EQUVMSUFFZ0F4Q2dBaUlDRUdrZ0N5QUJLQUlBTmdCNElBRWdBaEJvSUEwZ0FSQlhJQUVRQ2hvZ0FTQUNFRW9nRENBQkVGY2dBUkFLR2lBTElBSVFTRFlDZENBTElBSVFPRFlDY0NBQklBSVFOeUFSSUFFUU1DQUJFQW9hSUFFZ0FoQkxJQTRnQVJCWElBRVFDaG9nQWhCbkN6WUNIQ0FCUVJCcUpBQWdDU0FJS0FJQU5nSUFJQVJCZ0FSeEloSkJDWFloRTBFQUlRRkJBQ0VDQTBBZ0FpRUtBa0FDUUFKQUFrQWdBVUVFUmcwQUlBQWdDMEdvQkdvUU5rVU5BRUVBSVFRQ1FBSkFBa0FDUUFKQUFrQWdDMEg0QUdvZ0FXb3NBQUFPQlFFQUJBTUZDUXNnQVVFRFJnMEhJQWRCZ01BQUlBQVFJUkJPQkVBZ0MwRVFhaUFBRUtNQ0lCQWdDeWdDRUJESEFRd0NDeUFGSUFVb0FnQkJCSEkyQWdCQkFDRUFEQVlMSUFGQkEwWU5CZ3NEUUNBQUlBdEJxQVJxRURaRkRRWWdCMEdBd0FBZ0FCQWhFRTVGRFFZZ0MwRVFhaUFBRUtNQ0lCQWdDeWdDRUJESEFRd0FDd0FMSUF3UUNVRUFJQTBRQ1d0R0RRUUNRQ0FNRUFrRVFDQU5FQWtOQVFzZ0RCQUpJUU1nQUJBaElRSWdBd1JBSUF3UURTZ0NBQ0FDUmdSQUlBQVFKUm9nRENBS0lBd1FDVUVCU3hzaEFnd0lDeUFHUVFFNkFBQU1CZ3NnQWlBTkVBMG9BZ0JIRFFVZ0FCQWxHaUFHUVFFNkFBQWdEU0FLSUEwUUNVRUJTeHNoQWd3R0N5QUFFQ0VnREJBTktBSUFSZ1JBSUFBUUpSb2dEQ0FLSUF3UUNVRUJTeHNoQWd3R0N5QUFFQ0VnRFJBTktBSUFSZ1JBSUFBUUpSb2dCa0VCT2dBQUlBMGdDaUFORUFsQkFVc2JJUUlNQmdzZ0JTQUZLQUlBUVFSeU5nSUFRUUFoQUF3REN5QUtJQUZCQWtseVJRUkFRUUFoQWlBVElBRkJBa1lnQ3kwQWUwRUFSM0Z5UlEwRkN5QUxJQTRRUURZQ0NDQUxRUkJxSUF0QkNHb1FxQUVoQWdKQUlBRkZEUUFnQVNBTGFpMEFkMEVCU3cwQUEwQUNRQ0FMSUE0UWJEWUNDQ0FDSUF0QkNHb1FXMFVOQUNBSFFZREFBQ0FDS0FJQUtBSUFFRTVGRFFBZ0FoQ1ZBUXdCQ3dzZ0N5QU9FRUEyQWdnZ0FpZ0NBQ0FMS0FJSWEwRUNkU0lDSUJBUUNVMEVRQ0FMSUJBUWJEWUNDQ0FMUVFocVFRQWdBbXNRbndJaEF5QVFFR3doQkNBT0VFQWhGQ01BUVNCcklnSWtBQ0FDSUFRMkFoQWdBaUFETmdJWUlBSWdGRFlDQ0FOQUFrQWdBa0VZYWlBQ1FSQnFFRnNpQTBVTkFDQUNLQUlZS0FJQUlBSW9BZ2dvQWdCSERRQWdBa0VZYWhDVkFTQUNRUWhxRUpVQkRBRUxDeUFDUVNCcUpBQWdBMEVCY3cwQkN5QUxJQTRRUURZQ0FDQUxRUWhxSUFzUXFBRWFJQXNnQ3lnQ0NEWUNFQXNnQ3lBTEtBSVFOZ0lJQTBBQ1FDQUxJQTRRYkRZQ0FDQUxRUWhxSUFzUVcwVU5BQ0FBSUF0QnFBUnFFRFpGRFFBZ0FCQWhJQXNvQWdnb0FnQkhEUUFnQUJBbEdpQUxRUWhxRUpVQkRBRUxDeUFTUlEwRElBc2dEaEJzTmdJQUlBdEJDR29nQ3hCYlJRMERJQVVnQlNnQ0FFRUVjallDQUVFQUlRQU1BZ3NEUUFKQUlBQWdDMEdvQkdvUU5rVU5BQUovSUFkQmdCQWdBQkFoSWdJUVRnUkFJQWtvQWdBaUF5QUxLQUtrQkVZRVFDQUlJQWtnQzBHa0JHb1FoZ0VnQ1NnQ0FDRURDeUFKSUFOQkJHbzJBZ0FnQXlBQ05nSUFJQVJCQVdvTUFRc2dFUkFKUlNBRVJYSU5BU0FDSUFzb0FuQkhEUUVnQ3lnQ2hBRWlBaUFMS0FLQUFVWUVRQ0FQSUF0QmhBRnFJQXRCZ0FGcUVJWUJJQXNvQW9RQklRSUxJQXNnQWtFRWFqWUNoQUVnQWlBRU5nSUFRUUFMSVFRZ0FCQWxHZ3dCQ3dzZ0JFVWdDeWdDaEFFaUFpQVBLQUlBUm5KRkJFQWdDeWdDZ0FFZ0FrWUVRQ0FQSUF0QmhBRnFJQXRCZ0FGcUVJWUJJQXNvQW9RQklRSUxJQXNnQWtFRWFqWUNoQUVnQWlBRU5nSUFDd0pBSUFzb0FoeEJBRXdOQUFKQUlBQWdDMEdvQkdvUUtFVUVRQ0FBRUNFZ0N5Z0NkRVlOQVFzZ0JTQUZLQUlBUVFSeU5nSUFRUUFoQUF3REN3TkFJQUFRSlJvZ0N5Z0NIRUVBVEEwQkFrQWdBQ0FMUWFnRWFoQW9SUVJBSUFkQmdCQWdBQkFoRUU0TkFRc2dCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0VDeUFKS0FJQUlBc29BcVFFUmdSQUlBZ2dDU0FMUWFRRWFoQ0dBUXNnQUJBaElRSWdDU0FKS0FJQUlnTkJCR28yQWdBZ0F5QUNOZ0lBSUFzZ0N5Z0NIRUVCYXpZQ0hBd0FDd0FMSUFvaEFpQUlLQUlBSUFrb0FnQkhEUU1nQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdCQ3dKQUlBcEZEUUJCQVNFRUEwQWdDaEFKSUFSTkRRRUNRQ0FBSUF0QnFBUnFFQ2hGQkVBZ0FCQWhJQW9nQkJDeEFTZ0NBRVlOQVFzZ0JTQUZLQUlBUVFSeU5nSUFRUUFoQUF3REN5QUFFQ1VhSUFSQkFXb2hCQXdBQ3dBTFFRRWhBQ0FQS0FJQUlBc29Bb1FCUmcwQVFRQWhBQ0FMUVFBMkFoQWdFU0FQS0FJQUlBc29Bb1FCSUF0QkVHb1FMU0FMS0FJUUJFQWdCU0FGS0FJQVFRUnlOZ0lBREFFTFFRRWhBQXNnRUJBS0dpQU5FQW9hSUF3UUNob2dEaEFLR2lBUkVBb2FJQThRSFNBTFFiQUVhaVFBSUFBUEN5QUtJUUlMSUFGQkFXb2hBUXdBQ3dBTEh3QWdBQ0FCRUtZQkVDY2dBUkNXQVNnQ0FDRUJJQUFRbGdFZ0FUWUNBQXMwQVFGL0l3QkJFR3NpQWlRQUlBSWdBQ2dDQURZQ0NDQUNJQUlvQWdnZ0FXbzJBZ2dnQWlnQ0NDRUFJQUpCRUdva0FDQUFDd29BSUFCQmlJZ0JFR1FMQ2dBZ0FFR1FpQUVRWkF2QkFRRUdmeU1BUVJCcklnUWtBQ0FBRUpZQktBSUFJUVVDZnlBQ0tBSUFJQUFvQWdCcklnTkIvLy8vL3dkSkJFQWdBMEVCZEF3QkMwRi9DeUlEUVFFZ0F4c2hBeUFCS0FJQUlRWWdBQ2dDQUNFSElBVkJOa1lFZjBFQUJTQUFLQUlBQ3lBREVKNEJJZ2dFUUNBRlFUWkhCRUFnQUJDbUFSb0xJQVJCTlRZQ0JDQUFJQVJCQ0dvZ0NDQUVRUVJxRUI0aUJSQ2xBaUFGRUIwZ0FTQUFLQUlBSUFZZ0IydHFOZ0lBSUFJZ0F5QUFLQUlBYWpZQ0FDQUVRUkJxSkFBUEN4QVhBQXNsQVFGL0lBRW9BZ0FRL3dKQkdIUkJHSFVoQWlBQUlBRW9BZ0EyQWdRZ0FDQUNPZ0FBQzU4UUFRcC9Jd0JCc0FScklnc2tBQ0FMSUFvMkFxUUVJQXNnQVRZQ3FBUWdDMEUyTmdKb0lBc2dDMEdJQVdvZ0MwR1FBV29nQzBIb0FHb2lBUkFlSWc4b0FnQWlDallDaEFFZ0N5QUtRWkFEYWpZQ2dBRWdBUkFSSVJFZ0MwSFlBR29RRVNFT0lBdEJ5QUJxRUJFaERDQUxRVGhxRUJFaERTQUxRU2hxRUJFaEVDTUFRUkJySWdFa0FDQUxBbjhnQWdSQUlBRWdBeENvQWlJQ0VHa2dDeUFCS0FJQU5nQjRJQUVnQWhCb0lBMGdBUkF3SUFFUUNob2dBU0FDRUVvZ0RDQUJFREFnQVJBS0dpQUxJQUlRU0RvQWR5QUxJQUlRT0RvQWRpQUJJQUlRTnlBUklBRVFNQ0FCRUFvYUlBRWdBaEJMSUE0Z0FSQXdJQUVRQ2hvZ0FoQm5EQUVMSUFFZ0F4Q25BaUlDRUdrZ0N5QUJLQUlBTmdCNElBRWdBaEJvSUEwZ0FSQXdJQUVRQ2hvZ0FTQUNFRW9nRENBQkVEQWdBUkFLR2lBTElBSVFTRG9BZHlBTElBSVFPRG9BZGlBQklBSVFOeUFSSUFFUU1DQUJFQW9hSUFFZ0FoQkxJQTRnQVJBd0lBRVFDaG9nQWhCbkN6WUNKQ0FCUVJCcUpBQWdDU0FJS0FJQU5nSUFJQVJCZ0FSeEloSkJDWFloRTBFQUlRRkJBQ0VDQTBBZ0FpRUtBa0FDUUFKQUFrQWdBVUVFUmcwQUlBQWdDMEdvQkdvUU1VVU5BRUVBSVFRQ1FBSkFBa0FDUUFKQUFrQWdDMEg0QUdvZ0FXb3NBQUFPQlFFQUJBTUZDUXNnQVVFRFJnMEhJQWRCZ01BQUlBQVFIeEJFQkVBZ0MwRVlhaUFBRUtvQ0lCQWdDeXdBR0JDaEFRd0NDeUFGSUFVb0FnQkJCSEkyQWdCQkFDRUFEQVlMSUFGQkEwWU5CZ3NEUUNBQUlBdEJxQVJxRURGRkRRWWdCMEdBd0FBZ0FCQWZFRVJGRFFZZ0MwRVlhaUFBRUtvQ0lCQWdDeXdBR0JDaEFRd0FDd0FMSUF3UUNVRUFJQTBRQ1d0R0RRUUNRQ0FNRUFrRVFDQU5FQWtOQVFzZ0RCQUpJUU1nQUJBZklRSWdBd1JBSUF4QkFCQUxMUUFBSUFKQi93RnhSZ1JBSUFBUUlob2dEQ0FLSUF3UUNVRUJTeHNoQWd3SUN5QUdRUUU2QUFBTUJnc2dEVUVBRUFzdEFBQWdBa0gvQVhGSERRVWdBQkFpR2lBR1FRRTZBQUFnRFNBS0lBMFFDVUVCU3hzaEFnd0dDeUFBRUI5Qi93RnhJQXhCQUJBTExRQUFSZ1JBSUFBUUlob2dEQ0FLSUF3UUNVRUJTeHNoQWd3R0N5QUFFQjlCL3dGeElBMUJBQkFMTFFBQVJnUkFJQUFRSWhvZ0JrRUJPZ0FBSUEwZ0NpQU5FQWxCQVVzYklRSU1CZ3NnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdEQ3lBS0lBRkJBa2x5UlFSQVFRQWhBaUFUSUFGQkFrWWdDeTBBZTBFQVIzRnlSUTBGQ3lBTElBNFFRRFlDRUNBTFFSaHFJQXRCRUdvUXFBRWhBZ0pBSUFGRkRRQWdBU0FMYWkwQWQwRUJTdzBBQTBBQ1FDQUxJQTRRYmpZQ0VDQUNJQXRCRUdvUVcwVU5BQ0FIUVlEQUFDQUNLQUlBTEFBQUVFUkZEUUFnQWhDWEFRd0JDd3NnQ3lBT0VFQTJBaEFnQWlnQ0FDQUxLQUlRYXlJQ0lCQVFDVTBFUUNBTElCQVFiallDRUNBTFFSQnFRUUFnQW1zUXBnSWhBeUFRRUc0aEJDQU9FRUFoRkNNQVFTQnJJZ0lrQUNBQ0lBUTJBaEFnQWlBRE5nSVlJQUlnRkRZQ0NBTkFBa0FnQWtFWWFpQUNRUkJxRUZzaUEwVU5BQ0FDS0FJWUxRQUFJQUlvQWdndEFBQkhEUUFnQWtFWWFoQ1hBU0FDUVFocUVKY0JEQUVMQ3lBQ1FTQnFKQUFnQTBFQmN3MEJDeUFMSUE0UVFEWUNDQ0FMUVJCcUlBdEJDR29RcUFFYUlBc2dDeWdDRURZQ0dBc2dDeUFMS0FJWU5nSVFBMEFDUUNBTElBNFFiallDQ0NBTFFSQnFJQXRCQ0dvUVcwVU5BQ0FBSUF0QnFBUnFFREZGRFFBZ0FCQWZRZjhCY1NBTEtBSVFMUUFBUncwQUlBQVFJaG9nQzBFUWFoQ1hBUXdCQ3dzZ0VrVU5BeUFMSUE0UWJqWUNDQ0FMUVJCcUlBdEJDR29RVzBVTkF5QUZJQVVvQWdCQkJISTJBZ0JCQUNFQURBSUxBMEFDUUNBQUlBdEJxQVJxRURGRkRRQUNmeUFIUVlBUUlBQVFIeUlDRUVRRVFDQUpLQUlBSWdNZ0N5Z0NwQVJHQkVBZ0NDQUpJQXRCcEFScUVLa0NJQWtvQWdBaEF3c2dDU0FEUVFGcU5nSUFJQU1nQWpvQUFDQUVRUUZxREFFTElCRVFDVVVnQkVWeURRRWdDeTBBZGlBQ1FmOEJjVWNOQVNBTEtBS0VBU0lDSUFzb0FvQUJSZ1JBSUE4Z0MwR0VBV29nQzBHQUFXb1FoZ0VnQ3lnQ2hBRWhBZ3NnQ3lBQ1FRUnFOZ0tFQVNBQ0lBUTJBZ0JCQUFzaEJDQUFFQ0lhREFFTEN5QUVSU0FMS0FLRUFTSUNJQThvQWdCR2NrVUVRQ0FMS0FLQUFTQUNSZ1JBSUE4Z0MwR0VBV29nQzBHQUFXb1FoZ0VnQ3lnQ2hBRWhBZ3NnQ3lBQ1FRUnFOZ0tFQVNBQ0lBUTJBZ0FMQWtBZ0N5Z0NKRUVBVEEwQUFrQWdBQ0FMUWFnRWFoQW1SUVJBSUFBUUgwSC9BWEVnQ3kwQWQwWU5BUXNnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdEQ3dOQUlBQVFJaG9nQ3lnQ0pFRUFUQTBCQWtBZ0FDQUxRYWdFYWhBbVJRUkFJQWRCZ0JBZ0FCQWZFRVFOQVFzZ0JTQUZLQUlBUVFSeU5nSUFRUUFoQUF3RUN5QUpLQUlBSUFzb0FxUUVSZ1JBSUFnZ0NTQUxRYVFFYWhDcEFnc2dBQkFmSVFJZ0NTQUpLQUlBSWdOQkFXbzJBZ0FnQXlBQ09nQUFJQXNnQ3lnQ0pFRUJhellDSkF3QUN3QUxJQW9oQWlBSUtBSUFJQWtvQWdCSERRTWdCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0JDd0pBSUFwRkRRQkJBU0VFQTBBZ0NoQUpJQVJORFFFQ1FDQUFJQXRCcUFScUVDWkZCRUFnQUJBZlFmOEJjU0FLSUFRUUN5MEFBRVlOQVFzZ0JTQUZLQUlBUVFSeU5nSUFRUUFoQUF3REN5QUFFQ0lhSUFSQkFXb2hCQXdBQ3dBTFFRRWhBQ0FQS0FJQUlBc29Bb1FCUmcwQVFRQWhBQ0FMUVFBMkFoZ2dFU0FQS0FJQUlBc29Bb1FCSUF0QkdHb1FMU0FMS0FJWUJFQWdCU0FGS0FJQVFRUnlOZ0lBREFFTFFRRWhBQXNnRUJBS0dpQU5FQW9hSUF3UUNob2dEaEFLR2lBUkVBb2FJQThRSFNBTFFiQUVhaVFBSUFBUEN5QUtJUUlMSUFGQkFXb2hBUXdBQ3dBTERBQWdBRUVCUVMwUXV3SWFDd3dBSUFCQkFVRXRFTzhCR2dzS0FDQUJJQUJyUVFKMUN3UUFJQUVMTlFFQmZ5TUFRUkJySWdJa0FDQUNJQUF0QUFBNkFBOGdBQ0FCTFFBQU9nQUFJQUVnQWtFUGFpMEFBRG9BQUNBQ1FSQnFKQUFMWkFFQmZ5TUFRUkJySWdZa0FDQUdRUUE2QUE4Z0JpQUZPZ0FPSUFZZ0JEb0FEU0FHUVNVNkFBd2dCUVJBSUFaQkRXb2dCa0VPYWhDd0Fnc2dBaUFCSUFFZ0FpZ0NBQkR1QWlBR1FReHFJQU1nQUNnQ0FCQUJJQUZxTmdJQUlBWkJFR29rQUF2eUFRRUZmeU1BUVJCcklnTWtBQ0FDUWdBM0FBQWdBa0lBTndBSUlBTWdBU2tBQ0RjRENDQURJQUVwQUFBM0F3QURRQ0FBSUFWcUlRWkJBQ0VCQTBBZ0JpMEFBRUVISUFGcmRrRUJjUVJBSUFJZ0F4Q2RBUXNnQXkwQUR5RUhJQU5CREdvaUJDQURMUUFMUVI5MElBUVFsQUZCQVhaeUVKTUJJQU5CQ0dvaUJDQURMUUFIUVI5MElBUVFsQUZCQVhaeUVKTUJJQU5CQkdvaUJDQURMUUFEUVI5MElBUVFsQUZCQVhaeUVKTUJJQU1nQXhDVUFVRUJkaENUQVNBSFFRRnhCRUFnQXlBRExRQUFRZUVCY3pvQUFBc2dBVUVCYWlJQlFRaEhEUUFMSUFWQkFXb2lCVUVRUncwQUN5QURRUkJxSkFBTFFRQWdBU0FDSUFNZ0JFRUVFRmdoQVNBRExRQUFRUVJ4UlFSQUlBQWdBVUhRRDJvZ0FVSHNEbW9nQVNBQlFlUUFTQnNnQVVIRkFFZ2JRZXdPYXpZQ0FBc0xRQUFnQWlBRElBQkJDR29nQUNnQ0NDZ0NCQkVBQUNJQUlBQkJvQUpxSUFVZ0JFRUFFTElCSUFCcklnQkJud0pNQkVBZ0FTQUFRUXh0UVF4dk5nSUFDd3RBQUNBQ0lBTWdBRUVJYWlBQUtBSUlLQUlBRVFBQUlnQWdBRUdvQVdvZ0JTQUVRUUFRc2dFZ0FHc2lBRUduQVV3RVFDQUJJQUJCREcxQkIyODJBZ0FMQzBFQUlBRWdBaUFESUFSQkJCQlpJUUVnQXkwQUFFRUVjVVVFUUNBQUlBRkIwQTlxSUFGQjdBNXFJQUVnQVVIa0FFZ2JJQUZCeFFCSUcwSHNEbXMyQWdBTEMwQUFJQUlnQXlBQVFRaHFJQUFvQWdnb0FnUVJBQUFpQUNBQVFhQUNhaUFGSUFSQkFCQzBBU0FBYXlJQVFaOENUQVJBSUFFZ0FFRU1iVUVNYnpZQ0FBc0xRQUFnQWlBRElBQkJDR29nQUNnQ0NDZ0NBQkVBQUNJQUlBQkJxQUZxSUFVZ0JFRUFFTFFCSUFCcklnQkJwd0ZNQkVBZ0FTQUFRUXh0UVFkdk5nSUFDd3NFQUVFQ0M2OEZBUXAvSXdCQkVHc2lDU1FBSUFZUU95RUtJQWtnQmhDTUFTSU5FRGNnQlNBRE5nSUFBa0FDUUNBQUlnY3RBQUFpQmtFcmF3NERBQUVBQVFzZ0NpQUdRUmgwUVJoMUVEMGhCaUFGSUFVb0FnQWlCMEVFYWpZQ0FDQUhJQVkyQWdBZ0FFRUJhaUVIQ3dKQUFrQWdBaUFISWdaclFRRk1EUUFnQnkwQUFFRXdSdzBBSUFjdEFBRkJJSEpCK0FCSERRQWdDa0V3RUQwaEJpQUZJQVVvQWdBaUNFRUVhallDQUNBSUlBWTJBZ0FnQ2lBSExBQUJFRDBoQmlBRklBVW9BZ0FpQ0VFRWFqWUNBQ0FJSUFZMkFnQWdCMEVDYWlJSElRWURRQ0FDSUFaTkRRSWdCaXdBQUJBV0VOZ0NSUTBDSUFaQkFXb2hCZ3dBQ3dBTEEwQWdBaUFHVFEwQklBWXNBQUFoQ0JBV0dpQUlFRVZGRFFFZ0JrRUJhaUVHREFBTEFBc0NRQ0FKRUVrRVFDQUtJQWNnQmlBRktBSUFFR01nQlNBRktBSUFJQVlnQjJ0QkFuUnFOZ0lBREFFTElBY2dCaEI1SUEwUU9DRU9JQWNoQ0FOQUlBWWdDRTBFUUNBRElBY2dBR3RCQW5ScUlBVW9BZ0FRclFFRkFrQWdDU0FMRUFzc0FBQkJBRXdOQUNBTUlBa2dDeEFMTEFBQVJ3MEFJQVVnQlNnQ0FDSU1RUVJxTmdJQUlBd2dEallDQUNBTElBc2dDUkFKUVFGclNXb2hDMEVBSVF3TElBb2dDQ3dBQUJBOUlROGdCU0FGS0FJQUloQkJCR28yQWdBZ0VDQVBOZ0lBSUFoQkFXb2hDQ0FNUVFGcUlRd01BUXNMQ3dKQUFrQURRQ0FDSUFaTkRRRWdCaTBBQUNJSFFTNUhCRUFnQ2lBSFFSaDBRUmgxRUQwaEJ5QUZJQVVvQWdBaUNFRUVhallDQUNBSUlBYzJBZ0FnQmtFQmFpRUdEQUVMQ3lBTkVFZ2hCeUFGSUFVb0FnQWlDMEVFYWlJSU5nSUFJQXNnQnpZQ0FDQUdRUUZxSVFZTUFRc2dCU2dDQUNFSUN5QUtJQVlnQWlBSUVHTWdCU0FGS0FJQUlBSWdCbXRCQW5ScUlnVTJBZ0FnQkNBRklBTWdBU0FBYTBFQ2RHb2dBU0FDUmhzMkFnQWdDUkFLR2lBSlFSQnFKQUFMdUFFQkJYOGpBRUVRYXlJSEpBQWpBRUVRYXlJRkpBQUNRQ0FCUWUvLy8vOERUUVJBQWtBZ0FVRUJUUVJBSUFBZ0FSQTZJQUFoQmd3QkN5QUFJQUFnQVJDQ0FVRUJhaUlERUlFQklnWVFUU0FBSUFNUVRDQUFJQUVRT1FzZ0JpRUVJQUVpQXdSL0lBTUVRQU5BSUFRZ0FqWUNBQ0FFUVFScUlRUWdBMEVCYXlJRERRQUxDMEVBQlNBRUN4b2dCVUVBTmdJTUlBWWdBVUVDZEdvZ0JVRU1haEF6SUFWQkVHb2tBQXdCQ3hBWEFBc2dCMEVRYWlRQUlBQUxtUVVCQ244akFFRVFheUlKSkFBZ0JoQXlJUW9nQ1NBR0VJNEJJZzBRTnlBRklBTTJBZ0FDUUFKQUlBQWlCeTBBQUNJR1FTdHJEZ01BQVFBQkN5QUtJQVpCR0hSQkdIVVFLU0VHSUFVZ0JTZ0NBQ0lIUVFGcU5nSUFJQWNnQmpvQUFDQUFRUUZxSVFjTEFrQUNRQ0FDSUFjaUJtdEJBVXdOQUNBSExRQUFRVEJIRFFBZ0J5MEFBVUVnY2tINEFFY05BQ0FLUVRBUUtTRUdJQVVnQlNnQ0FDSUlRUUZxTmdJQUlBZ2dCam9BQUNBS0lBY3NBQUVRS1NFR0lBVWdCU2dDQUNJSVFRRnFOZ0lBSUFnZ0Jqb0FBQ0FIUVFKcUlnY2hCZ05BSUFJZ0JrME5BaUFHTEFBQUVCWVEyQUpGRFFJZ0JrRUJhaUVHREFBTEFBc0RRQ0FDSUFaTkRRRWdCaXdBQUNFSUVCWWFJQWdRUlVVTkFTQUdRUUZxSVFZTUFBc0FDd0pBSUFrUVNRUkFJQW9nQnlBR0lBVW9BZ0FRYnlBRklBVW9BZ0FnQmlBSGEybzJBZ0FNQVFzZ0J5QUdFSGtnRFJBNElRNGdCeUVJQTBBZ0JpQUlUUVJBSUFNZ0J5QUFhMm9nQlNnQ0FCQjVCUUpBSUFrZ0RCQUxMQUFBUVFCTURRQWdDeUFKSUF3UUN5d0FBRWNOQUNBRklBVW9BZ0FpQzBFQmFqWUNBQ0FMSUE0NkFBQWdEQ0FNSUFrUUNVRUJhMGxxSVF4QkFDRUxDeUFLSUFnc0FBQVFLU0VQSUFVZ0JTZ0NBQ0lRUVFGcU5nSUFJQkFnRHpvQUFDQUlRUUZxSVFnZ0MwRUJhaUVMREFFTEN3c0RRQUpBSUFJZ0Jrc0VRQ0FHTFFBQUlnZEJMa2NOQVNBTkVFZ2hCeUFGSUFVb0FnQWlDRUVCYWpZQ0FDQUlJQWM2QUFBZ0JrRUJhaUVHQ3lBS0lBWWdBaUFGS0FJQUVHOGdCU0FGS0FJQUlBSWdCbXRxSWdVMkFnQWdCQ0FGSUFNZ0FTQUFhMm9nQVNBQ1JoczJBZ0FnQ1JBS0dpQUpRUkJxSkFBUEN5QUtJQWRCR0hSQkdIVVFLU0VISUFVZ0JTZ0NBQ0lJUVFGcU5nSUFJQWdnQnpvQUFDQUdRUUZxSVFZTUFBc0FDL1FCQVFsL0lBRVFEU0VFSUFFUUNTRUhJd0JCSUdzaUFTUUFBa0FnQVVFWWFpQUFFSVFESWdndEFBQkZEUUFnQVVFSWFpQUFFTUFCSVFrZ0FDQUFLQUlBUVF4cktBSUFhaUlGS0FJRUlRb0NRRUYvSUFVaUFpZ0NUQkJlUlFSQUlBSW9Ba3doQWd3QkN5QUNBbjhqQUVFUWF5SURKQUFnQTBFSWFpSUdJQUlRRHlBR0VESkJJQkFwSVFJZ0JoQU9JQU5CRUdva0FDQUNDellDVEFzZ0FrRVlkRUVZZFNFQ0lBRWdDU2dDQUNBRUlBUWdCMm9pQXlBRUlBcEJzQUZ4UVNCR0d5QURJQVVnQWhCV05nSVFJQUVvQWhBTkFDQUFJQUFvQWdCQkRHc29BZ0JxUVFVUWdBRUxJQWdRZ2dNZ0FVRWdhaVFBQ3pZQkFuOUI5QUVRR1NJQ0JIOGdBaUFBSUFGQkEzUVFpUU1pQUVFQVNBUkFJQUlRRUVFQUR3c2dBaUFBTmdMd0FTQUNCU0FEQ3d1ZEF3RUNmeU1BUWVBQ2F5SUFKQUFnQUNBQ05nTFFBaUFBSUFFMkF0Z0NJQU1RWENFR0lBTWdBRUhnQVdvUW1RRWhCeUFBUWRBQmFpQURJQUJCekFKcUVKZ0JJQUJCd0FGcUVCRWlBU0FCRUJNUURDQUFJQUZCQUJBTElnSTJBcndCSUFBZ0FFRVFhallDRENBQVFRQTJBZ2dEUUFKQUlBQkIyQUpxSUFCQjBBSnFFRFpGRFFBZ0FDZ0N2QUVnQVJBSklBSnFSZ1JBSUFFUUNTRURJQUVnQVJBSlFRRjBFQXdnQVNBQkVCTVFEQ0FBSUFNZ0FVRUFFQXNpQW1vMkFyd0JDeUFBUWRnQ2FoQWhJQVlnQWlBQVFid0JhaUFBUVFocUlBQW9Bc3dDSUFCQjBBRnFJQUJCRUdvZ0FFRU1haUFIRUlzQkRRQWdBRUhZQW1vUUpSb01BUXNMQWtBZ0FFSFFBV29RQ1VVTkFDQUFLQUlNSWdNZ0FFRVFhbXRCbndGS0RRQWdBQ0FEUVFScU5nSU1JQU1nQUNnQ0NEWUNBQXNnQlNBQ0lBQW9BcndCSUFRZ0JoREhBallDQUNBQVFkQUJhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkIyQUpxSUFCQjBBSnFFQ2dFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQXRnQ0lRSWdBUkFLR2lBQVFkQUJhaEFLR2lBQVFlQUNhaVFBSUFJTFZBRUNmeU1BUVJCcklnTWtBQ0FEUVFJMkFnd2dBaUFCRUFraUJFc0VRQkFYQUFzZ0FSQU5JUUVnQXlBRUlBSnJOZ0lFSUFBZ0FTQUNhaUFEUVF4cUlBTkJCR29Rb2dFb0FnQVE5Z0VnQTBFUWFpUUFDMElCQVg4akFFRVFheUlESkFBZ0F5QUJOZ0lNSUFNZ0FqWUNDQ0FESUFOQkRHb1FVaUVCSUFCQjh4c2dBeWdDQ0JEaUFpRUFJQUVRVVNBRFFSQnFKQUFnQUFzWUFDQUFJQUFvQWdCQkRHc29BZ0JxUVFJUkFBQWFJQUFMc1FJQ0JINEZmeU1BUVNCcklnZ2tBQUpBQWtBQ1FDQUJJQUpIQkVCQjFJRUJLQUlBSVF4QjFJRUJRUUEyQWdBakFFRVFheUlKSkFBUUZob2pBRUVRYXlJS0pBQWpBRUVRYXlJTEpBQWdDeUFCSUFoQkhHcEJBaERZQVNBTEtRTUFJUVFnQ2lBTEtRTUlOd01JSUFvZ0JEY0RBQ0FMUVJCcUpBQWdDaWtEQUNFRUlBa2dDaWtEQ0RjRENDQUpJQVEzQXdBZ0NrRVFhaVFBSUFrcEF3QWhCQ0FJSUFrcEF3ZzNBeEFnQ0NBRU53TUlJQWxCRUdva0FDQUlLUU1RSVFRZ0NDa0RDQ0VGUWRTQkFTZ0NBQ0lCUlEwQklBZ29BaHdnQWtjTkFpQUZJUVlnQkNFSElBRkJ4QUJIRFFNTUFnc2dBMEVFTmdJQURBSUxRZFNCQVNBTU5nSUFJQWdvQWh3Z0FrWU5BUXNnQTBFRU5nSUFJQVloQlNBSElRUUxJQUFnQlRjREFDQUFJQVEzQXdnZ0NFRWdhaVFBQzdZQkFnSjhBMzhqQUVFUWF5SUZKQUFDUUFKQUFrQWdBQ0FCUndSQVFkU0JBU2dDQUNFSFFkU0JBVUVBTmdJQUVCWWFJd0JCRUdzaUJpUUFJQVlnQUNBRlFReHFRUUVRMkFFZ0Jpa0RBQ0FHS1FNSUVOMEJJUU1nQmtFUWFpUUFRZFNCQVNnQ0FDSUFSUTBCSUFVb0Fnd2dBVWNOQWlBRElRUWdBRUhFQUVjTkF3d0NDeUFDUVFRMkFnQU1BZ3RCMUlFQklBYzJBZ0FnQlNnQ0RDQUJSZzBCQ3lBQ1FRUTJBZ0FnQkNFREN5QUZRUkJxSkFBZ0F3dTJBUUlDZlFOL0l3QkJFR3NpQlNRQUFrQUNRQUpBSUFBZ0FVY0VRRUhVZ1FFb0FnQWhCMEhVZ1FGQkFEWUNBQkFXR2lNQVFSQnJJZ1lrQUNBR0lBQWdCVUVNYWtFQUVOZ0JJQVlwQXdBZ0Jpa0RDQkRrQWlFRElBWkJFR29rQUVIVWdRRW9BZ0FpQUVVTkFTQUZLQUlNSUFGSERRSWdBeUVFSUFCQnhBQkhEUU1NQWdzZ0FrRUVOZ0lBREFJTFFkU0JBU0FITmdJQUlBVW9BZ3dnQVVZTkFRc2dBa0VFTmdJQUlBUWhBd3NnQlVFUWFpUUFJQU1MeGdFQ0EzOEJmaU1BUVJCcklnUWtBQUorQWtBQ1FDQUFJQUZIQkVBQ1FBSkFJQUF0QUFBaUJVRXRSdzBBSUFCQkFXb2lBQ0FCUncwQURBRUxRZFNCQVNnQ0FDRUdRZFNCQVVFQU5nSUFJQUFnQkVFTWFpQURFQllRMlFFaEJ3SkFRZFNCQVNnQ0FDSUFCRUFnQkNnQ0RDQUJSdzBCSUFCQnhBQkdEUVFNQlF0QjFJRUJJQVkyQWdBZ0JDZ0NEQ0FCUmcwRUN3c0xJQUpCQkRZQ0FFSUFEQUlMSUFKQkJEWUNBRUovREFFTFFnQWdCMzBnQnlBRlFTMUdHd3NoQnlBRVFSQnFKQUFnQnd2WEFRSURmd0YrSXdCQkVHc2lCQ1FBQW44Q1FBSkFBa0FnQUNBQlJ3UkFBa0FDUUNBQUxRQUFJZ1ZCTFVjTkFDQUFRUUZxSWdBZ0FVY05BQXdCQzBIVWdRRW9BZ0FoQmtIVWdRRkJBRFlDQUNBQUlBUkJER29nQXhBV0VOa0JJUWNDUUVIVWdRRW9BZ0FpQUFSQUlBUW9BZ3dnQVVjTkFTQUFRY1FBUmcwRkRBUUxRZFNCQVNBR05nSUFJQVFvQWd3Z0FVWU5Bd3NMQ3lBQ1FRUTJBZ0JCQUF3REN5QUhRdi8vLy84UFdBMEJDeUFDUVFRMkFnQkJmd3dCQzBFQUlBZW5JZ0JySUFBZ0JVRXRSaHNMSVFBZ0JFRVFhaVFBSUFBTGtnTUJBWDhqQUVHUUFtc2lBQ1FBSUFBZ0FqWUNnQUlnQUNBQk5nS0lBaUFERUZ3aEJpQUFRZEFCYWlBRElBQkIvd0ZxRUpvQklBQkJ3QUZxRUJFaUFTQUJFQk1RRENBQUlBRkJBQkFMSWdJMkFyd0JJQUFnQUVFUWFqWUNEQ0FBUVFBMkFnZ0RRQUpBSUFCQmlBSnFJQUJCZ0FKcUVERkZEUUFnQUNnQ3ZBRWdBUkFKSUFKcVJnUkFJQUVRQ1NFRElBRWdBUkFKUVFGMEVBd2dBU0FCRUJNUURDQUFJQU1nQVVFQUVBc2lBbW8yQXJ3QkN5QUFRWWdDYWhBZklBWWdBaUFBUWJ3QmFpQUFRUWhxSUFBc0FQOEJJQUJCMEFGcUlBQkJFR29nQUVFTWFrSGcwQUFRalFFTkFDQUFRWWdDYWhBaUdnd0JDd3NDUUNBQVFkQUJhaEFKUlEwQUlBQW9BZ3dpQXlBQVFSQnFhMEdmQVVvTkFDQUFJQU5CQkdvMkFnd2dBeUFBS0FJSU5nSUFDeUFGSUFJZ0FDZ0N2QUVnQkNBR0VNY0NOZ0lBSUFCQjBBRnFJQUJCRUdvZ0FDZ0NEQ0FFRUMwZ0FFR0lBbW9nQUVHQUFtb1FKZ1JBSUFRZ0JDZ0NBRUVDY2pZQ0FBc2dBQ2dDaUFJaEFpQUJFQW9hSUFCQjBBRnFFQW9hSUFCQmtBSnFKQUFnQWd2Y0FRSURmd0YrSXdCQkVHc2lCQ1FBQW44Q1FBSkFBa0FnQUNBQlJ3UkFBa0FDUUNBQUxRQUFJZ1ZCTFVjTkFDQUFRUUZxSWdBZ0FVY05BQXdCQzBIVWdRRW9BZ0FoQmtIVWdRRkJBRFlDQUNBQUlBUkJER29nQXhBV0VOa0JJUWNDUUVIVWdRRW9BZ0FpQUFSQUlBUW9BZ3dnQVVjTkFTQUFRY1FBUmcwRkRBUUxRZFNCQVNBR05nSUFJQVFvQWd3Z0FVWU5Bd3NMQ3lBQ1FRUTJBZ0JCQUF3REN5QUhRdi8vQTFnTkFRc2dBa0VFTmdJQVFmLy9Bd3dCQzBFQUlBZW5JZ0JySUFBZ0JVRXRSaHNMSVFBZ0JFRVFhaVFBSUFCQi8vOERjUXUyQVFJQmZnSi9Jd0JCRUdzaUJTUUFBa0FDUUNBQUlBRkhCRUJCMUlFQktBSUFJUVpCMUlFQlFRQTJBZ0FnQUNBRlFReHFJQU1RRmhEUEFpRUVBa0JCMUlFQktBSUFJZ0FFUUNBRktBSU1JQUZIRFFFZ0FFSEVBRVlOQXd3RUMwSFVnUUVnQmpZQ0FDQUZLQUlNSUFGR0RRTUxDeUFDUVFRMkFnQkNBQ0VFREFFTElBSkJCRFlDQUNBRVFnQlZCRUJDLy8vLy8vLy8vLy8vQUNFRURBRUxRb0NBZ0lDQWdJQ0FnSDhoQkFzZ0JVRVFhaVFBSUFRTHd3RUNBbjhCZmlNQVFSQnJJZ1FrQUFKL0FrQUNRQ0FBSUFGSEJFQkIxSUVCS0FJQUlRVkIxSUVCUVFBMkFnQWdBQ0FFUVF4cUlBTVFGaERQQWlFR0FrQkIxSUVCS0FJQUlnQUVRQ0FFS0FJTUlBRkhEUUVnQUVIRUFFWU5CQXdEQzBIVWdRRWdCVFlDQUNBRUtBSU1JQUZHRFFJTEN5QUNRUVEyQWdCQkFBd0NDeUFHUW9DQWdJQjRVeUFHUXYvLy8vOEhWWElOQUNBR3B3d0JDeUFDUVFRMkFnQkIvLy8vL3djZ0JrSUFWUTBBR2tHQWdJQ0FlQXNoQUNBRVFSQnFKQUFnQUF2bUFnRUVmeUFBUVVCcklnTkJ2Q2cyQWdBZ0EwSDBJVFlDQUNBQVFmd2xOZ0lBSUFOQnBDWTJBZ0FnQUVHUUpqWUNDQ0FBUWJRbUtBSUFJZ0UyQWdBZ0FDQUJRUXhyS0FJQWFrRzRKaWdDQURZQ0FDQUFRUUEyQWdRZ0FDQUFLQUlBUVF4cktBSUFhaUlDUVFBMkFoUWdBaUFBUVF4cUlnRTJBaGdnQWtFQU5nSU1JQUpDZ3FDQWdPQUFOd0lFSUFJZ0FVVTJBaEFnQWtFZ2FrRUFRU2dRUmhvZ0FrRWNhaENQQWlBQ1FRQTJBa2dnQWtGL05nSk1JQUJCQ0dvaUFrRzhKaWdDQUNJRU5nSUFJQUlnQkVFTWF5Z0NBR3BCd0NZb0FnQTJBZ0FnQUVHd0ppZ0NBQ0lDTmdJQUlBQWdBa0VNYXlnQ0FHcEJ4Q1lvQWdBMkFnQWdBRUhJSmlnQ0FEWUNDQ0FBUWZ3bE5nSUFJQU5CcENZMkFnQWdBRUdRSmpZQ0NDQUJRYndmTmdJQUlBRkJCR29RandJZ0FVSUFOd0lZSUFGQ0FEY0NFQ0FCUWdBM0FnZ2dBVUcwSVRZQ0FDQUJRU0JxRUJFYUlBRkJHRFlDTUNBQlFRQTJBaXdnQUFzS0FDQUJJQUJyUVF4dEM1UUJBUVIvSXdCQkVHc2lCU1FBSUFFZ0FoQ2lBaUlFUWUvLy8vOERUUVJBQWtBZ0JFRUJUUVJBSUFBZ0JCQTZJQUFoQXd3QkN5QUFJQUFnQkJDQ0FVRUJhaUlHRUlFQklnTVFUU0FBSUFZUVRDQUFJQVFRT1FzRFFDQUJJQUpIQkVBZ0F5QUJFRE1nQTBFRWFpRURJQUZCQkdvaEFRd0JDd3NnQlVFQU5nSU1JQU1nQlVFTWFoQXpJQVZCRUdva0FBOExFQmNBQ3hZQUlBQWdBU0FDUW9DQWdJQ0FnSUNBZ0g4UTBBSUxrZ1FDQjM4RWZpTUFRUkJySWdna0FBSkFBa0FDUUNBQ1FTUk1CRUFnQUMwQUFDSUZEUUVnQUNFRURBSUxRZFNCQVVFY05nSUFRZ0FoQXd3Q0N5QUFJUVFDUUFOQUlBVkJHSFJCR0hVUWNFVU5BU0FFTFFBQklRVWdCRUVCYWlFRUlBVU5BQXNNQVFzQ1FDQUVMUUFBSWdWQksyc09Bd0FCQUFFTFFYOUJBQ0FGUVMxR0d5RUhJQVJCQVdvaEJBc0Nmd0pBSUFKQmIzRU5BQ0FFTFFBQVFUQkhEUUJCQVNFSklBUXRBQUZCM3dGeFFkZ0FSZ1JBSUFSQkFtb2hCRUVRREFJTElBUkJBV29oQkNBQ1FRZ2dBaHNNQVFzZ0FrRUtJQUliQ3lJS3JDRU1RUUFoQWdOQUFrQkJVQ0VGQWtBZ0JDd0FBQ0lHUVRCclFmOEJjVUVLU1EwQVFhbC9JUVVnQmtIaEFHdEIvd0Z4UVJwSkRRQkJTU0VGSUFaQndRQnJRZjhCY1VFWlN3MEJDeUFGSUFacUlnWWdDazROQUNBSUlBeENBQ0FMUWdBUUswRUJJUVVDUUNBSUtRTUlRZ0JTRFFBZ0N5QU1maUlOSUFhc0lnNUNmNFZXRFFBZ0RTQU9mQ0VMUVFFaENTQUNJUVVMSUFSQkFXb2hCQ0FGSVFJTUFRc0xJQUVFUUNBQklBUWdBQ0FKR3pZQ0FBc0NRQUpBSUFJRVFFSFVnUUZCeEFBMkFnQWdCMEVBSUFOQ0FZTWlERkFiSVFjZ0F5RUxEQUVMSUFNZ0MxWU5BU0FEUWdHRElRd0xJQXluSUFkeVJRUkFRZFNCQVVIRUFEWUNBQ0FEUWdGOUlRTU1BZ3NnQXlBTFdnMEFRZFNCQVVIRUFEWUNBQXdCQ3lBTElBZXNJZ09GSUFOOUlRTUxJQWhCRUdva0FDQURDekVCQVg5QjJJWUJLQUlBSVFFZ0FBUkFRZGlHQVVIb2hRRWdBQ0FBUVg5R0d6WUNBQXRCZnlBQklBRkI2SVVCUmhzTHJRZ0JCWDhnQVNnQ0FDRUVBa0FDUUFKQUFrQUNRQUpBQWtBQ2Z3SkFBa0FDUUFKQUlBTkZEUUFnQXlnQ0FDSUdSUTBBSUFCRkJFQWdBaUVEREFNTElBTkJBRFlDQUNBQ0lRTU1BUXNDUUVIWWhnRW9BZ0FvQWdCRkJFQWdBRVVOQVNBQ1JRME1JQUloQmdOQUlBUXNBQUFpQXdSQUlBQWdBMEgvdndOeE5nSUFJQUJCQkdvaEFDQUVRUUZxSVFRZ0JrRUJheUlHRFFFTURnc0xJQUJCQURZQ0FDQUJRUUEyQWdBZ0FpQUdhdzhMSUFJaEF5QUFSUTBEREFVTElBUVFrZ0VQQzBFQklRVU1Bd3RCQUF3QkMwRUJDeUVGQTBBZ0JVVUVRQ0FFTFFBQVFRTjJJZ1ZCRUdzZ0JrRWFkU0FGYW5KQkIwc05Bd0ovSUFSQkFXb2lCU0FHUVlDQWdCQnhSUTBBR2lBRkxRQUFRY0FCY1VHQUFVY0VRQ0FFUVFGcklRUU1Cd3NnQkVFQ2FpSUZJQVpCZ0lBZ2NVVU5BQm9nQlMwQUFFSEFBWEZCZ0FGSEJFQWdCRUVCYXlFRURBY0xJQVJCQTJvTElRUWdBMEVCYXlFRFFRRWhCUXdCQ3dOQUFrQWdCRUVEY1NBRUxRQUFJZ1pCQVd0Qi9nQkxjZzBBSUFRb0FnQWlCa0dCZ29RSWF5QUdja0dBZ1lLRWVIRU5BQU5BSUFOQkJHc2hBeUFFS0FJRUlRWWdCRUVFYWlFRUlBWWdCa0dCZ29RSWEzSkJnSUdDaEhoeFJRMEFDd3NnQmtIL0FYRWlCVUVCYTBIK0FFMEVRQ0FEUVFGcklRTWdCRUVCYWlFRURBRUxDeUFGUWNJQmF5SUZRVEpMRFFNZ0JFRUJhaUVFSUFWQkFuUkJ3Q3RxS0FJQUlRWkJBQ0VGREFBTEFBc0RRQ0FGUlFSQUlBTkZEUWNEUUFKQUFrQUNRQ0FFTFFBQUlnVkJBV3NpQjBIK0FFc0VRQ0FGSVFZTUFRc2dCRUVEY1NBRFFRVkpjZzBCQWtBRFFDQUVLQUlBSWdaQmdZS0VDR3NnQm5KQmdJR0NoSGh4RFFFZ0FDQUdRZjhCY1RZQ0FDQUFJQVF0QUFFMkFnUWdBQ0FFTFFBQ05nSUlJQUFnQkMwQUF6WUNEQ0FBUVJCcUlRQWdCRUVFYWlFRUlBTkJCR3NpQTBFRVN3MEFDeUFFTFFBQUlRWUxJQVpCL3dGeElnVkJBV3NoQndzZ0IwSCtBRXNOQVFzZ0FDQUZOZ0lBSUFCQkJHb2hBQ0FFUVFGcUlRUWdBMEVCYXlJRERRRU1DUXNMSUFWQndnRnJJZ1ZCTWtzTkF5QUVRUUZxSVFRZ0JVRUNkRUhBSzJvb0FnQWhCa0VCSVFVTUFRc2dCQzBBQUNJRlFRTjJJZ2RCRUdzZ0J5QUdRUnAxYW5KQkIwc05BUUpBQWtBQ2Z5QUVRUUZxSWdjZ0JVR0FBV3NnQmtFR2RISWlCVUVBVGcwQUdpQUhMUUFBUVlBQmF5SUhRVDlMRFFFZ0JFRUNhaUlJSUFjZ0JVRUdkSElpQlVFQVRnMEFHaUFJTFFBQVFZQUJheUlIUVQ5TERRRWdCeUFGUVFaMGNpRUZJQVJCQTJvTElRUWdBQ0FGTmdJQUlBTkJBV3NoQXlBQVFRUnFJUUFNQVF0QjFJRUJRUmsyQWdBZ0JFRUJheUVFREFVTFFRQWhCUXdBQ3dBTElBUkJBV3NoQkNBR0RRRWdCQzBBQUNFR0N5QUdRZjhCY1EwQUlBQUVRQ0FBUVFBMkFnQWdBVUVBTmdJQUN5QUNJQU5yRHd0QjFJRUJRUmsyQWdBZ0FFVU5BUXNnQVNBRU5nSUFDMEYvRHdzZ0FTQUVOZ0lBSUFJTEl3RUNmeUFBSVFFRFFDQUJJZ0pCQkdvaEFTQUNLQUlBRFFBTElBSWdBR3RCQW5VTERnQWdBQkRmQWdSQUlBQVFFQXNMVXdFRWZ3SkFJQUZCQUV3TkFDQUJRUUZySWdSRkRRQURRQ0FBSUFKcUlnTXRBQUFoQlNBRElBQWdBa0VCY21vaUF5MEFBRG9BQUNBRElBVTZBQUFnQWtFQ2FpSUNJQUZPRFFFZ0FpQUVSdzBBQ3dzTExBRUJmeU1BUVJCcklnSWtBQ0FDSUFFMkFnd2dBRUhrQUVIdUhDQUJFTFVCSVFBZ0FrRVFhaVFBSUFBTEtRRUJmeU1BUVJCcklnSWtBQ0FDSUFFMkFnd2dBRUgwSENBQkVPSUNJUUFnQWtFUWFpUUFJQUFMRmdBZ0FCQkZRUUJISUFCQklISkI0UUJyUVFaSmNndThBZ0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBRkJDV3NPRWdBSUNRb0lDUUVDQXdRS0NRb0tDQWtGQmdjTElBSWdBaWdDQUNJQlFRUnFOZ0lBSUFBZ0FTZ0NBRFlDQUE4TElBSWdBaWdDQUNJQlFRUnFOZ0lBSUFBZ0FUSUJBRGNEQUE4TElBSWdBaWdDQUNJQlFRUnFOZ0lBSUFBZ0FUTUJBRGNEQUE4TElBSWdBaWdDQUNJQlFRUnFOZ0lBSUFBZ0FUQUFBRGNEQUE4TElBSWdBaWdDQUNJQlFRUnFOZ0lBSUFBZ0FURUFBRGNEQUE4TElBSWdBaWdDQUVFSGFrRjRjU0lCUVFocU5nSUFJQUFnQVNzREFEa0RBQThMSUFBZ0FrRXpFUU1BQ3c4TElBSWdBaWdDQUNJQlFRUnFOZ0lBSUFBZ0FUUUNBRGNEQUE4TElBSWdBaWdDQUNJQlFRUnFOZ0lBSUFBZ0FUVUNBRGNEQUE4TElBSWdBaWdDQUVFSGFrRjRjU0lCUVFocU5nSUFJQUFnQVNrREFEY0RBQXYrRkFFT2Z5TUFRVUJxSWdNa0FDQURRUUEyQWhBZ0EwRUFOZ0lNSUFOQkFEWUNDQ0FEUVFBMkFnUWdBeUFEUVJCcUlnUTJBaFFnQXlBRFFReHFJZ2cyQWhnZ0F5Z0NGQm9nQXlBRFFRaHFJZ28yQWh3Z0F5Z0NHQm9nQXlBRFFRUnFJZ1kyQWlBZ0F5Z0NIQm9nQXlnQ0lCb2pBRUVRYXlJSEpBQWdCaUFBTFFBQ0lBQXRBQUVnQUMwQUFITnpRUmgwUVJoMUlnVkJNSE1nQlVFQmRFR2ZmM0pxUVFGcUlnVTJBZ0FnQ2lBRlFYOXpJQUZ4SUFVZ0FVRi9jeUlNY1dzaUJVRitjaUFGUVg1eGFrRUJhaUlGTmdJQUlBUWdCUkFaTmdJQUlBZ2dCaWdDQUNJSkVCazJBZ0FEUUFKQVFiM3UrYUYrSVFVRFFBSkFBa0FnQlVHODd2bWhma3dFUUNBRlFlM3NoT041UmcwQklBVkJpYTNOMjN4R0RRSWdCVUdJaFlMY2ZFY05BeUFIUVJCcUpBQU1CQXNnQlVIMmpvYlZCRWNFUUNBRlFacWVvOGtEUmdSQVFRQWhDMEh0N0lUamVTRUZEQVFMSUFWQnZlNzVvWDVIRFFNZ0J5QUpOZ0lJUWZhT2h0VUVRWnFlbzhrRElBY29BZ2hCQUVvYklRVU1Bd3NnQmlnQ0FDSUZRWDl6SUFGeElBVWdESEZySWdsQmZuTWdDVUVCZEVGOGNXb2dBR290QUFFaERTQUlLQUlBSUFVZ0J5Z0NDR3RxSUFBZ0J5Z0NDQ0lGUVg5eklBRnhRUUYwSUFFZ0JYTnJhaTBBQUNBQUlBbHFRUUpyTFFBQUlBMXpjem9BQUNBSEtBSUlRUUZySVFrTUJBc2dCeUFMTmdJTVFZbXR6ZHQ4UVlpRmd0eDhJQW9vQWdBZ0J5Z0NERW9iSVFVTUFRc2dCQ2dDQUNBSEtBSU1haUFBSUFjb0FneEJBV29pQzJvdEFBQTZBQUJCN2V5RTQza2hCUXdBQ3dBTEN5QURJQU1vQWd4QnJ4NGdBeWdDQkJDK0FUWUNKRUhOdXZhZUJTRUFBMEFDUUFKQUFrQUNRQUpBQWtBQ1FDQUFRY3J3cWFJQlRBUkFJQUJCL2JYYTczNU1CRUFnQUVHUjFZdVVlMFlOQnlBQVFjMlY2OXA3UmcwRElBQkJnTkhuL1h4SERRbEJrZFdMbEhzaEFFRUFJUUVNQ1FzZ0FFSCt0ZHJ2ZmtZTkJDQUFRYTZtMC9ZQVJnMEJJQUJCMGFDNUdFY05DQ0FES0FJUUVCQWdBeWdDREJBUUlBTW9BaUFhSUFNb0Fod2FJQU1vQWhnYUlBTW9BaFFhSUFNb0Fpd2hBQ0FEUVVCckpBQWdBQThMSUFCQjc0VHI5UUpNQkVBZ0FFSEw4S21pQVVZTkJ5QUFRWXpBeW9BQ1J3MElJQU1vQWhBaENDQURLQUlJSVE1QkFDRUpRUUFoQ2tFQUlRVkJBQ0VIUVFBaEN5TUFRUkJySWdRa0FFR1NtT3pEQlVHNzdMeUlCQ0FDR3lFR1FkVUFJUXhCK2dFaERRTkFBa0JCNXFxZmVpRUFBMEFDUUFKQUFrQUNRQUpBSUFCQnBOV0Q5Z0ZNQkVBZ0FFSG95cEM1ZkV3RVFDQUFRZmkxK1B0NVJnMEdJQUJCNU5DV3QzcEdEUVVnQUVHWTllM09lVWNOQnlBRVFSQnFKQUFNQ0FzZ0FFSHB5cEM1ZkVZTkFTQUFRZWFxbjNwSERRWWdCQ0FKTmdJRUlBUWdEVG9BQ3lBRUlBdzZBQXhCNmNxUXVYeEJtUFh0em5rZ0JDZ0NCQ0FPU0JzaEFBd0dDeUFBUWJEdGlya0VUQVJBSUFCQnBkV0Q5Z0ZHRFFJZ0FFRzc3THlJQkVjTkJrSDR0Zmo3ZVNFQUlBUXNBQTBnQkNnQ0JCRG9BaUVLREFZTElBQkJzZTJLdVFSR0RRSWdBRUdTbU96REJVY05CVUg0dGZqN2VTRUFJQVFzQUEwZ0JDZ0NCQkRoQWlFS0RBVUxRYVhWZy9ZQlFiSHRpcmtFSUFRb0FnUkJBbTlCQVVZYklRQU1CQXNnQ0NBRUtBSUVhaTBBQUNJRklBUXRBQXh6SVFkQjVOQ1d0M29oQUNBRUxRQUxJUXNNQXdzZ0NDQUVLQUlFYWkwQUFDSUxJQVF0QUF0eklRZEI1TkNXdDNvaEFDQUVMUUFNSVFVTUFnc2dCQ0FMT2dBT0lBUWdCem9BRFNBRUlBVTZBQThnQmlFQURBRUxDeUFJSUFRb0FnUnFJQW82QUFBZ0JDZ0NCRUVCYWlFSklBUXRBQThoRENBRUxRQU9JUTBNQVFzTFFmQ0U2L1VDSVFBTUNBc2dBRUh3aE92MUFrWU5BaUFBUVpqWHFwRURSZzBFSUFCQnpicjJuZ1ZIRFFkQnJxYlQ5Z0JCelpYcjJuc2dBeWdDSkJzaEFBd0hDMEdNd01xQUFrSE5sZXZhZXlBREtBSU1RYlllSUFNb0FnUVF2Z0ViSVFBTUJnc2dBeWdDRUNFSUlBTW9BZ2doQlVFQUlRcEJBQ0VOUVFBaEIwRUFJUXRCQUNFSlFRQWhEQ01BUVJCcklnUWtBQ0FJSUFVUTFRSkJzcWJiaXdSQnV2K0RvbmtnQWhzaEJrSFZBQ0VPUWZvQklROERRQUpBUWJTVzBib0NJUUFEUUFKQUFrQUNRQ0FBUWJPVzBib0NUQVJBSUFCQnBmSGEyMzFNQkVBZ0FFRzYvNE9pZVVZTkJDQUFRWi9VbnBoN1JnMERJQUJCMCtpNjQzaEhEUVVnQ0NBRkVOVUNJQVJCRUdva0FBd0dDeUFBUWFieDJ0dDlSZzBCSUFCQmc2YVpyUUZIRFFSQmw0WGN2Z1JCcHZIYTIzMGdCQ2dDQkVFQ2IwRUJSaHNoQUF3RUN3SkFBa0FnQUVHV2hkeStCRXdFUUNBQVFiU1cwYm9DUmcwQklBQkJzcWJiaXdSSERRWkIvN0xsbHdVaEFDQUVMQUFOSUFRb0FnUVE0UUloQ2d3R0N5QUFRWmVGM0w0RVJnMEJJQUJCLzdMbGx3VkhEUVVnQ0NBRUtBSUVhaUFFTFFBTUlnQWdDbk1nQUNBS1FYOXpjVUVCZEdzNkFBQWdCQ2dDQkVFQmFpRU5JQVF0QUE4aERpQUVMUUFPSVE4TUJ3c2dCQ0FOTmdJRUlBUWdEem9BQ2lBRUlBNDZBQXRCZzZhWnJRRkIwK2k2NDNnZ0JDZ0NCQ0FGU0JzaEFBd0VDeUFJSUFRb0FnUnFMUUFBSWdjZ0JDMEFDM01oQzBHZjFKNllleUVBSUFRdEFBb2hDU0FFTFFBS0lRd01Bd3NnQ0NBRUtBSUVhaTBBQUNJSklBUXRBQXB6SVF0Qm45U2VtSHNoQUNBRUxRQUxJUWNnQkMwQUN5RU1EQUlMSUFRZ0N6b0FEU0FFSUF3NkFBd2dCQ0FKT2dBT0lBUWdCem9BRHlBR0lRQU1BUXRCLzdMbGx3VWhBQ0FFTEFBTklBUW9BZ1FRNkFJaENnd0FDd0FMQzBId2hPdjFBaUVBREFVTElBTUNmMEVBSVFRakFFRVFheUlHSUFNb0FoQXNBQUEyQWdnZ0JpQUdLQUlJUVM5S09nQU9JQVlnQmlnQ0NFRTZTRG9BRDBHTTRKU0NlaUVBQTBBQ1FDQUFRYXpjaDRoN1RBUkFJQUJCbGVyQnVuaEdCRUJCL3dFaEJFR3QzSWVJZXlFQURBTUxJQUJCak9DVWducEdEUUVnQUVHOG9PZkxla2NOQWlBR0tBSUlJZ0JCNFFCeklBQkJBWFJCdlg1eWFrRUJhaUlBUVFGMFFSUnhJQUJCQ25OcUlRUkJyZHlIaUhzaEFBd0NDeUFBUWEzY2g0aDdSd1JBSUFCQm1xWDQ2d0pIQkVBZ0FFSEE0ckRDQTBjTkF5QUdLQUlJSWdCQnp3RnlJQUJCendGeGFrRUJhaUVFUWEzY2g0aDdJUUFNQXd0QnZLRG55M3BCbGVyQnVuZ2dCaWdDQ0VIN0FFZ2JRWlhxd2JwNElBWW9BZ2hCNEFCS0d5RUFEQUlMSUFSQkdIUkJHSFVNQWd0QndPS3d3Z05CbXFYNDZ3SWdCaTBBRDBFQmNSdEJtcVg0NndJZ0JpMEFEa0VCY1JzaEFBd0FDd0FMSWdBMkFnUWdBeUFES0FJSUlnWWdBRUYvYzNFZ0FDQUdRWDl6Y1dzaUJrRitjaUFHUVg1eGFrRUJhallDS0NBRElBWVFHVFlDTENBRElBQkJBWFJCQW5FZ0FFRUJjMm9RR1RZQ01FRUFJUkFnQXlnQ0tDQURLQUlzYWtFQU9nQUFJQU1vQWdRZ0F5Z0NNR3BCQURvQUFFSCt0ZHJ2ZmlFQURBUUxJQU1nRURZQ09FR1kxNnFSQTBHQTBlZjlmQ0FES0FJb0lBTW9BamhLR3lFQURBTUxJQU1vQWl3Z0F5Z0NPR29nQXlnQ09DSUFRUUYwUVFKeUlBQkJmbk5xUVFGcUloQWdBeWdDRUdvdEFBQTZBQUJCL3JYYTczNGhBQXdDQ3lBRElBTW9BZ1EyQWpRZ0F5QUJOZ0k4UWN2d3FhSUJRZEdndVJnZ0F5Z0NOQ0FES0FJOFNoc2hBQXdCQ3lBREtBSXdJQU1vQWp4cUlBTW9BaEFnQXlnQ0NDQURLQUkwYXlJQUlBTW9BandpQVhKQkFYUWdBQ0FCYzJ0cUxRQUFPZ0FBSUFNb0FqeEJBV29oQVVHUjFZdVVleUVBREFBTEFBdHJBUVIvSUFBb0FnQXNBQUFRUlVVRVFFRUFEd3NEUUNBQUtBSUFJUU5CZnlFQklBSkJ6Sm16NWdCTkJFQkJmeUFETEFBQVFUQnJJZ1FnQWtFS2JDSUJhaUFFUWYvLy8vOEhJQUZyU2hzaEFRc2dBQ0FEUVFGcU5nSUFJQUVoQWlBRExBQUJFRVVOQUFzZ0FRdjBFZ0lSZndGK0l3QkIwQUJySWdVa0FDQUZJQUUyQWt3Z0JVRTNhaUVVSUFWQk9Hb2hFRUVBSVFFQ1FBSkFBa0FDUUFOQUlBRkIvLy8vL3djZ0MydEtEUUVnQVNBTGFpRUxJQVVvQWt3aUNpRUJBa0FDUUFKQUlBb3RBQUFpQ1FSQUEwQUNRQUpBSUFsQi93RnhJZ1pGQkVBZ0FTRUpEQUVMSUFaQkpVY05BU0FCSVFrRFFDQUJMUUFCUVNWSERRRWdCU0FCUVFKcUlnWTJBa3dnQ1VFQmFpRUpJQUV0QUFJaENDQUdJUUVnQ0VFbFJnMEFDd3NnQ1NBS2F5SUJRZi8vLy84SElBdHJJaFZLRFFjZ0FBUkFJQUFnQ2lBQkVDb0xJQUVOQmtGL0lRNUJBU0VHSUFVb0Frd3NBQUVRUlNFQklBVW9Ba3doQ0FKQUlBRkZEUUFnQ0MwQUFrRWtSdzBBSUFnc0FBRkJNR3NoRGtFQklSSkJBeUVHQ3lBRklBWWdDR29pQVRZQ1RFRUFJUXdDUUNBQkxBQUFJaEZCSUdzaUNFRWZTd1JBSUFFaEJnd0JDeUFCSVFaQkFTQUlkQ0lIUVluUkJIRkZEUUFEUUNBRklBRkJBV29pQmpZQ1RDQUhJQXh5SVF3Z0FTd0FBU0lSUVNCcklnaEJJRThOQVNBR0lRRkJBU0FJZENJSFFZblJCSEVOQUFzTEFrQWdFVUVxUmdSQUlBVUNmd0pBSUFZc0FBRVFSVVVOQUNBRktBSk1JZ0V0QUFKQkpFY05BQ0FCTEFBQlFRSjBJQVJxUWNBQmEwRUtOZ0lBSUFFc0FBRkJBM1FnQTJwQmdBTnJLQUlBSVExQkFTRVNJQUZCQTJvTUFRc2dFZzBHUVFBaEVrRUFJUTBnQUFSQUlBSWdBaWdDQUNJQlFRUnFOZ0lBSUFFb0FnQWhEUXNnQlNnQ1RFRUJhZ3NpQVRZQ1RDQU5RUUJPRFFGQkFDQU5heUVOSUF4QmdNQUFjaUVNREFFTElBVkJ6QUJxRU5zQ0lnMUJBRWdOQ0NBRktBSk1JUUVMUVFBaEJrRi9JUWNDZjBFQUlBRXRBQUJCTGtjTkFCb2dBUzBBQVVFcVJnUkFJQVVDZndKQUlBRXNBQUlRUlVVTkFDQUZLQUpNSWdFdEFBTkJKRWNOQUNBQkxBQUNRUUowSUFScVFjQUJhMEVLTmdJQUlBRXNBQUpCQTNRZ0EycEJnQU5yS0FJQUlRY2dBVUVFYWd3QkN5QVNEUVlnQUFSL0lBSWdBaWdDQUNJQlFRUnFOZ0lBSUFFb0FnQUZRUUFMSVFjZ0JTZ0NURUVDYWdzaUFUWUNUQ0FIUVg5elFSOTJEQUVMSUFVZ0FVRUJhallDVENBRlFjd0FhaERiQWlFSElBVW9Ba3doQVVFQkN5RVRBMEFnQmlFUFFSd2hDU0FCTEFBQVFjRUFhMEU1U3cwSklBVWdBVUVCYWlJUk5nSk1JQUVzQUFBaEJpQVJJUUVnQmlBUFFUcHNha0dQTG1vdEFBQWlCa0VCYTBFSVNRMEFDd0pBQWtBZ0JrRWJSd1JBSUFaRkRRc2dEa0VBVGdSQUlBUWdEa0VDZEdvZ0JqWUNBQ0FGSUFNZ0RrRURkR29wQXdBM0EwQU1BZ3NnQUVVTkNDQUZRVUJySUFZZ0FoRFpBaUFGS0FKTUlSRU1BZ3NnRGtFQVRnMEtDMEVBSVFFZ0FFVU5Cd3NnREVILy8zdHhJZ2dnRENBTVFZREFBSEViSVFaQkFDRU1RZThhSVE0Z0VDRUpBa0FDUUFKQUFuOENRQUpBQWtBQ1FBSi9Ba0FDUUFKQUFrQUNRQUpBQWtBZ0VVRUJheXdBQUNJQlFWOXhJQUVnQVVFUGNVRURSaHNnQVNBUEd5SUJRZGdBYXc0aEJCUVVGQlFVRkJRVURoUVBCZzRPRGhRR0ZCUVVGQUlGQXhRVUNSUUJGQlFFQUFzQ1FDQUJRY0VBYXc0SERoUUxGQTRPRGdBTElBRkIwd0JHRFFrTUV3c2dCU2tEUUNFV1FlOGFEQVVMUVFBaEFRSkFBa0FDUUFKQUFrQUNRQUpBSUE5Qi93RnhEZ2dBQVFJREJCb0ZCaG9MSUFVb0FrQWdDellDQUF3WkN5QUZLQUpBSUFzMkFnQU1HQXNnQlNnQ1FDQUxyRGNEQUF3WEN5QUZLQUpBSUFzN0FRQU1GZ3NnQlNnQ1FDQUxPZ0FBREJVTElBVW9Ba0FnQ3pZQ0FBd1VDeUFGS0FKQUlBdXNOd01BREJNTElBZEJDQ0FIUVFoTEd5RUhJQVpCQ0hJaEJrSDRBQ0VCQ3lBUUlRZ2dBVUVnY1NFUElBVXBBMEFpRmxCRkJFQURRQ0FJUVFGcklnZ2dGcWRCRDNGQm9ESnFMUUFBSUE5eU9nQUFJQlpDRDFZaENpQVdRZ1NJSVJZZ0NnMEFDd3NnQ0NFS0lBWkJDSEZGSUFVcEEwQlFjZzBESUFGQkJIWkI3eHBxSVE1QkFpRU1EQU1MSUJBaEFTQUZLUU5BSWhaUVJRUkFBMEFnQVVFQmF5SUJJQmFuUVFkeFFUQnlPZ0FBSUJaQ0IxWWhDQ0FXUWdPSUlSWWdDQTBBQ3dzZ0FTRUtJQVpCQ0hGRkRRSWdCeUFRSUFwcklnRkJBV29nQVNBSFNCc2hCd3dDQ3lBRktRTkFJaFpDQUZNRVFDQUZRZ0FnRm4waUZqY0RRRUVCSVF4Qjd4b01BUXNnQmtHQUVIRUVRRUVCSVF4QjhCb01BUXRCOFJwQjd4b2dCa0VCY1NJTUd3c2hEaUFXSUJBUWp3RWhDZ3NnRTBFQUlBZEJBRWdiRFE0Z0JrSC8vM3R4SUFZZ0V4c2hCaUFGS1FOQUloWkNBRklnQjNKRkJFQWdFQ0VLUVFBaEJ3d01DeUFISUJaUUlCQWdDbXRxSWdFZ0FTQUhTQnNoQnd3TEN5QUZLQUpBSWdGQmdCOGdBUnNpQ2lJSlFRQkIvLy8vL3djZ0J5QUhRUUJJR3lJR0VOd0JJZ0VnQ1dzZ0JpQUJHeUlCSUFwcUlRa2dCMEVBVGdSQUlBZ2hCaUFCSVFjTUN3c2dDQ0VHSUFFaEJ5QUpMUUFBRFEwTUNnc2dCd1JBSUFVb0FrQU1BZ3RCQUNFQklBQkJJQ0FOUVFBZ0JoQXVEQUlMSUFWQkFEWUNEQ0FGSUFVcEEwQStBZ2dnQlNBRlFRaHFJZ0UyQWtCQmZ5RUhJQUVMSVFsQkFDRUJBa0FEUUNBSktBSUFJZ2hGRFFFZ0JVRUVhaUFJRU40Q0lncEJBRWdpQ0NBS0lBY2dBV3RMY2tVRVFDQUpRUVJxSVFrZ0J5QUJJQXBxSWdGTERRRU1BZ3NMSUFnTkRRdEJQU0VKSUFGQkFFZ05DeUFBUVNBZ0RTQUJJQVlRTGlBQlJRUkFRUUFoQVF3QkMwRUFJUWNnQlNnQ1FDRUpBMEFnQ1NnQ0FDSUlSUTBCSUFWQkJHb2dDQkRlQWlJSUlBZHFJZ2NnQVVzTkFTQUFJQVZCQkdvZ0NCQXFJQWxCQkdvaENTQUJJQWRMRFFBTEN5QUFRU0FnRFNBQklBWkJnTUFBY3hBdUlBMGdBU0FCSUExSUd5RUJEQWdMSUJOQkFDQUhRUUJJR3cwSVFUMGhDU0FBSUFVckEwQWdEU0FISUFZZ0FVRXlFUjBBSWdGQkFFNE5Cd3dKQ3lBRklBVXBBMEE4QURkQkFTRUhJQlFoQ2lBSUlRWU1CQXNnQlNBQlFRRnFJZ1kyQWt3Z0FTMEFBU0VKSUFZaEFRd0FDd0FMSUFBTkJ5QVNSUTBDUVFFaEFRTkFJQVFnQVVFQ2RHb29BZ0FpQUFSQUlBTWdBVUVEZEdvZ0FDQUNFTmtDUVFFaEN5QUJRUUZxSWdGQkNrY05BUXdKQ3d0QkFTRUxJQUZCQ2s4TkJ3TkFJQVFnQVVFQ2RHb29BZ0FOQVNBQlFRRnFJZ0ZCQ2tjTkFBc01Cd3RCSENFSkRBUUxJQWtnQ21zaUR5QUhJQWNnRDBnYklnaEIvLy8vL3djZ0RHdEtEUUpCUFNFSklBZ2dER29pQnlBTklBY2dEVW9iSWdFZ0ZVb05BeUFBUVNBZ0FTQUhJQVlRTGlBQUlBNGdEQkFxSUFCQk1DQUJJQWNnQmtHQWdBUnpFQzRnQUVFd0lBZ2dEMEVBRUM0Z0FDQUtJQThRS2lBQVFTQWdBU0FISUFaQmdNQUFjeEF1REFFTEMwRUFJUXNNQXd0QlBTRUpDMEhVZ1FFZ0NUWUNBQXRCZnlFTEN5QUZRZEFBYWlRQUlBc0xmd0lCZndGK0lBQzlJZ05DTklpblFmOFBjU0lDUWY4UFJ3UjhJQUpGQkVBZ0FTQUFSQUFBQUFBQUFBQUFZUVIvUVFBRklBQkVBQUFBQUFBQThFT2lJQUVRM1FJaEFDQUJLQUlBUVVCcUN6WUNBQ0FBRHdzZ0FTQUNRZjRIYXpZQ0FDQURRdi8vLy8vLy8vK0hnSCtEUW9DQWdJQ0FnSUR3UDRTL0JTQUFDd3NTQUNBQVJRUkFRUUFQQ3lBQUlBRVEyZ0VMSlFBZ0FFRUFSeUFBUWNndFIzRWdBRUhnTFVkeElBQkJnSWNCUjNFZ0FFR1lod0ZIY1F2b0FnRURmd0pBSUFFdEFBQU5BRUdLSGhEYkFTSUJCRUFnQVMwQUFBMEJDeUFBUVF4c1FZQXVhaERiQVNJQkJFQWdBUzBBQUEwQkMwR1JIaERiQVNJQkJFQWdBUzBBQUEwQkMwR25IaUVCQ3dKQUEwQWdBU0FDYWkwQUFDSUVSU0FFUVM5R2NrVUVRRUVYSVFRZ0FrRUJhaUlDUVJkSERRRU1BZ3NMSUFJaEJBdEJweDRoQXdKQUFrQUNRQUpBQWtBZ0FTMEFBQ0lDUVM1R0RRQWdBU0FFYWkwQUFBMEFJQUVoQXlBQ1FjTUFSdzBCQ3lBRExRQUJSUTBCQ3lBRFFhY2VFTFlCUlEwQUlBTkI4UjBRdGdFTkFRc2dBRVVFUUVHa0xTRUNJQU10QUFGQkxrWU5BZ3RCQUE4TFFRQWhBVUg4aGdFb0FnQWlBZ1JBQTBBZ0F5QUNRUWhxRUxZQlJRMENJQUlvQWlBaUFnMEFDd3RCSkJBWklnSUVRQ0FDUWFRdEtRSUFOd0lBSUFKQkNHb2lBU0FESUFRUVFob2dBU0FFYWtFQU9nQUFJQUpCL0lZQktBSUFOZ0lnUWZ5R0FTQUNOZ0lBSUFJaEFRc2dBVUdrTFNBQUlBRnlHeUVDQ3lBQ0N5OEFJQUVRN0FJaUFTQUFRZjhCY1NJQWNVRUJkQ0FBSUFGemFpSUFRUlZ5UVFGMElBQkJGWE5yUVJoMFFSaDFDNDBlQWc5L0JYNGpBRUdRQVdzaUJDUUFJQVJCQUVHUUFSQkdJZ05CZnpZQ1RDQURJQUEyQWl3Z0EwRXhOZ0lnSUFNZ0FEWUNWQ0FCSVFRZ0FpRU9Jd0JCc0FKcklnWWtBQ0FES0FKTUdnSkFBa0FDUUFKQUlBTW9BZ1FOQUNBREVPa0JHaUFES0FJRURRQU1BUXNnQkMwQUFDSUFSUTBDQWtBRFFBSkFBa0FnQUVIL0FYRVFjQVJBQTBBZ0JDSUFRUUZxSVFRZ0FDMEFBUkJ3RFFBTElBTkNBQkJUQTBBQ2Z5QURLQUlFSWdFZ0F5Z0NhRWNFUUNBRElBRkJBV28yQWdRZ0FTMEFBQXdCQ3lBREVCSUxFSEFOQUFzZ0F5Z0NCQ0VFSUFNcEEzQkNBRmtFUUNBRElBUkJBV3NpQkRZQ0JBc2dCQ0FES0FJc2E2d2dBeWtEZUNBVWZId2hGQXdCQ3dKL0FrQUNRQ0FFTFFBQVFTVkdCRUFnQkMwQUFTSUFRU3BHRFFFZ0FFRWxSdzBDQ3lBRFFnQVFVd0pBSUFRdEFBQkJKVVlFUUFOQUFuOGdBeWdDQkNJQUlBTW9BbWhIQkVBZ0F5QUFRUUZxTmdJRUlBQXRBQUFNQVFzZ0F4QVNDeUlBRUhBTkFBc2dCRUVCYWlFRURBRUxJQU1vQWdRaUFDQURLQUpvUndSQUlBTWdBRUVCYWpZQ0JDQUFMUUFBSVFBTUFRc2dBeEFTSVFBTElBUXRBQUFnQUVjRVFDQURLUU53UWdCWkJFQWdBeUFES0FJRVFRRnJOZ0lFQ3lBQVFRQk9EUXBCQUNFTUlBMUZEUWdNQ2dzZ0F5Z0NCQ0FES0FJc2E2d2dBeWtEZUNBVWZId2hGQ0FFSVFBTUF3dEJBQ0VDSUFSQkFtb01BUXNDUUNBQUVFVkZEUUFnQkMwQUFrRWtSdzBBSUFRdEFBRkJNR3NoQUNNQVFSQnJJZ0VnRGpZQ0RDQUJJQTRnQUVFQ2RFRUVhMEVBSUFCQkFVc2JhaUlBUVFScU5nSUlJQUFvQWdBaEFpQUVRUU5xREFFTElBNG9BZ0FoQWlBT1FRUnFJUTRnQkVFQmFnc2hBRUVBSVF4QkFDRUVJQUF0QUFBUVJRUkFBMEFnQUMwQUFDQUVRUXBzYWtFd2F5RUVJQUF0QUFFaEFTQUFRUUZxSVFBZ0FSQkZEUUFMQ3lBQUxRQUFJZ1ZCN1FCSEJIOGdBQVZCQUNFSklBSkJBRWNoRENBQUxRQUJJUVZCQUNFS0lBQkJBV29MSWdGQkFXb2hBRUVESVFjQ1FBSkFBa0FDUUFKQUFrQWdCVUhCQUdzT09nUUpCQWtFQkFRSkNRa0pBd2tKQ1FrSkNRUUpDUWtKQkFrSkJBa0pDUWtKQkFrRUJBUUVCQUFFQlFrQkNRUUVCQWtKQkFJRUNRa0VDUUlKQ3lBQlFRSnFJQUFnQVMwQUFVSG9BRVlpQVJzaEFFRitRWDhnQVJzaEJ3d0VDeUFCUVFKcUlBQWdBUzBBQVVIc0FFWWlBUnNoQUVFRFFRRWdBUnNoQnd3REMwRUJJUWNNQWd0QkFpRUhEQUVMUVFBaEJ5QUJJUUFMUVFFZ0J5QUFMUUFBSWdGQkwzRkJBMFlpQlJzaER3SkFJQUZCSUhJZ0FTQUZHeUlMUWRzQVJnMEFBa0FnQzBIdUFFY0VRQ0FMUWVNQVJ3MEJJQVJCQVNBRVFRRktHeUVFREFJTElBSWdEeUFVRU9NQ0RBSUxJQU5DQUJCVEEwQUNmeUFES0FJRUlnRWdBeWdDYUVjRVFDQURJQUZCQVdvMkFnUWdBUzBBQUF3QkN5QURFQklMRUhBTkFBc2dBeWdDQkNFQklBTXBBM0JDQUZrRVFDQURJQUZCQVdzaUFUWUNCQXNnQVNBREtBSXNhNndnQXlrRGVDQVVmSHdoRkFzZ0F5QUVyQ0lTRUZNQ1FDQURLQUlFSWdFZ0F5Z0NhRWNFUUNBRElBRkJBV28yQWdRTUFRc2dBeEFTUVFCSURRUUxJQU1wQTNCQ0FGa0VRQ0FESUFNb0FnUkJBV3MyQWdRTFFSQWhBUUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUxRZGdBYXc0aEJnc0xBZ3NMQ3dzTEFRc0NCQUVCQVFzRkN3c0xDd3NEQmdzTEFnc0VDd3NHQUFzZ0MwSEJBR3NpQVVFR1MwRUJJQUYwUWZFQWNVVnlEUW9MSUFaQkNHb2dBeUFQUVFBUTVnSWdBeWtEZUVJQUlBTW9BZ1FnQXlnQ0xHdXNmVkVORHlBQ1JRMEpJQVlwQXhBaEVpQUdLUU1JSVJNZ0R3NERCUVlIQ1FzZ0MwSHZBWEZCNHdCR0JFQWdCa0VnYWtGL1FZRUNFRVlhSUFaQkFEb0FJQ0FMUWZNQVJ3MElJQVpCQURvQVFTQUdRUUE2QUM0Z0JrRUFOZ0VxREFnTElBWkJJR29nQUMwQUFTSUJRZDRBUmlJRlFZRUNFRVlhSUFaQkFEb0FJQ0FBUVFKcUlBQkJBV29nQlJzaENBSi9Ba0FDUUNBQVFRSkJBU0FGRzJvdEFBQWlBRUV0UndSQUlBQkIzUUJHRFFFZ0FVSGVBRWNoQnlBSURBTUxJQVlnQVVIZUFFY2lCem9BVGd3QkN5QUdJQUZCM2dCSElnYzZBSDRMSUFoQkFXb0xJUUFEUUFKQUlBQXRBQUFpQVVFdFJ3UkFJQUZGRFE4Z0FVSGRBRWNOQVF3S0MwRXRJUUVnQUMwQUFTSUZSU0FGUWQwQVJuSU5BQ0FBUVFGcUlRZ0NRQ0FGSUFCQkFXc3RBQUFpQUUwRVFDQUZJUUVNQVFzRFFDQUFRUUZxSWdBZ0JrRWdhbW9nQnpvQUFDQUFJQWd0QUFBaUFVa05BQXNMSUFnaEFBc2dBU0FHYWlBSE9nQWhJQUJCQVdvaEFBd0FDd0FMUVFnaEFRd0NDMEVLSVFFTUFRdEJBQ0VCQzBJQUlSSkJBQ0VGUVFBaENFRUFJUWNqQUVFUWF5SVFKQUFDUUNBQlFRRkhJQUZCSkUxeFJRUkFRZFNCQVVFY05nSUFEQUVMQTBBQ2Z5QURLQUlFSWdRZ0F5Z0NhRWNFUUNBRElBUkJBV28yQWdRZ0JDMEFBQXdCQ3lBREVCSUxJZ1FRY0EwQUN3SkFBa0FnQkVFcmF3NERBQUVBQVF0QmYwRUFJQVJCTFVZYklRY2dBeWdDQkNJRUlBTW9BbWhIQkVBZ0F5QUVRUUZxTmdJRUlBUXRBQUFoQkF3QkN5QURFQkloQkFzQ1FBSkFBa0FDUUNBQlFXOXhJQVJCTUVkeVJRUkFBbjhnQXlnQ0JDSUVJQU1vQW1oSEJFQWdBeUFFUVFGcU5nSUVJQVF0QUFBTUFRc2dBeEFTQ3lJRVFWOXhRZGdBUmdSQVFSQWhBUUovSUFNb0FnUWlCQ0FES0FKb1J3UkFJQU1nQkVFQmFqWUNCQ0FFTFFBQURBRUxJQU1RRWdzaUJFR3hLV290QUFCQkVFa05BeUFES1FOd1FnQlpCRUFnQXlBREtBSUVRUUZyTmdJRUN5QURRZ0FRVXd3R0N5QUJEUUZCQ0NFQkRBSUxJQUZCQ2lBQkd5SUJJQVJCc1NscUxRQUFTdzBBSUFNcEEzQkNBRmtFUUNBRElBTW9BZ1JCQVdzMkFnUUxJQU5DQUJCVFFkU0JBVUVjTmdJQURBUUxJQUZCQ2tjTkFDQUVRVEJySWdWQkNVMEVRRUVBSVFFRFFDQUJRUXBzSUFWcUlnRkJtYlBtekFGSkFuOGdBeWdDQkNJRUlBTW9BbWhIQkVBZ0F5QUVRUUZxTmdJRUlBUXRBQUFNQVFzZ0F4QVNDeUlFUVRCcklnVkJDVTF4RFFBTElBR3RJUklMQWtBZ0JVRUpTdzBBSUJKQ0NuNGhFeUFGclNFVkEwQUNmeUFES0FJRUlnRWdBeWdDYUVjRVFDQURJQUZCQVdvMkFnUWdBUzBBQUF3QkN5QURFQklMSWdSQk1Hc2lCVUVKU3lBVElCVjhJaEpDbXJQbXpKbXo1c3daV25JTkFTQVNRZ3ArSWhNZ0JhMGlGVUovaFZnTkFBdEJDaUVCREFJTFFRb2hBU0FGUVFsTkRRRU1BZ3NnQVNBQlFRRnJjUVJBSUFSQnNTbHFMUUFBSWdnZ0FVa0VRQU5BSUFFZ0JXd2dDR29pQlVISDQvRTRTUUovSUFNb0FnUWlCQ0FES0FKb1J3UkFJQU1nQkVFQmFqWUNCQ0FFTFFBQURBRUxJQU1RRWdzaUJFR3hLV290QUFBaUNDQUJTWEVOQUFzZ0JhMGhFZ3NnQVNBSVRRMEJJQUd0SVJNRFFDQVNJQk4rSWhVZ0NLMUMvd0dESWhaQ2Y0VldEUUlnRlNBV2ZDRVNJQUVDZnlBREtBSUVJZ1FnQXlnQ2FFY0VRQ0FESUFSQkFXbzJBZ1FnQkMwQUFBd0JDeUFERUJJTElnUkJzU2xxTFFBQUlnaE5EUUlnRUNBVFFnQWdFa0lBRUNzZ0VDa0RDRkFOQUFzTUFRc2dBVUVYYkVFRmRrRUhjVUd4SzJvc0FBQWhFU0FFUWJFcGFpMEFBQ0lGSUFGSkJFQURRQ0FJSUJGMElBVnlJZ2hCZ0lDQXdBQkpBbjhnQXlnQ0JDSUVJQU1vQW1oSEJFQWdBeUFFUVFGcU5nSUVJQVF0QUFBTUFRc2dBeEFTQ3lJRVFiRXBhaTBBQUNJRklBRkpjUTBBQ3lBSXJTRVNDeUFCSUFWTkRRQkNmeUFSclNJVGlDSVZJQkpVRFFBRFFDQUZyVUwvQVlNZ0VpQVRob1FoRWlBQkFuOGdBeWdDQkNJRUlBTW9BbWhIQkVBZ0F5QUVRUUZxTmdJRUlBUXRBQUFNQVFzZ0F4QVNDeUlFUWJFcGFpMEFBQ0lGVFEwQklCSWdGVmdOQUFzTElBRWdCRUd4S1dvdEFBQk5EUUFEUUNBQkFuOGdBeWdDQkNJRUlBTW9BbWhIQkVBZ0F5QUVRUUZxTmdJRUlBUXRBQUFNQVFzZ0F4QVNDMEd4S1dvdEFBQkxEUUFMUWRTQkFVSEVBRFlDQUVFQUlRZENmeUVTQ3lBREtRTndRZ0JaQkVBZ0F5QURLQUlFUVFGck5nSUVDMEVBSUJKQ2YxRWdCMEVCY2hzRVFFSFVnUUZCeEFBMkFnQkNmaUVTREFFTElCSWdCNndpRTRVZ0UzMGhFZ3NnRUVFUWFpUUFJQU1wQTNoQ0FDQURLQUlFSUFNb0FpeHJySDFSRFFvZ0FrVWdDMEh3QUVkeVJRUkFJQUlnRWo0Q0FBd0ZDeUFDSUE4Z0VoRGpBZ3dFQ3lBQ0lCTWdFaERrQWpnQ0FBd0RDeUFDSUJNZ0VoRGRBVGtEQUF3Q0N5QUNJQk0zQXdBZ0FpQVNOd01JREFFTElBUkJBV3BCSHlBTFFlTUFSaUlGR3lFSEFrQUNRQ0FQUVFGSElnaEZCRUFnQWlFQklBd0VRQ0FIUVFKMEVCa2lBVVVOQmdzZ0JrSUFOd09vQWtFQUlRUURRQ0FCSVFvRFFBSi9JQU1vQWdRaUFTQURLQUpvUndSQUlBTWdBVUVCYWpZQ0JDQUJMUUFBREFFTElBTVFFZ3NpQVNBR2FpMEFJVVVOQXlBR0lBRTZBQnNnQmtFY2FpQUdRUnRxUVFFZ0JrR29BbW9RdHdFaUFVRitSZzBBUVFBaENTQUJRWDlHRFFrZ0NnUkFJQW9nQkVFQ2RHb2dCaWdDSERZQ0FDQUVRUUZxSVFRTElBd2dCQ0FIUm5GRkRRQUxJQW9nQjBFQmRFRUJjaUlIUVFKMEVKNEJJZ0VOQUFzTUJ3c2dEQVJBUVFBaEJDQUhFQmtpQVVVTkJRTkFJQUVoQ1FOQUFuOGdBeWdDQkNJQklBTW9BbWhIQkVBZ0F5QUJRUUZxTmdJRUlBRXRBQUFNQVFzZ0F4QVNDeUlCSUFacUxRQWhSUVJBUVFBaENnd0ZDeUFFSUFscUlBRTZBQUFnQkVFQmFpSUVJQWRIRFFBTFFRQWhDaUFKSUFkQkFYUkJBWElpQnhDZUFTSUJEUUFMREFjTFFRQWhCQ0FDQkVBRFFBSi9JQU1vQWdRaUFTQURLQUpvUndSQUlBTWdBVUVCYWpZQ0JDQUJMUUFBREFFTElBTVFFZ3NpQVNBR2FpMEFJUVJBSUFJZ0JHb2dBVG9BQUNBRVFRRnFJUVFNQVFWQkFDRUtJQUloQ1F3RUN3QUxBQXNEUUFKL0lBTW9BZ1FpQVNBREtBSm9Sd1JBSUFNZ0FVRUJhallDQkNBQkxRQUFEQUVMSUFNUUVnc2dCbW90QUNFTkFBdEJBQ0VKUVFBaENnd0JDMEVBSVFrZ0JrR29BbW9FZnlBR0tBS29BZ1ZCQUFzTkJRc2dBeWdDQkNFQklBTXBBM0JDQUZrRVFDQURJQUZCQVdzaUFUWUNCQXNnQXlrRGVDQUJJQU1vQWl4cnJId2lFMUFnQzBIakFFWWdFaUFUVW5GeURRWUNRQ0FNUlEwQUlBaEZCRUFnQWlBS05nSUFEQUVMSUFJZ0NUWUNBQXNnQlEwQUlBb0VRQ0FLSUFSQkFuUnFRUUEyQWdBTElBbEZCRUJCQUNFSkRBRUxJQVFnQ1dwQkFEb0FBQXNnQXlnQ0JDQURLQUlzYTZ3Z0F5a0RlQ0FVZkh3aEZDQU5JQUpCQUVkcUlRMExJQUJCQVdvaEJDQUFMUUFCSWdBTkFRd0ZDd3RCQUNFSlFRQWhDZ3NnRFEwQkMwRi9JUTBMSUF4RkRRQWdDUkFRSUFvUUVBc2dCa0d3QW1va0FDQU5JUUFnQTBHUUFXb2tBQ0FBQzBNQUFrQWdBRVVOQUFKQUFrQUNRQUpBSUFGQkFtb09CZ0FCQWdJRUF3UUxJQUFnQWp3QUFBOExJQUFnQWowQkFBOExJQUFnQWo0Q0FBOExJQUFnQWpjREFBc0x0QU1DQTM4QmZpTUFRU0JySWdNa0FBSkFJQUZDLy8vLy8vLy8vLy8vQUlNaUJVS0FnSUNBZ0lEQXdEOTlJQVZDZ0lDQWdJQ0F3TC9BQUgxVUJFQWdBVUlaaUtjaEJDQUFVQ0FCUXYvLy93K0RJZ1ZDZ0lDQUNGUWdCVUtBZ0lBSVVSdEZCRUFnQkVHQmdJQ0FCR29oQWd3Q0N5QUVRWUNBZ0lBRWFpRUNJQUFnQlVLQWdJQUloWVJDQUZJTkFTQUNJQVJCQVhGcUlRSU1BUXNnQUZBZ0JVS0FnSUNBZ0lEQS8vOEFWQ0FGUW9DQWdJQ0FnTUQvL3dCUkcwVUVRQ0FCUWhtSXAwSC8vLzhCY1VHQWdJRCtCM0loQWd3QkMwR0FnSUQ4QnlFQ0lBVkMvLy8vLy8vL3Y3L0FBRllOQUVFQUlRSWdCVUl3aUtjaUJFR1IvZ0JKRFFBZ0EwRVFhaUFBSUFGQy8vLy8vLy8vUDROQ2dJQ0FnSUNBd0FDRUlnVWdCRUdCL2dCckVDOGdBeUFBSUFWQmdmOEFJQVJyRUh3Z0F5a0RDQ0lBUWhtSXB5RUNJQU1wQXdBZ0F5a0RFQ0FES1FNWWhFSUFVcTJFSWdWUUlBQkMvLy8vRDRNaUFFS0FnSUFJVkNBQVFvQ0FnQWhSRzBVRVFDQUNRUUZxSVFJTUFRc2dCU0FBUW9DQWdBaUZoRUlBVWcwQUlBSkJBWEVnQW1vaEFnc2dBMEVnYWlRQUlBSWdBVUlnaUtkQmdJQ0FnSGh4Y3I0TGdRUUNBMzhCZmdKQUFrQUNRQUovSUFBb0FnUWlBaUFBS0FKb1J3UkFJQUFnQWtFQmFqWUNCQ0FDTFFBQURBRUxJQUFRRWdzaUEwRXJhdzREQVFBQkFBc2dBMEV3YXlFQkRBRUxJQU5CTFVZaEJBSkFJQUZGQW44Z0FDZ0NCQ0lDSUFBb0FtaEhCRUFnQUNBQ1FRRnFOZ0lFSUFJdEFBQU1BUXNnQUJBU0N5SUNRVEJySWdGQkNrbHlEUUFnQUNrRGNFSUFVdzBBSUFBZ0FDZ0NCRUVCYXpZQ0JBc2dBaUVEQ3dKQUlBRkJDa2tFUUVFQUlRSURRQ0FESUFKQkNteHFJUUVDZnlBQUtBSUVJZ0lnQUNnQ2FFY0VRQ0FBSUFKQkFXbzJBZ1FnQWkwQUFBd0JDeUFBRUJJTElRTWdBVUV3YXlFQ0lBSkJ6Sm16NWdCSUlBTkJNR3NpQVVFSlRYRU5BQXNnQXF3aEJRSkFJQUZCQ2s4TkFBTkFJQU90SUFWQ0NuNThRakI5SVFVQ2Z5QUFLQUlFSWdFZ0FDZ0NhRWNFUUNBQUlBRkJBV28yQWdRZ0FTMEFBQXdCQ3lBQUVCSUxJZ05CTUdzaUFVRUpTdzBCSUFWQ3JvK0YxOGZDNjZNQlV3MEFDd3NnQVVFS1NRUkFBMEFDZnlBQUtBSUVJZ0VnQUNnQ2FFY0VRQ0FBSUFGQkFXbzJBZ1FnQVMwQUFBd0JDeUFBRUJJTFFUQnJRUXBKRFFBTEN5QUFLUU53UWdCWkJFQWdBQ0FBS0FJRVFRRnJOZ0lFQzBJQUlBVjlJQVVnQkJzaEJRd0JDMEtBZ0lDQWdJQ0FnSUIvSVFVZ0FDa0RjRUlBVXcwQUlBQWdBQ2dDQkVFQmF6WUNCRUtBZ0lDQWdJQ0FnSUIvRHdzZ0JRdWdNZ01RZndkK0FYd2pBRUV3YXlJTUpBQUNRQ0FDUVFKTkJFQWdBa0VDZENJQ1Fad3BhaWdDQUNFUElBSkJrQ2xxS0FJQUlRNERRQUovSUFFb0FnUWlBaUFCS0FKb1J3UkFJQUVnQWtFQmFqWUNCQ0FDTFFBQURBRUxJQUVRRWdzaUFoQndEUUFMUVFFaEJnSkFBa0FnQWtFcmF3NERBQUVBQVF0QmYwRUJJQUpCTFVZYklRWWdBU2dDQkNJQ0lBRW9BbWhIQkVBZ0FTQUNRUUZxTmdJRUlBSXRBQUFoQWd3QkN5QUJFQkloQWdzQ1FBSkFBMEFnQlVHS0dtb3NBQUFnQWtFZ2NrWUVRQUpBSUFWQkJrc05BQ0FCS0FJRUlnSWdBU2dDYUVjRVFDQUJJQUpCQVdvMkFnUWdBaTBBQUNFQ0RBRUxJQUVRRWlFQ0N5QUZRUUZxSWdWQkNFY05BUXdDQ3dzZ0JVRURSd1JBSUFWQkNFWU5BU0FEUlNBRlFRUkpjZzBDSUFWQkNFWU5BUXNnQVNrRGNDSVVRZ0JaQkVBZ0FTQUJLQUlFUVFGck5nSUVDeUFEUlNBRlFRUkpjZzBBSUJSQ0FGTWhBZ05BSUFKRkJFQWdBU0FCS0FJRVFRRnJOZ0lFQ3lBRlFRRnJJZ1ZCQTBzTkFBc0xRZ0FoRkNNQVFSQnJJZ0lrQUFKK0lBYXlRd0FBZ0grVXZDSURRZi8vLy84SGNTSUJRWUNBZ0FSclFmLy8vL2NIVFFSQUlBR3RRaG1HUW9DQWdJQ0FnSURBUDN3TUFRc2dBNjFDR1laQ2dJQ0FnSUNBd1AvL0FJUWdBVUdBZ0lEOEIwOE5BQnBDQUNBQlJRMEFHaUFDSUFHdFFnQWdBV2NpQVVIUkFHb1FMeUFDS1FNQUlSUWdBaWtEQ0VLQWdJQ0FnSURBQUlWQmlmOEFJQUZyclVJd2hvUUxJUlVnRENBVU53TUFJQXdnRlNBRFFZQ0FnSUI0Y2ExQ0lJYUVOd01JSUFKQkVHb2tBQ0FNS1FNSUlSUWdEQ2tEQUNFVkRBSUxBa0FDUUFKQUlBVU5BRUVBSVFVRFFDQUZRY2NjYWl3QUFDQUNRU0J5UncwQkFrQWdCVUVCU3cwQUlBRW9BZ1FpQWlBQktBSm9Sd1JBSUFFZ0FrRUJhallDQkNBQ0xRQUFJUUlNQVFzZ0FSQVNJUUlMSUFWQkFXb2lCVUVEUncwQUN3d0JDd0pBQWtBZ0JRNEVBQUVCQWdFTEFrQWdBa0V3UncwQUFuOGdBU2dDQkNJRklBRW9BbWhIQkVBZ0FTQUZRUUZxTmdJRUlBVXRBQUFNQVFzZ0FSQVNDMEZmY1VIWUFFWUVRQ01BUWJBRGF5SUNKQUFDZnlBQktBSUVJZ1VnQVNnQ2FFY0VRQ0FCSUFWQkFXbzJBZ1FnQlMwQUFBd0JDeUFCRUJJTElRVUNRQUovQTBBZ0JVRXdSd1JBQWtBZ0JVRXVSdzBFSUFFb0FnUWlCU0FCS0FKb1JnMEFJQUVnQlVFQmFqWUNCQ0FGTFFBQURBTUxCU0FCS0FJRUlnVWdBU2dDYUVjRWYwRUJJUW9nQVNBRlFRRnFOZ0lFSUFVdEFBQUZRUUVoQ2lBQkVCSUxJUVVNQVFzTElBRVFFZ3NoQlVFQklRUWdCVUV3UncwQUEwQWdGMElCZlNFWEFuOGdBU2dDQkNJRklBRW9BbWhIQkVBZ0FTQUZRUUZxTmdJRUlBVXRBQUFNQVFzZ0FSQVNDeUlGUVRCR0RRQUxRUUVoQ2d0Q2dJQ0FnSUNBd1A4L0lSVUNRQU5BQWtBZ0JVRWdjaUVMQWtBQ1FDQUZRVEJySWdoQkNra05BQ0FGUVM1SElBdEI0UUJyUVFaUGNRMEVJQVZCTGtjTkFDQUVEUUpCQVNFRUlCUWhGd3dCQ3lBTFFkY0FheUFJSUFWQk9Vb2JJUVVDUUNBVVFnZFhCRUFnQlNBSlFRUjBhaUVKREFFTElCUkNIRmNFUUNBQ1FUQnFJQVVRUVNBQ1FTQnFJQmtnRlVJQVFvQ0FnSUNBZ01EOVB4QVlJQUpCRUdvZ0Fpa0RJQ0laSUFJcEF5Z2lGU0FDS1FNd0lBSXBBemdRR0NBQ0lCWWdHQ0FDS1FNUUlBSXBBeGdRUENBQ0tRTUlJUmdnQWlrREFDRVdEQUVMSUFWRklBZHlEUUFnQWtIUUFHb2dHU0FWUWdCQ2dJQ0FnSUNBZ1A4L0VCZ2dBa0ZBYXlBV0lCZ2dBaWtEVUNBQ0tRTllFRHdnQWlrRFNDRVlRUUVoQnlBQ0tRTkFJUllMSUJSQ0FYd2hGRUVCSVFvTElBRW9BZ1FpQlNBQktBSm9Sd1IvSUFFZ0JVRUJhallDQkNBRkxRQUFCU0FCRUJJTElRVU1BUXNMUVM0aEJRc0NmaUFLUlFSQUFrQUNRQ0FCS1FOd1FnQlpCRUFnQVNBQktBSUVJZ1ZCQVdzMkFnUWdBMFVOQVNBQklBVkJBbXMyQWdRZ0JFVU5BaUFCSUFWQkEyczJBZ1FNQWdzZ0F3MEJDeUFCUWdBUVV3c2dBa0hnQUdvZ0JyZEVBQUFBQUFBQUFBQ2lFRjBnQWlrRFlDRVdJQUlwQTJnTUFRc2dGRUlIVndSQUlCUWhGUU5BSUFsQkJIUWhDU0FWUWdGOEloVkNDRklOQUFzTEFrQUNRQUpBSUFWQlgzRkIwQUJHQkVBZ0FTQURFT1VDSWhWQ2dJQ0FnSUNBZ0lDQWYxSU5BeUFEQkVBZ0FTa0RjRUlBV1EwQ0RBTUxRZ0FoRmlBQlFnQVFVMElBREFRTFFnQWhGU0FCS1FOd1FnQlREUUlMSUFFZ0FTZ0NCRUVCYXpZQ0JBdENBQ0VWQ3lBSlJRUkFJQUpCOEFCcUlBYTNSQUFBQUFBQUFBQUFvaEJkSUFJcEEzQWhGaUFDS1FONERBRUxJQmNnRkNBRUcwSUNoaUFWZkVJZ2ZTSVVRUUFnRDJ1dFZRUkFRZFNCQVVIRUFEWUNBQ0FDUWFBQmFpQUdFRUVnQWtHUUFXb2dBaWtEb0FFZ0Fpa0RxQUZDZjBMLy8vLy8vLysvLy84QUVCZ2dBa0dBQVdvZ0Fpa0RrQUVnQWlrRG1BRkNmMEwvLy8vLy8vKy8vLzhBRUJnZ0Fpa0RnQUVoRmlBQ0tRT0lBUXdCQ3lBUFFlSUJhNndnRkZjRVFDQUpRUUJPQkVBRFFDQUNRYUFEYWlBV0lCaENBRUtBZ0lDQWdJREEvNzkvRUR3Z0ZpQVlRb0NBZ0lDQWdJRC9QeERnQVNFQklBSkJrQU5xSUJZZ0dDQVdJQUlwQTZBRElBRkJBRWdpQXhzZ0dDQUNLUU9vQXlBREd4QThJQlJDQVgwaEZDQUNLUU9ZQXlFWUlBSXBBNUFESVJZZ0NVRUJkQ0FCUVFCT2NpSUpRUUJPRFFBTEN3SitJQlFnRDZ4OVFpQjhJaFduSWdGQkFDQUJRUUJLR3lBT0lCVWdEcTFUR3lJQlFmRUFUZ1JBSUFKQmdBTnFJQVlRUVNBQ0tRT0lBeUVYSUFJcEE0QURJUmxDQUF3QkN5QUNRZUFDYWtHUUFTQUJheERmQVJCZElBSkIwQUpxSUFZUVFTQUNRZkFDYWlBQ0tRUGdBaUFDS1FQb0FpQUNLUVBRQWlJWklBSXBBOWdDSWhjUTZ3SWdBaWtEK0FJaEdpQUNLUVB3QWdzaEZTQUNRY0FDYWlBSklBbEJBWEZGSUJZZ0dFSUFRZ0FRZTBFQVJ5QUJRU0JJY1hFaUFXb1FrQUVnQWtHd0Ftb2dHU0FYSUFJcEE4QUNJQUlwQThnQ0VCZ2dBa0dRQW1vZ0Fpa0RzQUlnQWlrRHVBSWdGU0FhRUR3Z0FrR2dBbXBDQUNBV0lBRWJRZ0FnR0NBQkd5QVpJQmNRR0NBQ1FZQUNhaUFDS1FPZ0FpQUNLUU9vQWlBQ0tRT1FBaUFDS1FPWUFoQThJQUpCOEFGcUlBSXBBNEFDSUFJcEE0Z0NJQlVnR2hEZUFTQUNLUVB3QVNJVklBSXBBL2dCSWhkQ0FFSUFFSHRGQkVCQjFJRUJRY1FBTmdJQUN5QUNRZUFCYWlBVklCY2dGS2NRNmdJZ0Fpa0Q0QUVoRmlBQ0tRUG9BUXdCQzBIVWdRRkJ4QUEyQWdBZ0FrSFFBV29nQmhCQklBSkJ3QUZxSUFJcEE5QUJJQUlwQTlnQlFnQkNnSUNBZ0lDQXdBQVFHQ0FDUWJBQmFpQUNLUVBBQVNBQ0tRUElBVUlBUW9DQWdJQ0FnTUFBRUJnZ0Fpa0RzQUVoRmlBQ0tRTzRBUXNoRkNBTUlCWTNBeEFnRENBVU53TVlJQUpCc0FOcUpBQWdEQ2tER0NFVUlBd3BBeEFoRlF3R0N5QUJLUU53UWdCVERRQWdBU0FCS0FJRVFRRnJOZ0lFQ3lBQklRVWdCaUVKSUFNaENrRUFJUVpCQUNFREl3QkJrTVlBYXlJRUpBQkJBQ0FPSUE5cUloSnJJUk1DUUFKL0EwQWdBa0V3UndSQUFrQWdBa0V1UncwRUlBVW9BZ1FpQVNBRktBSm9SZzBBSUFVZ0FVRUJhallDQkNBQkxRQUFEQU1MQlNBRktBSUVJZ0VnQlNnQ2FFY0VmMEVCSVFZZ0JTQUJRUUZxTmdJRUlBRXRBQUFGUVFFaEJpQUZFQklMSVFJTUFRc0xJQVVRRWdzaEFrRUJJUWNnQWtFd1J3MEFBMEFnRkVJQmZTRVVBbjhnQlNnQ0JDSUJJQVVvQW1oSEJFQWdCU0FCUVFGcU5nSUVJQUV0QUFBTUFRc2dCUkFTQ3lJQ1FUQkdEUUFMUVFFaEJnc2dCRUVBTmdLUUJnSitBa0FDUUFKQUFrQUNRQ0FDUVM1R0lnRkZJQUpCTUdzaUNFRUpTM0ZGQkVBRFFBSkFJQUZCQVhFRVFDQUhSUVJBSUJVaEZFRUJJUWNNQWdzZ0JrVWhBUXdFQ3lBVlFnRjhJUlVnQTBIOEQwd0VRQ0FOSUJXbklBSkJNRVliSVEwZ0JFR1FCbW9nQTBFQ2RHb2lBU0FMQkg4Z0FpQUJLQUlBUVFwc2FrRXdhd1VnQ0FzMkFnQkJBU0VHUVFBZ0MwRUJhaUlCSUFGQkNVWWlBUnNoQ3lBQklBTnFJUU1NQVFzZ0FrRXdSZzBBSUFRZ0JDZ0NnRVpCQVhJMkFvQkdRZHlQQVNFTkN3Si9JQVVvQWdRaUFTQUZLQUpvUndSQUlBVWdBVUVCYWpZQ0JDQUJMUUFBREFFTElBVVFFZ3NpQWtFdVJpSUJJQUpCTUdzaUNFRUtTWElOQUFzTElCUWdGU0FIR3lFVUlBWkZJQUpCWDNGQnhRQkhja1VFUUFKQUlBVWdDaERsQWlJV1FvQ0FnSUNBZ0lDQWdIOVNEUUFnQ2tVTkJVSUFJUllnQlNrRGNFSUFVdzBBSUFVZ0JTZ0NCRUVCYXpZQ0JBc2dCa1VOQXlBVUlCWjhJUlFNQlFzZ0JrVWhBU0FDUVFCSURRRUxJQVVwQTNCQ0FGTU5BQ0FGSUFVb0FnUkJBV3MyQWdRTElBRkZEUUlMUWRTQkFVRWNOZ0lBQzBJQUlSVWdCVUlBRUZOQ0FBd0JDeUFFS0FLUUJpSUJSUVJBSUFRZ0NiZEVBQUFBQUFBQUFBQ2lFRjBnQkNrREFDRVZJQVFwQXdnTUFRc2dGQ0FWVWlBVlFnbFZjaUFPUVI1TVFRQWdBU0FPZGh0eVJRUkFJQVJCTUdvZ0NSQkJJQVJCSUdvZ0FSQ1FBU0FFUVJCcUlBUXBBekFnQkNrRE9DQUVLUU1nSUFRcEF5Z1FHQ0FFS1FNUUlSVWdCQ2tER0F3QkN5QVBRWDV0clNBVVV3UkFRZFNCQVVIRUFEWUNBQ0FFUWVBQWFpQUpFRUVnQkVIUUFHb2dCQ2tEWUNBRUtRTm9RbjlDLy8vLy8vLy92Ly8vQUJBWUlBUkJRR3NnQkNrRFVDQUVLUU5ZUW45Qy8vLy8vLy8vdi8vL0FCQVlJQVFwQTBBaEZTQUVLUU5JREFFTElBOUI0Z0ZyckNBVVZRUkFRZFNCQVVIRUFEWUNBQ0FFUVpBQmFpQUpFRUVnQkVHQUFXb2dCQ2tEa0FFZ0JDa0RtQUZDQUVLQWdJQ0FnSURBQUJBWUlBUkI4QUJxSUFRcEE0QUJJQVFwQTRnQlFnQkNnSUNBZ0lDQXdBQVFHQ0FFS1FOd0lSVWdCQ2tEZUF3QkN5QUxCRUFnQzBFSVRBUkFJQVJCa0FacUlBTkJBblJxSWdFb0FnQWhCUU5BSUFWQkNtd2hCU0FMUVFGcUlndEJDVWNOQUFzZ0FTQUZOZ0lBQ3lBRFFRRnFJUU1MQWtBZ0RTQVVweUlIU2lBTlFRbE9jaUFIUVJGS2NnMEFJQWRCQ1VZRVFDQUVRY0FCYWlBSkVFRWdCRUd3QVdvZ0JDZ0NrQVlRa0FFZ0JFR2dBV29nQkNrRHdBRWdCQ2tEeUFFZ0JDa0RzQUVnQkNrRHVBRVFHQ0FFS1FPZ0FTRVZJQVFwQTZnQkRBSUxJQWRCQ0V3RVFDQUVRWkFDYWlBSkVFRWdCRUdBQW1vZ0JDZ0NrQVlRa0FFZ0JFSHdBV29nQkNrRGtBSWdCQ2tEbUFJZ0JDa0RnQUlnQkNrRGlBSVFHQ0FFUWVBQmFrRUFJQWRyUVFKMFFaQXBhaWdDQUJCQklBUkIwQUZxSUFRcEEvQUJJQVFwQS9nQklBUXBBK0FCSUFRcEErZ0JFT2tDSUFRcEE5QUJJUlVnQkNrRDJBRU1BZ3NnRGlBSFFYMXNha0ViYWlJQlFSNU1RUUFnQkNnQ2tBWWlBaUFCZGhzTkFDQUVRZUFDYWlBSkVFRWdCRUhRQW1vZ0FoQ1FBU0FFUWNBQ2FpQUVLUVBnQWlBRUtRUG9BaUFFS1FQUUFpQUVLUVBZQWhBWUlBUkJzQUpxSUFkQkFuUkJ5Q2hxS0FJQUVFRWdCRUdnQW1vZ0JDa0R3QUlnQkNrRHlBSWdCQ2tEc0FJZ0JDa0R1QUlRR0NBRUtRT2dBaUVWSUFRcEE2Z0NEQUVMQTBBZ0JFR1FCbW9nQXlJQ1FRRnJJZ05CQW5ScUtBSUFSUTBBQzBFQUlRc0NRQ0FIUVFsdklnRkZCRUJCQUNFQkRBRUxJQUVnQVVFSmFpQUhRUUJPR3lFREFrQWdBa1VFUUVFQUlRRkJBQ0VDREFFTFFZQ1U2OXdEUVFBZ0EydEJBblJCa0NscUtBSUFJZ1p0SVFwQkFDRUlRUUFoQlVFQUlRRURRQ0FFUVpBR2FpQUZRUUowYWlJTklBZ2dEU2dDQUNJTklBWnVJaEJxSWdnMkFnQWdBVUVCYWtIL0QzRWdBU0FJUlNBQklBVkdjU0lJR3lFQklBZEJDV3NnQnlBSUd5RUhJQW9nRFNBR0lCQnNhMndoQ0NBRlFRRnFJZ1VnQWtjTkFBc2dDRVVOQUNBRVFaQUdhaUFDUVFKMGFpQUlOZ0lBSUFKQkFXb2hBZ3NnQnlBRGEwRUphaUVIQ3dOQUFrQWdCMEVrVGdSQUlBZEJKRWNOQVNBRVFaQUdhaUFCUVFKMGFpZ0NBRUhSNmZrRVR3MEJDeUFDUWY4UGFpRUdRUUFoQ0FOQUlBaXRJQVJCa0FacUlBWkIvdzl4SWdOQkFuUnFJZ1kxQWdCQ0hZWjhJaFJDZ1pUcjNBTlVCSDlCQUFVZ0ZDQVVRb0NVNjl3RGdDSVZRb0NVNjl3RGZuMGhGQ0FWcHdzaENDQUdJQlNuSWdZMkFnQWdBaUFDSUFJZ0F5QUdHeUFCSUFOR0d5QURJQUpCQVd0Qi93OXhSeHNoQWlBRFFRRnJJUVlnQVNBRFJ3MEFDeUFMUVIxcklRc2dDRVVOQVNBQ0lBRkJBV3RCL3c5eElnRkdCRUFnQkVHUUJtb2lBeUFDUWY0UGFrSC9EM0ZCQW5ScUlnWWdCaWdDQUNBQ1FRRnJRZjhQY1NJQ1FRSjBJQU5xS0FJQWNqWUNBQXNnQjBFSmFpRUhJQVJCa0FacUlBRkJBblJxSUFnMkFnQU1BUXNMQWtBRFFDQUNRUUZxUWY4UGNTRURJQVJCa0FacUlBSkJBV3RCL3c5eFFRSjBhaUVJQTBBZ0FTRUdRUUFoQlFKQUFrQURRQUpBSUFVZ0JtcEIvdzl4SWdFZ0FrWU5BQ0FFUVpBR2FpQUJRUUowYWlnQ0FDSUJJQVZCQW5SQjRDaHFLQUlBSWdwSkRRQWdBU0FLU3cwQ0lBVkJBV29pQlVFRVJ3MEJDd3NnQjBFa1J3MEFRZ0FoRkVFQUlRVkNBQ0VWQTBBZ0FpQUZJQVpxUWY4UGNTSUJSZ1JBSUFKQkFXcEIvdzl4SWdKQkFuUWdCR3BCQURZQ2pBWUxJQVJCZ0FacUlCUWdGVUlBUW9DQWdJRGxtcmVPd0FBUUdDQUVRZkFGYWlBRVFaQUdhaUFCUVFKMGFpZ0NBQkNRQVNBRVFlQUZhaUFFS1FPQUJpQUVLUU9JQmlBRUtRUHdCU0FFS1FQNEJSQThJQVFwQStnRklSVWdCQ2tENEFVaEZDQUZRUUZxSWdWQkJFY05BQXNnQkVIUUJXb2dDUkJCSUFSQndBVnFJQlFnRlNBRUtRUFFCU0FFS1FQWUJSQVlJQVFwQThnRklSVkNBQ0VVSUFRcEE4QUZJUllnQzBIeEFHb2lCeUFQYXlJRFFRQWdBMEVBU2hzZ0RpQURJQTVJSWdVYklnRkI4QUJNRFFFTUJBdEJDVUVCSUFkQkxVb2JJZ29nQzJvaEN5QUdJQUlpQVVZTkFVR0FsT3ZjQXlBS2RpRU5RWDhnQ25SQmYzTWhFRUVBSVFVZ0JpRUJBMEFnQkVHUUJtb2dCa0VDZEdvaUVTQUZJQkVvQWdBaUVTQUtkbW9pQlRZQ0FDQUJRUUZxUWY4UGNTQUJJQVZGSUFFZ0JrWnhJZ1ViSVFFZ0IwRUpheUFISUFVYklRY2dFQ0FSY1NBTmJDRUZJQVpCQVdwQi93OXhJZ1lnQWtjTkFBc2dCVVVOQVNBQklBTkhCRUFnQkVHUUJtb2dBa0VDZEdvZ0JUWUNBQ0FESVFJTUF3c2dDQ0FJS0FJQVFRRnlOZ0lBSUFNaEFRd0JDd3NMSUFSQmtBVnFRZUVCSUFGckVOOEJFRjBnQkVHd0JXb2dCQ2tEa0FVZ0JDa0RtQVVnRmlBVkVPc0NJQVFwQTdnRklSa2dCQ2tEc0FVaEdDQUVRWUFGYWtIeEFDQUJheERmQVJCZElBUkJvQVZxSUJZZ0ZTQUVLUU9BQlNBRUtRT0lCUkRuQWlBRVFmQUVhaUFXSUJVZ0JDa0RvQVVpRkNBRUtRT29CU0lYRU40QklBUkI0QVJxSUJnZ0dTQUVLUVB3QkNBRUtRUDRCQkE4SUFRcEErZ0VJUlVnQkNrRDRBUWhGZ3NDUUNBR1FRUnFRZjhQY1NJS0lBSkdEUUFDUUNBRVFaQUdhaUFLUVFKMGFpZ0NBQ0lLUWYvSnRlNEJUUVJBSUFwRklBWkJCV3BCL3c5eElBSkdjUTBCSUFSQjhBTnFJQW0zUkFBQUFBQUFBTkEvb2hCZElBUkI0QU5xSUJRZ0Z5QUVLUVB3QXlBRUtRUDRBeEE4SUFRcEErZ0RJUmNnQkNrRDRBTWhGQXdCQ3lBS1FZREt0ZTRCUndSQUlBUkIwQVJxSUFtM1JBQUFBQUFBQU9nL29oQmRJQVJCd0FScUlCUWdGeUFFS1FQUUJDQUVLUVBZQkJBOElBUXBBOGdFSVJjZ0JDa0R3QVFoRkF3QkN5QUp0eUViSUFJZ0JrRUZha0gvRDNGR0JFQWdCRUdRQkdvZ0cwUUFBQUFBQUFEZ1A2SVFYU0FFUVlBRWFpQVVJQmNnQkNrRGtBUWdCQ2tEbUFRUVBDQUVLUU9JQkNFWElBUXBBNEFFSVJRTUFRc2dCRUd3QkdvZ0cwUUFBQUFBQUFEb1A2SVFYU0FFUWFBRWFpQVVJQmNnQkNrRHNBUWdCQ2tEdUFRUVBDQUVLUU9vQkNFWElBUXBBNkFFSVJRTElBRkI3d0JLRFFBZ0JFSFFBMm9nRkNBWFFnQkNnSUNBZ0lDQXdQOC9FT2NDSUFRcEE5QURJQVFwQTlnRFFnQkNBQkI3RFFBZ0JFSEFBMm9nRkNBWFFnQkNnSUNBZ0lDQXdQOC9FRHdnQkNrRHlBTWhGeUFFS1FQQUF5RVVDeUFFUWJBRGFpQVdJQlVnRkNBWEVEd2dCRUdnQTJvZ0JDa0RzQU1nQkNrRHVBTWdHQ0FaRU40QklBUXBBNmdESVJVZ0JDa0RvQU1oRmdKQVFYNGdFbXNnQjBILy8vLy9CM0ZPRFFBZ0JDQVZRdi8vLy8vLy8vLy8vd0NETndPWUF5QUVJQlkzQTVBRElBUkJnQU5xSUJZZ0ZVSUFRb0NBZ0lDQWdJRC9QeEFZSUFRcEE1QURJaGdnQkNrRG1BTWlHVUtBZ0lDQWdJQ0F1TUFBRU9BQklRSWdGU0FFS1FPSUF5QUNRUUJJSWdZYklSVWdGaUFFS1FPQUF5QUdHeUVXSUJNZ0N5QUNRUUJPYWlJTFFlNEFhazRFUUNBRklBVWdBU0FEUjNFZ0dDQVpRb0NBZ0lDQWdJQzR3QUFRNEFGQkFFZ2JRUUZIRFFFZ0ZDQVhRZ0JDQUJCN1JRMEJDMEhVZ1FGQnhBQTJBZ0FMSUFSQjhBSnFJQllnRlNBTEVPb0NJQVFwQS9BQ0lSVWdCQ2tEK0FJTElSUWdEQ0FWTndNZ0lBd2dGRGNES0NBRVFaREdBR29rQUNBTUtRTW9JUlFnRENrRElDRVZEQVFMSUFFcEEzQkNBRmtFUUNBQklBRW9BZ1JCQVdzMkFnUUxEQUVMQWtBQ2Z5QUJLQUlFSWdJZ0FTZ0NhRWNFUUNBQklBSkJBV28yQWdRZ0FpMEFBQXdCQ3lBQkVCSUxRU2hHQkVCQkFTRUZEQUVMUW9DQWdJQ0FnT0QvL3dBaEZDQUJLUU53UWdCVERRTWdBU0FCS0FJRVFRRnJOZ0lFREFNTEEwQUNmeUFCS0FJRUlnSWdBU2dDYUVjRVFDQUJJQUpCQVdvMkFnUWdBaTBBQUF3QkN5QUJFQklMSWdKQk1HdEJDa2tnQWtIQkFHdEJHa2x5SUFKQjN3Qkdja1VnQWtIaEFHdEJHazl4UlFSQUlBVkJBV29oQlF3QkN3dENnSUNBZ0lDQTRQLy9BQ0VVSUFKQktVWU5BaUFCS1FOd0loZENBRmtFUUNBQklBRW9BZ1JCQVdzMkFnUUxBa0FnQXdSQUlBVU5BUXdFQ3d3QkN3TkFJQVZCQVdzaEJTQVhRZ0JaQkVBZ0FTQUJLQUlFUVFGck5nSUVDeUFGRFFBTERBSUxRZFNCQVVFY05nSUFJQUZDQUJCVEMwSUFJUlFMSUFBZ0ZUY0RBQ0FBSUJRM0F3Z2dERUV3YWlRQUM4b0dBZ1IvQTM0akFFR0FBV3NpQlNRQUFrQUNRQUpBSUFNZ0JFSUFRZ0FRZTBVTkFBSi9JQVJDLy8vLy8vLy9QNE1oQ1FKL0lBUkNNSWluUWYvL0FYRWlCa0gvL3dGSEJFQkJCQ0FHRFFFYVFRSkJBeUFESUFtRVVCc01BZ3NnQXlBSmhGQUxDMFVOQUNBQ1FqQ0lweUlJUWYvL0FYRWlCa0gvL3dGSERRRUxJQVZCRUdvZ0FTQUNJQU1nQkJBWUlBVWdCU2tERUNJQklBVXBBeGdpQWlBQklBSVE2UUlnQlNrRENDRUNJQVVwQXdBaEJBd0JDeUFCSUFKQy8vLy8vLy8vUDRNZ0JxMUNNSWFFSWdvZ0F5QUVRdi8vLy8vLy96K0RJQVJDTUlpblFmLy9BWEVpQjYxQ01JYUVJZ2tRZTBFQVRBUkFJQUVnQ2lBRElBa1Fld1JBSUFFaEJBd0NDeUFGUWZBQWFpQUJJQUpDQUVJQUVCZ2dCU2tEZUNFQ0lBVXBBM0FoQkF3QkN5QUdCSDRnQVFVZ0JVSGdBR29nQVNBS1FnQkNnSUNBZ0lDQXdMdkFBQkFZSUFVcEEyZ2lDa0l3aUtkQitBQnJJUVlnQlNrRFlBc2hCQ0FIUlFSQUlBVkIwQUJxSUFNZ0NVSUFRb0NBZ0lDQWdNQzd3QUFRR0NBRktRTllJZ2xDTUlpblFmZ0FheUVISUFVcEExQWhBd3NnQ1VMLy8vLy8vLzgvZzBLQWdJQ0FnSURBQUlRaENTQUtRdi8vLy8vLy96K0RRb0NBZ0lDQWdNQUFoQ0VLSUFZZ0Iwb0VRQU5BQW40Z0NpQUpmU0FESUFSV3JYMGlDMElBV1FSQUlBc2dCQ0FEZlNJRWhGQUVRQ0FGUVNCcUlBRWdBa0lBUWdBUUdDQUZLUU1vSVFJZ0JTa0RJQ0VFREFVTElBdENBWVlnQkVJL2lJUU1BUXNnQ2tJQmhpQUVRaitJaEFzaENpQUVRZ0dHSVFRZ0JrRUJheUlHSUFkS0RRQUxJQWNoQmdzQ1FDQUtJQWw5SUFNZ0JGYXRmU0lKUWdCVEJFQWdDaUVKREFFTElBa2dCQ0FEZlNJRWhFSUFVZzBBSUFWQk1Hb2dBU0FDUWdCQ0FCQVlJQVVwQXpnaEFpQUZLUU13SVFRTUFRc2dDVUwvLy8vLy8vOC9XQVJBQTBBZ0JFSS9pQ0VCSUFaQkFXc2hCaUFFUWdHR0lRUWdBU0FKUWdHR2hDSUpRb0NBZ0lDQWdNQUFWQTBBQ3dzZ0NFR0FnQUp4SVFjZ0JrRUFUQVJBSUFWQlFHc2dCQ0FKUXYvLy8vLy8veitESUFaQitBQnFJQWR5clVJd2hvUkNBRUtBZ0lDQWdJREF3ejhRR0NBRktRTklJUUlnQlNrRFFDRUVEQUVMSUFsQy8vLy8vLy8vUDRNZ0JpQUhjcTFDTUlhRUlRSUxJQUFnQkRjREFDQUFJQUkzQXdnZ0JVR0FBV29rQUFzeUFDQUFRZjhCY1NJQUlBRVE3QUlpQVVGL2MzRkJBWFFnQUNBQmMyc2lBRUZxY1VFQmRDQUFRUlZ6YTBFWWRFRVlkUXVxRHdJRmZ3NStJd0JCMEFKcklnVWtBQ0FFUXYvLy8vLy8veitESVFzZ0FrTC8vLy8vLy84L2d5RUtJQUlnQklWQ2dJQ0FnSUNBZ0lDQWY0TWhEU0FFUWpDSXAwSC8vd0Z4SVFnQ1FBSkFJQUpDTUlpblFmLy9BWEVpQ1VFQmEwSDkvd0ZOQkVBZ0NFRUJhMEgrL3dGSkRRRUxJQUZRSUFKQy8vLy8vLy8vLy8vL0FJTWlERUtBZ0lDQWdJREEvLzhBVkNBTVFvQ0FnSUNBZ01ELy93QlJHMFVFUUNBQ1FvQ0FnSUNBZ0NDRUlRME1BZ3NnQTFBZ0JFTC8vLy8vLy8vLy8vOEFneUlDUW9DQWdJQ0FnTUQvL3dCVUlBSkNnSUNBZ0lDQXdQLy9BRkViUlFSQUlBUkNnSUNBZ0lDQUlJUWhEU0FESVFFTUFnc2dBU0FNUW9DQWdJQ0FnTUQvL3dDRmhGQUVRQ0FESUFKQ2dJQ0FnSUNBd1AvL0FJV0VVQVJBUWdBaEFVS0FnSUNBZ0lEZy8vOEFJUTBNQXdzZ0RVS0FnSUNBZ0lEQS8vOEFoQ0VOUWdBaEFRd0NDeUFESUFKQ2dJQ0FnSUNBd1AvL0FJV0VVQVJBUWdBaEFRd0NDeUFCSUF5RVVBUkFRb0NBZ0lDQWdPRC8vd0FnRFNBQ0lBT0VVQnNoRFVJQUlRRU1BZ3NnQWlBRGhGQUVRQ0FOUW9DQWdJQ0FnTUQvL3dDRUlRMUNBQ0VCREFJTElBeEMvLy8vLy8vL1AxZ0VRQ0FGUWNBQ2FpQUJJQW9nQVNBS0lBcFFJZ1liZVNBR1FRWjByWHluSWdaQkQyc1FMMEVRSUFacklRWWdCU2tEeUFJaENpQUZLUVBBQWlFQkN5QUNRdi8vLy8vLy96OVdEUUFnQlVHd0Ftb2dBeUFMSUFNZ0N5QUxVQ0lIRzNrZ0IwRUdkSzE4cHlJSFFROXJFQzhnQmlBSGFrRVFheUVHSUFVcEE3Z0NJUXNnQlNrRHNBSWhBd3NnQlVHZ0Ftb2dDMEtBZ0lDQWdJREFBSVFpRWtJUGhpQURRakdJaENJQ1FnQkNnSUNBZ0xEbXZJTDFBQ0FDZlNJRVFnQVFLeUFGUVpBQ2FrSUFJQVVwQTZnQ2ZVSUFJQVJDQUJBcklBVkJnQUpxSUFVcEE1Z0NRZ0dHSUFVcEE1QUNRaitJaENJRVFnQWdBa0lBRUNzZ0JVSHdBV29nQkVJQVFnQWdCU2tEaUFKOVFnQVFLeUFGUWVBQmFpQUZLUVA0QVVJQmhpQUZLUVB3QVVJL2lJUWlCRUlBSUFKQ0FCQXJJQVZCMEFGcUlBUkNBRUlBSUFVcEErZ0JmVUlBRUNzZ0JVSEFBV29nQlNrRDJBRkNBWVlnQlNrRDBBRkNQNGlFSWdSQ0FDQUNRZ0FRS3lBRlFiQUJhaUFFUWdCQ0FDQUZLUVBJQVgxQ0FCQXJJQVZCb0FGcUlBSkNBQ0FGS1FPNEFVSUJoaUFGS1FPd0FVSS9pSVJDQVgwaUFrSUFFQ3NnQlVHUUFXb2dBMElQaGtJQUlBSkNBQkFySUFWQjhBQnFJQUpDQUVJQUlBVXBBNmdCSUFVcEE2QUJJZ3dnQlNrRG1BRjhJZ1FnREZTdGZDQUVRZ0ZXclh4OVFnQVFLeUFGUVlBQmFrSUJJQVI5UWdBZ0FrSUFFQ3NnQmlBSklBaHJhaUVHQW44Z0JTa0RjQ0lUUWdHR0lnNGdCU2tEaUFFaUQwSUJoaUFGS1FPQUFVSS9pSVI4SWhCQzUrd0FmU0lVUWlDSUlnSWdDa0tBZ0lDQWdJREFBSVFpRlVJZmlFTC8vLy8vRDRNaUJINGlFU0FCUWdHR0lneENJSWdpQ3lBUUlCUldyU0FPSUJCV3JTQUZLUU40UWdHR0lCTkNQNGlFSUE5Q1A0aDhmSHhDQVgwaUUwSWdpQ0lRZm53aURpQVJWSzBnRGlBT0lCTkMvLy8vL3crREloTWdBVUkvaUNJV0lBcENBWWFFUXYvLy8vOFBneUlLZm53aURsYXRmQ0FFSUJCK2ZDQUVJQk4rSWhFZ0NpQVFmbndpRHlBUlZLMUNJSVlnRDBJZ2lJUjhJQTRnRGlBUFFpQ0dmQ0lPVnExOElBNGdEaUFVUXYvLy8vOFBneUlVSUFwK0loRWdBaUFMZm53aUR5QVJWSzBnRHlBUElCTWdERUwrLy8vL0Q0TWlFWDU4SWc5V3JYeDhJZzVXclh3Z0RpQUVJQlIrSWhjZ0VDQVJmbndpQkNBQ0lBcCtmQ0lLSUFzZ0UzNThJaEJDSUlnZ0NpQVFWcTBnQkNBWFZLMGdCQ0FLVnExOGZFSWdob1I4SWdRZ0RsU3RmQ0FFSUE4Z0FpQVJmaUlDSUFzZ0ZINThJZ3RDSUlnZ0FpQUxWcTFDSUlhRWZDSUNJQTlVclNBQ0lCQkNJSVo4SUFKVXJYeDhJZ0lnQkZTdGZDSUVRdi8vLy8vLy8vOEFXQVJBSUJWQ0FZWWdGb1FoRlNBRlFkQUFhaUFDSUFRZ0F5QVNFQ3NnQVVJeGhpQUZLUU5ZZlNBRktRTlFJZ0ZDQUZLdGZTRUtRZ0FnQVgwaEN5QUdRZjcvQUdvTUFRc2dCVUhnQUdvZ0JFSS9oaUFDUWdHSWhDSUNJQVJDQVlnaUJDQURJQklRS3lBQlFqQ0dJQVVwQTJoOUlBVXBBMkFpREVJQVVxMTlJUXBDQUNBTWZTRUxJQUVoRENBR1FmLy9BR29MSWdaQi8vOEJUZ1JBSUExQ2dJQ0FnSUNBd1AvL0FJUWhEVUlBSVFFTUFRc0NmaUFHUVFCS0JFQWdDa0lCaGlBTFFqK0loQ0VLSUFSQy8vLy8vLy8vUDRNZ0JxMUNNSWFFSVF3Z0MwSUJoZ3dCQ3lBR1FZOS9UQVJBUWdBaEFRd0NDeUFGUVVCcklBSWdCRUVCSUFackVId2dCVUV3YWlBTUlCVWdCa0h3QUdvUUx5QUZRU0JxSUFNZ0VpQUZLUU5BSWdJZ0JTa0RTQ0lNRUNzZ0JTa0RPQ0FGS1FNb1FnR0dJQVVwQXlBaUFVSS9pSVI5SUFVcEF6QWlCQ0FCUWdHR0lnRlVyWDBoQ2lBRUlBRjlDeUVFSUFWQkVHb2dBeUFTUWdOQ0FCQXJJQVVnQXlBU1FnVkNBQkFySUF3Z0FpQUNJQU1nQWtJQmd5SUJJQVI4SWdOVUlBb2dBU0FEVnExOElnRWdFbFlnQVNBU1VSdXRmQ0lDVnExOElnUWdBaUFDSUFSQ2dJQ0FnSUNBd1AvL0FGUWdBeUFGS1FNUVZpQUJJQVVwQXhnaUJGWWdBU0FFVVJ0eHJYd2lBbGF0ZkNJRUlBSWdCRUtBZ0lDQWdJREEvLzhBVkNBRElBVXBBd0JXSUFFZ0JTa0RDQ0lEVmlBQklBTlJHM0d0ZkNJQklBSlVyWHdnRFlRaERRc2dBQ0FCTndNQUlBQWdEVGNEQ0NBRlFkQUNhaVFBQzc4Q0FRRi9Jd0JCMEFCcklnUWtBQUpBSUFOQmdJQUJUZ1JBSUFSQklHb2dBU0FDUWdCQ2dJQ0FnSUNBZ1AvL0FCQVlJQVFwQXlnaEFpQUVLUU1nSVFFZ0EwSC8vd0ZJQkVBZ0EwSC8vd0JySVFNTUFnc2dCRUVRYWlBQklBSkNBRUtBZ0lDQWdJQ0EvLzhBRUJnZ0EwSDkvd0lnQTBIOS93SklHMEgrL3dGcklRTWdCQ2tER0NFQ0lBUXBBeEFoQVF3QkN5QURRWUdBZjBvTkFDQUVRVUJySUFFZ0FrSUFRb0NBZ0lDQWdJQTVFQmdnQkNrRFNDRUNJQVFwQTBBaEFTQURRZlNBZmtvRVFDQURRWTMvQUdvaEF3d0JDeUFFUVRCcUlBRWdBa0lBUW9DQWdJQ0FnSUE1RUJnZ0EwSG9nWDBnQTBIb2dYMUtHMEdhL2dGcUlRTWdCQ2tET0NFQ0lBUXBBekFoQVFzZ0JDQUJJQUpDQUNBRFFmLy9BR3F0UWpDR0VCZ2dBQ0FFS1FNSU53TUlJQUFnQkNrREFEY0RBQ0FFUWRBQWFpUUFDelVBSUFBZ0FUY0RBQ0FBSUFKQy8vLy8vLy8vUDRNZ0JFSXdpS2RCZ0lBQ2NTQUNRakNJcDBILy93RnhjcTFDTUlhRU53TUlDNDRCQVFOL0l3QkJFR3NoQVFOQVFleWNyOThESVFJQ1FBTkFJQUpCM2JiaHZBWkdEUUVnQWtHV3o4SytCRWNFUUNBQ1FleWNyOThEUncwQklBRWdBRFlDRENBQklBTTJBZ2hCbHMvQ3ZnUkIzYmJodkFZZ0FTZ0NEQnNoQWd3QkN3c2dBU2dDQ0NJQVFRRjBRUUp4SUFCQkFYTnFJUU1nQVNnQ0RDQUJLQUlNUVFGcmNTRUFEQUVMQ3lBQktBSUlDeXdBSUFBb0FnQWFJQUFvQWdBZ0FCQ0ZBV29hSUFBb0FnQWdBQkNKQVdvYUlBQW9BZ0FnQUJDRkFXb2FDd2NBSUFFZ0FHc0xDUUFnQUNBQkVPNENDeXNCQVg4Z0FDZ0NBQ0lCQkVBZ0FSRDdBa0YvRUY1RkJFQWdBQ2dDQUVVUEN5QUFRUUEyQWdBTFFRRUxLd0VCZnlBQUtBSUFJZ0VFUUNBQkVJQURRWDhRWGtVRVFDQUFLQUlBUlE4TElBQkJBRFlDQUF0QkFRc05BRUVBSUFBZ0FFRi9FRjRiQzQwQkFRUi9Jd0JCRUdzaUJTUUFJQUVnQWhEdkFpSUVRVzlOQkVBQ1FDQUVRUXBOQkVBZ0FDQUVFRG9nQUNFRERBRUxJQUFnQkJDUkFVRUJhaUlHRUY4aUF4Qk5JQUFnQmhCTUlBQWdCQkE1Q3dOQUlBRWdBa2NFUUNBRElBRVFOQ0FEUVFGcUlRTWdBVUVCYWlFQkRBRUxDeUFGUVFBNkFBOGdBeUFGUVE5cUVEUWdCVUVRYWlRQUR3c1FGd0FMNVFRQkIzOGdBQ2dDQkNBQUVFTW9BZ0JIQkVBakFFRVFheUlDSkFBZ0FpQUFOZ0lBSUFJZ0FDZ0NCQ0lETmdJRUlBSWdBMEVCYWpZQ0NDQUFFRU1nQWlnQ0JDQUJFSXdDSUFJZ0FpZ0NCRUVCYWpZQ0JDQUNFSWtDSUFKQkVHb2tBQThMSXdCQklHc2lCeVFBSUFBUVF5SUlBbjhnQjBFSWFpRUNBbjhnQUJDSkFVRUJhaUVHSXdCQkVHc2lCU1FBSUFVZ0JqWUNEQ01BUVJCcklnUWtBQ0FBRUVNYUlBUkJmellDRENBRVFmLy8vLzhITmdJSUlBUkJER29nQkVFSWFoQ2lBU2dDQUNFRElBUkJFR29rQUNBRElBWlBCRUFnQUJDRkFTSUVJQU5CQVhaSkJFQWdCU0FFUVFGME5nSUlJQVZCQ0dvZ0JVRU1haEIyS0FJQUlRTUxJQVZCRUdva0FDQUREQUVMUWFjYkVKWUNBQXNoQlNBQUVJa0JJUVpCQUNFREl3QkJFR3NpQkNRQUlBUkJBRFlDRENBQ1FReHFJQVJCREdvZ0NCQ0VBaUFGQkVBZ0FpZ0NFQm9nQlJCZklRTUxJQUlnQXpZQ0FDQUNJQU1nQm1vaUJqWUNDQ0FDSUFZMkFnUWdBaENEQVNBRElBVnFOZ0lBSUFSQkVHb2tBQ0FDS0FJSUN5QUJFSXdDSUFJZ0FpZ0NDRUVCYWpZQ0NDQUFFTzBDSUFBUVF5QUFLQUlBSUFBb0FnUWdBa0VFYWlJQkVJTUNJQUFnQVJCMUlBQkJCR29nQWtFSWFoQjFJQUFRUXlBQ0VJTUJFSFVnQWlBQ0tBSUVOZ0lBSUFBUWlRRWFJQUFvQWdBYUlBQW9BZ0FnQUJDRkFXb2FJQUFvQWdBZ0FCQ0ZBV29hSUFBb0FnQWFJQUlvQWdRaUFDQUNLQUlJUndSQUEwQWdBaWdDRUJvZ0FpQUNLQUlJUVFGck5nSUlJQUlvQWdnZ0FFY05BQXNMSUFJb0FnQUVRQ0FDS0FJUUdpQUNLQUlBSVFBZ0FoQ0RBU2dDQUNBQ0tBSUFheG9nQUJBUUN5QUhRU0JxSkFBTER3QWdBQ0FBS0FJWUlBRnFOZ0lZQ3hjQUlBQWdBallDSENBQUlBRTJBaFFnQUNBQk5nSVlDMVlCQW44Q1FDQUFLQUlBSWdKRkRRQUNmeUFDS0FJWUlnTWdBaWdDSEVZRVFDQUNJQUVnQWlnQ0FDZ0NOQkVDQUF3QkN5QUNJQU5CQkdvMkFoZ2dBeUFCTmdJQUlBRUxRWDhRWGtVTkFDQUFRUUEyQWdBTEN5WUJBWDhDUUNBQUtBSUFJZ0pGRFFBZ0FpQUJFUDRDUVg4UVhrVU5BQ0FBUVFBMkFnQUxDd2tBSUFBUTVBRVFFQXN4QVFGL0lBQW9BZ3dpQVNBQUtBSVFSZ1JBSUFBZ0FDZ0NBQ2dDS0JFQUFBOExJQUFnQVVFRWFqWUNEQ0FCS0FJQUN5Y0JBWDhnQUNnQ0RDSUJJQUFvQWhCR0JFQWdBQ0FBS0FJQUtBSWtFUUFBRHdzZ0FTZ0NBQXNRQUNBQUVQQUNJQUVROEFKelFRRnpDNHNFQVFaL0l3QkJJR3NpQWlRQUlBSkJBRFlDSENNQVFTQnJJZ1FrQUNBQ1FSaHFJZ1pCQURvQUFDQUFJQUFvQWdCQkRHc29BZ0JxRUxrQklRVWdBQ0FBS0FJQVFReHJLQUlBYWlFREFrQWdCUVJBSUFNb0FrZ0VRQ0FBSUFBb0FnQkJER3NvQWdCcUtBSklFSVlEQ3dKQUlBQWdBQ2dDQUVFTWF5Z0NBR29vQWdSQmdDQnhSUTBBSUFSQkdHb2lBeUFBSUFBb0FnQkJER3NvQWdCcUVBOGdBeEF5SVFjZ0F4QU9JQVJCRUdvZ0FCREFBU0VESUFSQkNHb1FoUU1oQlFOQUFrQWdBeUFGRURGRkRRQWdCMEdBd0FBZ0F4QWZFRVJGRFFBZ0F4QWlHZ3dCQ3dzZ0F5QUZFQ1pGRFFBZ0FDQUFLQUlBUVF4cktBSUFha0VHRUlBQkN5QUdJQUFnQUNnQ0FFRU1heWdDQUdvUXVRRTZBQUFNQVFzZ0EwRUVFSUFCQ3lBRVFTQnFKQUFnQmkwQUFBUkFJQUpCRUdvaUJDQUFJQUFvQWdCQkRHc29BZ0JxRUE4Z0JFSElod0VRWkNFRElBSkJDR29nQUJEQUFTRUdJQUlRaFFNaEJTQURJQVlvQWdBZ0JTZ0NBQ0FBSUFBb0FnQkJER3NvQWdCcUlBSkJIR29nQWtFVWFpQURLQUlBS0FJUUVRVUFHaUFFRUE0Z0FRSi9JQUlvQWhSQmdJQ0FnSGhJQkVBZ0FpQUNLQUljUVFSeU5nSWNRWUNBZ0lCNERBRUxJQUlvQWhSQi8vLy8vd2RLQkVBZ0FpQUNLQUljUVFSeU5nSWNRZi8vLy84SERBRUxJQUlvQWhRTE5nSUFJQUFnQUNnQ0FFRU1heWdDQUdvZ0FpZ0NIQkNBQVFzZ0FrRWdhaVFBQ3pzQkFYOGdBQ2dDR0NJQ0lBQW9BaHhHQkVBZ0FDQUJFR1VnQUNnQ0FDZ0NOQkVDQUE4TElBQWdBa0VCYWpZQ0dDQUNJQUU2QUFBZ0FSQmxDek1CQVg4Z0FDZ0NEQ0lCSUFBb0FoQkdCRUFnQUNBQUtBSUFLQUlvRVFBQUR3c2dBQ0FCUVFGcU5nSU1JQUVzQUFBUVpRc3BBUUYvSUFBb0Fnd2lBU0FBS0FJUVJnUkFJQUFnQUNnQ0FDZ0NKQkVBQUE4TElBRXNBQUFRWlFzUUFDQUFFUEVDSUFFUThRSnpRUUZ6QzQwQkFRRi9Ba0FnQUNnQ0JDSUJJQUVvQWdCQkRHc29BZ0JxS0FJWVJRMEFJQUFvQWdRaUFTQUJLQUlBUVF4cktBSUFhaEM1QVVVTkFDQUFLQUlFSWdFZ0FTZ0NBRUVNYXlnQ0FHb29BZ1JCZ01BQWNVVU5BQ0FBS0FJRUlnRWdBU2dDQUVFTWF5Z0NBR29vQWhnUWd3TkJmMGNOQUNBQUtBSUVJZ0FnQUNnQ0FFRU1heWdDQUdwQkFSQ0FBUXNMRHdBZ0FDQUFLQUlBS0FJWUVRQUFDMVVBSUFBZ0FUWUNCQ0FBUVFBNkFBQWdBU0FCS0FJQVFReHJLQUlBYWhDNUFRUkFJQUVnQVNnQ0FFRU1heWdDQUdvb0FrZ0VRQ0FCSUFFb0FnQkJER3NvQWdCcUtBSklFSVlEQ3lBQVFRRTZBQUFMSUFBTEN3QWdBRUVBTmdJQUlBQUxiZ0VDZnlNQVFSQnJJZ0VrQUNBQUlBQW9BZ0JCREdzb0FnQnFLQUlZQkVBQ1FDQUJRUWhxSUFBUWhBTWlBaTBBQUVVTkFDQUFJQUFvQWdCQkRHc29BZ0JxS0FJWUVJTURRWDlIRFFBZ0FDQUFLQUlBUVF4cktBSUFha0VCRUlBQkN5QUNFSUlEQ3lBQlFSQnFKQUFMQ1FBZ0FCRGxBUkFRQ3dRQVFYOEx4Z2dCQm44Z0FDQUJLQUFBSWdOQkdIUWdBMEVJZEVHQWdQd0hjWElnQTBFSWRrR0EvZ054SUFOQkdIWnljaUlGTmdJQUlBQWdBU2dBQkNJRFFSaDBJQU5CQ0hSQmdJRDhCM0Z5SUFOQkNIWkJnUDREY1NBRFFSaDJjbklpQmpZQ0JDQUFJQUVvQUFnaUEwRVlkQ0FEUVFoMFFZQ0EvQWR4Y2lBRFFRaDJRWUQrQTNFZ0EwRVlkbkp5SWdjMkFnZ2dBQ0FCS0FBTUlnTkJHSFFnQTBFSWRFR0FnUHdIY1hJZ0EwRUlka0dBL2dOeElBTkJHSFp5Y2lJRU5nSU1Ba0FnQWtHQUFVWUVRRUVBSVFNRFFDQUFJQVJCRm5aQi9BZHhRWUFJYWkwQUFTQUVRUTUyUWZ3SGNVR0FDR29vQWdCQkNIUkJnSUNBZUhFZ0JYTWdCRUVHZGtIOEIzRkJnQWhxTFFBQ1FSQjBjeUFFUWY4QmNVRUNkRUdBQ0dvdEFBRkJDSFJ6Y3lBRFFZQWFhaTBBQUVFWWRITWlCVFlDRUNBQUlBVWdCbk1pQmpZQ0ZDQUFJQVlnQjNNaUJ6WUNHQ0FBSUFRZ0IzTWlCRFlDSENBQVFSQnFJUUJCQ2lFQklBTkJBV29pQTBFS1J3MEFDd3dCQ3lBQUlBRW9BQkFpQTBFWWRDQURRUWgwUVlDQS9BZHhjaUFEUVFoMlFZRCtBM0VnQTBFWWRuSnlOZ0lRSUFBZ0FTZ0FGQ0lEUVJoMElBTkJDSFJCZ0lEOEIzRnlJQU5CQ0haQmdQNERjU0FEUVJoMmNuSWlBellDRkNBQ1FjQUJSZ1JBUVFBaEFRTkFJQUFnQTBFV2RrSDhCM0ZCZ0FocUxRQUJJQU5CRG5aQi9BZHhRWUFJYWlnQ0FFRUlkRUdBZ0lCNGNTQUZjeUFEUVFaMlFmd0hjVUdBQ0dvdEFBSkJFSFJ6SUFOQi93RnhRUUowUVlBSWFpMEFBVUVJZEhOeklBRkJnQnBxTFFBQVFSaDBjeUlGTmdJWUlBQWdCU0FHY3lJR05nSWNJQUFnQmlBSGN5SUhOZ0lnSUFBZ0JDQUhjeUlFTmdJa0lBRkJCMFlFUUVFTUR3VWdBQ0FBS0FJUUlBUnpJZ0kyQWlnZ0FDQUNJQU56SWdNMkFpd2dBVUVCYWlFQklBQkJHR29oQUF3QkN3QUxBQXNnQUNBQktBQVlJZ05CR0hRZ0EwRUlkRUdBZ1B3SGNYSWdBMEVJZGtHQS9nTnhJQU5CR0haeWNqWUNHQ0FBSUFFb0FCd2lBVUVZZENBQlFRaDBRWUNBL0FkeGNpQUJRUWgyUVlEK0EzRWdBVUVZZG5KeUlnTTJBaHhCZnlFQklBSkJnQUpIRFFCQkFDRUNRUTRoQVFOQUlBQWdBMEVXZGtIOEIzRkJnQWhxTFFBQklBTkJEblpCL0FkeFFZQUlhaWdDQUVFSWRFR0FnSUI0Y1NBRmN5QURRUVoyUWZ3SGNVR0FDR290QUFKQkVIUnpJQU5CL3dGeFFRSjBRWUFJYWkwQUFVRUlkSE56SUFKQmdCcHFMUUFBUVJoMGN5SUZOZ0lnSUFBZ0JTQUdjeUlHTmdJa0lBQWdCaUFIY3lJSE5nSW9JQUFnQkNBSGN5SUVOZ0lzSUFKQkJrWU5BU0FBSUFSQi93RnhRUUowUVlBSWFpMEFBU0FBS0FJUUlBUkJGblpCL0FkeFFZQUlhaWdDQUVFSWRFR0FnSUI0Y1hNZ0JFRU9ka0g4QjNGQmdBaHFMUUFDUVJCMGN5QUVRUVoyUWZ3SGNVR0FDR290QUFGQkNIUnpjeUlJTmdJd0lBQWdDQ0FBS0FJVWN5SUlOZ0kwSUFBZ0FDZ0NHQ0FJY3lJSU5nSTRJQUFnQXlBSWN5SUROZ0k4SUFKQkFXb2hBaUFBUVNCcUlRQU1BQXNBQ3lBQkN5NEFJQUFnQUNnQ0FDZ0NKQkVBQUVGL1JnUkFRWDhQQ3lBQUlBQW9BZ3dpQUVFQmFqWUNEQ0FBTEFBQUVHVUxCQUJCZnd1L0FRRUVmeU1BUVJCcklnUWtBQU5BQWtBZ0FpQUZUQTBBQWtBZ0FDZ0NEQ0lESUFBb0FoQWlCa2tFUUNBRVFmLy8vLzhITmdJTUlBUWdCaUFEYXpZQ0NDQUVJQUlnQldzMkFnUWdCRUVNYWlBRVFRaHFJQVJCQkdvUXVnRVF1Z0VoQXlBQklBQW9BZ3dnQXlnQ0FDSURFRlVnQUNBQUtBSU1JQU5xTmdJTURBRUxJQUFnQUNnQ0FDZ0NLQkVBQUNJRFFYOUdEUUVnQVNBREVKd0JPZ0FBUVFFaEF3c2dBU0FEYWlFQklBTWdCV29oQlF3QkN3c2dCRUVRYWlRQUlBVUxDUUFnQUVKL0VMc0JDd2tBSUFCQ2Z4QzdBUXNFQUNBQUN3a0FJQUFRdkFFUUVBc0lBQ0FBRUg0UUVBc0hBQ0FBS0FJTUN4QUFJd0FnQUd0QmNIRWlBQ1FBSUFBTEJnQWdBQ1FBQ3dRQUl3QUxEQUFnQUJEQkFSb2dBQkFRQ3drQUlBQVF3UUVRRUFzRkFFSCtHd3NiQUNBQUlBRW9BZ2dnQlJBK0JFQWdBU0FDSUFNZ0JCREVBUXNMT0FBZ0FDQUJLQUlJSUFVUVBnUkFJQUVnQWlBRElBUVF4QUVQQ3lBQUtBSUlJZ0FnQVNBQ0lBTWdCQ0FGSUFBb0FnQW9BaFFSQ1FBTGxnSUJCbjhnQUNBQktBSUlJQVVRUGdSQUlBRWdBaUFESUFRUXhBRVBDeUFCTFFBMUlRY2dBQ2dDRENFR0lBRkJBRG9BTlNBQkxRQTBJUWdnQVVFQU9nQTBJQUJCRUdvaUNTQUJJQUlnQXlBRUlBVVF3Z0VnQnlBQkxRQTFJZ3B5SVFjZ0NDQUJMUUEwSWd0eUlRZ0NRQ0FHUVFKSURRQWdDU0FHUVFOMGFpRUpJQUJCR0dvaEJnTkFJQUV0QURZTkFRSkFJQXNFUUNBQktBSVlRUUZHRFFNZ0FDMEFDRUVDY1EwQkRBTUxJQXBGRFFBZ0FDMEFDRUVCY1VVTkFnc2dBVUVBT3dFMElBWWdBU0FDSUFNZ0JDQUZFTUlCSUFFdEFEVWlDaUFIY2lFSElBRXRBRFFpQ3lBSWNpRUlJQVpCQ0dvaUJpQUpTUTBBQ3dzZ0FTQUhRZjhCY1VFQVJ6b0FOU0FCSUFoQi93RnhRUUJIT2dBMEM1SUJBQ0FBSUFFb0FnZ2dCQkErQkVBZ0FTQUNJQU1Rd3dFUEN3SkFJQUFnQVNnQ0FDQUVFRDVGRFFBQ1FDQUNJQUVvQWhCSEJFQWdBU2dDRkNBQ1J3MEJDeUFEUVFGSERRRWdBVUVCTmdJZ0R3c2dBU0FDTmdJVUlBRWdBellDSUNBQklBRW9BaWhCQVdvMkFpZ0NRQ0FCS0FJa1FRRkhEUUFnQVNnQ0dFRUNSdzBBSUFGQkFUb0FOZ3NnQVVFRU5nSXNDd3Z6QVFBZ0FDQUJLQUlJSUFRUVBnUkFJQUVnQWlBREVNTUJEd3NDUUNBQUlBRW9BZ0FnQkJBK0JFQUNRQ0FDSUFFb0FoQkhCRUFnQVNnQ0ZDQUNSdzBCQ3lBRFFRRkhEUUlnQVVFQk5nSWdEd3NnQVNBRE5nSWdBa0FnQVNnQ0xFRUVSZzBBSUFGQkFEc0JOQ0FBS0FJSUlnQWdBU0FDSUFKQkFTQUVJQUFvQWdBb0FoUVJDUUFnQVMwQU5RUkFJQUZCQXpZQ0xDQUJMUUEwUlEwQkRBTUxJQUZCQkRZQ0xBc2dBU0FDTmdJVUlBRWdBU2dDS0VFQmFqWUNLQ0FCS0FJa1FRRkhEUUVnQVNnQ0dFRUNSdzBCSUFGQkFUb0FOZzhMSUFBb0FnZ2lBQ0FCSUFJZ0F5QUVJQUFvQWdBb0FoZ1JDZ0FMQzUwRUFRTi9JQUFnQVNnQ0NDQUVFRDRFUUNBQklBSWdBeEREQVE4TEFrQWdBQ0FCS0FJQUlBUVFQZ1JBQWtBZ0FpQUJLQUlRUndSQUlBRW9BaFFnQWtjTkFRc2dBMEVCUncwQ0lBRkJBVFlDSUE4TElBRWdBellDSUNBQktBSXNRUVJIQkVBZ0FFRVFhaUlGSUFBb0FneEJBM1JxSVFkQkFDRURJQUVDZndKQUEwQUNRQ0FGSUFkUERRQWdBVUVBT3dFMElBVWdBU0FDSUFKQkFTQUVFTUlCSUFFdEFEWU5BQUpBSUFFdEFEVkZEUUFnQVMwQU5BUkFRUUVoQXlBQktBSVlRUUZHRFFSQkFTRUdJQUF0QUFoQkFuRU5BUXdFQzBFQklRWWdBQzBBQ0VFQmNVVU5Bd3NnQlVFSWFpRUZEQUVMQzBFRUlBWkZEUUVhQzBFREN6WUNMQ0FEUVFGeERRSUxJQUVnQWpZQ0ZDQUJJQUVvQWloQkFXbzJBaWdnQVNnQ0pFRUJSdzBCSUFFb0FoaEJBa2NOQVNBQlFRRTZBRFlQQ3lBQUtBSU1JUVVnQUVFUWFpSUdJQUVnQWlBRElBUVFvQUVnQlVFQ1NBMEFJQVlnQlVFRGRHb2hCaUFBUVJocUlRVUNRQ0FBS0FJSUlnQkJBbkZGQkVBZ0FTZ0NKRUVCUncwQkN3TkFJQUV0QURZTkFpQUZJQUVnQWlBRElBUVFvQUVnQlVFSWFpSUZJQVpKRFFBTERBRUxJQUJCQVhGRkJFQURRQ0FCTFFBMkRRSWdBU2dDSkVFQlJnMENJQVVnQVNBQ0lBTWdCQkNnQVNBRlFRaHFJZ1VnQmtrTkFBd0NDd0FMQTBBZ0FTMEFOZzBCSUFFb0FpUkJBVVlFUUNBQktBSVlRUUZHRFFJTElBVWdBU0FDSUFNZ0JCQ2dBU0FGUVFocUlnVWdCa2tOQUFzTEN3Y0FJQUFvQWdRTGJ3RUNmeUFBSUFFb0FnaEJBQkErQkVBZ0FTQUNJQU1ReGdFUEN5QUFLQUlNSVFRZ0FFRVFhaUlGSUFFZ0FpQURFUEFCQWtBZ0JFRUNTQTBBSUFVZ0JFRURkR29oQkNBQVFSaHFJUUFEUUNBQUlBRWdBaUFERVBBQklBRXRBRFlOQVNBQVFRaHFJZ0FnQkVrTkFBc0xDeklBSUFBZ0FTZ0NDRUVBRUQ0RVFDQUJJQUlnQXhER0FROExJQUFvQWdnaUFDQUJJQUlnQXlBQUtBSUFLQUljRVFnQUN4a0FJQUFnQVNnQ0NFRUFFRDRFUUNBQklBSWdBeERHQVFzTHVnTUJCWDhqQUVGQWFpSUVKQUFDZjBFQklBQWdBVUVBRUQ0TkFCcEJBQ0FCUlEwQUdpTUFRVUJxSWdNa0FDQUJLQUlBSWdWQkJHc29BZ0FoQmlBRlFRaHJLQUlBSVFjZ0EwRUFOZ0lVSUFOQnJQMEFOZ0lRSUFNZ0FUWUNEQ0FEUWR6OUFEWUNDRUVBSVFVZ0EwRVlha0VBUVNjUVJob2dBU0FIYWlFQkFrQWdCa0hjL1FCQkFCQStCRUFnQTBFQk5nSTRJQVlnQTBFSWFpQUJJQUZCQVVFQUlBWW9BZ0FvQWhRUkNRQWdBVUVBSUFNb0FpQkJBVVliSVFVTUFRc2dCaUFEUVFocUlBRkJBVUVBSUFZb0FnQW9BaGdSQ2dBQ1FBSkFJQU1vQWl3T0FnQUJBZ3NnQXlnQ0hFRUFJQU1vQWloQkFVWWJRUUFnQXlnQ0pFRUJSaHRCQUNBREtBSXdRUUZHR3lFRkRBRUxJQU1vQWlCQkFVY0VRQ0FES0FJd0RRRWdBeWdDSkVFQlJ3MEJJQU1vQWloQkFVY05BUXNnQXlnQ0dDRUZDeUFEUVVCckpBQkJBQ0FGSWdGRkRRQWFJQVJCQ0dvaUEwRUVja0VBUVRRUVJob2dCRUVCTmdJNElBUkJmellDRkNBRUlBQTJBaEFnQkNBQk5nSUlJQUVnQXlBQ0tBSUFRUUVnQVNnQ0FDZ0NIQkVJQUNBRUtBSWdJZ0JCQVVZRVFDQUNJQVFvQWhnMkFnQUxJQUJCQVVZTElRQWdCRUZBYXlRQUlBQUxCUUFRRndBTEF3QUFDd2tBUWR5S0FSQUtHZ3N2QUFKQVFlaUtBUzBBQUVFQmNRMEFRZWlLQVJBa1JRMEFRZHlLQVVIZzFRQVFoQUZCNklvQkVDTUxRZHlLQVFzSkFFSE1pZ0VRQ2hvTExnQUNRRUhZaWdFdEFBQkJBWEVOQUVIWWlnRVFKRVVOQUVITWlnRkI2aHNRVkJwQjJJb0JFQ01MUWN5S0FRc0pBRUc4aWdFUUNob0xMd0FDUUVISWlnRXRBQUJCQVhFTkFFSElpZ0VRSkVVTkFFRzhpZ0ZCak5VQUVJUUJRY2lLQVJBakMwRzhpZ0VMQ1FCQnJJb0JFQW9hQ3k0QUFrQkJ1SW9CTFFBQVFRRnhEUUJCdUlvQkVDUkZEUUJCcklvQlFkd2RFRlFhUWJpS0FSQWpDMEdzaWdFTENRQkJuSW9CRUFvYUN5OEFBa0JCcUlvQkxRQUFRUUZ4RFFCQnFJb0JFQ1JGRFFCQm5Jb0JRZWpVQUJDRUFVR29pZ0VRSXd0Qm5Jb0JDd2tBUVl5S0FSQUtHZ3N1QUFKQVFaaUtBUzBBQUVFQmNRMEFRWmlLQVJBa1JRMEFRWXlLQVVIM0hSQlVHa0dZaWdFUUl3dEJqSW9CQ3drQVFmeUpBUkFLR2dzdkFBSkFRWWlLQVMwQUFFRUJjUTBBUVlpS0FSQWtSUTBBUWZ5SkFVSEUxQUFRaEFGQmlJb0JFQ01MUWZ5SkFRc0pBRUhzaVFFUUNob0xMZ0FDUUVINGlRRXRBQUJCQVhFTkFFSDRpUUVRSkVVTkFFSHNpUUZCNWhvUVZCcEIrSWtCRUNNTFFleUpBUXNiQUVIb2tnRWhBQU5BSUFCQkRHc1FDaUlBUWRDU0FVY05BQXNMZlFBQ1FFSG9pUUV0QUFCQkFYRU5BRUhvaVFFUUpFVU5BQUpBUWVpU0FTMEFBRUVCY1EwQVFlaVNBUkFrUlEwQVFkQ1NBU0VBQTBBZ0FCQkhRUXhxSWdCQjZKSUJSdzBBQzBIb2tnRVFJd3RCMEpJQlFmRDdBQkFVUWR5U0FVSDgrd0FRRkVIa2lRRkIwSklCTmdJQVFlaUpBUkFqQzBIa2lRRW9BZ0FMR3dCQnlKSUJJUUFEUUNBQVFReHJFQW9pQUVHd2tnRkhEUUFMQzNzQUFrQkI0SWtCTFFBQVFRRnhEUUJCNElrQkVDUkZEUUFDUUVISWtnRXRBQUJCQVhFTkFFSElrZ0VRSkVVTkFFR3drZ0VoQUFOQUlBQVFFVUVNYWlJQVFjaVNBVWNOQUF0QnlKSUJFQ01MUWJDU0FVR0hIaEFWUWJ5U0FVR0VIaEFWUWR5SkFVR3drZ0UyQWdCQjRJa0JFQ01MUWR5SkFTZ0NBQXNiQUVHZ2tnRWhBQU5BSUFCQkRHc1FDaUlBUVlDUUFVY05BQXNMMlFJQUFrQkIySWtCTFFBQVFRRnhEUUJCMklrQkVDUkZEUUFDUUVHZ2tnRXRBQUJCQVhFTkFFR2drZ0VRSkVVTkFFR0FrQUVoQUFOQUlBQVFSMEVNYWlJQVFhQ1NBVWNOQUF0Qm9KSUJFQ01MUVlDUUFVSG85d0FRRkVHTWtBRkJpUGdBRUJSQm1KQUJRYXo0QUJBVVFhU1FBVUhFK0FBUUZFR3drQUZCM1BnQUVCUkJ2SkFCUWV6NEFCQVVRY2lRQVVHQStRQVFGRUhVa0FGQmxQa0FFQlJCNEpBQlFiRDVBQkFVUWV5UUFVSFkrUUFRRkVINGtBRkIrUGtBRUJSQmhKRUJRWno2QUJBVVFaQ1JBVUhBK2dBUUZFR2NrUUZCMFBvQUVCUkJxSkVCUWVENkFCQVVRYlNSQVVIdytnQVFGRUhBa1FGQjNQZ0FFQlJCekpFQlFZRDdBQkFVUWRpUkFVR1Erd0FRRkVIa2tRRkJvUHNBRUJSQjhKRUJRYkQ3QUJBVVFmeVJBVUhBK3dBUUZFR0lrZ0ZCMFBzQUVCUkJsSklCUWVEN0FCQVVRZFNKQVVHQWtBRTJBZ0JCMklrQkVDTUxRZFNKQVNnQ0FBc2JBRUh3andFaEFBTkFJQUJCREdzUUNpSUFRZENOQVVjTkFBc0x3UUlBQWtCQjBJa0JMUUFBUVFGeERRQkIwSWtCRUNSRkRRQUNRRUh3andFdEFBQkJBWEVOQUVId2p3RVFKRVVOQUVIUWpRRWhBQU5BSUFBUUVVRU1haUlBUWZDUEFVY05BQXRCOEk4QkVDTUxRZENOQVVHY0doQVZRZHlOQVVHVEdoQVZRZWlOQVVIZ0hCQVZRZlNOQVVIV0hCQVZRWUNPQVVIaUdoQVZRWXlPQVVITEhSQVZRWmlPQVVHa0doQVZRYVNPQVVHVUd4QVZRYkNPQVVHL0d4QVZRYnlPQVVHdUd4QVZRY2lPQVVHMkd4QVZRZFNPQVVISkd4QVZRZUNPQVVITEhCQVZRZXlPQVVIWUhSQVZRZmlPQVVIaUd4QVZRWVNQQVVHakd4QVZRWkNQQVVIaUdoQVZRWnlQQVVINkd4QVZRYWlQQVVIUEhCQVZRYlNQQVVIbUhCQVZRY0NQQVVIbUd4QVZRY3lQQVVHYkd4QVZRZGlQQVVHTUd4QVZRZVNQQVVIVUhSQVZRY3lKQVVIUWpRRTJBZ0JCMElrQkVDTUxRY3lKQVNnQ0FBc2JBRUhJalFFaEFBTkFJQUJCREdzUUNpSUFRYUNNQVVjTkFBc0w5UUVBQWtCQnlJa0JMUUFBUVFGeERRQkJ5SWtCRUNSRkRRQUNRRUhJalFFdEFBQkJBWEVOQUVISWpRRVFKRVVOQUVHZ2pBRWhBQU5BSUFBUVIwRU1haUlBUWNpTkFVY05BQXRCeUkwQkVDTUxRYUNNQVVHVTlRQVFGRUdzakFGQnNQVUFFQlJCdUl3QlFjejFBQkFVUWNTTUFVSHM5UUFRRkVIUWpBRkJsUFlBRUJSQjNJd0JRYmoyQUJBVVFlaU1BVUhVOWdBUUZFSDBqQUZCK1BZQUVCUkJnSTBCUVlqM0FCQVVRWXlOQVVHWTl3QVFGRUdZalFGQnFQY0FFQlJCcEkwQlFiajNBQkFVUWJDTkFVSEk5d0FRRkVHOGpRRkIyUGNBRUJSQnhJa0JRYUNNQVRZQ0FFSElpUUVRSXd0QnhJa0JLQUlBQ3hzQVFaaU1BU0VBQTBBZ0FFRU1heEFLSWdCQjhJb0JSdzBBQ3d2bkFRQUNRRUhBaVFFdEFBQkJBWEVOQUVIQWlRRVFKRVVOQUFKQVFaaU1BUzBBQUVFQmNRMEFRWmlNQVJBa1JRMEFRZkNLQVNFQUEwQWdBQkFSUVF4cUlnQkJtSXdCUncwQUMwR1lqQUVRSXd0QjhJb0JRYzBhRUJWQi9Jb0JRZFFhRUJWQmlJc0JRYklhRUJWQmxJc0JRYm9hRUJWQm9Jc0JRYWthRUJWQnJJc0JRZHNhRUJWQnVJc0JRY1FhRUJWQnhJc0JRZlliRUJWQjBJc0JRY01jRUJWQjNJc0JRY0VkRUJWQjZJc0JRZEFkRUJWQjlJc0JRWkFiRUJWQmdJd0JRZHdjRUJWQmpJd0JRWjhiRUJWQnZJa0JRZkNLQVRZQ0FFSEFpUUVRSXd0QnZJa0JLQUlBQ3dzQUlBQkJyTlFBRUlRQkN3b0FJQUJCeFIwUVZCb0xDd0FnQUVHWTFBQVFoQUVMQ2dBZ0FFRzhIUkJVR2dzTUFDQUFJQUZCRUdvUTBRRUxEQUFnQUNBQlFReHFFTkVCQ3djQUlBQXNBQWtMQndBZ0FDd0FDQXNKQUNBQUVJWUNFQkFMQ1FBZ0FCQ0hBaEFRQytZREFRVi9JQUloQUFOQUFrQWdCQ0FJVFNBQUlBTlBjZzBBSUFBc0FBQWlCa0gvQVhFaEFRSkFJQVpCQUU0RVFFRUJJUVlnQVVILy84TUFUUTBCREFJTElBRkJ3Z0ZKRFFFZ0FVSGZBVTBFUUNBRElBQnJRUUpJRFFJZ0FDMEFBU0lGUWNBQmNVR0FBVWNOQWtFQ0lRWWdCVUUvY1NBQlFRWjBRY0FQY1hKQi8vL0RBRTBOQVF3Q0N3SkFBa0FnQVVIdkFVMEVRQ0FESUFCclFRTklEUVFnQUMwQUFpRUhJQUF0QUFFaEJTQUJRZTBCUmcwQklBRkI0QUZHQkVBZ0JVSGdBWEZCb0FGR0RRTU1CUXNnQlVIQUFYRkJnQUZIRFFRTUFnc2dBeUFBYTBFRVNDQUJRZlFCUzNJTkF5QUFMUUFESVFjZ0FDMEFBaUVKSUFBdEFBRWhCUUpBQWtBQ1FBSkFJQUZCOEFGckRnVUFBZ0lDQVFJTElBVkI4QUJxUWY4QmNVRXdTUTBDREFZTElBVkI4QUZ4UVlBQlJnMEJEQVVMSUFWQndBRnhRWUFCUncwRUN5QUpRY0FCY1VHQUFVY2dCMEhBQVhGQmdBRkhjZzBEUVFRaEJpQUhRVDl4SUFsQkJuUkJ3Qjl4SUFGQkVuUkJnSUR3QUhFZ0JVRS9jVUVNZEhKeWNrSC8vOE1BU3cwRERBSUxJQVZCNEFGeFFZQUJSdzBDQ3lBSFFjQUJjVUdBQVVjTkFVRURJUVlnQjBFL2NTQUJRUXgwUVlEZ0EzRWdCVUUvY1VFR2RISnlRZi8vd3dCTERRRUxJQWhCQVdvaENDQUFJQVpxSVFBTUFRc0xJQUFnQW1zTDRnUUJCWDhqQUVFUWF5SUFKQUFnQUNBQ05nSU1JQUFnQlRZQ0NBSi9JQUFnQWpZQ0RDQUFJQVUyQWdnQ1FBSkFBMEFDUUNBQUtBSU1JZ0lnQTA4TkFDQUFLQUlJSWd3Z0JrOE5BQ0FDTEFBQUlnVkIvd0Z4SVFFQ1FDQUZRUUJPQkVBZ0FVSC8vOE1BVFFSQVFRRWhCUXdDQzBFQ0RBWUxRUUloQ2lBQlFjSUJTUTBESUFGQjN3Rk5CRUFnQXlBQ2EwRUNTQTBGSUFJdEFBRWlDRUhBQVhGQmdBRkhEUVJCQWlFRklBaEJQM0VnQVVFR2RFSEFEM0Z5SWdGQi8vL0RBRTBOQVF3RUN5QUJRZThCVFFSQUlBTWdBbXRCQTBnTkJTQUNMUUFDSVFrZ0FpMEFBU0VJQWtBQ1FDQUJRZTBCUndSQUlBRkI0QUZIRFFFZ0NFSGdBWEZCb0FGR0RRSU1Cd3NnQ0VIZ0FYRkJnQUZHRFFFTUJnc2dDRUhBQVhGQmdBRkhEUVVMSUFsQndBRnhRWUFCUncwRVFRTWhCU0FKUVQ5eElBRkJESFJCZ09BRGNTQUlRVDl4UVFaMGNuSWlBVUgvLzhNQVRRMEJEQVFMSUFGQjlBRkxEUU1nQXlBQ2EwRUVTQTBFSUFJdEFBTWhDU0FDTFFBQ0lRc2dBaTBBQVNFSUFrQUNRQUpBQWtBZ0FVSHdBV3NPQlFBQ0FnSUJBZ3NnQ0VId0FHcEIvd0Z4UVRCSkRRSU1CZ3NnQ0VId0FYRkJnQUZHRFFFTUJRc2dDRUhBQVhGQmdBRkhEUVFMSUF0QndBRnhRWUFCUnlBSlFjQUJjVUdBQVVkeURRTkJCQ0VGSUFsQlAzRWdDMEVHZEVIQUgzRWdBVUVTZEVHQWdQQUFjU0FJUVQ5eFFReDBjbkp5SWdGQi8vL0RBRXNOQXdzZ0RDQUJOZ0lBSUFBZ0FpQUZhallDRENBQUlBQW9BZ2hCQkdvMkFnZ01BUXNMSUFJZ0Ewa2hDZ3NnQ2d3QkMwRUJDeUVCSUFRZ0FDZ0NERFlDQUNBSElBQW9BZ2cyQWdBZ0FFRVFhaVFBSUFFTGpnUUFJd0JCRUdzaUFDUUFJQUFnQWpZQ0RDQUFJQVUyQWdnQ2Z5QUFJQUkyQWd3Z0FDQUZOZ0lJSUFBb0Fnd2hBUUpBQTBBZ0FTQURUd1JBUVFBaEFnd0NDMEVDSVFJZ0FTZ0NBQ0lCUVlCd2NVR0FzQU5HSUFGQi8vL0RBRXR5RFFFQ1FBSkFJQUZCL3dCTkJFQkJBU0VDSUFZZ0FDZ0NDQ0lGYTBFQVRBMEVJQUFnQlVFQmFqWUNDQ0FGSUFFNkFBQU1BUXNnQVVIL0QwMEVRQ0FHSUFBb0FnZ2lBbXRCQWtnTkFpQUFJQUpCQVdvMkFnZ2dBaUFCUVFaMlFjQUJjam9BQUNBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFGQlAzRkJnQUZ5T2dBQURBRUxJQVlnQUNnQ0NDSUNheUVGSUFGQi8vOERUUVJBSUFWQkEwZ05BaUFBSUFKQkFXbzJBZ2dnQWlBQlFReDJRZUFCY2pvQUFDQUFJQUFvQWdnaUFrRUJhallDQ0NBQ0lBRkJCblpCUDNGQmdBRnlPZ0FBSUFBZ0FDZ0NDQ0lDUVFGcU5nSUlJQUlnQVVFL2NVR0FBWEk2QUFBTUFRc2dCVUVFU0EwQklBQWdBa0VCYWpZQ0NDQUNJQUZCRW5aQjhBRnlPZ0FBSUFBZ0FDZ0NDQ0lDUVFGcU5nSUlJQUlnQVVFTWRrRS9jVUdBQVhJNkFBQWdBQ0FBS0FJSUlnSkJBV28yQWdnZ0FpQUJRUVoyUVQ5eFFZQUJjam9BQUNBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFGQlAzRkJnQUZ5T2dBQUN5QUFJQUFvQWd4QkJHb2lBVFlDREF3QkN3dEJBUXdCQ3lBQ0N5RUJJQVFnQUNnQ0REWUNBQ0FISUFBb0FnZzJBZ0FnQUVFUWFpUUFJQUVMN2dNQkJIOGdBaUVBQTBBQ1FDQUVJQVpOSUFBZ0EwOXlEUUFnQUMwQUFDSUJRZi8vd3dCTERRQUNmeUFBUVFGcUlBRkJHSFJCR0hWQkFFNE5BQm9nQVVIQ0FVa05BU0FCUWQ4QlRRUkFJQU1nQUd0QkFrZ05BaUFBTFFBQklnVkJ3QUZ4UVlBQlJ5QUZRVDl4SUFGQkJuUkJ3QTl4Y2tILy84TUFTM0lOQWlBQVFRSnFEQUVMQWtBQ1FDQUJRZThCVFFSQUlBTWdBR3RCQTBnTkJDQUFMUUFDSVFjZ0FDMEFBU0VGSUFGQjdRRkdEUUVnQVVIZ0FVWUVRQ0FGUWVBQmNVR2dBVVlOQXd3RkN5QUZRY0FCY1VHQUFVY05CQXdDQ3lBRElBQnJRUVJJSUFGQjlBRkxjaUFFSUFaclFRSkpjZzBESUFBdEFBTWhCeUFBTFFBQ0lRZ2dBQzBBQVNFRkFrQUNRQUpBQWtBZ0FVSHdBV3NPQlFBQ0FnSUJBZ3NnQlVId0FHcEIvd0Z4UVRCSkRRSU1CZ3NnQlVId0FYRkJnQUZHRFFFTUJRc2dCVUhBQVhGQmdBRkhEUVFMSUFoQndBRnhRWUFCUnlBSFFjQUJjVUdBQVVkeUlBZEJQM0VnQ0VFR2RFSEFIM0VnQVVFU2RFR0FnUEFBY1NBRlFUOXhRUXgwY25KeVFmLy93d0JMY2cwRElBWkJBV29oQmlBQVFRUnFEQUlMSUFWQjRBRnhRWUFCUncwQ0N5QUhRY0FCY1VHQUFVY2dCMEUvY1NBQlFReDBRWURnQTNFZ0JVRS9jVUVHZEhKeVFmLy93d0JMY2cwQklBQkJBMm9MSVFBZ0JrRUJhaUVHREFFTEN5QUFJQUpyQzlNRkFRUi9Jd0JCRUdzaUFDUUFJQUFnQWpZQ0RDQUFJQVUyQWdnQ2Z5QUFJQUkyQWd3Z0FDQUZOZ0lJQWtBQ1FBSkFBMEFDUUNBQUtBSU1JZ0VnQTA4TkFDQUFLQUlJSWdVZ0JrOE5BRUVDSVFvZ0FTMEFBQ0lDUWYvL3d3QkxEUVFnQUFKL0lBSkJHSFJCR0hWQkFFNEVRQ0FGSUFJN0FRQWdBVUVCYWd3QkN5QUNRY0lCU1EwRklBSkIzd0ZOQkVBZ0F5QUJhMEVDU0EwRklBRXRBQUVpQ0VIQUFYRkJnQUZIRFFRZ0NFRS9jU0FDUVFaMFFjQVBjWElpQWtILy84TUFTdzBFSUFVZ0Fqc0JBQ0FCUVFKcURBRUxJQUpCN3dGTkJFQWdBeUFCYTBFRFNBMEZJQUV0QUFJaENTQUJMUUFCSVFnQ1FBSkFJQUpCN1FGSEJFQWdBa0hnQVVjTkFTQUlRZUFCY1VHZ0FVWU5BZ3dIQ3lBSVFlQUJjVUdBQVVZTkFRd0dDeUFJUWNBQmNVR0FBVWNOQlFzZ0NVSEFBWEZCZ0FGSERRUWdDVUUvY1NBSVFUOXhRUVowSUFKQkRIUnljaUlDUWYvL0EzRkIvLy9EQUVzTkJDQUZJQUk3QVFBZ0FVRURhZ3dCQ3lBQ1FmUUJTdzBGUVFFaENpQURJQUZyUVFSSURRTWdBUzBBQXlFSklBRXRBQUloQ0NBQkxRQUJJUUVDUUFKQUFrQUNRQ0FDUWZBQmF3NEZBQUlDQWdFQ0N5QUJRZkFBYWtIL0FYRkJNRThOQ0F3Q0N5QUJRZkFCY1VHQUFVY05Cd3dCQ3lBQlFjQUJjVUdBQVVjTkJnc2dDRUhBQVhGQmdBRkhJQWxCd0FGeFFZQUJSM0lOQlNBR0lBVnJRUVJJRFFOQkFpRUtJQWxCUDNFaUNTQUlRUVowSWd0QndCOXhJQUZCREhSQmdPQVBjU0FDUVFkeElnSkJFblJ5Y25KQi8vL0RBRXNOQXlBRklBaEJCSFpCQTNFZ0FVRUNkQ0lCUWNBQmNTQUNRUWgwY2lBQlFUeHhjbkpCd1A4QWFrR0FzQU55T3dFQUlBQWdCVUVDYWpZQ0NDQUZJQXRCd0FkeElBbHlRWUM0QTNJN0FRSWdBQ2dDREVFRWFnczJBZ3dnQUNBQUtBSUlRUUpxTmdJSURBRUxDeUFCSUFOSklRb0xJQW9NQWd0QkFRd0JDMEVDQ3lFQklBUWdBQ2dDRERZQ0FDQUhJQUFvQWdnMkFnQWdBRUVRYWlRQUlBRUwrZ1VCQVg4akFFRVFheUlBSkFBZ0FDQUNOZ0lNSUFBZ0JUWUNDQUovSUFBZ0FqWUNEQ0FBSUFVMkFnZ2dBQ2dDRENFQ0FrQUNRQU5BSUFJZ0EwOEVRRUVBSVFVTUF3dEJBaUVGSUFJdkFRQWlBVUgvLzhNQVN3MENBa0FDUUNBQlFmOEFUUVJBUVFFaEJTQUdJQUFvQWdnaUFtdEJBRXdOQlNBQUlBSkJBV28yQWdnZ0FpQUJPZ0FBREFFTElBRkIvdzlOQkVBZ0JpQUFLQUlJSWdKclFRSklEUVFnQUNBQ1FRRnFOZ0lJSUFJZ0FVRUdka0hBQVhJNkFBQWdBQ0FBS0FJSUlnSkJBV28yQWdnZ0FpQUJRVDl4UVlBQmNqb0FBQXdCQ3lBQlFmK3ZBMDBFUUNBR0lBQW9BZ2dpQW10QkEwZ05CQ0FBSUFKQkFXbzJBZ2dnQWlBQlFReDJRZUFCY2pvQUFDQUFJQUFvQWdnaUFrRUJhallDQ0NBQ0lBRkJCblpCUDNGQmdBRnlPZ0FBSUFBZ0FDZ0NDQ0lDUVFGcU5nSUlJQUlnQVVFL2NVR0FBWEk2QUFBTUFRc2dBVUgvdHdOTkJFQkJBU0VGSUFNZ0FtdEJCRWdOQlNBQ0x3RUNJZ2hCZ1BnRGNVR0F1QU5IRFFJZ0JpQUFLQUlJYTBFRVNBMEZJQWhCL3dkeElBRkJDblJCZ1BnRGNTQUJRY0FIY1NJRlFRcDBjbkpCZ0lBRWFrSC8vOE1BU3cwQ0lBQWdBa0VDYWpZQ0RDQUFJQUFvQWdnaUFrRUJhallDQ0NBQ0lBVkJCblpCQVdvaUFrRUNka0h3QVhJNkFBQWdBQ0FBS0FJSUlnVkJBV28yQWdnZ0JTQUNRUVIwUVRCeElBRkJBblpCRDNGeVFZQUJjam9BQUNBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFoQkJuWkJEM0VnQVVFRWRFRXdjWEpCZ0FGeU9nQUFJQUFnQUNnQ0NDSUJRUUZxTmdJSUlBRWdDRUUvY1VHQUFYSTZBQUFNQVFzZ0FVR0F3QU5KRFFRZ0JpQUFLQUlJSWdKclFRTklEUU1nQUNBQ1FRRnFOZ0lJSUFJZ0FVRU1ka0hnQVhJNkFBQWdBQ0FBS0FJSUlnSkJBV28yQWdnZ0FpQUJRUVoyUVQ5eFFZQUJjam9BQUNBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFGQlAzRkJnQUZ5T2dBQUN5QUFJQUFvQWd4QkFtb2lBallDREF3QkN3dEJBZ3dDQzBFQkRBRUxJQVVMSVFFZ0JDQUFLQUlNTmdJQUlBY2dBQ2dDQ0RZQ0FDQUFRUkJxSkFBZ0FRc1ZBQ0FBS0FJSUlnQkZCRUJCQVE4TElBQVFpZ0lMa0FFQkJuOERRQUpBSUFJZ0EwWWdCQ0FJVFhJTkFFRUJJUWNnQUNnQ0NDRUZJd0JCRUdzaUJpUUFJQVlnQlRZQ0RDQUdRUWhxSUFaQkRHb1FVaUVLUVFBZ0FpQURJQUpySUFGQnRJY0JJQUViRUxjQklRVWdDaEJSSUFaQkVHb2tBQUpBQWtBZ0JVRUNhZzREQWdJQkFBc2dCU0VIQ3lBSVFRRnFJUWdnQnlBSmFpRUpJQUlnQjJvaEFnd0JDd3NnQ1F0bUFRTi9JQUFvQWdnaEFpTUFRUkJySWdFa0FDQUJJQUkyQWd3Z0FVRUlhaUFCUVF4cUVGSWhBaU1BUVJCcklnTWtBQ0FEUVJCcUpBQkJBQ0VESUFJUVVTQUJRUkJxSkFBZ0F3Ui9RWDhGSUFBb0FnZ2lBRVVFUUVFQkR3c2dBQkNLQWtFQlJnc0xrZ0VCQVg4akFFRVFheUlGSkFBZ0JDQUNOZ0lBQW45QkFpQUZRUXhxUVFBZ0FDZ0NDQkRMQVNJQVFRRnFRUUpKRFFBYVFRRWdBRUVCYXlJQklBTWdCQ2dDQUd0TERRQWFJQVZCREdvaEFnTi9JQUVFZnlBQ0xRQUFJUUFnQkNBRUtBSUFJZ05CQVdvMkFnQWdBeUFBT2dBQUlBRkJBV3NoQVNBQ1FRRnFJUUlNQVFWQkFBc0xDeUVDSUFWQkVHb2tBQ0FDQzhzR0FReC9Jd0JCRUdzaUVTUUFJQUloQ0FOQUFrQWdBeUFJUmdSQUlBTWhDQXdCQ3lBSUxRQUFSUTBBSUFoQkFXb2hDQXdCQ3dzZ0J5QUZOZ0lBSUFRZ0FqWUNBQU5BQWtBQ2Z3SkFJQUlnQTBZZ0JTQUdSbklOQUNBUklBRXBBZ0EzQXdnZ0FDZ0NDQ0VKSXdCQkVHc2lFQ1FBSUJBZ0NUWUNEQ0FRUVFocUlCQkJER29RVWlFVElBZ2dBbXNoRFVFQUlRb2pBRUdRQ0dzaUN5UUFJQXNnQkNnQ0FDSU9OZ0lNSUFVZ0MwRVFhaUFGR3lFUEFrQUNRQUpBSUE1RklBWWdCV3RCQW5WQmdBSWdCUnNpREVWeURRQURRQ0FOUVFKMklna2dERWtnRFVHREFVMXhEUUlnRHlBTFFReHFJQXdnQ1NBSklBeFBHeUFCRU5JQ0loSkJmMFlFUUVGL0lRcEJBQ0VNSUFzb0Fnd2hEZ3dDQ3lBTVFRQWdFaUFQSUF0QkVHcEdHeUlKYXlFTUlBOGdDVUVDZEdvaER5QU5JQTVxSUFzb0Fnd2lEbXRCQUNBT0d5RU5JQW9nRW1vaENpQU9SUTBCSUF3TkFBc0xJQTVGRFFFTElBeEZJQTFGY2cwQUlBb2hDUU5BQWtBQ1FDQVBJQTRnRFNBQkVMY0JJZ3BCQW1wQkFrMEVRQUpBQWtBZ0NrRUJhZzRDQmdBQkN5QUxRUUEyQWd3TUFnc2dBVUVBTmdJQURBRUxJQXNnQ3lnQ0RDQUthaUlPTmdJTUlBbEJBV29oQ1NBTVFRRnJJZ3dOQVFzZ0NTRUtEQUlMSUE5QkJHb2hEeUFOSUFwcklRMGdDU0VLSUEwTkFBc0xJQVVFUUNBRUlBc29BZ3cyQWdBTElBdEJrQWhxSkFBZ0NpRUpJQk1RVVNBUVFSQnFKQUFDUUFKQUFrQUNRQ0FKUVg5R0JFQURRQUpBSUFjZ0JUWUNBQ0FDSUFRb0FnQkdEUUJCQVNFR0FrQUNRQUpBSUFVZ0FpQUlJQUpySUJGQkNHb2dBQ2dDQ0JDTEFpSUJRUUpxRGdNSUFBSUJDeUFFSUFJMkFnQU1CUXNnQVNFR0N5QUNJQVpxSVFJZ0J5Z0NBRUVFYWlFRkRBRUxDeUFFSUFJMkFnQU1CUXNnQnlBSEtBSUFJQWxCQW5ScUlnVTJBZ0FnQlNBR1JnMERJQVFvQWdBaEFpQURJQWhHQkVBZ0F5RUlEQWdMSUFVZ0FrRUJJQUVnQUNnQ0NCQ0xBa1VOQVF0QkFnd0VDeUFISUFjb0FnQkJCR28yQWdBZ0JDQUVLQUlBUVFGcUlnSTJBZ0FnQWlFSUEwQWdBeUFJUmdSQUlBTWhDQXdHQ3lBSUxRQUFSUTBGSUFoQkFXb2hDQXdBQ3dBTElBUWdBallDQUVFQkRBSUxJQVFvQWdBaEFnc2dBaUFEUndzaEFDQVJRUkJxSkFBZ0FBOExJQWNvQWdBaEJRd0FDd0FMc3dVQkRIOGpBRUVRYXlJTkpBQWdBaUVJQTBBQ1FDQURJQWhHQkVBZ0F5RUlEQUVMSUFnb0FnQkZEUUFnQ0VFRWFpRUlEQUVMQ3lBSElBVTJBZ0FnQkNBQ05nSUFBMEFDUUFKQUlBSWdBMFlnQlNBR1JuSUVmeUFDQlNBTklBRXBBZ0EzQXdoQkFTRVFJQUFvQWdnaENTTUFRUkJySWc0a0FDQU9JQWsyQWd3Z0RrRUlhaUFPUVF4cUVGSWhFeUFHSUFVaUNXc2hDa0VBSVE4akFFRVFheUlSSkFBQ1FDQUVLQUlBSWd0RklBZ2dBbXRCQW5VaUVrVnlEUUFnQ2tFQUlBa2JJUW9EUUNBUlFReHFJQWtnQ2tFRVNSc2dDeWdDQUJEYUFTSU1RWDlHQkVCQmZ5RVBEQUlMSUFrRWZ5QUtRUU5OQkVBZ0NpQU1TUTBESUFrZ0VVRU1haUFNRUVJYUN5QUtJQXhySVFvZ0NTQU1hZ1ZCQUFzaENTQUxLQUlBUlFSQVFRQWhDd3dDQ3lBTUlBOXFJUThnQzBFRWFpRUxJQkpCQVdzaUVnMEFDd3NnQ1FSQUlBUWdDellDQUFzZ0VVRVFhaVFBSUE4aENTQVRFRkVnRGtFUWFpUUFBa0FDUUFKQUFrQUNRQ0FKUVFGcURnSUFCZ0VMSUFjZ0JUWUNBQU5BQWtBZ0FpQUVLQUlBUmcwQUlBVWdBaWdDQUNBQUtBSUlFTXNCSWdGQmYwWU5BQ0FISUFjb0FnQWdBV29pQlRZQ0FDQUNRUVJxSVFJTUFRc0xJQVFnQWpZQ0FBd0JDeUFISUFjb0FnQWdDV29pQlRZQ0FDQUZJQVpHRFFJZ0F5QUlSZ1JBSUFRb0FnQWhBaUFESVFnTUJ3c2dEVUVFYWtFQUlBQW9BZ2dReXdFaUNFRi9SdzBCQzBFQ0lSQU1Bd3NnRFVFRWFpRUNJQVlnQnlnQ0FHc2dDRWtOQWdOQUlBZ0VRQ0FDTFFBQUlRVWdCeUFIS0FJQUlnbEJBV28yQWdBZ0NTQUZPZ0FBSUFoQkFXc2hDQ0FDUVFGcUlRSU1BUXNMSUFRZ0JDZ0NBRUVFYWlJQ05nSUFJQUloQ0FOQUlBTWdDRVlFUUNBRElRZ01CUXNnQ0NnQ0FFVU5CQ0FJUVFScUlRZ01BQXNBQ3lBRUtBSUFDeUFEUnlFUUN5QU5RUkJxSkFBZ0VBOExJQWNvQWdBaEJRd0FDd0FMQ1FBZ0FCQ1lBaEFRQ3pjQUl3QkJFR3NpQUNRQUlBQWdCRFlDRENBQUlBTWdBbXMyQWdnZ0FFRU1haUFBUVFocUVLSUJLQUlBSVFFZ0FFRVFhaVFBSUFFTE5BQURRQ0FCSUFKR1JRUkFJQVFnQVN3QUFDSUFJQU1nQUVFQVRoczZBQUFnQkVFQmFpRUVJQUZCQVdvaEFRd0JDd3NnQWdzTUFDQUJJQUlnQVVFQVRoc0xLZ0FEUUNBQklBSkdSUVJBSUFNZ0FTMEFBRG9BQUNBRFFRRnFJUU1nQVVFQmFpRUJEQUVMQ3lBQ0MwQUFBMEFnQVNBQ1J3UkFJQUVnQVN3QUFDSUFRUUJPQkg5QjBNUUFLQUlBSUFFc0FBQkJBblJxS0FJQUJTQUFDem9BQUNBQlFRRnFJUUVNQVFzTElBSUxKd0FnQVVFQVRnUi9RZERFQUNnQ0FDQUJRZjhCY1VFQ2RHb29BZ0FGSUFFTFFSaDBRUmgxQ3o4QUEwQWdBU0FDUndSQUlBRWdBU3dBQUNJQVFRQk9CSDlCd0Rnb0FnQWdBU3dBQUVFQ2RHb29BZ0FGSUFBTE9nQUFJQUZCQVdvaEFRd0JDd3NnQWdzbUFDQUJRUUJPQkg5QndEZ29BZ0FnQVVIL0FYRkJBblJxS0FJQUJTQUJDMEVZZEVFWWRRc0pBQ0FBRUk0Q0VCQUxOUUFEUUNBQklBSkdSUVJBSUFRZ0FTZ0NBQ0lBSUFNZ0FFR0FBVWtiT2dBQUlBUkJBV29oQkNBQlFRUnFJUUVNQVFzTElBSUxFd0FnQVNBQ0lBRkJnQUZKRzBFWWRFRVlkUXNxQUFOQUlBRWdBa1pGQkVBZ0F5QUJMQUFBTmdJQUlBTkJCR29oQXlBQlFRRnFJUUVNQVFzTElBSUxRUUFEUUNBQklBSkhCRUFnQVNBQktBSUFJZ0JCL3dCTkJIOUIwTVFBS0FJQUlBRW9BZ0JCQW5ScUtBSUFCU0FBQ3pZQ0FDQUJRUVJxSVFFTUFRc0xJQUlMSGdBZ0FVSC9BRTBFZjBIUXhBQW9BZ0FnQVVFQ2RHb29BZ0FGSUFFTEMwQUFBMEFnQVNBQ1J3UkFJQUVnQVNnQ0FDSUFRZjhBVFFSL1FjQTRLQUlBSUFFb0FnQkJBblJxS0FJQUJTQUFDellDQUNBQlFRUnFJUUVNQVFzTElBSUxIUUFnQVVIL0FFMEVmMEhBT0NnQ0FDQUJRUUowYWlnQ0FBVWdBUXNMUkFBQ1FBTkFJQUlnQTBZTkFRSkFJQUlvQWdCQi93QkxEUUJCc0RJb0FnQWdBaWdDQUVFQmRHb3ZBUUFnQVhGRkRRQWdBa0VFYWlFQ0RBRUxDeUFDSVFNTElBTUxRd0FEUUFKQUlBSWdBMGNFZnlBQ0tBSUFRZjhBU3cwQlFiQXlLQUlBSUFJb0FnQkJBWFJxTHdFQUlBRnhSUTBCSUFJRklBTUxEd3NnQWtFRWFpRUNEQUFMQUF0RkFBTkFJQUVnQWtjRVFDQURJQUVvQWdCQi93Qk5CSDlCc0RJb0FnQWdBU2dDQUVFQmRHb3ZBUUFGUVFBTE93RUFJQU5CQW1vaEF5QUJRUVJxSVFFTUFRc0xJQUlMSXdBZ0FrSC9BRTBFZjBHd01pZ0NBQ0FDUVFGMGFpOEJBQ0FCY1VFQVJ3VkJBQXNMUUFFQ2Z5QUFLQUlBS0FJQUlnQW9BZ0FnQUNnQ0NDSUNRUUYxYWlFQklBQW9BZ1FoQUNBQklBSkJBWEVFZnlBQktBSUFJQUJxS0FJQUJTQUFDeEVCQUFzUEFDQUFJQUFvQWdBb0FnUVJBUUFMSHdBZ0FBSi9RZmlJQVVINGlBRW9BZ0JCQVdvaUFEWUNBQ0FBQ3pZQ0JBc0pBQ0FBRUpNQ0VCQUxtQUVBSXdCQkVHc2lBeVFBQWtBZ0JSQTFSUVJBSUFBZ0JTZ0NDRFlDQ0NBQUlBVXBBZ0EzQWdBTUFRc2dCU2dDQUNFRUFrQUNRQUpBSUFVb0FnUWlBa0VCVFFSQUlBQWhBU0FBSUFJUU9nd0JDeUFDUWUvLy8vOERTdzBCSUFBZ0FDQUNFSUlCUVFGcUlnVVFnUUVpQVJCTklBQWdCUkJNSUFBZ0FoQTVDeUFCSUFRZ0FrRUJhaEJ4REFFTEVCY0FDd3NnQTBFUWFpUUFDd2tBSUFBZ0JSRFJBUXVHQXdFSWZ5TUFRZkFEYXlJQUpBQWdBRUhvQTJvaUJpQURFQThnQmhBN0lRb2dCUkFKQkVBZ0JVRUFFTEVCS0FJQUlBcEJMUkE5UmlFTEN5QUNJQXNnQUVIb0Eyb2dBRUhnQTJvZ0FFSGNBMm9nQUVIWUEyb2dBRUhJQTJvUUVTSU1JQUJCdUFOcUVFY2lCaUFBUWFnRGFoQkhJZ2NnQUVHa0Eyb1Ftd0lnQUVFMU5nSVFJQUJCQ0dwQkFDQUFRUkJxSWdJUUhpRUlBa0FDZnlBRkVBa2dBQ2dDcEFOS0JFQWdCUkFKSVFrZ0FDZ0NwQU1oRFNBSEVBa2dDU0FOYTBFQmRHb2dCaEFKYWlBQUtBS2tBMnBCQVdvTUFRc2dCeEFKSUFZUUNXb2dBQ2dDcEFOcVFRSnFDeUlKUWVVQVNRMEFJQWdnQ1VFQ2RCQVpFQ2NnQ0NnQ0FDSUNEUUFRRndBTElBSWdBRUVFYWlBQUlBTW9BZ1FnQlJBTklBVVFEU0FGRUFsQkFuUnFJQW9nQ3lBQVFlQURhaUFBS0FMY0F5QUFLQUxZQXlBTUlBWWdCeUFBS0FLa0F4Q2FBaUFCSUFJZ0FDZ0NCQ0FBS0FJQUlBTWdCQkJpSVFFZ0NCQWRJQWNRQ2hvZ0JoQUtHaUFNRUFvYUlBQkI2QU5xRUE0Z0FFSHdBMm9rQUNBQkM3c0VBUXQvSXdCQnNBaHJJZ0FrQUNBQUlBVTNBeEFnQUNBR053TVlJQUFnQUVIQUIyb2lCellDdkFjZ0J5QUFRUkJxRU5ZQ0lRY2dBRUUxTmdLZ0JDQUFRWmdFYWtFQUlBQkJvQVJxSWdrUUhpRU9JQUJCTlRZQ29BUWdBRUdRQkdwQkFDQUpFQjRoQ2dKQUlBZEI1QUJQQkVBUUZpRUhJQUFnQlRjREFDQUFJQVkzQXdnZ0FFRzhCMm9nQjBIdUhDQUFFRm9pQjBGL1JnMEJJQTRnQUNnQ3ZBY1FKeUFLSUFkQkFuUVFHUkFuSUFvUW5nSU5BU0FLS0FJQUlRa0xJQUJCaUFScUlnZ2dBeEFQSUFnUU95SVJJQUFvQXJ3SElnZ2dCeUFJYWlBSkVHTWdCMEVBU2dSQUlBQW9BcndITFFBQVFTMUdJUThMSUFJZ0R5QUFRWWdFYWlBQVFZQUVhaUFBUWZ3RGFpQUFRZmdEYWlBQVFlZ0RhaEFSSWhBZ0FFSFlBMm9RUnlJSUlBQkJ5QU5xRUVjaUN5QUFRY1FEYWhDYkFpQUFRVFUyQWpBZ0FFRW9ha0VBSUFCQk1Hb2lBaEFlSVF3Q2Z5QUFLQUxFQXlJTklBZElCRUFnQ3hBSklBY2dEV3RCQVhScUlBZ1FDV29nQUNnQ3hBTnFRUUZxREFFTElBc1FDU0FJRUFscUlBQW9Bc1FEYWtFQ2Fnc2lEVUhsQUU4RVFDQU1JQTFCQW5RUUdSQW5JQXdvQWdBaUFrVU5BUXNnQWlBQVFTUnFJQUJCSUdvZ0F5Z0NCQ0FKSUFrZ0IwRUNkR29nRVNBUElBQkJnQVJxSUFBb0F2d0RJQUFvQXZnRElCQWdDQ0FMSUFBb0FzUURFSm9DSUFFZ0FpQUFLQUlrSUFBb0FpQWdBeUFFRUdJaEFTQU1FQjBnQ3hBS0dpQUlFQW9hSUJBUUNob2dBRUdJQkdvUURpQUtFQjBnRGhBZElBQkJzQWhxSkFBZ0FROExFQmNBQy80Q0FRaC9Jd0JCd0FGcklnQWtBQ0FBUWJnQmFpSUdJQU1RRHlBR0VESWhDaUFGRUFrRVFDQUZRUUFRQ3kwQUFDQUtRUzBRS1VIL0FYRkdJUXNMSUFJZ0N5QUFRYmdCYWlBQVFiQUJhaUFBUWE4QmFpQUFRYTRCYWlBQVFhQUJhaEFSSWd3Z0FFR1FBV29RRVNJR0lBQkJnQUZxRUJFaUJ5QUFRZndBYWhDZEFpQUFRVFUyQWhBZ0FFRUlha0VBSUFCQkVHb2lBaEFlSVFnQ1FBSi9JQVVRQ1NBQUtBSjhTZ1JBSUFVUUNTRUpJQUFvQW53aERTQUhFQWtnQ1NBTmEwRUJkR29nQmhBSmFpQUFLQUo4YWtFQmFnd0JDeUFIRUFrZ0JoQUphaUFBS0FKOGFrRUNhZ3NpQ1VIbEFFa05BQ0FJSUFrUUdSQW5JQWdvQWdBaUFnMEFFQmNBQ3lBQ0lBQkJCR29nQUNBREtBSUVJQVVRRFNBRkVBMGdCUkFKYWlBS0lBc2dBRUd3QVdvZ0FDd0Fyd0VnQUN3QXJnRWdEQ0FHSUFjZ0FDZ0NmQkNjQWlBQklBSWdBQ2dDQkNBQUtBSUFJQU1nQkJCV0lRRWdDQkFkSUFjUUNob2dCaEFLR2lBTUVBb2FJQUJCdUFGcUVBNGdBRUhBQVdva0FDQUJDN0lFQVF0L0l3QkIwQU5ySWdBa0FDQUFJQVUzQXhBZ0FDQUdOd01ZSUFBZ0FFSGdBbW9pQnpZQzNBSWdCeUFBUVJCcUVOWUNJUWNnQUVFMU5nTHdBU0FBUWVnQmFrRUFJQUJCOEFGcUlna1FIaUVPSUFCQk5UWUM4QUVnQUVIZ0FXcEJBQ0FKRUI0aENnSkFJQWRCNUFCUEJFQVFGaUVISUFBZ0JUY0RBQ0FBSUFZM0F3Z2dBRUhjQW1vZ0IwSHVIQ0FBRUZvaUIwRi9SZzBCSUE0Z0FDZ0MzQUlRSnlBS0lBY1FHUkFuSUFvUW5nSU5BU0FLS0FJQUlRa0xJQUJCMkFGcUlnZ2dBeEFQSUFnUU1pSVJJQUFvQXR3Q0lnZ2dCeUFJYWlBSkVHOGdCMEVBU2dSQUlBQW9BdHdDTFFBQVFTMUdJUThMSUFJZ0R5QUFRZGdCYWlBQVFkQUJhaUFBUWM4QmFpQUFRYzRCYWlBQVFjQUJhaEFSSWhBZ0FFR3dBV29RRVNJSUlBQkJvQUZxRUJFaUN5QUFRWndCYWhDZEFpQUFRVFUyQWpBZ0FFRW9ha0VBSUFCQk1Hb2lBaEFlSVF3Q2Z5QUFLQUtjQVNJTklBZElCRUFnQ3hBSklBY2dEV3RCQVhScUlBZ1FDV29nQUNnQ25BRnFRUUZxREFFTElBc1FDU0FJRUFscUlBQW9BcHdCYWtFQ2Fnc2lEVUhsQUU4RVFDQU1JQTBRR1JBbklBd29BZ0FpQWtVTkFRc2dBaUFBUVNScUlBQkJJR29nQXlnQ0JDQUpJQWNnQ1dvZ0VTQVBJQUJCMEFGcUlBQXNBTThCSUFBc0FNNEJJQkFnQ0NBTElBQW9BcHdCRUp3Q0lBRWdBaUFBS0FJa0lBQW9BaUFnQXlBRUVGWWhBU0FNRUIwZ0N4QUtHaUFJRUFvYUlCQVFDaG9nQUVIWUFXb1FEaUFLRUIwZ0RoQWRJQUJCMEFOcUpBQWdBUThMRUJjQUM2Y0ZBUU4vSXdCQndBTnJJZ0FrQUNBQUlBSTJBckFESUFBZ0FUWUN1QU1nQUVFMk5nSVVJQUJCR0dvZ0FFRWdhaUFBUVJScUlnY1FIaUVKSUFCQkVHb2lBU0FFRUE4Z0FSQTdJUWdnQUVFQU9nQVBJQUJCdUFOcUlBSWdBeUFCSUFRb0FnUWdCU0FBUVE5cUlBZ2dDU0FISUFCQnNBTnFFS1FDQkVBakFFRVFheUlCSkFBQ1FDQUdFRFVFUUNBR0tBSUFJUUlnQVVFQU5nSU1JQUlnQVVFTWFoQXpJQVpCQUJBNURBRUxJQUZCQURZQ0NDQUdJQUZCQ0dvUU15QUdRUUFRT2dzZ0FVRVFhaVFBSUFBdEFBOEVRQ0FHSUFoQkxSQTlFTWNCQ3lBSVFUQVFQU0VCSUFrb0FnQWhCQ0FBS0FJVUlnaEJCR3NoQWdOQUFrQWdBaUFFVFEwQUlBUW9BZ0FnQVVjTkFDQUVRUVJxSVFRTUFRc0xJd0JCRUdzaUFTUUFJQVlRQ1NFQ0lBWVF6d0VoQXdKQUlBUWdDQkNpQWlJSFJRMEFJQVlRRFNBRVRRUi9JQVFnQmhBTklBWVFDVUVDZEdwTkJVRUFDMFVFUUNBSElBTWdBbXRMQkVBZ0JpQURJQUlnQjJvZ0Eyc2dBaUFDRVBNQkN5QUdFQTBnQWtFQ2RHb2hBd05BSUFRZ0NFY0VRQ0FESUFRUU15QUVRUVJxSVFRZ0EwRUVhaUVEREFFTEN5QUJRUUEyQWdBZ0F5QUJFRE1nQmlBQ0lBZHFFSGdNQVFzakFFRVFheUlDSkFBZ0FTQUVJQWdRemdJZ0FrRVFhaVFBSUFFUURTRUlJQUVRQ1NFQ0l3QkJFR3NpQkNRQUFrQWdBaUFHRU04QklnY2dCaEFKSWdOclRRUkFJQUpGRFFFZ0JoQU5JZ2NnQTBFQ2RHb2dDQ0FDRUhFZ0JpQUNJQU5xSWdJUWVDQUVRUUEyQWd3Z0J5QUNRUUowYWlBRVFReHFFRE1NQVFzZ0JpQUhJQUlnQTJvZ0Iyc2dBeUFEUVFBZ0FpQUlFUFFCQ3lBRVFSQnFKQUFnQVJBS0dnc2dBVUVRYWlRQUN5QUFRYmdEYWlBQVFiQURhaEFvQkVBZ0JTQUZLQUlBUVFKeU5nSUFDeUFBS0FLNEF5RUJJQUJCRUdvUURpQUpFQjBnQUVIQUEyb2tBQ0FCQzljREFRSi9Jd0JCOEFScklnQWtBQ0FBSUFJMkF1QUVJQUFnQVRZQzZBUWdBRUUyTmdJUUlBQkJ5QUZxSUFCQjBBRnFJQUJCRUdvUUhpRUJJQUJCd0FGcUlnY2dCQkFQSUFjUU95RUlJQUJCQURvQXZ3RUNRQ0FBUWVnRWFpQUNJQU1nQnlBRUtBSUVJQVVnQUVHL0FXb2dDQ0FCSUFCQnhBRnFJQUJCNEFScUVLUUNSUTBBSUFCQm94NG9BQUEyQUxjQklBQkJuQjRwQUFBM0E3QUJJQWdnQUVHd0FXb2dBRUc2QVdvZ0FFR0FBV29RWXlBQVFUVTJBaEFnQUVFSWFrRUFJQUJCRUdvaUFoQWVJUU1DUUNBQUtBTEVBU0FCS0FJQWEwR0pBMDRFUUNBRElBQW9Bc1FCSUFFb0FnQnJRUUoxUVFKcUVCa1FKeUFES0FJQVJRMEJJQU1vQWdBaEFnc2dBQzBBdndFRVFDQUNRUzA2QUFBZ0FrRUJhaUVDQ3lBQktBSUFJUVFEUUNBQUtBTEVBU0FFVFFSQUFrQWdBa0VBT2dBQUlBQWdCallDQUNBQVFSQnFJQUFRMXdKQkFVY05BQ0FERUIwTUJBc0ZJQUlnQUVHd0FXb2dBRUdBQVdvaUJ5QUhRU2hxSUFRUTBnRWdCMnRCQW5WcUxRQUFPZ0FBSUFKQkFXb2hBaUFFUVFScUlRUU1BUXNMRUJjQUN4QVhBQXNnQUVIb0JHb2dBRUhnQkdvUUtBUkFJQVVnQlNnQ0FFRUNjallDQUFzZ0FDZ0M2QVFoQWlBQVFjQUJhaEFPSUFFUUhTQUFRZkFFYWlRQUlBSUxwQVVCQTM4akFFR2dBV3NpQUNRQUlBQWdBallDa0FFZ0FDQUJOZ0tZQVNBQVFUWTJBaFFnQUVFWWFpQUFRU0JxSUFCQkZHb2lCeEFlSVFrZ0FFRVFhaUlCSUFRUUR5QUJFREloQ0NBQVFRQTZBQThnQUVHWUFXb2dBaUFESUFFZ0JDZ0NCQ0FGSUFCQkQyb2dDQ0FKSUFjZ0FFR0VBV29RcXdJRVFDTUFRUkJySWdFa0FBSkFJQVlRTlFSQUlBWW9BZ0FoQWlBQlFRQTZBQThnQWlBQlFROXFFRFFnQmtFQUVEa01BUXNnQVVFQU9nQU9JQVlnQVVFT2FoQTBJQVpCQUJBNkN5QUJRUkJxSkFBZ0FDMEFEd1JBSUFZZ0NFRXRFQ2tRb1FFTElBaEJNQkFwSVFFZ0NTZ0NBQ0VFSUFBb0FoUWlDRUVCYXlFQ0lBRkIvd0Z4SVFFRFFBSkFJQUlnQkUwTkFDQUVMUUFBSUFGSERRQWdCRUVCYWlFRURBRUxDeU1BUVJCcklnRWtBQ0FHRUFraEFpQUdFQk1oQXdKQUlBUWdDQkR2QWlJSFJRMEFJQVlRRFNBRVRRUi9JQVFnQmhBTklBWVFDV3BOQlVFQUMwVUVRQ0FISUFNZ0FtdExCRUFnQmlBRElBSWdCMm9nQTJzZ0FpQUNFTWdCQ3lBR0VBMGdBbW9oQXdOQUlBUWdDRWNFUUNBRElBUVFOQ0FFUVFGcUlRUWdBMEVCYWlFRERBRUxDeUFCUVFBNkFBOGdBeUFCUVE5cUVEUWdCaUFDSUFkcUVIZ01BUXNqQUVFUWF5SUNKQUFnQVNBRUlBZ1E4d0lnQWtFUWFpUUFJQUVRRFNFSUlBRVFDU0VDSXdCQkVHc2lCQ1FBQWtBZ0FpQUdFQk1pQnlBR0VBa2lBMnROQkVBZ0FrVU5BU0FHRUEwaUJ5QURhaUFJSUFJUVZTQUdJQUlnQTJvaUFoQjRJQVJCQURvQUR5QUNJQWRxSUFSQkQyb1FOQXdCQ3lBR0lBY2dBaUFEYWlBSGF5QURJQU5CQUNBQ0lBZ1ErQUVMSUFSQkVHb2tBQ0FCRUFvYUN5QUJRUkJxSkFBTElBQkJtQUZxSUFCQmtBRnFFQ1lFUUNBRklBVW9BZ0JCQW5JMkFnQUxJQUFvQXBnQklRRWdBRUVRYWhBT0lBa1FIU0FBUWFBQmFpUUFJQUVMelFNQkFuOGpBRUdnQW1zaUFDUUFJQUFnQWpZQ2tBSWdBQ0FCTmdLWUFpQUFRVFkyQWhBZ0FFR1lBV29nQUVHZ0FXb2dBRUVRYWhBZUlRRWdBRUdRQVdvaUJ5QUVFQThnQnhBeUlRZ2dBRUVBT2dDUEFRSkFJQUJCbUFKcUlBSWdBeUFISUFRb0FnUWdCU0FBUVk4QmFpQUlJQUVnQUVHVUFXb2dBRUdFQW1vUXF3SkZEUUFnQUVHakhpZ0FBRFlBaHdFZ0FFR2NIaWtBQURjRGdBRWdDQ0FBUVlBQmFpQUFRWW9CYWlBQVFmWUFhaEJ2SUFCQk5UWUNFQ0FBUVFocVFRQWdBRUVRYWlJQ0VCNGhBd0pBSUFBb0FwUUJJQUVvQWdCclFlTUFUZ1JBSUFNZ0FDZ0NsQUVnQVNnQ0FHdEJBbW9RR1JBbklBTW9BZ0JGRFFFZ0F5Z0NBQ0VDQ3lBQUxRQ1BBUVJBSUFKQkxUb0FBQ0FDUVFGcUlRSUxJQUVvQWdBaEJBTkFJQUFvQXBRQklBUk5CRUFDUUNBQ1FRQTZBQUFnQUNBR05nSUFJQUJCRUdvZ0FCRFhBa0VCUncwQUlBTVFIUXdFQ3dVZ0FpQUFRZllBYWlJSElBZEJDbW9nQkJEVkFTQUFheUFBYWkwQUNqb0FBQ0FDUVFGcUlRSWdCRUVCYWlFRURBRUxDeEFYQUFzUUZ3QUxJQUJCbUFKcUlBQkJrQUpxRUNZRVFDQUZJQVVvQWdCQkFuSTJBZ0FMSUFBb0FwZ0NJUUlnQUVHUUFXb1FEaUFCRUIwZ0FFR2dBbW9rQUNBQ0M1Z0NBUUovSXdCQm9BTnJJZ2drQUNBSUlBaEJvQU5xSWdNMkFnd2pBRUdRQVdzaUJ5UUFJQWNnQjBHRUFXbzJBaHdnQUVFSWFpQUhRU0JxSWdJZ0IwRWNhaUFFSUFVZ0JoQ3hBaUFIUWdBM0F4QWdCeUFDTmdJTUlBaEJFR29pQWlBSUtBSU1FSzRDSVFRZ0FDZ0NDQ0VGSXdCQkVHc2lBQ1FBSUFBZ0JUWUNEQ0FBUVFocUlBQkJER29RVWlFRklBSWdCMEVNYWlBRUlBZEJFR29RMGdJaEJDQUZFRkVnQUVFUWFpUUFJQVJCZjBZRVFCQVhBQXNnQ0NBQ0lBUkJBblJxTmdJTUlBZEJrQUZxSkFBZ0NDZ0NEQ0VFSXdCQkVHc2lBQ1FBSUFBZ0FUWUNDQU5BSUFJZ0JFY0VRQ0FBUVFocUlBSW9BZ0FROXdJZ0FrRUVhaUVDREFFTEN5QUFLQUlJSVFFZ0FFRVFhaVFBSUFNa0FDQUJDNFVCQUNNQVFZQUJheUlDSkFBZ0FpQUNRZlFBYWpZQ0RDQUFRUWhxSUFKQkVHb2lBQ0FDUVF4cUlBUWdCU0FHRUxFQ0lBQWhCQ0FDS0FJTUlRTWpBRUVRYXlJQUpBQWdBQ0FCTmdJSUEwQWdBeUFFUndSQUlBQkJDR29nQkN3QUFCRDRBaUFFUVFGcUlRUU1BUXNMSUFBb0FnZ2hBU0FBUVJCcUpBQWdBa0dBQVdva0FDQUJDK0FNQVFGL0l3QkJRR29pQnlRQUlBY2dBVFlDT0NBRVFRQTJBZ0FnQnlBREVBOGdCeEE3SVFnZ0J4QU9BbjhDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQVpCd1FCckRqa0FBUmNFRndVWEJnY1hGeGNLRnhjWEZ3NFBFQmNYRnhNVkZ4Y1hGeGNYRndBQkFnTURGeGNCRndnWEZ3a0xGd3dYRFJjTEZ4Y1JFaFFXQ3lBQUlBVkJHR29nQjBFNGFpQUNJQVFnQ0JDMUFnd1lDeUFBSUFWQkVHb2dCMEU0YWlBQ0lBUWdDQkMwQWd3WEN5QUhJQUFnQVNBQ0lBTWdCQ0FGSUFCQkNHb2dBQ2dDQ0NnQ0RCRUFBQ0lBRUEwZ0FCQU5JQUFRQ1VFQ2RHb1FZRFlDT0F3V0N5QUhRVGhxSUFJZ0JDQUlRUUlRV0NFQUFrQWdCQ2dDQUNJQlFRUnhJQUJCQUV4eUlBQkJIMHB5UlFSQUlBVWdBRFlDREF3QkN5QUVJQUZCQkhJMkFnQUxEQlVMSUFkQnVORUFLUU1BTndNWUlBZEJzTkVBS1FNQU53TVFJQWRCcU5FQUtRTUFOd01JSUFkQm9ORUFLUU1BTndNQUlBY2dBQ0FCSUFJZ0F5QUVJQVVnQnlBSFFTQnFFR0EyQWpnTUZBc2dCMEhZMFFBcEF3QTNBeGdnQjBIUTBRQXBBd0EzQXhBZ0IwSEkwUUFwQXdBM0F3Z2dCMEhBMFFBcEF3QTNBd0FnQnlBQUlBRWdBaUFESUFRZ0JTQUhJQWRCSUdvUVlEWUNPQXdUQ3lBSFFUaHFJQUlnQkNBSVFRSVFXQ0VBQWtBZ0JDZ0NBQ0lCUVFSeElBQkJGMHB5UlFSQUlBVWdBRFlDQ0F3QkN5QUVJQUZCQkhJMkFnQUxEQklMSUFkQk9Hb2dBaUFFSUFoQkFoQllJUUFDUUNBRUtBSUFJZ0ZCQkhFZ0FFRUFUSElnQUVFTVNuSkZCRUFnQlNBQU5nSUlEQUVMSUFRZ0FVRUVjallDQUFzTUVRc2dCMEU0YWlBQ0lBUWdDRUVERUZnaEFBSkFJQVFvQWdBaUFVRUVjU0FBUWUwQ1NuSkZCRUFnQlNBQU5nSWNEQUVMSUFRZ0FVRUVjallDQUFzTUVBc2dCMEU0YWlBQ0lBUWdDRUVDRUZnaEFBSkFJQVFvQWdBaUFVRUVjU0FBUVF4S2NrVUVRQ0FGSUFCQkFXczJBaEFNQVFzZ0JDQUJRUVJ5TmdJQUN3d1BDeUFIUVRocUlBSWdCQ0FJUVFJUVdDRUFBa0FnQkNnQ0FDSUJRUVJ4SUFCQk8wcHlSUVJBSUFVZ0FEWUNCQXdCQ3lBRUlBRkJCSEkyQWdBTERBNExJQWRCT0dvaEFDTUFRUkJySWdFa0FDQUJJQUkyQWdnRFFBSkFJQUFnQVVFSWFoQTJSUTBBSUFoQmdNQUFJQUFRSVJCT1JRMEFJQUFRSlJvTUFRc0xJQUFnQVVFSWFoQW9CRUFnQkNBRUtBSUFRUUp5TmdJQUN5QUJRUkJxSkFBTURRc2dCMEU0YWlFQkFrQWdBRUVJYWlBQUtBSUlLQUlJRVFBQUlnQVFDVUVBSUFCQkRHb1FDV3RHQkVBZ0JDQUVLQUlBUVFSeU5nSUFEQUVMSUFFZ0FpQUFJQUJCR0dvZ0NDQUVRUUFRc2dFZ0FHc2lBU0FGS0FJSUlnQkJERWR5UlFSQUlBVkJBRFlDQ0F3QkN5QUJRUXhISUFCQkMwcHlSUVJBSUFVZ0FFRU1hallDQ0FzTERBd0xJQWRCNE5FQVFTd1FRaUlHSUFBZ0FTQUNJQU1nQkNBRklBWWdCa0VzYWhCZ05nSTREQXNMSUFkQm9OSUFLQUlBTmdJUUlBZEJtTklBS1FNQU53TUlJQWRCa05JQUtRTUFOd01BSUFjZ0FDQUJJQUlnQXlBRUlBVWdCeUFIUVJScUVHQTJBamdNQ2dzZ0IwRTRhaUFDSUFRZ0NFRUNFRmdoQUFKQUlBUW9BZ0FpQVVFRWNTQUFRVHhLY2tVRVFDQUZJQUEyQWdBTUFRc2dCQ0FCUVFSeU5nSUFDd3dKQ3lBSFFjalNBQ2tEQURjREdDQUhRY0RTQUNrREFEY0RFQ0FIUWJqU0FDa0RBRGNEQ0NBSFFiRFNBQ2tEQURjREFDQUhJQUFnQVNBQ0lBTWdCQ0FGSUFjZ0IwRWdhaEJnTmdJNERBZ0xJQWRCT0dvZ0FpQUVJQWhCQVJCWUlRQUNRQ0FFS0FJQUlnRkJCSEVnQUVFR1NuSkZCRUFnQlNBQU5nSVlEQUVMSUFRZ0FVRUVjallDQUFzTUJ3c2dBQ0FCSUFJZ0F5QUVJQVVnQUNnQ0FDZ0NGQkVGQUF3SEN5QUhJQUFnQVNBQ0lBTWdCQ0FGSUFCQkNHb2dBQ2dDQ0NnQ0dCRUFBQ0lBRUEwZ0FCQU5JQUFRQ1VFQ2RHb1FZRFlDT0F3RkN5QUZRUlJxSUFkQk9Hb2dBaUFFSUFnUXN3SU1CQXNnQjBFNGFpQUNJQVFnQ0VFRUVGZ2hBQ0FFTFFBQVFRUnhSUVJBSUFVZ0FFSHNEbXMyQWhRTERBTUxJQVpCSlVZTkFRc2dCQ0FFS0FJQVFRUnlOZ0lBREFFTEl3QkJFR3NpQUNRQUlBQWdBallDQ0VFR0lRRUNRQUpBSUFkQk9Hb2lBaUFBUVFocUVDZ05BRUVFSVFFZ0NDQUNFQ0VRaHdGQkpVY05BRUVDSVFFZ0FoQWxJQUJCQ0dvUUtFVU5BUXNnQkNBRUtBSUFJQUZ5TmdJQUN5QUFRUkJxSkFBTElBY29BamdMSVFBZ0IwRkFheVFBSUFBTFJ3RUJmeU1BUVJCcklnWWtBQ0FHSUFFMkFnZ2dCaUFERUE4Z0JoQTdJUUVnQmhBT0lBVkJGR29nQmtFSWFpQUNJQVFnQVJDekFpQUdLQUlJSVFBZ0JrRVFhaVFBSUFBTFNRRUJmeU1BUVJCcklnWWtBQ0FHSUFFMkFnZ2dCaUFERUE4Z0JoQTdJUUVnQmhBT0lBQWdCVUVRYWlBR1FRaHFJQUlnQkNBQkVMUUNJQVlvQWdnaEFDQUdRUkJxSkFBZ0FBdEpBUUYvSXdCQkVHc2lCaVFBSUFZZ0FUWUNDQ0FHSUFNUUR5QUdFRHNoQVNBR0VBNGdBQ0FGUVJocUlBWkJDR29nQWlBRUlBRVF0UUlnQmlnQ0NDRUFJQVpCRUdva0FDQUFDekFBSUFBZ0FTQUNJQU1nQkNBRklBQkJDR29nQUNnQ0NDZ0NGQkVBQUNJQUVBMGdBQkFOSUFBUUNVRUNkR29RWUF0Y0FRRi9Jd0JCSUdzaUJpUUFJQVpCeU5JQUtRTUFOd01ZSUFaQndOSUFLUU1BTndNUUlBWkJ1TklBS1FNQU53TUlJQVpCc05JQUtRTUFOd01BSUFBZ0FTQUNJQU1nQkNBRklBWWdCa0VnYWlJQkVHQWhBQ0FCSkFBZ0FBdE1BUUYvUWNTQkFVSEFnUUVnQWhzZ0FUWUNBQ0FCUVFCS0JFQkJvSUVCUVlDQkFTQUNHeUVEUVFBaEFnTkFJQUlnQTJvZ0FDQUNhaTBBQURvQUFDQUNRUUZxSWdJZ0FVY05BQXNMQzVBTUFRSi9Jd0JCSUdzaUJ5UUFJQWNnQVRZQ0dDQUVRUUEyQWdBZ0IwRUlhaUlKSUFNUUR5QUpFREloQ0NBSkVBNENmd0pBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdCa0hCQUdzT09RQUJGd1FYQlJjR0J4Y1hGd29YRnhjWERnOFFGeGNYRXhVWEZ4Y1hGeGNYQUFFQ0F3TVhGd0VYQ0JjWENRc1hEQmNORndzWEZ4RVNGQllMSUFBZ0JVRVlhaUFIUVJocUlBSWdCQ0FJRUxnQ0RCZ0xJQUFnQlVFUWFpQUhRUmhxSUFJZ0JDQUlFTGNDREJjTElBY2dBQ0FCSUFJZ0F5QUVJQVVnQUVFSWFpQUFLQUlJS0FJTUVRQUFJZ0FRRFNBQUVBMGdBQkFKYWhCaE5nSVlEQllMSUFkQkdHb2dBaUFFSUFoQkFoQlpJUUFDUUNBRUtBSUFJZ0ZCQkhFZ0FFRUFUSElnQUVFZlNuSkZCRUFnQlNBQU5nSU1EQUVMSUFRZ0FVRUVjallDQUFzTUZRc2dCMEtsMnIycHd1ekxrdmtBTndNSUlBY2dBQ0FCSUFJZ0F5QUVJQVVnQjBFSWFpQUhRUkJxRUdFMkFoZ01GQXNnQjBLbHNyV3AwcTNMa3VRQU53TUlJQWNnQUNBQklBSWdBeUFFSUFVZ0IwRUlhaUFIUVJCcUVHRTJBaGdNRXdzZ0IwRVlhaUFDSUFRZ0NFRUNFRmtoQUFKQUlBUW9BZ0FpQVVFRWNTQUFRUmRLY2tVRVFDQUZJQUEyQWdnTUFRc2dCQ0FCUVFSeU5nSUFDd3dTQ3lBSFFSaHFJQUlnQkNBSVFRSVFXU0VBQWtBZ0JDZ0NBQ0lCUVFSeElBQkJBRXh5SUFCQkRFcHlSUVJBSUFVZ0FEWUNDQXdCQ3lBRUlBRkJCSEkyQWdBTERCRUxJQWRCR0dvZ0FpQUVJQWhCQXhCWklRQUNRQ0FFS0FJQUlnRkJCSEVnQUVIdEFrcHlSUVJBSUFVZ0FEWUNIQXdCQ3lBRUlBRkJCSEkyQWdBTERCQUxJQWRCR0dvZ0FpQUVJQWhCQWhCWklRQUNRQ0FFS0FJQUlnRkJCSEVnQUVFTVNuSkZCRUFnQlNBQVFRRnJOZ0lRREFFTElBUWdBVUVFY2pZQ0FBc01Ed3NnQjBFWWFpQUNJQVFnQ0VFQ0VGa2hBQUpBSUFRb0FnQWlBVUVFY1NBQVFUdEtja1VFUUNBRklBQTJBZ1FNQVFzZ0JDQUJRUVJ5TmdJQUN3d09DeUFIUVJocUlRQWpBRUVRYXlJQkpBQWdBU0FDTmdJSUEwQUNRQ0FBSUFGQkNHb1FNVVVOQUNBSVFZREFBQ0FBRUI4UVJFVU5BQ0FBRUNJYURBRUxDeUFBSUFGQkNHb1FKZ1JBSUFRZ0JDZ0NBRUVDY2pZQ0FBc2dBVUVRYWlRQURBMExJQWRCR0dvaEFRSkFJQUJCQ0dvZ0FDZ0NDQ2dDQ0JFQUFDSUFFQWxCQUNBQVFReHFFQWxyUmdSQUlBUWdCQ2dDQUVFRWNqWUNBQXdCQ3lBQklBSWdBQ0FBUVJocUlBZ2dCRUVBRUxRQklBQnJJZ0VnQlNnQ0NDSUFRUXhIY2tVRVFDQUZRUUEyQWdnTUFRc2dBVUVNUnlBQVFRdEtja1VFUUNBRklBQkJER28yQWdnTEN3d01DeUFIUVpUUkFDZ0FBRFlBRHlBSFFZM1JBQ2tBQURjRENDQUhJQUFnQVNBQ0lBTWdCQ0FGSUFkQkNHb2dCMEVUYWhCaE5nSVlEQXNMSUFkQm5ORUFMUUFBT2dBTUlBZEJtTkVBS0FBQU5nSUlJQWNnQUNBQklBSWdBeUFFSUFVZ0IwRUlhaUFIUVExcUVHRTJBaGdNQ2dzZ0IwRVlhaUFDSUFRZ0NFRUNFRmtoQUFKQUlBUW9BZ0FpQVVFRWNTQUFRVHhLY2tVRVFDQUZJQUEyQWdBTUFRc2dCQ0FCUVFSeU5nSUFDd3dKQ3lBSFFxV1E2YW5TeWM2UzB3QTNBd2dnQnlBQUlBRWdBaUFESUFRZ0JTQUhRUWhxSUFkQkVHb1FZVFlDR0F3SUN5QUhRUmhxSUFJZ0JDQUlRUUVRV1NFQUFrQWdCQ2dDQUNJQlFRUnhJQUJCQmtweVJRUkFJQVVnQURZQ0dBd0JDeUFFSUFGQkJISTJBZ0FMREFjTElBQWdBU0FDSUFNZ0JDQUZJQUFvQWdBb0FoUVJCUUFNQndzZ0J5QUFJQUVnQWlBRElBUWdCU0FBUVFocUlBQW9BZ2dvQWhnUkFBQWlBQkFOSUFBUURTQUFFQWxxRUdFMkFoZ01CUXNnQlVFVWFpQUhRUmhxSUFJZ0JDQUlFTFlDREFRTElBZEJHR29nQWlBRUlBaEJCQkJaSVFBZ0JDMEFBRUVFY1VVRVFDQUZJQUJCN0E1ck5nSVVDd3dEQ3lBR1FTVkdEUUVMSUFRZ0JDZ0NBRUVFY2pZQ0FBd0JDeU1BUVJCcklnQWtBQ0FBSUFJMkFnaEJCaUVCQWtBQ1FDQUhRUmhxSWdJZ0FFRUlhaEFtRFFCQkJDRUJJQWdnQWhBZkVJZ0JRU1ZIRFFCQkFpRUJJQUlRSWlBQVFRaHFFQ1pGRFFFTElBUWdCQ2dDQUNBQmNqWUNBQXNnQUVFUWFpUUFDeUFIS0FJWUN5RUFJQWRCSUdva0FDQUFDMGNCQVg4akFFRVFheUlHSkFBZ0JpQUJOZ0lJSUFZZ0F4QVBJQVlRTWlFQklBWVFEaUFGUVJScUlBWkJDR29nQWlBRUlBRVF0Z0lnQmlnQ0NDRUFJQVpCRUdva0FDQUFDMGtCQVg4akFFRVFheUlHSkFBZ0JpQUJOZ0lJSUFZZ0F4QVBJQVlRTWlFQklBWVFEaUFBSUFWQkVHb2dCa0VJYWlBQ0lBUWdBUkMzQWlBR0tBSUlJUUFnQmtFUWFpUUFJQUFMU1FFQmZ5TUFRUkJySWdZa0FDQUdJQUUyQWdnZ0JpQURFQThnQmhBeUlRRWdCaEFPSUFBZ0JVRVlhaUFHUVFocUlBSWdCQ0FCRUxnQ0lBWW9BZ2doQUNBR1FSQnFKQUFnQUFzdEFDQUFJQUVnQWlBRElBUWdCU0FBUVFocUlBQW9BZ2dvQWhRUkFBQWlBQkFOSUFBUURTQUFFQWxxRUdFTFB3RUJmeU1BUVJCcklnWWtBQ0FHUXFXUTZhblN5YzZTMHdBM0F3Z2dBQ0FCSUFJZ0F5QUVJQVVnQmtFSWFpQUdRUkJxSWdFUVlTRUFJQUVrQUNBQUM2NEJBUVYvSXdCQjBBRnJJZ0FrQUNBQVFZdlJBQzhBQURzQnpBRWdBRUdIMFFBb0FBQTJBc2dCRUJZaEJpQUFJQVEyQWdBZ0FFR3dBV29pQnlBSElBZEJGQ0FHSUFCQnlBRnFJQUFRTENJSWFpSUVJQUlRUHlFR0lBQkJFR29pQlNBQ0VBOGdCUkE3SVFrZ0JSQU9JQWtnQnlBRUlBVVFZeUFCSUFVZ0NFRUNkQ0FGYWlJQklBWWdBR3RCQW5RZ0FHcEJzQVZySUFRZ0JrWWJJQUVnQWlBREVHSWhBU0FBUWRBQmFpUUFJQUVMZ0FRQkIzOGpBRUd3QTJzaUFDUUFJQUJDSlRjRHFBTWdBRUdvQTJwQkFYSkJqeDRnQWlnQ0JCQ3ZBU0VJSUFBZ0FFR0FBMm8yQXZ3Q0VCWWhCZ0ovSUFnRVFDQUNLQUlJSVFjZ0FFRkFheUFGTndNQUlBQWdCRGNET0NBQUlBYzJBakFnQUVHQUEycEJIaUFHSUFCQnFBTnFJQUJCTUdvUUxBd0JDeUFBSUFRM0ExQWdBQ0FGTndOWUlBQkJnQU5xUVI0Z0JpQUFRYWdEYWlBQVFkQUFhaEFzQ3lFR0lBQkJOVFlDZ0FFZ0FFSHdBbXBCQUNBQVFZQUJhaEFlSVFrZ0FFR0FBMm9pQ2lFSEFrQWdCa0VlVGdSQUVCWWhCZ0ovSUFnRVFDQUNLQUlJSVFjZ0FDQUZOd01RSUFBZ0JEY0RDQ0FBSUFjMkFnQWdBRUg4QW1vZ0JpQUFRYWdEYWlBQUVGb01BUXNnQUNBRU53TWdJQUFnQlRjREtDQUFRZndDYWlBR0lBQkJxQU5xSUFCQklHb1FXZ3NpQmtGL1JnMEJJQWtnQUNnQy9BSVFKeUFBS0FMOEFpRUhDeUFISUFZZ0Iyb2lDeUFDRUQ4aERDQUFRVFUyQW9BQklBQkIrQUJxUVFBZ0FFR0FBV29RSGlFSEFrQWdBQ2dDL0FJZ0FFR0FBMnBHQkVBZ0FFR0FBV29oQmd3QkN5QUdRUU4wRUJraUJrVU5BU0FISUFZUUp5QUFLQUw4QWlFS0N5QUFRZWdBYWlJSUlBSVFEeUFLSUF3Z0N5QUdJQUJCOUFCcUlBQkI4QUJxSUFnUXVnSWdDQkFPSUFFZ0JpQUFLQUowSUFBb0FuQWdBaUFERUdJaEFTQUhFQjBnQ1JBZElBQkJzQU5xSkFBZ0FROExFQmNBQzl3REFRZC9Jd0JCZ0FOcklnQWtBQ0FBUWlVM0EvZ0NJQUJCK0FKcVFRRnlRYVFmSUFJb0FnUVFyd0VoQnlBQUlBQkIwQUpxTmdMTUFoQVdJUVVDZnlBSEJFQWdBaWdDQ0NFR0lBQWdCRGtES0NBQUlBWTJBaUFnQUVIUUFtcEJIaUFGSUFCQitBSnFJQUJCSUdvUUxBd0JDeUFBSUFRNUF6QWdBRUhRQW1wQkhpQUZJQUJCK0FKcUlBQkJNR29RTEFzaEJTQUFRVFUyQWxBZ0FFSEFBbXBCQUNBQVFkQUFhaEFlSVFnZ0FFSFFBbW9pQ1NFR0FrQWdCVUVlVGdSQUVCWWhCUUovSUFjRVFDQUNLQUlJSVFZZ0FDQUVPUU1JSUFBZ0JqWUNBQ0FBUWN3Q2FpQUZJQUJCK0FKcUlBQVFXZ3dCQ3lBQUlBUTVBeEFnQUVITUFtb2dCU0FBUWZnQ2FpQUFRUkJxRUZvTElnVkJmMFlOQVNBSUlBQW9Bc3dDRUNjZ0FDZ0N6QUloQmdzZ0JpQUZJQVpxSWdvZ0FoQS9JUXNnQUVFMU5nSlFJQUJCeUFCcVFRQWdBRUhRQUdvUUhpRUdBa0FnQUNnQ3pBSWdBRUhRQW1wR0JFQWdBRUhRQUdvaEJRd0JDeUFGUVFOMEVCa2lCVVVOQVNBR0lBVVFKeUFBS0FMTUFpRUpDeUFBUVRocUlnY2dBaEFQSUFrZ0N5QUtJQVVnQUVIRUFHb2dBRUZBYXlBSEVMb0NJQWNRRGlBQklBVWdBQ2dDUkNBQUtBSkFJQUlnQXhCaUlRRWdCaEFkSUFnUUhTQUFRWUFEYWlRQUlBRVBDeEFYQUF1aUFRRUVmeU1BUVlBQ2F5SUFKQUFnQUVJbE53UDRBU0FBUWZnQmFpSUdRUUZ5UWRNY1FRQWdBaWdDQkJCdEVCWWhCeUFBSUFRM0F3QWdBRUhnQVdvaUJTQUZRUmdnQnlBR0lBQVFMQ0FGYWlJSElBSVFQeUVJSUFCQkVHb2lCaUFDRUE4Z0JTQUlJQWNnQUVFZ2FpSUZJQUJCSEdvZ0FFRVlhaUFHRUs0QklBWVFEaUFCSUFVZ0FDZ0NIQ0FBS0FJWUlBSWdBeEJpSVFFZ0FFR0FBbW9rQUNBQkM3UUJBUU4vSXdCQm9BRnJJZ0FrQUNBQVFZWFJBQzhBQURzQm5BRWdBRUdCMFFBb0FBQTJBcGdCSUFCQm1BRnFJZ1ZCQVhKQjJoeEJBQ0FDS0FJRUVHMFFGaUVHSUFBZ0JEWUNBQ0FBUVlzQmFpSUVJQVJCRFNBR0lBVWdBQkFzSUFScUlnWWdBaEEvSVFjZ0FFRVFhaUlGSUFJUUR5QUVJQWNnQmlBQVFTQnFJZ1FnQUVFY2FpQUFRUmhxSUFVUXJnRWdCUkFPSUFFZ0JDQUFLQUljSUFBb0FoZ2dBaUFERUdJaEFTQUFRYUFCYWlRQUlBRUxvZ0VCQkg4akFFR0FBbXNpQUNRQUlBQkNKVGNEK0FFZ0FFSDRBV29pQmtFQmNrSFRIRUVCSUFJb0FnUVFiUkFXSVFjZ0FDQUVOd01BSUFCQjRBRnFJZ1VnQlVFWUlBY2dCaUFBRUN3Z0JXb2lCeUFDRUQ4aENDQUFRUkJxSWdZZ0FoQVBJQVVnQ0NBSElBQkJJR29pQlNBQVFSeHFJQUJCR0dvZ0JoQ3VBU0FHRUE0Z0FTQUZJQUFvQWh3Z0FDZ0NHQ0FDSUFNUVlpRUJJQUJCZ0FKcUpBQWdBUXNXQUVHZ2dRRkJ4SUVCS0FJQUlBSWdBQ0FCRU9ZQkM3UUJBUU4vSXdCQm9BRnJJZ0FrQUNBQVFZWFJBQzhBQURzQm5BRWdBRUdCMFFBb0FBQTJBcGdCSUFCQm1BRnFJZ1ZCQVhKQjJoeEJBU0FDS0FJRUVHMFFGaUVHSUFBZ0JEWUNBQ0FBUVlzQmFpSUVJQVJCRFNBR0lBVWdBQkFzSUFScUlnWWdBaEEvSVFjZ0FFRVFhaUlGSUFJUUR5QUVJQWNnQmlBQVFTQnFJZ1FnQUVFY2FpQUFRUmhxSUFVUXJnRWdCUkFPSUFFZ0JDQUFLQUljSUFBb0FoZ2dBaUFERUdJaEFTQUFRYUFCYWlRQUlBRUx6UUVCQVg4akFFRXdheUlGSkFBZ0JTQUJOZ0lvQWtBZ0FpZ0NCRUVCY1VVRVFDQUFJQUVnQWlBRElBUWdBQ2dDQUNnQ0dCRUdBQ0VDREFFTElBVkJHR29pQUNBQ0VBOGdBQkNNQVNFQklBQVFEZ0pBSUFRRVFDQUZRUmhxSUFFUVN3d0JDeUFGUVJocUlBRVFTZ3NnQlNBRlFSaHFFRUEyQWhBRFFDQUZJQVZCR0dvUWJEWUNDQ0FGUVJCcUlBVkJDR29RV3dSQUlBVkJLR29nQlVFUWFpSUFLQUlBS0FJQUVQY0NJQUFRbFFFTUFRVWdCU2dDS0NFQ0lBVkJHR29RQ2hvTEN3c2dCVUV3YWlRQUlBSUxwQUVCQlg4akFFSGdBR3NpQUNRQUlBQkJpOUVBTHdBQU93RmNJQUJCaDlFQUtBQUFOZ0pZRUJZaEJpQUFJQVEyQWdBZ0FFRkFheUlISUFjZ0IwRVVJQVlnQUVIWUFHb2dBQkFzSWdocUlnUWdBaEEvSVFZZ0FFRVFhaUlGSUFJUUR5QUZFREloQ1NBRkVBNGdDU0FISUFRZ0JSQnZJQUVnQlNBRklBaHFJZ0VnQmlBQWF5QUFha0V3YXlBRUlBWkdHeUFCSUFJZ0F4QldJUUVnQUVIZ0FHb2tBQ0FCQzRBRUFRZC9Jd0JCZ0FKcklnQWtBQ0FBUWlVM0EvZ0JJQUJCK0FGcVFRRnlRWThlSUFJb0FnUVFyd0VoQ0NBQUlBQkIwQUZxTmdMTUFSQVdJUVlDZnlBSUJFQWdBaWdDQ0NFSElBQkJRR3NnQlRjREFDQUFJQVEzQXpnZ0FDQUhOZ0l3SUFCQjBBRnFRUjRnQmlBQVFmZ0JhaUFBUVRCcUVDd01BUXNnQUNBRU53TlFJQUFnQlRjRFdDQUFRZEFCYWtFZUlBWWdBRUg0QVdvZ0FFSFFBR29RTEFzaEJpQUFRVFUyQW9BQklBQkJ3QUZxUVFBZ0FFR0FBV29RSGlFSklBQkIwQUZxSWdvaEJ3SkFJQVpCSGs0RVFCQVdJUVlDZnlBSUJFQWdBaWdDQ0NFSElBQWdCVGNERUNBQUlBUTNBd2dnQUNBSE5nSUFJQUJCekFGcUlBWWdBRUg0QVdvZ0FCQmFEQUVMSUFBZ0JEY0RJQ0FBSUFVM0F5Z2dBRUhNQVdvZ0JpQUFRZmdCYWlBQVFTQnFFRm9MSWdaQmYwWU5BU0FKSUFBb0Fzd0JFQ2NnQUNnQ3pBRWhCd3NnQnlBR0lBZHFJZ3NnQWhBL0lRd2dBRUUxTmdLQUFTQUFRZmdBYWtFQUlBQkJnQUZxRUI0aEJ3SkFJQUFvQXN3QklBQkIwQUZxUmdSQUlBQkJnQUZxSVFZTUFRc2dCa0VCZEJBWklnWkZEUUVnQnlBR0VDY2dBQ2dDekFFaENnc2dBRUhvQUdvaUNDQUNFQThnQ2lBTUlBc2dCaUFBUWZRQWFpQUFRZkFBYWlBSUVMd0NJQWdRRGlBQklBWWdBQ2dDZENBQUtBSndJQUlnQXhCV0lRRWdCeEFkSUFrUUhTQUFRWUFDYWlRQUlBRVBDeEFYQUF2Y0F3RUhmeU1BUWRBQmF5SUFKQUFnQUVJbE53UElBU0FBUWNnQmFrRUJja0drSHlBQ0tBSUVFSzhCSVFjZ0FDQUFRYUFCYWpZQ25BRVFGaUVGQW44Z0J3UkFJQUlvQWdnaEJpQUFJQVE1QXlnZ0FDQUdOZ0lnSUFCQm9BRnFRUjRnQlNBQVFjZ0JhaUFBUVNCcUVDd01BUXNnQUNBRU9RTXdJQUJCb0FGcVFSNGdCU0FBUWNnQmFpQUFRVEJxRUN3TElRVWdBRUUxTmdKUUlBQkJrQUZxUVFBZ0FFSFFBR29RSGlFSUlBQkJvQUZxSWdraEJnSkFJQVZCSGs0RVFCQVdJUVVDZnlBSEJFQWdBaWdDQ0NFR0lBQWdCRGtEQ0NBQUlBWTJBZ0FnQUVHY0FXb2dCU0FBUWNnQmFpQUFFRm9NQVFzZ0FDQUVPUU1RSUFCQm5BRnFJQVVnQUVISUFXb2dBRUVRYWhCYUN5SUZRWDlHRFFFZ0NDQUFLQUtjQVJBbklBQW9BcHdCSVFZTElBWWdCU0FHYWlJS0lBSVFQeUVMSUFCQk5UWUNVQ0FBUWNnQWFrRUFJQUJCMEFCcUVCNGhCZ0pBSUFBb0Fwd0JJQUJCb0FGcVJnUkFJQUJCMEFCcUlRVU1BUXNnQlVFQmRCQVpJZ1ZGRFFFZ0JpQUZFQ2NnQUNnQ25BRWhDUXNnQUVFNGFpSUhJQUlRRHlBSklBc2dDaUFGSUFCQnhBQnFJQUJCUUdzZ0J4QzhBaUFIRUE0Z0FTQUZJQUFvQWtRZ0FDZ0NRQ0FDSUFNUVZpRUJJQVlRSFNBSUVCMGdBRUhRQVdva0FDQUJEd3NRRndBTG9RRUJCSDhqQUVId0FHc2lBQ1FBSUFCQ0pUY0RhQ0FBUWVnQWFpSUdRUUZ5UWRNY1FRQWdBaWdDQkJCdEVCWWhCeUFBSUFRM0F3QWdBRUhRQUdvaUJTQUZRUmdnQnlBR0lBQVFMQ0FGYWlJSElBSVFQeUVJSUFCQkVHb2lCaUFDRUE4Z0JTQUlJQWNnQUVFZ2FpSUZJQUJCSEdvZ0FFRVlhaUFHRUxBQklBWVFEaUFCSUFVZ0FDZ0NIQ0FBS0FJWUlBSWdBeEJXSVFFZ0FFSHdBR29rQUNBQkM3RUJBUU4vSXdCQjBBQnJJZ0FrQUNBQVFZWFJBQzhBQURzQlRDQUFRWUhSQUNnQUFEWUNTQ0FBUWNnQWFpSUZRUUZ5UWRvY1FRQWdBaWdDQkJCdEVCWWhCaUFBSUFRMkFnQWdBRUU3YWlJRUlBUkJEU0FHSUFVZ0FCQXNJQVJxSWdZZ0FoQS9JUWNnQUVFUWFpSUZJQUlRRHlBRUlBY2dCaUFBUVNCcUlnUWdBRUVjYWlBQVFSaHFJQVVRc0FFZ0JSQU9JQUVnQkNBQUtBSWNJQUFvQWhnZ0FpQURFRlloQVNBQVFkQUFhaVFBSUFFTG9RRUJCSDhqQUVId0FHc2lBQ1FBSUFCQ0pUY0RhQ0FBUWVnQWFpSUdRUUZ5UWRNY1FRRWdBaWdDQkJCdEVCWWhCeUFBSUFRM0F3QWdBRUhRQUdvaUJTQUZRUmdnQnlBR0lBQVFMQ0FGYWlJSElBSVFQeUVJSUFCQkVHb2lCaUFDRUE4Z0JTQUlJQWNnQUVFZ2FpSUZJQUJCSEdvZ0FFRVlhaUFHRUxBQklBWVFEaUFCSUFVZ0FDZ0NIQ0FBS0FJWUlBSWdBeEJXSVFFZ0FFSHdBR29rQUNBQkMrMFJBUTUvSXdCQndBSnJJZ1lrQUNBR0lBRWdBa0VCRU5vQ05nS1VBaUFHSUFZb0FwUUNFSklCTmdLWUFrR2orSWFyZjBHY2xNTGxmU0FFR3lFT0lBQkZJUTlCc1pmWHVub2hBUU5BQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBRWlBRUh3dXQ3ZUFVd0VRQ0FBUWNpeXRkSjdUQVJBSUFCQnhzdXJpSHBNQkVBZ0FFSHQ1TEdqZUVZTkN5QUFRWXlHcDd4NVJnMEtJQUJCbDh6ZzlYbEhEUklnQmlnQ3RBSkJnSUVCYWlBR0xRQ2ZBam9BQUVHWHJNd3BJUUVNRWdzZ0FFR3hsOWU2ZWtZTkFpQUFRZXlacHVKNlJnMExJQUJCeDh1cmlIcEhEUkVnQmtIQUFtb2tBQThMSUFCQjlMZTE0bjVNQkVBZ0FFSEpzclhTZTBZTkJDQUFRWnlVd3VWOVJnMEdJQUJCalB5cnhINUhEUkVNRUFzZ0FFSDF0N1hpZmtZTkJDQUFRYVA0aHF0L1JnMEdJQUJCbDZ6TUtVY05FQ0FHS0FLMEFrRUJhaUVOUVlTMTQ4VUhJUUVNRUFzZ0FFR3UwOHpEQlV3RVFDQUFRZlRIdnRnQ1RBUkFJQTRoQVNBQVFmRzYzdDRCUmcwUklBQWhBU0FBUWVQMnJwNENSdzBSSUFaQm9BRnFFQW9hSUFZb0FxQUNHZ3dRQ3lBQVFmWEh2dGdDUmcwTUlBQkIwT0RWaHdOR0RRY2dBRUhrM2ZPM0JFY05FQ0FHS0FLMEFrR2dnUUZxSUFZdEFKOENPZ0FBUVplc3pDa2hBUXdRQ3lBQVFkeUFoTE1HVEFSQUlBQkJyOVBNd3dWR0RRc2dBRUcwMjVITUJVWU5EaUFBUVpYZytONEZSdzBRUWNTQkFTQUROZ0lBUWZHNjN0NEJJUUVNRUFzZ0FFSGRnSVN6QmtZTkRDQUFRZFhmd2ZNR1JnMEJJQUJCaExYanhRZEhEUThnQmlBTk5nSzBBa0dNaHFlOGVVR00vS3ZFZmlBR0tBSzBBaUFEU0JzaEFRd1BDMEVBSVFjZ0JpQUVRUUJLT2dDZEFrSFYzOEh6QmtISnNyWFNleUFHTFFDZEFrRUJjUnNoQVNBR0tBS1VBaUVLREE0TElBWkJpQUpxSUFZb0FwUUNFRlFpRUNFS1FRQWhDRUVBSVFrakFFRVFheUlCSkFBZ0NoQUpJUXNqQUVFUWF5SUhKQUFnQmtINEFXb2lBRUlBTndJQUlBZEJBRFlDRENBQVFRaHFJQWRCREdvUXpRRWdCMEVRYWlRQUFrQWdDMFVOQUFOQUFrQWdDaUFKRUFzdEFBQkJQVVlOQUNBS0lBa1FDeTBBQUNJSFFTdEdJQWRCSUhKQjRRQnJRUnBKQkg5QkFRVWdCeEJGUVFCSEMwRUFSM0lnQjBFdlJuSkZEUUFnQzBFQmF5RUxJQUZCREdvZ0NHb2dDaUFKRUFzdEFBQTZBQUJCQUNFSElBaEJBV29pQ0VFRVJnUkFBMEFnQVVFTWFpQUhhaUlJSUFnc0FBQVE5UUU2QUFBZ0IwRUJhaUlIUVFSSERRQUxJQUVnQVMwQUR5QUJMUUFPSWdkQkJuUnFPZ0FMSUFFZ0FTMEFEU0lJUVFSMlFRTnhJQUV0QUF4QkFuUnlPZ0FKSUFFZ0IwRUNka0VQY1NBSVFRUjBjam9BQ2tFQUlRaEJBQ0VIQTBBZ0FDQUJRUWxxSUFkcUVQUUNJQWRCQVdvaUIwRURSdzBBQ3dzZ0NVRUJhaUVKSUFzTkFRc0xJQWhGRFFBZ0NFRURUQVJBSUFGQkRHb2dDR3BCQUVFRUlBaHJFRVlhQzBFQUlRY0RRQ0FCUVF4cUlBZHFJZ2tnQ1N3QUFCRDFBVG9BQUNBSFFRRnFJZ2RCQkVjTkFBc2dBU0FCTFFBUElBRXRBQTRpQjBFR2RHbzZBQXNnQVNBQkxRQU5JZ2xCQkhaQkEzRWdBUzBBREVFQ2RISTZBQWtnQVNBSFFRSjJRUTl4SUFsQkJIUnlPZ0FLSUFoQkFrZ05BQ0FJUVFGcklRaEJBQ0VIQTBBZ0FDQUJRUWxxSUFkcUVQUUNJQWRCQVdvaUJ5QUlSdzBBQ3dzZ0FVRVFhaVFBSUFBUWlRRWhFU0FBS0FJQUlRd2dCa0d0SHlnQUFEWUM4QUVnQmtHbEh5a0FBRGNENkFFZ0JrSUFOd1BZQVNBR1FnQTNBOUFCSUFaQ0FEY0R5QUVnQmtJQU53UEFBU0FHUWdBM0E3Z0JJQVpDQURjRHNBRWdBQkNKQVNFTElBWkJzQUZxSVFvakFFRXdheUlCSkFBZ0FVRWdhaUVJSUFVZ0JCQytBaUlIQkVBZ0NFSUFOd0FBSUFoQ0FEY0FDQ0FISUFnZ0NCQ25BUXNnQmtHL0Ftb2hFaUFHUWRBQmFpRVRJQWNFZnlNQVFSQnJJZ2trQUNBQlFSQnFJZ2dnQmlrQTZBRTNBQUFnQ0NBR0tBRHdBVFlBQ0NBSVFZQ0FnQWcyQUF3Z0NVRVFhaVFBSXdCQkVHc2lDU1FBSUFzRVFDQUpJQWdwQUFBM0F3QWdDU0FJS1FBSU53TUlJQWtRNndFZ0J5QUpJQXdnQ3lBS0VJVUNDeUFKUVJCcUpBQWpBRUVRYXlJSkpBQWdBVUlBTndBQUlBRkNBRGNBQ0NBQlFTQnFJZ3dnRWtFQUlBRVF2d0VnRENBS0lBc2dBUkMvQVNBSlFnQVE3UUVnQ1VFSWNpQUxRUU4wclJEdEFTQU1JQWxCRUNBQkVMOEJJQWxCRUdva0FDQUhJQWdnQVVFUUlCTVFoUUlnQnhBUVFRQUZRWDhMR2lBQlFUQnFKQUFnQUJEdEFpQUFLQUlBQkVBZ0FDZ0NCQ0lCSUFBb0FnQWlCMGNFUUFOQUlBQVFReG9nQnlBQlFRRnJJZ0ZIRFFBTEN5QUFJQWMyQWdRZ0FCQkRHaUFBS0FJQUlRRWdBQkNGQVJvZ0FSQVFDeUFRRUFvYVFTQkJFQ0FSUVRCR0d5RUhRY215dGRKN0lRRU1EUXNnQmlBUE9nQ2VBaUFHSUFjMkFyQUNJQVlnQ2pZQ3JBSkI5YmUxNG41QmxlRDQzZ1VnQmkwQW5nSkJBWEViSVFFTURBdEJ3SUVCSUFNMkFnQkI4YnJlM2dFaEFRd0xDMEhRNE5XSEEwR2orSWFyZnlBR0tBS1lBaUFEUmhzaEFRd0tDMEhRNE5XSEEwSHQ1TEdqZUNBR0tBS3dBa0VRUmh0QjdlU3hvM2dnQmkwQW5RSkJBWEViSVFFTUNRdEJoTFhqeFFjaEFVRUFJUTBNQ0FzZ0JpQUdLQUtzQWlBR0tBSzBBbW90QUFBNkFKOENJQVl0QUo4Q0drR1h6T0QxZVVIazNmTzNCQ0FHTFFDZUFrRUJjUnNoQVF3SEN5QUdJQVpCb0FGcUlnQTJBcUFDSUFZb0FxQUNHaUFBSUFZb0Fxd0NFRlFhUWV5WnB1SjZJUUZCQUNFQ0RBWUxJQVlnQWpZQ3VBSkJyOVBNd3dWQjQvYXVuZ0lnQmlnQ3VBSWdBMGdiSVFFTUJRc2dCaUFHUVJCcUlnQTJBcVFDSUFZb0FxUUNHaUFBRU13Q0dpQUdJQVpCREdvaUNEWUNxQUlnQmlnQ3FBSWFJQVlvQXFRQ1FRaHFFTUlDSVFrZ0JrR3dBV29pQVNBR1FhQUJhaUFHS0FLNEFrRUJkQkRBQWlBSklBRVF2UUlnQVJBS0dpQUFJQWdRL1FKQjljZSsyQUpCM1lDRXN3WWdCaTBBbmdKQkFYRWJJUUVNQkFzZ0JpZ0N1QUpCZ0lFQmFpQUdLQUlNT2dBQVFiVGJrY3dGSVFFTUF3c2dCaWdDdUFKQm9JRUJhaUFHS0FJTU9nQUFRYlRia2N3RklRRU1BZ3NnQmlnQ3FBSWFJQVpCRUdvUWlnRWFJQVlvQXFRQ0dpQUdLQUs0QWlJQVFRRjBRUUp4SUFCQkFYTnFJUUpCN0ptbTRub2hBUXdCQzBISHk2dUllaUVCREFBTEFBdXhBUUVEZnlNQVFkQUFheUlBSkFBZ0FFR0YwUUF2QUFBN0FVd2dBRUdCMFFBb0FBQTJBa2dnQUVISUFHb2lCVUVCY2tIYUhFRUJJQUlvQWdRUWJSQVdJUVlnQUNBRU5nSUFJQUJCTzJvaUJDQUVRUTBnQmlBRklBQVFMQ0FFYWlJR0lBSVFQeUVISUFCQkVHb2lCU0FDRUE4Z0JDQUhJQVlnQUVFZ2FpSUVJQUJCSEdvZ0FFRVlhaUFGRUxBQklBVVFEaUFCSUFRZ0FDZ0NIQ0FBS0FJWUlBSWdBeEJXSVFFZ0FFSFFBR29rQUNBQkM4MEJBUUYvSXdCQk1Hc2lCU1FBSUFVZ0FUWUNLQUpBSUFJb0FnUkJBWEZGQkVBZ0FDQUJJQUlnQXlBRUlBQW9BZ0FvQWhnUkJnQWhBZ3dCQ3lBRlFSaHFJZ0FnQWhBUElBQVFqZ0VoQVNBQUVBNENRQ0FFQkVBZ0JVRVlhaUFCRUVzTUFRc2dCVUVZYWlBQkVFb0xJQVVnQlVFWWFoQkFOZ0lRQTBBZ0JTQUZRUmhxRUc0MkFnZ2dCVUVRYWlBRlFRaHFFRnNFUUNBRlFTaHFJQVZCRUdvaUFDZ0NBQ3dBQUJENEFpQUFFSmNCREFFRklBVW9BaWdoQWlBRlFSaHFFQW9hQ3dzTElBVkJNR29rQUNBQ0MvSUNBUUYvSXdCQjRBSnJJZ0FrQUNBQUlBSTJBdEFDSUFBZ0FUWUMyQUlnQUVIUUFXb1FFU0VHSUFCQkVHb2lBaUFERUE4Z0FoQTdRZURRQUVINjBBQWdBRUhnQVdvUVl5QUNFQTRnQUVIQUFXb1FFU0lESUFNUUV4QU1JQUFnQTBFQUVBc2lBVFlDdkFFZ0FDQUNOZ0lNSUFCQkFEWUNDQU5BQWtBZ0FFSFlBbW9nQUVIUUFtb1FOa1VOQUNBQUtBSzhBU0FERUFrZ0FXcEdCRUFnQXhBSklRSWdBeUFERUFsQkFYUVFEQ0FESUFNUUV4QU1JQUFnQWlBRFFRQVFDeUlCYWpZQ3ZBRUxJQUJCMkFKcUVDRkJFQ0FCSUFCQnZBRnFJQUJCQ0dwQkFDQUdJQUJCRUdvZ0FFRU1haUFBUWVBQmFoQ0xBUTBBSUFCQjJBSnFFQ1VhREFFTEN5QURJQUFvQXJ3QklBRnJFQXdnQXhBTklRSVFGaUVCSUFBZ0JUWUNBQ0FDSUFFZ0FCREJBa0VCUndSQUlBUkJCRFlDQUFzZ0FFSFlBbW9nQUVIUUFtb1FLQVJBSUFRZ0JDZ0NBRUVDY2pZQ0FBc2dBQ2dDMkFJaEFTQURFQW9hSUFZUUNob2dBRUhnQW1va0FDQUJDOUlEQVFGK0l3QkJnQU5ySWdBa0FDQUFJQUkyQXZBQ0lBQWdBVFlDK0FJZ0FFSFlBV29nQXlBQVFmQUJhaUFBUWV3QmFpQUFRZWdCYWhEVUFTQUFRY2dCYWhBUklnRWdBUkFURUF3Z0FDQUJRUUFRQ3lJQ05nTEVBU0FBSUFCQklHbzJBaHdnQUVFQU5nSVlJQUJCQVRvQUZ5QUFRY1VBT2dBV0EwQUNRQ0FBUWZnQ2FpQUFRZkFDYWhBMlJRMEFJQUFvQXNRQklBRVFDU0FDYWtZRVFDQUJFQWtoQXlBQklBRVFDVUVCZEJBTUlBRWdBUkFURUF3Z0FDQURJQUZCQUJBTElnSnFOZ0xFQVFzZ0FFSDRBbW9RSVNBQVFSZHFJQUJCRm1vZ0FpQUFRY1FCYWlBQUtBTHNBU0FBS0FMb0FTQUFRZGdCYWlBQVFTQnFJQUJCSEdvZ0FFRVlhaUFBUWZBQmFoRFRBUTBBSUFCQitBSnFFQ1VhREFFTEN3SkFJQUJCMkFGcUVBbEZEUUFnQUMwQUYwVU5BQ0FBS0FJY0lnTWdBRUVnYW10Qm53RktEUUFnQUNBRFFRUnFOZ0ljSUFNZ0FDZ0NHRFlDQUFzZ0FDQUNJQUFvQXNRQklBUVF3d0lnQUNrREFDRUdJQVVnQUNrRENEY0RDQ0FGSUFZM0F3QWdBRUhZQVdvZ0FFRWdhaUFBS0FJY0lBUVFMU0FBUWZnQ2FpQUFRZkFDYWhBb0JFQWdCQ0FFS0FJQVFRSnlOZ0lBQ3lBQUtBTDRBaUVDSUFFUUNob2dBRUhZQVdvUUNob2dBRUdBQTJva0FDQUNDN3NEQUNNQVFmQUNheUlBSkFBZ0FDQUNOZ0xnQWlBQUlBRTJBdWdDSUFCQnlBRnFJQU1nQUVIZ0FXb2dBRUhjQVdvZ0FFSFlBV29RMUFFZ0FFRzRBV29RRVNJQklBRVFFeEFNSUFBZ0FVRUFFQXNpQWpZQ3RBRWdBQ0FBUVJCcU5nSU1JQUJCQURZQ0NDQUFRUUU2QUFjZ0FFSEZBRG9BQmdOQUFrQWdBRUhvQW1vZ0FFSGdBbW9RTmtVTkFDQUFLQUswQVNBQkVBa2dBbXBHQkVBZ0FSQUpJUU1nQVNBQkVBbEJBWFFRRENBQklBRVFFeEFNSUFBZ0F5QUJRUUFRQ3lJQ2FqWUN0QUVMSUFCQjZBSnFFQ0VnQUVFSGFpQUFRUVpxSUFJZ0FFRzBBV29nQUNnQzNBRWdBQ2dDMkFFZ0FFSElBV29nQUVFUWFpQUFRUXhxSUFCQkNHb2dBRUhnQVdvUTB3RU5BQ0FBUWVnQ2FoQWxHZ3dCQ3dzQ1FDQUFRY2dCYWhBSlJRMEFJQUF0QUFkRkRRQWdBQ2dDRENJRElBQkJFR3ByUVo4QlNnMEFJQUFnQTBFRWFqWUNEQ0FESUFBb0FnZzJBZ0FMSUFVZ0FpQUFLQUswQVNBRUVNUUNPUU1BSUFCQnlBRnFJQUJCRUdvZ0FDZ0NEQ0FFRUMwZ0FFSG9BbW9nQUVIZ0Ftb1FLQVJBSUFRZ0JDZ0NBRUVDY2pZQ0FBc2dBQ2dDNkFJaEFpQUJFQW9hSUFCQnlBRnFFQW9hSUFCQjhBSnFKQUFnQWd1N0F3QWpBRUh3QW1zaUFDUUFJQUFnQWpZQzRBSWdBQ0FCTmdMb0FpQUFRY2dCYWlBRElBQkI0QUZxSUFCQjNBRnFJQUJCMkFGcUVOUUJJQUJCdUFGcUVCRWlBU0FCRUJNUURDQUFJQUZCQUJBTElnSTJBclFCSUFBZ0FFRVFhallDRENBQVFRQTJBZ2dnQUVFQk9nQUhJQUJCeFFBNkFBWURRQUpBSUFCQjZBSnFJQUJCNEFKcUVEWkZEUUFnQUNnQ3RBRWdBUkFKSUFKcVJnUkFJQUVRQ1NFRElBRWdBUkFKUVFGMEVBd2dBU0FCRUJNUURDQUFJQU1nQVVFQUVBc2lBbW8yQXJRQkN5QUFRZWdDYWhBaElBQkJCMm9nQUVFR2FpQUNJQUJCdEFGcUlBQW9BdHdCSUFBb0F0Z0JJQUJCeUFGcUlBQkJFR29nQUVFTWFpQUFRUWhxSUFCQjRBRnFFTk1CRFFBZ0FFSG9BbW9RSlJvTUFRc0xBa0FnQUVISUFXb1FDVVVOQUNBQUxRQUhSUTBBSUFBb0Fnd2lBeUFBUVJCcWEwR2ZBVW9OQUNBQUlBTkJCR28yQWd3Z0F5QUFLQUlJTmdJQUN5QUZJQUlnQUNnQ3RBRWdCQkRGQWpnQ0FDQUFRY2dCYWlBQVFSQnFJQUFvQWd3Z0JCQXRJQUJCNkFKcUlBQkI0QUpxRUNnRVFDQUVJQVFvQWdCQkFuSTJBZ0FMSUFBb0F1Z0NJUUlnQVJBS0dpQUFRY2dCYWhBS0dpQUFRZkFDYWlRQUlBSUxuUU1CQW44akFFSGdBbXNpQUNRQUlBQWdBallDMEFJZ0FDQUJOZ0xZQWlBREVGd2hCaUFESUFCQjRBRnFFSmtCSVFjZ0FFSFFBV29nQXlBQVFjd0NhaENZQVNBQVFjQUJhaEFSSWdFZ0FSQVRFQXdnQUNBQlFRQVFDeUlDTmdLOEFTQUFJQUJCRUdvMkFnd2dBRUVBTmdJSUEwQUNRQ0FBUWRnQ2FpQUFRZEFDYWhBMlJRMEFJQUFvQXJ3QklBRVFDU0FDYWtZRVFDQUJFQWtoQXlBQklBRVFDVUVCZEJBTUlBRWdBUkFURUF3Z0FDQURJQUZCQUJBTElnSnFOZ0s4QVFzZ0FFSFlBbW9RSVNBR0lBSWdBRUc4QVdvZ0FFRUlhaUFBS0FMTUFpQUFRZEFCYWlBQVFSQnFJQUJCREdvZ0J4Q0xBUTBBSUFCQjJBSnFFQ1VhREFFTEN3SkFJQUJCMEFGcUVBbEZEUUFnQUNnQ0RDSURJQUJCRUdwclFaOEJTZzBBSUFBZ0EwRUVhallDRENBRElBQW9BZ2cyQWdBTElBVWdBaUFBS0FLOEFTQUVJQVlReGdJM0F3QWdBRUhRQVdvZ0FFRVFhaUFBS0FJTUlBUVFMU0FBUWRnQ2FpQUFRZEFDYWhBb0JFQWdCQ0FFS0FJQVFRSnlOZ0lBQ3lBQUtBTFlBaUVDSUFFUUNob2dBRUhRQVdvUUNob2dBRUhnQW1va0FDQUNDNTBEQVFKL0l3QkI0QUpySWdBa0FDQUFJQUkyQXRBQ0lBQWdBVFlDMkFJZ0F4QmNJUVlnQXlBQVFlQUJhaENaQVNFSElBQkIwQUZxSUFNZ0FFSE1BbW9RbUFFZ0FFSEFBV29RRVNJQklBRVFFeEFNSUFBZ0FVRUFFQXNpQWpZQ3ZBRWdBQ0FBUVJCcU5nSU1JQUJCQURZQ0NBTkFBa0FnQUVIWUFtb2dBRUhRQW1vUU5rVU5BQ0FBS0FLOEFTQUJFQWtnQW1wR0JFQWdBUkFKSVFNZ0FTQUJFQWxCQVhRUURDQUJJQUVRRXhBTUlBQWdBeUFCUVFBUUN5SUNhallDdkFFTElBQkIyQUpxRUNFZ0JpQUNJQUJCdkFGcUlBQkJDR29nQUNnQ3pBSWdBRUhRQVdvZ0FFRVFhaUFBUVF4cUlBY1Fpd0VOQUNBQVFkZ0NhaEFsR2d3QkN3c0NRQ0FBUWRBQmFoQUpSUTBBSUFBb0Fnd2lBeUFBUVJCcWEwR2ZBVW9OQUNBQUlBTkJCR28yQWd3Z0F5QUFLQUlJTmdJQUN5QUZJQUlnQUNnQ3ZBRWdCQ0FHRU1rQ093RUFJQUJCMEFGcUlBQkJFR29nQUNnQ0RDQUVFQzBnQUVIWUFtb2dBRUhRQW1vUUtBUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FDZ0MyQUloQWlBQkVBb2FJQUJCMEFGcUVBb2FJQUJCNEFKcUpBQWdBZ3VkQXdFQ2Z5TUFRZUFDYXlJQUpBQWdBQ0FDTmdMUUFpQUFJQUUyQXRnQ0lBTVFYQ0VHSUFNZ0FFSGdBV29RbVFFaEJ5QUFRZEFCYWlBRElBQkJ6QUpxRUpnQklBQkJ3QUZxRUJFaUFTQUJFQk1RRENBQUlBRkJBQkFMSWdJMkFyd0JJQUFnQUVFUWFqWUNEQ0FBUVFBMkFnZ0RRQUpBSUFCQjJBSnFJQUJCMEFKcUVEWkZEUUFnQUNnQ3ZBRWdBUkFKSUFKcVJnUkFJQUVRQ1NFRElBRWdBUkFKUVFGMEVBd2dBU0FCRUJNUURDQUFJQU1nQVVFQUVBc2lBbW8yQXJ3QkN5QUFRZGdDYWhBaElBWWdBaUFBUWJ3QmFpQUFRUWhxSUFBb0Fzd0NJQUJCMEFGcUlBQkJFR29nQUVFTWFpQUhFSXNCRFFBZ0FFSFlBbW9RSlJvTUFRc0xBa0FnQUVIUUFXb1FDVVVOQUNBQUtBSU1JZ01nQUVFUWFtdEJud0ZLRFFBZ0FDQURRUVJxTmdJTUlBTWdBQ2dDQ0RZQ0FBc2dCU0FDSUFBb0Fyd0JJQVFnQmhES0FqY0RBQ0FBUWRBQmFpQUFRUkJxSUFBb0Fnd2dCQkF0SUFCQjJBSnFJQUJCMEFKcUVDZ0VRQ0FFSUFRb0FnQkJBbkkyQWdBTElBQW9BdGdDSVFJZ0FSQUtHaUFBUWRBQmFoQUtHaUFBUWVBQ2FpUUFJQUlMblFNQkFuOGpBRUhnQW1zaUFDUUFJQUFnQWpZQzBBSWdBQ0FCTmdMWUFpQURFRndoQmlBRElBQkI0QUZxRUprQklRY2dBRUhRQVdvZ0F5QUFRY3dDYWhDWUFTQUFRY0FCYWhBUklnRWdBUkFURUF3Z0FDQUJRUUFRQ3lJQ05nSzhBU0FBSUFCQkVHbzJBZ3dnQUVFQU5nSUlBMEFDUUNBQVFkZ0NhaUFBUWRBQ2FoQTJSUTBBSUFBb0Fyd0JJQUVRQ1NBQ2FrWUVRQ0FCRUFraEF5QUJJQUVRQ1VFQmRCQU1JQUVnQVJBVEVBd2dBQ0FESUFGQkFCQUxJZ0pxTmdLOEFRc2dBRUhZQW1vUUlTQUdJQUlnQUVHOEFXb2dBRUVJYWlBQUtBTE1BaUFBUWRBQmFpQUFRUkJxSUFCQkRHb2dCeENMQVEwQUlBQkIyQUpxRUNVYURBRUxDd0pBSUFCQjBBRnFFQWxGRFFBZ0FDZ0NEQ0lESUFCQkVHcHJRWjhCU2cwQUlBQWdBMEVFYWpZQ0RDQURJQUFvQWdnMkFnQUxJQVVnQWlBQUtBSzhBU0FFSUFZUXl3STJBZ0FnQUVIUUFXb2dBRUVRYWlBQUtBSU1JQVFRTFNBQVFkZ0NhaUFBUWRBQ2FoQW9CRUFnQkNBRUtBSUFRUUp5TmdJQUN5QUFLQUxZQWlFQ0lBRVFDaG9nQUVIUUFXb1FDaG9nQUVIZ0Ftb2tBQ0FDQyt3QkFRRi9Jd0JCSUdzaUJpUUFJQVlnQVRZQ0dBSkFJQU1vQWdSQkFYRkZCRUFnQmtGL05nSUFJQVlnQUNBQklBSWdBeUFFSUFZZ0FDZ0NBQ2dDRUJFRkFDSUJOZ0lZQWtBQ1FBSkFJQVlvQWdBT0FnQUJBZ3NnQlVFQU9nQUFEQU1MSUFWQkFUb0FBQXdDQ3lBRlFRRTZBQUFnQkVFRU5nSUFEQUVMSUFZZ0F4QVBJQVlRT3lFQklBWVFEaUFHSUFNUUR5QUdFSXdCSVFBZ0JoQU9JQVlnQUJCTElBWkJESElnQUJCS0lBVWdCa0VZYWlJRElBSWdCaUFESUFFZ0JFRUJFTElCSUFaR09nQUFJQVlvQWhnaEFRTkFJQU5CREdzUUNpSURJQVpIRFFBTEN5QUdRU0JxSkFBZ0FRdnlBZ0VCZnlNQVFaQUNheUlBSkFBZ0FDQUNOZ0tBQWlBQUlBRTJBb2dDSUFCQjBBRnFFQkVoQmlBQVFSQnFJZ0lnQXhBUElBSVFNa0hnMEFCQit0QUFJQUJCNEFGcUVHOGdBaEFPSUFCQndBRnFFQkVpQXlBREVCTVFEQ0FBSUFOQkFCQUxJZ0UyQXJ3QklBQWdBallDRENBQVFRQTJBZ2dEUUFKQUlBQkJpQUpxSUFCQmdBSnFFREZGRFFBZ0FDZ0N2QUVnQXhBSklBRnFSZ1JBSUFNUUNTRUNJQU1nQXhBSlFRRjBFQXdnQXlBREVCTVFEQ0FBSUFJZ0EwRUFFQXNpQVdvMkFyd0JDeUFBUVlnQ2FoQWZRUkFnQVNBQVFid0JhaUFBUVFocVFRQWdCaUFBUVJCcUlBQkJER29nQUVIZ0FXb1FqUUVOQUNBQVFZZ0NhaEFpR2d3QkN3c2dBeUFBS0FLOEFTQUJheEFNSUFNUURTRUNFQlloQVNBQUlBVTJBZ0FnQWlBQklBQVF3UUpCQVVjRVFDQUVRUVEyQWdBTElBQkJpQUpxSUFCQmdBSnFFQ1lFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQW9nQ0lRRWdBeEFLR2lBR0VBb2FJQUJCa0FKcUpBQWdBUXZTQXdFQmZpTUFRYUFDYXlJQUpBQWdBQ0FDTmdLUUFpQUFJQUUyQXBnQ0lBQkI0QUZxSUFNZ0FFSHdBV29nQUVIdkFXb2dBRUh1QVdvUTF3RWdBRUhRQVdvUUVTSUJJQUVRRXhBTUlBQWdBVUVBRUFzaUFqWUN6QUVnQUNBQVFTQnFOZ0ljSUFCQkFEWUNHQ0FBUVFFNkFCY2dBRUhGQURvQUZnTkFBa0FnQUVHWUFtb2dBRUdRQW1vUU1VVU5BQ0FBS0FMTUFTQUJFQWtnQW1wR0JFQWdBUkFKSVFNZ0FTQUJFQWxCQVhRUURDQUJJQUVRRXhBTUlBQWdBeUFCUVFBUUN5SUNhallDekFFTElBQkJtQUpxRUI4Z0FFRVhhaUFBUVJacUlBSWdBRUhNQVdvZ0FDd0E3d0VnQUN3QTdnRWdBRUhnQVdvZ0FFRWdhaUFBUVJ4cUlBQkJHR29nQUVId0FXb1ExZ0VOQUNBQVFaZ0NhaEFpR2d3QkN3c0NRQ0FBUWVBQmFoQUpSUTBBSUFBdEFCZEZEUUFnQUNnQ0hDSURJQUJCSUdwclFaOEJTZzBBSUFBZ0EwRUVhallDSENBRElBQW9BaGcyQWdBTElBQWdBaUFBS0FMTUFTQUVFTU1DSUFBcEF3QWhCaUFGSUFBcEF3ZzNBd2dnQlNBR053TUFJQUJCNEFGcUlBQkJJR29nQUNnQ0hDQUVFQzBnQUVHWUFtb2dBRUdRQW1vUUpnUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FDZ0NtQUloQWlBQkVBb2FJQUJCNEFGcUVBb2FJQUJCb0FKcUpBQWdBZ3U3QXdBakFFR1FBbXNpQUNRQUlBQWdBallDZ0FJZ0FDQUJOZ0tJQWlBQVFkQUJhaUFESUFCQjRBRnFJQUJCM3dGcUlBQkIzZ0ZxRU5jQklBQkJ3QUZxRUJFaUFTQUJFQk1RRENBQUlBRkJBQkFMSWdJMkFyd0JJQUFnQUVFUWFqWUNEQ0FBUVFBMkFnZ2dBRUVCT2dBSElBQkJ4UUE2QUFZRFFBSkFJQUJCaUFKcUlBQkJnQUpxRURGRkRRQWdBQ2dDdkFFZ0FSQUpJQUpxUmdSQUlBRVFDU0VESUFFZ0FSQUpRUUYwRUF3Z0FTQUJFQk1RRENBQUlBTWdBVUVBRUFzaUFtbzJBcndCQ3lBQVFZZ0NhaEFmSUFCQkIyb2dBRUVHYWlBQ0lBQkJ2QUZxSUFBc0FOOEJJQUFzQU40QklBQkIwQUZxSUFCQkVHb2dBRUVNYWlBQVFRaHFJQUJCNEFGcUVOWUJEUUFnQUVHSUFtb1FJaG9NQVFzTEFrQWdBRUhRQVdvUUNVVU5BQ0FBTFFBSFJRMEFJQUFvQWd3aUF5QUFRUkJxYTBHZkFVb05BQ0FBSUFOQkJHbzJBZ3dnQXlBQUtBSUlOZ0lBQ3lBRklBSWdBQ2dDdkFFZ0JCREVBamtEQUNBQVFkQUJhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkJpQUpxSUFCQmdBSnFFQ1lFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQW9nQ0lRSWdBUkFLR2lBQVFkQUJhaEFLR2lBQVFaQUNhaVFBSUFJTHV3TUFJd0JCa0FKcklnQWtBQ0FBSUFJMkFvQUNJQUFnQVRZQ2lBSWdBRUhRQVdvZ0F5QUFRZUFCYWlBQVFkOEJhaUFBUWQ0QmFoRFhBU0FBUWNBQmFoQVJJZ0VnQVJBVEVBd2dBQ0FCUVFBUUN5SUNOZ0s4QVNBQUlBQkJFR28yQWd3Z0FFRUFOZ0lJSUFCQkFUb0FCeUFBUWNVQU9nQUdBMEFDUUNBQVFZZ0NhaUFBUVlBQ2FoQXhSUTBBSUFBb0Fyd0JJQUVRQ1NBQ2FrWUVRQ0FCRUFraEF5QUJJQUVRQ1VFQmRCQU1JQUVnQVJBVEVBd2dBQ0FESUFGQkFCQUxJZ0pxTmdLOEFRc2dBRUdJQW1vUUh5QUFRUWRxSUFCQkJtb2dBaUFBUWJ3QmFpQUFMQURmQVNBQUxBRGVBU0FBUWRBQmFpQUFRUkJxSUFCQkRHb2dBRUVJYWlBQVFlQUJhaERXQVEwQUlBQkJpQUpxRUNJYURBRUxDd0pBSUFCQjBBRnFFQWxGRFFBZ0FDMEFCMFVOQUNBQUtBSU1JZ01nQUVFUWFtdEJud0ZLRFFBZ0FDQURRUVJxTmdJTUlBTWdBQ2dDQ0RZQ0FBc2dCU0FDSUFBb0Fyd0JJQVFReFFJNEFnQWdBRUhRQVdvZ0FFRVFhaUFBS0FJTUlBUVFMU0FBUVlnQ2FpQUFRWUFDYWhBbUJFQWdCQ0FFS0FJQVFRSnlOZ0lBQ3lBQUtBS0lBaUVDSUFFUUNob2dBRUhRQVdvUUNob2dBRUdRQW1va0FDQUNDNUlEQVFGL0l3QkJrQUpySWdBa0FDQUFJQUkyQW9BQ0lBQWdBVFlDaUFJZ0F4QmNJUVlnQUVIUUFXb2dBeUFBUWY4QmFoQ2FBU0FBUWNBQmFoQVJJZ0VnQVJBVEVBd2dBQ0FCUVFBUUN5SUNOZ0s4QVNBQUlBQkJFR28yQWd3Z0FFRUFOZ0lJQTBBQ1FDQUFRWWdDYWlBQVFZQUNhaEF4UlEwQUlBQW9BcndCSUFFUUNTQUNha1lFUUNBQkVBa2hBeUFCSUFFUUNVRUJkQkFNSUFFZ0FSQVRFQXdnQUNBRElBRkJBQkFMSWdKcU5nSzhBUXNnQUVHSUFtb1FIeUFHSUFJZ0FFRzhBV29nQUVFSWFpQUFMQUQvQVNBQVFkQUJhaUFBUVJCcUlBQkJER3BCNE5BQUVJMEJEUUFnQUVHSUFtb1FJaG9NQVFzTEFrQWdBRUhRQVdvUUNVVU5BQ0FBS0FJTUlnTWdBRUVRYW10Qm53RktEUUFnQUNBRFFRUnFOZ0lNSUFNZ0FDZ0NDRFlDQUFzZ0JTQUNJQUFvQXJ3QklBUWdCaERHQWpjREFDQUFRZEFCYWlBQVFSQnFJQUFvQWd3Z0JCQXRJQUJCaUFKcUlBQkJnQUpxRUNZRVFDQUVJQVFvQWdCQkFuSTJBZ0FMSUFBb0FvZ0NJUUlnQVJBS0dpQUFRZEFCYWhBS0dpQUFRWkFDYWlRQUlBSUxKUUFnQUNnQ0JCb2dBQ0FBS0FJRVFiVi9jVFlDQkNBQUlBQW9BZ1JCQ0hJMkFnUWdBQXVTQXdFQmZ5TUFRWkFDYXlJQUpBQWdBQ0FDTmdLQUFpQUFJQUUyQW9nQ0lBTVFYQ0VHSUFCQjBBRnFJQU1nQUVIL0FXb1FtZ0VnQUVIQUFXb1FFU0lCSUFFUUV4QU1JQUFnQVVFQUVBc2lBallDdkFFZ0FDQUFRUkJxTmdJTUlBQkJBRFlDQ0FOQUFrQWdBRUdJQW1vZ0FFR0FBbW9RTVVVTkFDQUFLQUs4QVNBQkVBa2dBbXBHQkVBZ0FSQUpJUU1nQVNBQkVBbEJBWFFRRENBQklBRVFFeEFNSUFBZ0F5QUJRUUFRQ3lJQ2FqWUN2QUVMSUFCQmlBSnFFQjhnQmlBQ0lBQkJ2QUZxSUFCQkNHb2dBQ3dBL3dFZ0FFSFFBV29nQUVFUWFpQUFRUXhxUWVEUUFCQ05BUTBBSUFCQmlBSnFFQ0lhREFFTEN3SkFJQUJCMEFGcUVBbEZEUUFnQUNnQ0RDSURJQUJCRUdwclFaOEJTZzBBSUFBZ0EwRUVhallDRENBRElBQW9BZ2cyQWdBTElBVWdBaUFBS0FLOEFTQUVJQVlReVFJN0FRQWdBRUhRQVdvZ0FFRVFhaUFBS0FJTUlBUVFMU0FBUVlnQ2FpQUFRWUFDYWhBbUJFQWdCQ0FFS0FJQVFRSnlOZ0lBQ3lBQUtBS0lBaUVDSUFFUUNob2dBRUhRQVdvUUNob2dBRUdRQW1va0FDQUNDNUlEQVFGL0l3QkJrQUpySWdBa0FDQUFJQUkyQW9BQ0lBQWdBVFlDaUFJZ0F4QmNJUVlnQUVIUUFXb2dBeUFBUWY4QmFoQ2FBU0FBUWNBQmFoQVJJZ0VnQVJBVEVBd2dBQ0FCUVFBUUN5SUNOZ0s4QVNBQUlBQkJFR28yQWd3Z0FFRUFOZ0lJQTBBQ1FDQUFRWWdDYWlBQVFZQUNhaEF4UlEwQUlBQW9BcndCSUFFUUNTQUNha1lFUUNBQkVBa2hBeUFCSUFFUUNVRUJkQkFNSUFFZ0FSQVRFQXdnQUNBRElBRkJBQkFMSWdKcU5nSzhBUXNnQUVHSUFtb1FIeUFHSUFJZ0FFRzhBV29nQUVFSWFpQUFMQUQvQVNBQVFkQUJhaUFBUVJCcUlBQkJER3BCNE5BQUVJMEJEUUFnQUVHSUFtb1FJaG9NQVFzTEFrQWdBRUhRQVdvUUNVVU5BQ0FBS0FJTUlnTWdBRUVRYW10Qm53RktEUUFnQUNBRFFRUnFOZ0lNSUFNZ0FDZ0NDRFlDQUFzZ0JTQUNJQUFvQXJ3QklBUWdCaERLQWpjREFDQUFRZEFCYWlBQVFSQnFJQUFvQWd3Z0JCQXRJQUJCaUFKcUlBQkJnQUpxRUNZRVFDQUVJQVFvQWdCQkFuSTJBZ0FMSUFBb0FvZ0NJUUlnQVJBS0dpQUFRZEFCYWhBS0dpQUFRWkFDYWlRQUlBSUxrZ01CQVg4akFFR1FBbXNpQUNRQUlBQWdBallDZ0FJZ0FDQUJOZ0tJQWlBREVGd2hCaUFBUWRBQmFpQURJQUJCL3dGcUVKb0JJQUJCd0FGcUVCRWlBU0FCRUJNUURDQUFJQUZCQUJBTElnSTJBcndCSUFBZ0FFRVFhallDRENBQVFRQTJBZ2dEUUFKQUlBQkJpQUpxSUFCQmdBSnFFREZGRFFBZ0FDZ0N2QUVnQVJBSklBSnFSZ1JBSUFFUUNTRURJQUVnQVJBSlFRRjBFQXdnQVNBQkVCTVFEQ0FBSUFNZ0FVRUFFQXNpQW1vMkFyd0JDeUFBUVlnQ2FoQWZJQVlnQWlBQVFid0JhaUFBUVFocUlBQXNBUDhCSUFCQjBBRnFJQUJCRUdvZ0FFRU1ha0hnMEFBUWpRRU5BQ0FBUVlnQ2FoQWlHZ3dCQ3dzQ1FDQUFRZEFCYWhBSlJRMEFJQUFvQWd3aUF5QUFRUkJxYTBHZkFVb05BQ0FBSUFOQkJHbzJBZ3dnQXlBQUtBSUlOZ0lBQ3lBRklBSWdBQ2dDdkFFZ0JDQUdFTXNDTmdJQUlBQkIwQUZxSUFCQkVHb2dBQ2dDRENBRUVDMGdBRUdJQW1vZ0FFR0FBbW9RSmdSQUlBUWdCQ2dDQUVFQ2NqWUNBQXNnQUNnQ2lBSWhBaUFCRUFvYUlBQkIwQUZxRUFvYUlBQkJrQUpxSkFBZ0FndlZCUUVJZnlNQVFkQUJheUlHSkFBZ0F4QVpJUWNnQmlBQ05nSzhBU0FHSUFjMkFyZ0JRYmVwbXVaOFFlbjM4dko1SUFWQkVFWWJRZW4zOHZKNUlBTkJJRVliSVFzZ0JrRWdhaUVNQTBCQnl2Zm05d0loQWdOQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBQ1FidlRxYkI5VEFSQUlBSkJnc09vam54TUJFQWdBa0huK0llNWVFWU5BaUFDUWRTMytzQjRSZzBGSUFKQjZmZnk4bmxIRFFwQmc4T29qbndoQWtFQUlRY01DZ3NnQWtHRHc2aU9mRVlOQnlBQ1FZNkZzdVI4UmcwRklBSkJ0Nm1hNW54SERRa2dCaUFHUWFnQmFpSUNOZ0xBQVNBR0tBTEFBUm9nQWlBR0tBSzRBUkJVR2tHT2hiTGtmQ0VDUVFBaENBd0pDeUFDUVltQ3RPNENTZzBCSUFKQnZOT3BzSDFHRFFJZ0FrSFM0N3lTQWtZTkJTQUNRZVcvK0o4Q1J3MElJQVpCcUFGcUVBb2FJQVlvQXNBQkdndEJpb0swN2dJaEFnd0hDeUFDUWNyMzV2Y0NSd1JBSUFKQnBzZlZwZ1JHRFFZZ0FrR0tnclR1QWtjTkJ5QUdLQUs0QVJBUUlBWkIwQUZxSkFBUEN5QUdJQW8yQXNRQlFkUzMrc0I0UWJ6VHFiQjlJQVlvQXNRQklBTklHeUVDREFZTFFjU0JBU0FGTmdJQUlBQWdBU0FFSUFZb0FyZ0JJQU1RNWdFZ0N5RUNEQVVMSUFZb0FyZ0JJQVlvQXNRQmFpQUdLQUs4QVNBR0tBTEVBV290QUFBNkFBQWdCaWdDeEFGQkFXb2hDZ3dGQ3lBR0lBZzJBc2dCUWRManZKSUNRZVcvK0o4Q0lBWW9Bc2dCSUFWSUd5RUNEQU1MSUFaQkdHb2lEUkRNQWlFQ0lBd1F3Z0loQ0NBR1FRaHFJZ2tnQmtHb0FXb2dCaWdDeUFGQkFYUVF3QUlnQ0NBSkVMMENJQWtRQ2hvZ0RTQUpFUDBDSUFZb0FzZ0JRYUNCQVdvZ0JpZ0NDRG9BQUNBQ0VJb0JHaUFHS0FMSUFVRUJhaUVJUVk2RnN1UjhJUUlNQWdzZ0JpQUhOZ0xNQVVHbXg5V21CRUhuK0llNWVDQUdLQUxNQVNBRlNCc2hBZ3dCQ3lBR0tBTE1BVUdnZ1FGcUlBWW9BcmdCSUFZb0Fzd0JhaTBBQURvQUFDQUdLQUxNQVVFQmFpRUhRWVBEcUk1OElRSU1BQXNBQ3dBTDdBRUJBWDhqQUVFZ2F5SUdKQUFnQmlBQk5nSVlBa0FnQXlnQ0JFRUJjVVVFUUNBR1FYODJBZ0FnQmlBQUlBRWdBaUFESUFRZ0JpQUFLQUlBS0FJUUVRVUFJZ0UyQWhnQ1FBSkFBa0FnQmlnQ0FBNENBQUVDQ3lBRlFRQTZBQUFNQXdzZ0JVRUJPZ0FBREFJTElBVkJBVG9BQUNBRVFRUTJBZ0FNQVFzZ0JpQURFQThnQmhBeUlRRWdCaEFPSUFZZ0F4QVBJQVlRamdFaEFDQUdFQTRnQmlBQUVFc2dCa0VNY2lBQUVFb2dCU0FHUVJocUlnTWdBaUFHSUFNZ0FTQUVRUUVRdEFFZ0JrWTZBQUFnQmlnQ0dDRUJBMEFnQTBFTWF4QUtJZ01nQmtjTkFBc0xJQVpCSUdva0FDQUJDMEFCQVg5QkFDRUFBMzhnQVNBQ1JnUi9JQUFGSUFFb0FnQWdBRUVFZEdvaUFFR0FnSUNBZjNFaUEwRVlkaUFEY2lBQWN5RUFJQUZCQkdvaEFRd0JDd3NMR3dBakFFRVFheUlCSkFBZ0FDQUNJQU1RemdJZ0FVRVFhaVFBQzFRQkFuOENRQU5BSUFNZ0JFY0VRRUYvSVFBZ0FTQUNSZzBDSUFFb0FnQWlCU0FES0FJQUlnWklEUUlnQlNBR1NnUkFRUUVQQlNBRFFRUnFJUU1nQVVFRWFpRUJEQUlMQUFzTElBRWdBa2NoQUFzZ0FBdEFBUUYvUVFBaEFBTi9JQUVnQWtZRWZ5QUFCU0FCTEFBQUlBQkJCSFJxSWdCQmdJQ0FnSDl4SWdOQkdIWWdBM0lnQUhNaEFDQUJRUUZxSVFFTUFRc0xDL2NCQVFOL0lBQkZCRUJCd0lFQktBSUFJUUFqQUVFZ2F5SUVKQUJCZ0lFQklBQVF2Z0lpQlFSL0lBUWdBeWtBQURjREVDQUVJQU1wQUFnM0F4Z2dBZ1JBQTBBZ0JTQUVRUkJxSUFRUXB3RWdBa0VRSUFKQkVFa2JJUU5CQUNFQUEwQWdBQ0FCYWlJR0lBWXRBQUFnQUNBRWFpMEFBSE02QUFBZ0FFRUJhaUlBSUFOSERRQUxJQUlnQTJzaEFpQUJJQU5xSVFGQkR5RUFBMEFDUUNBQUlnTWdCRUVRYW1vaUFDQUFMUUFBUVFGcUlnQTZBQUFnQUVIL0FYRU5BQ0FEUVFGcklRQWdBdzBCQ3dzZ0FnMEFDd3NnQlJBUVFRQUZRWDhMR2lBRVFTQnFKQUFQQzBHZ2dRRkJ4SUVCS0FJQUlBTWdBU0FDRU9ZQkN4c0FJd0JCRUdzaUFTUUFJQUFnQWlBREVQTUNJQUZCRUdva0FBdGVBUU4vSUFFZ0JDQURhMm9oQlFKQUEwQWdBeUFFUndSQVFYOGhBQ0FCSUFKR0RRSWdBU3dBQUNJR0lBTXNBQUFpQjBnTkFpQUdJQWRLQkVCQkFROEZJQU5CQVdvaEF5QUJRUUZxSVFFTUFnc0FDd3NnQWlBRlJ5RUFDeUFBQzZrQkFRUi9JQUFvQWxRaUF5Z0NCQ0lGSUFBb0FoUWdBQ2dDSENJR2F5SUVJQVFnQlVzYklnUUVRQ0FES0FJQUlBWWdCQkJDR2lBRElBTW9BZ0FnQkdvMkFnQWdBeUFES0FJRUlBUnJJZ1UyQWdRTElBTW9BZ0FoQkNBRklBSWdBaUFGU3hzaUJRUkFJQVFnQVNBRkVFSWFJQU1nQXlnQ0FDQUZhaUlFTmdJQUlBTWdBeWdDQkNBRmF6WUNCQXNnQkVFQU9nQUFJQUFnQUNnQ0xDSUJOZ0ljSUFBZ0FUWUNGQ0FDQ3lrQUlBRWdBU2dDQUVFSGFrRjRjU0lCUVJCcU5nSUFJQUFnQVNrREFDQUJLUU1JRU4wQk9RTUFDN1FZQXhKL0FYd0NmaU1BUWJBRWF5SUxKQUFnQzBFQU5nSXNBa0FnQWIwaUdVSUFVd1JBUVFFaEVFSDVHaUVUSUFHYUlnRzlJUmtNQVFzZ0JFR0FFSEVFUUVFQklSQkIvQm9oRXd3QkMwSC9Ha0g2R2lBRVFRRnhJaEFiSVJNZ0VFVWhGQXNDUUNBWlFvQ0FnSUNBZ0lENC93Q0RRb0NBZ0lDQWdJRDQvd0JSQkVBZ0FFRWdJQUlnRUVFRGFpSURJQVJCLy85N2NSQXVJQUFnRXlBUUVDb2dBRUhISEVHQUhpQUZRU0J4SWdVYlFlb2NRWlllSUFVYklBRWdBV0liUVFNUUtpQUFRU0FnQWlBRElBUkJnTUFBY3hBdUlBSWdBeUFDSUFOS0d5RUpEQUVMSUF0QkVHb2hFUUpBQW44Q1FDQUJJQXRCTEdvUTNRSWlBU0FCb0NJQlJBQUFBQUFBQUFBQVlnUkFJQXNnQ3lnQ0xDSUdRUUZyTmdJc0lBVkJJSElpRGtIaEFFY05BUXdEQ3lBRlFTQnlJZzVCNFFCR0RRSWdDeWdDTENFS1FRWWdBeUFEUVFCSUd3d0JDeUFMSUFaQkhXc2lDallDTENBQlJBQUFBQUFBQUxCQm9pRUJRUVlnQXlBRFFRQklHd3NoRENBTFFUQnFJQXRCMEFKcUlBcEJBRWdiSWcwaEJ3TkFJQWNDZnlBQlJBQUFBQUFBQVBCQll5QUJSQUFBQUFBQUFBQUFabkVFUUNBQnF3d0JDMEVBQ3lJRE5nSUFJQWRCQkdvaEJ5QUJJQU80b1VRQUFBQUFaYzNOUWFJaUFVUUFBQUFBQUFBQUFHSU5BQXNDUUNBS1FRQk1CRUFnQ2lFRElBY2hCaUFOSVFnTUFRc2dEU0VJSUFvaEF3TkFJQU5CSFNBRFFSMUlHeUVEQWtBZ0IwRUVheUlHSUFoSkRRQWdBNjBoR2tJQUlSa0RRQ0FHSUJsQy8vLy8vdytESUFZMUFnQWdHb1o4SWhrZ0dVS0FsT3ZjQTRBaUdVS0FsT3ZjQTM1OVBnSUFJQVpCQkdzaUJpQUlUdzBBQ3lBWnB5SUdSUTBBSUFoQkJHc2lDQ0FHTmdJQUN3TkFJQWdnQnlJR1NRUkFJQVpCQkdzaUJ5Z0NBRVVOQVFzTElBc2dDeWdDTENBRGF5SUROZ0lzSUFZaEJ5QURRUUJLRFFBTEN5QU1RUmxxUVFsdUlRY2dBMEVBU0FSQUlBZEJBV29oRWlBT1FlWUFSaUVWQTBCQkFDQURheUlEUVFrZ0EwRUpTQnNoQ1FKQUlBWWdDRXNFUUVHQWxPdmNBeUFKZGlFV1FYOGdDWFJCZjNNaEQwRUFJUU1nQ0NFSEEwQWdCeUFESUFjb0FnQWlGeUFKZG1vMkFnQWdEeUFYY1NBV2JDRURJQWRCQkdvaUJ5QUdTUTBBQ3lBSUtBSUFJUWNnQTBVTkFTQUdJQU0yQWdBZ0JrRUVhaUVHREFFTElBZ29BZ0FoQndzZ0N5QUxLQUlzSUFscUlnTTJBaXdnRFNBSUlBZEZRUUowYWlJSUlCVWJJZ2NnRWtFQ2RHb2dCaUFHSUFkclFRSjFJQkpLR3lFR0lBTkJBRWdOQUFzTFFRQWhBd0pBSUFZZ0NFME5BQ0FOSUFoclFRSjFRUWxzSVFOQkNpRUhJQWdvQWdBaUNVRUtTUTBBQTBBZ0EwRUJhaUVESUFrZ0IwRUtiQ0lIVHcwQUN3c2dERUVBSUFNZ0RrSG1BRVliYXlBT1FlY0FSaUFNUVFCSGNXc2lCeUFHSUExclFRSjFRUWxzUVFsclNBUkFRUVJCcEFJZ0NrRUFTQnNnQzJvZ0IwR0F5QUJxSWdsQkNXMGlEMEVDZEdwQjBCOXJJUXBCQ2lFSElBa2dEMEVKYkdzaUNVRUhUQVJBQTBBZ0IwRUtiQ0VISUFsQkFXb2lDVUVJUncwQUN3c0NRQ0FLS0FJQUloSWdFaUFIYmlJVklBZHNheUlKUlNBS1FRUnFJZzhnQmtaeERRQUNRQ0FWUVFGeFJRUkFSQUFBQUFBQUFFQkRJUUVnQjBHQWxPdmNBMGNnQ0NBS1QzSU5BU0FLUVFSckxRQUFRUUZ4UlEwQkMwUUJBQUFBQUFCQVF5RUJDMFFBQUFBQUFBRGdQMFFBQUFBQUFBRHdQMFFBQUFBQUFBRDRQeUFHSUE5R0cwUUFBQUFBQUFENFB5QUpJQWRCQVhZaUQwWWJJQWtnRDBrYklSZ0NRQ0FVRFFBZ0V5MEFBRUV0UncwQUlCaWFJUmdnQVpvaEFRc2dDaUFTSUFscklnazJBZ0FnQVNBWW9DQUJZUTBBSUFvZ0J5QUphaUlETmdJQUlBTkJnSlRyM0FOUEJFQURRQ0FLUVFBMkFnQWdDQ0FLUVFScklncExCRUFnQ0VFRWF5SUlRUUEyQWdBTElBb2dDaWdDQUVFQmFpSUROZ0lBSUFOQi81UHIzQU5MRFFBTEN5QU5JQWhyUVFKMVFRbHNJUU5CQ2lFSElBZ29BZ0FpQ1VFS1NRMEFBMEFnQTBFQmFpRURJQWtnQjBFS2JDSUhUdzBBQ3dzZ0NrRUVhaUlISUFZZ0JpQUhTeHNoQmdzRFFDQUdJZ2NnQ0UwaUNVVUVRQ0FIUVFScklnWW9BZ0JGRFFFTEN3SkFJQTVCNXdCSEJFQWdCRUVJY1NFS0RBRUxJQU5CZjNOQmZ5QU1RUUVnREJzaUJpQURTaUFEUVh0S2NTSUtHeUFHYWlFTVFYOUJmaUFLR3lBRmFpRUZJQVJCQ0hFaUNnMEFRWGNoQmdKQUlBa05BQ0FIUVFScktBSUFJZzVGRFFCQkNpRUpRUUFoQmlBT1FRcHdEUUFEUUNBR0lncEJBV29oQmlBT0lBbEJDbXdpQ1hCRkRRQUxJQXBCZjNNaEJnc2dCeUFOYTBFQ2RVRUpiQ0VKSUFWQlgzRkJ4Z0JHQkVCQkFDRUtJQXdnQmlBSmFrRUpheUlHUVFBZ0JrRUFTaHNpQmlBR0lBeEtHeUVNREFFTFFRQWhDaUFNSUFNZ0NXb2dCbXBCQ1dzaUJrRUFJQVpCQUVvYklnWWdCaUFNU2hzaERBdEJmeUVKSUF4Qi9mLy8vd2RCL3YvLy93Y2dDaUFNY2lJR0cwb05BU0FNSUFaQkFFY2lFbXBCQVdvaERnSkFJQVZCWDNFaUZFSEdBRVlFUUNBRFFmLy8vLzhISUE1clNnMERJQU5CQUNBRFFRQktHeUVHREFFTElCRWdBeUFEUVI5MUlnWnFJQVp6clNBUkVJOEJJZ1pyUVFGTUJFQURRQ0FHUVFGcklnWkJNRG9BQUNBUklBWnJRUUpJRFFBTEN5QUdRUUpySWc4Z0JUb0FBQ0FHUVFGclFTMUJLeUFEUVFCSUd6b0FBQ0FSSUE5cklnWkIvLy8vL3djZ0RtdEtEUUlMSUFZZ0Rtb2lBeUFRUWYvLy8vOEhjMG9OQVNBQVFTQWdBaUFESUJCcUlnVWdCQkF1SUFBZ0V5QVFFQ29nQUVFd0lBSWdCU0FFUVlDQUJITVFMZ0pBQWtBQ1FDQVVRY1lBUmdSQUlBdEJFR29pQmtFSWNpRURJQVpCQ1hJaENpQU5JQWdnQ0NBTlN4c2lDU0VJQTBBZ0NEVUNBQ0FLRUk4QklRWUNRQ0FJSUFsSEJFQWdCaUFMUVJCcVRRMEJBMEFnQmtFQmF5SUdRVEE2QUFBZ0JpQUxRUkJxU3cwQUN3d0JDeUFHSUFwSERRQWdDMEV3T2dBWUlBTWhCZ3NnQUNBR0lBb2dCbXNRS2lBSVFRUnFJZ2dnRFUwTkFBdEJBQ0VHSUJKRkRRSWdBRUgrSGtFQkVDb2dERUVBVENBSElBaE5jZzBCQTBBZ0NEVUNBQ0FLRUk4QklnWWdDMEVRYWtzRVFBTkFJQVpCQVdzaUJrRXdPZ0FBSUFZZ0MwRVFha3NOQUFzTElBQWdCaUFNUVFrZ0RFRUpTQnNRS2lBTVFRbHJJUVlnQ0VFRWFpSUlJQWRQRFFNZ0RFRUpTaUVESUFZaERDQUREUUFMREFJTEFrQWdERUVBU0EwQUlBY2dDRUVFYWlBSElBaExHeUVKSUF0QkVHb2lBMEVKY2lFTklBTkJDSEloQXlBSUlRY0RRQ0FOSUFjMUFnQWdEUkNQQVNJR1JnUkFJQXRCTURvQUdDQURJUVlMQWtBZ0J5QUlSd1JBSUFZZ0MwRVFhazBOQVFOQUlBWkJBV3NpQmtFd09nQUFJQVlnQzBFUWFrc05BQXNNQVFzZ0FDQUdRUUVRS2lBR1FRRnFJUVpCQUNBTVFRQk1JQW9iRFFBZ0FFSCtIa0VCRUNvTElBQWdCaUFOSUFacklnWWdEQ0FHSUF4SUd4QXFJQXdnQm1zaERDQUhRUVJxSWdjZ0NVOE5BU0FNUVFCT0RRQUxDeUFBUVRBZ0RFRVNha0VTUVFBUUxpQUFJQThnRVNBUGF4QXFEQUlMSUF3aEJnc2dBRUV3SUFaQkNXcEJDVUVBRUM0TElBQkJJQ0FDSUFVZ0JFR0F3QUJ6RUM0Z0FpQUZJQUlnQlVvYklRa01BUXNnRXlBRlFScDBRUjkxUVFseGFpRU1Ba0FnQTBFTFN3MEFRUXdnQTJzaEJrUUFBQUFBQUFBd1FDRVlBMEFnR0VRQUFBQUFBQUF3UUtJaEdDQUdRUUZySWdZTkFBc2dEQzBBQUVFdFJnUkFJQmdnQVpvZ0dLR2dtaUVCREFFTElBRWdHS0FnR0tFaEFRc2dFU0FMS0FJc0lnWWdCa0VmZFNJR2FpQUdjNjBnRVJDUEFTSUdSZ1JBSUF0Qk1Eb0FEeUFMUVE5cUlRWUxJQkJCQW5JaENpQUZRU0J4SVFnZ0N5Z0NMQ0VISUFaQkFtc2lEU0FGUVE5cU9nQUFJQVpCQVd0QkxVRXJJQWRCQUVnYk9nQUFJQVJCQ0hFaEJpQUxRUkJxSVFjRFFDQUhJZ1VDZnlBQm1VUUFBQUFBQUFEZ1FXTUVRQ0FCcWd3QkMwR0FnSUNBZUFzaUIwR2dNbW90QUFBZ0NISTZBQUJCQVNBRFFRQktJQUVnQjdlaFJBQUFBQUFBQURCQW9pSUJSQUFBQUFBQUFBQUFZbklnQmh0RklBVkJBV29pQnlBTFFSQnFhMEVCUjNKRkJFQWdCVUV1T2dBQklBVkJBbW9oQndzZ0FVUUFBQUFBQUFBQUFHSU5BQXRCZnlFSlFmMy8vLzhISUFvZ0VTQU5heUlGYWlJR2F5QURTQTBBSUFCQklDQUNJQVlDZndKQUlBTkZEUUFnQnlBTFFSQnFheUlJUVFKcklBTk9EUUFnQTBFQ2Fnd0JDeUFISUF0QkVHcHJJZ2dMSWdkcUlnTWdCQkF1SUFBZ0RDQUtFQ29nQUVFd0lBSWdBeUFFUVlDQUJITVFMaUFBSUF0QkVHb2dDQkFxSUFCQk1DQUhJQWhyUVFCQkFCQXVJQUFnRFNBRkVDb2dBRUVnSUFJZ0F5QUVRWURBQUhNUUxpQUNJQU1nQWlBRFNoc2hDUXNnQzBHd0JHb2tBQ0FKQzFRQkFuOGdBU0FBS0FKVUlnRWdBVUVBSUFKQmdBSnFJZ01RM0FFaUJDQUJheUFESUFRYklnTWdBaUFDSUFOTEd5SUNFRUlhSUFBZ0FTQURhaUlETmdKVUlBQWdBellDQ0NBQUlBRWdBbW8yQWdRZ0Fnc0pBQ0FBRU9FQkVCQUxFd0FnQUNBQUtBSUFRUXhyS0FJQWFoRGlBUXNUQUNBQUlBQW9BZ0JCREdzb0FnQnFFSW9CQ3dvQUlBQkJDR3NRNGdFTENnQWdBRUVJYXhDS0FRc2FBQ0FBSUFFZ0Fpa0RDRUVBSUFNZ0FTZ0NBQ2dDRUJFV0FBc0pBQ0FBRU5BQkVCQUxsQUlDQVg4RGZpQUJLQUlZSUFFb0FpeExCRUFnQVNBQktBSVlOZ0lzQzBKL0lRZ0NRQ0FFUVJoeElnVkZJQVZCR0VZZ0EwRUJSbkZ5RFFBZ0FTZ0NMQ0lGQkVBZ0JTQUJRU0JxRUExcnJDRUdDd0pBQWtBQ1FDQUREZ01DQUFFREN5QUVRUWh4QkVBZ0FTZ0NEQ0FCS0FJSWE2d2hCd3dDQ3lBQktBSVlJQUVvQWhScnJDRUhEQUVMSUFZaEJ3c2dBaUFIZkNJQ1FnQlRJQUlnQmxWeURRQWdCRUVJY1NFREFrQWdBbEFOQUNBREJFQWdBU2dDREVVTkFnc2dCRUVRY1VVTkFDQUJLQUlZUlEwQkN5QURCRUFnQVNBQktBSUlJQUVvQWdnZ0FxZHFJQUVvQWl3UW13RUxJQVJCRUhFRVFDQUJJQUVvQWhRZ0FTZ0NIQkQyQWlBQklBS25FUFVDQ3lBQ0lRZ0xJQUFnQ0JDN0FRdURBZ0VKZnlNQVFSQnJJZ01rQUFKL0lBRkJmeEJlUlFSQUlBQW9BZ3doQkNBQUtBSUlJUVVnQUNnQ0dDQUFLQUljUmdSQVFYOGdBQzBBTUVFUWNVVU5BaG9nQUNnQ0dDRUdJQUFvQWhRaEJ5QUFLQUlzSVFnZ0FDZ0NGQ0VKSUFCQklHb2lBa0VBRUtFQklBSWdBaEFURUF3Z0FDQUNFQTBpQ2lBQ0VBa2dDbW9ROWdJZ0FDQUdJQWRyRVBVQ0lBQWdBQ2dDRkNBSUlBbHJhallDTEFzZ0F5QUFLQUlZUVFGcU5nSU1JQUFnQTBFTWFpQUFRU3hxRUhZb0FnQTJBaXdnQUMwQU1FRUljUVJBSUFBZ0FFRWdhaEFOSWdJZ0FpQUVJQVZyYWlBQUtBSXNFSnNCQ3lBQUlBRVFuQUVRL2dJTUFRc2dBUkR5QWdzaEFDQURRUkJxSkFBZ0FBdWdBUUVCZnlBQUtBSVlJQUFvQWl4TEJFQWdBQ0FBS0FJWU5nSXNDd0pBSUFBb0FnZ2dBQ2dDREU4TkFDQUJRWDhRWGdSQUlBQWdBQ2dDQ0NBQUtBSU1RUUZySUFBb0Fpd1Ftd0VnQVJEeUFnOExJQUF0QURCQkVIRkZCRUFnQVJDY0FTQUFLQUlNUVFGckxBQUFFRjVGRFFFTElBQWdBQ2dDQ0NBQUtBSU1RUUZySUFBb0Fpd1Ftd0VnQVJDY0FTRUNJQUFvQWd3Z0Fqb0FBQ0FCRHd0QmZ3dGtBQ0FBS0FJWUlBQW9BaXhMQkVBZ0FDQUFLQUlZTmdJc0N3SkFJQUF0QURCQkNIRkZEUUFnQUNnQ0VDQUFLQUlzU1FSQUlBQWdBQ2dDQ0NBQUtBSU1JQUFvQWl3UW13RUxJQUFvQWd3Z0FDZ0NFRThOQUNBQUtBSU1MQUFBRUdVUEMwRi9Dd2NBSUFBb0FnZ0xFd0FnQUNBQUtBSUFRUXhyS0FJQWFoRGpBUXNLQUNBQVFRaHJFT01CQ3hNQUlBQWdBQ2dDQUVFTWF5Z0NBR29RdUFFTENnQWdBRUVJYXhDNEFRc1RBQ0FBSUFBb0FnQkJER3NvQWdCcUVQa0NDeE1BSUFBZ0FDZ0NBRUVNYXlnQ0FHb1E1QUVMQ1FCQnlJRUJFQW9hQ3hNQUlBQWdBQ2dDQUVFTWF5Z0NBR29RaHdNTEV3QWdBQ0FBS0FJQVFReHJLQUlBYWhEbEFRdXRBUUVFZnlNQVFSQnJJZ1VrQUFOQUFrQWdBaUFFVEEwQUlBQW9BaGdpQXlBQUtBSWNJZ1pQQkVBZ0FDQUJMQUFBRUdVZ0FDZ0NBQ2dDTkJFQ0FFRi9SZzBCSUFSQkFXb2hCQ0FCUVFGcUlRRUZJQVVnQmlBRGF6WUNEQ0FGSUFJZ0JHczJBZ2dnQlVFTWFpQUZRUWhxRUxvQklRTWdBQ2dDR0NBQklBTW9BZ0FpQXhCVklBQWdBeUFBS0FJWWFqWUNHQ0FESUFScUlRUWdBU0FEYWlFQkN3d0JDd3NnQlVFUWFpUUFJQVFMQy9KaUlnQkJnQWdMc3lXbFkyUEdoSHg4K0psM2QrNk5lM3YyRGZMeS83MXJhOWF4YjIvZVZNWEZrVkF3TUdBREFRRUNxV2Ruem4wcksxWVovdjduWXRmWHRlYXJxMDJhZG5ic1JjcktqNTJDZ2g5QXljbUpoMzE5K2hYNit1L3JXVm15eVVkSGpndnc4UHZzcmExQlo5VFVzLzJpb2wvcXI2OUZ2NXljSS9la3BGT1djbkxrVzhEQW04SzN0M1VjL2YzaHJwT1RQV29tSmt4YU5qWnNRVDgvZmdMMzkvVlB6TXlEWERRMGFQU2xwVkUwNWVYUkNQSHgrWk54Y2VKejJOaXJVekV4WWo4VkZTb01CQVFJVXNmSGxXVWpJMFpldzhPZEtCZ1lNS0dXbGpjUEJRVUt0WnFhTHdrSEJ3NDJFaElrbTRDQUd6M2k0dDhtNit2TmFTY25UczJ5c24rZmRYWHFHd2tKRXA2RGd4MTBMQ3hZTGhvYU5DMGJHemF5Ym03YzdscGF0UHVnb0Z2MlVsS2tUVHM3ZG1IVzFyZk9zN045ZXlrcFVqN2o0OTF4THk5ZWw0U0VFL1ZUVTZabzBkRzVBQUFBQUN6dDdjRmdJQ0JBSC96ODQ4aXhzWG50VzF1MnZtcHExRWJMeTQzWnZyNW5Tems1Y3Q1S1NwVFVURXlZNkZoWXNFclB6NFZyME5DN0t1L3Z4ZVdxcWs4VysvdnR4VU5EaHRkTlRacFZNek5tbElXRkVjOUZSWW9RK2ZucEJnSUNCSUYvZi83d1VGQ2dSRHc4ZUxxZm55WGpxS2hMODFGUm92NmpvMTNBUUVDQWlvK1BCYTJTa2orOG5aMGhTRGc0Y0FUMTlmSGZ2THhqd2JhMmQzWGEycTlqSVNGQ01CQVFJQnIvLytVTzgvUDliZExTdjB6TnpZRVVEQXdZTlJNVEppL3M3TVBoWDErK29wZVhOY3hFUklnNUZ4Y3VWOFRFay9LbnAxV0Nmbjc4UnowOWVxeGtaTWpuWFYyNkt4a1pNcFZ6YythZ1lHREFtSUdCR2RGUFQ1NS8zTnlqWmlJaVJINHFLbFNya0pBN2c0aUlDOHBHUm93cDd1N0gwN2k0YXp3VUZDaDUzdDZuNGw1ZXZCMExDeFoyMjl1dE8rRGcyMVl5TW1ST09qcDBIZ29LRk50SlNaSUtCZ1lNYkNRa1NPUmNYTGhkd3NLZmJ0UFR2ZStzckVPbVltTEVxSkdST2FTVmxURTM1T1RUaTNsNThqTG41OVZEeU1pTFdUYzNicmR0YmRxTWpZMEJaTlhWc2RKT1RwemdxYWxKdEd4czJQcFdWcXdIOVBUekplcnF6NjlsWmNxT2VucjA2YTZ1UnhnSUNCRFZ1cnB2aUhoNDhHOGxKVXB5TGk1Y0pCd2NPUEdtcGxmSHRMUnpVY2JHbHlQbzZNdDgzZDJobkhSMDZDRWZIejdkUzB1VzNMMjlZWWFMaXcyRmlvb1BrSEJ3NEVJK1BuekV0YlZ4cW1abXpOaElTSkFGQXdNR0FmYjI5eElPRGh5allXSENYelUxYXZsWFY2N1F1Ymxwa1lhR0YxakJ3WmtuSFIwNnVaNmVKempoNGRrVCtQanJzNWlZS3pNUkVTSzdhV25TY05uWnFZbU9qZ2VubEpRenRwdWJMU0llSGp5U2g0Y1ZJT25weVVuT3pvZi9WVldxZUNnb1VIcmYzNldQakl3RCtLR2hXWUNKaVFrWERRMGEycisvWlRIbTV0ZkdRa0tFdUdobzBNTkJRWUt3bVprcGR5MHRXaEVQRHg3THNMQjcvRlJVcU5hN3UyMDZGaFlzVUtmMFVWTmxRWDdEcEJjYWxsNG5Pc3RycXp2eFJaMGZxMWo2ckpNRDQwdFYrakFnOW0xMnJaRjJ6SWdsVEFMMS9OZmxUOWZMS3NXQVJEVW1qNk5pdFVsYXNkNW5HN29sbUE3cVJlSEEvbDBDZFMvREV2Qk1nYU9YUm8zRytkTnI1MStQQTVXY2toWHJlbTIvMmxsU2xTMkR2dFRUSVhSWUtXbmdTVVRJeVk1cWljSjFlSG1POUdzK1dKbmRjYmtudGsvaHZoZXRpUEJtckNESnREck9mUmhLMzJPQ01ScmxZRE5SbDBWL1UyTGdkMlN4aEs1cnV4eWdnZjZVS3dqNVdHaEljQm45UlkrSGJONlV0L2g3VWlQVGM2dmlBa3R5VjQ4ZjR5cXJWV1lIS091eUE4SzFMNXA3eFlhbENEZlQ4b2NvTUxLbHZ5TzZhZ01DWElJVzdTc2N6NHFTdEhtbjhQSUg4NkhpYVU3TjlOcGwxYjRGQmg5aU5OR0svcWJFblZNdU5LQlY4Nkl5NFlvRmRldjJwRG5zZ3d1cTcyQkFCcDl4WGxFUWJyMzVpaUUrUFFiZGxxNEZQdDFHdmVaTnRZMVVrUVZkeEhGdjFBWUUveFZRWUNUN21CbVg2YjNXekVOQWlYZWUyV2U5UXVpd2lJdUpCemhiR2VmYjdzaDVSd3A4b2VrUFFuekpIb1Q0QUFBQUFJT0dnQWxJN1NzeXJIQVJIazV5V216Ny93NzlWamlGRHg3VnJqMG5PUzAyWk5rUENpR21YR2pSVkZ1Yk9pNDJKTEZuQ2d3UDUxZVQwcGJ1dEo2Um14dFB4Y0NBb2lEY1lXbExkMW9XR2hJY0NycVQ0dVVxb01CRDRDSThIUmNiRWdzTkNRNnR4NHZ5dWFpMkxjaXBIaFNGR2ZGWFRBZDFyN3ZkbWU3OVlIK2pueVlCOTd6MWNsekZPMlpFTkg3N1czWXBRNHZjeGlQTGFQenR0bVB4NUxqSzNESFhFSVZqUWtBaWx4TWdFY2FFZlNSS2hmZzl1OUlSTXZtdWJhRXB4MHN2bmgzek1MTGM3RktHRGREandYZHNGck1ybWJsd3FmcElsQkVpWk9sSHhJejhxQm8vOEtEWUxIMVc3NUF6SXNkT1NZZkIwVGpaL3FMS2pEWUwxSmpQZ2ZXbUtONTZwU2FPdDlxa3Y2MC81SjA2TEEyU2VGQ2J6RjlxWWtaK1ZNSVRqZmJvdU5pUVh2YzVMdld2dzRLK2dGMmZmSlBRYWFrdDFXK3pFaVhQTzVtc3lLZDlHQkJ1WTV6b2U3czcyd2w0SnMzMEdGbHVBYmVhN0tpYVQ0TmxicFhtZnViL3FnalB2Q0htNkJYdjJadm51czQyYjByVUNaL3Exbnl3S2EreXBERXhJejhxTUpTbHhzQm1valUzdkU1MHBzcUMvTERRa09BVjJLY3pTcGdFOGZmYTdFRU9VTTEvTC9hUkY0M1dUWFpOc085RFZFMnF6TjhFbHVUanRkR2VHNGhxVExnZkxNRi9VV1ZHQk9wZW5WMDFqQUZ6ZElmNkxrRUwrMW9kWjdOUzB0dVNNMVlRNlJOSDFtMk1ZZGVhZWd5aE40NFUrRm1KUEJQcjdpZXB6alhKWWJmdDVSemhQTEZIZWxuZjBwdy9jL0pWZWM0VUdMODN4M1BxemZkVFc2cjlYeFJ2UGQrRzIwUjRnZk92eWo3RWFMa3NOQ1E0WDBDanduTERIUllNSmVLOGkwazhLRUdWRGY5eEFhZzUzck1NQ0p6a3ROaVF3VlprWVlUTGUzQzJNdFYwWEd4SVFsZTQwRklKYXRVd05xVTR2MENqbm9IejEvdDg0em1DbXkvL2h6U09RMFRFM3VuTFZIdVVNcWJDSXozdVRKVUxRdnJEVGdndW9XWW8yU1N5ZGx1aVNXMkwwU1Z5K1Baa2htaVlGdFNrWE14ZFpiYVNiSEJJVVAzdHVkcGVGVVpYcDQyZGhKRFlxd0NNdk5NSzkrUllCYml6UlFiUUxCNlB5ajhQQXNHdnZRTUJFNHByT3BFUlFVOW4zT3FYOHMvTzhMVG1jNWFzZENMbnJUV0Y0dmszNkJ4MTMyNUg4UnB4SFNuRmlXKzNZZzZxR0w0Yi9GWStTOGJTZVNDYTI4RCtlTTFhOUIvZHFET0lCOGN4c1JJUVdTZUE3RjlnVVgrcEdiVktEUzNsZXArVHlaenZvT0E3VGE0cTliREk2N3M4ZzFPWllSY3JCSDY2ZDlZbTRXa1VZMVVoREgwQkFnUUlFQ0JBZ0JzMmFXNW1hVzVwZEhrQVJtVmljblZoY25rQVNtRnVkV0Z5ZVFCS2RXeDVBRlJvZFhKelpHRjVBRlIxWlhOa1lYa0FWMlZrYm1WelpHRjVBRk5oZEhWeVpHRjVBRk4xYm1SaGVRQk5iMjVrWVhrQVJuSnBaR0Y1QUUxaGVRQWxiUzhsWkM4bGVRQXRLeUFnSURCWU1IZ0FMVEJZS3pCWUlEQllMVEI0S3pCNElEQjRBRTV2ZGdCVWFIVUFRWFZuZFhOMEFFOWpkQUJUWVhRQVFYQnlBSFpsWTNSdmNnQlBZM1J2WW1WeUFFNXZkbVZ0WW1WeUFGTmxjSFJsYldKbGNnQkVaV05sYldKbGNnQnBiM05mWW1GelpUbzZZMnhsWVhJQVRXRnlBRk5sY0FBbFNUb2xUVG9sVXlBbGNBQlRkVzRBU25WdUFITjBaRG82WlhoalpYQjBhVzl1QUY5ZlkzaGhYMmQxWVhKa1gyRmpjWFZwY21VZ1pHVjBaV04wWldRZ2NtVmpkWEp6YVhabElHbHVhWFJwWVd4cGVtRjBhVzl1QUUxdmJnQnVZVzRBU21GdUFFcDFiQUJzYkFCQmNISnBiQUJHY21rQVRXRnlZMmdBUVhWbkFHbHVaZ0FsTGpCTVpnQWxUR1lBWVd4c2IyTmhkRzl5UEZRK09qcGhiR3h2WTJGMFpTaHphWHBsWDNRZ2Jpa2dKMjRuSUdWNFkyVmxaSE1nYldGNGFXMTFiU0J6ZFhCd2IzSjBaV1FnYzJsNlpRQjBjblZsQUZSMVpRQm1ZV3h6WlFCS2RXNWxBRmRsWkFCRVpXTUFSbVZpQUNWaElDVmlJQ1ZrSUNWSU9pVk5PaVZUSUNWWkFGQlBVMGxZQUNWSU9pVk5PaVZUQUU1QlRnQlFUUUJCVFFCTVExOUJURXdBVEVGT1J3QkpUa1lBUXdBd01USXpORFUyTnpnNUFFTXVWVlJHTFRnQVlYQndYM1l5QUhkbFlsOTJNZ0JCUWtORVJVWkhTRWxLUzB4TlRrOVFVVkpUVkZWV1YxaFpXbUZpWTJSbFptZG9hV3ByYkcxdWIzQnhjbk4wZFhaM2VIbDZNREV5TXpRMU5qYzRPU3N2QUM0QUtHNTFiR3dwQUZCMWNtVWdkbWx5ZEhWaGJDQm1kVzVqZEdsdmJpQmpZV3hzWldRaEFGdG9SVXVjcSs1SHlnVDBCUUFBQUFBQUFBQm9FUUFBQkFBQUFBVUFBQUFHQUFBQUJ3QUFBQWdBQUFBSkFBQUFDZ0FBQUFzQUFBQU1BQUFBRFFBQUFBNEFBQUFQQUFBQUVBQUFBQkVBQUFBSUFBQUFBQUFBQUtBUkFBQVNBQUFBRXdBQUFQai8vLy80Ly8vL29CRUFBQlFBQUFBVkFBQUFBQkFBQUJRUUFBQUVBQUFBQUFBQUFPZ1JBQUFXQUFBQUZ3QUFBUHovLy8vOC8vLy82QkVBQUJnQUFBQVpBQUFBTUJBQUFFUVFBQUFNQUFBQUFBQUFBSUFTQUFBYUFBQUFHd0FBQUFRQUFBRDQvLy8vZ0JJQUFCd0FBQUFkQUFBQTlQLy8vL1QvLy8rQUVnQUFIZ0FBQUI4QUFBQmdFQUFBREJJQUFDQVNBQUEwRWdBQVNCSUFBSWdRQUFCMEVBQUFBQUFBQU9RU0FBQWdBQUFBSVFBQUFBWUFBQUFIQUFBQUlnQUFBQ01BQUFBS0FBQUFDd0FBQUF3QUFBQWtBQUFBRGdBQUFDVUFBQUFRQUFBQUpnQUFBQUFBQUFBb0VRQUFKd0FBQUNnQUFBQk9VM1F6WDE4eU9XSmhjMmxqWDJsdmMwbGpUbE5mTVRGamFHRnlYM1J5WVdsMGMwbGpSVVZGUlFBQUFCZy9BQUQ4RUFBQVdCUUFBRTVUZEROZlh6SXhOV0poYzJsalgzTjBjbVZoYldKMVprbGpUbE5mTVRGamFHRnlYM1J5WVdsMGMwbGpSVVZGUlFBQUFBRHdQZ0FBTkJFQUFFNVRkRE5mWHpJeE0ySmhjMmxqWDJsemRISmxZVzFKWTA1VFh6RXhZMmhoY2w5MGNtRnBkSE5KWTBWRlJVVUFBSFEvQUFCd0VRQUFBQUFBQUFFQUFBQW9FUUFBQS9ULy8wNVRkRE5mWHpJeE0ySmhjMmxqWDI5emRISmxZVzFKWTA1VFh6RXhZMmhoY2w5MGNtRnBkSE5KWTBWRlJVVUFBSFEvQUFDNEVRQUFBQUFBQUFFQUFBQW9FUUFBQS9ULy93d0FBQUFBQUFBQW9CRUFBQklBQUFBVEFBQUE5UC8vLy9ULy8vK2dFUUFBRkFBQUFCVUFBQUFFQUFBQUFBQUFBT2dSQUFBV0FBQUFGd0FBQVB6Ly8vLzgvLy8vNkJFQUFCZ0FBQUFaQUFBQVRsTjBNMTlmTWpFMFltRnphV05mYVc5emRISmxZVzFKWTA1VFh6RXhZMmhoY2w5MGNtRnBkSE5KWTBWRlJVVUFkRDhBQUZBU0FBQURBQUFBQWdBQUFLQVJBQUFDQUFBQTZCRUFBQUlJQUFCT1UzUXpYMTh5TVRWaVlYTnBZMTl6ZEhKcGJtZGlkV1pKWTA1VFh6RXhZMmhoY2w5MGNtRnBkSE5KWTBWRlRsTmZPV0ZzYkc5allYUnZja2xqUlVWRlJRQUFBQmcvQUFDZ0VnQUFhQkVBQUVBQUFBQUFBQUFBS0JRQUFDa0FBQUFxQUFBQU9BQUFBUGovLy84b0ZBQUFLd0FBQUN3QUFBREEvLy8vd1AvLy95Z1VBQUF0QUFBQUxnQUFBUHdTQUFCZ0V3QUFuQk1BQUxBVEFBREVFd0FBMkJNQUFJZ1RBQUIwRXdBQUpCTUFBQkFUQUFCQUFBQUFBQUFBQUlBU0FBQWFBQUFBR3dBQUFEZ0FBQUQ0Ly8vL2dCSUFBQndBQUFBZEFBQUF3UC8vLzhELy8vK0FFZ0FBSGdBQUFCOEFBQUJBQUFBQUFBQUFBS0FSQUFBU0FBQUFFd0FBQU1ELy8vL0EvLy8vb0JFQUFCUUFBQUFWQUFBQU9BQUFBQUFBQUFEb0VRQUFGZ0FBQUJjQUFBREkvLy8veVAvLy8rZ1JBQUFZQUFBQUdRQUFBRTVUZEROZlh6SXhPR0poYzJsalgzTjBjbWx1WjNOMGNtVmhiVWxqVGxOZk1URmphR0Z5WDNSeVlXbDBjMGxqUlVWT1UxODVZV3hzYjJOaGRHOXlTV05GUlVWRkFBQUFBQmcvQUFEZ0V3QUFnQklBQUFBQUFBQllGQUFBTHdBQUFEQUFBQUJPVTNRelgxOHlPR2x2YzE5aVlYTmxSUUFBQVBBK0FBQkVGQUFBMFhTZUFGZWR2U3FBY0ZJUC8vOCtKd29BQUFCa0FBQUE2QU1BQUJBbkFBQ2doZ0VBUUVJUEFJQ1dtQUFBNGZVRkdBQUFBRFVBQUFCeEFBQUFhLy8vLzg3Ny8vK1N2Ly8vQUFBQUFBQUFBQUQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL0FBRUNBd1FGQmdjSUNmLy8vLy8vLy84S0N3d05EZzhRRVJJVEZCVVdGeGdaR2hzY0hSNGZJQ0VpSS8vLy8vLy8vd29MREEwT0R4QVJFaE1VRlJZWEdCa2FHeHdkSGg4Z0lTSWovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy93QUJBZ1FIQXdZRkFBQUFBQUFBQUFJQUFNQURBQURBQkFBQXdBVUFBTUFHQUFEQUJ3QUF3QWdBQU1BSkFBREFDZ0FBd0FzQUFNQU1BQURBRFFBQXdBNEFBTUFQQUFEQUVBQUF3QkVBQU1BU0FBREFFd0FBd0JRQUFNQVZBQURBRmdBQXdCY0FBTUFZQUFEQUdRQUF3Qm9BQU1BYkFBREFIQUFBd0IwQUFNQWVBQURBSHdBQXdBQUFBTE1CQUFEREFnQUF3d01BQU1NRUFBRERCUUFBd3dZQUFNTUhBQUREQ0FBQXd3a0FBTU1LQUFEREN3QUF3d3dBQU1NTkFBRFREZ0FBd3c4QUFNTUFBQXk3QVFBTXd3SUFETU1EQUF6REJBQU0yd0FBQUFEZUVnU1ZBQUFBQVAvLy8vLy8vLy8vLy8vLy81QVdBQUFVQUFBQVF5NVZWRVl0T0FCQjRDMExBcVFXQUVHQUxndEhURU5mUTFSWlVFVUFBQUFBVEVOZlRsVk5SVkpKUXdBQVRFTmZWRWxOUlFBQUFBQUFURU5mUTA5TVRFRlVSUUFBVEVOZlRVOU9SVlJCVWxrQVRFTmZUVVZUVTBGSFJWTUFRZEF1QzBFWkFBb0FHUmtaQUFBQUFBVUFBQUFBQUFBSkFBQUFBQXNBQUFBQUFBQUFBQmtBRVFvWkdSa0RDZ2NBQVFBSkN4Z0FBQWtHQ3dBQUN3QUdHUUFBQUJrWkdRQkJvUzhMSVE0QUFBQUFBQUFBQUJrQUNnMFpHUmtBRFFBQUFnQUpEZ0FBQUFrQURnQUFEZ0JCMnk4TEFRd0FRZWN2Q3hVVEFBQUFBQk1BQUFBQUNRd0FBQUFBQUF3QUFBd0FRWlV3Q3dFUUFFR2hNQXNWRHdBQUFBUVBBQUFBQUFrUUFBQUFBQUFRQUFBUUFFSFBNQXNCRWdCQjJ6QUxIaEVBQUFBQUVRQUFBQUFKRWdBQUFBQUFFZ0FBRWdBQUdnQUFBQm9hR2dCQmtqRUxEaG9BQUFBYUdob0FBQUFBQUFBSkFFSERNUXNCRkFCQnp6RUxGUmNBQUFBQUZ3QUFBQUFKRkFBQUFBQUFGQUFBRkFCQi9URUxBUllBUVlreUN5a1ZBQUFBQUJVQUFBQUFDUllBQUFBQUFCWUFBQllBQURBeE1qTTBOVFkzT0RsQlFrTkVSVVpBR2dCQndEUUwvd0VDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FESUFJZ0FpQUNJQUlnQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQVdBRXdBVEFCTUFFd0FUQUJNQUV3QVRBQk1BRXdBVEFCTUFFd0FUQUJNQUkyQWpZQ05nSTJBallDTmdJMkFqWUNOZ0kyQVRBQk1BRXdBVEFCTUFFd0FUQUNOVUkxUWpWQ05VSTFRalZDTVVJeFFqRkNNVUl4UWpGQ01VSXhRakZDTVVJeFFqRkNNVUl4UWpGQ01VSXhRakZDTVVJeFFUQUJNQUV3QVRBQk1BRXdBaldDTllJMWdqV0NOWUkxZ2pHQ01ZSXhnakdDTVlJeGdqR0NNWUl4Z2pHQ01ZSXhnakdDTVlJeGdqR0NNWUl4Z2pHQ01ZRXdBVEFCTUFFd0FJQVFjQTRDd0pRSGdCQjFEd0wrUU1CQUFBQUFnQUFBQU1BQUFBRUFBQUFCUUFBQUFZQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QUFBQVFBQUFBRVFBQUFCSUFBQUFUQUFBQUZBQUFBQlVBQUFBV0FBQUFGd0FBQUJnQUFBQVpBQUFBR2dBQUFCc0FBQUFjQUFBQUhRQUFBQjRBQUFBZkFBQUFJQUFBQUNFQUFBQWlBQUFBSXdBQUFDUUFBQUFsQUFBQUpnQUFBQ2NBQUFBb0FBQUFLUUFBQUNvQUFBQXJBQUFBTEFBQUFDMEFBQUF1QUFBQUx3QUFBREFBQUFBeEFBQUFNZ0FBQURNQUFBQTBBQUFBTlFBQUFEWUFBQUEzQUFBQU9BQUFBRGtBQUFBNkFBQUFPd0FBQUR3QUFBQTlBQUFBUGdBQUFEOEFBQUJBQUFBQVFRQUFBRUlBQUFCREFBQUFSQUFBQUVVQUFBQkdBQUFBUndBQUFFZ0FBQUJKQUFBQVNnQUFBRXNBQUFCTUFBQUFUUUFBQUU0QUFBQlBBQUFBVUFBQUFGRUFBQUJTQUFBQVV3QUFBRlFBQUFCVkFBQUFWZ0FBQUZjQUFBQllBQUFBV1FBQUFGb0FBQUJiQUFBQVhBQUFBRjBBQUFCZUFBQUFYd0FBQUdBQUFBQkJBQUFBUWdBQUFFTUFBQUJFQUFBQVJRQUFBRVlBQUFCSEFBQUFTQUFBQUVrQUFBQktBQUFBU3dBQUFFd0FBQUJOQUFBQVRnQUFBRThBQUFCUUFBQUFVUUFBQUZJQUFBQlRBQUFBVkFBQUFGVUFBQUJXQUFBQVZ3QUFBRmdBQUFCWkFBQUFXZ0FBQUhzQUFBQjhBQUFBZlFBQUFINEFBQUIvQUVIUXhBQUxBbUFrQUVIa3lBQUwrUU1CQUFBQUFnQUFBQU1BQUFBRUFBQUFCUUFBQUFZQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QUFBQVFBQUFBRVFBQUFCSUFBQUFUQUFBQUZBQUFBQlVBQUFBV0FBQUFGd0FBQUJnQUFBQVpBQUFBR2dBQUFCc0FBQUFjQUFBQUhRQUFBQjRBQUFBZkFBQUFJQUFBQUNFQUFBQWlBQUFBSXdBQUFDUUFBQUFsQUFBQUpnQUFBQ2NBQUFBb0FBQUFLUUFBQUNvQUFBQXJBQUFBTEFBQUFDMEFBQUF1QUFBQUx3QUFBREFBQUFBeEFBQUFNZ0FBQURNQUFBQTBBQUFBTlFBQUFEWUFBQUEzQUFBQU9BQUFBRGtBQUFBNkFBQUFPd0FBQUR3QUFBQTlBQUFBUGdBQUFEOEFBQUJBQUFBQVlRQUFBR0lBQUFCakFBQUFaQUFBQUdVQUFBQm1BQUFBWndBQUFHZ0FBQUJwQUFBQWFnQUFBR3NBQUFCc0FBQUFiUUFBQUc0QUFBQnZBQUFBY0FBQUFIRUFBQUJ5QUFBQWN3QUFBSFFBQUFCMUFBQUFkZ0FBQUhjQUFBQjRBQUFBZVFBQUFIb0FBQUJiQUFBQVhBQUFBRjBBQUFCZUFBQUFYd0FBQUdBQUFBQmhBQUFBWWdBQUFHTUFBQUJrQUFBQVpRQUFBR1lBQUFCbkFBQUFhQUFBQUdrQUFBQnFBQUFBYXdBQUFHd0FBQUJ0QUFBQWJnQUFBRzhBQUFCd0FBQUFjUUFBQUhJQUFBQnpBQUFBZEFBQUFIVUFBQUIyQUFBQWR3QUFBSGdBQUFCNUFBQUFlZ0FBQUhzQUFBQjhBQUFBZlFBQUFINEFBQUIvQUVIZzBBQUx3UUV3TVRJek5EVTJOemc1WVdKalpHVm1RVUpEUkVWR2VGZ3JMWEJRYVVsdVRnQWxBQUFBQUFBbGNBQUFBQUFsU1RvbFRUb2xVeUFsY0NWSU9pVk5BQUFBSlFBQUFHMEFBQUF2QUFBQUpRQUFBR1FBQUFBdkFBQUFKUUFBQUhrQUFBQWxBQUFBV1FBQUFDMEFBQUFsQUFBQWJRQUFBQzBBQUFBbEFBQUFaQUFBQUNVQUFBQkpBQUFBT2dBQUFDVUFBQUJOQUFBQU9nQUFBQ1VBQUFCVEFBQUFJQUFBQUNVQUFBQndBQUFBQUFBQUFDVUFBQUJJQUFBQU9nQUFBQ1VBQUFCTkFFR3cwZ0FMMlFNbEFBQUFTQUFBQURvQUFBQWxBQUFBVFFBQUFEb0FBQUFsQUFBQVV3QUFBQUFBQUFDMExRQUFSd0FBQUVnQUFBQkpBQUFBQUFBQUFCUXVBQUJLQUFBQVN3QUFBRWtBQUFCTUFBQUFUUUFBQUU0QUFBQlBBQUFBVUFBQUFGRUFBQUJTQUFBQVV3QUFBQUFBQUFCOExRQUFWQUFBQUZVQUFBQkpBQUFBVmdBQUFGY0FBQUJZQUFBQVdRQUFBRm9BQUFCYkFBQUFYQUFBQUFBQUFBQk1MZ0FBWFFBQUFGNEFBQUJKQUFBQVh3QUFBR0FBQUFCaEFBQUFZZ0FBQUdNQUFBQUFBQUFBY0M0QUFHUUFBQUJsQUFBQVNRQUFBR1lBQUFCbkFBQUFhQUFBQUdrQUFBQnFBQUFBZEFBQUFISUFBQUIxQUFBQVpRQUFBQUFBQUFCbUFBQUFZUUFBQUd3QUFBQnpBQUFBWlFBQUFBQUFBQUFsQUFBQWJRQUFBQzhBQUFBbEFBQUFaQUFBQUM4QUFBQWxBQUFBZVFBQUFBQUFBQUFsQUFBQVNBQUFBRG9BQUFBbEFBQUFUUUFBQURvQUFBQWxBQUFBVXdBQUFBQUFBQUFsQUFBQVlRQUFBQ0FBQUFBbEFBQUFZZ0FBQUNBQUFBQWxBQUFBWkFBQUFDQUFBQUFsQUFBQVNBQUFBRG9BQUFBbEFBQUFUUUFBQURvQUFBQWxBQUFBVXdBQUFDQUFBQUFsQUFBQVdRQUFBQUFBQUFBbEFBQUFTUUFBQURvQUFBQWxBQUFBVFFBQUFEb0FBQUFsQUFBQVV3QUFBQ0FBQUFBbEFBQUFjQUJCbE5ZQUM1WUpQQ3NBQUdzQUFBQnNBQUFBU1FBQUFFNVRkRE5mWHpJMmJHOWpZV3hsTldaaFkyVjBSUUFBQUJnL0FBQWtLd0FBZ0Q0QUFBQUFBQUM4S3dBQWF3QUFBRzBBQUFCSkFBQUFiZ0FBQUc4QUFBQndBQUFBY1FBQUFISUFBQUJ6QUFBQWRBQUFBSFVBQUFCMkFBQUFkd0FBQUhnQUFBQjVBQUFBVGxOME0xOWZNalZqZEhsd1pVbDNSVVVBVGxOME0xOWZNakV3WTNSNWNHVmZZbUZ6WlVVQUFQQStBQUNlS3dBQWREOEFBSXdyQUFBQUFBQUFBZ0FBQUR3ckFBQUNBQUFBdENzQUFBSUFBQUFBQUFBQVVDd0FBR3NBQUFCNkFBQUFTUUFBQUhzQUFBQjhBQUFBZlFBQUFINEFBQUIvQUFBQWdBQUFBSUVBQUFCT1UzUXpYMTh5TjJOdlpHVmpkblJKWTJNeE1WOWZiV0p6ZEdGMFpWOTBSVVVBVGxOME0xOWZNakV5WTI5a1pXTjJkRjlpWVhObFJRQUFBQUR3UGdBQUxpd0FBSFEvQUFBTUxBQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFFZ3NBQUFDQUFBQUFBQUFBTVFzQUFCckFBQUFnZ0FBQUVrQUFBQ0RBQUFBaEFBQUFJVUFBQUNHQUFBQWh3QUFBSWdBQUFDSkFBQUFUbE4wTTE5Zk1qZGpiMlJsWTNaMFNVUnpZekV4WDE5dFluTjBZWFJsWDNSRlJRQUFkRDhBQUtBc0FBQUFBQUFBQWdBQUFEd3JBQUFDQUFBQVNDd0FBQUlBQUFBQUFBQUFPQzBBQUdzQUFBQ0tBQUFBU1FBQUFJc0FBQUNNQUFBQWpRQUFBSTRBQUFDUEFBQUFrQUFBQUpFQUFBQk9VM1F6WDE4eU4yTnZaR1ZqZG5SSlJHbGpNVEZmWDIxaWMzUmhkR1ZmZEVWRkFBQjBQd0FBRkMwQUFBQUFBQUFDQUFBQVBDc0FBQUlBQUFCSUxBQUFBZ0FBQUU1VGRETmZYekkzWTI5a1pXTjJkRWwzWXpFeFgxOXRZbk4wWVhSbFgzUkZSUUFBQUhRL0FBQllMUUFBQUFBQUFBSUFBQUE4S3dBQUFnQUFBRWdzQUFBQ0FBQUFUbE4wTTE5Zk1qWnNiMk5oYkdVMVgxOXBiWEJGQUFBQUdEOEFBSnd0QUFBOEt3QUFUbE4wTTE5Zk1qZGpiMnhzWVhSbFNXTkZSUUFZUHdBQXdDMEFBRHdyQUFCT1UzUXpYMTh5TjJOdmJHeGhkR1ZKZDBWRkFCZy9BQURnTFFBQVBDc0FBRTVUZEROZlh6STFZM1I1Y0dWSlkwVkZBQUFBZEQ4QUFBQXVBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUF0Q3NBQUFJQUFBQk9VM1F6WDE4eU9HNTFiWEIxYm1OMFNXTkZSUUFBQUFBWVB3QUFOQzRBQUR3ckFBQk9VM1F6WDE4eU9HNTFiWEIxYm1OMFNYZEZSUUFBQUFBWVB3QUFXQzRBQUR3ckFBQUFBQUFBMUMwQUFKSUFBQUNUQUFBQVNRQUFBSlFBQUFDVkFBQUFsZ0FBQUFBQUFBRDBMUUFBbHdBQUFKZ0FBQUJKQUFBQW1RQUFBSm9BQUFDYkFBQUFBQUFBQUpBdkFBQnJBQUFBbkFBQUFFa0FBQUNkQUFBQW5nQUFBSjhBQUFDZ0FBQUFvUUFBQUtJQUFBQ2pBQUFBcEFBQUFLVUFBQUNtQUFBQXB3QUFBRTVUZEROZlh6STNiblZ0WDJkbGRFbGpUbE5mTVRscGMzUnlaV0Z0WW5WbVgybDBaWEpoZEc5eVNXTk9VMTh4TVdOb1lYSmZkSEpoYVhSelNXTkZSVVZGUlVVQVRsTjBNMTlmTWpsZlgyNTFiVjluWlhSSlkwVkZBRTVUZEROZlh6SXhORjlmYm5WdFgyZGxkRjlpWVhObFJRQUE4RDRBQUZZdkFBQjBQd0FBUUM4QUFBQUFBQUFCQUFBQWNDOEFBQUFBQUFCMFB3QUEvQzRBQUFBQUFBQUNBQUFBUENzQUFBSUFBQUI0THdCQnROOEFDOG9CWkRBQUFHc0FBQUNvQUFBQVNRQUFBS2tBQUFDcUFBQUFxd0FBQUt3QUFBQ3RBQUFBcmdBQUFLOEFBQUN3QUFBQXNRQUFBTElBQUFDekFBQUFUbE4wTTE5Zk1qZHVkVzFmWjJWMFNYZE9VMTh4T1dsemRISmxZVzFpZFdaZmFYUmxjbUYwYjNKSmQwNVRYekV4WTJoaGNsOTBjbUZwZEhOSmQwVkZSVVZGUlFCT1UzUXpYMTh5T1Y5ZmJuVnRYMmRsZEVsM1JVVUFBQUIwUHdBQU5EQUFBQUFBQUFBQkFBQUFjQzhBQUFBQUFBQjBQd0FBOEM4QUFBQUFBQUFDQUFBQVBDc0FBQUlBQUFCTU1BQkJpT0VBQzk0QlRERUFBR3NBQUFDMEFBQUFTUUFBQUxVQUFBQzJBQUFBdHdBQUFMZ0FBQUM1QUFBQXVnQUFBTHNBQUFDOEFBQUFUbE4wTTE5Zk1qZHVkVzFmY0hWMFNXTk9VMTh4T1c5emRISmxZVzFpZFdaZmFYUmxjbUYwYjNKSlkwNVRYekV4WTJoaGNsOTBjbUZwZEhOSlkwVkZSVVZGUlFCT1UzUXpYMTh5T1Y5ZmJuVnRYM0IxZEVsalJVVUFUbE4wTTE5Zk1qRTBYMTl1ZFcxZmNIVjBYMkpoYzJWRkFBRHdQZ0FBRWpFQUFIUS9BQUQ4TUFBQUFBQUFBQUVBQUFBc01RQUFBQUFBQUhRL0FBQzRNQUFBQUFBQUFBSUFBQUE4S3dBQUFnQUFBRFF4QUVIdzRnQUx2Z0VVTWdBQWF3QUFBTDBBQUFCSkFBQUF2Z0FBQUw4QUFBREFBQUFBd1FBQUFNSUFBQUREQUFBQXhBQUFBTVVBQUFCT1UzUXpYMTh5TjI1MWJWOXdkWFJKZDA1VFh6RTViM04wY21WaGJXSjFabDlwZEdWeVlYUnZja2wzVGxOZk1URmphR0Z5WDNSeVlXbDBjMGwzUlVWRlJVVkZBRTVUZEROZlh6STVYMTl1ZFcxZmNIVjBTWGRGUlFBQUFIUS9BQURrTVFBQUFBQUFBQUVBQUFBc01RQUFBQUFBQUhRL0FBQ2dNUUFBQUFBQUFBSUFBQUE4S3dBQUFnQUFBUHd4QUVHNDVBQUxtZ3NVTXdBQXhnQUFBTWNBQUFCSkFBQUF5QUFBQU1rQUFBREtBQUFBeXdBQUFNd0FBQUROQUFBQXpnQUFBUGovLy84VU13QUF6d0FBQU5BQUFBRFJBQUFBMGdBQUFOTUFBQURVQUFBQTFRQUFBRTVUZEROZlh6STRkR2x0WlY5blpYUkpZMDVUWHpFNWFYTjBjbVZoYldKMVpsOXBkR1Z5WVhSdmNrbGpUbE5mTVRGamFHRnlYM1J5WVdsMGMwbGpSVVZGUlVWRkFFNVRkRE5mWHpJNWRHbHRaVjlpWVhObFJRRHdQZ0FBelRJQUFFNVRkRE5mWHpJeU1GOWZkR2x0WlY5blpYUmZZMTl6ZEc5eVlXZGxTV05GUlFBQUFQQStBQURvTWdBQWREOEFBSWd5QUFBQUFBQUFBd0FBQUR3ckFBQUNBQUFBNERJQUFBSUFBQUFNTXdBQUFBZ0FBQUFBQUFBQU5BQUExZ0FBQU5jQUFBQkpBQUFBMkFBQUFOa0FBQURhQUFBQTJ3QUFBTndBQUFEZEFBQUEzZ0FBQVBqLy8vOEFOQUFBM3dBQUFPQUFBQURoQUFBQTRnQUFBT01BQUFEa0FBQUE1UUFBQUU1VGRETmZYekk0ZEdsdFpWOW5aWFJKZDA1VFh6RTVhWE4wY21WaGJXSjFabDlwZEdWeVlYUnZja2wzVGxOZk1URmphR0Z5WDNSeVlXbDBjMGwzUlVWRlJVVkZBRTVUZEROZlh6SXlNRjlmZEdsdFpWOW5aWFJmWTE5emRHOXlZV2RsU1hkRlJRQUE4RDRBQU5VekFBQjBQd0FBa0RNQUFBQUFBQUFEQUFBQVBDc0FBQUlBQUFEZ01nQUFBZ0FBQVBnekFBQUFDQUFBQUFBQUFLUTBBQURtQUFBQTV3QUFBRWtBQUFEb0FBQUFUbE4wTTE5Zk1qaDBhVzFsWDNCMWRFbGpUbE5mTVRsdmMzUnlaV0Z0WW5WbVgybDBaWEpoZEc5eVNXTk9VMTh4TVdOb1lYSmZkSEpoYVhSelNXTkZSVVZGUlVVQVRsTjBNMTlmTWpFd1gxOTBhVzFsWDNCMWRFVUFBQUR3UGdBQWhUUUFBSFEvQUFCQU5BQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFKdzBBQUFBQ0FBQUFBQUFBQ1ExQUFEcEFBQUE2Z0FBQUVrQUFBRHJBQUFBVGxOME0xOWZNamgwYVcxbFgzQjFkRWwzVGxOZk1UbHZjM1J5WldGdFluVm1YMmwwWlhKaGRHOXlTWGRPVTE4eE1XTm9ZWEpmZEhKaGFYUnpTWGRGUlVWRlJVVUFBQUFBZEQ4QUFOdzBBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUFuRFFBQUFBSUFBQUFBQUFBdURVQUFHc0FBQURzQUFBQVNRQUFBTzBBQUFEdUFBQUE3d0FBQVBBQUFBRHhBQUFBOGdBQUFQTUFBQUQwQUFBQTlRQUFBRTVUZEROZlh6SXhNRzF2Ym1WNWNIVnVZM1JKWTB4aU1FVkZSUUJPVTNRelgxOHlNVEJ0YjI1bGVWOWlZWE5sUlFBQUFBRHdQZ0FBbURVQUFIUS9BQUI4TlFBQUFBQUFBQUlBQUFBOEt3QUFBZ0FBQUxBMUFBQUNBQUFBQUFBQUFDdzJBQUJyQUFBQTlnQUFBRWtBQUFEM0FBQUErQUFBQVBrQUFBRDZBQUFBK3dBQUFQd0FBQUQ5QUFBQS9nQUFBUDhBQUFCT1UzUXpYMTh5TVRCdGIyNWxlWEIxYm1OMFNXTk1ZakZGUlVVQWREOEFBQkEyQUFBQUFBQUFBZ0FBQUR3ckFBQUNBQUFBc0RVQUFBSUFBQUFBQUFBQW9EWUFBR3NBQUFBQUFRQUFTUUFBQUFFQkFBQUNBUUFBQXdFQUFBUUJBQUFGQVFBQUJnRUFBQWNCQUFBSUFRQUFDUUVBQUU1VGRETmZYekl4TUcxdmJtVjVjSFZ1WTNSSmQweGlNRVZGUlFCMFB3QUFoRFlBQUFBQUFBQUNBQUFBUENzQUFBSUFBQUN3TlFBQUFnQUFBQUFBQUFBVU53QUFhd0FBQUFvQkFBQkpBQUFBQ3dFQUFBd0JBQUFOQVFBQURnRUFBQThCQUFBUUFRQUFFUUVBQUJJQkFBQVRBUUFBVGxOME0xOWZNakV3Ylc5dVpYbHdkVzVqZEVsM1RHSXhSVVZGQUhRL0FBRDROZ0FBQUFBQUFBSUFBQUE4S3dBQUFnQUFBTEExQUFBQ0FBQUFBQUFBQUxnM0FBQnJBQUFBRkFFQUFFa0FBQUFWQVFBQUZnRUFBRTVUZEROZlh6STViVzl1WlhsZloyVjBTV05PVTE4eE9XbHpkSEpsWVcxaWRXWmZhWFJsY21GMGIzSkpZMDVUWHpFeFkyaGhjbDkwY21GcGRITkpZMFZGUlVWRlJRQk9VM1F6WDE4eU1URmZYMjF2Ym1WNVgyZGxkRWxqUlVVQUFQQStBQUNXTndBQWREOEFBRkEzQUFBQUFBQUFBZ0FBQUR3ckFBQUNBQUFBc0RjQVFkenZBQXVhQVZ3NEFBQnJBQUFBRndFQUFFa0FBQUFZQVFBQUdRRUFBRTVUZEROZlh6STViVzl1WlhsZloyVjBTWGRPVTE4eE9XbHpkSEpsWVcxaWRXWmZhWFJsY21GMGIzSkpkMDVUWHpFeFkyaGhjbDkwY21GcGRITkpkMFZGUlVWRlJRQk9VM1F6WDE4eU1URmZYMjF2Ym1WNVgyZGxkRWwzUlVVQUFQQStBQUE2T0FBQWREOEFBUFEzQUFBQUFBQUFBZ0FBQUR3ckFBQUNBQUFBVkRnQVFZSHhBQXVaQVRrQUFHc0FBQUFhQVFBQVNRQUFBQnNCQUFBY0FRQUFUbE4wTTE5Zk1qbHRiMjVsZVY5d2RYUkpZMDVUWHpFNWIzTjBjbVZoYldKMVpsOXBkR1Z5WVhSdmNrbGpUbE5mTVRGamFHRnlYM1J5WVdsMGMwbGpSVVZGUlVWRkFFNVRkRE5mWHpJeE1WOWZiVzl1WlhsZmNIVjBTV05GUlFBQThENEFBTjQ0QUFCMFB3QUFtRGdBQUFBQUFBQUNBQUFBUENzQUFBSUFBQUQ0T0FCQnBQSUFDNW9CcERrQUFHc0FBQUFkQVFBQVNRQUFBQjRCQUFBZkFRQUFUbE4wTTE5Zk1qbHRiMjVsZVY5d2RYUkpkMDVUWHpFNWIzTjBjbVZoYldKMVpsOXBkR1Z5WVhSdmNrbDNUbE5mTVRGamFHRnlYM1J5WVdsMGMwbDNSVVZGUlVWRkFFNVRkRE5mWHpJeE1WOWZiVzl1WlhsZmNIVjBTWGRGUlFBQThENEFBSUk1QUFCMFB3QUFQRGtBQUFBQUFBQUNBQUFBUENzQUFBSUFBQUNjT1FCQnlQTUFDN2tJSERvQUFHc0FBQUFnQVFBQVNRQUFBQ0VCQUFBaUFRQUFJd0VBQUU1VGRETmZYekk0YldWemMyRm5aWE5KWTBWRkFFNVRkRE5mWHpJeE0yMWxjM05oWjJWelgySmhjMlZGQUFBQUFQQStBQUQ1T1FBQWREOEFBT1E1QUFBQUFBQUFBZ0FBQUR3ckFBQUNBQUFBRkRvQUFBSUFBQUFBQUFBQWREb0FBR3NBQUFBa0FRQUFTUUFBQUNVQkFBQW1BUUFBSndFQUFFNVRkRE5mWHpJNGJXVnpjMkZuWlhOSmQwVkZBQUFBQUhRL0FBQmNPZ0FBQUFBQUFBSUFBQUE4S3dBQUFnQUFBQlE2QUFBQ0FBQUFVd0FBQUhVQUFBQnVBQUFBWkFBQUFHRUFBQUI1QUFBQUFBQUFBRTBBQUFCdkFBQUFiZ0FBQUdRQUFBQmhBQUFBZVFBQUFBQUFBQUJVQUFBQWRRQUFBR1VBQUFCekFBQUFaQUFBQUdFQUFBQjVBQUFBQUFBQUFGY0FBQUJsQUFBQVpBQUFBRzRBQUFCbEFBQUFjd0FBQUdRQUFBQmhBQUFBZVFBQUFBQUFBQUJVQUFBQWFBQUFBSFVBQUFCeUFBQUFjd0FBQUdRQUFBQmhBQUFBZVFBQUFBQUFBQUJHQUFBQWNnQUFBR2tBQUFCa0FBQUFZUUFBQUhrQUFBQUFBQUFBVXdBQUFHRUFBQUIwQUFBQWRRQUFBSElBQUFCa0FBQUFZUUFBQUhrQUFBQUFBQUFBVXdBQUFIVUFBQUJ1QUFBQUFBQUFBRTBBQUFCdkFBQUFiZ0FBQUFBQUFBQlVBQUFBZFFBQUFHVUFBQUFBQUFBQVZ3QUFBR1VBQUFCa0FBQUFBQUFBQUZRQUFBQm9BQUFBZFFBQUFBQUFBQUJHQUFBQWNnQUFBR2tBQUFBQUFBQUFVd0FBQUdFQUFBQjBBQUFBQUFBQUFFb0FBQUJoQUFBQWJnQUFBSFVBQUFCaEFBQUFjZ0FBQUhrQUFBQUFBQUFBUmdBQUFHVUFBQUJpQUFBQWNnQUFBSFVBQUFCaEFBQUFjZ0FBQUhrQUFBQUFBQUFBVFFBQUFHRUFBQUJ5QUFBQVl3QUFBR2dBQUFBQUFBQUFRUUFBQUhBQUFBQnlBQUFBYVFBQUFHd0FBQUFBQUFBQVRRQUFBR0VBQUFCNUFBQUFBQUFBQUVvQUFBQjFBQUFBYmdBQUFHVUFBQUFBQUFBQVNnQUFBSFVBQUFCc0FBQUFlUUFBQUFBQUFBQkJBQUFBZFFBQUFHY0FBQUIxQUFBQWN3QUFBSFFBQUFBQUFBQUFVd0FBQUdVQUFBQndBQUFBZEFBQUFHVUFBQUJ0QUFBQVlnQUFBR1VBQUFCeUFBQUFBQUFBQUU4QUFBQmpBQUFBZEFBQUFHOEFBQUJpQUFBQVpRQUFBSElBQUFBQUFBQUFUZ0FBQUc4QUFBQjJBQUFBWlFBQUFHMEFBQUJpQUFBQVpRQUFBSElBQUFBQUFBQUFSQUFBQUdVQUFBQmpBQUFBWlFBQUFHMEFBQUJpQUFBQVpRQUFBSElBQUFBQUFBQUFTZ0FBQUdFQUFBQnVBQUFBQUFBQUFFWUFBQUJsQUFBQVlnQUFBQUFBQUFCTkFBQUFZUUFBQUhJQUFBQUFBQUFBUVFBQUFIQUFBQUJ5QUFBQUFBQUFBRW9BQUFCMUFBQUFiZ0FBQUFBQUFBQktBQUFBZFFBQUFHd0FBQUFBQUFBQVFRQUFBSFVBQUFCbkFBQUFBQUFBQUZNQUFBQmxBQUFBY0FBQUFBQUFBQUJQQUFBQVl3QUFBSFFBQUFBQUFBQUFUZ0FBQUc4QUFBQjJBQUFBQUFBQUFFUUFBQUJsQUFBQVl3QUFBQUFBQUFCQkFBQUFUUUFBQUFBQUFBQlFBQUFBVFFCQmpQd0FDK0lFRERNQUFNOEFBQURRQUFBQTBRQUFBTklBQUFEVEFBQUExQUFBQU5VQUFBQUFBQUFBK0RNQUFOOEFBQURnQUFBQTRRQUFBT0lBQUFEakFBQUE1QUFBQU9VQUFBQUFBQUFBZ0Q0QUFDZ0JBQUFwQVFBQUtnRUFBRTVUZEROZlh6SXhORjlmYzJoaGNtVmtYMk52ZFc1MFJRQUFBQUR3UGdBQVpENEFBRTR4TUY5ZlkzaDRZV0pwZGpFeE5sOWZjMmhwYlY5MGVYQmxYMmx1Wm05RkFBQUFBQmcvQUFDSVBnQUFhRUFBQUU0eE1GOWZZM2g0WVdKcGRqRXhOMTlmWTJ4aGMzTmZkSGx3WlY5cGJtWnZSUUFBQUJnL0FBQzRQZ0FBckQ0QUFBQUFBQURjUGdBQUt3RUFBQ3dCQUFBdEFRQUFMZ0VBQUM4QkFBQXdBUUFBTVFFQUFESUJBQUFBQUFBQVlEOEFBQ3NCQUFBekFRQUFMUUVBQUM0QkFBQXZBUUFBTkFFQUFEVUJBQUEyQVFBQVRqRXdYMTlqZUhoaFltbDJNVEl3WDE5emFWOWpiR0Z6YzE5MGVYQmxYMmx1Wm05RkFBQUFBQmcvQUFBNFB3QUEzRDRBQUFBQUFBQzhQd0FBS3dFQUFEY0JBQUF0QVFBQUxnRUFBQzhCQUFBNEFRQUFPUUVBQURvQkFBQk9NVEJmWDJONGVHRmlhWFl4TWpGZlgzWnRhVjlqYkdGemMxOTBlWEJsWDJsdVptOUZBQUFBR0Q4QUFKUS9BQURjUGdBQUFBQUFBT3cvQUFBN0FRQUFQQUVBQUQwQkFBQlRkRGxsZUdObGNIUnBiMjRBQUFBQThENEFBTncvQUFBQUFBQUFHRUFBQUFNQUFBQStBUUFBUHdFQUFGTjBNVEZzYjJkcFkxOWxjbkp2Y2dBWVB3QUFDRUFBQU93L0FBQUFBQUFBVEVBQUFBTUFBQUJBQVFBQVB3RUFBRk4wTVRKc1pXNW5kR2hmWlhKeWIzSUFBQUFBR0Q4QUFEaEFBQUFZUUFBQVUzUTVkSGx3WlY5cGJtWnZBQUFBQVBBK0FBQllRQUJCOElBQkN3S2dhdz09IiksS2M9ZnVuY3Rpb24oQSl7KEE9QXx8e30pLmluc3RhbnRpYXRlV2FzbT1mdW5jdGlvbihBLGcpe21jKEEpLnRoZW4oKGZ1bmN0aW9uKEEpe2coe2V4cG9ydHM6QS5leHBvcnRzfSl9KSl9O3ZhciBnLEk9dm9pZCAwIT09QT9BOnt9LEI9T2JqZWN0LmFzc2lnbixRPUIoe30sSSksRT0iLi90aGlzLnByb2dyYW0iLEM9IiI7Qz0wIT09KEM9c2VsZi5sb2NhdGlvbi5ocmVmKS5pbmRleE9mKCJibG9iOiIpP0Muc3Vic3RyKDAsQy5yZXBsYWNlKC9bPyNdLiovLCIiKS5sYXN0SW5kZXhPZigiLyIpKzEpOiIiLGc9ZnVuY3Rpb24oQSl7dmFyIGc9bmV3IFhNTEh0dHBSZXF1ZXN0O3JldHVybiBnLm9wZW4oIkdFVCIsQSwhMSksZy5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIixnLnNlbmQobnVsbCksbmV3IFVpbnQ4QXJyYXkoZy5yZXNwb25zZSl9LEkucHJpbnR8fGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSk7dmFyIHQsaSxlPUkucHJpbnRFcnJ8fGNvbnNvbGUud2Fybi5iaW5kKGNvbnNvbGUpO0IoSSxRKSxRPW51bGwsSS5hcmd1bWVudHMmJkkuYXJndW1lbnRzLEkudGhpc1Byb2dyYW0mJihFPUkudGhpc1Byb2dyYW0pLEkucXVpdCYmSS5xdWl0LEkud2FzbUJpbmFyeSYmKHQ9SS53YXNtQmluYXJ5KSxJLm5vRXhpdFJ1bnRpbWUsIm9iamVjdCIhPT0oInVuZGVmaW5lZCI9PXR5cGVvZiBXZWJBc3NlbWJseT8idW5kZWZpbmVkIjp1KFdlYkFzc2VtYmx5KSkmJnAoIm5vIG5hdGl2ZSB3YXNtIHN1cHBvcnQgZGV0ZWN0ZWQiKTt2YXIgbyxyLG4sYSxzLGM9ITEsaD0idW5kZWZpbmVkIiE9dHlwZW9mIFRleHREZWNvZGVyP25ldyBUZXh0RGVjb2RlcigidXRmOCIpOnZvaWQgMDtmdW5jdGlvbiBmKEEsZyl7cmV0dXJuIEE/ZnVuY3Rpb24oQSxnLEkpe2Zvcih2YXIgQj1nK0ksUT1nO0FbUV0mJiEoUT49Qik7KSsrUTtpZihRLWc+MTYmJkEuc3ViYXJyYXkmJmgpcmV0dXJuIGguZGVjb2RlKEEuc3ViYXJyYXkoZyxRKSk7Zm9yKHZhciBFPSIiO2c8UTspe3ZhciBDPUFbZysrXTtpZigxMjgmQyl7dmFyIHQ9NjMmQVtnKytdO2lmKDE5MiE9KDIyNCZDKSl7dmFyIGk9NjMmQVtnKytdO2lmKChDPTIyND09KDI0MCZDKT8oMTUmQyk8PDEyfHQ8PDZ8aTooNyZDKTw8MTh8dDw8MTJ8aTw8Nnw2MyZBW2crK10pPDY1NTM2KUUrPVN0cmluZy5mcm9tQ2hhckNvZGUoQyk7ZWxzZXt2YXIgZT1DLTY1NTM2O0UrPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTZ8ZT4+MTAsNTYzMjB8MTAyMyZlKX19ZWxzZSBFKz1TdHJpbmcuZnJvbUNoYXJDb2RlKCgzMSZDKTw8Nnx0KX1lbHNlIEUrPVN0cmluZy5mcm9tQ2hhckNvZGUoQyl9cmV0dXJuIEV9KG4sQSxnKToiIn1mdW5jdGlvbiB5KEEsZyxJLEIpe2lmKCEoQj4wKSlyZXR1cm4gMDtmb3IodmFyIFE9SSxFPUkrQi0xLEM9MDtDPEEubGVuZ3RoOysrQyl7dmFyIHQ9QS5jaGFyQ29kZUF0KEMpO2lmKHQ+PTU1Mjk2JiZ0PD01NzM0MyYmKHQ9NjU1MzYrKCgxMDIzJnQpPDwxMCl8MTAyMyZBLmNoYXJDb2RlQXQoKytDKSksdDw9MTI3KXtpZihJPj1FKWJyZWFrO2dbSSsrXT10fWVsc2UgaWYodDw9MjA0Nyl7aWYoSSsxPj1FKWJyZWFrO2dbSSsrXT0xOTJ8dD4+NixnW0krK109MTI4fDYzJnR9ZWxzZSBpZih0PD02NTUzNSl7aWYoSSsyPj1FKWJyZWFrO2dbSSsrXT0yMjR8dD4+MTIsZ1tJKytdPTEyOHx0Pj42JjYzLGdbSSsrXT0xMjh8NjMmdH1lbHNle2lmKEkrMz49RSlicmVhaztnW0krK109MjQwfHQ+PjE4LGdbSSsrXT0xMjh8dD4+MTImNjMsZ1tJKytdPTEyOHx0Pj42JjYzLGdbSSsrXT0xMjh8NjMmdH19cmV0dXJuIGdbSV09MCxJLVF9ZnVuY3Rpb24gRChBKXtmb3IodmFyIGc9MCxJPTA7STxBLmxlbmd0aDsrK0kpe3ZhciBCPUEuY2hhckNvZGVBdChJKTtCPj01NTI5NiYmQjw9NTczNDMmJihCPTY1NTM2KygoMTAyMyZCKTw8MTApfDEwMjMmQS5jaGFyQ29kZUF0KCsrSSkpLEI8PTEyNz8rK2c6Zys9Qjw9MjA0Nz8yOkI8PTY1NTM1PzM6NH1yZXR1cm4gZ31mdW5jdGlvbiBsKEEsZyl7ci5zZXQoQSxnKX1mdW5jdGlvbiB3KEEpe289QSxJLkhFQVA4PXI9bmV3IEludDhBcnJheShBKSxJLkhFQVAxNj1uZXcgSW50MTZBcnJheShBKSxJLkhFQVAzMj1hPW5ldyBJbnQzMkFycmF5KEEpLEkuSEVBUFU4PW49bmV3IFVpbnQ4QXJyYXkoQSksSS5IRUFQVTE2PW5ldyBVaW50MTZBcnJheShBKSxJLkhFQVBVMzI9bmV3IFVpbnQzMkFycmF5KEEpLEkuSEVBUEYzMj1uZXcgRmxvYXQzMkFycmF5KEEpLEkuSEVBUEY2ND1uZXcgRmxvYXQ2NEFycmF5KEEpfUkuSU5JVElBTF9NRU1PUlk7dmFyIGQsRixHPVtdLFI9W10sVT1bXSxrPTAsUz1udWxsO2Z1bmN0aW9uIHAoQSl7dGhyb3cgSS5vbkFib3J0JiZJLm9uQWJvcnQoQSksZShBPSJBYm9ydGVkKCIrQSsiKSIpLGM9ITAsQSs9Ii4gQnVpbGQgd2l0aCAtcyBBU1NFUlRJT05TPTEgZm9yIG1vcmUgaW5mby4iLG5ldyBXZWJBc3NlbWJseS5SdW50aW1lRXJyb3IoQSl9ZnVuY3Rpb24gTihBKXtyZXR1cm4gQS5zdGFydHNXaXRoKCJkYXRhOmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtiYXNlNjQsIil9ZnVuY3Rpb24gTShBKXt0cnl7aWYoQT09ZCYmdClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkodCk7aWYoZylyZXR1cm4gZyhBKTt0aHJvdyJib3RoIGFzeW5jIGFuZCBzeW5jIGZldGNoaW5nIG9mIHRoZSB3YXNtIGZhaWxlZCJ9Y2F0Y2goSSl7cChJKX19ZnVuY3Rpb24gdihBKXtmb3IoO0EubGVuZ3RoPjA7KXt2YXIgZz1BLnNoaWZ0KCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcpe3ZhciBCPWcuZnVuYzsibnVtYmVyIj09dHlwZW9mIEI/dm9pZCAwPT09Zy5hcmc/WShCKSgpOlkoQikoZy5hcmcpOkIodm9pZCAwPT09Zy5hcmc/bnVsbDpnLmFyZyl9ZWxzZSBnKEkpfX1mdW5jdGlvbiBZKEEpe3JldHVybiBzLmdldChBKX1mdW5jdGlvbiBIKEEpe3RoaXMuZXhjUHRyPUEsdGhpcy5wdHI9QS0xNix0aGlzLnNldF90eXBlPWZ1bmN0aW9uKEEpe2FbdGhpcy5wdHIrND4+Ml09QX0sdGhpcy5nZXRfdHlwZT1mdW5jdGlvbigpe3JldHVybiBhW3RoaXMucHRyKzQ+PjJdfSx0aGlzLnNldF9kZXN0cnVjdG9yPWZ1bmN0aW9uKEEpe2FbdGhpcy5wdHIrOD4+Ml09QX0sdGhpcy5nZXRfZGVzdHJ1Y3Rvcj1mdW5jdGlvbigpe3JldHVybiBhW3RoaXMucHRyKzg+PjJdfSx0aGlzLnNldF9yZWZjb3VudD1mdW5jdGlvbihBKXthW3RoaXMucHRyPj4yXT1BfSx0aGlzLnNldF9jYXVnaHQ9ZnVuY3Rpb24oQSl7QT1BPzE6MCxyW3RoaXMucHRyKzEyfDBdPUF9LHRoaXMuZ2V0X2NhdWdodD1mdW5jdGlvbigpe3JldHVybiAwIT1yW3RoaXMucHRyKzEyfDBdfSx0aGlzLnNldF9yZXRocm93bj1mdW5jdGlvbihBKXtBPUE/MTowLHJbdGhpcy5wdHIrMTN8MF09QX0sdGhpcy5nZXRfcmV0aHJvd249ZnVuY3Rpb24oKXtyZXR1cm4gMCE9clt0aGlzLnB0cisxM3wwXX0sdGhpcy5pbml0PWZ1bmN0aW9uKEEsZyl7dGhpcy5zZXRfdHlwZShBKSx0aGlzLnNldF9kZXN0cnVjdG9yKGcpLHRoaXMuc2V0X3JlZmNvdW50KDApLHRoaXMuc2V0X2NhdWdodCghMSksdGhpcy5zZXRfcmV0aHJvd24oITEpfSx0aGlzLmFkZF9yZWY9ZnVuY3Rpb24oKXt2YXIgQT1hW3RoaXMucHRyPj4yXTthW3RoaXMucHRyPj4yXT1BKzF9LHRoaXMucmVsZWFzZV9yZWY9ZnVuY3Rpb24oKXt2YXIgQT1hW3RoaXMucHRyPj4yXTtyZXR1cm4gYVt0aGlzLnB0cj4+Ml09QS0xLDE9PT1BfX1mdW5jdGlvbiBMKEEpe3RyeXtyZXR1cm4gaS5ncm93KEEtby5ieXRlTGVuZ3RoKzY1NTM1Pj4+MTYpLHcoaS5idWZmZXIpLDF9Y2F0Y2goZyl7fX1JLnByZWxvYWRlZEltYWdlcz17fSxJLnByZWxvYWRlZEF1ZGlvcz17fSxOKGQ9ImF3Lndhc20iKXx8KEY9ZCxkPUkubG9jYXRlRmlsZT9JLmxvY2F0ZUZpbGUoRixDKTpDK0YpO3ZhciBKPXt9O2Z1bmN0aW9uIG0oKXtpZighbS5zdHJpbmdzKXt2YXIgQT17VVNFUjoid2ViX3VzZXIiLExPR05BTUU6IndlYl91c2VyIixQQVRIOiIvIixQV0Q6Ii8iLEhPTUU6Ii9ob21lL3dlYl91c2VyIixMQU5HOigib2JqZWN0Ij09PSgidW5kZWZpbmVkIj09dHlwZW9mIG5hdmlnYXRvcj8idW5kZWZpbmVkIjp1KG5hdmlnYXRvcikpJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzWzBdfHwiQyIpLnJlcGxhY2UoIi0iLCJfIikrIi5VVEYtOCIsXzpFfHwiLi90aGlzLnByb2dyYW0ifTtmb3IodmFyIGcgaW4gSil2b2lkIDA9PT1KW2ddP2RlbGV0ZSBBW2ddOkFbZ109SltnXTt2YXIgST1bXTtmb3IodmFyIGcgaW4gQSlJLnB1c2goZysiPSIrQVtnXSk7bS5zdHJpbmdzPUl9cmV0dXJuIG0uc3RyaW5nc31mdW5jdGlvbiBLKEEpe3JldHVybiBBJTQ9PTAmJihBJTEwMCE9MHx8QSU0MDA9PTApfWZ1bmN0aW9uIHgoQSxnKXtmb3IodmFyIEk9MCxCPTA7Qjw9ZztJKz1BW0IrK10pO3JldHVybiBJfXZhciBxPVszMSwyOSwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0sYj1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdO2Z1bmN0aW9uIFQoQSxnKXtmb3IodmFyIEk9bmV3IERhdGUoQS5nZXRUaW1lKCkpO2c+MDspe3ZhciBCPUsoSS5nZXRGdWxsWWVhcigpKSxRPUkuZ2V0TW9udGgoKSxFPShCP3E6YilbUV07aWYoIShnPkUtSS5nZXREYXRlKCkpKXJldHVybiBJLnNldERhdGUoSS5nZXREYXRlKCkrZyksSTtnLT1FLUkuZ2V0RGF0ZSgpKzEsSS5zZXREYXRlKDEpLFE8MTE/SS5zZXRNb250aChRKzEpOihJLnNldE1vbnRoKDApLEkuc2V0RnVsbFllYXIoSS5nZXRGdWxsWWVhcigpKzEpKX1yZXR1cm4gSX1mdW5jdGlvbiBPKEEsZyxJKXt2YXIgQj1JPjA/STpEKEEpKzEsUT1uZXcgQXJyYXkoQiksRT15KEEsUSwwLFEubGVuZ3RoKTtyZXR1cm4gZyYmKFEubGVuZ3RoPUUpLFF9dmFyIFA9e2g6ZnVuY3Rpb24oQSl7cmV0dXJuIGooQSsxNikrMTZ9LGc6ZnVuY3Rpb24oQSxnLEkpe3Rocm93IG5ldyBIKEEpLmluaXQoZyxJKSxBfSxhOmZ1bmN0aW9uKCl7cCgiIil9LGY6ZnVuY3Rpb24oQSxnLEkpe24uY29weVdpdGhpbihBLGcsZytJKX0sZTpmdW5jdGlvbihBKXt2YXIgZyxJLEI9bi5sZW5ndGgsUT0yMTQ3NDgzNjQ4O2lmKChBPj4+PTApPlEpcmV0dXJuITE7Zm9yKHZhciBFPTE7RTw9NDtFKj0yKXt2YXIgQz1CKigxKy4yL0UpO2lmKEM9TWF0aC5taW4oQyxBKzEwMDY2MzI5NiksTChNYXRoLm1pbihRLCgoZz1NYXRoLm1heChBLEMpKSUoST02NTUzNik+MCYmKGcrPUktZyVJKSxnKSkpKXJldHVybiEwfXJldHVybiExfSxjOmZ1bmN0aW9uKEEsZyl7dmFyIEk9MDtyZXR1cm4gbSgpLmZvckVhY2goKGZ1bmN0aW9uKEIsUSl7dmFyIEU9ZytJO2FbQSs0KlE+PjJdPUUsZnVuY3Rpb24oQSxnLEkpe2Zvcih2YXIgQj0wO0I8QS5sZW5ndGg7KytCKXJbMHxnKytdPUEuY2hhckNvZGVBdChCKTtJfHwoclswfGddPTApfShCLEUpLEkrPUIubGVuZ3RoKzF9KSksMH0sZDpmdW5jdGlvbihBLGcpe3ZhciBJPW0oKTthW0E+PjJdPUkubGVuZ3RoO3ZhciBCPTA7cmV0dXJuIEkuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Qis9QS5sZW5ndGgrMX0pKSxhW2c+PjJdPUIsMH0sYjpmdW5jdGlvbihBLGcsSSxCKXtyZXR1cm4gZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9YVtCKzQwPj4yXSxFPXt0bV9zZWM6YVtCPj4yXSx0bV9taW46YVtCKzQ+PjJdLHRtX2hvdXI6YVtCKzg+PjJdLHRtX21kYXk6YVtCKzEyPj4yXSx0bV9tb246YVtCKzE2Pj4yXSx0bV95ZWFyOmFbQisyMD4+Ml0sdG1fd2RheTphW0IrMjQ+PjJdLHRtX3lkYXk6YVtCKzI4Pj4yXSx0bV9pc2RzdDphW0IrMzI+PjJdLHRtX2dtdG9mZjphW0IrMzY+PjJdLHRtX3pvbmU6UT9mKFEpOiIifSxDPWYoSSksdD17IiVjIjoiJWEgJWIgJWQgJUg6JU06JVMgJVkiLCIlRCI6IiVtLyVkLyV5IiwiJUYiOiIlWS0lbS0lZCIsIiVoIjoiJWIiLCIlciI6IiVJOiVNOiVTICVwIiwiJVIiOiIlSDolTSIsIiVUIjoiJUg6JU06JVMiLCIleCI6IiVtLyVkLyV5IiwiJVgiOiIlSDolTTolUyIsIiVFYyI6IiVjIiwiJUVDIjoiJUMiLCIlRXgiOiIlbS8lZC8leSIsIiVFWCI6IiVIOiVNOiVTIiwiJUV5IjoiJXkiLCIlRVkiOiIlWSIsIiVPZCI6IiVkIiwiJU9lIjoiJWUiLCIlT0giOiIlSCIsIiVPSSI6IiVJIiwiJU9tIjoiJW0iLCIlT00iOiIlTSIsIiVPUyI6IiVTIiwiJU91IjoiJXUiLCIlT1UiOiIlVSIsIiVPViI6IiVWIiwiJU93IjoiJXciLCIlT1ciOiIlVyIsIiVPeSI6IiV5In07Zm9yKHZhciBpIGluIHQpQz1DLnJlcGxhY2UobmV3IFJlZ0V4cChpLCJnIiksdFtpXSk7dmFyIGU9WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLG89WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdO2Z1bmN0aW9uIHIoQSxnLEkpe2Zvcih2YXIgQj0ibnVtYmVyIj09dHlwZW9mIEE/QS50b1N0cmluZygpOkF8fCIiO0IubGVuZ3RoPGc7KUI9SVswXStCO3JldHVybiBCfWZ1bmN0aW9uIG4oQSxnKXtyZXR1cm4gcihBLGcsIjAiKX1mdW5jdGlvbiBzKEEsZyl7ZnVuY3Rpb24gSShBKXtyZXR1cm4gQTwwPy0xOkE+MD8xOjB9dmFyIEI7cmV0dXJuIDA9PT0oQj1JKEEuZ2V0RnVsbFllYXIoKS1nLmdldEZ1bGxZZWFyKCkpKSYmMD09PShCPUkoQS5nZXRNb250aCgpLWcuZ2V0TW9udGgoKSkpJiYoQj1JKEEuZ2V0RGF0ZSgpLWcuZ2V0RGF0ZSgpKSksQn1mdW5jdGlvbiBjKEEpe3N3aXRjaChBLmdldERheSgpKXtjYXNlIDA6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKS0xLDExLDI5KTtjYXNlIDE6cmV0dXJuIEE7Y2FzZSAyOnJldHVybiBuZXcgRGF0ZShBLmdldEZ1bGxZZWFyKCksMCwzKTtjYXNlIDM6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKSwwLDIpO2Nhc2UgNDpyZXR1cm4gbmV3IERhdGUoQS5nZXRGdWxsWWVhcigpLDAsMSk7Y2FzZSA1OnJldHVybiBuZXcgRGF0ZShBLmdldEZ1bGxZZWFyKCktMSwxMSwzMSk7Y2FzZSA2OnJldHVybiBuZXcgRGF0ZShBLmdldEZ1bGxZZWFyKCktMSwxMSwzMCl9fWZ1bmN0aW9uIGgoQSl7dmFyIGc9VChuZXcgRGF0ZShBLnRtX3llYXIrMTkwMCwwLDEpLEEudG1feWRheSksST1uZXcgRGF0ZShnLmdldEZ1bGxZZWFyKCksMCw0KSxCPW5ldyBEYXRlKGcuZ2V0RnVsbFllYXIoKSsxLDAsNCksUT1jKEkpLEU9YyhCKTtyZXR1cm4gcyhRLGcpPD0wP3MoRSxnKTw9MD9nLmdldEZ1bGxZZWFyKCkrMTpnLmdldEZ1bGxZZWFyKCk6Zy5nZXRGdWxsWWVhcigpLTF9dmFyIHU9eyIlYSI6ZnVuY3Rpb24oQSl7cmV0dXJuIGVbQS50bV93ZGF5XS5zdWJzdHJpbmcoMCwzKX0sIiVBIjpmdW5jdGlvbihBKXtyZXR1cm4gZVtBLnRtX3dkYXldfSwiJWIiOmZ1bmN0aW9uKEEpe3JldHVybiBvW0EudG1fbW9uXS5zdWJzdHJpbmcoMCwzKX0sIiVCIjpmdW5jdGlvbihBKXtyZXR1cm4gb1tBLnRtX21vbl19LCIlQyI6ZnVuY3Rpb24oQSl7cmV0dXJuIG4oKEEudG1feWVhcisxOTAwKS8xMDB8MCwyKX0sIiVkIjpmdW5jdGlvbihBKXtyZXR1cm4gbihBLnRtX21kYXksMil9LCIlZSI6ZnVuY3Rpb24oQSl7cmV0dXJuIHIoQS50bV9tZGF5LDIsIiAiKX0sIiVnIjpmdW5jdGlvbihBKXtyZXR1cm4gaChBKS50b1N0cmluZygpLnN1YnN0cmluZygyKX0sIiVHIjpmdW5jdGlvbihBKXtyZXR1cm4gaChBKX0sIiVIIjpmdW5jdGlvbihBKXtyZXR1cm4gbihBLnRtX2hvdXIsMil9LCIlSSI6ZnVuY3Rpb24oQSl7dmFyIGc9QS50bV9ob3VyO3JldHVybiAwPT1nP2c9MTI6Zz4xMiYmKGctPTEyKSxuKGcsMil9LCIlaiI6ZnVuY3Rpb24oQSl7cmV0dXJuIG4oQS50bV9tZGF5K3goSyhBLnRtX3llYXIrMTkwMCk/cTpiLEEudG1fbW9uLTEpLDMpfSwiJW0iOmZ1bmN0aW9uKEEpe3JldHVybiBuKEEudG1fbW9uKzEsMil9LCIlTSI6ZnVuY3Rpb24oQSl7cmV0dXJuIG4oQS50bV9taW4sMil9LCIlbiI6ZnVuY3Rpb24oKXtyZXR1cm4iXG4ifSwiJXAiOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX2hvdXI+PTAmJkEudG1faG91cjwxMj8iQU0iOiJQTSJ9LCIlUyI6ZnVuY3Rpb24oQSl7cmV0dXJuIG4oQS50bV9zZWMsMil9LCIldCI6ZnVuY3Rpb24oKXtyZXR1cm4iXHQifSwiJXUiOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX3dkYXl8fDd9LCIlVSI6ZnVuY3Rpb24oQSl7dmFyIGc9bmV3IERhdGUoQS50bV95ZWFyKzE5MDAsMCwxKSxJPTA9PT1nLmdldERheSgpP2c6VChnLDctZy5nZXREYXkoKSksQj1uZXcgRGF0ZShBLnRtX3llYXIrMTkwMCxBLnRtX21vbixBLnRtX21kYXkpO2lmKHMoSSxCKTwwKXt2YXIgUT14KEsoQi5nZXRGdWxsWWVhcigpKT9xOmIsQi5nZXRNb250aCgpLTEpLTMxLEU9MzEtSS5nZXREYXRlKCkrUStCLmdldERhdGUoKTtyZXR1cm4gbihNYXRoLmNlaWwoRS83KSwyKX1yZXR1cm4gMD09PXMoSSxnKT8iMDEiOiIwMCJ9LCIlViI6ZnVuY3Rpb24oQSl7dmFyIGcsST1uZXcgRGF0ZShBLnRtX3llYXIrMTkwMCwwLDQpLEI9bmV3IERhdGUoQS50bV95ZWFyKzE5MDEsMCw0KSxRPWMoSSksRT1jKEIpLEM9VChuZXcgRGF0ZShBLnRtX3llYXIrMTkwMCwwLDEpLEEudG1feWRheSk7cmV0dXJuIHMoQyxRKTwwPyI1MyI6cyhFLEMpPD0wPyIwMSI6KGc9US5nZXRGdWxsWWVhcigpPEEudG1feWVhcisxOTAwP0EudG1feWRheSszMi1RLmdldERhdGUoKTpBLnRtX3lkYXkrMS1RLmdldERhdGUoKSxuKE1hdGguY2VpbChnLzcpLDIpKX0sIiV3IjpmdW5jdGlvbihBKXtyZXR1cm4gQS50bV93ZGF5fSwiJVciOmZ1bmN0aW9uKEEpe3ZhciBnPW5ldyBEYXRlKEEudG1feWVhciwwLDEpLEk9MT09PWcuZ2V0RGF5KCk/ZzpUKGcsMD09PWcuZ2V0RGF5KCk/MTo3LWcuZ2V0RGF5KCkrMSksQj1uZXcgRGF0ZShBLnRtX3llYXIrMTkwMCxBLnRtX21vbixBLnRtX21kYXkpO2lmKHMoSSxCKTwwKXt2YXIgUT14KEsoQi5nZXRGdWxsWWVhcigpKT9xOmIsQi5nZXRNb250aCgpLTEpLTMxLEU9MzEtSS5nZXREYXRlKCkrUStCLmdldERhdGUoKTtyZXR1cm4gbihNYXRoLmNlaWwoRS83KSwyKX1yZXR1cm4gMD09PXMoSSxnKT8iMDEiOiIwMCJ9LCIleSI6ZnVuY3Rpb24oQSl7cmV0dXJuKEEudG1feWVhcisxOTAwKS50b1N0cmluZygpLnN1YnN0cmluZygyKX0sIiVZIjpmdW5jdGlvbihBKXtyZXR1cm4gQS50bV95ZWFyKzE5MDB9LCIleiI6ZnVuY3Rpb24oQSl7dmFyIGc9QS50bV9nbXRvZmYsST1nPj0wO3JldHVybiBnPShnPU1hdGguYWJzKGcpLzYwKS82MCoxMDArZyU2MCwoST8iKyI6Ii0iKStTdHJpbmcoIjAwMDAiK2cpLnNsaWNlKC00KX0sIiVaIjpmdW5jdGlvbihBKXtyZXR1cm4gQS50bV96b25lfSwiJSUiOmZ1bmN0aW9uKCl7cmV0dXJuIiUifX07Zm9yKHZhciBpIGluIHUpQy5pbmNsdWRlcyhpKSYmKEM9Qy5yZXBsYWNlKG5ldyBSZWdFeHAoaSwiZyIpLHVbaV0oRSkpKTt2YXIgeT1PKEMsITEpO3JldHVybiB5Lmxlbmd0aD5nPzA6KGwoeSxBKSx5Lmxlbmd0aC0xKX0oQSxnLEksQil9fTshZnVuY3Rpb24oKXt2YXIgQT17YTpQfTtmdW5jdGlvbiBnKEEsZyl7dmFyIEIsUT1BLmV4cG9ydHM7SS5hc209USx3KChpPUkuYXNtLmkpLmJ1ZmZlcikscz1JLmFzbS50LEI9SS5hc20uaixSLnVuc2hpZnQoQiksZnVuY3Rpb24oKXtpZihrLS0sSS5tb25pdG9yUnVuRGVwZW5kZW5jaWVzJiZJLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMoayksMD09ayYmUyl7dmFyIEE9UztTPW51bGwsQSgpfX0oKX1mdW5jdGlvbiBCKEEpe2coQS5pbnN0YW5jZSl9ZnVuY3Rpb24gUShnKXtyZXR1cm4odHx8ImZ1bmN0aW9uIiE9dHlwZW9mIGZldGNoP1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIE0oZCl9KSk6ZmV0Y2goZCx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oKGZ1bmN0aW9uKEEpe2lmKCFBLm9rKXRocm93ImZhaWxlZCB0byBsb2FkIHdhc20gYmluYXJ5IGZpbGUgYXQgJyIrZCsiJyI7cmV0dXJuIEEuYXJyYXlCdWZmZXIoKX0pKS5jYXRjaCgoZnVuY3Rpb24oKXtyZXR1cm4gTShkKX0pKSkudGhlbigoZnVuY3Rpb24oZyl7cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGcsQSl9KSkudGhlbigoZnVuY3Rpb24oQSl7cmV0dXJuIEF9KSkudGhlbihnLChmdW5jdGlvbihBKXtlKCJmYWlsZWQgdG8gYXN5bmNocm9ub3VzbHkgcHJlcGFyZSB3YXNtOiAiK0EpLHAoQSl9KSl9aWYoaysrLEkubW9uaXRvclJ1bkRlcGVuZGVuY2llcyYmSS5tb25pdG9yUnVuRGVwZW5kZW5jaWVzKGspLEkuaW5zdGFudGlhdGVXYXNtKXRyeXtyZXR1cm4gSS5pbnN0YW50aWF0ZVdhc20oQSxnKX1jYXRjaChFKXtyZXR1cm4gZSgiTW9kdWxlLmluc3RhbnRpYXRlV2FzbSBjYWxsYmFjayBmYWlsZWQgd2l0aCBlcnJvcjogIitFKSwhMX10fHwiZnVuY3Rpb24iIT10eXBlb2YgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmd8fE4oZCl8fCJmdW5jdGlvbiIhPXR5cGVvZiBmZXRjaD9RKEIpOmZldGNoKGQse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKChmdW5jdGlvbihnKXtyZXR1cm4gV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcoZyxBKS50aGVuKEIsKGZ1bmN0aW9uKEEpe3JldHVybiBlKCJ3YXNtIHN0cmVhbWluZyBjb21waWxlIGZhaWxlZDogIitBKSxlKCJmYWxsaW5nIGJhY2sgdG8gQXJyYXlCdWZmZXIgaW5zdGFudGlhdGlvbiIpLFEoQil9KSl9KSl9KCksSS5fX193YXNtX2NhbGxfY3RvcnM9ZnVuY3Rpb24oKXtyZXR1cm4oSS5fX193YXNtX2NhbGxfY3RvcnM9SS5hc20uaikuYXBwbHkobnVsbCxhcmd1bWVudHMpfTt2YXIgaj1JLl9tYWxsb2M9ZnVuY3Rpb24oKXtyZXR1cm4oaj1JLl9tYWxsb2M9SS5hc20uaykuYXBwbHkobnVsbCxhcmd1bWVudHMpfTtJLl9mcmVlPWZ1bmN0aW9uKCl7cmV0dXJuKEkuX2ZyZWU9SS5hc20ubCkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxJLl9vcGVuQm94PWZ1bmN0aW9uKCl7cmV0dXJuKEkuX29wZW5Cb3g9SS5hc20ubSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxJLl9kZXNjcnlwdD1mdW5jdGlvbigpe3JldHVybihJLl9kZXNjcnlwdD1JLmFzbS5uKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEkuX2Rlc2NyeXB0S2RzS2V5PWZ1bmN0aW9uKCl7cmV0dXJuKEkuX2Rlc2NyeXB0S2RzS2V5PUkuYXNtLm8pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSS5fZGVjcnlwdEtleT1mdW5jdGlvbigpe3JldHVybihJLl9kZWNyeXB0S2V5PUkuYXNtLnApLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSS5fZGVzY3J5cHRDQkM9ZnVuY3Rpb24oKXtyZXR1cm4oSS5fZGVzY3J5cHRDQkM9SS5hc20ucSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxJLl9yZWxlYXNlPWZ1bmN0aW9uKCl7cmV0dXJuKEkuX3JlbGVhc2U9SS5hc20ucikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxJLl9zZXRSYXc9ZnVuY3Rpb24oKXtyZXR1cm4oSS5fc2V0UmF3PUkuYXNtLnMpLmFwcGx5KG51bGwsYXJndW1lbnRzKX07dmFyIFcsWj1JLnN0YWNrU2F2ZT1mdW5jdGlvbigpe3JldHVybihaPUkuc3RhY2tTYXZlPUkuYXNtLnUpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sWD1JLnN0YWNrUmVzdG9yZT1mdW5jdGlvbigpe3JldHVybihYPUkuc3RhY2tSZXN0b3JlPUkuYXNtLnYpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sVj1JLnN0YWNrQWxsb2M9ZnVuY3Rpb24oKXtyZXR1cm4oVj1JLnN0YWNrQWxsb2M9SS5hc20udykuYXBwbHkobnVsbCxhcmd1bWVudHMpfTtmdW5jdGlvbiB6KEEpe2Z1bmN0aW9uIGcoKXtXfHwoVz0hMCxJLmNhbGxlZFJ1bj0hMCxjfHwodihSKSxJLm9uUnVudGltZUluaXRpYWxpemVkJiZJLm9uUnVudGltZUluaXRpYWxpemVkKCksZnVuY3Rpb24oKXtpZihJLnBvc3RSdW4pZm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBJLnBvc3RSdW4mJihJLnBvc3RSdW49W0kucG9zdFJ1bl0pO0kucG9zdFJ1bi5sZW5ndGg7KUE9SS5wb3N0UnVuLnNoaWZ0KCksVS51bnNoaWZ0KEEpO3ZhciBBO3YoVSl9KCkpKX1rPjB8fChmdW5jdGlvbigpe2lmKEkucHJlUnVuKWZvcigiZnVuY3Rpb24iPT10eXBlb2YgSS5wcmVSdW4mJihJLnByZVJ1bj1bSS5wcmVSdW5dKTtJLnByZVJ1bi5sZW5ndGg7KUE9SS5wcmVSdW4uc2hpZnQoKSxHLnVuc2hpZnQoQSk7dmFyIEE7dihHKX0oKSxrPjB8fChJLnNldFN0YXR1cz8oSS5zZXRTdGF0dXMoIlJ1bm5pbmcuLi4iKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7SS5zZXRTdGF0dXMoIiIpfSksMSksZygpfSksMSkpOmcoKSkpfWlmKEkuaW50QXJyYXlGcm9tU3RyaW5nPU8sSS5jY2FsbD1mdW5jdGlvbihBLGcsQixRLEUpe3ZhciBDPXtzdHJpbmc6ZnVuY3Rpb24oQSl7dmFyIGc9MDtpZihudWxsIT1BJiYwIT09QSl7dmFyIEk9MSsoQS5sZW5ndGg8PDIpOyFmdW5jdGlvbihBLGcsSSl7eShBLG4sZyxJKX0oQSxnPVYoSSksSSl9cmV0dXJuIGd9LGFycmF5OmZ1bmN0aW9uKEEpe3ZhciBnPVYoQS5sZW5ndGgpO3JldHVybiBsKEEsZyksZ319LHQ9ZnVuY3Rpb24oQSl7cmV0dXJuIElbIl8iK0FdfShBKSxpPVtdLGU9MDtpZihRKWZvcih2YXIgbz0wO288US5sZW5ndGg7bysrKXt2YXIgcj1DW0Jbb11dO3I/KDA9PT1lJiYoZT1aKCkpLGlbb109cihRW29dKSk6aVtvXT1RW29dfXZhciBhLHM9dC5hcHBseShudWxsLGkpO3JldHVybiBhPXMsMCE9PWUmJlgoZSkscz1mdW5jdGlvbihBKXtyZXR1cm4ic3RyaW5nIj09PWc/ZihBKToiYm9vbGVhbiI9PT1nP0Jvb2xlYW4oQSk6QX0oYSl9LEkuVVRGOFRvU3RyaW5nPWYsSS5hbGxvY2F0ZVVURjg9ZnVuY3Rpb24oQSl7dmFyIGc9RChBKSsxLEk9aihnKTtyZXR1cm4gSSYmeShBLHIsSSxnKSxJfSxTPWZ1bmN0aW9uIEEoKXtXfHx6KCksV3x8KFM9QSl9LEkucnVuPXosSS5wcmVJbml0KWZvcigiZnVuY3Rpb24iPT10eXBlb2YgSS5wcmVJbml0JiYoSS5wcmVJbml0PVtJLnByZUluaXRdKTtJLnByZUluaXQubGVuZ3RoPjA7KUkucHJlSW5pdC5wb3AoKSgpO3JldHVybiB6KCksQS5yZWFkeX0seGM9S2M7dmFyIHFjPXJCLGJjPVMsVGM9W10uam9pbixPYz1HIT1PYmplY3QsUGM9WGkoImpvaW4iLCIsIik7cWMoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDpPY3x8IVBjfSx7am9pbjpmdW5jdGlvbihBKXtyZXR1cm4gVGMuY2FsbChiYyh0aGlzKSx2b2lkIDA9PT1BPyIsIjpBKX19KTt2YXIgamM9ZnVuY3Rpb24oKXtyZXR1cm4gRSgoZnVuY3Rpb24gQSgpe3ZhciBnLEk7Qih0aGlzLEEpO3ZhciBRPW5ldyBQcm9taXNlKChmdW5jdGlvbihBLEIpe2c9QSxJPUJ9KSk7cmV0dXJuIFEucmVzb2x2ZT1nLFEucmVqZWN0PUksUX0pLFt7a2V5OiJyZXNvbHZlIix2YWx1ZTpmdW5jdGlvbihBKXt9fSx7a2V5OiJyZWplY3QiLHZhbHVlOmZ1bmN0aW9uKEEpe319XSl9KCksV2M9enMuY2hhckF0LFpjPW9JLFhjPWdRLFZjPSJTdHJpbmcgSXRlcmF0b3IiLHpjPVpjLnNldCxfYz1aYy5nZXR0ZXJGb3IoVmMpO1hjKFN0cmluZywiU3RyaW5nIiwoZnVuY3Rpb24oQSl7emModGhpcyx7dHlwZTpWYyxzdHJpbmc6U3RyaW5nKEEpLGluZGV4OjB9KX0pLChmdW5jdGlvbigpe3ZhciBBLGc9X2ModGhpcyksST1nLnN0cmluZyxCPWcuaW5kZXg7cmV0dXJuIEI+PUkubGVuZ3RoP3t2YWx1ZTp2b2lkIDAsZG9uZTohMH06KEE9V2MoSSxCKSxnLmluZGV4Kz1BLmxlbmd0aCx7dmFsdWU6QSxkb25lOiExfSl9KSk7dmFyICRjPU4sQWg9a2MsZ2g9b1EsSWg9QUEsQmg9VEEsUWg9QmgoIml0ZXJhdG9yIiksRWg9QmgoInRvU3RyaW5nVGFnIiksQ2g9Z2gudmFsdWVzO2Zvcih2YXIgdGggaW4gQWgpe3ZhciBpaD0kY1t0aF0sZWg9aWgmJmloLnByb3RvdHlwZTtpZihlaCl7aWYoZWhbUWhdIT09Q2gpdHJ5e0loKGVoLFFoLENoKX1jYXRjaChQbCl7ZWhbUWhdPUNofWlmKGVoW0VoXXx8SWgoZWgsRWgsdGgpLEFoW3RoXSlmb3IodmFyIG9oIGluIGdoKWlmKGVoW29oXSE9PWdoW29oXSl0cnl7SWgoZWgsb2gsZ2hbb2hdKX1jYXRjaChQbCl7ZWhbb2hdPWdoW29oXX19fXZhciByaD1ULG5oPWhyLGFoPUtDLHNoPW5BLGNoPWZ1bmN0aW9uKEEsZyxJLEIpe3RyeXtyZXR1cm4gQj9nKHJoKEkpWzBdLElbMV0pOmcoSSl9Y2F0Y2goUGwpe3Rocm93IG5oKEEpLFBsfX0saGg9TEMsZmg9WEEsdWg9UW8seWg9TUMsRGg9ckIsbGg9RCx3aD1XQyxkaD1ILEZoPW5BLEdoPVhBLFJoPVFvLFVoPXpDLGtoPWlvLFNoPXBBLHBoPVRBKCJpc0NvbmNhdFNwcmVhZGFibGUiKSxOaD05MDA3MTk5MjU0NzQwOTkxLE1oPSJNYXhpbXVtIGFsbG93ZWQgaW5kZXggZXhjZWVkZWQiLHZoPVNoPj01MXx8IWxoKChmdW5jdGlvbigpe3ZhciBBPVtdO3JldHVybiBBW3BoXT0hMSxBLmNvbmNhdCgpWzBdIT09QX0pKSxZaD1raCgiY29uY2F0IiksSGg9ZnVuY3Rpb24oQSl7aWYoIWRoKEEpKXJldHVybiExO3ZhciBnPUFbcGhdO3JldHVybiB2b2lkIDAhPT1nPyEhZzp3aChBKX07RGgoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohdmh8fCFZaH0se2NvbmNhdDpmdW5jdGlvbihBKXt2YXIgZyxJLEIsUSxFLEM9RmgodGhpcyksdD1VaChDLDApLGk9MDtmb3IoZz0tMSxCPWFyZ3VtZW50cy5sZW5ndGg7ZzxCO2crKylpZihIaChFPS0xPT09Zz9DOmFyZ3VtZW50c1tnXSkpe2lmKGkrKFE9R2goRS5sZW5ndGgpKT5OaCl0aHJvdyBUeXBlRXJyb3IoTWgpO2ZvcihJPTA7STxRO0krKyxpKyspSSBpbiBFJiZSaCh0LGksRVtJXSl9ZWxzZXtpZihpPj1OaCl0aHJvdyBUeXBlRXJyb3IoTWgpO1JoKHQsaSsrLEUpfXJldHVybiB0Lmxlbmd0aD1pLHR9fSk7dmFyIExoPXYsSmg9WS5mLG1oPUZ1bmN0aW9uLnByb3RvdHlwZSxLaD1taC50b1N0cmluZyx4aD0vXlxzKmZ1bmN0aW9uIChbXiAoXSopLyxxaD0ibmFtZSI7TGgmJiEocWggaW4gbWgpJiZKaChtaCxxaCx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3RyeXtyZXR1cm4gS2guY2FsbCh0aGlzKS5tYXRjaCh4aClbMV19Y2F0Y2goUGwpe3JldHVybiIifX19KSxQcm9taXNlLndpdGhSZXNvbHZlcnN8fChQcm9taXNlLndpdGhSZXNvbHZlcnM9ZnVuY3Rpb24oKXt2YXIgQT17fTtyZXR1cm4gQS5wcm9taXNlPW5ldyBQcm9taXNlKChmdW5jdGlvbihnLEkpe0EucmVzb2x2ZT1nLEEucmVqZWN0PUl9KSksQX0pO3ZhciBiaD0wLFRoPTEsT2g9ZnVuY3Rpb24oKXtyZXR1cm4gRSgoZnVuY3Rpb24gQSgpe0IodGhpcyxBKX0pLFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPW5ldyBqYztyZXR1cm4gdGhpcy5tb2R1bGU9e29uUnVudGltZUluaXRpYWxpemVkOmZ1bmN0aW9uKCl7QS5yZXNvbHZlKCl9LG9uQWJvcnQ6ZnVuY3Rpb24oZyl7QS5yZWplY3QoZyl9fSx4Yyh0aGlzLm1vZHVsZSksQX19LHtrZXk6ImRlc2NyeXB0S2V5Iix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJLEIsUT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MTYsRT1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106Ymg7dHJ5e3ZhciBDPWZ1bmN0aW9uKEEpe2lmKCIiPT09QSlyZXR1cm4iIjtmb3IodmFyIGc9W10sST0wO0k8QS5sZW5ndGg7SSsrKWcucHVzaChBLmNoYXJDb2RlQXQoSSkpO3JldHVybiBnfShzZWxmLmF0b2IoQSkpO0k9dGhpcy5tb2R1bGUuX21hbGxvYyhOdW1iZXIoQy5sZW5ndGgpKSx0aGlzLm1vZHVsZS5IRUFQOC5zZXQoQyxJKSxnPWd8fG5ldyBVaW50OEFycmF5LGc9bmV3IFVpbnQ4QXJyYXkoZyksQj10aGlzLm1vZHVsZS5fbWFsbG9jKGcuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KGcsQiksdGhpcy5tb2R1bGUuX2RlY3J5cHRLZXkoRSxJLEMubGVuZ3RoLFEsZy5ieXRlTGVuZ3RoLEIpfWNhdGNoKHQpe2NvbnNvbGUubG9nKHQpfWZpbmFsbHl7dGhpcy5tb2R1bGUuX2ZyZWUoSSksdGhpcy5tb2R1bGUuX2ZyZWUoQil9fX0se2tleToiZGVzY3J5cHQiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dmFyIEksQixRPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpiaDt0cnl7dmFyIEU9bmV3IFVpbnQ4QXJyYXkoZyk7ST10aGlzLm1vZHVsZS5fbWFsbG9jKEEuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEEsSSksQj10aGlzLm1vZHVsZS5fbWFsbG9jKEUuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEUsQiksdGhpcy5tb2R1bGUuX2Rlc2NyeXB0KFEsSSxBLmJ5dGVMZW5ndGgsQik7dmFyIEM9dGhpcy5tb2R1bGUuSEVBUFU4LnNsaWNlKEksSStBLmJ5dGVMZW5ndGgpO3JldHVybiBuZXcgVWludDhBcnJheShDKX1jYXRjaChQbCl7Y29uc29sZS5sb2coUGwpfWZpbmFsbHl7dGhpcy5tb2R1bGUuX2ZyZWUoSSksdGhpcy5tb2R1bGUuX2ZyZWUoQil9fX0se2tleToiZGVzY3J5cHRLZHNLZXkiLHZhbHVlOmZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEUsQz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106MTY7dHJ5e3ZhciB0PW5ldyBVaW50OEFycmF5KGcpLGk9bmV3IFVpbnQ4QXJyYXkoSSk7Qj10aGlzLm1vZHVsZS5fbWFsbG9jKHQuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KHQsQiksUT10aGlzLm1vZHVsZS5fbWFsbG9jKEEuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEEsUSksRT10aGlzLm1vZHVsZS5fbWFsbG9jKGkuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KGksRSksdGhpcy5tb2R1bGUuX2Rlc2NyeXB0S2RzS2V5KEIsdC5ieXRlTGVuZ3RoLFEsQS5ieXRlTGVuZ3RoLEUsQyl9Y2F0Y2goUGwpe2NvbnNvbGUubG9nKFBsKX1maW5hbGx5e3RoaXMubW9kdWxlLl9mcmVlKFEpLHRoaXMubW9kdWxlLl9mcmVlKEUpLHRoaXMubW9kdWxlLl9mcmVlKEIpfX19LHtrZXk6ImRlc2NyeXB0Q0JDIix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJLEI7dHJ5e3ZhciBRPW5ldyBVaW50OEFycmF5KGcpO3JldHVybiBJPXRoaXMubW9kdWxlLl9tYWxsb2MoQS5ieXRlTGVuZ3RoKSx0aGlzLm1vZHVsZS5IRUFQOC5zZXQoQSxJKSxCPXRoaXMubW9kdWxlLl9tYWxsb2MoUS5ieXRlTGVuZ3RoKSx0aGlzLm1vZHVsZS5IRUFQOC5zZXQoUSxCKSx0aGlzLm1vZHVsZS5fZGVzY3J5cHRDQkMoSSxBLmJ5dGVMZW5ndGgsQiksdGhpcy5tb2R1bGUuSEVBUFU4LnNsaWNlKEksSStBLmJ5dGVMZW5ndGgpfWNhdGNoKFBsKXtjb25zb2xlLmxvZyhQbCl9ZmluYWxseXt0aGlzLm1vZHVsZS5fZnJlZShJKSx0aGlzLm1vZHVsZS5fZnJlZShCKX19fSx7a2V5OiJzZXRSYXciLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnLEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOlRoO3RyeXt2YXIgQj1uZXcgVWludDhBcnJheShBKTtnPXRoaXMubW9kdWxlLl9tYWxsb2MoQi5ieXRlTGVuZ3RoKSx0aGlzLm1vZHVsZS5IRUFQOC5zZXQoQixnKSx0aGlzLm1vZHVsZS5fc2V0UmF3KGcsQi5ieXRlTGVuZ3RoLEkpfWNhdGNoKFBsKXtjb25zb2xlLmxvZyhQbCl9ZmluYWxseXt0aGlzLm1vZHVsZS5fZnJlZShnKX19fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubW9kdWxlJiYodGhpcy5tb2R1bGU9bnVsbCl9fV0pfSgpLFBoPUV0LmZpbHRlcjtyQih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFpbygiZmlsdGVyIil9LHtmaWx0ZXI6ZnVuY3Rpb24oQSl7cmV0dXJuIFBoKHRoaXMsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSk7dmFyIGpoPUV0Lm1hcDtyQih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFpbygibWFwIil9LHttYXA6ZnVuY3Rpb24oQSl7cmV0dXJuIGpoKHRoaXMsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSk7dmFyIFdoPXt9LFpoPVMsWGg9WUkuZixWaD17fS50b1N0cmluZyx6aD0ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93JiZPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcz9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh3aW5kb3cpOltdO1doLmY9ZnVuY3Rpb24oQSl7cmV0dXJuIHpoJiYiW29iamVjdCBXaW5kb3ddIj09VmguY2FsbChBKT9mdW5jdGlvbihBKXt0cnl7cmV0dXJuIFhoKEEpfWNhdGNoKFBsKXtyZXR1cm4gemguc2xpY2UoKX19KEEpOlhoKFpoKEEpKX07dmFyIF9oPXt9LCRoPVRBO19oLmY9JGg7dmFyIEFmPXlBLGdmPWNBLElmPV9oLEJmPVkuZixRZj1mdW5jdGlvbihBKXt2YXIgZz1BZi5TeW1ib2x8fChBZi5TeW1ib2w9e30pO2dmKGcsQSl8fEJmKGcsQSx7dmFsdWU6SWYuZihBKX0pfSxFZj1yQixDZj1OLHRmPWRBLGVmPXYsb2Y9dkEscmY9WUEsbmY9RCxhZj1jQSxzZj1XQyxjZj1ILGhmPVQsZmY9bkEsdWY9Uyx5Zj1QLERmPXosbGY9SGcsd2Y9c2csZGY9WUksRmY9V2gsR2Y9SkksUmY9ckksVWY9WSxrZj1uSSxTZj1BQSxwZj12SSxOZj1vQSxNZj1FZyx2Zj11QSxZZj1UQSxIZj1faCxMZj1RZixKZj1TQixtZj1vSSxLZj1FdC5mb3JFYWNoLHhmPXdnKCJoaWRkZW4iKSxxZj0iU3ltYm9sIixiZj0icHJvdG90eXBlIixUZj1ZZigidG9QcmltaXRpdmUiKSxPZj1tZi5zZXQsUGY9bWYuZ2V0dGVyRm9yKHFmKSxqZj1PYmplY3RbYmZdLFdmPUNmLlN5bWJvbCxaZj10ZigiSlNPTiIsInN0cmluZ2lmeSIpLFhmPVJmLmYsVmY9VWYuZix6Zj1GZi5mLF9mPWtmLmYsJGY9TmYoInN5bWJvbHMiKSxBdT1OZigib3Atc3ltYm9scyIpLGd1PU5mKCJzdHJpbmctdG8tc3ltYm9sLXJlZ2lzdHJ5IiksSXU9TmYoInN5bWJvbC10by1zdHJpbmctcmVnaXN0cnkiKSxCdT1OZigid2tzIiksUXU9Q2YuUU9iamVjdCxFdT0hUXV8fCFRdVtiZl18fCFRdVtiZl0uZmluZENoaWxkLEN1PWVmJiZuZigoZnVuY3Rpb24oKXtyZXR1cm4gNyE9bGYoVmYoe30sImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVmYodGhpcywiYSIse3ZhbHVlOjd9KS5hfX0pKS5hfSkpP2Z1bmN0aW9uKEEsZyxJKXt2YXIgQj1YZihqZixnKTtCJiZkZWxldGUgamZbZ10sVmYoQSxnLEkpLEImJkEhPT1qZiYmVmYoamYsZyxCKX06VmYsdHU9ZnVuY3Rpb24oQSxnKXt2YXIgST0kZltBXT1sZihXZltiZl0pO3JldHVybiBPZihJLHt0eXBlOnFmLHRhZzpBLGRlc2NyaXB0aW9uOmd9KSxlZnx8KEkuZGVzY3JpcHRpb249ZyksSX0saXU9cmY/ZnVuY3Rpb24oQSl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBBfTpmdW5jdGlvbihBKXtyZXR1cm4gT2JqZWN0KEEpaW5zdGFuY2VvZiBXZn0sZXU9ZnVuY3Rpb24oQSxnLEkpe0E9PT1qZiYmZXUoQXUsZyxJKSxoZihBKTt2YXIgQj15ZihnLCEwKTtyZXR1cm4gaGYoSSksYWYoJGYsQik/KEkuZW51bWVyYWJsZT8oYWYoQSx4ZikmJkFbeGZdW0JdJiYoQVt4Zl1bQl09ITEpLEk9bGYoSSx7ZW51bWVyYWJsZTpEZigwLCExKX0pKTooYWYoQSx4Zil8fFZmKEEseGYsRGYoMSx7fSkpLEFbeGZdW0JdPSEwKSxDdShBLEIsSSkpOlZmKEEsQixJKX0sb3U9ZnVuY3Rpb24oQSxnKXtoZihBKTt2YXIgST11ZihnKSxCPXdmKEkpLmNvbmNhdChzdShJKSk7cmV0dXJuIEtmKEIsKGZ1bmN0aW9uKGcpe2VmJiYhcnUuY2FsbChJLGcpfHxldShBLGcsSVtnXSl9KSksQX0scnU9ZnVuY3Rpb24oQSl7dmFyIGc9eWYoQSwhMCksST1fZi5jYWxsKHRoaXMsZyk7cmV0dXJuISh0aGlzPT09amYmJmFmKCRmLGcpJiYhYWYoQXUsZykpJiYoIShJfHwhYWYodGhpcyxnKXx8IWFmKCRmLGcpfHxhZih0aGlzLHhmKSYmdGhpc1t4Zl1bZ10pfHxJKX0sbnU9ZnVuY3Rpb24oQSxnKXt2YXIgST11ZihBKSxCPXlmKGcsITApO2lmKEkhPT1qZnx8IWFmKCRmLEIpfHxhZihBdSxCKSl7dmFyIFE9WGYoSSxCKTtyZXR1cm4hUXx8IWFmKCRmLEIpfHxhZihJLHhmKSYmSVt4Zl1bQl18fChRLmVudW1lcmFibGU9ITApLFF9fSxhdT1mdW5jdGlvbihBKXt2YXIgZz16Zih1ZihBKSksST1bXTtyZXR1cm4gS2YoZywoZnVuY3Rpb24oQSl7YWYoJGYsQSl8fGFmKE1mLEEpfHxJLnB1c2goQSl9KSksSX0sc3U9ZnVuY3Rpb24oQSl7dmFyIGc9QT09PWpmLEk9emYoZz9BdTp1ZihBKSksQj1bXTtyZXR1cm4gS2YoSSwoZnVuY3Rpb24oQSl7IWFmKCRmLEEpfHxnJiYhYWYoamYsQSl8fEIucHVzaCgkZltBXSl9KSksQn07KG9mfHwoV2Y9ZnVuY3Rpb24oKXtpZih0aGlzIGluc3RhbmNlb2YgV2YpdGhyb3cgVHlwZUVycm9yKCJTeW1ib2wgaXMgbm90IGEgY29uc3RydWN0b3IiKTt2YXIgQT1hcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/U3RyaW5nKGFyZ3VtZW50c1swXSk6dm9pZCAwLGc9dmYoQSksST1mdW5jdGlvbihBKXt0aGlzPT09amYmJkkuY2FsbChBdSxBKSxhZih0aGlzLHhmKSYmYWYodGhpc1t4Zl0sZykmJih0aGlzW3hmXVtnXT0hMSksQ3UodGhpcyxnLERmKDEsQSkpfTtyZXR1cm4gZWYmJkV1JiZDdShqZixnLHtjb25maWd1cmFibGU6ITAsc2V0Okl9KSx0dShnLEEpfSxwZihXZltiZl0sInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4gUGYodGhpcykudGFnfSkpLHBmKFdmLCJ3aXRob3V0U2V0dGVyIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHR1KHZmKEEpLEEpfSkpLGtmLmY9cnUsVWYuZj1ldSxSZi5mPW51LGRmLmY9RmYuZj1hdSxHZi5mPXN1LEhmLmY9ZnVuY3Rpb24oQSl7cmV0dXJuIHR1KFlmKEEpLEEpfSxlZiYmKFZmKFdmW2JmXSwiZGVzY3JpcHRpb24iLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFBmKHRoaXMpLmRlc2NyaXB0aW9ufX0pLHBmKGpmLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIscnUse3Vuc2FmZTohMH0pKSksRWYoe2dsb2JhbDohMCx3cmFwOiEwLGZvcmNlZDohb2Ysc2hhbTohb2Z9LHtTeW1ib2w6V2Z9KSxLZih3ZihCdSksKGZ1bmN0aW9uKEEpe0xmKEEpfSkpLEVmKHt0YXJnZXQ6cWYsc3RhdDohMCxmb3JjZWQ6IW9mfSx7Zm9yOmZ1bmN0aW9uKEEpe3ZhciBnPVN0cmluZyhBKTtpZihhZihndSxnKSlyZXR1cm4gZ3VbZ107dmFyIEk9V2YoZyk7cmV0dXJuIGd1W2ddPUksSXVbSV09ZyxJfSxrZXlGb3I6ZnVuY3Rpb24oQSl7aWYoIWl1KEEpKXRocm93IFR5cGVFcnJvcihBKyIgaXMgbm90IGEgc3ltYm9sIik7aWYoYWYoSXUsQSkpcmV0dXJuIEl1W0FdfSx1c2VTZXR0ZXI6ZnVuY3Rpb24oKXtFdT0hMH0sdXNlU2ltcGxlOmZ1bmN0aW9uKCl7RXU9ITF9fSksRWYoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohb2Ysc2hhbTohZWZ9LHtjcmVhdGU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gdm9pZCAwPT09Zz9sZihBKTpvdShsZihBKSxnKX0sZGVmaW5lUHJvcGVydHk6ZXUsZGVmaW5lUHJvcGVydGllczpvdSxnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6bnV9KSxFZih7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOiFvZn0se2dldE93blByb3BlcnR5TmFtZXM6YXUsZ2V0T3duUHJvcGVydHlTeW1ib2xzOnN1fSksRWYoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDpuZigoZnVuY3Rpb24oKXtHZi5mKDEpfSkpfSx7Z2V0T3duUHJvcGVydHlTeW1ib2xzOmZ1bmN0aW9uKEEpe3JldHVybiBHZi5mKGZmKEEpKX19KSxaZikmJkVmKHt0YXJnZXQ6IkpTT04iLHN0YXQ6ITAsZm9yY2VkOiFvZnx8bmYoKGZ1bmN0aW9uKCl7dmFyIEE9V2YoKTtyZXR1cm4iW251bGxdIiE9WmYoW0FdKXx8Int9IiE9WmYoe2E6QX0pfHwie30iIT1aZihPYmplY3QoQSkpfSkpfSx7c3RyaW5naWZ5OmZ1bmN0aW9uKEEsZyxJKXtmb3IodmFyIEIsUT1bQV0sRT0xO2FyZ3VtZW50cy5sZW5ndGg+RTspUS5wdXNoKGFyZ3VtZW50c1tFKytdKTtpZihCPWcsKGNmKGcpfHx2b2lkIDAhPT1BKSYmIWl1KEEpKXJldHVybiBzZihnKXx8KGc9ZnVuY3Rpb24oQSxnKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgQiYmKGc9Qi5jYWxsKHRoaXMsQSxnKSksIWl1KGcpKXJldHVybiBnfSksUVsxXT1nLFpmLmFwcGx5KG51bGwsUSl9fSk7V2ZbYmZdW1RmXXx8U2YoV2ZbYmZdLFRmLFdmW2JmXS52YWx1ZU9mKSxKZihXZixxZiksTWZbeGZdPSEwO3ZhciBjdT1yQixodT12LGZ1PU4sdXU9Y0EseXU9SCxEdT1ZLmYsbHU9WEksd3U9ZnUuU3ltYm9sO2lmKGh1JiYiZnVuY3Rpb24iPT10eXBlb2Ygd3UmJighKCJkZXNjcmlwdGlvbiJpbiB3dS5wcm90b3R5cGUpfHx2b2lkIDAhPT13dSgpLmRlc2NyaXB0aW9uKSl7dmFyIGR1PXt9LEZ1PWZ1bmN0aW9uKCl7dmFyIEE9YXJndW1lbnRzLmxlbmd0aDwxfHx2b2lkIDA9PT1hcmd1bWVudHNbMF0/dm9pZCAwOlN0cmluZyhhcmd1bWVudHNbMF0pLGc9dGhpcyBpbnN0YW5jZW9mIEZ1P25ldyB3dShBKTp2b2lkIDA9PT1BP3d1KCk6d3UoQSk7cmV0dXJuIiI9PT1BJiYoZHVbZ109ITApLGd9O2x1KEZ1LHd1KTt2YXIgR3U9RnUucHJvdG90eXBlPXd1LnByb3RvdHlwZTtHdS5jb25zdHJ1Y3Rvcj1GdTt2YXIgUnU9R3UudG9TdHJpbmcsVXU9IlN5bWJvbCh0ZXN0KSI9PVN0cmluZyh3dSgidGVzdCIpKSxrdT0vXlN5bWJvbFwoKC4qKVwpW14pXSskLztEdShHdSwiZGVzY3JpcHRpb24iLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dmFyIEE9eXUodGhpcyk/dGhpcy52YWx1ZU9mKCk6dGhpcyxnPVJ1LmNhbGwoQSk7aWYodXUoZHUsQSkpcmV0dXJuIiI7dmFyIEk9VXU/Zy5zbGljZSg3LC0xKTpnLnJlcGxhY2Uoa3UsIiQxIik7cmV0dXJuIiI9PT1JP3ZvaWQgMDpJfX0pLGN1KHtnbG9iYWw6ITAsZm9yY2VkOiEwfSx7U3ltYm9sOkZ1fSl9UWYoIml0ZXJhdG9yIiksUWYoInRvUHJpbWl0aXZlIik7dmFyIFN1PWZ1bmN0aW9uKEEpe3ZhciBnLEksQixRLEUsQyx0PXNoKEEpLGk9ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSxlPWFyZ3VtZW50cy5sZW5ndGgsbz1lPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxyPXZvaWQgMCE9PW8sbj15aCh0KSxhPTA7aWYociYmKG89YWgobyxlPjI/YXJndW1lbnRzWzJdOnZvaWQgMCwyKSksbnVsbD09bnx8aT09QXJyYXkmJmhoKG4pKWZvcihJPW5ldyBpKGc9ZmgodC5sZW5ndGgpKTtnPmE7YSsrKUM9cj9vKHRbYV0sYSk6dFthXSx1aChJLGEsQyk7ZWxzZSBmb3IoRT0oUT1uLmNhbGwodCkpLm5leHQsST1uZXcgaTshKEI9RS5jYWxsKFEpKS5kb25lO2ErKylDPXI/Y2goUSxvLFtCLnZhbHVlLGFdLCEwKTpCLnZhbHVlLHVoKEksYSxDKTtyZXR1cm4gSS5sZW5ndGg9YSxJfTtyQih7dGFyZ2V0OiJBcnJheSIsc3RhdDohMCxmb3JjZWQ6IVRFKChmdW5jdGlvbihBKXtBcnJheS5mcm9tKEEpfSkpfSx7ZnJvbTpTdX0pO3ZhciBwdT1ULE51PVAsTXU9QUEsdnU9ZnVuY3Rpb24oQSl7aWYoInN0cmluZyIhPT1BJiYibnVtYmVyIiE9PUEmJiJkZWZhdWx0IiE9PUEpdGhyb3cgVHlwZUVycm9yKCJJbmNvcnJlY3QgaGludCIpO3JldHVybiBOdShwdSh0aGlzKSwibnVtYmVyIiE9PUEpfSxZdT1UQSgidG9QcmltaXRpdmUiKSxIdT1EYXRlLnByb3RvdHlwZTtZdSBpbiBIdXx8TXUoSHUsWXUsdnUpO3ZhciBMdT1uQSxKdT11QixtdT1uQjtyQih7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOkQoKGZ1bmN0aW9uKCl7SnUoMSl9KSksc2hhbTohbXV9LHtnZXRQcm90b3R5cGVPZjpmdW5jdGlvbihBKXtyZXR1cm4gSnUoTHUoQSkpfX0pO3ZhciBLdT1KQyx4dT1ILHF1PVtdLnNsaWNlLGJ1PXt9LFR1PUZ1bmN0aW9uLmJpbmR8fGZ1bmN0aW9uKEEpe3ZhciBnPUt1KHRoaXMpLEk9cXUuY2FsbChhcmd1bWVudHMsMSksQj1mdW5jdGlvbigpe3ZhciBRPUkuY29uY2F0KHF1LmNhbGwoYXJndW1lbnRzKSk7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBCP2Z1bmN0aW9uKEEsZyxJKXtpZighKGcgaW4gYnUpKXtmb3IodmFyIEI9W10sUT0wO1E8ZztRKyspQltRXT0iYVsiK1ErIl0iO2J1W2ddPUZ1bmN0aW9uKCJDLGEiLCJyZXR1cm4gbmV3IEMoIitCLmpvaW4oIiwiKSsiKSIpfXJldHVybiBidVtnXShBLEkpfShnLFEubGVuZ3RoLFEpOmcuYXBwbHkoQSxRKX07cmV0dXJuIHh1KGcucHJvdG90eXBlKSYmKEIucHJvdG90eXBlPWcucHJvdG90eXBlKSxCfSxPdT1yQixQdT1KQyxqdT1ULFd1PUgsWnU9SGcsWHU9VHUsVnU9RCx6dT1kQSgiUmVmbGVjdCIsImNvbnN0cnVjdCIpLF91PVZ1KChmdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXt9cmV0dXJuISh6dSgoZnVuY3Rpb24oKXt9KSxbXSxBKWluc3RhbmNlb2YgQSl9KSksJHU9IVZ1KChmdW5jdGlvbigpe3p1KChmdW5jdGlvbigpe30pKX0pKSxBeT1fdXx8JHU7ZnVuY3Rpb24gZ3koQSxnKXtpZighKEEgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBJeShBLGcpe2Zvcih2YXIgST0wO0k8Zy5sZW5ndGg7SSsrKXt2YXIgQj1nW0ldO0IuZW51bWVyYWJsZT1CLmVudW1lcmFibGV8fCExLEIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBCJiYoQi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsZXkoQi5rZXkpLEIpfX1mdW5jdGlvbiBCeShBLGcsSSl7cmV0dXJuIGcmJkl5KEEucHJvdG90eXBlLGcpLEkmJkl5KEEsSSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksQX1mdW5jdGlvbiBReShBLGcsSSl7cmV0dXJuKGc9ZXkoZykpaW4gQT9PYmplY3QuZGVmaW5lUHJvcGVydHkoQSxnLHt2YWx1ZTpJLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6QVtnXT1JLEF9ZnVuY3Rpb24gRXkoQSxnKXtyZXR1cm4gZnVuY3Rpb24oQSl7aWYoQXJyYXkuaXNBcnJheShBKSlyZXR1cm4gQX0oQSl8fGZ1bmN0aW9uKEEsZyl7dmFyIEk9bnVsbD09QT9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZBW1N5bWJvbC5pdGVyYXRvcl18fEFbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1JKXt2YXIgQixRLEUsQyx0PVtdLGk9ITAsZT0hMTt0cnl7aWYoRT0oST1JLmNhbGwoQSkpLm5leHQsMD09PWcpe2lmKE9iamVjdChJKSE9PUkpcmV0dXJuO2k9ITF9ZWxzZSBmb3IoOyEoaT0oQj1FLmNhbGwoSSkpLmRvbmUpJiYodC5wdXNoKEIudmFsdWUpLHQubGVuZ3RoIT09Zyk7aT0hMCk7fWNhdGNoKG8pe2U9ITAsUT1vfWZpbmFsbHl7dHJ5e2lmKCFpJiZudWxsIT1JLnJldHVybiYmKEM9SS5yZXR1cm4oKSxPYmplY3QoQykhPT1DKSlyZXR1cm59ZmluYWxseXtpZihlKXRocm93IFF9fXJldHVybiB0fX0oQSxnKXx8dHkoQSxnKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIEN5KEEpe3JldHVybiBmdW5jdGlvbihBKXtpZihBcnJheS5pc0FycmF5KEEpKXJldHVybiBpeShBKX0oQSl8fGZ1bmN0aW9uKEEpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1BW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPUFbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShBKX0oQSl8fHR5KEEpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIHR5KEEsZyl7aWYoQSl7aWYoInN0cmluZyI9PXR5cGVvZiBBKXJldHVybiBpeShBLGcpO3ZhciBJPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChBKS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PUkmJkEuY29uc3RydWN0b3ImJihJPUEuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1JfHwiU2V0Ij09PUk/QXJyYXkuZnJvbShBKToiQXJndW1lbnRzIj09PUl8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KEkpP2l5KEEsZyk6dm9pZCAwfX1mdW5jdGlvbiBpeShBLGcpeyhudWxsPT1nfHxnPkEubGVuZ3RoKSYmKGc9QS5sZW5ndGgpO2Zvcih2YXIgST0wLEI9bmV3IEFycmF5KGcpO0k8ZztJKyspQltJXT1BW0ldO3JldHVybiBCfWZ1bmN0aW9uIGV5KEEpe3ZhciBnPWZ1bmN0aW9uKEEsZyl7aWYoIm9iamVjdCIhPT11KEEpfHxudWxsPT09QSlyZXR1cm4gQTt2YXIgST1BW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09SSl7dmFyIEI9SS5jYWxsKEEsZ3x8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9PXUoQikpcmV0dXJuIEI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1nP1N0cmluZzpOdW1iZXIpKEEpfShBLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09PXUoZyk/ZzpTdHJpbmcoZyl9T3Uoe3RhcmdldDoiUmVmbGVjdCIsc3RhdDohMCxmb3JjZWQ6QXksc2hhbTpBeX0se2NvbnN0cnVjdDpmdW5jdGlvbihBLGcpe1B1KEEpLGp1KGcpO3ZhciBJPWFyZ3VtZW50cy5sZW5ndGg8Mz9BOlB1KGFyZ3VtZW50c1syXSk7aWYoJHUmJiFfdSlyZXR1cm4genUoQSxnLEkpO2lmKEE9PUkpe3N3aXRjaChnLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBuZXcgQTtjYXNlIDE6cmV0dXJuIG5ldyBBKGdbMF0pO2Nhc2UgMjpyZXR1cm4gbmV3IEEoZ1swXSxnWzFdKTtjYXNlIDM6cmV0dXJuIG5ldyBBKGdbMF0sZ1sxXSxnWzJdKTtjYXNlIDQ6cmV0dXJuIG5ldyBBKGdbMF0sZ1sxXSxnWzJdLGdbM10pfXZhciBCPVtudWxsXTtyZXR1cm4gQi5wdXNoLmFwcGx5KEIsZyksbmV3KFh1LmFwcGx5KEEsQikpfXZhciBRPUkucHJvdG90eXBlLEU9WnUoV3UoUSk/UTpPYmplY3QucHJvdG90eXBlKSxDPUZ1bmN0aW9uLmFwcGx5LmNhbGwoQSxFLGcpO3JldHVybiBXdShDKT9DOkV9fSk7dmFyIG95PSJ2aWRlbyIscnk9ImF1ZGlvIixueT0ibWV0YWRhdGEiLGF5PSJhdmMiLHN5PSJoZXZjIixjeT0idnZjQyIsaHk9ImFhYyIsZnk9Imc3MTEwYSIsdXk9Imc3MTEwbSIseXk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKCl7Z3kodGhpcyxBKSxReSh0aGlzLCJpZCIsMSksUXkodGhpcywidHlwZSIsb3kpLFF5KHRoaXMsImNvZGVjVHlwZSIsYXkpLFF5KHRoaXMsInBpZCIsLTEpLFF5KHRoaXMsImh2Y0MiLHZvaWQgMCksUXkodGhpcywiY29kZWMiLCIiKSxReSh0aGlzLCJ0aW1lc2NhbGUiLDApLFF5KHRoaXMsImZvcm1hdFRpbWVzY2FsZSIsMCksUXkodGhpcywic2VxdWVuY2VOdW1iZXIiLDApLFF5KHRoaXMsImJhc2VNZWRpYURlY29kZVRpbWUiLDApLFF5KHRoaXMsImJhc2VEdHMiLDApLFF5KHRoaXMsImR1cmF0aW9uIiwwKSxReSh0aGlzLCJ3YXJuaW5ncyIsW10pLFF5KHRoaXMsInNhbXBsZXMiLFtdKSxReSh0aGlzLCJwcHMiLFtdKSxReSh0aGlzLCJzcHMiLFtdKSxReSh0aGlzLCJ2cHMiLFtdKSxReSh0aGlzLCJmcHNOdW0iLDApLFF5KHRoaXMsImZwc0RlbiIsMCksUXkodGhpcywic2FyUmF0aW8iLFtdKSxReSh0aGlzLCJ3aWR0aCIsMCksUXkodGhpcywiaGVpZ2h0IiwwKSxReSh0aGlzLCJuYWxVbml0U2l6ZSIsNCksUXkodGhpcywicHJlc2VudCIsITEpLFF5KHRoaXMsImlzVmlkZW9FbmNyeXB0aW9uIiwhMSksUXkodGhpcywiaXNBdWRpb0VuY3J5cHRpb24iLCExKSxReSh0aGlzLCJpc1ZpZGVvIiwhMCksUXkodGhpcywia2lkIixudWxsKSxReSh0aGlzLCJwc3NoIixudWxsKSxReSh0aGlzLCJleHQiLHZvaWQgMCl9cmV0dXJuIEJ5KEEsW3trZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2VxdWVuY2VOdW1iZXI9dGhpcy53aWR0aD10aGlzLmhlaWdodD10aGlzLmZwc0Rlbj10aGlzLmZwc051bT10aGlzLmR1cmF0aW9uPXRoaXMuYmFzZU1lZGlhRGVjb2RlVGltZT10aGlzLnRpbWVzY2FsZT0wLHRoaXMuY29kZWM9IiIsdGhpcy5wcmVzZW50PSExLHRoaXMucGlkPS0xLHRoaXMucHBzPVtdLHRoaXMuc3BzPVtdLHRoaXMudnBzPVtdLHRoaXMuc2FyUmF0aW89W10sdGhpcy5zYW1wbGVzPVtdLHRoaXMud2FybmluZ3M9W10sdGhpcy5odmNDPW51bGx9fSx7a2V5OiJleGlzdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hISh0aGlzLnBwcy5sZW5ndGgmJnRoaXMuc3BzLmxlbmd0aCYmdGhpcy5jb2RlYyl9fSx7a2V5OiJoYXNTYW1wbGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLnNhbXBsZXMubGVuZ3RofX0se2tleToiaXNFbmNyeXB0aW9uIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1ZpZGVvRW5jcnlwdGlvbn19XSksQX0oKSxEeT1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtneSh0aGlzLEEpLFF5KHRoaXMsImlkIiwyKSxReSh0aGlzLCJ0eXBlIixyeSksUXkodGhpcywiY29kZWNUeXBlIixoeSksUXkodGhpcywicGlkIiwtMSksUXkodGhpcywiY29kZWMiLCIiKSxReSh0aGlzLCJzZXF1ZW5jZU51bWJlciIsMCksUXkodGhpcywic2FtcGxlRHVyYXRpb24iLDApLFF5KHRoaXMsInRpbWVzY2FsZSIsMCksUXkodGhpcywiZm9ybWF0VGltZXNjYWxlIiwwKSxReSh0aGlzLCJiYXNlTWVkaWFEZWNvZGVUaW1lIiwwKSxReSh0aGlzLCJkdXJhdGlvbiIsMCksUXkodGhpcywid2FybmluZ3MiLFtdKSxReSh0aGlzLCJzYW1wbGVzIixbXSksUXkodGhpcywiYmFzZUR0cyIsMCksUXkodGhpcywic2FtcGxlU2l6ZSIsMTYpLFF5KHRoaXMsInNhbXBsZVJhdGUiLDApLFF5KHRoaXMsImNoYW5uZWxDb3VudCIsMCksUXkodGhpcywib2JqZWN0VHlwZSIsMCksUXkodGhpcywic2FtcGxlUmF0ZUluZGV4IiwwKSxReSh0aGlzLCJjb25maWciLFtdKSxReSh0aGlzLCJwcmVzZW50IiwhMSksUXkodGhpcywiaXNWaWRlb0VuY3J5cHRpb24iLCExKSxReSh0aGlzLCJpc0F1ZGlvRW5jcnlwdGlvbiIsITEpLFF5KHRoaXMsImtpZCIsbnVsbCksUXkodGhpcywiZXh0Iix2b2lkIDApfXJldHVybiBCeShBLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNlcXVlbmNlTnVtYmVyPTAsdGhpcy50aW1lc2NhbGU9MCx0aGlzLnNhbXBsZUR1cmF0aW9uPTAsdGhpcy5zYW1wbGVSYXRlPTAsdGhpcy5jaGFubmVsQ291bnQ9MCx0aGlzLmJhc2VNZWRpYURlY29kZVRpbWU9MCx0aGlzLnByZXNlbnQ9ITEsdGhpcy5waWQ9LTEsdGhpcy5jb2RlYz0iIix0aGlzLnNhbXBsZXM9W10sdGhpcy5jb25maWc9W10sdGhpcy53YXJuaW5ncz1bXX19LHtrZXk6ImV4aXN0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhKHRoaXMuc2FtcGxlUmF0ZSYmdGhpcy5jaGFubmVsQ291bnQmJnRoaXMuY29kZWMmJnRoaXMuY29kZWNUeXBlPT09aHkpfX0se2tleToiaGFzU2FtcGxlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5zYW1wbGVzLmxlbmd0aH19LHtrZXk6ImlzRW5jcnlwdGlvbiIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNBdWRpb0VuY3J5cHRpb259fV0pLEF9KCksbHk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKGcsSSxCKXtneSh0aGlzLEEpLFF5KHRoaXMsImZsYWciLHt9KSxReSh0aGlzLCJrZXlmcmFtZSIsITEpLFF5KHRoaXMsImdvcElkIiwwKSxReSh0aGlzLCJkdXJhdGlvbiIsMCksUXkodGhpcywic2l6ZSIsMCksUXkodGhpcywidW5pdHMiLFtdKSxReSh0aGlzLCJjaHJvbWFGb3JtYXQiLDQyMCksdGhpcy5vcmlnaW5QdHM9dGhpcy5wdHM9Zyx0aGlzLm9yaWdpbkR0cz10aGlzLmR0cz1JLEImJih0aGlzLnVuaXRzPUIpfXJldHVybiBCeShBLFt7a2V5OiJjdHMiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB0cy10aGlzLmR0c319LHtrZXk6InNldFRvS2V5ZnJhbWUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5rZXlmcmFtZT0hMCx0aGlzLmZsYWcuZGVwZW5kc09uPTIsdGhpcy5mbGFnLmlzTm9uU3luY1NhbXBsZT0wfX1dKSxBfSgpLHd5PUJ5KChmdW5jdGlvbiBBKGcsSSxCLFEpe2d5KHRoaXMsQSksUXkodGhpcywiZHVyYXRpb24iLDEwMjQpLFF5KHRoaXMsImZsYWciLHtkZXBlbmRzT246Mixpc05vblN5bmNTYW1wbGU6MH0pLFF5KHRoaXMsImtleWZyYW1lIiwhMCksdGhpcy5vcmlnaW5QdHM9dGhpcy5wdHM9dGhpcy5kdHM9Zyx0aGlzLmRhdGE9SSx0aGlzLnNpemU9SS5ieXRlTGVuZ3RoLHRoaXMuc2FtcGxlT2Zmc2V0PVEsQiYmKHRoaXMuZHVyYXRpb249Qil9KSksZHk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKCl7Z3kodGhpcyxBKSxReSh0aGlzLCJpZCIsMyksUXkodGhpcywidHlwZSIsbnkpLFF5KHRoaXMsInRpbWVzY2FsZSIsMCksUXkodGhpcywiZmx2U2NyaXB0U2FtcGxlcyIsW10pLFF5KHRoaXMsInNlaVNhbXBsZXMiLFtdKX1yZXR1cm4gQnkoQSxbe2tleToiZXhpc3QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISghdGhpcy5mbHZTY3JpcHRTYW1wbGVzLmxlbmd0aCYmIXRoaXMuc2VpU2FtcGxlcy5sZW5ndGh8fCF0aGlzLnRpbWVzY2FsZSl9fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnRpbWVzY2FsZT0wLHRoaXMuZmx2U2NyaXB0U2FtcGxlcz1bXSx0aGlzLnNlaVNhbXBsZXM9W119fSx7a2V5OiJoYXNTYW1wbGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISghdGhpcy5mbHZTY3JpcHRTYW1wbGVzLmxlbmd0aCYmIXRoaXMuc2VpU2FtcGxlcy5sZW5ndGgpfX1dKSxBfSgpLEZ5PXJCLEd5PSRBLFJ5PWpBLFV5PVhBLGt5PW5BLFN5PXpDLHB5PVFvLE55PWlvKCJzcGxpY2UiKSxNeT1NYXRoLm1heCx2eT1NYXRoLm1pbjtGeSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFOeX0se3NwbGljZTpmdW5jdGlvbihBLGcpe3ZhciBJLEIsUSxFLEMsdCxpPWt5KHRoaXMpLGU9VXkoaS5sZW5ndGgpLG89R3koQSxlKSxyPWFyZ3VtZW50cy5sZW5ndGg7aWYoMD09PXI/ST1CPTA6MT09PXI/KEk9MCxCPWUtbyk6KEk9ci0yLEI9dnkoTXkoUnkoZyksMCksZS1vKSksZStJLUI+OTAwNzE5OTI1NDc0MDk5MSl0aHJvdyBUeXBlRXJyb3IoIk1heGltdW0gYWxsb3dlZCBsZW5ndGggZXhjZWVkZWQiKTtmb3IoUT1TeShpLEIpLEU9MDtFPEI7RSsrKShDPW8rRSlpbiBpJiZweShRLEUsaVtDXSk7aWYoUS5sZW5ndGg9QixJPEIpe2ZvcihFPW87RTxlLUI7RSsrKXQ9RStJLChDPUUrQilpbiBpP2lbdF09aVtDXTpkZWxldGUgaVt0XTtmb3IoRT1lO0U+ZS1CK0k7RS0tKWRlbGV0ZSBpW0UtMV19ZWxzZSBpZihJPkIpZm9yKEU9ZS1CO0U+bztFLS0pdD1FK0ktMSwoQz1FK0ItMSlpbiBpP2lbdF09aVtDXTpkZWxldGUgaVt0XTtmb3IoRT0wO0U8STtFKyspaVtFK29dPWFyZ3VtZW50c1tFKzJdO3JldHVybiBpLmxlbmd0aD1lLUIrSSxRfX0pO3ZhciBZeT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyxIeT1ZeSYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvY2FsZUxvd2VyQ2FzZSgpLEx5PVl5JiZIeS5pbmNsdWRlcygiZmlyZWZveCIpLEp5PVl5JiZIeS5pbmNsdWRlcygiYW5kcm9pZCIpLG15PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe2d5KHRoaXMsQSl9cmV0dXJuIEJ5KEEsbnVsbCxbe2tleToiZ2V0UmF0ZUluZGV4QnlSYXRlIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5GUkVRLmluZGV4T2YoZyl9fSx7a2V5OiJwYXJzZUFEVFMiLHZhbHVlOmZ1bmN0aW9uKGcsSSl7Zm9yKHZhciBCPWcubGVuZ3RoLFE9MDtRKzI8QiYmKDI1NSE9PWdbUV18fDI0MCE9KDI0NiZnW1ErMV0pKTspUSsrO2lmKCEoUT49Qikpe3ZhciBFPVEsQz1bXSx0PSg2MCZnW1ErMl0pPj4+MixpPUEuRlJFUVt0XTtpZighaSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2FtcGxpbmcgaW5kZXg6ICIuY29uY2F0KHQpKTtmb3IodmFyIGUsbyxyPTErKCgxOTImZ1tRKzJdKT4+PjYpLG49KDEmZ1tRKzJdKTw8MnwoMTkyJmdbUSszXSk+Pj42LGE9QS5fZ2V0Q29uZmlnKHQsbixyKSxzPWEuY29uZmlnLGM9YS5jb2RlYyxoPTAsZj1BLmdldEZyYW1lRHVyYXRpb24oaSk7USs3PEI7KWlmKDI1NT09PWdbUV0mJjI0MD09KDI0NiZnW1ErMV0pKXtpZihCLVE8KG89KDMmZ1tRKzNdKTw8MTF8Z1tRKzRdPDwzfCgyMjQmZ1tRKzVdKT4+NSkpYnJlYWs7ZT0yKigxJn5nW1ErMV0pLEMucHVzaCh7cHRzOkkraCpmLGRhdGE6Zy5zdWJhcnJheShRKzcrZSxRK28pfSksaCsrLFErPW99ZWxzZSBRKys7cmV0dXJue3NraXA6RSxyZW1haW5pbmc6UT49Qj92b2lkIDA6Zy5zdWJhcnJheShRKSxmcmFtZXM6QyxzYW1wbGluZ0ZyZXF1ZW5jeUluZGV4OnQsc2FtcGxlUmF0ZTppLG9iamVjdFR5cGU6cixjaGFubmVsQ291bnQ6bixjb2RlYzpjLGNvbmZpZzpzLG9yaWdpbkNvZGVjOiJtcDRhLjQwLiIuY29uY2F0KHIpfX19fSx7a2V5OiJwYXJzZUF1ZGlvU3BlY2lmaWNDb25maWciLHZhbHVlOmZ1bmN0aW9uKGcpe2lmKGcubGVuZ3RoKXt2YXIgST1nWzBdPj4+MyxCPSg3JmdbMF0pPDwxfGdbMV0+Pj43LFE9KDEyMCZnWzFdKT4+PjMsRT1BLkZSRVFbQl07aWYoRSl7dmFyIEM9QS5fZ2V0Q29uZmlnKEIsUSxJKTtyZXR1cm57c2FtcGxpbmdGcmVxdWVuY3lJbmRleDpCLHNhbXBsZVJhdGU6RSxvYmplY3RUeXBlOkksY2hhbm5lbENvdW50OlEsY29uZmlnOkMuY29uZmlnLGNvZGVjOkMuY29kZWMsb3JpZ2luQ29kZWM6Im1wNGEuNDAuIi5jb25jYXQoSSl9fX19fSx7a2V5OiJnZXRGcmFtZUR1cmF0aW9uIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gMTAyNCooYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjllNCkvQX19LHtrZXk6Il9nZXRDb25maWciLHZhbHVlOmZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEU9W107cmV0dXJuIEx5P0E+PTY/KEI9NSxRPUEtMyk6KEI9MixRPUEpOkp5PyhCPTIsUT1BKTooQj0yPT09SXx8NT09PUk/STo1LFE9QSxBPj02P1E9QS0zOjE9PT1nJiYoQj0yLFE9QSkpLEVbMF09Qjw8MyxFWzBdfD0oMTQmQSk+PjEsRVsxXT0oMSZBKTw8NyxFWzFdfD1nPDwzLDU9PT1CJiYoRVsxXXw9KDE0JlEpPj4xLEVbMl09KDEmUSk8PDcsRVsyXXw9OCxFWzNdPTApLHtjb25maWc6RSxjb2RlYzoibXA0YS40MC4iLmNvbmNhdChCKX19fSx7a2V5OiJnZXRTaWxlbnRGcmFtZSIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtpZigibXA0YS40MC4yIj09PUEpe2lmKDE9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMCwyMDAsMCwxMjgsMzUsMTI4XSk7aWYoMj09PWcpcmV0dXJuIG5ldyBVaW50OEFycmF5KFszMywwLDczLDE0NCwyLDI1LDAsMzUsMTI4XSk7aWYoMz09PWcpcmV0dXJuIG5ldyBVaW50OEFycmF5KFswLDIwMCwwLDEyOCwzMiwxMzIsMSwzOCw2NCw4LDEwMCwwLDE0Ml0pO2lmKDQ9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMCwyMDAsMCwxMjgsMzIsMTMyLDEsMzgsNjQsOCwxMDAsMCwxMjgsNDQsMTI4LDgsMiw1Nl0pO2lmKDU9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMCwyMDAsMCwxMjgsMzIsMTMyLDEsMzgsNjQsOCwxMDAsMCwxMzAsNDgsNCwxNTMsMCwzMywxNDQsMiw1Nl0pO2lmKDY9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMCwyMDAsMCwxMjgsMzIsMTMyLDEsMzgsNjQsOCwxMDAsMCwxMzAsNDgsNCwxNTMsMCwzMywxNDQsMiwwLDE3OCwwLDMyLDgsMjI0XSl9ZWxzZXtpZigxPT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzEsNjQsMzQsMTI4LDE2Myw3OCwyMzAsMTI4LDE4Niw4LDAsMCwwLDI4LDYsMjQxLDE5MywxMCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5NF0pO2lmKDI9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMSw2NCwzNCwxMjgsMTYzLDk0LDIzMCwxMjgsMTg2LDgsMCwwLDAsMCwxNDksMCw2LDI0MSwxNjEsMTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTRdKTtpZigzPT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzEsNjQsMzQsMTI4LDE2Myw5NCwyMzAsMTI4LDE4Niw4LDAsMCwwLDAsMTQ5LDAsNiwyNDEsMTYxLDEwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDk0XSl9fX1dKSxBfSgpO2Z1bmN0aW9uIEt5KCl7Zm9yKHZhciBBPWFyZ3VtZW50cy5sZW5ndGgsZz1uZXcgQXJyYXkoQSksST0wO0k8QTtJKyspZ1tJXT1hcmd1bWVudHNbSV07Zz1nLmZpbHRlcihCb29sZWFuKTt2YXIgQj1uZXcgVWludDhBcnJheShnLnJlZHVjZSgoZnVuY3Rpb24oQSxnKXtyZXR1cm4gQStnLmJ5dGVMZW5ndGh9KSwwKSksUT0wO3JldHVybiBnLmZvckVhY2goKGZ1bmN0aW9uKEEpe0Iuc2V0KEEsUSksUSs9QS5ieXRlTGVuZ3RofSkpLEJ9UXkobXksIkZSRVEiLFs5NmUzLDg4MjAwLDY0ZTMsNDhlMyw0NDEwMCwzMmUzLDI0ZTMsMjIwNTAsMTZlMywxMmUzLDExMDI1LDhlMyw3MzUwXSk7dmFyIHh5PU1hdGgucG93KDIsMzIpO2Z1bmN0aW9uIHF5KEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihBW2ddPDw4KSsoQVtnKzFdfHwwKX1mdW5jdGlvbiBieShBKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MDtyZXR1cm4oQVtnXTw8MjQ+Pj4wKSsoQVtnKzFdPDwxNikrKEFbZysyXTw8OCkrKEFbZyszXXx8MCl9ZnVuY3Rpb24gVHkoQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjA7cmV0dXJuIG5ldyBEYXRhVmlldyhBLmJ1ZmZlcixBLmJ5dGVPZmZzZXQsQS5ieXRlTGVuZ3RoKS5nZXRJbnQzMihnKX1mdW5jdGlvbiBPeShBKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MDtyZXR1cm4gYnkoQSxnKSp4eStieShBLGcrNCl9ZnVuY3Rpb24gUHkoQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAsST1uZXcgRGF0YVZpZXcoQS5idWZmZXIsQS5ieXRlT2Zmc2V0LEEuYnl0ZUxlbmd0aCk7cmV0dXJuIEkuZ2V0VWludDMyKGcpPDwzMnxJLmdldFVpbnQzMihnKzQpfWZ1bmN0aW9uIGp5KEEpe3ZhciBnPSIiO2lmKEEuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zys9ZnVuY3Rpb24oQSl7cmV0dXJuKCIwIitOdW1iZXIoQSkudG9TdHJpbmcoMTYpKS5zbGljZSgtMikudG9VcHBlckNhc2UoKX0oQSl9KSksZy5sZW5ndGg8PTMyKWZvcih2YXIgST0zMi1nLmxlbmd0aCxCPTA7QjxJO0IrKylnKz0iMCI7cmV0dXJuIGd9ZnVuY3Rpb24gV3koQSl7aWYoIUFycmF5LmlzQXJyYXkoQSkpe2Zvcih2YXIgZz1bXSxJPSIiLEI9MDtCPEEubGVuZ3RoO0IrKylCJTImJihJPUFbQi0xXStBW0JdLGcucHVzaChwYXJzZUludChJLDE2KSksST0iIik7cmV0dXJuIGd9cmV0dXJuIEEubWFwKChmdW5jdGlvbihBKXtyZXR1cm4gcGFyc2VJbnQoQSwxNil9KSl9dmFyIFp5PW5BLFh5PXNnO3JCKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6RCgoZnVuY3Rpb24oKXtYeSgxKX0pKX0se2tleXM6ZnVuY3Rpb24oQSl7cmV0dXJuIFh5KFp5KEEpKX19KTt2YXIgVnk9ckIsenk9RXQuZmluZCxfeT14ZywkeT0iZmluZCIsQUQ9ITA7JHkgaW5bXSYmQXJyYXkoMSlbJHldKChmdW5jdGlvbigpe0FEPSExfSkpLFZ5KHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6QUR9LHtmaW5kOmZ1bmN0aW9uKEEpe3JldHVybiB6eSh0aGlzLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLF95KCR5KTt2YXIgZ0Q9dixJRD1ZLEJEPVlhLFFEPUhhLlVOU1VQUE9SVEVEX1k7Z0QmJigiZyIhPS8uL2cuZmxhZ3N8fFFEKSYmSUQuZihSZWdFeHAucHJvdG90eXBlLCJmbGFncyIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6QkR9KTt2YXIgRUQ9akEsQ0Q9Uix0RD1YQSxpRD1mdW5jdGlvbihBKXt2YXIgZz1TdHJpbmcoQ0QodGhpcykpLEk9IiIsQj1FRChBKTtpZihCPDB8fEI9PTEvMCl0aHJvdyBSYW5nZUVycm9yKCJXcm9uZyBudW1iZXIgb2YgcmVwZXRpdGlvbnMiKTtmb3IoO0I+MDsoQj4+Pj0xKSYmKGcrPWcpKTEmQiYmKEkrPWcpO3JldHVybiBJfSxlRD1SLG9EPU1hdGguY2VpbCxyRD1mdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3ZhciBRLEUsQz1TdHJpbmcoZUQoZykpLHQ9Qy5sZW5ndGgsaT12b2lkIDA9PT1CPyIgIjpTdHJpbmcoQiksZT10RChJKTtyZXR1cm4gZTw9dHx8IiI9PWk/QzooUT1lLXQsKEU9aUQuY2FsbChpLG9EKFEvaS5sZW5ndGgpKSkubGVuZ3RoPlEmJihFPUUuc2xpY2UoMCxRKSksQT9DK0U6RStDKX19LG5EPXtzdGFydDpyRCghMSksZW5kOnJEKCEwKX0sYUQ9L1ZlcnNpb25cLzEwKD86XC5cZCspezEsMn0oPzogW1x3Li9dKyk/KD86IE1vYmlsZVwvXHcrKT8gU2FmYXJpXC8vLnRlc3QoRkEpLHNEPW5ELnN0YXJ0O3JCKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOmFEfSx7cGFkU3RhcnQ6ZnVuY3Rpb24oQSl7cmV0dXJuIHNEKHRoaXMsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSk7dmFyIGNEPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShnKXtpZihneSh0aGlzLEEpLFF5KHRoaXMsIl9ieXRlc0F2YWlsYWJsZSIsdm9pZCAwKSxReSh0aGlzLCJfYml0c0F2YWlsYWJsZSIsMCksUXkodGhpcywiX3dvcmQiLDApLCFnKXRocm93IG5ldyBFcnJvcigiRXhwR29sb21iIGRhdGEgcGFyYW1zIGlzIHJlcXVpcmVkIik7dGhpcy5fZGF0YT1nLHRoaXMuX2J5dGVzQXZhaWxhYmxlPWcuYnl0ZUxlbmd0aCx0aGlzLl9ieXRlc0F2YWlsYWJsZSYmdGhpcy5fbG9hZFdvcmQoKX1yZXR1cm4gQnkoQSxbe2tleToiX2xvYWRXb3JkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPXRoaXMuX2RhdGEuYnl0ZUxlbmd0aC10aGlzLl9ieXRlc0F2YWlsYWJsZSxnPU1hdGgubWluKDQsdGhpcy5fYnl0ZXNBdmFpbGFibGUpO2lmKDA9PT1nKXRocm93IG5ldyBFcnJvcigiTm8gYnl0ZXMgYXZhaWxhYmxlIik7dmFyIEk9bmV3IFVpbnQ4QXJyYXkoNCk7SS5zZXQodGhpcy5fZGF0YS5zdWJhcnJheShBLEErZykpLHRoaXMuX3dvcmQ9bmV3IERhdGFWaWV3KEkuYnVmZmVyKS5nZXRVaW50MzIoMCksdGhpcy5fYml0c0F2YWlsYWJsZT04KmcsdGhpcy5fYnl0ZXNBdmFpbGFibGUtPWd9fSx7a2V5OiJiaXRzUG9zIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiA4KnRoaXMuX2J5dGVzQXZhaWxhYmxlLXRoaXMuX2JpdHNBdmFpbGFibGV9fSx7a2V5OiJiaXRzTGVmdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gOCp0aGlzLl9kYXRhLmxlbmd0aC10aGlzLmJpdHNQb3MoKX19LHtrZXk6ImJ5dGVBbGlnbmVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5iaXRzUG9zKCl8fHRoaXMuYml0c1BvcygpJTg9PTB9fSx7a2V5OiJza2lwQml0cyIsdmFsdWU6ZnVuY3Rpb24oQSl7aWYodGhpcy5fYml0c0F2YWlsYWJsZT5BKXRoaXMuX3dvcmQ8PD1BLHRoaXMuX2JpdHNBdmFpbGFibGUtPUE7ZWxzZXtBLT10aGlzLl9iaXRzQXZhaWxhYmxlO3ZhciBnPU1hdGguZmxvb3IoQS84KTtBLT04KmcsdGhpcy5fYnl0ZXNBdmFpbGFibGUtPWcsdGhpcy5fbG9hZFdvcmQoKSx0aGlzLl93b3JkPDw9QSx0aGlzLl9iaXRzQXZhaWxhYmxlLT1BfX19LHtrZXk6InJlYWRCaXRzIix2YWx1ZTpmdW5jdGlvbihBKXtpZihBPjMyKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHJlYWQgbW9yZSB0aGFuIDMyIGJpdHMiKTt2YXIgZz1NYXRoLm1pbih0aGlzLl9iaXRzQXZhaWxhYmxlLEEpLEk9dGhpcy5fd29yZD4+PjMyLWc7cmV0dXJuIHRoaXMuX2JpdHNBdmFpbGFibGUtPWcsdGhpcy5fYml0c0F2YWlsYWJsZT4wP3RoaXMuX3dvcmQ8PD1nOnRoaXMuX2J5dGVzQXZhaWxhYmxlPjAmJnRoaXMuX2xvYWRXb3JkKCksKGc9QS1nKT4wJiZ0aGlzLl9iaXRzQXZhaWxhYmxlP0k8PGd8dGhpcy5yZWFkQml0cyhnKTpJfX0se2tleToic2tpcExaIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBO2ZvcihBPTA7QTx0aGlzLl9iaXRzQXZhaWxhYmxlOysrQSlpZih0aGlzLl93b3JkJjIxNDc0ODM2NDg+Pj5BKXJldHVybiB0aGlzLl93b3JkPDw9QSx0aGlzLl9iaXRzQXZhaWxhYmxlLT1BLEE7cmV0dXJuIHRoaXMuX2xvYWRXb3JkKCksQSt0aGlzLnNraXBMWigpfX0se2tleToic2tpcFVFRyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNraXBCaXRzKDErdGhpcy5za2lwTFooKSl9fSx7a2V5OiJyZWFkVUVHIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPXRoaXMuc2tpcExaKCk7cmV0dXJuIHRoaXMucmVhZEJpdHMoQSsxKS0xfX0se2tleToicmVhZEVHIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPXRoaXMucmVhZFVFRygpO3JldHVybiAxJkE/MStBPj4+MTotMSooQT4+PjEpfX0se2tleToicmVhZEJvb2wiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLnJlYWRCaXRzKDEpfX0se2tleToicmVhZFVCeXRlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRCaXRzKDgpfX0se2tleToic2tpcFNjYWxpbmdMaXN0Iix2YWx1ZTpmdW5jdGlvbihBKXtmb3IodmFyIGc9OCxJPTgsQj0wO0I8QTtCKyspMCE9PUkmJihJPShnK3RoaXMucmVhZEVHKCkrMjU2KSUyNTYpLGc9MD09PUk/ZzpJfX1dKSxBfSgpLGhEPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShnKXtneSh0aGlzLEEpLHRoaXMuX2J1ZmZlcj1nLHRoaXMuX29mZnNldD0wLHRoaXMuX2hlbGRCaXRzPTAsdGhpcy5fbnVtSGVsZEJpdHM9MH1yZXR1cm4gQnkoQSxbe2tleToicmVhZFVpbnQ4Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9idWZmZXJbdGhpcy5fb2Zmc2V0KytdfX0se2tleToicmVhZFVpbnQxNiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8OHx0aGlzLl9idWZmZXJbdGhpcy5fb2Zmc2V0KytdfX0se2tleToicmVhZFVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8MjR8dGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8MTZ8dGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8OHx0aGlzLl9idWZmZXJbdGhpcy5fb2Zmc2V0KytdfX0se2tleToicmVhZFVpbnQ4QXJyYXkiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMuX2J1ZmZlci5zbGljZSh0aGlzLl9vZmZzZXQsdGhpcy5fb2Zmc2V0K0EpO3JldHVybiB0aGlzLl9vZmZzZXQrPUEsZ319LHtrZXk6InN0cmVhbVJlYWQxQnl0ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5faGVsZEJpdHM9dGhpcy5yZWFkVWludDgoKSx0aGlzLl9udW1IZWxkQml0cz04fX0se2tleToic3RyZWFtUmVhZDJCeXRlcyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9oZWxkQml0cz10aGlzLnJlYWRVaW50MTYoKSx0aGlzLl9udW1IZWxkQml0cz0xNn19LHtrZXk6ImV4dHJhY3RCaXRzIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz10aGlzLl9oZWxkQml0cz4+dGhpcy5fbnVtSGVsZEJpdHMtQSYoMTw8QSktMTtyZXR1cm4gdGhpcy5fbnVtSGVsZEJpdHMtPUEsZ319XSksQX0oKSxmRD1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtneSh0aGlzLEEpfXJldHVybiBCeShBLG51bGwsW3trZXk6InBhcnNlVlZDRGVjb2RlckNvbmZpZ3VyYXRpb25SZWNvcmQiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBoRChnKSxCPUkucmVhZFVpbnQ4KCk7SS5zdHJlYW1SZWFkMUJ5dGVzKCksSS5leHRyYWN0Qml0cyg1KTt2YXIgUSxFLEMsdCxpLGUsbyxyLG49SS5leHRyYWN0Qml0cygyKSsxLGE9SS5leHRyYWN0Qml0cygxKSxzPXt9O2EmJihJLnN0cmVhbVJlYWQyQnl0ZXMoKSx0PUkuZXh0cmFjdEJpdHMoMiksaT1JLmV4dHJhY3RCaXRzKDMpLEU9SS5leHRyYWN0Qml0cygzKSxDPUkuZXh0cmFjdEJpdHMoMiksSS5leHRyYWN0Qml0cyg2KSxzPUEucGFyc2VWVkNQVExSZWNvcmQoSSxFKSxRPUkucmVhZFVpbnQxNigpLGU9SS5yZWFkVWludDE2KCksbz1JLnJlYWRVaW50MTYoKSxyPUkucmVhZFVpbnQxNigpKTtmb3IodmFyIGM9SS5yZWFkVWludDgoKSxoPVtdLGY9W10sdT1bXSx5PW51bGwsRD0wO0Q8YztEKyspe0kuc3RyZWFtUmVhZDFCeXRlcygpLEkuZXh0cmFjdEJpdHMoMSksSS5leHRyYWN0Qml0cygyKTt2YXIgbD1JLmV4dHJhY3RCaXRzKDUpLHc9MTsxMyE9PWwmJjEyIT09bCYmKHc9SS5yZWFkVWludDE2KCkpO2Zvcih2YXIgZD0wO2Q8dztkKyspe3ZhciBGPUkucmVhZFVpbnQxNigpO3N3aXRjaChsKXtjYXNlIDE0OmgucHVzaChJLnJlYWRVaW50OEFycmF5KEYpKTticmVhaztjYXNlIDE1OnZhciBHPUkucmVhZFVpbnQ4QXJyYXkoRik7eXx8KHk9QS5wYXJzZVNQUyhBLnJlbW92ZUVQQihHKSkpLGYucHVzaChHKTticmVhaztjYXNlIDE2OnUucHVzaChJLnJlYWRVaW50OEFycmF5KEYpKX19fXJldHVybntkYXRhOmcsY29uZmlndXJhdGlvblZlcnNpb246Qixjb2RlYzoiYnZjMi4xLjYuTDkzLkIwIixuYWxVbml0U2l6ZTpuLHB0bFByZXNlbnRGbGFnOmEsb2xzSWR4OlEsbnVtU3VibGF5ZXJzOkUsY29uc3RhbnRGcmFtZVJhdGU6QyxjaHJvbWFGb3JtYXRJZGM6dCxiaXREZXB0aEx1bWFNaW51czg6aSxwdGxSZWNvcmQ6cyx3aWR0aDplLGhlaWdodDpvLHNhbXBsZVJhdGU6cixudW1PZkFycmF5czpjLHZwczpoLHNwczpmLHBwczp1LHNwc1BhcnNlZDp5fX19LHtrZXk6InBhcnNlVlZDUFRMUmVjb3JkIix2YWx1ZTpmdW5jdGlvbihBLGcpe0Euc3RyZWFtUmVhZDJCeXRlcygpLEEuZXh0cmFjdEJpdHMoMik7dmFyIEk9QS5leHRyYWN0Qml0cyg2KSxCPUEuZXh0cmFjdEJpdHMoNyksUT1BLmV4dHJhY3RCaXRzKDEpLEU9QS5yZWFkVWludDgoKTtBLnN0cmVhbVJlYWQxQnl0ZXMoKTt2YXIgQz1BLmV4dHJhY3RCaXRzKDEpLHQ9QS5leHRyYWN0Qml0cygxKSxpPW5ldyBVaW50OEFycmF5KEkpO2lmKEkpe2Zvcih2YXIgZT0wO2U8SS0xO2UrKyl7dmFyIG89QS5leHRyYWN0Qml0cyg2KTtBLnN0cmVhbVJlYWQxQnl0ZXMoKTt2YXIgcj1BLmV4dHJhY3RCaXRzKDIpO2lbZV09bzw8MnxyfWlbSS0xXT1BLmV4dHJhY3RCaXRzKDYpfWVsc2UgQS5leHRyYWN0Qml0cyg2KTt2YXIgbj1bXTtpZihnPjEpe0Euc3RyZWFtUmVhZDFCeXRlcygpO2Zvcih2YXIgYT0wLHM9Zy0yO3M+PTA7LS1zKXthfD1BLmV4dHJhY3RCaXRzKDEpPDxzfWZvcih2YXIgYz1nO2M8PTgmJmc+MTsrK2MpQS5leHRyYWN0Qml0cygxKTtmb3IodmFyIGg9Zy0yO2g+PTA7LS1oKWEmMTw8aCYmKG5baF09QS5yZWFkVWludDgoKSl9dmFyIGY9QS5yZWFkVWludDgoKSx1PVtdO2lmKGYpZm9yKHZhciB5PTA7eTxmO3krKyl1LnB1c2goQS5yZWFkVWludDMyKCkpO3JldHVybntnZW5lcmFsUHJvZmlsZUlkYzpCLGdlbmVyYWxUaWVyRmxhZzpRLGdlbmVyYWxMZXZlbElkYzpFLHB0bEZyYW1lT25seUNvbnN0cmFpbnRGbGFnOkMscHRsTXVsdGlsYXllckVuYWJsZWRGbGFnOnQsZ2VuZXJhbENvbnN0cmFpbnRJbmZvOmksc3ViTGF5ZXJMZXZlbElkYzpuLGdlbmVyYWxTdWJQcm9maWxlSWRjOnUscHRsTnVtU3ViUHJvZmlsZXM6ZixudW1CeXRlc0NvbnN0cmFpbnRJbmZvOkl9fX0se2tleToiZ2V0QXZjY05hbHMiLHZhbHVlOmZ1bmN0aW9uKEEpe2Zvcih2YXIgZz1bXTtBLnBvc2l0aW9uPEEubGVuZ3RoLTQ7KXt2YXIgST1BLmRhdGF2aWV3LmdldEludDMyKEEuZGF0YXZpZXcucG9zaXRpb24pO2lmKCEoQS5sZW5ndGgtQS5wb3NpdGlvbj49SSkpYnJlYWs7dmFyIEI9QS5idWZmZXIuc2xpY2UoQS5wb3NpdGlvbixBLnBvc2l0aW9uKzQpO0Euc2tpcCg0KTt2YXIgUT1uZXcgVWludDhBcnJheShBLmJ1ZmZlci5zbGljZShBLnBvc2l0aW9uLEEucG9zaXRpb24rSSkpO0Euc2tpcChJKSxnLnB1c2goe2hlYWRlcjpCLGJvZHk6UX0pfXJldHVybiBnfX0se2tleToiYW5hbHlzZU5hbCIsdmFsdWU6ZnVuY3Rpb24oQSl7dmFyIGc9KDI0OCZBLmJvZHlbMV0pPj4zO3N3aXRjaChBLnR5cGU9ZyxnKXtjYXNlIDIzOmNhc2UgMjQ6YnJlYWs7Y2FzZSA3OmNhc2UgODpBLmtleT0hMDticmVhaztjYXNlIDE0OkEudnBzPSEwO2JyZWFrO2Nhc2UgMTU6QS5zcHM9ITA7YnJlYWs7Y2FzZSAxNjpBLnBwcz0hMDticmVhaztjYXNlIDE3OkEuYXBzPSEwfX19LHtrZXk6InJlbW92ZUVQQiIsdmFsdWU6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEuYnl0ZUxlbmd0aCxJPVtdLEI9MTtCPGctMjspMD09PUFbQl0mJjA9PT1BW0IrMV0mJjM9PT1BW0IrMl0/KEkucHVzaChCKzIpLEIrPTIpOkIrKztpZighSS5sZW5ndGgpcmV0dXJuIEE7dmFyIFE9Zy1JLmxlbmd0aCxFPW5ldyBVaW50OEFycmF5KFEpLEM9MDtmb3IoQj0wO0I8UTtDKyssQisrKUM9PT1JWzBdJiYoQysrLEkuc2hpZnQoKSksRVtCXT1BW0NdO3JldHVybiBFfX0se2tleToicGFyc2VWcHMiLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToicGFyc2VTUFMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBjRChnKTtJLnJlYWRVQnl0ZSgpLEkucmVhZFVCeXRlKCksSS5za2lwQml0cyg0KTt2YXIgQj1JLnJlYWRCaXRzKDQpLFE9SS5yZWFkQml0cygzKSxFPUkucmVhZEJpdHMoMiksQz00MjA7RTw9MyYmKEM9WzAsNDIwLDQyMiw0NDRdW0VdKSxJLnJlYWRCaXRzKDIpLEkucmVhZEJpdHMoMSk7dmFyIHQ9QS5fcGFyc2VQcm9maWxlVGllckxldmVsKEksMSxRKTtyZXR1cm4gSS5yZWFkQml0cygxKSxJLnJlYWRCaXRzKDEpJiZJLnJlYWRCaXRzKDEpLHt3aWR0aDpJLnJlYWRVRUcoKSxoZWlnaHQ6SS5yZWFkVUVHKCksc3BzTWF4U3ViTGF5ZXJNaW51czE6USxzcHNWaWRlb1BhcmFtZXRlclNldElkOkIsY2hyb21hRm9ybWF0SWRjOkUsY2hyb21hRm9ybWF0OkMscHRsSW5mbzp0fX19LHtrZXk6Il9wYXJzZVByb2ZpbGVUaWVyTGV2ZWwiLHZhbHVlOmZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxFPWcucmVhZEJpdHMoNyksQz1nLnJlYWRCaXRzKDEpLHQ9Zy5yZWFkQml0cyg4KSxpPWcucmVhZEJpdHMoMSksZT1nLnJlYWRCaXRzKDEpO0kmJihRPUEuX3BhcnNlR2VuZXJhbENvbnN0cmFpbnRzSW5mbyhnKSk7Zm9yKHZhciBvPUItMSxyPVtdLG49W10sYT1bXSxzPW87cz49MDstLXMpcltzXT1nLnJlYWRCaXRzKDEpO2Zvcig7IWcuYnl0ZUFsaWduZWQoKTspZy5yZWFkQml0cygxKTtmb3IodmFyIGM9bztjPj0wOy0tYylyW2NdJiYobltjXT1nLnJlYWRVQnl0ZSgpKTtpZihJKWZvcih2YXIgaD1nLnJlYWRVQnl0ZSgpLGY9MDtmPGg7ZisrKWFbZl09Zy5yZWFkQml0cygzMik7cmV0dXJue2dlbmVyYWxQcm9maWxlSWRjOkUsZ2VuZXJhbFRpZXJGbGFnOkMsZ2VuZXJhbExldmVsSWRjOnQscHRsRnJhbWVPbmx5Q29uc3RyYWludEZsYWc6aSxwdGxNdWx0aWxheWVyRW5hYmxlZEZsYWc6ZSxwdGxTdWJsYXllckxldmVsUHJlc2VudEZsYWdzOnIscHRsU3VibGF5ZXJMZXZlbElkY3M6bixwdGxTdWJQcm9maWxlSWRjczphLGdjaUluZm86UX19fSx7a2V5OiJfcGFyc2VHZW5lcmFsQ29uc3RyYWludHNJbmZvIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1BLnJlYWRCaXRzKDEpO2lmKGcpe0Euc2tpcEJpdHMoNzEpO3ZhciBJPUEucmVhZEJpdHMoOCk7SSYmQS5za2lwQml0cyhJKX12YXIgQj04LUEuYml0c1BvcygpJTg7cmV0dXJuIEEuc2tpcEJpdHMoQikse2djaVByZXNlbnRGbGFnOmd9fX1dKSxBfSgpLHVEPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe2d5KHRoaXMsQSl9cmV0dXJuIEJ5KEEsbnVsbCxbe2tleToiZmluZEJveCIsdmFsdWU6ZnVuY3Rpb24oZyxJKXt2YXIgQj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MCxRPVtdO2lmKCFnKXJldHVybiBRO2Zvcih2YXIgRT0wLEM9IiIsdD0wO2cubGVuZ3RoPjc7KXtpZihFPWJ5KGcpLEM9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGcuc3ViYXJyYXkoNCw4KSksdD04LDE9PT1FPyhFPU95KGcsOCksdCs9OCk6RXx8KEU9Zy5sZW5ndGgpLCFJWzBdfHxDPT09SVswXSl7dmFyIGk9Zy5zdWJhcnJheSgwLEUpO2lmKCEoSS5sZW5ndGg8MikpcmV0dXJuIEEuZmluZEJveChpLnN1YmFycmF5KHQpLEkuc2xpY2UoMSksQit0KTtRLnB1c2goe3N0YXJ0OkIsc2l6ZTpFLGhlYWRlclNpemU6dCx0eXBlOkMsZGF0YTppfSl9Qis9RSxnPWcuc3ViYXJyYXkoRSl9cmV0dXJuIFF9fSx7a2V5OiJ0ZmhkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gd0QoQSwhMCwoZnVuY3Rpb24oQSxnKXtBLnRyYWNrSWQ9YnkoZyk7dmFyIEk9NCxCPTEmQS5mbGFncyxRPTImQS5mbGFncyxFPTgmQS5mbGFncyxDPTE2JkEuZmxhZ3MsdD0zMiZBLmZsYWdzO0ImJihJKz00LEEuYmFzZURhdGFPZmZzZXQ9YnkoZyxJKSxJKz00KSxRJiYoQS5zYW1wbGVEZXNjcmlwdGlvbkluZGV4PWJ5KGcsSSksSSs9NCksRSYmKEEuZGVmYXVsdFNhbXBsZUR1cmF0aW9uPWJ5KGcsSSksSSs9NCksQyYmKEEuZGVmYXVsdFNhbXBsZVNpemU9YnkoZyxJKSxJKz00KSx0JiYoQS5kZWZhdWx0U2FtcGxlRmxhZ3M9YnkoZyxJKSl9KSl9fSx7a2V5OiJzaWR4Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gd0QoQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wO0EucmVmZXJlbmNlX0lEPWJ5KGcsSSksSSs9NCxBLnRpbWVzY2FsZT1ieShnLEkpLEkrPTQsMD09PUEudmVyc2lvbj8oQS5lYXJsaWVzdF9wcmVzZW50YXRpb25fdGltZT1ieShnLEkpLEkrPTQsQS5maXJzdF9vZmZzZXQ9YnkoZyxJKSxJKz00KTooQS5lYXJsaWVzdF9wcmVzZW50YXRpb25fdGltZT1PeShnLEkpLEkrPTgsQS5maXJzdF9vZmZzZXQ9T3koZyxJKSxJKz04KSxJKz0yLEEucmVmZXJlbmNlcz1bXTt2YXIgQj1xeShnLEkpO0krPTI7Zm9yKHZhciBRPTA7UTxCO1ErKyl7dmFyIEU9e307QS5yZWZlcmVuY2VzLnB1c2goRSk7dmFyIEM9YnkoZyxJKTtJKz00LEUucmVmZXJlbmNlX3R5cGU9Qz4+MzEmMSxFLnJlZmVyZW5jZWRfc2l6ZT0yMTQ3NDgzNjQ3JkMsRS5zdWJzZWdtZW50X2R1cmF0aW9uPWJ5KGcsSSksQz1ieShnLEkrPTQpLEkrPTQsRS5zdGFydHNfd2l0aF9TQVA9Qz4+MzEmMSxFLlNBUF90eXBlPUM+PjI4JjcsRS5TQVBfZGVsdGFfdGltZT0yNjg0MzU0NTUmQ319KSl9fSx7a2V5OiJtb292Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gd0QoZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cubXZoZD1BLm12aGQoQS5maW5kQm94KEksWyJtdmhkIl0sQilbMF0pLGcudHJhaz1BLmZpbmRCb3goSSxbInRyYWsiXSxCKS5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWsoZyl9KSksZy5wc3NoPUEucHNzaChBLmZpbmRCb3goSSxbInBzc2giXSxCKVswXSl9KSl9fSx7a2V5OiJtdmhkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gd0QoQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wOzE9PT1BLnZlcnNpb24/KEEudGltZXNjYWxlPWJ5KGcsMTYpLEEuZHVyYXRpb249T3koZywyMCksSSs9MjgpOihBLnRpbWVzY2FsZT1ieShnLDgpLEEuZHVyYXRpb249YnkoZywxMiksSSs9MTYpLEEubmV4dFRyYWNrSWQ9YnkoZyxJKzc2KX0pKX19LHtrZXk6InRyYWsiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB3RChnLCExLChmdW5jdGlvbihnLEksQil7Zy50a2hkPUEudGtoZChBLmZpbmRCb3goSSxbInRraGQiXSxCKVswXSksZy5tZGlhPUEubWRpYShBLmZpbmRCb3goSSxbIm1kaWEiXSxCKVswXSksZy5lZHRzPUEuZWR0cyhBLmZpbmRCb3goSSxbImVkdHMiXSxCKVswXSl9KSl9fSx7a2V5OiJ0a2hkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gd0QoQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wOzE9PT1BLnZlcnNpb24/KEEudHJhY2tJZD1ieShnLDE2KSxBLmR1cmF0aW9uPU95KGcsMjQpLEkrPTMyKTooQS50cmFja0lkPWJ5KGcsOCksQS5kdXJhdGlvbj1ieShnLDE2KSxJKz0yMCksQS53aWR0aD1ieShnLEkrNTIpLEEuaGVpZ2h0PWJ5KGcsSSs1Nil9KSl9fSx7a2V5OiJtZGlhIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gd0QoZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cubWRoZD1BLm1kaGQoQS5maW5kQm94KEksWyJtZGhkIl0sQilbMF0pLGcuaGRscj1BLmhkbHIoQS5maW5kQm94KEksWyJoZGxyIl0sQilbMF0pLGcubWluZj1BLm1pbmYoQS5maW5kQm94KEksWyJtaW5mIl0sQilbMF0pfSkpfX0se2tleToiZWR0cyIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHdEKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLmVsc3Q9QS5lbHN0KEEuZmluZEJveChJLFsiZWxzdCJdLEIpWzBdKX0pKX19LHtrZXk6ImVsc3QiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB3RChBLCEwLChmdW5jdGlvbihBLGcsSSl7QS5lbnRyaWVzPVtdLEEuZW50cmllc0RhdGE9Zzt2YXIgQj0wLFE9YnkoZyxCKTtCKz00O2Zvcih2YXIgRT0wO0U8UTtFKyspe3ZhciBDPXt9O0EuZW50cmllcy5wdXNoKEMpLDE9PT1BLnZlcnNpb24/KEMuc2VnbWVudF9kdXJhdGlvbj1PeShnLEIpLEIrPTgsQy5tZWRpYV90aW1lPVB5KGcsQiksQis9OCk6KEMuc2VnbWVudF9kdXJhdGlvbj1ieShnLEIpLEIrPTQsQy5tZWRpYV90aW1lPVR5KGcsQiksQis9NCksQy5tZWRpYV9yYXRlX2ludGVnZXI9cXkoZyxCKSxCKz0yLEMubWVkaWFfcmF0ZV9mcmFjdGlvbj1xeShnLEkpLEIrPTJ9fSkpfX0se2tleToibWRoZCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHdEKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9MDsxPT09QS52ZXJzaW9uPyhBLnRpbWVzY2FsZT1ieShnLDE2KSxBLmR1cmF0aW9uPU95KGcsMjApLEkrPTI4KTooQS50aW1lc2NhbGU9YnkoZyw4KSxBLmR1cmF0aW9uPWJ5KGcsMTIpLEkrPTE2KTt2YXIgQj1xeShnLEkpO0EubGFuZ3VhZ2U9U3RyaW5nLmZyb21DaGFyQ29kZSg5NisoQj4+MTAmMzEpLDk2KyhCPj41JjMxKSw5NisoMzEmQikpfSkpfX0se2tleToiaGRsciIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHdEKEEsITAsKGZ1bmN0aW9uKEEsZyl7MD09PUEudmVyc2lvbiYmKEEuaGFuZGxlclR5cGU9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGcuc3ViYXJyYXkoNCw4KSkpfSkpfX0se2tleToibWluZiIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHdEKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLnZtaGQ9QS52bWhkKEEuZmluZEJveChJLFsidm1oZCJdLEIpWzBdKSxnLnNtaGQ9QS5zbWhkKEEuZmluZEJveChJLFsic21oZCJdLEIpWzBdKSxnLnN0Ymw9QS5zdGJsKEEuZmluZEJveChJLFsic3RibCJdLEIpWzBdKX0pKX19LHtrZXk6InZtaGQiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB3RChBLCEwLChmdW5jdGlvbihBLGcpe0EuZ3JhcGhpY3Ntb2RlPXF5KGcpLEEub3Bjb2xvcj1bcXkoZywyKSxxeShnLDQpLHF5KGcsNildfSkpfX0se2tleToic21oZCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHdEKEEsITAsKGZ1bmN0aW9uKEEsZyl7QS5iYWxhbmNlPXF5KGcpfSkpfX0se2tleToic3RibCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHdEKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxFLEM7Zy5zdHNkPUEuc3RzZChBLmZpbmRCb3goSSxbInN0c2QiXSxCKVswXSksZy5zdHRzPUEuc3R0cyhBLmZpbmRCb3goSSxbInN0dHMiXSxCKVswXSksZy5jdHRzPUEuY3R0cyhBLmZpbmRCb3goSSxbImN0dHMiXSxCKVswXSksZy5zdHNjPUEuc3RzYyhBLmZpbmRCb3goSSxbInN0c2MiXSxCKVswXSksZy5zdHN6PUEuc3RzeihBLmZpbmRCb3goSSxbInN0c3oiXSxCKVswXSksZy5zdGNvPUEuc3RjbyhBLmZpbmRCb3goSSxbInN0Y28iXSxCKVswXSksZy5zdGNvfHwoZy5jbzY0PUEuY282NChBLmZpbmRCb3goSSxbImNvNjQiXSxCKVswXSksZy5zdGNvPWcuY282NCk7dmFyIHQ9bnVsbD09PShRPWcuc3RzZC5lbnRyaWVzWzBdKXx8dm9pZCAwPT09UXx8bnVsbD09PShFPVEuc2luZil8fHZvaWQgMD09PUV8fG51bGw9PT0oQz1FLnNjaGkpfHx2b2lkIDA9PT1DP3ZvaWQgMDpDLnRlbmMuZGVmYXVsdF9JVl9zaXplO2cuc3Rzcz1BLnN0c3MoQS5maW5kQm94KEksWyJzdHNzIl0sQilbMF0pLGcuc2VuYz1BLnNlbmMoQS5maW5kQm94KEksWyJzZW5jIl0sQilbMF0sdCl9KSl9fSx7a2V5OiJzZW5jIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06ODtyZXR1cm4gd0QoQSwhMCwoZnVuY3Rpb24oQSxJKXt2YXIgQj0wLFE9YnkoSSxCKTtCKz00LEEuc2FtcGxlcz1bXTtmb3IodmFyIEU9MDtFPFE7RSsrKXtmb3IodmFyIEM9e0luaXRpYWxpemF0aW9uVmVjdG9yOltdfSx0PTA7dDxnO3QrKylDLkluaXRpYWxpemF0aW9uVmVjdG9yW3RdPUlbQit0XTtpZihCKz1nLDImQS5mbGFncyl7Qy5zdWJzYW1wbGVzPVtdO3ZhciBpPXF5KEksQik7Qis9Mjtmb3IodmFyIGU9MDtlPGk7ZSsrKXt2YXIgbz17fTtvLkJ5dGVzT2ZDbGVhckRhdGE9cXkoSSxCKSxCKz0yLG8uQnl0ZXNPZlByb3RlY3RlZERhdGE9YnkoSSxCKSxCKz00LEMuc3Vic2FtcGxlcy5wdXNoKG8pfX1BLnNhbXBsZXMucHVzaChDKX19KSl9fSx7a2V5OiJwc3NoIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gd0QoQSwhMCwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9W10sQj1bXSxRPTAsRT0wO0U8MTY7RSsrKUIucHVzaChkRChnW1ErRV0pKTtpZihRKz0xNixBLnZlcnNpb24+MCl7dmFyIEM9YnkoZyxRKTtRKz00O2Zvcih2YXIgdD0wO3Q8KCIiK0MpLmxlbmd0aDt0KyspZm9yKHZhciBpPTA7aTwxNjtpKyspe3ZhciBlPWdbUV07USs9MSxJLnB1c2goZEQoZSkpfX12YXIgbz1ieShnLFEpO0EuZGF0YV9zaXplPW8sUSs9NCxBLmtpZD1JLEEuc3lzdGVtX2lkPUIsQS5idWZmZXI9Z30pKX19LHtrZXk6ImJ2YzIiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB3RChnLCExLChmdW5jdGlvbihnLEksQil7dmFyIFE9REQoZyxJKSxFPUkuc3ViYXJyYXkoUSk7Qis9USxnLnZ2Y0M9QS5idjJDKEEuZmluZEJveChFLFsiYnYyQyJdLEIpWzBdKSxnLnBhc3A9QS5wYXNwKEEuZmluZEJveChFLFsicGFzcCJdLEIpWzBdKX0pKX19LHtrZXk6ImJ2MkMiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB3RChBLCExLChmdW5jdGlvbihBLGcsSSl7dmFyIEI9ZkQucGFyc2VWVkNEZWNvZGVyQ29uZmlndXJhdGlvblJlY29yZChnKTtmb3IodmFyIFEgaW4gQilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoQixRKSYmKEFbUV09QltRXSl9KSl9fSx7a2V5OiJzdHNkIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gd0QoZywhMCwoZnVuY3Rpb24oZyxJLEIpe2cuZW50cnlDb3VudD1ieShJKSxnLmVudHJpZXM9QS5maW5kQm94KEkuc3ViYXJyYXkoNCksW10sQis0KS5tYXAoKGZ1bmN0aW9uKGcpe3N3aXRjaChnLnR5cGUpe2Nhc2UiYXZjMSI6Y2FzZSJhdmMyIjpjYXNlImF2YzMiOmNhc2UiYXZjNCI6cmV0dXJuIEEuYXZjMShnKTtjYXNlImh2YzEiOmNhc2UiaGV2MSI6cmV0dXJuIEEuaHZjMShnKTtjYXNlImJ2YzIiOnJldHVybiBBLmJ2YzIoZyk7Y2FzZSJtcDRhIjpyZXR1cm4gQS5tcDRhKGcpO2Nhc2UiYWxhdyI6Y2FzZSJ1bGF3IjpyZXR1cm4gQS5hbGF3KGcpO2Nhc2UiZW5jYSI6cmV0dXJuIHdEKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLmNoYW5uZWxDb3VudD1xeShJLDE2KSxnLnNhbXBsZXNpemU9cXkoSSwxOCksZy5zYW1wbGVSYXRlPWJ5KEksMjQpLzY1NTM2LEk9SS5zdWJhcnJheSgyOCksZy5zaW5mPUEuc2luZihBLmZpbmRCb3goSSxbInNpbmYiXSxCKVswXSksZy5lc2RzPUEuZXNkcyhBLmZpbmRCb3goSSxbImVzZHMiXSxCKVswXSl9KSk7Y2FzZSJlbmN2IjpyZXR1cm4gd0QoZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cud2lkdGg9cXkoSSwyNCksZy5oZWlnaHQ9cXkoSSwyNiksZy5ob3JpenJlc29sdXRpb249YnkoSSwyOCksZy52ZXJ0cmVzb2x1dGlvbj1ieShJLDMyKSxJPUkuc3ViYXJyYXkoNzgpLGcuc2luZj1BLnNpbmYoQS5maW5kQm94KEksWyJzaW5mIl0sQilbMF0pLGcuYXZjQz1BLmF2Y0MoQS5maW5kQm94KEksWyJhdmNDIl0sQilbMF0pLGcuaHZjQz1BLmh2Y0MoQS5maW5kQm94KEksWyJodmNDIl0sQilbMF0pLGcucGFzcD1BLnBhc3AoQS5maW5kQm94KEksWyJwYXNwIl0sQilbMF0pfSkpfX0pKS5maWx0ZXIoQm9vbGVhbil9KSl9fSx7a2V5OiJ0ZW5jIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gd0QoQSwhMSwoZnVuY3Rpb24oQSxnKXt2YXIgST02O0EuZGVmYXVsdF9Jc0VuY3J5cHRlZD1nW0ldLEkrPTEsQS5kZWZhdWx0X0lWX3NpemU9Z1tJXSxJKz0xLEEuZGVmYXVsdF9LSUQ9W107Zm9yKHZhciBCPTA7QjwxNjtCKyspQS5kZWZhdWx0X0tJRC5wdXNoKGREKGdbSV0pKSxJKz0xfSkpfX0se2tleToic2NoaSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHdEKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLnRlbmM9QS50ZW5jKEEuZmluZEJveChJLFsidGVuYyJdLEIpWzBdKX0pKX19LHtrZXk6InNpbmYiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB3RChnLCExLChmdW5jdGlvbihnLEksQil7Zy5zY2hpPUEuc2NoaShBLmZpbmRCb3goSSxbInNjaGkiXSxCKVswXSksZy5mcm1hPUEuZnJtYShBLmZpbmRCb3goSSxbImZybWEiXSxCKVswXSl9KSl9fSx7a2V5OiJmcm1hIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gd0QoQSwhMSwoZnVuY3Rpb24oQSxnKXtBLmRhdGFfZm9ybWF0PSIiO2Zvcih2YXIgST0wO0k8NDtJKyspQS5kYXRhX2Zvcm1hdCs9U3RyaW5nLmZyb21DaGFyQ29kZShnW0ldKX0pKX19LHtrZXk6ImF2YzEiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB3RChnLCExLChmdW5jdGlvbihnLEksQil7dmFyIFE9REQoZyxJKSxFPUkuc3ViYXJyYXkoUSk7Qis9USxnLmF2Y0M9QS5hdmNDKEEuZmluZEJveChFLFsiYXZjQyJdLEIpWzBdKSxnLnBhc3A9QS5wYXNwKEEuZmluZEJveChFLFsicGFzcCJdLEIpWzBdKX0pKX19LHtrZXk6ImF2Y0MiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB3RChBLCExLChmdW5jdGlvbihBLGcpe0EuY29uZmlndXJhdGlvblZlcnNpb249Z1swXSxBLkFWQ1Byb2ZpbGVJbmRpY2F0aW9uPWdbMV0sQS5wcm9maWxlQ29tcGF0aWJpbGl0eT1nWzJdLEEuQVZDTGV2ZWxJbmRpY2F0aW9uPWdbM10sQS5jb2RlYz1mdW5jdGlvbihBKXtmb3IodmFyIGcsST0iYXZjMS4iLEI9MDtCPDM7QisrKShnPUFbQl0udG9TdHJpbmcoMTYpKS5sZW5ndGg8MiYmKGc9IjAiLmNvbmNhdChnKSksSSs9ZztyZXR1cm4gSX0oW2dbMV0sZ1syXSxnWzNdXSksQS5sZW5ndGhTaXplTWludXNPbmU9MyZnWzRdLEEuc3BzTGVuZ3RoPTMxJmdbNV0sQS5zcHM9W107Zm9yKHZhciBJPTYsQj0wO0I8QS5zcHNMZW5ndGg7QisrKXt2YXIgUT1xeShnLEkpO0krPTIsQS5zcHMucHVzaChnLnN1YmFycmF5KEksSStRKSksSSs9UX1BLnBwc0xlbmd0aD1nW0ldLEkrPTEsQS5wcHM9W107Zm9yKHZhciBFPTA7RTxBLnBwc0xlbmd0aDtFKyspe3ZhciBDPXF5KGcsSSk7SSs9MixBLnBwcy5wdXNoKGcuc3ViYXJyYXkoSSxJKz1DKSksSSs9Q319KSl9fSx7a2V5OiJodmMxIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gd0QoZywhMSwoZnVuY3Rpb24oZyxJLEIpe3ZhciBRPUREKGcsSSksRT1JLnN1YmFycmF5KFEpO0IrPVEsZy5odmNDPUEuaHZjQyhBLmZpbmRCb3goRSxbImh2Y0MiXSxCKVswXSksZy5wYXNwPUEucGFzcChBLmZpbmRCb3goRSxbInBhc3AiXSxCKVswXSl9KSl9fSx7a2V5OiJodmNDIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gd0QoQSwhMSwoZnVuY3Rpb24oZyxJKXtnLmRhdGE9QS5kYXRhLGcuY29kZWM9ImhldjEuMS42Lkw5My5CMCIsZy5jb25maWd1cmF0aW9uVmVyc2lvbj1JWzBdO3ZhciBCPUlbMV07Zy5nZW5lcmFsUHJvZmlsZVNwYWNlPUI+PjYsZy5nZW5lcmFsVGllckZsYWc9KDMyJkIpPj41LGcuZ2VuZXJhbFByb2ZpbGVJZGM9MzEmQixnLmdlbmVyYWxQcm9maWxlQ29tcGF0aWJpbGl0eT1ieShJLDIpLGcuZ2VuZXJhbENvbnN0cmFpbnRJbmRpY2F0b3JGbGFncz1JLnN1YmFycmF5KDYsMTIpLGcuZ2VuZXJhbExldmVsSWRjPUlbMTJdLGcuYXZnRnJhbWVSYXRlPXF5KEksMTkpLGcubnVtT2ZBcnJheXM9SVsyMl0sZy52cHM9W10sZy5zcHM9W10sZy5wcHM9W107Zm9yKHZhciBRPTIzLEU9MCxDPTAsdD0wLGk9MDtpPGcubnVtT2ZBcnJheXM7aSsrKXtFPTYzJklbUV0sQz1xeShJLFErMSksUSs9Mztmb3IodmFyIGUsbz1bXSxyPTA7cjxDO3IrKyl0PXF5KEksUSksUSs9MixvLnB1c2goSS5zdWJhcnJheShRLFErdCkpLFErPXQ7aWYoMzI9PT1FKShlPWcudnBzKS5wdXNoLmFwcGx5KGUsbyk7ZWxzZSBpZigzMz09PUUpe3ZhciBuOyhuPWcuc3BzKS5wdXNoLmFwcGx5KG4sbyl9ZWxzZSBpZigzND09PUUpe3ZhciBhOyhhPWcucHBzKS5wdXNoLmFwcGx5KGEsbyl9fX0pKX19LHtrZXk6InBhc3AiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB3RChBLCExLChmdW5jdGlvbihBLGcpe0EuaFNwYWNpbmc9YnkoZyksQS52U3BhY2luZz1ieShnLDQpfSkpfX0se2tleToibXA0YSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHdEKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXt2YXIgUT1sRChnLEkpO2cuZXNkcz1BLmVzZHMoQS5maW5kQm94KEkuc3ViYXJyYXkoUSksWyJlc2RzIl0sQitRKVswXSl9KSl9fSx7a2V5OiJlc2RzIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gd0QoQSwhMCwoZnVuY3Rpb24oQSxnKXtBLmNvZGVjPSJtcDRhLiI7Zm9yKHZhciBJPTAsQj0wLFE9MCxFPTA7Zy5sZW5ndGg7KXtmb3IoRT1nW0k9MF0sQj1nW0krMV0sSSs9MjsxMjgmQjspUT0oMTI3JkIpPDw3LEI9Z1tJXSxJKz0xO2lmKFErPTEyNyZCLDM9PT1FKWc9Zy5zdWJhcnJheShJKzMpO2Vsc2V7aWYoNCE9PUUpe2lmKDU9PT1FKXt2YXIgQz1BLmNvbmZpZz1nLnN1YmFycmF5KEksSStRKSx0PSgyNDgmQ1swXSk+PjM7cmV0dXJuIDMxPT09dCYmQy5sZW5ndGg+PTImJih0PTMyKygoNyZDWzBdKTw8MykrKCgyMjQmQ1sxXSk+PjUpKSxBLm9iamVjdFR5cGU9dCxBLmNvZGVjKz10LnRvU3RyaW5nKDE2KSx2b2lkKCIuIj09PUEuY29kZWNbQS5jb2RlYy5sZW5ndGgtMV0mJihBLmNvZGVjPUEuY29kZWMuc3Vic3RyaW5nKDAsQS5jb2RlYy5sZW5ndGgtMSkpKX1yZXR1cm4gdm9pZCgiLiI9PT1BLmNvZGVjW0EuY29kZWMubGVuZ3RoLTFdJiYoQS5jb2RlYz1BLmNvZGVjLnN1YnN0cmluZygwLEEuY29kZWMubGVuZ3RoLTEpKSl9QS5jb2RlYys9KGdbSV0udG9TdHJpbmcoMTYpKyIuIikucGFkU3RhcnQoMywiMCIpLGc9Zy5zdWJhcnJheShJKzEzKX19fSkpfX0se2tleToiYWxhdyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHdEKEEsITEsKGZ1bmN0aW9uKEEsZyl7bEQoQSxnKX0pKX19LHtrZXk6InN0dHMiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB3RChBLCEwLChmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1ieShnKSxCPVtdLFE9NCxFPTA7RTxJO0UrKylCLnB1c2goe2NvdW50OmJ5KGcsUSksZGVsdGE6YnkoZyxRKzQpfSksUSs9ODtBLmVudHJ5Q291bnQ9SSxBLmVudHJpZXM9Qn0pKX19LHtrZXk6ImN0dHMiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB3RChBLCEwLChmdW5jdGlvbihBLGcpe3ZhciBJPWJ5KGcpLEI9W10sUT00O2lmKDE9PT1BLnZlcnNpb24pZm9yKHZhciBFPTA7RTxJO0UrKylCLnB1c2goe2NvdW50OmJ5KGcsUSksb2Zmc2V0OmJ5KGcsUSs0KX0pLFErPTg7ZWxzZSBmb3IodmFyIEM9MDtDPEk7QysrKUIucHVzaCh7Y291bnQ6YnkoZyxRKSxvZmZzZXQ6LSgxK35ieShnLFErNCkpfSksUSs9ODtBLmVudHJ5Q291bnQ9SSxBLmVudHJpZXM9Qn0pKX19LHtrZXk6InN0c2MiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB3RChBLCEwLChmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1ieShnKSxCPW5ldyBBcnJheShJKSxRPTQsRT0wO0U8STtFKyspQltFXT17Zmlyc3RDaHVuazpieShnLFEpLHNhbXBsZXNQZXJDaHVuazpieShnLFErNCksc2FtcGxlRGVzY3JpcHRpb25JbmRleDpieShnLFErOCl9LFErPTEyO0EuZW50cnlDb3VudD1JLEEuZW50cmllcz1CfSkpfX0se2tleToic3RzeiIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHdEKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9YnkoZyksQj1ieShnLDQpLFE9bmV3IEFycmF5KEIpO2lmKCFJKWZvcih2YXIgRT04LEM9MDtDPEI7QysrKVFbQ109YnkoZyxFKSxFKz00O0Euc2FtcGxlU2l6ZT1JLEEuc2FtcGxlQ291bnQ9QixBLmVudHJ5U2l6ZXM9UX0pKX19LHtrZXk6InN0Y28iLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB3RChBLCEwLChmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1ieShnKSxCPW5ldyBBcnJheShJKSxRPTQsRT0wO0U8STtFKyspQltFXT1ieShnLFEpLFErPTQ7QS5lbnRyeUNvdW50PUksQS5lbnRyaWVzPUJ9KSl9fSx7a2V5OiJjbzY0Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gd0QoQSwhMCwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9YnkoZyksQj1uZXcgQXJyYXkoSSksUT00LEU9MDtFPEk7RSsrKUJbRV09T3koZyxRKSxRKz04O0EuZW50cnlDb3VudD1JLEEuZW50cmllcz1CfSkpfX0se2tleToic3RzcyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHdEKEEsITAsKGZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPWJ5KGcpLEI9bmV3IEFycmF5KEkpLFE9NCxFPTA7RTxJO0UrKylCW0VdPWJ5KGcsUSksUSs9NDtBLmVudHJ5Q291bnQ9SSxBLmVudHJpZXM9Qn0pKX19LHtrZXk6Im1vb2YiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB3RChnLCExLChmdW5jdGlvbihnLEksQil7Zy5tZmhkPUEubWZoZChBLmZpbmRCb3goSSxbIm1maGQiXSxCKVswXSksZy50cmFmPUEuZmluZEJveChJLFsidHJhZiJdLEIpLm1hcCgoZnVuY3Rpb24oZyl7cmV0dXJuIEEudHJhZihnKX0pKX0pKX19LHtrZXk6Im1maGQiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB3RChBLCEwLChmdW5jdGlvbihBLGcpe0Euc2VxdWVuY2VOdW1iZXI9YnkoZyl9KSl9fSx7a2V5OiJ0cmFmIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gd0QoZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cudGZoZD1BLnRmaGQoQS5maW5kQm94KEksWyJ0ZmhkIl0sQilbMF0pLGcudGZkdD1BLnRmZHQoQS5maW5kQm94KEksWyJ0ZmR0Il0sQilbMF0pLGcudHJ1bj1BLnRydW4oQS5maW5kQm94KEksWyJ0cnVuIl0sQilbMF0pfSkpfX0se2tleToidHJ1biIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHdEKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9QS52ZXJzaW9uLEI9QS5mbGFncyxRPWcubGVuZ3RoLEU9QS5zYW1wbGVDb3VudD1ieShnKSxDPTQ7aWYoUT5DJiYxJkImJihBLmRhdGFPZmZzZXQ9LSgxK35ieShnLEMpKSxDKz00KSxRPkMmJjQmQiYmKEEuZmlyc3RTYW1wbGVGbGFncz1ieShnLEMpLEMrPTQpLFE+Qyl7dmFyIHQ7QS5zYW1wbGVzPW5ldyBBcnJheShFKTtmb3IodmFyIGk9MDtpPEU7aSsrKXQ9e30sMjU2JkImJih0LmR1cmF0aW9uPWJ5KGcsQyksQys9NCksNTEyJkImJih0LnNpemU9YnkoZyxDKSxDKz00KSwxMDI0JkImJih0LmZsYWdzPWJ5KGcsQyksQys9NCksMjA0OCZCJiYodC5jdHM9ST8tKDErfmJ5KGcsQys0KSk6YnkoZyxDKSxDKz00KSxBLnNhbXBsZXNbaV09dH19KSl9fSx7a2V5OiJ0ZmR0Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gd0QoQSwhMCwoZnVuY3Rpb24oQSxnKXsxPT09QS52ZXJzaW9uP0EuYmFzZU1lZGlhRGVjb2RlVGltZT1PeShnKTpBLmJhc2VNZWRpYURlY29kZVRpbWU9YnkoZyl9KSl9fSx7a2V5OiJwcm9iZSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuISFBLmZpbmRCb3goZyxbImZ0eXAiXSl9fSx7a2V5OiJwYXJzZVNhbXBsZUZsYWdzIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm57aXNMZWFkaW5nOigxMiZBWzBdKT4+PjIsZGVwZW5kc09uOjMmQVswXSxpc0RlcGVuZGVkT246KDE5MiZBWzFdKT4+PjYsaGFzUmVkdW5kYW5jeTooNDgmQVsxXSk+Pj40LHBhZGRpbmdWYWx1ZTooMTQmQVsxXSk+Pj4xLGlzTm9uU3luY1NhbXBsZToxJkFbMV0sZGVncmFkYXRpb25Qcmlvcml0eTpBWzJdPDw4fEFbM119fX0se2tleToibW9vdlRvVHJhY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEU9QS50cmFrO2lmKEUmJkUubGVuZ3RoKXt2YXIgQz1FLmZpbmQoKGZ1bmN0aW9uKEEpe3ZhciBnLEk7cmV0dXJuInZpZGUiPT09KG51bGw9PT0oZz1BLm1kaWEpfHx2b2lkIDA9PT1nfHxudWxsPT09KEk9Zy5oZGxyKXx8dm9pZCAwPT09ST92b2lkIDA6SS5oYW5kbGVyVHlwZSl9KSksdD1FLmZpbmQoKGZ1bmN0aW9uKEEpe3ZhciBnLEk7cmV0dXJuInNvdW4iPT09KG51bGw9PT0oZz1BLm1kaWEpfHx2b2lkIDA9PT1nfHxudWxsPT09KEk9Zy5oZGxyKXx8dm9pZCAwPT09ST92b2lkIDA6SS5oYW5kbGVyVHlwZSl9KSk7aWYoQyYmZyl7dmFyIGksZSxvLHIsbixhLHMsYyxoPWcsZj1udWxsPT09KGk9Qy50a2hkKXx8dm9pZCAwPT09aT92b2lkIDA6aS50cmFja0lkO251bGwhPWYmJihoLmlkPUMudGtoZC50cmFja0lkKSxoLnRraGREdXJhdGlvbj1DLnRraGQuZHVyYXRpb24saC5tdmhkRHVydGlvbj1BLm12aGQuZHVyYXRpb24saC5tdmhkVGltZWNhbGU9QS5tdmhkLnRpbWVzY2FsZSxoLnRpbWVzY2FsZT1oLmZvcm1hdFRpbWVzY2FsZT1DLm1kaWEubWRoZC50aW1lc2NhbGUsaC5kdXJhdGlvbj1DLm1kaWEubWRoZC5kdXJhdGlvbnx8aC5tdmhkRHVydGlvbi9oLm12aGRUaW1lY2FsZSpoLnRpbWVzY2FsZSxudWxsIT09KGU9Qy5lZHRzKSYmdm9pZCAwIT09ZSYmZS5lbHN0JiYoaC5lZGl0TGlzdD1DLmVkdHMuZWxzdCxoLmVkaXRMaXN0QXBwbGllZD1DLmVkaXRMaXN0QXBwbGllZCk7dmFyIHUseSxELGwsdyxkLEYsRyxSPUMubWRpYS5taW5mLnN0Ymwuc3RzZC5lbnRyaWVzWzBdO2lmKGgud2lkdGg9Ui53aWR0aCxoLmhlaWdodD1SLmhlaWdodCxSLnBhc3AmJihoLnNhclJhdGlvPVtSLnBhc3AuaFNwYWNpbmcsUi5wYXNwLnZTcGFjaW5nXSksUi5odmNDKWguY29kZWNUeXBlPXN5LGguY29kZWM9Ui5odmNDLmNvZGVjLGgudnBzPVIuaHZjQy52cHMsaC5zcHM9Ui5odmNDLnNwcyxoLnBwcz1SLmh2Y0MucHBzLGguaHZjQz1SLmh2Y0MuZGF0YTtlbHNlIGlmKFIuYXZjQyloLmNvZGVjPVIuYXZjQy5jb2RlYyxoLnNwcz1SLmF2Y0Muc3BzLGgucHBzPVIuYXZjQy5wcHM7ZWxzZXtpZighUi52dmNDKXRocm93IG5ldyBFcnJvcigidW5rbm93biB2aWRlbyBzdHNkIGVudHJ5Iik7aC5jb2RlY1R5cGU9Y3ksaC5jb2RlYz1SLnZ2Y0MuY29kZWMsaC5zcHM9Ui52dmNDLnNwcyxoLnBwcz1SLnZ2Y0MucHBzLGgudnBzPVIudnZjQy52cHMsaC52dmNDPVIudnZjQy5kYXRhfWlmKGgucHJlc2VudD0hMCxoLmV4dD17fSxoLmV4dC5zdHNzPW51bGw9PT0obz1DLm1kaWEpfHx2b2lkIDA9PT1vfHxudWxsPT09KHI9by5taW5mKXx8dm9pZCAwPT09cnx8bnVsbD09PShuPXIuc3RibCl8fHZvaWQgMD09PW4/dm9pZCAwOm4uc3RzcyxoLmV4dC5jdHRzPW51bGw9PT0oYT1DLm1kaWEpfHx2b2lkIDA9PT1hfHxudWxsPT09KHM9YS5taW5mKXx8dm9pZCAwPT09c3x8bnVsbD09PShjPXMuc3RibCl8fHZvaWQgMD09PWM/dm9pZCAwOmMuY3R0cyxSJiYiZW5jdiI9PT1SLnR5cGUpaC5pc1ZpZGVvRW5jcnlwdGlvbj0hMCxSLmRlZmF1bHRfS0lEPW51bGw9PT0odT1SLnNpbmYpfHx2b2lkIDA9PT11fHxudWxsPT09KHk9dS5zY2hpKXx8dm9pZCAwPT09eT92b2lkIDA6eS50ZW5jLmRlZmF1bHRfS0lELFIuZGVmYXVsdF9Jc0VuY3J5cHRlZD1udWxsPT09KEQ9Ui5zaW5mKXx8dm9pZCAwPT09RHx8bnVsbD09PShsPUQuc2NoaSl8fHZvaWQgMD09PWw/dm9pZCAwOmwudGVuYy5kZWZhdWx0X0lzRW5jcnlwdGVkLFIuZGVmYXVsdF9JVl9zaXplPW51bGw9PT0odz1SLnNpbmYpfHx2b2lkIDA9PT13fHxudWxsPT09KGQ9dy5zY2hpKXx8dm9pZCAwPT09ZD92b2lkIDA6ZC50ZW5jLmRlZmF1bHRfSVZfc2l6ZSxoLnZpZGVvU2VuYz1DLm1kaWEubWluZi5zdGJsLnNlbmMmJkMubWRpYS5taW5mLnN0Ymwuc2VuYy5zYW1wbGVzLFIuZGF0YV9mb3JtYXQ9bnVsbD09PShGPVIuc2luZil8fHZvaWQgMD09PUZ8fG51bGw9PT0oRz1GLmZybWEpfHx2b2lkIDA9PT1HP3ZvaWQgMDpHLmRhdGFfZm9ybWF0LGgudXNlRU1FPUEudXNlRU1FLGgua2lkVmFsdWU9QS5raWRWYWx1ZSxoLnBzc2g9QS5wc3NoLGguZW5jdj1SfWlmKHQmJkkpe3ZhciBVLGssUyxwLE4sTSx2LFksSCxMLEo9SSxtPW51bGw9PT0oVT10LnRraGQpfHx2b2lkIDA9PT1VP3ZvaWQgMDpVLnRyYWNrSWQ7bnVsbCE9bSYmKEouaWQ9dC50a2hkLnRyYWNrSWQpLEoudGtoZER1cmF0aW9uPXQudGtoZC5kdXJhdGlvbixKLm12aGREdXJ0aW9uPUEubXZoZC5kdXJhdGlvbixKLm12aGRUaW1lY2FsZT1BLm12aGQudGltZXNjYWxlLEoudGltZXNjYWxlPUouZm9ybWF0VGltZXNjYWxlPXQubWRpYS5tZGhkLnRpbWVzY2FsZSxKLmR1cmF0aW9uPXQubWRpYS5tZGhkLmR1cmF0aW9ufHxKLm12aGREdXJ0aW9uL0oubXZoZFRpbWVjYWxlKkoudGltZXNjYWxlLG51bGwhPT0oaz10LmVkdHMpJiZ2b2lkIDAhPT1rJiZrLmVsc3QmJihKLmVkaXRMaXN0PXQuZWR0cy5lbHN0LEouZWRpdExpc3RBcHBsaWVkPXQuZWRpdExpc3RBcHBsaWVkKTt2YXIgSyx4LHEsYixULE8sUCxqLFc9dC5tZGlhLm1pbmYuc3RibC5zdHNkLmVudHJpZXNbMF07c3dpdGNoKEouc2FtcGxlU2l6ZT1XLnNhbXBsZVNpemUsSi5zYW1wbGVSYXRlPVcuc2FtcGxlUmF0ZSxKLmNoYW5uZWxDb3VudD1XLmNoYW5uZWxDb3VudCxKLnByZXNlbnQ9ITAsVy50eXBlKXtjYXNlImFsYXciOkouY29kZWNUeXBlPUouY29kZWM9ZnksSi5zYW1wbGVSYXRlPThlMzticmVhaztjYXNlInVsYXciOkouY29kZWNUeXBlPUouY29kZWM9dXksSi5zYW1wbGVSYXRlPThlMzticmVhaztkZWZhdWx0Okouc2FtcGxlRHVyYXRpb249bXkuZ2V0RnJhbWVEdXJhdGlvbihKLnNhbXBsZVJhdGUsSi50aW1lc2NhbGUpLEouc2FtcGxlUmF0ZUluZGV4PW15LmdldFJhdGVJbmRleEJ5UmF0ZShKLnNhbXBsZVJhdGUpLEoub2JqZWN0VHlwZT0obnVsbD09PShCPVcuZXNkcyl8fHZvaWQgMD09PUI/dm9pZCAwOkIub2JqZWN0VHlwZSl8fDIsVy5lc2RzJiYoSi5jb25maWc9QXJyYXkuZnJvbShXLmVzZHMuY29uZmlnKSksSi5jb2RlYz0obnVsbD09PShRPVcuZXNkcyl8fHZvaWQgMD09PVE/dm9pZCAwOlEuY29kZWMpfHwibXA0YS40MC4yIn1pZihKLnNhbXBsZUR1cmF0aW9uPW15LmdldEZyYW1lRHVyYXRpb24oSi5zYW1wbGVSYXRlLEoudGltZXNjYWxlKSxKLm9iamVjdFR5cGU9KG51bGw9PT0oUz1XLmVzZHMpfHx2b2lkIDA9PT1TP3ZvaWQgMDpTLm9iamVjdFR5cGUpfHwyLFcuZXNkcyYmKFcuZXNkcy5jb25maWc/Si5jb25maWc9QXJyYXkuZnJvbShXLmVzZHMuY29uZmlnKTpjb25zb2xlLndhcm4oImVzZHMgY29uZmlnIGlzIG51bGwiKSksSi5jb2RlYz0obnVsbD09PShwPVcuZXNkcyl8fHZvaWQgMD09PXA/dm9pZCAwOnAuY29kZWMpfHwibXA0YS40MC4yIixKLnNhbXBsZVJhdGVJbmRleD1teS5nZXRSYXRlSW5kZXhCeVJhdGUoSi5zYW1wbGVSYXRlKSxKLmV4dD17fSxKLmV4dC5zdHNzPW51bGw9PT0oTj10Lm1kaWEpfHx2b2lkIDA9PT1OfHxudWxsPT09KE09Ti5taW5mKXx8dm9pZCAwPT09TXx8bnVsbD09PSh2PU0uc3RibCl8fHZvaWQgMD09PXY/dm9pZCAwOnYuc3RzcyxKLmV4dC5jdHRzPW51bGw9PT0oWT10Lm1kaWEpfHx2b2lkIDA9PT1ZfHxudWxsPT09KEg9WS5taW5mKXx8dm9pZCAwPT09SHx8bnVsbD09PShMPUguc3RibCl8fHZvaWQgMD09PUw/dm9pZCAwOkwuY3R0cyxKLnByZXNlbnQ9ITAsVyYmImVuY2EiPT09Vy50eXBlKUouaXNBdWRpb0VuY3J5cHRpb249ITAsVy5kYXRhX2Zvcm1hdD1udWxsPT09KEs9Vy5zaW5mKXx8dm9pZCAwPT09S3x8bnVsbD09PSh4PUsuZnJtYSl8fHZvaWQgMD09PXg/dm9pZCAwOnguZGF0YV9mb3JtYXQsVy5kZWZhdWx0X0tJRD1udWxsPT09KHE9Vy5zaW5mKXx8dm9pZCAwPT09cXx8bnVsbD09PShiPXEuc2NoaSl8fHZvaWQgMD09PWI/dm9pZCAwOmIudGVuYy5kZWZhdWx0X0tJRCxXLmRlZmF1bHRfSXNFbmNyeXB0ZWQ9bnVsbD09PShUPVcuc2luZil8fHZvaWQgMD09PVR8fG51bGw9PT0oTz1ULnNjaGkpfHx2b2lkIDA9PT1PP3ZvaWQgMDpPLnRlbmMuZGVmYXVsdF9Jc0VuY3J5cHRlZCxXLmRlZmF1bHRfSVZfc2l6ZT1udWxsPT09KFA9Vy5zaW5mKXx8dm9pZCAwPT09UHx8bnVsbD09PShqPVAuc2NoaSl8fHZvaWQgMD09PWo/dm9pZCAwOmoudGVuYy5kZWZhdWx0X0lWX3NpemUsSi5hdWRpb1NlbmM9dC5tZGlhLm1pbmYuc3RibC5zZW5jJiZ0Lm1kaWEubWluZi5zdGJsLnNlbmMuc2FtcGxlcyxKLnVzZUVNRT1BLnVzZUVNRSxKLmtpZFZhbHVlPUEua2lkVmFsdWUsSi5lbmNhPVd9aWYoSSYmKEkuaXNWaWRlb0VuY3J5cHRpb249ISFnJiZnLmlzVmlkZW9FbmNyeXB0aW9uKSxnJiYoZy5pc0F1ZGlvRW5jcnlwdGlvbj0hIUkmJkkuaXNBdWRpb0VuY3J5cHRpb24pLG51bGwhPWcmJmcuZW5jdnx8bnVsbCE9SSYmSS5lbmNhKXt2YXIgWixYLFY9bnVsbD09Z3x8bnVsbD09PShaPWcuZW5jdil8fHZvaWQgMD09PVo/dm9pZCAwOlouZGVmYXVsdF9LSUQsej1udWxsPT1JfHxudWxsPT09KFg9SS5lbmNhKXx8dm9pZCAwPT09WD92b2lkIDA6WC5kZWZhdWx0X0tJRCxfPVZ8fHo/KFZ8fHopLmpvaW4oIiIpOm51bGw7ZyYmKGcua2lkPV8pLEkmJihJLmtpZD1fKX1yZXR1cm4gZyYmKGcuZmxhZ3M9Mzg0MSksSSYmKEkuZmxhZ3M9MTc5Mykse3ZpZGVvVHJhY2s6ZyxhdWRpb1RyYWNrOkl9fX19LHtrZXk6ImV2YWx1YXRlRGVmYXVsdER1cmF0aW9uIix2YWx1ZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUT1udWxsPT1nfHxudWxsPT09KEI9Zy5zYW1wbGVzKXx8dm9pZCAwPT09Qj92b2lkIDA6Qi5sZW5ndGg7cmV0dXJuIFE/MTAyNCpRL2cudGltZXNjYWxlKkEudGltZXNjYWxlL0k6MTAyNH19LHtrZXk6Im1vb2ZUb1NhbXBsZXMiLHZhbHVlOmZ1bmN0aW9uKGcsSSxCKXt2YXIgUT17fTtyZXR1cm4gZy5tZmhkJiYoSSYmKEkuc2VxdWVuY2VOdW1iZXI9Zy5tZmhkLnNlcXVlbmNlTnVtYmVyKSxCJiYoQi5zZXF1ZW5jZU51bWJlcj1nLm1maGQuc2VxdWVuY2VOdW1iZXIpKSxnLnRyYWYuZm9yRWFjaCgoZnVuY3Rpb24oZyl7dmFyIEU9Zy50ZmhkLEM9Zy50ZmR0LHQ9Zy50cnVuO2lmKEUmJnQpe0MmJihJJiZJLmlkPT09RS50cmFja0lkJiYoSS5iYXNlTWVkaWFEZWNvZGVUaW1lPUMuYmFzZU1lZGlhRGVjb2RlVGltZSksQiYmQi5pZD09PUUudHJhY2tJZCYmKEIuYmFzZU1lZGlhRGVjb2RlVGltZT1DLmJhc2VNZWRpYURlY29kZVRpbWUpKTt2YXIgaT1FLmRlZmF1bHRTYW1wbGVTaXplfHwwLGU9RS5kZWZhdWx0U2FtcGxlRHVyYXRpb258fEEuZXZhbHVhdGVEZWZhdWx0RHVyYXRpb24oSSxCLHQuc2FtcGxlcy5sZW5ndGh8fHQuc2FtcGxlQ291bnQpLG89dC5kYXRhT2Zmc2V0fHwwLHI9MCxuPS0xO2lmKCF0LnNhbXBsZXMubGVuZ3RoJiZ0LnNhbXBsZUNvdW50KXtRW0UudHJhY2tJZF09bmV3IEFycmF5KHQuc2FtcGxlQ291bnQpO2Zvcih2YXIgYT0wO2E8dC5zYW1wbGVDb3VudDthKyspUVtFLnRyYWNrSWRdW2FdPXtvZmZzZXQ6byxkdHM6cixkdXJhdGlvbjplLHNpemU6aX0scis9ZSxvKz1pfWVsc2UgUVtFLnRyYWNrSWRdPXQuc2FtcGxlcy5tYXAoKGZ1bmN0aW9uKEEsZyl7cmV0dXJuKEE9e29mZnNldDpvLGR0czpyLHB0czpyKyhBLmN0c3x8MCksZHVyYXRpb246QS5kdXJhdGlvbnx8ZSxzaXplOkEuc2l6ZXx8aSxnb3BJZDpuLGtleWZyYW1lOjA9PT1nfHxudWxsIT09QS5mbGFncyYmdm9pZCAwIT09QS5mbGFncyYmKDY1NTM2JkEuZmxhZ3MpPj4+MCE9NjU1MzZ9KS5rZXlmcmFtZSYmKG4rKyxBLmdvcElkPW4pLHIrPUEuZHVyYXRpb24sbys9QS5zaXplLEF9KSl9fSkpLFF9fSx7a2V5OiJtb292VG9TYW1wbGVzIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1BLnRyYWs7aWYoZyYmZy5sZW5ndGgpe3ZhciBJPWcuZmluZCgoZnVuY3Rpb24oQSl7dmFyIGcsSTtyZXR1cm4idmlkZSI9PT0obnVsbD09PShnPUEubWRpYSl8fHZvaWQgMD09PWd8fG51bGw9PT0oST1nLmhkbHIpfHx2b2lkIDA9PT1JP3ZvaWQgMDpJLmhhbmRsZXJUeXBlKX0pKSxCPWcuZmluZCgoZnVuY3Rpb24oQSl7dmFyIGcsSTtyZXR1cm4ic291biI9PT0obnVsbD09PShnPUEubWRpYSl8fHZvaWQgMD09PWd8fG51bGw9PT0oST1nLmhkbHIpfHx2b2lkIDA9PT1JP3ZvaWQgMDpJLmhhbmRsZXJUeXBlKX0pKTtpZihJfHxCKXt2YXIgUSxFO2lmKEkpe3ZhciBDLHQsaT1udWxsPT09KEM9SS5tZGlhKXx8dm9pZCAwPT09Q3x8bnVsbD09PSh0PUMubWluZil8fHZvaWQgMD09PXQ/dm9pZCAwOnQuc3RibDtpZighaSlyZXR1cm47dmFyIGU9aS5zdHRzLG89aS5zdHNjLHI9aS5zdHN6LG49aS5zdGNvLGE9aS5zdHNzLHM9aS5jdHRzO2lmKCEoZSYmbyYmciYmbiYmYSkpcmV0dXJuO1E9eUQoZSxvLHIsbixzLGEpfWlmKEIpe3ZhciBjLGgsZix1PW51bGw9PT0oYz1CLm1kaWEpfHx2b2lkIDA9PT1jfHxudWxsPT09KGg9Yy5taW5mKXx8dm9pZCAwPT09aD92b2lkIDA6aC5zdGJsO2lmKCF1KXJldHVybjt2YXIgeT1udWxsPT09KGY9Qi5tZGlhLm1kaGQpfHx2b2lkIDA9PT1mP3ZvaWQgMDpmLnRpbWVzY2FsZSxEPXUuc3R0cyxsPXUuc3RzYyx3PXUuc3RzeixkPXUuc3RjbztpZighKHkmJkQmJmwmJncmJmQpKXJldHVybjtFPXlEKEQsbCx3LGQpfXJldHVybnt2aWRlb1NhbXBsZXM6USxhdWRpb1NhbXBsZXM6RX19fX19XSksQX0oKTtmdW5jdGlvbiB5RChBLGcsSSxCLFEsRSl7dmFyIEMsdCxpLGU9W10sbz1udWxsPT1RP3ZvaWQgMDpRLmVudHJpZXMscj1nLmVudHJpZXMsbj1CLmVudHJpZXMsYT1JLmVudHJ5U2l6ZXMscz1udWxsPT1FP3ZvaWQgMDpFLmVudHJpZXM7cyYmKEM9e30scy5mb3JFYWNoKChmdW5jdGlvbihBKXtDW0EtMV09ITB9KSkpLG8mJih0PVtdLG8uZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEuY291bnQsST1BLm9mZnNldCxCPTA7QjxnO0IrKyl0LnB1c2goSSl9KSkpO3ZhciBjPS0xLGg9MCxmPTAsdT0wLHk9MCxEPTAsbD1yWzBdLnNhbXBsZXNQZXJDaHVuayx3PXJbMV0/clsxXS5maXJzdENodW5rLTE6MS8wO3JldHVybiBBLmVudHJpZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEuY291bnQsQj1BLmRlbHRhLFE9MDtRPGc7USsrKWk9e2R0czpoLGR1cmF0aW9uOkIsc2l6ZTphW2ZdfHxJLnNhbXBsZVNpemUsb2Zmc2V0Om5bdV0rRCxpbmRleDpmfSxzJiYoaS5rZXlmcmFtZT1DW2ZdLGkua2V5ZnJhbWUmJmMrKyxpLmdvcElkPWMpLHQmJmY8dC5sZW5ndGgmJihpLnB0cz1pLmR0cyt0W2ZdKSxlLnB1c2goaSksaCs9QiwrK2Y8bD9EKz1pLnNpemU6KHUrKyxEPTAsdT49dyYmKHkrKyx3PXJbeSsxXT9yW3krMV0uZmlyc3RDaHVuay0xOjEvMCksbCs9clt5XS5zYW1wbGVzUGVyQ2h1bmspfSkpLGV9ZnVuY3Rpb24gREQoQSxnKXtyZXR1cm4gQS5kYXRhUmVmZXJlbmNlSW5kZXg9cXkoZyw2KSxBLndpZHRoPXF5KGcsMjQpLEEuaGVpZ2h0PXF5KGcsMjYpLEEuaG9yaXpyZXNvbHV0aW9uPWJ5KGcsMjgpLEEudmVydHJlc29sdXRpb249YnkoZywzMiksQS5mcmFtZUNvdW50PXF5KGcsNDApLEEuZGVwdGg9cXkoZyw3NCksNzh9ZnVuY3Rpb24gbEQoQSxnKXtyZXR1cm4gQS5kYXRhUmVmZXJlbmNlSW5kZXg9cXkoZyw2KSxBLmNoYW5uZWxDb3VudD1xeShnLDE2KSxBLnNhbXBsZVNpemU9cXkoZywxOCksQS5zYW1wbGVSYXRlPWJ5KGcsMjQpLzY1NTM2LDI4fWZ1bmN0aW9uIHdEKEEsZyxJKXtpZihBKXtpZihBLnNpemUhPT1BLmRhdGEubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiYm94ICIuY29uY2F0KEEudHlwZSwiIHNpemUgIT09IGRhdGEubGVuZ3RoIikpO3ZhciBCPXtzdGFydDpBLnN0YXJ0LHNpemU6QS5zaXplLGhlYWRlclNpemU6QS5oZWFkZXJTaXplLHR5cGU6QS50eXBlfTtyZXR1cm4gZyYmKEIudmVyc2lvbj1BLmRhdGFbQS5oZWFkZXJTaXplXSxCLmZsYWdzPWZ1bmN0aW9uKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihBW2ddPDwxNikrKEFbZysxXTw8OCkrKEFbZysyXXx8MCl9KEEuZGF0YSxBLmhlYWRlclNpemUrMSksQi5oZWFkZXJTaXplKz00KSxJKEIsQS5kYXRhLnN1YmFycmF5KEIuaGVhZGVyU2l6ZSksQi5zdGFydCtCLmhlYWRlclNpemUpLEJ9fXZhciBkRD1mdW5jdGlvbigpe2Zvcih2YXIgQT1bXSxnPWFyZ3VtZW50cy5sZW5ndGgsST1uZXcgQXJyYXkoZyksQj0wO0I8ZztCKyspSVtCXT1hcmd1bWVudHNbQl07cmV0dXJuIEkuZm9yRWFjaCgoZnVuY3Rpb24oZyl7QS5wdXNoKGZ1bmN0aW9uKEEsZyxJKXtmb3IodmFyIEI9U3RyaW5nKEkpLFE9MHxnLEU9TWF0aC5jZWlsKFEvQi5sZW5ndGgpLEM9W10sdD1TdHJpbmcoQSk7RS0tOylDLnB1c2goQik7cmV0dXJuIEMuam9pbigiIikuc3Vic3RyaW5nKDAsUS10Lmxlbmd0aCkrdH0oTnVtYmVyKGcpLnRvU3RyaW5nKDE2KSwyLDApKX0pKSxBWzBdfTt2YXIgRkQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKCl7Z3kodGhpcyxBKSx0aGlzLmJ1ZmZlcj1uZXcgVWludDhBcnJheSgwKX1yZXR1cm4gQnkoQSxbe2tleToid3JpdGUiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBBPXRoaXMsZz1hcmd1bWVudHMubGVuZ3RoLEk9bmV3IEFycmF5KGcpLEI9MDtCPGc7QisrKUlbQl09YXJndW1lbnRzW0JdO0kuZm9yRWFjaCgoZnVuY3Rpb24oZyl7Zz9BLmJ1ZmZlcj1mdW5jdGlvbihBKXtmb3IodmFyIGc9MCxJPWFyZ3VtZW50cy5sZW5ndGgsQj1uZXcgQXJyYXkoST4xP0ktMTowKSxRPTE7UTxJO1ErKylCW1EtMV09YXJndW1lbnRzW1FdO0IuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zys9QS5sZW5ndGh9KSk7dmFyIEU9bmV3IEEoZyksQz0wO3JldHVybiBCLmZvckVhY2goKGZ1bmN0aW9uKEEpe0Uuc2V0KEEsQyksQys9QS5sZW5ndGh9KSksRX0oVWludDhBcnJheSxBLmJ1ZmZlcixnKTp3aW5kb3cuY29uc29sZS53YXJuKGcpfSkpfX1dLFt7a2V5OiJ3cml0ZVVpbnQxNiIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KFtBPj44JjI1NSwyNTUmQV0pfX0se2tleToid3JpdGVVaW50MzIiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgVWludDhBcnJheShbQT4+MjQsQT4+MTYmMjU1LEE+PjgmMjU1LDI1NSZBXSl9fV0pLEF9KCksR0Q9TWF0aC5wb3coMiwzMiktMSxSRD1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtneSh0aGlzLEEpfXJldHVybiBCeShBLG51bGwsW3trZXk6ImJveCIsdmFsdWU6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPWFyZ3VtZW50cy5sZW5ndGgsST1uZXcgQXJyYXkoZz4xP2ctMTowKSxCPTE7QjxnO0IrKylJW0ItMV09YXJndW1lbnRzW0JdO3ZhciBRPTgrKEk9SS5maWx0ZXIoQm9vbGVhbikpLnJlZHVjZSgoZnVuY3Rpb24oQSxnKXtyZXR1cm4gQStnLmJ5dGVMZW5ndGh9KSwwKSxFPW5ldyBVaW50OEFycmF5KFEpO0VbMF09UT4+MjQmMjU1LEVbMV09UT4+MTYmMjU1LEVbMl09UT4+OCYyNTUsRVszXT0yNTUmUSxFLnNldChBLDQpO3ZhciBDPTg7cmV0dXJuIEkuZm9yRWFjaCgoZnVuY3Rpb24oQSl7RS5zZXQoQSxDKSxDKz1BLmJ5dGVMZW5ndGh9KSksRX19LHtrZXk6IkZ1bGxCb3giLHZhbHVlOmZ1bmN0aW9uKGcsSSxCKXtmb3IodmFyIFE9YXJndW1lbnRzLmxlbmd0aCxFPW5ldyBBcnJheShRPjM/US0zOjApLEM9MztDPFE7QysrKUVbQy0zXT1hcmd1bWVudHNbQ107cmV0dXJuIEEuYm94LmFwcGx5KEEsW2csbmV3IFVpbnQ4QXJyYXkoW0ksQj4+MTYmMjU1LEI+PjgmMjU1LDI1NSZCXSldLmNvbmNhdChFKSl9fSx7a2V5OiJmdHlwIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gZy5maW5kKChmdW5jdGlvbihBKXtyZXR1cm4gQS50eXBlPT09b3kmJkEuY29kZWNUeXBlPT09c3l9KSk/QS5GVFlQSEVWMTpBLkZUWVBBVkMxfX0se2tleToiaW5pdFNlZ21lbnQiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBLeShBLmZ0eXAoZyksQS5tb292KGcpKX19LHtrZXk6InBzc2giLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBVaW50OEFycmF5KFsxLDAsMCwwXS5jb25jYXQoWzE2LDExOSwyMzksMjM2LDE5MiwxNzgsNzcsMiwxNzIsMjI3LDYwLDMwLDgyLDIyNiwyNTEsNzVdLFswLDAsMCwxXSxXeShnLmtpZCksWzAsMCwwLDBdKSk7cmV0dXJuIEEuYm94KEEudHlwZXMucHNzaCxJKX19LHtrZXk6Im1vb3YiLHZhbHVlOmZ1bmN0aW9uKGcpe2lmKGdbMF0udXNlRU1FJiYoZ1swXS5lbmN2fHxnWzBdLmVuY2EpKXtnWzBdLnBzc2h8fChnWzBdLnBzc2g9e2tpZDpnWzBdLmtpZH0pO3ZhciBJPXRoaXMucHNzaChnWzBdLnBzc2gpO3JldHVybiBBLmJveC5hcHBseShBLFtBLnR5cGVzLm1vb3YsQS5tdmhkKGdbMF0ubXZoZER1cnRpb258fGdbMF0uZHVyYXRpb24sZ1swXS5tdmhkVGltZWNhbGV8fGdbMF0udGltZXNjYWxlKSxBLm12ZXgoZyldLmNvbmNhdChDeShnLm1hcCgoZnVuY3Rpb24oZyl7cmV0dXJuIEEudHJhayhnKX0pKSksW0ldKSl9cmV0dXJuIEEuYm94LmFwcGx5KEEsW0EudHlwZXMubW9vdixBLm12aGQoZ1swXS5tdmhkRHVydGlvbnx8Z1swXS5kdXJhdGlvbixnWzBdLm12aGRUaW1lY2FsZXx8Z1swXS50aW1lc2NhbGUpXS5jb25jYXQoQ3koZy5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWsoZyl9KSkpLFtBLm12ZXgoZyldKSl9fSx7a2V5OiJtdmhkIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06OWU0O3JldHVybiBBLmJveChBLnR5cGVzLm12aGQsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLEk+PjI0JjI1NSxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkksZz4+MjQmMjU1LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZywwLDEsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw2NCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyNTUsMjU1LDI1NSwyNTVdKSl9fSx7a2V5OiJ0cmFrIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFrLEEudGtoZChnLmlkLGcudGtoZER1cmF0aW9ufHwwLGcud2lkdGgsZy5oZWlnaHQpLEEubWRpYShnKSl9fSx7a2V5OiJ0a2hkIix2YWx1ZTpmdW5jdGlvbihnLEkpe3ZhciBCPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTowLFE9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOjA7cmV0dXJuIEEuYm94KEEudHlwZXMudGtoZCxuZXcgVWludDhBcnJheShbMCwwLDAsNywwLDAsMCwwLDAsMCwwLDAsZz4+MjQmMjU1LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZywwLDAsMCwwLEk+PjI0JjI1NSxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkksMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjQsMCwwLDAsQj4+OCYyNTUsMjU1JkIsMCwwLFE+PjgmMjU1LDI1NSZRLDAsMF0pKX19LHtrZXk6ImVkdHMiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLmVkdHMsQS5lbHN0KGcpKX19LHtrZXk6ImVsc3QiLHZhbHVlOmZ1bmN0aW9uKGcpe2cuZW50cmllczt2YXIgST1nLmVudHJpZXNEYXRhLEI9Zy52ZXJzaW9uO3JldHVybiBBLkZ1bGxCb3goQS50eXBlcy5lbHN0LEIsMCxJKX19LHtrZXk6Im1kaWEiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1kaWEsQS5tZGhkKGcuZHVyYXRpb24sZy50aW1lc2NhbGUpLEEuaGRscihnLnR5cGUpLEEubWluZihnKSl9fSx7a2V5OiJtZGhkIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06OWU0O3JldHVybiBBLmJveChBLnR5cGVzLm1kaGQsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLEk+PjI0JjI1NSxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkksZz4+MjQmMjU1LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZyw4NSwxOTYsMCwwXSkpfX0se2tleToiaGRsciIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMuaGRscixBLkhETFJfVFlQRVNbZ10pfX0se2tleToibWluZiIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMubWluZixnLnR5cGU9PT1veT9BLlZNSEQ6QS5TTUhELEEuRElORixBLnN0YmwoZykpfX0se2tleToic3RibCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJmcuZXh0LEEuYm94KEEudHlwZXMuc3RibCxBLnN0c2QoZyksQS5TVFRTLFtdWzBdLEEuU1RTQyxBLlNUU1osQS5TVENPKX19LHtrZXk6InN0c2QiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJO3JldHVybiBJPSJhdWRpbyI9PT1nLnR5cGU/Zy51c2VFTUUmJmcuZW5jYT9BLmVuY2EoZyk6QS5tcDRhKGcpOmcudXNlRU1FJiZnLmVuY3Y/QS5lbmN2KGcpOkEuYXZjMWhldjF2dmMxKGcpLEEuYm94KEEudHlwZXMuc3RzZCxuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwxXSksSSl9fSx7a2V5OiJlbmNhIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmVuY2EuY2hhbm5lbENvdW50LEI9Zy5lbmNhLnNhbXBsZVJhdGUsUT1uZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLEksMCwxNiwwLDAsMCwwLEI+PjgmMjU1LDI1NSZCLDAsMF0pLEU9QS5lc2RzKGcuY29uZmlnKSxDPUEuc2luZihnLmVuY2EpO3JldHVybiBBLmJveChBLnR5cGVzLmVuY2EsUSxFLEMpfX0se2tleToiZW5jdiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEksQixRPWcuc3BzLmxlbmd0aD4wP2cuc3BzWzBdOltdLEU9Zy5wcHMubGVuZ3RoPjA/Zy5wcHNbMF06W10sQz1nLndpZHRoLHQ9Zy5oZWlnaHQsaT1nLnNhclJhdGlvWzBdLGU9Zy5zYXJSYXRpb1sxXSxvPW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCxDPj44JjI1NSwyNTUmQyx0Pj44JjI1NSwyNTUmdCwwLDcyLDAsMCwwLDcyLDAsMCwwLDAsMCwwLDAsMSwxOCwxMDAsOTcsMTA1LDEwOCwxMjEsMTA5LDExMSwxMTYsMTA1LDExMSwxMTAsNDcsMTA0LDEwOCwxMTUsNDYsMTA2LDExNSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjQsMTcsMTddKSxyPW5ldyBVaW50OEFycmF5KChJPShCPVsxLFFbMV0sUVsyXSxRWzNdLDI1NSwyMjUsUS5sZW5ndGg+Pj44JjI1NSwyNTUmUS5sZW5ndGhdKS5jb25jYXQuYXBwbHkoQixDeShRKSkuY29uY2F0KFsxLEUubGVuZ3RoPj4+OCYyNTUsMjU1JkUubGVuZ3RoXSkpLmNvbmNhdC5hcHBseShJLEN5KEUpKSksbj1uZXcgVWludDhBcnJheShbMCwwLDg4LDU3LDAsMTUsMjAwLDE5MiwwLDQsODYsNzJdKSxhPUEuc2luZihnLmVuY3YpLHM9bmV3IFVpbnQ4QXJyYXkoW2k+PjI0LGk+PjE2JjI1NSxpPj44JjI1NSwyNTUmaSxlPj4yNCxlPj4xNiYyNTUsZT4+OCYyNTUsMjU1JmVdKTtyZXR1cm4gQS5ib3goQS50eXBlcy5lbmN2LG8sQS5ib3goQS50eXBlcy5hdmNDLHIpLEEuYm94KEEudHlwZXMuYnRydCxuKSxhLEEuYm94KEEudHlwZXMucGFzcCxzKSl9fSx7a2V5OiJzY2hpIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgVWludDhBcnJheShbXSksQj1BLnRlbmMoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2NoaSxJLEIpfX0se2tleToidGVuYyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDI1NSZnLmRlZmF1bHRfSXNFbmNyeXB0ZWQsMjU1JmcuZGVmYXVsdF9JVl9zaXplXS5jb25jYXQoV3koZy5kZWZhdWx0X0tJRCkpKTtyZXR1cm4gQS5ib3goQS50eXBlcy50ZW5jLEkpfX0se2tleToic2luZiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IFVpbnQ4QXJyYXkoW10pLEI9bmV3IFVpbnQ4QXJyYXkoW2cuZGF0YV9mb3JtYXQuY2hhckNvZGVBdCgwKSxnLmRhdGFfZm9ybWF0LmNoYXJDb2RlQXQoMSksZy5kYXRhX2Zvcm1hdC5jaGFyQ29kZUF0KDIpLGcuZGF0YV9mb3JtYXQuY2hhckNvZGVBdCgzKV0pLFE9bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsOTksMTAxLDExMCw5OSwwLDEsMCwwXSksRT1BLnNjaGkoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2luZixJLEEuYm94KEEudHlwZXMuZnJtYSxCKSxBLmJveChBLnR5cGVzLnNjaG0sUSksRSl9fSx7a2V5OiJhdmMxaGV2MXZ2YzEiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJLEI7Zy5jb2RlY1R5cGU9PT1zeT8oST1BLmh2Y0MoZyksQj1BLnR5cGVzLmh2YzEpOmcuY29kZWNUeXBlPT09Y3k/KEk9QS52dmNDKGcpLEI9QS50eXBlcy5idmMyKTooST1BLmF2Y0MoZyksQj1BLnR5cGVzLmF2YzEpO3ZhciBRPVtuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsZy53aWR0aD4+OCYyNTUsMjU1Jmcud2lkdGgsZy5oZWlnaHQ+PjgmMjU1LDI1NSZnLmhlaWdodCwwLDcyLDAsMCwwLDcyLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyNCwxNywxN10pLEldO3JldHVybiBnLmNvZGVjVHlwZT09PXN5P1EucHVzaChBLmJveChBLnR5cGVzLmZpZWwsbmV3IFVpbnQ4QXJyYXkoWzEsMF0pKSk6Zy5zYXJSYXRpbyYmZy5zYXJSYXRpby5sZW5ndGg+MSYmUS5wdXNoKEEucGFzcChnLnNhclJhdGlvKSksQS5ib3guYXBwbHkoQSxbQl0uY29uY2F0KFEpKX19LHtrZXk6ImF2Y0MiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJLEIsUSxFPVtdLEM9W107cmV0dXJuIGcuc3BzLmZvckVhY2goKGZ1bmN0aW9uKEEpe1E9QS5ieXRlTGVuZ3RoLEUucHVzaChRPj4+OCYyNTUpLEUucHVzaCgyNTUmUSksRS5wdXNoLmFwcGx5KEUsQ3koQSkpfSkpLGcucHBzLmZvckVhY2goKGZ1bmN0aW9uKEEpe1E9QS5ieXRlTGVuZ3RoLEMucHVzaChRPj4+OCYyNTUpLEMucHVzaCgyNTUmUSksQy5wdXNoLmFwcGx5KEMsQ3koQSkpfSkpLEEuYm94KEEudHlwZXMuYXZjQyxuZXcgVWludDhBcnJheSgoST0oQj1bMSxFWzNdLEVbNF0sRVs1XSwyNTUsMjI0fGcuc3BzLmxlbmd0aF0pLmNvbmNhdC5hcHBseShCLEUpLmNvbmNhdChbZy5wcHMubGVuZ3RoXSkpLmNvbmNhdC5hcHBseShJLEMpKSl9fSx7a2V5OiJ2dmNDIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLnZ2Y0M7cmV0dXJuIEEuYm94KEEudHlwZXMuYnYyQyxuZXcgVWludDhBcnJheShJKSl9fSx7a2V5OiJodmNDIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmh2Y0M7aWYoSSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfHxJIGluc3RhbmNlb2YgVWludDhBcnJheSlyZXR1cm4gSTt2YXIgQixRPWcudnBzLEU9Zy5zcHMsQz1nLnBwcztpZihJKXt2YXIgdD1JLmdlbmVyYWxQcm9maWxlQ29tcGF0aWJpbGl0eUZsYWdzLGk9SS5nZW5lcmFsQ29uc3RyYWludEluZGljYXRvckZsYWdzLGU9KFEubGVuZ3RoJiYxKSsoRS5sZW5ndGgmJjEpKyhDLmxlbmd0aCYmMSk7Qj1bMSxJLmdlbmVyYWxQcm9maWxlU3BhY2U8PDZ8SS5nZW5lcmFsVGllckZsYWc8PDV8SS5nZW5lcmFsUHJvZmlsZUlkYyx0Pj4+MjQsdD4+PjE2LHQ+Pj44LHQsaVswXSxpWzFdLGlbMl0saVszXSxpWzRdLGlbNV0sSS5nZW5lcmFsTGV2ZWxJZGMsMjQwLDAsMjUyLDI1MnxJLmNocm9tYUZvcm1hdElkYywyNDh8SS5iaXREZXB0aEx1bWFNaW51czgsMjQ4fEkuYml0RGVwdGhDaHJvbWFNaW51czgsMCwwLEkubnVtVGVtcG9yYWxMYXllcnM8PDN8SS50ZW1wb3JhbElkTmVzdGVkPDwyfDMsZV07dmFyIG89ZnVuY3Rpb24oQSl7dmFyIGc7Qi5wdXNoKEEubGVuZ3RoPj44LEEubGVuZ3RoKSwoZz1CKS5wdXNoLmFwcGx5KGcsQ3koQSkpfTtRLmxlbmd0aCYmKEIucHVzaCgxNjAsMCxRLmxlbmd0aCksUS5mb3JFYWNoKG8pKSxFLmxlbmd0aCYmKEIucHVzaCgxNjEsMCxFLmxlbmd0aCksRS5mb3JFYWNoKG8pKSxDLmxlbmd0aCYmKEIucHVzaCgxNjIsMCxDLmxlbmd0aCksQy5mb3JFYWNoKG8pKX1lbHNlIEI9WzEsMSw5NiwwLDAsMCwxNDQsMCwwLDAsMCwwLDkzLDI0MCwwLDI1MiwyNTMsMjQ4LDI0OCwwLDAsMTUsMywxNjAsMCwxLDAsMjQsNjQsMSwxMiwxLDI1NSwyNTUsMSw5NiwwLDAsMywwLDE0NCwwLDAsMywwLDAsMywwLDkzLDE1MywxNTIsOSwxNjEsMCwxLDAsNDUsNjYsMSwxLDEsOTYsMCwwLDMsMCwxNDQsMCwwLDMsMCwwLDMsMCw5MywxNjAsMiwxMjgsMTI4LDQ1LDIyLDg5LDE1MywxNjQsMTQ3LDQzLDE1NCwxMjgsMTI4LDEyOCwxMzAsMCwwLDMsMCwyLDAsMCwzLDAsNTAsMTYsMTYyLDAsMSwwLDcsNjgsMSwxOTMsMTE0LDE4MCw5OCw2NF07cmV0dXJuIEEuYm94KEEudHlwZXMuaHZjQyxuZXcgVWludDhBcnJheShCKSl9fSx7a2V5OiJwYXNwIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1FeShnLDIpLEI9SVswXSxRPUlbMV07cmV0dXJuIEEuYm94KEEudHlwZXMucGFzcCxuZXcgVWludDhBcnJheShbQj4+MjQsQj4+MTYmMjU1LEI+PjgmMjU1LDI1NSZCLFE+PjI0LFE+PjE2JjI1NSxRPj44JjI1NSwyNTUmUV0pKX19LHtrZXk6Im1wNGEiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1wNGEsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCxnLmNoYW5uZWxDb3VudCwwLDE2LDAsMCwwLDAsZy5zYW1wbGVSYXRlPj44JjI1NSwyNTUmZy5zYW1wbGVSYXRlLDAsMF0pLGcuY29uZmlnLmxlbmd0aD9BLmVzZHMoZy5jb25maWcpOnZvaWQgMCl9fSx7a2V5OiJlc2RzIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmxlbmd0aDtyZXR1cm4gQS5ib3goQS50eXBlcy5lc2RzLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDMsMjMrSSwwLDAsMCw0LDE1K0ksNjQsMjEsMCw2LDAsMCwwLDIxOCwxOTIsMCwwLDIxOCwxOTIsNV0uY29uY2F0KFtJXSkuY29uY2F0KGcpLmNvbmNhdChbNiwxLDJdKSkpfX0se2tleToibXZleCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94LmFwcGx5KEEsW0EudHlwZXMubXZleF0uY29uY2F0KEN5KGcubWFwKChmdW5jdGlvbihnKXtyZXR1cm4gQS50cmV4KGcuaWQpfSkpKSkpfX0se2tleToidHJleCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudHJleCxuZXcgVWludDhBcnJheShbMCwwLDAsMCxnPj4yNCxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwxLDAsMV0pKX19LHtrZXk6InRyZXgxIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy50cmV4LG5ldyBVaW50OEFycmF5KFswLDAsMCwwLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZywwLDAsMCwxLDAsMCwyLDAsMCwwLDAsMCwwLDEsMCwwXSkpfX0se2tleToidHJleDIiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLnRyZXgsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsZz4+MjQsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnLDAsMCwwLDEsMCwwLDQsMCwwLDAsMCwwLDIsMCwwLDBdKSl9fSx7a2V5OiJtb29mIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3guYXBwbHkoQSxbQS50eXBlcy5tb29mLEEubWZoZChnWzBdLnNhbXBsZXM/Z1swXS5zYW1wbGVzWzBdLmdvcElkOjApXS5jb25jYXQoQ3koZy5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWYoZyl9KSkpKSl9fSx7a2V5OiJtZmhkIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5tZmhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZ10pKX19LHtrZXk6InRyYWYiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPUEudGZoZChnLmlkKSxCPUEudGZkdChnLmJhc2VNZWRpYURlY29kZVRpbWUpLFE9MDtpZihnLmlzVmlkZW8mJmcudmlkZW9TZW5jJiZnLnZpZGVvU2VuYy5mb3JFYWNoKChmdW5jdGlvbihBKXtRKz04LEEuc3Vic2FtcGxlcyYmQS5zdWJzYW1wbGVzLmxlbmd0aCYmKFErPTIsUSs9NipBLnN1YnNhbXBsZXMubGVuZ3RoKX0pKSxnLnZpZGVvU2VuY0xlbmd0aD1RLGcudXNlRU1FJiYoZy5pc1ZpZGVvRW5jcnlwdGlvbnx8Zy5pc0F1ZGlvRW5jcnlwdGlvbikpe2lmKGcuaXNWaWRlb0VuY3J5cHRpb24pe2lmKGcuaXNWaWRlbyl7dmFyIEU9QS5zYWl6KGcpLEM9QS5zYWlvKGcpLHQ9QS50cnVuMShnKSxpPUEuc2VuYyhnKTtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFmLEksQixFLEMsdCxpKX1pZihnLmlzQXVkaW9FbmNyeXB0aW9uKXt2YXIgZT1BLnNiZ3AoKSxvPUEuc2FpeihnKSxyPUEuc2FpbyhnKSxuPUEuc2VuYyhnKSxhPUEudHJ1bjEoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhZixJLEIsZSxvLHIsbixhKX12YXIgcz1BLnNiZ3AoKSxjPUEudHJ1bjEoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhZixJLEIscyxjKX1pZihnLmlzVmlkZW8pe3ZhciBoPUEudHJ1bjEoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhZixJLEIsaCl9dmFyIGY9QS5zYmdwKCksdT1BLnNhaXooZykseT1BLnNhaW8oZyksRD1BLnNlbmMoZyksbD1BLnRydW4xKGcpO3JldHVybiBBLmJveChBLnR5cGVzLnRyYWYsSSxCLGYsdSx5LEQsbCl9dmFyIHc9QS5zZHRwKGcpO3JldHVybiBBLmJveChBLnR5cGVzLnRyYWYsSSxCLHcsQS50cnVuKGcuc2FtcGxlcyx3LmJ5dGVMZW5ndGgrNzYpKX19LHtrZXk6InNkdHAiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBGRDtyZXR1cm4gZy5zYW1wbGVzLmZvckVhY2goKGZ1bmN0aW9uKEEpe0kud3JpdGUobmV3IFVpbnQ4QXJyYXkoZy5pc1ZpZGVvP1tBLmtleWZyYW1lPzMyOjE2XTpbMTZdKSl9KSksQS5ib3goQS50eXBlcy5zZHRwLHRoaXMuZXh0ZW5zaW9uKDAsMCksSS5idWZmZXIpfX0se2tleToidHJ1bjEiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBGRCxCPUZELndyaXRlVWludDMyKGcuc2FtcGxlcy5sZW5ndGgpLFE9bnVsbDtpZihnLmlzVmlkZW8pe3ZhciBFPWcudmlkZW9TZW5jTGVuZ3RoO1E9RkQud3JpdGVVaW50MzIoNzYrMTYqZy5zYW1wbGVzLmxlbmd0aCtFKzc3KSwhZy5pc1ZpZGVvRW5jcnlwdGlvbiYmZy5pc0F1ZGlvRW5jcnlwdGlvbiYmKFE9RkQud3JpdGVVaW50MzIoNzYrMTYqZy5zYW1wbGVzLmxlbmd0aCsyMCkpfWVsc2V7dmFyIEM9NzYrMTIqZy5zYW1wbGVzLmxlbmd0aCs1MjtnLmlzQXVkaW9FbmNyeXB0aW9uJiYoQz03NisxMipnLnNhbXBsZXMubGVuZ3RoKzgqZy5hdWRpb1NlbmMubGVuZ3RoKzEwNSksUT1GRC53cml0ZVVpbnQzMihDKX1yZXR1cm4gZy5zYW1wbGVzLmZvckVhY2goKGZ1bmN0aW9uKEEpe0kud3JpdGUoRkQud3JpdGVVaW50MzIoQS5kdXJhdGlvbikpLEkud3JpdGUoRkQud3JpdGVVaW50MzIoQS5zaXplKSksSS53cml0ZShGRC53cml0ZVVpbnQzMihBLmtleWZyYW1lPzMzNTU0NDMyOjY1NTM2KSksZy5pc1ZpZGVvJiZJLndyaXRlKEZELndyaXRlVWludDMyKEEuY3RzP0EuY3RzOjApKX0pKSxBLmJveChBLnR5cGVzLnRydW4sdGhpcy5leHRlbnNpb24oMCxnLmZsYWdzKSxCLFEsSS5idWZmZXIpfX0se2tleToic2VuYyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IEZELEI9Zy5zYW1wbGVzLmxlbmd0aCxRPWcuaXNWaWRlbz8xNjo4LEU9Zy5pc1ZpZGVvPzI6MCxDPVtdLHQ9MDtyZXR1cm4gZy5pc1ZpZGVvPyhDPWcudmlkZW9TZW5jLHQ9Zy52aWRlb1NlbmNMZW5ndGgpOkM9Zy5hdWRpb1NlbmMsdD10fHxRKkIsSS53cml0ZShGRC53cml0ZVVpbnQzMigxNit0KSxBLnR5cGVzLnNlbmMsdGhpcy5leHRlbnNpb24oMCxFKSksSS53cml0ZShGRC53cml0ZVVpbnQzMihCKSksQy5mb3JFYWNoKChmdW5jdGlvbihBKXtmb3IodmFyIGc9MDtnPEEuSW5pdGlhbGl6YXRpb25WZWN0b3IubGVuZ3RoO2crKylJLndyaXRlKG5ldyBVaW50OEFycmF5KFtBLkluaXRpYWxpemF0aW9uVmVjdG9yW2ddXSkpO0Euc3Vic2FtcGxlcyYmQS5zdWJzYW1wbGVzLmxlbmd0aCYmKEkud3JpdGUoRkQud3JpdGVVaW50MTYoQS5zdWJzYW1wbGVzLmxlbmd0aCkpLEEuc3Vic2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBKXtJLndyaXRlKEZELndyaXRlVWludDE2KEEuQnl0ZXNPZkNsZWFyRGF0YSkpLEkud3JpdGUoRkQud3JpdGVVaW50MzIoQS5CeXRlc09mUHJvdGVjdGVkRGF0YSkpfSkpKX0pKSxJLmJ1ZmZlcn19LHtrZXk6InNhaW8iLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPTEyKmcuc2FtcGxlcy5sZW5ndGgrMTQxOyFnLmlzVmlkZW8mJmcuaXNBdWRpb0VuY3J5cHRpb24mJihJPTE0OSk7dmFyIEI9bmV3IFVpbnQ4QXJyYXkoWzEsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLEk+PjI0JjI1NSxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zYWlvLEIpfX0se2tleToic2FpeiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5zYW1wbGVzLmxlbmd0aCxCPW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDE2LEk+PjI0JjI1NSxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zYWl6LEIpfX0se2tleToic2JncCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZz1uZXcgVWludDhBcnJheShbMTE0LDExMSwxMDgsMTA4LDAsMCwwLDEsMCwwLDEsMjUsMCwwLDAsMV0pO3JldHVybiBBLmJveChBLnR5cGVzLnNiZ3AsdGhpcy5leHRlbnNpb24oMCwwKSxnKX19LHtrZXk6ImV4dGVuc2lvbiIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoW0EsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnXSl9fSx7a2V5OiJ0ZmhkIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy50ZmhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZ10pKX19LHtrZXk6InRmZHQiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPU1hdGguZmxvb3IoZy8oR0QrMSkpLEI9TWF0aC5mbG9vcihnJShHRCsxKSk7cmV0dXJuIEEuYm94KEEudHlwZXMudGZkdCxuZXcgVWludDhBcnJheShbMSwwLDAsMCxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkksQj4+MjQsQj4+MTYmMjU1LEI+PjgmMjU1LDI1NSZCXSkpfX0se2tleToidHJ1biIsdmFsdWU6ZnVuY3Rpb24oZyxJKXt2YXIgQj1nLmxlbmd0aCxRPTEyKzE2KkI7SSs9OCtRO3ZhciBFPW5ldyBVaW50OEFycmF5KFEpO0Uuc2V0KFswLDAsMTUsMSxCPj4+MjQmMjU1LEI+Pj4xNiYyNTUsQj4+PjgmMjU1LDI1NSZCLEk+Pj4yNCYyNTUsST4+PjE2JjI1NSxJPj4+OCYyNTUsMjU1JkldLDApO2Zvcih2YXIgQz0wO0M8QjtDKyspe3ZhciB0PWdbQ10saT10LmR1cmF0aW9uLGU9dC5zaXplLG89dC5mbGFnLHI9dm9pZCAwPT09bz97fTpvLG49dC5jdHMsYT12b2lkIDA9PT1uPzA6bjtFLnNldChbaT4+PjI0JjI1NSxpPj4+MTYmMjU1LGk+Pj44JjI1NSwyNTUmaSxlPj4+MjQmMjU1LGU+Pj4xNiYyNTUsZT4+PjgmMjU1LDI1NSZlLHIuaXNMZWFkaW5nPDwyfChudWxsPT09ci5kZXBlbmRzT258fHZvaWQgMD09PXIuZGVwZW5kc09uPzE6ci5kZXBlbmRzT24pLHIuaXNEZXBlbmRlZE9uPDw2fHIuaGFzUmVkdW5kYW5jeTw8NHxyLnBhZGRpbmdWYWx1ZTw8MXwobnVsbD09PXIuaXNOb25TeW5jU2FtcGxlfHx2b2lkIDA9PT1yLmlzTm9uU3luY1NhbXBsZT8xOnIuaXNOb25TeW5jU2FtcGxlKSw2MTQ0MCZyLmRlZ3JhZGF0aW9uUHJpb3JpdHksMTUmci5kZWdyYWRhdGlvblByaW9yaXR5LGE+Pj4yNCYyNTUsYT4+PjE2JjI1NSxhPj4+OCYyNTUsMjU1JmFdLDEyKzE2KkMpfXJldHVybiBBLmJveChBLnR5cGVzLnRydW4sRSl9fSx7a2V5OiJtb292TVA0Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3guYXBwbHkoQSxbQS50eXBlcy5tb292LEEubXZoZChnWzBdLmR1cmF0aW9uLGdbMF0udGltZXNjYWxlKV0uY29uY2F0KEN5KGcubWFwKChmdW5jdGlvbihnKXtyZXR1cm4gQS50cmFja01QNChnKX0pKSkpKX19LHtrZXk6InRyYWNrTVA0Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFrLEEudGtoZChnLmlkLGcuZHVyYXRpb24sZy53aWR0aCxnLmhlaWdodCksQS5tZGlhTVA0KGcpKX19LHtrZXk6Im1kaWFNUDQiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1kaWEsQS5tZGhkKGcuZHVyYXRpb24sZy50aW1lc2NhbGUpLEEuaGRscihnLnR5cGUpLEEubWluZk1QNChnKSl9fSx7a2V5OiJtaW5mTVA0Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5taW5mLGcudHlwZT09PW95P0EuVk1IRDpBLlNNSEQsQS5ESU5GLEEuc3RibE1QNChnKSl9fSx7a2V5OiJzdGJsTVA0Iix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmV4dCxCPVtBLnN0c2QoZyksQS5zdHRzKEkuc3R0cyksQS5zdHNjKEkuc3RzYyksQS5zdHN6KEkuc3RzeiksQS5zdGNvKEkuc3RjbyldO3JldHVybiBJLnN0c3MubGVuZ3RoJiZCLnB1c2goQS5zdHNzKEkuc3RzcykpLEkuY3R0cy5sZW5ndGgmJkIucHVzaChBLmN0dHMoSS5jdHRzKSksQS5ib3guYXBwbHkoQSxbQS50eXBlcy5zdGJsXS5jb25jYXQoQikpfX0se2tleToic3R0cyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5sZW5ndGgsQj1uZXcgVWludDhBcnJheSg4KkkpLFE9MDtyZXR1cm4gZy5mb3JFYWNoKChmdW5jdGlvbihBKXt2YXIgZz1BLnZhbHVlLEk9QS5jb3VudDtCLnNldChbST4+MjQsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZ10sUSksUSs9OH0pKSxBLmJveChBLnR5cGVzLnN0dHMsS3kobmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsST4+MjQsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSksQikpfX0se2tleToic3RzYyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5sZW5ndGgsQj1uZXcgVWludDhBcnJheSgxMipJKSxRPTA7cmV0dXJuIGcuZm9yRWFjaCgoZnVuY3Rpb24oQSl7dmFyIGc9QS5maXJzdENodW5rLEk9QS5zYW1wbGVzUGVyQ2h1bmssRT1BLnNhbXBsZURlc2NJbmRleDtCLnNldChbZz4+MjQsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnLEk+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSSxFPj4yNCxFPj4xNiYyNTUsRT4+OCYyNTUsMjU1JkVdLFEpLFErPTEyfSkpLEEuYm94KEEudHlwZXMuc3RzYyxLeShuZXcgVWludDhBcnJheShbMCwwLDAsMCxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKSxCKSl9fSx7a2V5OiJzdHN6Iix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmxlbmd0aCxCPW5ldyBVaW50OEFycmF5KDQqSSksUT0wO3JldHVybiBnLmZvckVhY2goKGZ1bmN0aW9uKEEpe0Iuc2V0KFtBPj4yNCxBPj4xNiYyNTUsQT4+OCYyNTUsMjU1JkFdLFEpLFErPTR9KSksQS5ib3goQS50eXBlcy5zdHN6LEt5KG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsST4+MjQsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSksQikpfX0se2tleToic3RjbyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5sZW5ndGgsQj1uZXcgVWludDhBcnJheSg0KkkpLFE9MDtyZXR1cm4gZy5mb3JFYWNoKChmdW5jdGlvbihBKXtCLnNldChbQT4+MjQsQT4+MTYmMjU1LEE+PjgmMjU1LDI1NSZBXSxRKSxRKz00fSkpLEEuYm94KEEudHlwZXMuc3RjbyxLeShuZXcgVWludDhBcnJheShbMCwwLDAsMCxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKSxCKSl9fSx7a2V5OiJzdHNzIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmxlbmd0aCxCPW5ldyBVaW50OEFycmF5KDQqSSksUT0wO3JldHVybiBnLmZvckVhY2goKGZ1bmN0aW9uKEEpe0Iuc2V0KFtBPj4yNCxBPj4xNiYyNTUsQT4+OCYyNTUsMjU1JkFdLFEpLFErPTR9KSksQS5ib3goQS50eXBlcy5zdHNzLEt5KG5ldyBVaW50OEFycmF5KFswLDAsMCwwLEk+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSV0pLEIpKX19LHtrZXk6ImN0dHMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcubGVuZ3RoLEI9bmV3IFVpbnQ4QXJyYXkoOCpJKSxRPTA7cmV0dXJuIGcuZm9yRWFjaCgoZnVuY3Rpb24oQSl7dmFyIGc9QS52YWx1ZSxJPUEuY291bnQ7Qi5zZXQoW0k+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSSxnPj4yNCxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmddLFEpLFErPTh9KSksQS5ib3goQS50eXBlcy5jdHRzLEt5KG5ldyBVaW50OEFycmF5KFswLDAsMCwwLEk+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSV0pLEIpKX19LHtrZXk6InN0eXAiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEEuYm94KEEudHlwZXMuc3R5cCxuZXcgVWludDhBcnJheShbMTA5LDExNSwxMDAsMTA0LDAsMCwwLDAsMTA5LDExNSwxMDAsMTA0LDEwOSwxMTUsMTA1LDEyMF0pKX19LHtrZXk6InNpZHgiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcudGltZXNjYWxlLEI9Zy5zYW1wbGVzWzBdLmR1cmF0aW9uLFE9QipnLnNhbXBsZXMubGVuZ3RoLEU9Zy5zYW1wbGVzWzBdLnNhbXBsZU9mZnNldCpCLEM9ODtnLnNhbXBsZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Qys9QS5zaXplfSkpO3ZhciB0PTA7aWYoZy5pc1ZpZGVvKXt2YXIgaSxlPTA7Zy52aWRlb1NlbmMmJihpPWcudmlkZW9TZW5jKSxnLmlzVmlkZW8mJmkuZm9yRWFjaCgoZnVuY3Rpb24oQSl7ZSs9OCxBLnN1YnNhbXBsZXMmJkEuc3Vic2FtcGxlcy5sZW5ndGgmJihlKz0yLGUrPTYqQS5zdWJzYW1wbGVzLmxlbmd0aCl9KSksZy52aWRlb1NlbmNMZW5ndGg9ZSx0PUMrMTQxKzE2Kmcuc2FtcGxlcy5sZW5ndGgrZSxnLnVzZUVNRSYmZy5pc0F1ZGlvRW5jcnlwdGlvbiYmIWcuaXNWaWRlb0VuY3J5cHRpb24mJih0PUMrMTYqZy5zYW1wbGVzLmxlbmd0aCs4NCl9ZWxzZSB0PUMrMTE2KzEyKmcuc2FtcGxlcy5sZW5ndGgsZy51c2VFTUUmJmcuaXNBdWRpb0VuY3J5cHRpb24mJih0PUMrMTY5KzEyKmcuc2FtcGxlcy5sZW5ndGgrOCpnLmF1ZGlvU2VuYy5sZW5ndGgpO3ZhciBvPW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDI1NSZnLmlkLEk+PjI0JjI1NSxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkksRT4+MjQmMjU1LEU+PjE2JjI1NSxFPj44JjI1NSwyNTUmRSwwLDAsMCwwLDAsMCwwLDEsMCx0Pj4xNiYyNTUsdD4+OCYyNTUsMjU1JnQsUT4+MjQmMjU1LFE+PjE2JjI1NSxRPj44JjI1NSwyNTUmUSwxNDQsMCwwLDBdKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zaWR4LG8pfX0se2tleToibWRhdCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMubWRhdCxnKX19XSksQX0oKTtReShSRCwidHlwZXMiLFsiYXZjMSIsImF2Y0MiLCJodmMxIiwiaHZjQyIsImRpbmYiLCJkcmVmIiwiZWR0cyIsImVsc3QiLCJlc2RzIiwiZnR5cCIsImhkbHIiLCJtZGF0IiwibWRoZCIsIm1kaWEiLCJtZmhkIiwibWluZiIsIm1vb2YiLCJtb292IiwibXA0YSIsIm12ZXgiLCJtdmhkIiwicGFzcCIsInN0YmwiLCJzdGNvIiwic3RzYyIsInN0c2QiLCJzdHN6Iiwic3R0cyIsInRmZHQiLCJ0ZmhkIiwidHJhZiIsInRyYWsiLCJ0cmV4IiwidGtoZCIsInZtaGQiLCJzbWhkIiwiY3R0cyIsInN0c3MiLCJzdHlwIiwicHNzaCIsInNpZHgiLCJzYmdwIiwic2FpeiIsInNhaW8iLCJzZW5jIiwidHJ1biIsImVuY3YiLCJlbmNhIiwic2luZiIsImJ0cnQiLCJmcm1hIiwidGVuYyIsInNjaG0iLCJzY2hpIiwibWVoZCIsImZpZWwiLCJzZHRwIiwiYnZjMiIsImJ2MkMiXS5yZWR1Y2UoKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIEFbZ109W2cuY2hhckNvZGVBdCgwKSxnLmNoYXJDb2RlQXQoMSksZy5jaGFyQ29kZUF0KDIpLGcuY2hhckNvZGVBdCgzKV0sQX0pLE9iamVjdC5jcmVhdGUobnVsbCkpKSxReShSRCwiSERMUl9UWVBFUyIse3ZpZGVvOm5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMTE4LDEwNSwxMDAsMTAxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDg2LDEwNSwxMDAsMTAxLDExMSw3Miw5NywxMTAsMTAwLDEwOCwxMDEsMTE0LDBdKSxhdWRpbzpuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwwLDExNSwxMTEsMTE3LDExMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw4MywxMTEsMTE3LDExMCwxMDAsNzIsOTcsMTEwLDEwMCwxMDgsMTAxLDExNCwwXSl9KSxReShSRCwiRlRZUEFWQzEiLFJELmJveChSRC50eXBlcy5mdHlwLG5ldyBVaW50OEFycmF5KFsxMDUsMTE1LDExMSwxMDksMCwwLDAsMSwxMDUsMTE1LDExMSwxMDksOTcsMTE4LDk5LDQ5XSkpKSxReShSRCwiRlRZUEhFVjEiLFJELmJveChSRC50eXBlcy5mdHlwLG5ldyBVaW50OEFycmF5KFsxMDUsMTE1LDExMSwxMDksMCwwLDAsMSwxMDUsMTE1LDExMSwxMDksMTA0LDEwMSwxMTgsNDldKSkpLFF5KFJELCJESU5GIixSRC5ib3goUkQudHlwZXMuZGluZixSRC5ib3goUkQudHlwZXMuZHJlZixuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDEyLDExNywxMTQsMTA4LDMyLDAsMCwwLDFdKSkpKSxReShSRCwiVk1IRCIsUkQuYm94KFJELnR5cGVzLnZtaGQsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwXSkpKSxReShSRCwiU01IRCIsUkQuYm94KFJELnR5cGVzLnNtaGQsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMF0pKSksUXkoUkQsIlN0YmxUYWJsZSIsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMF0pKSxReShSRCwiU1RUUyIsUkQuYm94KFJELnR5cGVzLnN0dHMsUkQuU3RibFRhYmxlKSksUXkoUkQsIlNUU0MiLFJELmJveChSRC50eXBlcy5zdHNjLFJELlN0YmxUYWJsZSkpLFF5KFJELCJTVFNaIixSRC5ib3goUkQudHlwZXMuc3RzeixuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdKSkpLFF5KFJELCJTVENPIixSRC5ib3goUkQudHlwZXMuc3RjbyxSRC5TdGJsVGFibGUpKTt2YXIgVUQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKGcsSSl7Z3kodGhpcyxBKSx0aGlzLm5hbWU9Z3x8IiIsdGhpcy5fcHJlZml4PSJbIi5jb25jYXQodGhpcy5uYW1lLCJdIiksQS5kaXNhYmxlZD1JfXJldHVybiBCeShBLFt7a2V5OiJkZWJ1ZyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZztpZighQS5kaXNhYmxlZCl7Zm9yKHZhciBJPWFyZ3VtZW50cy5sZW5ndGgsQj1uZXcgQXJyYXkoSSksUT0wO1E8STtRKyspQltRXT1hcmd1bWVudHNbUV07KGc9Y29uc29sZSkuZGVidWcuYXBwbHkoZyxbdGhpcy5fcHJlZml4XS5jb25jYXQoQikpfX19LHtrZXk6ImxvZyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZztpZighQS5kaXNhYmxlZCl7Zm9yKHZhciBJPWFyZ3VtZW50cy5sZW5ndGgsQj1uZXcgQXJyYXkoSSksUT0wO1E8STtRKyspQltRXT1hcmd1bWVudHNbUV07KGc9Y29uc29sZSkubG9nLmFwcGx5KGcsW3RoaXMuX3ByZWZpeF0uY29uY2F0KEIpKX19fSx7a2V5OiJ3YXJuIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBnO2lmKCFBLmRpc2FibGVkKXtmb3IodmFyIEk9YXJndW1lbnRzLmxlbmd0aCxCPW5ldyBBcnJheShJKSxRPTA7UTxJO1ErKylCW1FdPWFyZ3VtZW50c1tRXTsoZz1jb25zb2xlKS53YXJuLmFwcGx5KGcsW3RoaXMuX3ByZWZpeF0uY29uY2F0KEIpKX19fSx7a2V5OiJlcnJvciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZztpZighQS5kaXNhYmxlZCl7Zm9yKHZhciBJPWFyZ3VtZW50cy5sZW5ndGgsQj1uZXcgQXJyYXkoSSksUT0wO1E8STtRKyspQltRXT1hcmd1bWVudHNbUV07KGc9Y29uc29sZSkuZXJyb3IuYXBwbHkoZyxbdGhpcy5fcHJlZml4XS5jb25jYXQoQikpfX19LHtrZXk6InRhYmxlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBnO0EuZGlzYWJsZWR8fChjb25zb2xlLmdyb3VwKHRoaXMuX3ByZWZpeCksKGc9Y29uc29sZSkudGFibGUuYXBwbHkoZyxhcmd1bWVudHMpLGNvbnNvbGUuZ3JvdXBFbmQoKSl9fV0sW3trZXk6ImVuYWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtBLmRpc2FibGVkPSExfX0se2tleToiZGlzYWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtBLmRpc2FibGVkPSEwfX1dKSxBfSgpO1F5KFVELCJkaXNhYmxlZCIsITApO3ZhciBrRD1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoZyxJLEIpe2d5KHRoaXMsQSksdGhpcy52aWRlb1RyYWNrPWcsdGhpcy5hdWRpb1RyYWNrPUk7dmFyIFE9L0Nocm9tZVwvKFteLl0rKS8uZXhlYyhuYXZpZ2F0b3IudXNlckFnZW50KTt0aGlzLmZvcmNlRmlyc3RJRFI9USYmTnVtYmVyKFFbMV0pPDUwLHRoaXMubG9nPW5ldyBVRCgiRk1QNFJlbXV4ZXIiLCFCfHwhQi5vcGVuTG9nfHwhQi5vcGVuTG9nKX1yZXR1cm4gQnkoQSxbe2tleToicmVtdXgiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEEsZyxJLEIsUSxFPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sQz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sdD10aGlzLnZpZGVvVHJhY2ssaT10aGlzLmF1ZGlvVHJhY2ssZT10LmV4aXN0KCksbz1pLmV4aXN0KCkscj1bXTtyZXR1cm4gRSYmKEMmJkMuaW5pdE1lcmdlPyhlJiZyLnB1c2godGhpcy52aWRlb1RyYWNrKSxvJiZyLnB1c2godGhpcy5hdWRpb1RyYWNrKSxJPVJELmluaXRTZWdtZW50KHIpKTooZSYmKEE9UkQuaW5pdFNlZ21lbnQoW3RoaXMudmlkZW9UcmFja10pKSxvJiYoZz1SRC5pbml0U2VnbWVudChbdGhpcy5hdWRpb1RyYWNrXSkpKSksZSYmdC5oYXNTYW1wbGUoKSYmKEI9dGhpcy5fcmVtdXhWaWRlbygpKSxvJiZpLmhhc1NhbXBsZSgpJiYoUT10aGlzLl9yZW11eEF1ZGlvKCkpLHQuc2FtcGxlcz1bXSxpLnNhbXBsZXM9W10se2luaXRTZWdtZW50OkksdmlkZW9Jbml0U2VnbWVudDpBLGF1ZGlvSW5pdFNlZ21lbnQ6Zyx2aWRlb1NlZ21lbnQ6QixhdWRpb1NlZ21lbnQ6UX19fSx7a2V5OiJfcmVtdXhWaWRlbyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLnZpZGVvVHJhY2s7dGhpcy5mb3JjZUZpcnN0SURSJiYoQS5zYW1wbGVzWzBdLmZsYWc9e2RlcGVuZHNPbjoyLGlzTm9uU3luY1NhbXBsZTowfSk7dmFyIGc9QS5zYW1wbGVzLEk9MDtnLmZvckVhY2goKGZ1bmN0aW9uKEEpe0krPUEudW5pdHMucmVkdWNlKChmdW5jdGlvbihBLGcpe3JldHVybiBBK2cuYnl0ZUxlbmd0aH0pLDApLEkrPTQqQS51bml0cy5sZW5ndGh9KSk7Zm9yKHZhciBCLFE9bmV3IFVpbnQ4QXJyYXkoSSksRT1uZXcgRGF0YVZpZXcoUS5idWZmZXIpLEM9ZnVuY3Rpb24oQSxJKXtJPWdbdF07dmFyIEM9MDtJLnVuaXRzLmZvckVhY2goKGZ1bmN0aW9uKGcpe0Uuc2V0VWludDMyKEEsZy5ieXRlTGVuZ3RoKSxBKz00LFEuc2V0KGcsQSksQSs9Zy5ieXRlTGVuZ3RoLEMrPTQrZy5ieXRlTGVuZ3RofSkpLEkuc2l6ZT1DLGU9QSxCPUl9LHQ9MCxpPWcubGVuZ3RoLGU9MDt0PGk7dCsrKUMoZSxCKTt2YXIgbz1SRC5tZGF0KFEpO3JldHVybiBLeShSRC5tb29mKFtBXSksbyl9fSx7a2V5OiJfcmVtdXhBdWRpbyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLmF1ZGlvVHJhY2ssZz1uZXcgVWludDhBcnJheShBLnNhbXBsZXMucmVkdWNlKChmdW5jdGlvbihBLGcpe3JldHVybiBBK2cuc2l6ZX0pLDApKTtBLnNhbXBsZXMucmVkdWNlKChmdW5jdGlvbihBLEkpe3JldHVybiBnLnNldChJLmRhdGEsQSksQStJLnNpemV9KSwwKTt2YXIgST1SRC5tZGF0KGcpO3JldHVybiBLeShSRC5tb29mKFtBXSksSSl9fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnZpZGVvVHJhY2sucmVzZXQoKSx0aGlzLmF1ZGlvVHJhY2sucmVzZXQoKX19XSksQX0oKSxTRD1yQixwRD1FdC5maW5kSW5kZXgsTkQ9eGcsTUQ9ImZpbmRJbmRleCIsdkQ9ITA7TUQgaW5bXSYmQXJyYXkoMSlbTURdKChmdW5jdGlvbigpe3ZEPSExfSkpLFNEKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6dkR9LHtmaW5kSW5kZXg6ZnVuY3Rpb24oQSl7cmV0dXJuIHBEKHRoaXMsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksTkQoTUQpLElpKCJVaW50OCIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSksITApO2Zvcih2YXIgWUQ9ZnVuY3Rpb24oKXtyZXR1cm4gRSgoZnVuY3Rpb24gQSgpe0IodGhpcyxBKX0pLFt7a2V5OiJtaXhJbiIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24odGhpcyxBKX19LHtrZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPW5ldyB0aGlzLmNvbnN0cnVjdG9yO3JldHVybiBPYmplY3QuYXNzaWduKEEsdGhpcyksQX19XSxbe2tleToiY3JlYXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgQT1hcmd1bWVudHMubGVuZ3RoLGc9bmV3IEFycmF5KEEpLEk9MDtJPEE7SSsrKWdbSV09YXJndW1lbnRzW0ldO3JldHVybiBmdW5jdGlvbihBLGcsSSl7aWYobygpKXJldHVybiBSZWZsZWN0LmNvbnN0cnVjdC5hcHBseShudWxsLGFyZ3VtZW50cyk7dmFyIEI9W251bGxdO0IucHVzaC5hcHBseShCLGcpO3ZhciBRPW5ldyhBLmJpbmQuYXBwbHkoQSxCKSk7cmV0dXJuIEkmJnMoUSxJLnByb3RvdHlwZSksUX0odGhpcyxnKX19XSl9KCksSEQ9ZnVuY3Rpb24oQSl7ZnVuY3Rpb24gZygpe3ZhciBBLFE9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltdLEU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjQqUS5sZW5ndGg7Qih0aGlzLGcpLEE9SSh0aGlzLGcpO3ZhciBDPVE7aWYoQyBpbnN0YW5jZW9mIEFycmF5QnVmZmVyJiYoQz1uZXcgVWludDhBcnJheShDKSksKEMgaW5zdGFuY2VvZiBJbnQ4QXJyYXl8fEMgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheXx8QyBpbnN0YW5jZW9mIEludDE2QXJyYXl8fEMgaW5zdGFuY2VvZiBVaW50MTZBcnJheXx8QyBpbnN0YW5jZW9mIEludDMyQXJyYXl8fEMgaW5zdGFuY2VvZiBVaW50MzJBcnJheXx8QyBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheXx8QyBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheSkmJihDPW5ldyBVaW50OEFycmF5KEMuYnVmZmVyLEMuYnl0ZU9mZnNldCxDLmJ5dGVMZW5ndGgpKSxDIGluc3RhbmNlb2YgVWludDhBcnJheSl7Zm9yKHZhciB0PUMuYnl0ZUxlbmd0aCxpPVtdLGU9MDtlPHQ7ZSs9MSlpW2U+Pj4yXXw9Q1tlXTw8MjQtZSU0Kjg7QS53b3Jkcz1pLEEuc2lnQnl0ZXM9dH1lbHNlIEEud29yZHM9USxBLnNpZ0J5dGVzPUU7cmV0dXJuIEF9cmV0dXJuIGUoZyxBKSxFKGcsW3trZXk6InRvU3RyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybihhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06TEQpLnN0cmluZ2lmeSh0aGlzKX19LHtrZXk6ImNvbmNhdCIsdmFsdWU6ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcy53b3JkcyxJPUEud29yZHMsQj10aGlzLnNpZ0J5dGVzLFE9QS5zaWdCeXRlcztpZih0aGlzLmNsYW1wKCksQiU0KWZvcih2YXIgRT0wO0U8UTtFKz0xKXt2YXIgQz1JW0U+Pj4yXT4+PjI0LUUlNCo4JjI1NTtnW0IrRT4+PjJdfD1DPDwyNC0oQitFKSU0Kjh9ZWxzZSBmb3IodmFyIHQ9MDt0PFE7dCs9NClnW0IrdD4+PjJdPUlbdD4+PjJdO3JldHVybiB0aGlzLnNpZ0J5dGVzKz1RLHRoaXN9fSx7a2V5OiJjbGFtcCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLndvcmRzLGc9dGhpcy5zaWdCeXRlcztBW2c+Pj4yXSY9NDI5NDk2NzI5NTw8MzItZyU0KjgsQS5sZW5ndGg9TWF0aC5jZWlsKGcvNCl9fSx7a2V5OiJjbG9uZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT1jKGcsImNsb25lIix0aGlzLDEpLmNhbGwodGhpcyk7cmV0dXJuIEEud29yZHM9dGhpcy53b3Jkcy5zbGljZSgwKSxBfX1dLFt7a2V5OiJyYW5kb20iLHZhbHVlOmZ1bmN0aW9uKEEpe2Zvcih2YXIgSSxCPVtdLFE9ZnVuY3Rpb24oQSl7dmFyIGc9QSxJPTk4NzY1NDMyMSxCPTQyOTQ5NjcyOTU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIEE9KChJPTM2OTY5Kig2NTUzNSZJKSsoST4+MTYpJkIpPDwxNikrKGc9MThlMyooNjU1MzUmZykrKGc+PjE2KSZCKSZCO3JldHVybiBBLz00Mjk0OTY3Mjk2LChBKz0uNSkqKE1hdGgucmFuZG9tKCk+LjU/MTotMSl9fSxFPTA7RTxBO0UrPTQpe3ZhciBDPVEoNDI5NDk2NzI5NiooSXx8TWF0aC5yYW5kb20oKSkpO0k9OTg3NjU0MDcxKkMoKSxCLnB1c2goNDI5NDk2NzI5NipDKCl8MCl9cmV0dXJuIG5ldyBnKEIsQSl9fV0pfShZRCksTEQ9e3N0cmluZ2lmeTpmdW5jdGlvbihBKXtmb3IodmFyIGc9QS53b3JkcyxJPUEuc2lnQnl0ZXMsQj1bXSxRPTA7UTxJO1ErPTEpe3ZhciBFPWdbUT4+PjJdPj4+MjQtUSU0KjgmMjU1O0IucHVzaCgoRT4+PjQpLnRvU3RyaW5nKDE2KSksQi5wdXNoKCgxNSZFKS50b1N0cmluZygxNikpfXJldHVybiBCLmpvaW4oIiIpfSxwYXJzZTpmdW5jdGlvbihBKXtmb3IodmFyIGc9QS5sZW5ndGgsST1bXSxCPTA7QjxnO0IrPTIpSVtCPj4+M118PXBhcnNlSW50KEEuc3Vic3RyKEIsMiksMTYpPDwyNC1CJTgqNDtyZXR1cm4gbmV3IEhEKEksZy8yKX19LEpEPWZ1bmN0aW9uKEEpe2Zvcih2YXIgZz1BLmxlbmd0aCxJPVtdLEI9MDtCPGc7Qis9MSlJW0I+Pj4yXXw9KDI1NSZBLmNoYXJDb2RlQXQoQikpPDwyNC1CJTQqODtyZXR1cm4gbmV3IEhEKEksZyl9LG1EPWZ1bmN0aW9uKEEpe3JldHVybiBKRCh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoQSkpKX0sS0Q9ZnVuY3Rpb24oQSl7ZnVuY3Rpb24gZygpe3ZhciBBO3JldHVybiBCKHRoaXMsZyksKEE9SSh0aGlzLGcpKS5fbWluQnVmZmVyU2l6ZT0wLEF9cmV0dXJuIGUoZyxBKSxFKGcsW3trZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2RhdGE9bmV3IEhELHRoaXMuX25EYXRhQnl0ZXM9MH19LHtrZXk6Il9hcHBlbmQiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPUE7InN0cmluZyI9PXR5cGVvZiBnJiYoZz1tRChnKSksdGhpcy5fZGF0YS5jb25jYXQoZyksdGhpcy5fbkRhdGFCeXRlcys9Zy5zaWdCeXRlc319LHtrZXk6Il9wcm9jZXNzIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZyxJPXRoaXMuX2RhdGEsQj10aGlzLmJsb2NrU2l6ZSxRPUkud29yZHMsRT1JLnNpZ0J5dGVzLEM9RS8oNCpCKSx0PShDPUE/TWF0aC5jZWlsKEMpOk1hdGgubWF4KCgwfEMpLXRoaXMuX21pbkJ1ZmZlclNpemUsMCkpKkIsaT1NYXRoLm1pbig0KnQsRSk7aWYodCl7Zm9yKHZhciBlPTA7ZTx0O2UrPUIpdGhpcy5fZG9Qcm9jZXNzQmxvY2soUSxlKTtnPVEuc3BsaWNlKDAsdCksSS5zaWdCeXRlcy09aX1yZXR1cm4gbmV3IEhEKGcsaSl9fSx7a2V5OiJjbG9uZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT1jKGcsImNsb25lIix0aGlzLDEpLmNhbGwodGhpcyk7cmV0dXJuIEEuX2RhdGE9dGhpcy5fZGF0YS5jbG9uZSgpLEF9fV0pfShZRCkseEQ9ZnVuY3Rpb24oQSl7ZnVuY3Rpb24gZyhBKXt2YXIgUTtyZXR1cm4gQih0aGlzLGcpLChRPUkodGhpcyxnKSkuYmxvY2tTaXplPTE2LFEuY2ZnPU9iamVjdC5hc3NpZ24obmV3IFlELEEpLFEucmVzZXQoKSxRfXJldHVybiBlKGcsQSksRShnLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXtjKGcsInJlc2V0Iix0aGlzLDEpLmNhbGwodGhpcyksdGhpcy5fZG9SZXNldCgpfX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdGhpcy5fYXBwZW5kKEEpLHRoaXMuX3Byb2Nlc3MoKSx0aGlzfX0se2tleToiZmluYWxpemUiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBBJiZ0aGlzLl9hcHBlbmQoQSksdGhpcy5fZG9GaW5hbGl6ZSgpfX1dLFt7a2V5OiJfY3JlYXRlSGVscGVyIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJKXtyZXR1cm4gbmV3IEEoSSkuZmluYWxpemUoZyl9fX0se2tleToiX2NyZWF0ZUhtYWNIZWxwZXIiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEkpe3JldHVybiBuZXcgcUQoQSxJKS5maW5hbGl6ZShnKX19fV0pfShLRCkscUQ9ZnVuY3Rpb24oQSl7ZnVuY3Rpb24gZyhBLFEpe3ZhciBFO0IodGhpcyxnKSxFPUkodGhpcyxnKTt2YXIgQz1uZXcgQTtFLl9oYXNoZXI9Qzt2YXIgdD1ROyJzdHJpbmciPT10eXBlb2YgdCYmKHQ9bUQodCkpO3ZhciBpPUMuYmxvY2tTaXplLGU9NCppO3Quc2lnQnl0ZXM+ZSYmKHQ9Qy5maW5hbGl6ZShRKSksdC5jbGFtcCgpO3ZhciBvPXQuY2xvbmUoKTtFLl9vS2V5PW87dmFyIHI9dC5jbG9uZSgpO0UuX2lLZXk9cjtmb3IodmFyIG49by53b3JkcyxhPXIud29yZHMscz0wO3M8aTtzKz0xKW5bc11ePTE1NDk1NTY4MjgsYVtzXV49OTA5NTIyNDg2O3JldHVybiBvLnNpZ0J5dGVzPWUsci5zaWdCeXRlcz1lLEUucmVzZXQoKSxFfXJldHVybiBlKGcsQSksRShnLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLl9oYXNoZXI7QS5yZXNldCgpLEEudXBkYXRlKHRoaXMuX2lLZXkpfX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdGhpcy5faGFzaGVyLnVwZGF0ZShBKSx0aGlzfX0se2tleToiZmluYWxpemUiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMuX2hhc2hlcixJPWcuZmluYWxpemUoQSk7cmV0dXJuIGcucmVzZXQoKSxnLmZpbmFsaXplKHRoaXMuX29LZXkuY2xvbmUoKS5jb25jYXQoSSkpfX1dKX0oWUQpLGJEPXtzdHJpbmdpZnk6ZnVuY3Rpb24oQSl7dmFyIGc9QS53b3JkcyxJPUEuc2lnQnl0ZXMsQj10aGlzLl9tYXA7QS5jbGFtcCgpO2Zvcih2YXIgUT1bXSxFPTA7RTxJO0UrPTMpZm9yKHZhciBDPShnW0U+Pj4yXT4+PjI0LUUlNCo4JjI1NSk8PDE2fChnW0UrMT4+PjJdPj4+MjQtKEUrMSklNCo4JjI1NSk8PDh8Z1tFKzI+Pj4yXT4+PjI0LShFKzIpJTQqOCYyNTUsdD0wO3Q8NCYmRSsuNzUqdDxJO3QrPTEpUS5wdXNoKEIuY2hhckF0KEM+Pj42KigzLXQpJjYzKSk7dmFyIGk9Qi5jaGFyQXQoNjQpO2lmKGkpZm9yKDtRLmxlbmd0aCU0OylRLnB1c2goaSk7cmV0dXJuIFEuam9pbigiIil9LHBhcnNlOmZ1bmN0aW9uKEEpe3ZhciBnPUEubGVuZ3RoLEk9dGhpcy5fbWFwLEI9dGhpcy5fcmV2ZXJzZU1hcDtpZighQil7dGhpcy5fcmV2ZXJzZU1hcD1bXSxCPXRoaXMuX3JldmVyc2VNYXA7Zm9yKHZhciBRPTA7UTxJLmxlbmd0aDtRKz0xKUJbSS5jaGFyQ29kZUF0KFEpXT1RfXZhciBFPUkuY2hhckF0KDY0KTtpZihFKXt2YXIgQz1BLmluZGV4T2YoRSk7LTEhPT1DJiYoZz1DKX1yZXR1cm4gZnVuY3Rpb24oQSxnLEkpe2Zvcih2YXIgQj1bXSxRPTAsRT0wO0U8ZztFKz0xKWlmKEUlNCl7dmFyIEM9SVtBLmNoYXJDb2RlQXQoRS0xKV08PEUlNCoyfElbQS5jaGFyQ29kZUF0KEUpXT4+PjYtRSU0KjI7QltRPj4+Ml18PUM8PDI0LVElNCo4LFErPTF9cmV0dXJuIEhELmNyZWF0ZShCLFEpfShBLGcsQil9LF9tYXA6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89In0sVEQ9W10sT0Q9MDtPRDw2NDtPRCs9MSlURFtPRF09NDI5NDk2NzI5NipNYXRoLmFicyhNYXRoLnNpbihPRCsxKSl8MDt2YXIgUEQ9ZnVuY3Rpb24oQSxnLEksQixRLEUsQyl7dmFyIHQ9QSsoZyZJfH5nJkIpK1ErQztyZXR1cm4odDw8RXx0Pj4+MzItRSkrZ30sakQ9ZnVuY3Rpb24oQSxnLEksQixRLEUsQyl7dmFyIHQ9QSsoZyZCfEkmfkIpK1ErQztyZXR1cm4odDw8RXx0Pj4+MzItRSkrZ30sV0Q9ZnVuY3Rpb24oQSxnLEksQixRLEUsQyl7dmFyIHQ9QSsoZ15JXkIpK1ErQztyZXR1cm4odDw8RXx0Pj4+MzItRSkrZ30sWkQ9ZnVuY3Rpb24oQSxnLEksQixRLEUsQyl7dmFyIHQ9QSsoSV4oZ3x+QikpK1ErQztyZXR1cm4odDw8RXx0Pj4+MzItRSkrZ30sWEQ9ZnVuY3Rpb24oQSl7ZnVuY3Rpb24gZygpe3JldHVybiBCKHRoaXMsZyksSSh0aGlzLGcsYXJndW1lbnRzKX1yZXR1cm4gZShnLEEpLEUoZyxbe2tleToiX2RvUmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgSEQoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OF0pfX0se2tleToiX2RvUHJvY2Vzc0Jsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1BLEI9MDtCPDE2O0IrPTEpe3ZhciBRPWcrQixFPUFbUV07SVtRXT0xNjcxMTkzNSYoRTw8OHxFPj4+MjQpfDQyNzgyNTUzNjAmKEU8PDI0fEU+Pj44KX12YXIgQz10aGlzLl9oYXNoLndvcmRzLHQ9SVtnKzBdLGk9SVtnKzFdLGU9SVtnKzJdLG89SVtnKzNdLHI9SVtnKzRdLG49SVtnKzVdLGE9SVtnKzZdLHM9SVtnKzddLGM9SVtnKzhdLGg9SVtnKzldLGY9SVtnKzEwXSx1PUlbZysxMV0seT1JW2crMTJdLEQ9SVtnKzEzXSxsPUlbZysxNF0sdz1JW2crMTVdLGQ9Q1swXSxGPUNbMV0sRz1DWzJdLFI9Q1szXTtkPVBEKGQsRixHLFIsdCw3LFREWzBdKSxSPVBEKFIsZCxGLEcsaSwxMixURFsxXSksRz1QRChHLFIsZCxGLGUsMTcsVERbMl0pLEY9UEQoRixHLFIsZCxvLDIyLFREWzNdKSxkPVBEKGQsRixHLFIsciw3LFREWzRdKSxSPVBEKFIsZCxGLEcsbiwxMixURFs1XSksRz1QRChHLFIsZCxGLGEsMTcsVERbNl0pLEY9UEQoRixHLFIsZCxzLDIyLFREWzddKSxkPVBEKGQsRixHLFIsYyw3LFREWzhdKSxSPVBEKFIsZCxGLEcsaCwxMixURFs5XSksRz1QRChHLFIsZCxGLGYsMTcsVERbMTBdKSxGPVBEKEYsRyxSLGQsdSwyMixURFsxMV0pLGQ9UEQoZCxGLEcsUix5LDcsVERbMTJdKSxSPVBEKFIsZCxGLEcsRCwxMixURFsxM10pLEc9UEQoRyxSLGQsRixsLDE3LFREWzE0XSksRj1QRChGLEcsUixkLHcsMjIsVERbMTVdKSxkPWpEKGQsRixHLFIsaSw1LFREWzE2XSksUj1qRChSLGQsRixHLGEsOSxURFsxN10pLEc9akQoRyxSLGQsRix1LDE0LFREWzE4XSksRj1qRChGLEcsUixkLHQsMjAsVERbMTldKSxkPWpEKGQsRixHLFIsbiw1LFREWzIwXSksUj1qRChSLGQsRixHLGYsOSxURFsyMV0pLEc9akQoRyxSLGQsRix3LDE0LFREWzIyXSksRj1qRChGLEcsUixkLHIsMjAsVERbMjNdKSxkPWpEKGQsRixHLFIsaCw1LFREWzI0XSksUj1qRChSLGQsRixHLGwsOSxURFsyNV0pLEc9akQoRyxSLGQsRixvLDE0LFREWzI2XSksRj1qRChGLEcsUixkLGMsMjAsVERbMjddKSxkPWpEKGQsRixHLFIsRCw1LFREWzI4XSksUj1qRChSLGQsRixHLGUsOSxURFsyOV0pLEc9akQoRyxSLGQsRixzLDE0LFREWzMwXSksRj1qRChGLEcsUixkLHksMjAsVERbMzFdKSxkPVdEKGQsRixHLFIsbiw0LFREWzMyXSksUj1XRChSLGQsRixHLGMsMTEsVERbMzNdKSxHPVdEKEcsUixkLEYsdSwxNixURFszNF0pLEY9V0QoRixHLFIsZCxsLDIzLFREWzM1XSksZD1XRChkLEYsRyxSLGksNCxURFszNl0pLFI9V0QoUixkLEYsRyxyLDExLFREWzM3XSksRz1XRChHLFIsZCxGLHMsMTYsVERbMzhdKSxGPVdEKEYsRyxSLGQsZiwyMyxURFszOV0pLGQ9V0QoZCxGLEcsUixELDQsVERbNDBdKSxSPVdEKFIsZCxGLEcsdCwxMSxURFs0MV0pLEc9V0QoRyxSLGQsRixvLDE2LFREWzQyXSksRj1XRChGLEcsUixkLGEsMjMsVERbNDNdKSxkPVdEKGQsRixHLFIsaCw0LFREWzQ0XSksUj1XRChSLGQsRixHLHksMTEsVERbNDVdKSxHPVdEKEcsUixkLEYsdywxNixURFs0Nl0pLEY9V0QoRixHLFIsZCxlLDIzLFREWzQ3XSksZD1aRChkLEYsRyxSLHQsNixURFs0OF0pLFI9WkQoUixkLEYsRyxzLDEwLFREWzQ5XSksRz1aRChHLFIsZCxGLGwsMTUsVERbNTBdKSxGPVpEKEYsRyxSLGQsbiwyMSxURFs1MV0pLGQ9WkQoZCxGLEcsUix5LDYsVERbNTJdKSxSPVpEKFIsZCxGLEcsbywxMCxURFs1M10pLEc9WkQoRyxSLGQsRixmLDE1LFREWzU0XSksRj1aRChGLEcsUixkLGksMjEsVERbNTVdKSxkPVpEKGQsRixHLFIsYyw2LFREWzU2XSksUj1aRChSLGQsRixHLHcsMTAsVERbNTddKSxHPVpEKEcsUixkLEYsYSwxNSxURFs1OF0pLEY9WkQoRixHLFIsZCxELDIxLFREWzU5XSksZD1aRChkLEYsRyxSLHIsNixURFs2MF0pLFI9WkQoUixkLEYsRyx1LDEwLFREWzYxXSksRz1aRChHLFIsZCxGLGUsMTUsVERbNjJdKSxGPVpEKEYsRyxSLGQsaCwyMSxURFs2M10pLENbMF09Q1swXStkfDAsQ1sxXT1DWzFdK0Z8MCxDWzJdPUNbMl0rR3wwLENbM109Q1szXStSfDB9fSx7a2V5OiJfZG9GaW5hbGl6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLl9kYXRhLGc9QS53b3JkcyxJPTgqdGhpcy5fbkRhdGFCeXRlcyxCPTgqQS5zaWdCeXRlcztnW0I+Pj41XXw9MTI4PDwyNC1CJTMyO3ZhciBRPU1hdGguZmxvb3IoSS80Mjk0OTY3Mjk2KSxFPUk7Z1sxNSsoQis2ND4+Pjk8PDQpXT0xNjcxMTkzNSYoUTw8OHxRPj4+MjQpfDQyNzgyNTUzNjAmKFE8PDI0fFE+Pj44KSxnWzE0KyhCKzY0Pj4+OTw8NCldPTE2NzExOTM1JihFPDw4fEU+Pj4yNCl8NDI3ODI1NTM2MCYoRTw8MjR8RT4+PjgpLEEuc2lnQnl0ZXM9NCooZy5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgQz10aGlzLl9oYXNoLHQ9Qy53b3JkcyxpPTA7aTw0O2krPTEpe3ZhciBlPXRbaV07dFtpXT0xNjcxMTkzNSYoZTw8OHxlPj4+MjQpfDQyNzgyNTUzNjAmKGU8PDI0fGU+Pj44KX1yZXR1cm4gQ319LHtrZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPWMoZywiY2xvbmUiLHRoaXMsMSkuY2FsbCh0aGlzKTtyZXR1cm4gQS5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksQX19XSl9KHhEKTt4RC5fY3JlYXRlSGVscGVyKFhEKSx4RC5fY3JlYXRlSG1hY0hlbHBlcihYRCk7dmFyIFZEPWZ1bmN0aW9uKEEpe2Z1bmN0aW9uIGcoQSl7dmFyIFE7cmV0dXJuIEIodGhpcyxnKSwoUT1JKHRoaXMsZykpLmNmZz1PYmplY3QuYXNzaWduKG5ldyBZRCx7a2V5U2l6ZTo0LGhhc2hlcjpYRCxpdGVyYXRpb25zOjF9LEEpLFF9cmV0dXJuIGUoZyxBKSxFKGcsW3trZXk6ImNvbXB1dGUiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJLEI9dGhpcy5jZmcsUT1CLmhhc2hlci5jcmVhdGUoKSxFPUhELmNyZWF0ZSgpLEM9RS53b3Jkcyx0PUIua2V5U2l6ZSxpPUIuaXRlcmF0aW9ucztDLmxlbmd0aDx0Oyl7SSYmUS51cGRhdGUoSSksST1RLnVwZGF0ZShBKS5maW5hbGl6ZShnKSxRLnJlc2V0KCk7Zm9yKHZhciBlPTE7ZTxpO2UrPTEpST1RLmZpbmFsaXplKEkpLFEucmVzZXQoKTtFLmNvbmNhdChJKX1yZXR1cm4gRS5zaWdCeXRlcz00KnQsRX19XSl9KFlEKSx6RD1mdW5jdGlvbihBKXtmdW5jdGlvbiBnKEEsUSxFKXt2YXIgQztyZXR1cm4gQih0aGlzLGcpLChDPUkodGhpcyxnKSkuY2ZnPU9iamVjdC5hc3NpZ24obmV3IFlELEUpLEMuX3hmb3JtTW9kZT1BLEMuX2tleT1RLEMucmVzZXQoKSxDfXJldHVybiBlKGcsQSksRShnLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXtjKGcsInJlc2V0Iix0aGlzLDEpLmNhbGwodGhpcyksdGhpcy5fZG9SZXNldCgpfX0se2tleToicHJvY2VzcyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuX2FwcGVuZChBKSx0aGlzLl9wcm9jZXNzKCl9fSx7a2V5OiJmaW5hbGl6ZSIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIEEmJnRoaXMuX2FwcGVuZChBKSx0aGlzLl9kb0ZpbmFsaXplKCl9fV0sW3trZXk6ImNyZWF0ZUVuY3J5cHRvciIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5fRU5DX1hGT1JNX01PREUsQSxnKX19LHtrZXk6ImNyZWF0ZURlY3J5cHRvciIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5fREVDX1hGT1JNX01PREUsQSxnKX19LHtrZXk6Il9jcmVhdGVIZWxwZXIiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPWZ1bmN0aW9uKEEpe3JldHVybiJzdHJpbmciPT10eXBlb2YgQT90bDpFbH07cmV0dXJue2VuY3J5cHQ6ZnVuY3Rpb24oSSxCLFEpe3JldHVybiBnKEIpLmVuY3J5cHQoQSxJLEIsUSl9LGRlY3J5cHQ6ZnVuY3Rpb24oSSxCLFEpe3JldHVybiBnKEIpLmRlY3J5cHQoQSxJLEIsUSl9fX19XSl9KEtEKTt6RC5fRU5DX1hGT1JNX01PREU9MSx6RC5fREVDX1hGT1JNX01PREU9Mix6RC5rZXlTaXplPTQsekQuaXZTaXplPTQ7dmFyIF9EPWZ1bmN0aW9uKEEpe2Z1bmN0aW9uIGcoQSxRKXt2YXIgRTtyZXR1cm4gQih0aGlzLGcpLChFPUkodGhpcyxnKSkuX2NpcGhlcj1BLEUuX2l2PVEsRX1yZXR1cm4gZShnLEEpLEUoZyxudWxsLFt7a2V5OiJjcmVhdGVFbmNyeXB0b3IiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIHRoaXMuRW5jcnlwdG9yLmNyZWF0ZShBLGcpfX0se2tleToiY3JlYXRlRGVjcnlwdG9yIix2YWx1ZTpmdW5jdGlvbihBLGcpe3JldHVybiB0aGlzLkRlY3J5cHRvci5jcmVhdGUoQSxnKX19XSl9KFlEKTtmdW5jdGlvbiAkRChBLGcsSSl7dmFyIEIsUT1BLEU9dGhpcy5faXY7RT8oQj1FLHRoaXMuX2l2PXZvaWQgMCk6Qj10aGlzLl9wcmV2QmxvY2s7Zm9yKHZhciBDPTA7QzxJO0MrPTEpUVtnK0NdXj1CW0NdfXZhciBBbD1mdW5jdGlvbihBKXtmdW5jdGlvbiBnKCl7cmV0dXJuIEIodGhpcyxnKSxJKHRoaXMsZyxhcmd1bWVudHMpfXJldHVybiBlKGcsQSksRShnKX0oX0QpO0FsLkVuY3J5cHRvcj1mdW5jdGlvbihBKXtmdW5jdGlvbiBnKCl7cmV0dXJuIEIodGhpcyxnKSxJKHRoaXMsZyxhcmd1bWVudHMpfXJldHVybiBlKGcsQSksRShnLFt7a2V5OiJwcm9jZXNzQmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dmFyIEk9dGhpcy5fY2lwaGVyLEI9SS5ibG9ja1NpemU7JEQuY2FsbCh0aGlzLEEsZyxCKSxJLmVuY3J5cHRCbG9jayhBLGcpLHRoaXMuX3ByZXZCbG9jaz1BLnNsaWNlKGcsZytCKX19XSl9KEFsKSxBbC5EZWNyeXB0b3I9ZnVuY3Rpb24oQSl7ZnVuY3Rpb24gZygpe3JldHVybiBCKHRoaXMsZyksSSh0aGlzLGcsYXJndW1lbnRzKX1yZXR1cm4gZShnLEEpLEUoZyxbe2tleToicHJvY2Vzc0Jsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJPXRoaXMuX2NpcGhlcixCPUkuYmxvY2tTaXplLFE9QS5zbGljZShnLGcrQik7SS5kZWNyeXB0QmxvY2soQSxnKSwkRC5jYWxsKHRoaXMsQSxnLEIpLHRoaXMuX3ByZXZCbG9jaz1RfX1dKX0oQWwpO3ZhciBnbD17cGFkOmZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPTQqZyxCPUktQS5zaWdCeXRlcyVJLFE9Qjw8MjR8Qjw8MTZ8Qjw8OHxCLEU9W10sQz0wO0M8QjtDKz00KUUucHVzaChRKTt2YXIgdD1IRC5jcmVhdGUoRSxCKTtBLmNvbmNhdCh0KX0sdW5wYWQ6ZnVuY3Rpb24oQSl7dmFyIGc9QSxJPTI1NSZnLndvcmRzW2cuc2lnQnl0ZXMtMT4+PjJdO2cuc2lnQnl0ZXMtPUl9fSxJbD1mdW5jdGlvbihBKXtmdW5jdGlvbiBnKEEsUSxFKXt2YXIgQztyZXR1cm4gQih0aGlzLGcpLChDPUkodGhpcyxnLFtBLFEsT2JqZWN0LmFzc2lnbih7bW9kZTpBbCxwYWRkaW5nOmdsfSxFKV0pKS5ibG9ja1NpemU9NCxDfXJldHVybiBlKGcsQSksRShnLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQTtjKGcsInJlc2V0Iix0aGlzLDEpLmNhbGwodGhpcyk7dmFyIEk9dGhpcy5jZmcsQj1JLml2LFE9SS5tb2RlO3RoaXMuX3hmb3JtTW9kZT09PXRoaXMuY29uc3RydWN0b3IuX0VOQ19YRk9STV9NT0RFP0E9US5jcmVhdGVFbmNyeXB0b3I6KEE9US5jcmVhdGVEZWNyeXB0b3IsdGhpcy5fbWluQnVmZmVyU2l6ZT0xKSx0aGlzLl9tb2RlPUEuY2FsbChRLHRoaXMsQiYmQi53b3JkcyksdGhpcy5fbW9kZS5fX2NyZWF0b3I9QX19LHtrZXk6Il9kb1Byb2Nlc3NCbG9jayIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt0aGlzLl9tb2RlLnByb2Nlc3NCbG9jayhBLGcpfX0se2tleToiX2RvRmluYWxpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEEsZz10aGlzLmNmZy5wYWRkaW5nO3JldHVybiB0aGlzLl94Zm9ybU1vZGU9PT10aGlzLmNvbnN0cnVjdG9yLl9FTkNfWEZPUk1fTU9ERT8oZy5wYWQodGhpcy5fZGF0YSx0aGlzLmJsb2NrU2l6ZSksQT10aGlzLl9wcm9jZXNzKCEwKSk6KEE9dGhpcy5fcHJvY2VzcyghMCksZy51bnBhZChBKSksQX19XSl9KHpEKSxCbD1mdW5jdGlvbihBKXtmdW5jdGlvbiBnKEEpe3ZhciBRO3JldHVybiBCKHRoaXMsZyksKFE9SSh0aGlzLGcpKS5taXhJbihBKSxRfXJldHVybiBlKGcsQSksRShnLFt7a2V5OiJ0b1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuKEF8fHRoaXMuZm9ybWF0dGVyKS5zdHJpbmdpZnkodGhpcyl9fV0pfShZRCksUWw9e3N0cmluZ2lmeTpmdW5jdGlvbihBKXt2YXIgZz1BLmNpcGhlcnRleHQsST1BLnNhbHQ7cmV0dXJuKEk/SEQuY3JlYXRlKFsxMzk4ODkzNjg0LDE3MDEwNzY4MzFdKS5jb25jYXQoSSkuY29uY2F0KGcpOmcpLnRvU3RyaW5nKGJEKX0scGFyc2U6ZnVuY3Rpb24oQSl7dmFyIGcsST1iRC5wYXJzZShBKSxCPUkud29yZHM7cmV0dXJuIDEzOTg4OTM2ODQ9PT1CWzBdJiYxNzAxMDc2ODMxPT09QlsxXSYmKGc9SEQuY3JlYXRlKEIuc2xpY2UoMiw0KSksQi5zcGxpY2UoMCw0KSxJLnNpZ0J5dGVzLT0xNiksQmwuY3JlYXRlKHtjaXBoZXJ0ZXh0Okksc2FsdDpnfSl9fSxFbD1mdW5jdGlvbihBKXtmdW5jdGlvbiBnKCl7cmV0dXJuIEIodGhpcyxnKSxJKHRoaXMsZyxhcmd1bWVudHMpfXJldHVybiBlKGcsQSksRShnLG51bGwsW3trZXk6ImVuY3J5cHQiLHZhbHVlOmZ1bmN0aW9uKEEsZyxJLEIpe3ZhciBRPU9iamVjdC5hc3NpZ24obmV3IFlELHRoaXMuY2ZnLEIpLEU9QS5jcmVhdGVFbmNyeXB0b3IoSSxRKSxDPUUuZmluYWxpemUoZyksdD1FLmNmZztyZXR1cm4gQmwuY3JlYXRlKHtjaXBoZXJ0ZXh0OkMsa2V5OkksaXY6dC5pdixhbGdvcml0aG06QSxtb2RlOnQubW9kZSxwYWRkaW5nOnQucGFkZGluZyxibG9ja1NpemU6RS5ibG9ja1NpemUsZm9ybWF0dGVyOlEuZm9ybWF0fSl9fSx7a2V5OiJkZWNyeXB0Iix2YWx1ZTpmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1nLEU9T2JqZWN0LmFzc2lnbihuZXcgWUQsdGhpcy5jZmcsQik7cmV0dXJuIFE9dGhpcy5fcGFyc2UoUSxFLmZvcm1hdCksQS5jcmVhdGVEZWNyeXB0b3IoSSxFKS5maW5hbGl6ZShRLmNpcGhlcnRleHQpfX0se2tleToiX3BhcnNlIix2YWx1ZTpmdW5jdGlvbihBLGcpe3JldHVybiJzdHJpbmciPT10eXBlb2YgQT9nLnBhcnNlKEEsdGhpcyk6QX19XSl9KFlEKTtFbC5jZmc9T2JqZWN0LmFzc2lnbihuZXcgWUQse2Zvcm1hdDpRbH0pO3ZhciBDbD17ZXhlY3V0ZTpmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1CO1F8fChRPUhELnJhbmRvbSg4KSk7dmFyIEU9VkQuY3JlYXRlKHtrZXlTaXplOmcrSX0pLmNvbXB1dGUoQSxRKSxDPUhELmNyZWF0ZShFLndvcmRzLnNsaWNlKGcpLDQqSSk7cmV0dXJuIEUuc2lnQnl0ZXM9NCpnLEJsLmNyZWF0ZSh7a2V5OkUsaXY6QyxzYWx0OlF9KX19LHRsPWZ1bmN0aW9uKEEpe2Z1bmN0aW9uIGcoKXtyZXR1cm4gQih0aGlzLGcpLEkodGhpcyxnLGFyZ3VtZW50cyl9cmV0dXJuIGUoZyxBKSxFKGcsbnVsbCxbe2tleToiZW5jcnlwdCIsdmFsdWU6ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9T2JqZWN0LmFzc2lnbihuZXcgWUQsdGhpcy5jZmcsQiksRT1RLmtkZi5leGVjdXRlKEksQS5rZXlTaXplLEEuaXZTaXplKTtRLml2PUUuaXY7dmFyIEM9RWwuZW5jcnlwdC5jYWxsKHRoaXMsQSxnLEUua2V5LFEpO3JldHVybiBDLm1peEluKEUpLEN9fSx7a2V5OiJkZWNyeXB0Iix2YWx1ZTpmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1nLEU9T2JqZWN0LmFzc2lnbihuZXcgWUQsdGhpcy5jZmcsQik7UT10aGlzLl9wYXJzZShRLEUuZm9ybWF0KTt2YXIgQz1FLmtkZi5leGVjdXRlKEksQS5rZXlTaXplLEEuaXZTaXplLFEuc2FsdCk7cmV0dXJuIEUuaXY9Qy5pdixFbC5kZWNyeXB0LmNhbGwodGhpcyxBLFEsQy5rZXksRSl9fV0pfShFbCk7dGwuY2ZnPU9iamVjdC5hc3NpZ24oRWwuY2ZnLHtrZGY6Q2x9KTtmb3IodmFyIGlsPVtdLGVsPVtdLG9sPVtdLHJsPVtdLG5sPVtdLGFsPVtdLHNsPVtdLGNsPVtdLGhsPVtdLGZsPVtdLHVsPVtdLHlsPTA7eWw8MjU2O3lsKz0xKXVsW3lsXT15bDwxMjg/eWw8PDE6eWw8PDFeMjgzO2Zvcih2YXIgRGw9MCxsbD0wLHdsPTA7d2w8MjU2O3dsKz0xKXt2YXIgZGw9bGxebGw8PDFebGw8PDJebGw8PDNebGw8PDQ7ZGw9ZGw+Pj44XjI1NSZkbF45OSxpbFtEbF09ZGwsZWxbZGxdPURsO3ZhciBGbD11bFtEbF0sR2w9dWxbRmxdLFJsPXVsW0dsXSxVbD0yNTcqdWxbZGxdXjE2ODQzMDA4KmRsO29sW0RsXT1VbDw8MjR8VWw+Pj44LHJsW0RsXT1VbDw8MTZ8VWw+Pj4xNixubFtEbF09VWw8PDh8VWw+Pj4yNCxhbFtEbF09VWwsVWw9MTY4NDMwMDkqUmxeNjU1MzcqR2xeMjU3KkZsXjE2ODQzMDA4KkRsLHNsW2RsXT1VbDw8MjR8VWw+Pj44LGNsW2RsXT1VbDw8MTZ8VWw+Pj4xNixobFtkbF09VWw8PDh8VWw+Pj4yNCxmbFtkbF09VWwsRGw/KERsPUZsXnVsW3VsW3VsW1JsXkZsXV1dLGxsXj11bFt1bFtsbF1dKTpEbD1sbD0xfXZhciBrbD1bMCwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NF0sU2w9ZnVuY3Rpb24oQSl7ZnVuY3Rpb24gZygpe3JldHVybiBCKHRoaXMsZyksSSh0aGlzLGcsYXJndW1lbnRzKX1yZXR1cm4gZShnLEEpLEUoZyxbe2tleToiX2RvUmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE7aWYoIXRoaXMuX25Sb3VuZHN8fHRoaXMuX2tleVByaW9yUmVzZXQhPT10aGlzLl9rZXkpe3RoaXMuX2tleVByaW9yUmVzZXQ9dGhpcy5fa2V5O3ZhciBnPXRoaXMuX2tleVByaW9yUmVzZXQsST1nLndvcmRzLEI9Zy5zaWdCeXRlcy80O3RoaXMuX25Sb3VuZHM9Qis2O3ZhciBRPTQqKHRoaXMuX25Sb3VuZHMrMSk7dGhpcy5fa2V5U2NoZWR1bGU9W107Zm9yKHZhciBFPXRoaXMuX2tleVNjaGVkdWxlLEM9MDtDPFE7Qys9MSlDPEI/RVtDXT1JW0NdOihBPUVbQy0xXSxDJUI/Qj42JiZDJUI9PTQmJihBPWlsW0E+Pj4yNF08PDI0fGlsW0E+Pj4xNiYyNTVdPDwxNnxpbFtBPj4+OCYyNTVdPDw4fGlsWzI1NSZBXSk6KEE9aWxbKEE9QTw8OHxBPj4+MjQpPj4+MjRdPDwyNHxpbFtBPj4+MTYmMjU1XTw8MTZ8aWxbQT4+PjgmMjU1XTw8OHxpbFsyNTUmQV0sQV49a2xbQy9CfDBdPDwyNCksRVtDXT1FW0MtQl1eQSk7dGhpcy5faW52S2V5U2NoZWR1bGU9W107Zm9yKHZhciB0PXRoaXMuX2ludktleVNjaGVkdWxlLGk9MDtpPFE7aSs9MSl7dmFyIGU9US1pO0E9aSU0P0VbZV06RVtlLTRdLHRbaV09aTw0fHxlPD00P0E6c2xbaWxbQT4+PjI0XV1eY2xbaWxbQT4+PjE2JjI1NV1dXmhsW2lsW0E+Pj44JjI1NV1dXmZsW2lsWzI1NSZBXV19fX19LHtrZXk6ImVuY3J5cHRCbG9jayIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt0aGlzLl9kb0NyeXB0QmxvY2soQSxnLHRoaXMuX2tleVNjaGVkdWxlLG9sLHJsLG5sLGFsLGlsKX19LHtrZXk6ImRlY3J5cHRCbG9jayIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgST1BLEI9SVtnKzFdO0lbZysxXT1JW2crM10sSVtnKzNdPUIsdGhpcy5fZG9DcnlwdEJsb2NrKEksZyx0aGlzLl9pbnZLZXlTY2hlZHVsZSxzbCxjbCxobCxmbCxlbCksQj1JW2crMV0sSVtnKzFdPUlbZyszXSxJW2crM109Qn19LHtrZXk6Il9kb0NyeXB0QmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyxJLEIsUSxFLEMsdCl7Zm9yKHZhciBpPUEsZT10aGlzLl9uUm91bmRzLG89aVtnXV5JWzBdLHI9aVtnKzFdXklbMV0sbj1pW2crMl1eSVsyXSxhPWlbZyszXV5JWzNdLHM9NCxjPTE7YzxlO2MrPTEpe3ZhciBoPUJbbz4+PjI0XV5RW3I+Pj4xNiYyNTVdXkVbbj4+PjgmMjU1XV5DWzI1NSZhXV5JW3NdO3MrPTE7dmFyIGY9QltyPj4+MjRdXlFbbj4+PjE2JjI1NV1eRVthPj4+OCYyNTVdXkNbMjU1Jm9dXklbc107cys9MTt2YXIgdT1CW24+Pj4yNF1eUVthPj4+MTYmMjU1XV5FW28+Pj44JjI1NV1eQ1syNTUmcl1eSVtzXTtzKz0xO3ZhciB5PUJbYT4+PjI0XV5RW28+Pj4xNiYyNTVdXkVbcj4+PjgmMjU1XV5DWzI1NSZuXV5JW3NdO3MrPTEsbz1oLHI9ZixuPXUsYT15fXZhciBEPSh0W28+Pj4yNF08PDI0fHRbcj4+PjE2JjI1NV08PDE2fHRbbj4+PjgmMjU1XTw8OHx0WzI1NSZhXSleSVtzXTtzKz0xO3ZhciBsPSh0W3I+Pj4yNF08PDI0fHRbbj4+PjE2JjI1NV08PDE2fHRbYT4+PjgmMjU1XTw8OHx0WzI1NSZvXSleSVtzXTtzKz0xO3ZhciB3PSh0W24+Pj4yNF08PDI0fHRbYT4+PjE2JjI1NV08PDE2fHRbbz4+PjgmMjU1XTw8OHx0WzI1NSZyXSleSVtzXTtzKz0xO3ZhciBkPSh0W2E+Pj4yNF08PDI0fHRbbz4+PjE2JjI1NV08PDE2fHRbcj4+PjgmMjU1XTw8OHx0WzI1NSZuXSleSVtzXTtzKz0xLGlbZ109RCxpW2crMV09bCxpW2crMl09dyxpW2crM109ZH19XSl9KElsKTtTbC5rZXlTaXplPTg7dmFyIHBsPUlsLl9jcmVhdGVIZWxwZXIoU2wpLE5sPWZ1bmN0aW9uKEEpe2Z1bmN0aW9uIGcoKXtyZXR1cm4gQih0aGlzLGcpLEkodGhpcyxnLGFyZ3VtZW50cyl9cmV0dXJuIGUoZyxBKSxFKGcpfShfRCk7TmwuRW5jcnlwdG9yPWZ1bmN0aW9uKEEpe2Z1bmN0aW9uIGcoKXtyZXR1cm4gQih0aGlzLGcpLEkodGhpcyxnLGFyZ3VtZW50cyl9cmV0dXJuIGUoZyxBKSxFKGcsW3trZXk6InByb2Nlc3NCbG9jayIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgST1BLEI9dGhpcy5fY2lwaGVyLFE9Qi5ibG9ja1NpemUsRT10aGlzLl9pdixDPXRoaXMuX2NvdW50ZXI7RSYmKHRoaXMuX2NvdW50ZXI9RS5zbGljZSgwKSxDPXRoaXMuX2NvdW50ZXIsdGhpcy5faXY9dm9pZCAwKTt2YXIgdD1DLnNsaWNlKDApO0IuZW5jcnlwdEJsb2NrKHQsMCksQ1tRLTFdPUNbUS0xXSsxfDA7Zm9yKHZhciBpPTA7aTxRO2krPTEpSVtnK2ldXj10W2ldfX1dKX0oTmwpLE5sLkRlY3J5cHRvcj1ObC5FbmNyeXB0b3I7dmFyIE1sPXtwYWQ6ZnVuY3Rpb24oKXt9LHVucGFkOmZ1bmN0aW9uKCl7fX0sdmw9e2RlY3J5cHRXb3JkQXJyYXk6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCPUxELnBhcnNlKGcpLFE9TEQucGFyc2UoankoSSkpLEU9SEQuY3JlYXRlKG5ldyBVaW50OEFycmF5KEEpKSxDPXBsLmRlY3J5cHQoQmwuY3JlYXRlKHtjaXBoZXJ0ZXh0OkV9KSxCLHtpdjpRLG1vZGU6TmwscGFkZGluZzpNbH0pO3JldHVybiB2bC53b3JkQXJyYXlUb1VpbnQ4QXJyYXkoQyl9LHdvcmRBcnJheVRvVWludDhBcnJheTpmdW5jdGlvbihBKXtmb3IodmFyIGc9QS5zaWdCeXRlcyxJPUEud29yZHMsQj1uZXcgVWludDhBcnJheShnKSxRPTAsRT0wO1EhPT1nOyl7dmFyIEM9SVtFKytdO2lmKEJbUSsrXT0oNDI3ODE5MDA4MCZDKT4+PjI0LFE9PT1nKWJyZWFrO2lmKEJbUSsrXT0oMTY3MTE2ODAmQyk+Pj4xNixRPT09ZylicmVhaztpZihCW1ErK109KDY1MjgwJkMpPj4+OCxRPT09ZylicmVhaztCW1ErK109MjU1JkN9cmV0dXJuIEJ9LGRlY29kZXJBRVNDVFJEYXRhOmZ1bmN0aW9uKEEsZyxJKXtpZihBLnZpZGVvU2VuYyl7dmFyIEI9QS5raWRWYWx1ZSxRPUEudmlkZW9TZW5jO0Euc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihnLEUpe3ZhciBDPVFbRV0sdD1nLmRhdGEsaT1bXSxlPVtdLG89Qy5Jbml0aWFsaXphdGlvblZlY3RvcjtpZihDLnN1YnNhbXBsZXMmJkMuc3Vic2FtcGxlcy5sZW5ndGgpQy5zdWJzYW1wbGVzLmZvckVhY2goKGZ1bmN0aW9uKEEpe3ZhciBnPUEuQnl0ZXNPZkNsZWFyRGF0YStBLkJ5dGVzT2ZQcm90ZWN0ZWREYXRhLEk9dC5zbGljZSgwLGcpO2kucHVzaChJLnNsaWNlKDAsQS5CeXRlc09mQ2xlYXJEYXRhKSksZS5wdXNoKEkuc2xpY2UoQS5CeXRlc09mQ2xlYXJEYXRhKSksdD10LnNsaWNlKGcpfSkpO2Vsc2V7dmFyIHI9Zy5zaXplO2kucHVzaCh0LnNsaWNlKDAsMCkpLGUucHVzaCh0LnNsaWNlKDAscikpLHQ9dC5zbGljZShyKX12YXIgbj1uZXcgRkQ7bi53cml0ZS5hcHBseShuLGUpO3ZhciBhPUk/SShuLmJ1ZmZlcixCLG8pOnZsLmRlY3J5cHRXb3JkQXJyYXkobi5idWZmZXIsQixvKSxzPW5ldyBGRDtpLmZvckVhY2goKGZ1bmN0aW9uKEEsZyl7dmFyIEk9ZVtnXS5sZW5ndGgsQj1hLnNsaWNlKDAsSSk7cy53cml0ZShBKSxzLndyaXRlKEIpLGE9YS5zbGljZShJKX0pKSxBLnNhbXBsZXNbRV0uZGF0YT1zLmJ1ZmZlcn0pKX1pZihnLmF1ZGlvU2VuYyl7dmFyIEU9Zy5raWRWYWx1ZSxDPWcuYXVkaW9TZW5jO2cuc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBLEIpe3ZhciBRPUNbQl0sdD1JP0koQS5kYXRhLEUsUS5Jbml0aWFsaXphdGlvblZlY3Rvcik6dmwuZGVjcnlwdFdvcmRBcnJheShBLmRhdGEsRSxRLkluaXRpYWxpemF0aW9uVmVjdG9yKTtnLnNhbXBsZXNbQl0uZGF0YT10fSkpfX19LFlsPVsic3R0cyIsInN0c2MiLCJzdHN6Iiwic3RjbyIsImNvNjQiLCJzdHNzIiwiY3R0cyJdLEhsPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShnLEksQixRKXt2YXIgRSxDLHQ9dGhpcztpZihneSh0aGlzLEEpLFF5KHRoaXMsIl92aWRlb1NhbXBsZXMiLFtdKSxReSh0aGlzLCJfYXVkaW9TYW1wbGVzIixbXSksUXkodGhpcywiX2xhc3RSZW1haW5CdWZmZXIiLFtdKSxReSh0aGlzLCJfbGFzdFJlbWFpbkJ1ZmZlclN0YXJ0UG9zIiwwKSxReSh0aGlzLCJ2aWRlb01heEZyYW1lSWR4IiwtMSksUXkodGhpcywiYXVkaW9NYXhGcmFtZUlkeCIsLTEpLHRoaXMudmlkZW9UcmFjaz1uZXcgeXksdGhpcy5hdWRpb1RyYWNrPW5ldyBEeSx0aGlzLm1ldGFkYXRhVHJhY2s9Qnx8bmV3IGR5LHRoaXMudmlkZW9TZWdtbmVudHM9Zyx0aGlzLmF1ZGlvU2VnbW5lbnRzPUksdGhpcy5sb2c9bmV3IFVEKCJNUDREZW11eGVyIiwhUXx8IVEub3BlbkxvZ3x8IVEub3BlbkxvZyksdGhpcy5tZW1vcnlPcHQ9bnVsbD09UT92b2lkIDA6US5tZW1vcnlPcHQsdGhpcy5tZW1vcnlPcHR8fChnJiZnLmZvckVhY2goKGZ1bmN0aW9uKEEpe3ZhciBnOyhnPXQuX3ZpZGVvU2FtcGxlcykucHVzaC5hcHBseShnLEN5KEEuZnJhbWVzKSl9KSksSSYmSS5mb3JFYWNoKChmdW5jdGlvbihBKXt2YXIgZzsoZz10Ll9hdWRpb1NhbXBsZXMpLnB1c2guYXBwbHkoZyxDeShBLmZyYW1lcykpfSkpKSwobnVsbD09PShFPXRoaXMudmlkZW9TZWdtbmVudHMpfHx2b2lkIDA9PT1FP3ZvaWQgMDpFLmxlbmd0aCk+MCl7dmFyIGk9dGhpcy52aWRlb1NlZ21uZW50c1t0aGlzLnZpZGVvU2VnbW5lbnRzLmxlbmd0aC0xXS5mcmFtZXM7dGhpcy52aWRlb01heEZyYW1lSWR4PWlbaS5sZW5ndGgtMV0uaW5kZXh9aWYoKG51bGw9PT0oQz10aGlzLmF1ZGlvU2VnbW5lbnRzKXx8dm9pZCAwPT09Qz92b2lkIDA6Qy5sZW5ndGgpPjApe3ZhciBlPXRoaXMuYXVkaW9TZWdtbmVudHNbdGhpcy5hdWRpb1NlZ21uZW50cy5sZW5ndGgtMV0uZnJhbWVzO3RoaXMuYXVkaW9NYXhGcmFtZUlkeD1lW2UubGVuZ3RoLTFdLmluZGV4fX1yZXR1cm4gQnkoQSxbe2tleToicGFyc2VTYW1wbGVzIix2YWx1ZTpmdW5jdGlvbihBKXtpZighQSl0aHJvdyBuZXcgRXJyb3IoIm1vb3YgaXMgcmVxdWlyZWQiKTt0aGlzLnZpZGVvVHJhY2suY29kZWN8fHRoaXMuYXVkaW9UcmFjay5jb2RlY3x8KHVELm1vb3ZUb1RyYWNrKEEsdGhpcy52aWRlb1RyYWNrLHRoaXMuYXVkaW9UcmFjayksdGhpcy52aWRlb1NlbmM9dGhpcy52aWRlb1RyYWNrLnZpZGVvU2VuYyx0aGlzLmF1ZGlvU2VuYz10aGlzLmF1ZGlvVHJhY2suYXVkaW9TZW5jLHRoaXMubWVtb3J5T3B0JiZ0aGlzLmNsZWFyQm94RW50cmllcyhBKSl9fSx7a2V5OiJkZW11eCIsdmFsdWU6ZnVuY3Rpb24oQSxnLEksQixRKXt0aGlzLnBhcnNlU2FtcGxlcyhRKTt2YXIgRSxDLHQsaT10aGlzLnZpZGVvVHJhY2ssZT10aGlzLmF1ZGlvVHJhY2s7aS5zYW1wbGVzPVtdLGUuc2FtcGxlcz1bXTt2YXIgbz17fTtpZihJKXt2YXIgcixuPTA7aWYodGhpcy5tZW1vcnlPcHQmJnRoaXMudmlkZW9TZWdtbmVudHMmJiEobz10aGlzLmdldEZyYW1lUG9zQnlJZHgoInZpZGVvIixJWzBdKSkpdGhyb3cgbmV3IEVycm9yKCJjYW5ub3QgZm91bmQgdmlkZW8gZnJhbWUgIyIuY29uY2F0KElbMF0pKTtmb3IodmFyIGE9byxzPWEuZnJhbWVJZHgsYz1hLnNlZ21lbnRJZHgsaD1JWzBdLGY9SVsxXTtoPD1mO2grKyl7aWYoIXRoaXMuX3ZpZGVvU2FtcGxlcy5sZW5ndGgmJnRoaXMudmlkZW9TZWdtbmVudHMpe3ZhciB1PXRoaXMuZ2V0RnJhbWVJbmZvKCJ2aWRlbyIsYyxzKTtFPXUuc2FtcGxlLGM9dS5zZWdtZW50SWR4LHM9dS5mcmFtZUlkeH1lbHNlIEU9dGhpcy5fdmlkZW9TYW1wbGVzW2hdO2lmKCFFKXRocm93IG5ldyBFcnJvcigiY2Fubm90IGZvdW5kIHZpZGVvIGZyYW1lICMiLmNvbmNhdChoKSk7dD1FLm9mZnNldC1nLEM9QS5zdWJhcnJheSh0LHQrRS5zaXplKSwocj1uZXcgbHkoIm51bWJlciI9PXR5cGVvZiBFLnB0cz9FLnB0czpFLmR0cyxFLmR0cykpLmR1cmF0aW9uPUUuZHVyYXRpb24sci5nb3BJZD1FLmdvcElkLEUua2V5ZnJhbWUmJnIuc2V0VG9LZXlmcmFtZSgpO2Zvcih2YXIgeT0wLEQ9Qy5sZW5ndGgtMTt5PEQ7KW49YnkoQyx5KSx5Kz00LHIudW5pdHMucHVzaChDLnN1YmFycmF5KHkseStuKSkseSs9bjtpLnNhbXBsZXMucHVzaChyKX1pLmJhc2VNZWRpYURlY29kZVRpbWU9aS5zYW1wbGVzWzBdLmR0c31pZihvPXt9LEIpe2lmKHRoaXMubWVtb3J5T3B0JiZ0aGlzLmF1ZGlvU2VnbW5lbnRzJiYhKG89dGhpcy5nZXRGcmFtZVBvc0J5SWR4KCJhdWRpbyIsQlswXSkpKXRocm93IG5ldyBFcnJvcigiY2Fubm90IGZvdW5kIHZpZGVvIGZyYW1lICMiLmNvbmNhdChCWzBdKSk7Zm9yKHZhciBsPW8sdz1sLmZyYW1lSWR4LGQ9bC5zZWdtZW50SWR4LEY9QlswXSxHPUJbMV07Rjw9RztGKyspe2lmKCF0aGlzLl9hdWRpb1NhbXBsZXMubGVuZ3RoJiZ0aGlzLmF1ZGlvU2VnbW5lbnRzKXt2YXIgUj10aGlzLmdldEZyYW1lSW5mbygiYXVkaW8iLGQsdyk7RT1SLnNhbXBsZSxkPVIuc2VnbWVudElkeCx3PVIuZnJhbWVJZHh9ZWxzZSBFPXRoaXMuX2F1ZGlvU2FtcGxlc1tGXTtpZighRSl0aHJvdyBuZXcgRXJyb3IoImNhbm5vdCBmb3VuZCB2aWRlbyBmcmFtZSAjIi5jb25jYXQoRikpO3Q9RS5vZmZzZXQtZyxDPUEuc3ViYXJyYXkodCx0K0Uuc2l6ZSksZS5zYW1wbGVzLnB1c2gobmV3IHd5KEUuZHRzLEMsRS5kdXJhdGlvbikpfWUuYmFzZU1lZGlhRGVjb2RlVGltZT1lLnNhbXBsZXNbMF0uZHRzfXJldHVybnt2aWRlb1RyYWNrOmksYXVkaW9UcmFjazplLG1ldGFkYXRhVHJhY2s6dGhpcy5tZXRhZGF0YVRyYWNrfX19LHtrZXk6ImRlbXV4UGFydCIsdmFsdWU6ZnVuY3Rpb24oQSxnLEksQixRLEUsQyx0KXtpZih0aGlzLnBhcnNlU2FtcGxlcyhRKSx0aGlzLnZpZGVvVHJhY2sudXNlRU1FPUUsdGhpcy5hdWRpb1RyYWNrLnVzZUVNRT1FLHRoaXMuX2xhc3RSZW1haW5CdWZmZXImJnRoaXMuX2xhc3RSZW1haW5CdWZmZXIuYnl0ZUxlbmd0aD4wJiZnPnRoaXMuX2xhc3RSZW1haW5CdWZmZXJTdGFydFBvcyYmZzw9dGhpcy5fbGFzdFJlbWFpbkJ1ZmZlclN0YXJ0UG9zK3RoaXMuX2xhc3RSZW1haW5CdWZmZXIuYnl0ZUxlbmd0aClmb3IodmFyIGk9MDtpPDIwOyl0cnl7dmFyIGU9dGhpcy5fbGFzdFJlbWFpbkJ1ZmZlci5zdWJhcnJheSgwLGctdGhpcy5fbGFzdFJlbWFpbkJ1ZmZlclN0YXJ0UG9zKSxvPW5ldyBVaW50OEFycmF5KEEuYnl0ZUxlbmd0aCtlLmJ5dGVMZW5ndGgpO28uc2V0KGUsMCksby5zZXQobmV3IFVpbnQ4QXJyYXkoQSksZS5ieXRlTGVuZ3RoKSxBPW8sZy09ZS5ieXRlTGVuZ3RoLHRoaXMuX2xhc3RSZW1haW5CdWZmZXI9bnVsbCx0aGlzLl9sYXN0UmVtYWluQnVmZmVyU3RhcnRQb3M9MDticmVha31jYXRjaChKKXtpZighKGk8MjApKXRocm93IG5ldyBFcnJvcigibmV3IFVpbnQ4QXJyYXkgZXJyb3I6LCIrSi5lcnJvck1lc3NhZ2UpO2krK312YXIgcixuLGEscz10aGlzLnZpZGVvVHJhY2ssYz10aGlzLmF1ZGlvVHJhY2s7cy5zYW1wbGVzPVtdLGMuc2FtcGxlcz1bXSxzLnZpZGVvU2VuYz1udWxsLGMuYXVkaW9TZW5jPW51bGwsKG51bGw9PUk/dm9pZCAwOklbMV0pPnRoaXMudmlkZW9NYXhGcmFtZUlkeCYmdGhpcy52aWRlb01heEZyYW1lSWR4PjAmJihJWzFdPXRoaXMudmlkZW9NYXhGcmFtZUlkeCksKG51bGw9PUI/dm9pZCAwOkJbMV0pPnRoaXMuYXVkaW9NYXhGcmFtZUlkeCYmdGhpcy5hdWRpb01heEZyYW1lSWR4PjAmJihCWzFdPXRoaXMuYXVkaW9NYXhGcmFtZUlkeCk7dmFyIGg9MCxmPTAsdT17fSx5PUEuYnl0ZUxlbmd0aCtnO2lmKEkubGVuZ3RoPjApe3ZhciBEO2lmKHRoaXMubWVtb3J5T3B0JiZ0aGlzLnZpZGVvU2VnbW5lbnRzJiYhKHU9dGhpcy5nZXRGcmFtZVBvc0J5SWR4KCJ2aWRlbyIsSVswXSkpKXRocm93IG5ldyBFcnJvcigiY2Fubm90IGZvdW5kIHZpZGVvIGZyYW1lICMiLmNvbmNhdChJWzBdKSk7Zm9yKHZhciBsPXUsdz1sLmZyYW1lSWR4LGQ9bC5zZWdtZW50SWR4LEY9SVswXTtGPD1JWzFdO0YrKyl7aWYoIXRoaXMuX3ZpZGVvU2FtcGxlcy5sZW5ndGgmJnRoaXMudmlkZW9TZWdtbmVudHMpe3ZhciBHPXRoaXMuZ2V0RnJhbWVJbmZvKCJ2aWRlbyIsZCx3KTtyPUcuc2FtcGxlLGQ9Ry5zZWdtZW50SWR4LHc9Ry5mcmFtZUlkeH1lbHNlIHI9dGhpcy5fdmlkZW9TYW1wbGVzW0ZdO2lmKCFyKXRocm93IG5ldyBFcnJvcigiY2Fubm90IGZvdW5kIHZpZGVvIGZyYW1lICMiLmNvbmNhdChGKSk7aWYodGhpcy5tZW1vcnlPcHQmJnIub2Zmc2V0K3Iuc2l6ZT55KWJyZWFrO3Iub2Zmc2V0Pj1nJiZyLm9mZnNldCtyLnNpemU8PXkmJihoPShhPXIub2Zmc2V0LWcpK3Iuc2l6ZSxuPUEuc3ViYXJyYXkoYSxoKSwoRD1uZXcgbHkoIm51bWJlciI9PXR5cGVvZiByLnB0cz9yLnB0czpyLmR0cyxyLmR0cykpLmR1cmF0aW9uPXIuZHVyYXRpb24sRC5nb3BJZD1yLmdvcElkLEQuc2FtcGxlT2Zmc2V0PXIuaW5kZXgsci5rZXlmcmFtZSYmRC5zZXRUb0tleWZyYW1lKCksRC5kYXRhPW4sRC5zaXplPXIuc2l6ZSxzLnNhbXBsZXMucHVzaChEKSl9cy5zYW1wbGVzLmxlbmd0aD4wJiYocy5nb3BJZD1zLnNhbXBsZXNbMF0uZ29wSWQscy5iYXNlTWVkaWFEZWNvZGVUaW1lPXMuc2FtcGxlc1swXS5kdHMscy5zdGFydFB0cz1zLnNhbXBsZXNbMF0ucHRzL3MudGltZXNjYWxlLHMuZW5kUHRzPXMuc2FtcGxlc1tzLnNhbXBsZXMubGVuZ3RoLTFdLnB0cy9zLnRpbWVzY2FsZSxzLnN0YXJ0RHRzPXMuc2FtcGxlc1swXS5kdHMvcy50aW1lc2NhbGUscy5lbmREdHM9cy5zYW1wbGVzW3Muc2FtcGxlcy5sZW5ndGgtMV0uZHRzL3MudGltZXNjYWxlLHRoaXMudmlkZW9TZW5jJiYocy52aWRlb1NlbmM9dGhpcy52aWRlb1NlbmMuc2xpY2Uocy5zYW1wbGVzWzBdLnNhbXBsZU9mZnNldCxzLnNhbXBsZXNbMF0uc2FtcGxlT2Zmc2V0K3Muc2FtcGxlcy5sZW5ndGgpLHMua2lkVmFsdWU9QykpfWlmKEIubGVuZ3RoPjApe2lmKHRoaXMubWVtb3J5T3B0JiZ0aGlzLmF1ZGlvU2VnbW5lbnRzJiYhKHU9dGhpcy5nZXRGcmFtZVBvc0J5SWR4KCJhdWRpbyIsQlswXSkpKXRocm93IG5ldyBFcnJvcigiY2Fubm90IGZvdW5kIHZpZGVvIGZyYW1lICMiLmNvbmNhdChCWzBdKSk7Zm9yKHZhciBSPXUsVT1SLmZyYW1lSWR4LGs9Ui5zZWdtZW50SWR4LFM9QlswXTtTPD1CWzFdO1MrKyl7aWYoIXRoaXMuX2F1ZGlvU2FtcGxlcy5sZW5ndGgmJnRoaXMuYXVkaW9TZWdtbmVudHMpe3ZhciBwPXRoaXMuZ2V0RnJhbWVJbmZvKCJhdWRpbyIsayxVKTtyPXAuc2FtcGxlLGs9cC5zZWdtZW50SWR4LFU9cC5mcmFtZUlkeH1lbHNlIHI9dGhpcy5fYXVkaW9TYW1wbGVzW1NdO2lmKCFyKXRocm93IG5ldyBFcnJvcigiY2Fubm90IGZvdW5kIHZpZGVvIGZyYW1lICMiLmNvbmNhdChTKSk7aWYodGhpcy5tZW1vcnlPcHQmJnIub2Zmc2V0K3Iuc2l6ZT55KWJyZWFrO3Iub2Zmc2V0Pj1nJiZyLm9mZnNldCtyLnNpemU8PXkmJihmPShhPXIub2Zmc2V0LWcpK3Iuc2l6ZSxuPUEuc3ViYXJyYXkoYSxmKSxjLnNhbXBsZXMucHVzaChuZXcgd3koci5kdHMsbixyLmR1cmF0aW9uLHIuaW5kZXgpKSl9Yy5zYW1wbGVzLmxlbmd0aD4wJiYoYy5nb3BJZD1jLnNhbXBsZXNbMF0uZ29wSWR8fHMuZ29wSWQsYy5iYXNlTWVkaWFEZWNvZGVUaW1lPWMuc2FtcGxlc1swXS5kdHMsYy5zdGFydFB0cz1jLnNhbXBsZXNbMF0ucHRzL2MudGltZXNjYWxlLGMuZW5kUHRzPWMuc2FtcGxlc1tjLnNhbXBsZXMubGVuZ3RoLTFdLnB0cy9jLnRpbWVzY2FsZSx0aGlzLmF1ZGlvU2VuYyYmKGMuYXVkaW9TZW5jPXRoaXMuYXVkaW9TZW5jLnNsaWNlKGMuc2FtcGxlc1swXS5zYW1wbGVPZmZzZXQsYy5zYW1wbGVzWzBdLnNhbXBsZU9mZnNldCtjLnNhbXBsZXMubGVuZ3RoKSxjLmtpZFZhbHVlPUMpKX10aGlzLmRlY29kZXJEYXRhKHMsYyx0KTtmb3IodmFyIE49MCxNPTA7TTxzLnNhbXBsZXMubGVuZ3RoO00rKylmb3IodmFyIHY9MCxZPXMuc2FtcGxlc1tNXS5kYXRhLEg9WS5sZW5ndGgtMTt2PEg7KU49YnkoWSx2KSx2Kz00LHMuc2FtcGxlc1tNXS51bml0cy5wdXNoKFkuc3ViYXJyYXkodix2K04pKSx2Kz1OO3ZhciBMPU1hdGgubWF4KGgsZik7cmV0dXJuIHRoaXMuX2xhc3RSZW1haW5CdWZmZXI9QS5zdWJhcnJheShMKSx0aGlzLl9sYXN0UmVtYWluQnVmZmVyLmJ5dGVMZW5ndGg+MD90aGlzLl9sYXN0UmVtYWluQnVmZmVyU3RhcnRQb3M9ZytBLmJ5dGVMZW5ndGgtdGhpcy5fbGFzdFJlbWFpbkJ1ZmZlci5ieXRlTGVuZ3RoOnRoaXMuX2xhc3RSZW1haW5CdWZmZXJTdGFydFBvcz0wLHt2aWRlb1RyYWNrOnMsYXVkaW9UcmFjazpjLG1ldGFkYXRhVHJhY2s6dGhpcy5tZXRhZGF0YVRyYWNrLGxhc3RSZW1haW5CdWZmZXJJbmZvOntkYXRhOnRoaXMuX2xhc3RSZW1haW5CdWZmZXIscG9zOnRoaXMuX2xhc3RSZW1haW5CdWZmZXJTdGFydFBvc319fX0se2tleToic2V0TGFzdFJlbWFpbkJ1ZmZlckluZm8iLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dGhpcy5fbGFzdFJlbWFpbkJ1ZmZlcj1BLHRoaXMuX2xhc3RSZW1haW5CdWZmZXJTdGFydFBvcz1nfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fbGFzdFJlbWFpbkJ1ZmZlcj1udWxsLHRoaXMuX2xhc3RSZW1haW5CdWZmZXJTdGFydFBvcz0wLHRoaXMudmlkZW9UcmFjay5yZXNldCgpLHRoaXMuYXVkaW9UcmFjay5yZXNldCgpLHRoaXMubWV0YWRhdGFUcmFjay5yZXNldCgpfX0se2tleToiZGVjb2RlckRhdGEiLHZhbHVlOmZ1bmN0aW9uKEEsZyxJKXtBLnVzZUVNRXx8Zy51c2VFTUV8fHZsLmRlY29kZXJBRVNDVFJEYXRhKEEsZyxJKX19LHtrZXk6ImdldEZyYW1lUG9zQnlJZHgiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dmFyIEk9InZpZGVvIj09PUE/dGhpcy52aWRlb1NlZ21uZW50czp0aGlzLmF1ZGlvU2VnbW5lbnRzO2lmKCFJfHxudWxsPT1JfHwhSS5sZW5ndGgpcmV0dXJuIG51bGw7Zm9yKHZhciBCLFE9MCxFPTA7RTxJLmxlbmd0aDtFKyspe3ZhciBDLHQ7aWYoQj1JW0VdLmZyYW1lcyxnPD0obnVsbD09PShDPUlbRV0uZnJhbWVzKXx8dm9pZCAwPT09Qz92b2lkIDA6Q1sobnVsbD09PSh0PUIpfHx2b2lkIDA9PT10P3ZvaWQgMDp0Lmxlbmd0aCktMV0uaW5kZXgpKXtRPUU7YnJlYWt9fXJldHVybntmcmFtZUlkeDpCLmZpbmRJbmRleCgoZnVuY3Rpb24oQSl7cmV0dXJuIEEuaW5kZXg9PT1nfSkpLHNlZ21lbnRJZHg6UX19fSx7a2V5OiJnZXRGcmFtZUluZm8iLHZhbHVlOmZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEUsQyx0PSJ2aWRlbyI9PT1BP3RoaXMudmlkZW9TZWdtbmVudHM6dGhpcy5hdWRpb1NlZ21uZW50cztyZXR1cm4gdD9JPChudWxsPT09KEI9dFtnXSl8fHZvaWQgMD09PUJ8fG51bGw9PT0oUT1CLmZyYW1lcyl8fHZvaWQgMD09PVE/dm9pZCAwOlEubGVuZ3RoKT97c2FtcGxlOm51bGw9PT0oRT10W2ddKXx8dm9pZCAwPT09RT92b2lkIDA6RS5mcmFtZXNbSV0sc2VnbWVudElkeDpnLGZyYW1lSWR4OkkrMX06e3NhbXBsZTpudWxsPT09KEM9dFtnKzFdKXx8dm9pZCAwPT09Qz92b2lkIDA6Qy5mcmFtZXNbMF0sc2VnbWVudElkeDpnKzEsZnJhbWVJZHg6MX06e319fSx7a2V5OiJjbGVhckJveEVudHJpZXMiLHZhbHVlOmZ1bmN0aW9uKEEpe3RoaXMubWVtb3J5T3B0JiZBLnRyYWsuZm9yRWFjaCgoZnVuY3Rpb24oQSl7WWwuZm9yRWFjaCgoZnVuY3Rpb24oZyl7dmFyIEk9QS5tZGlhLm1pbmYuc3RibFtnXTtJJiYoSS5lbnRyaWVzJiYoSS5lbnRyaWVzPW51bGwpLEkuZW50cnlTaXplcyYmKEkuZW50cnlTaXplcz1udWxsKSl9KSl9KSl9fV0sW3trZXk6InByb2JlIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdUQucHJvYmUoQSl9fV0pLEF9KCksTGw9VCxKbD1YQSxtbD1SLEtsPSRzLHhsPXRjO1dzKCJtYXRjaCIsMSwoZnVuY3Rpb24oQSxnLEkpe3JldHVybltmdW5jdGlvbihnKXt2YXIgST1tbCh0aGlzKSxCPW51bGw9PWc/dm9pZCAwOmdbQV07cmV0dXJuIHZvaWQgMCE9PUI/Qi5jYWxsKGcsSSk6bmV3IFJlZ0V4cChnKVtBXShTdHJpbmcoSSkpfSxmdW5jdGlvbihBKXt2YXIgQj1JKGcsQSx0aGlzKTtpZihCLmRvbmUpcmV0dXJuIEIudmFsdWU7dmFyIFE9TGwoQSksRT1TdHJpbmcodGhpcyk7aWYoIVEuZ2xvYmFsKXJldHVybiB4bChRLEUpO3ZhciBDPVEudW5pY29kZTtRLmxhc3RJbmRleD0wO2Zvcih2YXIgdCxpPVtdLGU9MDtudWxsIT09KHQ9eGwoUSxFKSk7KXt2YXIgbz1TdHJpbmcodFswXSk7aVtlXT1vLCIiPT09byYmKFEubGFzdEluZGV4PUtsKEUsSmwoUS5sYXN0SW5kZXgpLEMpKSxlKyt9cmV0dXJuIDA9PT1lP251bGw6aX1dfSkpO3ZhciBxbD17ZmluZEJveDpmdW5jdGlvbiBBKGcsSSl7dmFyIEI9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOltdO2lmKGcudHlwZSE9PUkpe2lmKGcmJmcuc3ViQm94KXt2YXIgUT1nLnN1YkJveC5maWx0ZXIoKGZ1bmN0aW9uKEEpe3JldHVybiBBLnR5cGU9PT1JfSkpO1EubGVuZ3RoP1EuZm9yRWFjaCgoZnVuY3Rpb24oQSl7cmV0dXJuIEIucHVzaChBKX0pKTpnLnN1YkJveC5mb3JFYWNoKChmdW5jdGlvbihnKXtyZXR1cm4gQShnLEksQil9KSl9fWVsc2UgQi5wdXNoKGcpO3JldHVybihCPWgoQikpLmxlbmd0aD4xP0I6QlswXX0scGFkU3RhcnQ6YmwsdG9IZXg6ZnVuY3Rpb24oKXtmb3IodmFyIEE9W10sZz1hcmd1bWVudHMubGVuZ3RoLEk9bmV3IEFycmF5KGcpLEI9MDtCPGc7QisrKUlbQl09YXJndW1lbnRzW0JdO3JldHVybiBJLmZvckVhY2goKGZ1bmN0aW9uKGcpe3ZhciBJPU51bWJlcihnKS50b1N0cmluZygxNik7QS5wdXNoKGJsKEksMiwwKSl9KSksQX0sZnJvbUhleDpmdW5jdGlvbihBKXtmb3IodmFyIGc9bmV3IFVpbnQ4QXJyYXkoQS5sZW5ndGgvMiksST0wO0k8QS5sZW5ndGg7SSs9MilnW0kvMl09d2luZG93LnBhcnNlSW50KEEuc3Vic3RyKEksMiksMTYpO3JldHVybiBnfSxzdW06ZnVuY3Rpb24oKXtmb3IodmFyIEE9MCxnPWFyZ3VtZW50cy5sZW5ndGgsST1uZXcgQXJyYXkoZyksQj0wO0I8ZztCKyspSVtCXT1hcmd1bWVudHNbQl07cmV0dXJuIEkuZm9yRWFjaCgoZnVuY3Rpb24oZyl7QSs9Z30pKSxBfSxTdHJpbmdUb0FycmF5QnVmZmVyOmZ1bmN0aW9uKEEpe2Zvcih2YXIgZz1uZXcgQXJyYXlCdWZmZXIoQS5sZW5ndGgpLEk9bmV3IFVpbnQ4QXJyYXkoZyksQj0wO0I8QS5sZW5ndGg7QisrKUlbQl09QS5jaGFyQ29kZUF0KEIpO3JldHVybiBnfSxBcnJheUJ1ZmZlclRvU3RyaW5nOmZ1bmN0aW9uKEEpe2Zvcih2YXIgZz0iIixJPW5ldyBVaW50OEFycmF5KEEpLEI9MDtCPEkubGVuZ3RoO0IrKylnKz1TdHJpbmcuZnJvbUNoYXJDb2RlKElbQl0pO3JldHVybiBnfSxmcm9tQ2hhckNvZGU6VGwsQmFzZTY0VG9IZXg6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPXdpbmRvdy5hdG9iKEEucmVwbGFjZSgvLS9nLCIrIikucmVwbGFjZSgvXy9nLCIvIikpLEk9IiIsQj0wO0I8Zy5sZW5ndGg7QisrKUkrPSIwIi5jb25jYXQoZy5jaGFyQ29kZUF0KEIpLnRvU3RyaW5nKDE2KSkuc3Vic3RyKC0yKTtyZXR1cm4gSX0sdG9CYXNlNjQ6ZnVuY3Rpb24oQSxnKXt2YXIgST1UbChBKTtnPXZvaWQgMD09PWd8fGc7dmFyIEI9d2luZG93LmJ0b2EoSSkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKTtyZXR1cm4gZz9COkIucmVwbGFjZSgvPSokLywiIil9LHRvVVRGODpmdW5jdGlvbihBKXtmb3IodmFyIGc9ZW5jb2RlVVJJQ29tcG9uZW50KEEpLEk9dW5lc2NhcGUoZyksQj1uZXcgVWludDhBcnJheShJLmxlbmd0aCksUT0wO1E8SS5sZW5ndGg7KytRKUJbUV09SS5jaGFyQ29kZUF0KFEpO3JldHVybiBCLmJ1ZmZlcn0sc3RyVG9CdWY6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPVtdLEk9MDtJPEEubGVuZ3RoO0krPTIpZy5wdXNoKHBhcnNlSW50KEFbSV0rQVtJKzFdLDE2KSk7cmV0dXJuIG5ldyBVaW50OEFycmF5KGcpfSxzdHIyaGV4OmZ1bmN0aW9uKEEpe2lmKCIiPT09QSlyZXR1cm4iIjtmb3IodmFyIGc9W10sST0wO0k8QS5sZW5ndGg7SSsrKWcucHVzaChBLmNoYXJDb2RlQXQoSSkpO3JldHVybiBnfSxmb3JtYXRJVjpmdW5jdGlvbihBKXtpZihBLmxlbmd0aD49MTYpcmV0dXJuIEE7Zm9yKHZhciBnPW5ldyBVaW50OEFycmF5KDE2KSxJPTA7STxnLmxlbmd0aDtJKyspZ1tJXT1JPEEubGVuZ3RoP0FbSV06MDtyZXR1cm4gZ30scGFyc2U6ZnVuY3Rpb24oQSl7aWYoIUFycmF5LmlzQXJyYXkoQSkpe2Zvcih2YXIgZz1bXSxJPSIiLEI9MDtCPEEubGVuZ3RoO0IrKylCJTImJihJPUFbQi0xXStBW0JdLGcucHVzaChwYXJzZUludChJLDE2KSksST0iIik7cmV0dXJuIGd9cmV0dXJuIEEubWFwKChmdW5jdGlvbihBKXtyZXR1cm4gcGFyc2VJbnQoQSwxNil9KSl9LGdlbmVyYXRlVW5pcXVlS2V5OmZ1bmN0aW9uKEEpe3ZhciBnPUEudmlkLEk9QS5tZWRpYVR5cGUsQj1BLmRlZmluaXRpb247aWYoST1JfHwidmlkZW8iLEI9Qnx8LTEsIWcpcmV0dXJuIG51bGw7cmV0dXJuIiIuY29uY2F0KGcsIiMiKS5jb25jYXQoSSwiIyIpLmNvbmNhdChCLCIjbXA0Iil9LHZhbGlkYXRlRnJhZ21lbnQ6ZnVuY3Rpb24oQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOltdO2lmKEEgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcil7dHJ5e2lmKDI9PT1nLmxlbmd0aCl7dmFyIEk9Z1sxXS1nWzBdKzE7aWYoIShBLmJ5dGVMZW5ndGg9PT1JKSlyZXR1cm59fWNhdGNoKEIpe3JldHVybiBjb25zb2xlLmVycm9yKEIpLCExfXJldHVybiEwfXJldHVybiExfSx0eXBlT2Y6T2wsbm93VGltZTpmdW5jdGlvbigpe3RyeXtyZXR1cm4gcGFyc2VJbnQoIiIuY29uY2F0KHBlcmZvcm1hbmNlLm5vdygpKSwxMCl9Y2F0Y2goQSl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9fSxleHRVcmw6ZnVuY3Rpb24oQSxnKXt0cnl7aWYoIWd8fEEuc3RhcnRzV2l0aCgiYmxvYiIpKXJldHVybiBBO3ZhciBJPUEuaW5kZXhPZigiPyIpLEI9STwwLFE9ST09PUEubGVuZ3RoLTEsRT0iIjtyZXR1cm4gT2JqZWN0LmtleXMoZykuZm9yRWFjaCgoZnVuY3Rpb24oQSl7dmFyIEk9Z1tBXTtudWxsIT1JJiYiIiE9PUkmJihFKz0iIi5jb25jYXQoRT8iJiI6IiIpLmNvbmNhdChBLCI9IikuY29uY2F0KGdbQV0pKX0pKSxBKz0oQj8iPyI6UT8iIjoiJiIpK0V9Y2F0Y2goQyl7cmV0dXJuIEF9fSxkZWVwTWVyZ2U6ZnVuY3Rpb24gQShnLEkpe3JldHVybiBPYmplY3Qua2V5cyhJKS5mb3JFYWNoKChmdW5jdGlvbihCKXt2YXIgUSxFPU9sKElbQl0pLEM9T2woZ1tCXSk7IkFycmF5Ij09PUU/KCJBcnJheSIhPT1DJiYoZ1tCXT1bXSksKFE9Z1tCXSkucHVzaC5hcHBseShRLGgoSVtCXSkpKToiT2JqZWN0Ij09PUU/KCJPYmplY3QiIT09QyYmKGdbQl09e30pLEEoZ1tCXSxJW0JdKSk6Z1tCXT1JW0JdfSkpLGd9LGdldEZpbGVTaXplOmZ1bmN0aW9uKEEsZyl7dHJ5e3JldHVybiBBJiZnP3BhcnNlSW50KCIiLmNvbmNhdChnKkEvOCksMTApOjB9Y2F0Y2goSSl7cmV0dXJuIDB9fSxoYXNoVmFsOmZ1bmN0aW9uKEEpe3ZhciBnLEk9MDtpZigwPT09QS5sZW5ndGgpcmV0dXJuIEk7Zm9yKGc9MDtnPEEubGVuZ3RoO2crKylJPShJPDw1KS1JK0EuY2hhckNvZGVBdChnKSxJfD0wO3JldHVybiBJfSxBcnJheUNvcHk6ZnVuY3Rpb24oQSl7dmFyIGc9W107aWYoIUF8fCFBLmxlbmd0aHx8MD09PUEubGVuZ3RoKXJldHVybiBnO2Zvcih2YXIgST0wO0k8QS5sZW5ndGg7SSsrKXt2YXIgQj1BW0ldLFE9e307Zm9yKHZhciBFIGluIEIpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEIsRSkmJihRW0VdPUJbRV0pO2cucHVzaChRKX1yZXR1cm4gZ30sY29uY2F0RGF0YTpmdW5jdGlvbihBLGcpe3ZhciBJPVtdLEI9MDtBJiZJLnB1c2goQSk7ZyYmSS5wdXNoKGcpO0kuZXZlcnkoKGZ1bmN0aW9uKEEpe3JldHVybiBBJiYoQis9QS5ieXRlTGVuZ3RoKSwhMH0pKTt2YXIgUT1uZXcgVWludDhBcnJheShCKSxFPTA7cmV0dXJuIEkuZXZlcnkoKGZ1bmN0aW9uKEEpe3JldHVybiBBJiYoUS5zZXQoQSxFKSxFKz1BLmJ5dGVMZW5ndGgpLCEwfSkpLFF9LGdldEZyYWdSYW5nZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUSxFLEMsdD1udWxsLGk9bnVsbDt0PUE8Zy5sZW5ndGgtMT9nW0FdOmdbZy5sZW5ndGgtMV07aT1BPEkubGVuZ3RoLTE/SVtBXTpJW0kubGVuZ3RoLTFdO3JldHVybltNYXRoLm1pbigobnVsbD09PShCPXQpfHx2b2lkIDA9PT1CP3ZvaWQgMDpCLnJhbmdlWzBdKXx8MS8wLChudWxsPT09KFE9aSl8fHZvaWQgMD09PVE/dm9pZCAwOlEucmFuZ2VbMF0pfHwxLzApLE1hdGgubWF4KG51bGw9PT0oRT10KXx8dm9pZCAwPT09RT92b2lkIDA6RS5yYW5nZVsxXSxudWxsPT09KEM9aSl8fHZvaWQgMD09PUM/dm9pZCAwOkMucmFuZ2VbMV0pXX0sZ2V0SG9zdEZyb21Vcmw6ZnVuY3Rpb24oQSl7aWYoIlN0cmluZyIhPT1PbChBKXx8IUEpcmV0dXJuIiI7dmFyIGc9QS5zcGxpdCgiLyIpLEk9IiI7Zy5sZW5ndGg+MyYmZ1syXSYmKEk9Z1syXSk7cmV0dXJuIEl9LG5ld1VpbnQ4QXJyYXk6ZnVuY3Rpb24oQSl7dmFyIGcsST0wO2Zvcig7STwxMDspdHJ5e2lmKChnPW5ldyBVaW50OEFycmF5KEEpKSYmZy5ieXRlTGVuZ3RoPjApYnJlYWs7SSsrfWNhdGNoKEIpe0k8MTA/SSsrOmNvbnNvbGUuZXJyb3IoInJlcGVhdCBkYXRhIGNhY2hlICBuZXcgYXJyYXkgZmFpbGVkIGZpbmFsIiwxMCl9cmV0dXJuIGd9LGNoZWNrVXJsSXNFeHBpcmVkOmZ1bmN0aW9uKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO2lmKCFBfHwiU3RyaW5nIiE9PU9sKEEpKXJldHVybiAwO3ZhciBJPTA7dHJ5e3ZhciBCPW5ldyBSZWdFeHAoIihcXD98Jil4LXRvcy1leHBpcmVzPShbXiZdKikoJnwkKSIpLFE9QS5tYXRjaChCKTtpZihudWxsIT09USlJPXBhcnNlSW50KFFbMl0sMTApO2Vsc2V7dmFyIEU9QS5zcGxpdCgiLyIpO0UubGVuZ3RoPjUmJjg9PT1FWzRdLmxlbmd0aCYmKEk9cGFyc2VJbnQoRVs0XSwxNikpfXJldHVybiBJPjA/STxwYXJzZUludCgiIi5jb25jYXQoZyYmIm51bWJlciI9PXR5cGVvZiBnPyhuZXcgRGF0ZSkuZ2V0VGltZSgpLzFlMytnOihuZXcgRGF0ZSkuZ2V0VGltZSgpLzFlMyksMTApPzE6MjowfWNhdGNoKEMpe3JldHVybiAwfX0sZ2V0QnVmZmVyU3BsaXRzOmZ1bmN0aW9uKEEsZyl7dmFyIEk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOjVlNTtpZihnLUEtSTxJLzJ8fCFnKXJldHVybltbQSxnXV07dmFyIEI9W107Zm9yKDtBPGc7KXt2YXIgUT1BK0k7KFE+Z3x8Zy1RPEkvMikmJihRPWcpLEIucHVzaChbQSxRXSksQT1RKzF9cmV0dXJuIEJ9LGdldEZpcnN0RnJhbWVTdGFydFJhbmdlOmZ1bmN0aW9uKEEsZyl7dmFyIEksQixRPU51bWJlci5NQVhfVkFMVUUsRT1OdW1iZXIuTUFYX1ZBTFVFO0EmJihRPShudWxsPT09KEk9QVswXSl8fHZvaWQgMD09PUl8fG51bGw9PT0oST1JLnJhbmdlKXx8dm9pZCAwPT09ST92b2lkIDA6SVswXSl8fE51bWJlci5NQVhfVkFMVUUpO2cmJihFPShudWxsPT09KEI9Z1swXSl8fHZvaWQgMD09PUJ8fG51bGw9PT0oQj1CLnJhbmdlKXx8dm9pZCAwPT09Qj92b2lkIDA6QlswXSl8fE51bWJlci5NQVhfVkFMVUUpO3JldHVybiBNYXRoLm1pbihRLEUpfSxnZXRFbmRGcmFtZVBvczpmdW5jdGlvbihBLGcpe3ZhciBJLEIsUT0wLEU9MDtBJiYoUT0obnVsbD09PShJPUFbQS5sZW5ndGgtMV0pfHx2b2lkIDA9PT1JfHxudWxsPT09KEk9SS5yYW5nZSl8fHZvaWQgMD09PUk/dm9pZCAwOklbMV0pfHwwKTtnJiYoRT0obnVsbD09PShCPWdbZy5sZW5ndGgtMV0pfHx2b2lkIDA9PT1CfHxudWxsPT09KEI9Qi5yYW5nZSl8fHZvaWQgMD09PUI/dm9pZCAwOkJbMV0pfHwwKTtyZXR1cm4gTWF0aC5tYXgoUSxFKX19O2Z1bmN0aW9uIGJsKEEsZyxJKXtmb3IodmFyIEI9U3RyaW5nKEkpLFE9Z3wwLEU9TWF0aC5jZWlsKFEvQi5sZW5ndGgpLEM9W10sdD1TdHJpbmcoQSk7RS0tOylDLnB1c2goQik7cmV0dXJuIEMuam9pbigiIikuc3Vic3RyaW5nKDAsUS10Lmxlbmd0aCkrdH1mdW5jdGlvbiBUbChBKXtmb3IodmFyIGc9IiIsST0wO0k8QS5sZW5ndGg7SSs9MTZlMyl7dmFyIEI9QS5zdWJhcnJheShJLEkrMTZlMyk7Zys9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLEIpfXJldHVybiBnfWZ1bmN0aW9uIE9sKEEpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoQSkubWF0Y2goLyhbXlxzLipdKykoPz1dJCkvZylbMF19b25tZXNzYWdlPWZ1bmN0aW9uKCl7dmFyIEEsST0oQT1hKCkubWFyaygoZnVuY3Rpb24gQShnKXt2YXIgSSxCLFEsRSxDLHQsaSxlLG8scixzLGMsaCxmLHUseSxELGwsdyxkLEYsRyxSLFUsayxTLHAsTixNLHY9dGhpcztyZXR1cm4gYSgpLndyYXAoKGZ1bmN0aW9uKEEpe2Zvcig7Oylzd2l0Y2goQS5wcmV2PUEubmV4dCl7Y2FzZSAwOkk9Zy5kYXRhLEEudDA9SS5tZXRob2QsQS5uZXh0PSJpbml0Ij09PUEudDA/NDoidXBkYXRlVmFsdWUiPT09QS50MD8xMzoidHJhbnNtdXgiPT09QS50MD8xODoicmVzZXQiPT09QS50MD80NDoiZGVzdHJveSI9PT1BLnQwPzUwOjUyO2JyZWFrO2Nhc2UgNDpyZXR1cm4gdGhpcy5jb2RlY1R5cGU9SS5hcmdzLmNvZGVjVHlwZSx0aGlzLm9wZW5Mb2c9SS5hcmdzLm9wZW5Mb2csdGhpcy5NUDREZW11eGVyPW51bGwsdGhpcy5GTVA0UmVtdXhlcj1udWxsLHRoaXMuX25lZWRJbml0U2VnbWVudD0hMCx0aGlzLnN1cHBvcnRIZXZjPUkuYXJncy5zdXBwb3J0SGV2Yyx0aGlzLm1lbW9yeU9wdD1JLmFyZ3MubWVtb3J5T3B0LHRoaXMuYXdNYW5hZ2VyPW51bGwsQS5hYnJ1cHQoImJyZWFrIiw1Mik7Y2FzZSAxMzpyZXR1cm4gUT1udWxsPT09KEI9Zy5kYXRhKXx8dm9pZCAwPT09Qnx8bnVsbD09PShCPUIuYXJncyl8fHZvaWQgMD09PUI/dm9pZCAwOkIudmFsdWUsdGhpcy5hd01hbmFnZXI9bmV3IE9oLHNlbGYucD10aGlzLmF3TWFuYWdlci5pbml0KCksc2VsZi5wLnRoZW4oKGZ1bmN0aW9uKCl7di5hd01hbmFnZXIuZGVzY3J5cHRLZXkoUS5zZWNyZXRLZXksUS5kZWNyeXB0S2V5KX0pKSxBLmFicnVwdCgiYnJlYWsiLDUyKTtjYXNlIDE4OnJldHVybiBFPWcuZGF0YS5hcmdzLEM9bmV3IFVpbnQ4QXJyYXkoZy5kYXRhLmJ1ZmZlciksdD10aGlzLm9wZW5Mb2csaT10aGlzLm1lbW9yeU9wdCx0aGlzLk1QNERlbXV4ZXJ8fCh0aGlzLk1QNERlbXV4ZXI9bmV3IEhsKEUudmlkZW9UcmFrLEUuYXVkaW9UcmFrLG51bGwse29wZW5Mb2c6dCxtZW1vcnlPcHQ6aX0pKSxFLmxhc3RVbk11eERhdGEmJnRoaXMuTVA0RGVtdXhlci5zZXRMYXN0UmVtYWluQnVmZmVySW5mbyhFLmxhc3RVbk11eERhdGEsRS5wb3MpLEEubmV4dD0yNSxzZWxmLnA7Y2FzZSAyNTpyZXR1cm4gZT10aGlzLk1QNERlbXV4ZXIuZGVtdXhQYXJ0KEMsRS5zdGFydCxFLnZpZGVvSWR4LEUuYXVkaW9JZHgsRS5tb292LEUudXNlRU1FLEUua2lkVmFsdWUsKGZ1bmN0aW9uKEEsZyxJKXt2YXIgQj1xbC5mb3JtYXRJVihJKTtyZXR1cm4gdi5hd01hbmFnZXIuZGVzY3J5cHQoQSxCKX0pKSx0aGlzLkZNUDRSZW11eGVyfHwiaDI2NSI9PT10aGlzLmNvZGVjVHlwZSYmIXRoaXMuc3VwcG9ydEhldmN8fCh0aGlzLkZNUDRSZW11eGVyPW5ldyBrRCh0aGlzLk1QNERlbXV4ZXIudmlkZW9UcmFjayx0aGlzLk1QNERlbXV4ZXIuYXVkaW9UcmFjayx7b3BlbkxvZzp0aGlzLm9wZW5Mb2d9KSksbz1lLnZpZGVvVHJhY2sscj1lLmF1ZGlvVHJhY2sscz1lLmxhc3RSZW1haW5CdWZmZXJJbmZvLGM9bnVsbD09bz92b2lkIDA6by5zYW1wbGVzLGg9KG51bGw9PWM/dm9pZCAwOmMubGVuZ3RoKT4wP2NbMF0uc2FtcGxlT2Zmc2V0Oi0xLGY9KG51bGw9PWM/dm9pZCAwOmMubGVuZ3RoKT4wP2NbYy5sZW5ndGgtMV0uc2FtcGxlT2Zmc2V0Oi0xLHU9bnVsbD09cj92b2lkIDA6ci5zYW1wbGVzLHk9KG51bGw9PXU/dm9pZCAwOnUubGVuZ3RoKT4wP3VbMF0uc2FtcGxlT2Zmc2V0Oi0xLEQ9KG51bGw9PXU/dm9pZCAwOnUubGVuZ3RoKT4wP3VbdS5sZW5ndGgtMV0uc2FtcGxlT2Zmc2V0Oi0xLGw9RS5jb250ZXh0LnN0YXRlLnN0YXRlLHc9LTEsZD0tMSxGPS0xLEc9LTEsKGx8fChudWxsPT1jP3ZvaWQgMDpjLmxlbmd0aCk+MCkmJih3PW51bGw9PWV8fG51bGw9PT0oUj1lLnZpZGVvVHJhY2spfHx2b2lkIDA9PT1SP3ZvaWQgMDpSLnN0YXJ0UHRzLGQ9bnVsbD09ZXx8bnVsbD09PShVPWUudmlkZW9UcmFjayl8fHZvaWQgMD09PVU/dm9pZCAwOlUuZW5kUHRzKSwobHx8KG51bGw9PXU/dm9pZCAwOnUubGVuZ3RoKT4wKSYmKEY9bnVsbD09ZXx8bnVsbD09PShrPWUuYXVkaW9UcmFjayl8fHZvaWQgMD09PWs/dm9pZCAwOmsuc3RhcnRQdHMsRz1udWxsPT1lfHxudWxsPT09KFM9ZS5hdWRpb1RyYWNrKXx8dm9pZCAwPT09Uz92b2lkIDA6Uy5lbmRQdHMpLHRoaXMuRk1QNFJlbXV4ZXImJigoTj10aGlzLkZNUDRSZW11eGVyLnJlbXV4KHRoaXMuX25lZWRJbml0U2VnbWVudCx7aW5pdE1lcmdlOiEwfSkpLmluaXRTZWdtZW50JiYodGhpcy5fbmVlZEluaXRTZWdtZW50PSExKSxNPXFsLmNvbmNhdERhdGEoTi5hdWRpb1NlZ21lbnQsTi52aWRlb1NlZ21lbnQpLHA9e2J1ZmZlcjpNLHJhbmdlOkUuY29udGV4dC5yYW5nZSxzdGF0ZTpFLmNvbnRleHQuc3RhdGUsY29udGV4dDp7cmFuZ2U6RS5jb250ZXh0LnJhbmdlLGZyYWdJbmRleDpFLmNvbnRleHQuZnJhZ0luZGV4LHZQdHNSYW5nZTpbdyxkXSxhUHRzUmFuZ2U6W0YsR10sdmlkZW9TYW1wbGVJZHhSYW5nZTpbaCxmXSxhdWRpb1NhbXBsZUlkeFJhbmdlOlt5LERdfSxpbml0U2VnOk4uaW5pdFNlZ21lbnQsbGFzdFJlbWFpbkJ1ZmZlckluZm86c30pLHBvc3RNZXNzYWdlKHttZXRob2Q6InRyYW5zbXV4IixpZDpnLmRhdGEuaWQsYXJnczpuKHt9LHApfSxwLmluaXRTZWc/W3AuYnVmZmVyLmJ1ZmZlcixwLmluaXRTZWcuYnVmZmVyXTpbcC5idWZmZXIuYnVmZmVyXSksQS5hYnJ1cHQoImJyZWFrIiw1Mik7Y2FzZSA0NDpyZXR1cm4gdGhpcy5GTVA0UmVtdXhlciYmdGhpcy5GTVA0UmVtdXhlci5yZXNldCgpLHRoaXMuTVA0RGVtdXhlciYmdGhpcy5NUDREZW11eGVyLnJlc2V0KCksdGhpcy5GTVA0UmVtdXhlcj1udWxsLHRoaXMuTVA0RGVtdXhlcj1udWxsLHRoaXMuX25lZWRJbml0U2VnbWVudD0hMCxBLmFicnVwdCgiYnJlYWsiLDUyKTtjYXNlIDUwOnJldHVybiB0aGlzLmF3TWFuYWdlciYmKHRoaXMuYXdNYW5hZ2VyLmRlc3Ryb3koKSx0aGlzLmF3TWFuYWdlcj1udWxsKSxBLmFicnVwdCgiYnJlYWsiLDUyKTtjYXNlIDUyOmNhc2UiZW5kIjpyZXR1cm4gQS5zdG9wKCl9fSksQSx0aGlzKX0pKSxmdW5jdGlvbigpe3ZhciBJPXRoaXMsQj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihRLEUpe3ZhciBDPUEuYXBwbHkoSSxCKTtmdW5jdGlvbiB0KEEpe2coQyxRLEUsdCxpLCJuZXh0IixBKX1mdW5jdGlvbiBpKEEpe2coQyxRLEUsdCxpLCJ0aHJvdyIsQSl9dCh2b2lkIDApfSkpfSk7cmV0dXJuIGZ1bmN0aW9uKEEpe3JldHVybiBJLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCl9KCk7Cg==",blob="undefined"!=typeof window&&window.Blob&&new Blob([atob(encodedJs)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper(){var e;try{if(!(e=blob&&(window.URL||window.webkitURL).createObjectURL(blob)))throw"";return new Worker(e)}catch(e){return new Worker("data:application/javascript;base64,"+encodedJs)}finally{!("undefined"!=typeof window&&navigator.userAgent.indexOf("Trident/")>0)&&e&&(window.URL||window.webkitlRL).revokeObjectURL(e)}}var TransmuxerWorkerControl=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_classCallCheck$a(this,t),(e=_callSuper$3(this,t)).options=n,e.worker=new WorkerWrapper,e.worker.onmessage=function(t){e.emit(t.data.method,t.data)};var r=e.options,i=r.memoryOpt,a=r.openLog,o=r.supportHevc,l=r.codecType;return e.worker.postMessage({method:"init",id:n.id||0,args:{memoryOpt:i,openLog:a,supportHevc:o,codecType:l}}),e}return _inherits$8(t,EventEmitter),_createClass$a(t,[{key:"updateValue",value:function(e){var t,n;null===(t=this.worker)||void 0===t||t.postMessage({method:"updateValue",id:(null===(n=this.options)||void 0===n?void 0:n.id)||0,args:{value:e}})}},{key:"transmux",value:function(e,t,n,r,i,a,o,l,d,c,s,U,F){var u,Q=t.buffer;null===(u=this.worker)||void 0===u||u.postMessage({method:"transmux",id:e,buffer:Q,args:{start:n,videoIdx:r,audioIdx:i,moov:a,useEME:o,kidValue:l,context:d,videoTrak:c,audioTrak:s,lastUnMuxData:U,pos:F}},U?[Q,U.buffer]:[Q])}},{key:"reset",value:function(){this.worker&&this.worker.postMessage({method:"reset"})}},{key:"destroy",value:function(){this.worker&&this.worker.postMessage({method:"destroy"}),this.worker&&this.worker.terminate()}}])}();function _iterableToArrayLimit$2(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,l=[],d=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;d=!1}else for(;!(d=(r=a.call(n)).done)&&(l.push(r.value),l.length!==t);d=!0);}catch(e){c=!0,i=e}finally{try{if(!d&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw i}}return l}}function _classCallCheck$3(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties$3(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey$3(r.key),r)}}function _createClass$3(e,t,n){return t&&_defineProperties$3(e.prototype,t),n&&_defineProperties$3(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty$3(e,t,n){return(t=_toPropertyKey$3(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _slicedToArray$2(e,t){return _arrayWithHoles$2(e)||_iterableToArrayLimit$2(e,t)||_unsupportedIterableToArray$3(e,t)||_nonIterableRest$2()}function _toConsumableArray$2(e){return _arrayWithoutHoles$2(e)||_iterableToArray$2(e)||_unsupportedIterableToArray$3(e)||_nonIterableSpread$2()}function _arrayWithoutHoles$2(e){if(Array.isArray(e))return _arrayLikeToArray$3(e)}function _arrayWithHoles$2(e){if(Array.isArray(e))return e}function _iterableToArray$2(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _unsupportedIterableToArray$3(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray$3(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray$3(e,t):void 0}}function _arrayLikeToArray$3(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function _nonIterableSpread$2(){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 _nonIterableRest$2(){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 _toPrimitive$3(e,t){if("object"!==_typeof$5(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==_typeof$5(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$3(e){var t=_toPrimitive$3(e,"string");return"symbol"===_typeof$5(t)?t:String(t)}var TrackType={VIDEO:"video",AUDIO:"audio",METADATA:"metadata"},VideoCodecType={AVC:"avc",HEVC:"hevc",VVCC:"vvcC"},AudioCodecType={AAC:"aac",G711PCMA:"g7110a",G711PCMU:"g7110m"},VideoTrack=function(){function e(){_classCallCheck$3(this,e),_defineProperty$3(this,"id",1),_defineProperty$3(this,"type",TrackType.VIDEO),_defineProperty$3(this,"codecType",VideoCodecType.AVC),_defineProperty$3(this,"pid",-1),_defineProperty$3(this,"hvcC",void 0),_defineProperty$3(this,"codec",""),_defineProperty$3(this,"timescale",0),_defineProperty$3(this,"formatTimescale",0),_defineProperty$3(this,"sequenceNumber",0),_defineProperty$3(this,"baseMediaDecodeTime",0),_defineProperty$3(this,"baseDts",0),_defineProperty$3(this,"duration",0),_defineProperty$3(this,"warnings",[]),_defineProperty$3(this,"samples",[]),_defineProperty$3(this,"pps",[]),_defineProperty$3(this,"sps",[]),_defineProperty$3(this,"vps",[]),_defineProperty$3(this,"fpsNum",0),_defineProperty$3(this,"fpsDen",0),_defineProperty$3(this,"sarRatio",[]),_defineProperty$3(this,"width",0),_defineProperty$3(this,"height",0),_defineProperty$3(this,"nalUnitSize",4),_defineProperty$3(this,"present",!1),_defineProperty$3(this,"isVideoEncryption",!1),_defineProperty$3(this,"isAudioEncryption",!1),_defineProperty$3(this,"isVideo",!0),_defineProperty$3(this,"kid",null),_defineProperty$3(this,"pssh",null),_defineProperty$3(this,"ext",void 0)}return _createClass$3(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:"exist",value:function(){return!!(this.pps.length&&this.sps.length&&this.codec)}},{key:"hasSample",value:function(){return!!this.samples.length}},{key:"isEncryption",get:function(){return this.isVideoEncryption}}]),e}(),AudioTrack=function(){function e(){_classCallCheck$3(this,e),_defineProperty$3(this,"id",2),_defineProperty$3(this,"type",TrackType.AUDIO),_defineProperty$3(this,"codecType",AudioCodecType.AAC),_defineProperty$3(this,"pid",-1),_defineProperty$3(this,"codec",""),_defineProperty$3(this,"sequenceNumber",0),_defineProperty$3(this,"sampleDuration",0),_defineProperty$3(this,"timescale",0),_defineProperty$3(this,"formatTimescale",0),_defineProperty$3(this,"baseMediaDecodeTime",0),_defineProperty$3(this,"duration",0),_defineProperty$3(this,"warnings",[]),_defineProperty$3(this,"samples",[]),_defineProperty$3(this,"baseDts",0),_defineProperty$3(this,"sampleSize",16),_defineProperty$3(this,"sampleRate",0),_defineProperty$3(this,"channelCount",0),_defineProperty$3(this,"objectType",0),_defineProperty$3(this,"sampleRateIndex",0),_defineProperty$3(this,"config",[]),_defineProperty$3(this,"present",!1),_defineProperty$3(this,"isVideoEncryption",!1),_defineProperty$3(this,"isAudioEncryption",!1),_defineProperty$3(this,"kid",null),_defineProperty$3(this,"ext",void 0)}return _createClass$3(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.codecType===AudioCodecType.AAC)}},{key:"hasSample",value:function(){return!!this.samples.length}},{key:"isEncryption",get:function(){return this.isAudioEncryption}}]),e}(),VideoSample=function(){function e(t,n,r){_classCallCheck$3(this,e),_defineProperty$3(this,"flag",{}),_defineProperty$3(this,"keyframe",!1),_defineProperty$3(this,"gopId",0),_defineProperty$3(this,"duration",0),_defineProperty$3(this,"size",0),_defineProperty$3(this,"units",[]),_defineProperty$3(this,"chromaFormat",420),this.originPts=this.pts=t,this.originDts=this.dts=n,r&&(this.units=r)}return _createClass$3(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}(),AudioSample=_createClass$3((function e(t,n,r,i){_classCallCheck$3(this,e),_defineProperty$3(this,"duration",1024),_defineProperty$3(this,"flag",{dependsOn:2,isNonSyncSample:0}),_defineProperty$3(this,"keyframe",!0),this.originPts=this.pts=this.dts=t,this.data=n,this.size=n.byteLength,this.sampleOffset=i,r&&(this.duration=r)})),MetadataTrack=function(){function e(){_classCallCheck$3(this,e),_defineProperty$3(this,"id",3),_defineProperty$3(this,"type",TrackType.METADATA),_defineProperty$3(this,"timescale",0),_defineProperty$3(this,"flvScriptSamples",[]),_defineProperty$3(this,"seiSamples",[])}return _createClass$3(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}();function concatUint8Array$1(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t=t.filter(Boolean);var r=new Uint8Array(t.reduce((function(e,t){return e+t.byteLength}),0)),i=0;return t.forEach((function(e){r.set(e,i),i+=e.byteLength})),r}var MAX_SIZE=Math.pow(2,32);function readBig16(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[t]<<8)+(e[t+1]||0)}function readBig24(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[t]<<16)+(e[t+1]<<8)+(e[t+2]||0)}function readBig32(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[t]<<24>>>0)+(e[t+1]<<16)+(e[t+2]<<8)+(e[t+3]||0)}function readInt32(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt32(t)}function readBig64(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return readBig32(e,t)*MAX_SIZE+readBig32(e,t+4)}function readInt64(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=new DataView(e.buffer,e.byteOffset,e.byteLength);return n.getUint32(t)<<32|n.getUint32(t+4)}function getAvcCodec(e){for(var t,n="avc1.",r=0;r<3;r++)(t=e[r].toString(16)).length<2&&(t="0".concat(t)),n+=t;return n}function formatIV(e){var t="";if(e.forEach((function(e){t+=bufferToString(e)})),t.length<=32)for(var n=32-t.length,r=0;r<n;r++)t+="0";return t}function parse(e){if(!Array.isArray(e)){for(var t=[],n="",r=0;r<e.length;r++)r%2&&(n=e[r-1]+e[r],t.push(parseInt(n,16)),n="");return t}return e.map((function(e){return parseInt(e,16)}))}function bufferToString(e){return("0"+Number(e).toString(16)).slice(-2).toUpperCase()}var global$1=global$I,DESCRIPTORS$1=descriptors,defineBuiltInAccessor=defineBuiltInAccessor$2,regExpFlags=regexpFlags$1,fails=fails$Q,RegExp$1=global$1.RegExp,RegExpPrototype=RegExp$1.prototype,FORCED=DESCRIPTORS$1&&fails((function(){var e=!0;try{RegExp$1(".","d")}catch(t){e=!1}var t={},n="",r=e?"dgimsy":"gimsy",i=function(e,r){Object.defineProperty(t,e,{get:function(){return n+=r,!0}})},a={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var o in e&&(a.hasIndices="d"),a)i(o,a[o]);return Object.getOwnPropertyDescriptor(RegExpPrototype,"flags").get.call(t)!==r||n!==r}));FORCED&&defineBuiltInAccessor(RegExpPrototype,"flags",{configurable:!0,get:regExpFlags});var uncurryThis$1=functionUncurryThis,toLength=toLength$a,toString$2=toString$j,$repeat=stringRepeat,requireObjectCoercible=requireObjectCoercible$b,repeat2=uncurryThis$1($repeat),stringSlice=uncurryThis$1("".slice),ceil=Math.ceil,createMethod$1=function(e){return function(t,n,r){var i,a,o=toString$2(requireObjectCoercible(t)),l=toLength(n),d=o.length,c=void 0===r?" ":toString$2(r);return l<=d||""==c?o:((a=repeat2(c,ceil((i=l-d)/c.length))).length>i&&(a=stringSlice(a,0,i)),e?o+a:a+o)}},stringPad={start:createMethod$1(!1),end:createMethod$1(!0)},userAgent=engineUserAgent,stringPadWebkitBug=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(userAgent),$$2=_export,$padStart=stringPad.start,WEBKIT_BUG=stringPadWebkitBug;$$2({target:"String",proto:!0,forced:WEBKIT_BUG},{padStart:function(e){return $padStart(this,e,arguments.length>1?arguments[1]:void 0)}});var isBrowser$1="undefined"!=typeof window,ua=isBrowser$1&&navigator.userAgent.toLocaleLowerCase(),isFirefox=isBrowser$1&&ua.includes("firefox"),isAndroid=isBrowser$1&&ua.includes("android"),AAC=function(){function e(){_classCallCheck$3(this,e)}return _createClass$3(e,null,[{key:"getRateIndexByRate",value:function(t){return e.FREQ.indexOf(t)}},{key:"parseADTS",value:function(t,n){for(var r=t.length,i=0;i+2<r&&(255!==t[i]||240!=(246&t[i+1]));)i++;if(!(i>=r)){var a=i,o=[],l=(60&t[i+2])>>>2,d=e.FREQ[l];if(!d)throw new Error("Invalid sampling index: ".concat(l));for(var c,s,U=1+((192&t[i+2])>>>6),F=(1&t[i+2])<<2|(192&t[i+3])>>>6,u=e._getConfig(l,F,U),Q=u.config,R=u.codec,h=0,p=e.getFrameDuration(d);i+7<r;)if(255===t[i]&&240==(246&t[i+1])){if(r-i<(s=(3&t[i+3])<<11|t[i+4]<<3|(224&t[i+5])>>5))break;c=2*(1&~t[i+1]),o.push({pts:n+h*p,data:t.subarray(i+7+c,i+s)}),h++,i+=s}else i++;return{skip:a,remaining:i>=r?void 0:t.subarray(i),frames:o,samplingFrequencyIndex:l,sampleRate:d,objectType:U,channelCount:F,codec:R,config:Q,originCodec:"mp4a.40.".concat(U)}}}},{key:"parseAudioSpecificConfig",value:function(t){if(t.length){var n=t[0]>>>3,r=(7&t[0])<<1|t[1]>>>7,i=(120&t[1])>>>3,a=e.FREQ[r];if(a){var o=e._getConfig(r,i,n);return{samplingFrequencyIndex:r,sampleRate:a,objectType:n,channelCount:i,config:o.config,codec:o.codec,originCodec:"mp4a.40.".concat(n)}}}}},{key:"getFrameDuration",value:function(e){return 1024*(arguments.length>1&&void 0!==arguments[1]?arguments[1]:9e4)/e}},{key:"_getConfig",value:function(e,t,n){var r,i,a=[];return isFirefox?e>=6?(r=5,i=e-3):(r=2,i=e):isAndroid?(r=2,i=e):(r=2===n||5===n?n:5,i=e,e>=6?i=e-3:1===t&&(r=2,i=e)),a[0]=r<<3,a[0]|=(14&e)>>1,a[1]=(1&e)<<7,a[1]|=t<<3,5===r&&(a[1]|=(14&i)>>1,a[2]=(1&i)<<7,a[2]|=8,a[3]=0),{config:a,codec:"mp4a.40.".concat(r)}}},{key:"getSilentFrame",value:function(e,t){if("mp4a.40.2"===e){if(1===t)return new Uint8Array([0,200,0,128,35,128]);if(2===t)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===t)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===t)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===t)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===t)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===t)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}();_defineProperty$3(AAC,"FREQ",[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350]);var ExpGolomb=function(){function e(t){if(_classCallCheck$3(this,e),_defineProperty$3(this,"_bytesAvailable",void 0),_defineProperty$3(this,"_bitsAvailable",0),_defineProperty$3(this,"_word",0),!t)throw new Error("ExpGolomb data params is required");this._data=t,this._bytesAvailable=t.byteLength,this._bytesAvailable&&this._loadWord()}return _createClass$3(e,[{key:"_loadWord",value:function(){var e=this._data.byteLength-this._bytesAvailable,t=Math.min(4,this._bytesAvailable);if(0===t)throw new Error("No bytes available");var n=new Uint8Array(4);n.set(this._data.subarray(e,e+t)),this._word=new DataView(n.buffer).getUint32(0),this._bitsAvailable=8*t,this._bytesAvailable-=t}},{key:"bitsPos",value:function(){return 8*this._bytesAvailable-this._bitsAvailable}},{key:"bitsLeft",value:function(){return 8*this._data.length-this.bitsPos()}},{key:"byteAligned",value:function(){return 0===this.bitsPos()||this.bitsPos()%8==0}},{key:"skipBits",value:function(e){if(this._bitsAvailable>e)this._word<<=e,this._bitsAvailable-=e;else{e-=this._bitsAvailable;var t=Math.floor(e/8);e-=8*t,this._bytesAvailable-=t,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 t=Math.min(this._bitsAvailable,e),n=this._word>>>32-t;return this._bitsAvailable-=t,this._bitsAvailable>0?this._word<<=t:this._bytesAvailable>0&&this._loadWord(),(t=e-t)>0&&this._bitsAvailable?n<<t|this.readBits(t):n}},{key:"skipLZ",value:function(){var e;for(e=0;e<this._bitsAvailable;++e)if(0!=(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 t=8,n=8,r=0;r<e;r++)0!==n&&(n=(t+this.readEG()+256)%256),t=0===n?t:n}}]),e}(),StreamReader=function(){function e(t){_classCallCheck$3(this,e),this._buffer=t,this._offset=0,this._heldBits=0,this._numHeldBits=0}return _createClass$3(e,[{key:"readUint8",value:function(){return this._buffer[this._offset++]}},{key:"readUint16",value:function(){return this._buffer[this._offset++]<<8|this._buffer[this._offset++]}},{key:"readUint32",value:function(){return this._buffer[this._offset++]<<24|this._buffer[this._offset++]<<16|this._buffer[this._offset++]<<8|this._buffer[this._offset++]}},{key:"readUint8Array",value:function(e){var t=this._buffer.slice(this._offset,this._offset+e);return this._offset+=e,t}},{key:"streamRead1Bytes",value:function(){this._heldBits=this.readUint8(),this._numHeldBits=8}},{key:"streamRead2Bytes",value:function(){this._heldBits=this.readUint16(),this._numHeldBits=16}},{key:"extractBits",value:function(e){var t=this._heldBits>>this._numHeldBits-e&(1<<e)-1;return this._numHeldBits-=e,t}}]),e}(),VVC=function(){function e(){_classCallCheck$3(this,e)}return _createClass$3(e,null,[{key:"parseVVCDecoderConfigurationRecord",value:function(t){var n=new StreamReader(t),r=n.readUint8();n.streamRead1Bytes(),n.extractBits(5);var i,a,o,l,d,c,s,U,F=n.extractBits(2)+1,u=n.extractBits(1),Q={};u&&(n.streamRead2Bytes(),l=n.extractBits(2),d=n.extractBits(3),a=n.extractBits(3),o=n.extractBits(2),n.extractBits(6),Q=e.parseVVCPTLRecord(n,a),i=n.readUint16(),c=n.readUint16(),s=n.readUint16(),U=n.readUint16());for(var R=n.readUint8(),h=[],p=[],B=[],S=null,f=0;f<R;f++){n.streamRead1Bytes(),n.extractBits(1),n.extractBits(2);var m=n.extractBits(5),V=1;13!==m&&12!==m&&(V=n.readUint16());for(var y=0;y<V;y++){var E=n.readUint16();switch(m){case 14:h.push(n.readUint8Array(E));break;case 15:var Z=n.readUint8Array(E);S||(S=e.parseSPS(e.removeEPB(Z))),p.push(Z);break;case 16:B.push(n.readUint8Array(E))}}}return{data:t,configurationVersion:r,codec:"bvc2.1.6.L93.B0",nalUnitSize:F,ptlPresentFlag:u,olsIdx:i,numSublayers:a,constantFrameRate:o,chromaFormatIdc:l,bitDepthLumaMinus8:d,ptlRecord:Q,width:c,height:s,sampleRate:U,numOfArrays:R,vps:h,sps:p,pps:B,spsParsed:S}}},{key:"parseVVCPTLRecord",value:function(e,t){e.streamRead2Bytes(),e.extractBits(2);var n=e.extractBits(6),r=e.extractBits(7),i=e.extractBits(1),a=e.readUint8();e.streamRead1Bytes();var o=e.extractBits(1),l=e.extractBits(1),d=new Uint8Array(n);if(n){for(var c=0;c<n-1;c++){var s=e.extractBits(6);e.streamRead1Bytes();var U=e.extractBits(2);d[c]=s<<2|U}d[n-1]=e.extractBits(6)}else e.extractBits(6);var F=[];if(t>1){e.streamRead1Bytes();for(var u=0,Q=t-2;Q>=0;--Q){u|=e.extractBits(1)<<Q}for(var R=t;R<=8&&t>1;++R)e.extractBits(1);for(var h=t-2;h>=0;--h)u&1<<h&&(F[h]=e.readUint8())}var p=e.readUint8(),B=[];if(p)for(var S=0;S<p;S++)B.push(e.readUint32());return{generalProfileIdc:r,generalTierFlag:i,generalLevelIdc:a,ptlFrameOnlyConstraintFlag:o,ptlMultilayerEnabledFlag:l,generalConstraintInfo:d,subLayerLevelIdc:F,generalSubProfileIdc:B,ptlNumSubProfiles:p,numBytesConstraintInfo:n}}},{key:"getAvccNals",value:function(e){for(var t=[];e.position<e.length-4;){var n=e.dataview.getInt32(e.dataview.position);if(!(e.length-e.position>=n))break;var r=e.buffer.slice(e.position,e.position+4);e.skip(4);var i=new Uint8Array(e.buffer.slice(e.position,e.position+n));e.skip(n),t.push({header:r,body:i})}return t}},{key:"analyseNal",value:function(e){var t=(248&e.body[1])>>3;switch(e.type=t,t){case 23:case 24:break;case 7:case 8:e.key=!0;break;case 14:e.vps=!0;break;case 15:e.sps=!0;break;case 16:e.pps=!0;break;case 17:e.aps=!0}}},{key:"removeEPB",value:function(e){for(var t=e.byteLength,n=[],r=1;r<t-2;)0===e[r]&&0===e[r+1]&&3===e[r+2]?(n.push(r+2),r+=2):r++;if(!n.length)return e;var i=t-n.length,a=new Uint8Array(i),o=0;for(r=0;r<i;o++,r++)o===n[0]&&(o++,n.shift()),a[r]=e[o];return a}},{key:"parseVps",value:function(){}},{key:"parseSPS",value:function(t){var n=new ExpGolomb(t);n.readUByte(),n.readUByte(),n.skipBits(4);var r=n.readBits(4),i=n.readBits(3),a=n.readBits(2),o=420;a<=3&&(o=[0,420,422,444][a]),n.readBits(2),n.readBits(1);var l=e._parseProfileTierLevel(n,1,i);return n.readBits(1),n.readBits(1)&&n.readBits(1),{width:n.readUEG(),height:n.readUEG(),spsMaxSubLayerMinus1:i,spsVideoParameterSetId:r,chromaFormatIdc:a,chromaFormat:o,ptlInfo:l}}},{key:"_parseProfileTierLevel",value:function(t,n,r){var i,a=t.readBits(7),o=t.readBits(1),l=t.readBits(8),d=t.readBits(1),c=t.readBits(1);n&&(i=e._parseGeneralConstraintsInfo(t));for(var s=r-1,U=[],F=[],u=[],Q=s;Q>=0;--Q)U[Q]=t.readBits(1);for(;!t.byteAligned();)t.readBits(1);for(var R=s;R>=0;--R)U[R]&&(F[R]=t.readUByte());if(n)for(var h=t.readUByte(),p=0;p<h;p++)u[p]=t.readBits(32);return{generalProfileIdc:a,generalTierFlag:o,generalLevelIdc:l,ptlFrameOnlyConstraintFlag:d,ptlMultilayerEnabledFlag:c,ptlSublayerLevelPresentFlags:U,ptlSublayerLevelIdcs:F,ptlSubProfileIdcs:u,gciInfo:i}}},{key:"_parseGeneralConstraintsInfo",value:function(e){var t=e.readBits(1);if(t){e.skipBits(71);var n=e.readBits(8);n&&e.skipBits(n)}var r=8-e.bitsPos()%8;return e.skipBits(r),{gciPresentFlag:t}}}]),e}(),MP4Parser=function(){function e(){_classCallCheck$3(this,e)}return _createClass$3(e,null,[{key:"findBox",value:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=[];if(!t)return i;for(var a=0,o="",l=0;t.length>7;){if(a=readBig32(t),o=String.fromCharCode.apply(null,t.subarray(4,8)),l=8,1===a?(a=readBig64(t,8),l+=8):a||(a=t.length),!n[0]||o===n[0]){var d=t.subarray(0,a);if(!(n.length<2))return e.findBox(d.subarray(l),n.slice(1),r+l);i.push({start:r,size:a,headerSize:l,type:o,data:d})}r+=a,t=t.subarray(a)}return i}},{key:"tfhd",value:function(e){return parseBox(e,!0,(function(e,t){e.trackId=readBig32(t);var n=4,r=1&e.flags,i=2&e.flags,a=8&e.flags,o=16&e.flags,l=32&e.flags;r&&(n+=4,e.baseDataOffset=readBig32(t,n),n+=4),i&&(e.sampleDescriptionIndex=readBig32(t,n),n+=4),a&&(e.defaultSampleDuration=readBig32(t,n),n+=4),o&&(e.defaultSampleSize=readBig32(t,n),n+=4),l&&(e.defaultSampleFlags=readBig32(t,n))}))}},{key:"sidx",value:function(e){return parseBox(e,!0,(function(e,t){var n=0;e.reference_ID=readBig32(t,n),n+=4,e.timescale=readBig32(t,n),n+=4,0===e.version?(e.earliest_presentation_time=readBig32(t,n),n+=4,e.first_offset=readBig32(t,n),n+=4):(e.earliest_presentation_time=readBig64(t,n),n+=8,e.first_offset=readBig64(t,n),n+=8),n+=2,e.references=[];var r=readBig16(t,n);n+=2;for(var i=0;i<r;i++){var a={};e.references.push(a);var o=readBig32(t,n);n+=4,a.reference_type=o>>31&1,a.referenced_size=2147483647&o,a.subsegment_duration=readBig32(t,n),o=readBig32(t,n+=4),n+=4,a.starts_with_SAP=o>>31&1,a.SAP_type=o>>28&7,a.SAP_delta_time=268435455&o}}))}},{key:"moov",value:function(t){return parseBox(t,!1,(function(t,n,r){t.mvhd=e.mvhd(e.findBox(n,["mvhd"],r)[0]),t.trak=e.findBox(n,["trak"],r).map((function(t){return e.trak(t)})),t.pssh=e.pssh(e.findBox(n,["pssh"],r)[0])}))}},{key:"mvhd",value:function(e){return parseBox(e,!0,(function(e,t){var n=0;1===e.version?(e.timescale=readBig32(t,16),e.duration=readBig64(t,20),n+=28):(e.timescale=readBig32(t,8),e.duration=readBig32(t,12),n+=16),e.nextTrackId=readBig32(t,n+76)}))}},{key:"trak",value:function(t){return parseBox(t,!1,(function(t,n,r){t.tkhd=e.tkhd(e.findBox(n,["tkhd"],r)[0]),t.mdia=e.mdia(e.findBox(n,["mdia"],r)[0]),t.edts=e.edts(e.findBox(n,["edts"],r)[0])}))}},{key:"tkhd",value:function(e){return parseBox(e,!0,(function(e,t){var n=0;1===e.version?(e.trackId=readBig32(t,16),e.duration=readBig64(t,24),n+=32):(e.trackId=readBig32(t,8),e.duration=readBig32(t,16),n+=20),e.width=readBig32(t,n+52),e.height=readBig32(t,n+56)}))}},{key:"mdia",value:function(t){return parseBox(t,!1,(function(t,n,r){t.mdhd=e.mdhd(e.findBox(n,["mdhd"],r)[0]),t.hdlr=e.hdlr(e.findBox(n,["hdlr"],r)[0]),t.minf=e.minf(e.findBox(n,["minf"],r)[0])}))}},{key:"edts",value:function(t){return parseBox(t,!1,(function(t,n,r){t.elst=e.elst(e.findBox(n,["elst"],r)[0])}))}},{key:"elst",value:function(e){return parseBox(e,!0,(function(e,t,n){e.entries=[],e.entriesData=t;var r=0,i=readBig32(t,r);r+=4;for(var a=0;a<i;a++){var o={};e.entries.push(o),1===e.version?(o.segment_duration=readBig64(t,r),r+=8,o.media_time=readInt64(t,r),r+=8):(o.segment_duration=readBig32(t,r),r+=4,o.media_time=readInt32(t,r),r+=4),o.media_rate_integer=readBig16(t,r),r+=2,o.media_rate_fraction=readBig16(t,n),r+=2}}))}},{key:"mdhd",value:function(e){return parseBox(e,!0,(function(e,t){var n=0;1===e.version?(e.timescale=readBig32(t,16),e.duration=readBig64(t,20),n+=28):(e.timescale=readBig32(t,8),e.duration=readBig32(t,12),n+=16);var r=readBig16(t,n);e.language=String.fromCharCode(96+(r>>10&31),96+(r>>5&31),96+(31&r))}))}},{key:"hdlr",value:function(e){return parseBox(e,!0,(function(e,t){0===e.version&&(e.handlerType=String.fromCharCode.apply(null,t.subarray(4,8)))}))}},{key:"minf",value:function(t){return parseBox(t,!1,(function(t,n,r){t.vmhd=e.vmhd(e.findBox(n,["vmhd"],r)[0]),t.smhd=e.smhd(e.findBox(n,["smhd"],r)[0]),t.stbl=e.stbl(e.findBox(n,["stbl"],r)[0])}))}},{key:"vmhd",value:function(e){return parseBox(e,!0,(function(e,t){e.graphicsmode=readBig16(t),e.opcolor=[readBig16(t,2),readBig16(t,4),readBig16(t,6)]}))}},{key:"smhd",value:function(e){return parseBox(e,!0,(function(e,t){e.balance=readBig16(t)}))}},{key:"stbl",value:function(t){return parseBox(t,!1,(function(t,n,r){var i,a,o;t.stsd=e.stsd(e.findBox(n,["stsd"],r)[0]),t.stts=e.stts(e.findBox(n,["stts"],r)[0]),t.ctts=e.ctts(e.findBox(n,["ctts"],r)[0]),t.stsc=e.stsc(e.findBox(n,["stsc"],r)[0]),t.stsz=e.stsz(e.findBox(n,["stsz"],r)[0]),t.stco=e.stco(e.findBox(n,["stco"],r)[0]),t.stco||(t.co64=e.co64(e.findBox(n,["co64"],r)[0]),t.stco=t.co64);var l=null===(i=t.stsd.entries[0])||void 0===i||null===(a=i.sinf)||void 0===a||null===(o=a.schi)||void 0===o?void 0:o.tenc.default_IV_size;t.stss=e.stss(e.findBox(n,["stss"],r)[0]),t.senc=e.senc(e.findBox(n,["senc"],r)[0],l)}))}},{key:"senc",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return parseBox(e,!0,(function(e,n){var r=0,i=readBig32(n,r);r+=4,e.samples=[];for(var a=0;a<i;a++){for(var o={InitializationVector:[]},l=0;l<t;l++)o.InitializationVector[l]=n[r+l];if(r+=t,2&e.flags){o.subsamples=[];var d=readBig16(n,r);r+=2;for(var c=0;c<d;c++){var s={};s.BytesOfClearData=readBig16(n,r),r+=2,s.BytesOfProtectedData=readBig32(n,r),r+=4,o.subsamples.push(s)}}e.samples.push(o)}}))}},{key:"pssh",value:function(e){return parseBox(e,!0,(function(e,t){for(var n=[],r=[],i=0,a=0;a<16;a++)r.push(toHex(t[i+a]));if(i+=16,e.version>0){var o=readBig32(t,i);i+=4;for(var l=0;l<(""+o).length;l++)for(var d=0;d<16;d++){var c=t[i];i+=1,n.push(toHex(c))}}var s=readBig32(t,i);e.data_size=s,i+=4,e.kid=n,e.system_id=r,e.buffer=t}))}},{key:"bvc2",value:function(t){return parseBox(t,!1,(function(t,n,r){var i=parseVisualSampleEntry(t,n),a=n.subarray(i);r+=i,t.vvcC=e.bv2C(e.findBox(a,["bv2C"],r)[0]),t.pasp=e.pasp(e.findBox(a,["pasp"],r)[0])}))}},{key:"bv2C",value:function(e){return parseBox(e,!1,(function(e,t,n){var r=VVC.parseVVCDecoderConfigurationRecord(t);for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}))}},{key:"stsd",value:function(t){return parseBox(t,!0,(function(t,n,r){t.entryCount=readBig32(n),t.entries=e.findBox(n.subarray(4),[],r+4).map((function(t){switch(t.type){case"avc1":case"avc2":case"avc3":case"avc4":return e.avc1(t);case"hvc1":case"hev1":return e.hvc1(t);case"bvc2":return e.bvc2(t);case"mp4a":return e.mp4a(t);case"alaw":case"ulaw":return e.alaw(t);case"enca":return parseBox(t,!1,(function(t,n,r){t.channelCount=readBig16(n,16),t.samplesize=readBig16(n,18),t.sampleRate=readBig32(n,24)/65536,n=n.subarray(28),t.sinf=e.sinf(e.findBox(n,["sinf"],r)[0]),t.esds=e.esds(e.findBox(n,["esds"],r)[0])}));case"encv":return parseBox(t,!1,(function(t,n,r){t.width=readBig16(n,24),t.height=readBig16(n,26),t.horizresolution=readBig32(n,28),t.vertresolution=readBig32(n,32),n=n.subarray(78),t.sinf=e.sinf(e.findBox(n,["sinf"],r)[0]),t.avcC=e.avcC(e.findBox(n,["avcC"],r)[0]),t.hvcC=e.hvcC(e.findBox(n,["hvcC"],r)[0]),t.pasp=e.pasp(e.findBox(n,["pasp"],r)[0])}))}})).filter(Boolean)}))}},{key:"tenc",value:function(e){return parseBox(e,!1,(function(e,t){var n=6;e.default_IsEncrypted=t[n],n+=1,e.default_IV_size=t[n],n+=1,e.default_KID=[];for(var r=0;r<16;r++)e.default_KID.push(toHex(t[n])),n+=1}))}},{key:"schi",value:function(t){return parseBox(t,!1,(function(t,n,r){t.tenc=e.tenc(e.findBox(n,["tenc"],r)[0])}))}},{key:"sinf",value:function(t){return parseBox(t,!1,(function(t,n,r){t.schi=e.schi(e.findBox(n,["schi"],r)[0]),t.frma=e.frma(e.findBox(n,["frma"],r)[0])}))}},{key:"frma",value:function(e){return parseBox(e,!1,(function(e,t){e.data_format="";for(var n=0;n<4;n++)e.data_format+=String.fromCharCode(t[n])}))}},{key:"avc1",value:function(t){return parseBox(t,!1,(function(t,n,r){var i=parseVisualSampleEntry(t,n),a=n.subarray(i);r+=i,t.avcC=e.avcC(e.findBox(a,["avcC"],r)[0]),t.pasp=e.pasp(e.findBox(a,["pasp"],r)[0])}))}},{key:"avcC",value:function(e){return parseBox(e,!1,(function(e,t){e.configurationVersion=t[0],e.AVCProfileIndication=t[1],e.profileCompatibility=t[2],e.AVCLevelIndication=t[3],e.codec=getAvcCodec([t[1],t[2],t[3]]),e.lengthSizeMinusOne=3&t[4],e.spsLength=31&t[5],e.sps=[];for(var n=6,r=0;r<e.spsLength;r++){var i=readBig16(t,n);n+=2,e.sps.push(t.subarray(n,n+i)),n+=i}e.ppsLength=t[n],n+=1,e.pps=[];for(var a=0;a<e.ppsLength;a++){var o=readBig16(t,n);n+=2,e.pps.push(t.subarray(n,n+=o)),n+=o}}))}},{key:"hvc1",value:function(t){return parseBox(t,!1,(function(t,n,r){var i=parseVisualSampleEntry(t,n),a=n.subarray(i);r+=i,t.hvcC=e.hvcC(e.findBox(a,["hvcC"],r)[0]),t.pasp=e.pasp(e.findBox(a,["pasp"],r)[0])}))}},{key:"hvcC",value:function(e){return parseBox(e,!1,(function(t,n){t.data=e.data,t.codec="hev1.1.6.L93.B0",t.configurationVersion=n[0];var r=n[1];t.generalProfileSpace=r>>6,t.generalTierFlag=(32&r)>>5,t.generalProfileIdc=31&r,t.generalProfileCompatibility=readBig32(n,2),t.generalConstraintIndicatorFlags=n.subarray(6,12),t.generalLevelIdc=n[12],t.avgFrameRate=readBig16(n,19),t.numOfArrays=n[22],t.vps=[],t.sps=[],t.pps=[];for(var i=23,a=0,o=0,l=0,d=0;d<t.numOfArrays;d++){a=63&n[i],o=readBig16(n,i+1),i+=3;for(var c,s=[],U=0;U<o;U++)l=readBig16(n,i),i+=2,s.push(n.subarray(i,i+l)),i+=l;if(32===a)(c=t.vps).push.apply(c,s);else if(33===a){var F;(F=t.sps).push.apply(F,s)}else if(34===a){var u;(u=t.pps).push.apply(u,s)}}}))}},{key:"pasp",value:function(e){return parseBox(e,!1,(function(e,t){e.hSpacing=readBig32(t),e.vSpacing=readBig32(t,4)}))}},{key:"mp4a",value:function(t){return parseBox(t,!1,(function(t,n,r){var i=parseAudioSampleEntry(t,n);t.esds=e.esds(e.findBox(n.subarray(i),["esds"],r+i)[0])}))}},{key:"esds",value:function(e){return parseBox(e,!0,(function(e,t){e.codec="mp4a.";for(var n=0,r=0,i=0,a=0;t.length;){for(a=t[n=0],r=t[n+1],n+=2;128&r;)i=(127&r)<<7,r=t[n],n+=1;if(i+=127&r,3===a)t=t.subarray(n+3);else{if(4!==a){if(5===a){var o=e.config=t.subarray(n,n+i),l=(248&o[0])>>3;return 31===l&&o.length>=2&&(l=32+((7&o[0])<<3)+((224&o[1])>>5)),e.objectType=l,e.codec+=l.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+=(t[n].toString(16)+".").padStart(3,"0"),t=t.subarray(n+13)}}}))}},{key:"alaw",value:function(e){return parseBox(e,!1,(function(e,t){parseAudioSampleEntry(e,t)}))}},{key:"stts",value:function(e){return parseBox(e,!0,(function(e,t){for(var n=readBig32(t),r=[],i=4,a=0;a<n;a++)r.push({count:readBig32(t,i),delta:readBig32(t,i+4)}),i+=8;e.entryCount=n,e.entries=r}))}},{key:"ctts",value:function(e){return parseBox(e,!0,(function(e,t){var n=readBig32(t),r=[],i=4;if(1===e.version)for(var a=0;a<n;a++)r.push({count:readBig32(t,i),offset:readBig32(t,i+4)}),i+=8;else for(var o=0;o<n;o++)r.push({count:readBig32(t,i),offset:-(1+~readBig32(t,i+4))}),i+=8;e.entryCount=n,e.entries=r}))}},{key:"stsc",value:function(e){return parseBox(e,!0,(function(e,t){for(var n=readBig32(t),r=new Array(n),i=4,a=0;a<n;a++)r[a]={firstChunk:readBig32(t,i),samplesPerChunk:readBig32(t,i+4),sampleDescriptionIndex:readBig32(t,i+8)},i+=12;e.entryCount=n,e.entries=r}))}},{key:"stsz",value:function(e){return parseBox(e,!0,(function(e,t){var n=readBig32(t),r=readBig32(t,4),i=new Array(r);if(!n)for(var a=8,o=0;o<r;o++)i[o]=readBig32(t,a),a+=4;e.sampleSize=n,e.sampleCount=r,e.entrySizes=i}))}},{key:"stco",value:function(e){return parseBox(e,!0,(function(e,t){for(var n=readBig32(t),r=new Array(n),i=4,a=0;a<n;a++)r[a]=readBig32(t,i),i+=4;e.entryCount=n,e.entries=r}))}},{key:"co64",value:function(e){return parseBox(e,!0,(function(e,t){for(var n=readBig32(t),r=new Array(n),i=4,a=0;a<n;a++)r[a]=readBig64(t,i),i+=8;e.entryCount=n,e.entries=r}))}},{key:"stss",value:function(e){return parseBox(e,!0,(function(e,t){for(var n=readBig32(t),r=new Array(n),i=4,a=0;a<n;a++)r[a]=readBig32(t,i),i+=4;e.entryCount=n,e.entries=r}))}},{key:"moof",value:function(t){return parseBox(t,!1,(function(t,n,r){t.mfhd=e.mfhd(e.findBox(n,["mfhd"],r)[0]),t.traf=e.findBox(n,["traf"],r).map((function(t){return e.traf(t)}))}))}},{key:"mfhd",value:function(e){return parseBox(e,!0,(function(e,t){e.sequenceNumber=readBig32(t)}))}},{key:"traf",value:function(t){return parseBox(t,!1,(function(t,n,r){t.tfhd=e.tfhd(e.findBox(n,["tfhd"],r)[0]),t.tfdt=e.tfdt(e.findBox(n,["tfdt"],r)[0]),t.trun=e.trun(e.findBox(n,["trun"],r)[0])}))}},{key:"trun",value:function(e){return parseBox(e,!0,(function(e,t){var n=e.version,r=e.flags,i=t.length,a=e.sampleCount=readBig32(t),o=4;if(i>o&&1&r&&(e.dataOffset=-(1+~readBig32(t,o)),o+=4),i>o&&4&r&&(e.firstSampleFlags=readBig32(t,o),o+=4),i>o){var l;e.samples=new Array(a);for(var d=0;d<a;d++)l={},256&r&&(l.duration=readBig32(t,o),o+=4),512&r&&(l.size=readBig32(t,o),o+=4),1024&r&&(l.flags=readBig32(t,o),o+=4),2048&r&&(l.cts=n?-(1+~readBig32(t,o+4)):readBig32(t,o),o+=4),e.samples[d]=l}}))}},{key:"tfdt",value:function(e){return parseBox(e,!0,(function(e,t){1===e.version?e.baseMediaDecodeTime=readBig64(t):e.baseMediaDecodeTime=readBig32(t)}))}},{key:"probe",value:function(t){return!!e.findBox(t,["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,t,n){var r,i,a=e.trak;if(a&&a.length){var o=a.find((function(e){var t,n;return"vide"===(null===(t=e.mdia)||void 0===t||null===(n=t.hdlr)||void 0===n?void 0:n.handlerType)})),l=a.find((function(e){var t,n;return"soun"===(null===(t=e.mdia)||void 0===t||null===(n=t.hdlr)||void 0===n?void 0:n.handlerType)}));if(o&&t){var d,c,s,U,F,u,Q,R,h=t,p=null===(d=o.tkhd)||void 0===d?void 0:d.trackId;null!=p&&(h.id=o.tkhd.trackId),h.tkhdDuration=o.tkhd.duration,h.mvhdDurtion=e.mvhd.duration,h.mvhdTimecale=e.mvhd.timescale,h.timescale=h.formatTimescale=o.mdia.mdhd.timescale,h.duration=o.mdia.mdhd.duration||h.mvhdDurtion/h.mvhdTimecale*h.timescale,null!==(c=o.edts)&&void 0!==c&&c.elst&&(h.editList=o.edts.elst,h.editListApplied=o.editListApplied);var B,S,f,m,V,y,E,Z,b=o.mdia.minf.stbl.stsd.entries[0];if(h.width=b.width,h.height=b.height,b.pasp&&(h.sarRatio=[b.pasp.hSpacing,b.pasp.vSpacing]),b.hvcC)h.codecType=VideoCodecType.HEVC,h.codec=b.hvcC.codec,h.vps=b.hvcC.vps,h.sps=b.hvcC.sps,h.pps=b.hvcC.pps,h.hvcC=b.hvcC.data;else if(b.avcC)h.codec=b.avcC.codec,h.sps=b.avcC.sps,h.pps=b.avcC.pps;else{if(!b.vvcC)throw new Error("unknown video stsd entry");h.codecType=VideoCodecType.VVCC,h.codec=b.vvcC.codec,h.sps=b.vvcC.sps,h.pps=b.vvcC.pps,h.vps=b.vvcC.vps,h.vvcC=b.vvcC.data}if(h.present=!0,h.ext={},h.ext.stss=null===(s=o.mdia)||void 0===s||null===(U=s.minf)||void 0===U||null===(F=U.stbl)||void 0===F?void 0:F.stss,h.ext.ctts=null===(u=o.mdia)||void 0===u||null===(Q=u.minf)||void 0===Q||null===(R=Q.stbl)||void 0===R?void 0:R.ctts,b&&"encv"===b.type)h.isVideoEncryption=!0,b.default_KID=null===(B=b.sinf)||void 0===B||null===(S=B.schi)||void 0===S?void 0:S.tenc.default_KID,b.default_IsEncrypted=null===(f=b.sinf)||void 0===f||null===(m=f.schi)||void 0===m?void 0:m.tenc.default_IsEncrypted,b.default_IV_size=null===(V=b.sinf)||void 0===V||null===(y=V.schi)||void 0===y?void 0:y.tenc.default_IV_size,h.videoSenc=o.mdia.minf.stbl.senc&&o.mdia.minf.stbl.senc.samples,b.data_format=null===(E=b.sinf)||void 0===E||null===(Z=E.frma)||void 0===Z?void 0:Z.data_format,h.useEME=e.useEME,h.kidValue=e.kidValue,h.pssh=e.pssh,h.encv=b}if(l&&n){var J,v,g,T,W,k,N,C,I,L,_=n,x=null===(J=l.tkhd)||void 0===J?void 0:J.trackId;null!=x&&(_.id=l.tkhd.trackId),_.tkhdDuration=l.tkhd.duration,_.mvhdDurtion=e.mvhd.duration,_.mvhdTimecale=e.mvhd.timescale,_.timescale=_.formatTimescale=l.mdia.mdhd.timescale,_.duration=l.mdia.mdhd.duration||_.mvhdDurtion/_.mvhdTimecale*_.timescale,null!==(v=l.edts)&&void 0!==v&&v.elst&&(_.editList=l.edts.elst,_.editListApplied=l.editListApplied);var D,G,X,M,P,w,O,$,Y=l.mdia.minf.stbl.stsd.entries[0];switch(_.sampleSize=Y.sampleSize,_.sampleRate=Y.sampleRate,_.channelCount=Y.channelCount,_.present=!0,Y.type){case"alaw":_.codecType=_.codec=AudioCodecType.G711PCMA,_.sampleRate=8e3;break;case"ulaw":_.codecType=_.codec=AudioCodecType.G711PCMU,_.sampleRate=8e3;break;default:_.sampleDuration=AAC.getFrameDuration(_.sampleRate,_.timescale),_.sampleRateIndex=AAC.getRateIndexByRate(_.sampleRate),_.objectType=(null===(r=Y.esds)||void 0===r?void 0:r.objectType)||2,Y.esds&&(_.config=Array.from(Y.esds.config)),_.codec=(null===(i=Y.esds)||void 0===i?void 0:i.codec)||"mp4a.40.2"}if(_.sampleDuration=AAC.getFrameDuration(_.sampleRate,_.timescale),_.objectType=(null===(g=Y.esds)||void 0===g?void 0:g.objectType)||2,Y.esds&&(Y.esds.config?_.config=Array.from(Y.esds.config):console.warn("esds config is null")),_.codec=(null===(T=Y.esds)||void 0===T?void 0:T.codec)||"mp4a.40.2",_.sampleRateIndex=AAC.getRateIndexByRate(_.sampleRate),_.ext={},_.ext.stss=null===(W=l.mdia)||void 0===W||null===(k=W.minf)||void 0===k||null===(N=k.stbl)||void 0===N?void 0:N.stss,_.ext.ctts=null===(C=l.mdia)||void 0===C||null===(I=C.minf)||void 0===I||null===(L=I.stbl)||void 0===L?void 0:L.ctts,_.present=!0,Y&&"enca"===Y.type)_.isAudioEncryption=!0,Y.data_format=null===(D=Y.sinf)||void 0===D||null===(G=D.frma)||void 0===G?void 0:G.data_format,Y.default_KID=null===(X=Y.sinf)||void 0===X||null===(M=X.schi)||void 0===M?void 0:M.tenc.default_KID,Y.default_IsEncrypted=null===(P=Y.sinf)||void 0===P||null===(w=P.schi)||void 0===w?void 0:w.tenc.default_IsEncrypted,Y.default_IV_size=null===(O=Y.sinf)||void 0===O||null===($=O.schi)||void 0===$?void 0:$.tenc.default_IV_size,_.audioSenc=l.mdia.minf.stbl.senc&&l.mdia.minf.stbl.senc.samples,_.useEME=e.useEME,_.kidValue=e.kidValue,_.enca=Y}if(n&&(n.isVideoEncryption=!!t&&t.isVideoEncryption),t&&(t.isAudioEncryption=!!n&&n.isAudioEncryption),null!=t&&t.encv||null!=n&&n.enca){var K,j,H=null==t||null===(K=t.encv)||void 0===K?void 0:K.default_KID,A=null==n||null===(j=n.enca)||void 0===j?void 0:j.default_KID,z=H||A?(H||A).join(""):null;t&&(t.kid=z),n&&(n.kid=z)}return t&&(t.flags=3841),n&&(n.flags=1793),{videoTrack:t,audioTrack:n}}}},{key:"evaluateDefaultDuration",value:function(e,t,n){var r,i=null==t||null===(r=t.samples)||void 0===r?void 0:r.length;return i?1024*i/t.timescale*e.timescale/n:1024}},{key:"moofToSamples",value:function(t,n,r){var i={};return t.mfhd&&(n&&(n.sequenceNumber=t.mfhd.sequenceNumber),r&&(r.sequenceNumber=t.mfhd.sequenceNumber)),t.traf.forEach((function(t){var a=t.tfhd,o=t.tfdt,l=t.trun;if(a&&l){o&&(n&&n.id===a.trackId&&(n.baseMediaDecodeTime=o.baseMediaDecodeTime),r&&r.id===a.trackId&&(r.baseMediaDecodeTime=o.baseMediaDecodeTime));var d=a.defaultSampleSize||0,c=a.defaultSampleDuration||e.evaluateDefaultDuration(n,r,l.samples.length||l.sampleCount),s=l.dataOffset||0,U=0,F=-1;if(!l.samples.length&&l.sampleCount){i[a.trackId]=new Array(l.sampleCount);for(var u=0;u<l.sampleCount;u++)i[a.trackId][u]={offset:s,dts:U,duration:c,size:d},U+=c,s+=d}else i[a.trackId]=l.samples.map((function(e,t){return(e={offset:s,dts:U,pts:U+(e.cts||0),duration:e.duration||c,size:e.size||d,gopId:F,keyframe:0===t||null!==e.flags&&void 0!==e.flags&&(65536&e.flags)>>>0!=65536}).keyframe&&(F++,e.gopId=F),U+=e.duration,s+=e.size,e}))}})),i}},{key:"moovToSamples",value:function(e){var t=e.trak;if(t&&t.length){var n=t.find((function(e){var t,n;return"vide"===(null===(t=e.mdia)||void 0===t||null===(n=t.hdlr)||void 0===n?void 0:n.handlerType)})),r=t.find((function(e){var t,n;return"soun"===(null===(t=e.mdia)||void 0===t||null===(n=t.hdlr)||void 0===n?void 0:n.handlerType)}));if(n||r){var i,a;if(n){var o,l,d=null===(o=n.mdia)||void 0===o||null===(l=o.minf)||void 0===l?void 0:l.stbl;if(!d)return;var c=d.stts,s=d.stsc,U=d.stsz,F=d.stco,u=d.stss,Q=d.ctts;if(!(c&&s&&U&&F&&u))return;i=getSamples(c,s,U,F,Q,u)}if(r){var R,h,p,B=null===(R=r.mdia)||void 0===R||null===(h=R.minf)||void 0===h?void 0:h.stbl;if(!B)return;var S=null===(p=r.mdia.mdhd)||void 0===p?void 0:p.timescale,f=B.stts,m=B.stsc,V=B.stsz,y=B.stco;if(!(S&&f&&m&&V&&y))return;a=getSamples(f,m,V,y)}return{videoSamples:i,audioSamples:a}}}}}]),e}();function getSamples(e,t,n,r,i,a){var o,l,d,c=[],s=null==i?void 0:i.entries,U=t.entries,F=r.entries,u=n.entrySizes,Q=null==a?void 0:a.entries;Q&&(o={},Q.forEach((function(e){o[e-1]=!0}))),s&&(l=[],s.forEach((function(e){for(var t=e.count,n=e.offset,r=0;r<t;r++)l.push(n)})));var R=-1,h=0,p=0,B=0,S=0,f=0,m=U[0].samplesPerChunk,V=U[1]?U[1].firstChunk-1:1/0;return e.entries.forEach((function(e){for(var t=e.count,r=e.delta,i=0;i<t;i++)d={dts:h,duration:r,size:u[p]||n.sampleSize,offset:F[B]+f,index:p},Q&&(d.keyframe=o[p],d.keyframe&&R++,d.gopId=R),l&&p<l.length&&(d.pts=d.dts+l[p]),c.push(d),h+=r,++p<m?f+=d.size:(B++,f=0,B>=V&&(S++,V=U[S+1]?U[S+1].firstChunk-1:1/0),m+=U[S].samplesPerChunk)})),c}function parseVisualSampleEntry(e,t){return e.dataReferenceIndex=readBig16(t,6),e.width=readBig16(t,24),e.height=readBig16(t,26),e.horizresolution=readBig32(t,28),e.vertresolution=readBig32(t,32),e.frameCount=readBig16(t,40),e.depth=readBig16(t,74),78}function parseAudioSampleEntry(e,t){return e.dataReferenceIndex=readBig16(t,6),e.channelCount=readBig16(t,16),e.sampleSize=readBig16(t,18),e.sampleRate=readBig32(t,24)/65536,28}function parseBox(e,t,n){if(e){if(e.size!==e.data.length)throw new Error("box ".concat(e.type," size !== data.length"));var r={start:e.start,size:e.size,headerSize:e.headerSize,type:e.type};return t&&(r.version=e.data[e.headerSize],r.flags=readBig24(e.data,e.headerSize+1),r.headerSize+=4),n(r,e.data.subarray(r.headerSize),r.start+r.headerSize),r}}var padStart2=function(e,t,n){for(var r=String(n),i=t>>0,a=Math.ceil(i/r.length),o=[],l=String(e);a--;)o.push(r);return o.join("").substring(0,i-l.length)+l},toHex=function(){for(var e=[],t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return n.forEach((function(t){e.push(padStart2(Number(t).toString(16),2,0))})),e[0]},Logger$1=function(){function e(t,n){_classCallCheck$3(this,e),this.name=t||"",this._prefix="[".concat(this.name,"]"),e.disabled=n}return _createClass$3(e,[{key:"debug",value:function(){var t;if(!e.disabled){for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];(t=console).debug.apply(t,[this._prefix].concat(r))}}},{key:"log",value:function(){var t;if(!e.disabled){for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];(t=console).log.apply(t,[this._prefix].concat(r))}}},{key:"warn",value:function(){var t;if(!e.disabled){for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];(t=console).warn.apply(t,[this._prefix].concat(r))}}},{key:"error",value:function(){var t;if(!e.disabled){for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];(t=console).error.apply(t,[this._prefix].concat(r))}}},{key:"table",value:function(){var t;e.disabled||(console.group(this._prefix),(t=console).table.apply(t,arguments),console.groupEnd())}}],[{key:"enable",value:function(){e.disabled=!1}},{key:"disable",value:function(){e.disabled=!0}}]),e}();_defineProperty$3(Logger$1,"disabled",!0);var createTypedArrayConstructor$6=typedArrayConstructorExports;createTypedArrayConstructor$6("Float32",(function(e){return function(t,n,r){return e(this,t,n,r)}}));var createTypedArrayConstructor$5=typedArrayConstructorExports;createTypedArrayConstructor$5("Float64",(function(e){return function(t,n,r){return e(this,t,n,r)}}));var createTypedArrayConstructor$4=typedArrayConstructorExports;createTypedArrayConstructor$4("Int8",(function(e){return function(t,n,r){return e(this,t,n,r)}}));var createTypedArrayConstructor$3=typedArrayConstructorExports;createTypedArrayConstructor$3("Int16",(function(e){return function(t,n,r){return e(this,t,n,r)}}));var createTypedArrayConstructor$2=typedArrayConstructorExports;createTypedArrayConstructor$2("Uint8",(function(e){return function(t,n,r){return e(this,t,n,r)}}),!0);var createTypedArrayConstructor$1=typedArrayConstructorExports;createTypedArrayConstructor$1("Uint16",(function(e){return function(t,n,r){return e(this,t,n,r)}}));var createTypedArrayConstructor=typedArrayConstructorExports;createTypedArrayConstructor("Uint32",(function(e){return function(t,n,r){return e(this,t,n,r)}}));for(var Base=function(){return _createClass$a((function e(){_classCallCheck$a(this,e)}),[{key:"mixIn",value:function(e){return Object.assign(this,e)}},{key:"clone",value:function(){var e=new this.constructor;return Object.assign(e,this),e}}],[{key:"create",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return _construct$3(this,t)}}])}(),WordArray=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4*n.length;_classCallCheck$a(this,t),e=_callSuper$3(this,t);var i=n;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),(i instanceof Int8Array||i instanceof Uint8ClampedArray||i instanceof Int16Array||i instanceof Uint16Array||i instanceof Int32Array||i instanceof Uint32Array||i instanceof Float32Array||i instanceof Float64Array)&&(i=new Uint8Array(i.buffer,i.byteOffset,i.byteLength)),i instanceof Uint8Array){for(var a=i.byteLength,o=[],l=0;l<a;l+=1)o[l>>>2]|=i[l]<<24-l%4*8;e.words=o,e.sigBytes=a}else e.words=n,e.sigBytes=r;return e}return _inherits$8(t,Base),_createClass$a(t,[{key:"toString",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:Hex).stringify(this)}},{key:"concat",value:function(e){var t=this.words,n=e.words,r=this.sigBytes,i=e.sigBytes;if(this.clamp(),r%4)for(var a=0;a<i;a+=1){var o=n[a>>>2]>>>24-a%4*8&255;t[r+a>>>2]|=o<<24-(r+a)%4*8}else for(var l=0;l<i;l+=4)t[r+l>>>2]=n[l>>>2];return this.sigBytes+=i,this}},{key:"clamp",value:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=Math.ceil(t/4)}},{key:"clone",value:function(){var e=_superPropGet$1(t,"clone",this,1).call(this);return e.words=this.words.slice(0),e}}],[{key:"random",value:function(e){for(var n,r=[],i=function(e){var t=e,n=987654321,r=4294967295;return function(){var e=((n=36969*(65535&n)+(n>>16)&r)<<16)+(t=18e3*(65535&t)+(t>>16)&r)&r;return e/=4294967296,(e+=.5)*(Math.random()>.5?1:-1)}},a=0;a<e;a+=4){var o=i(4294967296*(n||Math.random()));n=987654071*o(),r.push(4294967296*o()|0)}return new t(r,e)}}])}(),Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i+=1){var a=t[i>>>2]>>>24-i%4*8&255;r.push((a>>>4).toString(16)),r.push((15&a).toString(16))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new WordArray(n,t/2)}},Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i+=1){var a=t[i>>>2]>>>24-i%4*8&255;r.push(String.fromCharCode(a))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=1)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new WordArray(n,t)}},Utf8={stringify:function(e){try{return decodeURIComponent(escape(Latin1.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return Latin1.parse(unescape(encodeURIComponent(e)))}},BufferedBlockAlgorithm=function(e){function t(){var e;return _classCallCheck$a(this,t),(e=_callSuper$3(this,t))._minBufferSize=0,e}return _inherits$8(t,Base),_createClass$a(t,[{key:"reset",value:function(){this._data=new WordArray,this._nDataBytes=0}},{key:"_append",value:function(e){var t=e;"string"==typeof t&&(t=Utf8.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes}},{key:"_process",value:function(e){var t,n=this._data,r=this.blockSize,i=n.words,a=n.sigBytes,o=a/(4*r),l=(o=e?Math.ceil(o):Math.max((0|o)-this._minBufferSize,0))*r,d=Math.min(4*l,a);if(l){for(var c=0;c<l;c+=r)this._doProcessBlock(i,c);t=i.splice(0,l),n.sigBytes-=d}return new WordArray(t,d)}},{key:"clone",value:function(){var e=_superPropGet$1(t,"clone",this,1).call(this);return e._data=this._data.clone(),e}}])}(),Hasher=function(e){function t(e){var n;return _classCallCheck$a(this,t),(n=_callSuper$3(this,t)).blockSize=16,n.cfg=Object.assign(new Base,e),n.reset(),n}return _inherits$8(t,BufferedBlockAlgorithm),_createClass$a(t,[{key:"reset",value:function(){_superPropGet$1(t,"reset",this,1).call(this),this._doReset()}},{key:"update",value:function(e){return this._append(e),this._process(),this}},{key:"finalize",value:function(e){return e&&this._append(e),this._doFinalize()}}],[{key:"_createHelper",value:function(e){return function(t,n){return new e(n).finalize(t)}}},{key:"_createHmacHelper",value:function(e){return function(t,n){return new HMAC(e,n).finalize(t)}}}])}(),HMAC=function(e){function t(e,n){var r;_classCallCheck$a(this,t),r=_callSuper$3(this,t);var i=new e;r._hasher=i;var a=n;"string"==typeof a&&(a=Utf8.parse(a));var o=i.blockSize,l=4*o;a.sigBytes>l&&(a=i.finalize(n)),a.clamp();var d=a.clone();r._oKey=d;var c=a.clone();r._iKey=c;for(var s=d.words,U=c.words,F=0;F<o;F+=1)s[F]^=1549556828,U[F]^=909522486;return d.sigBytes=l,c.sigBytes=l,r.reset(),r}return _inherits$8(t,Base),_createClass$a(t,[{key:"reset",value:function(){var e=this._hasher;e.reset(),e.update(this._iKey)}},{key:"update",value:function(e){return this._hasher.update(e),this}},{key:"finalize",value:function(e){var t=this._hasher,n=t.finalize(e);return t.reset(),t.finalize(this._oKey.clone().concat(n))}}])}(),parseLoop=function(e,t,n){for(var r=[],i=0,a=0;a<t;a+=1)if(a%4){var o=n[e.charCodeAt(a-1)]<<a%4*2|n[e.charCodeAt(a)]>>>6-a%4*2;r[i>>>2]|=o<<24-i%4*8,i+=1}return WordArray.create(r,i)},Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r=this._map;e.clamp();for(var i=[],a=0;a<n;a+=3)for(var o=(t[a>>>2]>>>24-a%4*8&255)<<16|(t[a+1>>>2]>>>24-(a+1)%4*8&255)<<8|t[a+2>>>2]>>>24-(a+2)%4*8&255,l=0;l<4&&a+.75*l<n;l+=1)i.push(r.charAt(o>>>6*(3-l)&63));var d=r.charAt(64);if(d)for(;i.length%4;)i.push(d);return i.join("")},parse:function(e){var t=e.length,n=this._map,r=this._reverseMap;if(!r){this._reverseMap=[],r=this._reverseMap;for(var i=0;i<n.length;i+=1)r[n.charCodeAt(i)]=i}var a=n.charAt(64);if(a){var o=e.indexOf(a);-1!==o&&(t=o)}return parseLoop(e,t,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},T=[],i$1=0;i$1<64;i$1+=1)T[i$1]=4294967296*Math.abs(Math.sin(i$1+1))|0;var FF=function(e,t,n,r,i,a,o){var l=e+(t&n|~t&r)+i+o;return(l<<a|l>>>32-a)+t},GG=function(e,t,n,r,i,a,o){var l=e+(t&r|n&~r)+i+o;return(l<<a|l>>>32-a)+t},HH=function(e,t,n,r,i,a,o){var l=e+(t^n^r)+i+o;return(l<<a|l>>>32-a)+t},II=function(e,t,n,r,i,a,o){var l=e+(n^(t|~r))+i+o;return(l<<a|l>>>32-a)+t},MD5Algo=function(e){function t(){return _classCallCheck$a(this,t),_callSuper$3(this,t,arguments)}return _inherits$8(t,Hasher),_createClass$a(t,[{key:"_doReset",value:function(){this._hash=new WordArray([1732584193,4023233417,2562383102,271733878])}},{key:"_doProcessBlock",value:function(e,t){for(var n=e,r=0;r<16;r+=1){var i=t+r,a=e[i];n[i]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}var o=this._hash.words,l=n[t+0],d=n[t+1],c=n[t+2],s=n[t+3],U=n[t+4],F=n[t+5],u=n[t+6],Q=n[t+7],R=n[t+8],h=n[t+9],p=n[t+10],B=n[t+11],S=n[t+12],f=n[t+13],m=n[t+14],V=n[t+15],y=o[0],E=o[1],Z=o[2],b=o[3];y=FF(y,E,Z,b,l,7,T[0]),b=FF(b,y,E,Z,d,12,T[1]),Z=FF(Z,b,y,E,c,17,T[2]),E=FF(E,Z,b,y,s,22,T[3]),y=FF(y,E,Z,b,U,7,T[4]),b=FF(b,y,E,Z,F,12,T[5]),Z=FF(Z,b,y,E,u,17,T[6]),E=FF(E,Z,b,y,Q,22,T[7]),y=FF(y,E,Z,b,R,7,T[8]),b=FF(b,y,E,Z,h,12,T[9]),Z=FF(Z,b,y,E,p,17,T[10]),E=FF(E,Z,b,y,B,22,T[11]),y=FF(y,E,Z,b,S,7,T[12]),b=FF(b,y,E,Z,f,12,T[13]),Z=FF(Z,b,y,E,m,17,T[14]),E=FF(E,Z,b,y,V,22,T[15]),y=GG(y,E,Z,b,d,5,T[16]),b=GG(b,y,E,Z,u,9,T[17]),Z=GG(Z,b,y,E,B,14,T[18]),E=GG(E,Z,b,y,l,20,T[19]),y=GG(y,E,Z,b,F,5,T[20]),b=GG(b,y,E,Z,p,9,T[21]),Z=GG(Z,b,y,E,V,14,T[22]),E=GG(E,Z,b,y,U,20,T[23]),y=GG(y,E,Z,b,h,5,T[24]),b=GG(b,y,E,Z,m,9,T[25]),Z=GG(Z,b,y,E,s,14,T[26]),E=GG(E,Z,b,y,R,20,T[27]),y=GG(y,E,Z,b,f,5,T[28]),b=GG(b,y,E,Z,c,9,T[29]),Z=GG(Z,b,y,E,Q,14,T[30]),E=GG(E,Z,b,y,S,20,T[31]),y=HH(y,E,Z,b,F,4,T[32]),b=HH(b,y,E,Z,R,11,T[33]),Z=HH(Z,b,y,E,B,16,T[34]),E=HH(E,Z,b,y,m,23,T[35]),y=HH(y,E,Z,b,d,4,T[36]),b=HH(b,y,E,Z,U,11,T[37]),Z=HH(Z,b,y,E,Q,16,T[38]),E=HH(E,Z,b,y,p,23,T[39]),y=HH(y,E,Z,b,f,4,T[40]),b=HH(b,y,E,Z,l,11,T[41]),Z=HH(Z,b,y,E,s,16,T[42]),E=HH(E,Z,b,y,u,23,T[43]),y=HH(y,E,Z,b,h,4,T[44]),b=HH(b,y,E,Z,S,11,T[45]),Z=HH(Z,b,y,E,V,16,T[46]),E=HH(E,Z,b,y,c,23,T[47]),y=II(y,E,Z,b,l,6,T[48]),b=II(b,y,E,Z,Q,10,T[49]),Z=II(Z,b,y,E,m,15,T[50]),E=II(E,Z,b,y,F,21,T[51]),y=II(y,E,Z,b,S,6,T[52]),b=II(b,y,E,Z,s,10,T[53]),Z=II(Z,b,y,E,p,15,T[54]),E=II(E,Z,b,y,d,21,T[55]),y=II(y,E,Z,b,R,6,T[56]),b=II(b,y,E,Z,V,10,T[57]),Z=II(Z,b,y,E,u,15,T[58]),E=II(E,Z,b,y,f,21,T[59]),y=II(y,E,Z,b,U,6,T[60]),b=II(b,y,E,Z,B,10,T[61]),Z=II(Z,b,y,E,c,15,T[62]),E=II(E,Z,b,y,h,21,T[63]),o[0]=o[0]+y|0,o[1]=o[1]+E|0,o[2]=o[2]+Z|0,o[3]=o[3]+b|0}},{key:"_doFinalize",value:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;t[r>>>5]|=128<<24-r%32;var i=Math.floor(n/4294967296),a=n;t[15+(r+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),t[14+(r+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),e.sigBytes=4*(t.length+1),this._process();for(var o=this._hash,l=o.words,d=0;d<4;d+=1){var c=l[d];l[d]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}return o}},{key:"clone",value:function(){var e=_superPropGet$1(t,"clone",this,1).call(this);return e._hash=this._hash.clone(),e}}])}();Hasher._createHelper(MD5Algo),Hasher._createHmacHelper(MD5Algo);var EvpKDFAlgo=function(e){function t(e){var n;return _classCallCheck$a(this,t),(n=_callSuper$3(this,t)).cfg=Object.assign(new Base,{keySize:4,hasher:MD5Algo,iterations:1},e),n}return _inherits$8(t,Base),_createClass$a(t,[{key:"compute",value:function(e,t){for(var n,r=this.cfg,i=r.hasher.create(),a=WordArray.create(),o=a.words,l=r.keySize,d=r.iterations;o.length<l;){n&&i.update(n),n=i.update(e).finalize(t),i.reset();for(var c=1;c<d;c+=1)n=i.finalize(n),i.reset();a.concat(n)}return a.sigBytes=4*l,a}}])}(),Cipher=function(e){function t(e,n,r){var i;return _classCallCheck$a(this,t),(i=_callSuper$3(this,t)).cfg=Object.assign(new Base,r),i._xformMode=e,i._key=n,i.reset(),i}return _inherits$8(t,BufferedBlockAlgorithm),_createClass$a(t,[{key:"reset",value:function(){_superPropGet$1(t,"reset",this,1).call(this),this._doReset()}},{key:"process",value:function(e){return this._append(e),this._process()}},{key:"finalize",value:function(e){return e&&this._append(e),this._doFinalize()}}],[{key:"createEncryptor",value:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)}},{key:"createDecryptor",value:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)}},{key:"_createHelper",value:function(e){var t=function(e){return"string"==typeof e?PasswordBasedCipher:SerializableCipher};return{encrypt:function(n,r,i){return t(r).encrypt(e,n,r,i)},decrypt:function(n,r,i){return t(r).decrypt(e,n,r,i)}}}}])}();Cipher._ENC_XFORM_MODE=1,Cipher._DEC_XFORM_MODE=2,Cipher.keySize=4,Cipher.ivSize=4;var BlockCipherMode=function(e){function t(e,n){var r;return _classCallCheck$a(this,t),(r=_callSuper$3(this,t))._cipher=e,r._iv=n,r}return _inherits$8(t,Base),_createClass$a(t,null,[{key:"createEncryptor",value:function(e,t){return this.Encryptor.create(e,t)}},{key:"createDecryptor",value:function(e,t){return this.Decryptor.create(e,t)}}])}();function xorBlock(e,t,n){var r,i=e,a=this._iv;a?(r=a,this._iv=void 0):r=this._prevBlock;for(var o=0;o<n;o+=1)i[t+o]^=r[o]}var CBC=function(e){function t(){return _classCallCheck$a(this,t),_callSuper$3(this,t,arguments)}return _inherits$8(t,BlockCipherMode),_createClass$a(t)}();CBC.Encryptor=function(e){function t(){return _classCallCheck$a(this,t),_callSuper$3(this,t,arguments)}return _inherits$8(t,CBC),_createClass$a(t,[{key:"processBlock",value:function(e,t){var n=this._cipher,r=n.blockSize;xorBlock.call(this,e,t,r),n.encryptBlock(e,t),this._prevBlock=e.slice(t,t+r)}}])}(),CBC.Decryptor=function(e){function t(){return _classCallCheck$a(this,t),_callSuper$3(this,t,arguments)}return _inherits$8(t,CBC),_createClass$a(t,[{key:"processBlock",value:function(e,t){var n=this._cipher,r=n.blockSize,i=e.slice(t,t+r);n.decryptBlock(e,t),xorBlock.call(this,e,t,r),this._prevBlock=i}}])}();var Pkcs7={pad:function(e,t){for(var n=4*t,r=n-e.sigBytes%n,i=r<<24|r<<16|r<<8|r,a=[],o=0;o<r;o+=4)a.push(i);var l=WordArray.create(a,r);e.concat(l)},unpad:function(e){var t=e,n=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=n}},BlockCipher=function(e){function t(e,n,r){var i;return _classCallCheck$a(this,t),(i=_callSuper$3(this,t,[e,n,Object.assign({mode:CBC,padding:Pkcs7},r)])).blockSize=4,i}return _inherits$8(t,Cipher),_createClass$a(t,[{key:"reset",value:function(){var e;_superPropGet$1(t,"reset",this,1).call(this);var n=this.cfg,r=n.iv,i=n.mode;this._xformMode===this.constructor._ENC_XFORM_MODE?e=i.createEncryptor:(e=i.createDecryptor,this._minBufferSize=1),this._mode=e.call(i,this,r&&r.words),this._mode.__creator=e}},{key:"_doProcessBlock",value:function(e,t){this._mode.processBlock(e,t)}},{key:"_doFinalize",value:function(){var e,t=this.cfg.padding;return this._xformMode===this.constructor._ENC_XFORM_MODE?(t.pad(this._data,this.blockSize),e=this._process(!0)):(e=this._process(!0),t.unpad(e)),e}}])}(),CipherParams=function(e){function t(e){var n;return _classCallCheck$a(this,t),(n=_callSuper$3(this,t)).mixIn(e),n}return _inherits$8(t,Base),_createClass$a(t,[{key:"toString",value:function(e){return(e||this.formatter).stringify(this)}}])}(),OpenSSLFormatter={stringify:function(e){var t=e.ciphertext,n=e.salt;return(n?WordArray.create([1398893684,1701076831]).concat(n).concat(t):t).toString(Base64)},parse:function(e){var t,n=Base64.parse(e),r=n.words;return 1398893684===r[0]&&1701076831===r[1]&&(t=WordArray.create(r.slice(2,4)),r.splice(0,4),n.sigBytes-=16),CipherParams.create({ciphertext:n,salt:t})}},SerializableCipher=function(e){function t(){return _classCallCheck$a(this,t),_callSuper$3(this,t,arguments)}return _inherits$8(t,Base),_createClass$a(t,null,[{key:"encrypt",value:function(e,t,n,r){var i=Object.assign(new Base,this.cfg,r),a=e.createEncryptor(n,i),o=a.finalize(t),l=a.cfg;return CipherParams.create({ciphertext:o,key:n,iv:l.iv,algorithm:e,mode:l.mode,padding:l.padding,blockSize:a.blockSize,formatter:i.format})}},{key:"decrypt",value:function(e,t,n,r){var i=t,a=Object.assign(new Base,this.cfg,r);return i=this._parse(i,a.format),e.createDecryptor(n,a).finalize(i.ciphertext)}},{key:"_parse",value:function(e,t){return"string"==typeof e?t.parse(e,this):e}}])}();SerializableCipher.cfg=Object.assign(new Base,{format:OpenSSLFormatter});var OpenSSLKdf={execute:function(e,t,n,r){var i=r;i||(i=WordArray.random(8));var a=EvpKDFAlgo.create({keySize:t+n}).compute(e,i),o=WordArray.create(a.words.slice(t),4*n);return a.sigBytes=4*t,CipherParams.create({key:a,iv:o,salt:i})}},PasswordBasedCipher=function(e){function t(){return _classCallCheck$a(this,t),_callSuper$3(this,t,arguments)}return _inherits$8(t,SerializableCipher),_createClass$a(t,null,[{key:"encrypt",value:function(e,t,n,r){var i=Object.assign(new Base,this.cfg,r),a=i.kdf.execute(n,e.keySize,e.ivSize);i.iv=a.iv;var o=SerializableCipher.encrypt.call(this,e,t,a.key,i);return o.mixIn(a),o}},{key:"decrypt",value:function(e,t,n,r){var i=t,a=Object.assign(new Base,this.cfg,r);i=this._parse(i,a.format);var o=a.kdf.execute(n,e.keySize,e.ivSize,i.salt);return a.iv=o.iv,SerializableCipher.decrypt.call(this,e,i,o.key,a)}}])}();PasswordBasedCipher.cfg=Object.assign(SerializableCipher.cfg,{kdf:OpenSSLKdf});for(var _SBOX=[],INV_SBOX=[],_SUB_MIX_0=[],_SUB_MIX_1=[],_SUB_MIX_2=[],_SUB_MIX_3=[],INV_SUB_MIX_0=[],INV_SUB_MIX_1=[],INV_SUB_MIX_2=[],INV_SUB_MIX_3=[],d=[],i=0;i<256;i+=1)d[i]=i<128?i<<1:i<<1^283;for(var x=0,xi=0,_i=0;_i<256;_i+=1){var sx=xi^xi<<1^xi<<2^xi<<3^xi<<4;sx=sx>>>8^255&sx^99,_SBOX[x]=sx,INV_SBOX[sx]=x;var x2=d[x],x4=d[x2],x8=d[x4],t=257*d[sx]^16843008*sx;_SUB_MIX_0[x]=t<<24|t>>>8,_SUB_MIX_1[x]=t<<16|t>>>16,_SUB_MIX_2[x]=t<<8|t>>>24,_SUB_MIX_3[x]=t,t=16843009*x8^65537*x4^257*x2^16843008*x,INV_SUB_MIX_0[sx]=t<<24|t>>>8,INV_SUB_MIX_1[sx]=t<<16|t>>>16,INV_SUB_MIX_2[sx]=t<<8|t>>>24,INV_SUB_MIX_3[sx]=t,x?(x=x2^d[d[d[x8^x2]]],xi^=d[d[xi]]):x=xi=1}var RCON=[0,1,2,4,8,16,32,64,128,27,54],AESAlgo=function(e){function t(){return _classCallCheck$a(this,t),_callSuper$3(this,t,arguments)}return _inherits$8(t,BlockCipher),_createClass$a(t,[{key:"_doReset",value:function(){var e;if(!this._nRounds||this._keyPriorReset!==this._key){this._keyPriorReset=this._key;var t=this._keyPriorReset,n=t.words,r=t.sigBytes/4;this._nRounds=r+6;var i=4*(this._nRounds+1);this._keySchedule=[];for(var a=this._keySchedule,o=0;o<i;o+=1)o<r?a[o]=n[o]:(e=a[o-1],o%r?r>6&&o%r==4&&(e=_SBOX[e>>>24]<<24|_SBOX[e>>>16&255]<<16|_SBOX[e>>>8&255]<<8|_SBOX[255&e]):(e=_SBOX[(e=e<<8|e>>>24)>>>24]<<24|_SBOX[e>>>16&255]<<16|_SBOX[e>>>8&255]<<8|_SBOX[255&e],e^=RCON[o/r|0]<<24),a[o]=a[o-r]^e);this._invKeySchedule=[];for(var l=this._invKeySchedule,d=0;d<i;d+=1){var c=i-d;e=d%4?a[c]:a[c-4],l[d]=d<4||c<=4?e:INV_SUB_MIX_0[_SBOX[e>>>24]]^INV_SUB_MIX_1[_SBOX[e>>>16&255]]^INV_SUB_MIX_2[_SBOX[e>>>8&255]]^INV_SUB_MIX_3[_SBOX[255&e]]}}}},{key:"encryptBlock",value:function(e,t){this._doCryptBlock(e,t,this._keySchedule,_SUB_MIX_0,_SUB_MIX_1,_SUB_MIX_2,_SUB_MIX_3,_SBOX)}},{key:"decryptBlock",value:function(e,t){var n=e,r=n[t+1];n[t+1]=n[t+3],n[t+3]=r,this._doCryptBlock(n,t,this._invKeySchedule,INV_SUB_MIX_0,INV_SUB_MIX_1,INV_SUB_MIX_2,INV_SUB_MIX_3,INV_SBOX),r=n[t+1],n[t+1]=n[t+3],n[t+3]=r}},{key:"_doCryptBlock",value:function(e,t,n,r,i,a,o,l){for(var d=e,c=this._nRounds,s=d[t]^n[0],U=d[t+1]^n[1],F=d[t+2]^n[2],u=d[t+3]^n[3],Q=4,R=1;R<c;R+=1){var h=r[s>>>24]^i[U>>>16&255]^a[F>>>8&255]^o[255&u]^n[Q];Q+=1;var p=r[U>>>24]^i[F>>>16&255]^a[u>>>8&255]^o[255&s]^n[Q];Q+=1;var B=r[F>>>24]^i[u>>>16&255]^a[s>>>8&255]^o[255&U]^n[Q];Q+=1;var S=r[u>>>24]^i[s>>>16&255]^a[U>>>8&255]^o[255&F]^n[Q];Q+=1,s=h,U=p,F=B,u=S}var f=(l[s>>>24]<<24|l[U>>>16&255]<<16|l[F>>>8&255]<<8|l[255&u])^n[Q];Q+=1;var m=(l[U>>>24]<<24|l[F>>>16&255]<<16|l[u>>>8&255]<<8|l[255&s])^n[Q];Q+=1;var V=(l[F>>>24]<<24|l[u>>>16&255]<<16|l[s>>>8&255]<<8|l[255&U])^n[Q];Q+=1;var y=(l[u>>>24]<<24|l[s>>>16&255]<<16|l[U>>>8&255]<<8|l[255&F])^n[Q];Q+=1,d[t]=f,d[t+1]=m,d[t+2]=V,d[t+3]=y}}])}();AESAlgo.keySize=8;var AES=BlockCipher._createHelper(AESAlgo),CTR=function(e){function t(){return _classCallCheck$a(this,t),_callSuper$3(this,t,arguments)}return _inherits$8(t,BlockCipherMode),_createClass$a(t)}();CTR.Encryptor=function(e){function t(){return _classCallCheck$a(this,t),_callSuper$3(this,t,arguments)}return _inherits$8(t,CTR),_createClass$a(t,[{key:"processBlock",value:function(e,t){var n=e,r=this._cipher,i=r.blockSize,a=this._iv,o=this._counter;a&&(this._counter=a.slice(0),o=this._counter,this._iv=void 0);var l=o.slice(0);r.encryptBlock(l,0),o[i-1]=o[i-1]+1|0;for(var d=0;d<i;d+=1)n[t+d]^=l[d]}}])}(),CTR.Decryptor=CTR.Encryptor;var NoPadding={pad:function(){},unpad:function(){}};function Concat$1(e){for(var t=0,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];r.forEach((function(e){t+=e.length}));var a=new e(t),o=0;return r.forEach((function(e){a.set(e,o),o+=e.length})),a}var Buffer$1=function(){function e(){_classCallCheck$3(this,e),this.buffer=new Uint8Array(0)}return _createClass$3(e,[{key:"write",value:function(){for(var e=this,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];n.forEach((function(t){t?e.buffer=Concat$1(Uint8Array,e.buffer,t):window.console.warn(t)}))}}],[{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}(),Crypto={decryptWordArray:function(e,t,n){var r=Hex.parse(t),i=Hex.parse(formatIV(n)),a=WordArray.create(new Uint8Array(e)),o=AES.decrypt(CipherParams.create({ciphertext:a}),r,{iv:i,mode:CTR,padding:NoPadding});return Crypto.wordArrayToUint8Array(o)},wordArrayToUint8Array:function(e){for(var t=e.sigBytes,n=e.words,r=new Uint8Array(t),i=0,a=0;i!==t;){var o=n[a++];if(r[i++]=(4278190080&o)>>>24,i===t)break;if(r[i++]=(16711680&o)>>>16,i===t)break;if(r[i++]=(65280&o)>>>8,i===t)break;r[i++]=255&o}return r},decoderAESCTRData:function(e,t,n){if(e.videoSenc){var r=e.kidValue,i=e.videoSenc;e.samples.forEach((function(t,a){var o=i[a],l=t.data,d=[],c=[],s=o.InitializationVector;if(o.subsamples&&o.subsamples.length)o.subsamples.forEach((function(e){var t=e.BytesOfClearData+e.BytesOfProtectedData,n=l.slice(0,t);d.push(n.slice(0,e.BytesOfClearData)),c.push(n.slice(e.BytesOfClearData)),l=l.slice(t)}));else{var U=t.size;d.push(l.slice(0,0)),c.push(l.slice(0,U)),l=l.slice(U)}var F=new Buffer$1;F.write.apply(F,c);var u=n?n(F.buffer,r,s):Crypto.decryptWordArray(F.buffer,r,s),Q=new Buffer$1;d.forEach((function(e,t){var n=c[t].length,r=u.slice(0,n);Q.write(e),Q.write(r),u=u.slice(n)})),e.samples[a].data=Q.buffer}))}if(t.audioSenc){var a=t.kidValue,o=t.audioSenc;t.samples.forEach((function(e,r){var i=o[r],l=n?n(e.data,a,i.InitializationVector):Crypto.decryptWordArray(e.data,a,i.InitializationVector);t.samples[r].data=l}))}}},NEW_ARRAY_MAX_CNT$1=20,DELETE_BOX_LIST=["stts","stsc","stsz","stco","co64","stss","ctts"],MP4Demuxer=function(){function e(t,n,r,i){var a,o,l=this;if(_classCallCheck$3(this,e),_defineProperty$3(this,"_videoSamples",[]),_defineProperty$3(this,"_audioSamples",[]),_defineProperty$3(this,"_lastRemainBuffer",[]),_defineProperty$3(this,"_lastRemainBufferStartPos",0),_defineProperty$3(this,"videoMaxFrameIdx",-1),_defineProperty$3(this,"audioMaxFrameIdx",-1),this.videoTrack=new VideoTrack,this.audioTrack=new AudioTrack,this.metadataTrack=r||new MetadataTrack,this.videoSegmnents=t,this.audioSegmnents=n,this.log=new Logger$1("MP4Demuxer",!i||!i.openLog||!i.openLog),this.memoryOpt=null==i?void 0:i.memoryOpt,this.memoryOpt||(t&&t.forEach((function(e){var t;(t=l._videoSamples).push.apply(t,_toConsumableArray$2(e.frames))})),n&&n.forEach((function(e){var t;(t=l._audioSamples).push.apply(t,_toConsumableArray$2(e.frames))}))),(null===(a=this.videoSegmnents)||void 0===a?void 0:a.length)>0){var d=this.videoSegmnents[this.videoSegmnents.length-1].frames;this.videoMaxFrameIdx=d[d.length-1].index}if((null===(o=this.audioSegmnents)||void 0===o?void 0:o.length)>0){var c=this.audioSegmnents[this.audioSegmnents.length-1].frames;this.audioMaxFrameIdx=c[c.length-1].index}}return _createClass$3(e,[{key:"parseSamples",value:function(e){if(!e)throw new Error("moov is required");this.videoTrack.codec||this.audioTrack.codec||(MP4Parser.moovToTrack(e,this.videoTrack,this.audioTrack),this.videoSenc=this.videoTrack.videoSenc,this.audioSenc=this.audioTrack.audioSenc,this.memoryOpt&&this.clearBoxEntries(e))}},{key:"demux",value:function(e,t,n,r,i){this.parseSamples(i);var a,o,l,d=this.videoTrack,c=this.audioTrack;d.samples=[],c.samples=[];var s={};if(n){var U,F=0;if(this.memoryOpt&&this.videoSegmnents&&!(s=this.getFramePosByIdx("video",n[0])))throw new Error("cannot found video frame #".concat(n[0]));for(var u=s,Q=u.frameIdx,R=u.segmentIdx,h=n[0],p=n[1];h<=p;h++){if(!this._videoSamples.length&&this.videoSegmnents){var B=this.getFrameInfo("video",R,Q);a=B.sample,R=B.segmentIdx,Q=B.frameIdx}else a=this._videoSamples[h];if(!a)throw new Error("cannot found video frame #".concat(h));l=a.offset-t,o=e.subarray(l,l+a.size),(U=new VideoSample("number"==typeof a.pts?a.pts:a.dts,a.dts)).duration=a.duration,U.gopId=a.gopId,a.keyframe&&U.setToKeyframe();for(var S=0,f=o.length-1;S<f;)F=readBig32(o,S),S+=4,U.units.push(o.subarray(S,S+F)),S+=F;d.samples.push(U)}d.baseMediaDecodeTime=d.samples[0].dts}if(s={},r){if(this.memoryOpt&&this.audioSegmnents&&!(s=this.getFramePosByIdx("audio",r[0])))throw new Error("cannot found video frame #".concat(r[0]));for(var m=s,V=m.frameIdx,y=m.segmentIdx,E=r[0],Z=r[1];E<=Z;E++){if(!this._audioSamples.length&&this.audioSegmnents){var b=this.getFrameInfo("audio",y,V);a=b.sample,y=b.segmentIdx,V=b.frameIdx}else a=this._audioSamples[E];if(!a)throw new Error("cannot found video frame #".concat(E));l=a.offset-t,o=e.subarray(l,l+a.size),c.samples.push(new AudioSample(a.dts,o,a.duration))}c.baseMediaDecodeTime=c.samples[0].dts}return{videoTrack:d,audioTrack:c,metadataTrack:this.metadataTrack}}},{key:"demuxPart",value:function(e,t,n,r,i,a,o,l){if(this.parseSamples(i),this.videoTrack.useEME=a,this.audioTrack.useEME=a,this._lastRemainBuffer&&this._lastRemainBuffer.byteLength>0&&t>this._lastRemainBufferStartPos&&t<=this._lastRemainBufferStartPos+this._lastRemainBuffer.byteLength)for(var d=0;d<NEW_ARRAY_MAX_CNT$1;)try{var c=this._lastRemainBuffer.subarray(0,t-this._lastRemainBufferStartPos),s=new Uint8Array(e.byteLength+c.byteLength);s.set(c,0),s.set(new Uint8Array(e),c.byteLength),e=s,t-=c.byteLength,this._lastRemainBuffer=null,this._lastRemainBufferStartPos=0;break}catch(e){if(!(d<NEW_ARRAY_MAX_CNT$1))throw new Error("new Uint8Array error:,"+e.errorMessage);d++}var U,F,u,Q=this.videoTrack,R=this.audioTrack;Q.samples=[],R.samples=[],Q.videoSenc=null,R.audioSenc=null,(null==n?void 0:n[1])>this.videoMaxFrameIdx&&this.videoMaxFrameIdx>0&&(n[1]=this.videoMaxFrameIdx),(null==r?void 0:r[1])>this.audioMaxFrameIdx&&this.audioMaxFrameIdx>0&&(r[1]=this.audioMaxFrameIdx);var h=0,p=0,B={},S=e.byteLength+t;if(n.length>0){var f;if(this.memoryOpt&&this.videoSegmnents&&!(B=this.getFramePosByIdx("video",n[0])))throw new Error("cannot found video frame #".concat(n[0]));for(var m=B,V=m.frameIdx,y=m.segmentIdx,E=n[0];E<=n[1];E++){if(!this._videoSamples.length&&this.videoSegmnents){var Z=this.getFrameInfo("video",y,V);U=Z.sample,y=Z.segmentIdx,V=Z.frameIdx}else U=this._videoSamples[E];if(!U)throw new Error("cannot found video frame #".concat(E));if(this.memoryOpt&&U.offset+U.size>S)break;U.offset>=t&&U.offset+U.size<=S&&(h=(u=U.offset-t)+U.size,F=e.subarray(u,h),(f=new VideoSample("number"==typeof U.pts?U.pts:U.dts,U.dts)).duration=U.duration,f.gopId=U.gopId,f.sampleOffset=U.index,U.keyframe&&f.setToKeyframe(),f.data=F,f.size=U.size,Q.samples.push(f))}Q.samples.length>0&&(Q.gopId=Q.samples[0].gopId,Q.baseMediaDecodeTime=Q.samples[0].dts,Q.startPts=Q.samples[0].pts/Q.timescale,Q.endPts=Q.samples[Q.samples.length-1].pts/Q.timescale,Q.startDts=Q.samples[0].dts/Q.timescale,Q.endDts=Q.samples[Q.samples.length-1].dts/Q.timescale,this.videoSenc&&(Q.videoSenc=this.videoSenc.slice(Q.samples[0].sampleOffset,Q.samples[0].sampleOffset+Q.samples.length),Q.kidValue=o))}if(r.length>0){if(this.memoryOpt&&this.audioSegmnents&&!(B=this.getFramePosByIdx("audio",r[0])))throw new Error("cannot found video frame #".concat(r[0]));for(var b=B,J=b.frameIdx,v=b.segmentIdx,g=r[0];g<=r[1];g++){if(!this._audioSamples.length&&this.audioSegmnents){var T=this.getFrameInfo("audio",v,J);U=T.sample,v=T.segmentIdx,J=T.frameIdx}else U=this._audioSamples[g];if(!U)throw new Error("cannot found video frame #".concat(g));if(this.memoryOpt&&U.offset+U.size>S)break;U.offset>=t&&U.offset+U.size<=S&&(p=(u=U.offset-t)+U.size,F=e.subarray(u,p),R.samples.push(new AudioSample(U.dts,F,U.duration,U.index)))}R.samples.length>0&&(R.gopId=R.samples[0].gopId||Q.gopId,R.baseMediaDecodeTime=R.samples[0].dts,R.startPts=R.samples[0].pts/R.timescale,R.endPts=R.samples[R.samples.length-1].pts/R.timescale,this.audioSenc&&(R.audioSenc=this.audioSenc.slice(R.samples[0].sampleOffset,R.samples[0].sampleOffset+R.samples.length),R.kidValue=o))}this.decoderData(Q,R,l);for(var W=0,k=0;k<Q.samples.length;k++)for(var N=0,C=Q.samples[k].data,I=C.length-1;N<I;)W=readBig32(C,N),N+=4,Q.samples[k].units.push(C.subarray(N,N+W)),N+=W;var L=Math.max(h,p);return this._lastRemainBuffer=e.subarray(L),this._lastRemainBuffer.byteLength>0?this._lastRemainBufferStartPos=t+e.byteLength-this._lastRemainBuffer.byteLength:this._lastRemainBufferStartPos=0,{videoTrack:Q,audioTrack:R,metadataTrack:this.metadataTrack,lastRemainBufferInfo:{data:this._lastRemainBuffer,pos:this._lastRemainBufferStartPos}}}},{key:"setLastRemainBufferInfo",value:function(e,t){this._lastRemainBuffer=e,this._lastRemainBufferStartPos=t}},{key:"reset",value:function(){this._lastRemainBuffer=null,this._lastRemainBufferStartPos=0,this.videoTrack.reset(),this.audioTrack.reset(),this.metadataTrack.reset()}},{key:"decoderData",value:function(e,t,n){e.useEME||t.useEME||Crypto.decoderAESCTRData(e,t,n)}},{key:"getFramePosByIdx",value:function(e,t){var n="video"===e?this.videoSegmnents:this.audioSegmnents;if(!n||null==n||!n.length)return null;for(var r,i=0,a=0;a<n.length;a++){var o,l;if(r=n[a].frames,t<=(null===(o=n[a].frames)||void 0===o?void 0:o[(null===(l=r)||void 0===l?void 0:l.length)-1].index)){i=a;break}}return{frameIdx:r.findIndex((function(e){return e.index===t})),segmentIdx:i}}},{key:"getFrameInfo",value:function(e,t,n){var r,i,a,o,l="video"===e?this.videoSegmnents:this.audioSegmnents;return l?n<(null===(r=l[t])||void 0===r||null===(i=r.frames)||void 0===i?void 0:i.length)?{sample:null===(a=l[t])||void 0===a?void 0:a.frames[n],segmentIdx:t,frameIdx:n+1}:{sample:null===(o=l[t+1])||void 0===o?void 0:o.frames[0],segmentIdx:t+1,frameIdx:1}:{}}},{key:"clearBoxEntries",value:function(e){this.memoryOpt&&e.trak.forEach((function(e){DELETE_BOX_LIST.forEach((function(t){var n=e.mdia.minf.stbl[t];n&&(n.entries&&(n.entries=null),n.entrySizes&&(n.entrySizes=null))}))}))}}],[{key:"probe",value:function(e){return MP4Parser.probe(e)}}]),e}(),UINT32_MAX=Math.pow(2,32)-1,MP4=function(){function e(){_classCallCheck$3(this,e)}return _createClass$3(e,null,[{key:"box",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=8+(n=n.filter(Boolean)).reduce((function(e,t){return e+t.byteLength}),0),a=new Uint8Array(i);a[0]=i>>24&255,a[1]=i>>16&255,a[2]=i>>8&255,a[3]=255&i,a.set(e,4);var o=8;return n.forEach((function(e){a.set(e,o),o+=e.byteLength})),a}},{key:"FullBox",value:function(t,n,r){for(var i=arguments.length,a=new Array(i>3?i-3:0),o=3;o<i;o++)a[o-3]=arguments[o];return e.box.apply(e,[t,new Uint8Array([n,r>>16&255,r>>8&255,255&r])].concat(a))}},{key:"ftyp",value:function(t){var n=t.find((function(e){return e.type===TrackType.VIDEO&&e.codecType===VideoCodecType.HEVC}));return n?e.FTYPHEV1:e.FTYPAVC1}},{key:"initSegment",value:function(t){return concatUint8Array$1(e.ftyp(t),e.moov(t))}},{key:"pssh",value:function(t){var n=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],parse(t.kid),[0,0,0,0]));return e.box(e.types.pssh,n)}},{key:"moov",value:function(t){if(t[0].useEME&&(t[0].encv||t[0].enca)){t[0].pssh||(t[0].pssh={kid:t[0].kid});var n=this.pssh(t[0].pssh);return e.box.apply(e,[e.types.moov,e.mvhd(t[0].mvhdDurtion||t[0].duration,t[0].mvhdTimecale||t[0].timescale),e.mvex(t)].concat(_toConsumableArray$2(t.map((function(t){return e.trak(t)}))),[n]))}return e.box.apply(e,[e.types.moov,e.mvhd(t[0].mvhdDurtion||t[0].duration,t[0].mvhdTimecale||t[0].timescale)].concat(_toConsumableArray$2(t.map((function(t){return e.trak(t)}))),[e.mvex(t)]))}},{key:"mvhd",value:function(t){var n=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,n>>24&255,n>>16&255,n>>8&255,255&n,t>>24&255,t>>16&255,t>>8&255,255&t,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(t){return e.box(e.types.trak,e.tkhd(t.id,t.tkhdDuration||0,t.width,t.height),e.mdia(t))}},{key:"tkhd",value:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=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,t>>24&255,t>>16&255,t>>8&255,255&t,0,0,0,0,n>>24&255,n>>16&255,n>>8&255,255&n,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,r>>8&255,255&r,0,0,i>>8&255,255&i,0,0]))}},{key:"edts",value:function(t){return e.box(e.types.edts,e.elst(t))}},{key:"elst",value:function(t){t.entries;var n=t.entriesData,r=t.version;return e.FullBox(e.types.elst,r,0,n)}},{key:"mdia",value:function(t){return e.box(e.types.mdia,e.mdhd(t.duration,t.timescale),e.hdlr(t.type),e.minf(t))}},{key:"mdhd",value:function(t){var n=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,n>>24&255,n>>16&255,n>>8&255,255&n,t>>24&255,t>>16&255,t>>8&255,255&t,85,196,0,0]))}},{key:"hdlr",value:function(t){return e.box(e.types.hdlr,e.HDLR_TYPES[t])}},{key:"minf",value:function(t){return e.box(e.types.minf,t.type===TrackType.VIDEO?e.VMHD:e.SMHD,e.DINF,e.stbl(t))}},{key:"stbl",value:function(t){return t&&t.ext,e.box(e.types.stbl,e.stsd(t),e.STTS,[][0],e.STSC,e.STSZ,e.STCO)}},{key:"stsd",value:function(t){var n;return n="audio"===t.type?t.useEME&&t.enca?e.enca(t):e.mp4a(t):t.useEME&&t.encv?e.encv(t):e.avc1hev1vvc1(t),e.box(e.types.stsd,new Uint8Array([0,0,0,0,0,0,0,1]),n)}},{key:"enca",value:function(t){var n=t.enca.channelCount,r=t.enca.sampleRate,i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,n,0,16,0,0,0,0,r>>8&255,255&r,0,0]),a=e.esds(t.config),o=e.sinf(t.enca);return e.box(e.types.enca,i,a,o)}},{key:"encv",value:function(t){var n,r,i=t.sps.length>0?t.sps[0]:[],a=t.pps.length>0?t.pps[0]:[],o=t.width,l=t.height,d=t.sarRatio[0],c=t.sarRatio[1],s=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]),U=new Uint8Array((n=(r=[1,i[1],i[2],i[3],255,225,i.length>>>8&255,255&i.length]).concat.apply(r,_toConsumableArray$2(i)).concat([1,a.length>>>8&255,255&a.length])).concat.apply(n,_toConsumableArray$2(a))),F=new Uint8Array([0,0,88,57,0,15,200,192,0,4,86,72]),u=e.sinf(t.encv),Q=new Uint8Array([d>>24,d>>16&255,d>>8&255,255&d,c>>24,c>>16&255,c>>8&255,255&c]);return e.box(e.types.encv,s,e.box(e.types.avcC,U),e.box(e.types.btrt,F),u,e.box(e.types.pasp,Q))}},{key:"schi",value:function(t){var n=new Uint8Array([]),r=e.tenc(t);return e.box(e.types.schi,n,r)}},{key:"tenc",value:function(t){var n=new Uint8Array([0,0,0,0,0,0,255&t.default_IsEncrypted,255&t.default_IV_size].concat(parse(t.default_KID)));return e.box(e.types.tenc,n)}},{key:"sinf",value:function(t){var n=new Uint8Array([]),r=new Uint8Array([t.data_format.charCodeAt(0),t.data_format.charCodeAt(1),t.data_format.charCodeAt(2),t.data_format.charCodeAt(3)]),i=new Uint8Array([0,0,0,0,99,101,110,99,0,1,0,0]),a=e.schi(t);return e.box(e.types.sinf,n,e.box(e.types.frma,r),e.box(e.types.schm,i),a)}},{key:"avc1hev1vvc1",value:function(t){var n,r;t.codecType===VideoCodecType.HEVC?(n=e.hvcC(t),r=e.types.hvc1):t.codecType===VideoCodecType.VVCC?(n=e.vvcC(t),r=e.types.bvc2):(n=e.avcC(t),r=e.types.avc1);var 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,t.width>>8&255,255&t.width,t.height>>8&255,255&t.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]),n];return t.codecType===VideoCodecType.HEVC?i.push(e.box(e.types.fiel,new Uint8Array([1,0]))):t.sarRatio&&t.sarRatio.length>1&&i.push(e.pasp(t.sarRatio)),e.box.apply(e,[r].concat(i))}},{key:"avcC",value:function(t){var n,r,i,a=[],o=[];return t.sps.forEach((function(e){i=e.byteLength,a.push(i>>>8&255),a.push(255&i),a.push.apply(a,_toConsumableArray$2(e))})),t.pps.forEach((function(e){i=e.byteLength,o.push(i>>>8&255),o.push(255&i),o.push.apply(o,_toConsumableArray$2(e))})),e.box(e.types.avcC,new Uint8Array((n=(r=[1,a[3],a[4],a[5],255,224|t.sps.length]).concat.apply(r,a).concat([t.pps.length])).concat.apply(n,o)))}},{key:"vvcC",value:function(t){var n=t.vvcC;return e.box(e.types.bv2C,new Uint8Array(n))}},{key:"hvcC",value:function(t){var n=t.hvcC;if(n instanceof ArrayBuffer||n instanceof Uint8Array)return n;var r,i=t.vps,a=t.sps,o=t.pps;if(n){var l=n.generalProfileCompatibilityFlags,d=n.generalConstraintIndicatorFlags,c=(i.length&&1)+(a.length&&1)+(o.length&&1);r=[1,n.generalProfileSpace<<6|n.generalTierFlag<<5|n.generalProfileIdc,l>>>24,l>>>16,l>>>8,l,d[0],d[1],d[2],d[3],d[4],d[5],n.generalLevelIdc,240,0,252,252|n.chromaFormatIdc,248|n.bitDepthLumaMinus8,248|n.bitDepthChromaMinus8,0,0,n.numTemporalLayers<<3|n.temporalIdNested<<2|3,c];var s=function(e){var t;r.push(e.length>>8,e.length),(t=r).push.apply(t,_toConsumableArray$2(e))};i.length&&(r.push(160,0,i.length),i.forEach(s)),a.length&&(r.push(161,0,a.length),a.forEach(s)),o.length&&(r.push(162,0,o.length),o.forEach(s))}else r=[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(r))}},{key:"pasp",value:function(t){var n=_slicedToArray$2(t,2),r=n[0],i=n[1];return e.box(e.types.pasp,new Uint8Array([r>>24,r>>16&255,r>>8&255,255&r,i>>24,i>>16&255,i>>8&255,255&i]))}},{key:"mp4a",value:function(t){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,t.channelCount,0,16,0,0,0,0,t.sampleRate>>8&255,255&t.sampleRate,0,0]),t.config.length?e.esds(t.config):void 0)}},{key:"esds",value:function(t){var n=t.length;return e.box(e.types.esds,new Uint8Array([0,0,0,0,3,23+n,0,0,0,4,15+n,64,21,0,6,0,0,0,218,192,0,0,218,192,5].concat([n]).concat(t).concat([6,1,2])))}},{key:"mvex",value:function(t){var n=e.box.apply(e,[e.types.mvex].concat(_toConsumableArray$2(t.map((function(t){return e.trex(t.id)})))));return n}},{key:"trex",value:function(t){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]))}},{key:"trex1",value:function(t){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,2,0,0,0,0,0,0,1,0,0]))}},{key:"trex2",value:function(t){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,4,0,0,0,0,0,2,0,0,0]))}},{key:"moof",value:function(t){var n=e.box.apply(e,[e.types.moof,e.mfhd(t[0].samples?t[0].samples[0].gopId:0)].concat(_toConsumableArray$2(t.map((function(t){return e.traf(t)})))));return n}},{key:"mfhd",value:function(t){return e.box(e.types.mfhd,new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t]))}},{key:"traf",value:function(t){var n=e.tfhd(t.id),r=e.tfdt(t.baseMediaDecodeTime),i=0;if(t.isVideo&&t.videoSenc&&t.videoSenc.forEach((function(e){i+=8,e.subsamples&&e.subsamples.length&&(i+=2,i+=6*e.subsamples.length)})),t.videoSencLength=i,t.useEME&&(t.isVideoEncryption||t.isAudioEncryption)){if(t.isVideoEncryption){if(t.isVideo){var a=e.saiz(t),o=e.saio(t),l=e.trun1(t),d=e.senc(t);return e.box(e.types.traf,n,r,a,o,l,d)}if(t.isAudioEncryption){var c=e.sbgp(),s=e.saiz(t),U=e.saio(t),F=e.senc(t),u=e.trun1(t);return e.box(e.types.traf,n,r,c,s,U,F,u)}var Q=e.sbgp(),R=e.trun1(t);return e.box(e.types.traf,n,r,Q,R)}if(t.isVideo){var h=e.trun1(t);return e.box(e.types.traf,n,r,h)}var p=e.sbgp(),B=e.saiz(t),S=e.saio(t),f=e.senc(t),m=e.trun1(t);return e.box(e.types.traf,n,r,p,B,S,f,m)}var V=e.sdtp(t);return e.box(e.types.traf,n,r,V,e.trun(t.samples,V.byteLength+76))}},{key:"sdtp",value:function(t){var n=new Buffer$1;return t.samples.forEach((function(e){n.write(new Uint8Array(t.isVideo?[e.keyframe?32:16]:[16]))})),e.box(e.types.sdtp,this.extension(0,0),n.buffer)}},{key:"trun1",value:function(t){var n=new Buffer$1,r=Buffer$1.writeUint32(t.samples.length),i=null;if(t.isVideo){var a=t.videoSencLength;i=Buffer$1.writeUint32(76+16*t.samples.length+a+77),!t.isVideoEncryption&&t.isAudioEncryption&&(i=Buffer$1.writeUint32(76+16*t.samples.length+20))}else{var o=76+12*t.samples.length+52;t.isAudioEncryption&&(o=76+12*t.samples.length+8*t.audioSenc.length+105),i=Buffer$1.writeUint32(o)}return t.samples.forEach((function(e){n.write(Buffer$1.writeUint32(e.duration)),n.write(Buffer$1.writeUint32(e.size)),n.write(Buffer$1.writeUint32(e.keyframe?33554432:65536)),t.isVideo&&n.write(Buffer$1.writeUint32(e.cts?e.cts:0))})),e.box(e.types.trun,this.extension(0,t.flags),r,i,n.buffer)}},{key:"senc",value:function(t){var n=new Buffer$1,r=t.samples.length,i=t.isVideo?16:8,a=t.isVideo?2:0,o=[],l=0;return t.isVideo?(o=t.videoSenc,l=t.videoSencLength):o=t.audioSenc,l=l||i*r,n.write(Buffer$1.writeUint32(16+l),e.types.senc,this.extension(0,a)),n.write(Buffer$1.writeUint32(r)),o.forEach((function(e){for(var t=0;t<e.InitializationVector.length;t++)n.write(new Uint8Array([e.InitializationVector[t]]));e.subsamples&&e.subsamples.length&&(n.write(Buffer$1.writeUint16(e.subsamples.length)),e.subsamples.forEach((function(e){n.write(Buffer$1.writeUint16(e.BytesOfClearData)),n.write(Buffer$1.writeUint32(e.BytesOfProtectedData))})))})),n.buffer}},{key:"saio",value:function(t){var n=12*t.samples.length+141;!t.isVideo&&t.isAudioEncryption&&(n=149);var r=new Uint8Array([1,0,0,0,0,0,0,1,0,0,0,0,n>>24&255,n>>16&255,n>>8&255,255&n]);return e.box(e.types.saio,r)}},{key:"saiz",value:function(t){var n=t.samples.length,r=new Uint8Array([0,0,0,0,16,n>>24&255,n>>16&255,n>>8&255,255&n]);return e.box(e.types.saiz,r)}},{key:"sbgp",value:function(){var t=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),t)}},{key:"extension",value:function(e,t){return new Uint8Array([e,t>>16&255,t>>8&255,255&t])}},{key:"tfhd",value:function(t){return e.box(e.types.tfhd,new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t]))}},{key:"tfdt",value:function(t){var n=Math.floor(t/(UINT32_MAX+1)),r=Math.floor(t%(UINT32_MAX+1));return e.box(e.types.tfdt,new Uint8Array([1,0,0,0,n>>24,n>>16&255,n>>8&255,255&n,r>>24,r>>16&255,r>>8&255,255&r]))}},{key:"trun",value:function(t,n){var r=t.length,i=12+16*r;n+=8+i;var a=new Uint8Array(i);a.set([0,0,15,1,r>>>24&255,r>>>16&255,r>>>8&255,255&r,n>>>24&255,n>>>16&255,n>>>8&255,255&n],0);for(var o=0;o<r;o++){var l=t[o],d=l.duration,c=l.size,s=l.flag,U=void 0===s?{}:s,F=l.cts,u=void 0===F?0:F;a.set([d>>>24&255,d>>>16&255,d>>>8&255,255&d,c>>>24&255,c>>>16&255,c>>>8&255,255&c,U.isLeading<<2|(null===U.dependsOn||void 0===U.dependsOn?1:U.dependsOn),U.isDependedOn<<6|U.hasRedundancy<<4|U.paddingValue<<1|(null===U.isNonSyncSample||void 0===U.isNonSyncSample?1:U.isNonSyncSample),61440&U.degradationPriority,15&U.degradationPriority,u>>>24&255,u>>>16&255,u>>>8&255,255&u],12+16*o)}return e.box(e.types.trun,a)}},{key:"moovMP4",value:function(t){return e.box.apply(e,[e.types.moov,e.mvhd(t[0].duration,t[0].timescale)].concat(_toConsumableArray$2(t.map((function(t){return e.trackMP4(t)})))))}},{key:"trackMP4",value:function(t){return e.box(e.types.trak,e.tkhd(t.id,t.duration,t.width,t.height),e.mdiaMP4(t))}},{key:"mdiaMP4",value:function(t){return e.box(e.types.mdia,e.mdhd(t.duration,t.timescale),e.hdlr(t.type),e.minfMP4(t))}},{key:"minfMP4",value:function(t){return e.box(e.types.minf,t.type===TrackType.VIDEO?e.VMHD:e.SMHD,e.DINF,e.stblMP4(t))}},{key:"stblMP4",value:function(t){var n=t.ext,r=[e.stsd(t),e.stts(n.stts),e.stsc(n.stsc),e.stsz(n.stsz),e.stco(n.stco)];return n.stss.length&&r.push(e.stss(n.stss)),n.ctts.length&&r.push(e.ctts(n.ctts)),e.box.apply(e,[e.types.stbl].concat(r))}},{key:"stts",value:function(t){var n=t.length,r=new Uint8Array(8*n),i=0;return t.forEach((function(e){var t=e.value,n=e.count;r.set([n>>24,n>>16&255,n>>8&255,255&n,t>>24,t>>16&255,t>>8&255,255&t],i),i+=8})),e.box(e.types.stts,concatUint8Array$1(new Uint8Array([0,0,0,0,n>>24,n>>16&255,n>>8&255,255&n]),r))}},{key:"stsc",value:function(t){var n=t.length,r=new Uint8Array(12*n),i=0;return t.forEach((function(e){var t=e.firstChunk,n=e.samplesPerChunk,a=e.sampleDescIndex;r.set([t>>24,t>>16&255,t>>8&255,255&t,n>>24,n>>16&255,n>>8&255,255&n,a>>24,a>>16&255,a>>8&255,255&a],i),i+=12})),e.box(e.types.stsc,concatUint8Array$1(new Uint8Array([0,0,0,0,n>>24,n>>16&255,n>>8&255,255&n]),r))}},{key:"stsz",value:function(t){var n=t.length,r=new Uint8Array(4*n),i=0;return t.forEach((function(e){r.set([e>>24,e>>16&255,e>>8&255,255&e],i),i+=4})),e.box(e.types.stsz,concatUint8Array$1(new Uint8Array([0,0,0,0,0,0,0,0,n>>24,n>>16&255,n>>8&255,255&n]),r))}},{key:"stco",value:function(t){var n=t.length,r=new Uint8Array(4*n),i=0;return t.forEach((function(e){r.set([e>>24,e>>16&255,e>>8&255,255&e],i),i+=4})),e.box(e.types.stco,concatUint8Array$1(new Uint8Array([0,0,0,0,n>>24,n>>16&255,n>>8&255,255&n]),r))}},{key:"stss",value:function(t){var n=t.length,r=new Uint8Array(4*n),i=0;return t.forEach((function(e){r.set([e>>24,e>>16&255,e>>8&255,255&e],i),i+=4})),e.box(e.types.stss,concatUint8Array$1(new Uint8Array([0,0,0,0,n>>24,n>>16&255,n>>8&255,255&n]),r))}},{key:"ctts",value:function(t){var n=t.length,r=new Uint8Array(8*n),i=0;return t.forEach((function(e){var t=e.value,n=e.count;r.set([n>>24,n>>16&255,n>>8&255,255&n,t>>24,t>>16&255,t>>8&255,255&t],i),i+=8})),e.box(e.types.ctts,concatUint8Array$1(new Uint8Array([0,0,0,0,n>>24,n>>16&255,n>>8&255,255&n]),r))}},{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(t){var n=t.timescale,r=t.samples[0].duration,i=r*t.samples.length,a=t.samples[0].sampleOffset*r,o=8;t.samples.forEach((function(e){o+=e.size}));var l=0;if(t.isVideo){var d,c=0;t.videoSenc&&(d=t.videoSenc),t.isVideo&&d.forEach((function(e){c+=8,e.subsamples&&e.subsamples.length&&(c+=2,c+=6*e.subsamples.length)})),t.videoSencLength=c,l=o+141+16*t.samples.length+c,t.useEME&&t.isAudioEncryption&&!t.isVideoEncryption&&(l=o+16*t.samples.length+84)}else l=o+116+12*t.samples.length,t.useEME&&t.isAudioEncryption&&(l=o+169+12*t.samples.length+8*t.audioSenc.length);var s=new Uint8Array([0,0,0,0,0,0,0,255&t.id,n>>24&255,n>>16&255,n>>8&255,255&n,a>>24&255,a>>16&255,a>>8&255,255&a,0,0,0,0,0,0,0,1,0,l>>16&255,l>>8&255,255&l,i>>24&255,i>>16&255,i>>8&255,255&i,144,0,0,0]);return e.box(e.types.sidx,s)}},{key:"mdat",value:function(t){return e.box(e.types.mdat,t)}}]),e}();_defineProperty$3(MP4,"types",["avc1","avcC","hvc1","hvcC","dinf","dref","edts","elst","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","bvc2","bv2C"].reduce((function(e,t){return e[t]=[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)],e}),Object.create(null))),_defineProperty$3(MP4,"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])}),_defineProperty$3(MP4,"FTYPAVC1",MP4.box(MP4.types.ftyp,new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]))),_defineProperty$3(MP4,"FTYPHEV1",MP4.box(MP4.types.ftyp,new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,104,101,118,49]))),_defineProperty$3(MP4,"DINF",MP4.box(MP4.types.dinf,MP4.box(MP4.types.dref,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1])))),_defineProperty$3(MP4,"VMHD",MP4.box(MP4.types.vmhd,new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]))),_defineProperty$3(MP4,"SMHD",MP4.box(MP4.types.smhd,new Uint8Array([0,0,0,0,0,0,0,0]))),_defineProperty$3(MP4,"StblTable",new Uint8Array([0,0,0,0,0,0,0,0])),_defineProperty$3(MP4,"STTS",MP4.box(MP4.types.stts,MP4.StblTable)),_defineProperty$3(MP4,"STSC",MP4.box(MP4.types.stsc,MP4.StblTable)),_defineProperty$3(MP4,"STSZ",MP4.box(MP4.types.stsz,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]))),_defineProperty$3(MP4,"STCO",MP4.box(MP4.types.stco,MP4.StblTable));var FMP4Remuxer=function(){function e(t,n,r){_classCallCheck$3(this,e),this.videoTrack=t,this.audioTrack=n;var i=/Chrome\/([^.]+)/.exec(navigator.userAgent);this.forceFirstIDR=i&&Number(i[1])<50,this.log=new Logger$1("FMP4Remuxer",!r||!r.openLog||!r.openLog)}return _createClass$3(e,[{key:"remux",value:function(){var e,t,n,r,i,a=arguments.length>0&&void 0!==arguments[0]&&arguments[0],o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=this.videoTrack,d=this.audioTrack,c=l.exist(),s=d.exist(),U=[];return a&&(o&&o.initMerge?(c&&U.push(this.videoTrack),s&&U.push(this.audioTrack),n=MP4.initSegment(U)):(c&&(e=MP4.initSegment([this.videoTrack])),s&&(t=MP4.initSegment([this.audioTrack])))),c&&l.hasSample()&&(r=this._remuxVideo()),s&&d.hasSample()&&(i=this._remuxAudio()),l.samples=[],d.samples=[],{initSegment:n,videoInitSegment:e,audioInitSegment:t,videoSegment:r,audioSegment:i}}},{key:"_remuxVideo",value:function(){var e=this.videoTrack;this.forceFirstIDR&&(e.samples[0].flag={dependsOn:2,isNonSyncSample:0});var t=e.samples,n=0;t.forEach((function(e){n+=e.units.reduce((function(e,t){return e+t.byteLength}),0),n+=4*e.units.length}));for(var r,i=new Uint8Array(n),a=new DataView(i.buffer),o=function(e,n){n=t[l];var o=0;n.units.forEach((function(t){a.setUint32(e,t.byteLength),e+=4,i.set(t,e),e+=t.byteLength,o+=4+t.byteLength})),n.size=o,c=e,r=n},l=0,d=t.length,c=0;l<d;l++)o(c,r);var s=MP4.mdat(i);return concatUint8Array$1(MP4.moof([e]),s)}},{key:"_remuxAudio",value:function(){var e=this.audioTrack,t=new Uint8Array(e.samples.reduce((function(e,t){return e+t.size}),0));e.samples.reduce((function(e,n){return t.set(n.data,e),e+n.size}),0);var n=MP4.mdat(t);return concatUint8Array$1(MP4.moof([e]),n)}},{key:"reset",value:function(){this.videoTrack.reset(),this.audioTrack.reset()}}]),e}();function _iterableToArrayLimit$1(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,l=[],d=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;d=!1}else for(;!(d=(r=a.call(n)).done)&&(l.push(r.value),l.length!==t);d=!0);}catch(e){c=!0,i=e}finally{try{if(!d&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw i}}return l}}function ownKeys$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread2$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$2(Object(n),!0).forEach((function(t){_defineProperty$2(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$2(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _regeneratorRuntime$2(){_regeneratorRuntime$2=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function d(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{d({},"")}catch(e){d=function(e,t,n){return e[t]=n}}function c(e,t,n,i){var a=t&&t.prototype instanceof F?t:F,o=Object.create(a.prototype),l=new Z(i||[]);return r(o,"_invoke",{value:m(e,n,l)}),o}function s(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var U={};function F(){}function u(){}function Q(){}var R={};d(R,a,(function(){return this}));var h=Object.getPrototypeOf,p=h&&h(h(b([])));p&&p!==t&&n.call(p,a)&&(R=p);var B=Q.prototype=F.prototype=Object.create(R);function S(e){["next","throw","return"].forEach((function(t){d(e,t,(function(e){return this._invoke(t,e)}))}))}function f(e,t){function i(r,a,o,l){var d=s(e[r],e,a);if("throw"!==d.type){var c=d.arg,U=c.value;return U&&"object"==_typeof$5(U)&&n.call(U,"__await")?t.resolve(U.__await).then((function(e){i("next",e,o,l)}),(function(e){i("throw",e,o,l)})):t.resolve(U).then((function(e){c.value=e,o(c)}),(function(e){return i("throw",e,o,l)}))}l(d.arg)}var a;r(this,"_invoke",{value:function(e,n){function r(){return new t((function(t,r){i(e,n,t,r)}))}return a=a?a.then(r,r):r()}})}function m(e,t,n){var r="suspendedStart";return function(i,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw a;return{value:void 0,done:!0}}for(n.method=i,n.arg=a;;){var o=n.delegate;if(o){var l=V(o,n);if(l){if(l===U)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var d=s(e,t,n);if("normal"===d.type){if(r=n.done?"completed":"suspendedYield",d.arg===U)continue;return{value:d.arg,done:n.done}}"throw"===d.type&&(r="completed",n.method="throw",n.arg=d.arg)}}}function V(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,V(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),U;var i=s(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,U;var a=i.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,U):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,U)}function y(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function Z(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(y,this),this.reset(!0)}function b(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return i.next=i}}return{next:J}}function J(){return{value:void 0,done:!0}}return u.prototype=Q,r(B,"constructor",{value:Q,configurable:!0}),r(Q,"constructor",{value:u,configurable:!0}),u.displayName=d(Q,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===u||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,Q):(e.__proto__=Q,d(e,l,"GeneratorFunction")),e.prototype=Object.create(B),e},e.awrap=function(e){return{__await:e}},S(f.prototype),d(f.prototype,o,(function(){return this})),e.AsyncIterator=f,e.async=function(t,n,r,i,a){void 0===a&&(a=Promise);var o=new f(c(t,n,r,i),a);return e.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},S(B),d(B,l,"Generator"),d(B,a,(function(){return this})),d(B,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=b,Z.prototype={constructor:Z,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(E),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=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 t=this;function r(n,r){return o.type="throw",o.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var l=n.call(a,"catchLoc"),d=n.call(a,"finallyLoc");if(l&&d){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!d)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var a=i;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,U):this.complete(o)},complete:function(e,t){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&&t&&(this.next=t),U},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),U}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;E(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:b(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),U}},e}function asyncGeneratorStep$2(e,t,n,r,i,a,o){try{var l=e[a](o),d=l.value}catch(e){return void n(e)}l.done?t(d):Promise.resolve(d).then(r,i)}function _asyncToGenerator$2(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){asyncGeneratorStep$2(a,r,i,o,l,"next",e)}function l(e){asyncGeneratorStep$2(a,r,i,o,l,"throw",e)}o(void 0)}))}}function _classCallCheck$2(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties$2(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey$2(r.key),r)}}function _createClass$2(e,t,n){return t&&_defineProperties$2(e.prototype,t),n&&_defineProperties$2(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty$2(e,t,n){return(t=_toPropertyKey$2(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _inherits$2(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf$2(e,t)}function _getPrototypeOf$2(e){return(_getPrototypeOf$2=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _setPrototypeOf$2(e,t){return(_setPrototypeOf$2=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function _isNativeReflectConstruct$2(){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 _objectWithoutPropertiesLoose$2(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}function _objectWithoutProperties$2(e,t){if(null==e)return{};var n,r,i=_objectWithoutPropertiesLoose$2(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function _assertThisInitialized$2(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _possibleConstructorReturn$2(e,t){if(t&&("object"===_typeof$5(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$2(e)}function _createSuper$1(e){var t=_isNativeReflectConstruct$2();return function(){var n,r=_getPrototypeOf$2(e);if(t){var i=_getPrototypeOf$2(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return _possibleConstructorReturn$2(this,n)}}function _slicedToArray$1(e,t){return _arrayWithHoles$1(e)||_iterableToArrayLimit$1(e,t)||_unsupportedIterableToArray$2(e,t)||_nonIterableRest$1()}function _toConsumableArray$1(e){return _arrayWithoutHoles$1(e)||_iterableToArray$1(e)||_unsupportedIterableToArray$2(e)||_nonIterableSpread$1()}function _arrayWithoutHoles$1(e){if(Array.isArray(e))return _arrayLikeToArray$2(e)}function _arrayWithHoles$1(e){if(Array.isArray(e))return e}function _iterableToArray$1(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _unsupportedIterableToArray$2(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray$2(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray$2(e,t):void 0}}function _arrayLikeToArray$2(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function _nonIterableSpread$1(){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 _nonIterableRest$1(){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 _toPrimitive$2(e,t){if("object"!==_typeof$5(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==_typeof$5(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$2(e){var t=_toPrimitive$2(e,"string");return"symbol"===_typeof$5(t)?t:String(t)}function getConfig$2(e){return"boolean"!=typeof e.fixEditListOffset&&delete e.fixEditListOffset,_objectSpread2$2({vid:"",moovEnd:8e4,segmentDuration:2,maxDownloadInfoSize:30,responseType:"arraybuffer",fixEditListOffset:!0,cache:null},e)}var MediaError=_createClass$2((function e(t,n){_classCallCheck$2(this,e),this.type="file",this.message=t,this.data=n})),Cache=function(){function e(){_classCallCheck$2(this,e),_defineProperty$2(this,"_data",Object.create(null))}return _createClass$2(e,[{key:"set",value:function(e,t){this._data[e]=t}},{key:"get",value:function(e){return this._data[e]}},{key:"clear",value:function(){this._data=Object.create(null)}}]),e}(),$$1=_export;$$1({target:"Number",stat:!0},{isNaN:function(e){return e!=e}});var GopItem=function(){function e(){_classCallCheck$2(this,e),this.frames=[],this.dur=0,this.minPts=Number.MAX_VALUE,this.maxPts=0}return _createClass$2(e,[{key:"appendFrame",value:function(e){this.frames.push(e),this.dur+=e.duration}},{key:"calMinMaxPts",value:function(e){e.pts<this.minPts&&(this.minPts=e.pts);var t=e.pts+e.duration;t>this.maxPts&&(this.maxPts=t)}}]),e}();function isEdtsApplicable(){var e=!0,t=navigator.userAgent||"";if(/Chrome/gi.test(t)&&!/Edge\//gi.test(t)){var n=t.match(/Chrome\/(\d+)/i),r=n?parseInt(n[1],10):0;e=!!r&&r>=75}return e}function moovToSegments(e,t){var n=t.segmentDuration,r=e.trak;if(r&&r.length){var i=r.find((function(e){var t,n;return"vide"===(null===(t=e.mdia)||void 0===t||null===(n=t.hdlr)||void 0===n?void 0:n.handlerType)})),a=r.find((function(e){var t,n;return"soun"===(null===(t=e.mdia)||void 0===t||null===(n=t.hdlr)||void 0===n?void 0:n.handlerType)}));if(i||a){var o,l=[],d=[];return i&&(o=(l=getSegments("video",i,n,t)).map((function(e){return e.duration}))),a&&(d=getSegments("audio",a,n,t,o,l)),{videoSegments:l,audioSegments:d}}}}function getSegments(e,t,n,r){var i,a,o,l,d,c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],s=arguments.length>5?arguments[5]:void 0,U=r.fixEditListOffset,F=r.fixEditListOffsetThreshold,u=r.audioGroupingStrategy,Q=r.memoryOpt,R=null===(i=t.mdia)||void 0===i||null===(a=i.minf)||void 0===a?void 0:a.stbl;if(!R)return[];var h=null===(o=t.mdia.mdhd)||void 0===o?void 0:o.timescale,p=R.stts,B=R.stsc,S=R.stsz,f=R.stco,m=R.stss,V=R.ctts;if(!(h&&p&&B&&S&&f&&("video"!==e||m)))return[];var y=0,E=null===(l=t.edts)||void 0===l||null===(d=l.elst)||void 0===d?void 0:d.entries;if(U&&isEdtsApplicable()&&Array.isArray(E)&&E.length>0){var Z=E[0].media_time;Z>0&&Z<(F?F*h:5*h)&&(y=Z)}var b,J,v=[],g=[],T=[],W=[],k=[],N=B.entries,C=f.entries,I=S.entrySizes,L=null==m?void 0:m.entries,_=null==V?void 0:V.entries,x=[],D={};Q||(_&&_.forEach((function(e){for(var t=e.count,n=e.offset,r=0;r<t;r++)x.push(n)})),L&&L.forEach((function(e){D[e-1]=!0})));var G,X=0,M=0,P=0,w=0,O=N.length>0?N[0].samplesPerChunk:0,$=N.length>1&&N[1]?N[1].firstChunk-1:1/0,Y=0,K=-1,j=!1,H={};(null==_?void 0:_.length)>0&&y>0&&(Y-=y,j=!0),t.editListApplied=j,Q&&(G=null==L?void 0:L.shift()),p.entries.forEach((function(e){var t=e.count,n=e.delta;J=n;for(var r=0;r<t;r++){if(b={dts:Y,duration:J,size:I[X]||S.sampleSize,offset:C[M]+w,index:X},_&&(Q?(getCTTSOffset(_,X,H),b.pts=Y+((null==H?void 0:H.offset)||0)):x&&X<x.length&&(b.pts=Y+x[X])),0===y&&0===X&&(b.pts=0),void 0===b.pts&&(b.pts=b.dts),L){if(Q?X+1===G&&(b.keyframe=!0,G=L.shift()):b.keyframe=D[X],b.keyframe)if(K++,Q){var i=new GopItem;i.appendFrame(b),g.push(i)}else g.push([b]),T.push(b.duration);else Q?g[g.length-1].appendFrame(b):(g[g.length-1].push(b),T[g.length-1]+=b.duration);b.gopId=K,Q&&g[g.length-1].calMinMaxPts(b)}if(!Q)if(b.keyframe?W[W.length]=b.pts:b.pts<W[g.length-1]&&(W[g.length-1]=b.pts),b.keyframe)k[k.length]=b.index;else if(g.length>0&&void 0!==k[g.length-1]){var a,o=null===(a=v[k[g.length-1]])||void 0===a?void 0:a.pts;void 0!==o&&b.pts>o&&(k[g.length-1]=b.index)}v[v.length]=b,Y+=n,++X<O?w+=b.size:(M++,w=0,M>=$&&(P++,$=N[P+1]?N[P+1].firstChunk-1:1/0),O+=N[P].samplesPerChunk)}}));var A=v.length;if(!A||m&&!v[0].keyframe)return[];var z,q,ee=[],te=[],ne=0,re=0,ie=0,ae=0,oe=function(e,t,n){(z=te[te.length-1],Q?(ie=(null==g?void 0:g.length)>0?g[t].minPts:te[0].pts,ae=(null==g?void 0:g.length)>0?g[n].maxPts:z.pts+z.duration):(ie=W[t],q=v[k[n]],ae=q.pts+q.duration),0===ee.length)&&(e=(ae-ie)/h);ee.push({index:ee.length,startTime:ie/h,endTime:ae/h,duration:e,range:[te[0].offset,z.offset+z.size-1],frames:te}),1!==u&&(ne=0),te=[]},le=0;if(m)for(var de=n*h,ce=0,se=g.length;ce<se;ce++){var Ue,Fe;if(Q)ne+=g[ce].dur,(Ue=te).push.apply(Ue,_toConsumableArray$1(g[ce].frames));else ne+=T[ce],(Fe=te).push.apply(Fe,_toConsumableArray$1(g[ce]));ce+1<se?(0===ce||ne>de)&&(oe(ne/h,le,ce),ne=0,le=ce+1):(oe(ne/h,le,ce),ne=0,le=ce+1)}else{Q||(W=[],k=[]);var ue=c[0]||n;if(1===u)for(var Qe,Re=0;Re<A;Re++){var he=v[Re],pe=v[Re+1],Be=Re===A-1;te.push(he),ne+=he.duration;var Se=Qe||ne/h;Qe=(pe?ne+pe.duration:0)/h,(Be||(s[ee.length]?Qe>s[ee.length].endTime:Qe-te[0].pts/h>=ue))&&(Q||(W.push(te[0].pts),k.push(te[te.length-1].index)),oe(Se,ee.length,ee.length),ue=c[ee.length]||n)}else for(var fe,me=0;me<A;me++){var Ve=v[me],ye=v[me+1],Ee=me===A-1;te.push(Ve),ne+=Ve.duration;var Ze=fe||ne/h;fe=(ye?ne+ye.duration:0)/h,(Ee||fe+re>=ue)&&(re+=2===u?ne/h-ue:fe-ue,Q||(W.push(te[0].pts),k.push(te[te.length-1].index)),oe(Ze,ee.length,ee.length),ue=c[ee.length]||n)}}return ee}function getCTTSOffset(e,t,n){n.offset=0;var r=(null==n?void 0:n.beforeFrameNum)||0,i=(null==n?void 0:n.usedCttsIdx)||0;if(!e||(null==e?void 0:e.length)<=0||(null==n?void 0:n.usedCttsIdx)>=e.length)n.offset=0,n.usedCttsIdx=i,n.beforeFrameNum=r;else{var a=e[i];if(t<r+((null==a?void 0:a.count)||1))n.offset=(null==a?void 0:a.offset)||0;else{var o=e[++i];o?(n.offset=o.offset||0,n.beforeFrameNum=r+a.count):(n.offset=0,n.beforeFrameNum=r+1),n.usedCttsIdx=i}}}function moovToMeta(e){var t="",n="",r=0,i=0,a=0,o=0,l=0,d=0,c=0;e.mvhd&&(l=e.mvhd.duration/e.mvhd.timescale);var s=e.trak;if(s){var U,F,u,Q,R,h,p,B,S,f,m,V,y,E,Z,b,J,v=s.find((function(e){var t,n;return"vide"===(null===(t=e.mdia)||void 0===t||null===(n=t.hdlr)||void 0===n?void 0:n.handlerType)})),g=s.find((function(e){var t,n;return"soun"===(null===(t=e.mdia)||void 0===t||null===(n=t.hdlr)||void 0===n?void 0:n.handlerType)})),T=null;if(v)if(T=null===(F=v.mdia)||void 0===F||null===(u=F.minf)||void 0===u||null===(Q=u.stbl)||void 0===Q?void 0:Q.stsd.entries[0])if(r=T.width,i=T.height,d=null===(R=v.mdia)||void 0===R||null===(h=R.mdhd)||void 0===h?void 0:h.timescale,t=null===(p=T.avcC||T.hvcC||T.vvcC)||void 0===p?void 0:p.codec,"encv"===T.type)U=null===(B=T.sinf)||void 0===B||null===(S=B.schi)||void 0===S?void 0:S.tenc.default_KID;if(g)if(T=null===(f=g.mdia)||void 0===f||null===(m=f.minf)||void 0===m||null===(V=m.stbl)||void 0===V?void 0:V.stsd.entries[0])if(a=T.channelCount,o=T.sampleRate,n=null===(y=T.esds)||void 0===y?void 0:y.codec,c=null===(E=g.mdia)||void 0===E||null===(Z=E.mdhd)||void 0===Z?void 0:Z.timescale,"enca"===T.type)U=U||(null===(b=T.sinf)||void 0===b||null===(J=b.schi)||void 0===J?void 0:J.tenc.default_KID);return{kid:U?U.join(""):null,videoCodec:t,audioCodec:n,width:r,height:i,videoTimescale:d,audioChannelCount:a,audioSampleRate:o,duration:l,audioTimescale:c,moov:e}}}function isNumber(e){return"number"==typeof e&&!Number.isNaN(e)}function isSegmentsOk(e){if(!e)return!1;var t=e.audioSegments,n=e.videoSegments,r=!n||0===n.length,i=!t||0===t.length;return!r||!i}function ownKeys$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread2$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _regeneratorRuntime$1(){_regeneratorRuntime$1=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function d(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{d({},"")}catch(e){d=function(e,t,n){return e[t]=n}}function c(e,t,n,i){var a=t&&t.prototype instanceof F?t:F,o=Object.create(a.prototype),l=new Z(i||[]);return r(o,"_invoke",{value:m(e,n,l)}),o}function s(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var U={};function F(){}function u(){}function Q(){}var R={};d(R,a,(function(){return this}));var h=Object.getPrototypeOf,p=h&&h(h(b([])));p&&p!==t&&n.call(p,a)&&(R=p);var B=Q.prototype=F.prototype=Object.create(R);function S(e){["next","throw","return"].forEach((function(t){d(e,t,(function(e){return this._invoke(t,e)}))}))}function f(e,t){function i(r,a,o,l){var d=s(e[r],e,a);if("throw"!==d.type){var c=d.arg,U=c.value;return U&&"object"==_typeof$5(U)&&n.call(U,"__await")?t.resolve(U.__await).then((function(e){i("next",e,o,l)}),(function(e){i("throw",e,o,l)})):t.resolve(U).then((function(e){c.value=e,o(c)}),(function(e){return i("throw",e,o,l)}))}l(d.arg)}var a;r(this,"_invoke",{value:function(e,n){function r(){return new t((function(t,r){i(e,n,t,r)}))}return a=a?a.then(r,r):r()}})}function m(e,t,n){var r="suspendedStart";return function(i,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw a;return{value:void 0,done:!0}}for(n.method=i,n.arg=a;;){var o=n.delegate;if(o){var l=V(o,n);if(l){if(l===U)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var d=s(e,t,n);if("normal"===d.type){if(r=n.done?"completed":"suspendedYield",d.arg===U)continue;return{value:d.arg,done:n.done}}"throw"===d.type&&(r="completed",n.method="throw",n.arg=d.arg)}}}function V(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,V(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),U;var i=s(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,U;var a=i.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,U):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,U)}function y(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function Z(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(y,this),this.reset(!0)}function b(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return i.next=i}}return{next:J}}function J(){return{value:void 0,done:!0}}return u.prototype=Q,r(B,"constructor",{value:Q,configurable:!0}),r(Q,"constructor",{value:u,configurable:!0}),u.displayName=d(Q,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===u||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,Q):(e.__proto__=Q,d(e,l,"GeneratorFunction")),e.prototype=Object.create(B),e},e.awrap=function(e){return{__await:e}},S(f.prototype),d(f.prototype,o,(function(){return this})),e.AsyncIterator=f,e.async=function(t,n,r,i,a){void 0===a&&(a=Promise);var o=new f(c(t,n,r,i),a);return e.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},S(B),d(B,l,"Generator"),d(B,a,(function(){return this})),d(B,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=b,Z.prototype={constructor:Z,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(E),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=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 t=this;function r(n,r){return o.type="throw",o.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var l=n.call(a,"catchLoc"),d=n.call(a,"finallyLoc");if(l&&d){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!d)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var a=i;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,U):this.complete(o)},complete:function(e,t){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&&t&&(this.next=t),U},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),U}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;E(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:b(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),U}},e}function _typeof$1(e){return(_typeof$1="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 asyncGeneratorStep$1(e,t,n,r,i,a,o){try{var l=e[a](o),d=l.value}catch(e){return void n(e)}l.done?t(d):Promise.resolve(d).then(r,i)}function _asyncToGenerator$1(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){asyncGeneratorStep$1(a,r,i,o,l,"next",e)}function l(e){asyncGeneratorStep$1(a,r,i,o,l,"throw",e)}o(void 0)}))}}function _classCallCheck$1(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties$1(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey$1(r.key),r)}}function _createClass$1(e,t,n){return t&&_defineProperties$1(e.prototype,t),n&&_defineProperties$1(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty$1(e,t,n){return(t=_toPropertyKey$1(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _inherits$1(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf$1(e,t)}function _getPrototypeOf$1(e){return(_getPrototypeOf$1=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _setPrototypeOf$1(e,t){return(_setPrototypeOf$1=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function _isNativeReflectConstruct$1(){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 _construct(e,t,n){return(_construct=_isNativeReflectConstruct$1()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&_setPrototypeOf$1(i,n.prototype),i}).apply(null,arguments)}function _isNativeFunction(e){return-1!==Function.toString.call(e).indexOf("[native code]")}function _wrapNativeSuper(e){var t="function"==typeof Map?new Map:void 0;return _wrapNativeSuper=function(e){if(null===e||!_isNativeFunction(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return _construct(e,arguments,_getPrototypeOf$1(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),_setPrototypeOf$1(n,e)},_wrapNativeSuper(e)}function _objectWithoutPropertiesLoose$1(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}function _objectWithoutProperties$1(e,t){if(null==e)return{};var n,r,i=_objectWithoutPropertiesLoose$1(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function _assertThisInitialized$1(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _possibleConstructorReturn$1(e,t){if(t&&("object"===_typeof$5(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$1(e)}function _createSuper(e){var t=_isNativeReflectConstruct$1();return function(){var n,r=_getPrototypeOf$1(e);if(t){var i=_getPrototypeOf$1(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return _possibleConstructorReturn$1(this,n)}}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf$1(e)););return e}function _get(){return _get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=_superPropBase(e,t);if(r){var i=Object.getOwnPropertyDescriptor(r,t);return i.get?i.get.call(arguments.length<3?e:n):i.value}},_get.apply(this,arguments)}function _unsupportedIterableToArray$1(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray$1(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray$1(e,t):void 0}}function _arrayLikeToArray$1(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function _createForOfIteratorHelper$1(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=_unsupportedIterableToArray$1(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}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 a,o=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){l=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(l)throw a}}}}function _toPrimitive$1(e,t){if("object"!==_typeof$5(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==_typeof$5(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$1(e){var t=_toPrimitive$1(e,"string");return"symbol"===_typeof$5(t)?t:String(t)}var LogCacheLevel={DEBUG:1,LOG:2,WARN:3,ERROR:4},LOG_MAX_SIZE=204800,SIMPLE_TYPE=["Boolean","Number","String","Undefined","Null","Date","Object"],Logger=function(){function e(t,n){_classCallCheck$1(this,e),this.name=t||"",this._prefix="[".concat(this.name,"]"),this.logCacheLevel=(null==n?void 0:n.logCacheLevel)||3,this.logMaxSize=(null==n?void 0:n.logMaxSize)||LOG_MAX_SIZE,this.logSize=0,this.logTextArray=[]}return _createClass$1(e,[{key:"debug",value:function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];this.logCache.apply(this,[LogCacheLevel.DEBUG].concat(r)),e.disabled||(t=console).debug.apply(t,[this._prefix,nowTime$1()].concat(r))}},{key:"log",value:function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];this.logCache.apply(this,[LogCacheLevel.LOG].concat(r)),e.disabled||(t=console).log.apply(t,[this._prefix,nowTime$1()].concat(r))}},{key:"warn",value:function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];this.logCache.apply(this,[LogCacheLevel.WARN].concat(r)),e.disabled||(t=console).warn.apply(t,[this._prefix,nowTime$1()].concat(r))}},{key:"error",value:function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];this.logCache.apply(this,[LogCacheLevel.ERROR].concat(r)),e.disabled||(t=console).error.apply(t,[this._prefix,nowTime$1()].concat(r))}},{key:"logCache",value:function(e){if(!(e<this.logCacheLevel)){var t="";try{for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];var a=r.map((function(e){return logable(e)}));t=this._prefix+nowTime$1()+JSON.stringify(a)}catch(e){return}if(e>=this.logCacheLevel&&(this.logSize+=t.length,this.logTextArray.push(t)),this.logSize>this.logMaxSize){var o=this.logTextArray.shift();this.logSize-=o.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 t;e.disabled||(console.group(this._prefix),(t=console).table.apply(t,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 nowTime$1(){return(new Date).toLocaleString()}function reduceDepth(e){if("object"!==_typeof$1(e))return e;var t=Object.prototype.toString.call(e).slice(8,-1);switch(t){case"Array":case"Uint8Array":case"ArrayBuffer":return t+"["+e.length+"]";case"Object":return"{}";default:return t}}function logable(e,t,n){n||(n=1),t||(t=2);var r={};if(!e||"object"!==_typeof$1(e))return e;var i=Object.prototype.toString.call(e).slice(8,-1);if(!SIMPLE_TYPE.includes(i))return i;if(!(n>t)){for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(n===t?r[a]=reduceDepth(e[a]):"object"===_typeof$1(e[a])?r[a]=logable(e[a],t,n+1):r[a]=e[a]);return r}}_defineProperty$1(Logger,"disabled",!0);var LoaderType$1={FETCH:"fetch",XHR:"xhr"},ResponseType$1={ARRAY_BUFFER:"arraybuffer",TEXT:"text",JSON:"json"},NetError$1=function(e){_inherits$1(n,_wrapNativeSuper(Error));var t=_createSuper(n);function n(e,r,i,a){var o;return _classCallCheck$1(this,n),_defineProperty$1(_assertThisInitialized$1(o=t.call(this,a)),"retryCount",0),_defineProperty$1(_assertThisInitialized$1(o),"isTimeout",!1),_defineProperty$1(_assertThisInitialized$1(o),"loaderType",LoaderType$1.FETCH),_defineProperty$1(_assertThisInitialized$1(o),"startTime",0),_defineProperty$1(_assertThisInitialized$1(o),"endTime",0),_defineProperty$1(_assertThisInitialized$1(o),"options",{}),o.url=e,o.request=r,o.response=i,o}return _createClass$1(n)}(),toString$1=Object.prototype.toString;function isObject$1(e){return null!==e&&"object"===_typeof$1(e)}function isPlainObject$1(e){if("[object Object]"!==toString$1.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function isDate$1(e){return"[object Date]"===toString$1.call(e)}function getRangeValue$1(e){if(e&&null!==e[0]&&void 0!==e[0]&&(0!==e[0]||null!==e[1]&&void 0!==e[1])){var t="bytes="+e[0]+"-";return e[1]&&(t+=e[1]),t}}function encode$1(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function setUrlParams$1(e,t){if(e){if(!t)return e;var n,r=Object.keys(t).map((function(e){if(null!=(n=t[e]))return Array.isArray(n)?e+="[]":n=[n],n.map((function(t){return isDate$1(t)?t=t.toISOString():isObject$1(t)&&(t=JSON.stringify(t)),"".concat(encode$1(e),"=").concat(encode$1(t))})).join("&")})).filter(Boolean).join("&");if(r){var i=e.indexOf("#");-1!==i&&(e=e.slice(0,i)),e+=(-1===e.indexOf("?")?"?":"&")+r}return e}}function createResponse$1(e,t,n,r,i,a,o,l,d,c,s){return i=null!=i?parseFloat(i):null,r=parseInt(r||"0",10),Number.isNaN(r)&&(r=0),{data:e,done:t,options:{range:d,vid:c,index:l,contentLength:r,age:i,startTime:a,firstByteTime:o,endTime:Date.now(),priOptions:s},response:n}}function calculateSpeed$1(e,t){return Math.round(8*e*1e3/t/1024)}var EVENT$1={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",ANALYZE_DURATION_EXCEEDED:"core.analyzedurationexceeded",REMOVE_BUFFER:"core.removebuffer",BUFFEREOS:"core.buffereos",KEYFRAME:"core.keyframe",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"},CACHESIZE$1=2097152,FetchLoader$1=function(e){_inherits$1(r,EventEmitter);var t,n=_createSuper(r);function r(){var e;return _classCallCheck$1(this,r),_defineProperty$1(_assertThisInitialized$1(e=n.call(this)),"_abortController",null),_defineProperty$1(_assertThisInitialized$1(e),"_timeoutTimer",null),_defineProperty$1(_assertThisInitialized$1(e),"_reader",null),_defineProperty$1(_assertThisInitialized$1(e),"_response",null),_defineProperty$1(_assertThisInitialized$1(e),"_aborted",!1),_defineProperty$1(_assertThisInitialized$1(e),"_index",-1),_defineProperty$1(_assertThisInitialized$1(e),"_range",null),_defineProperty$1(_assertThisInitialized$1(e),"_receivedLength",0),_defineProperty$1(_assertThisInitialized$1(e),"_running",!1),_defineProperty$1(_assertThisInitialized$1(e),"_logger",null),_defineProperty$1(_assertThisInitialized$1(e),"_vid",""),_defineProperty$1(_assertThisInitialized$1(e),"_onProcessMinLen",0),_defineProperty$1(_assertThisInitialized$1(e),"_onCancel",null),_defineProperty$1(_assertThisInitialized$1(e),"_priOptions",null),_defineProperty$1(_assertThisInitialized$1(e),"_processMaxGapTime",1/0),e}return _createClass$1(r,[{key:"load",value:function(e){var t,n=this,r=e.url,i=e.vid,a=e.timeout,o=e.responseType,l=e.onProgress,d=e.index,c=e.onTimeout,s=e.onCancel,U=e.range,F=e.transformResponse,u=e.request,Q=e.params,R=e.logger,h=e.method,p=e.headers,B=e.body,S=e.mode,f=e.credentials,m=e.cache,V=e.redirect,y=e.referrer,E=e.referrerPolicy,Z=e.onProcessMinLen,b=e.processMaxGapTime,J=e.priOptions;this._logger=R,this._aborted=!1,this._onProcessMinLen=Z,this._onCancel=s,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._receivedLength=0,this._index=d,this._range=U||[0,0],this._vid=i||r,this._priOptions=J||{},this._processMaxGapTime=b;var v={method:h,headers:p,body:B,mode:S,credentials:f,cache:m,redirect:V,referrer:y,referrerPolicy:E,signal:null===(t=this._abortController)||void 0===t?void 0:t.signal},g=!1;clearTimeout(this._timeoutTimer),r=setUrlParams$1(r,Q);var T=getRangeValue$1(U);T&&(p=u?u.headers:v.headers=v.headers||(Headers?new Headers:{}),Headers&&p instanceof Headers?p.append("Range",T):p.Range=T),a&&(this._timeoutTimer=setTimeout(_asyncToGenerator$1(_regeneratorRuntime$1().mark((function e(){var t;return _regeneratorRuntime$1().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return g=!0,e.next=3,n.cancel();case 3:c&&((t=new NetError$1(r,v,null,"timeout")).isTimeout=!0,c(t,{index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions}));case 4:case"end":return e.stop()}}),e)}))),a));var W=Date.now(),k="undefined"!=typeof performance&&performance.now?performance.now():W;return this._logger.debug("[fetch load start], index,",d,",range,",U),new Promise((function(e,t){fetch(u||r,u?void 0:v).then(function(){var i=_asyncToGenerator$1(_regeneratorRuntime$1().mark((function i(a){var c,s,u,Q;return _regeneratorRuntime$1().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(clearTimeout(n._timeoutTimer),n._response=a,!n._aborted&&n._running){i.next=4;break}return i.abrupt("return");case 4:if(c=Date.now(),n._priOptions.rtt=Math.max(0,("undefined"!=typeof performance&&performance.now?performance.now():c)-k),F&&(a=F(a,r)||a),a.ok){i.next=7;break}throw new NetError$1(r,v,a,"bad network response");case 7:if(o!==ResponseType$1.TEXT){i.next=15;break}return i.next=11,a.text();case 11:s=i.sent,n._running=!1,i.next=37;break;case 15:if(o!==ResponseType$1.JSON){i.next=22;break}return i.next=18,a.json();case 18:s=i.sent,n._running=!1,i.next=37;break;case 22:if(!l){i.next=29;break}return n.resolve=e,n.reject=t,n._loadChunk(a,l,W,c),i.abrupt("return");case 29:return i.next=31,a.arrayBuffer();case 31:s=i.sent,s=new Uint8Array(s),n._running=!1,u=Date.now()-W,Q=calculateSpeed$1(s.byteLength,u),n.emit(EVENT$1.REAL_TIME_SPEED,{speed:Q,len:s.byteLength,time:u,vid:n._vid,index:n._index,range:n._range,priOptions:n._priOptions});case 37:n._logger.debug("[fetch load end], index,",d,",range,",U),e(createResponse$1(s,!0,a,a.headers.get("Content-Length"),a.headers.get("age"),W,c,d,U,n._vid,n._priOptions));case 39:case"end":return i.stop()}}),i)})));return function(e){return i.apply(this,arguments)}}()).catch((function(e){var i;clearTimeout(n._timeoutTimer),n._running=!1,n._aborted&&!g||((e=e instanceof NetError$1?e:new NetError$1(r,v,null,null===(i=e)||void 0===i?void 0:i.message)).startTime=W,e.endTime=Date.now(),e.isTimeout=g,e.options={index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions},t(e))}))}))}},{key:"cancel",value:(t=_asyncToGenerator$1(_regeneratorRuntime$1().mark((function e(){return _regeneratorRuntime$1().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(e){}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 t.apply(this,arguments)})},{key:"_loadChunk",value:function(e,t,n,r){var i=this;if(!e.body||!e.body.getReader){this._running=!1;var a=new NetError$1(e.url,"",e,"onProgress of bad response.body.getReader");return a.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(a)}this._onProcessMinLen>0&&(this._cache=new Uint8Array(CACHESIZE$1),this._writeIdx=0);var o,l,d,c=this._reader=e.body.getReader(),s=Date.now(),U=function(){var a=_asyncToGenerator$1(_regeneratorRuntime$1().mark((function a(){var F,u,Q,R,h,p,B,S,f;return _regeneratorRuntime$1().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return l=Date.now(),a.prev=1,a.next=4,c.read();case 4:o=a.sent,d=Date.now(),a.next=13;break;case 8:return a.prev=8,a.t0=a.catch(1),d=Date.now(),i._aborted||(i._running=!1,a.t0.options={index:i._index,range:i._range,vid:i._vid,priOptions:i._priOptions},i.reject(a.t0)),a.abrupt("return");case 13:if(u=(null===(F=i._range)||void 0===F?void 0:F.length)>0?i._range[0]:0,Q=u+i._receivedLength,!i._aborted){a.next=19;break}return i._running=!1,t(void 0,!1,{range:[Q,Q],vid:i._vid,index:i._index,startTime:l,endTime:d,st:n,firstByteTime:r,priOptions:i._priOptions},e),a.abrupt("return");case 19:if(R=o.value?o.value.byteLength:0,i._receivedLength+=R,i._onProcessMinLen>0?i._writeIdx+R>=i._onProcessMinLen||o.done?((h=new Uint8Array(i._writeIdx+R)).set(i._cache.subarray(0,i._writeIdx),0),R>0&&h.set(o.value,i._writeIdx),i._writeIdx=0,i._logger.debug("【fetchLoader,onProgress enough】,done,",o.done,",len,",h.byteLength,", writeIdx,",i._writeIdx)):R>0&&i._writeIdx+R<CACHESIZE$1?(i._cache.set(o.value,i._writeIdx),i._writeIdx+=R,i._logger.debug("【fetchLoader,onProgress cache】,len,",R,", writeIdx,",i._writeIdx)):R>0&&(p=new Uint8Array(i._writeIdx+R+2048),i._logger.debug("【fetchLoader,onProgress extra start】,size,",i._writeIdx+R+2048,", datalen,",R,", writeIdx,",i._writeIdx),p.set(i._cache.subarray(0,i._writeIdx),0),R>0&&p.set(o.value,i._writeIdx),i._writeIdx+=R,delete i._cache,i._cache=p,i._logger.debug("【fetchLoader,onProgress extra end】,len,",R,", writeIdx,",i._writeIdx)):h=o.value,!(h&&h.byteLength>0||o.done)){a.next=28;break}i._logger.debug("【fetchLoader,onProgress call】,task,",i._range,", start,",Q,", end,",u+i._receivedLength,", done,",o.done,n),t(h,o.done,{range:[i._range[0]+i._receivedLength-(h?h.byteLength:0),i._range[0]+i._receivedLength],vid:i._vid,index:i._index,startTime:l,endTime:d,st:n,firstByteTime:r,priOptions:i._priOptions},e),s=Date.now(),a.next=37;break;case 28:if(!(Date.now()-s>=i._processMaxGapTime)){a.next=37;break}return i._logger.debug("[onProgress timeout],task: ".concat(JSON.stringify(i._range)," done: ").concat(o.done," processMaxGapTime: ").concat(i._processMaxGapTime)),(B=new NetError$1(e.url,null,e,"process timeout")).options={index:i._index,range:i._range,vid:i._vid,priOptions:i._priOptions},i.running=!1,a.next=35,i.cancel();case 35:return i.reject(B),a.abrupt("return");case 37:o.done?(S=Date.now()-n,f=calculateSpeed$1(i._receivedLength,S),i.emit(EVENT$1.REAL_TIME_SPEED,{speed:f,len:i._receivedLength,time:S,vid:i._vid,index:i._index,range:i._range,priOptions:i._priOptions}),i._running=!1,i._logger.debug("[fetchLoader onProgress end],task,",i._range,",done,",o.done),i.resolve(createResponse$1(o,!0,e,e.headers.get("Content-Length"),e.headers.get("age"),n,r,i._index,i._range,i._vid,i._priOptions))):U();case 38:case"end":return a.stop()}}),a,null,[[1,8]])})));return function(){return a.apply(this,arguments)}}();U()}},{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)}}]),r}();function getConfig$1(e){return _objectSpread2$1({loaderType:LoaderType$1.FETCH,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:ResponseType$1.TEXT,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,processMaxGapTime:1/0},e)}var XhrLoader$1=function(e){_inherits$1(n,EventEmitter);var t=_createSuper(n);function n(){var e;return _classCallCheck$1(this,n),_defineProperty$1(_assertThisInitialized$1(e=t.call(this)),"_xhr",null),_defineProperty$1(_assertThisInitialized$1(e),"_aborted",!1),_defineProperty$1(_assertThisInitialized$1(e),"_timeoutTimer",null),_defineProperty$1(_assertThisInitialized$1(e),"_range",null),_defineProperty$1(_assertThisInitialized$1(e),"_receivedLength",0),_defineProperty$1(_assertThisInitialized$1(e),"_url",null),_defineProperty$1(_assertThisInitialized$1(e),"_onProgress",null),_defineProperty$1(_assertThisInitialized$1(e),"_index",-1),_defineProperty$1(_assertThisInitialized$1(e),"_headers",null),_defineProperty$1(_assertThisInitialized$1(e),"_currentChunkSizeKB",384),_defineProperty$1(_assertThisInitialized$1(e),"_timeout",null),_defineProperty$1(_assertThisInitialized$1(e),"_xhr",null),_defineProperty$1(_assertThisInitialized$1(e),"_withCredentials",null),_defineProperty$1(_assertThisInitialized$1(e),"_startTime",-1),_defineProperty$1(_assertThisInitialized$1(e),"_loadCompleteResolve",null),_defineProperty$1(_assertThisInitialized$1(e),"_loadCompleteReject",null),_defineProperty$1(_assertThisInitialized$1(e),"_runing",!1),_defineProperty$1(_assertThisInitialized$1(e),"_logger",!1),_defineProperty$1(_assertThisInitialized$1(e),"_vid",""),_defineProperty$1(_assertThisInitialized$1(e),"_responseType",void 0),_defineProperty$1(_assertThisInitialized$1(e),"_credentials",void 0),_defineProperty$1(_assertThisInitialized$1(e),"_method",void 0),_defineProperty$1(_assertThisInitialized$1(e),"_transformResponse",void 0),_defineProperty$1(_assertThisInitialized$1(e),"_firstRtt",void 0),_defineProperty$1(_assertThisInitialized$1(e),"_onCancel",null),_defineProperty$1(_assertThisInitialized$1(e),"_priOptions",null),e}return _createClass$1(n,[{key:"load",value:function(e){var t=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=setUrlParams$1(e.url,e.params);var n=Date.now();return new Promise((function(e,n){t._loadCompleteResolve=e,t._loadCompleteReject=n,t._startLoad()})).catch((function(e){if(clearTimeout(t._timeoutTimer),t._runing=!1,!t._aborted)throw(e=e instanceof NetError$1?e:new NetError$1(t._url,t._request)).startTime=n,e.endTime=Date.now(),e.options={index:t._index,vid:t._vid,priOptions:t._priOptions},e}))}},{key:"_startLoad",value:function(){var e=null;if(this._responseType===ResponseType$1.ARRAY_BUFFER&&this._range&&this._range.length>1)if(this._onProgress){this._firstRtt=-1;var t=1024*this._currentChunkSizeKB,n=this._range[0]+this._receivedLength,r=this._range[1];t<this._range[1]-n&&(r=n+t),e=[n,r],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 t=this;try{this._startTime=Date.now(),this._rttStartTime="undefined"!=typeof performance&&performance.now?performance.now():this._startTime;var n=this._xhr=new XMLHttpRequest;n.open(this._method||"GET",this._url,!0),n.responseType=this._responseType,this._timeout&&(n.timeout=this._timeout),n.withCredentials=this._withCredentials,n.onload=this._onLoad.bind(this),n.onreadystatechange=this._onReadyStatechange.bind(this),n.onerror=function(e){var n,r,i;t._running=!1;var a=new NetError$1(t._url,t._request,null==e||null===(n=e.currentTarget)||void 0===n?void 0:n.response,"xhr.onerror.status:"+(null==e||null===(r=e.currentTarget)||void 0===r?void 0:r.status)+",statusText,"+(null==e||null===(i=e.currentTarget)||void 0===i?void 0:i.statusText));a.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(a)},n.ontimeout=function(e){t.cancel();var n=new NetError$1(t._url,t._request,{status:408},"timeout");t._onTimeout&&(n.isTimeout=!0,t._onTimeout(n,{index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions})),n.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(n)};var r=this._headers||{},i=getRangeValue$1(e);i&&(r.Range=i),r&&Object.keys(r).forEach((function(e){n.setRequestHeader(e,r[e])})),this._logger.debug("[xhr.send->] tast,",this._range,",load sub range, ",e),n.send(this._body)}catch(t){t.options={index:this._index,range:e,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(t)}}},{key:"_onReadyStatechange",value:function(e){2===e.target.readyState&&this._firstRtt<0&&(this._firstRtt=Date.now(),this._priOptions.rtt=Math.max(0,("undefined"!=typeof performance&&performance.now?performance.now():this._firstRtt)-this._rttStartTime))}},{key:"_onLoad",value:function(e){var t,n=e.target.status;if(n<200||n>299){var r=new NetError$1(this._url,null,_objectSpread2$1(_objectSpread2$1({},e.target.response),{},{status:n}),"bad response,status:"+n);return r.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(r)}var i,a=null,o=!1,l=(null===(t=this._range)||void 0===t?void 0:t.length)>0?this._range[0]:0;if(this._responseType===ResponseType$1.ARRAY_BUFFER){var d,c=new Uint8Array(e.target.response);if(i=l+this._receivedLength,c&&c.byteLength>0){this._receivedLength+=c.byteLength;var s=Date.now()-this._startTime,U=calculateSpeed$1(this._receivedLength,s);this.emit(EVENT$1.REAL_TIME_SPEED,{speed:U,len:this._receivedLength,time:s,vid:this._vid,index:this._index,range:[i,l+this._receivedLength],priOptions:this._priOptions})}a=c,o=!((null===(d=this._range)||void 0===d?void 0:d.length)>1&&this._range[1]&&this._receivedLength<this._range[1]-this._range[0]),this._logger.debug("[xhr load done->], tast :",this._range,", start",i,"end ",l+this._receivedLength,",dataLen,",c?c.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",o)}else o=!0,a=e.target.response;var F={ok:n>=200&&n<300,status:n,statusText:this._xhr.statusText,url:this._xhr.responseURL,headers:this._getHeaders(this._xhr),body:this._xhr.response};this._transformResponse&&(F=this._transformResponse(F,this._url)||F),this._onProgress&&this._onProgress(a,o,{index:this._index,vid:this._vid,range:[i,l+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},F),o?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(createResponse$1(this._onProgress?null:a,o,F,F.headers["content-length"],F.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,_get(_getPrototypeOf$1(n.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 t,n={},r=_createForOfIteratorHelper$1(e.getAllResponseHeaders().trim().split("\r\n"));try{for(r.s();!(t=r.n()).done;){var i=t.value.split(": ");n[i[0].toLowerCase()]=i.slice(1).join(": ")}}catch(e){r.e(e)}finally{r.f()}return n}}],[{key:"isSupported",value:function(){return"undefined"!=typeof XMLHttpRequest}}]),n}();function createPublicPromise$1(){var e,t,n=new Promise((function(n,r){e=n,t=r}));return n.used=!1,n.resolve=function(){return n.used=!0,e.apply(void 0,arguments)},n.reject=function(){return n.used=!0,t.apply(void 0,arguments)},n}var _excluded$4=["retry","retryDelay","onRetryError","transformError"],Task$1=function(){function e(t,n){_classCallCheck$1(this,e),this.promise=createPublicPromise$1(),this.alive=!!n.onProgress,!n.logger&&(n.logger=new Logger("Loader")),this._loaderType=t,this._loader=t===LoaderType$1.FETCH&&window.fetch?new FetchLoader$1:new XhrLoader$1,this._config=n,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=n.retryCheckFunc,this._logger=n.logger}var t;return _createClass$1(e,[{key:"exec",value:function(){var e=this,t=this._config,n=t.retry,r=t.retryDelay,i=t.onRetryError,a=t.transformError,o=_objectWithoutProperties$1(t,_excluded$4),l=function(){var t=_asyncToGenerator$1(_regeneratorRuntime$1().mark((function t(){var d,c,s;return _regeneratorRuntime$1().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e._loader.load(o);case 3:d=t.sent,e.promise.resolve(d),t.next=27;break;case 7:if(t.prev=7,t.t0=t.catch(0),e._loader.running=!1,e._logger.debug("[task request catch err]",t.t0),!e._canceled){t.next=13;break}return t.abrupt("return");case 13:if(t.t0.loaderType=e._loaderType,t.t0.retryCount=e._retryCount,c=t.t0,a&&(c=a(c)||c),i&&e._retryCount>0&&i(c,e._retryCount,{index:o.index,vid:o.vid,range:o.range,priOptions:o.priOptions}),e._retryCount++,s=!0,e._retryCheckFunc&&(s=e._retryCheckFunc(t.t0)),!(s&&e._retryCount<=n)){t.next=26;break}return clearTimeout(e._retryTimer),e._logger.debug("[task request setTimeout],retry",e._retryCount,",retry range,",o.range),e._retryTimer=setTimeout(l,r),t.abrupt("return");case 26:e.promise.reject(c);case 27:case"end":return t.stop()}}),t,null,[[0,7]])})));return function(){return t.apply(this,arguments)}}();return l(),this.promise}},{key:"cancel",value:(t=_asyncToGenerator$1(_regeneratorRuntime$1().mark((function e(){return _regeneratorRuntime$1().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 t.apply(this,arguments)})},{key:"running",get:function(){return this._loader&&this._loader.running}},{key:"loader",get:function(){return this._loader}}]),e}(),NEW_ARRAY_MAX_CNT=10;function concatUint8Array(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if((t=t.filter(Boolean)).length<2)return t[0];var r=newUint8Array(t.reduce((function(e,t){return e+t.byteLength}),0)),i=0;return t.forEach((function(e){r.set(e,i),i+=e.byteLength})),r}function newUint8Array(e){for(var t,n=0;n<NEW_ARRAY_MAX_CNT;)try{if((t=new Uint8Array(e))&&t.byteLength>0)break;n++}catch(e){if(!(n<NEW_ARRAY_MAX_CNT))throw new Error("new array failed final,".concat(null==e?void 0:e.message));n++}return t}function sleep$1(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(t){return setTimeout(t,e)}))}var NetLoader$1=function(e){_inherits$1(r,EventEmitter);var t,n=_createSuper(r);function r(e){var t;return _classCallCheck$1(this,r),_defineProperty$1(_assertThisInitialized$1(t=n.call(this,e)),"type",LoaderType$1.FETCH),_defineProperty$1(_assertThisInitialized$1(t),"_queue",[]),_defineProperty$1(_assertThisInitialized$1(t),"_alive",[]),_defineProperty$1(_assertThisInitialized$1(t),"_currentTask",null),_defineProperty$1(_assertThisInitialized$1(t),"_finnalUrl",""),_defineProperty$1(_assertThisInitialized$1(t),"_config",void 0),t._config=getConfig$1(e),t._config.loaderType!==LoaderType$1.XHR&&FetchLoader$1.isSupported()||(t.type=LoaderType$1.XHR),t.log=e.logger,t}return _createClass$1(r,[{key:"isFetch",value:function(){return this.type===LoaderType$1.FETCH}},{key:"load",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"string"!=typeof e&&e?n=e:n.url=e||n.url||this._config.url,(n=Object.assign({},this._config,n)).params&&(n.params=Object.assign({},n.params)),n.headers&&isPlainObject$1(n.headers)&&(n.headers=Object.assign({},n.headers)),n.body&&isPlainObject$1(n.body)&&(n.body=Object.assign({},n.body)),n.transformRequest&&(n=n.transformRequest(n)||n),n.logger=this.log;var r=new Task$1(this.type,n);return r.loader.on(EVENT$1.REAL_TIME_SPEED,(function(e){t.emit(EVENT$1.REAL_TIME_SPEED,e)})),this._queue.push(r),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),r.promise}},{key:"cancel",value:(t=_asyncToGenerator$1(_regeneratorRuntime$1().mark((function e(){var t;return _regeneratorRuntime$1().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this._queue.map((function(e){return e.cancel()})).concat(this._alive.map((function(e){return e.cancel()}))),this._currentTask&&t.push(this._currentTask.cancel()),this._queue=[],this._alive=[],e.next=6,Promise.all(t);case 6:return e.next=8,sleep$1();case 8:case"end":return e.stop()}}),e,this)}))),function(){return t.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 t=this._currentTask.exec().catch((function(e){}));t&&"function"==typeof t.finally&&t.finally((function(){var t,n;null!==(t=e._currentTask)&&void 0!==t&&t.alive&&(null===(n=e._alive)||void 0===n?void 0:n.length)>0&&(e._alive=e._alive.filter((function(t){return t&&t!==e._currentTask}))),e._processTask()}))}}}],[{key:"isFetchSupport",value:function(){return FetchLoader$1.isSupported()}}]),r}(),_excluded$3=["vid","cache"],MP4Loader=function(e){_inherits$2(u,EventEmitter);var t,n,r,i,a,o,l,d,c,s,U,F=_createSuper$1(u);function u(e){var t;_classCallCheck$2(this,u),_defineProperty$2(_assertThisInitialized$2(t=F.call(this)),"vid",""),_defineProperty$2(_assertThisInitialized$2(t),"url",""),_defineProperty$2(_assertThisInitialized$2(t),"meta",{}),_defineProperty$2(_assertThisInitialized$2(t),"downloadInfo",[]),_defineProperty$2(_assertThisInitialized$2(t),"videoSegments",[]),_defineProperty$2(_assertThisInitialized$2(t),"audioSegments",[]),_defineProperty$2(_assertThisInitialized$2(t),"cache",null),_defineProperty$2(_assertThisInitialized$2(t),"_currentSegmentIndex",-1),_defineProperty$2(_assertThisInitialized$2(t),"_currentLoadingSegmentIndex",-1),_defineProperty$2(_assertThisInitialized$2(t),"buffer",void 0),_defineProperty$2(_assertThisInitialized$2(t),"bufferDataLen",0),_defineProperty$2(_assertThisInitialized$2(t),"_error",void 0),_defineProperty$2(_assertThisInitialized$2(t),"_transformError",(function(e){return e})),t._config=getConfig$2(e);var n=t._config,r=n.vid,i=n.cache,a=_objectWithoutProperties$2(n,_excluded$3);return t.cache=i||new Cache,t.vid=r||a.url,t.url=a.url,a.transformError=t._transformError,t.logger=new Logger("MP4Loader_"+t.vid),e.openLog&&Logger.enable(),a.logger=t.logger,t.filesize=0,t._loader=new NetLoader$1(a),t._loader.on(EVENT$1.REAL_TIME_SPEED,(function(e){t.emit(EVENT$1.REAL_TIME_SPEED,e)})),t}return _createClass$2(u,[{key:"isMetaLoaded",get:function(){return this.videoSegments.length||this.audioSegments.length}},{key:"setCurrentSegment",value:function(e){isNumber(e)&&(this._currentSegmentIndex=e)}},{key:"isLastSegment",value:function(e){var t,n;return!!isNumber(e)&&e>=((null===(t=this.videoSegments[this.videoSegments.length-1])||void 0===t?void 0:t.index)||(null===(n=this.audioSegments[this.audioSegments.length-1])||void 0===n?void 0:n.index)||0)}},{key:"isSegmentLoading",value:function(e){return e===this._currentLoadingSegmentIndex}},{key:"changeUrl",value:(U=_asyncToGenerator$2(_regeneratorRuntime$2().mark((function e(t){var n,r,i,a=arguments;return _regeneratorRuntime$2().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=a.length>1&&void 0!==a[1]?a[1]:t,r=a.length>2?a[2]:void 0,i=a.length>3?a[3]:void 0,e.next=5,this.reset(i);case 5:t&&(this.url=t),n&&(this.vid=n),r&&(this._config.moovEnd=r);case 8:case"end":return e.stop()}}),e,this)}))),function(e){return U.apply(this,arguments)})},{key:"getOrLoadMeta",value:(s=_asyncToGenerator$2(_regeneratorRuntime$2().mark((function e(t){return _regeneratorRuntime$2().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.isMetaLoaded){e.next=3;break}return e.next=3,this.loadMeta(t);case 3:return e.abrupt("return",this.meta);case 4:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"newBufferArray",value:function(e,t){var n;if(this.buffer){if(t||(null===(n=this.buffer)||void 0===n?void 0:n.byteLength)<e){var r,i=this.buffer.subarray(0,this.bufferDataLen),a=newUint8Array(((null===(r=this.buffer)||void 0===r?void 0:r.byteLength)||0)+e);a.set(i,0),delete this.buffer,this.buffer=a}}else this.buffer=newUint8Array(e),this.bufferDataLen=0}},{key:"loadMetaProcess",value:(c=_asyncToGenerator$2(_regeneratorRuntime$2().mark((function e(t,n,r){var i,a,o,l,d,c,s=this,U=arguments;return _regeneratorRuntime$2().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=_slicedToArray$1(n,2),o=a[0],l=a[1],d=U.length>3&&void 0!==U[3]?U[3]:{},this._error=!1,this.filesize=0,this.logger.debug("[loadMetaProcess start], range,",[o,l]),null!==(i=this._config)&&void 0!==i&&i.memoryOpt&&(!this.buffer||null!=d&&d.isExp))try{this.newBufferArray(l-o+1,null==d?void 0:d.isExp)}catch(e){r(null,!0,{},new MediaError(null==e?void 0:e.message),{})}return c=function(){var e=_asyncToGenerator$2(_regeneratorRuntime$2().mark((function e(n,i,a,c){var U,F,u,Q,R,h,p,B,S,f,m,V,y;return _regeneratorRuntime$2().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!s.filesize&&null!=c&&c.headers&&(U=c.headers.get("content-range"))&&(F=U.split("/"),Array.isArray(F)&&2===F.length&&(s.filesize=parseInt(F[1]),s.filesize>0&&l>s.filesize&&(l=s.filesize,s.logger.debug("[loadMetaProcess] moovEnd changed by content-range in header, [".concat(o,"-").concat(l,"]"))))),!i&&s.meta&&null!=a&&a.range&&a.range.length>0&&a.range[1]>=l&&(i=!0,s.logger.debug("[loadMetaProcess],data done,setstate true,[",o,l,"]")),i&&null!=a&&a.range&&a.range.length>0&&a.range[1]<l&&(i=!1,s.logger.debug("[loadMetaProcess],data not done,setstate false,[",o,l,"]")),s.logger.debug("[loadMetaProcess],task,[",o,l,"], range,",a.range,",dataLen,",n?n.byteLength:void 0,", state,",i,",err,",s._error),!s._error&&n&&n.byteLength>0&&r(n,i,a,null,c),!s.meta.moov&&!s._error){e.next=7;break}return e.abrupt("return");case 7:if(!(n&&n.byteLength>0)){e.next=53;break}e.prev=8,null!==(Q=s._config)&&void 0!==Q&&Q.memoryOpt?(s.buffer.set(n,s.bufferDataLen),s.bufferDataLen+=(null==n?void 0:n.byteLength)||0,u=s.buffer.subarray(0,s.bufferDataLen)):(s.buffer=concatUint8Array(s.buffer,n),u=s.buffer),e.next=16;break;case 12:return e.prev=12,e.t0=e.catch(8),r(null,i,a,new MediaError(null===e.t0||void 0===e.t0?void 0:e.t0.message),c),e.abrupt("return");case 16:if(R=MP4Parser.findBox(u,["moov"])[0]){e.next=31;break}if(h=MP4Parser.findBox(u,["mdat"])[0],!i){e.next=31;break}if(h){e.next=26;break}return s._error=!0,r(null,i,a,new MediaError("cannot find moov or mdat box"),c),e.abrupt("return");case 26:return p=h.start+h.size,e.next=29,s.loadData([p,""],t,d);case 29:(B=e.sent)&&(R=MP4Parser.findBox(B.data,["moov"])[0]);case 31:if(!(R&&i&&R.size>R.data.length)){e.next=35;break}return s.logger.debug("[loadMetaProcess],moov not all, range,",a.range[1],",dataLen,",s.bufferDataLen,", state,",i),e.next=35,s.loadMetaProcess(t,[a.range[1],R.start+R.size-1],r,_objectSpread2$2(_objectSpread2$2({},d),{},{isExp:!0}));case 35:if(!(R&&R.size<=R.data.length)||s.meta.moov){e.next=53;break}if(f=MP4Parser.moov(R)){e.next=41;break}return s._error=!0,r(null,i,a,new MediaError("cannot parse moov box"),c),e.abrupt("return");case 41:if(isSegmentsOk(m=moovToSegments(f,s._config))){e.next=46;break}return s._error=!0,r(null,i,a,new MediaError("cannot parse segments"),c),e.abrupt("return");case 46:s.meta=moovToMeta(f),V=m.videoSegments,y=m.audioSegments,s.videoSegments=V,s.audioSegments=y,null!==(S=s._config)&&void 0!==S&&S.memoryOpt&&(delete s.buffer,s.bufferDataLen=0),s.logger.debug("[loadMetaProcess] moov ok"),r(void 0,i,{meta:{meta:s.meta,videoSegments:V,audioSegments:y}},null,c);case 53:case"end":return e.stop()}}),e,null,[[8,12]])})));return function(t,n,r,i){return e.apply(this,arguments)}}(),e.next=9,this.loadData([o,l||this._config.moovEnd],t,_objectSpread2$2({onProgress:c},d));case 9:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return c.apply(this,arguments)})},{key:"loadMeta",value:(d=_asyncToGenerator$2(_regeneratorRuntime$2().mark((function e(t,n){var r,i,a,o,l,d,c,s,U,F,u=arguments;return _regeneratorRuntime$2().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=u.length>2&&void 0!==u[2]?u[2]:{},i=[],this.logger.debug("[loadMeta start]"),e.next=5,this.loadData([0,n||this._config.moovEnd],t,r);case 5:if(a=e.sent){e.next=8;break}return e.abrupt("return");case 8:if(i.push(a),o=MP4Parser.findBox(a.data,["moov"])[0]){e.next=24;break}if(l=MP4Parser.findBox(a.data,["mdat"])[0]){e.next=14;break}throw new MediaError("cannot find moov or mdat box",a.data);case 14:return d=l.start+l.size,e.next=17,this.loadData([d],t,r);case 17:if(a=e.sent){e.next=20;break}return e.abrupt("return");case 20:if(i.push(a),o=MP4Parser.findBox(a.data,["moov"],d)[0]){e.next=24;break}throw new MediaError("cannot find moov box",a.data);case 24:if(!(o.size>o.data.length)){e.next=32;break}return e.next=27,this.loadData([a.data.length,o.start+o.size-1],t,r);case 27:if(a=e.sent){e.next=30;break}return e.abrupt("return");case 30:i.push(a),o.data=concatUint8Array(o.data,a.data);case 32:if(c=MP4Parser.moov(o)){e.next=35;break}throw new MediaError("cannot parse moov box",o.data);case 35:if(isSegmentsOk(s=moovToSegments(c,this._config))){e.next=38;break}throw new MediaError("cannot parse segments",o.data);case 38:return this.meta=moovToMeta(c),U=s.videoSegments,F=s.audioSegments,this.videoSegments=U,this.audioSegments=F,delete this.buffer,this.bufferDataLen=0,this.logger.debug("[load moov end!!!!!]"),e.abrupt("return",{meta:this.meta,videoSegments:U,audioSegments:F,responses:i});case 46:case"end":return e.stop()}}),e,this)}))),function(e,t){return d.apply(this,arguments)})},{key:"loadCacheMeta",value:function(e,t){var n=moovToSegments(e.moov,this._config),r=n.videoSegments,i=n.audioSegments;this.videoSegments=r,this.audioSegments=i,this._currentSegmentIndex=t,this.meta=e}},{key:"getSegmentByTime",value:function(e){var t,n;return this.videoSegments.length?(t=this.videoSegments.find((function(t){return t.startTime<=e&&t.endTime>e})),t&&(n=this.audioSegments[t.index])):n=this.audioSegments.find((function(t){return t.startTime<=e&&t.endTime>e})),{video:t,audio:n}}},{key:"loadSegmentByTime",value:(l=_asyncToGenerator$2(_regeneratorRuntime$2().mark((function e(t,n){var r,i,a,o,l,d=arguments;return _regeneratorRuntime$2().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=!(d.length>2&&void 0!==d[2])||d[2],i=d.length>3&&void 0!==d[3]?d[3]:{},this.isMetaLoaded){e.next=5;break}return e.next=5,this.loadMeta(n);case 5:return a=this.getSegmentByTime(t),o=a.video,l=a.audio,e.abrupt("return",this._loadSegment(o,l,n,r,i));case 7:case"end":return e.stop()}}),e,this)}))),function(e,t){return l.apply(this,arguments)})},{key:"loadNextSegment",value:(o=_asyncToGenerator$2(_regeneratorRuntime$2().mark((function e(t){var n,r,i,a,o=arguments;return _regeneratorRuntime$2().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=!(o.length>1&&void 0!==o[1])||o[1],r=o.length>2&&void 0!==o[2]?o[2]:{},this.isMetaLoaded){e.next=5;break}return e.next=5,this.loadMeta();case 5:return i=this.videoSegments[this._currentSegmentIndex+1],a=this.audioSegments[this._currentSegmentIndex+1],e.abrupt("return",this._loadSegment(i,a,t,n,r));case 8:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"preload",value:(a=_asyncToGenerator$2(_regeneratorRuntime$2().mark((function e(t){var n,r,i,a,o,l,d,c=this;return _regeneratorRuntime$2().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.isMetaLoaded){e.next=3;break}return e.next=3,this.loadMeta(!0);case 3:if(t&&!(t<0)){e.next=5;break}return e.abrupt("return");case 5:if(n=this.getSegmentByTime(t),r=n.video,i=n.audio,a=Math.max((null==r?void 0:r.index)||0,(null==i?void 0:i.index)||0)){e.next=9;break}return e.abrupt("return");case 9:return o=this.videoSegments.slice(0,a),l=this.audioSegments.slice(0,a),d=function(){var e=_asyncToGenerator$2(_regeneratorRuntime$2().mark((function e(t){return _regeneratorRuntime$2().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t>a)){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,c._loadSegment(o[t],l[t],!0,!1);case 4:return e.next=6,d(t+1);case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),e.next=14,d(0);case 14:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"cancel",value:function(){return this._loader.cancel()}},{key:"reset",value:(i=_asyncToGenerator$2(_regeneratorRuntime$2().mark((function e(){var t,n=arguments;return _regeneratorRuntime$2().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.length>0&&void 0!==n[0]&&n[0]){e.next=5;break}return this.logger.debug("[MP4loader reset func call loader.cancel]"),e.next=5,this._loader.cancel();case 5:this.vid=this.url="",this.meta={},this.downloadInfo=[],this.videoSegments=[],this.audioSegments=[],this._currentSegmentIndex=-1,this._currentLoadingSegmentIndex=-1,null!==(t=this._config)&&void 0!==t&&t.memoryOpt&&(delete this.buffer,this.bufferDataLen=0);case 13:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"destroy",value:(r=_asyncToGenerator$2(_regeneratorRuntime$2().mark((function e(){return _regeneratorRuntime$2().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.reset();case 2:this.cache.clear();case 3:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"_loadSegment",value:(n=_asyncToGenerator$2(_regeneratorRuntime$2().mark((function e(t,n,r,i,a){var o,l;return _regeneratorRuntime$2().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t||n){e.next=2;break}return e.abrupt("return");case 2:return o=(null==t?void 0:t.index)||(null==n?void 0:n.index)||0,this._currentLoadingSegmentIndex=o,e.prev=4,e.next=7,this.loadData([Math.min((null==t?void 0:t.range[0])||1/0,(null==n?void 0:n.range[0])||1/0),Math.max((null==t?void 0:t.range[1])||0,(null==n?void 0:n.range[1])||0)],r,a);case 7:l=e.sent;case 8:return e.prev=8,this._currentLoadingSegmentIndex=-1,e.finish(8);case 11:if(l){e.next=13;break}return e.abrupt("return");case 13:return i&&(this._currentSegmentIndex=o),l.video=t,l.audio=n,e.abrupt("return",l);case 17:case"end":return e.stop()}}),e,this,[[4,,8,11]])}))),function(e,t,r,i,a){return n.apply(this,arguments)})},{key:"loadData",value:(t=_asyncToGenerator$2(_regeneratorRuntime$2().mark((function e(t,n){var r,i,a,o,l,d=arguments;return _regeneratorRuntime$2().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=d.length>2&&void 0!==d[2]?d[2]:{},i=this._getCacheKey(t),e.next=4,this.cache.get(i);case 4:if(a=e.sent){e.next=12;break}return l=null!=r&&r.url?r.url:this.url,e.next=9,this._loader.load(l,_objectSpread2$2({range:t,vid:this.vid},r));case 9:o=e.sent,e.next=13;break;case 12:o={data:a,state:!0,options:{fromCache:!0,range:t,vid:this.vid}};case 13:if(o){e.next=15;break}return e.abrupt("return");case 15:return a||(o.data&&this.downloadInfo.push({startTime:o.startTime,endTime:o.endTime,size:o.data.byteLength,range:t}),this.downloadInfo&&this.downloadInfo.length>this._config.maxDownloadInfoSize&&(this.downloadInfo=this.downloadInfo.slice(-this._config.maxDownloadInfoSize))),e.abrupt("return",o);case 18:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)})},{key:"_getCacheKey",value:function(e){return(this.vid||this.url)+":"+e}}]),u}(),MP4_EVENTS={ERROR:"error",META_READY:"metaReady",META_REQ_DONE:"meta_request_done",MOOV_REQ_PROGRESS:"moov_request_progress",TASK_PROGRESS:"progress_event",REMOVE_URL:"remove_url",FRAGMENT:"fragment",UPDATE_EME:"update_eme",INIT_MSE:"init_mse",CHANGE_URL:"change_url",UPDATE_LOAD_IDX:"update_load_fragmentIdx",REMOVE_PCDN_NODE:"remove_pcdn_node",LOAD_ERROR:"load_error",CANCEL_LOADED_LEN:"cancel_loaded_len",RESPONSE_INFO:CUSTOM_EVENTS.MSE_RESPONSE_INFO},LOAD_TYPE={CDN:"cdn",PCDN:"pcdn"},PCDN_STATE={CLOSE:"close",OPEN:"open",FORBIDDEN:"forbidden"},RETRY_INFO={},MP4_BASE=function(e){function t(e,n,r,i){var a,o;return _classCallCheck$a(this,t),_defineProperty$9(o=_callSuper$3(this,t),"markErrHost",(function(e){e&&(RETRY_INFO[e]=!0,o.log(LogCacheLevel$1.WARN,"[mp4loader markErrHost]",e))})),_defineProperty$9(o,"onprogressDataArrive",function(){var e=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t,n,r,i){var a,l,d,c,s,U,F,u,Q;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(d=null===(a=r.priOptions)||void 0===a?void 0:a.range,c=(null===(l=r.priOptions)||void 0===l?void 0:l.type)||LOAD_TYPE.CDN,o.emitResponseInfo("fragment",i,r,{range:d,fragIndex:r.index}),o.checkResPonse(i,r.priOptions)){e.next=8;break}return e.next=7,o.notVailRangeResError(i,r.priOptions,r.index);case 7:return e.abrupt("return");case 8:if(s=t&&t.byteLength>0,o.log(LogCacheLevel$1.LOG,"[DataArrive] rev data","index: ".concat(r.index,", range: ").concat(JSON.stringify(r.range),", dataLen: ").concat(null==t?void 0:t.byteLength),"loadType: ".concat(c,", state: ").concat(n)),!n){e.next=30;break}if(o._optionDataLenInfo[c]=0,!((null==d?void 0:d.length)>=0&&(!Number(d[1])||Number(d[1])&&(null==r?void 0:r.range[1])===d[1]+1))){e.next=18;break}o.adaptTimeRange[r.index].downloaded=!0,o.log(LogCacheLevel$1.LOG,"[FragLoadDowned],fragmentIdx,",r.index,",rangeEnd,",r.range[1]),e.next=30;break;case 18:return U=transformHeaders(i.headers),e.next=21,o.cancelLoading();case 21:if(F=c===LOAD_TYPE.CDN?o.url:o._pcdnNodeList[0].url,u=util.getHostFromUrl(F),o.emit(MP4_EVENTS.LOAD_ERROR,{src:F,host:u,errorCode:ERROR_CODES.lenNotMatch,message:ERROR_DATA_LEN_NOT_MATCH,range:JSON.stringify(d),headers:U}),Q=[null==r?void 0:r.range[1],d[1]],o.log(LogCacheLevel$1.LOG,"".concat(ERROR_DATA_LEN_NOT_MATCH),"fragmentIdx: ".concat(r.index),"rangeEnd: ".concat(r.range[1],", ").concat(JSON.stringify(d)),"headers: ".concat(JSON.stringify(U),", url: ").concat(F,", ").concat(null==i?void 0:i.url),"retryRange: ".concat(JSON.stringify(Q))),!((null==r?void 0:r.range[1])<d[1]+1)){e.next=30;break}return o.startMux(t,c,r,n),e.next=30,o.loadAllFragmentData(o._curLoadSegIdx,o._loadSuccessCallBack,null,!1,Q);case 30:s&&o.startMux(t,c,r,n);case 31:case"end":return e.stop()}}),e)})));return function(t,n,r,i){return e.apply(this,arguments)}}()),i=i||[],o.updateUrl(e,i||[]),o._bitRate=n||0,o.options=t.getDefaultConfig(),Object.keys(r).map((function(e){void 0!==r[e]&&null!==r[e]&&(o.options[e]=r[e])})),o.logger=r.logger,o.timeRange=[],o.adaptTimeRange=[],o.fileSize=null==r?void 0:r.fileSize,o.CHUNK_SIZE=(null===(a=o.options)||void 0===a?void 0:a.firstLoadSize)||getMetaSize(r.duration,o.options.chunkSize,o.fileSize),o._firstLoadSize=o.CHUNK_SIZE,o.log(LogCacheLevel$1.LOG,"[getFirstLoadSize], firstLoadSize ".concat(o._firstLoadSize),"dur ".concat(r.duration,", chunkSize ").concat(o.CHUNK_SIZE,",fileSize ").concat(o.fileSize)),o.repeatInfo={startPos:-1,curDataPos:0,usedPos:0,data:util.newUint8Array(1048576)},o.meta=null,o.preloadCache=null,o.videoTrak=null,o.audioTrak=null,o._loadSuccessCallBack=null,o._isPending=!1,o.metaLoading=!1,o.MP4Loader=new MP4Loader(_objectSpread2$7(_objectSpread2$7({url:e,vid:"".concat(r.vid,"-").concat(n),retry:r.retryCount,retryDelay:r.retryDelay,timeout:r.timeout,segmentDuration:r.segmentDuration,audioGroupingStrategy:r.audioGroupingStrategy,fixEditListOffset:r.fixEditListOffset,fixEditListOffsetThreshold:r.fixEditListOffsetThreshold},r.reqOptions),{},{memoryOpt:r.memoryOpt,loaderType:r.loaderType,retryCheckFunc:r.loadRangeType===LOAD_RANGE_TYPE.SIZE?retryCheckFuncNew:retryCheckFunc,openLog:openLog,processMaxGapTime:r.processMaxGapTime})),o.MP4Demuxer=null,o.FMP4Remuxer=null,o._needInitSegment=!0,o._bitRateInfoMap=new Map,o._switchBitRate=!1,o._segmentToBitRateMap=new Map,o.useEME=!1,o.secretKey=null,o.decryptKey=null,o.keyValue=null,o.initTransMuxWorker(),o.seekTime=-1,o.changeBitRateTime=-1,o._PCDNState=PCDN_STATE.CLOSE,o._pcdnNodeList=[],o.loadInfo={},o.pcdnTraceInfo=null,o._loadedDataState=!1,o._PCDNSwitchCnt=0,o._isUseCDN=!0,o._curLoadSegIdx=0,o._receiveDataPos=-1,o._optionDataLenInfo={},o._lastPCDNUrl="",o.lastTargetDur=0,o.pcdnVVStat=o.resetPcdnVVStat(),o.pSCCancelCnt=0,o.lastDemuxSampleIdxRange={video:-1,audio:-1},o._mediaEndTime=-1,o.lastMuxRemainBufferInfo=null,o}return _inherits$8(t,EventEmitter),_createClass$a(t,[{key:"size",get:function(){return this.fileSize}},{key:"bufferTimeFuncCallBack",set:function(e){this.getbufferTimeFunc=e}},{key:"fillFirSeg",set:function(e){this.fillFirstSegment=e}},{key:"setLastMuxRemainBufferInfo",value:function(e,t){this.lastMuxRemainBufferInfo={data:e,pos:t}}},{key:"initTransMuxWorker",value:function(){var e=this,t=this.options;if(this.enableWorker=t.enableWorker&&("h265"!==t.codecType||t.supportHevc),this.enableWorker&&"undefined"!=typeof Worker){try{this.workerSequence=0,this.transmuxerWorkerControl=new TransmuxerWorkerControl({id:this.workerSequence,codecType:t.codecType,supportHevc:this.options.supportHevc,openLog:openLog,memoryOpt:t.memoryOpt}),this.transmuxerWorkerControl.on("transmux",(function(t){var n=t.args,r=n.context;e.log(LogCacheLevel$1.LOG,"[transmuxerWorker end], range: ".concat(JSON.stringify(n.range)),"dataLen: ".concat(n.buffer.byteLength),JSON.stringify(n.context)),e.updateDemuxSampleIdxRange(null==r?void 0:r.videoSampleIdxRange,null==r?void 0:r.audioSampleIdxRange),e._loadSuccessCallBack&&e._loadSuccessCallBack(n)}))}catch(e){this.log(LogCacheLevel$1.ERROR,"Error in worker:",e),this.enableWorker=!1,this.transmuxerWorkerControl=null}this.enableWorker||(this.MP4Demuxer=null,this.FMP4Remuxer=null)}}},{key:"updateSecretKey",value:function(e,t,n,r){var i;this.useEME=e,!e&&t?(this.log(LogCacheLevel$1.LOG,"[updateSecretKey] ,force enableWorker"),this.options.enableWorker=!0,this.transmuxerWorkerControl||this.initTransMuxWorker()):!e&&r&&(this.keyValue=r),this.log(LogCacheLevel$1.LOG,"[updateSecretKey] ,useEME, ",e,",secretKey,",t,",decryptKey",n),null===(i=this.transmuxerWorkerControl)||void 0===i||i.updateValue({secretKey:t,decryptKey:n})}},{key:"updateLoadedDataDone",value:function(){this._loadedDataState=!0}},{key:"PCDNSwitchCnt",get:function(){return this._PCDNSwitchCnt}},{key:"updateLoadInfo",value:function(e,t){this.loadInfo||(this.loadInfo={}),this.loadInfo[e]||(this.loadInfo[e]={},this.loadInfo[e].loadLen=0),this.loadInfo[e].loadLen+=t}},{key:"updatePCDNState",value:(Q=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t){var n,r,i;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._PCDNState!==PCDN_STATE.FORBIDDEN&&this._PCDNState!==t&&this.log(LogCacheLevel$1.LOG,"[pcdn state update]",this._PCDNState," - ",t),t!==PCDN_STATE.FORBIDDEN){e.next=5;break}this._PCDNState=t,e.next=25;break;case 5:if(this._PCDNState===PCDN_STATE.FORBIDDEN||this._PCDNState===t){e.next=25;break}if(this._isUseCDN||t!==PCDN_STATE.CLOSE){e.next=23;break}if(this._PCDNState=t,!this.adaptTimeRange[this._curLoadSegIdx].downloaded&&!this._switchBitRate){e.next=11;break}return this.log(LogCacheLevel$1.LOG,"[pcdn] switch cdn ",this._curLoadSegIdx,"downloaded",",switchBitRate, ",this._switchBitRate),e.abrupt("return");case 11:return e.next=13,this.cancelLoading();case 13:return this.pSCCancelCnt++,n=this._curLoadSegIdx,this.log(LogCacheLevel$1.LOG,"[pcdn] cancelLoading ",n,"switch cdn load"),r=this.getFragRange(n),this._receiveDataPos&&this._receiveDataPos>=r[0]&&this._receiveDataPos<=r[1]&&(i=[this._receiveDataPos,r[1]],this.log(LogCacheLevel$1.LOG,"[pcdn] switch cdn, adjust range",n,JSON.stringify(i),",oldRange,","".concat(r[0]," - ").concat(r[1]))),this._receiveDataPos=-1,e.next=21,this.startLoad(i||r,n);case 21:e.next=24;break;case 23:this._PCDNState=t;case 24:this.log(LogCacheLevel$1.LOG,"[pcdn] openPCDN ",t);case 25:case"end":return e.stop()}}),e,this)}))),function(e){return Q.apply(this,arguments)})},{key:"updateNode",value:function(e){if(e&&e.length>0){var t=e.filter((function(e){if(!Object.prototype.hasOwnProperty.call(RETRY_INFO,util.getHostFromUrl(null==e?void 0:e.url)))return e}));this._pcdnNodeList=t}}},{key:"clearPCDNNodeList",value:function(){this.log(LogCacheLevel$1.LOG,"[pcdn] clearPCDNNodeList"),this._pcdnNodeList=[]}},{key:"isUpdateNode",get:function(){return!this._pcdnNodeList||!this._pcdnNodeList.length}},{key:"isUsePCDN",value:function(){var e;return this._PCDNState===PCDN_STATE.OPEN&&(null===(e=this._pcdnNodeList)||void 0===e?void 0:e.length)>0}},{key:"readyToChangeBitrate",value:function(e){this._switchBitRate=!0,this.changeBitrateInfo=e}},{key:"changeBitRate",value:(u=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(){var t;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((t=this.changeBitrateInfo).bitrate===this._bitRate){e.next=11;break}return this.updateUrl(t._mainURL,t._backupURL),this._bitRate=t.bitrate,this._receiveDataPos=-1,e.next=7,this.MP4Loader.changeUrl(this.url,"".concat(this.options.vid,"-").concat(this._bitRate),this.CHUNK_SIZE);case 7:this._pcdnNodeList=null,this.emit(MP4_EVENTS.CHANGE_URL,this.url),this._mediaEndTime=-1,this.log(LogCacheLevel$1.LOG,"[switchBitrate] changeUrl, bitRate,",this._bitRate,"url",this.url);case 11:case"end":return e.stop()}}),e,this)}))),function(){return u.apply(this,arguments)})},{key:"_getByPreload",value:function(e,t,n,r){try{if(e&&e.byteLength>=t){var i={endTime:(new Date).getTime(),startTime:(new Date).getTime(),index:r,range:[],vid:this.options.vid,from:"local"};if(n<=e.byteLength){var a=e.slice(t,n);return i.range=[t,n],i.state=!0,{buffer:a,context:i,state:!0}}var o=e.byteLength-1,l=e.slice(t,o);return i.range=[t,o],{context:i,buffer:l,state:!1}}return null}catch(e){return console.error("[MP4] _getByPreload",t,n,e),null}}},{key:"log",value:function(e,t){for(var n=this.options,r=n&&n.vid?"[MP4]".concat(this.logTag," ").concat(n.vid," ").concat(t):"[MP4]".concat(this.logTag," ").concat(t),i=arguments.length,a=new Array(i>2?i-2:0),o=2;o<i;o++)a[o-2]=arguments[o];log.apply(void 0,[this.logger,e,r].concat(a))}},{key:"errorHandler",value:(F=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t,n){var r,i,a,o,l,d,c,s,U,F,u,Q,R,h=arguments;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=h.length>2&&void 0!==h[2]?h[2]:{},i=t.response,a=t.message,o=t.headers,l=this.options?this.options.vid:"",d=null,this._isPending=!0,!i){e.next=38;break}if(d=new NetWorkError("network",i.status,{httpText:i.httpText,message:a,url:i.url,range:r.range,headers:o}),this.log(LogCacheLevel$1.LOG,"[MP4] [".concat(l,"] errorHandler error state:[").concat(n,"],\n _isPending:[").concat(this._isPending,"] "),null==i?void 0:i.status,a),!(1e3*(U=null===(c=this.getbufferTimeFunc)||void 0===c?void 0:c.call(this))>=this.options.timeout||(null===(s=this.backUrl)||void 0===s?void 0:s.length)>0)){e.next=32;break}if(!((null===(u=this.backUrl)||void 0===u?void 0:u.length)>0)){e.next=19;break}return F=this.backUrl.shift(),e.next=14,this.updateUrl(F,this.backUrl);case 14:if(this._isPending=!1,!this.MP4Loader){e.next=19;break}return e.next=18,this.MP4Loader.changeUrl(this.url,"".concat(this.url,"-").concat(this._bitRate),this.CHUNK_SIZE);case 18:this.emit(MP4_EVENTS.CHANGE_URL,this.url);case 19:if(this._isPending=!1,this.log(LogCacheLevel$1.LOG,"[".concat(l,"] errorHandler retry,backUrlLen:").concat(this.backUrl.length,", buffer:").concat(U,",").concat(F)),this.emit(MP4_EVENTS.TASK_PROGRESS,{type:"error",error:t}),"getMetaInfo"!==n){e.next=27;break}return this.getMetaInfo(),e.abrupt("return");case 27:if("loadFragment"!==n){e.next=32;break}if(Q=r.fragIndex,R=r.range,!(null!==Q&&Q>=0&&R)){e.next=32;break}return this.startLoad(R,Q),e.abrupt("return");case 32:d.context=r,d.response=i,this.log(LogCacheLevel$1.LOG,"errorHandler end, ".concat(JSON.stringify(r))),this.emit(MP4_EVENTS.ERROR,d,n),e.next=42;break;case 38:this.log(LogCacheLevel$1.LOG,"errorHandler other end, ".concat(n,",").concat(null==i?void 0:i.status,", ").concat(a)),(d=t).context=r,this.emit(MP4_EVENTS.ERROR,d,n);case 42:case"end":return e.stop()}}),e,this)}))),function(e,t){return F.apply(this,arguments)})},{key:"init",value:(U=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t){var n,r,i,a,o,l,d,c,s,U,F,u,Q,R,h,p,B;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t||(t={}),this.options.loadRangeType!==LOAD_RANGE_TYPE.SIZE||this.MP4Loader.url===this.url){e.next=4;break}return e.next=4,this.MP4Loader.changeUrl(this.url,"".concat(this.options.vid,"-").concat(this._bitRate),this.CHUNK_SIZE);case 4:if(this.emit(MP4_EVENTS.CHANGE_URL,this.url),this.meta=null,r=(n=t).meta,i=n.mediaSegList,a=n.buffer,o=n.fileSize,l=n.initSeg,d=n.bitrate,c=n.adaptTimeRange,s=n.repeatData,U=n.repeatDataStartPos,F=n.generateBy,!r||!r.ext){e.next=24;break}for(o&&(this.fileSize=o),this.meta=r,this.videoTrak=r.ext.videoTrak,this.audioTrak=r.ext.audioTrak,this._bitRate=d,this.timeRange=this.getTimeRange(),this.adaptTimeRange=util.ArrayCopy(c),i?(this.preloadCache={segList:i||[],initSeg:l},(null===(u=this.adaptTimeRange)||void 0===u?void 0:u.length)>0&&(null==s?void 0:s.byteLength)>0&&this.cacheRepeatData(this.adaptTimeRange[0].repeatRange,this.adaptTimeRange[0].repeatRange,s),U>0&&(null==s?void 0:s.byteLength)>0&&(this.lastMuxRemainBufferInfo={data:s,pos:U})):a&&(null===(Q=this.adaptTimeRange)||void 0===Q?void 0:Q.length)>0&&(null==a?void 0:a.byteLength)>0&&this.cacheRepeatData(this.adaptTimeRange[0].range,this.adaptTimeRange[0].range,a),"preloader"!==F&&(this.adaptTimeRange.map((function(e){e.downloaded=!1,e.isLoading=!1})),this.log(LogCacheLevel$1.LOG,"[mp4.init] reset adaptTimeRange")),R=0;R<(null===(h=this.adaptTimeRange)||void 0===h?void 0:h.length);R++)null===(p=this.updateTimeRangeInAdaptTimeRangeIdx)||void 0===p||p.call(this,this.adaptTimeRange[R].timeRangeIdx,R);B={meta:r,videoSegments:r.ext.videoTrak,audioSegments:r.ext.audioTrak,bufferLoaded:a||null},this.log(LogCacheLevel$1.LOG,"preloadCache init done, emit meta ready"),this._bitRateInfoMap.set(this._bitRate,B),this.emit(MP4_EVENTS.META_READY,this.meta,this),e.next=26;break;case 24:return e.next=26,this.getMetaInfo();case 26:case"end":return e.stop()}}),e,this)}))),function(e){return U.apply(this,arguments)})},{key:"getTimeRange",value:function(){for(var e,t=[],n=null,r=0;this.videoTrak&&r<this.videoTrak.length;r++){var i=this.videoTrak[r].startTime,a=this.videoTrak[r].endTime;n={startTime:i,endTime:a,duration:a-i,downloaded:!1,isLoading:!1},t.push(n)}if(this.audioTrak&&this.audioTrak.length>t.length)for(var o=t.length;o<this.audioTrak.length;o++){var l=Math.max(this.audioTrak[o].startTime,n?n.endTime:0),d=Math.max(this.audioTrak[o].endTime,n?n.endTime:0);n={startTime:l,endTime:d,duration:d-l,downloaded:!1,isLoading:!1},t.push(n)}return null!==(e=this.options)&&void 0!==e&&e.emitMediaListControl&&this._emitMediaList(t),t}},{key:"_emitMediaList",value:function(e){if(this.videoTrak||this.audioTrak){for(var t=[],n=0;n<e.length;n++){var r=e[n].startTime,i=this.getFragmentIdx(r),a=util.getFragRange(i,this.videoTrak,this.audioTrak);t.push(_objectSpread2$7(_objectSpread2$7({},e[n]),{},{range:a,url:this._addRangeToUrl(this.url,a)}))}this.emit(CUSTOM_EVENTS.MEDIA_LIST,t)}}},{key:"_addRangeToUrl",value:function(e,t){return this.options.isAddRange?util.extUrl(e,{range:"".concat(t[0],"-").concat(t[1])}):e}},{key:"emitResponseInfo",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(t&&!t.hasEmittedMseResponseInfo){t.hasEmittedMseResponseInfo=!0;var i=(null==n?void 0:n.priOptions)||{},a=Number(i.rtt),o=i.responseInfoStartTime||r.responseInfoStartTime,l=o?Math.max(0,Date.now()-o):0,d=i.range||r.range||(null==n?void 0:n.range);this.emit(MP4_EVENTS.RESPONSE_INFO,{requestType:e,loadType:i.type||r.loadType||LOAD_TYPE.CDN,url:t.url||r.url||(null==n?void 0:n.url)||this.url,status:t.status,headers:getAllHeaders(t.headers),rtt:Number.isFinite(a)&&a>=0?a:l,range:Array.isArray(d)?d.slice():d})}}},{key:"getMetaInfo",value:(s=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(){var t,n,r,i,a,o=this,l=arguments;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=!(l.length>0&&void 0!==l[0])||l[0],e.prev=1,n=-1,this.metaLoading=!0,this.log(LogCacheLevel$1.LOG,"getMetaInfo start, bitRate: ".concat(this._bitRate,", firstLoadSize: ").concat(this._firstLoadSize),"url: ".concat(this.MP4Loader.url)),this.resetRepeatInfo(),r=Date.now(),i=function(){var e=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(i,a,l,d,c){var s,U,F,u,Q,R,h;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!d){e.next=6;break}return e.next=3,o.cancelLoading();case 3:return U=new ParserError(ERROR_TYPES.DEMUX,ERROR_CODES.metaError,{msg:JSON.stringify(d)}),o.errorHandler(U,"getMetaInfo",{range:[0,o._firstLoadSize]}),e.abrupt("return");case 6:o.emitResponseInfo("meta",c,l,{range:[0,o._firstLoadSize],responseInfoStartTime:r}),F=(null==l||null===(s=l.priOptions)||void 0===s?void 0:s.type)||LOAD_TYPE.CDN,i&&(null!==(u=o.options)&&void 0!==u&&u.memoryOpt?n>0?(o.partCacheRepeatData(n),o.cacheRepeatData([n,o._firstLoadSize],l.range,i)):(o.resetRepeatInfo(),o.cacheRepeatData(l.range,l.range,i)):o.cacheRepeatData([0,o._firstLoadSize],l.range,i),!o._optionDataLenInfo[F]&&(o._optionDataLenInfo[F]=0),o._optionDataLenInfo[F]+=i.byteLength),l.meta&&!o.meta&&(R=l.meta,o.videoTrak=R.videoSegments,o.audioTrak=R.audioSegments,null!==(Q=o.options)&&void 0!==Q&&Q.memoryOpt&&(n=util.getFirstFrameStartRange(o.videoTrak,o.audioTrak)),o.fileSize=Number(getFileSizeFromHeaders(null==c?void 0:c.headers)),o.fileSize||(o.fileSize=util.getEndFramePos(o.videoTrak,o.audioTrak)),o.log(LogCacheLevel$1.LOG," getFirstFrameStartRange ".concat(n)),o.timeRange=o.getTimeRange(),o.meta=_objectSpread2$7(_objectSpread2$7({},R.meta),{},{ext:{videoTrak:o.videoTrak,audioTrak:o.audioTrak},fileSize:o.fileSize}),o._bitRateInfoMap.set(o._bitRate,_objectSpread2$7(_objectSpread2$7({},R),{},{fileSize:o.fileSize})),o.log(LogCacheLevel$1.LOG,"meta reach, bitRate,",o._bitRate,o.repeatInfo.curDataPos),t&&o.emit(MP4_EVENTS.META_READY,o.meta,o)),o.meta&&a&&(o.log(LogCacheLevel$1.LOG,"[getMetaInfo req end]",o.repeatInfo.curDataPos),o.metaLoading=!1),a&&(o._optionDataLenInfo[F]&&(o._optionDataLenInfo[F]=0),o.emit(MP4_EVENTS.META_REQ_DONE,o)),o._loadedDataState?(h=!1,o.repeatInfo.curDataPos-o.repeatInfo.usedPos>=o.options.afterLoadeddataCallBackLen&&(h=!0),o.meta&&(h||a)&&(o.log(LogCacheLevel$1.LOG,"emit moov_req_progress loadeddata after",JSON.stringify(l.range)),o.emit(MP4_EVENTS.MOOV_REQ_PROGRESS))):o.meta&&(i||a)&&(o.log(LogCacheLevel$1.LOG,"emit moov_req_progress loadeddata before",JSON.stringify(l.range)),o.emit(MP4_EVENTS.MOOV_REQ_PROGRESS));case 13:case"end":return e.stop()}}),e)})));return function(t,n,r,i,a){return e.apply(this,arguments)}}(),e.next=10,this.MP4Loader.loadMetaProcess(this.MP4Loader.cache,[0,this._firstLoadSize],i,{priOptions:{type:LOAD_TYPE.CDN,range:[0,this._firstLoadSize],responseInfoStartTime:r}});case 10:e.next=16;break;case 12:e.prev=12,e.t0=e.catch(1),this.log(LogCacheLevel$1.ERROR,"[MP4] trigger errorHandler getMetaInfo",null===e.t0||void 0===e.t0||null===(a=e.t0.response)||void 0===a?void 0:a.status,null===e.t0||void 0===e.t0?void 0:e.t0.message),this.loadError(e.t0,"getMetaInfo",!1,{url:e.t0.url||this.url,range:[0,this._firstLoadSize]});case 16:case"end":return e.stop()}}),e,this,[[1,12]])}))),function(){return s.apply(this,arguments)})},{key:"getFragmentIdx",value:function(e){var t,n;if(this.videoTrak.length){if(t=this.videoTrak.find((function(t){return t.startTime<=e&&t.endTime>e})),n=this.audioTrak.find((function(t){return t.startTime<=e&&t.endTime>e})),t&&n)return Math.min(t.index,n.index);if(t||n)return t?t.index:n.index;var r=Number.MAX_VALUE;return this.videoTrak&&this.videoTrak.length>0&&(r=this.videoTrak.length-1),this.audioTrak&&this.audioTrak.length>0&&(r=Math.min(this.audioTrak.length-1,r)),r}return n=this.audioTrak.find((function(t){return t.startTime<=e&&t.endTime>e})),n?n.index:0}},{key:"_checkHasMeta",value:(c=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(){var t,n,r,i,a,o,l,d;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this._bitRateInfoMap.get(this._bitRate)){e.next=20;break}return this.log(LogCacheLevel$1.LOG,"[switchBitrate], need load InitSegment, bitRate, ",this._bitRate),this.metaLoading=!0,e.next=6,this.MP4Loader.loadMeta(this.MP4Loader.cache,Math.round(this.CHUNK_SIZE/2));case 6:r=e.sent,this.log(LogCacheLevel$1.LOG,"[switchBitrate], loadMeta end, ",this._bitRate),this.metaLoading=!1,i=Number(getFileSizeFromHeaders(null==r||null===(n=r.responses)||void 0===n||null===(n=n[0])||void 0===n||null===(n=n.response)||void 0===n?void 0:n.headers)),this.fileSize=i,a=r.videoSegments,o=r.audioSegments,this.fileSize||(this.fileSize=util.getEndFramePos(a,o)),this.log(LogCacheLevel$1.LOG,"[switchBitrate], fileSize set , ",i),this.meta=_objectSpread2$7(_objectSpread2$7({},r.meta),{},{ext:{videoTrak:a,audioTrak:o},fileSize:this.fileSize}),(t=r).fileSize=this.fileSize,this._bitRateInfoMap.set(this._bitRate,r),e.next=22;break;case 20:this.log(LogCacheLevel$1.LOG,"[switchBitrate], not need load InitSegment, bitRate, ",this._bitRate),this.meta=t.meta;case 22:for(this.videoTrak=t.videoSegments,this.audioTrak=t.audioSegments,this.fileSize=t.fileSize,this.emit(MP4_EVENTS.UPDATE_EME,this.meta),this.emit(MP4_EVENTS.INIT_MSE,this.meta),this.timeRange=this.getTimeRange(),l=0;l<this.adaptTimeRange.length;l++)null===(d=this.updateTimeRangeInAdaptTimeRangeIdx)||void 0===d||d.call(this,this.adaptTimeRange[l].timeRangeIdx,l);return this._firstLoadSize=0,e.abrupt("return",!0);case 31:case"end":return e.stop()}}),e,this)}))),function(){return c.apply(this,arguments)})},{key:"load",value:(d=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t,n){var r,i,a,o,l,d,c,s,U,F,u;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._loadSuccessCallBack=n,!this._switchBitRate||this.metaLoading){e.next=29;break}if(this.log(LogCacheLevel$1.LOG,"[switchBitrate], switch bitRate start load, bitRate,",this._bitRate,", fragIndex,",t),this.fillGopDataInfo){e.next=29;break}return this.log(LogCacheLevel$1.LOG,"[switchBitrate] changeBitrate~~"),e.next=7,this.changeBitRate();case 7:return e.next=9,this._checkHasMeta();case 9:if(r=e.sent,!(this.changeBitRateTime>0)){e.next=26;break}if(this.resetFragmentLoadState(t,!0),this.resetRepeatInfo(),this.resetDemuxSampleIdx(this.changeBitRateTime),i=this.getFragmentIdx(this.changeBitRateTime),a=t,!((t=this.getAdaptIdxBySrcIdx(i))<0)){e.next=20;break}return this.log(LogCacheLevel$1.ERROR,"[switchBitrate] start new bitrate fragIndex error"),e.abrupt("return");case 20:a!==t&&this.resetFragmentLoadState(t),this._curLoadSegIdx=t,this.log(LogCacheLevel$1.LOG,"[switchBitrate], need update load fragIndex: ".concat(t,"/").concat(a),"stTime: ".concat(this.changeBitRateTime),"adaptTimeRange: ".concat(this.adaptTimeRange[t].startTime,"-").concat(this.adaptTimeRange[t].endTime)),this.emit(MP4_EVENTS.UPDATE_LOAD_IDX,t),this.seekTime=this.changeBitRateTime,this.changeBitRateTime=-1;case 26:this._needInitSegment=!0,this.resetTransmuxer(),r&&(this._switchBitRate=!1);case 29:if(this.fillGopDataInfo||!this._switchBitRate||!this.metaLoading){e.next=31;break}return e.abrupt("return");case 31:o=this.getFragRange(t),(l=this.getFragmentFromCache(t,o))&&this._needInitSegment&&!l.initSeg&&(l=null,this.log(LogCacheLevel$1.LOG,"[mp4.load] fragIndex ".concat(t,", Data In Cache but not has init, so not use cacheData"))),(this.seekTime<0||this.options.loadRangeType===LOAD_RANGE_TYPE.GOP)&&l?(d=l.muxSampleIdxRange,c=d.video,s=d.audio,this.lastDemuxSampleIdxRange.video=c,this.lastDemuxSampleIdxRange.audio=s,this.log(LogCacheLevel$1.LOG,"[mp4.load] fragIndex: ".concat(t," Data In Cache"),"needInit: ".concat(this._needInitSegment,", muxSampleIdxRange: ").concat(JSON.stringify(l.muxSampleIdxRange)),JSON.stringify(o)),this.adaptTimeRange[t].downloaded=!0,this.adaptTimeRange[t].isLoading=!0,this._needInitSegment=!1,this._loadSuccessCallBack&&this._loadSuccessCallBack(l)):(U=[o[0],o[1]],this.fillGopDataInfo&&o[0]<this.fillGopDataInfo.endRange&&(o[1]=this.fillGopDataInfo.endRange,this.log(LogCacheLevel$1.LOG,"[switchBitrate] fillGopDataInfo fix load range ~~")),this.log(LogCacheLevel$1.LOG,"loadFragment ".concat(t),"bitRate: ".concat(this._bitRate,", range: ").concat(JSON.stringify(o)),"fillGopDataInfo: ".concat(JSON.stringify(this.fillGopDataInfo),", srcRange: ").concat(U)),this.seekTime>=0?(u=this.getSubRange(t,this.seekTime,o),null===(F=this.resetDemuxSampleIdx)||void 0===F||F.call(this,this.seekTime,u),this.repeatInfo.usedPos=0,this.loadFragment(t,u),this.repeatInfo.curDataPos=0,this.seekTime=-1):this.loadFragment(t,o));case 35:case"end":return e.stop()}}),e,this)}))),function(e,t){return d.apply(this,arguments)})},{key:"getFragmentFromCache",value:function(e,t){var n=this.preloadCache;if(!n||!n.segList)return null;for(var r=-1,i=n.segList,a=n.initSeg,o=0;o<i.length;o++)if(i[o].index===e){r=o;break}if(r<0)return null;var l=i[r];if(l.range[1]>=t[1]){var d=[this.adaptTimeRange[e].startTime,this.adaptTimeRange[e].endTime];return{buffer:l.buffer,range:t,muxSampleIdxRange:l.muxSampleIdxRange,context:{range:t,fragIndex:e,state:!0,adaptTimeRange:[d[0],d[1]]},state:!0,initSeg:this._needInitSegment?a:void 0}}return null}},{key:"notVailRangeResError",value:(l=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t,n,r,i){var a;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i){e.next=3;break}return e.next=3,this.cancelLoading();case 3:a=(null==n?void 0:n.load_type)===LOAD_TYPE.PCDN,this.loadError({response:t,message:206!==(null==t?void 0:t.status)?"responseCode not 206":"datalen not match"},"loadFragment",a,{range:null==n?void 0:n.range,fragIndex:r});case 5:case"end":return e.stop()}}),e,this)}))),function(e,t,n,r){return l.apply(this,arguments)})},{key:"checkResPonse",value:function(e,t){if(e.hasCheck)return!0;e.hasCheck=!0;var n=t.range?t.range[1]-t.range[0]+1:-1,r=Number(getContentLengthFromHeader(e.headers));return!(206!==(null==e?void 0:e.status)||n>0&&r>0&&n!==r)||(this.log(LogCacheLevel$1.LOG,"[DataArrive] response code, ".concat(e.status,",\n contentLength: ").concat(r,",\n reqLen: ").concat(n)),!1)}},{key:"startMux",value:function(e,t,n,r){null!=e&&e.byteLength&&(!this._optionDataLenInfo[t]&&(this._optionDataLenInfo[t]=0),this._optionDataLenInfo[t]+=e.byteLength,this._receiveDataPos=null==n?void 0:n.range[1],this.cacheRepeatData(this.adaptTimeRange[n.index].repeatRange,n.range,e),this._mux(e,n.range[0],n.index,r))}},{key:"partCacheRepeatData",value:function(e){if(this.repeatInfo){var t=this.repeatInfo,n=t.curDataPos,r=t.startPos,i=t.usedPos;n<=0||r>e||r+n<r||e===r||(this.log(LogCacheLevel$1.LOG,"[partCacheRepeatData bebore],startPos: ".concat(r),",usedPos: ".concat(this.repeatInfo.usedPos),"curDataPos: ".concat(n)),this.repeatInfo.data.set(this.repeatInfo.data.subarray(e-r,r+n),0),this.repeatInfo.usedPos=Math.max(r+i-e,0),this.repeatInfo.curDataPos=r+n-e,this.repeatInfo.startPos=e,this.log(LogCacheLevel$1.LOG,"[partCacheRepeatData after],startPos: ".concat(this.repeatInfo.startPos),",usedPos: ".concat(this.repeatInfo.usedPos),"curDataPos: ".concat(this.repeatInfo.curDataPos)))}}},{key:"cacheRepeatData",value:function(e,t,n){var r;if(e&&null!=e&&e.length&&null!==(r=this.repeatInfo.data)&&void 0!==r&&r.byteLength&&!this.options.disableRepeatRange&&(this.repeatInfo.startPos<0&&t[0]+n.byteLength>=e[0]&&t[0]+n.byteLength<=e[1]+1&&(this.repeatInfo.startPos=e[0]),this.repeatInfo.startPos>=0&&t[0]+n.byteLength>=e[0]&&t[0]+n.byteLength<=e[1]+1)){var i=this.repeatInfo.startPos+this.repeatInfo.curDataPos-t[0];if(i<0)return;var a=n.subarray(i);if(this.repeatInfo.curDataPos+a.byteLength<this.repeatInfo.data.byteLength){try{this.repeatInfo.data.set(a,this.repeatInfo.curDataPos),this.repeatInfo.curDataPos+=a.byteLength}catch(e){}this.log(LogCacheLevel$1.LOG,"repeatInfo pos: ".concat(this.repeatInfo.startPos,"-").concat(this.repeatInfo.startPos+this.repeatInfo.curDataPos),"curAppendLen: ".concat(a.byteLength))}else try{var o=2*n.byteLength,l=Math.max(this.repeatInfo.data.byteLength+o,e[1]-e[0]+o),d=util.newUint8Array(l);if(!d)return;d.set(this.repeatInfo.data.slice(0,this.repeatInfo.curDataPos),0),d.set(a,this.repeatInfo.curDataPos),this.repeatInfo.curDataPos+=a.byteLength,delete this.repeatInfo.data,this.repeatInfo.data=d,this.log(LogCacheLevel$1.LOG,"exp repeatInfo pos: ".concat(this.repeatInfo.startPos,", curDataPos: ").concat(this.repeatInfo.curDataPos,", capacity: ").concat(l))}catch(e){console.error("repeat data cache new array failed")}}}},{key:"_mux",value:function(e,t,n,r){var i=this.getSamplesRange(n,"video"),a=this.getSamplesRange(n,"audio");if(this.log(LogCacheLevel$1.LOG,"mux sampleRange src",JSON.stringify(i),JSON.stringify(a)),this.fillFirstSegment&&(i[1]=1/0,a[1]=1/0),this.fillFirstSegment&&r&&(this.fillFirstSegment=!1),this.fillGopDataInfo){this.log(LogCacheLevel$1.LOG,"mux sampleRange, fillGopDataInfo",JSON.stringify(this.fillGopDataInfo));var o=this.fillGopDataInfo,l=o.endVFrameIdx,d=o.endAFrameIdx;l>=0&&(null==i?void 0:i[1])>l&&(null==i?void 0:i[0])<=l&&i[1]&&(i[1]=l),d>=0&&(null==a?void 0:a[1])>d&&(null==a?void 0:a[0])<=d&&a[1]&&(a[1]=d)}this.log(LogCacheLevel$1.LOG,"mux sampleRange,",JSON.stringify(i),JSON.stringify(a));var c=[t,t+e.byteLength];if(this.transmuxerWorkerControl){var s,U,F={range:c,state:r,fragIndex:n};this.log(LogCacheLevel$1.LOG,"[transmuxerWorker start] range: ".concat(JSON.stringify(c)),",dataLen: ".concat(e.byteLength),F);var u=null!==(s=this.lastMuxRemainBufferInfo)&&void 0!==s&&s.data?new Uint8Array(this.lastMuxRemainBufferInfo.data):null,Q=null===(U=this.lastMuxRemainBufferInfo)||void 0===U?void 0:U.pos;this.lastMuxRemainBufferInfo=null;var R=this.transmuxerWorkerHasTrak;this.transmuxerWorkerHasTrak||(this.transmuxerWorkerHasTrak=!0),this.transmuxerWorkerControl.transmux(this.workerSequence,e,t,i,a,this.meta.moov,this.useEME,this.secretKey,F,R?null:this.videoTrak,R?null:this.audioTrak,u,Q)}else{var h=this.options,p=h.memoryOpt,B=h.softDecode;try{var S,f,m;this.MP4Demuxer||(this.MP4Demuxer=new MP4Demuxer(this.videoTrak,this.audioTrak,null,{openLog:openLog,memoryOpt:p})),this.lastMuxRemainBufferInfo&&(this.MP4Demuxer.setLastRemainBufferInfo(this.lastMuxRemainBufferInfo.data,this.lastMuxRemainBufferInfo.pos),this.lastMuxRemainBufferInfo=null);var V=this.MP4Demuxer.demuxPart(e,t,i,a,this.meta.moov,this.useEME,this.keyValue);this.FMP4Remuxer||B||this.checkCodecH265()&&!this.options.supportHevc||(this.FMP4Remuxer=new FMP4Remuxer(this.MP4Demuxer.videoTrack,this.MP4Demuxer.audioTrack,{openLog:openLog}));var y=V.videoTrack,E=V.audioTrack,Z=V.lastRemainBufferInfo,b=null==y?void 0:y.samples,J=(null==b?void 0:b.length)>0?b[0].sampleOffset:-1,v=(null==b?void 0:b.length)>0?b[b.length-1].sampleOffset:-1,g=null==E?void 0:E.samples,T=(null==g?void 0:g.length)>0?g[0].sampleOffset:-1,W=(null==g?void 0:g.length)>0?g[g.length-1].sampleOffset:-1,k=this.meta.videoTimescale,N=(null==b?void 0:b.length)>0?b[0].dts/k:-1,C=(null==b?void 0:b.length)>0?b[b.length-1].dts/k:-1,I=r||(null==g?void 0:g.length)>0?null==V||null===(S=V.audioTrack)||void 0===S?void 0:S.startPts:-1,L=r||(null==g?void 0:g.length)>0?null==V||null===(f=V.audioTrack)||void 0===f?void 0:f.endPts:-1;if(this.log(LogCacheLevel$1.LOG,"[mux] ".concat(n),",videoTimeRange: ".concat(N,"-").concat(C),",videoSampleIdx: ".concat(J,"-").concat(v),",audioTimeRange: ".concat(I,"-").concat(L),",audioSampleIdx: ".concat(T,"-").concat(W),JSON.stringify(c),r),J>=0&&J!==(null==i?void 0:i[0])||T>=0&&T!==(null==a?void 0:a[0]))return void this.log(LogCacheLevel$1.LOG,"mux sample is not continue, so abandon");this.updateDemuxSampleIdxRange([J,v],[T,W]);var _,x=[Math.min.apply(Math,_toConsumableArray$5([N,I].filter((function(e){return-1!==e})))),Math.max.apply(Math,_toConsumableArray$5([C,L].filter((function(e){return-1!==e}))))];if(this.FMP4Remuxer){var D=this.FMP4Remuxer.remux(this._needInitSegment,{initMerge:!0,range:c});D.initSegment&&(this._needInitSegment=!1),_={buffer:util.concatData(D.audioSegment,D.videoSegment),range:c,state:r,context:{range:c,fragIndex:n,timeRange:x},initSeg:D.initSegment,lastRemainBufferInfo:Z,mp4:this}}else _={videoTrack:V.videoTrack,audioTrack:V.audioTrack,buffer:null,range:c,state:r,context:{range:c,fragIndex:n,timeRange:x},lastRemainBufferInfo:Z,mp4:this};(null==c?void 0:c[1])>=(null===(m=this.fillGopDataInfo)||void 0===m?void 0:m.endRange)&&(this.fillGopDataInfo=null,this.log(LogCacheLevel$1.LOG,"clear fillGopDataInfo")),this._loadSuccessCallBack&&this._loadSuccessCallBack(_)}catch(r){var G=null==r?void 0:r.message;this.log(LogCacheLevel$1.ERROR,"mux err:",G);var X=new ParserError(ERROR_TYPES.REMUX,ERROR_CODES.muxError,{msg:G});this.errorHandler(X,"mux",{fragIndex:n,range:[t,t+e.byteLength]})}}}},{key:"updateDemuxSampleIdxRange",value:function(e,t){(null==e?void 0:e[1])>=0&&(this.lastDemuxSampleIdxRange.video=e[1]),(null==t?void 0:t[1])>=0&&(this.lastDemuxSampleIdxRange.audio=t[1]),this.log(LogCacheLevel$1.LOG,"updateDemuxSampleIdxRange",JSON.stringify(this.lastDemuxSampleIdxRange))}},{key:"loadFragment",value:(o=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t,n){var r,i,a,o,l,d,c,s,U,F,u,Q,R,h,p,B,S;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._curLoadSegIdx=t,!this._isPending&&0!==(null==n?void 0:n[1])&&this.adaptTimeRange[t]&&!this.adaptTimeRange[t].isLoading&&0!==(null==n?void 0:n.length)){e.next=3;break}return e.abrupt("return");case 3:if(this.log(LogCacheLevel$1.LOG,"[MP4.loadFragment] fragIndex: ".concat(t),",range: ".concat(JSON.stringify(n),", len: ").concat(n[1]-n[0],","),"repeatInfo: ".concat(this.repeatInfo.startPos,"-").concat(this.repeatInfo.startPos+this.repeatInfo.curDataPos)),this._segmentToBitRateMap.set(t,this._bitRate),!(n.length>=2&&n[1]&&n[1]>0&&n[0]>=this.repeatInfo.startPos&&n[1]<this.repeatInfo.startPos+this.repeatInfo.curDataPos)){e.next=15;break}this.adaptTimeRange[t].isLoading=!0,r=Math.max(n[0],this.repeatInfo.startPos+this.repeatInfo.usedPos),i=new Uint8Array(this.repeatInfo.data.slice(r-this.repeatInfo.startPos,n[1]-this.repeatInfo.startPos+1)),this.log(LogCacheLevel$1.LOG,"[mp4.loadFragment] fragIndex: ".concat(t),"has all data: ".concat(r,", ").concat(n[1]),"repeatInfo: ".concat(this.repeatInfo.startPos,"-").concat(this.repeatInfo.startPos+this.repeatInfo.usedPos),"curDataPos: ".concat(this.repeatInfo.startPos+this.repeatInfo.curDataPos)),this.adaptTimeRange[t].downloaded=!0,this.metaLoading||0===this.repeatInfo.startPos?(this.repeatInfo.usedPos=0,this.log(LogCacheLevel$1.LOG,"[mp4.loadFragment] has all data set repeatInfo.usedPos = 0")):(a=this.adaptTimeRange[t].range[0]-this.repeatInfo.startPos,o=this.adaptTimeRange[t].range[1]+1-this.repeatInfo.startPos,l=new Uint8Array(this.repeatInfo.data.slice(a,o)),this.resetRepeatInfo(),this.cacheRepeatData(this.adaptTimeRange[t].repeatRange,this.adaptTimeRange[t].range,l)),this._mux(i,r,t,!0),e.next=42;break;case 15:if(!(n.length>=2&&n[0]&&n[0]>=this.repeatInfo.startPos&&n[0]<=this.repeatInfo.startPos+this.repeatInfo.curDataPos)){e.next=36;break}if(this.adaptTimeRange[t].isLoading){e.next=34;break}if(d=Math.max(n[0],this.repeatInfo.startPos+this.repeatInfo.usedPos),c=Math.min(n[1]+1,this.repeatInfo.startPos+this.repeatInfo.curDataPos),!((s=new Uint8Array(this.repeatInfo.data.slice(d-this.repeatInfo.startPos,c-this.repeatInfo.startPos))).byteLength>0)){e.next=26;break}return this.repeatInfo.usedPos=c-this.repeatInfo.startPos,this.log(LogCacheLevel$1.LOG,"[mp4.loadFragment] has part data: ",d,d+s.byteLength),this.log(LogCacheLevel$1.LOG,"[mp4.loadFragment] ","repeatInfo, pos: ".concat(this.repeatInfo.startPos,"-").concat(this.repeatInfo.startPos+this.repeatInfo.usedPos),",curDataPos: ".concat(this.repeatInfo.startPos+this.repeatInfo.curDataPos,", usedPos: ").concat(this.repeatInfo.usedPos)),this._mux(s,d,t,n[1]<=this.repeatInfo.startPos+this.repeatInfo.usedPos),e.abrupt("return");case 26:if(this.metaLoading||this.adaptTimeRange[t].isLoading){e.next=34;break}return this.log(LogCacheLevel$1.LOG,"[mp4.loadFragment] load part data >>> ",this.repeatInfo.startPos+this.repeatInfo.curDataPos,n[1]),this.adaptTimeRange[t].isLoading=!0,F=[this.repeatInfo.startPos+this.repeatInfo.usedPos,n[1]],(u=null===(U=this.adaptTimeRange[t])||void 0===U?void 0:U.repeatRange)&&u[0]<F[0]?(Q=[this.adaptTimeRange[t].repeatRange[0],F[0]],R=this.repeatInfo,h=R.startPos,p=R.curDataPos,B=R.data,S=B.slice(Q[0]-h,p),this.resetRepeatInfo(),this.cacheRepeatData(this.adaptTimeRange[t].repeatRange,Q,S)):this.resetRepeatInfo(),e.next=34,this.startLoad(F,t);case 34:e.next=42;break;case 36:if(this.metaLoading&&!(n[0]>this.repeatInfo.startPos)||this.adaptTimeRange[t].isLoading){e.next=42;break}return this.adaptTimeRange[t].isLoading=!0,this.log(LogCacheLevel$1.LOG,"[mp4.loadFragment] ready to load all data ,fragIdx: ".concat(t,", range: ").concat(n)),this.resetRepeatInfo(),e.next=42,this.startLoad(n,t);case 42:case"end":return e.stop()}}),e,this)}))),function(e,t){return o.apply(this,arguments)})},{key:"resetRepeatInfo",value:function(){this.log(LogCacheLevel$1.LOG,", resetRepeatInfo"),this.repeatInfo.startPos=-1,this.repeatInfo.curDataPos=0,this.repeatInfo.usedPos=0}},{key:"setSwitchPCDNCallBack",value:function(e){this._switchPCDNCallBack=e}},{key:"updateChangeBitRateTime",value:function(e){this.changeBitRateTime=e}},{key:"startLoad",value:(a=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(n,r){var i,a,o,l,d,c,s,U,F,u,Q,R=arguments;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=R.length>2&&void 0!==R[2]&&R[2],a=this.selectedPCDN(i),o=a||this.url,o=this._addRangeToUrl(o,n),this.log(LogCacheLevel$1.LOG,"[startLoad], ",r,JSON.stringify(n),o),e.prev=5,l=Date.now(),d={index:r,onProgress:this.onprogressDataArrive,onProcessMinLen:this.options.onProcessMinLen,url:o,priOptions:{type:a?LOAD_TYPE.PCDN:LOAD_TYPE.CDN,range:n,responseInfoStartTime:l}},a&&(d.headers={"X-Origin-Server-Host":this._domain}),e.next=11,this.MP4Loader.loadData(n,this.MP4Loader.cache,d);case 11:e.next=30;break;case 13:if(e.prev=13,e.t0=e.catch(5),s=(null===e.t0||void 0===e.t0||null===(c=e.t0.options)||void 0===c||null===(c=c.priOptions)||void 0===c?void 0:c.type)===LOAD_TYPE.PCDN||!!a,F=e.t0.url||(s?a:this.url),!s){e.next=28;break}return this.pcdnVVStat.conn_fail_num++,t.pcdn_download_failed_cnt++,U=this._pcdnNodeList.shift(),this.emit(MP4_EVENTS.REMOVE_PCDN_NODE,U),this.log(LogCacheLevel$1.ERROR,"pcdn load err, retry use cdn, fragIndex: ".concat(r),"range: ".concat(JSON.stringify(n),", err: ").concat(null===e.t0||void 0===e.t0?void 0:e.t0.message,", ").concat((null===e.t0||void 0===e.t0?void 0:e.t0.isTimeout)||(null===e.t0||void 0===e.t0||null===(u=e.t0.response)||void 0===u?void 0:u.status)),"url: ".concat(F)),e.next=26,this.startLoad(n,r,!0);case 26:e.next=29;break;case 28:this.log(LogCacheLevel$1.ERROR,"cdn load err, fragIndex: ".concat(r),"range: ".concat(JSON.stringify(n),", err: ").concat(null===e.t0||void 0===e.t0?void 0:e.t0.message,", ").concat((null===e.t0||void 0===e.t0?void 0:e.t0.isTimeout)||(null===e.t0||void 0===e.t0||null===(Q=e.t0.response)||void 0===Q?void 0:Q.status)),"url: ".concat(F));case 29:this.loadError(e.t0,"loadFragment",s,{range:n,fragIndex:r,url:F});case 30:case"end":return e.stop()}}),e,this,[[5,13]])}))),function(e,t){return a.apply(this,arguments)})},{key:"loadError",value:function(e,t,n,r){var i,a,o,l=e.response;!e.response&&(e.response={}),e.isTimeout?e.response.status=ERROR_CODES.timeout:null!=e&&null!==(i=e.response)&&void 0!==i&&i.status||(e.response.status=ERROR_CODES.networkError);var d=util.getHostFromUrl(null==r?void 0:r.url);this.markErrHost(d);var c=e.response.headers?transformHeaders(e.response.headers):null;c&&(e.headers=c),this.log(LogCacheLevel$1.ERROR,"load err, headers: ".concat(JSON.stringify(c),",\n errC: ").concat(null==e||null===(a=e.response)||void 0===a?void 0:a.status,",\n errM: ").concat(null==e?void 0:e.message)),this.emit(MP4_EVENTS.LOAD_ERROR,{src:null==r?void 0:r.url,host:d,errorCode:null==e||null===(o=e.response)||void 0===o?void 0:o.status,message:null==e?void 0:e.message,range:(null==r?void 0:r.range)&&JSON.stringify(r.range),headers:c}),l&&this.emitResponseInfo("getMetaInfo"===t?"meta":"fragment",l,e.options,r),n||this.errorHandler(e,t,r)}},{key:"loadAllFragmentData",value:(i=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(n,r,i){var a,o,l,d,c,s,U,F,u,Q,R,h,p,B,S,f,m,V=arguments;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=V.length>3&&void 0!==V[3]&&V[3],l=V.length>4&&void 0!==V[4]?V[4]:null,!this.hasDestroyed){e.next=4;break}return e.abrupt("return");case 4:return this.resetRepeatInfo(),d=l||(null===(a=this.adaptTimeRange[n])||void 0===a?void 0:a.range)||this.getFragRange(n),this._curLoadSegIdx=n,c=this.selectedPCDN(o),s=util.extUrl(c||this.url,_objectSpread2$7({__rand:(new Date).getTime()},this.options.reqParams)),e.prev=9,this.log(LogCacheLevel$1.LOG,"loadAllFragmentData before, index: ".concat(n),"range: ".concat(JSON.stringify(d)),"use-pcdn: ".concat(!!c)),U=Date.now(),F={index:n,url:s,priOptions:{type:c?LOAD_TYPE.PCDN:LOAD_TYPE.CDN,range:d,responseInfoStartTime:U}},c&&(F.headers={"X-Origin-Server-Host":this._domain}),e.next=16,this.MP4Loader.loadData(d,this.MP4Loader.cache,F);case 16:if(u=e.sent,this.log(LogCacheLevel$1.LOG,"loadAllFragmentData after, index: ".concat(n),"range: ".concat(JSON.stringify(d))),Q=u.options.priOptions,this.emitResponseInfo("fragment",null==u?void 0:u.response,null==u?void 0:u.options,{range:d,fragIndex:n,url:s}),this.checkResPonse(null==u?void 0:u.response,Q)){e.next=24;break}return this.notVailRangeResError(null==u?void 0:u.response,Q,null===(R=u.options)||void 0===R?void 0:R.index,!0),e.abrupt("return");case 24:if(this.log(LogCacheLevel$1.LOG,"loadAllFragmentData after, index: ".concat(n),"range: ".concat(JSON.stringify(d))),u&&u.data){e.next=29;break}return h=new Error("response null"),i?i(h):this.loadError(h,"loadFragment",!!c,{range:d,fragIndex:n,url:c||this.url}),e.abrupt("return");case 29:(p=u.data)&&d&&d.length>=2&&(null==p?void 0:p.byteLength)===d[1]-d[0]+1&&(this._receiveDataPos=d[0]+(null==p?void 0:p.byteLength),this._loadSuccessCallBack=r,this.adaptTimeRange[n].downloaded=!0,this.cacheRepeatData(this.adaptTimeRange[n].repeatRange,d,p),this._mux(p,d[0],n,!0)),e.next=46;break;case 33:if(e.prev=33,e.t0=e.catch(9),!(S=(null===e.t0||void 0===e.t0||null===(B=e.t0.options)||void 0===B||null===(B=B.priOptions)||void 0===B?void 0:B.type)===LOAD_TYPE.PCDN||!!c)){e.next=44;break}return t.pcdn_download_failed_cnt++,this._pcdnNodeList.shift(),this.log(LogCacheLevel$1.ERROR,"[loadAllFragmentData], pcdn load err, retry use cdn","fragIndex: ".concat(n,", ").concat((null===e.t0||void 0===e.t0?void 0:e.t0.isTimeout)||(null===e.t0||void 0===e.t0||null===(f=e.t0.response)||void 0===f?void 0:f.status),", ").concat(null===e.t0||void 0===e.t0?void 0:e.t0.message)),e.next=42,this.loadAllFragmentData(n,r,i,!0);case 42:e.next=45;break;case 44:this.log(LogCacheLevel$1.ERROR,"[MP4] loadAllFragmentData error: ".concat(JSON.stringify({fragIndex:n,range:d})),(null===e.t0||void 0===e.t0?void 0:e.t0.isTimeout)||(null===e.t0||void 0===e.t0||null===(m=e.t0.response)||void 0===m?void 0:m.status),null===e.t0||void 0===e.t0?void 0:e.t0.message);case 45:this.loadError(e.t0,"loadFragment",S,{range:d,fragIndex:n,url:e.t0.url||(S?c:this.url)});case 46:case"end":return e.stop()}}),e,this,[[9,33]])}))),function(e,t,n){return i.apply(this,arguments)})},{key:"currentLoadUseUrl",value:function(){return this._isUseCDN?this.url:(null===(e=this._pcdnNodeList)||void 0===e?void 0:e.length)>0?this._pcdnNodeList[0].url:"";var e}},{key:"getCurSwitchPCDNCnt",value:function(){return this._PCDNSwitchCnt}},{key:"selectedPCDN",value:function(e){if(this._PCDNState!==PCDN_STATE.FORBIDDEN&&!e){var n;if(this.isUsePCDN()){if(this._isUseCDN){if(this._switchPCDNCallBack){var r=this._switchPCDNCallBack();r>0&&(this.options.switchPCDNMaxCnt=r)}if(this._PCDNSwitchCnt>=this.options.switchPCDNMaxCnt)return this._isUseCDN=!0,this.log(LogCacheLevel$1.LOG,"cdn switch pcdn out limit, curSwitchCnt: ".concat(this._PCDNSwitchCnt,", maxCnt: ").concat(this.options.switchPCDNMaxCnt)),null;this._PCDNSwitchCnt++,this.log(LogCacheLevel$1.LOG,"cdn switch pcdn, curSwitchCnt: ".concat(this._PCDNSwitchCnt,", maxCnt: ").concat(this.options.switchPCDNMaxCnt))}this._isUseCDN=!1,n=util.extUrl(this._pcdnNodeList[0].url,_objectSpread2$7({__vid:this.options.vid},this.options.reqParams)),this._lastPCDNUrl!==n&&(this.emit(MP4_EVENTS.CHANGE_URL,n),this._lastPCDNUrl=n,this.pcdnVVStat.conn_req_num+=1),t.pcdn_download_request_cnt++}else this._isUseCDN||(this.log(LogCacheLevel$1.LOG,"pcdn switch cdn PCDNSwitchCnt: ".concat(this._PCDNSwitchCnt,", maxCnt: ").concat(this.options.switchPCDNMaxCnt)),this.pcdnVVStat.conn_jump_num+=1),this._isUseCDN=!0;return n}this._isUseCDN=!0}},{key:"cancelLoading",value:(r=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(){return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.MP4Loader){e.next=3;break}return e.next=3,this.MP4Loader.cancel();case 3:this._optionDataLenInfo[LOAD_TYPE.PCDN]&&this._optionDataLenInfo[LOAD_TYPE.PCDN]>0&&(this.emit(MP4_EVENTS.CANCEL_LOADED_LEN,{load_type:LOAD_TYPE.PCDN,len:this._optionDataLenInfo[LOAD_TYPE.PCDN]}),this._optionDataLenInfo[LOAD_TYPE.PCDN]=0),this._optionDataLenInfo[LOAD_TYPE.CDN]&&this._optionDataLenInfo[LOAD_TYPE.CDN]>0&&(this.emit(MP4_EVENTS.CANCEL_LOADED_LEN,{load_type:LOAD_TYPE.CDN,len:this._optionDataLenInfo[LOAD_TYPE.CDN]}),this._optionDataLenInfo[LOAD_TYPE.CDN]=0);case 5:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"updateUrl",value:function(e,t){var n=util.getHostFromUrl(e);this._defaultDomain||(this._defaultDomain=n),n.indexOf("www.")<0?this._domain=n:this._domain=this._defaultDomain,this.url=e,this.backUrl=t||[]}},{key:"getDataBitRate",value:function(e){return this._segmentToBitRateMap.get(e)}},{key:"checkCodecH265",value:function(){return this.meta&&(this.meta.videoCodec.indexOf("hvc1")>-1||this.meta.videoCodec.indexOf("hev1")>-1)}},{key:"checkCodecH266",value:function(){return this.meta&&this.meta.videoCodec.indexOf("bvc2")>-1}},{key:"destroy",value:(n=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(){return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.hasDestroyed){e.next=2;break}return e.abrupt("return");case 2:if(this.resetTransmuxer(),this.transmuxerWorkerControl&&this.transmuxerWorkerControl.destroy(),this.fileSize=0,this._isPending=!1,this.metaLoading=!1,this.resetRepeatInfo(),delete this.repeatInfo.data,this._bitRateInfoMap.clear(),this._segmentToBitRateMap.clear(),!this.MP4Loader){e.next=15;break}return e.next=14,this.MP4Loader.cancel();case 14:this.MP4Loader.destroy();case 15:this.removeAllListeners(),this.hasDestroyed=!0,this.pcdnVVStat=this.resetPcdnVVStat();case 18:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"resetPcdnVVStat",value:function(){return{try_req_node:0,req_node_succ:0,has_ret_node:0,conn_req_num:0,conn_fail_num:0,conn_jump_num:0}}},{key:"resetTransmuxer",value:function(){this.MP4Demuxer&&this.MP4Demuxer.reset(),this.MP4Demuxer=null,this.FMP4Remuxer&&this.FMP4Remuxer.reset(),this.FMP4Remuxer=null,this.transmuxerWorkerControl&&this.transmuxerWorkerControl.reset()}},{key:"getMediaEndTime",value:function(){if(this._mediaEndTime>0)return this._mediaEndTime;var e=this.videoTrak,t=this.audioTrak;if((null==e?void 0:e.length)>0){var n=e[e.length-1].endTime;this._mediaEndTime=this._mediaEndTime<0?n:Math.min(n,this._mediaEndTime)}if((null==t?void 0:t.length)>0){var r=t[t.length-1].endTime;this._mediaEndTime=this._mediaEndTime<0?r:Math.min(r,this._mediaEndTime)}return this._mediaEndTime}},{key:"checkIsLoadEnd",value:function(e){var t=this.videoTrak,n=this.audioTrak;if(!t&&!n)return!1;var r=0,i=0;if((null==t?void 0:t.length)>0){var a=t[t.length-1].range;(null==a?void 0:a.length)>0&&(r=a[1])}if((null==n?void 0:n.length)>0){var o=n[n.length-1].range;(null==o?void 0:o.length)>0&&(i=o[1])}return e>=Math.max(r,i)}}],[{key:"pcdnDownLoadReqCnt",get:function(){var e=t.pcdn_download_request_cnt,n=t.pcdn_download_failed_cnt;return t.pcdn_download_request_cnt=0,t.pcdn_download_failed_cnt=0,{pcdn_download_request_cnt:e,pcdn_download_failed_cnt:n}}},{key:"getDefaultConfig",value:function(){return{onProcessMinLen:1024,xhrSetup:null,chunkSize:8e5,isCache:!1,playerId:"",vid:"",afterLoadeddataCallBackLen:0,ext:{}}}}]);var n,r,i,a,o,l,d,c,s,U,F,u,Q}();_defineProperty$9(MP4_BASE,"pcdn_download_request_cnt",0),_defineProperty$9(MP4_BASE,"pcdn_download_failed_cnt",0);var MP4_GOP=function(e){function t(e,n,r,i,a){var o;return _classCallCheck$a(this,t),(o=_callSuper$3(this,t,[e,n,r,i,a])).logTag="".concat(a,"_").concat(LOAD_RANGE_TYPE.GOP)||"",o.lastDemuxSampleIdxRange.video=-1,o.lastDemuxSampleIdxRange.audio=-1,o.adaptTimeRange=[],o}return _inherits$8(t,MP4_BASE),_createClass$a(t,[{key:"updateAdaptTimeRange",value:function(e,t){this.adaptTimeRange||(this.adaptTimeRange=[]),this.lastTargetDur=t;var n=this.adaptTimeRange;null===e&&(e=n.length>0?n[n.length-1].timeRangeIdx[1]:0);for(var r=0;r<(null==n?void 0:n.length);r++){var i=n[r].timeRangeIdx;if(e>=i[0]&&e<i[1])return this.log(LogCacheLevel$1.LOG,"has adaptTimeRange,startSrcIdx: ".concat(e,", adaptTimeRangeIdx: ").concat(r,", dur: ").concat(t),JSON.stringify(n[r])),r}var a=n.length>0?n[n.length-1].timeRangeIdx[1]:0;if(a>=this.timeRange.length)return n.length-1;for(;a<e;){var o=this.timeRange[a].startTime,l=this.timeRange[a].endTime,d={startTime:o,endTime:l,timeRangeIdx:[a,a+1],duration:l-o,downloaded:!1,isLoading:!1};this.adaptTimeRange.push(d),this.updateTimeRangeInAdaptTimeRangeIdx(d.timeRangeIdx,this.adaptTimeRange.length-1),this.log(LogCacheLevel$1.LOG,"gap adaptTimeRange,adaptTimeRangeIdx: ".concat(this.adaptTimeRange.length-1),JSON.stringify(d)),a++}for(var c=0,s=a,U=a;U<this.timeRange.length;U++){if(!(c<t)){s=U;break}c+=this.timeRange[U].endTime-this.timeRange[U].startTime}U===this.timeRange.length&&(s=this.timeRange.length);var F=[a,s],u=this.timeRange[F[0]].startTime,Q=F[1]===this.timeRange.length?this.timeRange[F[1]-1].endTime:this.timeRange[F[1]].startTime,R={startTime:u,endTime:Q,timeRangeIdx:F,duration:Q-u,downloaded:!1,isLoading:!1};return this.log(LogCacheLevel$1.LOG,"update adaptTimeRange,startIdx,",F[0],", dur,",t,JSON.stringify(R)),this.adaptTimeRange.push(R),this.updateTimeRangeInAdaptTimeRangeIdx(F,this.adaptTimeRange.length-1),this.adaptTimeRange.length-1}},{key:"updateTimeRangeInAdaptTimeRangeIdx",value:function(e,t){if(null!=e&&e.length)for(var n=e[0];n<e[1];n++)n<this.timeRange.length&&(this.timeRange[n].adaptTimeRangeIdx=t)}},{key:"getAdaptIdxBySrcIdx",value:function(e,t){var n,r=this.adaptTimeRange.length;if(!t&&e>=(null===(n=this.adaptTimeRange[r-1])||void 0===n?void 0:n.timeRangeIdx[1])){var i=this.lastTargetDur||5;this.updateAdaptTimeRange(e,i)}for(var a=0;a<this.adaptTimeRange.length;a++){var o=this.adaptTimeRange[a].timeRangeIdx;if(o&&e>=o[0]&&e<o[1])return a}return this.adaptTimeRange.length-1}},{key:"getFragmentIdx",value:function(e){var t,n,r,i;if(null!==(t=this.videoTrak)&&void 0!==t&&t.length){var a;if(n=this.videoTrak.find((function(t){return t.startTime<=e&&t.endTime>e})),r=null===(a=this.audioTrak)||void 0===a?void 0:a.find((function(t){return t.startTime<=e&&t.endTime>e})),n&&r)return Math.min(n.index,r.index);if(n||r)return n?n.index:r.index;var o=Number.MAX_VALUE;return this.videoTrak.length>0&&(o=this.videoTrak.length-1),this.audioTrak&&this.audioTrak.length>0&&(o=Math.min(this.audioTrak.length-1,o)),o}return r=null===(i=this.audioTrak)||void 0===i?void 0:i.find((function(t){return t.startTime<=e&&t.endTime>e})),r?r.index:0}},{key:"resetFragmentLoadState",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.log(LogCacheLevel$1.LOG,", resetFragmentLoadState, fragIndex, ",e,",changeBitrate,",t);var n=this.adaptTimeRange.length;t&&(this.adaptTimeRange.splice(e+1,n-e-1),n=this.adaptTimeRange.length);for(var r=0;r<n;r++)if(r<e?(this.adaptTimeRange[r].downloaded=!0,this.adaptTimeRange[r].isLoading=!0):(this.adaptTimeRange[r].downloaded=!1,this.adaptTimeRange[r].isLoading=!1),t){this.adaptTimeRange[r].range=null;var i=this.adaptTimeRange[r].timeRangeIdx;if(i[0]>=this.timeRange.length){this.log(LogCacheLevel$1.WARN,"fix adaptTimeRange fragIndex ".concat(e)," ,timeRangeIdx[0] >= this.timeRange.length, so end",i[0],this.timeRange.length,",endFragment,",r),this.adaptTimeRange=this.adaptTimeRange.slice(0,r);break}i[1]>=this.timeRange.length&&(this.log(LogCacheLevel$1.WARN,"fix adaptTimeRange fragIndex",e," ,timeRangeIdx[1],",i[1],">>>>",this.timeRange.length,",endFragment,",r),i[1]=this.timeRange.length,this.adaptTimeRange=this.adaptTimeRange.slice(0,r+1)),this.adaptTimeRange[r].startTime=this.timeRange[i[0]].startTime,this.adaptTimeRange[r].endTime=i[1]>=this.timeRange.length?this.timeRange[this.timeRange.length-1].endTime:this.timeRange[i[1]].startTime,this.adaptTimeRange[r].range=this.getFragRange(r)}}},{key:"calculateRange",value:function(e){var t,n,r,i,a=null,o=null,l=null,d=null,c=e<this.adaptTimeRange.length?this.adaptTimeRange[e].timeRangeIdx:null;if(c){var s=c[0],U=c[1];this.log(LogCacheLevel$1.LOG,"getFragRange, timeRangeIdx,",JSON.stringify(c));var F=this.videoTrak;F&&(a=s<F.length?F[s]:F[F.length-1],o=U<F.length?F[U-1]:F[F.length-1]);var u=this.audioTrak;u&&(l=s<u.length?u[s]:u[u.length-1],d=U<u.length?u[U-1]:u[u.length-1]);var Q=[Math.min((null===(t=a)||void 0===t?void 0:t.range[0])||1/0,(null===(n=l)||void 0===n?void 0:n.range[0])||1/0),Math.max.apply(Math,_toConsumableArray$5([null===(r=o)||void 0===r?void 0:r.range[1],null===(i=d)||void 0===i?void 0:i.range[1]].filter((function(e){return"number"==typeof e}))).concat([0]))];return this.log(LogCacheLevel$1.LOG,"calculateRange",e,Q[0],"-",Q[1]),Q}this.log(LogCacheLevel$1.WARN,"calculateRange err",e,JSON.stringify(this.adaptTimeRange))}},{key:"getTimeRangeByIdx",value:function(e){var t,n,r,i=null,a=this.videoTrak;a&&(i=e<a.length?a[e]:a[a.length-1]);var o=null,l=this.audioTrak;return l&&(o=e<l.length?l[e]:l[l.length-1]),[Math.min((null===(t=i)||void 0===t?void 0:t.range[0])||1/0,(null===(n=o)||void 0===n?void 0:n.range[0])||1/0),Math.max(i?i.range[1]-1:0,o?(null===(r=o)||void 0===r?void 0:r.range[1])-1:0)]}},{key:"getFragRange",value:function(e){var t;if(e<this.adaptTimeRange.length&&null!==(t=this.adaptTimeRange[e])&&void 0!==t&&t.range)return this.log(LogCacheLevel$1.LOG,"getFragRange exist",e,JSON.stringify(this.adaptTimeRange[e].range)),this.adaptTimeRange[e].range;var n=this.calculateRange(e);if(n&&e<this.adaptTimeRange.length){this.adaptTimeRange[e].range=n;var r=this.adaptTimeRange[e].timeRangeIdx[1];if(r<this.timeRange.length){var i=this.getTimeRangeByIdx(r);(null==i?void 0:i.length)>1&&i[0]<i[1]&&n[1]>i[0]&&(this.adaptTimeRange[e].repeatRange=[i[0],n[1]])}}return n}},{key:"getSubRange",value:function(e,t,n){for(var r=this.adaptTimeRange[e].timeRangeIdx,i=r[0],a=r[0];a<r[1];a++)if(t>=this.timeRange[a].startTime&&t<this.timeRange[a].endTime){i=a;break}var o=[this.getSrcFragRange(i)[0],n[1]];return this.log(LogCacheLevel$1.LOG,">>>>>getSubRange finalRange ",JSON.stringify(o),",oldRange,",JSON.stringify(n)),o}},{key:"getSrcFragRange",value:function(e){var t,n,r,i=null,a=null;this.log(LogCacheLevel$1.LOG,"getFragRange, timeRangeIdx, srcFragment,",JSON.stringify(e));var o=this.videoTrak;o&&o.length>0&&(i=e<o.length?o[e]:o[o.length-1]);var l=this.audioTrak;l&&l.length>0&&(a=e<l.length?l[e]:l[l.length-1]);var d=[Math.min((null===(t=i)||void 0===t?void 0:t.range[0])||1/0,(null===(n=a)||void 0===n?void 0:n.range[0])||1/0),Math.max(i&&(null===(r=i)||void 0===r?void 0:r.range[1])-1||0,a&&a.range[1]-1||0)];return this.log(LogCacheLevel$1.LOG,",getSrcFragRange",e,d),d}},{key:"getSamplesRange",value:function(e,t){var n=[],r="video"===t?this.videoTrak:this.audioTrak,i=this.lastDemuxSampleIdxRange[t],a=this.adaptTimeRange[e].timeRangeIdx;if(r&&r.length>0){n.push(i+1);var o=a[1]-1,l=r.length,d=o<l?r[o].frames:r[l-1].frames;n.push(d[d.length-1].index)}return n}},{key:"resetDemuxSampleIdx",value:function(e){if(e){var t=this.videoTrak,n=this.audioTrak;if(t){var r=t.find((function(t){return t.startTime<=e&&t.endTime>e}));if(r){var i=r.frames;this.lastDemuxSampleIdxRange.video=i[0].index-1}}if(n){var a=n.find((function(t){return t.startTime<=e&&t.endTime>e}));if(a){var o=a.frames;this.lastDemuxSampleIdxRange.audio=o[0].index-1}}}else this.lastDemuxSampleIdxRange={video:-1,audio:-1};this.log(LogCacheLevel$1.LOG,"resetDemuxSampleIdx",JSON.stringify(this.lastDemuxSampleIdxRange))}}])}(),MP4_SIZE=function(e){function t(e,n,r,i,a){var o;return _classCallCheck$a(this,t),(o=_callSuper$3(this,t,[e,n,r,i,a])).logTag="".concat(a,"_").concat(LOAD_RANGE_TYPE.SIZE)||"",o.fillGopDataInfo=null,o}return _inherits$8(t,MP4_BASE),_createClass$a(t,[{key:"updateAdaptTimeRange",value:function(e,t){this.lastTargetDur=t,this.adaptTimeRange||(this.adaptTimeRange=[]);var n=this.adaptTimeRange,r=this.timeRange;if(null!==e&&e>=0){var i=this.getAdaptIdxBySrcIdx(e,!0);if(null!==i&&i>=0)return this.log(LogCacheLevel$1.LOG," adaptTimeRange find range of timeRange,timeRangeIdx,",e,JSON.stringify(r[e])," ,addaptIdx,",i,JSON.stringify(n[i])),i}this.fillAdadptTimeRange(e,t);var a=this.createAdaptTimeRange(t);return a&&(n.push(a),this.log(LogCacheLevel$1.LOG,"update adaptTimeRange,startIdx",this.adaptTimeRange.length-1,JSON.stringify(a))),this.adaptTimeRange.length-1}},{key:"fillAdadptTimeRange",value:function(e,t){var n=this.adaptTimeRange,r=this.timeRange;if(null!==e&&e>=0){var i,a;null!==(i=r[e])&&void 0!==i&&i.range||(r[e].range=this.calculateRange(e),this.log(LogCacheLevel$1.LOG,"adaptTimeRange update timeRange.range ,fragmentIdx",e,JSON.stringify(r[e])));for(var o=null===(a=n[n.length-1])||void 0===a?void 0:a.range,l=(null==o?void 0:o[1])||0;l<(null===(d=r[e])||void 0===d?void 0:d.range[0]);){var d,c=this.createAdaptTimeRange(t);if(c){var s;if((null==c?void 0:c.range[1])>=(null===(s=r[e])||void 0===s?void 0:s.range[0])){this.log(LogCacheLevel$1.LOG,"gap adaptTimeRange ignore,adaptTimeRangeIdx",JSON.stringify(c));break}n.push(c);var U=n.length;n[U-1].isLoading=!0,n[U-1].downloaded=!0,l=n[n.length-1].range[1],this.log(LogCacheLevel$1.LOG,"gap adaptTimeRange,adaptTimeRangeIdx",this.adaptTimeRange.length-1,JSON.stringify(c))}}}}},{key:"calculateSize",value:function(e){var t,n,r,i=this.adaptTimeRange,a=this.timeRange,o=this.videoTrak,l=this.audioTrak;null!==(t=a[0])&&void 0!==t&&t.range||(a[0].range=this.calculateRange(0));var d=(null==i?void 0:i.length)||0,c=d>0&&i[d-1].range?i[i.length-1].range[1]:a[0].range[0],s=null;o&&o.length>0&&(s=this.getEndFrame("video",e));var U=null===(n=s)||void 0===n?void 0:n.endFrame,F=null;l&&l.length>0&&(F=this.getEndFrame("audio",e));var u,Q,R,h,p,B=null===(r=F)||void 0===r?void 0:r.endFrame;if(U&&B){var S,f,m=U.offset+U.size,V=B.offset+B.size;if(m>V)(u=this.getFrameByPos("audio",null===(S=F)||void 0===S?void 0:S.newSegmentIdx,B.index,m))&&(B=u);else(u=this.getFrameByPos("video",null===(f=s)||void 0===f?void 0:f.newSegmentIdx,U.index,V))&&(U=u)}return U&&B?{endAudioFrame:B,endVideoFrame:U,segmentIdx:Math.min(null===(Q=s)||void 0===Q?void 0:Q.newSegmentIdx,null===(R=F)||void 0===R?void 0:R.newSegmentIdx),size:Math.max(U.offset+U.size,B.offset+B.size)-c}:U?{segmentIdx:null===(h=s)||void 0===h?void 0:h.newSegmentIdx,size:U.offset+U.size-c,endVideoFrame:U}:B?{segmentIdx:null===(p=F)||void 0===p?void 0:p.newSegmentIdx,endAudioFrame:B,size:B.offset+B.size-c}:void 0}},{key:"getFrameByPos",value:function(e,t,n,r){var i,a,o,l="video"===e?this.videoTrak:this.audioTrak;if(null==l||!l.length)return null;for(var d=!1,c=n+1,s=t;s<l.length;s++){for(var U,F,u=(null===(F=i=(null===(U=l[s])||void 0===U?void 0:U.frames)||[])||void 0===F||null===(F=F[0])||void 0===F?void 0:F.index)||0;c<=i[i.length-1].index;c++){if(!((a=i[c-u]).offset+a.size<=r)){d=!0;break}o=a}if(d)break}return o}},{key:"getEndFrame",value:function(e,t){var n,r,i,a,o;if("video"===e?(a=this.videoTrak,o=t*this.meta.videoTimescale):(a=this.audioTrak,o=t*this.meta.audioTimescale),null===(n=a)||void 0===n||!n.length)return null;for(var l=this.adaptTimeRange,d=null,c=-1,s=(null==l?void 0:l.length)>0?l[l.length-1]:null,U=(null===(r="video"===e?null==s?void 0:s.endVideoFrame:null==s?void 0:s.endAudioFrame)||void 0===r?void 0:r.index)||0,F=(null==s?void 0:s.segmentIdx)||0,u=Math.round(o/a[0].frames[0].duration),Q=F;Q<a.length;Q++){var R=a[Q].frames;if((null==R?void 0:R.length)>0&&(R[R.length-1].index-U>=u||Q===a.length-1)){var h=a[a.length-1].frames;d=R[Math.min(h[h.length-1].index,U+u)-R[0].index],c=c<0?Q:Math.min(c,Q);break}}return this.log(LogCacheLevel$1.LOG,"calculateSize, ".concat(e,", frameNum, ").concat(u,", \n idx: ").concat(U," - ").concat(null===(i=d)||void 0===i?void 0:i.index)),{newSegmentIdx:c,endFrame:d}}},{key:"createAdaptTimeRange",value:function(e,t){var n,r,i,a=this.calculateSize(e,t),o=a.size-1;if(this.log(LogCacheLevel$1.LOG,"createAdaptTimeRange, \n mergeDuration: ".concat(e," \n adaptIdx:").concat(t," \n loadSize:").concat(o)),0!==o){var l=this.adaptTimeRange,d=!t||t<=0?l.length-1:t-1,c=d>=0?l[d]:null,s=(null==c||null===(n=c.range)||void 0===n?void 0:n[1])+1||this.timeRange[0].range[0];if(s>=this.fileSize)return null;var U=Math.min(s+o-1,this.fileSize-1);return{startTime:(null==c?void 0:c.endTime)||this.timeRange[0].startTime,endTime:Math.min(null!=a&&null!==(r=a.endVideoFrame)&&void 0!==r&&r.pts?a.endVideoFrame.pts/this.meta.videoTimescale:Number.MAX_VALUE,null!=a&&null!==(i=a.endAudioFrame)&&void 0!==i&&i.pts?a.endAudioFrame.pts/this.meta.audioTimescale:Number.MAX_VALUE),range:[s,U],duration:e,downloaded:!1,isLoading:!1,endAudioFrame:a.endAudioFrame,endVideoFrame:a.endVideoFrame,segmentIdx:a.segmentIdx}}}},{key:"getCurLoadSize",value:function(e){(!e||e<=0)&&(e=5);var t=Math.floor(this._bitRate/8||this.fileSize/this.meta.duration);return Math.ceil(e*t)}},{key:"getFragRange",value:function(e){var t,n=this.adaptTimeRange;if(e<n.length&&null!==(t=n[e])&&void 0!==t&&t.range)return this.log(LogCacheLevel$1.LOG,"getFragRange exist",e,JSON.stringify(n[e].range)),n[e].range;var r=this.updateAdaptTimeRange(null,n[e].duration);return this.adaptTimeRange[r].range}},{key:"getSamplesRange",value:function(e,t){var n=[],r="video"===t?this.videoTrak:this.audioTrak;if(null==r||!r.length)return n;var i=this.lastDemuxSampleIdxRange[t],a=this.adaptTimeRange[e],o=("video"===t?a.endVideoFrame:a.endAudioFrame).index;return n.push(i+1,o),n}},{key:"getAdaptIdxBySrcIdx",value:function(e,t){var n=this.adaptTimeRange,r=this.timeRange;if(null==n||!n.length||null==r||!r.length)return-1;var i=n.length;if(t)return this.getAdaptIdx(e);var a=this.getAdaptIdx(e);if(a>=0)return this.log(LogCacheLevel$1.LOG,",getAdaptIdxBySrcIdx, fragIndex, ",e,",adaptIdx,",a),a;if(n[i-1].range[1]<this.fileSize-1)for(;(null===(o=r[e].range)||void 0===o?void 0:o[1])>=(null===(l=n[n.length-1].range)||void 0===l?void 0:l[1]);){var o,l;this.updateAdaptTimeRange(e,this.lastTargetDur||5);var d=this.getAdaptIdx(e);if(d>0)return this.log(LogCacheLevel$1.LOG,"new make, getAdaptIdxBySrcIdx, fragIndex, ",e,",adaptIdx,",a),d}return this.adaptTimeRange.length-1}},{key:"getAdaptIdx",value:function(e){var t,n=this.adaptTimeRange,r=this.timeRange,i=null===(t=r[e])||void 0===t?void 0:t.range;i||(i=util.getFragRange(e,this.videoTrak,this.audioTrak),r[e].range=i,this.log(LogCacheLevel$1.LOG,",updateTimeRange.range, fragIndex, ",e,JSON.stringify(r[e])));var a=n.findIndex((function(e){var t,n;return(null==e?void 0:e.range[0])<=(null===(t=i)||void 0===t?void 0:t[0])&&(null==e?void 0:e.range[1])>=(null===(n=i)||void 0===n?void 0:n[0])}));return this.log(LogCacheLevel$1.LOG,",getAdaptIdx, srcIdx, ",e,JSON.stringify(r[e]),", adaptIdx,",JSON.stringify(n[a])),a}},{key:"resetFragmentLoadState",value:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.log(LogCacheLevel$1.LOG,", resetFragmentLoadState, fragIndex, ",e,",changeBitrate,",n),n){var r=this.adaptTimeRange.length;this.adaptTimeRange.splice(e+1,r-e-1),t=this.adaptTimeRange.map((function(e){return e.duration})),this.adaptTimeRange=[]}else t=this.adaptTimeRange;for(var i=this.adaptTimeRange,a=0;a<t.length;a++)if(i[a]&&(a<e?(i[a].downloaded=!0,i[a].isLoading=!0):(i[a].downloaded=!1,i[a].isLoading=!1)),n){var o=this.createAdaptTimeRange(t[a],a);o&&(a<e&&(o.downloaded=!0,o.isLoading=!0),this.adaptTimeRange.push(o))}}},{key:"getSubRange",value:function(e,t,n){var r,i,a=this.adaptTimeRange,o=this.timeRange,l=null===(r=a[e])||void 0===r?void 0:r.range,d=this.getFragmentIdx(t);null!==(i=o[d])&&void 0!==i&&i.range||(o[d].range=this.calculateRange(d));var c=[o[d].range[0],l[1]];return this.log(LogCacheLevel$1.LOG,">>>>>getSubRange finalRange ",JSON.stringify(c),",oldRange,",JSON.stringify(n),",adaptIdx,",e,",srcFragIndex,",d,JSON.stringify(o[d])),c}},{key:"resetDemuxSampleIdx",value:function(e){if(e){var t=this.videoTrak,n=this.audioTrak;if((null==t?void 0:t.length)>0){var r=t.find((function(t){return t.startTime<=e&&t.endTime>e}));if(r){var i=r.frames;this.lastDemuxSampleIdxRange.video=i[0].index-1}}if((null==n?void 0:n.length)>0){var a=n.find((function(t){return t.startTime<=e&&t.endTime>e}));if(a){var o=a.frames;this.lastDemuxSampleIdxRange.audio=o[0].index-1}}}else this.lastDemuxSampleIdxRange={video:-1,audio:-1};this.log(LogCacheLevel$1.LOG,"resetDemuxSampleIdx",JSON.stringify(this.lastDemuxSampleIdxRange))}},{key:"calculateRange",value:function(e){return util.getFragRange(e,this.videoTrak,this.audioTrak)}},{key:"fillGopData",value:function(e){var t=-1,n=-1,r=-1;if(this.videoTrak.length){var i=this.getEndFrameByTime("video",e);t=(null==i?void 0:i.index)||-1,r=i.offset+i.size;var a=this.getEndFrameByTime("audio",e);n=(null==a?void 0:a.index)||-1,r=Math.max(r,a.offset+a.size)}else{var o=this.getEndFrameByTime("audio",e);n=(null==o?void 0:o.index)||-1,r=o.offset+o.size}this.fillGopDataInfo={endVFrameIdx:t,endAFrameIdx:n,endRange:r},this.log(LogCacheLevel$1.LOG,"fillGopDataInfo: ".concat(t,", ").concat(n,", ").concat(r))}},{key:"getEndFrameByTime",value:function(e,t){var n="video"===e?this.videoTrak:this.audioTrak;if(n){var r=n.find((function(e){return e.startTime<=t&&e.endTime>t}));if(r)return r.frames[r.frames.length-1]}}}])}(),ArrayBufferViewCore=arrayBufferViewCore,TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS=typedArrayConstructorsRequireWrappers,aTypedArrayConstructor=ArrayBufferViewCore.aTypedArrayConstructor,exportTypedArrayStaticMethod=ArrayBufferViewCore.exportTypedArrayStaticMethod;function checkMSBrowser(){var e=window.navigator.userAgent,t=e.indexOf("MSIE "),n=e.indexOf("Trident/");return t>0||n>0}function checkIsQihuBrowser(){var e=navigator.mimeTypes,t=navigator.userAgent,n=!1;return e&&t.indexOf("Chrome")>1&&(n=Object.keys(e).some((function(t){return!!(e[t].type&&e[t].type.indexOf("360")>-1)||(!!(e[t].type&&e[t].type.indexOf("application/vnd.chromium.remoting-viewer")>-1)||!!(e[t].description&&e[t].description.indexOf("360")>-1))}))),n}function checkSafariBrowser(){return/Safari/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)}function checkChromeBrowser(){var e=window.chrome,t=window.navigator,n=t.vendor,r=void 0!==window.opr,i=t.userAgent.indexOf("Edge")>-1;return t.userAgent.match("CriOS")||null!=e&&"Google Inc."===n&&!1===r&&!1===i}function isEMESupported(){var e,t,n,r,i;return!(!navigator.requestMediaKeySystemAccess||(e=checkSafariBrowser(),t=checkMSBrowser(),n=checkIsQihuBrowser(),r=navigator.userAgent.indexOf("Firefox")>0,i=navigator.userAgent.indexOf("Edge")>0,e||t||n||r||i))}function isWebAssemblySupported(){try{if("object"===("undefined"==typeof WebAssembly?"undefined":_typeof$5(WebAssembly))&&"function"==typeof WebAssembly.instantiate){var e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(e){}return!1}function getMediaSource$1(){if("undefined"!=typeof self)return arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&"undefined"!=typeof ManagedMediaSource?ManagedMediaSource:self.MediaSource||self.WebKitMediaSource}function isMediaSourceSupported(){if("undefined"==typeof self)return!1;var e=getMediaSource$1(!(arguments.length>0&&void 0!==arguments[0])||arguments[0]),t=!!e&&"function"==typeof e.isTypeSupported;return t&&void 0===self.MediaSource&&(self.MediaSource=e),t}function isMseMimeSupported(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'video/mp4; codecs="avc1.42E01E,mp4a.40.2"',t=getMediaSource$1(arguments.length>1&&void 0!==arguments[1]&&arguments[1]);if(!t)return!1;try{return t.isTypeSupported(e)}catch(e){return!1}}function isSupported(){return isMediaSourceSupported(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])&&isWebAssemblySupported()&&!checkMSBrowser()}function isSupportedWithXgmse(){return isWebAssemblySupported()&&!checkMSBrowser()}function isHevcSupported2(){return!("undefined"==typeof MediaSource||!MediaSource.isTypeSupported)&&(MediaSource.isTypeSupported('video/mp4;codecs="hev1.1.6.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.2.4.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.3.E.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.4.10.L120.90"'))}function isH266Supported(){return!("undefined"==typeof MediaSource||!MediaSource.isTypeSupported)&&MediaSource.isTypeSupported("video/mp4;codecs=bvc2.1.6.L93.B0")}exportTypedArrayStaticMethod("of",(function(){for(var e=0,t=arguments.length,n=new(aTypedArrayConstructor(this))(t);t>e;)n[e]=arguments[e++];return n}),TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);var ProxyPromise=function(){return _createClass$a((function e(){var t,n;_classCallCheck$a(this,e);var r=new Promise((function(e,r){t=e,n=r}));return r.resolve=function(e){t(e),r.state="fulfilled"},r.reject=function(e){n(e),r.state="rejected",r.isBreak="DESTROYED"===e},r.state="pending",r}),[{key:"resolve",value:function(e){}},{key:"reject",value:function(e){}}])}(),Buffer=function(){function e(){_classCallCheck$4(this,e)}return _createClass$4(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(e){}}},{key:"buffers",value:function(e,t){if(!e||!e.length)return[];for(var n=[],r=0,i=e.length;r<i;r++){var a=n.length;if(a&&t){var o=n[a-1],l=o[1];if(e.start(r)-l<=t){var d=e.end(r);d>l&&(o[1]=d)}else n.push([e.start(r),e.end(r)])}else n.push([e.start(r),e.end(r)])}return n}},{key:"totalLength",value:function(e){return e&&e.length?e.reduce((function(e,t){return e+(t[1]-t[0])}),0):0}},{key:"info",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(!t||!t.length)return{start:0,end:0,buffers:[]};for(var i=0,a=0,o=0,l=0,d=0,c=0,s=0,U=e.buffers(t,r),F=0,u=U.length;F<u;F++){var Q=U[F];if(n+r>=Q[0]&&n<=Q[1])i=Q[0],a=Q[1],o=F;else{if(n+r<Q[0]){l=Q[0],d=Q[1];break}n+r>Q[1]&&(c=Q[0],s=Q[1])}}return{start:i,end:a,index:o,buffers:U,nextStart:l,nextEnd:d,prevStart:c,prevEnd:s,currentTime:n,behind:n-i,remaining:a?a-n:0,length:e.totalLength&&e.totalLength(U)}}},{key:"isBuffered",value:function(t,n){if(t){var r=e.get(t);if(null!=r&&r.length)for(var i=0;i<r.length;i++)if(n>=r.start(i)&&n<=r.end(i))return!0}return!1}}]),e}(),isBrowser="undefined"!=typeof window;function createPublicPromise(){var e,t,n=new Promise((function(n,r){e=n,t=r}));return n.used=!1,n.resolve=function(){return n.used=!0,e.apply(void 0,arguments)},n.reject=function(){return n.used=!0,t.apply(void 0,arguments)},n}function nowTime(){try{return parseInt(performance.now(),10)}catch(e){return(new Date).getTime()}}var SafeJSON={stringify:function(e){try{return JSON.stringify(e)}catch(e){return""}},parse:function(e){try{return JSON.parse(e)}catch(e){return}}};function getMediaSource(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];try{return isBrowser?e&&"undefined"!=typeof ManagedMediaSource?ManagedMediaSource:window.MediaSource:null}catch(e){}}function isMMS(e){return/ManagedMediaSource/gi.test(Object.prototype.toString.call(e))}function getTimeRanges(e){var t=[];if(e instanceof TimeRanges)for(var n=0;n<e.length;n++)t.push({start:e.start(n),end:e.end(n)});return t}var OP_NAME={APPEND:"appendBuffer",REMOVE:"removeBuffer",UPDATE_DURATION:"updateDuration"},MSE=function(){function e(t,n){var r=this;_classCallCheck$4(this,e),_defineProperty$4(this,"media",null),_defineProperty$4(this,"mediaSource",null),_defineProperty$4(this,"_openPromise",createPublicPromise()),_defineProperty$4(this,"_queue",Object.create(null)),_defineProperty$4(this,"_sourceBuffer",Object.create(null)),_defineProperty$4(this,"_mseFullFlag",{}),_defineProperty$4(this,"_st",0),_defineProperty$4(this,"_opst",0),_defineProperty$4(this,"_logger",null),_defineProperty$4(this,"_config",null),_defineProperty$4(this,"_url",null),_defineProperty$4(this,"_onStartStreaming",(function(){r._logger.debug("startstreaming")})),_defineProperty$4(this,"_onEndStreaming",(function(){r._logger.debug("endstreaming")})),_defineProperty$4(this,"_onSBUpdateEnd",(function(e){var t=r._queue[e];if(t){var n=t[0];if((null==n?void 0:n.opName)!==OP_NAME.UPDATE_DURATION&&t.shift(),n){var i,a,o=nowTime()-r._opst;r._logger.debug("UpdateEnd(".concat(e,"/").concat(n.opName,")"),SafeJSON.stringify(getTimeRanges(null===(i=r._sourceBuffer[e])||void 0===i?void 0:i.buffered)),o,n.context),n.promise.resolve({name:n.opName,context:n.context,costtime:o});var l=null===(a=n.context)||void 0===a?void 0:a.callback;l&&"function"==typeof l&&l(n.context),r._startQueue(e)}}})),_defineProperty$4(this,"_onSBUpdateError",(function(e,t){var n=r._queue[e];if(n){var i=n[0];i&&(r._logger.error("UpdateError",e,i.opName,i.context),i.promise.reject(new StreamingError(ERR.MEDIA,ERR.SUB_TYPES.MSE_APPEND_BUFFER,t)))}})),this._config=Object.assign(e.getDefaultConfig(),n),t&&this.bindMedia(t),this._logger=new Logger$2("MSE"),this._config.openLog&&Logger$2.enable()}var t,n,r;return _createClass$4(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,t=!1;return Object.keys(this._queue).forEach((function(n){var r=e._queue[n];Array.isArray(r)&&(t||(t=r.length>0))})),t}},{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!isMMS(this.mediaSource)||this.mediaSource.streaming}},{key:"isFull",value:function(t){return t?this._mseFullFlag[t]:this._mseFullFlag[e.VIDEO]}},{key:"updateDuration",value:function(e){var t=this,n=this.mediaSource&&this.mediaSource.duration>e;if(this.mediaSource&&this.mediaSource.duration>e){var r=0;if(Object.keys(this._sourceBuffer).forEach((function(e){try{r=Math.max(t.bufferEnd(e)||0,r)}catch(e){}})),e<r)return Promise.resolve()}return this._enqueueBlockingOp((function(){t.isEnded?t._logger.debug("setDuration but ended"):t.mediaSource&&(t.mediaSource.duration=e,t._logger.debug("setDuration",e))}),OP_NAME.UPDATE_DURATION,{isReduceDuration:n})}},{key:"open",value:function(){var e=this;if(this._openPromise.used&&!this.isOpened&&this.mediaSource){var t=this.mediaSource;t.addEventListener("sourceopen",(function n(){var r=nowTime()-e._st;e._logger.debug("sourceopen",r),t.removeEventListener("sourceopen",n),e._openPromise.resolve({costtime:r})})),this._openPromise=createPublicPromise()}return this._openPromise}},{key:"bindMedia",value:(r=_asyncToGenerator$3(_regeneratorRuntime$3().mark((function e(t){var n,r,i,a,o=this;return _regeneratorRuntime$3().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(n=getMediaSource(this._config.preferMMS),t&&n){e.next=6;break}throw new Error("Param media or MediaSource does not exist");case 6:return this.media=t,r=this.mediaSource=new n,i=isMMS(r),this._st=nowTime(),a=function e(){var n=nowTime()-o._st;o._logger.debug("sourceopen"),r.removeEventListener("sourceopen",e),URL.revokeObjectURL(t.src),o._openPromise.resolve({costtime:n})},r.addEventListener("sourceopen",a),i&&(r.addEventListener("startstreaming",this._onStartStreaming),r.addEventListener("endstreaming",this._onEndStreaming)),this._url=URL.createObjectURL(r),t.src=this._url,t.disableRemotePlayback=i,e.abrupt("return",this._openPromise);case 17:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"unbindMedia",value:(n=_asyncToGenerator$3(_regeneratorRuntime$3().mark((function e(){var t,n,r,i=this;return _regeneratorRuntime$3().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._openPromise.used||this._openPromise.resolve(),t=this.mediaSource){if(Object.keys(this._queue).forEach((function(e){var t=i._queue[e];t&&t.forEach((function(e){var t,n;return null===(t=e.promise)||void 0===t||null===(n=t.resolve)||void 0===n?void 0:n.call(t)}))})),n=!!this.media&&this.media.readyState>=1,r="open"===t.readyState,n&&r)try{t.endOfStream()}catch(e){}Object.keys(this._sourceBuffer).forEach((function(e){try{t.removeSourceBuffer(i._sourceBuffer[e])}catch(e){}})),isMMS(t)&&(t.removeEventListener("startstreaming",this._onStartStreaming),t.removeEventListener("endstreaming",this._onEndStreaming))}if(this.media){this.media.disableRemotePlayback=!1,this.media.removeAttribute("src");try{this.media.load()}catch(e){}this.media=null}this.mediaSource=null,this._openPromise=createPublicPromise(),this._queue=Object.create(null),this._sourceBuffer=Object.create(null);case 8:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"createSource",value:function(e,t){if(!this._sourceBuffer[e]&&this.mediaSource){var n;try{n=this._sourceBuffer[e]=this.mediaSource.addSourceBuffer(t)}catch(e){throw new StreamingError(ERR.MEDIA,ERR.SUB_TYPES.MSE_ADD_SB,e)}n.mimeType=t,n.addEventListener("updateend",this._onSBUpdateEnd.bind(this,e)),n.addEventListener("error",this._onSBUpdateError.bind(this,e))}}},{key:"changeType",value:function(e,t){var n=this,r=this._sourceBuffer[e];return this.mediaSource&&r&&r.mimeType!==t?"function"!=typeof r.changeType?Promise.reject(new StreamingError(ERR.MEDIA,ERR.SUB_TYPES.MSE_CHANGE_TYPE,new Error("changeType is not a function"))):this._enqueueOp(e,(function(){try{r.changeType(t)}catch(e){throw new StreamingError(ERR.MEDIA,ERR.SUB_TYPES.MSE_CHANGE_TYPE,e)}r.mimeType=t,n._onSBUpdateEnd(e)}),"changeType",{mimeType:t}):Promise.resolve()}},{key:"createOrChangeSource",value:function(e,t){return this.createSource(e,t),this.changeType(e,t)}},{key:"append",value:function(e,t,n){var r=this;return t&&t.byteLength&&this._sourceBuffer[e]?this._enqueueOp(e,(function(){var i;r.mediaSource&&!r.media.error&&(r._logger.debug("MSE APPEND START",n),r._opst=nowTime(),null===(i=r._sourceBuffer[e])||void 0===i||i.appendBuffer(t))}),OP_NAME.APPEND,n):Promise.resolve()}},{key:"remove",value:function(e,t,n,r){var i=this,a=!1;return this._mseFullFlag[e]&&(a=!0),this._enqueueOp(e,(function(){if(i.mediaSource&&!i.media.error){var a=i._sourceBuffer[e];t>=n||!a?i._onSBUpdateEnd(e):(i._opst=nowTime(),i._logger.debug("MSE REMOVE START",e,t,n,r),a.remove(t,n))}}),OP_NAME.REMOVE,r,a)}},{key:"clearBuffer",value:function(e,t){var n,r=this;return Object.keys(this._sourceBuffer).forEach((function(i){n=r.remove(i,e,t)})),n||Promise.resolve()}},{key:"clearAllBuffer",value:function(){var e,t=this;return Object.keys(this._sourceBuffer).forEach((function(n){var r=t._sourceBuffer[n];e=t.remove(n,0,Buffer.end(Buffer.get(r)))})),e}},{key:"clearOpQueues",value:function(e,t){var n;this._logger.debug("MSE clearOpQueue START");var r=this._queue[e];if(t&&r)this._queue[e]=[];else if(r&&r[e]&&!(r.length<5)){var i=[];r.forEach((function(e){e.context&&e.context.isinit&&i.push(e)})),this._queue[e]=r.slice(0,2),i.length>0&&(n=this._queue[e]).push.apply(n,i)}}},{key:"endOfStream",value:function(e){var t=this;return this.mediaSource&&"open"===this.mediaSource.readyState?this._enqueueBlockingOp((function(){var n=t.mediaSource;n&&"open"===n.readyState&&(t._logger.debug("MSE endOfStream START"),e?n.endOfStream(e):n.endOfStream())}),"endOfStream"):Promise.resolve()}},{key:"setLiveSeekableRange",value:function(e,t){var n=this.mediaSource;e<0||t<e||null==n||!n.setLiveSeekableRange||"open"!==n.readyState||n.setLiveSeekableRange(e,t)}},{key:"getSourceBuffer",value:function(e){return this._sourceBuffer[e]}},{key:"buffered",value:function(e){return Buffer.get(this._sourceBuffer[e])}},{key:"bufferStart",value:function(e){return Buffer.start(this.buffered(e))}},{key:"bufferEnd",value:function(e){return Buffer.end(this.buffered(e))}},{key:"_enqueueOp",value:function(e,t,n,r,i){var a=this;if(!this.mediaSource)return Promise.resolve();var o=this._queue[e]=this._queue[e]||[],l={exec:t,promise:createPublicPromise(),opName:n,context:r};return i?(o.splice(0,0,l),this._mseFullFlag[e]=!1,this._startQueue(e)):o.push(l),this.isOpened||this.isEnded?1===o.length&&this._startQueue(e):this._openPromise.then((function(){1===o.length&&a._startQueue(e)})),l.promise}},{key:"_enqueueBlockingOp",value:(t=_asyncToGenerator$3(_regeneratorRuntime$3().mark((function e(t,n,r){var i,a,o=this;return _regeneratorRuntime$3().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((i=Object.keys(this._sourceBuffer)).length){e.next=5;break}return e.abrupt("return",t());case 5:return a=[],i.forEach((function(e){var t=o._queue[e],i=createPublicPromise();a.push(i),t.push({exec:function(){i.resolve()},promise:i,opName:n,context:r}),1===t.length&&o._startQueue(e)})),e.abrupt("return",Promise.all(a).then((function(){try{return t()}finally{i.forEach((function(e){var t=o._queue[e],n=o._sourceBuffer[e];null==t||t.shift(),n&&n.updating||o._startQueue(e)}))}})));case 8:case"end":return e.stop()}}),e,this)}))),function(e,n,r){return t.apply(this,arguments)})},{key:"_startQueue",value:function(e){var t=this._queue[e];if(t){var n=t[0];if(n&&!this._mseFullFlag[e])try{n.exec()}catch(a){var r,i;if(a&&a.message&&a.message.indexOf("SourceBuffer is full")>=0)this._mseFullFlag[e]=!0,n.context&&"object"===_typeof$2(n.context)&&(n.context.isFull=!0),this._logger.error("[MSE error], context,",n.context," ,name,",n.opName,",err,SourceBuffer is full"),null==n||null===(r=n.promise)||void 0===r||r.reject(new StreamingError(ERR.MEDIA,ERR.SUB_TYPES.MSE_FULL,a));else this._logger.error(a),null==n||null===(i=n.promise)||void 0===i||i.reject(a.constructor===StreamingError?a:new StreamingError(ERR.MEDIA,ERR.SUB_TYPES.MSE_OTHER,a)),t.shift(),this._startQueue(e)}}}},{key:"setTimeoffset",value:function(e,t,n){var r=this;return this._enqueueOp(e,(function(){t<0&&(t+=.001),r._sourceBuffer[e].timestampOffset=t,r._onSBUpdateEnd(e)}),"setTimeoffset",n)}},{key:"abort",value:function(e,t){var n=this;return this.isOpened?this._enqueueOp(e,(function(){n._sourceBuffer[e].abort(),n._onSBUpdateEnd(e)}),"abort",t):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"',t=getMediaSource();if(!t)return!1;try{return t.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}();_defineProperty$4(MSE,"VIDEO","video"),_defineProperty$4(MSE,"AUDIO","audio");var DESTROYED="DESTROYED",XGLOG_CACHE_EVENT="xglog_cache",DEGRADE_EVENT="degrade",SWITCH_ACTION={SWITCH_URL:"SWITCH_URL",UPDATE_URL:"UPDATE_URL",UPDATE_DEFINITION:"UPDATE_DEFINITION"},_playerPlayNext=null,_playerStartInit=null,_playerChangeDefinition=null,_playerSwitchUrl=null,_realTimeSpeed$2=0,Mp4EncryptPlayer=function(e){function t(e){var n,r;return _classCallCheck$a(this,t),_defineProperty$9(r=_callSuper$3(this,t,[e]),"_onChangeConfig",(function(e){if(e){var t=e.nextBufferLength===r.config.minBufferLength;if(r.setConfig(e),e.nextBufferLength&&!t)try{r._onTimeUpdate()}catch(e){}}})),_defineProperty$9(r,"fpsStuckHandle",(function(e){var t=r,n=t.player,i=t.mse;if(r.fpsStuckTime||(r.fpsStuckTime=e.currentTime,r.log(LogCacheLevel$1.LOG,"fpsStuckHandle, currentTime,",e.currentTime)),i&&r.fpsStuckTime>0){var a=n.bufferedPoint;i.clearOpQueues(MSE.VIDEO),r.log(LogCacheLevel$1.LOG,"fpsStuckHandle, remove: ".concat(a.start,"-").concat(a.end,","),"stuckTime: ".concat(r.fpsStuckTime)),i.remove(MSE.VIDEO,a.start,a.end).then((function(){n.currentTime=r.fpsStuckTime,r.fpsStuckTime=null}))}})),_defineProperty$9(r,"_replayHook",(function(e){})),_defineProperty$9(r,"_retryHook",(function(){var e=r,t=e.player,n=e.playerConfig,i=t.paused;r.softDecode?t.vtype=VTYPES.MP4_MSE_SOFT:t.vtype=VTYPES.MP4_MSE,r._defInited=!1,r._MSEError=!1,t.video.removeEventListener("loadedmetadata",r.__onmetadataHandle);var a=t.currentTime||0;return r.log(LogCacheLevel$1.LOG,"retryHook ",n.vid,r.codecType,a),r.__onmetadataHandle=function(){a&&(t.currentTime=a,r.log(LogCacheLevel$1.LOG,"retryHook update currentTime",n.vid,r.codecType,a)),i?t.pause():t.play(),t.video.removeEventListener("loadedmetadata",r.__onmetadataHandle),r.__onmetadataHandle=null},t.video.addEventListener("loadedmetadata",r.__onmetadataHandle),r.destroyMSE(),r._reset(),r.states=[],r.playerStartInit(n.url),!1})),_defineProperty$9(r,"_playHook",(function(e){r._usePaused=!1,r._cancelLoading=!1,r.log(LogCacheLevel$1.LOG,"playHook"),r._startProgress()})),_defineProperty$9(r,"_pauseHook",(function(e){var t;r._usePaused=!0;for(var n=arguments.length,i=new Array(n>1?n-1:0),a=1;a<n;a++)i[a-1]=arguments[a];r.log(LogCacheLevel$1.LOG,"pauseHook",i[0],null===(t=r.player)||void 0===t?void 0:t.currentTime),i.indexOf(null==PAUSE_TYPES?void 0:PAUSE_TYPES.BUFFER_CONTROLS)<0&&(clearTimeout(r.checkResumePlayTimer),r.checkResumePlayTimer=null,r.log(LogCacheLevel$1.LOG,"pause hook clear buffer_control state")),r._loadStuckCheck()})),_defineProperty$9(r,"abrSwitchURL",function(){var e=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t){var n,i,a,o,l;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=r.playerConfig,i=n.definition.list,a=0,o=0;case 4:if(!(o<i.length)){e.next=11;break}if(t.definition!==i[o].definition){e.next=8;break}return a=o,e.abrupt("break",11);case 8:o++,e.next=4;break;case 11:l=r.player.curDefinition,r.changeDefinition(i[a],l,!0);case 13:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),_defineProperty$9(r,"timerHandle",(function(){r._requestTimer&&r._onTimeUpdate()})),_defineProperty$9(r,"changeDefineCanPlay",(function(e,t,n,i){var a,o=r.player,l=r._changeDefState?r._changeDefState.currentTime:e;(r.needStarLoadFirstSegment=!0,o.changeDefinitionSeekState=1,r.log(LogCacheLevel$1.LOG,"changeDefineCanPlay seek changeBitrate point ".concat(l,", pause: ").concat(null===(a=r._changeDefState)||void 0===a?void 0:a.paused)),o.ended)?o.currentTime=0:(o.currentTime=l,!!r._changeDefState&&r._changeDefState.paused?o.pause():o.play(),r._changeDefState=null,o.emit(AFTER_DEFINITION_CHANGE,{from:n,to:i}))})),_defineProperty$9(r,"changeDefinition",(function(e,t,n){var i=r,a=i.player,o=i.playerConfig,l=i.mp4,d=i.config;if(t||(t=a.curDefinition),r._MSEError=!1,r._isReceiveEndedEvent=!1,r.useVideoLoad)return"__auto__"===e.url&&(e.url=a.config.definition.list[0].url),void _playerChangeDefinition.call(r.player,e,t);var c=a.definitionList.filter((function(t){return t.definition===e.definition}));if(c.length>0&&(e=c[0]),r._handlerUrl(e.url),e._mainURL=d._mainURL,e._backupURL=d._backupURL,!r._switchBitRateWay||n){var s="自动"===e.definition||"auto"===e.definition;if(n)r.log(LogCacheLevel$1.LOG,"[switchBitrate:ABR], ready to switch bitRate, ",e.bitrate,e.definition);else{var U,F=!1;if(s){var u,Q,R;null===(u=r._abrService)||void 0===u||u.updateCurrentHDRStatus(null===(Q=t)||void 0===Q?void 0:Q.isHDR),null===(R=r._abrService)||void 0===R||R.enable(),F=!0}else{var h;r._abrService&&r._abrService.disable();var p=null===(h=o.definition)||void 0===h?void 0:h.list;if(p&&(!e.bitrate||!e.uri||!e.size||!e.duration))for(var B=0;B<p.length;B++)if(e.definition===p[B].definition){e.bitrate=p[B].bitrate,e.uri=p[B].uri||t.uri,e.size=p[B].size||util.getFileSize(e.bitrate,o.duration),e.duration=p[B].duration||r.playerConfig.duration;break}}null===(U=r.adaptRange)||void 0===U||U.updateBitrate(e.bitrate),a.oldBit=e.bitrate,a.emit(DEFINITION_CHANGE,{from:t,to:e}),setTimeout((function(){r._abrService&&r._abrService.updateAutoDefiDesc(a.curDefinition.definition,!s)})),F&&(e=a.curDefinition),r.log(LogCacheLevel$1.LOG,"[switchBitrate:CBS],switch bitRate, ",e.bitrate,e.definition,a.currentTime)}if(a.curDefinition=e,r.mp4.clearPCDNNodeList(),r.checkPCDN(),l){["keyValue","kid","secretKey","drm","getLicenseUrl","drmKeyToken","sessionId"].forEach((function(t){d[t]=e[t]}));var S=r.config,f=S.kid,m=S.drmKeyToken,V=S.secretKey,y=S.keyValue,E=S.drm,Z=S.reuseSecretKey,b=null;if(f||m||V||y||E)r._secretkey?Z||r._secretkey.updateConfig(r.config):(r._secretkey=new index_minExports.XGSecretKey(r.config),r._secretkey.on(index_minExports.EVENT_EME.ERROR,r._errorHandler)),(b=r._secretkey.getLicenseSecret()).then((function(){if(r.player&&r._secretkey){var e=r.player.video||r.player.media;r._secretkey.setOptions(),r._secretkey.setupEME(e)}}));else{var J=Promise.withResolvers();b=J.promise,(0,J.resolve)()}b.then(function(){var n=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function n(i){var c,s,U,F,u,Q,R,h,p,B,S,f,m,V;return _regeneratorRuntime$6().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(null!=i&&i.secretKey&&(!d.keyValue&&(d.secretKey=i.secretKey),d.decryptKey=i.decryptKey),o.url=e.url,s=0,U=!1,F=a.getBufferedRange(),r._abrService&&r._abrService.isCurrentInAbr()?(u=Math.max(F[1],a.currentTime),s=r.getCurGopEndTime(u)):(s=r.getCurGopEndTime(),U=!0),!(s>=l.timeRange[l.timeRange.length-1].startTime)){n.next=9;break}return r.log(LogCacheLevel$1.LOG,"switch bitrate last segment, so return"),n.abrupt("return");case 9:if(Q=null===(c=r._abrService)||void 0===c?void 0:c.isCurrentInAbr(),null==l||l.updateChangeBitRateTime(s),R=l.getFragmentIdx(s),!(F[1]<s)){n.next=16;break}l.fillGopData&&l.fillGopData(a.currentTime),n.next=20;break;case 16:return r.canDownload=!1,n.next=19,l.cancelLoading();case 19:l.metaLoading=!1;case 20:(h=r.getAdaptTimeRangeIdx(R))<0&&(h=r._curLoadSegmentIdx),r.log(LogCacheLevel$1.LOG,"switchBitrate point: ".concat(h),"currentTime: ".concat(a.currentTime,", timeStart: ").concat(s,", \n buffer: ").concat(F[0]," - ").concat(F[1])),U&&a.emit("definitionSwitchTime",l.adaptTimeRange[h].startTime+1),r._definitionChangePointInfo={changeStartTime:s,changeInfo:{from:t,to:e}},r._removeBuffEndTime=s,!((p=a.getBufferedRange(a.buffered))[1]>0&&p[1]>s)||r._abrService&&Q||(r.removeBuffer(MSE.VIDEO,s,p[1]),r.log(LogCacheLevel$1.LOG,"switchBitrate: ready to remove buffer, ".concat(s," - ").concat(p[1]))),(B=l.getFragmentIdx(a.currentTime))>0&&(S=a.buffered.start(0),f=l.timeRange[B].startTime-1,r.removeBuffer(MSE.VIDEO,S,f,(function(){r.log(LogCacheLevel$1.LOG,"switchBitrate: remove old bitrate buffer end",JSON.stringify(a.getBufferedRange(a.buffered)))})),r.log(LogCacheLevel$1.LOG,"switchBitrate: ready to remove pre buffer, ".concat(S," - ").concat(f))),m=l.getAdaptIdxBySrcIdx(B)+1,r.log(LogCacheLevel$1.LOG,"switchBitrate: resetFragmentLoadState, ".concat(m,", changeBitRateIdx: ").concat(h)),l.resetFragmentLoadState(m),r._curLoadSegmentIdx=m,r.mp4.readyToChangeBitrate(e),r._setCurrentDefinition(e),r._emitDefinitionChangeDetailEvent(s),r.canDownload=!0,r._onTimeUpdate(),V={width:e.width||e.vwidth,height:e.height||e.vheight},a.emit("RESOLUTION_UPDATE",V);case 41:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}()).catch((function(t){r.log(LogCacheLevel$1.ERROR,"switchBitrate: GET_LICENSE_ERROR, ".concat(null==t?void 0:t.message));var n=new Errors(r.player,{errorType:ERROR_TYPES.DRM,errorCode:ERROR_CODES.custom_drm,errorMessage:(null==t?void 0:t.message)||"GET_LICENSE_ERROR",vid:o.vid});t.errorType="GET_LICENSE_ERROR",r.emit("GET_LICENSE_ERROR",n),r.changeState("LICENSE_ERROR",{d:e.definition})}))}}else r.oldChangeDefinition(e,t)})),_defineProperty$9(r,"_onVideoError",(function(e){var t,n,i=r.player;r.changeState("video_error",{code:e.code||(null==i||null===(t=i.video)||void 0===t||null===(t=t.error)||void 0===t?void 0:t.code),message:e.message||(null==i||null===(n=i.video)||void 0===n||null===(n=n.error)||void 0===n?void 0:n.message),videoType:r.useVideoLoad})})),_defineProperty$9(r,"removeBuffer",(function(e,t,n,i){var a,o=r.getBufferDur();null===(a=r.mse)||void 0===a||a.remove(e,t,n).then((function(){var e=r.player,t=r.getBufferDur(),n=o-t;if(n>0){r.emit("removeBuffer",{removeDur:n});for(var a=[],l=0;l<e.buffered.length;l++)a.push([e.buffered.start(l),e.buffered.end(l)]);r.log(LogCacheLevel$1.LOG,"removeDur end,curBuffer:".concat(JSON.stringify(a),",\n currentTime:").concat(r.player.currentTime))}i&&i()}))})),_defineProperty$9(r,"_onPlaying",(function(){r._waitAdjustTimeCnt>0&&r._waitInBufferTimer&&(r._waitAdjustTimeCnt-=1,r.log(LogCacheLevel$1.WARN,"[waitInBuffer resume play], waitAdjustTimeCnt,",r._waitAdjustTimeCnt)),clearTimeout(r._waitInBufferTimer),r._waitInBufferTimer=null;var e=r,t=e.mp4,n=e.player,i=r.config.resumePlayWaterLevel;if(t){if(!(t&&t.meta&&t.meta.duration-n.currentTime<=i)&&(r.waitLevelStartTime<0&&(r.waitLevelStartTime=n.currentTime),r.playFlag||(r.playFlag=!0),!(void 0===n.isBufferControlPaused||i<=0)&&i>0&&n.currentTime-r.waitLevelStartTime>=USE_WAIT_WATER_LEVEL_MIN_TIME)){var a=n.getBufferedRange(n.buffered2);a[1]>0&&a[1]-n.currentTime<i?(n.paused||(r.emit(EVENT_BUFFER_CONTROL,{type:BUFFER_CONTROL_TYPE.WAITING}),n.pause(null==PAUSE_TYPES?void 0:PAUSE_TYPES.BUFFER_CONTROLS),r.log(LogCacheLevel$1.LOG,"[!!!!!buffer not rich, pause],currentTime, ",n.currentTime,", bufferEnd,",a[1])),clearTimeout(r.checkResumePlayTimer),r.checkResumePlayTimer=setTimeout(r._onPlaying,i/2*1e3)):n.isBufferControlPaused&&n.paused&&(r.log(LogCacheLevel$1.LOG,"[!!!!!buffer rich, play],, currentTime, ",n.currentTime,", bufferEnd,",a[1]),clearTimeout(r.checkResumePlayTimer),r.checkResumePlayTimer=null,n.isBufferControlPaused=!1,r.emit(EVENT_BUFFER_CONTROL,{type:BUFFER_CONTROL_TYPE.PLAYING}),n.play())}}else r.checkResumePlayTimer>0&&(clearTimeout(r.checkResumePlayTimer),r.checkResumePlayTimer=null,n.isBufferControlPaused&&(n.isBufferControlPaused=!1),n.paused&&n.play())})),_defineProperty$9(r,"_lowDecoder",(function(){var e="function"==typeof r.player.video.getStats?r.player.video.getStats():null;r.log(LogCacheLevel$1.WARN,"H265 lowdecode: ".concat(r.playerConfig.vid," "),e,", h265Degrade, ",r.config.h265Degrade),r.config.h265Degrade&&r._onDegrade()})),_defineProperty$9(r,"_onError",(function(e){r._onDegrade(e)})),_defineProperty$9(r,"_onDegrade",(function(e){var t,n,i=r,a=i.player,o=i.playerConfig,l=i.config;a.video.removeEventListener("lowdecode",r._onDegrade),a.video.removeEventListener("error",r._onError),null===(t=r.mp4)||void 0===t||t.destroy();var d=a.currentTime;if(r.log(LogCacheLevel$1.WARN,"[h265 degrade], vid,",o.vid,",currtime,",d),r.emit(DEGRADE_EVENT,{errc:null==e?void 0:e.errorCode,err_msg:(null==e?void 0:e.errorMessage)||(null==e?void 0:e.message),CodecTypes:r.codecType,media_type:o.mediaType}),null!=l&&l.H264Config){var c=l.H264Config;["drm","getLicenseUrl","kid","keyValue","secretKey","isEncrypt","useEME"].forEach((function(e){l[e]=c[e]||null}))}var s={mp4encryptplayer:l,mediaType:"video",codecType:CodecTypes.H264};if((null==o||null===(n=o.H264DefinitionList)||void 0===n?void 0:n.length)>0){var U=r._processArrayUrl(o.H264DefinitionList);o.H264DefinitionList=U,a.config.definition.list=U,a.config.url=U[0].url,a.config.defaultBitrate=o.H264DefinitionList[0].bitrate,a.config.defaultDefinition=o.H264DefinitionList[0].definition,r.isH265DegradeH264=!0,a.playNext(s),r.__onmetadataHandle=function(){a.currentTime=d,r.isH265DegradeH264=!1,r.log(LogCacheLevel$1.LOG,"H265DegradeH264 update currentTime",d),a.video.removeEventListener("loadedmetadata",r.__onmetadataHandle),r.__onmetadataHandle=null},a.video.addEventListener("loadedmetadata",r.__onmetadataHandle)}else a.pause(),r._reset(),r.states=[],r.checkReUseMSE(!1),r.log(LogCacheLevel$1.ERROR,"H265 error,degrade h264 but no h264 url"),r.emit("error",e)})),_defineProperty$9(r,"_onMp4MetaReady",(function(e,t){if(t&&!t.hasDestroyed){var n=r._checkMetaInfo(e);if(n)r._errorHandler(n);else{var i=e.videoCodec,a=e.audioCodec;r._mediaCodec.videoCodec=i,r._mediaCodec.audioCodec=a;try{r._initEME(e),r.softDecode?(r.log(LogCacheLevel$1.LOG,"initMseProxy"),r._initMseProxy()):r.player.video instanceof HTMLVideoElement&&(r.log(LogCacheLevel$1.LOG,"initMse"),r._initMse(e)),r._initPromise&&r._initPromise.resolve()}catch(e){return void r._errorHandler(new Errors(r.player,{errorType:ERROR_TYPES.MEDIA,errorCode:ERROR_CODES.eme_hijack,errorMessage:(null==e?void 0:e.message)||"eme or mse catch err",vid:r.playerConfig.vid}))}if(null!=t&&t.timeRange){var o=[];t.timeRange.every((function(e){return o.push({startTime:e.startTime,endTime:e.endTime}),!0})),r.emit("KEYFRAMETIME",o)}t===r.mp4&&r._loadData()}}else r.log(LogCacheLevel$1.LOG,"Mp4MetaReady but return, ".concat(!!t,", ").concat(null==t?void 0:t.hasDestroyed))})),_defineProperty$9(r,"_onMp4Error",function(){var e=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t){return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r._errorHandler(t);case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),_defineProperty$9(r,"_onMp4Progress",(function(e){r.emit("progress_event",e)})),_defineProperty$9(r,"_onMp4DataCallBack",(function(){r._isMseInit&&r._onTimeUpdate()})),_defineProperty$9(r,"_updateDrmConfig",(function(e){var t=r,n=t.config;t.mp4.updateSecretKey(n.useEME,n.secretKey,n.decryptKey,n.keyValue),r._secretkey&&e.kid&&r._secretkey.updateKid(e.kid)})),_defineProperty$9(r,"_updateMSE",(function(e){r.player.video instanceof HTMLVideoElement&&(r.log(LogCacheLevel$1.LOG,"updateMse",e.videoCodec),r._initMse(e))})),_defineProperty$9(r,"_onVideoTimeUpdate",(function(){var e,t,n,i=r,a=i.mse,o=i.player;(r.waitLevelStartTime<0&&(r.waitLevelStartTime=o.currentTime),r.checkReStartTimer(),r._isEnded(),o.isSeeking&&(o.isSeeking=!1),!r.useVideoLoad&&a&&r._removeBuffEndTime>0&&o.currentTime>r._removeBuffEndTime+1&&(r.log(LogCacheLevel$1.LOG,"remove old bitrate buffer,0 - ".concat(r._removeBuffEndTime)),r.removeBuffer(MSE.VIDEO,0,r._removeBuffEndTime-1),r._removeBuffEndTime=0),o.currentTime>=(null===(e=r._definitionChangePointInfo)||void 0===e?void 0:e.changeStartTime)&&(r.needStarLoadFirstSegment=!0,checkChromeBrowser()&&(r.log(LogCacheLevel$1.LOG,"definitionChangePointInfo update\n changeDefinitionSeekState = 2\n ".concat(o.currentTime)),o.changeDefinitionSeekState=2)),r._definitionChangePointInfo&&o.currentTime>r._definitionChangePointInfo.changeStartTime)&&(o.emit(AFTER_DEFINITION_CHANGE,r._definitionChangePointInfo.changeInfo),r.log(LogCacheLevel$1.LOG,AFTER_DEFINITION_CHANGE,", currentTime,",o.currentTime,",from ",null===(t=r._definitionChangePointInfo)||void 0===t||null===(t=t.changeInfo)||void 0===t||null===(t=t.from)||void 0===t?void 0:t.definition," to ",null===(n=r._definitionChangePointInfo)||void 0===n||null===(n=n.changeInfo)||void 0===n||null===(n=n.to)||void 0===n?void 0:n.definition),r._definitionChangePointInfo=null);r.useVideoLoad||null!==r._requestTimer||!r._offineLine&&!r._cancelLoading&&r._startProgress(),r._lastBufferPoint=o.bufferedPoint})),_defineProperty$9(r,"_onBufferedReset",(function(){r.mp4&&r.mp4.videoTrak&&r.mp4.resetFragmentLoadState(0)})),_defineProperty$9(r,"_onOnlineHandler",(function(){r._offineLine=!1;var e=r,t=e.playerConfig,n=e.player,i=n.currentTime,a=n.paused;r.log(LogCacheLevel$1.LOG,"online useVideoLoad:",r.useVideoLoad,r._hasStartProgressBack),r.useVideoLoad?(r.__onmetadataHandle=function(){i&&(n.currentTime=i),r.log(LogCacheLevel$1.LOG,"onOnlineHandler update currentTime",t.vid,r.codecType,r._currentTime),a?n.pause():n.play(),n.video.removeEventListener("loadedmetadata",r.__onmetadataHandle),r.__onmetadataHandle=null},n.video.addEventListener("loadedmetadata",r.__onmetadataHandle),r._setPlayerSrc(t.url)):(r._hasStartProgressBack&&r._startProgress(),r._hasStartProgressBack=!1)})),_defineProperty$9(r,"_onOfflineHandler",(function(){r._offineLine=!0,r.log(LogCacheLevel$1.LOG,"offline, ",r._hasStartProgress),r._hasStartProgress&&(r._stopProgress(),r._hasStartProgressBack=!0)})),_defineProperty$9(r,"_loadDataSuccess",(function(e){if(!r.isDestroy&&(r.mse||r.mseProxy)){try{e.initSeg&&(r._appendInitSeg(e.initSeg),(!e.buffer||e.buffer.byteLength<1)&&r._onTimeUpdate());var t=e.buffer,n=e.state,i=e.context,a=e.videoTrack,o=e.audioTrack;if(r.debugInfo.loadIndx=i?i.fragIndex:-1,r.mse){var l,d;if(n&&(!t||(null==t?void 0:t.byteLength)<=0)&&null!==(l=r.mp4)&&void 0!==l&&l.checkIsLoadEnd(null===(d=i.range)||void 0===d?void 0:d[1])){var c=r.player.buffered;r._loadedEnd=!0;var s=0;c&&(null==c?void 0:c.length)>0&&(s=c.end(c.length-1)),r._isEnded(),r.log(LogCacheLevel$1.LOG,"loaded ended !!!==>>>","range: ".concat(JSON.stringify(i.range)),"fragIndex: ".concat(i.fragIndex),"bufferEndTime: ".concat(s),"meta_duration: ".concat(r.mp4.meta.duration))}if(t&&(null==t?void 0:t.byteLength)>0){r._appendBuffer(MSE.VIDEO,t,i,n);var U=r.getDataBitRate(i.fragIndex);r.player.emit("addVideoBufferEnd",{start:Math.floor(i.startPts),end:i.endPts,bandwidth:U.bitrate})}}else if(r.mseProxy&&(a&&a.samples.length>0||o&&o.samples.length>0)){if(a.editListApplied){var F,u=a.editList,Q=a.samples,R=0;(null==u||null===(F=u.entries)||void 0===F?void 0:F.length)>0&&(R=u.entries[0].media_time),Q.forEach((function(e){e.dts+=R,e.pts+=R,e.originDts+=R,e.originPts+=R})),a.baseMediaDecodeTime+=R}r.log(LogCacheLevel$1.LOG,"[xgvideo] append","index: ".concat(i.fragIndex),"range: ".concat(JSON.stringify(e.context.range)),"timeRange: ".concat(i.timeRange)),r.mseProxy.appendBuffer(a,o)}}catch(e){r.changeState("APPEND_DATA_ERROR",{errMsg:null==e?void 0:e.message});var h=new Errors(r.player,{errorType:ERROR_TYPES.MEDIA,errorCode:ERROR_CODES.mseAppend,vid:r.playerConfig.vid,errorMessage:e.message,mediaError:{code:ERROR_CODES.mseAppend,message:e.message}});r._errorHandler(h)}null!=e&&e.state&&r._onTimeUpdate()}})),_defineProperty$9(r,"_onResumePlaying",(function(){r._resumePlay=!0})),_defineProperty$9(r,"_seekOnce",(function(e){var t=r.player;t&&(t.currentTime=e+.1*Math.pow(2,r._currentSeekTimes||0),r._currentSeekTimes++,r.log(LogCacheLevel$1.LOG,"当前第".concat(r._currentSeekTimes,"次Seek,currentTime=").concat(null==t?void 0:t.currentTime)))})),_defineProperty$9(r,"_onWaiting",(function(){var e;r.checkReStartTimer(),r._isEnded();var t=JSON.stringify(r.getAllBufferRange());r.changeState("waiting",{curtime:r.player.currentTime,buffer:t});var n=r,i=n.player,a=n.config,o=n.playerConfig,l=n.mp4;clearTimeout(r._waitInBufferTimer),r._waitInBufferTimer=null;var d=i.currentTime;r.log(LogCacheLevel$1.LOG,",[onWaiting],curTime, ",d,",buffer,",t,",dur,",null==l||null===(e=l.meta)||void 0===e?void 0:e.duration);var c=i.bufferedPoint;c.end>0&&(c.end-d>=2||r._loadedEnd)?r._waitAdjustTimeCnt<a.waitJampBufferMaxCnt?r._waitInBufferTimer=setTimeout((function(){r._waitAdjustTimeCnt++,r.changeState("waitInBuffer_seek",{waitAdjustTimeCnt:r._waitAdjustTimeCnt,curTime:d}),i.currentTime=i.currentTime+.5}),a.waitingInBufferTimeOut):r._errorHandler(new Errors(r.player,{errorType:ERROR_TYPES.RUNTIME,errorCode:ERROR_CODES.waitTimeout,errorMessage:"onWaitTimeout_in_buffer",vid:o.vid})):r._loadStuckCheck()})),_defineProperty$9(r,"_onEnded",(function(){r.log(LogCacheLevel$1.LOG,"[player.onEnded], stopProgress"),r._stopProgress()})),_defineProperty$9(r,"_errorHandler",(function(e){var t;r._setPlayerError(e);var n=r,i=n.player,a=n.playerConfig,o=n.preLoadData;if(i&&!r.useVideoLoad){if(e.errorCode===ERROR_CODES[403]&&r._emitExpireEvent(e)&&r.config.urlExpireDisableErrorEvent)return r.log(LogCacheLevel$1.LOG,"_errorHandler urlExpireDisableErrorEvent",r.config.urlExpireDisableErrorEvent,",errorCode,",e.errorCode),r._stopProgress(),void r.emit(XGLOG_CACHE_EVENT);if("object"!==_typeof$5(e)){var l={};l.err=e,e=l}e.ext||(e.ext={});var d=i.paused;if(e.ext.vid=a.vid,e.ext.preloadHit=r.hitpreload?1:0,e.ext.preloadCached=o?o.duration:0,e.ext.timerStep=Math.max.apply(Math,_toConsumableArray$5(r.timerStepList)),e.ext.codectype=r.codecType,e.message&&(e.errorMessage=e.message),e=new Errors(i,e),r.log(LogCacheLevel$1.ERROR,"_errorHandle","preState is ".concat(d),null===(t=e)||void 0===t?void 0:t.errorCode,e.errorMessage),!e.url&&(e.url=i.src),r.player.emit("playCatch",r.player.vtype,e),e.errd&&"object"===_typeof$5(e.errd)&&r.mp4&&(e.errd.url=r.mp4.url,e.url=r.mp4.url),r.emit("DATA_REPORT",e),r.mp4&&r.mp4.cancelLoading(),r._abrService&&r._abrService.disable(),r.canDownload=!1,r.checkIsDegraded(e))r.player.vtype=VTYPES.MP4_2,r._initPromise&&r.removeAndRejectInitPromise(e),r._startDegradedPlayback(e,d);else{var c,s,U,F;r.log(LogCacheLevel$1.ERROR,"final error !!!!, ",a.vid,null===(c=e)||void 0===c?void 0:c.errorCode,null===(s=e)||void 0===s?void 0:s.errorMessage),r.player.pause(),r._reset(),r.states=[];var u=i.currentTime;r.destroyMSE(),i.currentTime=u,r.emit("error",e),r._setStartTimelines(START_TIMELINES.PLAY_ERROR,{message:null===(U=e)||void 0===U?void 0:U.message,httpCode:null===(F=e)||void 0===F?void 0:F.errorCode})}r.emit(XGLOG_CACHE_EVENT)}})),_defineProperty$9(r,"_onSourceError",(function(e){if(!r._hasFirstFramed){var t,n,i,a;if(null!==(t=e.message)&&void 0!==t&&t.includes("PCDN"))return;var o="".concat(r.player.vtype,"-host:").concat(null==e?void 0:e.host,"-").concat(null==e?void 0:e.errorCode,"-").concat(null!==(n=null==e||null===(i=e.mediaError)||void 0===i?void 0:i.message)&&void 0!==n?n:null==e?void 0:e.message);r._setStartTimelines(START_TIMELINES.HTTP_ERROR,{message:o,httpCode:null==e?void 0:e.errorCode}),null===(a=r._startTimelines)||void 0===a||null===(a=a.httpError)||void 0===a||a.push({message:o,httpCode:null==e?void 0:e.errorCode})}})),_defineProperty$9(r,"_onSeeking",_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(){var t,n,i,a,o,l,d,c,s,U,F,u,Q,R,h,p;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r._isReceiveEndedEvent=!1,!r.useVideoLoad){e.next=3;break}return e.abrupt("return");case 3:if(i=(n=r).player,a=n.mp4,o=n.mse,l=n.config,3!==i.changeDefinitionSeekState){e.next=8;break}return i.changeDefinitionSeekState=void 0,r.log(LogCacheLevel$1.LOG,"[seeking] changeDefinitionSeekState clear"),e.abrupt("return");case 8:if(d=i.currentTime,c=i.bufferedPoint,r.waitLevelStartTime=d,r.changeState("seeking",{curTime:d,buffered:c,lastBuffered:r._lastBufferPoint}),r.log(LogCacheLevel$1.LOG,"[seeking], curTime: ".concat(d,", duration: ").concat(null==a||null===(t=a.meta)||void 0===t?void 0:t.duration),"buffer: ".concat(JSON.stringify(r.getAllBufferRange()))),a&&a.meta){e.next=15;break}return e.abrupt("return");case 15:if(r._startProgress(),a.bufferUsedPos=0,a.metaLoading=!1,r._loadedEnd=!1,r._definitionChangePointInfo&&(r._definitionChangePointInfo.changeStartTime=d,r.log(LogCacheLevel$1.LOG,"[seeking update definitionChangePointInfo]",d)),a.changeBitRateTime>0&&(a.updateChangeBitRateTime(d),r.log(LogCacheLevel$1.LOG,"[seeking update changeBitRateTime]",d)),s=0,!(c.end>0)){e.next=30;break}if(!r.isSeekingInSameBuffer(d,c)){e.next=26;break}return r.log(LogCacheLevel$1.LOG,"[seeking in buffered], linear buffer,",c.end),e.abrupt("return");case 26:a.seekTime=c.end,r.log(LogCacheLevel$1.LOG,"[seeking in buffered], but jump to another piece: ".concat(c.start,"-").concat(c.end)),e.next=32;break;case 30:a.seekTime=d,r.log(LogCacheLevel$1.LOG,"[seeking out buffered], seekTime: ".concat(d));case 32:return U=a.getFragmentIdx(a.seekTime),F=r.getAdaptTimeRangeIdx(U),s=F<0?r._curLoadSegmentIdx:F,a.seekTime===d&&null!=o&&o.isFull()&&(u=r.getAllBufferRange(),Q=u[u.length-1],r._checkRemovePlayedBuffer([Q.start,Q.end],d,!0,!0)),r.log(LogCacheLevel$1.LOG,"[seekTime resetFragmentLoadState], adaptIdx: ".concat(s)),a.resetFragmentLoadState(s),null==o||o.clearOpQueues(MSE.VIDEO),1===i.changeDefinitionSeekState?null===(R=r.mse)||void 0===R||R.remove(MSE.VIDEO,0,1/0).then((function(){i.changeDefinitionSeekState=2,r.log(LogCacheLevel$1.LOG,"[seeking], changeDefinitionSeek remove buffer end, changeDefinitionSeekState = 2")})):l.removeBufferAtSeek&&(h=a.seekTime,p=1/0,r.log(LogCacheLevel$1.LOG,"[seeking mse remove], ".concat(h,"-").concat(p)),null==o||o.remove(MSE.VIDEO,h,p)),r.canDownload=!1,e.next=43,a.cancelLoading();case 43:r.canDownload=!0,a.fillFirstSegment=!1,r._curLoadSegmentIdx=s,r._onTimeUpdate(),r._isEnded();case 48:case"end":return e.stop()}}),e)})))),r.initLog(null===(n=r.player.playerId)||void 0===n||null===(n=n.toString())||void 0===n?void 0:n.slice(-4)),r.log(LogCacheLevel$1.LOG,"plugin version: ".concat(version),"playerId: ".concat(r.playerId),"vid: ".concat(r.playerConfig.vid)),r._pendingPromises=[],r._allInitPromise=new ProxyPromise,r._isInit=!1,r._isEventInit=!1,r.preloader=null,r._useVideoLoad=!1,r.mse=null,r.mp4=null,r.eme=null,r._isMseInit=!1,r._corePromise=null,r._initPromise=null,r._hasStartProgress=!1,r._hasStartProgressBack=!1,r._curLoadSegmentIdx=0,r._abrService=null,r._checkRemoveBufferLastTime=util.nowTime(),r.playFlag=!1,r.config.resumePlayWaterLevel=Math.min(r.config.minBufferLength,r.config.resumePlayWaterLevel),r.config.preferMMS=!0,r.checkResumePlayTimer=null,r._MSEError=!1,r._waitAdjustTimeCnt=0,r._waitInBufferTimer=null,r.isActive=!0,r.debugInfo={},r.states=[],r.removeVideoList=[],r._lastCheckTime=util.nowTime(),r._lastCheckLagTime=util.nowTime(),r._changeDefState=null,r._defInited=!1,r._removeBuffEndTime=0,r._lastTimeupdateTime2=0,r.waitLevelStartTime=-1,r.preLoadData=null,r.forPreloadTimeCache=null,r._usePaused=!1,r.hitpreload=!1,r.isH265DegradeH264=!1,r.loadstartTimer=null,r.loadeddataTimer=null,r.canplayTimer=null,r.adaptRangeRes=[],r._isReceiveEndedEvent=!1,r._checkEndedTimer=null,r._definitionChangePointInfo=null,r._lastTimeupdateTime2=0,r.waitLevelStartTime=-1,r.timerStepList=[],r._isH265SoftDecoder=!1,r._beforeLoadStartCostTime=0,r._requestTimer=null,r.firstFrameCostTime={},r._mediaCodec={videoCodec:"",audioCodec:""},r._setTimelineData(),r._updatePropsByConfig(),r.player._customExpiryCheck=r.config.enableCusExpiryCheck,r._bindSrcTiming=BIND_SRC_TIMING.META_READY,r}return _inherits$8(t,EncryptBasePlugin),_createClass$a(t,[{key:"_setTimelineData",value:function(){this._startTimelines={startstage:-1,startmessage:"",httpCode:-1,httpError:[],reqtime:-1,downgradetime:-1,fcost:-1,ffcost:-1,startbufferlength:-1,playerError:"",startdelta:-1,loadstarttime:-1,loadeddatatime:-1,loadstarttype:-1,loadeddatatype:-1,playtime:-1,playerstate:-1},this._hasFirstFramed=!1}},{key:"setConfig",value:function(e){this.config=Object.assign(this.config,e),this.config.preferMMS=!0,this._updatePropsByConfig()}},{key:"_updatePropsByConfig",value:function(){this._maxBufferLength=this.config.maxBufferLength,this._minBufferLength=this.config.minBufferLength,this._nextBufferLength=this.config.nextBufferLength,this._switchBitRateWay=this.config.switchBitRateWay,this._tickInSeconds=this.config.tickInSeconds||DEFAULT_TICK_IN_SECONDS}},{key:"initLog",value:function(e){var n=this.config.logCacheConfig,r=n.logCacheLevel,i=n.logMaxSize;this.logger=new Logger$2(t.pluginName+e,{logCacheLevel:r,logMaxSize:i}),openLog&&Logger$2.enable()}},{key:"playerlogger",value:function(e){e?Logger$2.enable():Logger$2.disable()}},{key:"_setStartTimelines",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this._hasFirstFramed&&this._startTimelines){this._startTimelines.startstage=e,this._startTimelines.startmessage="".concat(START_TIMELINES_MESSAGE[e]||"","-").concat((null==t?void 0:t.message)||"");var n=this._startTimelines.httpCode;this._startTimelines.httpCode=-1!==n?n:(null==t?void 0:t.httpCode)||-1,e===START_TIMELINES.PLAYER_ERROR&&(this._startTimelines.playerError=(null==t?void 0:t.message)||"")}}},{key:"afterCreate",value:function(){var e=this,t=this.playerConfig,n=this.config,r=this.player;n.width=t.width||0,n.height=t.height||0,t.vid=t.vid||n.vid,"object"!==_typeof$5(n.reqParams)&&(n.reqParams={}),isMseMimeSupported('video/mp4; codecs="avc1.64001E, mp4a.40.5"',this.config.preferMMS)?(void 0===n.supportHevc&&null!=sniffer&&sniffer.isHevcSupported&&sniffer.isHevcSupported()&&this.player.video instanceof HTMLVideoElement&&(n.supportHevc=!0),void 0===n.supportVvcc&&(n.supportVvcc=isH266Supported()),this.softDecode?r.vtype=VTYPES.MP4_MSE_SOFT:r.vtype=VTYPES.MP4_MSE,isEMESupported()&&!this.softDecode||(n.useEME=!1),n.useEME=!(!1===n.useEME),this.checkConfig(),n.onlyInit&&(t.autoplay=!1,t.videoInit=!1,this._hasStartProgress=!1,this._hasStartProgressBack=!1),t.useWaterLevel&&(!t.userGestureEventMiddleware&&(t.userGestureEventMiddleware=userGestureEventMiddleware),!t.videoEventMiddleware&&r.setEventsMiddleware(videoEventMiddleware)),this._proxyPlayer(),r.useHooks("replay",this._replayHook),r.useHooks("play",this._playHook),r.useHooks("pause",this._pauseHook),r.useHooks("retry",this._retryHook),this.on("source_error",this._onSourceError),this.on("error",this._onSourceError),r.video.addEventListener(CUSTOM_EVENTS.BUFFERED_RESET,this._onBufferedReset),this._bindNetworkStateChange(),this.on(TIME_UPDATE,this._onVideoTimeUpdate),this.on(LOADED_DATA,(function(){var t;-1===e._startTimelines.loadeddatatime&&(e._startTimelines.loadeddatatime=util.nowTime(),e._startTimelines.loadeddatatype=r.vtype===VTYPES.MP4_MSE?1:2),e.loadedDataEventRev=!0,e.changeState("LOADED_DATA"),e.deleteVideo(),e.mp4&&e.mp4.updateLoadedDataDone(),e._onTimeUpdate(),null!==(t=e.config)&&void 0!==t&&t.enableFPSStuckHandle&&e.on(FPS_STUCK,e.fpsStuckHandle)})),this.on(LOAD_START,(function(){e.changeState("LOAD_START"),e._bindSrcTiming===BIND_SRC_TIMING.META_READY?e._beforeLoadStartCostTime=(new Date).getTime()-e._tm:e._beforeLoadStartCostTime=0,e.log(LogCacheLevel$1.LOG,"mp4plugin loadstart",e._beforeLoadStartCostTime),-1===e._startTimelines.loadstarttime&&(e._startTimelines.loadstarttime=util.nowTime(),e._startTimelines.loadstarttype=r.vtype===VTYPES.MP4_MSE?1:2),e.codecType!==CodecTypes.H265||e.config.supportHevc||(e._isMseInit=!0,e._onTimeUpdate())})),this.on(ENDED,(function(){e.log(LogCacheLevel$1.LOG,"mp4plugin receive player video ended event"),e._onEnded()})),this.on(PAUSE,(function(){e._usePaused=!0})),this.on(PLAY,(function(){e._usePaused=!1})),this.on(AUTOPLAY_STARTED,(function(){e._startTimelines&&(e._startTimelines.playtime=util.nowTime())})),this.on("xglog",(function(t){if("firstFrame"===t.eventType){var n=e.preLoadData&&e.preLoadData.definition?e.preLoadData.definition:-1,r=e.player;e._startTimelines.fcost=util.nowTime()-e._startTimelines.reqtime,e._startTimelines.ffcost=t.fvt,e._hasFirstFramed=!0,e.log(LogCacheLevel$1.DEBUG,"[xgplayer-encrypt-mp4]>>>>firstFrame ".concat(e.playerConfig.vid,", ").concat(t.fvt,", codecType: ").concat(e.codecType),"hitPreload: ".concat(e.hitpreload,", video: ").concat(e._useVideoLoad,", preloadBitrate: ").concat(n),"curDefinition: ".concat(r.curDefinition.definition))}})),r.mp4MseFlag=!0):this._setStartTimelines(START_TIMELINES.NOT_SUPPORTED)}},{key:"_startBufferCheck",value:function(){var e=this.player;if(e.video){var t=[];if(e.video.buffered){for(var n=0,r=e.video.buffered.length;n<r;n++)t.push([e.video.buffered.start(n),e.video.buffered.end(n)]);t.toString()!==this.lastBuffer&&(this.lastBuffer=t.toString(),this._onBufferReachThreshold())}}}},{key:"_onBufferReachThreshold",value:function(){var e=this.player,t=this.config;if(e.video){for(var n=e.video.buffered,r=0,i=0,a=0;a<n.length&&(r=n.start(a),i=n.end(a),!(r<=e.video.currentTime&&e.video.currentTime<=i));a++);i-e.video.currentTime>=t.bufferThreshold&&!this._hasTriggerBufferThreshold&&(this._hasTriggerBufferThreshold=!0,e.emit("BUFFER_THRESHOLD",i-e.video.currentTime))}}},{key:"_startUrlExpiredCheck",value:function(){var e,t=this.player;if(null!==(e=this.expiryCheckPlugin)&&void 0!==e&&null!==(e=e.config)&&void 0!==e&&e.useCdnExpiryTime){var n,r;null===(n=(r=this.expiryCheckPlugin).handleUrlExpiryCheckByCdnPath)||void 0===n||n.call(r)}else{var i=t.config;i.definition&&i.definition.list&&i.definition.list.length>0&&(this.urlExpireTimestamp=i.definition.list[0].url_expire||0,this._handleUrlExpire())}}},{key:"cancelLoading",value:(c=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(){var t,n;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.mp4){e.next=2;break}return e.abrupt("return");case 2:return this._cancelLoading=!0,this.log(LogCacheLevel$1.LOG,"player cancelLoading",this.playerConfig.vid),this._stopProgress(),null===(t=this.preloader)||void 0===t||null===(n=t.cancelLoading)||void 0===n||n.call(t),e.next=8,this.mp4.cancelLoading();case 8:case"end":return e.stop()}}),e,this)}))),function(){return c.apply(this,arguments)})},{key:"checkConfig",value:function(){var e=this.playerConfig,t=this.config,n=e.defaultDefinition,r=e.defaultBitrate;if(!n){var i=this.playerConfig.definition;n=i&&i.defaultDefinition?i.defaultDefinition:t.definition}!r&&t.bitrate&&(r=t.bitrate),e.defaultDefinition=n,e.defaultBitrate=r}},{key:"beforePlayerInit",value:function(){var e=this,t=this.player,n=this;this._isInit||(BasePlugin.defineGetterOrSetter(t,{__url:{get:function(){return n.mse?n.mse.url:t.config.url},configurable:!0},downloadSpeed:{get:function(){return _realTimeSpeed$2/8},configurable:!0},playerVersion:{get:function(){return version},configurable:!0},menuCodeType:{get:function(){return n.mp4&&n.mp4.meta?n.mp4.meta.videoCodec:n.codecType===CodecTypes.H264?"avc":"hevc"},configurable:!0},playerType:{get:function(){return"MP4"},configurable:!0},supportMenus:{get:function(){return{speed:null==t?void 0:t.mp4MseFlag,cdn:null==t?void 0:t.mp4MseFlag,resolution:null==t?void 0:t.mp4MseFlag}},configurable:!0},preloadActive:{get:function(){return e.isActive},set:function(t){e.isActive=t,e.isActive&&e._startProgress()},configurable:!0},performance:{get:function(){var t={};return e.states.forEach((function(e){t[e.state.toLowerCase()]=e.t2})),t},configurable:!0},domain:{get:function(){return n.domain},configurable:!0},loadURL:{get:function(){return n.loadURL},configurable:!0},abrInstance:{get:function(){return n.abrInstance},configurable:!0},pcdnReq:{get:function(){var e=PCDN.pcdnReqCnt,t=MP4_BASE.pcdnDownLoadReqCnt;return{pcdn_tracker_request_cnt:e.pcdn_tracker_request_cnt,pcdn_tracker_failed_cnt:e.pcdn_tracker_failed_cnt,pcdn_download_request_cnt:t.pcdn_download_request_cnt,pcdn_download_failed_cnt:t.pcdn_download_failed_cnt}},configurable:!0},retryInfo:{get:function(){return RETRY_INFO},configurable:!0},softDecoder:{get:function(){return e._isH265SoftDecoder},configurable:!0},logCache:{get:function(){var t,r,i;if(n.logger)return n.log(LogCacheLevel$1.LOG,"timerStepList, ".concat(JSON.stringify(e.timerStepList),",\n currentTime: ").concat(null===(t=n.player)||void 0===t?void 0:t.currentTime,"\n buffer, ").concat(JSON.stringify(n.getAllBufferRange()),",\n state: ").concat(JSON.stringify(n.states),",\n isActive:").concat(n.isActive,",\n preRangeType: ").concat(null===(r=n.player)||void 0===r||null===(r=r.preloader)||void 0===r||null===(r=r._config)||void 0===r?void 0:r.loadRangeType,",\n loadRangeType: ").concat(null===(i=n.config)||void 0===i?void 0:i.loadRangeType,",\n Mp4EncryptPlayer version, ").concat(version)),n.logger.getLogCache()},configurable:!0},pcdnVVStat:{get:function(){var e,t=n.mp4,r=n.pcdn;return t?_objectSpread2$7(_objectSpread2$7({},t.pcdnVVStat),{},{trace_id:null===(e=t.pcdnTraceInfo)||void 0===e?void 0:e.trace_id,cancelCnt:(null==t?void 0:t.pSCCancelCnt)||0,is_try_open:r?1:0}):null},configurable:!0},beforeLoadStartCostTime:{get:function(){return e.useVideoLoad?0:e._beforeLoadStartCostTime},configurable:!0},mediaCodec:{get:function(){return e._mediaCodec},configurable:!0},bandwidth:{get:function(){var e,t,r=n.mp4,i=r?r.loadInfo:null;return{vid:null===(e=n.playerConfig)||void 0===e?void 0:e.vid,cdn:{speed:null==i||null===(t=i[LOAD_TYPE.CDN])||void 0===t?void 0:t.loadSpeed,size:i&&i[LOAD_TYPE.CDN]?i[LOAD_TYPE.CDN].loadLen:0},pcdn:_objectSpread2$7({size:i&&i[LOAD_TYPE.PCDN]?i[LOAD_TYPE.PCDN].loadLen:0},null==r?void 0:r.pcdnTraceInfo)}},configurable:!0},ext:{get:function(){var e,t,r,i,a,o,l,d,c=[];if((null===(e=n.player)||void 0===e||null===(e=e.video)||void 0===e||null===(e=e.buffered)||void 0===e?void 0:e.length)>0)for(var s=n.player.video.buffered,U=0,F=(null==s?void 0:s.length)||0;U<F;U++)c.push([s.start(U),s.end(U)]);return{type:"MP4",version:version,usevideo:n.useVideoLoad?1:0,curTime:null===(t=n.player)||void 0===t?void 0:t.currentTime,duration:(null===(r=n.mp4)||void 0===r||null===(r=r.meta)||void 0===r?void 0:r.duration)||(null===(i=n.player)||void 0===i?void 0:i.duration),loadIdx:n._curLoadSegmentIdx,curload:null!==(a=n.mp4)&&void 0!==a&&a.adaptTimeRange?n.mp4.adaptTimeRange[n._curLoadSegmentIdx]:{},buffer:c,speed:null===(o=n.debugInfo)||void 0===o?void 0:o.speed,states:null==n?void 0:n.states,loadRangeType:null===(l=n.config)||void 0===l?void 0:l.loadRangeType,preRangeType:null===(d=n.player)||void 0===d||null===(d=d.preloader)||void 0===d||null===(d=d._config)||void 0===d?void 0:d.loadRangeType}},configurable:!0},currentDefinitionFromPlayer:{get:function(){return n.abrInstance&&n.abrInstance.isCurrentInAbr?t._currentDefinitionFromPlayer:t.curDefinition},configurable:!0},currentDefitionFromPlayer:{get:function(){return t.currentDefinitionFromPlayer},configurable:!0},startTimelines:{get:function(){if(e._startTimelines){var n=util.nowTime();e._startTimelines.startuploadtime=n;var r=t.vtype!==VTYPES.MP4_MSE?e._startTimelines.downgradetime:e._startTimelines.reqtime;if(e._startTimelines.startdelta=n-r,e._startTimelines.firstframedp=e._hasFirstFramed?1:0,e._startTimelines.playerstate=t.state,!e._hasFirstFramed){var i=t.getBufferedRange();e._startTimelines.startbufferlength=i[1]-i[0],e.emit(XGLOG_CACHE_EVENT)}}return JSON.parse(JSON.stringify(e._startTimelines))},configurable:!0}}),this._isInit=!0)}},{key:"destroy",value:function(){var e,t,n=this.player;n.preloader&&n.preloader.removePlayingId(n.playerId),n.removeHooks("replay",this._replayHook),n.removeHooks("play",this._playHook),n.removeHooks("pause",this._pauseHook),n.removeHooks("retry",this._retryHook),null===(e=this._requestTimer)||void 0===e||e.destroy(),this._requestTimer=null,this._reset(),this.states=[],this.checkReUseMSE(!1),this._secretkey&&(this._secretkey.off(index_minExports.EVENT_EME.ERROR,this._errorHandler),this._secretkey.destroy()),this.player.playNext=_playerPlayNext,this.player._startInit=_playerStartInit,this.player.changeDefinition=_playerChangeDefinition,this.player.switchURL=_playerSwitchUrl,this._unbindNetworkStateChange(),this._unbindEvents(),n.video&&n.video.removeEventListener(CUSTOM_EVENTS.BUFFERED_RESET,this._onBufferedReset),this._bufferCheckTimer&&clearInterval(this._bufferCheckTimer),this._removeBufferTimer&&(clearTimeout(this._removeBufferTimer),this._removeBufferTimer=null),(null===(t=this.logger)||void 0===t?void 0:t.reset)&&this.logger.reset(),this.__onmetadataHandle&&n.video.removeEventListener("loadedmetadata",this.__onmetadataHandle),this.timerStepList=[]}},{key:"_proxyPlayer",value:function(){var e=this;"function"==typeof this.player.playNext&&(_playerPlayNext=this.player.playNext),this.player.playNext=function(){e.playNext.apply(e,arguments)},_playerStartInit=this.player._startInit,_playerSwitchUrl=this.player.switchURL,_playerChangeDefinition=this.player.changeDefinition,this.player._startInit=this.playerStartInit.bind(this),this.player.switchURL=this.switchURL.bind(this),this.player.changeDefinition=this.changeDefinition.bind(this)}},{key:"getInitBitrate",value:function(){var e=this.player,t=this.playerConfig,n=null,r=e.definitionList;if(r&&r.length>0){var i={},a=e.preloader;if(a){var o=a.getPreloadMetaByVid(t.vid);if(o){var l=a.getDataUniqueKey(o),d=matchPreload(o,r);d?(d.cacheKey=l,(n=d).type="preload",n.preLoadMeta=o,i={m:1,t:2,ck:l}):i={m:0,t:1,ck:l}}}else i={t:0};if(this.changeState(LOAD_STATES.PRELOAD_CHECK,i),n&&t.userSelectDefinition&&t.focusUserDefinition){var c={m:1,ud:t.userSelectDefinition,d:n.definition};t.userSelectDefinition!==n.definition&&(n=null,c.m=1),this.changeState(LOAD_STATES.USER_DEFI_CHECK,c)}!n&&this.bitRateAdapter&&(this.bitRateAdapter.speed=MP4_BASE.speed,(n=this.getDefinitonFromAdapter(r,t.userSelectDefinition))&&(n.type="bitRateAdapter"))}if(!n||!n.url){var s,U=(null===(s=t.definition)||void 0===s?void 0:s.defaultDefinition)||t.defaultDefinition;if("Array"===util$1.typeOf(t.url)&&t.url.length>0||"String"===util$1.typeOf(t.url)&&t.url){var F=this._getDefinitionItem(U),u=t.defaultBitrate||t.bitrate||(null==F?void 0:F.bitrate);n={url:t.url,definition:(null==F?void 0:F.definition)||U||-1,duration:(null==F?void 0:F.duration)||t.duration||this.config.duration||0,bitrate:u,uri:t.uri||(null==F?void 0:F.uri),file_id:null==F?void 0:F.file_id,size:(null==F?void 0:F.size)||t.size,type:"default"}}else n=r[r.length-1]}return this.playerConfig.url=n.url,n.networkSpeed=MP4_BASE.speed,e.curDefinition=n,n}},{key:"_setPlayerSrc",value:function(e){var t=this.player;this._removeVideoSource();var n="Array"===util$1.typeOf(e);e=n?this._processArrayUrl(e):this._processUrl(e),n?(t.video.removeAttribute("src"),!t._detachSourceEvents&&e.forEach((function(e){t.video.appendChild(util$1.createDom("source","",{src:"".concat(e.src),type:"".concat(e.type||"")}))})),t._attachSourceEvents(t.video,e),t.play()):(t.video.src=e,t.play()),t.mp4MseFlag=!1,t.emit("playertypechange"),this._startTimelines.downgradetime=util.nowTime()}},{key:"_removeVideoSource",value:function(e){var t=this.player,n=(e=e||t.video).children;if(n.length>0)for(t._detachSourceEvents(e);n.length>0;)e.removeChild(n[0])}},{key:"_getDefinitionItem",value:function(e){var t=this.playerConfig;if(!t.definition||!t.definition.list)return null;for(var n=0;n<t.definition.list.length;n++){var r=t.definition.list[n];if(r.definition===e)return r}return null}},{key:"_initAbrDefinition",value:function(){var e=this.player,t=this.playerConfig;if(t.definition.list.length>0&&(e.curDefinition||(e.curDefinition=t.definition.list[0]),e.curDefinition.vwidth||Object.assign(e.curDefinition,this._getDefinitionItem(e.curDefinition.definition)),this._abrService.updateAbrCacheData()),this._abrService&&this._abrService.isCurrentAutoDefi){var n=t.definition.list.length;e.curDefinition=t.definition.list[n-1]}for(var r=0;r<t.definition.list.length;r++){var i=t.definition.list[r];e.curDefinition.definition===i.definition?i.selected=!0:i.selected=!1}this.player.emit("resourceReady",t.definition.list);var a=e.curDefinition.bitrate;if(!a)for(var o=0;o<t.definition.list.length;o++){var l=t.definition.list[o];l.definition===e.curDefinition.definition&&(a=l.bitrate)}this._abrService.updateBitrate(a)}},{key:"_initAbrService",value:(d=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(){var t,n;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.playerConfig,(n=this.config).autoBitrateOpts&&n.autoBitrateOpts.isOpenAutoDefi){e.next=3;break}return e.abrupt("return");case 3:return this._abrService=new AbrService(this,this.abrSwitchURL),e.next=6,this._abrService.init({video:t.definition.list.concat()});case 6:this._initAbrDefinition();case 7:case"end":return e.stop()}}),e,this)}))),function(){return d.apply(this,arguments)})},{key:"_initMp4Kernel",value:function(){var e=this,t=this.playerConfig,n=this.config,r=new ProxyPromise;try{var i=this.player.curDefinition;if(this.log(LogCacheLevel$1.LOG,"[_initMp4Kernel] ".concat(t.vid," curDefinition"),null==i?void 0:i.definition),!this._handlerUrl(t.url))return this.log(LogCacheLevel$1.LOG,"emptyUrl"),r.reject(new Error("emptyUrl")),r;if(n.forceVideoPlay&&(this.codecType===CodecTypes.H264||n.supportHevc))return this.useVideoLoad=!0,this.log(LogCacheLevel$1.LOG,"forceVideoPlay"),r.reject(new Error("forceVideoPlay")),r;var a=[];this._secretkey&&a.push(this._secretkey.getLicenseSecret()),a.push(this._checkPreloader()),Promise.all(a).then((function(t){if(e.isDestroy)r.reject(new Error("destroy"));else{var a=null;if(t&&t.length>0&&(t.length>1&&(!n.keyValue&&t[0].secretKey&&(n.secretKey=t[0].secretKey),n.decryptKey=t[0].decryptKey),a=t[t.length-1].data),a||!n.needPreloadCheck||e.codecType===CodecTypes.H265&&!n.supportHevc)if(e.vtype&&"MP3"===e.vtype)e.useVideoLoad=!0,e.log(LogCacheLevel$1.LOG,"vtype_not_MP4"),r.reject(new Error("vtype_not_MP4"));else{var o,l=n._mainURL;e._initMp4(l,a,{fileSize:i?i.size:0}),e.updateLoadInfo(null===(o=a)||void 0===o?void 0:o.cacheKey),e.checkPCDN(),e.initAdaptRange(),e._initAbrService()}else e.useVideoLoad=!0,e.log(LogCacheLevel$1.LOG,"no_preload"),r.reject(new Error("no_preload"))}})).catch((function(n){var a,o;e.log(LogCacheLevel$1.ERROR,"getLicense or checkPreloader reject",null==n?void 0:n.message,null==n?void 0:n.stack);var l,d=(null==n||null===(a=n.error)||void 0===a?void 0:a.code)||("getLicense"===n.method?ERROR_CODES.custom_drm:ERROR_CODES.other),c=(null==n?void 0:n.message)||(null==n||null===(o=n.error)||void 0===o?void 0:o.message)||"getLicense or checkPreloader reject";"getLicense"===n.method?(l=new Errors(e.player,{errorType:ERROR_TYPES.DRM,errorCode:d,errorMessage:c,vid:t.vid}),e.emit("GET_LICENSE_ERROR",l),e.changeState("LICENSE_ERROR",{d:i?i.definition:0})):l=new Errors(e.player,{errorType:ERROR_TYPES.OTHER,errorCode:d,errorMessage:c,vid:t.vid}),r.reject(l)}))}catch(e){r.reject(e)}return r}},{key:"updateLoadInfo",value:function(e){var t;e&&this.mp4&&(this.mp4.loadInfo=null===(t=this.preloader)||void 0===t?void 0:t.getLoadInfoAndDelete(e))}},{key:"initAdaptRange",value:function(){var e=this.config,t=this.player,n=this.playerConfig,r=t.curDefinition,i=r.bitrate,a=r.duration;null!=e&&e.adaptRange&&(this.adaptRange=new GopAdaptRange(t,i,a||n.duration,e.adaptRange))}},{key:"getPCDNReqId",value:function(){var e=this.player.curDefinition,t=this.playerConfig.vid;return e.uri?e.uri.slice(-20)+e.bitrate:t?t.slice(-20)+e.bitrate:void 0}},{key:"checkPCDN",value:function(){var e,t=this,n=this.config,r=this.player,i=this.mp4,a=r.curDefinition;if(null!==(e=n.pcdnConfig)&&void 0!==e&&e.openPCDN&&a.duration>=n.pcdnConfig.minDuration){var o;n.pcdnConfig.app_id&&(PRODUCT_CONFIG.app_id=n.pcdnConfig.app_id),n.pcdnConfig.sid&&(PRODUCT_CONFIG.sid=n.pcdnConfig.sid);var l=n._mainURL;if(!a.uri||!a.bitrate||l.indexOf("video/")<=0)return this.log(LogCacheLevel$1.LOG,"uri null or bitrate null or url not contain video cannot use pcdn"),void(this.pcdn=null);if(!isHTTPS(l))l=document.location.protocol+l;var d={vid:a.uri,sfid:a.file_id,cdn_url:l,file_type:null===(o=this.vtype||"MP4")||void 0===o?void 0:o.toLowerCase(),bitrate:a.bitrate,duration:Math.floor((null==a?void 0:a.duration)||0),size:(null==a?void 0:a.size)||util.getFileSize(a.bitrate,a.duration)};if(this.pcdn)this.pcdn.resetTrackeArgs();else{var c=Object.assign({},{productConfig:PRODUCT_CONFIG},n.pcdnConfig),s=d.bitrate,U=d.duration;this.pcdn=new PCDN(c,r,s,U)}this.pcdn.fetchPCDNNode(null,d,this.getPCDNReqId()).then((function(e){var n,r,a=t.getPCDNReqId();null!=e&&e.req_id&&a!==e.req_id?t.log(LogCacheLevel$1.LOG,",fetchPCDNNode is not match curDefinition reqId",a,", pcdnRet.req_id",e.req_id):i&&e&&(t.log(LogCacheLevel$1.LOG,"".concat(t.playerConfig.vid," get peer end,pcdn node update,"),null==e||null===(n=e.nodes)||void 0===n?void 0:n.length),i.updateNode(null==e?void 0:e.nodes),i.pcdnTraceInfo={uri:e.vid,fid:e.fid,trace_id:null==e?void 0:e.trace_id},i.pcdnVVStat&&(i.pcdnVVStat.try_req_node+=1,i.pcdnVVStat.req_node_succ+=1,i.pcdnVVStat.has_ret_node+=(null==e||null===(r=e.nodes)||void 0===r?void 0:r.length)>0?1:0))})).catch((function(e){(null==i?void 0:i.pcdnVVStat)&&(i.pcdnVVStat.try_req_node+=1),t.checkURLExpired(e,"_fetchPCDNNode")}))}else this.pcdn=null}},{key:"initTimer",value:function(){if(!this._requestTimer){var e=this.config.timerInWorker;this._requestTimer=new ControlTimer({frequency:this._tickInSeconds,timerInWorker:e}),this._requestTimer.on(TIMER_UPDATE_EVENT,this.timerHandle)}}},{key:"playerStartInit",value:(l=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t){var n,r,i,a,o,l,d,c,s,U,F,u,Q,R,h,p,B,S,f,m,V,y,E,Z,b,J,v,g,T=this;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.log(LogCacheLevel$1.LOG,"playerStartInit",this.player.hasStart,this.playerId,t),!this.isDestroy){e.next=4;break}return this._setStartTimelines(START_TIMELINES.START_INIT_DESTROY),e.abrupt("return");case 4:if(i=this.playerConfig,a=this.player,o=this.config,this.states=[],this._sTime=util.nowTime(),this._lastBufferPoint=void 0,this._usePaused=!1,this.isActive&&0!==(null==a?void 0:a.currentTime)&&(this.log(LogCacheLevel$1.LOG,"[playerStartInit] reset current = 0 ,buffer,",JSON.stringify(null==a||null===(l=a.buffered2)||void 0===l?void 0:l.bufferedList)),this.player.currentTime=0),this._isH265SoftDecoder=this.softDecode,o.reUseMSE&&this.mse&&"String"===util$1.typeOf(t)&&/^blob/.test(t)&&t!==this.mse.url&&(t=i.url,this.destroyMSE()),t&&"__auto__"!==t&&"anytext"!==t||(d=i.definition)&&d.list&&d.list.length>0&&d.defaultDefinition&&(d.list.map((function(e){e.definition===d.defaultDefinition&&(i.url=e.url,T.player.curDefinition=e)})),i.url&&"__auto__"!==t&&"anytext"!==t||(c=d.list[0],t=c.url,i.url=c.url,d.defaultDefinition=c.definition,this.player.curDefinition=c)),this.initTimer(),s=a.oldBit,U=this._defInited?null:this.getInitBitrate(),a.oldBit=null==a||null===(n=a.curDefinition)||void 0===n?void 0:n.bitrate,a.changeDefinitionFlag||!s||s===(null==a||null===(r=a.curDefinition)||void 0===r?void 0:r.bitrate)){e.next=23;break}if(!this.mp4){e.next=22;break}return this.canDownload=!1,e.next=22,this.mp4.cancelLoading();case 22:if(this.mse){this.once(LOAD_START,(function(){T.log(LogCacheLevel$1.LOG,"playerStartInit changeBtrate changeDefinitionSeekState = 1, currentTime += 0.001"),a.changeDefinitionSeekState=1,T.player.currentTime+=.001}));try{this.mse.clearOpQueues(MSE.VIDEO),this.mseAbort(),this.mse.remove(MSE.VIDEO,0,1/0).then((function(){T.log(LogCacheLevel$1.LOG,"playerStartInit remove all buffer end")}))}catch(e){this.log(LogCacheLevel$1.LOG,"playerStartInit mse func err, ".concat(null==e?void 0:e.message))}}case 23:if(a.changeDefinitionFlag=void 0,F=this.config,u=F.kid,Q=F.drmKeyToken,R=F.secretKey,h=F.keyValue,p=F.drm,u||Q||R||h||p?this._secretkey?this._secretkey.updateConfig(this.config):(this._secretkey=new index_minExports.XGSecretKey(this.config),this._secretkey.on(index_minExports.EVENT_EME.ERROR,this._errorHandler)):this._secretkey=null,this._defInited=!0,this.log(LogCacheLevel$1.LOG,"[playerStartInit] ".concat(i.vid," curDefinition"),U||this.player.curDefinition),B=this.player,S=B.preloader,f=B.playerId,S&&S.addPlayingId(i.vid,f),!o.needPreloadCheck||this.softDecode||this._secretkey||(m=!1,V="",S&&(y=this.player.curDefinition,E=getPreloadMeta(y),Z=S.hasItemSameVid(E),V=S.getDataUniqueKey(E),Z&&(m=!0)),m||(b=S?"no preload data":"no preloader",this.useVideoLoad=!0,this.player.vtype=VTYPES.MP4_0,this._setStartTimelines(START_TIMELINES.NO_PRELOAD,{message:VTYPES.MP4_0}),this.log(LogCacheLevel$1.LOG,"[playerStartInit] ".concat(i.vid," ").concat(b),!!S),J=new Errors(this.player,{errorType:"runtime",errorTypeCode:ERROR_TYPES.runtime,errorCode:ERROR_CODES.other,vid:this.playerConfig.vid,errorMessage:b}),this.changeState(LOAD_STATES.PRELOAD_MATCH,{m:0,ck:V}),this.player.emit("playCatch",this.player.vtype,J))),!this.useVideoLoad){e.next=39;break}if(t=this.playerConfig.url,!o.closeDowngrade){e.next=36;break}return this._setStartTimelines(START_TIMELINES.CLOSE_DWNGRADE,{message:"isDestroy"}),e.abrupt("return");case 36:return this._playerStartInitCall(t),this._startProgress(),e.abrupt("return");case 39:if(!this.isDestroy){e.next=42;break}return this._setStartTimelines(START_TIMELINES.START_INIT_DESTROY,{message:"isDestroy"}),e.abrupt("return");case 42:this.player.mp4MseFlag=!0,this._tm=(new Date).getTime(),this._reset(),v=this.playerConfig.vid,this.changeState("PLAYER_START_INIT"),this.mse||o.bindSrcTiming!==BIND_SRC_TIMING.INIT?this._bindSrcTiming=BIND_SRC_TIMING.META_READY:(this._bindSrcTiming=BIND_SRC_TIMING.INIT,this.log(LogCacheLevel$1.LOG,"playerStartInit new MSE",this._bindSrcTiming),this.mse=new MSE(this.player.video,{preferMMS:this.config.preferMMS})),g=this._initMp4Kernel(),this._initPromise=g,this._addPendingPromise(this._initPromise),g.then((function(){T.isDestroy?T._setStartTimelines(START_TIMELINES.START_INIT_DESTROY,{message:"then destroy"}):(T.mse&&(t=T.mse.url),T.changeState("PLAY_INIT_OK"),T._bindEvents(),T._startProgress())})).catch((function(e){var n,r,i=!!T._initPromise&&T._initPromise.isBreak;if(!T.isDestroy&&!i&&e!==DESTROYED){if(T.log(LogCacheLevel$1.LOG,"_initMp4Kernel.catch: ".concat(v," isDestroy:").concat(T.isDestroy,",\n errorCode:").concat((null==e?void 0:e.errorCode)||ERROR_CODES.other,",errMsg:").concat((null==e?void 0:e.errorMessage)||(null==e?void 0:e.message))),(null==e?void 0:e.errorCode)===ERROR_CODES[403]&&(T._setStartTimelines(START_TIMELINES.HTTP_ERROR,{message:"request 403",httpCode:403}),T._emitExpireEvent(e)&&o.urlExpireDisableErrorEvent))return T._initPromise=null,T.log(LogCacheLevel$1.LOG,"initMp4Kernel urlExpireDisableErrorEvent",o.urlExpireDisableErrorEvent,",errorCode,",e.errorCode),T._stopProgress(),void T.emit(XGLOG_CACHE_EVENT);var a=e;a.errorCode||((a=new Errors(T.player,{errorType:ERROR_TYPES.RUNTIME,errorCode:(null==e?void 0:e.errorCode)||ERROR_CODES.other,vid:T.playerConfig.vid,errorMessage:(null==e?void 0:e.errorMessage)||(null==e?void 0:e.message),mediaError:{code:(null==e?void 0:e.httpCode)||ERROR_CODES.other,message:(null==e?void 0:e.errorMessage)||(null==e?void 0:e.message),errorType:null==e?void 0:e.errorType}})).url=t),T._setStartTimelines(START_TIMELINES.INIT_PROMISE_CATCH,{message:(null==e?void 0:e.errorMessage)||(null==e?void 0:e.message)}),T.changeState("PLAY_INIT_CATCH",{c:a.errorCode,m:(null==e?void 0:e.errorMessage)||(null==e?void 0:e.message),t:null==e?void 0:e.errorType}),T.useVideoLoad=!0,T.player.vtype=VTYPES.MP4_1,T.player.emit("playCatch",T.player.vtype,a);var l=T.checkIsDegraded(a);return T.log(LogCacheLevel$1.WARN,"PLAY_INIT_CATCH final error !!!!, ",v,null===(n=a)||void 0===n?void 0:n.errorCode,null===(r=a)||void 0===r?void 0:r.errorMessage,",degrade:",l),T.emit(XGLOG_CACHE_EVENT),l?void 0:(T.player.pause(),T._reset(),T.states=[],T.emit("error",a),void(T._initPromise=null))}var d="isDestroy:".concat(T.isDestroy,",isBreak:").concat(i,",e:").concat(e);T._setStartTimelines(START_TIMELINES.INIT_PROMISE_CATCH,{message:d})})).finally((function(){var e;if(T._initPromise){var n=T._initPromise.isBreak;T._initPromise&&T._removePendingPromise(T._initPromise),T._initPromise=null,T._usePaused&&(T.playerConfig.autoplay=!1),T.softDecode&&"Array"===util$1.typeOf(t)&&(t=t[0].src),"String"!==util$1.typeOf(t)||/^blob/.test(t)||T.destroyMSE();var r=(null===(e=T.player)||void 0===e?void 0:e.currentSrc)===t;T.changeState("PLAY_INIT_FINALLY",{isDestroy:T.isDestroy,isBreak:n,reUseSrc:r}),!T.isDestroy&&!n&&T._playerStartInitCall(t),T._bindSrcTiming===BIND_SRC_TIMING.META_READY&&T.reUseMSEEmitEvents(r),T._abrService&&T._abrService.isCurrentInAbr()&&(T._abrService.enable(),T._abrService.execute())}}));case 52:case"end":return e.stop()}}),e,this)}))),function(e){return l.apply(this,arguments)})},{key:"_playerStartInitCall",value:function(e){e="Array"===util$1.typeOf(e)?this._processArrayUrl(e):this._processUrl(e),_playerStartInit.call(this.player,e),this._startTimelines.downgradetime=util.nowTime()}},{key:"destroyMSE",value:function(){var e=this;if(this.mse)try{this.mse.clearOpQueues(MSE.VIDEO);var t=this.mse.abort();if(!t)return;t.then(_asyncToGenerator$6(_regeneratorRuntime$6().mark((function t(){var n,r;return _regeneratorRuntime$6().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,null===(n=e.mse)||void 0===n?void 0:n.unbindMedia();case 2:e.mse&&e.log(LogCacheLevel$1.LOG,"destroyMSE ",null===(r=e.playerConfig)||void 0===r?void 0:r.vid),e.mse=null;case 4:case"end":return t.stop()}}),t)})))).catch((function(){}))}catch(e){}}},{key:"reUseMSEEmitEvents",value:function(e){var t,n=this;e&&/^blob/.test(null===(t=this.player)||void 0===t?void 0:t.currentSrc)&&(clearTimeout(this.loadstartTimer),clearTimeout(this.loadeddataTimer),clearTimeout(this.canplayTimer),this.loadstartTimer=setTimeout((function(){clearTimeout(n.loadstartTimer),n.loadstartTimer=null,n.emit(LOAD_START),n.log(LogCacheLevel$1.LOG,"reUseMSE add emit loadstart event")}),10),this.loadeddataTimer=setTimeout((function(){clearTimeout(n.loadeddataTimer),n.loadeddataTimer=null,n.emit(LOADED_DATA),n.log(LogCacheLevel$1.LOG,"reUseMSE add emit loadeddata event")}),50),this.canplayTimer=setTimeout((function(){clearTimeout(n.canplayTimer),n.canplayTimer=null,n.emit(CANPLAY),n.log(LogCacheLevel$1.LOG,"reUseMSE add emit canplay event")}),90))}},{key:"playNext",value:function(e){var t=this,n=this.player;this._setTimelineData(),this._defInited=!1,this._hasTriggerBufferThreshold=!1,n.resetState(),n._currentTime=0,n._duration=0,n.isPlaying=!1,this._useVideoLoad=!1,this._MSEError=!1;var r=this.softDecode;n.pause(),this._reset(),this.states=[],e.vtype&&(this.vtype=e.vtype.toUpperCase()),n.setConfig(e),this.checkReUseMSE(this.config.reUseMSE,!0),this.softDecode?n.vtype=VTYPES.MP4_MSE_SOFT:n.vtype=VTYPES.MP4_MSE,this.codecType=this.playerConfig.codecType?this.playerConfig.codecType.toLowerCase():CodecTypes.H264,r!==this.softDecode&&this.h265_h264_switch(this.playerConfig.mediaType||"video"),this.checkConfig(),this.log(LogCacheLevel$1.LOG,"[Index] playNext",e.vtype,e.vid),n.start(),this.config.reUseMSE&&(this.isH265DegradeH264||(this.__onmetadataHandle=function(){t.log(LogCacheLevel$1.LOG,"[Index] playNext metadata update currentTime = 0"),0!==n.currentTime&&(n.currentTime=0),n.video.removeEventListener("loadedmetadata",t.__onmetadataHandle),t.__onmetadataHandle=null},n.video.addEventListener("loadedmetadata",this.__onmetadataHandle))),this.emit("playnext")}},{key:"h265_h264_switch",value:function(e){this.log(LogCacheLevel$1.LOG,"[Index],h265_switch_h264",e);var t=this.player,n=util$1.createDom(e,"",this.getVideoConfig(this.playerConfig),"xgplayer-".concat(e,"-img"));this.removeVideoList.push(t.video),n.muted=t.video.muted,n.volume=t.video.volume,t.media?t.media=n:t.video=n,t.attachVideoEvents(t.video)}},{key:"getVideoConfig",value:function(e){var t=Object.assign({},{controls:!1,autoplay:e.autoplay,playsinline:e.playsinline,"x5-playsinline":e.playsinline,"webkit-playsinline":e.playsinline,"x5-video-player-fullscreen":e["x5-video-player-fullscreen"]||e.x5VideoPlayerFullscreen,"x5-video-orientation":e["x5-video-orientation"]||e.x5VideoOrientation,airplay:e.airplay,"webkit-airplay":e.airplay,tabindex:2,mediaType:e.mediaType||"video"},e.videoConfig,e.videoAttributes);return e.loop&&(t.loop="loop"),t}},{key:"next",value:function(e){this.playNext(e)}},{key:"oldChangeDefinition",value:(o=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t,n){var r,i,a,o,l,d,c,s,U,F,u,Q,R=this;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=this.config,l=this.player,d=this.playerConfig,l.changeDefinitionFlag=!0,l.emit(DEFINITION_CHANGE,{from:n,to:t}),l.emit(WAITING),c=l.definitionList,s=c.filter((function(e){return e.definition===t.definition||e.definition===Number(t.definition)})),(U=c.filter((function(e){return e.definition===n.definition||e.definition===Number(n.definition)}))).length>0&&(U[0].selected=!1),!(s.length>0)){e.next=13;break}(t=s[0]).selected=!0,e.next=14;break;case 13:return e.abrupt("return");case 14:return l.curDefinition=t,this.log(LogCacheLevel$1.LOG,"[oldChangeDefinition],currentTime,",l.currentTime,",from,",n,",to,",t),F=l.currentTime,(u=l.paused)&&(this.config.autoplayBack=d.autoplay,d.autoplay=!1),this._changeDefState={currentTime:F,paused:u},o.definition=t.definition,["keyValue","kid","secretKey","drm","getLicenseUrl","drmKeyToken","sessionId"].forEach((function(e){o[e]=t[e]})),e.next=24,null===(r=this.mp4)||void 0===r?void 0:r.cancelLoading();case 24:if(null===(i=this.mse)||void 0===i||i.clearOpQueues(MSE.VIDEO),Q=null===(a=this.mse)||void 0===a?void 0:a.abort(MSE.VIDEO)){e.next=28;break}return e.abrupt("return");case 28:Q.then((function(){d.url=t.url,d.userSelectDefinition=t.definition,d.defaultDefinition=t.definition,l.currentTime=0,l.pause(),R._reset(),R.states=[],R.checkReUseMSE(!1),R._isMseInit=!1,R.eme=null,R._handlerUrl(t.url),R.once(CANPLAY_THROUGH,(function(){void 0!==R.config.autoplayBack&&R.config.autoplayBack!==d.autoplay&&(d.autoplay=R.config.autoplayBack,R.config.autoplayBack=void 0)})),l.video.removeEventListener("loadedmetadata",R._changeDefineCanPlay),R._changeDefineCanPlay=function(){R.changeDefineCanPlay(F,u,n,t),l.video.removeEventListener("loadedmetadata",R._changeDefineCanPlay)},l.video.addEventListener("loadedmetadata",R._changeDefineCanPlay),l.video.load(),R.playerStartInit(d.url)})).catch((function(){}));case 29:case"end":return e.stop()}}),e,this)}))),function(e,t){return o.apply(this,arguments)})},{key:"_emitDefinitionChangeDetailEvent",value:function(e){var t=this._currDefinition,n=t.bitrate,r=t.definition,i=t.file_id,a=t.width,o=t.vwidth,l=t.height,d=t.vheight;this.player.emit("definitionChangeDetail",{start:e,bitrate:n,definition:r,mediaType:"video",url:this.config._mainURL,fileid:i});var c={width:a||o,height:l||d};this.player.emit("RESOLUTION_UPDATE",c)}},{key:"getCurGopEndTime",value:function(e){var t=this.player;if(!t)return 0;var n=this.mp4,r=n.getFragmentIdx(e||t.currentTime);return n.timeRange[r].endTime}},{key:"_setCurrentDefinition",value:function(e){var t=this.player.config;if(t.definition&&t.definition.list){var n=t.definition.list.filter((function(t){return t.bitrate===e.bitrate||t.definition===e.definition}));this._currDefinition=n&&n[0]}this._currDefinition||(this._currDefinition={})}},{key:"switchURL",value:function(e,t){var n=this;if(t&&"object"===_typeof$5(t)&&t.action===SWITCH_ACTION.UPDATE_URL)this._updateURL({url:null==e?void 0:e.url});else if(this.useVideoLoad)_playerSwitchUrl.call(this.player,e);else{var r=this.player,i=this.config;r.config.definition.list=[e],r.config.url=e.url,r.config.defaultBitrate=e.bitrate,r.config.defaultDefinition=e.definition;["keyValue","kid","secretKey","drm","getLicenseUrl","drmKeyToken","sessionId"].forEach((function(t){i[t]=e[t]})),this.__onmetadataHandle=function(){r.currentTime=0,r.video.removeEventListener("loadedmetadata",n.__onmetadataHandle),n.__onmetadataHandle=null},r.video.addEventListener("loadedmetadata",this.__onmetadataHandle),this.playNext(i)}}},{key:"_updateURL",value:function(e){var t=this.player,n=this.config,r=(e||{}).url;return!(!t||!r)&&(t.config.url=r,t.curDefinition&&(t.curDefinition.url=r),this._handlerUrl(r),!this.useVideoLoad&&this.mp4?(this.mp4.updateUrl(n._mainURL,n._backupURL),!0):!!this.useVideoLoad&&(_playerSwitchUrl.call(this.player,r),!0))}},{key:"_handlerUrl",value:function(e){var t,n=this.config,r=this.playerConfig;if(!e)return!1;var i=[];if("String"===util$1.typeOf(e))t=e,r.backupURL&&i.push(r.backupURL);else if("Array"===util$1.typeOf(e)&&e.length>0&&(t=e[0].src,e.length>1))for(var a=1;a<e.length;a++){var o=this._processUrl(e[a].src);i.push(o)}return!(!t&&0===i.length)&&(n._mainURL=this._processUrl(t),n._backupURL=i,!0)}},{key:"_processUrl",value:function(e){var t=this.config,n=this.playerConfig,r=util.extUrl(e,_objectSpread2$7({__vid:n.vid},t.reqParams));if(n&&"function"==typeof n.preProcessUrl){var i=n.preProcessUrlOptions||{};r=n.preProcessUrl(r,i).url}return r}},{key:"_processArrayUrl",value:function(e){var t=this;return e.map((function(e){return _objectSpread2$7(_objectSpread2$7({},e),{},{src:t._processUrl(e.src)})}))}},{key:"_bindEvents",value:function(){var e=this;this.log(LogCacheLevel$1.LOG,"bindEvents,",this._isEventInit);var t=this.config,n=this.player;this._isEventInit||(this.on("seeking",this._onSeeking),this.on("waiting",this._onWaiting),this.on("error",this._onVideoError),this.on("playing",this._onPlaying),this.on("detectGap",(function(){t.gapDegrade&&t.useEME&&(t.useEME=!1,e._replay())})),this.on(SHARED_EVENTS.CHANGE_FLYING_PLUGIN_CONFIG,this._onChangeConfig),n.setEventsMiddleware({error:function(t,r){var i,a,o,l,d,c,s={errorCode:null==t||null===(i=t.error)||void 0===i?void 0:i.code,errorMessage:null==t||null===(a=t.error)||void 0===a?void 0:a.message,videoType:e.useVideoLoad};(e.changeState("video_error.Middleware",s),e._setPlayerError(s),e.codecType===CodecTypes.H265&&(null==t||null===(o=t.error)||void 0===o?void 0:o.message.indexOf("video decoder initialization failed"))>=0)&&e.emit("DECODER_FAILED",{codecType:e.config.codecType,vid:null===(l=e.playerConfig)||void 0===l?void 0:l.vid,message:null==t||null===(d=t.error)||void 0===d?void 0:d.message});if(e.log(LogCacheLevel$1.ERROR,"error middleware",JSON.stringify(s),", isDegrade,",!e._MSEError&&!e.useVideoLoad,n.currentTime),!e._MSEError&&!e.useVideoLoad)return n.vtype=VTYPES.MP4_2,e._MSEError=!0,null===(c=e.mp4)||void 0===c||c.cancelLoading(),e._startDegradedPlayback(s,n.paused),void e.emit(XGLOG_CACHE_EVENT);e.emit(XGLOG_CACHE_EVENT),e.useVideoLoad&&r(t.eventName,null==t?void 0:t.error)}})),this._isEventInit=!0}},{key:"getBufferDur",value:function(){var e;if(null===(e=this.player)||void 0===e||!e.buffered)return 0;for(var t=this.player.buffered,n=0,r=0,i=t.length;r<i;r++)n+=t.end(r)-t.start(r);return n}},{key:"deleteVideo",value:function(){var e;if((null===(e=this.removeVideoList)||void 0===e?void 0:e.length)>0){for(var t=0;t<this.removeVideoList.length;t++){var n=this.removeVideoList[t],r=n.parentNode;r&&r.removeChild(n),this.log(LogCacheLevel$1.WARN,"[_removeVideoSource]")}this.removeVideoList=[]}}},{key:"_unbindEvents",value:function(){var e,t;this.log(LogCacheLevel$1.LOG,"unbindEvents,",this._isEventInit),this.off("seeking",this._onSeeking),this.off("waiting",this._onWaiting),this.off("ended",this._onEnded),this.off("error",this._onError),this.off("playing",this._onPlaying),this.off(SHARED_EVENTS.CHANGE_FLYING_PLUGIN_CONFIG,this._onChangeConfig),this._isEventInit=!1,null!==(e=this.config)&&void 0!==e&&e.enableFPSStuckHandle&&this.off(FPS_STUCK,this.fpsStuckHandle),null!==(t=this.playerConfig)&&void 0!==t&&t.fixOOM&&(this.off("source_error",this._onSourceError),this.off("error",this._onSourceError))}},{key:"changeState",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._pTime||(this._pTime=util.nowTime());var n=util.nowTime()-this._pTime,r=util.nowTime()-this._sTime;this.log(LogCacheLevel$1.LOG,">>>changeState[".concat(e,"]"),n,r,JSON.stringify(t)),this.states.push({state:e,t1:n,t2:r,data:t}),this._pTime=util.nowTime()}},{key:"_initMseProxy",value:function(){var e,t=this.player.video||this.player.media;(t instanceof HTMLVideoElement&&this.h265_h264_switch(this.playerConfig.mediaType),this.softDecode&&t)&&(this.mseProxy=t,null===(e=t.setPlayMode)||void 0===e||e.call(t,"VOD"),t.addEventListener("lowdecode",this._lowDecoder),t.addEventListener("error",this._onError),this.player.forceDegradeToVideo=function(){})}},{key:"notSupportError",value:function(e){return this.log(LogCacheLevel$1.LOG,e,MSE_NOT_SUPPORT),new Errors(this.player,{errorType:ERROR_TYPES.MEDIA,errorCode:ERROR_CODES.mse,errorMessage:"".concat(e," ").concat(MSE_NOT_SUPPORT),vid:this.playerConfig.vid})}},{key:"removeAndRejectInitPromise",value:function(e){this._initPromise&&(this._removePendingPromise(this._initPromise),this._initPromise.reject(e))}},{key:"_initMp4",value:function(e,t){var n,r,i,a,o,l,d=this,c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=this.config,U=this.player,F=this.playerConfig;this.mp4&&(this.mp4.destroy(),this.mp4=null),this._startTimelines.reqtime=util.nowTime(),this.changeState("MP4_NEW",{});var u,Q=0;null!=s&&null!==(n=s.pcdnConfig)&&void 0!==n&&n.openPCDN&&(Q=(null==s||null===(u=s.pcdnConfig)||void 0===u?void 0:u.switchPCDNMaxCnt)||2);null!=s&&null!==(r=s.pcdnConfig)&&void 0!==r&&r.adaptPCDNConfig&&null!=s&&null!==(i=s.pcdnConfig)&&void 0!==i&&null!==(i=i.adaptPCDNConfig)&&void 0!==i&&i.PCDNBufferControl&&(Q=0),this._setCurrentDefinition(U.curDefinition);var R=MP4_GOP;(null==s?void 0:s.loadRangeType)===LOAD_RANGE_TYPE.SIZE&&(R=MP4_SIZE);var h,p=null===(a=U.curDefinition)||void 0===a||null===(a=a.pktOffsetMap)||void 0===a?void 0:a.find((function(e){return(null==e?void 0:e.time)===((null==s?void 0:s.firstLoadTimePos)||DEFAULT_FIRST_LOAD_TIME_POS)})),B=s.enableWorker,S=s.useUrlRange,f=s.retryCount,m=s.retryDelay,V=s.timeout,y=s.processMaxGapTime,E=s.onProcessMinLen,Z=s.supportHevc,b=s.afterLoadeddataCallBackLen,J=s.firstLoadBuffer,v=s.memoryOpt,g=s.emitMediaListControl,T=s.reqOptions,W=s.audioGroupingStrategy,k=s.fixEditListOffset,N=s.fixEditListOffsetThreshold,C=s.isAddRange,I=s.disableRepeatRange,L=s.alwaysStreamingLoad,_=s.loadRangeType;(this.mp4=new R(e,U.curDefinition.bitrate,{segmentDuration:s.segmentMinDuration,enableWorker:B,softDecode:this.softDecode,codecType:this.codecType,chunkSize:s.preloadSize,firstLoadSize:null==p?void 0:p.offset,duration:F.duration||0,fileSize:c.fileSize||0,playerId:this.playerId,vid:F.vid,useUrlRange:S,retryCount:f,retryDelay:m,timeout:V,processMaxGapTime:y,onProcessMinLen:E,supportHevc:Z,afterLoadeddataCallBackLen:b,firstLoadBuffer:J,logger:this.logger,memoryOpt:v,emitMediaListControl:g,switchPCDNMaxCnt:Q,reqOptions:T,audioGroupingStrategy:W,fixEditListOffset:k,fixEditListOffsetThreshold:N,isAddRange:C,disableRepeatRange:I,alwaysStreamingLoad:L,loadRangeType:_},this.config._backupURL,""),this.mp4.once(MP4_EVENTS.META_READY,this._onMp4MetaReady),this.mp4.on(MP4_EVENTS.ERROR,this._onMp4Error),this.mp4.on(MP4_EVENTS.UPDATE_EME,this._updateDrmConfig),this.mp4.on(MP4_EVENTS.INIT_MSE,this._updateMSE),this.mp4.on(MP4_EVENTS.TASK_PROGRESS,this._onMp4Progress),this.mp4.on(MP4_EVENTS.MOOV_REQ_PROGRESS,this._onMp4DataCallBack),this.mp4.on(MP4_EVENTS.LOAD_ERROR,(function(e){var t;null===(t=d.player)||void 0===t||t.emit("source_error",e)})),this.mp4.on(MP4_EVENTS.RESPONSE_INFO,(function(e){var t;null===(t=d.player)||void 0===t||t.emit(CUSTOM_EVENTS.MSE_RESPONSE_INFO,e)})),this.mp4.on(MP4_EVENTS.REMOVE_PCDN_NODE,(function(e){d.pcdn&&e&&d.pcdn.removePCDNNode(e.vid,e.bitrate,e.url)})),this.mp4.on(MP4_EVENTS.CHANGE_URL,(function(e){d.player&&(d.player.emit("initialUrl",{url:e}),d.player.emit("changeHost",util.getHostFromUrl(e)))})),this.mp4.on(MP4_EVENTS.UPDATE_LOAD_IDX,function(){var e=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t){var n;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,null===(n=d.mp4)||void 0===n?void 0:n.cancelLoading();case 2:d._curLoadSegmentIdx=t,d.log(LogCacheLevel$1.LOG,"[update curLoadSegmentIdx]",t);case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),this.mp4.on(MP4_EVENTS.CANCEL_LOADED_LEN,(function(e){var t;if(d.player){var n,r=F.vid,i=(null==e?void 0:e.load_type)||LOAD_TYPE.CDN,a=null===(t=d.mp4)||void 0===t?void 0:t.getCurSwitchPCDNCnt(),o=d._currDefinition,l=o.bitrate,c=o.definition,s=o.file_id;if(i===LOAD_TYPE.CDN)d.player.emit("prf_data_size",{vid:r,task_type:1,cdn_size:e.len,change_cnt:a,definition:c,bitrate:l,fileid:s});else d.player.emit("prf_data_size",{vid:r,task_type:1,pcdn_size:e.len,trace_id:null===(n=d.mp4)||void 0===n||null===(n=n.pcdnTraceInfo)||void 0===n?void 0:n.trace_id,change_cnt:a,definition:c,bitrate:l,fileid:s});d.mp4&&d.mp4.updateLoadInfo(i,e.len),openTestLog&&console.log("prf_data_size emit, vid,",r,",loadType,",i,", task_type, 1",",len,",e.len)}})),this.mp4.MP4Loader.on(REAL_TIME_SPEED_EVENT,(function(e){var t,n;_realTimeSpeed$2=e.speed,d.debugInfo.speed||(d.debugInfo.speed=[]),d.debugInfo.speed.push(_realTimeSpeed$2),d.debugInfo.speed.length>10&&d.debugInfo.speed.shift();var r=(null==e||null===(t=e.priOptions)||void 0===t?void 0:t.type)||LOAD_TYPE.CDN;d.emit(REAL_TIME_SPEED_EVENT,_objectSpread2$7(_objectSpread2$7({},e),{},{type:r}));var i=(null===(n=d.playerConfig)||void 0===n?void 0:n.vid)||(null==e?void 0:e.vid);if((null==e?void 0:e.len)>0){var a,o,l,c;if(!d.player)return;var s=(null==e||null===(a=e.priOptions)||void 0===a?void 0:a.type)||LOAD_TYPE.CDN,U=calculateSpeed$2(e.len,e.time),F=(null===(o=d.adaptRangeRes)||void 0===o?void 0:o.length)>0?d.adaptRangeRes.shift():{},u=F.cachedBufferDur,Q=F.loadTarDuration,R=F.loadDuration,h=F.forceSetMin,p=F.idx,B=F.PCDNInBuffer,S=F.PCDNOutBuffer,f=F.loadSize,m=null===(l=d.mp4)||void 0===l?void 0:l.getCurSwitchPCDNCnt(),V=d._currDefinition,y={vid:i,task_type:1,buffer_dur:u||-1,load_tar_dur:Q||-1,load_dur:R||-1,force_set_min:h,in_buf:B||-1,out_buf:S||-1,change_cnt:m,bitrate:V.bitrate,definition:V.definition,fileid:V.file_id,load_size:f||-1};s===LOAD_TYPE.CDN?(y.cdn_size=e.len,y.cdn_speed=U):(y.pcdn_size=e.len,y.pcdn_speed=U),d.player.emit("prf_data_size",y),openTestLog&&console.log("prf_data_size emit,",p,JSON.stringify(y));var E=e.index?null===(c=d.mp4)||void 0===c||null===(c=c.adaptTimeRange[e.index])||void 0===c||null===(c=c.timeRangeIdx)||void 0===c?void 0:c[1]:null;if(E&&E>=d.mp4.timeRange.length-1)for(;(null===(Z=d.adaptRangeRes)||void 0===Z?void 0:Z.length)>0;){var Z,b,J=d.adaptRangeRes.shift(),v=J.cachedBufferDur,g=J.loadTarDuration,T=J.loadDuration,W=J.forceSetMin,k=J.idx,N=J.loadSize,C=J.PCDNInBuffer,I=J.PCDNOutBuffer,L=null===(b=d.mp4)||void 0===b?void 0:b.getCurSwitchPCDNCnt();y.buffer_dur=v||-1,y.load_tar_dur=g||-1,y.load_dur=T||-1,y.force_set_min=W||-1,y.in_buf=C||-1,y.out_buf=I||-1,y.load_size=N||-1,y.change_cnt=L,d.player.emit("prf_data_size",y),openTestLog&&console.log("prf_data_size emit,",k,JSON.stringify(y))}d.mp4&&d.mp4.updateLoadInfo(s,e.len)}})),this.mp4.on(CUSTOM_EVENTS.MEDIA_LIST,(function(e){var t;null===(t=d.player)||void 0===t||t.emit(CUSTOM_EVENTS.MEDIA_LIST,e)})),null!=s&&null!==(o=s.pcdnConfig)&&void 0!==o&&o.adaptPCDNConfig&&null!=s&&null!==(l=s.pcdnConfig)&&void 0!==l&&null!==(l=l.adaptPCDNConfig)&&void 0!==l&&l.PCDNBufferControl)&&(null===(h=this.mp4)||void 0===h||h.setSwitchPCDNCallBack((function(){var e=d.pcdn;if(!e)return-1;var t=e.getPCDNChangeCnt()||-1;return d.log(LogCacheLevel$1.LOG,"[updateSwitchPCDNMaxCnt]",t),t})));this.changeState("MP4_INIT",{destroy:this.mp4.hasDestroyed}),this.emit("loadstart_mse"),this.mp4.bufferTimeFuncCallBack=function(){return U.bufferedPoint.end-U.currentTime},this.mp4.init(t),this._emitDefinitionChangeDetailEvent(0)}},{key:"_checkPreloader",value:(a=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(){var t,n,r,i,a,o,l,d,c,s,U,F,u;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.player,n=t.curDefinition,r=t.preloader,i=Promise.withResolvers(),a=i.promise,o=i.resolve,l={method:"checkPreloader",success:0,type:"error",cacheKey:""},r){e.next=9;break}return this.changeState(LOAD_STATES.PRELOAD_ERROR,{t:2}),l.success=0,l.error=new Error("no_preloader"),o(l),e.abrupt("return",a);case 9:if(d=getPreloadMeta(n),c=r.getDataUniqueKey(d),l.cacheKey=c,!c){e.next=46;break}return e.next=15,r.getPreLoadData(d);case 15:if(!(s=e.sent)){e.next=39;break}if(F=s.bitrate,u=s.orgDefinition,delete s.generateBy,!F||!n.bitrate||F===n.bitrate){e.next=27;break}return this.preLoadData=null,l.success=0,l.error=new Error("bitrate_not_match_cut_".concat(n.bitrate,"_cache_").concat(F)),this.changeState(LOAD_STATES.PRELOAD_ERROR,{t:1,bitrate:F,ck:c}),o(l),this.log(LogCacheLevel$1.LOG,">>>check Preloader bitrate_not_match cacheKey".concat(c,"\n curDefinition:").concat(n.bitrate," cache:").concat(F)),e.abrupt("return",a);case 27:n.orgDefinition=u,openLog&&console.log(">>>>check Preloader result",c,s),this.preLoadData=s,this.emit("PRELOAD_INFO",this.preLoadData),l.success=1,l.data=s,null===(U=this.preloader)||void 0===U||U.setUsePreloadInfo(c,!0),this.changeState(LOAD_STATES.PRELOAD_OK,{t:4,l:this.preLoadData.byteLength,ck:c}),s.mediaSegList&&s.mediaSegList.length>0||s.buffer&&s.buffer.byteLength>0?this.hitpreload=!0:this.hitpreload=!1,o(l),e.next=44;break;case 39:this.preLoadData=null,this.changeState(LOAD_STATES.PRELOAD_ERROR,{t:0,ck:c}),l.success=0,l.error=new Error("none_preload"),o(l);case 44:e.next=50;break;case 46:this.changeState(LOAD_STATES.PRELOAD_ERROR,{t:3,ck:c}),l.success=0,l.error=new Error("none_preload"),o(l);case 50:return e.abrupt("return",a);case 51:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)})},{key:"_initEME",value:function(e){var t,n,r=this.config,i=r.kid,a=r.drmKeyToken,o=r.secretKey,l=r.keyValue,d=r.drm,c=r.useEME;if((i||a||o||l||d)&&c&&!index_minExports.checkEMEValid())return this.log(LogCacheLevel$1.ERROR,"checkEMEInValid"),void this._errorHandler(new Errors(this.player,{errorType:ERROR_TYPES.MEDIA,errorCode:ERROR_CODES.eme_hijack,errorMessage:"checkEMEInValid",vid:this.playerConfig.vid}));var s=this.player,U=this.config;this._updateDrmConfig(e),this.log(LogCacheLevel$1.LOG,"useEME: ",U.useEME),null===(t=this._secretkey)||void 0===t||t.setOptions('video/mp4; codecs="avc1.64001E"','audio/mp4; codecs="mp4a.40.2"'),null===(n=this._secretkey)||void 0===n||n.setupEME(s.video)}},{key:"_initMse",value:(i=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t){var n,r,i,a,o,l,d,c,s,U,F,u,Q,R,h,p,B,S,f,m,V=this,y=arguments;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=y.length>1&&void 0!==y[1]&&y[1],a=this.config,o=a.kid,l=a.drmKeyToken,d=a.secretKey,c=a.keyValue,s=a.drm,U=a.useEME,!(o||l||d||c||s)||!U||index_minExports.checkMSEValid(this.config.preferMMS)){e.next=6;break}return this.log(LogCacheLevel$1.ERROR,"checkMSEInValid "),this._errorHandler(new Errors(this.player,{errorType:ERROR_TYPES.MEDIA,errorCode:ERROR_CODES.mse_hijack,errorMessage:"checkMSEInValid",vid:this.playerConfig.vid})),e.abrupt("return");case 6:null===(n=this.player)||void 0===n||n.emit("codecsupdate",t.videoCodec),this.updateMSEDuration(),F=this.mp4&&this.mp4.checkCodecH265(),u=this.mp4&&this.mp4.checkCodecH266(),Q=!!t.videoCodec,R=!!t.audioCodec,h=Q&&R?F?'video/mp4; codecs="hev1.1.6.L93.B0, mp4a.40.5"':u?'video/mp4; codecs="bvc2.1.6.L93.B0, mp4a.40.5"':'video/mp4; codecs="avc1.64001E, mp4a.40.5"':Q?F?'video/mp4; codecs="hev1.1.6.L93.B0"':u?'video/mp4; codecs="bvc2.1.6.L93.B0"':'video/mp4; codecs="avc1.64001E"':'video/mp4; codecs="mp4a.40.5"',p=_defineProperty$9({},MSE.VIDEO,{mimeType:"video/mp4",codec:h}),this.mse?this._bindSrcTiming===BIND_SRC_TIMING.INIT?B=this.mse._openPromise:(this.log(LogCacheLevel$1.LOG,"MSE exist"),S=Promise.withResolvers(),f=S.promise,m=S.resolve,B=f,m()):(this.log(LogCacheLevel$1.LOG,"new MSE",this._bindSrcTiming),this.mse=new MSE(null,{preferMMS:this.config.preferMMS}),B=this.mse.bindMedia(this.player.video)),null===(r=this.player)||void 0===r||r.emit("mseAttaching"),B.then((function(e){var t;V.changeState("MSE_OPEN"),null===(t=V.player)||void 0===t||t.emit("mseAttached");var n=Object.keys(p);try{for(var r=0;r<n.length;r++){var a,o=n[r];null===(a=V.mse)||void 0===a||a.createOrChangeSource(o,p[o].codec).then((function(){V.changeState("MSE_OPEN_DONE"),V._isMseInit=!0,V._onTimeUpdate()})).catch(function(){var e=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t){var n;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return V.config.reUseMSE=!1,V.log(LogCacheLevel$1.WARN,"MSE createOrChangeSource catch err: ",null==t?void 0:t.message),e.next=4,null===(n=V.mse)||void 0===n?void 0:n.unbindMedia();case 4:V.mse=null,V._isMseInit=!1,i?V.MSEErrorHandle(t):V._initMse(V.mp4.meta,!0);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())}}catch(e){V.MSEErrorHandle(e)}})),this.changeState("MSE_INIT");case 18:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"MSEErrorHandle",value:function(e){var t=new Errors(this.player,{errorType:ERROR_TYPES.mse,errorCode:ERROR_CODES.mse,vid:this.playerConfig.vid,errorMessage:e.message,mediaError:{code:ERROR_CODES.mse,message:e.message}});this.log(LogCacheLevel$1.ERROR,"initMse error: ",null==e?void 0:e.message),this._errorHandler(t)}},{key:"_appendInitSeg",value:function(e){var t=this;this.mse&&!this._MSEError&&(this.changeState("MSE_INITSEG"),this.mse.append(MSE.VIDEO,e,{vid:this.playerConfig.vid,range:null,dataLen:e.byteLength,isinit:!0}).then((function(e){t.changeState("MSE_INITSEG_OK",{costtime:null==e?void 0:e.costtime})})),this.config.useEME&&this._secretkey&&(this._secretkey.emit(index_minExports.EVENT_EME.ENCRYPTED),this.player.emit(index_minExports.EVENT_EME.ENCRYPTED)))}},{key:"_checkMetaInfo",value:function(e){if(!e)return new Errors(this.player,{errorType:ERROR_TYPES.DEMUX,errorCode:ERROR_CODES.metaError,errorMessage:"meta is null",vid:this.playerConfig.vid});var t,n=this.player.video||this.player.media,r=this.mp4.checkCodecH265(),i=this.mp4.checkCodecH266();if(this.changeState("MP4_META_READY",{isH265:r,isH266:i}),r&&(this.codecType!==CodecTypes.H265&&(this.codecType=CodecTypes.H265,this.log(LogCacheLevel$1.LOG,"codecType fix ".concat(this.codecType,", ").concat(e.videoCodec))),!this.softDecode&&!this.config.supportHevc))return this.notSupportError("".concat(this.codecType," - ").concat(e.videoCodec));if(i&&(this.codecType!==CodecTypes.H266&&(this.codecType=CodecTypes.H266,this.log(LogCacheLevel$1.LOG,"codecType fix ",this.codecType,e.videoCodec)),!(this.softDecode&&"probably"===(null===(t=n.canPlayType)||void 0===t?void 0:t.call(n,'video/mp4; codecs="'.concat(e.videoCodec,'"')))||this.config.supportVvcc)))return this.notSupportError("".concat(this.codecType," - ").concat(e.videoCodec));var a=this.config,o=a.enableCheckTrackGap,l=a.trackGap;if(e.videoCodec&&e.audioCodec&&o){var d=e.moov.trak,c=e.moov.mvhd.timescale,s=this._getTrakDuration(d[0],c),U=this._getTrakDuration(d[1],c);if(Math.abs(s-U)>l)return new Errors(this.player,{errorType:ERROR_TYPES.DEMUX,errorCode:ERROR_CODES.metaError,errorMessage:"video track and audio track duration long gap, mse cannot play to end",vid:this.playerConfig.vid})}return null}},{key:"_getTrakDuration",value:function(e,t){return e.tkhd.duration/t}},{key:"_stopProgress",value:function(){this.log(LogCacheLevel$1.LOG,"stopProgress",this._hasStartProgress),this._hasStartProgress=!1,this._requestTimer&&this._requestTimer.stop(),this._bufferBreakTimer&&(clearTimeout(this._bufferBreakTimer),this._bufferBreakTimer=null,this._bufferBreakFlag=void 0),this._seekResumTimer&&(clearTimeout(this._seekResumTimer),this._seekResumTimer=null)}},{key:"checkReStartTimer",value:function(){var e=util.nowTime()-this._lastTimeupdateTime2;e>2*this._tickInSeconds*1e3&&!this._offineLine&&(this.log(LogCacheLevel$1.LOG,"checkReStartTimer reStart timer",e,util.nowTime()),this._stopProgress(),this._startProgress(),this._lastTimeupdateTime2=util.nowTime())}},{key:"_bindNetworkStateChange",value:function(){window.addEventListener("online",this._onOnlineHandler),window.addEventListener("offline",this._onOfflineHandler)}},{key:"_unbindNetworkStateChange",value:function(){window.removeEventListener("online",this._onOnlineHandler),window.removeEventListener("offline",this._onOfflineHandler)}},{key:"_onSuperStart",value:function(e){var t=this,n=this.player;log("_onSuperStart:".concat(e),this.mse),n.video.src=e,this.once("canplay",(function(){n.play(),t.on("waiting",t._onWaiting)}))}},{key:"_appendBuffer",value:function(e,t,n,r){var i=this,a=this.mse,o=this.playerConfig,l=this.player,d=o.vid;n=n||{},this.log(LogCacheLevel$1.LOG,"appendStart",n.fragIndex,JSON.stringify(n.range)),this._MSEError?this.log(LogCacheLevel$1.ERROR,"_MSEError, not append return"):a.append(e,t,{vid:d,state:r,context:JSON.stringify(n)}).then((function(e){var t,a,o,d;2===l.changeDefinitionSeekState&&(l.changeDefinitionSeekState=3,i.log(LogCacheLevel$1.LOG,"appendEnd changeDefinitionSeekState += 0.001"),l.currentTime+=.001);var c=i.getAllBufferRange(),s=null!=e&&null!==(t=e.context)&&void 0!==t&&t.context?JSON.parse(null==e||null===(a=e.context)||void 0===a?void 0:a.context):{};if(i.log(LogCacheLevel$1.LOG,"appendEnd ",null==s?void 0:s.fragIndex,JSON.stringify(null==s?void 0:s.range),", costTime,",null==e?void 0:e.costtime,", opt,",null==e?void 0:e.name,",buffer,",JSON.stringify(c),l.currentTime),!i.loadedDataEventRev){var U=(null==e?void 0:e.costtime)||0,F=i.states.findIndex((function(e){return"APPEND_DATA_OK"===e.state}));F>=0?(i.states[F].data.cnt+=1,i.states[F].data.costtime+=U):i.changeState("APPEND_DATA_OK",{costtime:U,cnt:1})}if(i.mse&&r&&(null!==(o=i.mp4)&&void 0!==o&&o.checkIsLoadEnd(null===(d=n.range)||void 0===d?void 0:d[1])||i._loadedEnd)){var u=i.player.buffered;i._loadedEnd=!0;var Q=0;u&&(null==u?void 0:u.length)>0&&(Q=u.end(u.length-1)),i._isEnded(),i.log(LogCacheLevel$1.LOG,"loaded ended !!!===>>>",JSON.stringify(n.range),", fragIndex,",n.fragIndex,", bufferEndTime,",Q,",meta_duration,",i.mp4.meta.duration)}})).catch((function(e){var t=i.player,r=i.mse;if(i._hasFirstFramed||i._setStartTimelines(START_TIMELINES.MSE_ERROR,{message:null==e?void 0:e.message}),!i._MSEError&&t){var a=t.media||t.video;if(e&&null!=r&&r.isFull()){i.log(LogCacheLevel$1.WARN,"[MSE is full]");var o=t.getBufferedRange();i._checkRemovePlayedBuffer(o,t.currentTime,!0)}else{var l,c,s,U,F="".concat(null!=a&&a.error?[a.error.code,a.error.message].join("-"):"MEDIA_EMPTY"),u="".concat((null==e?void 0:e.errorCode)||"","-").concat((null==e?void 0:e.errorMessage)||(null==e?void 0:e.message)||"MSE_EMPTY"),Q="".concat(u,"|").concat(F);i._MSEError=!0,i.changeState("_MSEError",{fragIndex:null===(l=n)||void 0===l?void 0:l.fragIndex,range:null===(c=n)||void 0===c?void 0:c.range}),i.log(LogCacheLevel$1.LOG,"MSE append error",null===(s=n)||void 0===s?void 0:s.fragIndex,JSON.stringify(null===(U=n)||void 0===U?void 0:U.range));var R=new Errors(t,{errorType:ERROR_TYPES.MEDIA,errorCode:ERROR_CODES.mseAppend,vid:d,errorMessage:Q,mediaError:{code:ERROR_CODES.mseAppend,message:Q}});i._errorHandler(R)}}}))}},{key:"_loadData",value:(r=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(){var t,n;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.mp4&&(this._isMseInit||this.softDecode)){e.next=2;break}return e.abrupt("return");case 2:if(e.prev=2,t=this.player,n=Buffer.info(Buffer.get(t.media||t.video),t.currentTime),this.config.alwaysStreamingLoad||!(n.remaining>5)){e.next=10;break}return e.next=8,this.mp4.loadAllFragmentData(this._curLoadSegmentIdx,this._loadDataSuccess);case 8:e.next=12;break;case 10:return e.next=12,this.mp4.load(this._curLoadSegmentIdx,this._loadDataSuccess);case 12:e.next=17;break;case 14:e.prev=14,e.t0=e.catch(2),this.log(LogCacheLevel$1.ERROR,"[Index] _loadData error",this.playerConfig.vid,null===e.t0||void 0===e.t0?void 0:e.t0.message);case 17:case"end":return e.stop()}}),e,this,[[2,14]])}))),function(){return r.apply(this,arguments)})},{key:"getDataBitRate",value:function(e){var t=this.mp4,n=this.playerConfig;if(!t)return 0;for(var r=t.getDataBitRate(e),i=n.definition.list,a=0,o=0;i&&o<i.length;o++)if(i[o].bitrate===r){a=i[o];break}return a}},{key:"_loadStuckCheck",value:function(){var e=this,t=this.config,n=this.player;if(!t.disableBufferBreakCheck){if((!this.playerConfig.autoplay||this.softDecode)&&!this.playFlag)return;var r=n.isUserActive;if(n.currentTime-(this._lastCurrentTime||0)>.1||!r&&n.paused||r&&this.playFlag&&n.paused)1!==this._bufferBreakFlag&&2!==this._bufferBreakFlag||(this.log(LogCacheLevel$1.LOG,"视频没有卡死,重置卡死标记,curtime,",n.currentTime),this._bufferBreakFlag=0,clearTimeout(this._bufferBreakTimer),this._bufferBreakFlag=null);else if(!this._bufferBreakFlag){this._bufferBreakFlag=1;var i=JSON.stringify(this.getAllBufferRange()),a=this.getWaitingTimeOut();this.log(LogCacheLevel$1.LOG,"卡死计时开始! ".concat(a,"ms后确认卡死,"),n.currentTime,i),this._bufferBreakTimer=setTimeout((function(){if(!(e.isDestroy||t.disableInactiveWaitingCheck||!r&&n.paused||r&&e.playFlag&&n.paused)){if(1===e._bufferBreakFlag){var i=n.currentTime,a=n.bufferedPoint;if(a.end>0&&a.end-i>=2)return void e.retrySeekResum(i)}e._bufferBreakFlag=2,e.waitTimeoutDegrade()}}),a)}this._lastCurrentTime=n.currentTime}}},{key:"getWaitingTimeOut",value:function(){var e=this.player,t=this.config.waitingTimeOut;if(!this.playFlag){var n=e.curDefinition.duration;if(n>0){var r=WAIT_TIMEOUT_TIMELIST.find((function(e){return n>=e.range[0]&&n<e.range[1]}));r&&(t=r.time)}}return t}},{key:"waitTimeoutDegrade",value:function(){var e,t=this.player;this.changeState("wait_timeout"),this.log(LogCacheLevel$1.LOG,"确认卡死!!!,curtime,",t.currentTime,JSON.stringify(this.getAllBufferRange()),",duration,",null===(e=this.mp4)||void 0===e||null===(e=e.meta)||void 0===e?void 0:e.duration),this.emit("waittimeout");var n=document.hidden||"hidden"===document.visibilityState,r=new Errors(this.player,{errorType:ERROR_TYPES.RUNTIME,errorCode:n?ERROR_CODES.waitTimeoutWithHidden:ERROR_CODES.waitTimeout,errorMessage:"wait_timeout",vid:this.playerConfig.vid});this._errorHandler(r)}},{key:"retrySeekResum",value:(n=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t){var n,r,i,a,o=this;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this.player,r=this.config,this.changeState("retrySeek"),this.log(LogCacheLevel$1.LOG,"卡死但有超过2s的buffer,seek下!!!"),clearTimeout(this._seekResumTimer),this._resumePlay=!1,!(r.waitingRetrySeekTimes>0&&r.waitingRetryDuration)){e.next=14;break}return i=Math.min(r.waitingRetrySeekTimes,3),this._currentSeekTimes=0,this.off("playing",this._onResumePlaying),this.once("playing",this._onResumePlaying),a=function(){if(!n||o._resumePlay||n.paused)o.log(LogCacheLevel$1.LOG,"当前播放实例已恢复或处于暂停状态,退出重试 player=".concat(!!n,",_resumePlay=").concat(o._resumePlay,",paused=").concat(null==n?void 0:n.paused));else{if(o._currentSeekTimes<i)return o._seekOnce(t),void(o._seekResumTimer=setTimeout(a,r.waitingRetryDuration));o.waitTimeoutDegrade(),o._seekResumTimer=null}},this._seekOnce(t),this._seekResumTimer=setTimeout(a,r.waitingRetryDuration),e.abrupt("return");case 14:n.currentTime=t+1,this.once("playing",(function(){o._resumePlay=!0})),this._seekResumTimer=setTimeout((function(){o._resumePlay||o.waitTimeoutDegrade(),o._seekResumTimer=null}),Math.ceil(r.waitingTimeOut/2));case 17:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"_isInBuffer",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=!1,r=this.player.video.buffered,i=0;i<r.length;i++){var a=r.start(i)-t,o=r.end(i)+t;if(a<=e.startTime&&e.endTime<=o){n=!0;break}}return n}},{key:"_doubleCheckBuffer",value:function(e){var t=this.player;return!(e.startTime>t.currentTime)||(!t.video||!t.video.buffered||(1===t.video.buffered.length||this._isInBuffer(e,.2)))}},{key:"isOpenPCDN",value:function(e){var t=this;if(this.pcdn&&this.mp4){var n=e-this.player.currentTime,r=this.pcdn,i=this.config,a=this.mp4,o=i.pcdnConfig,l=r.getPCDNInBuffer()||o.enterMinBuffer,d=r.getPCDNOutBuffer()||o.outMaxBuffer;if(n>=l){if(a.updatePCDNState(PCDN_STATE.OPEN),a.isUpdateNode){var c=this.player.curDefinition,s=c.uri,U=c.bitrate;this.pcdn.getPCDNNode(s,U,this.getPCDNReqId()).then((function(e){if(a){var n,i=t.getPCDNReqId();if(null!=e&&e.req_id&&i!==e.req_id)t.log(LogCacheLevel$1.LOG,",getPCDNNode is not match curDefinition reqId",i,", pcdnRet.req_id",e.req_id);else if(a.updateNode(null==e?void 0:e.nodes),r.updatePCDNBitrate(U),e&&(a.pcdnTraceInfo={uri:e.vid,fid:e.fid,trace_id:null==e?void 0:e.trace_id}),e&&a.pcdnVVStat)a.pcdnVVStat.try_req_node+=1,a.pcdnVVStat.req_node_succ+=1,a.pcdnVVStat.has_ret_node+=(null==e||null===(n=e.nodes)||void 0===n?void 0:n.length)>0?1:0}})).catch((function(e){(null==a?void 0:a.pcdnVVStat)&&(a.pcdnVVStat.try_req_node+=1),t.checkURLExpired(e,"_getPCDNNode")}))}}else n<d&&a.updatePCDNState(PCDN_STATE.CLOSE)}}},{key:"checkURLExpired",value:function(e,t){var n,r,i,a,o=util.checkUrlIsExpired(this.config._mainURL);1===o&&this.pcdn&&(this.pcdn=null);var l=(null==e||null===(n=e.response)||void 0===n?void 0:n.url)||(null===(r=this.config.pcdnConfig)||void 0===r?void 0:r.trackerUrl);null===(i=this.player)||void 0===i||i.emit("source_error",{host:util.getHostFromUrl(l),src:l,errorCode:null==e||null===(a=e.response)||void 0===a?void 0:a.status,message:"".concat(null==e?void 0:e.message,"-").concat(o).concat(t)})}},{key:"pushTimerStep",value:function(){var e;(null===(e=this.timerStepList)||void 0===e?void 0:e.length)>TIMER_LIST_LIMIT&&this.timerStepList.shift(),this._lastTimeupdateTime2>0&&this.timerStepList.push(util.nowTime()-this._lastTimeupdateTime2)}},{key:"_onTimeUpdate",value:function(){this.pushTimerStep(),this._lastTimeupdateTime2=util.nowTime();var e=this.mse,t=this.mp4,n=this.player,r=this.config;if(n)if(checkSafariBrowser()&&n.paused!==this._usePaused&&(this._usePaused?n.pause():n.play()),!this.useVideoLoad&&t){var i=n.getBufferedRange();util.nowTime()-this._lastCheckTime>1e3&&(this._lastCheckTime=util.nowTime(),this._loadStuckCheck(),this._startUrlExpiredCheck(),this._checkRemovePlayedBuffer(i,n.currentTime));var a=t.timeRange;if(a&&!(a.length<1)&&(e||this.mseProxy)&&this.canDownload){var o,l,d=this._maxBufferLength,c=!1;if((this.playFlag&&n.paused||!this.isActive)&&(c=!0),c)d=n.isInstNext&&this._nextBufferLength>=0?this._nextBufferLength:this._minBufferLength;else null!==(l=this.config)&&void 0!==l&&null!==(l=l.adaptRange)&&void 0!==l&&l.targetCacheControl&&(d=this.adaptRange.getAdaptCacheBuffer());!this.preLoadData&&null!==(o=this.config)&&void 0!==o&&null!==(o=o.adaptRange)&&void 0!==o&&o.targetCacheControl&&(d+=this.config.noPreloadAddBufferLen);var s=n.currentTime+d;i[1]-s<0&&(this.isOpenPCDN(i[1]),(null==r?void 0:r.loadRangeType)===LOAD_RANGE_TYPE.SIZE?this.sizeRangeCheckLoad(c,d,i[1]-n.currentTime):this.gopRangeCheckLoad(c,d)),this.playFlag&&!this._hasTriggerBufferThreshold&&this._startBufferCheck()}}else{var U;this.useVideoLoad&&null!==(U=this.expiryCheckPlugin)&&void 0!==U&&null!==(U=U.config)&&void 0!==U&&U.enableExpiryCheck&&util.nowTime()-this._lastCheckTime>1e3&&(this._lastCheckTime=util.nowTime(),this._startUrlExpiredCheck())}}},{key:"sizeRangeCheckLoad",value:function(e,t,n){var r,i=this.player,a=this.mp4,o=a.adaptTimeRange,l=o.length,d=a.size-1||i.curDefinition.size-1;if(null==o||!o.length||(null===(r=o[l-1])||void 0===r?void 0:r.range[1])<d||!o[l-1].isLoading||a.changeBitRateTime>0){var c=o.findIndex((function(e){return!e.downloaded}));if(null==o||!o.length||c>=0||o[l-1].downloaded){var s,U=this.calculateAdaptRange(e,t),F=U.adaptRangeRes,u=U.loadDuration;if(F.loadDuration=u,c<0)a.changeBitRateTime>0&&(null===(s=o[l-1])||void 0===s?void 0:s.range[1])>=d?(this._curLoadSegmentIdx=o.length-1,this.log(LogCacheLevel$1.LOG,"changeBitRateTime> 0 and load last adaptTime")):this._curLoadSegmentIdx=a.updateAdaptTimeRange(null,u);else this._curLoadSegmentIdx=c;if(c>0&&a.changeBitRateTime<=0){var Q=o[c-1];if(null!=Q&&Q.downloaded&&n>0&&(null==Q?void 0:Q.endTime)-i.currentTime>=t)return}var R=o[this._curLoadSegmentIdx];if(this._curLoadSegmentIdx>=0&&this._isInBuffer(R)&&this._removeBuffEndTime<=0&&this._curLoadSegmentIdx>=0&&R.endTime-R.startTime>1)return o[this._curLoadSegmentIdx].downloaded=!0,o[this._curLoadSegmentIdx].isLoading=!0,this.log(LogCacheLevel$1.LOG,"onTimeUpdate, ".concat(this._curLoadSegmentIdx," download segment, has buffer"),R.startTime,R.endTime,i.currentTime),void(a.seekTime<R.endTime&&(a.seekTime=R.endTime,this.log(LogCacheLevel$1.LOG,"".concat(this._curLoadSegmentIdx," download segment, has buffer adjust seekTime"))));F.idx=this._curLoadSegmentIdx,this.adaptRangeResPush(F),(!o[this._curLoadSegmentIdx].isLoading||a.changeBitRateTime>0)&&(this.log(LogCacheLevel$1.LOG,"[onTimeUpdate],load index==>>>, ",this._curLoadSegmentIdx,JSON.stringify(o[this._curLoadSegmentIdx])),this._loadData())}}}},{key:"adaptRangeResPush",value:function(e){var t;this.adaptRangeRes.length&&(null===(t=this.adaptRangeRes[e.length-1])||void 0===t?void 0:t.idx)===this._curLoadSegmentIdx||(this.adaptRangeRes.push(e),this.log(LogCacheLevel$1.LOG,"adaptRangeRes>>>>",e))}},{key:"gopRangeCheckLoad",value:function(e,t){var n=this,r=this.player,i=this.mp4,a=i.timeRange,o=i.adaptTimeRange,l=i.changeBitRateTime;a.every((function(i,a){if(void 0!==i.adaptTimeRangeIdx&&i.adaptTimeRangeIdx>=0&&o&&o[i.adaptTimeRangeIdx].downloaded&&!(l>0&&i.adaptTimeRangeIdx===o.length-1&&o[i.adaptTimeRangeIdx].downloaded))return!0;var d=n.mp4.getAdaptIdxBySrcIdx(a,!0),c=d>=0?o[d]:null,s=d>=0&&n._isInBuffer(c);if(n._removeBuffEndTime<=0&&d>=0&&c.endTime-c.startTime>1&&s)return o[d].downloaded=!0,o[d].isLoading=!0,n.log(LogCacheLevel$1.LOG,"onTimeUpdate, ".concat(d," download segment, has buffer"),c.startTime,c.endTime,r.currentTime),!0;if(i.startTime-r.currentTime<t){var U,F=n.calculateAdaptRange(e,t),u=F.adaptRangeRes,Q=F.loadDuration;n._curLoadSegmentIdx=n.mp4.updateAdaptTimeRange(a,Q),u.idx=n._curLoadSegmentIdx,(null===(U=n.config)||void 0===U||null===(U=U.adaptRange)||void 0===U?void 0:U.rangeControl)&&(u.loadDuration=n.mp4.adaptTimeRange[n._curLoadSegmentIdx].duration),n.adaptRangeResPush(u);var R=o[n._curLoadSegmentIdx];if(n._isInBuffer(R))return R.downloaded=!0,R.isLoading=!0,n.log(LogCacheLevel$1.LOG,"onTimeUpdate_, ".concat(n._curLoadSegmentIdx," download segment, has buffer"),R.startTime,R.endTime,r.currentTime),!0;(!o[n._curLoadSegmentIdx].isLoading||l>0)&&(n.log(LogCacheLevel$1.LOG,"[onTimeUpdate],load index==>>>, ",n._curLoadSegmentIdx,JSON.stringify(o[n._curLoadSegmentIdx])),n._loadData())}}))}},{key:"calculateAdaptRange",value:function(e,t){var n,r,i,a,o,l={forceSetMin:e};(null!==(n=this.pcdn)&&void 0!==n&&n.isOpenAdaptPCDN&&(l.PCDNInBuffer=this.pcdn.curPCDNInBuffer,l.PCDNOutBuffer=this.pcdn.curPCDNOutBuffer),!this.playFlag||e)?a=this._minBufferLength:null!==(o=this.config)&&void 0!==o&&null!==(o=o.adaptRange)&&void 0!==o&&o.rangeControl?(a=this.adaptRange.getAdaptLoadDuration(),l.loadTarDuration=a):a=this.config.rangeMaxDuration;return(null===(r=this.config)||void 0===r||null===(r=r.adaptRange)||void 0===r?void 0:r.targetCacheControl)&&(l.cachedBufferDur=t),!this.playFlag&&null!==(i=this.config)&&void 0!==i&&null!==(i=i.adaptRange)&&void 0!==i&&i.rangeControl&&(l.loadTarDuration=a),{adaptRangeRes:l,loadDuration:a}}},{key:"checkReUseMSE",value:function(e,t){var n=this,r=this.mse;if(r)if(e||this.config.reUseMSE){var i;r.clearOpQueues(MSE.VIDEO,t),this.mseAbort();var a=null===(i=this.player)||void 0===i?void 0:i.buffered;if((null==a?void 0:a.length)>0){var o=a.end(a.length-1);this.log(LogCacheLevel$1.LOG,"reUseMSE remove buffer, 0-",o),this._canUpdateDuration=!1,this.removeBuffer(MSE.VIDEO,0,o,(function(){var e;n._canUpdateDuration=!0,(null===(e=n.mp4)||void 0===e||null===(e=e.meta)||void 0===e?void 0:e.duration)&&n.updateMSEDuration()}))}}else r.unbindMedia(),this.mse=null,this._unloadVideo()}},{key:"updateMSEDuration",value:function(){var e,t=this.mse,n=this.mp4;this._canUpdateDuration&&null!=n&&null!==(e=n.meta)&&void 0!==e&&e.duration&&n.meta.duration!==t.duration&&(this.log(LogCacheLevel$1.LOG,"updateMSEDuration ",n.meta.duration,",oldDuration,",t.duration),t.updateDuration(n.meta.duration),this._canUpdateDuration=null)}},{key:"_reset",value:function(){this._bindSrcTiming=BIND_SRC_TIMING.META_READY,this._definitionChangePointInfo=null,this._isReceiveEndedEvent=!1,this.adaptRangeRes=[],this.hitpreload=!1,this._sTime=util.nowTime(),this._removeBuffEndTime=0,this._usePaused=!1,this.useVideoLoad=!1,this._isMseInit=!1,this.loadedDataEventRev=!1,this.needStarLoadFirstSegment=!1,this._curLoadSegmentIdx=0,this.emitExpireTimestamp=null,this.preLoadData=null,this.forPreloadTimeCache=null,this.playFlag=!1,this.waitLevelStartTime=-1,this._waitAdjustTimeCnt=0,this._initPromise&&"pending"===this._initPromise.state&&this._initPromise.reject(DESTROYED),clearTimeout(this.checkResumePlayTimer),this.checkResumePlayTimer=null,this._stopProgress(),this.mp4&&(this.mp4.destroy(),this.mp4=null),this.mseProxy&&(this.player.video.removeEventListener("lowdecode",this._onDegrade),this.player.video.removeEventListener("error",this._onError)),this._unloadVideo(),this._cancelPendingPromises(),this._abrService&&(this._abrService.destroy(),this._abrService=null),clearTimeout(this._waitInBufferTimer),this._waitInBufferTimer=null,this.canDownload=!0,this._mediaCodec={videoCodec:"",audioCodec:""}}},{key:"removeErrorUrls",value:function(e,t,n){return e.errorCode===ERROR_CODES[403]&&this._emitExpireEvent(e),n}},{key:"_setPlayerError",value:function(e){if(!this._hasFirstFramed){var t="".concat(this.player.vtype," ").concat(null==e?void 0:e.errorCode,"-").concat(null==e?void 0:e.errorMessage,"-").concat(null==e?void 0:e.rangeStart,"-").concat(null==e?void 0:e.rangeEnd);this._setStartTimelines(START_TIMELINES.PLAYER_ERROR,{message:t,httpCode:null==e?void 0:e.errorCode})}}},{key:"checkIsDegraded",value:function(e){var t=this.config,n=t.notDegradeErrorList,r=t.drm,i=t.kid,a=t.drmKeyToken,o=t.keyValue,l=t.secretKey;return!(r||i||a||o||l||e.errorCode>=7e3&&e.errorCode<=7999)&&!((null==n?void 0:n.length)>0&&(e.errorCode===ERROR_CODES.timeout&&n.indexOf("timeout")>=0||e.errorCode===ERROR_CODES[403]&&(n.indexOf(403)>=0||n.indexOf("403")>=0)||e.errorCode===ERROR_CODES[404]&&(n.indexOf(404)>=0||n.indexOf("404")>=0)))}},{key:"_startDegradedPlayback",value:function(e,t){var n=this;this.canDownload=!1;var r=this.player,i=this.playerConfig,a=this.config;if(r){this.mse&&(this.mse.clearOpQueues(MSE.VIDEO),this.mseAbort()),this._currentTime=r.currentTime||0,this.player.pause(),this._reset(),this.states=[],this._replay=null;var o=i.H264DefinitionList;if(this.codecType===CodecTypes.H265&&this.softDecode)this.log(LogCacheLevel$1.LOG,"h265 softDecode err,degrade use 264 play",i.vid),this._onDegrade(e);else if(this.codecType===CodecTypes.H264||a.supportHevc||a.supportVvcc||(null==o?void 0:o.length)>0){var l=a.drm,d=a.kid,c=a.drmKeyToken,s=a.keyValue,U=a.secretKey;if(l||d||c||s||U)l&&Object.keys(l).map((function(t){l&&(e[t]=l[t])})),this.log(LogCacheLevel$1.ERROR,"final error !!!!, ",i.vid,null==e?void 0:e.errorCode,null==e?void 0:e.errorMessage),this.emit("error",e);else{var F;this.log(LogCacheLevel$1.LOG,this.codecType,"MSE degrade video,",i.vid,r.currentTime),this.emit(DEGRADE_EVENT,{errc:null==e?void 0:e.errorCode,err_msg:(null==e?void 0:e.errorMessage)||(null==e?void 0:e.message),CodecTypes:this.codecType,media_type:i.mediaType}),this.useVideoLoad=!0,this.__onmetadataHandle=function(){var e;n.player&&(n._currentTime&&(n.player.currentTime=n._currentTime),n.log(LogCacheLevel$1.LOG,"DegradedPlayback update currentTime",null===(e=n.playerConfig)||void 0===e?void 0:e.vid,n.codecType,n._currentTime),t?n.player.pause():n.player.play(),n.player.video.removeEventListener("loadedmetadata",n.__onmetadataHandle),n.__onmetadataHandle=null)},r.video.addEventListener("loadedmetadata",this.__onmetadataHandle);var u=i.url;if((null==e||null===(F=e.message)||void 0===F?void 0:F.indexOf(MSE_NOT_SUPPORT))>=0&&(null==o?void 0:o.length)>0){var Q=o.length,R=this.player.curDefinition.definition,h=R&&o.find((function(e){return e.definition===R}));h||(i.H264DefinitionList.sort((function(e,t){return e.bitrate-t.bitrate})),h=i.H264DefinitionList[Math.floor(Q/2)]),h&&(u=h.url,this.playerConfig.codecType=CodecTypes.H264,this.codecType=CodecTypes.H264)}this._setPlayerSrc(u)}}else this.log(LogCacheLevel$1.ERROR,"degrade player failed"),this.emit("error",e)}else this._setStartTimelines(START_TIMELINES.DESTROY,{message:"-degrade"})}},{key:"mseAbort",value:function(){var e;if(null!==(e=this.mse)&&void 0!==e&&e.abort){var t=this.mse.abort(MSE.VIDEO);t&&t.catch((function(){}))}}},{key:"isSeekingInSameBuffer",value:function(e,t){var n=!1,r=this.mp4,i=this._lastBufferPoint;return r.meta&&r.meta.duration-t.end<.5&&(n=!0),i&&0!==e&&e>=i.start&&e<i.end&&(n=!0),this._lastBufferPoint=t,n}},{key:"getAdaptTimeRangeIdx",value:function(e){var t,n,r=this.config,i=this.adaptRange,a=r.segmentMinDuration;return i&&null!=r&&null!==(t=r.adaptRange)&&void 0!==t&&t.rangeControl&&(a=i.getAdaptLoadDuration()),null===(n=this.mp4)||void 0===n?void 0:n.updateAdaptTimeRange(e,a)}},{key:"_startProgress",value:function(){this.initTimer(),this._requestTimer.start(),this._hasStartProgress=!0}},{key:"_unloadVideo",value:function(){this.log(LogCacheLevel$1.LOG,"unloadVideo");var e=this.player;try{e.video&&e.video.src&&(/^blob/.test(e.currentSrc)||/^blob/.test(e.video.src)||(this.log(LogCacheLevel$1.LOG,"unloadVideo src"),e.video.removeAttribute("src"),e.video.load()))}catch(e){this.log(LogCacheLevel$1.ERROR,"unloadVideo error",null==e?void 0:e.message)}}},{key:"_addPendingPromise",value:function(e){this._pendingPromises.push(e)}},{key:"_removePendingPromise",value:function(e){this.log(LogCacheLevel$1.LOG,"removePendingPromise",null==e?void 0:e.id);var t=this._pendingPromises.indexOf(e);t>-1&&this._pendingPromises.splice(t,1)}},{key:"_cancelPendingPromises",value:function(){this._pendingPromises.length>0&&this._pendingPromises.forEach((function(e){e.reject(DESTROYED)})),this._pendingPromises=[]}},{key:"_onMediaExpired",value:function(){this.log(LogCacheLevel$1.LOG,"MediaExpired stopProgress"),this._stopProgress(),this.emit(CUSTOM_EVENTS.MEDIA_EXPIRED)}},{key:"_isEnded",value:function(){var e,t,n,r=this.player,i=this.mp4;if(!r)return!1;var a=r.bufferedPoint,o=a?a.end:0;this.checkStartLoadFirstSegment(o);var l,d=r.currentTime;d>1&&o>d&&(o-d>=2||r.duration-d<1)&&2===r.video.readyState?util.nowTime()-this._lastCheckLagTime>=3e3&&(this.log(LogCacheLevel$1.LOG,"[has buffer but waiting,seek 0.2 adjust],curTime,",d,", bufferend,",o,", duration,",null==i||null===(l=i.meta)||void 0===l?void 0:l.duration),r.currentTime=d+.2,this._lastCheckLagTime=util.nowTime()):this._lastCheckLagTime=util.nowTime();var c=(null===(e=r.buffered)||void 0===e?void 0:e.length)||0;if(c<=0||!r.buffered)return!1;var s=(null===(t=r.buffered)||void 0===t?void 0:t.end(c-1))||0;return!!(null!=i&&null!==(n=i.meta)&&void 0!==n&&n.duration&&i.meta.duration-r.currentTime<1&&(this._loadedEnd||Math.abs(i.meta.duration-s)<1))&&(this._stopProgress(),this.log(LogCacheLevel$1.LOG,"[isEnded],stopProgress and endOfStream,curTime, ",r.currentTime,", bufferend,",s,", duration,",i.meta.duration),this.mse&&this.mse.endOfStream().then((function(){})),!0)}},{key:"checkStartLoadFirstSegment",value:function(e){var t,n,r=this.player,i=this.mp4,a=this.config;if(r&&a.loadFirstGopData&&null!=i&&null!==(t=i.meta)&&void 0!==t&&t.duration&&null!=r&&null!==(n=r.buffered)&&void 0!==n&&n.length&&this.needStarLoadFirstSegment&&(this._loadedEnd||Math.abs(e-this.mp4.meta.duration)<.5)&&r.buffered.start(0)>=i.timeRange[0].endTime){var o;this.log(LogCacheLevel$1.LOG,"changeBitrate load end, reload loadFirstSegment"),this.needStarLoadFirstSegment=!1,i.resetDemuxSampleIdx(0),i._loadSuccessCallBack=this._loadDataSuccess;var l=(null===(o=i.timeRange[0])||void 0===o?void 0:o.range)||i.calculateRange(0);i.fillFirstSegment=!0,i.startLoad(l,0)}}},{key:"emitVideoEvent",value:function(e){var t=this;if(!this._checkEndedTimer){var n=this.player,r=this.mp4;this._checkEndedTimer=setTimeout((function(){t._checkEndedTimer=null,!t._isReceiveEndedEvent&&r.meta.duration-n.currentTime<.5&&(t.log(LogCacheLevel$1.LOG,"[ do emit video ended event],curTime,",n.currentTime,", bufferend,",e,", duration,",r.meta.duration),t.emit("ended"))}),2e3)}}},{key:"_clearMediaKeys",value:function(){var e=this.player;e.video&&"function"==typeof e.video.setMediaKeys&&e.video.setMediaKeys(null).catch((function(){}))}},{key:"_checkRemovePlayedBuffer",value:function(e,t,n,r){var i=this,a=this.mse,o=this.mp4,l=this.player;if(a&&o&&l&&(n&&(clearTimeout(this._removeBufferTimer),this._removeBufferTimer=null),e||(e=l.getBufferedRange()),t||(t=l.currentTime),(n||!(util.nowTime()-this._checkRemoveBufferLastTime<=this.config.removeBufferLen))&&(this._checkRemoveBufferLastTime=util.nowTime(),e&&e[0]>=0&&(t-e[0]>this.config.removeBufferLen||a.isFull())))){var d=r?e[1]:t-(a.isFull()?0:15),c=o.getFragmentIdx(d);if(c>0&&(r||o.timeRange[c].startTime<t)){var s=Math.floor(Math.min(o.timeRange[c].startTime,e[1])),U=Math.max(o.timeRange[0].endTime+1,e[0]);U<s?(this.log(LogCacheLevel$1.LOG,"[checkremoveSourceBuffer], remove range==>>>",U,s,t),this.removeBuffer(MSE.VIDEO,U,s)):a.isFull()&&!this._removeBufferTimer&&(this._removeBufferTimer=setTimeout((function(){i._checkRemovePlayedBuffer(null,null,!0)}),1e4))}}}},{key:"onMediaUpdate",value:function(e){var t=e.vid,n=e.kid,r=e.url,i=this.player,a=this.config;if(t===this.playerConfig.vid&&n===a.kid&&r){this.playerConfig.url=r,this._handlerUrl(r);var o=a._mainURL;return this.useVideoLoad?i.src=r:this.mp4&&this.mp4.updateUrl(o),!0}return!1}},{key:"enableAutoBuffer",value:function(e){var t=this;if(e){if(!this._allInitPromise)return void this.log(LogCacheLevel$1.LOG,"player destroyed!!");this._allInitPromise.then((function(){t.log(LogCacheLevel$1.LOG,"enableAutoBuffer true"),t._startProgress()}))}else this._stopProgress(),this.log(LogCacheLevel$1.LOG,"enableAutoBuffer false")}},{key:"bitRateAdapter",get:function(){return this.player&&this.player.plugins&&this.config.needAutoBitrate?this.player.plugins.bitrateselector:null}},{key:"getDefinitonFromAdapter",value:function(e,t){if(!this.bitRateAdapter)return null;var n=this.bitRateAdapter;return n.getSuitableBitrate?n.getSuitableBitrate(e,t):n.bitRateAdapter?n.bitRateAdapter.select(e):null}},{key:"log",value:function(e,t){for(var n=(this.playerConfig||{}).vid,r=n?"[Index]".concat(n," ").concat(t):"[Index] ".concat(t),i=arguments.length,a=new Array(i>2?i-2:0),o=2;o<i;o++)a[o-2]=arguments[o];log.apply(void 0,[this.logger,e,r].concat(a))}},{key:"_emitInitFail",value:function(e){this.log(LogCacheLevel$1.ERROR,"initFail, reason:",e),this.emit(CUSTOM_EVENTS.INIT_FAIL,e)}},{key:"useVideoLoad",get:function(){return this._useVideoLoad},set:function(e){this._useVideoLoad=e}},{key:"ready",get:function(){return this._allInitPromise}},{key:"speed",get:function(){return parseInt(MP4_BASE.speed,10)}},{key:"version",get:function(){return version}},{key:"realTimeSpeed",get:function(){return _realTimeSpeed$2}},{key:"opQueueLen",get:function(){var e=this.mse&&this.mse._queue?this.mse._queue[MSE.VIDEO]:[];return e?e.length:0}},{key:"loadSegmentTimeRange",get:function(){return[0,0,0,0]}},{key:"moovSize",get:function(){return 0}},{key:"isDestroy",get:function(){return!this.player}},{key:"domain",get:function(){return util.getHostFromUrl(this.loadURL)}},{key:"loadURL",get:function(){var e=this.player,t=e.currentSrc;return/^blob/.test(e.currentSrc)&&(t=this.mp4.currentLoadUseUrl()),t}},{key:"abrInstance",get:function(){return this._abrService?this._abrService.abrInstance:null}},{key:"expiryCheckPlugin",get:function(){return this.player&&this.player.plugins&&this.player._customExpiryCheck?this.player.plugins.expirycheck:null}},{key:"_handleUrlExpire",value:function(){var e=this,t=this.config,n=this.player,r=n.paused;(new Date).getTime()/1e3>=this.urlExpireTimestamp&&this.urlExpireTimestamp>0&&!r&&t.getServerTime&&(n.serverTimeDiffPromise=n.serverTimeDiffPromise||t.getServerTime().catch((function(){return 0})),n.serverTimeDiffPromise.then((function(t){if(t&&(n.serverTimeDiff=(new Date).getTime()/1e3-t),(new Date).getTime()/1e3>=e.urlExpireTimestamp+n.serverTimeDiff){e.urlExpireTimestamp=(new Date).getTime()/1e3+86400;var r=new NetWorkError("network",ERROR_CODES[403]);e._emitExpireEvent(r)}})))}},{key:"_emitExpireEvent",value:function(e){var t=this.player,n=(new Date).getTime()/1e3;return this.emitExpireTimestamp?n-this.emitExpireTimestamp>300&&(this.emitExpireTimestamp=n,t.emit("MEDIA_EXPIRED",e),!0):(this.emitExpireTimestamp=n,t.emit("MEDIA_EXPIRED",e),!0)}},{key:"reportBugPostPlayerLog",value:function(){this.log(LogCacheLevel$1.LOG,"reportBugPostPlayerLog"),this.emit(XGLOG_CACHE_EVENT)}},{key:"getAllBufferRange",value:function(){var e=[],t=this.player;if(!t||null==t||!t.buffered)return e;var n=t.buffered;if(n)for(var r=0,i=n.length;r<i;r++)e.push([null==n?void 0:n.start(r),null==n?void 0:n.end(r)]);return e}}],[{key:"pluginName",get:function(){return"Mp4EncryptPlayer"}},{key:"defaultConfig",get:function(){return DEFAULT_CONFIG}},{key:"speed",get:function(){return _realTimeSpeed$2}},{key:"realTimeSpeed",get:function(){return _realTimeSpeed$2}},{key:"version",get:function(){return version}}]);var n,r,i,a,o,l,d,c}();Mp4EncryptPlayer.isSupported=isSupported,Mp4EncryptPlayer.isEMESupported=isEMESupported,Mp4EncryptPlayer.isSupportedWithXgmse=isSupportedWithXgmse,Mp4EncryptPlayer.isMediaSourceSupported=isMediaSourceSupported,Mp4EncryptPlayer.isWebAssemblySupported=isWebAssemblySupported,Mp4EncryptPlayer.CUSTOM_EVENTS=CUSTOM_EVENTS,Mp4EncryptPlayer.updateUnionInfo=index_minExports.XGSecretKey.updateUnionInfo,Mp4EncryptPlayer.generateEncryptInfo=index_minExports.XGSecretKey.generateEncryptInfo,Mp4EncryptPlayer.registerPreloader=EncryptBasePlugin.registerPreloader;var PRELOAD_TYPES=function(e){return e[e.DURATION=0]="DURATION",e[e.SIZE=1]="SIZE",e}(PRELOAD_TYPES||{}),CACHE_TYPES=function(e){return e[e.INDEXDB=0]="INDEXDB",e[e.MEMORY=1]="MEMORY",e}(CACHE_TYPES||{}),PRELOAD_EVENTS=function(e){return e.PRELOAD_NEXT="PRELOAD_NEXT",e.PRELOAD_START="PRELOAD_START",e.PRELOAD_CANCEL="PRELOAD_CANCEL",e}(PRELOAD_EVENTS||{});function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function asyncGeneratorStep(e,t,n,r,i,a,o){try{var l=e[a](o),d=l.value}catch(e){return void n(e)}l.done?t(d):Promise.resolve(d).then(r,i)}function _asyncToGenerator(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){asyncGeneratorStep(a,r,i,o,l,"next",e)}function l(e){asyncGeneratorStep(a,r,i,o,l,"throw",e)}o(void 0)}))}}function _callSuper(e,t,n){return t=_getPrototypeOf(t),_possibleConstructorReturn(e,_isNativeReflectConstruct()?Reflect.construct(t,n||[],_getPrototypeOf(e).constructor):t.apply(e,n))}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey(r.key),r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _createForOfIteratorHelper(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=_unsupportedIterableToArray(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}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 a,o=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){l=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(l)throw a}}}}function _defineProperty(e,t,n){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf(e,t)}function _isNativeReflectConstruct(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(_isNativeReflectConstruct=function(){return!!e})()}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _iterableToArrayLimit(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,l=[],d=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;d=!1}else for(;!(d=(r=a.call(n)).done)&&(l.push(r.value),l.length!==t);d=!0);}catch(e){c=!0,i=e}finally{try{if(!d&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw i}}return l}}function _nonIterableRest(){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 _nonIterableSpread(){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 ownKeys2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys2(Object(n),!0).forEach((function(t){_defineProperty(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys2(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _objectWithoutProperties(e,t){if(null==e)return{};var n,r,i=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],-1===t.indexOf(n)&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function _objectWithoutPropertiesLoose(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}function _possibleConstructorReturn(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _regeneratorRuntime(){_regeneratorRuntime=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,i=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",l=a.asyncIterator||"@@asyncIterator",d=a.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var a=t&&t.prototype instanceof p?t:p,o=Object.create(a.prototype),l=new T(r||[]);return i(o,"_invoke",{value:b(e,n,l)}),o}function U(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=s;var F="suspendedStart",u="suspendedYield",Q="executing",R="completed",h={};function p(){}function B(){}function S(){}var f={};c(f,o,(function(){return this}));var m=Object.getPrototypeOf,V=m&&m(m(W([])));V&&V!==n&&r.call(V,o)&&(f=V);var y=S.prototype=p.prototype=Object.create(f);function E(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function Z(e,t){function n(i,a,o,l){var d=U(e[i],e,a);if("throw"!==d.type){var c=d.arg,s=c.value;return s&&"object"==typeof s&&r.call(s,"__await")?t.resolve(s.__await).then((function(e){n("next",e,o,l)}),(function(e){n("throw",e,o,l)})):t.resolve(s).then((function(e){c.value=e,o(c)}),(function(e){return n("throw",e,o,l)}))}l(d.arg)}var a;i(this,"_invoke",{value:function(e,r){function i(){return new t((function(t,i){n(e,r,t,i)}))}return a=a?a.then(i,i):i()}})}function b(t,n,r){var i=F;return function(a,o){if(i===Q)throw Error("Generator is already running");if(i===R){if("throw"===a)throw o;return{value:e,done:!0}}for(r.method=a,r.arg=o;;){var l=r.delegate;if(l){var d=J(l,r);if(d){if(d===h)continue;return d}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===F)throw i=R,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=Q;var c=U(t,n,r);if("normal"===c.type){if(i=r.done?R:u,c.arg===h)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(i=R,r.method="throw",r.arg=c.arg)}}}function J(t,n){var r=n.method,i=t.iterator[r];if(i===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,J(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),h;var a=U(i,t.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,h;var o=a.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,h):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,h)}function v(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function g(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(v,this),this.reset(!0)}function W(t){if(t||""===t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,a=function n(){for(;++i<t.length;)if(r.call(t,i))return n.value=t[i],n.done=!1,n;return n.value=e,n.done=!0,n};return a.next=a}}throw new TypeError(typeof t+" is not iterable")}return B.prototype=S,i(y,"constructor",{value:S,configurable:!0}),i(S,"constructor",{value:B,configurable:!0}),B.displayName=c(S,d,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===B||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,S):(e.__proto__=S,c(e,d,"GeneratorFunction")),e.prototype=Object.create(y),e},t.awrap=function(e){return{__await:e}},E(Z.prototype),c(Z.prototype,l,(function(){return this})),t.AsyncIterator=Z,t.async=function(e,n,r,i,a){void 0===a&&(a=Promise);var o=new Z(s(e,n,r,i),a);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},E(y),c(y,d,"Generator"),c(y,o,(function(){return this})),c(y,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=W,T.prototype={constructor:T,reset:function(t){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(g),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function i(r,i){return l.type="throw",l.arg=t,n.next=r,i&&(n.method="next",n.arg=e),!!i}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],l=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var d=r.call(o,"catchLoc"),c=r.call(o,"finallyLoc");if(d&&c){if(this.prev<o.catchLoc)return i(o.catchLoc,!0);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else if(d){if(this.prev<o.catchLoc)return i(o.catchLoc,!0)}else{if(!c)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return i(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var a=i;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,h):this.complete(o)},complete:function(e,t){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&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),g(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;g(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:W(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),h}},t}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _toPrimitive(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey(e){var t=_toPrimitive(e,"string");return"symbol"==typeof t?t:t+""}function _typeof(e){return(_typeof="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 _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}}var DESCRIPTORS=descriptors,uncurryThis=functionUncurryThis,objectKeys=objectKeys$4,toIndexedObject=toIndexedObject$e,$propertyIsEnumerable=objectPropertyIsEnumerable.f,propertyIsEnumerable3=uncurryThis($propertyIsEnumerable),push=uncurryThis([].push),createMethod=function(e){return function(t){for(var n,r=toIndexedObject(t),i=objectKeys(r),a=i.length,o=0,l=[];a>o;)n=i[o++],DESCRIPTORS&&!propertyIsEnumerable3(r,n)||push(l,e?[n,r[n]]:r[n]);return l}},objectToArray={entries:createMethod(!0),values:createMethod(!1)},$=_export,$values=objectToArray.values;function getIDB(){try{if("undefined"!=typeof indexedDB)return indexedDB}catch(e){}}$({target:"Object",stat:!0},{values:function(e){return $values(e)}});var idb=getIDB();const idb$1=idb;function isIndexedDBValid(){try{if(null==idb$1||!idb$1.open)return!1;var e=/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),t="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||t)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(e){return!1}}function executeCallback(e,t){t&&e.then((function(e){t(null,e)}),(function(e){t(e)}))}function executeTwoCallbacks(e,t,n){"function"==typeof t&&e.then(t),"function"==typeof n&&e.catch(n)}function normalizeKey(e){return"string"!=typeof e&&(console.warn("".concat(e," used as a key, but it is not a string.")),e=String(e)),e}var dbContexts={},READ_ONLY="readonly",READ_WRITE="readwrite";function _deferReadiness(e){var t=dbContexts[e.name],n={};n.promise=new Promise((function(e,t){n.resolve=e,n.reject=t})),t.deferredOperations.push(n),t.dbReady?t.dbReady=t.dbReady.then((function(){return n.promise})):t.dbReady=n.promise}function _advanceReadiness(e){var t=dbContexts[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function _rejectReadiness(e,t){var n=dbContexts[e.name].deferredOperations.pop();if(n)return n.reject(t),n.promise}function _getConnection(e,t){return new Promise((function(n,r){if(dbContexts[e.name]=dbContexts[e.name]||createDbContext(),e.db){if(!t)return n(e.db);_deferReadiness(e),e.db.close()}var i=[e.name];t&&i.push(e.version);var a=null==idb$1?void 0:idb$1.open.apply(idb$1,i);t&&(a.onupgradeneeded=function(t){var n=a.result;try{n.createObjectStore(e.storeName)}catch(n){if("ConstraintError"!==n.name)throw n;console.warn('The database "'.concat(e.name,'" has been upgraded from version ').concat(t.oldVersion," to\n version ").concat(t.newVersion,', but the storage "').concat(e.storeName,'" already exists.'))}}),a.onerror=function(e){e.preventDefault(),r(a.error)},a.onsuccess=function(){n(a.result),_advanceReadiness(e)}}))}function _getOriginalConnection(e){return _getConnection(e,!1)}function _getUpgradedConnection(e){return _getConnection(e,!0)}function _isUpgradeNeeded(e,t){if(!e.db)return!0;var n=!e.db.objectStoreNames.contains(e.storeName),r=e.version<e.db.version,i=e.version>e.db.version;if(r&&(e.version!==t&&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),i||n){if(n){var a=e.db.version+1;a>e.version&&(e.version=a)}return!0}return!1}function _tryReconnect(e){_deferReadiness(e);for(var t=dbContexts[e.name],n=t.forages,r=0;r<n.length;r++){var i=n[r];i._dbInfo.db&&(i._dbInfo.db.close(),i._dbInfo.db=null)}return e.db=null,_getOriginalConnection(e).then((function(t){return e.db=t,_isUpgradeNeeded(e)?_getUpgradedConnection(e):t})).then((function(r){e.db=t.db=r;for(var i=0;i<n.length;i++)n[i]._dbInfo.db=r})).catch((function(t){throw _rejectReadiness(e,t),t}))}function createTransaction(e,t,n,r){void 0===r&&(r=1);try{var i=e.db.transaction(e.storeName,t);n(null,i)}catch(i){if(r>0&&(!e.db||"InvalidStateError"===i.name||"NotFoundError"===i.name))return Promise.resolve().then((function(){if(!e.db||"NotFoundError"===i.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),_getUpgradedConnection(e)})).then((function(){return _tryReconnect(e).then((function(){createTransaction(e,t,n,r-1)}))})).catch(n);n(i)}}function createDbContext(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}var AsyncStorage=function(){return _createClass((function e(){_classCallCheck(this,e)}),[{key:"ready",value:function(){return this._ready}},{key:"_initStorage",value:function(e){var t=this;t._defaultConfig=e;var n={db:null,name:"",version:""};if(e)for(var r in e)n[r]=e[r];var i=dbContexts[n.name];i||(i=createDbContext(),dbContexts[n.name]=i),i.forages.push(t),t._initReady||(t._initReady=t.ready,t._ready=t._fullyReady);var a=[];function o(){return Promise.resolve()}for(var l=0;l<i.forages.length;l++){var d=i.forages[l];d!==t&&a.push(d._initReady().catch(o))}var c=i.forages.slice(0);return t._ready=Promise.all(a).then((function(){return n.db=i.db,_getOriginalConnection(n)})).then((function(e){return n.db=e,_isUpgradeNeeded(n,t._defaultConfig.version)?_getUpgradedConnection(n):e})).then((function(e){n.db=i.db=e,t._dbInfo=n;for(var r=0;r<c.length;r++){var a=c[r];a!==t&&(a._dbInfo.db=n.db,a._dbInfo.version=n.version)}})),t._ready}},{key:"probeSupport",get:function(){return isIndexedDBValid()}},{key:"getItem",value:function(e,t){var n=this;e=normalizeKey(e);var r=new Promise((function(t,r){n.ready().then((function(){createTransaction(n._dbInfo,READ_ONLY,(function(i,a){if(i)return r(i);try{var o=a.objectStore(n._dbInfo.storeName).get(e);o.onsuccess=function(){var e=o.result;void 0===e&&(e=null),t(e)},o.onerror=function(){r(o.error)}}catch(e){r(e)}}))})).catch(r)}));return executeCallback(r,t),r}},{key:"setItem",value:function(e,t,n){var r=this;e=normalizeKey(e);var i=new Promise((function(n,i){r.ready().then((function(){return r._dbInfo,t})).then((function(t){createTransaction(r._dbInfo,READ_WRITE,(function(a,o){if(a)return i(a);try{var l=o.objectStore(r._dbInfo.storeName);null===t&&(t=void 0);var d=l.put(t,e);o.oncomplete=function(){void 0===t&&(t=null),n(t)},o.onabort=o.onerror=function(){var e=d.error?d.error:d.transaction.error;i(e)}}catch(e){i(e)}}))})).catch(i)}));return executeCallback(i,n),i}},{key:"removeItem",value:function(e,t){var n=this;e=normalizeKey(e);var r=new Promise((function(t,r){n.ready().then((function(){createTransaction(n._dbInfo,READ_WRITE,(function(i,a){if(i)return r(i);try{var o=a.objectStore(n._dbInfo.storeName).delete(e);a.oncomplete=function(){t()},a.onerror=function(){r(o.error)},a.onabort=function(){var e=o.error?o.error:o.transaction.error;r(e)}}catch(e){r(e)}}))})).catch(r)}));return executeCallback(r,t),r}},{key:"clear",value:function(e){var t=this,n=new Promise((function(e,n){t.ready().then((function(){createTransaction(t._dbInfo,READ_WRITE,(function(r,i){if(r)return n(r);try{var a=i.objectStore(t._dbInfo.storeName).clear();i.oncomplete=function(){e()},i.onabort=i.onerror=function(){var e=a.error?a.error:a.transaction.error;n(e)}}catch(e){n(e)}}))})).catch(n)}));return executeCallback(n,e),n}},{key:"length",value:function(e){var t=this,n=new Promise((function(e,n){t.ready().then((function(){createTransaction(t._dbInfo,READ_ONLY,(function(r,i){if(r)return n(r);try{var a=i.objectStore(t._dbInfo.storeName).count();a.onsuccess=function(){e(a.result)},a.onerror=function(){n(a.error)}}catch(e){n(e)}}))})).catch(n)}));return executeCallback(n,e),n}},{key:"all",value:function(e){var t=this,n=new Promise((function(e,n){t.ready().then((function(){createTransaction(t._dbInfo,READ_ONLY,(function(r,i){if(r)return n(r);try{var a=i.objectStore(t._dbInfo.storeName).openCursor(),o=[];a.onsuccess=function(){var t=a.result;t?(o.push({key:t.key,value:t.value}),t.continue()):e(o)},a.onerror=function(){n(a.error)}}catch(e){n(e)}}))})).catch(n)}));return executeCallback(n,e),n}},{key:"_fullyReady",value:function(e){var t=this,n=t._initReady().then((function(){var e=dbContexts[t._dbInfo.name];if(null!=e&&e.dbReady)return e.dbReady}));return executeTwoCallbacks(n,e,e),n}},{key:"getItemSync",value:function(){throw new Error("NotSupported")}}])}();const IndexedDB=AsyncStorage;var MemoryCache=function(){return _createClass((function e(){_classCallCheck(this,e)}),[{key:"_initStorage",value:function(e){var t=e.name,n=e.storeName,r="".concat(t,"_").concat(n);return this.key=r,window[r]&&"object"===_typeof(window[r])||(window[r]={}),this.store=window[r],Promise.resolve()}},{key:"getItem",value:function(e,t){var n=this.store[e];return void 0===n&&(n=null),this._internalPromise(t,n)}},{key:"getItemSync",value:function(e,t){var n=this.store[e];return void 0===n&&(n=null),t&&t(n),n}},{key:"setItem",value:function(e,t,n){return this.store[e]=t,this._internalPromise(n)}},{key:"removeItem",value:function(e,t){return delete this.store[e],this._internalPromise(t)}},{key:"clear",value:function(e){return this.store={},window[this.key]={},this._internalPromise(e)}},{key:"length",value:function(e){var t=Object.keys(this.store).length;return this._internalPromise(e,t)}},{key:"_internalPromise",value:function(e,t){var n=t?Promise.resolve(t):Promise.resolve();return executeCallback(n,e),n}},{key:"all",value:function(e){for(var t=[],n=Object.keys(this.store),r=0;r<n.length;r++){var i=n[r];t.push({key:i,value:this.store[i]})}return this._internalPromise(e,t)}},{key:"probeSupport",value:function(){return!0}}])}();const MemoryCache$1=MemoryCache;var DefaultConfig={description:"",name:"__PRE_CACHE__",storeName:"keyvaluepairs",version:1},SPLIT="|",SESSION_KEY="__PRE_CACHE__KEYS",TIMESPLIT="$",MAX_CACHE=200,PreloadCache=function(){return _createClass((function e(t,n){_classCallCheck(this,e),this._allCachedKeyMap={},this._memory=0,this._cnt=0;var r=n===CACHE_TYPES.MEMORY?MemoryCache$1:IndexedDB;this._cacheType=n,this._driver=new r,this._driver._initStorage(DefaultConfig).catch((function(){})),this._hasIdbForbidden=!1,this._maxCache=!t||t<=0?MAX_CACHE:t,this.setMaxCache(this._maxCache),this._allCachedKeys={},this._allCachedTimeKeys={},this.getCachedKeysFromLocal(),this._readyPromise=new ProxyPromise$1,this.init()}),[{key:"supportSync",value:function(){return this._cacheType===CACHE_TYPES.MEMORY}},{key:"getCachedKeysFromLocal",value:function(){var e=proxyLocalStorage$1.getItem(SESSION_KEY);if(e)for(var t=e.split(SPLIT),n=0;n<t.length;n++){var r=t[n],i=this._getCacheKeyInfos(r),a=i.time,o=i.cachedKey;this._allCachedKeys[o]=1,this._allCachedTimeKeys[o]=a}}},{key:"_getCacheKeyInfos",value:function(e){var t,n=e.split(TIMESPLIT);return 2===n.length&&(t=n[0],e=n[1]),{time:t,cachedKey:e}}},{key:"writeCachedKeysToLocal",value:function(e){var t=[];this._allCachedKeys={},this._allCachedTimeKeys={};for(var n=0;n<e.length;n++){var r=e[n].key,i=this._getCacheKeyInfos(r),a=i.time,o=i.cachedKey;this._allCachedKeys[o]=1,this._allCachedTimeKeys[o]=a,t.push(r)}var l=t.join(SPLIT);proxyLocalStorage$1.setItem(SESSION_KEY,l)}},{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 MemoryCache$1,e._driver._initStorage(DefaultConfig)),e._getAll(),e._readyPromise.resolve()}))}},{key:"_getAll",value:function(){var e=this;this._memory=0,this._cnt=0,this._driver.all().then((function(t){e._cachedLength=t.length;var n=t.length-e._maxCache,r=t;if(n>0){var i=t.slice(0,n);r=t.slice(n);for(var a=0;a<i.length;a++)e.removeItem(i[a].key).then((function(){}))}e._cnt=r.length;for(var o=0;o<r.length;o++){var l=r[o];if("object"===_typeof(l.value)){Object.values(l.value).forEach((function(t){e._memory+=(null==t?void 0:t.memory)||0}));var d=e._getCacheKeyInfos(l.key).cachedKey;e._allCachedKeyMap[d]=Object.keys(l.value)}}e.writeCachedKeysToLocal(r)})).catch((function(){}))}},{key:"getAllCachedDataKeys",value:function(){var e=[];return Object.values(this._allCachedKeyMap).forEach((function(t){e.push.apply(e,_toConsumableArray(t))})),e}},{key:"getItem",value:(e=_asyncToGenerator(_regeneratorRuntime().mark((function e(t,n,r){var i,a,o,l,d;return _regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((i=this.hasItem(t))&&r&&(a=this._allCachedKeyMap[t],i=(null==a?void 0:a.includes(r))||!1),i){e.next=4;break}return e.abrupt("return",Promise.resolve(!1));case 4:return o=this._getTimeKey(t),l=o.timeKey,e.next=7,this._driver.getItem(l,n);case 7:if(d=e.sent,!r){e.next=10;break}return e.abrupt("return",d[r]);case 10:return e.abrupt("return",d);case 11:case"end":return e.stop()}}),e,this)}))),function(t,n,r){return e.apply(this,arguments)})},{key:"getItemSync",value:function(e,t,n){var r=this.hasItem(e);if(r&&n){var i=this._allCachedKeyMap[e];r=(null==i?void 0:i.includes(n))||!1}if(!r)return!1;var a=this._getTimeKey(e).timeKey,o=this._driver.getItemSync(a,t);return o&&n?o[n]:o}},{key:"setItem",value:function(e,t,n){var r=this;this._getTimeKey(e).timeKey&&this.removeItem(e);var i=(new Date).getTime();this._allCachedKeys[e]=1,this._allCachedTimeKeys[e]=i;var a=this._genTimeKey(e,i);return n=n?function(){r._getAll(),n()}:function(){r._getAll()},this._driver.setItem(a,t,n)}},{key:"_getTimeKey",value:function(e){var t=this._allCachedTimeKeys[e],n=e;return t&&(n=this._genTimeKey(e,t)),{timeKey:n,time:t}}},{key:"_genTimeKey",value:function(e,t){return"".concat(t).concat(TIMESPLIT).concat(e)}},{key:"removeItem",value:function(e,t){var n=this._getTimeKey(e).timeKey,r=this._driver.removeItem(n,t);return delete this._allCachedKeys[e],delete this._allCachedTimeKeys[e],delete this._allCachedKeyMap[e],r}},{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}();const PreloadCache$1=PreloadCache;var _excluded$2=["vid","loadType","size","speed","cacheKey","vtype","duration","bitrate"],_realTimeSpeed$1=0,Stats=function(){return _createClass((function e(t){var n=this;_classCallCheck(this,e),this._preload_bandwith_map=new Map,this._usepreload_info=new Map,this._pcdn_info_map=new Map,this._updateRealTimeSpeed=function(e){_realTimeSpeed$1=e.speed,n.emit(REAL_TIME_SPEED_EVENT$1,e)},this._manager=t}),[{key:"setPreloadBandwidth",value:function(e,t){this._preload_bandwith_map.set(e,t)}},{key:"getPreloadBandwidth",value:function(e){return this._preload_bandwith_map.get(e)}},{key:"_updateLoadInfo",value:function(e,t,n){var r=this._pcdn_info_map.get(e);!r&&(r={}),r[t]||(r[t]={},r[t].loadLen=0),r[t].loadLen=r[t].loadLen+n,this._pcdn_info_map.set(e,r)}},{key:"getLoadInfoAndDelete",value:function(e){var t=this._pcdn_info_map.get(e);return this._pcdn_info_map.delete(e),t}},{key:"getPreloadUnuseInfo",value:function(){var e,t={},n=_createForOfIteratorHelper(this._preload_bandwith_map);try{for(n.s();!(e=n.n()).done;){var r=_slicedToArray(e.value,2),i=r[0],a=r[1];if(this._usepreload_info.get(i))this._preload_bandwith_map.delete(i);else{var o=i.split("#"),l=o.length>0?o[0]:i;t[l]?(t[l].bw+=a.bw||0,t[l].pbw+=a.pbw||0):t[l]={vid:l,bw:a.bw||0,pbw:a.pbw||0,bitrate:a.bitrate||0,duration:a.duration||0}}}}catch(e){n.e(e)}finally{n.f()}return Object.values(t)}},{key:"bwEventEmit",value:function(e){var t=e.vid,n=e.loadType,r=e.size,i=e.speed,a=e.cacheKey,o=e.vtype,l=e.duration,d=e.bitrate,c=_objectWithoutProperties(e,_excluded$2),s=this.getPreloadBandwidth(a)||{bw:0,pbw:0,vid:t,duration:l,bitrate:d};n&&n!==LOAD_TYPE$1.CDN?(s.pbw=s.pbw+r,this.emit("prf_data_size",_objectSpread2({vid:t,task_type:2,pcdn_size:r,pcdn_speed:i,vtype:o,bitrate:d,duration:l},c))):(s.bw=s.bw+r,this.emit("prf_data_size",_objectSpread2({vid:t,task_type:2,cdn_size:r,cdn_speed:i,vtype:o,duration:l,bitrate:d},c))),this.setPreloadBandwidth(a,s),this._updateRealTimeSpeed({speed:i,type:n||LOAD_TYPE$1.CDN}),this._updateLoadInfo(a,n,r)}},{key:"setUsePreloadInfo",value:function(e,t){this._usepreload_info.set(e,t)}},{key:"realTimeSpeed",get:function(){return _realTimeSpeed$1}},{key:"emit",value:function(e,t){var n;null===(n=this._manager)||void 0===n||n.emit(e,t)}},{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 getDefaultConfig$1(){return{autoPreload:!1,autoCheck:{enable:!1,interval:1e3},preloadMaxCacheCount:5,preloadCacheType:CACHE_TYPES.MEMORY,autoCheckPreload:!0,startPreloadControl:!1,startPreloadMinBuffer:5,startPreloadMinPosTime:5,minBufferLength:5,endPreloadControl:!1,endPreloadTaskStrategy:0}}function checkIfStartPreload(e,t,n){if(!e)return!1;var r=getBufferedRange(e.buffered,e.currentTime),i=t.startPreloadControl,a=t.startPreloadMinBuffer,o=t.startPreloadMinPosTime,l=t.minBufferLength;if(i){var d=Math.max(r[1]-e.currentTime,0);if("number"==typeof a&&d>a){if("number"==typeof o&&e.currentTime>o||e.currentTime>e.duration/2)return null==n||n("log","[checkIfStartPreload] hit buffer",d,"startPreloadMinBuffer",a),!0}else if(e.currentTime+a+1>e.duration&&e.currentTime+d>e.duration-1)return null==n||n("log","[checkIfStartPreload] hit end"),!0}else{var c="number"==typeof l&&e.duration>l+5?l:e.duration/2,s=Math.min(e.currentTime+l,e.duration),U=r[1]-s;if(e.currentTime>c&&U>-1)return null==n||n("log","[checkIfStartPreload] hit minPos",c,"minCacheTime",s),!0}return!1}function checkIfCancelPreload(e,t,n){var r=t.endPreloadControl,i=t.endPreloadMinBuffer,a=t.startPreloadMinBuffer;if(!e)return!1;if(r){if("number"==typeof a&&e.currentTime+a>=e.duration)return!1;var o=getBufferedRange(e.buffered,e.currentTime),l=Math.max(o[1]-e.currentTime,0);if(l<=i)return null==n||n("log","[checkIfCancelPreload] hit buffer:",l,"endPreloadMinBuffer:",i,"video:","".concat(e.currentTime,"/").concat(e.duration)),!0}return!1}function getBufferedRange(e,t){var n=[0,0];if(e)for(var r=0,i=e.length;r<i&&(n[0]=e.start(r),n[1]=e.end(r),!(n[0]<=t&&t<=n[1]));r++);return n[0]-t<=0&&t-n[1]<=0?n:[0,0]}function checkPlaying(e,t,n){for(var r=0;r<e.length;r++)if(n===e[r][t])return r;return-1}var _excluded$1=["vid","loadType","size","speed","cacheKey","vtype","duration","bitrate"],_DEBUGGER=!1,PreloaderManager=function(e){function t(){var e;return _classCallCheck(this,t),(e=_callSuper(this,t))._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=_asyncToGenerator(_regeneratorRuntime().mark((function t(){var n,r,i,a,o,l,d,c,s,U,F,u,Q,R;return _regeneratorRuntime().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=(i=e)._preloadDataList,o=i._config,!(!e._isOpen||e._currentPreloadInst||e._preloadDataList.length<1)){t.next=3;break}return t.abrupt("return",!1);case 3:if(l=e.findPreloadItem(a,!1),d=null==l?void 0:l.data,l&&null!=d&&d.payload){t.next=7;break}return t.abrupt("return",!1);case 7:if(null,c=e.selectBeforeStart(d),e._filterMixPayload(d,c),e.setStartDefinition(null===(n=c)||void 0===n?void 0:n.definition),e.log("log","selectBeforeStart",null===(r=c)||void 0===r?void 0:r.vtype,c),s=e._getPreloaderKey(c||d)){t.next=17;break}return e.log("warn","need to set vtype, no preloader",d),o.autoPreload&&e.emit(PRELOAD_EVENTS.PRELOAD_NEXT),t.abrupt("return",!1);case 17:if(U=e._getLoaderInst(s)){t.next=23;break}if(F=e._getLoader(s)){t.next=22;break}return t.abrupt("return",!1);case 22:U=new F(e,e._config);case 23:return e._currentPreloadInst=U,e._currentPreloadInst.setData(d),e._emitEvtByStart(d),t.prev=26,e.log("log","loaderInst.start",s,e.getStartDefinition(),d),t.next=30,U.start(d,e.getStartDefinition());case 30:(u=t.sent)&&u.remove&&(Q=a.indexOf(l))>-1&&a.splice(Q,1),t.next=37;break;case 34:t.prev=34,t.t0=t.catch(26),e.log("error","preload data error!",t.t0);case 37:return t.prev=37,null===(R=e._currentPreloadInst)||void 0===R||R.setData(null),e._currentPreloadInst=null,e._config.autoPreload&&e.emit(PRELOAD_EVENTS.PRELOAD_NEXT),t.finish(37);case 42:return t.abrupt("return",!0);case 43:case"end":return t.stop()}}),t,null,[[26,34,37,42]])}))),e._stats=new Stats(e),e}return _inherits(t,EventEmitter),_createClass(t,[{key:"VTYPES",get:function(){return VTYPES}},{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 t,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];_DEBUGGER&&(t=console)[e].apply(t,["[PreloaderManager]"].concat(r))}},{key:"register",value:function(e){try{if("undefined"==typeof window)return void this.log("preloader in ssr");var n=t.getDefaultConfig();this._config=Object.assign({},n,e.config),this._options=e;var r=this._config,i=r.preloadMaxCacheCount,a=r.preloadCacheType;this._stepwise=!!this._config.stepwise,this._cacheInst=new PreloadCache$1(i,a),this._selector=e.BitrateSelector,this.on(PRELOAD_EVENTS.PRELOAD_NEXT,this.onPreloadNext);for(var o=e.loaders,l=0;l<o.length;l++)this.registerLoader(o[l].vtype,o[l])}catch(e){this.log("register error",e)}}},{key:"registerLoader",value:function(e,t){e&&(this._loaders[e]&&this.log("warn","vtype:".concat(e," Preloader already exist")),this._loaders[e]=t,this._loaderInsts[e]=new t(this,this._config))}},{key:"_checkIfCanPreload",value:function(){if(null===this._currentPreloadInst&&this._preloadDataList.length>0){var e=this.findPreloadItem(this._preloadDataList),t=null==e?void 0:e.data;if(this._wipPreloadTask=e,e&&null!=t&&t.payload){if(!this._getPreloaderKey(t))return this.log("warn","need to set vtype"),this.stopCheckTask(),!1;var n=this._config.checkIfCanPreload;return n&&"function"==typeof n?n(t):this._config.autoCheckPreload?this._autoCheckPreload(t,e):(this.stopCheckTask(),!1)}}return!1}},{key:"_autoCheckPreload",value:function(e,t){return this._player?checkIfStartPreload(this._player,this._config,this.log):(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,t){return void 0===e.order&&void 0===t.order||"number"==typeof e.order&&"number"==typeof t.order&&e.order<t.order?-1:1}))}},{key:"_addPlayingVid",value:function(e,t){var n=this._playingVids,r=checkPlaying(this._playingVids,"playerId",e);r>-1?n[r].vid=t:n.push({vid:t,playerId:e})}},{key:"selectBeforeStart",value:function(e){var t=e.targetDefinition,n=e.defaultDefinition;if(t)return _objectSpread2({},t);var r=this.getUserSelectDefinition(),i=this.selectBitrate(null==e?void 0:e.payload,n,r),a=(null==i?void 0:i.vtype)||e.vtype,o=_objectSpread2(_objectSpread2({},i),{},{vtype:a});return e.targetDefinition=o,this.log("log","selectBeforeStart",null==e?void 0:e.vid,a,null==i?void 0:i.definition,null==e?void 0:e.payload,i),o}},{key:"selectBitrate",value:function(e,t,n){if(e.length<1)return null;var r=null;if(this._selector){var i,a,o;r=this._selector.getSuitableBitrate(e,n),this.log("log","BitRateAdapter result",null===(i=r)||void 0===i?void 0:i.vtype,null===(a=r)||void 0===a?void 0:a.definition,null===(o=r)||void 0===o?void 0:o.bitrate)}else{for(var l=-1,d=-1,c=0;c<e.length;c++){var s=e[c];n&&s.definition===n?l=c:t&&s.definition===t&&(d=c)}r=e[l>=0?l:d>=0?d:0]}return _objectSpread2({},r)}},{key:"startCheckTask",value:function(){var e=this,t=this._preloadDataList,n=this._currentPreloadInst,r=this._config.autoCheck;(this._taskIntervalId&&(clearTimeout(this._taskIntervalId),this._taskIntervalId=0),null!=n&&n.taskInProgress&&checkIfCancelPreload(this._player,this._config,this.log))?this.cancelPreloadingTask():0!==t.length&&(this._checkIfCanPreload()&&this.onPreloadNext(),this._taskIntervalId=setTimeout((function(){e.startCheckTask()}),r.interval))}},{key:"cancelPreloadingTask",value:function(){var e=this._preloadDataList,t=this._wipPreloadTask,n=this._config.endPreloadTaskStrategy;if(this.cancel(),t){var r;if(this.stepwise)"number"==typeof(null===(r=t.data)||void 0===r?void 0:r.stepIdx)&&t.data.stepIdx>-1&&t.data.stepIdx--;else 0!==n&&e.unshift(t);this._emitEvtByCancel(t.data),this._wipPreloadTask=void 0}}},{key:"stopCheckTask",value:function(){this._taskIntervalId&&(clearTimeout(this._taskIntervalId),this._taskIntervalId=-1)}},{key:"getPreloadMetaByVid",value:function(e,n){for(var r=this.getAllCachedDataKeys(),i=[],a="",o=0;o<r.length;o++){var l=r[o],d=t.parseKey(l);d.vid===e&&(a=d.vtype,null!=n&&n.vtype&&n.vtype!==a||i.push(l))}if(0===i.length)return null;var c=this._getLoaderInst(a);return c?c.parseKey(i):null}},{key:"preloadNext",value:function(){this.onPreloadNext()}},{key:"_filterMixPayload",value:function(e,t){var n=t.vtype;if(n&&Array.isArray(e.payload)){var r=e.vtype===n;e.vtype=n,e.payload=e.payload.filter((function(e){return e.vtype===n||r}))}}},{key:"_emitEvtByStart",value:function(e){var t=this._player;if(e&&t)try{this.emit(PRELOAD_EVENTS.PRELOAD_START,this._getEventPayload(e,t))}catch(e){this.log("warn","preload emit start error",null==e?void 0:e.stack)}}},{key:"_emitEvtByCancel",value:function(e){var t=this._player;if(e&&t)try{this.emit(PRELOAD_EVENTS.PRELOAD_CANCEL,this._getEventPayload(e,t))}catch(e){this.log("warn","preload emit cancel error",null==e?void 0:e.stack)}}},{key:"_getEventPayload",value:function(e,t){var n=t.config.vid,r=this._config,i=r.minBufferLength,a=r.startPreloadControl,o=r.startPreloadMinBuffer,l=r.startPreloadMinPosTime,d=r.endPreloadMinBuffer,c=r.endPreloadControl,s=getBufferedRange(t.video.buffered,t.currentTime),U=s[1]?s[1]-t.currentTime:0;return{vid:n,pid:e.vid,buffer:s,bufferHead:U,currentTime:t.currentTime,minBufferLength:i,startPreloadControl:a,startPreloadMinBuffer:o,startPreloadMinPosTime:l,endPreloadControl:c,endPreloadMinBuffer:d}}},{key:"addPreloadList",value:(l=_asyncToGenerator(_regeneratorRuntime().mark((function e(t){var n,r,i;return _regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this._sort(t),n=_createForOfIteratorHelper(t),e.prev=2,n.s();case 4:if((r=n.n()).done){e.next=10;break}return i=r.value,e.next=8,this._addData(i);case 8:e.next=4;break;case 10:e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),n.e(e.t0);case 15:return e.prev=15,n.f(),e.finish(15);case 18:this._checkAutoTask();case 19:case"end":return e.stop()}}),e,this,[[2,12,15,18]])}))),function(e){return l.apply(this,arguments)})},{key:"addPlayingId",value:function(e,t){for(var n=this._preloadDataList,r=-1,i=0;i<n.length;i++){if(e===n[i].data.vid){r=i;break}}if(r>-1){var a=n.splice(r,1);this.log("log","cancelPreloadByVid remove from list",a.length>0&&a[0].data.vid)}var o=this._currentPreloadInst,l=o?o.getData():null;this.log("log","_currentPreloadInst",l),l&&l.vid===e&&this.cancel(),t&&this._addPlayingVid(t,e)}},{key:"removePlayingId",value:function(e){var t=this._playingVids,n=checkPlaying(t,"playerId",e);if(n>-1){var r=t.splice(n,1);this.log("log","removePlayingId",r.length>0&&r[0].playerId)}}},{key:"addPreload",value:(o=_asyncToGenerator(_regeneratorRuntime().mark((function e(t){return _regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._addData(t);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 o.apply(this,arguments)})},{key:"_addData",value:(a=_asyncToGenerator(_regeneratorRuntime().mark((function e(t){var n,r,i,a,o,l,d,c,s,U=this;return _regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.data.vtype){e.next=3;break}return this.log("warn","vtype is null, can·t select loader"),e.abrupt("return",!1);case 3:if(n=t.data,r=this._getLoader(n.vtype)){e.next=8;break}return this.log("warn","the loader for ".concat(n.vtype," not registered")),e.abrupt("return",!1);case 8:if(i=this._playingVids,!((a=checkPlaying(i,"vid",t.data.vid))>=0)){e.next=14;break}return o=i[a],this.log("log","vid:".concat(o.vid," is already instantiated and loaded, playerId is ").concat(o.playerId)),e.abrupt("return");case 14:return l=this._getUniqueKey(t),e.next=17,this.getItem(t.data,!0);case 17:if(!(d=e.sent)){e.next=22;break}if(!r.isUniqueCache(d)){e.next=22;break}return this.log("log","".concat(l," already exist in cache")),e.abrupt("return",!1);case 22:if(!this._currentPreloadInst){e.next=29;break}if(!(c=this._currentPreloadInst.getData())){e.next=29;break}if(this._getUniqueKey({data:c,order:0})!==l){e.next=29;break}return this.log("log","currentKey repeat"),e.abrupt("return");case 29:if(s=this._preloadDataList.filter((function(e){return U._getUniqueKey(e)===l})),this.log("log","addedItems",l,s),0!==s.length){e.next=35;break}return this._stepwise&&void 0===t.data.steps&&(t.data.steps=[0]),this._preloadDataList.push(t),e.abrupt("return",!0);case 35:return this.log("log","".concat(l," already exist in preloadList")),e.abrupt("return",!1);case 37:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"_getUniqueKey",value:function(e){return e.data.vtype?t.generateUniqueCacheKey(e.data):e.data.vid}},{key:"_checkAutoTask",value:function(){var e=this,t=this._config,n=t.autoCheck,r=t.autoPreload;Promise.resolve().then((function(){r&&e.emit(PRELOAD_EVENTS.PRELOAD_NEXT),null!=n&&n.enable&&!e._taskIntervalId&&e.startCheckTask()}))}},{key:"setItem",value:function(e,n,r,i){var a=t.generateUniqueCacheKey(e);if(!r){var o=this._getLoader(e.vtype);if(!o)return this.log("warn","no ".concat(e.vtype," preloader, register")),Promise.resolve(!1);n=_defineProperty({},o.generateUniqueKey(e),n)}return this._cacheInst.setItem(a,n,i)}},{key:"getItem",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=t.generateUniqueCacheKey(e),a=this._getLoader(e.vtype);if(!a)return this.log("warn","no ".concat(e.vtype," preloader, register")),Promise.resolve(!1);var o=n?"":a.generateUniqueKey(e);return this._cacheInst.getItem(i,r,o)}},{key:"getItemSync",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=t.generateUniqueCacheKey(e),a=this._getLoader(e.vtype);if(!a)return this.log("warn","no ".concat(e.vtype," preloader, register")),!1;var o=n?"":a.generateUniqueKey(e);return this._cacheInst.getItemSync(i,r,o)}},{key:"supportSync",value:function(){return this._cacheInst.supportSync()}},{key:"removeItem",value:function(e,n){var r=t.generateUniqueCacheKey(e);return this._cacheInst.removeItem(r,n)}},{key:"getPreLoadData",value:(i=_asyncToGenerator(_regeneratorRuntime().mark((function e(t){var n,r,i;return _regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.vtype,!(r=this._getLoaderInst(n))){e.next=7;break}return e.next=5,r.getPreLoadData(t);case 5:return i=e.sent,e.abrupt("return",i);case 7:return e.abrupt("return",null);case 8:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"getPreLoadDataSync",value:function(e){var t=e.vtype,n=this._getLoaderInst(t);return n?n.getPreLoadDataSync(e):null}},{key:"removeAll",value:function(){var e=this;this.getAllCachedDataKeys().forEach((function(t){var n=e.getPreloadMetaByVid(t.split("#")[0]);n&&e.removeItem(n,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:(r=_asyncToGenerator(_regeneratorRuntime().mark((function e(){var t,n,r,i;return _regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this._stats.destroy(),t=Object.keys(this._loaderInsts),n=0;case 3:if(!(n<t.length)){e.next=12;break}if(r=t[n],!(i=this._getLoaderInst(r))){e.next=9;break}return e.next=9,i.destroy();case 9:n++,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 r.apply(this,arguments)})},{key:"cancel",value:(n=_asyncToGenerator(_regeneratorRuntime().mark((function e(){var t;return _regeneratorRuntime().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===(t=this._currentPreloadInst)||void 0===t||t.setData(null);case 4:this._currentPreloadInst=null;case 5:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"removeByPlayInst",value:function(e,t){for(var n=this._preloadDataList.length-1;n>-1;n--){var r=this._preloadDataList[n];if(r.data.vid===e&&r.playerId===t){this._preloadDataList.splice(n,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 t=this._getLoader(e.vtype);return!!t&&t.generateUniqueKey(e)}},{key:"hasItemSameVid",value:function(e){var t=this._getLoader(e.vtype),n=this._getLoaderInst(e.vtype);if(t&&n){var r=t.generateUniqueKey(e);return n.hasItemSameVid(r)}return!1}},{key:"_getLoader",value:function(e){e=e||"";var t=this._loaders[e]||this._loaders[e.toLocaleLowerCase()];return t||(this.log("warn","no ".concat(e," preloader, register")),null)}},{key:"_getLoaderInst",value:function(e){e=e||"";var t=this._loaderInsts[e]||this._loaderInsts[e.toLocaleLowerCase()];return t||(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,t){this._stats.setPreloadBandwidth(e,t)}},{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,t){this._stats.setUsePreloadInfo(e,t)}},{key:"bwEventEmit",value:function(e){var t=e.vid,n=e.loadType,r=e.size,i=e.speed,a=e.cacheKey,o=e.vtype,l=e.duration,d=e.bitrate,c=_objectWithoutProperties(e,_excluded$1);this._stats.bwEventEmit(_objectSpread2({vid:t,loadType:n,size:r,speed:i,cacheKey:a,vtype:o,duration:l,bitrate:d},c))}},{key:"findPreloadItem",value:function(e){var t,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this._stepwise){var r=e.reduce((function(e,t){return void 0===t.data.stepIdx||"number"==typeof t.data.stepIdx&&"number"==typeof e.data.stepIdx&&t.data.stepIdx<e.data.stepIdx?t:e})),i=e.filter((function(e){return e.data.stepIdx===r.data.stepIdx}));if(i.length>1&&this._sort(i),t=i[0],!n){if("number"!=typeof t.data.stepIdx&&(t.data.stepIdx=-1),t.data.stepIdx++,Array.isArray(t.data.steps)&&t.data.stepIdx>=t.data.steps.length-1){var a=e.indexOf(t);e.splice(a,1)}t.data.stepIdx===1/0&&(t=void 0)}}else t=n?e[0]:e.shift();return t}},{key:"updateConfig",value:function(e){arguments.length>1&&void 0!==arguments[1]&&arguments[1]?this._config=Object.assign({},t.getDefaultConfig(),e):Object.assign(this._config,e);var n=this._config.autoCheck;n&&!n.enable&&this.stopCheckTask(),n&&n.enable&&this.startCheckTask()}},{key:"preProcessUrl",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this._config,r=n.preProcessUrl,i=n.preProcessUrlOptions;return"function"==typeof r?r(e,Object.assign({},i,t)):{url:e}}}],[{key:"getDefaultConfig",value:function(){return getDefaultConfig$1()}},{key:"generateUniqueCacheKey",value:function(e){var t=e.vid,n=e.codecType,r=e.vtype;return"".concat(t,"#").concat(n,"#").concat(r.toUpperCase())}},{key:"parseKey",value:function(e){if(!e)throw new Error("key ".concat(e," is empty"));var t=e.split("#");if(t.length<6)throw new Error("key ".concat(e," is not right format"));return{vid:t[0],mediaType:t[1],codecType:t[2],vtype:t[3],definition:t[4],bitrate:parseInt("".concat(t[5]||0),10)||0}}},{key:"debugger",set:function(e){_DEBUGGER=!!e}}]);var n,r,i,a,o,l}(),PreloaderBase=function(e){function t(e,n){var r;return _classCallCheck(this,t),(r=_callSuper(this,t))._data=null,r.preloadManager=e,r._config=n,r.promisePolyfill(),r}return _inherits(t,EventEmitter),_createClass(t,[{key:"taskInProgress",get:function(){return!1}},{key:"stepwise",get:function(){return this.preloadManager.stepwise}},{key:"getRequestOption",value:function(e){var t=this._config,n=t.getRequestOptionsCallback,r=t.reqOptions,i={};return e?i=e.reqOptions?e.reqOptions:"function"==typeof n?n(e):r||{}:i}},{key:"getUserSelectDefinition",value:function(){return this.preloadManager.getUserSelectDefinition()}},{key:"selectBitrate",value:function(e,t,n){return this.preloadManager.selectBitrate(e,t,n)}},{key:"promisePolyfill",value:function(){Promise.prototype.finally||(Promise.prototype.finally={finally:function(e){var t=function(t){return Promise.resolve(e()).then(t)};return this.then((function(e){return t((function(){return e}))}),(function(e){return t((function(){return Promise.reject(e)}))}))}}.finally)}},{key:"getData",value:function(){return this._data}},{key:"setData",value:function(e){this._data=e}},{key:"start",value:(a=_asyncToGenerator(_regeneratorRuntime().mark((function e(t,n){return _regeneratorRuntime().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,t){return a.apply(this,arguments)})},{key:"cancel",value:(i=_asyncToGenerator(_regeneratorRuntime().mark((function e(){return _regeneratorRuntime().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 i.apply(this,arguments)})},{key:"getPreLoadData",value:(r=_asyncToGenerator(_regeneratorRuntime().mark((function e(t){return _regeneratorRuntime().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 r.apply(this,arguments)})},{key:"getPreLoadDataSync",value:function(e){return null}},{key:"hasItemSameVid",value:function(e){return!0}},{key:"destroy",value:(n=_asyncToGenerator(_regeneratorRuntime().mark((function e(){return _regeneratorRuntime().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 n.apply(this,arguments)})},{key:"parseKey",value:function(e){return PreloaderManager.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 n,r,i,a}(),concat2={};Object.defineProperty(concat2,"__esModule",{value:!0}),concat2.default=function(e){for(var t=0,n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];var a=!0,o=!1,l=void 0;try{for(var d,c=r[Symbol.iterator]();!(a=(d=c.next()).done);a=!0){t+=d.value.length}}catch(e){o=!0,l=e}finally{try{!a&&c.return&&c.return()}finally{if(o)throw l}}var s=new e(t),U=0,F=!0,u=!1,Q=void 0;try{for(var R,h=r[Symbol.iterator]();!(F=(R=h.next()).done);F=!0){var p=R.value;s.set(p,U),U+=p.length}}catch(e){u=!0,Q=e}finally{try{!F&&h.return&&h.return()}finally{if(u)throw Q}}return s};var _concat=concat2,_concat2=_interopRequireDefault(_concat);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var lib=_concat2.default,Concat=getDefaultExportFromCjs(lib),CODEC_TYPE=function(e){return e.H264="h264",e.H265="h265",e.H266="h266",e}(CODEC_TYPE||{}),DEFAULT_TRUNK=8e5;function getDefaultConfig(){return{supportHevc:!1,preloadTime:5,preloadSize:0,segmentMinDuration:5,vtype:"MP4",preloadCacheType:1,preloadMaxCacheCount:5,globalKey:null,autoPreload:!1,reqOptions:null,getRequestOptionsCallback:null,minBufferLength:5,timeout:3e3,autoCheck:{enable:!0,interval:1e3},logCacheConfig:{logCacheLevel:2,logMaxSize:204800},pcdnConfig:{openPreloadPCDN:!1,enterMinBuffer:10,outMaxBuffer:5,pcdn_duration:2,pcdn_open:!0,openPCDN:!0,minDuration:25,trackerUrl:""},switchPCDNMaxCnt:2,retryCount:1,retryDelay:1e3,loaderType:"fetch"}}var LoaderType={FETCH:"fetch",XHR:"xhr"},ResponseType={ARRAY_BUFFER:"arraybuffer",TEXT:"text",JSON:"json"},NetError=function(e){_inherits$3(n,_wrapNativeSuper$1(Error));var t=_createSuper$2(n);function n(e,r,i,a){var o;return _classCallCheck$4(this,n),_defineProperty$4(_assertThisInitialized$3(o=t.call(this,a)),"retryCount",0),_defineProperty$4(_assertThisInitialized$3(o),"isTimeout",!1),_defineProperty$4(_assertThisInitialized$3(o),"loaderType",LoaderType.FETCH),_defineProperty$4(_assertThisInitialized$3(o),"startTime",0),_defineProperty$4(_assertThisInitialized$3(o),"endTime",0),_defineProperty$4(_assertThisInitialized$3(o),"options",{}),o.url=e,o.request=r,o.response=i,o}return _createClass$4(n)}(),toString5=Object.prototype.toString;function isObject(e){return null!==e&&"object"===_typeof$2(e)}function isPlainObject(e){if("[object Object]"!==toString5.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function isDate(e){return"[object Date]"===toString5.call(e)}function getRangeValue(e){if(e&&null!==e[0]&&void 0!==e[0]&&(0!==e[0]||null!==e[1]&&void 0!==e[1])){var t="bytes="+e[0]+"-";return e[1]&&(t+=e[1]),t}}function encode(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function setUrlParams(e,t){if(e){if(!t)return e;var n,r=Object.keys(t).map((function(e){if(null!=(n=t[e]))return Array.isArray(n)?e+="[]":n=[n],n.map((function(t){return isDate(t)?t=t.toISOString():isObject(t)&&(t=JSON.stringify(t)),"".concat(encode(e),"=").concat(encode(t))})).join("&")})).filter(Boolean).join("&");if(r){var i=e.indexOf("#");-1!==i&&(e=e.slice(0,i)),e+=(-1===e.indexOf("?")?"?":"&")+r}return e}}function createResponse(e,t,n,r,i,a,o,l,d,c,s){return i=null!=i?parseFloat(i):null,r=parseInt(r||"0",10),Number.isNaN(r)&&(r=0),{data:e,done:t,options:{range:d,vid:c,index:l,contentLength:r,age:i,startTime:a,firstByteTime:o,endTime:Date.now(),priOptions:s},response:n}}function calculateSpeed(e,t){return Math.round(8*e*1e3/t/1024)}var EVENT={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"},CACHESIZE=2097152,FetchLoader=function(e){_inherits$3(r,EventEmitter);var t,n=_createSuper$2(r);function r(){var e;return _classCallCheck$4(this,r),_defineProperty$4(_assertThisInitialized$3(e=n.call(this)),"_abortController",null),_defineProperty$4(_assertThisInitialized$3(e),"_timeoutTimer",null),_defineProperty$4(_assertThisInitialized$3(e),"_reader",null),_defineProperty$4(_assertThisInitialized$3(e),"_response",null),_defineProperty$4(_assertThisInitialized$3(e),"_aborted",!1),_defineProperty$4(_assertThisInitialized$3(e),"_index",-1),_defineProperty$4(_assertThisInitialized$3(e),"_range",null),_defineProperty$4(_assertThisInitialized$3(e),"_receivedLength",0),_defineProperty$4(_assertThisInitialized$3(e),"_running",!1),_defineProperty$4(_assertThisInitialized$3(e),"_logger",null),_defineProperty$4(_assertThisInitialized$3(e),"_vid",""),_defineProperty$4(_assertThisInitialized$3(e),"_firtstByte",0),_defineProperty$4(_assertThisInitialized$3(e),"_onProcessMinLen",0),_defineProperty$4(_assertThisInitialized$3(e),"_onCancel",null),_defineProperty$4(_assertThisInitialized$3(e),"_priOptions",null),e}return _createClass$4(r,[{key:"load",value:function(e){var t,n=this,r=e.url,i=e.vid,a=e.timeout,o=e.responseType,l=e.onProgress,d=e.index,c=e.onTimeout,s=e.onCancel,U=e.range,F=e.transformResponse,u=e.request,Q=e.params,R=e.logger,h=e.method,p=e.headers,B=e.body,S=e.mode,f=e.credentials,m=e.cache,V=e.redirect,y=e.referrer,E=e.referrerPolicy,Z=e.onProcessMinLen,b=e.priOptions,J=e.streamRes,v=e.firstMaxChunkSize;this._logger=R,this._aborted=!1,this._onProcessMinLen=Z,this._onCancel=s,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._index=d,this._range=U||[0,0],this._vid=i||r,this._priOptions=b||{},this._firstMaxChunkSize=v;var g={method:h,headers:p,body:B,mode:S,credentials:f,cache:m,redirect:V,referrer:y,referrerPolicy:E,signal:null===(t=this._abortController)||void 0===t?void 0:t.signal},T=!1;clearTimeout(this._timeoutTimer),r=setUrlParams(r,Q);var W=getRangeValue(U);W&&(p=u?u.headers:g.headers=g.headers||(Headers?new Headers:{}),Headers&&p instanceof Headers?p.append("Range",W):p.Range=W),a&&(this._timeoutTimer=setTimeout((function(){if(T=!0,n.cancel(),c){var e=new NetError(r,g,null,"timeout");e.isTimeout=!0,c(e,{index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions})}}),a));var k=Date.now(),N="undefined"!=typeof performance&&performance.now?performance.now():k;return this._logger.debug("[fetch load start], index,",d,",range,",U),new Promise((function(e,t){(J?new Promise((function(e){e(J)})):fetch(u||r,u?void 0:g)).then(function(){var i=_asyncToGenerator$3(_regeneratorRuntime$3().mark((function i(a){var c,s,u,Q;return _regeneratorRuntime$3().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(clearTimeout(n._timeoutTimer),n._response=a,!n._aborted&&n._running){i.next=4;break}return i.abrupt("return");case 4:if(c=Date.now(),n._priOptions.rtt=Math.max(0,("undefined"!=typeof performance&&performance.now?performance.now():c)-N),F&&(a=F(a,r)||a),a.ok){i.next=7;break}throw new NetError(r,g,a,"bad network response");case 7:if(o!==ResponseType.TEXT){i.next=15;break}return i.next=11,a.text();case 11:s=i.sent,n._running=!1,i.next=37;break;case 15:if(o!==ResponseType.JSON){i.next=22;break}return i.next=18,a.json();case 18:s=i.sent,n._running=!1,i.next=37;break;case 22:if(!l){i.next=29;break}return n.resolve=e,n.reject=t,n._loadChunk(a,l,k,c),i.abrupt("return");case 29:return i.next=31,a.arrayBuffer();case 31:s=i.sent,s=new Uint8Array(s),n._running=!1,u=Date.now()-k,Q=calculateSpeed(s.byteLength,u),n.emit(EVENT.REAL_TIME_SPEED,{speed:Q,len:s.byteLength,time:u,vid:n._vid,index:n._index,range:n._range,priOptions:n._priOptions});case 37:n._logger.debug("[fetch load end], index,",d,",range,",U),e(createResponse(s,!0,a,a.headers.get("Content-Length"),a.headers.get("age"),k,c,d,U,n._vid,n._priOptions));case 39:case"end":return i.stop()}}),i)})));return function(e){return i.apply(this,arguments)}}()).catch((function(e){var i;clearTimeout(n._timeoutTimer),n._running=!1,n._aborted&&!T||((e=e instanceof NetError?e:new NetError(r,g,null,null===(i=e)||void 0===i?void 0:i.message)).startTime=k,e.endTime=Date.now(),e.isTimeout=T,e.options={index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions},t(e))}))}))}},{key:"cancel",value:(t=_asyncToGenerator$3(_regeneratorRuntime$3().mark((function e(){return _regeneratorRuntime$3().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(e){}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 t.apply(this,arguments)})},{key:"_loadChunk",value:function(e,t,n,r){var i=this;if(!e.body||!e.body.getReader){this._running=!1;var a=new NetError(e.url,"",e,"onProgress of bad response.body.getReader");return a.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(a)}this._onProcessMinLen>0&&(this._cache=new Uint8Array(CACHESIZE),this._writeIdx=0);var o,l,d,c=this._reader=e.body.getReader(),s=function(){var a=_asyncToGenerator$3(_regeneratorRuntime$3().mark((function a(){var U,F,u,Q,R,h,p,B,S,f;return _regeneratorRuntime$3().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return l=Date.now(),a.prev=1,a.next=4,c.read();case 4:o=a.sent,d=Date.now(),a.next=13;break;case 8:return a.prev=8,a.t0=a.catch(1),d=Date.now(),i._aborted||(i._running=!1,a.t0.options={index:i._index,range:i._range,vid:i._vid,priOptions:i._priOptions},i.reject(a.t0)),a.abrupt("return");case 13:if(F=(null===(U=i._range)||void 0===U?void 0:U.length)>0?i._range[0]:0,u=F+i._receivedLength,!i._aborted){a.next=19;break}return i._running=!1,t(void 0,!1,{range:[u,u],vid:i._vid,index:i._index,startTime:l,endTime:d,st:n,firstByteTime:r,priOptions:i._priOptions},e),a.abrupt("return");case 19:Q=o.value?o.value.byteLength:0,i._receivedLength+=Q,i._logger.debug("【fetchLoader,onProgress call】,task,",i._range,", start,",u,", end,",F+i._receivedLength,", done,",o.done),i._onProcessMinLen>0?i._writeIdx+Q>=i._onProcessMinLen||o.done?((R=new Uint8Array(i._writeIdx+Q)).set(i._cache.slice(0,i._writeIdx),0),Q>0&&R.set(o.value,i._writeIdx),i._writeIdx=0,i._logger.debug("【fetchLoader,onProgress enough】,done,",o.done,",len,",R.byteLength,", writeIdx,",i._writeIdx)):Q>0&&i._writeIdx+Q<CACHESIZE?(i._cache.set(o.value,i._writeIdx),i._writeIdx+=Q,i._logger.debug("【fetchLoader,onProgress cache】,len,",Q,", writeIdx,",i._writeIdx)):Q>0&&(h=new Uint8Array(i._writeIdx+Q+2048),i._logger.debug("【fetchLoader,onProgress extra start】,size,",i._writeIdx+Q+2048,", datalen,",Q,", writeIdx,",i._writeIdx),h.set(i._cache.slice(0,i._writeIdx),0),Q>0&&h.set(o.value,i._writeIdx),i._writeIdx+=Q,delete i._cache,i._cache=h,i._logger.debug("【fetchLoader,onProgress extra end】,len,",Q,", writeIdx,",i._writeIdx)):R=o.value,(R&&R.byteLength>0||o.done)&&(i._firstMaxChunkSize&&(i._firtstByte?i._cacheData&&((B=new Uint8Array(i._cacheData.byteLength+R.byteLength)).set(i._cacheData,0),B.set(R,i._cacheData.byteLength),R=B,i._cacheData=null):(i._firtstByte++,p=R.slice(0,i._firstMaxChunkSize),i._cacheData=R.slice(i._firstMaxChunkSize),R=p)),t(R,o.done,{range:[i._range[0]+i._receivedLength-(R?R.byteLength:0),i._range[0]+i._receivedLength],vid:i._vid,index:i._index,startTime:l,endTime:d,st:n,firstByteTime:r,priOptions:i._priOptions},e)),o.done?(S=Date.now()-n,f=calculateSpeed(i._receivedLength,S),i.emit(EVENT.REAL_TIME_SPEED,{speed:f,len:i._receivedLength,time:S,vid:i._vid,index:i._index,range:i._range,priOptions:i._priOptions}),i._running=!1,i._logger.debug("[fetchLoader onProgress end],task,",i._range,",done,",o.done),i.resolve(createResponse(o,!0,e,e.headers.get("Content-Length"),e.headers.get("age"),n,r,i._index,i._range,i._vid,i._priOptions))):i._firstMaxChunkSize?setTimeout((function(){s()}),0):s();case 25:case"end":return a.stop()}}),a,null,[[1,8]])})));return function(){return a.apply(this,arguments)}}();s()}},{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)}}]),r}();function getConfig(e){return _objectSpread2$3({loaderType:LoaderType.FETCH,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:ResponseType.TEXT,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)}var XhrLoader=function(e){_inherits$3(n,EventEmitter);var t=_createSuper$2(n);function n(){var e;return _classCallCheck$4(this,n),_defineProperty$4(_assertThisInitialized$3(e=t.call(this)),"_xhr",null),_defineProperty$4(_assertThisInitialized$3(e),"_aborted",!1),_defineProperty$4(_assertThisInitialized$3(e),"_timeoutTimer",null),_defineProperty$4(_assertThisInitialized$3(e),"_range",null),_defineProperty$4(_assertThisInitialized$3(e),"_receivedLength",0),_defineProperty$4(_assertThisInitialized$3(e),"_url",null),_defineProperty$4(_assertThisInitialized$3(e),"_onProgress",null),_defineProperty$4(_assertThisInitialized$3(e),"_index",-1),_defineProperty$4(_assertThisInitialized$3(e),"_headers",null),_defineProperty$4(_assertThisInitialized$3(e),"_currentChunkSizeKB",384),_defineProperty$4(_assertThisInitialized$3(e),"_timeout",null),_defineProperty$4(_assertThisInitialized$3(e),"_xhr",null),_defineProperty$4(_assertThisInitialized$3(e),"_withCredentials",null),_defineProperty$4(_assertThisInitialized$3(e),"_startTime",-1),_defineProperty$4(_assertThisInitialized$3(e),"_loadCompleteResolve",null),_defineProperty$4(_assertThisInitialized$3(e),"_loadCompleteReject",null),_defineProperty$4(_assertThisInitialized$3(e),"_runing",!1),_defineProperty$4(_assertThisInitialized$3(e),"_logger",!1),_defineProperty$4(_assertThisInitialized$3(e),"_vid",""),_defineProperty$4(_assertThisInitialized$3(e),"_responseType",void 0),_defineProperty$4(_assertThisInitialized$3(e),"_credentials",void 0),_defineProperty$4(_assertThisInitialized$3(e),"_method",void 0),_defineProperty$4(_assertThisInitialized$3(e),"_transformResponse",void 0),_defineProperty$4(_assertThisInitialized$3(e),"_firstRtt",void 0),_defineProperty$4(_assertThisInitialized$3(e),"_onCancel",null),_defineProperty$4(_assertThisInitialized$3(e),"_priOptions",null),e}return _createClass$4(n,[{key:"load",value:function(e){var t=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=setUrlParams(e.url,e.params);var n=Date.now();return new Promise((function(e,n){t._loadCompleteResolve=e,t._loadCompleteReject=n,t._startLoad()})).catch((function(e){if(clearTimeout(t._timeoutTimer),t._runing=!1,!t._aborted)throw(e=e instanceof NetError?e:new NetError(t._url,t._request)).startTime=n,e.endTime=Date.now(),e.options={index:t._index,vid:t._vid,priOptions:t._priOptions},e}))}},{key:"_startLoad",value:function(){var e=null;if(this._responseType===ResponseType.ARRAY_BUFFER&&this._range&&this._range.length>1)if(this._onProgress){this._firstRtt=-1;var t=1024*this._currentChunkSizeKB,n=this._range[0]+this._receivedLength,r=this._range[1];t<this._range[1]-n&&(r=n+t),e=[n,r],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 t=this;try{this._startTime=Date.now(),this._rttStartTime="undefined"!=typeof performance&&performance.now?performance.now():this._startTime;var n=this._xhr=new XMLHttpRequest;n.open(this._method||"GET",this._url,!0),n.responseType=this._responseType,this._timeout&&(n.timeout=this._timeout),n.withCredentials=this._withCredentials,n.onload=this._onLoad.bind(this),n.onreadystatechange=this._onReadyStatechange.bind(this),n.onerror=function(e){var n,r,i;t._running=!1;var a=new NetError(t._url,t._request,null==e||null===(n=e.currentTarget)||void 0===n?void 0:n.response,"xhr.onerror.status:"+(null==e||null===(r=e.currentTarget)||void 0===r?void 0:r.status)+",statusText,"+(null==e||null===(i=e.currentTarget)||void 0===i?void 0:i.statusText));a.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(a)},n.ontimeout=function(e){t.cancel();var n=new NetError(t._url,t._request,{status:408},"timeout");t._onTimeout&&(n.isTimeout=!0,t._onTimeout(n,{index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions})),n.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(n)};var r=this._headers||{},i=getRangeValue(e);i&&(r.Range=i),r&&Object.keys(r).forEach((function(e){n.setRequestHeader(e,r[e])})),this._logger.debug("[xhr.send->] tast,",this._range,",load sub range, ",e),n.send(this._body)}catch(t){t.options={index:this._index,range:e,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(t)}}},{key:"_onReadyStatechange",value:function(e){2===e.target.readyState&&this._firstRtt<0&&(this._firstRtt=Date.now(),this._priOptions.rtt=Math.max(0,("undefined"!=typeof performance&&performance.now?performance.now():this._firstRtt)-this._rttStartTime))}},{key:"_onLoad",value:function(e){var t,n=e.target.status;if(n<200||n>299){var r=new NetError(this._url,null,_objectSpread2$3(_objectSpread2$3({},e.target.response),{},{status:n}),"bad response,status:"+n);return r.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(r)}var i,a=null,o=!1,l=(null===(t=this._range)||void 0===t?void 0:t.length)>0?this._range[0]:0;if(this._responseType===ResponseType.ARRAY_BUFFER){var d,c=new Uint8Array(e.target.response);if(i=l+this._receivedLength,c&&c.byteLength>0){this._receivedLength+=c.byteLength;var s=Date.now()-this._startTime,U=calculateSpeed(this._receivedLength,s);this.emit(EVENT.REAL_TIME_SPEED,{speed:U,len:this._receivedLength,time:s,vid:this._vid,index:this._index,range:[i,l+this._receivedLength],priOptions:this._priOptions})}a=c,o=!((null===(d=this._range)||void 0===d?void 0:d.length)>1&&this._range[1]&&this._receivedLength<this._range[1]-this._range[0]),this._logger.debug("[xhr load done->], tast :",this._range,", start",i,"end ",l+this._receivedLength,",dataLen,",c?c.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",o)}else o=!0,a=e.target.response;var F={ok:n>=200&&n<300,status:n,statusText:this._xhr.statusText,url:this._xhr.responseURL,headers:this._getHeaders(this._xhr),body:this._xhr.response};this._transformResponse&&(F=this._transformResponse(F,this._url)||F),this._onProgress&&this._onProgress(a,o,{index:this._index,vid:this._vid,range:[i,l+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},F),o?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(createResponse(this._onProgress?null:a,o,F,F.headers["content-length"],F.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,_get$1(_getPrototypeOf$3(n.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 t,n={},r=_createForOfIteratorHelper$2(e.getAllResponseHeaders().trim().split("\r\n"));try{for(r.s();!(t=r.n()).done;){var i=t.value.split(": ");n[i[0].toLowerCase()]=i.slice(1).join(": ")}}catch(e){r.e(e)}finally{r.f()}return n}}],[{key:"isSupported",value:function(){return"undefined"!=typeof XMLHttpRequest}}]),n}(),_excluded=["retry","retryDelay","onRetryError","transformError"],Task=function(){function e(t,n){_classCallCheck$4(this,e),this.promise=createPublicPromise(),this.alive=!!n.onProgress,!n.logger&&(n.logger=new Logger$2("Loader")),this._loaderType=t,this._loader=t===LoaderType.FETCH&&"undefined"!=typeof fetch?new FetchLoader:new XhrLoader,this._config=n,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=n.retryCheckFunc,this._logger=n.logger}var t;return _createClass$4(e,[{key:"exec",value:function(){var e=this,t=this._config,n=t.retry,r=t.retryDelay,i=t.onRetryError,a=t.transformError,o=_objectWithoutProperties$3(t,_excluded),l=function(){var t=_asyncToGenerator$3(_regeneratorRuntime$3().mark((function t(){var d,c,s;return _regeneratorRuntime$3().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e._loader.load(o);case 3:d=t.sent,e.promise.resolve(d),t.next=27;break;case 7:if(t.prev=7,t.t0=t.catch(0),e._loader.running=!1,e._logger.debug("[task request catch err]",t.t0),!e._canceled){t.next=13;break}return t.abrupt("return");case 13:if(t.t0.loaderType=e._loaderType,t.t0.retryCount=e._retryCount,c=t.t0,a&&(c=a(c)||c),i&&e._retryCount>0&&i(c,e._retryCount,{index:o.index,vid:o.vid,range:o.range,priOptions:o.priOptions}),e._retryCount++,s=!0,e._retryCheckFunc&&(s=e._retryCheckFunc(t.t0)),!(s&&e._retryCount<=n)){t.next=26;break}return clearTimeout(e._retryTimer),e._logger.debug("[task request setTimeout],retry",e._retryCount,",retry range,",o.range),e._retryTimer=setTimeout(l,r),t.abrupt("return");case 26:e.promise.reject(c);case 27:case"end":return t.stop()}}),t,null,[[0,7]])})));return function(){return t.apply(this,arguments)}}();return l(),this.promise}},{key:"cancel",value:(t=_asyncToGenerator$3(_regeneratorRuntime$3().mark((function e(){return _regeneratorRuntime$3().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 t.apply(this,arguments)})},{key:"running",get:function(){return this._loader&&this._loader.running}},{key:"loader",get:function(){return this._loader}}]),e}();function sleep(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(t){return setTimeout(t,e)}))}var NetLoader=function(e){_inherits$3(r,EventEmitter);var t,n=_createSuper$2(r);function r(e){var t;return _classCallCheck$4(this,r),_defineProperty$4(_assertThisInitialized$3(t=n.call(this,e)),"type",LoaderType.FETCH),_defineProperty$4(_assertThisInitialized$3(t),"_queue",[]),_defineProperty$4(_assertThisInitialized$3(t),"_alive",[]),_defineProperty$4(_assertThisInitialized$3(t),"_currentTask",null),_defineProperty$4(_assertThisInitialized$3(t),"_finnalUrl",""),_defineProperty$4(_assertThisInitialized$3(t),"_config",void 0),t._config=getConfig(e),t._config.loaderType!==LoaderType.XHR&&FetchLoader.isSupported()||(t.type=LoaderType.XHR),t.log=e.logger,t}return _createClass$4(r,[{key:"isFetch",value:function(){return this.type===LoaderType.FETCH}},{key:"load",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"string"!=typeof e&&e?n=e:n.url=e||n.url||this._config.url,(n=Object.assign({},this._config,n)).params&&(n.params=Object.assign({},n.params)),n.headers&&isPlainObject(n.headers)&&(n.headers=Object.assign({},n.headers)),n.body&&isPlainObject(n.body)&&(n.body=Object.assign({},n.body)),n.transformRequest&&(n=n.transformRequest(n)||n),n.logger=this.log;var r=new Task(this.type,n);return r.loader.on(EVENT.REAL_TIME_SPEED,(function(e){t.emit(EVENT.REAL_TIME_SPEED,e)})),this._queue.push(r),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),r.promise}},{key:"cancel",value:(t=_asyncToGenerator$3(_regeneratorRuntime$3().mark((function e(){var t;return _regeneratorRuntime$3().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this._queue.map((function(e){return e.cancel()})).concat(this._alive.map((function(e){return e.cancel()}))),this._currentTask&&t.push(this._currentTask.cancel()),this._queue=[],this._alive=[],e.next=6,Promise.all(t);case 6:return e.next=8,sleep();case 8:case"end":return e.stop()}}),e,this)}))),function(){return t.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 t=this._currentTask.exec().catch((function(e){}));t&&"function"==typeof t.finally&&t.finally((function(){var t,n;null!==(t=e._currentTask)&&void 0!==t&&t.alive&&(null===(n=e._alive)||void 0===n?void 0:n.length)>0&&(e._alive=e._alive.filter((function(t){return t&&t!==e._currentTask}))),e._processTask()}))}}}],[{key:"isFetchSupport",value:function(){return FetchLoader.isSupported()}}]),r}(),_realTimeSpeed=0;function getPreLoadPCDNReqId(e,t){return e.slice(-20)+t}var Mp4Preloader=function(e){function t(e,n){var r,i,a;_classCallCheck$a(this,t),(a=_callSuper$3(this,t,[e,n]))._pendingTask={resolve:void 0,data:void 0},a._nextPreloadCount=0,a._updateRealTimeSpeed=function(e){_realTimeSpeed=e.speed,a.emit(REAL_TIME_SPEED_EVENT,e)};var o=getDefaultConfig();Object.keys(n).forEach((function(e){o[e]=n[e]})),a.options=o,a.playerId=(null===(r=e.player)||void 0===r?void 0:r.playerId)||"default";var l=a.options.logCacheConfig,d=l.logCacheLevel,c=l.logMaxSize;return a.logger=new Logger$2("[Mp4Preloader]",{logCacheLevel:d,logMaxSize:c}),void 0===n.supportHevc&&isHevcSupported2()&&(a.options.supportHevc=!0),a.loadRangeType=(null===(i=a.options)||void 0===i?void 0:i.loadRangeType)||LOAD_RANGE_TYPE.GOP,a.log(LogCacheLevel$1.DEBUG,"[Preloader] new preloader, playerId",a.playerId),a}return _inherits$8(t,PreloaderBase),_createClass$a(t,[{key:"currentPreloadInst",get:function(){return this.preloadManager.currentPreloadInst}},{key:"allCachedKeys",get:function(){return this.preloadManager.getAllCachedDataKeys()}},{key:"cacheInst",get:function(){return this.preloadManager.cacheInst}},{key:"realTimeSpeed",get:function(){return _realTimeSpeed}},{key:"taskInProgress",get:function(){return!!this._pendingTask.resolve&&!!this._pendingTask.data}},{key:"log",value:function(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];log.apply(void 0,[this.logger,e,t].concat(r))}},{key:"getPreloadUnuseInfo",value:function(){return this.preloadManager.getPreloadUnuseInfo()}},{key:"generateUniqueKey",value:function(e){var n=e.vid,r=e.definition,i=e.mediaType,a=e.codecType,o=e.vtype;return t.generateUniqueKey({vid:n,mediaType:i,definition:r,codecType:a,vtype:o})}},{key:"_beforeStart",value:function(e,t){var n=e.payload||[];if(0===n.length)return this.log(LogCacheLevel$1.LOG,"preload_is_null"),null;var r=e.vid,i=e.steps,a=e.stepIdx,o=e.targetDefinition,l=e.vtype||VTYPES.MP4,d=e.codecType||CODEC_TYPE.H264,c=this.getUserSelectDefinition(),s=this.checkCacheKey(r,n,c,l,d);if(this.log(LogCacheLevel$1.LOG,"".concat(this.playerId," ").concat(r),"codecType:".concat(d," vtype:").concat(l," hasCache:").concat(s)),s&&!this.stepwise||"MP3"===l)return this.log(LogCacheLevel$1.LOG,"vtype_".concat(l)),null;var U=o||this.getInitDefinition(n,t);if(this.log(LogCacheLevel$1.LOG," ".concat(this.playerId," ").concat(r," getInitDefinition"),null==U?void 0:U.definition),!U)return this.log(LogCacheLevel$1.WARN,"definition_error"),null;var F=U.definition,u=U.orgDefinition,Q=this.stepwise?i[e.stepIdx]:e.preloadTime||this.options.preloadTime,R=this.stepwise?i[e.stepIdx]*Math.floor(U.bitrate/8):e.preloadSize||this.options.preloadSize||Math.pow(25,4)-1,h=this.generateUniqueKey({vid:r,definition:F,vtype:l,codecType:d});this._nextPreloadCount>0&&this._nextPreloadCount--,this.log(LogCacheLevel$1.LOG,"".concat(this.playerId," ").concat(r),"cacheKey:".concat(h," duration:").concat(U.duration," preloadTime:").concat(Q));var p=_objectSpread2$7({vid:r,definition:F,orgDefinition:u,preloadTime:Q,preloadSize:R,cacheKey:h,codecType:d,vtype:l,steps:i,stepIdx:a,payload:e},U);return e.reqOptions&&(p.reqOptions=e.reqOptions),this.log(LogCacheLevel$1.LOG,"start preload,".concat(r," playerId:").concat(this.playerId)),p}},{key:"start",value:(U=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t,n){var r,i,a,o,l,d,c,s,U;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=this._beforeStart(t,n)){e.next=3;break}return e.abrupt("return",{remove:!0});case 3:if(a=Promise.withResolvers(),o=a.promise,l=a.resolve,d=i.codecType,this._pendingTask.resolve=l,this._pendingTask.data=i,null!==(r=this.options)&&void 0!==r&&null!==(r=r.pcdnConfig)&&void 0!==r&&r.openPreloadPCDN&&(c=Object.assign({},{productConfig:PRODUCT_CONFIG},this.options.pcdnConfig),this._pcdn=new PCDN(c,void 0,void 0,void 0)),s=null,!this.stepwise){e.next=13;break}return e.next=12,this.getPreLoadData(i);case 12:s=e.sent;case 13:return U=t.loadRangeType||this.loadRangeType,d===CODEC_TYPE.H265&&!this.options.supportHevc||U===LOAD_RANGE_TYPE.UNMUX?this.loadByChunkSizeUnMux(i,s):U===LOAD_RANGE_TYPE.GOP?this.loadByPreloadTime(i,s):U===LOAD_RANGE_TYPE.SIZE?this.loadByChunkSize(i,s):U===LOAD_RANGE_TYPE.ONLY_SIZE&&this.loadByChunkSizeOnly(i,s),e.next=17,o;case 17:return e.abrupt("return",{remove:!this.stepwise});case 18:case"end":return e.stop()}}),e,this)}))),function(e,t){return U.apply(this,arguments)})},{key:"_getRangeByOffsetMap",value:function(e,t){var n=this,r=null==e?void 0:e.find((function(e){var r;return(null==e?void 0:e.time)===((null===(r=n.options)||void 0===r?void 0:r.firstLoadTimePos)||t)}));return null==r?void 0:r.offset}},{key:"_decideRequestRange",value:function(e){var t=e.pktOffsetMap,n=e.bitrate,r=e.size,i=e.duration,a=[0,DEFAULT_TRUNK],o=this._getRangeByOffsetMap(t,DEFAULT_FIRST_LOAD_TIME_POS),l=0;if("number"==typeof o&&o>0)a[1]=o,l=DEFAULT_FIRST_LOAD_TIME_POS;else{var d=r||util.getFileSize(n,i),c=getMetaSize(i,DEFAULT_TRUNK,d);a[1]=c,l=1}return{range:a,duration:l}}},{key:"loadByChunkSizeOnly",value:(s=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t,n){var r,i,a,o,l,d,c,s,U,F,u,Q,R,h,p,B,S,f,m,V,y,E,Z,b,J,v;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.vid,i=t.cacheKey,a=t.definition,o=t.orgDefinition,l=t.duration,d=t.bitrate,c=t.codecType,s=t.vtype,U=t.size,F=this._getLoadUrl(t)){e.next=5;break}return this._endLoadFragments(!1),e.abrupt("return");case 5:return F=util.extUrl(F,{__vid:r}),u=this._decideRequestRange({bitrate:d,size:U,duration:l,pktOffsetMap:t.pktOffsetMap}),Q=u.range,R=u.duration,this.log(LogCacheLevel$1.LOG,"".concat(r," loadByChunkSize ").concat(Q[0],"-").concat(Q[1]),t.cacheKey,t.definition,R),h={vid:r,definition:a,orgDefinition:o,cacheKey:i,codecType:c,vtype:s,fileSize:U,bitrate:d||0,byteLength:0,preloadTime:R,buffer:new ArrayBuffer(0)},p=this.getRequestOption(_objectSpread2$7(_objectSpread2$7({},t),{},{url:F})),B=new NetLoader({responseType:"arraybuffer"}),S=util.nowTime(),e.prev=12,e.next=15,B.load(F,_objectSpread2$7({range:Q},p));case 15:m=e.sent,h.fileSize||(V=getFileSizeFromHeaders(m.headers),h.fileSize=V),(null==m||null===(f=m.data)||void 0===f?void 0:f.byteLength)>0&&(E=m.data,Z=E.byteLength||0,(b={codecType:c,vtype:s,vid:r,definition:a,orgDefinition:o,cacheKey:i,bitrate:d,memory:0,byteLength:Z,preloadSize:Z,preloadTime:0,buffer:E,fileSize:h.fileSize}).preloadTime=R||0,b.buffer&&b.buffer.byteLength>0&&(b.memory+=(null==E?void 0:E.byteLength)||0,this.setItem(t,b)),J=(null==m||null===(y=m.options)||void 0===y||null===(y=y.priOptions)||void 0===y?void 0:y.type)||LOAD_TYPE.CDN,v=calculateSpeed$2(Z,util.nowTime()-S),this.bwEventEmit(r,J,Z,v,i,!0)),e.next=23;break;case 20:e.prev=20,e.t0=e.catch(12),console.log("error",e.t0);case 23:this._endLoadFragments(!1);case 24:case"end":return e.stop()}}),e,this,[[12,20]])}))),function(e,t){return s.apply(this,arguments)})},{key:"getInitDefinition",value:function(e,t){for(var n=null,r=0,i=0;i<e.length;i++){if(e[i].definition===t){r=i;break}}return(n=e[r])||(n=e[0]),n}},{key:"getPreLoadData",value:function(e){var t=this,n=Promise.withResolvers(),r=n.promise,i=n.resolve,a=n.reject;return this.getItemSameVid(e).then((function(e){if(t.log(LogCacheLevel$1.DEBUG,"[Preloader] getPreLoadData",!!e.value),e.value){var n=e.value,r=n.mediaSegList,a=n.meta,o=n.type,l=n.buffer,d=n.preloadTime,c=n.vid,s=n.cacheKey,U=n.definition,F=n.orgDefinition,u=n.byteLength,Q=n.duration,R=n.fileSize,h=n.from,p=n.vtype,B=n.codecType,S=n.initSeg,f=_objectSpread2$7({generateBy:"preloader",vid:c,type:o,vtype:p,codecType:B,definition:U,orgDefinition:F,bitrate:n.bitrate,cacheKey:s,duration:Q||0,byteLength:u,from:h,adaptTimeRange:n.adaptTimeRange,repeatData:n.repeatData,repeatDataStartPos:n.repeatDataStartPos,memory:n.memory,meta:a,preloadTime:d,fileSize:R||0},o===PRELOAD_TYPES.SIZE?{buffer:l}:{initSeg:S,mediaSegList:r});i(f)}else i(null)})).catch((function(e){a(e)})),r}},{key:"setPreLoadData",value:(c=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t,n){var r,i,a,o,l,d,c,s,U,F,u,Q,R,h,p,B,S,f,m,V,y,E,Z,b,J=this;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=n.mediaSegList,i=n.meta,a=n.vid,o=n.definition,l=n.orgDefinition,d=n.type,c=n.buffer,s=n.duration,U=n.byteLength,F=n.preloadTime,u=n.fileSize,Q=n.from,R=n.vtype,h=n.codecType,p=n.initSeg,B=n.bitrate,S=n.adaptTimeRange,f=n.repeatData,m=n.repeatDataStartPos,V=n.cacheKey,(y={codecType:h,vtype:R,vid:a,definition:o,orgDefinition:l,cacheKey:V,type:d,from:Q,meta:i,fileSize:u,adaptTimeRange:S,repeatData:f,repeatDataStartPos:m,bitrate:B,memory:0}).memory+=(null==f?void 0:f.byteLength)||0,d===PRELOAD_TYPES.SIZE?(y.buffer=c,y.byteLength=U||0,y.preloadSize=U||0,y.preloadTime=F||0,y.fileSize=u,y.buffer&&y.buffer.byteLength>0&&(y.memory+=(null==c?void 0:c.byteLength)||0,this.setItem(t,y))):(y.mediaSegList=[],y.duration=s,y.byteLength=U||0,y.preloadTime=F||0,y.initSeg=p,y.memory+=(null==p?void 0:p.byteLength)||0,y.fileSize=u,null==r||r.forEach((function(e){var t;y.memory+=(null==e||null===(t=e.buffer)||void 0===t?void 0:t.byteLength)||0,y.mediaSegList.push(e)})),i&&0===r.length?(this.log(LogCacheLevel$1.LOG,"[Preloader] meta setPreLoadData1 success",V,null==y||null===(E=y.mediaSegList)||void 0===E?void 0:E.length),this.setItem(t,y)):(b=r.every((function(e){return!!e.buffer&&e.state})),this.log(LogCacheLevel$1.LOG,"[Preloader] mediaSegList setPreLoadData1 success",V,null==y||null===(Z=y.mediaSegList)||void 0===Z?void 0:Z.length,b),b&&this.setItem(t,y).then((function(){J.log(LogCacheLevel$1.LOG,"[Preloader] setPreLoadData1 success",V)}))));case 4:case"end":return e.stop()}}),e,this)}))),function(e,t){return c.apply(this,arguments)})},{key:"getInitCacheData",value:function(e,t){var n={type:e,meta:null,byteLength:0,fileSize:0,bitrate:0,preloadTime:0};return e===PRELOAD_TYPES.DURATION?(n.mediaSegList=[],n.initSeg=null,n.duration=0):n.buffer=null,Object.keys(t).map((function(e){n[e]=t[e]})),n}},{key:"updatePreCacheData",value:function(e,t,n,r,i,a,o,l,d,c){var s,U=e.mediaSegList;if(e.type===PRELOAD_TYPES.SIZE||-1===i)return e.buffer=Concat(Uint8Array,(null===(s=e.buffer)||void 0===s?void 0:s.buffer)||[],new Uint8Array(t)),e;var F=-1;if(U)for(var u=0;u<U.length;u++)if(U[u].index===i){F=u;break}var Q=a||[0,0];if(F>-1&&U)t&&(U[F].buffer=Concat(Uint8Array,U[F].buffer||[],new Uint8Array(t))),n.length>1&&(U[F].range.length>1?U[F].range[1]=n[1]:U[F].range=n),o&&-1!==o[1]&&(r=U[F].range[1]>=o[1]),U[F].state=r;else{e.duration=Q[1],U&&U.push({buffer:t,range:n||[],index:i,totalRange:o||[],timeRange:[Q[0],Q[1]],muxSampleIdxRange:l,unMuxPos:d,state:r});var R="".concat(null==t?void 0:t.byteLength,",").concat(JSON.stringify(n),",").concat(i,",").concat(JSON.stringify(o),",").concat(JSON.stringify(a));this.log(LogCacheLevel$1.DEBUG,"[Preloader] ".concat(e.cacheKey," mediaSegList set, dataLen"),R)}return r&&(e.byteLength+=n[1]-n[0],e.preloadTime+=c),r}},{key:"checkCacheKey",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:VTYPES.MP4,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:CodecTypes.H264;if(n){var a=this.generateUniqueKey({vid:e,definition:n,vtype:r,codecType:i});return a&&this.hasItemSameVid(a)?a:null}for(var o=0;o<t.length;o++){var l=this.generateUniqueKey({vid:e,definition:t[o].definition,vtype:r,codecType:i});if(l&&this.hasItemSameVid(l))return l}return null}},{key:"getRangeStartPos",value:function(e){var t,n=this,r=null==e||null===(t=e.pktOffsetMap)||void 0===t?void 0:t.find((function(e){var t;return(null==e?void 0:e.time)===((null===(t=n.options)||void 0===t?void 0:t.firstLoadTimePos)||DEFAULT_FIRST_LOAD_TIME_POS)}));return null==r?void 0:r.offset}},{key:"loadByChunkSizeUnMux",value:(d=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t,n){var r,i,a,o,l,d,c,s,U,F,u,Q,R,h,p,B,S,f,m,V,y,E,Z,b,J,v,g,T=this;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=t.vid,a=t.cacheKey,o=t.definition,l=t.orgDefinition,d=t.duration,c=t.bitrate,s=t.codecType,U=t.vtype,F=t.size,u=t.uri,Q=t.file_id,R=this.options,h=this._getLoadUrl(t)){e.next=6;break}return this._endLoadFragments(!1),e.abrupt("return");case 6:if(h=util.extUrl(h,{__vid:i}),p=F||util.getFileSize(c,d),B=null==t||null===(r=t.pktOffsetMap)||void 0===r?void 0:r.find((function(e){return(null==e?void 0:e.time)===((null==R?void 0:R.firstLoadTimePos)||DEFAULT_FIRST_LOAD_TIME_POS)})),S=null==B?void 0:B.offset,f=getMetaSize(d,DEFAULT_TRUNK,p),this.log(LogCacheLevel$1.LOG,"".concat(i," loadByChunkSizeUnMux"),t.cacheKey,t.definition,S||f),m=this.getInitCacheData(PRELOAD_TYPES.SIZE,{vid:i,definition:o,orgDefinition:l,cacheKey:a,codecType:s,vtype:U,fileSize:F,bitrate:c||0}),V=this.getRequestOption(_objectSpread2$7(_objectSpread2$7({},t),{},{url:h})),this.startPCDN(h,u,i,c,Q,U.toLowerCase()||"mp4",Math.floor(d),p),this.mp4Loader=new MP4Loader({url:h,vid:"".concat(i,"-").concat(c),retry:R.retryCount||2,retryDelay:R.retryDelay||1e3,timeout:R.timeout||3e3,reqOptions:V,loaderType:R.loaderType,retryCheckFunc:retryCheckFunc,openLog:checkOpenLog(),memoryOpt:this.options.memoryOpt,audioGroupingStrategy:R.audioGroupingStrategy,fixEditListOffset:R.fixEditListOffset,fixEditListOffsetThreshold:R.fixEditListOffsetThreshold}),this.mp4Loader.on(REAL_TIME_SPEED_EVENT,(function(e){if((null==e?void 0:e.len)>0){var t,n=(null==e||null===(t=e.priOptions)||void 0===t?void 0:t.type)||LOAD_TYPE.CDN,r=calculateSpeed$2(e.len,e.time);T.bwEventEmit(i,n,e.len,r,a)}})),e.prev=17,y=new Uint8Array(3145728),E=0,Z=0,b=-1,J=null,v=null,g=function(){var e=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(n,r,o,l,d){var c,s,U,F,u,Q,R,p,B,S,f,V,g,W,k,N;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:m.fileSize||(m.fileSize=Number(getFileSizeFromHeaders(d.headers))),n&&(b>0?(c=y.slice(b-E,E+Z),(null==n?void 0:n.byteLength)+Z>y.byteLength?((s=util.newUint8Array(y.byteLength+n.byteLength)).set(c,0),s.set(n,c.byteLength),y=s):(y.set(c,0),y.set(n,c.byteLength)),E=b,Z=c.byteLength+n.byteLength):((null==n?void 0:n.byteLength)>(null===(U=y)||void 0===U?void 0:U.byteLength)&&(y=util.newUint8Array(y.byteLength+n.byteLength)),y.set(n,0),Z+=(null==n?void 0:n.byteLength)||0,E=o.range[0])),o.meta&&(u=(null==n||null===(F=n.priOptions)||void 0===F?void 0:F.type)||LOAD_TYPE.CDN,T.bwEventEmit(i,u,Z,null,a),Q=o.meta,R=Q.videoSegments,p=Q.audioSegments,m.fileSize||(m.fileSize=util.getEndFramePos(R,p)),b=util.getFirstFrameStartRange(R,p),v=_objectSpread2$7(_objectSpread2$7({},Q.meta),{},{ext:{videoTrak:R,audioTrak:p}}),m.meta=v,J=util.getFragRange(0,R,p),m.buffer=y.subarray(0,Z),m.byteLength=m.buffer.byteLength,B=util.getFragRange(1,R,p),S=[],B[0]<B[1]&&J[1]>B[0]&&(S=[B[0],J[1]]),f=(null==R?void 0:R.length)>0?R:p,V=f[0].startTime,g=f[0].endTime,W={startTime:V,endTime:g,range:_toConsumableArray$5(J),repeatRange:S,duration:g-V,downloaded:!1,isLoading:!1,timeRangeIdx:[0,1]},m.adaptTimeRange=[W],T.log(LogCacheLevel$1.LOG,"".concat(i," loadMetaProcess ret"),a,y.byteLength,JSON.stringify(J),m.buffer.byteLength,JSON.stringify(S)),T.setPreLoadData(t,m),N=[k=E+Z,J[1]],T.log(LogCacheLevel$1.LOG,"".concat(a," loadMetaProcess end, loadOneChunk start"),r,JSON.stringify(N),k,y.byteLength),T.loadOneChunk(m,N,h,W.duration,t));case 3:case"end":return e.stop()}}),e)})));return function(t,n,r,i,a){return e.apply(this,arguments)}}(),!this.mp4Loader){e.next=28;break}return e.next=28,this.mp4Loader.loadMetaProcess(this.mp4Loader.cache,[0,S||f],g,{});case 28:e.next=34;break;case 30:e.prev=30,e.t0=e.catch(17),console.error("[Preloader] ".concat(a," loadByChunkSizeUnMux error"),e.t0),this._endLoadFragments(!1);case 34:case"end":return e.stop()}}),e,this,[[17,30]])}))),function(e,t){return d.apply(this,arguments)})},{key:"loadOneChunk",value:(l=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t,n,r,i,a){var o,l,d,c,s,U,F,u,Q,R,h;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!((null==n?void 0:n.length)>0&&n[0]>=n[1])){e.next=3;break}return this._endLoadFragments(),e.abrupt("return");case 3:return(l=(null===(o=this._pcdnNodeList)||void 0===o?void 0:o.length)>0?util.extUrl(this._pcdnNodeList[0].url,{__vid:t.vid}):null)&&MP4_BASE.pcdn_download_request_cnt++,this.log(LogCacheLevel$1.LOG,"".concat(null==t?void 0:t.cacheKey," loadOneChunk start"),JSON.stringify(n),",loadType,",!!l),d=l||r,c=t.vid,s=t.cacheKey,U=t.buffer,e.prev=8,e.next=11,null===(F=this.mp4Loader)||void 0===F?void 0:F.loadData(n,this.mp4Loader.cache,{index:0,url:d,headers:l?{"X-Origin-Server-Host":util.getHostFromUrl(r)}:null,priOptions:{type:l?LOAD_TYPE.PCDN:LOAD_TYPE.CDN}});case 11:u=e.sent,this.log(LogCacheLevel$1.LOG,"".concat(c," loadOneChunk"),JSON.stringify(n),s),Q=u.response,(R=u.data)?(this._endLoadFragments(),Q&&Q.headers&&(h=Number(getFileSizeFromHeaders(Q.headers)))&&(t.fileSize=h),t.buffer=util.concatData(U,R),t.byteLength=t.buffer.byteLength,t.preloadTime+=i,this.log(LogCacheLevel$1.LOG,"".concat(c," loadOneChunk ret"),s,t.buffer.byteLength,null==R?void 0:R.byteLength),t.from=4,this.setPreLoadData(a,t)):(MP4_BASE.pcdn_download_failed_cnt++,this._endLoadFragments(!1)),e.next=21;break;case 17:e.prev=17,e.t0=e.catch(8),this.log(LogCacheLevel$1.ERROR,"[Preloader] ".concat(c," loadByChunkSize error"),null===e.t0||void 0===e.t0?void 0:e.t0.message),this._endLoadFragments(!1);case 21:case"end":return e.stop()}}),e,this,[[8,17]])}))),function(e,t,n,r,i){return l.apply(this,arguments)})},{key:"loadByPreloadTime",value:(o=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t,n){var r,i,a,o,l,d,c,s,U,F,u,Q,R,h,p,B,S,f,m,V,y,E=this;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=t.vid,o=t.cacheKey,l=t.preloadTime,d=t.definition,c=t.orgDefinition,s=t.duration,U=t.bitrate,F=t.codecType,u=t.vtype,Q=t.size,R=t.uri,h=t.file_id,p=this._getLoadUrl(t)){e.next=6;break}return this._endLoadFragments(!1),e.abrupt("return");case 6:return p=util.extUrl(p,{__vid:a}),B=l>=this.options.segmentMinDuration?this.options.segmentMinDuration:l,S=this.getRequestOption(_objectSpread2$7(_objectSpread2$7({},t),{},{_url:p})),this.log(LogCacheLevel$1.DEBUG,"[Preloader] loadByPreloadTime","".concat(t.cacheKey,", definition:").concat(t.definition,",segmentMinDuration:").concat(B),S),f=Q||util.getFileSize(U,s),m=this.getRangeStartPos(t),V=this.createConfig(t,S,m,f,B),this.mp4=new MP4_GOP(p,U,V,[],"[Preloader]"),y=this.getInitCacheData(PRELOAD_TYPES.DURATION,{vid:a,definition:d,orgDefinition:c,cacheKey:o,codecType:F,vtype:u,bitrate:U||0}),this.startPCDN(p,R,a,U,h,u.toLowerCase()||"mp4",Math.floor(s),f),null!=n&&null!==(r=n.meta)&&void 0!==r&&r.ext?(this.uddatePreCacheInfoByCache(n,y),this.updateMP4InfoByCache(n)):this.mp4.once(MP4_EVENTS.META_READY,function(){var e=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(n,r){var i;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r&&!r.hasDestroyed){e.next=2;break}return e.abrupt("return");case 2:return E.log(LogCacheLevel$1.DEBUG,"[Preloader] ".concat(t.vid," metaReady ").concat(null==y||null===(i=y.mediaSegList)||void 0===i?void 0:i.length)),y.meta=n,y.from=2,y.fileSize=r.size,e.next=8,r.cancelLoading();case 8:if(!r.hasDestroyed){e.next=10;break}return e.abrupt("return");case 10:return r.metaLoading=!1,e.next=13,E.setPreLoadData(t,y);case 13:if(!r.hasDestroyed){e.next=15;break}return e.abrupt("return");case 15:E.startLoadByFragments(y,t);case 16:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()),this.mp4EventAdd(t.vid,y.cacheKey),e.next=20,this.mp4.init(n);case 20:if(this.mp4){e.next=22;break}return e.abrupt("return");case 22:null!=n&&null!==(i=n.meta)&&void 0!==i&&i.ext&&this.startLoadByFragments(y,t);case 23:case"end":return e.stop()}}),e,this)}))),function(e,t){return o.apply(this,arguments)})},{key:"bwEventEmit",value:function(e,t,n,r,i,a){var o,l,d=(null===(o=this._pendingTask.data)||void 0===o?void 0:o.duration)||0,c=(null===(l=this._pendingTask.data)||void 0===l?void 0:l.bitrate)||0;this.preloadManager.bwEventEmit({vid:e,loadType:t,size:n,speed:r,cacheKey:i,vtype:VTYPES.MP4,duration:d,bitrate:c,isV2Player:a})}},{key:"startPCDN",value:function(e,t,n,r,i,a,o,l){var d=this;if(this._pcdn){var c;if(null===(c=this.mp4)||void 0===c||c.updatePCDNState(PCDN_STATE.OPEN),!isHTTPS(e)){var s=document.location.protocol;e=s+e}this.curPCDNReqId=getPreLoadPCDNReqId(t||n,r);var U={vid:t,cdn_url:e,sfid:i,file_type:a,bitrate:r,duration:Math.floor(o),size:l};this.log(LogCacheLevel$1.DEBUG,"[Preloader] ".concat(n," get peer start")),this._pcdn.fetchPCDNNode(null,U,this.curPCDNReqId).then((function(e){var t;null!=e&&e.req_id&&e.req_id!==d.curPCDNReqId?d.log(LogCacheLevel$1.LOG,",[Preloader] fetchPCDNNode not match reqId",d.curPCDNReqId,", pcdnRet.req_id",e.req_id):(d.log(LogCacheLevel$1.LOG,"[Preloader] ".concat(n," get peer end,pcdn node update,"),null==e||null===(t=e.nodes)||void 0===t?void 0:t.length),d.mp4?d.mp4.updateNode(null==e?void 0:e.nodes):d._pcdnNodeList=(null==e?void 0:e.nodes)||null)})).catch((function(t){var n,r,i,a=util.checkUrlIsExpired(e);1===a&&d._pcdn&&(d._pcdn=void 0);var o=(null==t||null===(n=t.response)||void 0===n?void 0:n.url)||(null===(r=d.options)||void 0===r||null===(r=r.pcdnConfig)||void 0===r?void 0:r.trackerUrl);d.emit("source_error",{host:util.getHostFromUrl(o),src:o,errorCode:null==t||null===(i=t.response)||void 0===i?void 0:i.status,message:"".concat(null==t?void 0:t.message,"-").concat(a,"_preload")})}))}}},{key:"_getLoadUrl",value:function(e){var t="Array"===util.typeOf(e.url)?e.url[0].src:e.url;return this.preloadManager.preProcessUrl&&(t=this.preloadManager.preProcessUrl(t).url),t}},{key:"mp4EventAdd",value:function(e,t){var n,r=this;this.mp4.on(MP4_EVENTS.ERROR,(function(t){r.log(LogCacheLevel$1.ERROR,"[Preloader] ".concat(e," load error ").concat(null==t?void 0:t.errorCode,", ").concat((null==t?void 0:t.errorMessage)||(null==t?void 0:t.message)," ")),r._endLoadFragments(!1)})),this.mp4.on(MP4_EVENTS.REMOVE_PCDN_NODE,(function(e){r._pcdn&&e&&r._pcdn.removePCDNNode(e.vid,e.bitrate,e.url)})),this.mp4.on(MP4_EVENTS.CANCEL_LOADED_LEN,(function(n){r.bwEventEmit(e,n.load_type,n.len,null,t)})),null===(n=this.mp4.MP4Loader)||void 0===n||n.on(REAL_TIME_SPEED_EVENT,(function(n){if((null==n?void 0:n.len)>0){var i,a=(null==n||null===(i=n.priOptions)||void 0===i?void 0:i.type)||LOAD_TYPE.CDN,o=calculateSpeed$2(n.len,n.time);r.bwEventEmit(e,a,n.len,o,t)}}))}},{key:"createConfig",value:function(e,t,n,r,i){var a=e.vid,o=e.duration,l=this.options,d=l.preloadSize,c=l.memoryOpt,s=l.supportHevc,U=l.emitMediaListControl,F=l.audioGroupingStrategy,u=l.fixEditListOffsetThreshold,Q=l.fixEditListOffset,R=l.segmentMinDuration;return{segmentDuration:i||R,codecType:this.codecType,chunkSize:d,firstLoadSize:n,duration:o,fileSize:r,playerId:this.playerId,vid:a,useUrlRange:!1,retryCount:1,retryDelay:1e3,supportHevc:s,retryCheckFunc:retryCheckFunc,switchPCDNMaxCnt:Number.MAX_VALUE,logger:this.logger,reqOptions:t,memoryOpt:c,emitMediaListControl:U,audioGroupingStrategy:F,fixEditListOffset:Q,fixEditListOffsetThreshold:u,loadRangeType:this.loadRangeType}}},{key:"uddatePreCacheInfoByCache",value:function(e,t){t.meta=e.meta,t.from=5,t.fileSize=e.fileSize,t.mediaSegList=e.mediaSegList||t.mediaSegList||[],t.repeatData=e.repeatData,t.repeatDataStartPos=e.repeatDataStartPos,t.initSeg=e.initSeg,t.adaptTimeRange=e.adaptTimeRange,t.byteLength=e.byteLength}},{key:"updateMP4InfoByCache",value:function(e){var t;if(e.initSeg&&(this.mp4._needInitSegment=!1),e.adaptTimeRange&&(this.mp4.adaptTimeRange=e.adaptTimeRange),(null===(t=e.mediaSegList)||void 0===t?void 0:t.length)>0){var n=e.mediaSegList,r=n[n.length-1].muxSampleIdxRange,i=r.video,a=r.audio;this.mp4.lastDemuxSampleIdxRange.video=i,this.mp4.lastDemuxSampleIdxRange.audio=a}}},{key:"loadByChunkSize",value:(a=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t,n){var r,i,a,o,l,d,c,s,U,F,u,Q,R,h,p,B,S,f,m,V=this;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.vid,i=t.cacheKey,a=t.definition,o=t.orgDefinition,l=t.duration,d=t.bitrate,c=t.codecType,s=t.vtype,U=t.size,F=t.uri,u=t.file_id,this.options,Q=this._getLoadUrl(t)){e.next=6;break}return this._endLoadFragments(!1),e.abrupt("return");case 6:if(Q=util.extUrl(Q,{__vid:r}),R=U||util.getFileSize(d,l),h=this.getRangeStartPos(t),p=getMetaSize(l,DEFAULT_TRUNK,R),this.log(LogCacheLevel$1.LOG,"".concat(r," loadByChunkSize"),t.cacheKey,t.definition,h||p),B=this.getInitCacheData(PRELOAD_TYPES.DURATION,{vid:r,definition:a,orgDefinition:o,cacheKey:i,codecType:c,vtype:s,fileSize:U,bitrate:d||0}),S=this.getRequestOption(_objectSpread2$7(_objectSpread2$7({},t),{},{url:Q})),this.startPCDN(Q,F,r,d,u,s.toLowerCase()||"mp4",Math.floor(l),R),f=this.createConfig(t,S,h||p,R,null),this.mp4=new MP4_SIZE(Q,d,f,[],"[Preloader]"),this.mp4EventAdd(t.vid,B.cacheKey),m=-1,null==n||!n.meta){e.next=26;break}return this.uddatePreCacheInfoByCache(n,B),this.updateMP4InfoByCache(n),e.next=23,this.mp4.init(n);case 23:this.startLoadBySize(B,t),e.next=29;break;case 26:this.mp4.once(MP4_EVENTS.META_READY,function(){var e=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(n,r){return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r&&!r.hasDestroyed){e.next=2;break}return e.abrupt("return");case 2:return V.log(LogCacheLevel$1.DEBUG,"[Preloader] ".concat(t.vid," metaReady, metaReq, ").concat(m)),B.meta=n,B.from=2,B.fileSize=r.size,e.next=8,V.setPreLoadData(t,B);case 8:if(!r.hasDestroyed){e.next=10;break}return e.abrupt("return");case 10:1===m&&(m=2,V.startLoadBySize(B,t));case 11:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()),this.mp4.once(MP4_EVENTS.META_REQ_DONE,(function(e){if(e&&!e.hasDestroyed){V.log(LogCacheLevel$1.DEBUG,"[Preloader] ".concat(t.vid," metaReq done,meta:, ").concat(!!e.meta));var n=e.repeatInfo,r=n.curDataPos,i=n.startPos,a=n.data;r>0&&(B.repeatData=a.subarray(0,r),B.repeatDataStartPos=i),e.meta?(m=2,V.startLoadBySize(B,t)):m=1}})),this.mp4.init(n);case 29:case"end":return e.stop()}}),e,this)}))),function(e,t){return a.apply(this,arguments)})},{key:"findLoadAdaptTimeRangeIdx",value:function(e){var t,n,r=this,i=e.steps,a=e.stepIdx,o=e.preloadTime,l=0,d=null===(t=this.mp4)||void 0===t?void 0:t.adaptTimeRange,c=!(null!==(n=this.options)&&void 0!==n&&n.openStepwiseType)||this.options.openStepwiseType.toUpperCase()===VTYPES.MP4;if(this.stepwise&&c&&Array.isArray(i)&&i.length>0&&"number"==typeof a){var s,U=i[a];if((!d||(null==d?void 0:d.length)<(null==i?void 0:i.length))&&i.map((function(e,t,n){return e-(0===t?0:n[t-1])})).forEach((function(e){var t;(!Array.isArray(d)||0===d.length||d[d.length-1].endTime<i[i.length-1])&&(null===(t=r.mp4)||void 0===t||t.updateAdaptTimeRange(null,e||o||5))})),d)for(var F=0;F<d.length&&d[F].startTime<=U;F++)l=F;null===(s=this.mp4)||void 0===s||s.getFragRange(l)}else if(!d||0===(null==d?void 0:d.length)){var u,Q,R=null===(u=this.mp4)||void 0===u?void 0:u.updateAdaptTimeRange(null,o||5);null===(Q=this.mp4)||void 0===Q||Q.getFragRange(R),l=R}return l}},{key:"updateAdaptTimeRangeState",value:function(e,t){var n=e.mediaSegList;!n||(null==n?void 0:n.length)<=0||n.forEach((function(e,n){var r;e.state&&(null==e||null===(r=e.buffer)||void 0===r?void 0:r.byteLength)>0&&n<(null==t?void 0:t.length)&&(t[n].downloaded=!0)}))}},{key:"startLoadBySize",value:(i=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t,n){var r,i,a,o,l,d,c,s,U,F,u,Q,R=this;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.vid,i=this.mp4,a=this.findLoadAdaptTimeRangeIdx(n),(o=null==i?void 0:i.adaptTimeRange)&&null!=o&&o.length){e.next=8;break}return this.log(LogCacheLevel$1.ERROR,"[Preloader] ".concat(r," adaptTimeRange is null")),this._endLoadFragments(!1),e.abrupt("return");case 8:if(this.updateAdaptTimeRangeState(t,o),(l=o.findIndex((function(e){return!e.downloaded})))>=0&&(a=Math.min(l,a)),d=o[a].range,this.log(LogCacheLevel$1.LOG,"[Preloader] ".concat(r,"$ startLoadBySize, loading ").concat(a),o?o[a].downloaded:"",o),!o||!o[a].downloaded){e.next=16;break}return this._endLoadFragments(),e.abrupt("return");case 16:if(e.prev=16,c=function(e){R.log(LogCacheLevel$1.ERROR,"[Preloader] ".concat(r," failedCallback error"),null==e?void 0:e.message),R._endLoadFragments(!1)},s=function(){var e=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(r){var i,a,l,d,U,F,u,h,p,B,S,f,m;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null!=r&&r.mp4&&(null==r||!r.mp4.hasDestroyed)){e.next=2;break}return e.abrupt("return");case 2:if(a=r.mp4,l=r.buffer,d=r.state,U=r.context,F=r.initSeg,u=r.lastRemainBufferInfo,h=a.adaptTimeRange,p=U.fragIndex,B=U.timeRange,S=null===(i=h[p])||void 0===i?void 0:i.range,!t.initSeg&&F&&(t.initSeg=F,t.adaptTimeRange=h),f=a.lastDemuxSampleIdxRange,t.repeatData=u.data,t.repeatDataStartPos=u.pos,R.log(LogCacheLevel$1.LOG,"[Preloader] ".concat(t.cacheKey," lastUnMuxData, ").concat(p,", \n appendLastUnMuxData start: ").concat(t.repeatDataStartPos," \n end: ").concat(t.repeatDataStartPos+t.repeatData.byteLength)),m=R.updatePreCacheData(t,l,S,d,p,B,S,f,u.pos,h[p].duration),R.log(LogCacheLevel$1.LOG,"[Preloader] ".concat(t.cacheKey," successCallback"),U.fragIndex,d,m),t.from=3,!m){e.next=27;break}return e.next=18,R.setPreLoadData(n,t);case 18:if(!(o&&p>=o.length-1||R.stepwise)){e.next=24;break}return R.log(LogCacheLevel$1.LOG,"[Preloader] ".concat(t.cacheKey," mp4.load end"),p),R._endLoadFragments(!0),e.abrupt("return");case 24:return R.appendLastUnMuxData(p+1,t),e.next=27,a.loadAllFragmentData(p+1,s,c,!1,Q);case 27:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),U=t.repeatData,F=t.repeatDataStartPos,!this.checkCacheIsHasAllData(d,t)){e.next=26;break}return this.log(LogCacheLevel$1.LOG,"[Preloader] ".concat(r," startLoadBySize loadIdx:").concat(a," , cache has all data,loadIdx:").concat(a," range:").concat(d)),this.mp4._loadSuccessCallBack=s,this.mp4._mux(U.subarray(d[0]-F),d[0],a,!0),e.abrupt("return");case 26:return u=(null==U?void 0:U.byteLength)>0&&F<=d[0]&&F+U.byteLength<d[1]?F+U.byteLength:d[0],Q=[u,o[a].range[1]],this.appendLastUnMuxData(a,t),e.next=31,this.mp4.loadAllFragmentData(a,s,c,!1,Q);case 31:e.next=37;break;case 33:e.prev=33,e.t0=e.catch(16),this.log(LogCacheLevel$1.ERROR,"[Preloader] ".concat(t.cacheKey," mp4.load error"),a),this._endLoadFragments(!1);case 37:case"end":return e.stop()}}),e,this,[[16,33]])}))),function(e,t){return i.apply(this,arguments)})},{key:"checkCacheIsHasAllData",value:function(e,t){var n=t.repeatData,r=t.repeatDataStartPos;return(null==n?void 0:n.byteLength)>0&&(null==e?void 0:e[0])>=r&&(null==e?void 0:e[1])<=r+(null==n?void 0:n.byteLength)}},{key:"appendLastUnMuxData",value:function(e,t){var n;(null===(n=t.repeatData)||void 0===n?void 0:n.byteLength)>0&&(this.log(LogCacheLevel$1.LOG,"[Preloader] ".concat(t.cacheKey," appendLastUnMuxData, ").concat(e,", \n appendLastUnMuxData start: ").concat(t.repeatDataStartPos," \n end: ").concat(t.repeatDataStartPos+t.repeatData.byteLength)),this.mp4.setLastMuxRemainBufferInfo(t.repeatData,t.repeatDataStartPos))}},{key:"startLoadByFragments",value:(r=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(t,n){var r,i,a,o,l,d,c,s=this;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=n.vid,this.log(LogCacheLevel$1.LOG,"[Preloader] ".concat(i," startLoadByFragments"),n),a=this.findLoadAdaptTimeRangeIdx(n),(o=null===(r=this.mp4)||void 0===r?void 0:r.adaptTimeRange)&&null!=o&&o.length){e.next=8;break}return this.log(LogCacheLevel$1.ERROR,"[Preloader] ".concat(i," adaptTimeRange is null")),this._endLoadFragments(!1),e.abrupt("return");case 8:if(this.updateAdaptTimeRangeState(t,o),(l=o.findIndex((function(e){return!e.downloaded})))>=0&&(a=Math.min(l,a)),this.log(LogCacheLevel$1.LOG,"[Preloader] loading ".concat(a),o?o[a].downloaded:"",o),!o||!o[a].downloaded){e.next=15;break}return this._endLoadFragments(),e.abrupt("return");case 15:if(d=function(e){s.log(LogCacheLevel$1.ERROR,"[Preloader] ".concat(i," failedCallback error"),null==e?void 0:e.message),s._endLoadFragments(!1)},c=function(){var e=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(r){var i,a,l,U,F,u,Q,R,h,p,B,S,f,m,V,y;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null!=r&&r.mp4&&(null==r||null===(i=r.mp4)||void 0===i||!i.hasDestroyed)){e.next=2;break}return e.abrupt("return");case 2:if(U=r.mp4,F=r.buffer,u=r.context,Q=r.state,R=r.initSeg,h=u.fragIndex,p=u.range,B=u.timeRange,S=U.repeatInfo,f=U.adaptTimeRange,m=null===(a=f[h])||void 0===a?void 0:a.range,!t.initSeg&&R&&(t.initSeg=R,t.adaptTimeRange=f),V=U.lastDemuxSampleIdxRange,t.repeatData=(null===(l=S.data)||void 0===l?void 0:l.slice(0,S.curDataPos))||[],y=s.updatePreCacheData(t,F,p,Q,h,B,m,V,-1,f[h].duration),s.log(LogCacheLevel$1.LOG,"[Preloader] ".concat(t.cacheKey," successCallback"),h,Q,y),t.from=3,!y){e.next=25;break}return e.next=16,s.setPreLoadData(n,t);case 16:if(!(o&&h>=o.length-1||s.stepwise)){e.next=22;break}return s.log(LogCacheLevel$1.LOG,"[Preloader] ".concat(t.cacheKey," mp4.load end"),h),s._endLoadFragments(!0),e.abrupt("return");case 22:return s.log(LogCacheLevel$1.LOG,"[Preloader] ".concat(t.cacheKey," mp4.load start"),h+1),e.next=25,U.loadAllFragmentData(h+1,c,d);case 25:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),!this.mp4){e.next=20;break}return e.next=20,this.mp4.loadAllFragmentData(a,c,d);case 20:case"end":return e.stop()}}),e,this)}))),function(e,t){return r.apply(this,arguments)})},{key:"_endLoadFragments",value:function(e){var t,n,r,i;(this.log(LogCacheLevel$1.LOG,"[Preloader] _endLoadFragments ".concat(this.playerId)),null!==(t=this._pendingTask)&&void 0!==t&&t.resolve)&&(null===(i=this._pendingTask)||void 0===i||i.resolve(),this._pendingTask.resolve=void 0);var a=!(null!==(n=this.options)&&void 0!==n&&n.openStepwiseType)||this.options.openStepwiseType.toUpperCase()===VTYPES.MP4;null!==(r=this._pendingTask)&&void 0!==r&&r.data&&(!this.stepwise||!1!==e&&a||this._pendingTask.data.payload&&(this._pendingTask.data.payload.stepIdx=1/0),this._pendingTask.data=void 0),this.mp4&&(this.mp4.destroy(),this.mp4.cancelLoading(),this.mp4=void 0),this.mp4Loader&&(this.mp4Loader.cancel(),this.mp4Loader.destroy(),this.mp4Loader=void 0)}},{key:"hasItemSameVid",value:function(e){if(!e)return null;for(var t=e.split("#"),n=this.allCachedKeys,r=0;r<n.length;r++){var i=n[r];if(i===e)return i;var a=i.split("#");if(a.length>=4&&t.length>=4&&a[0]===t[0]){if(0===a[2].indexOf("pretime")&&0===t[2].indexOf("pretime"))return i;var o=[parseInt(a[2]),parseInt(a[3])],l=[parseInt(t[2]),parseInt(t[3])];if(l[0]>=o[0]&&l[1]>l[0]&&l[1]<=o[1])return i}}return null}},{key:"getItemSameVid",value:(n=_asyncToGenerator$6(_regeneratorRuntime$6().mark((function e(n){var r,i,a;return _regeneratorRuntime$6().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.generateUniqueKey(n),i=r&&this.hasItemSameVid(r),this.log(LogCacheLevel$1.DEBUG,"getItemSameVid: key:".concat(r," checkResult:").concat(i)),i){e.next=5;break}return e.abrupt("return",{});case 5:return e.next=7,this.preloadManager.getItem(n);case 7:return a=e.sent,e.abrupt("return",{value:a,key:i});case 9:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"setItem",value:function(e,t){return this.preloadManager.setItem(e,t,!1)}},{key:"clearPreloaderList",value:function(){_superPropGet$1(t,"clearPreloaderList",this,3)([])}},{key:"setUserSelectDefinition",value:function(e){this.preloadManager&&this.preloadManager.setUserSelectDefinition(e)}},{key:"getUserSelectDefinition",value:function(){return this.preloadManager.getUserSelectDefinition()}},{key:"cancel",value:function(){this.log(LogCacheLevel$1.LOG,"cancelLoading"),this._endLoadFragments()}},{key:"destroy",value:function(){this.cancel()}},{key:"on",value:function(e,n){for(var r=arguments.length,i=new Array(r>2?r-2:0),a=2;a<r;a++)i[a-2]=arguments[a];_superPropGet$1(t,"on",this,3)([e,n].concat(i))}},{key:"off",value:function(e,n){for(var r=arguments.length,i=new Array(r>2?r-2:0),a=2;a<r;a++)i[a-2]=arguments[a];_superPropGet$1(t,"off",this,3)([e,n].concat(i))}}],[{key:"vtype",get:function(){return VTYPES.MP4}},{key:"PRELOAD_TYPES",get:function(){return PRELOAD_TYPES}},{key:"getDefaultConfig",value:function(){return getDefaultConfig()}},{key:"getInfoByUniqueKey",value:function(e){var t=e.split("#"),n=["vid","mediaType","codecType","vtype","definition"],r={};return t.forEach((function(e,t){r[n[t]]=e})),r}},{key:"generateUniqueKey",value:function(e){var t=e.vid,n=e.mediaType,r=e.definition,i=e.codecType,a=e.vtype,o=e.bitrate;return n=n||"video",r=r||"-1",i=i||CodecTypes.H264,a=a||VTYPES.MP4,o=o||0,t?"".concat(t,"#").concat(n,"#").concat(i,"#").concat(a,"#").concat(r,"#").concat(o):null}}]);var n,r,i,a,o,l,d,c,s,U}(),mp4Encrypt=Object.assign(Mp4EncryptPlayer,{Mp4Preloader:Mp4Preloader});export{mp4Encrypt as default};