p2party 0.6.16 → 0.7.2
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.
- package/README.md +29 -33
- package/lib/api/webrtc/baseQuery.d.ts.map +1 -1
- package/lib/api/webrtc/disconnectFromChannelLabelQuery.d.ts.map +1 -1
- package/lib/api/webrtc/disconnectFromPeerChannelLabelQuery.d.ts.map +1 -1
- package/lib/api/webrtc/disconnectFromPeerQuery.d.ts.map +1 -1
- package/lib/api/webrtc/disconnectFromRoomQuery.d.ts.map +1 -1
- package/lib/api/webrtc/disconnectQuery.d.ts.map +1 -1
- package/lib/api/webrtc/openChannelQuery.d.ts.map +1 -1
- package/lib/api/webrtc/sendMessageQuery.d.ts.map +1 -1
- package/lib/api/webrtc/setCandidateQuery.d.ts.map +1 -1
- package/lib/api/webrtc/setDescriptionQuery.d.ts.map +1 -1
- package/lib/db.worker.js +1 -1
- package/lib/handlers/handleOpenChannel.d.ts +1 -1
- package/lib/handlers/handleReceiveMessage.d.ts +2 -1
- package/lib/index.d.ts +9 -9
- package/lib/index.js +1 -1
- package/lib/index.min.js +1 -1
- package/lib/index.mjs +1 -1
- package/lib/utils/channelLabel.d.ts +2 -4
- package/lib/utils/metadata.d.ts +1 -0
- package/package.json +4 -4
package/lib/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var A=require("class-validator");function e(A){return`Minified Redux error #${A}; visit https://redux.js.org/Errors?code=${A} for the full message or use the non-minified dev environment for full errors. `}var I=(()=>"function"==typeof Symbol&&Symbol.observable||"@@observable")(),g=()=>Math.random().toString(36).substring(7).split("").join("."),t={INIT:`@@redux/INIT${g()}`,REPLACE:`@@redux/REPLACE${g()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${g()}`};function i(A){if("object"!=typeof A||null===A)return!1;let e=A;for(;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(A)===e||null===Object.getPrototypeOf(A)}function o(A,g,n){if("function"!=typeof A)throw new Error(e(2));if("function"==typeof g&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw new Error(e(0));if("function"==typeof g&&void 0===n&&(n=g,g=void 0),void 0!==n){if("function"!=typeof n)throw new Error(e(1));return n(o)(A,g)}let C=A,a=g,r=new Map,s=r,B=0,c=!1;function Q(){s===r&&(s=new Map,r.forEach((A,e)=>{s.set(e,A)}))}function E(){if(c)throw new Error(e(3));return a}function l(A){if("function"!=typeof A)throw new Error(e(4));if(c)throw new Error(e(5));let I=!0;Q();const g=B++;return s.set(g,A),function(){if(I){if(c)throw new Error(e(6));I=!1,Q(),s.delete(g),r=null}}}function w(A){if(!i(A))throw new Error(e(7));if(void 0===A.type)throw new Error(e(8));if("string"!=typeof A.type)throw new Error(e(17));if(c)throw new Error(e(9));try{c=!0,a=C(a,A)}finally{c=!1}return(r=s).forEach(A=>{A()}),A}w({type:t.INIT});return{dispatch:w,subscribe:l,getState:E,replaceReducer:function(A){if("function"!=typeof A)throw new Error(e(10));C=A,w({type:t.REPLACE})},[I]:function(){const A=l;return{subscribe(I){if("object"!=typeof I||null===I)throw new Error(e(11));function g(){const A=I;A.next&&A.next(E())}g();return{unsubscribe:A(g)}},[I](){return this}}}}}function n(A){const I=Object.keys(A),g={};for(let e=0;e<I.length;e++){const t=I[e];"function"==typeof A[t]&&(g[t]=A[t])}const i=Object.keys(g);let o;try{!function(A){Object.keys(A).forEach(I=>{const g=A[I];if(void 0===g(void 0,{type:t.INIT}))throw new Error(e(12));if(void 0===g(void 0,{type:t.PROBE_UNKNOWN_ACTION()}))throw new Error(e(13))})}(g)}catch(A){o=A}return function(A={},I){if(o)throw o;let t=!1;const n={};for(let o=0;o<i.length;o++){const C=i[o],a=g[C],r=A[C],s=a(r,I);if(void 0===s)throw I&&I.type,new Error(e(14));n[C]=s,t=t||s!==r}return t=t||i.length!==Object.keys(A).length,t?n:A}}function C(...A){return 0===A.length?A=>A:1===A.length?A[0]:A.reduce((A,e)=>(...I)=>A(e(...I)))}function a(A){return i(A)&&"type"in A&&"string"==typeof A.type}var r=Symbol.for("immer-nothing"),s=Symbol.for("immer-draftable"),B=Symbol.for("immer-state");function c(A,...e){throw new Error(`[Immer] minified error nr: ${A}. Full error at: https://bit.ly/3cXEKWf`)}var Q=Object.getPrototypeOf;function E(A){return!!A&&!!A[B]}function l(A){return!!A&&(d(A)||Array.isArray(A)||!!A[s]||!!A.constructor?.[s]||p(A)||m(A))}var w=Object.prototype.constructor.toString();function d(A){if(!A||"object"!=typeof A)return!1;const e=Q(A);if(null===e)return!0;const I=Object.hasOwnProperty.call(e,"constructor")&&e.constructor;return I===Object||"function"==typeof I&&Function.toString.call(I)===w}function h(A,e){0===f(A)?Reflect.ownKeys(A).forEach(I=>{e(I,A[I],A)}):A.forEach((I,g)=>e(g,I,A))}function f(A){const e=A[B];return e?e.type_:Array.isArray(A)?1:p(A)?2:m(A)?3:0}function u(A,e){return 2===f(A)?A.has(e):Object.prototype.hasOwnProperty.call(A,e)}function y(A,e){return 2===f(A)?A.get(e):A[e]}function D(A,e,I){const g=f(A);2===g?A.set(e,I):3===g?A.add(I):A[e]=I}function p(A){return A instanceof Map}function m(A){return A instanceof Set}function S(A){return A.copy_||A.base_}function k(A,e){if(p(A))return new Map(A);if(m(A))return new Set(A);if(Array.isArray(A))return Array.prototype.slice.call(A);const I=d(A);if(!0===e||"class_only"===e&&!I){const e=Object.getOwnPropertyDescriptors(A);delete e[B];let I=Reflect.ownKeys(e);for(let g=0;g<I.length;g++){const t=I[g],i=e[t];!1===i.writable&&(i.writable=!0,i.configurable=!0),(i.get||i.set)&&(e[t]={configurable:!0,writable:!0,enumerable:i.enumerable,value:A[t]})}return Object.create(Q(A),e)}{const e=Q(A);if(null!==e&&I)return{...A};const g=Object.create(e);return Object.assign(g,A)}}function M(A,e=!1){return F(A)||E(A)||!l(A)||(f(A)>1&&(A.set=A.add=A.clear=A.delete=K),Object.freeze(A),e&&Object.entries(A).forEach(([A,e])=>M(e,!0))),A}function K(){c(2)}function F(A){return Object.isFrozen(A)}var H,N={};function Y(A){const e=N[A];return e||c(0),e}function G(){return H}function U(A,e){e&&(Y("Patches"),A.patches_=[],A.inversePatches_=[],A.patchListener_=e)}function b(A){P(A),A.drafts_.forEach(J),A.drafts_=null}function P(A){A===H&&(H=A.parent_)}function v(A){return H={drafts_:[],parent_:H,immer_:A,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function J(A){const e=A[B];0===e.type_||1===e.type_?e.revoke_():e.revoked_=!0}function L(A,e){e.unfinalizedDrafts_=e.drafts_.length;const I=e.drafts_[0];return void 0!==A&&A!==I?(I[B].modified_&&(b(e),c(4)),l(A)&&(A=R(e,A),e.parent_||q(e,A)),e.patches_&&Y("Patches").generateReplacementPatches_(I[B].base_,A,e.patches_,e.inversePatches_)):A=R(e,I,[]),b(e),e.patches_&&e.patchListener_(e.patches_,e.inversePatches_),A!==r?A:void 0}function R(A,e,I){if(F(e))return e;const g=e[B];if(!g)return h(e,(t,i)=>x(A,g,e,t,i,I)),e;if(g.scope_!==A)return e;if(!g.modified_)return q(A,g.base_,!0),g.base_;if(!g.finalized_){g.finalized_=!0,g.scope_.unfinalizedDrafts_--;const e=g.copy_;let t=e,i=!1;3===g.type_&&(t=new Set(e),e.clear(),i=!0),h(t,(t,o)=>x(A,g,e,t,o,I,i)),q(A,e,!1),I&&A.patches_&&Y("Patches").generatePatches_(g,I,A.patches_,A.inversePatches_)}return g.copy_}function x(A,e,I,g,t,i,o){if(E(t)){const o=R(A,t,i&&e&&3!==e.type_&&!u(e.assigned_,g)?i.concat(g):void 0);if(D(I,g,o),!E(o))return;A.canAutoFreeze_=!1}else o&&I.add(t);if(l(t)&&!F(t)){if(!A.immer_.autoFreeze_&&A.unfinalizedDrafts_<1)return;R(A,t),e&&e.scope_.parent_||"symbol"==typeof g||!Object.prototype.propertyIsEnumerable.call(I,g)||q(A,t)}}function q(A,e,I=!1){!A.parent_&&A.immer_.autoFreeze_&&A.canAutoFreeze_&&M(e,I)}var O={get(A,e){if(e===B)return A;const I=S(A);if(!u(I,e))return function(A,e,I){const g=z(e,I);return g?"value"in g?g.value:g.get?.call(A.draft_):void 0}(A,I,e);const g=I[e];return A.finalized_||!l(g)?g:g===T(A.base_,e)?(V(A),A.copy_[e]=W(g,A)):g},has:(A,e)=>e in S(A),ownKeys:A=>Reflect.ownKeys(S(A)),set(A,e,I){const g=z(S(A),e);if(g?.set)return g.set.call(A.draft_,I),!0;if(!A.modified_){const g=T(S(A),e),o=g?.[B];if(o&&o.base_===I)return A.copy_[e]=I,A.assigned_[e]=!1,!0;if(((t=I)===(i=g)?0!==t||1/t==1/i:t!=t&&i!=i)&&(void 0!==I||u(A.base_,e)))return!0;V(A),X(A)}var t,i;return A.copy_[e]===I&&(void 0!==I||e in A.copy_)||Number.isNaN(I)&&Number.isNaN(A.copy_[e])||(A.copy_[e]=I,A.assigned_[e]=!0),!0},deleteProperty:(A,e)=>(void 0!==T(A.base_,e)||e in A.base_?(A.assigned_[e]=!1,V(A),X(A)):delete A.assigned_[e],A.copy_&&delete A.copy_[e],!0),getOwnPropertyDescriptor(A,e){const I=S(A),g=Reflect.getOwnPropertyDescriptor(I,e);return g?{writable:!0,configurable:1!==A.type_||"length"!==e,enumerable:g.enumerable,value:I[e]}:g},defineProperty(){c(11)},getPrototypeOf:A=>Q(A.base_),setPrototypeOf(){c(12)}},j={};function T(A,e){const I=A[B];return(I?S(I):A)[e]}function z(A,e){if(!(e in A))return;let I=Q(A);for(;I;){const A=Object.getOwnPropertyDescriptor(I,e);if(A)return A;I=Q(I)}}function X(A){A.modified_||(A.modified_=!0,A.parent_&&X(A.parent_))}function V(A){A.copy_||(A.copy_=k(A.base_,A.scope_.immer_.useStrictShallowCopy_))}h(O,(A,e)=>{j[A]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}}),j.deleteProperty=function(A,e){return j.set.call(this,A,e,void 0)},j.set=function(A,e,I){return O.set.call(this,A[0],e,I,A[0])};function W(A,e){const I=p(A)?Y("MapSet").proxyMap_(A,e):m(A)?Y("MapSet").proxySet_(A,e):function(A,e){const I=Array.isArray(A),g={type_:I?1:0,scope_:e?e.scope_:G(),modified_:!1,finalized_:!1,assigned_:{},parent_:e,base_:A,draft_:null,copy_:null,revoke_:null,isManual_:!1};let t=g,i=O;I&&(t=[g],i=j);const{revoke:o,proxy:n}=Proxy.revocable(t,i);return g.draft_=n,g.revoke_=o,n}(A,e);return(e?e.scope_:G()).drafts_.push(I),I}function Z(A){if(!l(A)||F(A))return A;const e=A[B];let I;if(e){if(!e.modified_)return e.base_;e.finalized_=!0,I=k(A,e.scope_.immer_.useStrictShallowCopy_)}else I=k(A,!0);return h(I,(A,e)=>{D(I,A,Z(e))}),e&&(e.finalized_=!1),I}function _(){const A="replace",e="add",I="remove";function g(A){if(!l(A))return A;if(Array.isArray(A))return A.map(g);if(p(A))return new Map(Array.from(A.entries()).map(([A,e])=>[A,g(e)]));if(m(A))return new Set(Array.from(A).map(g));const e=Object.create(Q(A));for(const I in A)e[I]=g(A[I]);return u(A,s)&&(e[s]=A[s]),e}function t(A){return E(A)?g(A):A}var i,o;o={applyPatches_:function(t,i){return i.forEach(i=>{const{path:o,op:n}=i;let C=t;for(let A=0;A<o.length-1;A++){const e=f(C);let I=o[A];"string"!=typeof I&&"number"!=typeof I&&(I=""+I),0!==e&&1!==e||"__proto__"!==I&&"constructor"!==I||c(19),"function"==typeof C&&"prototype"===I&&c(19),C=y(C,I),"object"!=typeof C&&c(18,o.join("/"))}const a=f(C),r=g(i.value),s=o[o.length-1];switch(n){case A:switch(a){case 2:return C.set(s,r);case 3:c(16);default:return C[s]=r}case e:switch(a){case 1:return"-"===s?C.push(r):C.splice(s,0,r);case 2:return C.set(s,r);case 3:return C.add(r);default:return C[s]=r}case I:switch(a){case 1:return C.splice(s,1);case 2:return C.delete(s);case 3:return C.delete(i.value);default:return delete C[s]}default:c(17)}}),t},generatePatches_:function(g,i,o,n){switch(g.type_){case 0:case 2:return function(g,i,o,n){const{base_:C,copy_:a}=g;h(g.assigned_,(g,r)=>{const s=y(C,g),B=y(a,g),c=r?u(C,g)?A:e:I;if(s===B&&c===A)return;const Q=i.concat(g);o.push(c===I?{op:c,path:Q}:{op:c,path:Q,value:B}),n.push(c===e?{op:I,path:Q}:c===I?{op:e,path:Q,value:t(s)}:{op:A,path:Q,value:t(s)})})}(g,i,o,n);case 1:return function(g,i,o,n){let{base_:C,assigned_:a}=g,r=g.copy_;r.length<C.length&&([C,r]=[r,C],[o,n]=[n,o]);for(let e=0;e<C.length;e++)if(a[e]&&r[e]!==C[e]){const I=i.concat([e]);o.push({op:A,path:I,value:t(r[e])}),n.push({op:A,path:I,value:t(C[e])})}for(let A=C.length;A<r.length;A++){const I=i.concat([A]);o.push({op:e,path:I,value:t(r[A])})}for(let A=r.length-1;C.length<=A;--A){const e=i.concat([A]);n.push({op:I,path:e})}}(g,i,o,n);case 3:return function(A,g,t,i){let{base_:o,copy_:n}=A,C=0;o.forEach(A=>{if(!n.has(A)){const o=g.concat([C]);t.push({op:I,path:o,value:A}),i.unshift({op:e,path:o,value:A})}C++}),C=0,n.forEach(A=>{if(!o.has(A)){const o=g.concat([C]);t.push({op:e,path:o,value:A}),i.unshift({op:I,path:o,value:A})}C++})}(g,i,o,n)}},generateReplacementPatches_:function(e,I,g,t){g.push({op:A,path:[],value:I===r?void 0:I}),t.push({op:A,path:[],value:e})}},N[i="Patches"]||(N[i]=o)}var $=new class{constructor(A){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(A,e,I)=>{if("function"==typeof A&&"function"!=typeof e){const I=e;e=A;const g=this;return function(A=I,...t){return g.produce(A,A=>e.call(this,A,...t))}}let g;if("function"!=typeof e&&c(6),void 0!==I&&"function"!=typeof I&&c(7),l(A)){const t=v(this),i=W(A,void 0);let o=!0;try{g=e(i),o=!1}finally{o?b(t):P(t)}return U(t,I),L(g,t)}if(!A||"object"!=typeof A){if(g=e(A),void 0===g&&(g=A),g===r&&(g=void 0),this.autoFreeze_&&M(g,!0),I){const e=[],t=[];Y("Patches").generateReplacementPatches_(A,g,e,t),I(e,t)}return g}c(1)},this.produceWithPatches=(A,e)=>{if("function"==typeof A)return(e,...I)=>this.produceWithPatches(e,e=>A(e,...I));let I,g;return[this.produce(A,e,(A,e)=>{I=A,g=e}),I,g]},"boolean"==typeof A?.autoFreeze&&this.setAutoFreeze(A.autoFreeze),"boolean"==typeof A?.useStrictShallowCopy&&this.setUseStrictShallowCopy(A.useStrictShallowCopy)}createDraft(A){l(A)||c(8),E(A)&&(A=function(A){E(A)||c(10);return Z(A)}(A));const e=v(this),I=W(A,void 0);return I[B].isManual_=!0,P(e),I}finishDraft(A,e){const I=A&&A[B];I&&I.isManual_||c(9);const{scope_:g}=I;return U(g,e),L(void 0,g)}setAutoFreeze(A){this.autoFreeze_=A}setUseStrictShallowCopy(A){this.useStrictShallowCopy_=A}applyPatches(A,e){let I;for(I=e.length-1;I>=0;I--){const g=e[I];if(0===g.path.length&&"replace"===g.op){A=g.value;break}}I>-1&&(e=e.slice(I+1));const g=Y("Patches").applyPatches_;return E(A)?g(A,e):this.produce(A,A=>g(A,e))}},AA=$.produce,eA=$.produceWithPatches.bind($);$.setAutoFreeze.bind($),$.setUseStrictShallowCopy.bind($);var IA=$.applyPatches.bind($);$.createDraft.bind($),$.finishDraft.bind($);var gA=A=>Array.isArray(A)?A:[A];function tA(A){const e=Array.isArray(A[0])?A[0]:A;return function(A,e="expected all items to be functions, instead received the following types: "){if(!A.every(A=>"function"==typeof A)){const I=A.map(A=>"function"==typeof A?`function ${A.name||"unnamed"}()`:typeof A).join(", ");throw new TypeError(`${e}[${I}]`)}}(e,"createSelector expects all input-selectors to be functions, but received the following types: "),e}var iA="undefined"!=typeof WeakRef?WeakRef:class{constructor(A){this.value=A}deref(){return this.value}};function oA(){return{s:0,v:void 0,o:null,p:null}}function nA(A,e={}){let I={s:0,v:void 0,o:null,p:null};const{resultEqualityCheck:g}=e;let t,i=0;function o(){let e=I;const{length:o}=arguments;for(let A=0,I=o;A<I;A++){const I=arguments[A];if("function"==typeof I||"object"==typeof I&&null!==I){let A=e.o;null===A&&(e.o=A=new WeakMap);const g=A.get(I);void 0===g?(e=oA(),A.set(I,e)):e=g}else{let A=e.p;null===A&&(e.p=A=new Map);const g=A.get(I);void 0===g?(e=oA(),A.set(I,e)):e=g}}const n=e;let C;if(1===e.s)C=e.v;else if(C=A.apply(null,arguments),i++,g){const A=t?.deref?.()??t;null!=A&&g(A,C)&&(C=A,0!==i&&i--);t="object"==typeof C&&null!==C||"function"==typeof C?new iA(C):C}return n.s=1,n.v=C,C}return o.clearCache=()=>{I={s:0,v:void 0,o:null,p:null},o.resetResultsCount()},o.resultsCount=()=>i,o.resetResultsCount=()=>{i=0},o}function CA(A,...e){const I="function"==typeof A?{memoize:A,memoizeOptions:e}:A,g=(...A)=>{let e,g=0,t=0,i={},o=A.pop();"object"==typeof o&&(i=o,o=A.pop()),function(A,e="expected a function, instead received "+typeof A){if("function"!=typeof A)throw new TypeError(e)}(o,`createSelector expects an output function after the inputs, but received: [${typeof o}]`);const n={...I,...i},{memoize:C,memoizeOptions:a=[],argsMemoize:r=nA,argsMemoizeOptions:s=[]}=n,B=gA(a),c=gA(s),Q=tA(A),E=C(function(){return g++,o.apply(null,arguments)},...B),l=r(function(){t++;const A=function(A,e){const I=[],{length:g}=A;for(let t=0;t<g;t++)I.push(A[t].apply(null,e));return I}(Q,arguments);return e=E.apply(null,A),e},...c);return Object.assign(l,{resultFunc:o,memoizedResultFunc:E,dependencies:Q,dependencyRecomputations:()=>t,resetDependencyRecomputations:()=>{t=0},lastResult:()=>e,recomputations:()=>g,resetRecomputations:()=>{g=0},memoize:C,argsMemoize:r})};return Object.assign(g,{withTypes:()=>g}),g}var aA=CA(nA),rA=Object.assign((A,e=aA)=>{!function(A,e="expected an object, instead received "+typeof A){if("object"!=typeof A)throw new TypeError(e)}(A,"createStructuredSelector expects first argument to be an object where each property is a selector, instead received a "+typeof A);const I=Object.keys(A);return e(I.map(e=>A[e]),(...A)=>A.reduce((A,e,g)=>(A[I[g]]=e,A),{}))},{withTypes:()=>rA});function sA(A){return({dispatch:e,getState:I})=>g=>t=>"function"==typeof t?t(e,I,A):g(t)}var BA=sA(),cA=sA,QA="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!==arguments.length)return"object"==typeof arguments[0]?C:C.apply(null,arguments)};function EA(A,e){function I(...I){if(e){let g=e(...I);if(!g)throw new Error(Se(0));return{type:A,payload:g.payload,..."meta"in g&&{meta:g.meta},..."error"in g&&{error:g.error}}}return{type:A,payload:I[0]}}return I.toString=()=>`${A}`,I.type=A,I.match=e=>a(e)&&e.type===A,I}var lA=class A extends Array{constructor(...e){super(...e),Object.setPrototypeOf(this,A.prototype)}static get[Symbol.species](){return A}concat(...A){return super.concat.apply(this,A)}prepend(...e){return 1===e.length&&Array.isArray(e[0])?new A(...e[0].concat(this)):new A(...e.concat(this))}};function wA(A){return l(A)?AA(A,()=>{}):A}function dA(A,e,I){return A.has(e)?A.get(e):A.set(e,I(e)).get(e)}var hA="RTK_autoBatch",fA=()=>A=>({payload:A,meta:{[hA]:!0}}),uA=A=>e=>{setTimeout(e,A)},yA=A=>function(e){const{autoBatch:I=!0}=e??{};let g=new lA(A);return I&&g.push(((A={type:"raf"})=>e=>(...I)=>{const g=e(...I);let t=!0,i=!1,o=!1;const n=new Set,C="tick"===A.type?queueMicrotask:"raf"===A.type?"undefined"!=typeof window&&window.requestAnimationFrame?window.requestAnimationFrame:uA(10):"callback"===A.type?A.queueNotification:uA(A.timeout),a=()=>{o=!1,i&&(i=!1,n.forEach(A=>A()))};return Object.assign({},g,{subscribe(A){const e=g.subscribe(()=>t&&A());return n.add(A),()=>{e(),n.delete(A)}},dispatch(A){try{return t=!A?.meta?.[hA],i=!t,i&&(o||(o=!0,C(a))),g.dispatch(A)}finally{t=!0}}})})("object"==typeof I?I:void 0)),g};function DA(A){const e={},I=[];let g;const t={addCase(A,I){const g="string"==typeof A?A:A.type;if(!g)throw new Error(Se(28));if(g in e)throw new Error(Se(29));return e[g]=I,t},addMatcher:(A,e)=>(I.push({matcher:A,reducer:e}),t),addDefaultCase:A=>(g=A,t)};return A(t),[e,I,g]}var pA=(A,e)=>{return(I=A)&&"function"==typeof I.match?A.match(e):A(e);var I};function mA(...A){return e=>A.some(A=>pA(A,e))}function SA(...A){return e=>A.every(A=>pA(A,e))}function kA(A,e){if(!A||!A.meta)return!1;const I="string"==typeof A.meta.requestId,g=e.indexOf(A.meta.requestStatus)>-1;return I&&g}function MA(A){return"function"==typeof A[0]&&"pending"in A[0]&&"fulfilled"in A[0]&&"rejected"in A[0]}function KA(...A){return 0===A.length?A=>kA(A,["pending"]):MA(A)?mA(...A.map(A=>A.pending)):KA()(A[0])}function FA(...A){return 0===A.length?A=>kA(A,["rejected"]):MA(A)?mA(...A.map(A=>A.rejected)):FA()(A[0])}function HA(...A){const e=A=>A&&A.meta&&A.meta.rejectedWithValue;return 0===A.length||MA(A)?SA(FA(...A),e):HA()(A[0])}function NA(...A){return 0===A.length?A=>kA(A,["fulfilled"]):MA(A)?mA(...A.map(A=>A.fulfilled)):NA()(A[0])}function YA(...A){return 0===A.length?A=>kA(A,["pending","fulfilled","rejected"]):MA(A)?mA(...A.flatMap(A=>[A.pending,A.rejected,A.fulfilled])):YA()(A[0])}var GA=(A=21)=>{let e="",I=A;for(;I--;)e+="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW"[64*Math.random()|0];return e},UA=["name","message","stack","code"],bA=class{constructor(A,e){this.payload=A,this.meta=e}_type},PA=class{constructor(A,e){this.payload=A,this.meta=e}_type},vA=A=>{if("object"==typeof A&&null!==A){const e={};for(const I of UA)"string"==typeof A[I]&&(e[I]=A[I]);return e}return{message:String(A)}},JA="External signal was aborted",LA=(()=>{function A(A,e,I){const g=EA(A+"/fulfilled",(A,e,I,g)=>({payload:A,meta:{...g||{},arg:I,requestId:e,requestStatus:"fulfilled"}})),t=EA(A+"/pending",(A,e,I)=>({payload:void 0,meta:{...I||{},arg:e,requestId:A,requestStatus:"pending"}})),i=EA(A+"/rejected",(A,e,g,t,i)=>({payload:t,error:(I&&I.serializeError||vA)(A||"Rejected"),meta:{...i||{},arg:g,requestId:e,rejectedWithValue:!!t,requestStatus:"rejected",aborted:"AbortError"===A?.name,condition:"ConditionError"===A?.name}}));return Object.assign(function(A,{signal:o}={}){return(n,C,a)=>{const r=I?.idGenerator?I.idGenerator(A):GA(),s=new AbortController;let B,c;function Q(A){c=A,s.abort()}o&&(o.aborted?Q(JA):o.addEventListener("abort",()=>Q(JA),{once:!0}));const E=async function(){let o;try{let i=I?.condition?.(A,{getState:C,extra:a});if(null!==(E=i)&&"object"==typeof E&&"function"==typeof E.then&&(i=await i),!1===i||s.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};const l=new Promise((A,e)=>{B=()=>{e({name:"AbortError",message:c||"Aborted"})},s.signal.addEventListener("abort",B)});n(t(r,A,I?.getPendingMeta?.({requestId:r,arg:A},{getState:C,extra:a}))),o=await Promise.race([l,Promise.resolve(e(A,{dispatch:n,getState:C,extra:a,requestId:r,signal:s.signal,abort:Q,rejectWithValue:(A,e)=>new bA(A,e),fulfillWithValue:(A,e)=>new PA(A,e)})).then(e=>{if(e instanceof bA)throw e;return e instanceof PA?g(e.payload,r,A,e.meta):g(e,r,A)})])}catch(e){o=e instanceof bA?i(null,r,A,e.payload,e.meta):i(e,r,A)}finally{B&&s.signal.removeEventListener("abort",B)}var E;return I&&!I.dispatchConditionRejection&&i.match(o)&&o.meta.condition||n(o),o}();return Object.assign(E,{abort:Q,requestId:r,arg:A,unwrap:()=>E.then(RA)})}},{pending:t,rejected:i,fulfilled:g,settled:mA(i,g),typePrefix:A})}return A.withTypes=()=>A,A})();function RA(A){if(A.meta&&A.meta.rejectedWithValue)throw A.payload;if(A.error)throw A.error;return A.payload}var xA=Symbol.for("rtk-slice-createasyncthunk");function qA(A,e){return`${A}/${e}`}function OA({creators:A}={}){const e=A?.asyncThunk?.[xA];return function(A){const{name:I,reducerPath:g=I}=A;if(!I)throw new Error(Se(11));const t=("function"==typeof A.reducers?A.reducers(function(){function A(A,e){return{_reducerDefinitionType:"asyncThunk",payloadCreator:A,...e}}return A.withTypes=()=>A,{reducer:A=>Object.assign({[A.name]:(...e)=>A(...e)}[A.name],{_reducerDefinitionType:"reducer"}),preparedReducer:(A,e)=>({_reducerDefinitionType:"reducerWithPrepare",prepare:A,reducer:e}),asyncThunk:A}}()):A.reducers)||{},i=Object.keys(t),o={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},n={addCase(A,e){const I="string"==typeof A?A:A.type;if(!I)throw new Error(Se(12));if(I in o.sliceCaseReducersByType)throw new Error(Se(13));return o.sliceCaseReducersByType[I]=e,n},addMatcher:(A,e)=>(o.sliceMatchers.push({matcher:A,reducer:e}),n),exposeAction:(A,e)=>(o.actionCreators[A]=e,n),exposeCaseReducer:(A,e)=>(o.sliceCaseReducersByName[A]=e,n)};function C(){const[e={},I=[],g]="function"==typeof A.extraReducers?DA(A.extraReducers):[A.extraReducers],t={...e,...o.sliceCaseReducersByType};return function(A,e){let I,[g,t,i]=DA(e);if("function"==typeof A)I=()=>wA(A());else{const e=wA(A);I=()=>e}function o(A=I(),e){let o=[g[e.type],...t.filter(({matcher:A})=>A(e)).map(({reducer:A})=>A)];return 0===o.filter(A=>!!A).length&&(o=[i]),o.reduce((A,I)=>{if(I){if(E(A)){const g=I(A,e);return void 0===g?A:g}if(l(A))return AA(A,A=>I(A,e));{const g=I(A,e);if(void 0===g){if(null===A)return A;throw Error("A case reducer on a non-draftable value must not return undefined")}return g}}return A},A)}return o.getInitialState=I,o}(A.initialState,A=>{for(let e in t)A.addCase(e,t[e]);for(let e of o.sliceMatchers)A.addMatcher(e.matcher,e.reducer);for(let e of I)A.addMatcher(e.matcher,e.reducer);g&&A.addDefaultCase(g)})}i.forEach(g=>{const i=t[g],o={reducerName:g,type:qA(I,g),createNotation:"function"==typeof A.reducers};!function(A){return"asyncThunk"===A._reducerDefinitionType}(i)?function({type:A,reducerName:e,createNotation:I},g,t){let i,o;if("reducer"in g){if(I&&!function(A){return"reducerWithPrepare"===A._reducerDefinitionType}(g))throw new Error(Se(17));i=g.reducer,o=g.prepare}else i=g;t.addCase(A,i).exposeCaseReducer(e,i).exposeAction(e,o?EA(A,o):EA(A))}(o,i,n):function({type:A,reducerName:e},I,g,t){if(!t)throw new Error(Se(18));const{payloadCreator:i,fulfilled:o,pending:n,rejected:C,settled:a,options:r}=I,s=t(A,i,r);g.exposeAction(e,s),o&&g.addCase(s.fulfilled,o);n&&g.addCase(s.pending,n);C&&g.addCase(s.rejected,C);a&&g.addMatcher(s.settled,a);g.exposeCaseReducer(e,{fulfilled:o||zA,pending:n||zA,rejected:C||zA,settled:a||zA})}(o,i,n,e)});const a=A=>A,r=new Map,s=new WeakMap;let B;function c(A,e){return B||(B=C()),B(A,e)}function Q(){return B||(B=C()),B.getInitialState()}function w(e,I=!1){function g(A){let t=A[e];return void 0===t&&I&&(t=dA(s,g,Q)),t}function t(e=a){const g=dA(r,I,()=>new WeakMap);return dA(g,e,()=>{const g={};for(const[t,i]of Object.entries(A.selectors??{}))g[t]=jA(i,e,()=>dA(s,e,Q),I);return g})}return{reducerPath:e,getSelectors:t,get selectors(){return t(g)},selectSlice:g}}const d={name:I,reducer:c,actions:o.actionCreators,caseReducers:o.sliceCaseReducersByName,getInitialState:Q,...w(g),injectInto(A,{reducerPath:e,...I}={}){const t=e??g;return A.inject({reducerPath:t,reducer:c},I),{...d,...w(t,!0)}}};return d}}function jA(A,e,I,g){function t(t,...i){let o=e(t);return void 0===o&&g&&(o=I()),A(o,...i)}return t.unwrapped=A,t}var TA=OA();function zA(){}var XA="listener",VA="completed",WA="cancelled",ZA=`task-${WA}`,_A=`task-${VA}`,$A=`${XA}-${WA}`,Ae=`${XA}-${VA}`,ee=class{constructor(A){this.code=A,this.message=`task ${WA} (reason: ${A})`}name="TaskAbortError";message},Ie=(A,e)=>{if("function"!=typeof A)throw new TypeError(Se(32))},ge=()=>{},te=(A,e=ge)=>(A.catch(e),A),ie=(A,e)=>(A.addEventListener("abort",e,{once:!0}),()=>A.removeEventListener("abort",e)),oe=(A,e)=>{const I=A.signal;I.aborted||("reason"in I||Object.defineProperty(I,"reason",{enumerable:!0,value:e,configurable:!0,writable:!0}),A.abort(e))},ne=A=>{if(A.aborted){const{reason:e}=A;throw new ee(e)}};function Ce(A,e){let I=ge;return new Promise((g,t)=>{const i=()=>t(new ee(A.reason));A.aborted?i():(I=ie(A,i),e.finally(()=>I()).then(g,t))}).finally(()=>{I=ge})}var ae=A=>e=>te(Ce(A,e).then(e=>(ne(A),e))),re=A=>{const e=ae(A);return A=>e(new Promise(e=>setTimeout(e,A)))},{assign:se}=Object,Be={},ce="listenerMiddleware",Qe=(A,e)=>(I,g)=>{Ie(I);const t=new AbortController;var i;i=t,ie(A,()=>oe(i,A.reason));const o=(async(A,e)=>{try{return await Promise.resolve(),{status:"ok",value:await A()}}catch(A){return{status:A instanceof ee?"cancelled":"rejected",error:A}}finally{e?.()}})(async()=>{ne(A),ne(t.signal);const e=await I({pause:ae(t.signal),delay:re(t.signal),signal:t.signal});return ne(t.signal),e},()=>oe(t,_A));return g?.autoJoin&&e.push(o.catch(ge)),{result:ae(A)(o),cancel(){oe(t,ZA)}}},Ee=(A,e)=>(I,g)=>te((async(I,g)=>{ne(e);let t=()=>{};const i=[new Promise((e,g)=>{let i=A({predicate:I,effect:(A,I)=>{I.unsubscribe(),e([A,I.getState(),I.getOriginalState()])}});t=()=>{i(),g()}})];null!=g&&i.push(new Promise(A=>setTimeout(A,g,null)));try{const A=await Ce(e,Promise.race(i));return ne(e),A}finally{t()}})(I,g)),le=A=>{let{type:e,actionCreator:I,matcher:g,predicate:t,effect:i}=A;if(e)t=EA(e).match;else if(I)e=I.type,t=I.match;else if(g)t=g;else if(!t)throw new Error(Se(21));return Ie(i),{predicate:t,type:e,effect:i}},we=se(A=>{const{type:e,predicate:I,effect:g}=le(A);return{id:GA(),effect:g,type:e,predicate:I,pending:new Set,unsubscribe:()=>{throw new Error(Se(22))}}},{withTypes:()=>we}),de=(A,e)=>{const{type:I,effect:g,predicate:t}=le(e);return Array.from(A.values()).find(A=>("string"==typeof I?A.type===I:A.predicate===t)&&A.effect===g)},he=A=>{A.pending.forEach(A=>{oe(A,$A)})},fe=(A,e,I)=>{try{A(e,I)}catch(A){setTimeout(()=>{throw A},0)}},ue=se(EA(`${ce}/add`),{withTypes:()=>ue}),ye=EA(`${ce}/removeAll`),De=se(EA(`${ce}/remove`),{withTypes:()=>De}),pe=(...A)=>{console.error(`${ce}/error`,...A)},me=(A={})=>{const e=new Map,{extra:I,onError:g=pe}=A;Ie(g);const t=A=>(A=>(A.unsubscribe=()=>e.delete(A.id),e.set(A.id,A),e=>{A.unsubscribe(),e?.cancelActive&&he(A)}))(de(e,A)??we(A));se(t,{withTypes:()=>t});const i=A=>{const I=de(e,A);return I&&(I.unsubscribe(),A.cancelActive&&he(I)),!!I};se(i,{withTypes:()=>i});const o=async(A,i,o,n)=>{const C=new AbortController,a=Ee(t,C.signal),r=[];try{A.pending.add(C),await Promise.resolve(A.effect(i,se({},o,{getOriginalState:n,condition:(A,e)=>a(A,e).then(Boolean),take:a,delay:re(C.signal),pause:ae(C.signal),extra:I,signal:C.signal,fork:Qe(C.signal,r),unsubscribe:A.unsubscribe,subscribe:()=>{e.set(A.id,A)},cancelActiveListeners:()=>{A.pending.forEach((A,e,I)=>{A!==C&&(oe(A,$A),I.delete(A))})},cancel:()=>{oe(C,$A),A.pending.delete(C)},throwIfCancelled:()=>{ne(C.signal)}})))}catch(A){A instanceof ee||fe(g,A,{raisedBy:"effect"})}finally{await Promise.all(r),oe(C,Ae),A.pending.delete(C)}},n=(A=>()=>{A.forEach(he),A.clear()})(e);return{middleware:A=>I=>C=>{if(!a(C))return I(C);if(ue.match(C))return t(C.payload);if(ye.match(C))return void n();if(De.match(C))return i(C.payload);let r=A.getState();const s=()=>{if(r===Be)throw new Error(Se(23));return r};let B;try{if(B=I(C),e.size>0){const I=A.getState(),t=Array.from(e.values());for(const e of t){let t=!1;try{t=e.predicate(C,I,r)}catch(A){t=!1,fe(g,A,{raisedBy:"predicate"})}t&&o(e,C,A,s)}}}finally{r=Be}return B},startListening:t,stopListening:i,clearListeners:n}};function Se(A){return`Minified Redux Toolkit error #${A}; visit https://redux-toolkit.js.org/Errors?code=${A} for the full message or use the non-minified dev environment for full errors. `}const ke=TA({name:"commonState",initialState:{currentRoomUrl:""},reducers:{setCurrentRoomUrl:(A,e)=>{A.currentRoomUrl=e.payload}}}),{setCurrentRoomUrl:Me}=ke.actions;var Ke=ke.reducer;const Fe={peerId:localStorage.getItem("peerId")??"",challengeId:localStorage.getItem("challengeId")??"",publicKey:localStorage.getItem("publicKey")??"",secretKey:localStorage.getItem("secretKey")??"",challenge:localStorage.getItem("challenge")??"",signature:localStorage.getItem("signature")??""},He=TA({name:"keyPair",initialState:Fe,reducers:{setKeyPair:(A,e)=>{const{publicKey:I,secretKey:g}=e.payload;64===I.length&&128===g.length&&(A.publicKey=e.payload.publicKey,A.secretKey=e.payload.secretKey)},setReconnectData:(e,I)=>{const{peerId:g,challenge:t,signature:i,challengeId:o}=I.payload;A.isUUID(g,4)&&A.isUUID(o)&&A.isHexadecimal(t)&&A.isHexadecimal(i)&&64===t.length&&128===i.length&&(e.peerId=g,e.challenge=t,e.signature=i,e.challengeId=o)},setPeerData:(e,I)=>{const{peerId:g,challenge:t,signature:i}=I.payload;A.isUUID(g,4)&&A.isHexadecimal(t)&&A.isHexadecimal(i)&&64===t.length&&128===i.length&&(e.peerId=g,e.challenge=t,e.signature=i)},setChallengeId:(e,I)=>{const{challengeId:g}=I.payload;A.isUUID(g)&&(e.challengeId=g)},resetIdentity:(A,e)=>({peerId:"",challengeId:"",publicKey:"",secretKey:"",challenge:"",signature:""})}}),{setKeyPair:Ne,setReconnectData:Ye,setPeerData:Ge,setChallengeId:Ue,resetIdentity:be}=He.actions;var Pe=He.reducer;const ve=64*Uint8Array.BYTES_PER_ELEMENT,Je=64*Uint8Array.BYTES_PER_ELEMENT,Le=32*Uint8Array.BYTES_PER_ELEMENT,Re=32*Uint8Array.BYTES_PER_ELEMENT,xe=64*Uint8Array.BYTES_PER_ELEMENT,qe=16*Uint8Array.BYTES_PER_ELEMENT,Oe=32*Uint8Array.BYTES_PER_ELEMENT,je=32*Uint8Array.BYTES_PER_ELEMENT,Te=12*Uint8Array.BYTES_PER_ELEMENT,ze=12*Uint8Array.BYTES_PER_ELEMENT,Xe=16*Uint8Array.BYTES_PER_ELEMENT,Ve=A=>ze+A+qe,We=A=>A-ze-qe,Ze={iceServers:[{urls:["stun:stun.p2party.com:3478"]}],iceTransportPolicy:"all"},_e=TA({name:"rooms",initialState:[],reducers:{setRoom:(e,I)=>{const{url:g,id:t,canBeConnectionRelay:i,rtcConfig:o,onlyConnectWithKnownPeers:n}=I.payload;if(64===g.length&&A.isUUID(t)){const A=e.findIndex(A=>A.url===g||A.id===t);A>-1?(e[A].url=g,e[A].id=t,null!=i&&(e[A].canBeConnectionRelay=i),o&&(e[A].rtcConfig=o),e[A].onlyConnectWithKnownAddresses=null!=n?n:"true"===localStorage.getItem(g+"-onlyConnectWithKnownPeers")):e.push({url:g,id:t,connectingToPeers:!1,connectedToPeers:!1,canBeConnectionRelay:null==i||i,onlyConnectWithKnownAddresses:null!=n?n:"true"===localStorage.getItem(g+"-onlyConnectWithKnownPeers"),rtcConfig:o??Ze,peers:[],channels:[],messages:[]})}else if(64===g.length){const A=e.findIndex(A=>A.url===g);A>-1?(e[A].url=g,e[A].id="",null!=i&&(e[A].canBeConnectionRelay=i),o&&(e[A].rtcConfig=o),e[A].onlyConnectWithKnownAddresses=null!=n?n:"true"===localStorage.getItem(g+"-onlyConnectWithKnownPeers")):e.push({url:g,id:"",connectingToPeers:!1,connectedToPeers:!1,canBeConnectionRelay:null==i||i,onlyConnectWithKnownAddresses:null!=n?n:"true"===localStorage.getItem(g+"-onlyConnectWithKnownPeers"),rtcConfig:o??Ze,peers:[],channels:[],messages:[]})}},setConnectingToPeers:(A,e)=>{const{roomId:I,connectingToPeers:g}=e.payload,t=A.findIndex(A=>A.id===I);t>-1&&(A[t].connectingToPeers=g)},setConnectedToPeers:(A,e)=>{const{roomId:I,connectedToPeers:g}=e.payload,t=A.findIndex(A=>A.id===I);t>-1&&(A[t].connectingToPeers=!1,A[t].connectedToPeers=g)},setConnectionRelay:(A,e)=>{const{roomId:I,canBeConnectionRelay:g}=e.payload,t=A.findIndex(A=>A.id===I);t>-1&&(A[t].canBeConnectionRelay=g)},setPeer:(A,e)=>{const{roomId:I,peerId:g,peerPublicKey:t}=e.payload,i=A.findIndex(A=>A.id===I);if(i>-1){-1===A[i].peers.findIndex(A=>A.peerId===g)&&A[i].peers.push({peerId:g,peerPublicKey:t})}},deletePeer:(A,e)=>{const I=A.length;for(let g=0;g<I;g++){const I=A[g].peers.findIndex(A=>A.peerId===e.payload.peerId);I>-1&&A[g].peers.splice(I,1)}},setChannel:(A,e)=>{const{roomId:I,label:g,peerId:t}=e.payload,i=A.findIndex(A=>A.id===I);if(i>-1){const e=A[i].channels.findIndex(A=>A.label===g);if(e>-1){-1===A[i].channels[e].peerIds.findIndex(A=>A===t)&&A[i].channels[e].peerIds.push(t)}else A[i].channels.push({label:g,peerIds:[t]})}},deleteChannel:(A,e)=>{const{peerId:I,label:g}=e.payload,t=A.length;for(let e=0;e<t;e++)if(g&&!I){const I=A[e].channels.findIndex(A=>A.label===g);I>-1&&A[e].channels.splice(I,1)}else if(!g&&I){const g=A[e].channels.length;for(let t=0;t<g;t++){const g=A[e].channels[e].peerIds.findIndex(A=>A===I);g>-1&&(A[e].channels[t].peerIds.splice(g,1),0===A[e].channels[t].peerIds.length&&A[e].channels.splice(t,1))}}else if(I&&g){const t=A[e].channels.findIndex(A=>A.label===g&&A.peerIds.includes(I));if(t>-1){const g=A[e].channels[t].peerIds.findIndex(A=>A===I);A[e].channels[t].peerIds.splice(g,1),0===A[e].channels[t].peerIds.length&&A[e].channels.splice(t,1)}}},setIceServers:(A,e)=>{const{roomId:I,iceServers:g}=e.payload,t=A.findIndex(A=>A.id===I);if(t>-1){const e=g.length,I=A[t].rtcConfig.iceServers?.flatMap(A=>Array.isArray(A.urls)?A.urls:[A.urls])??[];for(let i=0;i<e;i++){const e=g[i].urls.length;let o=!1;for(let A=0;A<e;A++)if(!I.includes(g[i].urls[A])){o=!0;break}o&&A[t].rtcConfig.iceServers?.push(g[i])}}},setMessage:(e,I)=>{const{roomId:g,merkleRootHex:t,sha512Hex:i,filename:o,channelLabel:n,fromPeerId:C,messageType:a,chunkSize:r,totalSize:s,chunksCreated:B,totalChunks:c,timestamp:Q}=I.payload,E=e.findIndex(A=>A.id===g);if(E>-1){const I=e[E].messages.findLastIndex(A=>A.merkleRootHex===t||A.sha512Hex===i);-1===I?n&&C&&A.isUUID(C)&&a&&s&&e[E].messages.push({merkleRootHex:t,sha512Hex:i,channelLabel:n,filename:o??"txt",messageType:a,fromPeerId:C,timestamp:Q??Date.now(),savedSize:r>0?r:0,totalSize:s,chunksCreated:B??0,totalChunks:c??0}):e[E].messages[I].timestamp!==Q&&e[E].messages[I].sha512Hex===i&&e[E].messages[I].savedSize===e[E].messages[I].totalSize?e[E].messages.push({merkleRootHex:t,sha512Hex:i,channelLabel:n,filename:o??"txt",messageType:a,fromPeerId:C,timestamp:Q??Date.now(),savedSize:r??0,totalSize:s,chunksCreated:B??0,totalChunks:c??0}):(t.length===2*ve&&""===e[E].messages[I].merkleRootHex&&(e[E].messages[I].merkleRootHex=t),s>0&&e[E].messages[I].totalSize<s&&(e[E].messages[I].totalSize=s),r>0&&e[E].messages[I].totalSize>=e[E].messages[I].savedSize+r&&(e[E].messages[I].savedSize+=r),B&&B<=e[E].messages[I].totalChunks&&(e[E].messages[I].chunksCreated=B+1))}},setMessageAllChunks:(e,I)=>{const{roomId:g,merkleRootHex:t,sha512Hex:i,channelLabel:o,filename:n,messageType:C,fromPeerId:a,timestamp:r,totalSize:s}=I.payload,B=e.findIndex(A=>A.id===g);if(B>-1){const I=e[B].messages.findLastIndex(A=>A.merkleRootHex===t||A.sha512Hex===i);-1===I&&o&&a&&A.isUUID(a)&&C&&s||I>-1&&e[B].messages[I].timestamp<r?e[B].messages.push({merkleRootHex:t,sha512Hex:i,channelLabel:o,filename:n??"txt",messageType:C,fromPeerId:a,timestamp:r,savedSize:s,totalSize:s,chunksCreated:0,totalChunks:0}):I>-1&&e[B].messages[I].savedSize!==s&&(e[B].messages[I].savedSize=s)}},deleteMessage:(A,e)=>{const{merkleRootHex:I,hashHex:g}=e.payload;if(!I&&!g)return;if(I&&I.length!==2*ve)return;if(g&&g.length!==2*ve)return;const t=A.length;for(let e=0;e<t;e++)if(I){const g=A[e].messages.findIndex(A=>A.merkleRootHex===I);g>-1&&A[e].messages.splice(g,1)}else if(g){const I=A[e].messages.findLastIndex(A=>A.sha512Hex===g);I>-1&&A[e].messages.splice(I,1)}},setOnlyConnectWithKnownPeers:(A,e)=>{const{roomId:I,onlyConnectWithKnownPeers:g}=e.payload,t=A.findIndex(A=>A.id===I);t>-1&&(A[t].onlyConnectWithKnownAddresses=g)},deleteRoom:(A,e)=>{const I=A.findIndex(A=>A.url===e.payload||A.id===e.payload);if(I>-1){const e=A[I].url;A[I]={url:e,id:"",connectingToPeers:!1,connectedToPeers:!1,canBeConnectionRelay:!0,onlyConnectWithKnownAddresses:!1,rtcConfig:Ze,peers:[],channels:[],messages:[]}}}}}),{setRoom:$e,setConnectingToPeers:AI,setConnectedToPeers:eI,setConnectionRelay:II,setOnlyConnectWithKnownPeers:gI,setPeer:tI,setChannel:iI,setIceServers:oI,setMessage:nI,setMessageAllChunks:CI,deletePeer:aI,deleteChannel:rI,deleteMessage:sI,deleteRoom:BI}=_e.actions;var cI=_e.reducer;const QI="wss://signaling.p2party.com/ws",EI=TA({name:"signalingServer",initialState:{isEstablishingConnection:!1,isConnected:!1,serverUrl:QI},reducers:{startConnecting:(A,e)=>{A.isEstablishingConnection=!0,A.serverUrl=e.payload??QI},connectionEstablished:A=>{A.isConnected=!0,A.isEstablishingConnection=!1},disconnect:A=>{A.isConnected=!1,A.isEstablishingConnection=!1}}}),lI=EI.actions;var wI=EI.reducer,dI=class extends Error{issues;constructor(A){super(A[0].message),this.name="SchemaError",this.issues=A}};function hI(A){return{status:A,isUninitialized:"uninitialized"===A,isLoading:"pending"===A,isSuccess:"fulfilled"===A,isError:"rejected"===A}}var fI=i;function uI(A,e){if(A===e||!(fI(A)&&fI(e)||Array.isArray(A)&&Array.isArray(e)))return e;const I=Object.keys(e),g=Object.keys(A);let t=I.length===g.length;const i=Array.isArray(e)?[]:{};for(const g of I)i[g]=uI(A[g],e[g]),t&&(t=A[g]===i[g]);return t?A:i}function yI(A){let e=0;for(const I in A)e++;return e}var DI=A=>[].concat(...A);function pI(A){return null!=A}var mI=class{constructor(A,e=void 0){this.value=A,this.meta=e}},SI=EA("__rtkq/focused"),kI=EA("__rtkq/unfocused"),MI=EA("__rtkq/online"),KI=EA("__rtkq/offline");function FI(A){return"query"===A.type}function HI(A){return"infinitequery"===A.type}function NI(A){return FI(A)||HI(A)}function YI(A,e,I,g,t,i){return"function"==typeof A?A(e,I,g,t).filter(pI).map(GI).map(i):Array.isArray(A)?A.map(GI).map(i):[]}function GI(A){return"string"==typeof A?{type:A}:A}var UI=Symbol("forceQueryFn"),bI=A=>"function"==typeof A[UI];var PI=class extends dI{constructor(A,e,I,g){super(A),this.value=e,this.schemaName=I,this._bqMeta=g}};async function vI(A,e,I,g){const t=await A["~standard"].validate(e);if(t.issues)throw new PI(t.issues,e,I,g);return t.value}function JI(A){return A}var LI=(A={})=>({...A,[hA]:!0});function RI(A,{pages:e,pageParams:I},g){const t=e.length-1;return A.getNextPageParam(e[t],e,I[t],I,g)}function xI(A,{pages:e,pageParams:I},g){return A.getPreviousPageParam?.(e[0],e,I[0],I,g)}function qI(A,e,I,g){return YI(I[A.meta.arg.endpointName][e],NA(A)?A.payload:void 0,HA(A)?A.payload:void 0,A.meta.arg.originalArgs,"baseQueryMeta"in A.meta?A.meta.baseQueryMeta:void 0,g)}function OI(A,e,I){const g=A[e];g&&I(g)}function jI(A){return("arg"in A?A.arg.fixedCacheKey:A.fixedCacheKey)??A.requestId}function TI(A,e,I){const g=A[jI(e)];g&&I(g)}var zI={};function XI({reducerPath:A,queryThunk:e,mutationThunk:I,serializeQueryArgs:g,context:{endpointDefinitions:t,apiUid:i,extractRehydrationInfo:o,hasRehydrationInfo:C},assertTagType:a,config:r}){const s=EA(`${A}/resetApiState`);function Q(A,e,I,g){A[e.queryCacheKey]??={status:"uninitialized",endpointName:e.endpointName},OI(A,e.queryCacheKey,A=>{A.status="pending",A.requestId=I&&A.requestId?A.requestId:g.requestId,void 0!==e.originalArgs&&(A.originalArgs=e.originalArgs),A.startedTimeStamp=g.startedTimeStamp;HI(t[g.arg.endpointName])&&"direction"in e&&(A.direction=e.direction)})}function l(A,e,I,g){OI(A,e.arg.queryCacheKey,A=>{if(A.requestId!==e.requestId&&!g)return;const{merge:i}=t[e.arg.endpointName];if(A.status="fulfilled",i)if(void 0!==A.data){const{fulfilledTimeStamp:g,arg:t,baseQueryMeta:o,requestId:n}=e;let C=AA(A.data,A=>i(A,I,{arg:t.originalArgs,baseQueryMeta:o,fulfilledTimeStamp:g,requestId:n}));A.data=C}else A.data=I;else A.data=t[e.arg.endpointName].structuralSharing??1?uI(E(A.data)?(E(o=A.data)||c(15),o[B].base_):A.data,I):I;var o;delete A.error,A.fulfilledTimeStamp=e.fulfilledTimeStamp})}const w=TA({name:`${A}/queries`,initialState:zI,reducers:{removeQueryResult:{reducer(A,{payload:{queryCacheKey:e}}){delete A[e]},prepare:fA()},cacheEntriesUpserted:{reducer(A,e){for(const I of e.payload){const{queryDescription:g,value:t}=I;Q(A,g,!0,{arg:g,requestId:e.meta.requestId,startedTimeStamp:e.meta.timestamp}),l(A,{arg:g,requestId:e.meta.requestId,fulfilledTimeStamp:e.meta.timestamp,baseQueryMeta:{}},t,!0)}},prepare:A=>({payload:A.map(A=>{const{endpointName:e,arg:I,value:i}=A,o=t[e];return{queryDescription:{type:"query",endpointName:e,originalArgs:A.arg,queryCacheKey:g({queryArgs:I,endpointDefinition:o,endpointName:e})},value:i}}),meta:{[hA]:!0,requestId:GA(),timestamp:Date.now()}})},queryResultPatched:{reducer(A,{payload:{queryCacheKey:e,patches:I}}){OI(A,e,A=>{A.data=IA(A.data,I.concat())})},prepare:fA()}},extraReducers(A){A.addCase(e.pending,(A,{meta:e,meta:{arg:I}})=>{Q(A,I,bI(I),e)}).addCase(e.fulfilled,(A,{meta:e,payload:I})=>{l(A,e,I,bI(e.arg))}).addCase(e.rejected,(A,{meta:{condition:e,arg:I,requestId:g},error:t,payload:i})=>{OI(A,I.queryCacheKey,A=>{if(e);else{if(A.requestId!==g)return;A.status="rejected",A.error=i??t}})}).addMatcher(C,(A,e)=>{const{queries:I}=o(e);for(const[e,g]of Object.entries(I))"fulfilled"!==g?.status&&"rejected"!==g?.status||(A[e]=g)})}}),d=TA({name:`${A}/mutations`,initialState:zI,reducers:{removeMutationResult:{reducer(A,{payload:e}){const I=jI(e);I in A&&delete A[I]},prepare:fA()}},extraReducers(A){A.addCase(I.pending,(A,{meta:e,meta:{requestId:I,arg:g,startedTimeStamp:t}})=>{g.track&&(A[jI(e)]={requestId:I,status:"pending",endpointName:g.endpointName,startedTimeStamp:t})}).addCase(I.fulfilled,(A,{payload:e,meta:I})=>{I.arg.track&&TI(A,I,A=>{A.requestId===I.requestId&&(A.status="fulfilled",A.data=e,A.fulfilledTimeStamp=I.fulfilledTimeStamp)})}).addCase(I.rejected,(A,{payload:e,error:I,meta:g})=>{g.arg.track&&TI(A,g,A=>{A.requestId===g.requestId&&(A.status="rejected",A.error=e??I)})}).addMatcher(C,(A,e)=>{const{mutations:I}=o(e);for(const[e,g]of Object.entries(I))"fulfilled"!==g?.status&&"rejected"!==g?.status||e===g?.requestId||(A[e]=g)})}}),h=TA({name:`${A}/invalidation`,initialState:{tags:{},keys:{}},reducers:{updateProvidedBy:{reducer(A,e){for(const{queryCacheKey:I,providedTags:g}of e.payload){f(A,I);for(const{type:e,id:t}of g){const g=(A.tags[e]??={})[t||"__internal_without_id"]??=[];g.includes(I)||g.push(I)}A.keys[I]=g}},prepare:fA()}},extraReducers(A){A.addCase(w.actions.removeQueryResult,(A,{payload:{queryCacheKey:e}})=>{f(A,e)}).addMatcher(C,(A,e)=>{const{provided:I}=o(e);for(const[e,g]of Object.entries(I))for(const[I,t]of Object.entries(g)){const g=(A.tags[e]??={})[I||"__internal_without_id"]??=[];for(const A of t){g.includes(A)||g.push(A)}}}).addMatcher(mA(NA(e),HA(e)),(A,e)=>{u(A,[e])}).addMatcher(w.actions.cacheEntriesUpserted.match,(A,e)=>{u(A,e.payload.map(({queryDescription:A,value:e})=>({type:"UNKNOWN",payload:e,meta:{requestStatus:"fulfilled",requestId:"UNKNOWN",arg:A}})))})}});function f(A,e){const I=A.keys[e]??[];for(const g of I){const I=g.type,t=g.id??"__internal_without_id",i=A.tags[I]?.[t];i&&(A.tags[I][t]=i.filter(A=>A!==e))}delete A.keys[e]}function u(A,e){const I=e.map(A=>{const e=qI(A,"providesTags",t,a),{queryCacheKey:I}=A.meta.arg;return{queryCacheKey:I,providedTags:e}});h.caseReducers.updateProvidedBy(A,h.actions.updateProvidedBy(I))}const y=TA({name:`${A}/subscriptions`,initialState:zI,reducers:{updateSubscriptionOptions(A,e){},unsubscribeQueryResult(A,e){},internal_getRTKQSubscriptions(){}}}),D=TA({name:`${A}/internalSubscriptions`,initialState:zI,reducers:{subscriptionsUpdated:{reducer:(A,e)=>IA(A,e.payload),prepare:fA()}}}),p=TA({name:`${A}/config`,initialState:{online:"undefined"==typeof navigator||void 0===navigator.onLine||navigator.onLine,focused:"undefined"==typeof document||"hidden"!==document.visibilityState,middlewareRegistered:!1,...r},reducers:{middlewareRegistered(A,{payload:e}){A.middlewareRegistered="conflict"!==A.middlewareRegistered&&i===e||"conflict"}},extraReducers:A=>{A.addCase(MI,A=>{A.online=!0}).addCase(KI,A=>{A.online=!1}).addCase(SI,A=>{A.focused=!0}).addCase(kI,A=>{A.focused=!1}).addMatcher(C,A=>({...A}))}}),m=n({queries:w.reducer,mutations:d.reducer,provided:h.reducer,subscriptions:D.reducer,config:p.reducer});return{reducer:(A,e)=>m(s.match(e)?void 0:A,e),actions:{...p.actions,...w.actions,...y.actions,...D.actions,...d.actions,...h.actions,resetApiState:s}}}var VI=Symbol.for("RTKQ/skipToken"),WI={status:"uninitialized"},ZI=AA(WI,()=>{}),_I=AA(WI,()=>{});var $I=WeakMap?new WeakMap:void 0,Ag=({endpointName:A,queryArgs:e})=>{let I="";const g=$I?.get(e);if("string"==typeof g)I=g;else{const A=JSON.stringify(e,(A,e)=>e=i(e="bigint"==typeof e?{$bigint:e.toString()}:e)?Object.keys(e).sort().reduce((A,I)=>(A[I]=e[I],A),{}):e);i(e)&&$I?.set(e,A),I=A}return`${A}(${I})`};function eg(...A){return function(e){const I=nA(A=>e.extractRehydrationInfo?.(A,{reducerPath:e.reducerPath??"api"})),g={reducerPath:"api",keepUnusedDataFor:60,refetchOnMountOrArgChange:!1,refetchOnFocus:!1,refetchOnReconnect:!1,invalidationBehavior:"delayed",...e,extractRehydrationInfo:I,serializeQueryArgs(A){let I=Ag;if("serializeQueryArgs"in A.endpointDefinition){const e=A.endpointDefinition.serializeQueryArgs;I=A=>{const I=e(A);return"string"==typeof I?I:Ag({...A,queryArgs:I})}}else e.serializeQueryArgs&&(I=e.serializeQueryArgs);return I(A)},tagTypes:[...e.tagTypes||[]]},t={endpointDefinitions:{},batch(A){A()},apiUid:GA(),extractRehydrationInfo:I,hasRehydrationInfo:nA(A=>null!=I(A))},i={injectEndpoints:function(A){const e=A.endpoints({query:A=>({...A,type:"query"}),mutation:A=>({...A,type:"mutation"}),infiniteQuery:A=>({...A,type:"infinitequery"})});for(const[I,g]of Object.entries(e))if(!0!==A.overrideExisting&&I in t.endpointDefinitions){if("throw"===A.overrideExisting)throw new Error(Se(39))}else{t.endpointDefinitions[I]=g;for(const A of o)A.injectEndpoint(I,g)}return i},enhanceEndpoints({addTagTypes:A,endpoints:e}){if(A)for(const e of A)g.tagTypes.includes(e)||g.tagTypes.push(e);if(e)for(const[A,I]of Object.entries(e))"function"==typeof I?I(t.endpointDefinitions[A]):Object.assign(t.endpointDefinitions[A]||{},I);return i}},o=A.map(A=>A.init(i,g,t));return i.injectEndpoints({endpoints:e.endpoints})}}function Ig(A,...e){return Object.assign(A,...e)}var gg=({api:A,queryThunk:e,internalState:I})=>{const g=`${A.reducerPath}/subscriptions`;let t=null,i=null;const{updateSubscriptionOptions:o,unsubscribeQueryResult:n}=A.internalActions,C=()=>I.currentSubscriptions,a={getSubscriptions:C,getSubscriptionCount:A=>yI(C()[A]??{}),isRequestSubscribed:(A,e)=>{const I=C();return!!I?.[A]?.[e]}};return(C,r)=>{if(t||(t=JSON.parse(JSON.stringify(I.currentSubscriptions))),A.util.resetApiState.match(C))return t=I.currentSubscriptions={},i=null,[!0,!1];if(A.internalActions.internal_getRTKQSubscriptions.match(C))return[!1,a];const s=((I,g)=>{if(o.match(g)){const{queryCacheKey:A,requestId:e,options:t}=g.payload;return I?.[A]?.[e]&&(I[A][e]=t),!0}if(n.match(g)){const{queryCacheKey:A,requestId:e}=g.payload;return I[A]&&delete I[A][e],!0}if(A.internalActions.removeQueryResult.match(g))return delete I[g.payload.queryCacheKey],!0;if(e.pending.match(g)){const{meta:{arg:A,requestId:e}}=g,t=I[A.queryCacheKey]??={};return t[`${e}_running`]={},A.subscribe&&(t[e]=A.subscriptionOptions??t[e]??{}),!0}let t=!1;if(e.fulfilled.match(g)||e.rejected.match(g)){const A=I[g.meta.arg.queryCacheKey]||{},e=`${g.meta.requestId}_running`;t||=!!A[e],delete A[e]}if(e.rejected.match(g)){const{meta:{condition:A,arg:e,requestId:i}}=g;if(A&&e.subscribe){const A=I[e.queryCacheKey]??={};A[i]=e.subscriptionOptions??A[i]??{},t=!0}}return t})(I.currentSubscriptions,C);let B=!0;if(s){i||(i=setTimeout(()=>{const e=JSON.parse(JSON.stringify(I.currentSubscriptions)),[,g]=eA(t,()=>e);r.next(A.internalActions.subscriptionsUpdated(g)),t=e,i=null},500));const o="string"==typeof C.type&&!!C.type.startsWith(g),n=e.rejected.match(C)&&C.meta.condition&&!!C.meta.arg.subscribe;B=!o&&!n}return[B,!1]}};var tg=({reducerPath:A,api:e,queryThunk:I,context:g,internalState:t,selectors:{selectQueryEntry:i,selectConfig:o}})=>{const{removeQueryResult:n,unsubscribeQueryResult:C,cacheEntriesUpserted:a}=e.internalActions,r=mA(C.match,I.fulfilled,I.rejected,a.match);function s(A){const e=t.currentSubscriptions[A];return!!e&&!function(A){for(const e in A)return!1;return!0}(e)}const B={};function c(A,e,I){const g=e.getState();for(const t of A){const A=i(g,t);Q(t,A?.endpointName,e,I)}}function Q(A,e,I,t){const i=g.endpointDefinitions[e],o=i?.keepUnusedDataFor??t.keepUnusedDataFor;if(o===1/0)return;const C=Math.max(0,Math.min(o,2147482.647));if(!s(A)){const e=B[A];e&&clearTimeout(e),B[A]=setTimeout(()=>{s(A)||I.dispatch(n({queryCacheKey:A})),delete B[A]},1e3*C)}}return(A,I,t)=>{const i=I.getState(),n=o(i);if(r(A)){let e;if(a.match(A))e=A.payload.map(A=>A.queryDescription.queryCacheKey);else{const{queryCacheKey:I}=C.match(A)?A.payload:A.meta.arg;e=[I]}c(e,I,n)}if(e.util.resetApiState.match(A))for(const[A,e]of Object.entries(B))e&&clearTimeout(e),delete B[A];if(g.hasRehydrationInfo(A)){const{queries:e}=g.extractRehydrationInfo(A);c(Object.keys(e),I,n)}}},ig=new Error("Promise never resolved before cacheEntryRemoved."),og=({api:A,reducerPath:e,context:I,queryThunk:g,mutationThunk:t,internalState:i,selectors:{selectQueryEntry:o,selectApiState:n}})=>{const C=YA(g),a=YA(t),r=NA(g,t),s={};function B(A,e,I){const g=s[A];g?.valueResolved&&(g.valueResolved({data:e,meta:I}),delete g.valueResolved)}function c(A){const e=s[A];e&&(delete s[A],e.cacheEntryRemoved())}function Q(e,g,t,i,o){const n=I.endpointDefinitions[e],C=n?.onCacheEntryAdded;if(!C)return;const a={},r=new Promise(A=>{a.cacheEntryRemoved=A}),B=Promise.race([new Promise(A=>{a.valueResolved=A}),r.then(()=>{throw ig})]);B.catch(()=>{}),s[t]=a;const c=A.endpoints[e].select(NI(n)?g:t),Q=i.dispatch((A,e,I)=>I),E={...i,getCacheEntry:()=>c(i.getState()),requestId:o,extra:Q,updateCachedData:NI(n)?I=>i.dispatch(A.util.updateQueryData(e,g,I)):void 0,cacheDataLoaded:B,cacheEntryRemoved:r},l=C(g,E);Promise.resolve(l).catch(A=>{if(A!==ig)throw A})}return(I,i,n)=>{const E=function(e){if(C(e))return e.meta.arg.queryCacheKey;if(a(e))return e.meta.arg.fixedCacheKey??e.meta.requestId;return A.internalActions.removeQueryResult.match(e)?e.payload.queryCacheKey:A.internalActions.removeMutationResult.match(e)?jI(e.payload):""}(I);function l(A,e,I,g){const t=o(n,e),C=o(i.getState(),e);!t&&C&&Q(A,g,e,i,I)}if(g.pending.match(I))l(I.meta.arg.endpointName,E,I.meta.requestId,I.meta.arg.originalArgs);else if(A.internalActions.cacheEntriesUpserted.match(I))for(const{queryDescription:A,value:e}of I.payload){const{endpointName:g,originalArgs:t,queryCacheKey:i}=A;l(g,i,I.meta.requestId,t),B(i,e,{})}else if(t.pending.match(I)){i.getState()[e].mutations[E]&&Q(I.meta.arg.endpointName,I.meta.arg.originalArgs,E,i,I.meta.requestId)}else if(r(I))B(E,I.payload,I.meta.baseQueryMeta);else if(A.internalActions.removeQueryResult.match(I)||A.internalActions.removeMutationResult.match(I))c(E);else if(A.util.resetApiState.match(I))for(const A of Object.keys(s))c(A)}},ng=({api:A,context:{apiUid:e},reducerPath:I})=>(I,g)=>{A.util.resetApiState.match(I)&&g.dispatch(A.internalActions.middlewareRegistered(e))},Cg=({reducerPath:A,context:e,context:{endpointDefinitions:I},mutationThunk:g,queryThunk:t,api:i,assertTagType:o,refetchQuery:n,internalState:C})=>{const{removeQueryResult:a}=i.internalActions,r=mA(NA(g),HA(g)),s=mA(NA(g,t),FA(g,t));let B=[];function c(I,g){const t=g.getState(),o=t[A];if(B.push(...I),"delayed"===o.config.invalidationBehavior&&function(A){const{queries:e,mutations:I}=A;for(const A of[e,I])for(const e in A)if("pending"===A[e]?.status)return!0;return!1}(o))return;const r=B;if(B=[],0===r.length)return;const s=i.util.selectInvalidatedBy(t,r);e.batch(()=>{const A=Array.from(s.values());for(const{queryCacheKey:e}of A){const A=o.queries[e],I=C.currentSubscriptions[e]??{};A&&(0===yI(I)?g.dispatch(a({queryCacheKey:e})):"uninitialized"!==A.status&&g.dispatch(n(A)))}})}return(A,e)=>{r(A)?c(qI(A,"invalidatesTags",I,o),e):s(A)?c([],e):i.util.invalidateTags.match(A)&&c(YI(A.payload,void 0,void 0,void 0,void 0,o),e)}},ag=({reducerPath:A,queryThunk:e,api:I,refetchQuery:g,internalState:t})=>{const i={};function o({queryCacheKey:e},I){const n=I.getState()[A],C=n.queries[e],r=t.currentSubscriptions[e];if(!C||"uninitialized"===C.status)return;const{lowestPollingInterval:s,skipPollingIfUnfocused:B}=a(r);if(!Number.isFinite(s))return;const c=i[e];c?.timeout&&(clearTimeout(c.timeout),c.timeout=void 0);const Q=Date.now()+s;i[e]={nextPollTimestamp:Q,pollingInterval:s,timeout:setTimeout(()=>{!n.config.focused&&B||I.dispatch(g(C)),o({queryCacheKey:e},I)},s)}}function n({queryCacheKey:e},I){const g=I.getState()[A].queries[e],n=t.currentSubscriptions[e];if(!g||"uninitialized"===g.status)return;const{lowestPollingInterval:r}=a(n);if(!Number.isFinite(r))return void C(e);const s=i[e],B=Date.now()+r;(!s||B<s.nextPollTimestamp)&&o({queryCacheKey:e},I)}function C(A){const e=i[A];e?.timeout&&clearTimeout(e.timeout),delete i[A]}function a(A={}){let e=!1,I=Number.POSITIVE_INFINITY;for(let g in A)A[g].pollingInterval&&(I=Math.min(A[g].pollingInterval,I),e=A[g].skipPollingIfUnfocused||e);return{lowestPollingInterval:I,skipPollingIfUnfocused:e}}return(A,g)=>{(I.internalActions.updateSubscriptionOptions.match(A)||I.internalActions.unsubscribeQueryResult.match(A))&&n(A.payload,g),(e.pending.match(A)||e.rejected.match(A)&&A.meta.condition)&&n(A.meta.arg,g),(e.fulfilled.match(A)||e.rejected.match(A)&&!A.meta.condition)&&o(A.meta.arg,g),I.util.resetApiState.match(A)&&function(){for(const A of Object.keys(i))C(A)}()}},rg=({api:A,context:e,queryThunk:I,mutationThunk:g})=>{const t=KA(I,g),i=FA(I,g),o=NA(I,g),n={};return(I,g)=>{if(t(I)){const{requestId:t,arg:{endpointName:i,originalArgs:o}}=I.meta,C=e.endpointDefinitions[i],a=C?.onQueryStarted;if(a){const e={},I=new Promise((A,I)=>{e.resolve=A,e.reject=I});I.catch(()=>{}),n[t]=e;const r=A.endpoints[i].select(NI(C)?o:t),s=g.dispatch((A,e,I)=>I),B={...g,getCacheEntry:()=>r(g.getState()),requestId:t,extra:s,updateCachedData:NI(C)?e=>g.dispatch(A.util.updateQueryData(i,o,e)):void 0,queryFulfilled:I};a(o,B)}}else if(o(I)){const{requestId:A,baseQueryMeta:e}=I.meta;n[A]?.resolve({data:I.payload,meta:e}),delete n[A]}else if(i(I)){const{requestId:A,rejectedWithValue:e,baseQueryMeta:g}=I.meta;n[A]?.reject({error:I.payload??I.error,isUnhandledError:!e,meta:g}),delete n[A]}}};function sg(A){const{reducerPath:e,queryThunk:I,api:g,context:t}=A,{apiUid:i}=t,o={invalidateTags:EA(`${e}/invalidateTags`)},n=A=>A.type.startsWith(`${e}/`),C=[ng,tg,Cg,ag,og,rg];return{middleware:I=>{let o=!1;const s={...A,internalState:{currentSubscriptions:{}},refetchQuery:r,isThisApiSliceAction:n},B=C.map(A=>A(s)),c=gg(s),Q=(({reducerPath:A,context:e,api:I,refetchQuery:g,internalState:t})=>{const{removeQueryResult:i}=I.internalActions;function o(I,o){const n=I.getState()[A],C=n.queries,a=t.currentSubscriptions;e.batch(()=>{for(const A of Object.keys(a)){const e=C[A],t=a[A];t&&e&&((Object.values(t).some(A=>!0===A[o])||Object.values(t).every(A=>void 0===A[o])&&n.config[o])&&(0===yI(t)?I.dispatch(i({queryCacheKey:A})):"uninitialized"!==e.status&&I.dispatch(g(e))))}})}return(A,e)=>{SI.match(A)&&o(e,"refetchOnFocus"),MI.match(A)&&o(e,"refetchOnReconnect")}})(s);return A=>C=>{if(!a(C))return A(C);o||(o=!0,I.dispatch(g.internalActions.middlewareRegistered(i)));const r={...I,next:A},s=I.getState(),[E,l]=c(C,r,s);let w;if(w=E?A(C):l,I.getState()[e]&&(Q(C,r,s),n(C)||t.hasRehydrationInfo(C)))for(const A of B)A(C,r,s);return w}},actions:o};function r(e){return A.api.endpoints[e.endpointName].initiate(e.originalArgs,{subscribe:!1,forceRefetch:!0})}}var Bg=Symbol(),cg=eg((({createSelector:A=aA}={})=>({name:Bg,init(e,{baseQuery:I,tagTypes:g,reducerPath:t,serializeQueryArgs:i,keepUnusedDataFor:o,refetchOnMountOrArgChange:n,refetchOnFocus:C,refetchOnReconnect:a,invalidationBehavior:r,onSchemaFailure:s,catchSchemaFailure:B,skipSchemaValidation:c},Q){_();const E=A=>A;Object.assign(e,{reducerPath:t,endpoints:{},internalActions:{onOnline:MI,onOffline:KI,onFocus:SI,onFocusLost:kI},util:{}});const w=function({serializeQueryArgs:A,reducerPath:e,createSelector:I}){const g=A=>ZI,t=A=>_I;return{buildQuerySelector:function(A,e){return a(A,e,i)},buildInfiniteQuerySelector:function(A,e){const{infiniteQueryOptions:I}=e;return a(A,e,function(A){const e={...A,...hI(A.status)},{isLoading:g,isError:t,direction:i}=e,o="forward"===i,n="backward"===i;return{...e,hasNextPage:r(I,e.data,e.originalArgs),hasPreviousPage:s(I,e.data,e.originalArgs),isFetchingNextPage:g&&o,isFetchingPreviousPage:g&&n,isFetchNextPageError:t&&o,isFetchPreviousPageError:t&&n}})},buildMutationSelector:function(){return A=>{let e;return e="object"==typeof A?jI(A)??VI:A,I(e===VI?t:A=>o(A)?.mutations?.[e]??_I,i)}},selectInvalidatedBy:function(A,I){const g=A[e],t=new Set;for(const A of I.filter(pI).map(GI)){const e=g.provided.tags[A.type];if(!e)continue;let I=(void 0!==A.id?e[A.id]:DI(Object.values(e)))??[];for(const A of I)t.add(A)}return DI(Array.from(t.values()).map(A=>{const e=g.queries[A];return e?[{queryCacheKey:A,endpointName:e.endpointName,originalArgs:e.originalArgs}]:[]}))},selectCachedArgsForQuery:function(A,e){return Object.values(n(A)).filter(A=>A?.endpointName===e&&"uninitialized"!==A.status).map(A=>A.originalArgs)},selectApiState:o,selectQueries:n,selectMutations:function(A){return o(A)?.mutations},selectQueryEntry:C,selectConfig:function(A){return o(A)?.config}};function i(A){return{...A,...hI(A.status)}}function o(A){return A[e]}function n(A){return o(A)?.queries}function C(A,e){return n(A)?.[e]}function a(e,t,i){return o=>{if(o===VI)return I(g,i);const n=A({queryArgs:o,endpointDefinition:t,endpointName:e});return I(A=>C(A,n)??ZI,i)}}function r(A,e,I){return!!e&&null!=RI(A,e,I)}function s(A,e,I){return!(!e||!A.getPreviousPageParam)&&null!=xI(A,e,I)}}({serializeQueryArgs:i,reducerPath:t,createSelector:A}),{selectInvalidatedBy:d,selectCachedArgsForQuery:h,buildQuerySelector:f,buildInfiniteQuerySelector:u,buildMutationSelector:y}=w;Ig(e.util,{selectInvalidatedBy:d,selectCachedArgsForQuery:h});const{queryThunk:D,infiniteQueryThunk:p,mutationThunk:m,patchQueryData:S,updateQueryData:k,upsertQueryData:M,prefetch:K,buildMatchThunkActions:F}=function({reducerPath:A,baseQuery:e,context:{endpointDefinitions:I},serializeQueryArgs:g,api:t,assertTagType:i,selectors:o,onSchemaFailure:n,catchSchemaFailure:C,skipSchemaValidation:a}){function r(A,e,I=0){const g=[e,...A];return I&&g.length>I?g.slice(0,-1):g}function s(A,e,I=0){const g=[...A,e];return I&&g.length>I?g.slice(1):g}const B=(A,e)=>A.query&&A[e]?A[e]:JI,c=async(A,{signal:g,abort:t,rejectWithValue:i,fulfillWithValue:c,dispatch:E,getState:l,extra:w})=>{const d=I[A.endpointName],{metaSchema:h,skipSchemaValidation:f=a}=d;try{let u=B(d,"transformResponse");const y={signal:g,abort:t,dispatch:E,getState:l,extra:w,endpoint:A.endpointName,type:A.type,forced:"query"===A.type?Q(A,l()):void 0,queryCacheKey:"query"===A.type?A.queryCacheKey:void 0},D="query"===A.type?A[UI]:void 0;let p;const m=async(e,I,g,t)=>{if(null==I&&e.pages.length)return Promise.resolve({data:e});const i={queryArg:A.originalArgs,pageParam:I},o=await S(i),n=t?r:s;return{data:{pages:n(e.pages,o.data,g),pageParams:n(e.pageParams,I,g)},meta:o.meta}};async function S(A){let I;const{extraOptions:g,argSchema:t,rawResponseSchema:i,responseSchema:o}=d;if(t&&!f&&(A=await vI(t,A,"argSchema",{})),I=D?D():d.query?await e(d.query(A),y,g):await d.queryFn(A,y,g,A=>e(A,y,g)),I.error)throw new mI(I.error,I.meta);let{data:n}=I;i&&!f&&(n=await vI(i,I.data,"rawResponseSchema",I.meta));let C=await u(n,I.meta,A);return o&&!f&&(C=await vI(o,C,"responseSchema",I.meta)),{...I,data:C}}if("query"===A.type&&"infiniteQueryOptions"in d){const{infiniteQueryOptions:k}=d,{maxPages:M=1/0}=k;let K;const F={pages:[],pageParams:[]},H=o.selectQueryEntry(l(),A.queryCacheKey)?.data,N=Q(A,l())&&!A.direction||!H?F:H;if("direction"in A&&A.direction&&N.pages.length){const Y="backward"===A.direction,G=(Y?xI:RI)(k,N,A.originalArgs);K=await m(N,G,M,Y)}else{const{initialPageParam:U=k.initialPageParam}=A,b=H?.pageParams??[],P=b[0]??U,v=b.length;K=await m(N,P,M),D&&(K={data:K.data.pages[0]});for(let J=1;J<v;J++){const L=RI(k,K.data,A.originalArgs);K=await m(K.data,L,M)}}p=K}else p=await S(A.originalArgs);return h&&!f&&p.meta&&(p.meta=await vI(h,p.meta,"metaSchema",p.meta)),c(p.data,LI({fulfilledTimeStamp:Date.now(),baseQueryMeta:p.meta}))}catch(R){let x=R;if(x instanceof mI){let q=B(d,"transformErrorResponse");const{rawErrorResponseSchema:O,errorResponseSchema:j}=d;let{value:T,meta:z}=x;try{O&&!f&&(T=await vI(O,T,"rawErrorResponseSchema",z)),h&&!f&&(z=await vI(h,z,"metaSchema",z));let X=await q(T,z,A.originalArgs);return j&&!f&&(X=await vI(j,X,"errorResponseSchema",z)),i(X,LI({baseQueryMeta:z}))}catch(V){x=V}}try{if(x instanceof PI){const W={endpoint:A.endpointName,arg:A.originalArgs,type:A.type,queryCacheKey:"query"===A.type?A.queryCacheKey:void 0};d.onSchemaFailure?.(x,W),n?.(x,W);const{catchSchemaFailure:Z=C}=d;if(Z)return i(Z(x,W),LI({baseQueryMeta:x._bqMeta}))}}catch(_){x=_}throw console.error(x),x}};function Q(A,e){const I=o.selectQueryEntry(e,A.queryCacheKey),g=o.selectConfig(e).refetchOnMountOrArgChange,t=I?.fulfilledTimeStamp,i=A.forceRefetch??(A.subscribe&&g);return!!i&&(!0===i||(Number(new Date)-Number(t))/1e3>=i)}const E=()=>LA(`${A}/executeQuery`,c,{getPendingMeta({arg:A}){const e=I[A.endpointName];return LI({startedTimeStamp:Date.now(),...HI(e)?{direction:A.direction}:{}})},condition(A,{getState:e}){const g=e(),t=o.selectQueryEntry(g,A.queryCacheKey),i=t?.fulfilledTimeStamp,n=A.originalArgs,C=t?.originalArgs,a=I[A.endpointName],r=A.direction;return!(!bI(A)&&("pending"===t?.status||!Q(A,g)&&(!FI(a)||!a?.forceRefetch?.({currentArg:n,previousArg:C,endpointState:t,state:g}))&&i&&!r))},dispatchConditionRejection:!0}),w=E(),d=E(),h=LA(`${A}/executeMutation`,c,{getPendingMeta:()=>LI({startedTimeStamp:Date.now()})});function f(A){return e=>e?.meta?.arg?.endpointName===A}return{queryThunk:w,mutationThunk:h,infiniteQueryThunk:d,prefetch:(A,e,I)=>(g,i)=>{const o=(A=>"force"in A)(I)&&I.force,n=(A=>"ifOlderThan"in A)(I)&&I.ifOlderThan,C=(I=!0)=>{const g={forceRefetch:I,isPrefetch:!0};return t.endpoints[A].initiate(e,g)},a=t.endpoints[A].select(e)(i());if(o)g(C());else if(n){const A=a?.fulfilledTimeStamp;if(!A)return void g(C());(Number(new Date)-Number(new Date(A)))/1e3>=n&&g(C())}else g(C(!1))},updateQueryData:(A,e,I,g=!0)=>(i,o)=>{const n=t.endpoints[A].select(e)(o()),C={patches:[],inversePatches:[],undo:()=>i(t.util.patchQueryData(A,e,C.inversePatches,g))};if("uninitialized"===n.status)return C;let a;if("data"in n)if(l(n.data)){const[A,e,g]=eA(n.data,I);C.patches.push(...e),C.inversePatches.push(...g),a=A}else a=I(n.data),C.patches.push({op:"replace",path:[],value:a}),C.inversePatches.push({op:"replace",path:[],value:n.data});return 0===C.patches.length||i(t.util.patchQueryData(A,e,C.patches,g)),C},upsertQueryData:(A,e,I)=>g=>g(t.endpoints[A].initiate(e,{subscribe:!1,forceRefetch:!0,[UI]:()=>({data:I})})),patchQueryData:(A,e,o,n)=>(C,a)=>{const r=I[A],s=g({queryArgs:e,endpointDefinition:r,endpointName:A});if(C(t.internalActions.queryResultPatched({queryCacheKey:s,patches:o})),!n)return;const B=t.endpoints[A].select(e)(a()),c=YI(r.providesTags,B.data,void 0,e,{},i);C(t.internalActions.updateProvidedBy([{queryCacheKey:s,providedTags:c}]))},buildMatchThunkActions:function(A,e){return{matchPending:SA(KA(A),f(e)),matchFulfilled:SA(NA(A),f(e)),matchRejected:SA(FA(A),f(e))}}}}({baseQuery:I,reducerPath:t,context:Q,api:e,serializeQueryArgs:i,assertTagType:E,selectors:w,onSchemaFailure:s,catchSchemaFailure:B,skipSchemaValidation:c}),{reducer:H,actions:N}=XI({context:Q,queryThunk:D,mutationThunk:m,serializeQueryArgs:i,reducerPath:t,assertTagType:E,config:{refetchOnFocus:C,refetchOnReconnect:a,refetchOnMountOrArgChange:n,keepUnusedDataFor:o,reducerPath:t,invalidationBehavior:r}});Ig(e.util,{patchQueryData:S,updateQueryData:k,upsertQueryData:M,prefetch:K,resetApiState:N.resetApiState,upsertQueryEntries:N.cacheEntriesUpserted}),Ig(e.internalActions,N);const{middleware:Y,actions:G}=sg({reducerPath:t,context:Q,queryThunk:D,mutationThunk:m,infiniteQueryThunk:p,api:e,assertTagType:E,selectors:w});Ig(e.util,G),Ig(e,{reducer:H,middleware:Y});const{buildInitiateQuery:U,buildInitiateInfiniteQuery:b,buildInitiateMutation:P,getRunningMutationThunk:v,getRunningMutationsThunk:J,getRunningQueriesThunk:L,getRunningQueryThunk:R}=function({serializeQueryArgs:A,queryThunk:e,infiniteQueryThunk:I,mutationThunk:g,api:t,context:i}){const o=new Map,n=new Map,{unsubscribeQueryResult:C,removeMutationResult:a,updateSubscriptionOptions:r}=t.internalActions;return{buildInitiateQuery:function(A,e){return s(A,e)},buildInitiateInfiniteQuery:function(A,e){return s(A,e)},buildInitiateMutation:function(A){return(e,{track:I=!0,fixedCacheKey:t}={})=>(i,o)=>{const C=g({type:"mutation",endpointName:A,originalArgs:e,track:I,fixedCacheKey:t}),r=i(C),{requestId:s,abort:B,unwrap:c}=r,Q=(E=A=>({error:A}),r.unwrap().then(A=>({data:A})).catch(E));var E;const l=Object.assign(Q,{arg:r.arg,requestId:s,abort:B,unwrap:c,reset:()=>{i(a({requestId:s,fixedCacheKey:t}))}}),w=n.get(i)||{};return n.set(i,w),w[s]=l,l.then(()=>{delete w[s],yI(w)||n.delete(i)}),t&&(w[t]=l,l.then(()=>{w[t]===l&&(delete w[t],yI(w)||n.delete(i))})),l}},getRunningQueryThunk:function(e,I){return g=>{const t=i.endpointDefinitions[e],n=A({queryArgs:I,endpointDefinition:t,endpointName:e});return o.get(g)?.[n]}},getRunningMutationThunk:function(A,e){return A=>n.get(A)?.[e]},getRunningQueriesThunk:function(){return A=>Object.values(o.get(A)||{}).filter(pI)},getRunningMutationsThunk:function(){return A=>Object.values(n.get(A)||{}).filter(pI)}};function s(g,i){const n=(a,{subscribe:s=!0,forceRefetch:B,subscriptionOptions:c,[UI]:Q,...E}={})=>(l,w)=>{const d=A({queryArgs:a,endpointDefinition:i,endpointName:g});let h;const f={...E,type:"query",subscribe:s,forceRefetch:B,subscriptionOptions:c,endpointName:g,originalArgs:a,queryCacheKey:d,[UI]:Q};if(FI(i))h=e(f);else{const{direction:A,initialPageParam:e}=E;h=I({...f,direction:A,initialPageParam:e})}const u=t.endpoints[g].select(a),y=l(h),D=u(w()),{requestId:p,abort:m}=y,S=D.requestId!==p,k=o.get(l)?.[d],M=()=>u(w()),K=Object.assign(Q?y.then(M):S&&!k?Promise.resolve(D):Promise.all([k,y]).then(M),{arg:a,requestId:p,subscriptionOptions:c,queryCacheKey:d,abort:m,async unwrap(){const A=await K;if(A.isError)throw A.error;return A.data},refetch:()=>l(n(a,{subscribe:!1,forceRefetch:!0})),unsubscribe(){s&&l(C({queryCacheKey:d,requestId:p}))},updateSubscriptionOptions(A){K.subscriptionOptions=A,l(r({endpointName:g,requestId:p,queryCacheKey:d,options:A}))}});if(!k&&!S&&!Q){const A=(H=l,N={},(F=o).has(H)?F.get(H):F.set(H,N).get(H));A[d]=K,K.then(()=>{delete A[d],yI(A)||o.delete(l)})}var F,H,N;return K};return n}}({queryThunk:D,mutationThunk:m,infiniteQueryThunk:p,api:e,serializeQueryArgs:i,context:Q});return Ig(e.util,{getRunningMutationThunk:v,getRunningMutationsThunk:J,getRunningQueryThunk:R,getRunningQueriesThunk:L}),{name:Bg,injectEndpoint(A,I){const g=e,t=g.endpoints[A]??={};FI(I)&&Ig(t,{name:A,select:f(A,I),initiate:U(A,I)},F(D,A)),"mutation"===I.type&&Ig(t,{name:A,select:y(),initiate:P(A)},F(m,A)),HI(I)&&Ig(t,{name:A,select:u(A,I),initiate:b(A,I)},F(D,A))}}}}))());const Qg=new Blob(['const e=(e,t)=>t.some(t=>e instanceof t);let t,a;const n=new WeakMap,o=new WeakMap,r=new WeakMap;let s={get(e,t,a){if(e instanceof IDBTransaction){if("done"===t)return n.get(e);if("store"===t)return a.objectStoreNames[1]?void 0:a.objectStore(a.objectStoreNames[0])}return d(e[t])},set:(e,t,a)=>(e[t]=a,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function i(e){s=e(s)}function c(e){return(a||(a=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(l(this),t),d(this.request)}:function(...t){return d(e.apply(l(this),t))}}function u(a){return"function"==typeof a?c(a):(a instanceof IDBTransaction&&function(e){if(n.has(e))return;const t=new Promise((t,a)=>{const n=()=>{e.removeEventListener("complete",o),e.removeEventListener("error",r),e.removeEventListener("abort",r)},o=()=>{t(),n()},r=()=>{a(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",o),e.addEventListener("error",r),e.addEventListener("abort",r)});n.set(e,t)}(a),e(a,t||(t=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(a,s):a)}function d(e){if(e instanceof IDBRequest)return function(e){const t=new Promise((t,a)=>{const n=()=>{e.removeEventListener("success",o),e.removeEventListener("error",r)},o=()=>{t(d(e.result)),n()},r=()=>{a(e.error),n()};e.addEventListener("success",o),e.addEventListener("error",r)});return r.set(t,e),t}(e);if(o.has(e))return o.get(e);const t=u(e);return t!==e&&(o.set(e,t),r.set(t,e)),t}const l=e=>r.get(e);const w=["get","getKey","getAll","getAllKeys","count"],h=["put","add","delete","clear"],m=new Map;function g(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(m.get(t))return m.get(t);const a=t.replace(/FromIndex$/,""),n=t!==a,o=h.includes(a);if(!(a in(n?IDBIndex:IDBObjectStore).prototype)||!o&&!w.includes(a))return;const r=async function(e,...t){const r=this.transaction(e,o?"readwrite":"readonly");let s=r.store;return n&&(s=s.index(t.shift())),(await Promise.all([s[a](...t),o&&r.done]))[0]};return m.set(t,r),r}i(e=>({...e,get:(t,a,n)=>g(t,a)||e.get(t,a,n),has:(t,a)=>!!g(t,a)||e.has(t,a)}));const k=["continue","continuePrimaryKey","advance"],y={},b=new WeakMap,f=new WeakMap,I={get(e,t){if(!k.includes(t))return e[t];let a=y[t];return a||(a=y[t]=function(...e){b.set(this,f.get(this)[t](...e))}),a}};async function*x(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;const a=new Proxy(t,I);for(f.set(a,t),r.set(a,l(t));t;)yield a,t=await(b.get(a)||t.continue()),b.delete(a)}function p(t,a){return a===Symbol.asyncIterator&&e(t,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===a&&e(t,[IDBIndex,IDBObjectStore])}i(e=>({...e,get:(t,a,n)=>p(t,a)?x:e.get(t,a,n),has:(t,a)=>p(t,a)||e.has(t,a)}));const D=64*Uint8Array.BYTES_PER_ELEMENT,B="p2party";async function S(){return function(e,t,{blocked:a,upgrade:n,blocking:o,terminated:r}={}){const s=indexedDB.open(e,t),i=d(s);return n&&s.addEventListener("upgradeneeded",e=>{n(d(s.result),e.oldVersion,e.newVersion,d(s.transaction),e)}),a&&s.addEventListener("blocked",e=>a(e.oldVersion,e.newVersion,e)),i.then(e=>{r&&e.addEventListener("close",()=>r()),o&&e.addEventListener("versionchange",e=>o(e.oldVersion,e.newVersion,e))}).catch(()=>{}),i}(B,16,{upgrade(e,t,a,n){if(e.objectStoreNames.contains("addressBook")){const e=n.objectStore("addressBook");e.indexNames.contains("username")||e.createIndex("username","username",{unique:!1}),e.indexNames.contains("peerId")||e.createIndex("peerId","peerId",{unique:!0}),e.indexNames.contains("peerPublicKey")||e.createIndex("peerPublicKey","peerPublicKey",{unique:!0})}else{const t=e.createObjectStore("addressBook",{keyPath:["peerId"]});t.createIndex("username","username",{unique:!1}),t.createIndex("peerId","peerId",{unique:!0}),t.createIndex("peerPublicKey","peerPublicKey",{unique:!0})}if(e.objectStoreNames.contains("blacklist")){const e=n.objectStore("blacklist");e.indexNames.contains("username")||e.createIndex("username","username",{unique:!1}),e.indexNames.contains("peerId")||e.createIndex("peerId","peerId",{unique:!0}),e.indexNames.contains("peerPublicKey")||e.createIndex("peerPublicKey","peerPublicKey",{unique:!0})}else{const t=e.createObjectStore("blacklist",{keyPath:["peerId"]});t.createIndex("username","username",{unique:!1}),t.createIndex("peerId","peerId",{unique:!0}),t.createIndex("peerPublicKey","peerPublicKey",{unique:!0})}if(e.objectStoreNames.contains("uniqueRoom")){const e=n.objectStore("uniqueRoom");e.indexNames.contains("roomUrl")||e.createIndex("roomUrl","roomUrl",{unique:!0}),e.indexNames.contains("roomId")||e.createIndex("roomId","roomId",{unique:!0})}else{const t=e.createObjectStore("uniqueRoom",{keyPath:["roomId"]});t.createIndex("roomUrl","roomUrl",{unique:!0}),t.createIndex("roomId","roomId",{unique:!0})}if(e.objectStoreNames.contains("messageData")){const e=n.objectStore("messageData");e.indexNames.contains("roomId")||e.createIndex("roomId","roomId",{unique:!1}),e.indexNames.contains("hash")||e.createIndex("hash","hash",{unique:!1}),e.indexNames.contains("merkleRoot")||e.createIndex("merkleRoot","merkleRoot",{unique:!0}),e.indexNames.contains("fromPeerId")||e.createIndex("fromPeerId","fromPeerId",{unique:!1})}else{const t=e.createObjectStore("messageData",{keyPath:["timestamp","roomId","merkleRoot"]});t.createIndex("roomId","roomId",{unique:!1}),t.createIndex("hash","hash",{unique:!1}),t.createIndex("merkleRoot","merkleRoot",{unique:!0}),t.createIndex("fromPeerId","fromPeerId",{unique:!1})}if(e.objectStoreNames.contains("chunks")){const e=n.objectStore("chunks");e.indexNames.contains("merkleRoot")||e.createIndex("merkleRoot","merkleRoot",{unique:!1}),e.indexNames.contains("hash")||e.createIndex("hash","hash",{unique:!1})}else{const t=e.createObjectStore("chunks",{keyPath:["merkleRoot","chunkIndex"]});t.createIndex("merkleRoot","merkleRoot",{unique:!1}),t.createIndex("hash","hash",{unique:!1})}if(e.objectStoreNames.contains("newChunks")){const e=n.objectStore("newChunks");e.indexNames.contains("hash")||e.createIndex("hash","hash",{unique:!1}),e.indexNames.contains("merkleRoot")||e.createIndex("merkleRoot","merkleRoot",{unique:!1}),e.indexNames.contains("realChunkHash")||e.createIndex("realChunkHash","realChunkHash",{unique:!0})}else{const t=e.createObjectStore("newChunks",{keyPath:["hash","chunkIndex"]});t.createIndex("hash","hash",{unique:!1}),t.createIndex("merkleRoot","merkleRoot",{unique:!1}),t.createIndex("realChunkHash","realChunkHash",{unique:!0})}if(e.objectStoreNames.contains("sendQueue")){const e=n.objectStore("sendQueue");e.indexNames.contains("labelPeer")||e.createIndex("labelPeer",["label","toPeerId"],{unique:!1})}else{e.createObjectStore("sendQueue",{keyPath:["position","label","toPeerId"]}).createIndex("labelPeer",["label","toPeerId"],{unique:!1})}}})}async function R(){await function(e,{blocked:t}={}){const a=indexedDB.deleteDatabase(e);return t&&a.addEventListener("blocked",e=>t(e.oldVersion,e)),d(a).then(()=>{})}(B,{blocked(){console.error("DB deletion BLOCKED")}})}onmessage=async e=>{const t=e.data,{id:a,method:n}=t;try{let e;switch(n){case"getDBAddressBookEntry":e=await async function(e,t){if(!e&&!t)return;if(e&&e.length<10&&!t)return;if(t&&64!==t.length&&!e)return;const a=await S();try{const n=a.transaction("addressBook","readonly"),o=e?n.objectStore("addressBook").index("peerId"):n.objectStore("addressBook").index("peerPublicKey"),r=e?await o.get(e):await o.get(t);return await n.done,a.close(),r?{username:r.username,peerId:r.peerId,peerPublicKey:r.peerPublicKey}:void 0}catch(e){return void a.close()}}(...t.args);break;case"getAllDBAddressBookEntries":e=await async function(){try{const e=await S(),t=await e.getAll("addressBook");return e.close(),t}catch(e){return[]}}(...t.args);break;case"setDBAddressBookEntry":e=await async function(e,t,a){try{const n=await S(),o=n.transaction(["addressBook"],"readwrite"),r=o.objectStore("addressBook"),s=r.index("peerId"),i=r.index("peerPublicKey"),c=await s.get(t),u=await i.get(a);(!c&&!u||c&&!u||!c&&u)&&await r.put({username:e,peerId:t,peerPublicKey:a,dateAdded:Date.now()}),await o.done,n.close()}catch(e){console.error(e)}}(...t.args);break;case"deleteDBAddressBookEntry":e=await async function(e,t,a){const n=!e||0===e.length,o=!t||t.length<10,r=!a||64!==a.length;if(n&&o&&r)throw new Error("Cannot delete address book with no data");let s=t??"";try{const n=await S(),i=n.transaction("addressBook","readwrite"),c=i.objectStore("addressBook");if(o)if(r){const t=c.index("username"),a=await t.getKey(e);if(a){const n=await t.get(e);s=n?.peerId??"",await c.delete(a)}}else{const e=c.index("peerPublicKey"),t=await e.getKey(a);if(t){const n=await e.get(a);s=n?.peerId??"",await c.delete(t)}}else{const e=c.index("peerId"),a=await e.getKey(t);a&&await c.delete(a)}await i.done,n.close()}catch{}return s}(...t.args);break;case"getDBPeerIsBlacklisted":e=await async function(e,t){if(!e&&!t)return!1;if(e&&e.length<10&&!t)return!1;if(t&&64!==t.length&&!e)return!1;try{const a=await S(),n=a.transaction("blacklist","readonly"),o=e?n.objectStore("blacklist").index("peerId"):n.objectStore("blacklist").index("peerPublicKey"),r=e?await o.get(e):await o.get(t);return await n.done,a.close(),!!r}catch(e){return!1}}(...t.args);break;case"getAllDBBlacklisted":e=await async function(){const e=await S();try{const t=await e.getAll("blacklist");return e.close(),t}catch(t){return e.close(),[]}}(...t.args);break;case"setDBPeerInBlacklist":e=await async function(e,t){try{const a=await S(),n=a.transaction(["blacklist"],"readwrite"),o=n.objectStore("blacklist"),r=o.index("peerId"),s=o.index("peerPublicKey"),i=await r.get(e),c=await s.get(t);(!i&&!c||i&&!c||!i&&c)&&await o.put({peerId:e,peerPublicKey:t,dateAdded:Date.now()}),await n.done,a.close()}catch(e){console.error(e)}}(...t.args);break;case"deleteDBPeerFromBlacklist":e=await async function(e,t){const a=!e||e.length<10,n=!t||64!==t.length;if(a&&n)throw new Error("Cannot delete blacklisted with no data");try{const n=await S(),o=n.transaction("blacklist","readwrite"),r=o.objectStore("blacklist");if(a){const e=r.index("peerPublicKey"),a=await e.getKey(t);a&&await r.delete(a)}else{const t=r.index("peerId"),a=await t.getKey(e);a&&await r.delete(a)}await o.done,n.close()}catch(e){console.error(e)}}(...t.args);break;case"getAllDBUniqueRooms":e=await async function(){const e=await S();try{const t=await e.getAll("uniqueRoom");return e.close(),t}catch(t){return e.close(),[]}}(...t.args);break;case"setDBUniqueRoom":e=await async function(e,t){try{const a=await S(),n=a.transaction(["uniqueRoom"],"readwrite"),o=n.objectStore("uniqueRoom"),r=o.index("roomUrl"),s=o.index("roomId"),i=await r.get(e),c=await s.get(t);if(!i&&!c){const a=Date.now();await o.put({roomId:t,roomUrl:e,messageCount:0,lastMessageMerkleRoot:"",createdAt:a,updatedAt:a})}await n.done,a.close()}catch(e){console.error(e)}}(...t.args);break;case"getDBMessageData":e=await async function(e,t){try{const a=await S(),n=a.transaction(["messageData"],"readonly"),o=n.objectStore("messageData"),r=o.index("merkleRoot"),s=o.index("hash");if(e&&e.length===2*D){const o=await r.get(e);if(o)return await n.done,a.close(),o;if(t&&t.length===2*D){const e=await s.get(t);return await n.done,a.close(),e}return await n.done,void a.close()}if(t&&t.length===2*D){const e=await s.get(t);return await n.done,a.close(),e}return await n.done,void a.close()}catch(e){return void console.error(e)}}(...t.args);break;case"getDBRoomMessageData":e=await async function(e){const t=await S(),a=await t.getAllFromIndex("messageData","roomId",e);t.close();const n=a.length,o=[];for(let t=0;t<n;t++)o.push({roomId:e,merkleRoot:a[t].merkleRoot,hash:a[t].hash,fromPeerId:a[t].fromPeerId,filename:a[t].filename,messageType:a[t].messageType,savedSize:a[t].savedSize,totalSize:a[t].totalSize,channelLabel:a[t].channelLabel,timestamp:a[t].timestamp});return o}(...t.args);break;case"setDBRoomMessageData":e=await async function(e,t,a,n,o,r,s,i,c,u){try{const d=await S(),l=d.transaction(["messageData","uniqueRoom"],"readwrite"),w=l.objectStore("messageData"),h=await w.index("merkleRoot").get(t),m=h?.savedSize??0;try{await w.put({roomId:e,timestamp:u,merkleRoot:t,hash:a,fromPeerId:n,filename:i,messageType:s,savedSize:m!==r?o+m:o,totalSize:r,channelLabel:c})}catch(e){throw await l.done,d.close(),e}if(!h){const a=l.objectStore("uniqueRoom"),n=await a.index("roomId").get(e);if(n&&n.lastMessageMerkleRoot!==t)try{await a.put({...n,lastMessageMerkleRoot:t,messageCount:n.messageCount+1,updatedAt:Date.now()})}catch(e){throw e}}await l.done,d.close()}catch(e){throw console.error(e),e}}(...t.args);break;case"getDBChunk":e=await async function(e,t){const a=await S(),n=await a.get("chunks",[e,t]);return a.close(),n?.data}(...t.args);break;case"existsDBChunk":e=await async function(e,t){const a=await S(),n=await a.count("chunks",[e,t]);return a.close(),n>0}(...t.args);break;case"getDBNewChunk":e=await async function(e,t){try{const a=await S(),n=t??-1;if(n>-1){const t=await a.get("newChunks",[e,n]);return a.close(),t}{const t=a.transaction("newChunks"),n=t.objectStore("newChunks").index("realChunkHash"),o=await n.get(e);return await t.done,a.close(),o}}catch(e){return void console.error(e)}}(...t.args);break;case"existsDBNewChunk":e=await async function(e,t){const a=await S(),n=await a.count("newChunks",[e,t]);return a.close(),n>0}(...t.args);break;case"getDBSendQueue":e=await async function(e,t,a){const n=await S();if(a){const o=await n.get("sendQueue",[a,e,t]);return n.close(),o?[o]:[]}const o=n.transaction("sendQueue","readonly").objectStore("sendQueue").index("labelPeer"),r=IDBKeyRange.only([e,t]),s=await o.getAll(r);return n.close(),s}(...t.args);break;case"getDBAllChunks":e=await async function(e,t){try{const a=await S(),n=a.transaction("chunks","readonly"),o=n.objectStore("chunks"),r=o.index("hash"),s=o.index("merkleRoot");if(e&&e.length===2*D){const t=await s.getAll(e);return 0===t.length?(await n.done,a.close(),[]):(await n.done,a.close(),t)}if(t&&t.length===2*D){const e=await r.getAll(t);return await n.done,a.close(),e}return await n.done,a.close(),[]}catch(e){return console.error(e),[]}}(...t.args);break;case"getDBAllChunksCount":e=await async function(e,t){try{const a=await S(),n=a.transaction(["chunks"],"readonly"),o=n.objectStore("chunks"),r=o.index("hash"),s=o.index("merkleRoot");if(t&&t.length===2*D){const o=await r.count(t);if(0===o){if(e&&e.length===2*D){const t=await s.count(e);return await n.done,a.close(),t}return await n.done,a.close(),0}return await n.done,a.close(),o}if(e&&e.length===2*D){const t=await s.count(e);return await n.done,a.close(),t}return await n.done,a.close(),0}catch(e){return 0}}(...t.args);break;case"setDBChunk":e=await async function(e){const t=await S();await t.add("chunks",e),t.close()}(...t.args);break;case"getDBAllNewChunks":e=await async function(e,t){if(!e&&!t)return[];if(e?.length!==2*D&&t?.length!==2*D)return[];const a=await S();if((e?await a.countFromIndex("newChunks","hash",e):await a.countFromIndex("newChunks","merkleRoot",t))>0){const n=e?await a.getAllFromIndex("newChunks","hash",e):await a.getAllFromIndex("newChunks","merkleRoot",t);return a.close(),n}{const n=a.transaction("newChunks","readonly").objectStore("newChunks"),o=e?n.index("hash"):n.index("merkleRoot"),r=e?IDBKeyRange.only(e):IDBKeyRange.only(t),s=await o.getAll(r);return a.close(),s}}(...t.args);break;case"getDBAllNewChunksCount":e=await async function(e){const t=await S(),a=await t.countFromIndex("newChunks","hash",e);return t.close(),a}(...t.args);break;case"setDBNewChunk":e=await async function(e){const t=await S();await t.put("newChunks",e),t.close()}(...t.args);break;case"setDBSendQueue":e=await async function(e){const t=await S();await t.put("sendQueue",e),t.close()}(...t.args);break;case"countDBSendQueue":e=await async function(e,t){const a=await S(),n=a.transaction("sendQueue","readonly").objectStore("sendQueue").index("labelPeer"),o=IDBKeyRange.only([e,t]),r=await n.count(o);return a.close(),r}(...t.args);break;case"deleteDBChunk":e=await async function(e,t){try{const a=await S(),n=a.transaction("chunks","readwrite"),o=n.objectStore("chunks");if(t){const a=IDBKeyRange.only([e,t]);await o.delete(a)}else{const t=o.index("hash"),a=await t.getAllKeys(e),n=a.length;if(0===n){const t=o.index("merkleRoot"),a=await t.getAllKeys(e),n=a.length;for(let e=0;e<n;e++)await o.delete(a[e])}else for(let e=0;e<n;e++)await o.delete(a[e])}await n.done,a.close()}catch(e){}}(...t.args);break;case"deleteDBNewChunk":e=await async function(e,t,a,n){try{const o=await S(),r=o.transaction("newChunks","readwrite"),s=r.objectStore("newChunks");if(e){const t=s.index("merkleRoot"),a=await t.getAllKeys(e),n=a.length;for(let e=0;e<n;e++)await s.delete(a[e])}else if(a&&n)await s.delete([a,n]);else if(a){const e=s.index("hash"),t=await e.getAllKeys(a),n=t.length;for(let e=0;e<n;e++)await s.delete(t[e])}else if(t){const e=s.index("realChunkHash"),a=await e.getKey(t);a&&await s.delete(a)}await r.done,o.close()}catch(e){console.error(e)}}(...t.args);break;case"deleteDBMessageData":e=await async function(e){try{const t=await S(),a=t.transaction(["messageData","uniqueRoom"],"readwrite"),n=a.objectStore("messageData"),o=a.objectStore("uniqueRoom"),r=n.index("merkleRoot"),s=await r.getAllKeys(e),i=s.length;let c="";for(let e=0;e<i;e++){if(0===e||0===c.length){const t=await n.get(s[e]);c=t?.roomId??""}await n.delete(s[e])}if(c.length>0){const e=o.index("roomId"),t=await e.get(c);if(t){const e=n.index("roomId"),a=await e.getAllKeys(c),r=a.length,s=r>0?await n.get(a[r-1]):void 0;await o.put({...t,messageCount:t.messageCount>0?t.messageCount-1:0,updatedAt:s?.timestamp??Date.now(),lastMessageMerkleRoot:s?.merkleRoot??""})}}await a.done,t.close()}catch(e){}}(...t.args);break;case"deleteDBUniqueRoom":e=await async function(e){try{const t=await S(),a=t.transaction("uniqueRoom","readwrite"),n=a.objectStore("uniqueRoom"),o=n.index("roomId"),r=await o.getKey(e);r&&await n.delete(r),await a.done,t.close()}catch(e){}}(...t.args);break;case"deleteDBSendQueue":e=await async function(e,t,a){try{const n=await S();if(a)await n.delete("sendQueue",[a,e,t]);else{const a=IDBKeyRange.only([e,t]);await n.delete("sendQueue",a)}n.close()}catch(e){}}(...t.args);break;case"deleteDB":e=await R();break;default:return void postMessage({id:a,error:"Method not found"})}postMessage({id:a,result:e})}catch(e){postMessage({id:a,error:String(e)})}};\n//# sourceMappingURL=db.worker.js.map\n'],{type:"application/javascript"}),Eg=new Worker(URL.createObjectURL(Qg),{type:"module"});let lg=0;const wg=new Map;function dg(A,...e){return new Promise((I,g)=>{const t=++lg;wg.set(t,{resolve:I,reject:g}),Eg.postMessage({id:t,method:A,args:e})})}Eg.onmessage=A=>{const{id:e,result:I,error:g}=A.data,t=wg.get(e);t&&(wg.delete(e),g?t.reject(g):t.resolve(I))};const hg=(A,e)=>dg("getDBAddressBookEntry",A,e),fg=(A,e)=>dg("getDBPeerIsBlacklisted",A,e),ug=()=>dg("getAllDBUniqueRooms"),yg=(A,e)=>dg("getDBMessageData",A,e),Dg=A=>dg("getDBRoomMessageData",A),pg=(A,e,I,g,t,i,o,n,C,a)=>dg("setDBRoomMessageData",A,e,I,g,t,i,o,n,C,a),mg=(A,e)=>dg("getDBNewChunk",A,e),Sg=(A,e)=>dg("getDBSendQueue",A,e),kg=(A,e)=>dg("getDBAllChunks",A,e),Mg=A=>dg("setDBChunk",A),Kg=A=>dg("setDBNewChunk",A),Fg=A=>dg("setDBSendQueue",A),Hg=(A,e)=>dg("deleteDBChunk",A,e),Ng=(A,e,I,g)=>dg("deleteDBNewChunk",A,e,I,g),Yg=(A,e,I)=>dg("deleteDBSendQueue",A,e,I),Gg={Text:1,ImagePNG:2,ImageJPEG:3,ImageJPG:4,ImageGIF:5,ImageBMP:6,ImageTIFF:7,ImageSVG:8,ImageWEBP:9,ImageHEIC:10,DocumentPDF:11,DocumentDOC:12,DocumentDOCX:13,DocumentXLS:14,DocumentXLSX:15,DocumentPPT:16,DocumentPPTX:17,DocumentTXT:18,DocumentRTF:19,DocumentODT:20,AudioMP3:21,AudioWAV:22,AudioAAC:23,AudioFLAC:24,AudioOGG:25,AudioM4A:26,VideoMP4:27,VideoAVI:28,VideoMKV:29,VideoMOV:30,VideoWMV:31,VideoFLV:32,VideoWEBM:33,CompressedZIP:34,CompressedRAR:35,Compressed7Z:36,CompressedTAR:37,CompressedGZ:38,CodeHTML:39,CodeCSS:40,CodeJS:41,CodeJSX:42,CodeTS:43,CodeTSX:44,CodeJSON:45,CodeXML:46,CodePY:47,CodeJAVA:48,CodeC:49,CodeCPP:50,CodeCS:51,CodeRB:52,CodePHP:53,CodeSQL:54,EbookEPUB:55,EbookMOBI:56,EbookAZW:57,FontTTF:58,FontOTF:59,ImageICO:60,ExecutableEXE:61,ExecutableDMG:62,ExecutableAPK:63,Unknown:64},Ug={Text:"Text",Image:"Image",Document:"Document",Audio:"Audio",Video:"Video",Compressed:"Compressed",Code:"Code",Ebook:"Ebook",Font:"Font",Executable:"Executable",Unknown:"Unknown"},bg=A=>{switch(A){case Gg.ImagePNG:return"png";case Gg.ImageJPEG:return"jpeg";case Gg.ImageJPG:return"jpg";case Gg.ImageGIF:return"gif";case Gg.ImageBMP:return"bmp";case Gg.ImageTIFF:return"tiff";case Gg.ImageSVG:return"svg";case Gg.ImageWEBP:return"webp";case Gg.ImageHEIC:return"heic";case Gg.DocumentPDF:return"pdf";case Gg.DocumentDOC:return"doc";case Gg.DocumentDOCX:return"docx";case Gg.DocumentXLS:return"xls";case Gg.DocumentXLSX:return"xlsx";case Gg.DocumentPPT:return"ppt";case Gg.DocumentPPTX:return"pptx";case Gg.DocumentTXT:return"txt";case Gg.DocumentRTF:return"rtf";case Gg.DocumentODT:return"odt";case Gg.AudioMP3:return"mp3";case Gg.AudioWAV:return"wav";case Gg.AudioAAC:return"aac";case Gg.AudioFLAC:return"flac";case Gg.AudioOGG:return"ogg";case Gg.AudioM4A:return"m4a";case Gg.VideoMP4:return"mp4";case Gg.VideoAVI:return"avi";case Gg.VideoMKV:return"mkv";case Gg.VideoMOV:return"mov";case Gg.VideoWMV:return"wmv";case Gg.VideoFLV:return"flv";case Gg.VideoWEBM:return"webm";case Gg.CompressedZIP:return"zip";case Gg.CompressedRAR:return"rar";case Gg.Compressed7Z:return"7z";case Gg.CompressedTAR:return"tar";case Gg.CompressedGZ:return"gz";case Gg.CodeHTML:return"html";case Gg.CodeCSS:return"css";case Gg.CodeJS:return"js";case Gg.CodeTS:return"ts";case Gg.CodeJSX:return"jsx";case Gg.CodeTSX:return"tsx";case Gg.CodeJSON:return"json";case Gg.CodeXML:return"xml";case Gg.CodePY:return"py";case Gg.CodeJAVA:return"java";case Gg.CodeC:return"c";case Gg.CodeCPP:return"cpp";case Gg.CodeCS:return"cs";case Gg.CodeRB:return"rb";case Gg.CodePHP:return"php";case Gg.CodeSQL:return"sql";case Gg.EbookEPUB:return"epub";case Gg.EbookMOBI:return"mobi";case Gg.EbookAZW:return"azw";case Gg.FontTTF:return"ttf";case Gg.FontOTF:return"otf";case Gg.ImageICO:return"ico";case Gg.ExecutableEXE:return"exe";case Gg.ExecutableDMG:return"dmg";case Gg.ExecutableAPK:return"apk";default:return""}},Pg=A=>{switch(A){case Gg.Text:return"text/plain";case Gg.ImagePNG:return"image/png";case Gg.ImageJPEG:case Gg.ImageJPG:return"image/jpeg";case Gg.ImageGIF:return"image/gif";case Gg.ImageBMP:return"image/bmp";case Gg.ImageTIFF:return"image/tiff";case Gg.ImageSVG:return"image/svg+xml";case Gg.ImageWEBP:return"image/webp";case Gg.ImageHEIC:return"image/heic";case Gg.ImageICO:return"image/vnd.microsoft.icon";case Gg.DocumentPDF:return"application/pdf";case Gg.DocumentDOC:return"application/msword";case Gg.DocumentDOCX:return"application/vnd.openxmlformats-officedocument.wordprocessingml.document";case Gg.DocumentXLS:return"application/vnd.ms-excel";case Gg.DocumentXLSX:return"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";case Gg.DocumentPPT:return"application/vnd.ms-powerpoint";case Gg.DocumentPPTX:return"application/vnd.openxmlformats-officedocument.presentationml.presentation";case Gg.DocumentTXT:return"text/plain";case Gg.DocumentRTF:return"application/rtf";case Gg.DocumentODT:return"application/vnd.oasis.opendocument.text";case Gg.AudioMP3:return"audio/mpeg";case Gg.AudioWAV:return"audio/wav";case Gg.AudioAAC:return"audio/aac";case Gg.AudioFLAC:return"audio/flac";case Gg.AudioOGG:return"audio/ogg";case Gg.AudioM4A:return"audio/mp4";case Gg.VideoMP4:return"video/mp4";case Gg.VideoAVI:return"video/x-msvideo";case Gg.VideoMKV:return"video/x-matroska";case Gg.VideoMOV:return"video/quicktime";case Gg.VideoWMV:return"video/x-ms-wmv";case Gg.VideoFLV:return"video/x-flv";case Gg.VideoWEBM:return"video/webm";case Gg.CompressedZIP:return"application/zip";case Gg.CompressedRAR:return"application/vnd.rar";case Gg.Compressed7Z:return"application/x-7z-compressed";case Gg.CompressedTAR:return"application/x-tar";case Gg.CompressedGZ:return"application/gzip";case Gg.CodeHTML:return"text/html";case Gg.CodeCSS:return"text/css";case Gg.CodeJS:case Gg.CodeJSX:return"application/javascript";case Gg.CodeTS:case Gg.CodeTSX:return"application/typescript";case Gg.CodeJSON:return"application/json";case Gg.CodeXML:return"application/xml";case Gg.CodePY:return"text/x-python";case Gg.CodeJAVA:return"text/x-java-source";case Gg.CodeC:return"text/x-c";case Gg.CodeCPP:return"text/x-c++";case Gg.CodeCS:return"text/plain";case Gg.CodeRB:return"text/x-ruby";case Gg.CodePHP:return"application/x-httpd-php";case Gg.CodeSQL:return"application/sql";case Gg.EbookEPUB:return"application/epub+zip";case Gg.EbookMOBI:return"application/x-mobipocket-ebook";case Gg.EbookAZW:return"application/vnd.amazon.ebook";case Gg.FontTTF:return"font/ttf";case Gg.FontOTF:return"font/otf";case Gg.ExecutableEXE:return"application/vnd.microsoft.portable-executable";case Gg.ExecutableDMG:return"application/x-apple-diskimage";case Gg.ExecutableAPK:return"application/vnd.android.package-archive";default:return"application/octet-stream"}},vg=A=>{switch(A){case Gg.Text:return Ug.Text;case Gg.ImagePNG:case Gg.ImageJPEG:case Gg.ImageJPG:case Gg.ImageGIF:case Gg.ImageBMP:case Gg.ImageTIFF:case Gg.ImageSVG:case Gg.ImageWEBP:case Gg.ImageHEIC:case Gg.ImageICO:return Ug.Image;case Gg.DocumentPDF:case Gg.DocumentDOC:case Gg.DocumentDOCX:case Gg.DocumentXLS:case Gg.DocumentXLSX:case Gg.DocumentPPT:case Gg.DocumentPPTX:case Gg.DocumentTXT:case Gg.DocumentRTF:case Gg.DocumentODT:return Ug.Document;case Gg.AudioMP3:case Gg.AudioWAV:case Gg.AudioAAC:case Gg.AudioFLAC:case Gg.AudioOGG:case Gg.AudioM4A:return Ug.Audio;case Gg.VideoMP4:case Gg.VideoAVI:case Gg.VideoMKV:case Gg.VideoMOV:case Gg.VideoWMV:case Gg.VideoFLV:case Gg.VideoWEBM:return Ug.Video;case Gg.CompressedZIP:case Gg.CompressedRAR:case Gg.Compressed7Z:case Gg.CompressedTAR:case Gg.CompressedGZ:return Ug.Compressed;case Gg.CodeHTML:case Gg.CodeCSS:case Gg.CodeJS:case Gg.CodeJSX:case Gg.CodeTS:case Gg.CodeTSX:case Gg.CodeJSON:case Gg.CodeXML:case Gg.CodePY:case Gg.CodeJAVA:case Gg.CodeC:case Gg.CodeCPP:case Gg.CodeCS:case Gg.CodeRB:case Gg.CodePHP:case Gg.CodeSQL:return Ug.Code;case Gg.EbookEPUB:case Gg.EbookMOBI:case Gg.EbookAZW:return Ug.Ebook;case Gg.FontTTF:case Gg.FontOTF:return Ug.Font;case Gg.ExecutableEXE:case Gg.ExecutableDMG:case Gg.ExecutableAPK:return Ug.Executable;default:return Ug.Unknown}},Jg=A=>new Promise(e=>{let I=0;const g=new Uint8Array(A.reduce((A,e)=>A+e.length,0));for(const e of A)g.set(e,I),I+=e.length;e(g)}),Lg=A=>[...A].map(A=>A.toString(16).toLocaleLowerCase().padStart(2,"0")).join(""),Rg=A=>{(A=A.replace(/^0x/,"")).length%2!=0&&(A="0"+A);const e=A.match(/[G-Z\s]/i);if(e)throw new Error(`Found non-hex characters ${e}`);const I=A.match(/[\dA-F]{2}/gi);if(!I)throw new Error("No hex characters in string");const g=I.map(A=>parseInt(A,16));return new Uint8Array(g)},xg=305,qg=A=>{const e=new Uint8Array(xg);let I=0;new DataView(e.buffer,I,8).setBigUint64(0,BigInt(A.schemaVersion),!1),I+=8,e[I]=A.messageType,I+=1;new DataView(e.buffer,I,8).setBigUint64(0,BigInt(A.totalSize),!1),I+=8;new DataView(e.buffer,I,8).setBigInt64(0,BigInt(A.date.getTime()),!1),I+=8;const g=(new TextEncoder).encode(A.name),t=new Uint8Array(256);t.set(g.subarray(0,Math.min(256,g.length))),e.set(t,I),I+=256;new DataView(e.buffer,I,8).setBigUint64(0,BigInt(A.chunkStartIndex),!1),I+=8;new DataView(e.buffer,I,8).setBigUint64(0,BigInt(A.chunkEndIndex),!1),I+=8;return new DataView(e.buffer,I,8).setBigUint64(0,BigInt(A.chunkIndex),!1),I+=8,e},Og=A=>{if(A.length!==xg)throw new Error("Invalid metadata buffer totalSize");let e=0;const I=new DataView(A.buffer,A.byteOffset+e,8),g=Number(I.getBigUint64(0,!1));e+=8;const t=A[e];e+=1;const i=new DataView(A.buffer,A.byteOffset+e,8),o=Number(i.getBigUint64(0,!1));e+=8;const n=new DataView(A.buffer,A.byteOffset+e,8),C=Number(n.getBigUint64(0,!1)),a=new Date(C);e+=8;const r=A.slice(e,e+256),s=(new TextDecoder).decode(r).replace(/\0+$/,"");e+=256;const B=new DataView(A.buffer,A.byteOffset+e,8),c=Number(B.getBigUint64(0,!1));e+=8;const Q=new DataView(A.buffer,A.byteOffset+e,8),E=Number(Q.getBigUint64(0,!1));e+=8;const l=new DataView(A.buffer,A.byteOffset+e,8);return{schemaVersion:g,messageType:t,totalSize:o,date:a,name:s,chunkStartIndex:c,chunkEndIndex:E,chunkIndex:Number(l.getBigUint64(0,!1))}},jg=(A,e,I)=>{e=e??32,I=I??81920;const g=65536,t=Math.ceil(A/g);if(t>I)throw new Error(`Memory required is ${String(t*g)} bytes while declared maximum is ${String(I*g)} bytes`);return t<e?e:t};var Tg=()=>{const A=(Re+xe)*Uint8Array.BYTES_PER_ELEMENT,e=jg(A);return new WebAssembly.Memory({initial:e,maximum:e})},zg=()=>{const A=(Re+xe+Le)*Uint8Array.BYTES_PER_ELEMENT,e=jg(A);return new WebAssembly.Memory({initial:e,maximum:e})},Xg=A=>{const e=(A+Je+xe+ve)*Uint8Array.BYTES_PER_ELEMENT,I=jg(e);return new WebAssembly.Memory({initial:I,maximum:I})},Vg=A=>{const e=(A+Je+Re)*Uint8Array.BYTES_PER_ELEMENT,I=jg(e);return new WebAssembly.Memory({initial:I,maximum:I})},Wg=(A,e)=>{const I=Ve(A),g=(A+Re+e+I+ze+1*(A+qe)+2*Oe+2*je+Te)*Uint8Array.BYTES_PER_ELEMENT,t=jg(g);return new WebAssembly.Memory({initial:t,maximum:t})},Zg=(A,e)=>{const I=We(A),g=(A+xe+e+I+2*Oe+Te+je)*Uint8Array.BYTES_PER_ELEMENT,t=jg(g);return new WebAssembly.Memory({initial:t,maximum:t})},_g=A=>{const e=jg((2*A+3)*ve);return new WebAssembly.Memory({initial:e,maximum:e})},$g=A=>{const e=jg(A*ve+A*(ve+1)+3*ve);return new WebAssembly.Memory({initial:e,maximum:e})},At=A=>{const e=A*Uint8Array.BYTES_PER_ELEMENT+4*ve,I=jg(e);return new WebAssembly.Memory({initial:I,maximum:I})},et=A=>{const e=(78643200+A+Le+Xe)*Uint8Array.BYTES_PER_ELEMENT,I=jg(e);return new WebAssembly.Memory({initial:I,maximum:I})};function It(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var gt={exports:{}};!function(A){async function e(A={}){var e,I=A,g=[],t=(A,e)=>{throw e};e=self.location.href;var i,o,n="";try{n=new URL(".",e).href}catch{}o=A=>{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)},i=async A=>{var e=await fetch(A,{credentials:"same-origin"});if(e.ok)return e.arrayBuffer();throw new Error(e.status+" : "+e.url)},console.log.bind(console);var C,a,r,s,B,c=console.error.bind(console),Q=[],E=!1,l=!1;function w(){var A=s.buffer;B=new Uint8Array(A),new BigInt64Array(A),new BigUint64Array(A)}var d=[];var h,f=0,u=null;function y(A){f++}function D(A){if(0==--f&&u){var e=u;u=null,e()}}function p(A){c(A="Aborted("+A+")"),E=!0,A+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(A);throw r?.(e),e}async function m(A){return function(A){if(ArrayBuffer.isView(A))return A;if(o)return o(A);throw"both async and sync fetching of the wasm failed"}(A)}async function S(A,e,I){return async function(A,e){try{var I=await m(A);return await WebAssembly.instantiate(I,e)}catch(A){c(`failed to asynchronously prepare wasm: ${A}`),p(A)}}(e,I)}class k{name="ExitStatus";constructor(A){this.message=`Program terminated with exit(${A})`,this.status=A}}var M,K={},F=new Set([]),H={get(A,e){var I=K[e];return I||(I=K[e]=new WebAssembly.Global({value:"i32",mutable:!0})),F.has(e)||(I.required=!0),I}},N=A=>{for(var e,I,g=0,t=0,i=A.length,o=new Uint8Array((3*i>>2)-("="==A[i-2])-("="==A[i-1]));g<i;g+=4,t+=3)e=mA[A.charCodeAt(g+1)],I=mA[A.charCodeAt(g+2)],o[t]=mA[A.charCodeAt(g)]<<2|e>>4,o[t+1]=e<<4|I>>2,o[t+2]=I<<6|mA[A.charCodeAt(g+3)];return o},Y=A=>{for(;A.length>0;)A.shift()(I)},G="undefined"!=typeof TextDecoder?new TextDecoder:void 0,U=(A,e=0,I,g)=>{var t=((A,e,I)=>{for(var g=e+I;A[e]&&!(e>=g);)++e;return e})(A,e,I);if(t-e>16&&A.buffer&&G)return G.decode(A.subarray(e,t));for(var i="";e<t;){var o=A[e++];if(128&o){var n=63&A[e++];if(192!=(224&o)){var C=63&A[e++];if((o=224==(240&o)?(15&o)<<12|n<<6|C:(7&o)<<18|n<<12|C<<6|63&A[e++])<65536)i+=String.fromCharCode(o);else{var a=o-65536;i+=String.fromCharCode(55296|a>>10,56320|1023&a)}}else i+=String.fromCharCode((31&o)<<6|n)}else i+=String.fromCharCode(o)}return i},b=A=>{var e=0,I=0;function g(){return A[e++]}function t(){for(var I=0,g=1;;){var t=A[e++];if(I+=(127&t)*g,g*=128,!(128&t))break}return I}function i(){var I=t();return U(A,(e+=I)-I,I)}function o(){for(var A=t(),e=[];A--;)e.push(i());return e}function n(A,e){if(A)throw new Error(e)}if(A instanceof WebAssembly.Module){var C=WebAssembly.Module.customSections(A,"dylink.0");n(0===C.length,"need dylink section"),I=(A=new Uint8Array(C[0])).length}else{n(!(1836278016==new Uint32Array(new Uint8Array(A.subarray(0,24)).buffer)[0]),"need to see wasm magic number"),n(0!==A[8],"need the dylink section to be first"),e=9;var a=t();I=e+a,n("dylink.0"!==i())}for(var r={neededDynlibs:[],tlsExports:new Set,weakImports:new Set,runtimePaths:[]};e<I;){var s=g(),B=t();if(1===s)r.memorySize=t(),r.memoryAlign=t(),r.tableSize=t(),r.tableAlign=t();else if(2===s)r.neededDynlibs=o();else if(3===s)for(var c=t();c--;){var Q=i();256&t()&&r.tlsExports.add(Q)}else if(4===s)for(c=t();c--;){i();Q=i();1==(3&t())&&r.weakImports.add(Q)}else 5===s?r.runtimePaths=o():e+=B}return r},P=(A,e,I)=>{var g={refcount:1/0,name:A,exports:I,global:!0};return v.loadedLibsByName[A]=g,null!=e&&(v.loadedLibsByHandle[e]=g),g},v={loadedLibsByName:{},loadedLibsByHandle:{},init(){P("__main__",0,kA)}},J=562400,L=(A,e)=>Math.ceil(A/e)*e,R=A=>["__cpp_exception","__c_longjmp","__wasm_apply_data_relocs","__dso_handle","__tls_size","__tls_align","__set_stack_limits","_emscripten_tls_init","__wasm_init_tls","__wasm_call_ctors","__start_em_asm","__stop_em_asm","__start_em_js","__stop_em_js"].includes(A)||A.startsWith("__em_js__"),x=A=>{const e=A.length;return[e%128|128,e>>7,...A]},q={i:127,p:127,j:126,f:125,d:124,e:111},O=A=>x(Array.from(A,A=>q[A])),j=[],T=new WebAssembly.Table({initial:3,element:"anyfunc"}),z=A=>{var e=j[A];return e||(j[A]=e=T.get(A)),e},X=(A,e)=>{if(M)for(var I=A;I<A+e;I++){var g=z(I);g&&M.set(g,I)}},V=[],W=(A,e)=>{T.set(A,e),j[A]=T.get(A)},Z=(A,e)=>{var I=(A=>(M||(M=new WeakMap,X(0,T.length)),M.get(A)||0))(A);if(I)return I;var g=V.length?V.pop():T.grow(1);try{W(g,A)}catch(I){if(!(I instanceof TypeError))throw I;var t=((A,e)=>{var I=Uint8Array.of(0,97,115,109,1,0,0,0,1,...x([1,96,...O(e.slice(1)),...O("v"===e[0]?"":e[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),g=new WebAssembly.Module(I);return new WebAssembly.Instance(g,{e:{f:A}}).exports.f})(A,e);W(g,t)}return M.set(A,g),g},_=(A,e,I)=>{var g={};for(var t in A){var i=A[t];"object"==typeof i&&(i=i.value),"number"==typeof i&&(i+=e),g[t]=i}return(A=>{for(var e in A)if(!R(e)){var I=A[e];K[e]||=new WebAssembly.Global({value:"i32",mutable:!0}),0==K[e].value&&("function"==typeof I?K[e].value=Z(I):"number"==typeof I?K[e].value=I:c(`unhandled export type for '${e}': ${typeof I}`))}})(g),g},$=A=>{var e=kA[A];return!(!e||e.stub)},AA=(A,e=!1)=>{var I;return $(A)&&(I=kA[A]),{sym:I,name:A}},eA=[],IA=(A,e,I)=>A?U(B,A,e):"",gA=(A,e,I,g,t)=>{var i=b(A);function o(){var I,t=Math.pow(2,i.memoryAlign),o=i.memorySize?L((A=>{if(l)return uA(A,1);var e=J,I=e+L(A,16);return J=I,K.__heap_base.value=I,e})(i.memorySize+t),t):0,n=i.tableSize?T.length:0;i.tableSize&&T.grow(i.tableSize);var C=new Proxy({},{get(A,e){switch(e){case"__memory_base":return o;case"__table_base":return n}var t;if(e in kA&&!kA[e].stub)return kA[e];e in A||(A[e]=(...A)=>(t||=function(A){var e=AA(A).sym;return!e&&g&&(e=g[A]),e||(e=I[A]),e}(e),t(...A)));return A[e]}}),a={"GOT.mem":new Proxy({},H),"GOT.func":new Proxy({},H),env:C,wasi_snapshot_preview1:C};function r(A,g){function t(A,e){for(var I=[],g=0;g<16&&-1!=e.indexOf("$"+g);g++)I.push("$"+g);I=I.join(","),p("DYNAMIC_EXECUTION=0 was set, cannot eval")}if(X(n,i.tableSize),I=_(g.exports,o),e.allowUndefined||nA(),"__start_em_asm"in I)for(var C=I.__start_em_asm,a=I.__stop_em_asm;C<a;){t(0,IA(C)),C=B.indexOf(0,C)+1}function r(A,e,I){var g=[];if("void"!=(e=e.slice(1,-1)))for(var t in e=e.split(",")){var i=e[t].split(" ").pop();g.push(i.replace("*",""))}p("DYNAMIC_EXECUTION=0 was set, cannot eval")}for(var s in I)if(s.startsWith("__em_js__")){C=I[s];var c=IA(C).split("<::>");r(s.replace("__em_js__",""),c[0],c[1]),delete I[s]}var Q=I.__wasm_apply_data_relocs;Q&&(l?Q():d.push(Q));var E,w=I.__wasm_call_ctors;return w&&(l?w():(E=w,eA.push(E))),I}if(e.loadAsync)return(async()=>{var e;return A instanceof WebAssembly.Module?e=new WebAssembly.Instance(A,a):({module:A,instance:e}=await WebAssembly.instantiate(A,a)),r(0,e)})();var s=A instanceof WebAssembly.Module?A:new WebAssembly.Module(A);return r(0,new WebAssembly.Instance(s,a))}return F=i.weakImports,(e={...e,rpath:{parentLibPath:I,paths:i.runtimePaths}}).loadAsync?i.neededDynlibs.reduce((A,I)=>A.then(()=>oA(I,e,g)),Promise.resolve()).then(o):(i.neededDynlibs.forEach(A=>oA(A,e,g)),o())},tA=(A,e)=>{for(var[I,g]of Object.entries(A)){const A=A=>{$(A)||(kA[A]=g)};A(I);const e="__main_argc_argv";"main"==I&&A(e),I==e&&A("main")}},iA=async A=>{var e=await i(A);return new Uint8Array(e)};function oA(A,e={global:!0,nodelete:!0},I,g){var t=v.loadedLibsByName[A];if(t)return e.global&&(t.global||(t.global=!0,tA(t.exports))),e.nodelete&&t.refcount!==1/0&&(t.refcount=1/0),t.refcount++,!e.loadAsync||Promise.resolve(!0);function i(){var I=n+A;if(e.loadAsync)return iA(I);if(!o)throw new Error(`${I}: file not found, and synchronous loading of external files is not available`);return o(I)}function C(){return e.loadAsync?i().then(g=>gA(g,e,A,I)):gA(i(),e,A,I)}function a(A){t.global&&tA(A),t.exports=A}return(t=P(A,g,"loading")).refcount=e.nodelete?1/0:1,t.global=e.global,e.loadAsync?C().then(A=>(a(A),!0)):(a(C()),!0)}var nA=()=>{for(var[A,e]of Object.entries(K))if(0==e.value){var I=AA(A,!0).sym;if(!I&&!e.required)continue;if("function"==typeof I)e.value=Z(I,I.sig);else{if("number"!=typeof I)throw new Error(`bad export type for '${A}': ${typeof I}`);e.value=I}}},CA=()=>{Q.length?(y(),Q.reduce((A,e)=>A.then(()=>oA(e,{loadAsync:!0,global:!0,nodelete:!0,allowUndefined:!0})),Promise.resolve()).then(()=>{nA(),D()})):nA()},aA=(A,e,I,g)=>p(`Assertion failed: ${IA(A)}, at: `+[e?IA(e):"unknown filename",I,g?IA(g):"unknown function"]);aA.sig="vppip";var rA=new WebAssembly.Global({value:"i32",mutable:!1},4096),sA=new WebAssembly.Global({value:"i32",mutable:!0},562400),BA=new WebAssembly.Global({value:"i32",mutable:!1},1),cA=()=>p("");cA.sig="v";var QA=()=>{};QA.sig="v";var EA={},lA=A=>{C=A,t(0,new k(A))};lA.sig="vi";var wA=A=>{if(!E)try{A()}catch(A){(A=>{if(A instanceof k||"unwind"==A)return C;t(0,A)})(A)}},dA=()=>performance.now();dA.sig="d";var hA=(A,e)=>{if(EA[A]&&(clearTimeout(EA[A].id),delete EA[A]),!e)return 0;var I=setTimeout(()=>{delete EA[A],wA(()=>fA(A,dA()))},e);return EA[A]={id:I,timeout_ms:e},0};hA.sig="iid";var fA,uA,yA,DA=A=>{var e=(A-s.buffer.byteLength+65535)/65536|0;try{return s.grow(e),w(),1}catch(A){}},pA=A=>{var e=B.length,I=2147483648;if((A>>>=0)>I)return!1;for(var g=1;g<=4;g*=2){var t=e+65536/g,i=Math.min(I,L(Math.max(A,t),65536));if(DA(i))return!0}return!1};pA.sig="ip";for(var mA=new Uint8Array(123),SA=25;SA>=0;--SA)mA[48+SA]=52+SA,mA[65+SA]=SA,mA[97+SA]=26+SA;mA[43]=62,mA[47]=63,function(){s=I.wasmMemory?I.wasmMemory:new WebAssembly.Memory({initial:32,maximum:32768});w()}();var kA={__assert_fail:aA,__heap_base:J,__indirect_function_table:T,__memory_base:rA,__stack_pointer:sA,__table_base:BA,_abort_js:cA,_emscripten_runtime_keepalive_clear:QA,_setitimer_js:hA,emscripten_resize_heap:pA,memory:s,proc_exit:lA},MA=await async function(){function A(A,e){MA=A.exports,MA=_(MA,4096);var g=b(e);return g.neededDynlibs&&(Q=g.neededDynlibs.concat(Q)),tA(MA),v.init(),CA(),d.push(MA.__wasm_apply_data_relocs),function(A){I._argon2=A.argon2,I._malloc=A.malloc,I._free=A.free,I._encrypt_chachapoly_asymmetric=A.encrypt_chachapoly_asymmetric,I._decrypt_chachapoly_asymmetric=A.decrypt_chachapoly_asymmetric,I._keypair_from_seed=A.keypair_from_seed,I._keypair_from_secret_key=A.keypair_from_secret_key,I._sign=A.sign,I._verify=A.verify,I._get_merkle_root=A.get_merkle_root,I._get_merkle_proof=A.get_merkle_proof,I._get_merkle_root_from_proof=A.get_merkle_root_from_proof,I._verify_merkle_proof=A.verify_merkle_proof,fA=A._emscripten_timeout,uA=A.calloc,yA=A.realloc,A._emscripten_stack_alloc,A.__wasm_apply_data_relocs}(MA),D(),MA}y();var e={env:kA,wasi_snapshot_preview1:kA,"GOT.mem":new Proxy(kA,H),"GOT.func":new Proxy(kA,H)};h??=N("AGFzbQEAAAAAEQhkeWxpbmsuMAEG4IkCBAIAAWsQYAJ/fwBgA39/fwBgAn9/AX9gAABgAX8AYAR/f39/AX9gAX8Bf2ADf39/AX9gA39/fgBgBH9/f38AYAR/f39+AGAFf39+f38AYAJ/fAF/YAJ/fABgB39/f39/f38Bf2AIf39/f39/f38BfwKtAgwWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MQlwcm9jX2V4aXQABANlbnYjX2Vtc2NyaXB0ZW5fcnVudGltZV9rZWVwYWxpdmVfY2xlYXIAAwNlbnYNX3NldGl0aW1lcl9qcwAMA2VudhZlbXNjcmlwdGVuX3Jlc2l6ZV9oZWFwAAYDZW52CV9hYm9ydF9qcwADA2Vudg1fX2Fzc2VydF9mYWlsAAkDZW52D19fc3RhY2tfcG9pbnRlcgN/AQNlbnYNX19tZW1vcnlfYmFzZQN/AANlbnYMX190YWJsZV9iYXNlA38AB0dPVC5tZW0LX19oZWFwX2Jhc2UDfwEDZW52Bm1lbW9yeQIBIICAAgNlbnYZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQFwAAIDPj0AAQQBAAYAAAgBCAAAAQAHBgAJAgYBCAEABAAJAAoACwEBAwMAAgcCAgYCBAQNAgUFBQcFBQIHDgMPBQMDB+ICExFfX3dhc21fY2FsbF9jdG9ycwBCBmFyZ29uMgBABm1hbGxvYwALBGZyZWUACB1lbmNyeXB0X2NoYWNoYXBvbHlfYXN5bW1ldHJpYwA/HWRlY3J5cHRfY2hhY2hhcG9seV9hc3ltbWV0cmljAD0Ra2V5cGFpcl9mcm9tX3NlZWQAPBdrZXlwYWlyX2Zyb21fc2VjcmV0X2tleQA7BHNpZ24AOgZ2ZXJpZnkAOQ9nZXRfbWVya2xlX3Jvb3QAOBBnZXRfbWVya2xlX3Byb29mADcaZ2V0X21lcmtsZV9yb290X2Zyb21fcHJvb2YANhN2ZXJpZnlfbWVya2xlX3Byb29mADUTX2Vtc2NyaXB0ZW5fdGltZW91dAAzBmNhbGxvYwAwB3JlYWxsb2MANBdfZW1zY3JpcHRlbl9zdGFja19hbGxvYwAvGF9fd2FzbV9hcHBseV9kYXRhX3JlbG9jcwBBCAE+CQgBACMCCwIxMgwBAQrI3gU9ywYCG34HfyAAIAEoAgwiHUEB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dkEBcSACQQF0cjoAEyAAIAYgAkEadWoiA0ENdjoAGCAAIANBBXY6ABcgACADQQN0IAJBgICAHHFBF3ZyOgAWIAAgBSADQRl1aiICQQx2OgAbIAAgAkEEdjoAGiAAIAJBBHQgA0GAgIAPcUEVdnI6ABkgACABIAJBGnVqIgFBCnY6AB4gACABQQJ2OgAdIAAgAUGAgPAPcUESdjoAHyAAIAFBBnQgAkGAgMAfcUEUdnI6ABwL9AYCBn4DfyMAQdAFayIKJAACQCACUA0AIAAgACkDSCIDIAJCA4Z8IgQ3A0ggACAAKQNAIAMgBFatfDcDQCAAQdAAaiEJQoABIANCA4hC/wCDIgR9IgcgAlgEQEIAIQMgBEL/AIVCA1oEQCAHQvwBgyEFA0AgCSADIAR8p2ogASADp2otAAA6AAAgCSADQgGEIgggBHynaiABIAinai0AADoAACAJIANCAoQiCCAEfKdqIAEgCKdqLQAAOgAAIAkgA0IDhCIIIAR8p2ogASAIp2otAAA6AAAgA0IEfCIDIAVSDQALCyAHQgODIgVCAFIEQANAIAkgAyAEfKdqIAEgA6dqLQAAOgAAIANCAXwhAyAGQgF8IgYgBVINAAsLIAAgCSAKIApBgAVqIgsQGCABIAenaiEBIAIgB30iAkL/AFYEQANAIAAgASAKIAsQGCABQYABaiEBIAJCgAF9IgJC/wBWDQALCwJAIAJQDQBCACEGQgAhAyACQgRaBEAgAkL8AIMhBANAIAkgA6ciAGogACABai0AADoAACAJIABBAXIiC2ogASALai0AADoAACAJIABBAnIiC2ogASALai0AADoAACAJIABBA3IiAGogACABai0AADoAACADQgR8IgMgBFINAAsLIAJCA4MiAlANAANAIAkgA6ciAGogACABai0AADoAACADQgF8IQMgBkIBfCIGIAJSDQALCyAKIAo2AswFQQAhAANAIAooAswFIABqQQA6AAAgCigCzAUgAGpBADoAASAKKALMBSAAakEAOgACIAooAswFIABqQQA6AAMgAEEEciIBIAooAswFakEAOgAAIAooAswFIAFqQQA6AAEgCigCzAUgAWpBADoAAiAKKALMBSABakEAOgADIABBCGoiAEHABUcNAAsMAQtCACEDIAJCBFoEQCACQvz///8PgyEHA0AgCSADIAR8p2ogASADp2otAAA6AAAgCSADQgGEIgUgBHynaiABIAWnai0AADoAACAJIANCAoQiBSAEfKdqIAEgBadqLQAAOgAAIAkgA0IDhCIFIAR8p2ogASAFp2otAAA6AAAgA0IEfCIDIAdSDQALCyACQgODIgJQDQADQCAJIAMgBHynaiABIAOnai0AADoAACADQgF8IQMgBkIBfCIGIAJSDQALCyAKQdAFaiQAC54DAQt/IwBB4ARrIgMkACADIAApAiA3A8gBIAMgACkCGDcDwAEgAyAAKQIQNwO4ASADIAApAgg3A7ABIAMgACkCADcDqAEgAyAAKQIwNwPYASADIAApAjg3A+ABIAMgAEFAaykCADcD6AEgAyAAKQJINwPwASADIAApAig3A9ABIAMgACkCWDcDgAIgAyAAKQJgNwOIAiADIAApAmg3A5ACIAMgACkCcDcDmAIgAyAAKQJQNwP4ASAAQdAAaiEIIABBKGohCSADQdgAaiEEIANBMGohBiADQYABaiEFIANB+AFqIQsgA0HQAWohDANAIANBCGoiByADQagBaiINEBIgDSAHIAUQByAMIAYgBBAHIAsgBCAFEAcgCkEBaiIKIAFHDQALIAAgByAFEAcgCSAGIAQQByAIIAQgBRAHIABB+ABqIgEgByAGEAcgA0HAA2oiBCACEAogA0GgAmoiBSAAIAQQCSAAIAUgA0GYA2oiABAHIAkgA0HIAmoiAiADQfACaiIEEAcgCCAEIAAQByABIAUgAhAHIANB4ARqJAALzQQCBn4CfwJAIAApAzgiBEIAUgRAAkBCECAEfSIDIAIgAiADVhsiBVANACAAQUBrIQlCACEDIAVCBFoEQCAFQvz///8PgyEHA0AgCSADIAR8p2ogASADp2otAAA6AAAgCSADQgGEIgggBHynaiABIAinai0AADoAACAJIANCAoQiCCAEfKdqIAEgCKdqLQAAOgAAIAkgA0IDhCIIIAR8p2ogASAIp2otAAA6AAAgA0IEfCIDIAdSDQALCyAFQgODIgdQDQADQCAJIAMgBHynaiABIAOnai0AADoAACADQgF8IQMgBkIBfCIGIAdSDQALCyAAIAQgBXwiAzcDOCADQhBUDQEgACAAQUBrQhAQHCAAQgA3AzggAiAFfSECIAEgBadqIQELIAJCEFoEQCAAIAEgAkJwgyIDEBwgAkIPgyECIAEgA6dqIQELIAJQDQAgAkIDgyEFIABBQGshCiAAKQM4IQRCACEGAn5CACACQgRUDQAaIAogBKdqIgkgAS0AADoAACAJIAEtAAE6AAEgCSABLQACOgACIAkgAS0AAzoAA0IEIAJCDIMiB0IEUQ0AGiAJIAEtAAQ6AAQgCSABLQAFOgAFIAkgAS0ABjoABiAJIAEtAAc6AAdCCCAHQghRDQAaIAkgAS0ACDoACCAJIAEtAAk6AAkgCSABLQAKOgAKIAkgAS0ACzoAC0IMCyEDIAVCAFIEQANAIAogAyAEfKdqIAEgA6dqLQAAOgAAIANCAXwhAyAGQgF8IgYgBVINAAsLIAAgAiAEfDcDOAsL5QoCAX4DfyMAQdAFayIDJAAgACAAKAJIQQN2Qf8AcSIEakHQAGohBQJAIARB8ABPBEBBgAEgBGsiBARAIAUjAUHABWogBPwKAAALIAAgAEHQAGoiBCADIANBgAVqEBggBEEAQfAA/AsADAELQfAAIARrIgRFDQAgBSMBQcAFaiAE/AoAAAsgACAAKQNAIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3AMABIAAgACkDSCICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISENwDIASAAIABB0ABqIAMgA0GABWoQGCABIAApAwAiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhDcAACABIAApAwgiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhDcACCABIAApAxAiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhDcAECABIAApAxgiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhDcAGCABIAApAyAiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhDcAICABIAApAygiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhDcAKCABIAApAzAiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhDcAMCABIAApAzgiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhDcAOCADIAM2AswFQQAhAQNAIAMoAswFIAFqQQA6AAAgAygCzAUgAWpBADoAASADKALMBSABakEAOgACIAMoAswFIAFqQQA6AAMgAUEEciIEIAMoAswFakEAOgAAIAMoAswFIARqQQA6AAEgAygCzAUgBGpBADoAAiADKALMBSAEakEAOgADIAFBCGoiAUHABUcNAAsgAyAANgLMBUEAIQEDQCADKALMBSABakEAOgAAIAMoAswFIAFqQQA6AAEgAygCzAUgAWpBADoAAiADKALMBSABakEAOgADIAFBBHIiACADKALMBWpBADoAACADKALMBSAAakEAOgABIAMoAswFIABqQQA6AAIgAygCzAUgAGpBADoAAyABQQhqIgFB0AFHDQALIANB0AVqJAAL2Q4CHH4efyMAQTBrIh4kACAAIAEQBiAAQdAAaiABQShqEAYgACABKAJcIiJBAXSsIgggASgCVCIjQQF0rCICfiABKAJYIiSsIg0gDX58IAEoAmAiJawiByABKAJQIiZBAXSsIgV+fCABKAJsIh9BJmysIg4gH6wiEX58IAEoAnAiJ0ETbKwiAyABKAJoIiBB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ASkDeIVCIIkiAiABKQNYIgZ8IAJC/////w+DIAZCAYZC/v///x+DfnwiBiAHhUIoiSIHIAV8IAdC/////w+DIAVCAYZC/v///x+DfnwiBSAChUIwiSICIAEpAygiAyABKQMIIgR8IARCAYZC/v///x+DIANC/////w+DfnwiBCABKQNohUIgiSIKIAEpA0giC3wgCkL/////D4MgC0IBhkL+////H4N+fCILIAOFQiiJIgMgBHwgA0L/////D4MgBEIBhkL+////H4N+fCIEIAqFQjCJIgogC3wgCkL/////D4MgC0IBhkL+////H4N+fCILIAOFQgGJIgMgASkDICIOIAEpAwAiCXwgCUIBhkL+////H4MgDkL/////D4N+fCIJIAEpA2CFQiCJIg8gAUFAayIZKQMAIhJ8IA9C/////w+DIBJCAYZC/v///x+DfnwiEiAOhUIoiSIOIAl8IA5C/////w+DIAlCAYZC/v///x+DfnwiCXwgA0L/////D4MgCUIBhkL+////H4N+fCIIhUIgiSITIAEpAzAiECABKQMQIgx8IAxCAYZC/v///x+DIBBC/////w+DfnwiDCABKQNwhUIgiSIRIAEpA1AiDXwgEUL/////D4MgDUIBhkL+////H4N+fCINIBCFQiiJIhAgDHwgEEL/////D4MgDEIBhkL+////H4N+fCIMIBGFQjCJIhEgDXwgEUL/////D4MgDUIBhkL+////H4N+fCINfCATQv////8PgyANQgGGQv7///8fg358IhQgA4VCKIkiAyAIfCADQv////8PgyAIQgGGQv7///8fg358Igg3AwAgASAIIBOFQjCJIgg3A3ggASAIIBR8IAhC/////w+DIBRCAYZC/v///x+DfnwiCDcDUCABIAMgCIVCAYk3AyggASANIBCFQgGJIgMgBHwgA0L/////D4MgBEIBhkL+////H4N+fCIEIAkgD4VCMIkiCYVCIIkiDyACIAZ8IAJC/////w+DIAZCAYZC/v///x+DfnwiAnwgD0L/////D4MgAkIBhkL+////H4N+fCIGIAOFQiiJIgMgBHwgA0L/////D4MgBEIBhkL+////H4N+fCIIIA+FQjCJIgQ3A2AgASAINwMIIAEgBCAGfCAEQv////8PgyAGQgGGQv7///8fg358IgYgA4VCAYk3AzAgASAGNwNYIAEgAiAHhUIBiSIHIAx8IAdC/////w+DIAxCAYZC/v///x+DfnwiAiAKhUIgiSIGIAkgEnwgCUL/////D4MgEkIBhkL+////H4N+fCIDfCAGQv////8PgyADQgGGQv7///8fg358IgQgB4VCKIkiByACfCAHQv////8PgyACQgGGQv7///8fg358IgI3AxAgASACIAaFQjCJIgI3A2ggGSACIAR8IAJC/////w+DIARCAYZC/v///x+DfnwiBDcDACABIAUgAyAOhUIBiSICfCAFQgGGQv7///8fgyACQv////8Pg358IgUgEYVCIIkiBiALfCAGQv////8PgyALQgGGQv7///8fg358IgMgAoVCKIkiAiAFfCACQv////8PgyAFQgGGQv7///8fg358IgogBoVCMIkiBSADfCAFQv////8PgyADQgGGQv7///8fg358IgY3A0ggASAFNwNwIAEgCjcDGCABIAQgB4VCAYk3AzggASACIAaFQgGJNwMgIBdBAWoiF0EIRw0ACwNAIBhBgBhqIBZBBHRqIgEgASkDiAMiByABKQOIASIFfCAFQgGGQv7///8fgyAHQv////8Pg358IgUgASkDiAeFQiCJIgIgASkDiAUiBnwgAkL/////D4MgBkIBhkL+////H4N+fCIGIAeFQiiJIgcgBXwgB0L/////D4MgBUIBhkL+////H4N+fCIFIAKFQjCJIgIgASkDiAIiAyABKQMIIgR8IARCAYZC/v///x+DIANC/////w+DfnwiBCABKQOIBoVCIIkiCiABKQOIBCILfCAKQv////8PgyALQgGGQv7///8fg358IgsgA4VCKIkiAyAEfCADQv////8PgyAEQgGGQv7///8fg358IgQgCoVCMIkiCiALfCAKQv////8PgyALQgGGQv7///8fg358IgsgA4VCAYkiAyABKQOAAiIOIAEpAwAiCXwgCUIBhkL+////H4MgDkL/////D4N+fCIJIAEpA4AGhUIgiSIPIAEpA4AEIhJ8IA9C/////w+DIBJCAYZC/v///x+DfnwiEiAOhUIoiSIOIAl8IA5C/////w+DIAlCAYZC/v///x+DfnwiCXwgA0L/////D4MgCUIBhkL+////H4N+fCIIhUIgiSITIAEpA4ADIhAgASkDgAEiDHwgDEIBhkL+////H4MgEEL/////D4N+fCIMIAEpA4AHhUIgiSIRIAEpA4AFIg18IBFC/////w+DIA1CAYZC/v///x+DfnwiDSAQhUIoiSIQIAx8IBBC/////w+DIAxCAYZC/v///x+DfnwiDCARhUIwiSIRIA18IBFC/////w+DIA1CAYZC/v///x+DfnwiDXwgE0L/////D4MgDUIBhkL+////H4N+fCIUIAOFQiiJIgMgCHwgA0L/////D4MgCEIBhkL+////H4N+fCIINwMAIAEgCCAThUIwiSIINwOIByABIAggFHwgCEL/////D4MgFEIBhkL+////H4N+fCIINwOABSABIAMgCIVCAYk3A4gCIAEgDSAQhUIBiSIDIAR8IANC/////w+DIARCAYZC/v///x+DfnwiBCAJIA+FQjCJIgmFQiCJIg8gAiAGfCACQv////8PgyAGQgGGQv7///8fg358IgJ8IA9C/////w+DIAJCAYZC/v///x+DfnwiBiADhUIoiSIDIAR8IANC/////w+DIARCAYZC/v///x+DfnwiCCAPhUIwiSIENwOABiABIAg3AwggASAEIAZ8IARC/////w+DIAZCAYZC/v///x+DfnwiBiADhUIBiTcDgAMgASAGNwOIBSABIAIgB4VCAYkiByAMfCAHQv////8PgyAMQgGGQv7///8fg358IgIgCoVCIIkiBiAJIBJ8IAlC/////w+DIBJCAYZC/v///x+DfnwiA3wgBkL/////D4MgA0IBhkL+////H4N+fCIEIAeFQiiJIgcgAnwgB0L/////D4MgAkIBhkL+////H4N+fCICNwOAASABIAIgBoVCMIkiAjcDiAYgASACIAR8IAJC/////w+DIARCAYZC/v///x+DfnwiBDcDgAQgASAFIAMgDoVCAYkiAnwgBUIBhkL+////H4MgAkL/////D4N+fCIFIBGFQiCJIgYgC3wgBkL/////D4MgC0IBhkL+////H4N+fCIDIAKFQiiJIgIgBXwgAkL/////D4MgBUIBhkL+////H4N+fCIKIAaFQjCJIgUgA3wgBUL/////D4MgA0IBhkL+////H4N+fCIGNwOIBCABIAU3A4AHIAEgCjcDiAEgASAEIAeFQgGJNwOIAyABIAIgBoVCAYk3A4ACIBZBAWoiFkEIRw0ACyAdIBhBgBBqQYAI/AoAAEEAIRYDQCAdIBZBA3QiAWoiFyAXKQMAIBhBgBhqIh4gAWopAwCFNwMAIB0gAUEIciIXaiIZIBkpAwAgFyAeaikDAIU3AwAgHSABQRByIhdqIhkgGSkDACAYQYAYaiAXaikDAIU3AwAgHSABQRhyIgFqIhcgFykDACAYQYAYaiABaikDAIU3AwAgFkEEaiIWQYABRw0ACwsgIUEBaiEWIBxBAWohHCAaQQFqIhogACgCFCIXSQ0ACwsgGEGAIGokAAuUBQIFfwJ+IwBB0ABrIgMkAAJAIAIEQEF/IQQgACkAUFAEQCAAKADgAiIFQYEBTwRAIAAgACkAQCIIQoABfDcAQCAAIAApAEggCEL/flatfDcASCAAIABB4ABqIgUQDCAAIAAoAOACQYABayIENgDgAiAEQYEBTw0DIAQEQCAFIABB4AFqIAT8CgAACyAAKADgAiEFCyAAIAApAEAiCCAFrXwiCTcAQCAAIAApAEggCCAJVq18NwBIIAAtAOQCBEAgAEJ/NwBYCyAAQn83AFAgAEHgAGohBkEAIQRBgAIgBWsiBwRAIAUgBmpBACAH/AsACyAAIAYQDCADIAApAAA3AwAgAyAAKQAINwMIIAMgACkAEDcDECADIAApABg3AxggAyAAKQAgNwMgIAMgACkAKDcDKCADIAApADA3AzAgAyAAKQA4NwM4IAIEQCABIAMgAvwKAAALIAMgADYCTANAIAMoAkwgBGpBADoAACADKAJMIARqQQA6AAEgAygCTCAEakEAOgACIAMoAkwgBGpBADoAAyAEQQRyIgAgAygCTGpBADoAACADKAJMIABqQQA6AAEgAygCTCAAakEAOgACIAMoAkwgAGpBADoAAyAEQQhqIgRBwABHDQALIAMgBjYCTEEAIQQDQCADKAJMIARqQQA6AAAgAygCTCAEakEAOgABIAMoAkwgBGpBADoAAiADKAJMIARqQQA6AAMgBEEEciIAIAMoAkxqQQA6AAAgAygCTCAAakEAOgABIAMoAkwgAGpBADoAAiADKAJMIABqQQA6AAMgBEEIaiIEQYACRw0AC0EAIQQLIANB0ABqJAAgBA8LECkACyMBIgBBs4ACaiAAQcb/AWpBsgIgAEGw/wFqEAUAC2wBAn8gAEEHakF4cSEBIwFB0IICaiICKAIAIgBFBEAgAiMDIgA2AgALAkAgAUEAIAAgAWoiASAATRtFBEAgAT8AQRB0TQ0BIAEQAw0BCyMBQeSEAmpBMDYCAEF/DwsjAUHQggJqIAE2AgAgAAvKCAEDfyMAQcABayICJAAgAkGQAWoiBCABEAYgAkHgAGoiAyAEEAYgAyADEAYgAyABIAMQByAEIAQgAxAHIAJBMGoiASAEEAYgAyADIAEQByABIAMQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiADIAEgAxAHIAEgAxAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgASADEAcgAiABEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgASACIAEQByABIAEQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiADIAEgAxAHIAEgAxAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgASADEAcgAiABEAZBASEBA0AgAiACEAYgAUEBaiIBQeQARw0ACyACQTBqIgEgAiABEAcgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgAkHgAGoiAyABIAMQByADIAMQBiADIAMQBiADIAMQBiADIAMQBiADIAMQBiAAIAMgAkGQAWoQByACQcABaiQAC+cXAhF+Cn8DQCACIBVBA3QiF2ogASAXaikAACIEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISENwMAIBVBAWoiFUEQRw0ACyADIAApAwA3AwAgAyAAKQM4NwM4IAMgACkDMDcDMCADIAApAyg3AyggAyAAKQMgNwMgIAMgACkDGDcDGCADIAApAxA3AxAgAyAAKQMINwMIA0AgAyADKQM4IAIgGEEDdCIVaiIBKQMAIAMpAyAiCUIyiSAJQi6JhSAJQheJhXwjAUFAayIXIBVqKQMAfCAJIAMpAzAiCiADKQMoIgiFgyAKhXx8IgQgAykDGHwiCzcDGCADIAMpAwAiBUIkiSAFQh6JhSAFQhmJhSAEfCADKQMQIgYgAykDCCIHhCAFgyAGIAeDhHwiBDcDOCADIAYgAiAVQQhyIhZqIhwpAwAgCiAIIAsgCCAJhYOFfCALQjKJIAtCLomFIAtCF4mFfHwgFiAXaikDAHwiCnwiBjcDECADIAQgBSAHhIMgBSAHg4QgCnwgBEIkiSAEQh6JhSAEQhmJhXwiCjcDMCADIAcgCCACIBVBEHIiFmopAwB8IBYgF2opAwB8IAkgBiAJIAuFg4V8IAZCMokgBkIuiYUgBkIXiYV8Igx8Igg3AwggAyAKIAQgBYSDIAQgBYOEIApCJIkgCkIeiYUgCkIZiYV8IAx8Igc3AyggAyAFIAkgAiAVQRhyIhZqKQMAfCAWIBdqKQMAfCAIIAYgC4WDIAuFfCAIQjKJIAhCLomFIAhC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AGYgAS0AMHI6ADAgASABLQBnIAEtADByOgAwIAEgAS0AaCABLQAwcjoAMCABIAEtAGkgAS0AMHI6ADAgASABLQBqIAEtADByOgAwIAEgAS0AayABLQAwcjoAMCABIAEtAGwgAS0AMHI6ADAgASABLQBtIAEtADByOgAwIAEgAS0AbiABLQAwcjoAMCABIAEtAG8gAS0AMHI6ADAgASABLQBwIAEtADByOgAwIAEgAS0AcSABLQAwcjoAMCABIAEtAHIgAS0AMHI6ADAgASABLQBzIAEtADByOgAwIAEgAS0AdCABLQAwcjoAMCABIAEtAHUgAS0AMHI6ADAgASABLQB2IAEtADByOgAwIAEgAS0AdyABLQAwcjoAMCABIAEtAHggAS0AMHI6ADAgASABLQB5IAEtADByOgAwIAEgAS0AeiABLQAwcjoAMCABIAEtAHsgAS0AMHI6ADAgASABLQB8IAEtADByOgAwIAEgAS0AfSABLQAwcjoAMCABIAEtAH4gAS0AMHI6ADAgASABLQB/IAEtADByOgAwIAEtADAhDCADIABBKGogAhAHIAFBMGoiAiADEA0gAUEAOgAAIAEgAS0AMCABLQAAcjoAACABIAEtADEgAS0AAHI6AAAgASABLQAyIAEtAAByOgAAIAEgAS0AMyABLQAAcjoAACABIAEtADQgAS0AAHI6AAAgASABLQA1IAEtAAByOgAAIAEgAS0ANiABLQAAcjoAACABIAEtADcgAS0AAHI6AAAgASABLQA4IAEtAAByOgAAIAEgAS0AOSABLQAAcjoAACABIAEtADogAS0AAHI6AAAgASABLQA7IAEtAAByOgAAIAEgAS0APCABLQAAcjoAACABIAEtAD0gAS0AAHI6AAAgASABLQA+IAEtAAByOgAAIAEgAS0APyABLQAAcjoAACABIAEtAEAgAS0AAHI6AAAgASABLQBBIAEtAAByOgAAIAEgAS0AQiABLQAAcjoAACABIAEtAEMgAS0AAHI6AAAgASABLQBEIAEtAAByOgAAIAEgAS0ARSABLQAAcjoAACABIAEtAEYgAS0AAHI6AAAgASABLQBHIAEtAAByOgAAIAEgAS0ASCABLQAAcjoAACABIAEtAEkgAS0AAHI6AAAgASABLQBKIAEtAAByOgAAIAEgAS0ASyABLQAAcjoAACABIAEt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EGsiGCQAIBhBgAhqIAFBgAj8CgAAQQAhAQNAIAFBA3QiFiAYQYAIaiIaaiIXIBcpAwAgACAWaikDAIU3AwAgGiAWQQhyIhdqIhkgGSkDACAAIBdqKQMAhTcDACAaIBZBEHIiF2oiGSAZKQMAIAAgF2opAwCFNwMAIBogFkEYciIWaiIXIBcpAwAgACAWaikDAIU3AwAgAUEEaiIBQYABRw0ACyAYIBpBgAj8CgAAQQAhAEEAIQEDQCAYIAFBA3QiFmoiFyAXKQMAIAIgFmopAwCFNwMAIBggFkEIciIXaiIZIBkpAwAgAiAXaikDAIU3AwAgGCAWQRByIhdqIhkgGSkDACACIBdqKQMAhTcDACAYIBZBGHIiFmoiFyAXKQMAIAIgFmopAwCFNwMAIAFBBGoiAUGAAUcNAAsDQCAYQYAIaiAAQQd0aiIBIAEpAzgiCCABKQMYIgd8IAdCAYZC/v///x+DIAhC/////w+DfnwiByABKQN4hUIgiSIEIAEpA1giBXwgBUIBhkL+////H4MgBEL/////D4N+fCIFIAiFQiiJIgggB3wgCEL/////D4MgB0IBhkL+////H4N+fCIHIASFQjCJIgQgASkDKCIDIAEpAwgiBnwgBkIBhkL+////H4MgA0L/////D4N+fCIGIAEpA2iFQiCJIgsgASkDSCIMfCAMQgGGQv7///8fgyALQv////8Pg358IgwgA4VCKIkiAyAGfCADQv////8PgyAGQgGGQv7///8fg358IgYgC4VCMIkiCyAMfCALQv////8PgyAMQgGGQv7///8fg358IgwgA4VCAYkiAyABKQMgIg8gASkDACIKfCAKQgGGQv7///8fgyAPQv////8Pg358IgogASkDYIVCIIkiECABQUBrIhYpAwAiE3wgE0IBhkL+////H4MgEEL/////D4N+fCITIA+FQiiJIg8gCnwgD0L/////D4MgCkIBhkL+////H4N+fCIKfCADQv////8PgyAKQgGGQv7///8fg358IgmFQiCJIhQgASkDMCIRIAEpAxAiDXwgDUIBhkL+////H4MgEUL/////D4N+fCINIAEpA3CFQiCJIhIgASkDUCIOfCAOQgGGQv7///8fgyASQv////8Pg358Ig4gEYVCKIkiESANfCARQv////8PgyANQgGGQv7///8fg358Ig0gEoVCMIkiEiAOfCASQv////8PgyAOQgGGQv7///8fg358Ig58IBRC/////w+DIA5CAYZC/v///x+DfnwiFSADhUIoiSIDIAl8IANC/////w+DIAlCAYZC/v///x+DfnwiCTcDACABIAkgFIVCMIkiCTcDeCABIAkgFXwgCUL/////D4MgFUIBhkL+////H4N+fCIJNwNQIAEgAyAJhUIBiTcDKCABIAQgBXwgBEL/////D4MgBUIBhkL+////H4N+fCIEIA4gEYVCAYkiBSAGfCAFQv////8PgyAGQgGGQv7///8fg358IgMgCiAQhUIwiSIGhUIgiSIKfCAEQgGGQv7///8fgyAKQv////8Pg358IhAgBYVCKIkiBSADfCAFQv////8PgyADQgGGQv7///8fg358IgkgCoVCMIkiAzcDYCABIAk3AwggASAFIAMgEHwgA0L/////D4MgEEIBhkL+////H4N+fCIFhUIBiTcDMCABIAU3A1ggASAEIAiFQgGJIgggDXwgCEL/////D4MgDUIBhkL+////H4N+fCIEIAuFQiCJIgUgBiATfCAGQv////8PgyATQgGGQv7///8fg358IgN8IAVC/////w+DIANCAYZC/v///x+DfnwiBiAIhUIoiSIIIAR8IAhC/////w+DIARCAYZC/v///x+DfnwiBDcDECABIAQgBYVCMIkiBDcDaCAWIAQgBnwgBEL/////D4MgBkIBhkL+////H4N+fCIGNwMAIAEgByADIA+FQgGJIgR8IAdCAYZC/v///x+DIARC/////w+DfnwiByAShUIgiSIFIAx8IAVC/////w+DIAxCAYZC/v///x+DfnwiAyAEhUIoiSIEIAd8IARC/////w+DIAdCAYZC/v///x+DfnwiCyAFhUIwiSIHIAN8IAdC/////w+DIANCAYZC/v///x+DfnwiBTcDSCABIAc3A3AgASALNwMYIAEgBiAIhUIBiTcDOCABIAQgBYVCAYk3AyAgAEEBaiIAQQhHDQALQQAhAANAIBhBgAhqIABBBHRqIgEgASkDiAMiCCABKQOIASIHfCAHQgGGQv7///8fgyAIQv////8Pg358IgcgASkDiAeFQiCJIgQgASkDiAUiBXwgBUIBhkL+////H4MgBEL/////D4N+fCIFIAiFQiiJIgggB3wgCEL/////D4MgB0IBhkL+////H4N+fCIHIASFQjCJIgQgASkDiAIiAyABKQMIIgZ8IAZCAYZC/v///x+DIANC/////w+DfnwiBiABKQOIBoVCIIkiCyABKQOIBCIMfCAMQgGGQv7///8fgyALQv////8Pg358IgwgA4VCKIkiAyAGfCADQv////8PgyAGQgGGQv7///8fg358IgYgC4VCMIkiCyAMfCALQv////8PgyAMQgGGQv7///8fg358IgwgA4VCAYkiAyABKQOAAiIPIAEpAwAiCnwgCkIBhkL+////H4MgD0L/////D4N+fCIKIAEpA4AGhUIgiSIQIAEpA4AEIhN8IBNCAYZC/v///x+DIBBC/////w+DfnwiEyAPhUIoiSIPIAp8IA9C/////w+DIApCAYZC/v///x+DfnwiCnwgA0L/////D4MgCkIBhkL+////H4N+fCIJhUIgiSIUIAEpA4ADIhEgASkDgAEiDXwgDUIBhkL+////H4MgEUL/////D4N+fCINIAEpA4AHhUIgiSISIAEpA4AFIg58IA5CAYZC/v///x+DIBJC/////w+DfnwiDiARhUIoiSIRIA18IBFC/////w+DIA1CAYZC/v///x+DfnwiDSAShUIwiSISIA58IBJC/////w+DIA5CAYZC/v///x+DfnwiDnwgFEL/////D4MgDkIBhkL+////H4N+fCIVIAOFQiiJIgMgCXwgA0L/////D4MgCUIBhkL+////H4N+fCIJNwMAIAEgCSAUhUIwiSIJNwOIByABIAkgFXwgCUL/////D4MgFUIBhkL+////H4N+fCIJNwOABSABIAMgCYVCAYk3A4gCIAEgBCAFfCAEQv////8PgyAFQgGGQv7///8fg358IgQgDiARhUIBiSIFIAZ8IAVC/////w+DIAZCAYZC/v///x+DfnwiAyAKIBCFQjCJIgaFQiCJIgp8IARCAYZC/v///x+DIApC/////w+DfnwiECAFhUIoiSIFIAN8IAVC/////w+DIANCAYZC/v///x+DfnwiCSAKhUIwiSIDNwOABiABIAk3AwggASAFIAMgEHwgA0L/////D4MgEEIBhkL+////H4N+fCIFhUIBiTcDgAMgASAFNwOIBSABIAQgCIVCAYkiCCANfCAIQv////8PgyANQgGGQv7///8fg358IgQgC4VCIIkiBSAGIBN8IAZC/////w+DIBNCAYZC/v///x+DfnwiA3wgBUL/////D4MgA0IBhkL+////H4N+fCIGIAiFQiiJIgggBHwgCEL/////D4MgBEIBhkL+////H4N+fCIENwOAASABIAQgBYVCMIkiBDcDiAYgASAEIAZ8IARC/////w+DIAZCAYZC/v///x+DfnwiBjcDgAQgASAHIAMgD4VCAYkiBHwgB0IBhkL+////H4MgBEL/////D4N+fCIHIBKFQiCJIgUgDHwgBUL/////D4MgDEIBhkL+////H4N+fCIDIASFQiiJIgQgB3wgBEL/////D4MgB0IBhkL+////H4N+fCILIAWFQjCJIgcgA3wgB0L/////D4MgA0IBhkL+////H4N+fCIFNwOIBCABIAc3A4AHIAEgCzcDiAEgASAGIAiFQgGJNwOIAyABIAQgBYVCAYk3A4ACIABBAWoiAEEIRw0ACyACIBhBgAj8CgAAQQAhAANAIAIgAEEDdCIBaiIWIBYpAwAgGEGACGoiGSABaikDAIU3AwAgAiABQQhyIhZqIhcgFykDACAWIBlqKQMAhTcDACACIAFBEHIiFmoiFyAXKQMAIBhBgAhqIBZqKQMAhTcDACACIAFBGHIiAWoiFiAWKQMAIBhBgAhqIAFqKQMAhTcDACAAQQRqIgBBgAFHDQALIBhBgBBqJAALogQCDn4Kf0EAQYCAgAggAC0AUBshFiAAKAIEIhdBBWytIQ8gACgCCCIYQQVsrSENIAAoAgwiGUEFbK0hCyAAKAIQIhpBBWytIQkgADUCACEIIAAoAiQhEiAAKAIgIRMgACgCHCEUIAAoAhghFSAAKAIUIREgGq0hECAZrSEOIBitIQwgF60hCgNAIAEoAANBAnZB////H3EgFWqtIgMgDn4gASgAAEH///8fcSARaq0iBCAQfnwgASgABkEEdkH///8fcSAUaq0iBSAMfnwgASgACUEGdiATaq0iBiAKfnwgEiAWaiABKAAMQQh2aq0iByAIfnwgAyAMfiAEIA5+fCAFIAp+fCAGIAh+fCAHIAl+fCADIAp+IAQgDH58IAUgCH58IAYgCX58IAcgC358IAMgCH4gBCAKfnwgBSAJfnwgBiALfnwgByANfnwgAyAJfiAEIAh+fCAFIAt+fCAGIA1+fCAHIA9+fCIDQhqIQv////8Pg3wiBEIaiEL/////D4N8IgVCGohC/////w+DfCIGQhqIQv////8Pg3wiB0IaiKdBBWwgA6dB////H3FqIhFBGnYgBKdB////H3FqIRUgBadB////H3EhFCAGp0H///8fcSETIAenQf///x9xIRIgEUH///8fcSERIAFBEGohASACQhB9IgJCD1YNAAsgACASNgIkIAAgEzYCICAAIBQ2AhwgACAVNgIYIAAgETYCFAvWCQEcfyABKAIAIQMgASgCKCEEIAEoAgQhBSABKAIsIQYgASgCCCEHIAEoAjAhCCABKAIMIQkgASgCNCEKIAEoAhAhCyABKAI4IQwgASgCFCENIAEoAjwhDiABKAIYIQ8gASgCQCEQIAEoAhwhESABKAJEIRIgASgCICETIAEoAkghFCAAIAEoAiQgASgCTGo2AiQgACATIBRqNgIgIAAgESASajYCHCAAIA8gEGo2AhggACANIA5qNgIUIAAgCyAMajYCECAAIAkgCmo2AgwgACAHIAhqNgIIIAAgBSAGajYCBCAAIAMgBGo2AgAgASgCACEDIAEoAighBCABKAIEIQUgASgCLCEGIAEoAgghByABKAIwIQggASgCDCEJIAEoAjQhCiABKAIQIQsgASgCOCEMIAEoAhQhDSABKAI8IQ4gASgCGCEPIAEoAkAhECABKAIcIREgASgCRCESIAEoAiAhEyABKAJIIRQgACABKAJMIAEoAiRrNgJMIAAgFCATazYCSCAAIBIgEWs2AkQgACAQIA9rNgJAIAAgDiANazYCPCAAIAwgC2s2AjggACAKIAlrNgI0IAAgCCAHazYCMCAAIAYgBWs2AiwgACAEIANrNgIoIABB0ABqIAAgAhAHIABBKGoiAyADIAJBKGoQByAAQfgAaiACQdAAaiABQfgAahAHIAEoAlAhEyABKAJUIRQgASgCWCEVIAEoAlwhFiABKAJgIRcgASgCZCEYIAEoAmghGSABKAJsIRogASgCcCEbIAEoAnQhHCAAKAIoIQEgACgCUCECIAAoAiwhAyAAKAJUIQQgACgCMCEFIAAoAlghBiAAKAI0IQcgACgCXCEIIAAoAjghCSAAKAJgIQogACgCPCELIAAoAmQhDCAAKAJAIQ0gACgCaCEOIAAoAkQhDyAAKAJsIRAgACgCSCERIAAoAnAhEiAAIAAoAkwiHSAAKAJ0Ih5qNgJMIAAgESASajYCSCAAIA8gEGo2AkQgACANIA5qNgJAIAAgCyAMajYCPCAAIAkgCmo2AjggACAHIAhqNgI0IAAgBSAGajYCMCAAIAMgBGo2AiwgACABIAJqNgIoIAAgHiAdazYCJCAAIBIgEWs2AiAgACAQIA9rNgIcIAAgDiANazYCGCAAIAwgC2s2AhQgACAKIAlrNgIQIAAgCCAHazYCDCAAIAYgBWs2AgggACAEIANrNgIEIAAgAiABazYCACAAIBxBAXQiASAAKAKcASICazYCnAEgACAbQQF0IgMgACgCmAEiBGs2ApgBIAAgGkEBdCIFIAAoApQBIgZrNgKUASAAIBlBAXQiByAAKAKQASIIazYCkAEgACAYQQF0IgkgACgCjAEiCms2AowBIAAgF0EBdCILIAAoAogBIgxrNgKIASAAIBZBAXQiDSAAKAKEASIOazYChAEgACAVQQF0Ig8gACgCgAEiEGs2AoABIAAgFEEBdCIRIAAoAnwiEms2AnwgACATQQF0IhMgACgCeCIUazYCeCAAIAMgBGo2AnAgACAFIAZqNgJsIAAgByAIajYCaCAAIAkgCmo2AmQgACALIAxqNgJgIAAgDSAOajYCXCAAIA8gEGo2AlggACARIBJqNgJUIAAgEyAUajYCUCAAIAEgAmo2AnQL9AQBGX4gATUAACEGIAExAB8hAiABMQAeIQ4gATEAHSEPIAExAAYhByABMQAFIQggATEABCEDIAExAAkhECABMQAIIREgATEAByESIAExAAwhCSABMQALIQogATEACiELIAExAA8hDCABMQAOIRMgATEADSEUIAExABwhBCABMQAbIRUgATEAGiEWIAExABkhBSABMQAYIRcgATEAFyEYIAAgATEAFUIPhiABMQAUQgeGhCABMQAWQheGhCABNQAQIhlCgICACHwiGkIZiHwiDSANQoCAgBB8Ig1CgICA4A+DfT4CGCAAIBdCDYYgGEIFhoQgBUIVhoQiBSANQhqIfCAFQoCAgAh8IgVCgICA8AODfT4CHCAAIBVCDIYgFkIEhoQgBEIUhoQgBUIZiHwiBCAEQoCAgBB8IgRCgICA4A+DfT4CICAAIBkgGkKAgIDwD4N9IBNCCoYgFEIChoQgDEIShoQgCkILhiALQgOGhCAJQhOGhCIJQoCAgAh8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////H3EiBkEFaiIJQRp2IARB////H3EgBUEadmoiBWoiCkEadiACQf///x9xIgtqIgxBGnYgCEH///8fcSIIaiINQRp2IAdB////H3FqIg5BgICAIGsiAkEfdSIEIAVxIAJBH3ZBAWsiBUH///8fcSICIApxciIKQRp0IAIgCXEgBCAGcXJyIgYgACgCKGoiCTYAACABIAYgCUutIBEgBCALcSACIAxxciIGQRR0IApBBnZyrXx8IhE+AAQgASAQIAQgCHEgAiANcXIiAkEOdCAGQQx2cq18IBFCIIh8IhA+AAggASAPIAUgDnEgBCAHcXJBCHQgAkESdnKtfCAQQiCIfD4ADCADIAA2AgxBACEAA0AgAygCDCAAakEAOgAAIAMoAgwgAGpBADoAASADKAIMIABqQQA6AAIgAygCDCAAakEAOgADIABBBHIiASADKAIMakEAOgAAIAMoAgwgAWpBADoAASADKAIMIAFqQQA6AAIgAygCDCABakEAOgADIABBCGoiAEHYAEcNAAsgA0EQaiQAC80CAQF/IwBB0ABrIgUkACACQgBSBEAgBUKy2ojLx66ZkOsANwIUIAVC5fDBi+aNmZAzNwIMIAUgBCgAADYCHCAFIAQoAAQ2AiAgBSAEKAAINgIkIAUgBCgADDYCKCAFIAQoABA2AiwgBSAEKAAUNgIwIAUgBCgAGDYCNCAEKAAcIQQgBUEBNgI8IAUgBDYCOCAFIAMoAAA2AkAgBSADKAAENgJEIAUgAygACDYCSCAFQQxqIgMgASAAIAIQIyAFIAM2AkxBACEEA0AgBSgCTCAEakEAOgAAIAUoAkwgBGpBADoAASAFKAJMIARqQQA6AAIgBSgCTCAEakEAOgADIARBBHIiACAFKAJMakEAOgAAIAUoAkwgAGpBADoAASAFKAJMIABqQQA6AAIgBSgCTCAAakEAOgADIARBCGoiBEHAAEcNAAsLIAVB0ABqJAAL/gIBAX8jAEHQAGsiAyQAIANCstqIy8eumZDrADcCFCADQuXwwYvmjZmQMzcCDCADIAIoAAA2AhwgAyACKAAENgIgIAMgAigACDYCJCADIAIoAAw2AiggAyACKAAQNgIsIAMgAigAFDYCMCADIAIoABg2AjQgAigAHCECIANBADYCPCADIAI2AjggAyABKAAANgJAIAMgASgABDYCRCADIAEoAAg2AkggAEIANwA4IABCADcAMCAAQgA3ACggAEIANwAgIABCADcAGCAAQgA3ABAgAEIANwAIIABCADcAACADQQxqIgEgACAAQsAAECMgAyABNgJMQQAhAANAIAMoAkwgAGpBADoAACADKAJMIABqQQA6AAEgAygCTCAAakEAOgACIAMoAkwgAGpBADoAAyAAQQRyIgEgAygCTGpBADoAACADKAJMIAFqQQA6AAEgAygCTCABakEAOgACIAMoAkwgAWpBADoAAyAAQQhqIgBBwABHDQALIANB0ABqJAALsgUBCX8jAEGAAWsiAyQAIwEiBUHYiAJqIgQtAAAhBiAAQgA3AgQgAEEBNgIAIABCADcCDCAAQgA3AhQgAEIANwIcIABCgICAgBA3AiQgAEEsakEAQcwA/AsAIAAgBUGwD2ogAUHAB2xqIgEgBC0AAEECdiACIAJBACAGQQJ2IAJBgAFxQQd2cyIFa3FBAXRrIgJBAXNB/wFxQQFrQR92cxATIAAgAUH4AGogBC0AAEECdiACQQJzQf8BcUEBa0EfdnMQEyAAIAFB8AFqIAQtAABBAnYgAkEDc0H/AXFBAWtBH3ZzEBMgACABQegCaiAELQAAQQJ2IAJBBHNB/wFxQQFrQR92cxATIAAgAUHgA2ogBC0AAEECdiACQQVzQf8BcUEBa0EfdnMQEyAAIAFB2ARqIAQtAABBAnYgAkEGc0H/AXFBAWtBH3ZzEBMgACABQdAFaiAELQAAQQJ2IAJBB3NB/wFxQQFrQR92cxATIAAgAUHIBmogBC0AAEECdiACQQhzQf8BcUEBa0EfdnMQEyADIAApAkg3AyggAyAAQUBrKQIANwMgIAMgACkCODcDGCADIAApAjA3AxAgAyAAKQIoNwMIIAMgACkCCDcDOCADQUBrIAApAhA3AwAgAyAAKQIYNwNIIAMgACkCIDcDUCADIAApAgA3AzAgACgCUCEBIAAoAlQhAiAAKAJYIQQgACgCXCEGIAAoAmAhByAAKAJkIQggACgCaCEJIAAoAmwhCiAAKAJwIQsgA0EAIAAoAnRrNgJ8IANBACALazYCeCADQQAgCms2AnQgA0EAIAlrNgJwIANBACAIazYCbCADQQAgB2s2AmggA0EAIAZrNgJkIANBACAEazYCYCADQQAgAms2AlwgA0EAIAFrNgJYIAAgA0EIaiAFEBMgA0GAAWokAAsFABAEAAsFABAoAAuuCAEDfyMAQZABayIDJAAgA0HgAGoiBCABEAYgA0EwaiICIAQQBiACIAIQBiACIAEgAhAHIAQgBCACEAcgBCAEEAYgBCACIAQQByACIAQQBiACIAIQBiACIAIQBiACIAIQBiACIAIQBiAEIAIgBBAHIAIgBBAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAiAEEAcgAyACEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAiADIAIQByACIAIQBiACIAIQBiACIAIQBiACIAIQBiACIAIQBiACIAIQBiACIAIQBiACIAIQBiACIAIQBiACIAIQBiAEIAIgBBAHIAIgBBAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAiAEEAcgAyACEAZBASECA0AgAyADEAYgAkEBaiICQeQARw0ACyADQTBqIgIgAyACEAcgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgA0HgAGoiBCACIAQQByAEIAQQBiAEIAQQBiAAIAQgARAHIANBkAFqJAALyw8BF38jAEHQAmsiAiQAIABBKGoiBiABEB4gAEIANwJUIABBATYCUCAAQgA3AlwgAEIANwJkIABCADcCbCAAQQA2AnQgAkHwAWoiBSAGEAYgAkHAAWoiBCAFIwFBwAZqEAdBfyEHIAIgAigC8AFBAWsiCDYC8AEgAiACKALAAUEBajYCwAEgAigC9AEhCSACKAL4ASEKIAIoAvwBIQsgAigCgAIhDCACKAKEAiENIAIoAogCIQ4gAigCjAIhDyACKAKQAiEQIAIoApQCIREgAkGQAWoiAyAEEAYgAyADIAQQByAAIAMQBiAAIAAgBBAHIAAgACAFEAcgACAAECogACAAIAMQByAAIAAgBRAHIAJB4ABqIgMgABAGIAMgAyAEEAcgAiACKAKEASIEIBFrNgJUIAIgAigCgAEiAyAQazYCUCACIAIoAnwiBSAPazYCTCACIAIoAngiEiAOazYCSCACIAIoAnQiEyANazYCRCACIAIoAnAiFCAMazYCQCACIAIoAmwiFSALazYCPCACIAIoAmgiFiAKazYCOCACIAIoAmQiFyAJazYCNCACIAIoAmAiGCAIazYCMCACIAJBMGoQDSACQQA6AKACIAIgAi0AACACLQCgAnI6AKACIAIgAi0AASACLQCgAnI6AKACIAIgAi0AAiACLQCgAnI6AKACIAIgAi0AAyACLQCgAnI6AKACIAIgAi0ABCACLQCgAnI6AKACIAIgAi0ABSACLQCgAnI6AKACIAIgAi0ABiACLQCgAnI6AKACIAIgAi0AByACLQCgAnI6AKACIAIgAi0ACCACLQCgAnI6AKACIAIgAi0ACSACLQCgAnI6AKACIAIgAi0ACiACLQCgAnI6AKACIAIgAi0ACyACLQCgAnI6AKACIAIgAi0ADCACLQCgAnI6AKACIAIgAi0ADSACLQCgAnI6AKACIAIgAi0ADiACLQCgAnI6AKACIAIgAi0ADyACLQCgAnI6AKACIAIgAi0AECACLQCgAnI6AKACIAIgAi0AESACLQCgAnI6AKACIAIgAi0AEiACLQCgAnI6AKACIAIgAi0AEyACLQCgAnI6AKACIAIgAi0AFCACLQCgAnI6AKACIAIgAi0AFSACLQCgAnI6AKACIAIgAi0AFiACLQCgAnI6AKACIAIgAi0AFyACLQCgAnI6AKACIAIgAi0AGCACLQCgAnI6AKACIAIgAi0AGSACLQCgAnI6AKACIAIgAi0AGiACLQCgAnI6AKACIAIgAi0AGyACLQCgAnI6AKACIAIgAi0AHCACLQCgAnI6AKACIAIgAi0AHSACLQCgAnI6AKACIAIgAi0AHiACLQCgAnI6AKACIAIgAi0AHyACLQCgAnI6AKACAkAgAi0AoAJBAWtBgAJxRQRAIAIgBCARajYCJCACIAMgEGo2AiAgAiAFIA9qNgIcIAIgDiASajYCGCACIA0gE2o2AhQgAiAMIBRqNgIQIAIgCyAVajYCDCACIAogFmo2AgggAiAJIBdqNgIEIAIgCCAYajYCACACQaACaiACEA0gAkEAOgDPAiACIAItAKACIAItAM8CcjoAzwIgAiACLQChAiACLQDPAnI6AM8CIAIgAi0AogIgAi0AzwJyOgDPAiACIAItAKMCIAItAM8CcjoAzwIgAiACLQCkAiACLQDPAnI6AM8CIAIgAi0ApQIgAi0AzwJyOgDPAiACIAItAKYCIAItAM8CcjoAzwIgAiACLQCnAiACLQDPAnI6AM8CIAIgAi0AqAIgAi0AzwJyOgDPAiACIAItAKkCIAItAM8CcjoAzwIgAiACLQCqAiACLQDPAnI6AM8CIAIgAi0AqwIgAi0AzwJyOgDPAiACIAItAKwCIAItAM8CcjoAzwIgAiACLQCtAiACLQDPAnI6AM8CIAIgAi0ArgIgAi0AzwJyOgDPAiACIAItAK8CIAItAM8CcjoAzwIgAiACLQCwAiACLQDPAnI6AM8CIAIgAi0AsQIgAi0AzwJyOgDPAiACIAItALICIAItAM8CcjoAzwIgAiACLQCzAiACLQDPAnI6AM8CIAIgAi0AtAIgAi0AzwJyOgDPAiACIAItALUCIAItAM8CcjoAzwIgAiACLQC2AiACLQDPAnI6AM8CIAIgAi0AtwIgAi0AzwJyOgDPAiACIAItALgCIAItAM8CcjoAzwIgAiACLQC5AiACLQDPAnI6AM8CIAIgAi0AugIgAi0AzwJyOgDPAiACIAItALsCIAItAM8CcjoAzwIgAiACLQC8AiACLQDPAnI6AM8CIAIgAi0AvQIgAi0AzwJyOgDPAiACIAItAL4CIAItAM8CcjoAzwIgAiACLQC/AiACLQDPAnI6AM8CIAItAM8CQQFrQYACcUUNASAAIAAjAUHwBmoQBwsgAkGgAmogABANIAItAKACQQFxIAEtAB9BB3ZGBEAgAEEAIAAoAiRrNgIkIABBACAAKAIgazYCICAAQQAgACgCHGs2AhwgAEEAIAAoAhhrNgIYIABBACAAKAIUazYCFCAAQQAgACgCEGs2AhAgAEEAIAAoAgxrNgIMIABBACAAKAIIazYCCCAAQQAgACgCBGs2AgQgAEEAIAAoAgBrNgIACyAAQfgAaiAAIAYQB0EAIQcLIAJB0AJqJAAgBwu7IwJBfw1+IwBBgAVrIgMkACADQQA6AA8DQCACIAVqLQAAIgYjAUHwgAJqIAVqIgQtAMABcyAOciEOIAYgBC0AoAFzIAlyIQkgBiAELQCAAXMgDHIhDCAGIAQtAGBzIAhyIQggBiAELQBAcyALciELIAYgBC0AIHMgB3IhByAGIAQtAABzIApyIQogBUEBaiIFQR9HDQALQX8hBCACLQAfQf8AcSIGIAdyQf8BcUEBayAGIApyQf8BcUEBa3IgBiALckH/AXFBAWtyIAZB1wBzIAhyQf8BcUEBa3IgBkH/AHMiBiAMckH/AXFBAWtyIAYgCXJB/wFxQQFrciAGIA5yQf8BcUEBa3JBgAJxRQRAIAMgASkAGDcD6AQgAyABKQAQNwPgBCADIAEpAAAiRDcD0AQgAyABKQAINwPYBCADIESnQfgBcToA0AQgAyADLQDvBEE/cUHAAHI6AO8EIANBoARqIAIQHiADQgA3AoQEIANCADcCjAQgA0EANgKUBCADQgA3A6ADIANCADcDqAMgA0IANwOwAyADIAMpA7AENwPQAyADIAMpA7gENwPYAyADIAMpA8AENwPgAyADQgA3AvQDIANBATYC8AMgA0IANwL8AyADQgA3A5ADIANCADcDmAMgAyADKQOgBDcDwAMgAyADKQOoBDcDyAMgA0IANwL0AiADQgA3AvwCIANBADYChAMgA0IANwLkAiADQQE2AuACIANCADcC7AJB/gEhAkEAIQYDQCADKAKUBCEEIAMoAuQDIQUgAygC1AMhCiADKAKEBCEHIAMoAtgDIQsgAygCiAQhCCADKALcAyEMIAMoAowEIQkgAygC4AMhDiADKAKQBCESIAMoAtADIRMgAygCgAQhDyADKALMAyEUIAMoAvwDIRAgAygCyAMhFSADKAL4AyERIAMoAsQDIRYgAygC9AMhGSADKAK0AyENIAMoAoQDIR4gA0EAIAYgA0HQBGoiMCACIgFBA3ZqLQAAIAJBB3F2QQFxIgZzayICIAMoAsADIiwgAygC8AMiF3NxIi0gF3MiFzYC8AMgAyAZIBYgGXMgAnEiLnMiGTYC9AMgAyARIBEgFXMgAnEiMXMiETYC+AMgAyAQIBAgFHMgAnEiMnMiEDYC/AMgAyAPIA8gE3MgAnEiM3MiDzYCgAQgAygCkAMhHyADKALgAiEgIAMoApQDISEgAygC5AIhIiADKAKYAyEYIAMoAugCISMgAygCnAMhJCADKALsAiElIAMoAqADISYgAygC8AIhKSADKAKkAyEaIAMoAvQCIScgAygCqAMhGyADKAL4AiEoIAMoAqwDIRwgAygC/AIhKiADKAKwAyEdIAMoAoADISsgAyANIA0gHnMgAnEiNHMiDSAEIAQgBXMgAnEiNXMiBGo2AtQCIAMgHSAdICtzIAJxIjZzIh0gEiAOIBJzIAJxIjdzIhJqNgLQAiADIBwgHCAqcyACcSI4cyIcIAkgCSAMcyACcSI5cyIJajYCzAIgAyAbIBsgKHMgAnEiOnMiGyAIIAggC3MgAnEiO3MiCGo2AsgCIAMgGiAaICdzIAJxIjxzIhogByAHIApzIAJxIj1zIgdqNgLEAiADIAQgDWs2AqQCIAMgEiAdazYCoAIgAyAJIBxrNgKcAiADIAggG2s2ApgCIAMgByAaazYClAIgAyAmICYgKXMgAnEiDXMiBCAPajYCwAIgAyAkICQgJXMgAnEiJnMiByAQajYCvAIgAyAYIBggI3MgAnEiJHMiCCARajYCuAIgAyAhICEgInMgAnEiGHMiCSAZajYCtAIgAyAfIB8gIHMgAnEiIXMiAiAXajYCsAIgAyAPIARrNgKQAiADIBAgB2s2AowCIAMgESAIazYCiAIgAyAZIAlrNgKEAiADIBcgAms2AoACIANB0AFqIgIgA0GwAmoiPhAGIANBoAFqIgQgA0GAAmoiPxAGIANB8ANqIi8gAiAEEAcgAygCwAEhAiADKALwASEXIAMoArwBIQQgAygC7AEhHyADKAK4ASEHIAMoAugBIRogAygCtAEhCCADKALkASEbIAMoArABIQkgAygC4AEhHCADKAKsASESIAMoAtwBIR0gAygCqAEhDyADKALYASFAIAMoAqQBIRAgAygC1AEhQSADKALEASERIAMoAvQBIUIgAygCoAEhGSADKALQASFDIAMgBSA1cyIFIB4gNHMiHms2AmQgAyAOIDdzIg4gKyA2cyIrazYCYCADIAwgOXMiDCAqIDhzIiprNgJcIAMgCyA7cyILICggOnMiKGs2AlggAyAKID1zIgogJyA8cyInazYCVCADIBMgM3MiEyANIClzIg1rNgJQIAMgFCAycyIUICUgJnMiJWs2AkwgAyAVIDFzIhUgIyAkcyIjazYCSCADIBYgLnMiFiAYICJzIiJrNgJEIAMgLCAtcyIYICAgIXMiIGs2AkAgAyBDIBlrIiQ2AnAgAyBCIBFrIiY2ApQBIAMgQSAQayIpNgJ0IAMgQCAPayIsNgJ4IAMgHSASayIdNgJ8IAMgHCAJayIcNgKAASADIBsgCGsiGzYChAEgAyAaIAdrIho2AogBIAMgHyAEayItNgKMASADIBcgAmsiLjYCkAEgA0FAayIXIBcgPhAHIAMgBSAeajYCNCADIA4gK2o2AjAgAyAMICpqNgIsIAMgCyAoajYCKCADIAogJ2o2AiQgAyANIBNqNgIgIAMgFCAlajYCHCADIBUgI2o2AhggAyAWICJqNgIUIAMgGCAgajYCECADQRBqIgUgBSA/EAcgAygCECEFIAMoAkAhCiADKAIUIQsgAygCRCEMIAMoAhghDiADKAJIIRMgAygCHCEUIAMoAkwhFSADKAIgIRYgAygCUCENIAMoAiQhHiADKAJUIRcgAygCKCEfIAMoAlghICADKAIsISEgAygCXCEiIAMoAjAhGCADKAJgISMgAyADKAI0IiUgAygCZCInajYC5AMgAyAYICNqNgLgAyADICEgImo2AtwDIAMgHyAgajYC2AMgAyAXIB5qNgLUAyADIA0gFmo2AtAD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IAJByBpqIAUgBhAHIAJB8BpqIAYgARAHIAJBmBtqIAMgBRAHIAQgEhAKIAMgFiAEEAkgAkGAGWoiGSADIAEQByACQagZaiAFIAYQByACQdAZaiAGIAEQByACQfgZaiADIAUQByAEIBkQCiADIBYgBBAJIAJB4BdqIhsgAyABEAcgAkGIGGogBSAGEAcgAkGwGGogBiABEAcgAkHYGGogAyAFEAcgBCAbEAogAyAYIAQQCSACQcAWaiIcIAMgARAHIAJB6BZqIAUgBhAHIAJBkBdqIAYgARAHIAJBuBdqIAMgBRAHIAcgAkGAGGopAgA3AwAgCSACQfgXaikCADcDACAMIAJB8BdqKQIANwMAIA0gAkHoF2opAgA3AwAgDiACQZAYaikCADcDACAPIAJBmBhqKQIANwMAIBAgAkGgGGopAgA3AwAgESACQagYaikCADcDACACIAIpAuAXNwOAHiACIAIpAogYNwOoHiATIAJB0BhqKQIANwMAIBQgAkHIGGopAgA3AwAgFSACQcAYaikCADcDACAXIAJBuBhqKQIANwMAIAIgAikCsBg3A9AeIAQgAxASIAJBoBVqIh0gBCAKEAcgAkHIFWogCyAIEAcgAkHwFWogCCAKEAcgAkGYFmogBCALEAcgByACQcAVaikCADcDACAJIAJBuBVqKQIANwMAIAwgAkGwFWopAgA3AwAgDSACQagVaikCADcDACAOIAJB0BVqKQIANwMAIA8gAkHYFWopAgA3AwAgECACQeAVaikCADcDACARIAJB6BVqKQIANwMAIAIgAikCoBU3A4AeIAIgAikCyBU3A6geIBMgAkGQFmopAgA3AwAgFCACQYgWaikCADcDACAVIAJBgBZqKQIANwMAIBcgAkH4FWopAgA3AwAgAiACKQLwFTcD0B4gBCADEBIgAkGAFGoiGiAEIAoQByACQagUaiALIAgQByACQdAUaiAIIAoQByACQfgUaiAEIAsQByAEIBoQCiADIBkgBBAJIAJB4BJqIhogAyABEAcgAkGIE2ogBSAGEAcgAkGwE2ogBiABEAcgAkHYE2ogAyAFEAcgByACQaAUaikCADcDACAJIAJBmBRqKQIANwMAIAwgAkGQFGopAgA3AwAgDSACQYgUaikCADcDACAOIAJBsBRqKQIANwMAIA8gAkG4FGopAgA3AwAgECACQcAUaikCADcDACARIAJByBRqKQIANwMAIAIgAikCgBQ3A4AeIAIgAikCqBQ3A6geIBMgAkHwFGopAgA3AwAgFCACQegUaikCADcDACAVIAJB4BRqKQIANwMAIBcgAkHYFGopAgA3AwAgAiACKQLQFDcD0B4gBCADEBIgAkHAEWoiByAEIAoQByACQegRaiALIAgQByACQZASaiAIIAoQByACQbgSaiAEIAsQByAEIAcQCiADIB0gBBAJIAJBoBBqIgggAyABEAcgAkHIEGogBSAGEAcgAkHwEGogBiABEAcgAkGYEWogAyAFEAcgBCAIEAogAyAYIAQQCSACQYAPaiIMIAMgARAHIAJBqA9qIAUgBhAHIAJB0A9qIAYgARAHIAJB+A9qIAMgBRAHIAQgDBAKIAMgHSAEEAkgAkHgDWoiDyADIAEQByACQYgOaiAFIAYQByACQbAOaiAGIAEQByACQdgOaiADIAUQByAEIA8QCiADIBIgBBAJIAJBwAxqIhAgAyABEAcgAkHoDGogBSAGEAcgAkGQDWogBiABEAcgAkG4DWogAyAFEAcgBCAQEAogAyASIAQQCSACQaALaiITIAMgARAHIAJByAtqIAUgBhAHIAJB8AtqIAYgARAHIAJBmAxqIAMgBRAHIAQgDBAKIAMgByAEEAkgAkGACmoiDSADIAEQByACQagKaiAFIAYQByACQdAKaiAGIAEQByACQfgKaiADIAUQByAEIA0QCiADIBIgBBAJIAJB4AhqIg4gAyABEAcgAkGICWogBSAGEAcgAkGwCWogBiABEAcgAkHYCWogAyAFEAcgBCAOEAogAyAaIAQQCSACQcAHaiIUIAMgARAHIAJB6AdqIAUgBhAHIAJBkAhqIAYgARAHIAJBuAhqIAMgBRAHIAQgDRAKIAMgByAEEAkgAkGgBmoiFSADIAEQByACQcgGaiAFIAYQByACQfAGaiAGIAEQByACQZgHaiADIAUQByAEIA4QCiADIAggBBAJIAJBgAVqIhEgAyABEAcgAkGoBWogBSAGEAcgAkHQBWogBiABEAcgAkH4BWogAyAFEAcgBCAREAogAyAZIAQQCSACQeADaiISIAMgARAHIAJBiARqIAUgBhAHIAJBsARqIAYgARAHIAJB2ARqIAMgBRAHIAQgEhAKIAMgGyAEEAkgAkHAAmoiCSADIAEQByACQegCaiAFIAYQByACQZADaiAGIAEQByACQbgDaiADIAUQByAEIAkQCiADIBwgBBAJIAJBoAFqIgcgAyABEAcgAkHIAWoiCiAFIAYQByACQfABaiILIAYgARAHIAJBmAJqIgggAyAFEAcgB0H+ACAMEA8gB0EJIBYQDyAEIAkQCiADIAcgBBAJIAcgAyABEAcgCiAFIAYQByALIAYgARAHIAggAyAFEAcgB0EHIBAQDyAHQQkgCRAPIAdBCyAUEA8gB0EIIBEQDyAHQQkgExAPIAdBBiAcEA8gB0EOIA0QDyAHQQogDxAPIAdBCSAOEA8gB0EKIAkQDyAHQQggFRAPIAdBCCASEA8gBCAHEA0gAkEAOgCAHiACIAItAKAfIAItAIAecjoAgB4gAiACLQChHyACLQCAHnI6AIAeIAIgAi0Aoh8gAi0AgB5yOgCAHiACIAItAKMfIAItAIAecjoAgB4gAiACLQCkHyACLQCAHnI6AIAeIAIgAi0ApR8gAi0AgB5yOgCAHiACIAItAKYfIAItAIAecjoAgB4gAiACLQCnHyACLQCAHnI6AIAeIAIgAi0AqB8gAi0AgB5yOgCAHiACIAItAKkfIAItAIAecjoAgB4gAiACLQCqHyACLQCAHnI6AIAeIAIgAi0Aqx8gAi0AgB5yOgCAHiACIAItAKwfIAItAIAecjoAgB4gAiACLQCtHyACLQCAHnI6AIAeIAIgAi0Arh8gAi0AgB5yOgCAHiACIAItAK8fIAItAIAecjoAgB4gAiACLQCwHyACLQCAHnI6AIAeIAIgAi0AsR8gAi0AgB5yOgCAHiACIAItALIfIAItAIAecjoAgB4gAiACLQCzHyACLQCAHnI6AIAeIAIgAi0AtB8gAi0AgB5yOgCAHiACIAItALUfIAItAIAecjoAgB4gAiACLQC2HyACLQCAHnI6AIAeIAIgAi0Atx8gAi0AgB5yOgCAHiACIAItALgfIAItAIAecjoAgB4gAiACLQC5HyACLQCAHnI6AIAeIAIgAi0Auh8gAi0AgB5yOgCAHiACIAItALsfIAItAIAecjoAgB4gAiACLQC8HyACLQCAHnI6AIAeIAIgAi0AvR8gAi0AgB5yOgCAHiACIAItAL4fIAItAIAecjoAgB4gAiACLQC/HyACLQCAHnI6AIAeQX8hBSACLQCAHkEBa0GAAnFFDQAgAkEAIAIoAkwiAWs2AqQeIAJBACACKAJIIghrNgKgHiACQQAgAigCRCIFazYCnB4gAkEAIAIoAkAiB2s2ApgeIAJBACACKAI8IgZrNgKUHiACQQAgAigCOCIJazYCkB4gAkEAIAIoAjQiCms2AoweIAJBACACKAIwIgxrNgKIHiACQQAgAigCLCILazYChB4gAkEBIAIoAigiDWs2AoAeIAMgAxAXIAIgAigChB4iDqwiJiAGQQF0rCIvfiACNAKAHiIeIAesIiF+fCACKAKIHiIHrCIoIAmsIiJ+fCACKAKMHiIJrCIrIApBAXSsIjB+fCACKAKQHiIPrCIsIAysIiN+fCACKAKUHiIMrCIxIAtBAXSsIjJ+fCACKAKYHiIQrCI7IA1BAWqsIiR+fCACKAKcHiINQRNsrCInIAFBAXSsIjN+fCACKAKgHiIRQRNsrCIfIAisIiV+fCACKAKkHiIIQRNsrCIgIAVBAXSsIjR+fCAiICZ+IB4gBqwiNX58ICggCqwiNn58ICMgK358ICwgC6wiN358ICQgMX58IBBBE2ysIikgAawiOH58ICUgJ358IB8gBawiOX58ICAgIX58ICYgMH4gHiAifnwgIyAofnwgKyAyfnwgJCAsfnwgDEETbKwiOiAzfnwgJSApfnwgJyA0fnwgHyAhfnwgICAvfnwiPUKAgIAQfCI+QhqHfCI/QoCAgAh8IkBCGYd8Ii0gLUKAgIAQfCIuQoCAgOAPg30+ArgfIAIgJiAyfiAeICN+fCAkICh+fCAJQRNsrCIqIDN+fCAPQRNsrCItICV+fCA0IDp+fCAhICl+fCAnIC9+fCAfICJ+fCAgIDB+fCAkICZ+IB4gN358IAdBE2ysIjwgOH58ICUgKn58IC0gOX58ICEgOn58ICkgNX58ICIgJ358IB8gNn58ICAgI358IA5BE2ysIDN+IB4gJH58ICUgPH58ICogNH58ICEgLX58IC8gOn58ICIgKX58ICcgMH58IB8gI358ICAgMn58IjxCgICAEHwiQUIah3wiQkKAgIAIfCJDQhmHfCIqICpCgICAEHwiREKAgIDgD4N9PgKoHyACICEgJn4gHiA5fnwgKCA1fnwgIiArfnwgLCA2fnwgIyAxfnwgNyA7fnwgDawiKiAkfnwgHyA4fnwgICAlfnwgLkIah3wiLiAuQoCAgAh8Ii5CgICA8A+DfT4CvB8gAiAjICZ+IB4gNn58ICggN358ICQgK358IC0gOH58ICUgOn58ICkgOX58ICEgJ358IB8gNX58ICAgIn58IERCGod8Ih8gH0KAgIAIfCIfQoCAgPAPg30+AqwfIAIgJiA0fiAeICV+fCAhICh+fCArIC9+fCAiICx+fCAwIDF+fCAjIDt+fCAqIDJ+fCARrCInICR+fCAgIDN+fCAuQhmHfCIgICBCgICAEHwiIEKAgIDgD4N9PgLAHyACID8gQEKAgIDwD4N9ID0gPkKAgIBgg30gH0IZh3wiH0KAgIAQfCIpQhqIfD4CtB8gAiAfIClCgICA4A+DfT4CsB8gAiAlICZ+IB4gOH58ICggOX58ICEgK358ICwgNX58ICIgMX58IDYgO358ICMgKn58ICcgN358IAisICR+fCAgQhqHfCIeIB5CgICACHwiHkKAgIDwD4N9PgLEHyACIEIgQ0KAgIDwD4N9IDwgQUKAgIBgg30gHkIZh0ITfnwiHkKAgIAQfCIhQhqIfD4CpB8gAiAeICFCgICA4A+DfT4CoB8gACAEEA1BACEFCyACQcAgaiQAIAULhgYBFH8jAEGwAmsiAiQAIAAgAS0AADoAACAAIAEtAAE6AAEgACABLQACOgACIAAgAS0AAzoAAyAAIAEtAAQ6AAQgACABLQAFOgAFIAAgAS0ABjoABiAAIAEtAAc6AAcgACABLQAIOgAIIAAgAS0ACToACSAAIAEtAAo6AAogACABLQALOgALIAAgAS0ADDoADCAAIAEtAA06AA0gACABLQAOOgAOIAAgAS0ADzoADyAAIAEtABA6ABAgACABLQAROgARIAAgAS0AEjoAEiAAIAEtABM6ABMgACABLQAUOgAUIAAgAS0AFToAFSAAIAEtABY6ABYgACABLQAXOgAXIAAgAS0AGDoAGCAAIAEtABk6ABkgACABLQAaOgAaIAAgAS0AGzoAGyAAIAEtABw6ABwgACABLQAdOgAdIAAgAS0AHjoAHiABLQAfIQEgACAALQAAQfgBcToAACAAIAFBP3FBwAByOgAfIAJBMGogABAgIAIoAoABIQEgAigCWCEDIAIoAoQBIQQgAigCXCEFIAIoAogBIQYgAigCYCEHIAIoAowBIQggAigCZCEJIAIoApABIQogAigCaCELIAIoApQBIQwgAigCbCENIAIoApgBIQ4gAigCcCEPIAIoApwBIRAgAigCdCERIAIoAqABIRIgAigCeCETIAIgAigCfCIUIAIoAqQBIhVqNgKkAiACIBIgE2o2AqACIAIgECARajYCnAIgAiAOIA9qNgKYAiACIAwgDWo2ApQCIAIgCiALajYCkAIgAiAIIAlqNgKMAiACIAYgB2o2AogCIAIgBCAFajYChAIgAiABIANqNgKAAiACIBUgFGs2AvQBIAIgEiATazYC8AEgAiAQIBFrNgLsASACIA4gD2s2AugBIAIgDCANazYC5AEgAiAKIAtrNgLgASACIAggCWs2AtwBIAIgBiAHazYC2AEgAiAEIAVrNgLUASACIAEgA2s2AtABIAJB0AFqIgEgARAXIAIgAkGAAmogARAHIAAgAhANIAJBsAJqJABBAAsQACMAIABrQXBxIgAkACAAC6MDAgJ/AX4CQAJ/QQAgAEUNABogAK0gAa1+IgSnIgIgACABckGAgARJDQAaQX8gAiAEQiCIpxsLIgAQCyIBRQ0AIAFBBGstAABBA3FFDQACQCAARQ0AIAFBADoAACAAIAFqIgJBAWtBADoAACAAQQNJDQAgAUEAOgACIAFBADoAASACQQNrQQA6AAAgAkECa0EAOgAAIABBB0kNACABQQA6AAMgAkEEa0EAOgAAIABBCUkNACABQQAgAWtBA3EiAmoiA0EANgIAIAMgACACa0F8cSIAaiICQQRrQQA2AgAgAEEJSQ0AIANBADYCCCADQQA2AgQgAkEIa0EANgIAIAJBDGtBADYCACAAQRlJDQAgA0EANgIYIANBADYCFCADQQA2AhAgA0EANgIMIAJBEGtBADYCACACQRRrQQA2AgAgAkEYa0EANgIAIAJBHGtBADYCACAAIANBBHFBGHIiAGsiAkEgSQ0AIAAgA2ohAANAIABCADcDGCAAQgA3AxAgAEIANwMIIABCADcDACAAQSBqIQAgAkEgayICQR9LDQALCwsgAQsNABABIABBgAFqEAAACwUAECgAC3UBAX8gAEQAAAAAAAAAABACGgJAIwFB3IgCaigCAEEbQRpBDiAAQQFGGyAAQQJGGyIAQQFrdkEBcQRAIwFB3IkCaiICIAIoAgBBASAAQQFrdHI2AgAMAQsjAUHgggJqIABBAnRqKAIA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NwAoIAcgBCkAIDcAICAHIAQpABg3ABggByAEKQAQNwAQIAcgBCkACDcACCAHIAQpAAA3AAAgCUIANwMIIAlCADcDACAGIwEiBCkDODcDOCAGIAQpAzA3AzAgBiAEKQMoNwMoIAYgBCkDIDcDICAGIAQpAxg3AxggBiAEKQMQNwMQIAYgBCkDCDcDCCAGIAQpAwA3AwAgBiAFQoABEA4gBiABEBEgACAIQQFqIghHDQEMAgsLIAUQCEF9DAELIAUQCCABIAIQGUEARwsgBkHQAWokAAvRBAEHfyMAQdABayIEJAAgAyABKQAANwAAIAMgASkAODcAOCADIAEpADA3ADAgAyABKQAoNwAoIAMgASkAIDcAICADIAEpABg3ABggAyABKQAQNwAQIAMgASkACDcACAJ/AkAgAEEBRgRAQX8gAiABEBkNAhogAyABKQAANwAAIAMgASkAODcAOCADIAEpADA3ADAgAyABKQAoNwAoIAMgASkAIDcAICADIAEpABg3ABggAyABKQAQNwAQIAMgASkACDcACAwBC0F/QYABEAsiBUUNARoCQCAARQ0AIAVBQGshByAEQUBrIQkDQAJAIAIgCEHBAGxqIgohASADIQYCQAJAIApBQGstAAAOAgEAAgsgAyEBIAohBgsgBSABKQAANwAAIAUgASkAODcAOCAFIAEpADA3ADAgBSABKQAoNwAoIAUgASkAIDcAICAFIAEpABg3ABggBSABKQAQNwAQIAUgASkACDcACCAHIAYpADg3ADggByAGKQAwNwAwIAcgBikAKDcAKCAHIAYpACA3ACAgByAGKQAYNwAYIAcgBikAEDcAECAHIAYpAAg3AAggByAGKQAANwAAIAlCADcDCCAJQgA3AwAgBCMBIgEpAzg3AzggBCABKQMwNwMwIAQgASkDKDcDKCAEIAEpAyA3AyAgBCABKQMYNwMYIAQgASkDEDcDECAEIAEpAwg3AwggBCABKQMANwMAIAQgBUKAARAOIAQgAxARIAAgCEEBaiIIRw0BDAILCyAFEAhBfgwCCyAFEAgLQQALIARB0AFqJAAL9AUBDH8jAEHQAWsiBiQAQX8hCAJAIABFDQADQCABIARBBnRqIAIQGQRAIARBAWoiBCAARw0BDAILC0GAARALIgdFBEBBfiEIDAELQQAhCCAAQQFHBEAgB0FAayEFIAZBQGshDgNAIABBAXEhD0EAIQhBACEKA0AgByABIApBBnRqIgIpAAA3AAAgByACQThqKQAANwA4IAcgAkEwaikAADcAMCAHIAJBKGopAAA3ACggByACQSBqKQAANwAgIAcgAkEYaikAADcAGCAHIAJBEGopAAA3ABAgByACQQhqKQAANwAIIApBAXIhDAJAAkACQCAPRQ0AIAAgDEcNACAFIAIpAAA3AAAgBSACKQA4NwA4IAUgAikAMDcAMCAFIAIpACg3ACggBSACKQAgNwAgIAUgAikAGDcAGCAFIAIpABA3ABAgBSACKQAINwAIQQAhDSAEIApGDQEMAgsgBSABIAxBBnRqIgkpAAA3AAAgBSAJKQA4NwA4IAUgCSkAMDcAMCAFIAkpACg3ACggBSAJKQAgNwAgIAUgCSkAGDcAGCAFIAkpABA3ABAgBSAJKQAINwAIIAQgCkYiDUUgBCAMR3ENASAJIAIgDRshAgsgAyALQcEAbGoiBCACKQAANwAAIAQgAikAODcAOCAEIAIpADA3ADAgBCACKQAoNwAoIAQgAikAIDcAICAEIAIpABg3ABggBCACKQAQNwAQIAQgAikACDcACCAEQUBrIA06AAAgC0EBaiELIAghBAsgDkIANwMAIA5CADcDCCAGIwEiAikDODcDOCAGIAIpAzA3AzAgBiACKQMoNwMoIAYgAikDIDcDICAGIAIpAxg3AxggBiACKQMQNwMQIAYgAikDCDcDCCAGIAIpAwA3AwAgBiAHQoABEA4gBiABIAhBBnRqEBEgCEEBaiEIIApBAmoiCiAASQ0ACyAAuEQAAAAAAADgP6Kb/AMiAEEBSw0ACyALQcEAbCEICyAHEAgLIAZB0AFqJAAgCAu3BgEHfyMAQdABayIEJABBgAEQCyIFBH8gAEECTwRAIAVBQGshBiAEQUBrIQkDQEEAIQdBACEIAkAgAEEBcUUEQANAIAUgASAHQQZ0aiIDKQAANwAAIAUgAykAODcAOCAFIAMpADA3ADAgBSADKQAoNwAoIAUgAykAIDcAICAFIAMpABg3ABggBSADKQAQNwAQIAUgAykACDcACCAGIAMpAHg3ADggBiADKQBwNwAwIAYgAykAaDcAKCAGIAMpAGA3ACAgBiADKQBYNwAYIAYgAykAUDcAECAGIAMpAEg3AAggBiADKQBANwAAIAlCADcDCCAJQgA3AwAgBCMBIgMpAzg3AzggBCADKQMwNwMwIAQgAykDKDcDKCAEIAMpAyA3AyAgBCADKQMYNwMYIAQgAykDEDcDECAEIAMpAwg3AwggBCADKQMANwMAIAQgBUKAARAOIAQgASAIQQZ0ahARIAhBAWohCCAHQQJqIgcgAEkNAAwCCwALA0AgBSABIAdBBnRqIgMpAAA3AAAgBSADKQA4NwA4IAUgAykAMDcAMCAFIAMpACg3ACggBSADKQAgNwAgIAUgAykAGDcAGCAFIAMpABA3ABAgBSADKQAINwAIIAYgA0HAAEEAIAdBAXIgAEcbaiIDKQA4NwA4IAYgAykAMDcAMCAGIAMpACg3ACggBiADKQAgNwAgIAYgAykAGDcAGCAGIAMpABA3ABAgBiADKQAINwAIIAYgAykAADcAACAJQgA3AwggCUIANwMAIAQjASIDKQM4NwM4IAQgAykDMDcDMCAEIAMpAyg3AyggBCADKQMgNwMgIAQgAykDGDcDGCAEIAMpAxA3AxAgBCADKQMINwMIIAQgAykDADcDACAEIAVCgAEQDiAEIAEgCEEGdGoQESAIQQFqIQggB0ECaiIHIABJDQALCyAAuEQAAAAAAADgP6Kb/AMiAEEBSw0ACwsgAiABKQAANwAAIAIgASkAODcAOCACIAEpADA3ADAgAiABKQAoNwAoIAIgASkAIDcAICACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCAFEAhBAAVBfwsgBEHQAWokAAu5SQEofyMAQeAIayIEJAACQAJAIAMtAD9BEEkNAEEgIQYgA0EgaiEKQQEhCwNAIAogBkECayINai0AACIMIwFB4A5qIg4gDWotAAAiCWtBCHUgDiAGQQFrIgZqLQAAIgggBiAKai0AACIOc0EBa0EIdSALcSIGcSAOIAhrQQh1IAtxIAdyciEHIAkgDHNBAWtBCHUgBnEhCyANIgYNAAsgBw0AQX8hIQwBC0F/ISEgAi0AH0F/c0H/AHEgAi0AASACLQACIAItAAMgAi0ABCACLQAFIAItAAYgAi0AByACLQAIIAItAAkgAi0ACiACLQALIAItAAwgAi0ADSACLQAOIAItAA8gAi0AECACLQARIAItABIgAi0AEyACLQAUIAItABUgAi0AFiACLQAXIAItABggAi0AGSACLQAaIAItABsgAi0AHCACLQAeIAItAB1xcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcUH/AXNyQQFrQewBIAItAABrcUGAAnENACAEQaACaiINIAIQKw0AIA0QGg0AIARB6ANqIicgAxAeIARCADcCnAQgBEIANwKkBCAEQgA3AqwEIARBADYCtAQgBEIANwKUBCAEQQE2ApAEIARBwAZqIhwgJxAGIARB4ARqIikgHCMBIihBwAZqEAcgBCAEKALgBEEBajYC4AQgBCAEKALABkEBayIiNgLABiAEKALEBiEjIAQoAsgGIR0gBCgCzAYhHiAEKALQBiEVIAQoAtQGIRMgBCgC2AYhFCAEKALcBiEXIAQoAuAGIRggBCgC5AYhGSAEQcADaiIgIBwgKRAHICAgIBAqICAgHCAgEAcgBEGAAWoiDiAgEAYgDiAOICkQByAEIAQoAqQBIhogGWs2AiQgBCAEKAKgASIbIBhrNgIgIAQgBCgCnAEiDyAXazYCHCAEIAQoApgBIgsgFGs2AhggBCAEKAKUASIKIBNrNgIUIAQgBCgCkAEiByAVazYCECAEIAQoAowBIgwgHms2AgwgBCAEKAKIASIJIB1rNgIIIAQgBCgChAEiCCAjazYCBCAEIAQoAoABIgYgIms2AgAgBCAZIBpqNgKkBiAEIBggG2o2AqAGIAQgDyAXajYCnAYgBCALIBRqNgKYBiAEIAogE2o2ApQGIAQgByAVajYCkAYgBCAMIB5qNgKMBiAEIAkgHWo2AogGIAQgCCAjajYChAYgBCAGICJqNgKABiAEQZAIaiIJIAQQDSAEQQA6AMAIIAQgBC0AkAggBC0AwAhyOgDACCAEIAQtAJEIIAQtAMAIcjoAwAggBCAELQCSCCAELQDACHI6AMAIIAQgBC0AkwggBC0AwAhyOgDACCAEIAQtAJQIIAQtAMAIcjoAwAggBCAELQCVCCAELQDACHI6AMAIIAQgBC0AlgggBC0AwAhyOgDACCAEIAQtAJcIIAQtAMAIcjoAwAggBCAELQCYCCAELQDACHI6AMAIIAQgBC0AmQggBC0AwAhyOgDACCAEIAQtAJoIIAQtAMAIcjoAwAggBCAELQCbCCAELQDACHI6AMAIIAQgBC0AnAggBC0AwAhyOgDACCAEIAQtAJ0IIAQtAMAIcjoAwAggBCAELQCeCCAELQDACHI6AMAIIAQgBC0AnwggBC0AwAhyOgDACCAEIAQtAKAIIAQtAMAIcjoAwAggBCAELQChCCAELQDACHI6AMAIIAQgBC0AogggBC0AwAhyOgDACCAEIAQtAKMIIAQtAMAIcjoAwAggBCAELQCkCCAELQDACHI6AMAIIAQgBC0ApQggBC0AwAhyOgDACCAEIAQtAKYIIAQtAMAIcjoAwAggBCAELQCnCCAELQDACHI6AMAIIAQgBC0AqAggBC0AwAhyOgDACCAEIAQtAKkIIAQtAMAIcjoAwAggBCAELQCqCCAELQDACHI6AMAIIAQgBC0AqwggBC0AwAhyOgDACCAEIAQtAKwIIAQtAMAIcjoAwAggBCAELQCtCCAELQDACHI6AMAIIAQgBC0ArgggBC0AwAhyOgDACCAEIAQtAK8IIAQtAMAIcjoAwAggBC0AwAghCCAJIARBgAZqIgYQDSAEQQA6AMAIIAQgBC0AkAggBC0AwAhyOgDACCAEIAQtAJEIIAQtAMAIcjoAwAggBCAELQCSCCAELQDACHI6AMAIIAQgBC0AkwggBC0AwAhyOgDACCAEIAQtAJQIIAQtAMAIcjoAwAggBCAELQCVCCAELQDACHI6AMAIIAQgBC0AlgggBC0AwAhyOgDACCAEIAQtAJcIIAQtAMAIcjoAwAggBCAELQCYCCAELQDACHI6AMAIIAQgBC0AmQggBC0AwAhyOgDACCAEIAQtAJoIIAQtAMAIcjoAwAggBCAELQCbCCAELQDACHI6AMAIIAQgBC0AnAggBC0AwAhyOgDACCAEIAQtAJ0IIAQtAMAIcjoAwAggBCAELQCeCCAELQDACHI6AMAIIAQgBC0AnwggBC0AwAhyOgDACCAEIAQtAKAIIAQtAMAIcjoAwAggBCAELQChCCAELQDACHI6AMAIIAQgBC0AogggBC0AwAhyOgDACCAEIAQtAKMIIAQtAMAIcjoAwAggBCAELQCkCCAELQDACHI6AMAIIAQgBC0ApQggBC0AwAhyOgDACCAEIAQtAKYIIAQtAMAIcjoAwAggBCAELQCnCCAELQDACHI6AMAIIAQgBC0AqAggBC0AwAhyOgDACCAEIAQtAKkIIAQtAMAIcjoAwAggBCAELQCqCCAELQDACHI6AMAIIAQgBC0AqwggBC0AwAhyOgDA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/gCDQg+IhDwALyADIBNC////AIMgCkIVh3wiCUINiDwANCADIAlCBYg8ADMgAyAWQv///wCDIAlCFYd8Igs8ADUgAyAJQgOGIApCgIDwAINCEoiEPAAyIAMgC0IIiDwANiADIBVC////AIMgC0IVh3wiCkILiDwAOSADIApCA4g8ADggAyALQhCIQh+DIApCBYaEPAA3IAMgGUL///8AgyAKQhWHfCIJQgaIPAA7IAMgCUIChiAKQoCA4ACDQhOIhDwAOiADIAlCFYciCyAMQv///wCDfCIKQhGIPAA/IAMgCkIJiDwAPiADIApCB4YgCUKAgP8Ag0IOiIQ8ADwgAyALpyAMp2pBAXatPAA9IAQgCDYCkAVBACEDA0AgBCgCkAUgA2pBADoAACAEKAKQBSADakEAOgABIAQoApAFIANqQQA6AAIgBCgCkAUgA2pBADoAAyADQQRyIgAgBCgCkAVqQQA6AAAgBCgCkAUgAGpBADoAASAEKAKQBSAAakEAOgACIAQoApAFIABqQQA6AAMgA0EIaiIDQcAARw0ACyAEIARBQGs2ApAFQQAhAwNAIAQoApAFIANqQQA6AAAgBCgCkAUgA2pBADoAASAEKAKQBSADakEAOgACIAQoApAFIANqQQA6AAMgA0EEciIAIAQoApAFakEAOgAAIAQoApAFIABqQQA6AAEgBCgCkAUgAGpBADoAAiAEKAKQBSAAakEAOgADIANBCGoiA0HAAEcNAAsgBEHgBWokAEEACywAIAAgASkAIDcAACAAIAEpADg3ABggACABKQAwNwAQIAAgASkAKDcACEEAC+oCAgV/A34jAEGAA2siAyQAIANCADcDSCADIwEiBCkDCDcDCCADIAQpAxA3AxAgAyAEKQMYNwMYIAMgBCkDIDcDICADQShqIgUgBCkDKDcDACADIAQpAzA3AzAgAyAEKQM4NwM4IANCADcDQCADIAQpAwA3AwAgAyACQiAQDiADIAEQESABIAEtAABB+AFxOgAAIAEgAS0AH0E/cUHAAHI6AB8gAyABECAgA0GwAmoiBCADQdAAahAXIANBgAJqIgYgAyAEEAcgA0HQAWoiByAFIAQQByAAIAcQDSADQeACaiAGEA0gACAALQAfIAMtAOACQQd0czoAHyACKQAIIQggAikAECEJIAIpAAAhCiABIAIpABg3ABggASAJNwAQIAEgCDcACCABIAo3AAAgACkACCEIIAApABAhCSAAKQAAIQogASAAKQAYNwA4IAEgCTcAMCABIAg3ACggASAKNwAgIANBgANqJABBAAuyGwIKfwN+IwAiCCEMIAhBwARrQUBxIgckAEEgEAsiCEUEQCAMJABBfw8LQSAQCyIJRQRAIAgQCCAMJABBfg8LIABBDGshECAHQgA3A8gBIAcjASIAKQMINwOIASAHIAApAxA3A5ABIAcgACkDGDcDmAEgByAAKQMgNwOgASAHIAApAyg3A6gBIAcgACkDMDcDsAEgByAAKQM4NwO4ASAHQgA3A8ABIAcgACkDADcDgAEgB0GAAWoiACADQiAQDiAAIAdBIGoiABARIAcgBy0AIEH4AXE6ACAgByAHLQA/QT9xQcAAcjoAPyAJIAcpAzA3ABAgCSAHKQMoNwAIIAkgBykDIDcAACAJIAcpAzg3ABggByAANgKAAUEAIQADQCAHKAKAASAAakEAOgAAIAcoAoABIABqQQA6AAEgBygCgAEgAGpBADoAAiAHKAKAASAAakEAOgADIABBBHIiAyAHKAKAAWpBADoAACAHKAKAASADakEAOgABIAcoAoABIANqQQA6AAIgBygCgAEgA2pBADoAAyAAQQhqIgBBwABHDQALIAggCRAuBEAgCBAIIAkQCCAMJABBfA8LQSAQCyINIAIQLQRAIA0QCCAIEAggCRAIIAwkAEF6DwtBIBALIgNFBEAgDRAIIAgQCCAJEAggDCQAQXkPCyADQtu37969+/btWzcAACADQtu37969+/btWzcAGCADQtu37969+/btWzcAECADQtu37969+/btWzcACCAHQeAAaiIAIAkgDRAsRQRAIAdBwAFqQQBBpQL8CwAgByAHKQNoNwPoASAHIAcpA3A3A/ABIAcgBykDeDcD+AEgB0L5wvibkaOz8NsANwO4ASAHQuv6htq/tfbBHzcDsAEgB0Kf2PnZwpHagpt/NwOoASAHQtGFmu/6z5SH0QA3A6ABIAdC8e30+KWn/aelfzcDmAEgB0Kr8NP0r+68tzw3A5ABIAdCu86qptjQ67O7fzcDiAEgB0LIkveV/8z5hOoANwOAASAHIAcpA2A3A+ABIAcgBygC4ANBIGoiAjYC4AMgByAANgK8BCAHKAK8BEEAOgAAIAcoArwEQQA6AAEgBygCvARBADoAAiAHKAK8BEEAOgADIAcoArwEQQA6AAQgBygCvARBADoABSAHKAK8BEEAOgAGIAcoArwEQQA6AAcgBygCvARBADoACCAHKAK8BEEAOgAJIAcoArwEQQA6AAogBygCvARBADoACyAHKAK8BEEAOgAMIAcoArwEQQA6AA0gBygCvARBADoADiAHKAK8BEEAOgAPIAcoArwEQQA6ABAgBygCvARBADoAESAHKAK8BEEAOgASIAcoArwEQQA6ABMgBygCvARBADoAFCAHKAK8BEEAOgAVIAcoArwEQQA6ABYgBygCvARBADoAFyAHKAK8BEEAOgAYIAcoArwEQQA6ABkgBygCvARBADoAGiAHKAK8BEEAOgAbIAcoArwEQQA6ABwgBygCvARBADoAHSAHKAK8BEEAOgAeIAcoArwEQQA6AB8gB0HgAmohDyAHQeABaiELQiAhESAIIQADQAJAIAIgC2ohDiARQYACIAJrIgqtIhJYDQAgCgRAIA4gACAK/AoAAAsgByAHKALgAyAKajYC4AMgByAHKQPAASITQoABfDcDwAEgByAHKQPIASATQv9+Vq18NwPIASAHQYABaiALEAwgCyAPQYAB/AoAACAHIAcoAuADQYABayICNgLgAyAAIApqIQAgESASfSERDAELCyARpyICBEAgDiAAIAL8CgAACyAHIAcoAuADIAJqIgI2AuADQiAhESANIQADQAJAIAIgC2ohDiARQYACIAJrIgqtIhJYDQAgCgRAIA4gACAK/AoAAAsgByAHKALgAyAKajYC4AMgByAHKQPAASITQoABfDcDwAEgByAHKQPIASATQv9+Vq18NwPIASAHQYABaiALEAwgCyAPQYAB/AoAACAHIAcoAuADQYABayICNgLgAyAAIApqIQAgESASfSERDAELCyARpyICBEAgDiAAIAL8CgAACyAHIAcoAuADIAJqNgLgAyAHQYABaiIAIAdBIGpBwAAQFRogByAANgK8BEEAIQADQCAHKAK8BCAAakEAOgAAIAcoArwEIABqQQA6AAEgBygCvAQgAGpBADoAAiAHKAK8BCAAakEAOgADIABBBHIiAiAHKAK8BGpBADoAACAHKAK8BCACakEAOgABIAcoArwEIAJqQQA6AAIgBygCvAQgAmpBADoAAyAAQQhqIgBBgANHDQALIANBA2ohCyADQQJqIQogA0EBaiEPQQAhAANAIAAgA2ogACAHakFAay0AADoAACAAIA9qIAdBIGoiAiAAQSFyai0AADoAACAAIApqIABBInIgAmotAAA6AAAgACALaiAAQSNyIAJqLQAAOgAAIABBBGoiAEEgRw0ACyAHIAI2ArwEQQAhAANAIAcoArwEIABqQQA6AAAgBygCvAQgAGpBADoAASAHKAK8BCAAakEAOgACIAcoArwEIABqQQA6AAMgAEEEciICIAcoArwEakEAOgAAIAcoArwEIAJqQQA6AAEgBygCvAQgAmpBADoAAiAHKAK8BCACakEAOgADIABBCGoiAEHAAEcNAAsgDRAIIAgQCCAJEAggAUEMaiEIIAStIRIjAEHwAmsiACQAAkACQCAQrSITQhBUDQAgAEEgaiICIAEgAxAmIABCADcCfCAAQQA2AoQBIABCADcCdCAAQQA6ALABIABCADcDmAEgACAAKAIwNgKIASAAIAApAjQ3AowBIAAgACgCPDYClAEgACAAKAIgQf///x9xNgJgIAAgACgAI0ECdkGD/v8fcTYCZCAAIAAoASZBBHZB/4H/H3E2AmggACAAKAApQQZ2Qf//wB9xNgJsIAAgACgCLEEIdkH//z9xNgJwIAAgAjYC7AJBACECA0AgACgC7AIgAmpBADoAACAAKALsAiACakEAOgABIAAoAuwCIAJqQQA6AAIgACgC7AIgAmpBADoAAyACQQRyIgQgACgC7AJqQQA6AAAgACgC7AIgBGpBADoAASAAKALsAiAEakEAOgACIAAoAuwCIARqQQA6AAMgAkEIaiICQcAARw0ACyAAQeAAaiICIAUgEhAQIAIjAUHggAJqIgRCACASfUIPgxAQIAIgCCATQhB9IhEQECACIARCACATfUIPgxAQIAAgEjcDGCACIABBGGoiBEIIEBAgACARNwMYIAIgBEIIEBAgAiAAECQgACACNgLsAkEAIQIDQCAAKALsAiACakEAOgAAIAAoAuwCIAJqQQA6AAEgACgC7AIgAmpBADoAAiAAKALsAiACakEAOgADIAJBBHIiBCAAKALsAmpBADoAACAAKALsAiAEakEAOgABIAAoAuwCIARqQQA6AAIgACgC7AIgBGpBADoAAyACQQhqIgJBgAJHDQALIAAgADYC7AIgACAIIBOnakEQ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ArwEQQA6AAcgCCgCvARBADoACCAIKAK8BEEAOgAJIAgoArwEQQA6AAogCCgCvARBADoACyAIKAK8BEEAOgAMIAgoArwEQQA6AA0gCCgCvARBADoADiAIKAK8BEEAOgAPIAgoArwEQQA6ABAgCCgCvARBADoAESAIKAK8BEEAOgASIAgoArwEQQA6ABMgCCgCvARBADoAFCAIKAK8BEEAOgAVIAgoArwEQQA6ABYgCCgCvARBADoAFyAIKAK8BEEAOgAYIAgoArwEQQA6ABkgCCgCvARBADoAGiAIKAK8BEEAOgAbIAgoArwEQQA6ABwgCCgCvARBADoAHSAIKAK8BEEAOgAeIAgoArwEQQA6AB8gCEHgAmohESAIQeABaiEOQiAhEiAPIQMDQAJAIAIgDmohECASQYACIAJrIgutIhNYDQAgCwRAIBAgAyAL/AoAAAsgCCAIKALgAyALajYC4AMgCCAIKQPAASIUQoABfDcDwAEgCCAIKQPIASAUQv9+Vq18NwPIASAIQYABaiAOEAwgDiARQYAB/AoAACAIIAgoAuADQYABayICNgLgAyADIAtqIQMgEiATfSESDAELCyASpyICBEAgECADIAL8CgAACyAIIAgoAuADIAJqIgI2AuADQiAhEiAMIQMDQAJAIAIgDmohECASQYACIAJrIgutIhNYDQAgCwRAIBAgAyAL/AoAAAsgCCAIKALgAyALajYC4AMgCCAIKQPAASIUQoABfDcDwAEgCCAIKQPIASAUQv9+Vq18NwPIASAIQYABaiAOEAwgDiARQYAB/AoAACAIIAgoAuADQYABayICNgLgAyADIAtqIQMgEiATfSESDAELCyASpyICBEAgECADIAL8CgAACyAIIAgoAuADIAJqNgLgAyAIQYABaiICIAhBIGpBwAAQFRogCCACNgK8BEEAIQMDQCAIKAK8BCADakEAOgAAIAgoArwEIANqQQA6AAEgCCgCvAQgA2pBADoAAiAIKAK8BCADakEAOgADIANBBHIiAiAIKAK8BGpBADoAACAIKAK8BCACakEAOgABIAgoArwEIAJqQQA6AAIgCCgCvAQgAmpBADoAAyADQQhqIgNBgANHDQALIAlBA2ohDiAJQQJqIQsgCUEBaiERQQAhAwNAIAMgCWogAyAIakFAay0AADoAACADIBFqIAhBIGoiAiADQSFyai0AADoAACADIAtqIANBInIgAmotAAA6AAAgAyAOaiADQSNyIAJqLQAAOgAAIANBBGoiA0EgRw0ACyAIIAI2ArwEQQAhAwNAIAgoArwEIANqQQA6AAAgCCgCvAQgA2pBADoAASAIKAK8BCADakEAOgACIAgoArwEIANqQQA6AAMgA0EEciICIAgoArwEakEAOgAAIAgoArwEIAJqQQA6AAEgCCgCvAQgAmpBADoAAiAIKAK8BCACakEAOgADIANBCGoiA0HAAEcNAAsgDxAIIAwQCCAKEAggB0EMaiEDIAWtIRMjAEHgAmsiAiQAAkAgAK0iEkLw////D1QEQCACQRBqIgAgBCAJECYgAkIANwJsIAJBADYCdCACQgA3AmQgAkEAOgCgASACQgA3A4gBIAIgAigCIDYCeCACIAIpAiQ3AnwgAiACKAIsNgKEASACIAIoAhBB////H3E2AlAgAiACKAATQQJ2QYP+/x9xNgJUIAIgAigBFkEEdkH/gf8fcTYCWCACIAIoABlBBnZB///AH3E2AlwgAiACKAIcQQh2Qf//P3E2AmAgAiAANgIIQQAhAANAIAIoAgggAGpBADoAACACKAIIIABqQQA6AAEgAigCCCAAakEAOgACIAIoAgggAGpBADoAAyAAQQRyIgUgAigCCGpBADoAACACKAIIIAVqQQA6AAEgAigCCCAFakEAOgACIAIoAgggBWpBADoAAyAAQQhqIgBBwABHDQALIAJB0ABqIgAgBiATEBAgACMBQeCAAmoiBUIAIBN9Qg+DEBAgAyABIBIgBCAJECUgACADIBIQECAAIAVCACASfUIPgxAQIAIgEzcDCCAAIAJBCGoiAUIIEBAgAiASNwMIIAAgAUIIEBAgACADIBKnahAkIAIgADYC3AJBACEAA0AgAigC3AIgAGpBADoAACACKALcAiAAakEAOgABIAIoAtwCIABqQQA6AAIgAigC3AIgAGpBADoAAyAAQQRyIgEgAigC3AJqQQA6AAAgAigC3AIgAWpBADoAASACKALcAiABakEAOgACIAIoAtwCIAFqQQA6AAMgAEEIaiIAQYACRw0ACyAIIBJCEHw3A4ABIAJB4AJqJAAMAQsQKQALIAkQCCAHIAQoAAg2AAggByAEKQAANwAAIA0kAEEADwsgDxAIIAwQCCAKEAggCRAIIA0k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IgJBwAAQFRogBCAEQYACajYCwAlBACEGIAQoAsAJQQA6AAAgBCgCwAlBADoAASAEKALACUEAOgACIAQoAsAJQQA6AAMgBCgCwAlBADoABCAEKALACUEAOgAFIAQoAsAJQQA6AAYgBCgCwAlBADoAByAEQgA3A4ACIABBgAggAkHIABAhIAsoAgQhAANAIAAgBkEDdCICaiAEQcAJaiIFIAJqKQMANwMAIAAgAkEIciIDaiADIAVqKQMANwMAIAAgAkEQciIDaiAEQcAJaiADaikDADcDACAAIAJBGHIiAmogBEHACWogAmopAwA3AwAgBkEEaiIGQYABRw0ACyAEQQE2AoACIAVBgAggBEHAAWpByAAQISALKAIEQYAIaiEAQQAhBgNAIAAgBkEDdCICaiAEQcAJaiIFIAJqKQMANwMAIAAgAkEIciIDaiADIAVqKQMANwMAIAAgAkEQciIDaiAEQcAJaiADaikDADcDACAAIAJBGHIiAmogBEHACWogAmopAwA3AwAgBkEEaiIGQYABRw0ACyAEIAU2AvwRQQAhAANAIAQoAvwRIABqQQA6AAAgBCgC/BEgAGpBADoAASAEKAL8ESAAakEAOgACIAQoAvwRIABqQQA6AAMgAEEEciICIAQoAvwRakEAOgAAIAQoAvwRIAJqQQA6AAEgBCgC/BEgAmpBADoAAiAEKAL8ESACakEAOgADIABBCGoiAEGACEcNAAsgBCAEQcABajYCwAlBACEAA0AgBCgCwAkgAGpBADoAACAEKALACSAAakEAOgABIAQoAsAJIABqQQA6AAIgBCgCwAkgAGpBADoAAyAAQQRyIgIgBCgCwAlqQQA6AAAgBCgCwAkgAmpBADoAASAEKALACSACakEAOgACIAQoAsAJIAJqQQA6AAMgAEEIaiIAQcgARw0AC0EAIQAgBEHICWoiAkEAOgAAIARBADYCzAkgBCACKQIANwOIASAEQgA3A4ABIARCADcCwAkgBEGUAWoiAyAEQYABahAUIAJBAToAACAEQQA2AswJIAQgAikCADcDeCAEQQA2AsQJIAQgBCkCwAk3A3AgAyAEQfAAahAUIAJBAjoAACAEQQA2AswJIAQgAikCADcDaCAEQQA2AsQJIAQgBCkCwAk3A2AgAyAEQeAAahAUIAJBAzoAACAEQQA2AswJIAQgAikCADcD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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODrenw7QbiuFlbj+vGfxGraCY3rnDKx/YZiBRZfSbgAX5yVvKNQjCSx0LFVnIPvWwREXMRYHI6G2CJO3dCfEVfs////////////////////////////////////////f+3///////////////////////////////////////9/7v///////////////////////////////////////38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=");var g=function(e){return A(e.instance,e.module)}(await S(0,h,e));return g}();return function A(e=g){f>0||f>0?u=A:(I.calledRun=!0,E||(l=!0,Y(d),MA.__wasm_call_ctors(),Y(eA),a?.(I)))}(),(()=>{var A=null,e=0;function g(){if(A&&l){var e=A;A=null,e.forEach(A=>onmessage(A))}}function t(){g(),A&&setTimeout(t,100)}onmessage=i=>{if(!l)return A||(A=[],setTimeout(t,100)),void A.push(i);g();var o=I["_"+i.data.funcName];if(!o)throw"invalid worker function to call: "+i.data.funcName;var n=i.data.data;n&&(n.byteLength||(n=new Uint8Array(n)),e=yA(e,n.length),B.set(n,e)),i.data.callbackId,n?o(e,n.length):o(0,0)}})(),l?I:new Promise((A,e)=>{a=A,r=e})}A.exports=e,A.exports.default=e}(gt);var tt=It(gt.exports);const it=async(A,e,I,g)=>{if(A.length%ve!==0)throw new Error("Hashes were not passed");const t=A.length/ve;if(0===t)throw new Error("Cannot calculate Merkle proof of element of empty tree.");if(1===t){const A=new Uint8Array(ve+1);if(A.set(e),g){const e=ve+1,I=window.crypto.getRandomValues(new Uint8Array(g));let t=0;const i=4;return new DataView(I.buffer,t,i).setUint32(0,e,!1),t+=i,I.set(A,t),I}return A}const i=I?.wasmMemory??$g(t),o=I??await tt({wasmMemory:i}),n=o._malloc(t*ve),C=new Uint8Array(i.buffer,n,t*ve);C.set(A);const a=o._malloc(ve),r=new Uint8Array(i.buffer,a,ve);r.set(e);const s=t*(ve+1),B=o._malloc(s),c=new Uint8Array(i.buffer,B,s),Q=o._get_merkle_proof(t,C.byteOffset,r.byteOffset,c.byteOffset);switch(o._free(n),o._free(a),Q){case-1:throw o._free(B),new Error("Element not in tree.");case-2:throw o._free(B),new Error("Could not allocate memory for hash concatenation helper array.");case-3:throw o._free(B),new Error("Could not calculate hash.");default:if(Q>0){if(g&&g>=Q){const A=window.crypto.getRandomValues(new Uint8Array(g));let e=0;const I=4;return new DataView(A.buffer,e,I).setUint32(0,Q,!1),e+=I,A.set(c.slice(0,Q),e),o._free(B),A}{const A=Uint8Array.from([...c.slice(0,Q)]);return o._free(B),A}}throw o._free(B),new Error("An unexpected error occured")}},ot=(A,e)=>new Promise((I,g)=>{try{A===e&&I(A);const g=e-A,t=Math.ceil(Math.log2(g)/8),i=Math.pow(Math.pow(2,8),t),o=Math.floor(i/g)*g;let n=new Uint8Array(t),C=o;for(;C>=o;){n=window.crypto.getRandomValues(n),C=0;for(let A=0;A<t;A++)C<<=8,C+=n[A];C<o&&(C%=g,I(A+C))}I(C)}catch(A){g(A)}}),nt=async(A,e,I=!0,g=!0,t=!0)=>{try{if(e||(e=A),0===e&&A===e)return"";const i=e>A?await ot(A,e):A,o=await((A,e=!0,I=!0,g=!0)=>new Promise((t,i)=>{try{let i="";e&&(i+="abcdefghijklmnopqrstuvwxyz"),I&&(i+="ABCDEFGHIJKLMNOPQRSTUVWXYZ"),g&&(i+="0123456789");let o="";const n=window.crypto.getRandomValues(new Uint8Array(A));for(let e=0;e<A;e++)o+=i[n[e]%i.length];t(o)}catch(A){i(A)}}))(i,I,g,t);return o}catch(A){throw A}},Ct=async A=>{const e=A.length;if(e<2)return A;const I=[...A];for(let A=e-1;A>0;A--){const e=await ot(0,A+1),g=I[A];I[A]=I[e],I[e]=g}return I},at=4+48*(ve+1),rt=Re+Je+xg+at+ze+qe,st=65536-rt,Bt=[1],ct="CANCEL_SEND",Qt=async(A,e,I,g,t=1,i=st,o=.9,n=1)=>{const{keyPair:C}=e.getState();if(t<1)throw new Error("Need at least one chunk.");if(o<1e-4||o>1)throw new Error("Percentage of useful data in chunk should be in (0, 1].");if(!Bt.includes(n))throw new Error("Unknown metadata version schema.");if(i>st||i<=rt)throw new Error(`Chunk length needs to be between ${rt} and ${st}`);let a=!1;window.addEventListener(ct,()=>{a=!0});const r=(A=>{if("string"==typeof A)return Gg.Text;const e=A.name.split(".").pop()?.toLowerCase()||"";return{png:Gg.ImagePNG,jpeg:Gg.ImageJPEG,jpg:Gg.ImageJPG,gif:Gg.ImageGIF,bmp:Gg.ImageBMP,tiff:Gg.ImageTIFF,svg:Gg.ImageSVG,webp:Gg.ImageWEBP,heic:Gg.ImageHEIC,pdf:Gg.DocumentPDF,doc:Gg.DocumentDOC,docx:Gg.DocumentDOCX,xls:Gg.DocumentXLS,xlsx:Gg.DocumentXLSX,ppt:Gg.DocumentPPT,pptx:Gg.DocumentPPTX,txt:Gg.DocumentTXT,rtf:Gg.DocumentRTF,odt:Gg.DocumentODT,mp3:Gg.AudioMP3,wav:Gg.AudioWAV,aac:Gg.AudioAAC,flac:Gg.AudioFLAC,ogg:Gg.AudioOGG,m4a:Gg.AudioM4A,mp4:Gg.VideoMP4,avi:Gg.VideoAVI,mkv:Gg.VideoMKV,mov:Gg.VideoMOV,wmv:Gg.VideoWMV,flv:Gg.VideoFLV,webm:Gg.VideoWEBM,zip:Gg.CompressedZIP,rar:Gg.CompressedRAR,"7z":Gg.Compressed7Z,tar:Gg.CompressedTAR,gz:Gg.CompressedGZ,html:Gg.CodeHTML,css:Gg.CodeCSS,js:Gg.CodeJS,ts:Gg.CodeTS,jsx:Gg.CodeJSX,tsx:Gg.CodeTSX,json:Gg.CodeJSON,xml:Gg.CodeXML,py:Gg.CodePY,java:Gg.CodeJAVA,c:Gg.CodeC,cpp:Gg.CodeCPP,cs:Gg.CodeCS,rb:Gg.CodeRB,php:Gg.CodePHP,sql:Gg.CodeSQL,epub:Gg.EbookEPUB,mobi:Gg.EbookMOBI,azw:Gg.EbookAZW,ttf:Gg.FontTTF,otf:Gg.FontOTF,ico:Gg.ImageICO,exe:Gg.ExecutableEXE,dmg:Gg.ExecutableDMG,apk:Gg.ExecutableAPK}[e]||Gg.Unknown})(A),s=r===Gg.Text?await nt(256):A.name.slice(0,255),B="string"==typeof A?(new TextEncoder).encode(A):A,c=await navigator.storage.estimate(),Q=(c.quota??10737418240)-(c.usage??65536),E="string"==typeof A?B.length:B.size;if(E>Q)throw new Error("Not enough space to save the file in the browser.");if(E<1)throw new Error("No data to split in chunks");const l=new Date,w=await window.crypto.subtle.digest("SHA-512",E<10485760?"string"==typeof A?B.buffer:await B.arrayBuffer():"string"==typeof A?B.slice(0,10485760).buffer:await B.slice(0,10485760).arrayBuffer()),d=new Uint8Array(w),h=Lg(d),f={schemaVersion:n,messageType:r,name:s,totalSize:E,date:l};let u=0;const y=Math.max(t,Math.ceil(E/(i*o))),D=new Uint8Array(y*ve);for(let t=0;t<y&&!a;t++){const n=window.crypto.getRandomValues(new Uint8Array(i)),a=await ot(0,Math.floor(i*(1-o))),c=E-u,Q=Math.min(Math.max(c,0),Math.ceil(i*o));let w=a+Q;if(c>0){const e=B.slice(u,u+Q);if("string"==typeof A)n.set(e,a);else{const A=await e.arrayBuffer();n.set(new Uint8Array(A),a)}u+=Q}else{const A=w+E+1,e=Number.MAX_SAFE_INTEGER-A;w+=await ot(A,e)}const d=await window.crypto.subtle.digest("SHA-512",n),p=new Uint8Array(d),m=Lg(p);D.set(p,t*ve);const S=qg({...f,chunkStartIndex:a,chunkEndIndex:w,chunkIndex:t});try{await Kg({hash:h,merkleRoot:"",chunkIndex:t,realChunkHash:m,data:n.buffer,metadata:S.buffer,merkleProof:(new Uint8Array).buffer})}catch(A){console.error(A)}e.dispatch(nI({roomId:g.id,merkleRootHex:"",sha512Hex:h,fromPeerId:C.peerId,chunkSize:0,totalSize:E,chunksCreated:t+1,totalChunks:y,messageType:r,filename:s,channelLabel:I,timestamp:l.getTime()}))}if(a)return await Ng(void 0,void 0,h),e.dispatch(sI({hashHex:h})),{merkleRoot:new Uint8Array,merkleRootHex:"",hash:new Uint8Array,hashHex:"",totalChunks:0,totalSize:0,messageType:0,chunkHashes:new Uint8Array};const p=$g(y),m=await tt({wasmMemory:p}),S=await(async(A,e)=>{if(A.length%ve!==0)throw new Error("Hashes were not passed");const I=A.length/ve;if(0===I)throw new Error("Cannot calculate Merkle root of tree with no leaves.");if(1===I)return A;const g=e?.wasmMemory??_g(I),t=e??await tt({wasmMemory:g}),i=t._malloc(I*ve),o=new Uint8Array(g.buffer,i,I*ve);o.set(A);const n=t._malloc(ve),C=new Uint8Array(g.buffer,n,ve),a=t._get_merkle_root(I,o.byteOffset,C.byteOffset);switch(t._free(i),a){case 0:{const A=Uint8Array.from([...C]);return t._free(n),A}case-1:throw t._free(n),new Error("Could not allocate memory for hash concatenation helper array.");case-2:throw t._free(n),new Error("Could not calculate hash.");default:throw t._free(n),new Error("Unexpected error occured.")}})(D,m),k=Lg(S);try{await pg(g.id,k,h,C.peerId,E,E,r,s,I,l.getTime())}catch(A){console.error(A)}return e.dispatch(nI({roomId:g.id,merkleRootHex:k,sha512Hex:h,fromPeerId:C.peerId,chunkSize:0,totalSize:E,chunksCreated:y,totalChunks:y,messageType:r,filename:s,channelLabel:I,timestamp:l.getTime()})),a?(await Ng(k),e.dispatch(sI({merkleRootHex:k})),{merkleRoot:new Uint8Array,merkleRootHex:"",hash:new Uint8Array,hashHex:"",totalChunks:0,totalSize:0,messageType:0,chunkHashes:new Uint8Array}):(window.removeEventListener(ct,()=>{}),{merkleRoot:S,merkleRootHex:k,hash:d,hashHex:h,totalSize:E,totalChunks:y,messageType:r,chunkHashes:D})},Et=async(A,e,I,g,t)=>{const i=A.length,o=g.length,n=t?.wasmMemory??Wg(i,o),C=t??await tt({wasmMemory:n}),a=C._malloc(i*Uint8Array.BYTES_PER_ELEMENT),r=new Uint8Array(n.buffer,a,i*Uint8Array.BYTES_PER_ELEMENT);r.set(A);const s=C._malloc(Re),B=new Uint8Array(n.buffer,s,Re);B.set(e);const c=C._malloc(xe),Q=new Uint8Array(n.buffer,c,xe);Q.set(I);const E=C._malloc(ze),l=new Uint8Array(n.buffer,E,ze),w=window.crypto.getRandomValues(new Uint8Array(ze));l.set(w);const d=C._malloc(o*Uint8Array.BYTES_PER_ELEMENT),h=new Uint8Array(n.buffer,d,o*Uint8Array.BYTES_PER_ELEMENT);h.set(g);const f=Ve(i),u=C._malloc(f*Uint8Array.BYTES_PER_ELEMENT),y=new Uint8Array(n.buffer,u,f*Uint8Array.BYTES_PER_ELEMENT),D=C._encrypt_chachapoly_asymmetric(i,r.byteOffset,B.byteOffset,Q.byteOffset,l.byteOffset,o,h.byteOffset,y.byteOffset);switch(C._free(a),C._free(s),C._free(c),C._free(E),C._free(d),D){case 0:{const A=Uint8Array.from([...y]);return C._free(u),A}case-1:throw C._free(u),new Error("Could not allocate memory for the ephemeral x25519 public key array.");case-2:throw C._free(u),new Error("Could not allocate memory for the ephemeral x25519 secret key array.");case-3:throw C._free(u),new Error("Could not convert Ed25519 secret key to X25519.");case-4:throw C._free(u),new Error("Could not calculate x25519 public key from x25519 secret key.");case-5:throw C._free(u),new Error("Could not allocate memory for the receiver's ed25519 converted to x25519 public key array.");case-6:throw C._free(u),new Error("Could not convert Ed25519 public key to X25519.");case-7:throw C._free(u),new Error("Could not allocate memory for the shared secret.");case-8:throw C._free(u),new Error("Could not calculate the shared secret.");case-9:throw C._free(u),new Error("Could not encrypt.");default:throw C._free(u),new Error("An unexpected error occured.")}},lt=async(A,e,I,g,t)=>{const i=A.length,o=g.length,n=t?.wasmMemory??Zg(i,o),C=t??await tt({wasmMemory:n}),a=We(i),r=C._malloc(i*Uint8Array.BYTES_PER_ELEMENT),s=new Uint8Array(n.buffer,r,i*Uint8Array.BYTES_PER_ELEMENT);s.set(A);const B=C._malloc(Re),c=new Uint8Array(n.buffer,B,Re);c.set(e);const Q=C._malloc(xe),E=new Uint8Array(n.buffer,Q,xe);E.set(I);const l=C._malloc(o*Uint8Array.BYTES_PER_ELEMENT),w=new Uint8Array(n.buffer,l,o*Uint8Array.BYTES_PER_ELEMENT);w.set(g);const d=C._malloc(a*Uint8Array.BYTES_PER_ELEMENT),h=new Uint8Array(n.buffer,d,a*Uint8Array.BYTES_PER_ELEMENT),f=C._decrypt_chachapoly_asymmetric(i,s.byteOffset,c.byteOffset,E.byteOffset,o,w.byteOffset,h.byteOffset);switch(C._free(r),C._free(B),C._free(Q),C._free(l),f){case 0:{const A=Uint8Array.from([...h]);return C._free(d),A}case-1:throw C._free(d),new Error("Could not allocate memory for the ed25519 converted to x25519 public key array.");case-2:throw C._free(d),new Error("Could not allocate memory for the ed25519 converted to x25519 secret key array.");case-3:throw C._free(d),new Error("Could not convert receiver ed25519 secret key to x25519.");case-4:throw C._free(d),new Error("Could not generate x25519 public key from x25519 secret key.");case-5:throw C._free(d),new Error("Could not allocate memory for the ed25519 converted to x25519 receiver public key.");case-6:throw C._free(d),new Error("Could not convert receiver ed25519 public key to x25519.");case-7:throw C._free(d),new Error("Could not allocate memory for the shared secret.");case-8:throw C._free(d),new Error("Could not calculate the shared secret.");case-9:throw C._free(d),new Error("Could not decrypt");default:throw C._free(d),new Error("Unsuccessful decryption attempt")}},wt=async(A,e,I,g,t)=>{const{keyPair:i,rooms:o}=g.getState(),n=Rg(i.secretKey),C=o.findIndex(A=>A.id===e);if(C>-1){const a=o[C].peers,r=o[C].channels,s=t?r.findIndex(A=>A.label===t):0;if(-1===s)throw new Error("No channel with label "+t);const{merkleRoot:B,merkleRootHex:c,hashHex:Q,totalSize:E,totalChunks:l}=await Qt(A,g,t,o[C]),w=r[s].peerIds.length;for(let A=0;A<w;A++){const o=r[s].peerIds[A],C=a.findIndex(A=>A.peerId===o);if(-1===C)continue;const w=a[C].peerPublicKey,d=Rg(w),h=Array.from({length:l},(A,e)=>e),f=await Ct(h);for(let A=0;A<l;A++){const C=f[A],a=await mg(Q,C);if(!a)continue;const l=Og(new Uint8Array(a.data).slice(0,xg));l.chunkStartIndex<l.chunkEndIndex?g.dispatch(nI({roomId:e,merkleRootHex:c,sha512Hex:Q,fromPeerId:i.peerId,chunkSize:l.chunkEndIndex-l.chunkStartIndex,totalSize:E,messageType:l.messageType,filename:l.name,channelLabel:t??r[s].label})):await Hg(c,l.chunkIndex);const w=await Et(new Uint8Array(a.data),d,n,B,I),h=await Jg([B,w]);g.dispatch(Zt.endpoints.sendMessage.initiate({content:{type:"message",message:Lg(h),roomId:e,fromPeerId:i.peerId,toPeerId:o,label:t}}))}}}},dt=async A=>{const e=A?.wasmMemory??Tg(),I=A??await tt({wasmMemory:e}),g=I._malloc(Re),t=new Uint8Array(e.buffer,g,Re),i=I._malloc(xe),o=new Uint8Array(e.buffer,i,xe),n=I._malloc(Le),C=new Uint8Array(e.buffer,n,Le);window.crypto.getRandomValues(C);const a=I._keypair_from_seed(t.byteOffset,o.byteOffset,C.byteOffset);if(I._free(n),0===a){const A={publicKey:Uint8Array.from(t),secretKey:Uint8Array.from(o)};return I._free(g),I._free(i),A}throw I._free(g),I._free(i),new Error("An unexpected error occured.")},ht=async(A,e,I)=>{const g=A.length,t=I?I.wasmMemory:Xg(g),i=I??await tt({wasmMemory:t}),o=i._malloc(g*Uint8Array.BYTES_PER_ELEMENT),n=new Uint8Array(t.buffer,o,g*Uint8Array.BYTES_PER_ELEMENT);n.set(A);const C=i._malloc(Je),a=new Uint8Array(t.buffer,C,Je),r=i._malloc(xe),s=new Uint8Array(t.buffer,r,xe);s.set(e),i._sign(g,n.byteOffset,s.byteOffset,a.byteOffset);const B=Uint8Array.from([...a]);return i._free(o),i._free(C),i._free(r),B},ft=async(A,e,I,g)=>{const t=A.length,i=g?g.wasmMemory:Vg(t),o=g??await tt({wasmMemory:i}),n=o._malloc(t*Uint8Array.BYTES_PER_ELEMENT),C=new Uint8Array(i.buffer,n,t*Uint8Array.BYTES_PER_ELEMENT);C.set(A);const a=o._malloc(Je),r=new Uint8Array(i.buffer,a,Je);r.set(e);const s=o._malloc(Re),B=new Uint8Array(i.buffer,s,Re);B.set(I);const c=o._verify(t,C.byteOffset,B.byteOffset,r.byteOffset);return o._free(n),o._free(a),o._free(s),0===c},ut="~",yt=(A,e,I)=>new Promise((g,t)=>{try{(A.length<=0||A.length>32)&&t(new Error("Label larger than 128 characters")),"string"==typeof e&&e.length!==2*ve?t(new Error("Merkle root hex should be 128 bytes")):"string"!=typeof e&&e.length!==ve&&t(new Error("Merkle root should be 64 bytes")),"string"==typeof I&&I.length!==2*ve?t(new Error("Hash hex should be 128 bytes")):"string"!=typeof I&&I.length!==ve&&t(new Error("Hash should be 64 bytes"));let i="";const o=(new TextEncoder).encode(A),n=new Uint8Array(32);n.set(o.subarray(0,Math.min(32,o.length))),i+=Lg(n),i+=ut,"string"==typeof e?(i+=e,i+=ut):(i+=Lg(e),i+=ut),i+="string"==typeof I?I:Lg(I),g(i)}catch(A){t(A)}}),Dt=A=>new Promise((e,I)=>{try{const g=A.split(ut),t=g.length;3!==t&&t>1?I(new Error("Channel message label needs to have 3 components.")):1===t&&e({channelLabel:A,merkleRootHex:"",merkleRoot:new Uint8Array,hashHex:"",hash:new Uint8Array});const i=Rg(g[0]);32!==i.length&&I(new Error("Channel label is not 128 bytes long."));const o=(new TextDecoder).decode(i).replace(/\0+$/,""),n=Rg(g[1]);n.length!==ve&&I(new Error("Merkle root has invalid length"));const C=Rg(g[2]);C.length!==ve&&I(new Error("Message hash has invalid length")),e({channelLabel:o,merkleRoot:n,merkleRootHex:g[1],hash:C,hashHex:g[2]})}catch(A){I(A)}}),pt=A=>new Promise(e=>{setTimeout(e,A)}),mt=async(A,e,I,g,t,i,o,n)=>{try{let C=!1;const a=i.withPeerPublicKey,r=Rg(a),{hashHex:s,merkleRootHex:B}=await Dt(A.label),c=Array.from({length:I},(A,e)=>e),Q=await Ct(c);for(let i=0;i<I;i++){const I=Q[i],a=await dt(o),c=await ht(a.publicKey,e,o),E=await mg(s,I);if(!E)continue;const l=new Uint8Array(E.metadata),w=Og(l);if(w.chunkStartIndex>=0&&w.chunkEndIndex>w.chunkStartIndex&&w.chunkEndIndex-w.chunkStartIndex<=w.totalSize){const A=Pg(w.messageType);try{await Mg({merkleRoot:B,hash:s,chunkIndex:w.chunkIndex,data:E.data.slice(w.chunkStartIndex,w.chunkEndIndex),mimeType:A})}catch(A){console.error(A)}}const d=new Uint8Array(at);if(0===E.merkleProof.byteLength){const A=await it(g,Rg(E.realChunkHash),n,at);d.set(A);try{await Kg({hash:s,merkleRoot:B,realChunkHash:E.realChunkHash,chunkIndex:I,data:E.data,metadata:E.metadata,merkleProof:d.buffer})}catch(A){console.warn(A)}}else if(d.set(new Uint8Array(E.merkleProof)),0===E.merkleRoot.length)try{await Kg({hash:s,merkleRoot:B,realChunkHash:E.realChunkHash,chunkIndex:I,data:E.data,metadata:E.metadata,merkleProof:E.merkleProof})}catch(A){console.warn(A)}const h=await Jg([l,d,new Uint8Array(E.data)]),f=await Et(h,r,a.secretKey,t,o),u=await Jg([a.publicKey,c,f]),y=await ot(1,10);if(await pt(y),"open"===A.readyState&&A.bufferedAmount<Kt)A.send(u.buffer);else{if("closed"===A.readyState){console.log("Cannot send message because channel is "+A.readyState+" and bufferedAmount is "+A.bufferedAmount);break}C=!0;try{await Fg({position:I,label:A.label,toPeerId:A.withPeerId,encryptedData:u.buffer})}catch(A){console.error(A)}}}if(C)for(;"open"===A.readyState&&A.bufferedAmount<Kt;){const e=await Sg(A.label,i.withPeerId);for(;e.length>0&&A.bufferedAmount<Kt&&"open"===A.readyState;){const I=await ot(1,10);await pt(I);let g=await ot(0,e.length);g===e.length&&(g=0);const[t]=e.splice(g,1);if("open"===A.readyState){A.send(t.encryptedData);try{await Yg(A.label,i.withPeerId,t.position)}catch(A){console.error(A)}}}}}catch(A){throw console.error(A),A}},St=async(A,e,I,g,t)=>{try{const i=t.filter(A=>A.label===e.label),o=Lg(A),{channelLabel:n,merkleRootHex:C,hashHex:a}=await Dt(e.label);if(o===a){const A=I.messages.findLastIndex(A=>A.merkleRootHex===C||A.sha512Hex===a);A>-1&&g.dispatch(CI({roomId:I.id,merkleRootHex:C,sha512Hex:a,fromPeerId:I.messages[A].fromPeerId,totalSize:I.messages[A].totalSize,messageType:I.messages[A].messageType,filename:I.messages[A].filename,channelLabel:n,timestamp:I.messages[A].timestamp}))}else{const A=await mg(o),e=A?.chunkIndex??-1;if(A&&e>-1){const A=I.messages.findLastIndex(A=>A.merkleRootHex===C||A.sha512Hex===a),t=await((A,e)=>dg("getDBChunk",A,e))(C,e),r=t?.byteLength||0;t&&r>0&&A>-1?(I.messages[A].savedSize+r===I.messages[A].totalSize||I.messages[A].savedSize===I.messages[A].totalSize?g.dispatch(CI({roomId:I.id,merkleRootHex:C,sha512Hex:a,fromPeerId:I.messages[A].fromPeerId,totalSize:I.messages[A].totalSize,messageType:I.messages[A].messageType,filename:I.messages[A].filename,channelLabel:n,timestamp:I.messages[A].timestamp})):g.dispatch(nI({roomId:I.id,merkleRootHex:C,sha512Hex:a,fromPeerId:I.messages[A].fromPeerId,chunkSize:r,totalSize:I.messages[A].totalSize,messageType:I.messages[A].messageType,filename:I.messages[A].filename,channelLabel:n,timestamp:I.messages[A].timestamp})),1===i.length&&await Ng(void 0,o)):-1===A&&console.log("No message with hex "+a)}else console.log("Did not find chunk with receipt hex: "+o)}}catch(A){throw console.error(A),A}},kt=async(A,e,I,g,t,i,o,n)=>{try{const C=new Uint8Array(A),a=C.slice(0,Re),r=C.slice(Re,Re+Je);if(!await ft(a,r,g,o))return{date:new Date,chunkIndex:-1,chunkSize:0,receivedFullSize:!1,messageAlreadyExists:!1,chunkAlreadyExists:!1,savedSize:0,totalSize:0,messageType:Gg.Text,filename:"",chunkHash:new Uint8Array};const s=C.slice(Re+Je),B=await lt(s,a,t,e,o),c=Og(B.slice(0,xg)),Q=c.chunkEndIndex-c.chunkStartIndex>c.totalSize?0:c.chunkEndIndex-c.chunkStartIndex,E=Q>0?B.slice(xg+at+c.chunkStartIndex,xg+at+c.chunkEndIndex):B.slice(xg+at),l=await window.crypto.subtle.digest("SHA-512",B.slice(xg+at)),w=new Uint8Array(l);if(0===Q)return{date:c.date,chunkIndex:-1,chunkSize:0,receivedFullSize:!1,messageAlreadyExists:!1,chunkAlreadyExists:!1,savedSize:0,totalSize:c.totalSize,messageType:c.messageType,filename:c.name,chunkHash:w};const d=Lg(e),h=i.messages.findLastIndex(A=>A.merkleRootHex===d),f=await((A,e)=>dg("existsDBChunk",A,e))(d,c.chunkIndex),u=await yg(d),y=null!=u&&u.savedSize===u.totalSize||h>-1&&i.messages[h].totalSize===i.messages[h].savedSize,D=-1===h||!u||i.messages[h].totalSize>=i.messages[h].savedSize+Q&&!f,p=y||h>-1&&!f&&i.messages[h].totalSize===i.messages[h].savedSize+Q||-1===h&&Q===c.totalSize;if(!D)return{date:c.date,chunkIndex:-1,chunkSize:0===Q?0:-1===h?-1:-2,receivedFullSize:p,messageAlreadyExists:null!=u,chunkAlreadyExists:f,savedSize:h>-1?i.messages[h].savedSize:u?u.savedSize:0,totalSize:c.totalSize,messageType:c.messageType,filename:c.name,chunkHash:w};const m=B.slice(xg,xg+at),S=new DataView(m.buffer,m.byteOffset,4).getUint32(0,!1);if(S>at)return{date:c.date,chunkIndex:-1,chunkSize:-3,receivedFullSize:p,messageAlreadyExists:null!=u,chunkAlreadyExists:f,savedSize:h>-1?i.messages[h].savedSize:u?u.savedSize:0,totalSize:c.totalSize,messageType:c.messageType,filename:c.name,chunkHash:w};const k=m.slice(4,4+S),M=B.slice(xg+at),K=await(async(A,e,I,g)=>{const t=I.length;if(t%(ve+1)!==0)throw new Error("Proof length not multiple of hash length + 1.");const i=t/(ve+1),o=g?.wasmMemory??At(t),n=g??await tt({wasmMemory:o}),C=n._malloc(ve),a=new Uint8Array(o.buffer,C,ve),r=await window.crypto.subtle.digest("SHA-512",A);a.set(new Uint8Array(r));const s=n._malloc(ve),B=new Uint8Array(o.buffer,s,ve);B.set(e);const c=n._malloc(t),Q=new Uint8Array(o.buffer,c,t);Q.set(I);const E=n._verify_merkle_proof(i,a.byteOffset,B.byteOffset,Q.byteOffset);switch(n._free(C),n._free(s),n._free(c),E){case 0:return!0;case 1:return!1;case-1:throw new Error("If 1 artifact then proof is its hash");case-2:throw new Error("Could not allocate memory for hashes helper array.");case-3:throw new Error("Proof artifact position is neither left nor right.");case-4:throw new Error("Could not calculate hash.");default:throw new Error("Unexpected error occured.")}})(M,e,k,n);if(!K)return{date:c.date,chunkIndex:-1,chunkSize:-4,receivedFullSize:p,messageAlreadyExists:null!=u,chunkAlreadyExists:f,savedSize:h>-1?i.messages[h].savedSize:u?u.savedSize:0,totalSize:c.totalSize,messageType:c.messageType,filename:c.name,chunkHash:w};const F=Pg(c.messageType);try{return f||await Mg({merkleRoot:d,hash:I,chunkIndex:c.chunkIndex,data:E.buffer,mimeType:F}),{date:c.date,chunkIndex:c.chunkIndex,chunkSize:Q,receivedFullSize:p,messageAlreadyExists:null!=u,chunkAlreadyExists:f,savedSize:h>-1?i.messages[h].savedSize:u?u.savedSize:0,totalSize:c.totalSize,messageType:c.messageType,filename:c.name,chunkHash:w}}catch(A){return{date:c.date,chunkIndex:c.chunkIndex,chunkSize:0,receivedFullSize:null!=u&&p,messageAlreadyExists:null!=u,chunkAlreadyExists:f,savedSize:h>-1?i.messages[h].savedSize:u?u.savedSize:0,totalSize:0,messageType:c.messageType,filename:c.name,chunkHash:w}}}catch(A){throw console.error(A),A}},Mt=65536,Kt=131072,Ft=async({channel:A,epc:e,roomId:I,dataChannels:g,decryptionModule:t,merkleModule:i},o)=>{try{const{keyPair:n}=o.getState();if("string"==typeof A){const I=g.findIndex(I=>I.label===A&&I.withPeerId===e.withPeerId);if(I>-1&&"open"===g[I].readyState)return g[I]}const C="string"==typeof A?A:A.label,a="string"==typeof A?e.createDataChannel(A,{ordered:!1,protocol:"raw"}):A;a.binaryType="arraybuffer",a.bufferedAmountLowThreshold=Mt,a.onbufferedamountlow=async()=>{for(;"open"===a.readyState;){const A=await Sg(C,e.withPeerId);if(0===A.length)break;for(;A.length>0&&a.bufferedAmount<Kt&&"open"===a.readyState;){const I=await ot(1,10);await pt(I);let g=await ot(0,A.length);g===A.length&&(g=0);const[t]=A.splice(g,1);"open"===a.readyState&&(a.send(t.encryptedData),await Yg(C,e.withPeerId,t.position))}}};const r=a;return r.withPeerId=e.withPeerId,r.roomIds=[I],r.onclose=async()=>{console.log(`Channel with label ${r.label} has closed.`),await o.dispatch(xt.endpoints.disconnectFromPeerChannelLabel.initiate({peerId:e.withPeerId,label:r.label})),"main"===r.label&&o.dispatch(AI({roomId:I,connectingToPeers:!0}))},r.onerror=async A=>{console.error(A),await o.dispatch(Zt.endpoints.disconnectWebSocket.initiate()),await o.dispatch(xt.endpoints.disconnectFromPeerChannelLabel.initiate({peerId:e.withPeerId,label:r.label})),o.dispatch(AI({roomId:I,connectingToPeers:!0}))},r.onmessage=async A=>{try{const{channelLabel:a,merkleRoot:s,merkleRootHex:B,hash:c,hashHex:Q}=await Dt(C),E=e.withPeerPublicKey,l=Rg(E),w=Rg(n.secretKey),{rooms:d}=o.getState(),h=d.findIndex(A=>A.id===I);if(h>-1){const n=A.data;if(n.byteLength===ve)await St(new Uint8Array(n),r,d[h],o,g);else if(n.byteLength===Mt){const{date:A,chunkSize:g,chunkIndex:C,receivedFullSize:E,totalSize:f,messageType:u,filename:y,chunkHash:D}=await kt(n,s,Q,l,w,d[h],t,i);f>0&&D.length===ve&&"open"===r.readyState&&r.send(D.buffer),E?(await pg(I,B,Q,e.withPeerId,f,f,u,y,a,A.getTime()),"open"===r.readyState&&r.send(c.buffer),o.dispatch(CI({roomId:I,merkleRootHex:B,sha512Hex:Q,fromPeerId:e.withPeerId,totalSize:f,messageType:u,filename:y,channelLabel:a,timestamp:A.getTime(),alsoSendFinishedMessage:!0}))):g>0&&C>-1&&(await pg(I,B,Q,e.withPeerId,g,f,u,y,a,A.getTime()),o.dispatch(nI({roomId:I,merkleRootHex:B,sha512Hex:Q,fromPeerId:e.withPeerId,chunkSize:g,totalSize:f,messageType:u,filename:y,channelLabel:a,timestamp:A.getTime()})))}else console.error("Unrecognized data size")}}catch(A){console.error(A)}},r.onopen=async()=>{try{console.log(`Channel with label "${r.label}" and client ${e.withPeerId} is open.`),g.push(r);const A=await Dt(C);""===A.merkleRootHex&&A.channelLabel.length>0&&o.dispatch(iI({roomId:I,label:C,peerId:r.withPeerId}))}catch(A){console.error(A)}},r}catch(A){throw A}},Ht=async A=>{try{for(;A.iceCandidates.length>0&&"stable"===A.signalingState&&A.remoteDescription;){const e=A.iceCandidates.shift();if(e){const I=new RTCIceCandidate(e);I.usernameFragment!==e.usernameFragment&&await A.addIceCandidate(I)}}}catch(A){throw A}},Nt=async({peerId:e,peerPublicKey:I,roomId:g,initiator:t,rtcConfig:i},o)=>new Promise((n,C)=>{try{const{keyPair:a}=o.getState();t||(t=!0),i||(i=Ze),console.log(i),t&&console.log(`You are initiating a peer connection with ${e}.`),A.isUUID(e)||C(new Error("PeerId is not a valid uuidv4")),64!==I.length&&C(new Error("Peer public key is not a valid length"));const r=new RTCPeerConnection(i);r.withPeerId=e,r.withPeerPublicKey=I,r.roomIds=[g],r.iceCandidates=[],r.onnegotiationneeded=async()=>{if("stable"===r.signalingState)try{await r.setLocalDescription(),r.localDescription&&(o.dispatch(Zt.endpoints.sendMessage.initiate({content:{type:"description",description:r.localDescription,fromPeerId:a.peerId,fromPeerPublicKey:a.publicKey,toPeerId:e,roomId:g}})),console.log(`Negotiation was needed with ${e} and you sent a description ${r.localDescription.type}.`))}catch(A){console.error(A)}},r.onicecandidate=({candidate:A})=>{A&&""!==A.candidate&&o.dispatch(Zt.endpoints.sendMessage.initiate({content:{type:"candidate",candidate:A,fromPeerId:a.peerId,toPeerId:e,roomId:g}}))},r.onicecandidateerror=A=>{console.error(A)},r.oniceconnectionstatechange=()=>{if("failed"===r.iceConnectionState){const{signalingServer:A}=o.getState();!A.isConnected&&!A.isEstablishingConnection&&A.serverUrl.length>0&&o.dispatch(Zt.endpoints.connectWebSocket.initiate(A.serverUrl)),r.restartIce()}console.log(`ICE candidate connection state with ${e} is ${r.iceConnectionState}.`)},r.onicegatheringstatechange=()=>{console.log(`ICE gathering state with ${e} is ${r.iceGatheringState}.`)},r.onsignalingstatechange=async()=>{console.log(`Signaling state with ${e} is ${r.signalingState}.`),"stable"===r.signalingState&&r.remoteDescription&&await Ht(r)},r.onconnectionstatechange=async()=>{"closed"===r.connectionState||"failed"===r.connectionState||"disconnected"===r.connectionState?(console.error(`Connection with peer ${e} has ${r.connectionState}.`),await o.dispatch(xt.endpoints.disconnectFromPeer.initiate({peerId:e}))):(console.log(`Connection status with peer ${e} is ${r.connectionState}.`),"connected"===r.connectionState&&o.dispatch(tI({roomId:g,peerId:e,peerPublicKey:I})))},n(r)}catch(A){C(A)}}),Yt=async({data:A,label:e,roomId:I,peerConnections:g,dataChannels:t,encryptionWasmMemory:i,decryptionWasmMemory:o,merkleWasmMemory:n,minChunks:C,chunkSize:a,percentageFilledChunk:r,metadataSchemaVersion:s},B)=>{try{const c=await tt({wasmMemory:i}),Q=await tt({wasmMemory:o}),E=await tt({wasmMemory:n});return await(async(A,e,I,g,t,i,o,n,C,a=1,r=st,s=.9,B=1)=>{try{const{rooms:c,keyPair:Q}=e.getState(),E=Rg(Q.secretKey),l=c.findIndex(A=>A.id===g);if(l>-1){const Q=c[l].channels.findIndex(A=>A.label===I);if(-1===Q)throw new Error("No channel with label "+I);const{merkleRoot:w,merkleRootHex:d,hashHex:h,totalChunks:f,chunkHashes:u}=await Qt(A,e,I,c[l],a,r,s,B);if(0===w.length||0===h.length||0===f||0===u.length)return;const y=await yt(I,d,h),D=c[l].channels[Q].peerIds.length,p=[];for(let A=0;A<D;A++){const I=t.findIndex(e=>e.withPeerId===c[l].channels[Q].peerIds[A]);if(-1===I)continue;const a=await Ft({channel:y,epc:t[I],roomId:g,dataChannels:i,decryptionModule:n,merkleModule:C},e);p.push(mt(a,E,f,u,w,t[I],o,C))}await Promise.allSettled(p)}}catch(A){console.trace(A)}})(A,B,e,I,g,t,c,Q,E,C,a,r,s),{data:void 0}}catch(A){throw A}},Gt=async({alsoDeleteDB:A,peerConnections:e,dataChannels:I},g)=>{try{const t=I.length;for(let A=0;A<t;A++)"open"===I[A].readyState&&I[A].close();const i=e.length;for(let A=0;A<i;A++)g.dispatch(aI({peerId:e[A].withPeerId})),e[A].ontrack=null,e[A].ondatachannel=null,e[A].onicecandidate=null,e[A].onicecandidateerror=null,e[A].onnegotiationneeded=null,e[A].onsignalingstatechange=null,e[A].onconnectionstatechange=null,e[A].onicegatheringstatechange=null,e[A].oniceconnectionstatechange=null,"closed"!==e[A].connectionState&&e[A].close(),delete e[A],e.splice(A,1);return A&&await dg("deleteDB"),{data:void 0}}catch(A){throw A}},Ut=async({roomId:A,deleteMessages:e,peerConnections:I,dataChannels:g},t)=>{try{const i=g.length;for(let e=0;e<i;e++){if(!g[e]||!g[e].roomIds.includes(A)||"open"!==g[e].readyState)continue;const I=g[e].roomIds.findIndex(e=>e===A);I>-1&&(g[e].roomIds.splice(I,1),0===g[e].roomIds.length&&g[e].close())}const o=I.length;for(let e=0;e<o;e++){if(!I[e]||!I[e].roomIds.includes(A)||"connected"!==I[e].connectionState)continue;const g=I[e].roomIds.findIndex(e=>e===A);g>-1&&(I[e].roomIds.splice(g,1),0===I[e].roomIds.length&&(I[e].ontrack=null,I[e].ondatachannel=null,I[e].onicecandidate=null,I[e].onicecandidateerror=null,I[e].onnegotiationneeded=null,I[e].onsignalingstatechange=null,I[e].onconnectionstatechange=null,I[e].onicegatheringstatechange=null,I[e].oniceconnectionstatechange=null,I[e].close(),t.dispatch(aI({peerId:I[e].withPeerId})),delete I[e],I.splice(e,1)))}if(e){const e=await ug();if(e.findIndex(e=>e.roomId===A)>-1){await(A=>dg("deleteDBUniqueRoom",A))(A);const e=await Dg(A),I=e.length;for(let A=0;A<I;A++)t.dispatch(sI({merkleRootHex:e[A].merkleRoot}))}}return{data:void 0}}catch(A){throw A}},bt=[],Pt=[],vt=[],Jt=Wg(65536-ve-ze-qe,ve),Lt=Zg(65536,ve),Rt=At(192*(ve+1)),xt=cg({reducerPath:"webrtcApi",baseQuery:async({peerId:A,peerPublicKey:e,roomId:I,initiator:g,rtcConfig:t,peerConnections:i,dataChannels:o,decryptionWasmMemory:n,merkleWasmMemory:C},a)=>{try{const{keyPair:r}=a.getState();if(A===r.peerId)throw new Error("Cannot create a connection with oneself.");const s=await tt({wasmMemory:n}),B=await tt({wasmMemory:C});if(await fg(A))return{data:void 0};const c=i.findIndex(e=>e.withPeerId===A);if(-1===c){const n=await Nt({peerId:A,peerPublicKey:e,roomId:I,initiator:g,rtcConfig:t},a);n.ondatachannel=async A=>{await Ft({channel:A.channel,epc:n,roomId:I,dataChannels:o,decryptionModule:s,merkleModule:B},a)},i.push(n),g&&await Ft({channel:"main",epc:n,roomId:I,dataChannels:o,decryptionModule:s,merkleModule:B},a)}else{const g=i[c];if("connected"===g.connectionState){g.roomIds.push(I),a.dispatch(tI({roomId:I,peerId:A,peerPublicKey:e}));const t=o.length;for(let e=0;e<t;e++)o[e].withPeerId===A&&o[e].roomIds.push(I);const{rooms:i}=a.getState(),n=i.length;for(let e=0;e<n;e++){const g=i[e].channels.findIndex(e=>e.peerIds.includes(A));g>-1&&a.dispatch(iI({roomId:I,label:i[e].channels[g].label,peerId:A}))}}}return{data:void 0}}catch(A){throw A}},endpoints:A=>({connectWithPeer:A.mutation({query:({peerId:A,peerPublicKey:e,roomId:I,initiator:g=!0,rtcConfig:t={iceServers:[{urls:["stun:stun.p2party.com:3478"]}]}})=>({peerId:A,peerPublicKey:e,roomId:I,initiator:g,rtcConfig:t,peerConnections:bt,dataChannels:vt,encryptionWasmMemory:Jt,decryptionWasmMemory:Lt,merkleWasmMemory:Rt})}),setDescription:A.mutation({queryFn:(A,e,I)=>(async({peerId:A,peerPublicKey:e,roomId:I,description:g,rtcConfig:t,peerConnections:i,iceCandidates:o,dataChannels:n,decryptionWasmMemory:C,merkleWasmMemory:a},r)=>{try{const{keyPair:s}=r.getState(),B=await tt({wasmMemory:C}),c=await tt({wasmMemory:a}),Q=i.findIndex(e=>e.withPeerId===A),E=Q>-1?i[Q]:await Nt({peerId:A,peerPublicKey:e,roomId:I,initiator:!1,rtcConfig:t},r);E.ondatachannel=async A=>{await Ft({channel:A.channel,epc:E,roomId:I,dataChannels:n,decryptionModule:B,merkleModule:c},r)};const l=o.length,w=[];for(let e=0;e<l;e++)o[e].withPeerId===A&&(w.push(e),E.iceCandidates.push(o[e]));const d=w.length;for(let A=0;A<d;A++)o.splice(w[A],1);if(-1===Q&&i.push(E),"offer"===g.type){await E.setRemoteDescription(g),await E.setLocalDescription();const e=E.localDescription;e&&r.dispatch(Zt.endpoints.sendMessage.initiate({content:{type:"description",description:e,fromPeerId:s.peerId,fromPeerPublicKey:s.publicKey,toPeerId:A,roomId:I}}))}else"stable"===E.signalingState||"have-local-offer"!==E.signalingState&&"have-remote-offer"!==E.signalingState?await Ht(E):await E.setRemoteDescription(g);return"connected"===E.connectionState&&Q>-1&&await Ft({channel:"main",epc:E,roomId:I,dataChannels:n,decryptionModule:B,merkleModule:c},r),{data:void 0}}catch(A){throw A}})({...A,peerConnections:bt,iceCandidates:Pt,dataChannels:vt,decryptionWasmMemory:Lt,merkleWasmMemory:Rt},e)}),setCandidate:A.mutation({queryFn:(A,e,I)=>(async({peerId:A,candidate:e,peerConnections:I,iceCandidates:g})=>{try{const t=I.findIndex(e=>e.withPeerId===A);if(t>-1){const A=I[t],g=new RTCIceCandidate(e);if(A.remoteDescription&&"stable"===A.signalingState)try{await A.addIceCandidate(g)}catch(A){throw A}else A.iceCandidates.push(g)}else g.push({...e,withPeerId:A});return{data:void 0}}catch(A){throw A}})({...A,peerConnections:bt,iceCandidates:Pt})}),openChannel:A.mutation({queryFn:(A,e,I)=>(async({roomId:A,channel:e,withPeers:I,peerConnections:g,dataChannels:t,decryptionWasmMemory:i,merkleWasmMemory:o},n)=>{try{const{keyPair:C}=n.getState(),a=await tt({wasmMemory:i}),r=await tt({wasmMemory:o});if(I&&I.length>0){const i=I.length;for(let o=0;o<i;o++){if(C.peerId===I[o].peerId)continue;const i=g.findIndex(A=>A.withPeerId===I[o].peerId);if(i>-1){const I=g[i];await Ft({channel:e,epc:I,roomId:A,dataChannels:t,decryptionModule:a,merkleModule:r},n)}}}else{const I=g.length;for(let i=0;i<I;i++){const I=g[i];await Ft({channel:e,epc:I,roomId:A,dataChannels:t,decryptionModule:a,merkleModule:r},n)}}return{data:void 0}}catch(A){throw A}})({...A,peerConnections:bt,dataChannels:vt,decryptionWasmMemory:Lt,merkleWasmMemory:Rt},e)}),sendMessage:A.mutation({queryFn:(A,e,I)=>Yt({...A,peerConnections:bt,dataChannels:vt,encryptionWasmMemory:Jt,decryptionWasmMemory:Lt,merkleWasmMemory:Rt},e)}),disconnect:A.mutation({queryFn:(A,e,I)=>Gt({...A,peerConnections:bt,dataChannels:vt},e)}),disconnectFromRoom:A.mutation({queryFn:(A,e,I)=>Ut({...A,peerConnections:bt,dataChannels:vt},e)}),disconnectFromAllRooms:A.mutation({queryFn:(A,e,I)=>(async({deleteMessages:A,exceptionRoomIds:e,peerConnections:I,dataChannels:g},t)=>new Promise((i,o)=>{try{let o,n=0;const C=g.length;for(o=0;o<C;o++)if(g[o]&&"open"===g[o].readyState)if(e&&e.length>0){const A=g[o].roomIds.length,I=[];for(n=0;n<A;n++)e.includes(g[o].roomIds[n])||I.push(n);const t=I.length;for(n=0;n<t;n++)g[o].roomIds.splice(I[n],1);0===g[o].roomIds.length&&g[o].close()}else g[o].close();const a=I.length;for(o=0;o<a;o++)if(I[o]&&"connected"===I[o].connectionState)if(e&&e.length>0){const A=I[o].roomIds.length,g=[];for(n=0;n<A;n++)e.includes(I[o].roomIds[n])||g.push(n);const i=g.length;for(n=0;n<i;n++)I[o].roomIds.splice(g[n],1);0===I[o].roomIds.length&&(I[o].ontrack=null,I[o].ondatachannel=null,I[o].onicecandidate=null,I[o].onicecandidateerror=null,I[o].onnegotiationneeded=null,I[o].onsignalingstatechange=null,I[o].onconnectionstatechange=null,I[o].onicegatheringstatechange=null,I[o].oniceconnectionstatechange=null,I[o].close(),t.dispatch(aI({peerId:I[o].withPeerId})),delete I[o],I.splice(o,1))}else I[o].ontrack=null,I[o].ondatachannel=null,I[o].onicecandidate=null,I[o].onicecandidateerror=null,I[o].onnegotiationneeded=null,I[o].onsignalingstatechange=null,I[o].onconnectionstatechange=null,I[o].onicegatheringstatechange=null,I[o].oniceconnectionstatechange=null,I[o].close(),t.dispatch(aI({peerId:I[o].withPeerId})),delete I[o],I.splice(o,1);if(A){const{rooms:A}=t.getState(),I=A.length;for(o=0;o<I;o++){if(e&&e.includes(A[o].id))continue;const I=A[o].messages.length;for(n=0;n<I;n++)t.dispatch(sI({merkleRootHex:A[o].messages[n].merkleRootHex}))}}i({data:void 0})}catch(A){o(A)}}))({...A,peerConnections:bt,dataChannels:vt},e)}),disconnectFromPeer:A.mutation({queryFn:(A,e,I)=>(async({peerId:A,alsoDeleteData:e,peerConnections:I,dataChannels:g},t)=>{try{t.dispatch(aI({peerId:A}));const i=I.findIndex(e=>e.withPeerId===A);i>-1&&(I[i].ontrack=null,I[i].ondatachannel=null,I[i].onicecandidate=null,I[i].onicecandidateerror=null,I[i].onnegotiationneeded=null,I[i].onsignalingstatechange=null,I[i].onconnectionstatechange=null,I[i].onicegatheringstatechange=null,I[i].oniceconnectionstatechange=null,"closed"!==I[i].connectionState&&I[i].close(),delete I[i],I.splice(i,1));const o=g.length;for(let e=0;e<o;e++)g[e].withPeerId===A&&"open"===g[e].readyState&&g[e].close();if(e){const{rooms:e}=t.getState(),I=e.length;for(let g=0;g<I;g++){const I=e[g].messages.length;for(let i=0;i<I;i++)e[g].messages[i].fromPeerId===A&&t.dispatch(sI({merkleRootHex:e[g].messages[i].merkleRootHex}))}}return{data:void 0}}catch(A){throw A}})({...A,peerConnections:bt,dataChannels:vt},e)}),disconnectFromChannelLabel:A.mutation({queryFn:(A,e,I)=>(async({label:A,alsoDeleteData:e,dataChannels:I},g)=>{try{const t=I.length;if(0===t)return{data:void 0};for(let i=0;i<t;i++)if(I[i]&&I[i].label===A&&"open"===I[i].readyState){if(e){const{merkleRootHex:I}=await Dt(A);e&&g.dispatch(sI({merkleRootHex:I}))}I[i].close()}return{data:void 0}}catch(A){throw A}})({...A,dataChannels:vt},e)}),disconnectFromPeerChannelLabel:A.mutation({queryFn:(A,e,I)=>(async({peerId:A,label:e,peerConnections:I,dataChannels:g},t)=>{try{const i=g.findIndex(I=>I.label===e&&I.withPeerId===A);i>-1&&g[i]&&(t.dispatch(rI({peerId:A,label:e})),await Yg(e,A),g[i]&&(g[i].onopen=null,g[i].onclose=null,g[i].onerror=null,g[i].onclosing=null,g[i].onmessage=null,g[i].onbufferedamountlow=null,"open"===g[i].readyState&&g[i].close(),delete g[i]),g.splice(i,1));const{channelLabel:o,merkleRootHex:n}=await Dt(e),C=n.length>0,{rooms:a,keyPair:r}=t.getState(),s=a.length;let B=!1;for(let e=0;e<s;e++){if(C){const A=a[e].messages.findLastIndex(A=>A.merkleRootHex===n);if(A>-1&&a[e].messages[A].fromPeerId===r.peerId){const I=a[e].messages[A].sha512Hex,g=a[e].id,t=a[e].messages[A].savedSize,i=a[e].messages[A].totalSize,C=a[e].messages[A].messageType,s=a[e].messages[A].filename,B=a[e].messages[A].timestamp;await pg(g,n,I,r.peerId,t,i,C,s,o,B)}}const I=a[e].channels.length;for(let g=0;g<I;g++)if(a[e].channels[g].peerIds.includes(A)){B=!0;break}if(B)break}if(!B){t.dispatch(aI({peerId:A}));const e=I.findIndex(e=>e.withPeerId===A);e>-1&&(I[e].ontrack=null,I[e].ondatachannel=null,I[e].onicecandidate=null,I[e].onicecandidateerror=null,I[e].onnegotiationneeded=null,I[e].onsignalingstatechange=null,I[e].onconnectionstatechange=null,I[e].onicegatheringstatechange=null,I[e].oniceconnectionstatechange=null,"closed"!==I[e].connectionState&&I[e].close(),delete I[e],I.splice(e,1))}return{data:void 0}}catch(A){throw A}})({...A,peerConnections:bt,dataChannels:vt},e)})})}),qt=Wg(65536-ve-ze-qe,ve),Ot=async(e,I,g)=>{try{if("PING"===e.data)return I.send("PONG");const t=JSON.parse(e.data);switch(t.type){case"ping":{const{keyPair:A}=g.getState();g.dispatch(Zt.endpoints.sendMessage.initiate({content:{type:"pong",fromPeerId:A.peerId}}));break}case"peerId":{const{keyPair:e}=g.getState(),I=t.peerId??"",i=t.challenge??"",o=A.isUUID(I)&&A.isHexadecimal(i)&&64===i.length&&0===e.challenge.length&&0===e.signature.length&&!t.challengeId&&!t.username&&!t.credential,n=A.isUUID(I)&&A.isUUID(e.peerId)&&e.peerId!==I&&A.isHexadecimal(i)&&64===i.length&&!t.challengeId&&!t.username&&!t.credential;o||n?await(async(A,e,I,g)=>{try{const t=Rg(A.secretKey),i=Uint8Array.from(I.match(/.{1,2}/g).map(A=>parseInt(A,16))),o=await ht(i,t),n=[...new Uint8Array(o)].map(A=>A.toString(16).padStart(2,"0")).join("");g.dispatch(Ge({peerId:e,challenge:I,signature:n}))}catch(A){throw A}})(e,I,i,g):g.dispatch(Ye({peerId:I,challenge:i,signature:t.signature??"",challengeId:t.challengeId??"",username:t.username??"",credential:t.credential??""}));break}case"roomId":g.dispatch($e({id:t.roomId,url:t.roomUrl}));break;case"challenge":g.dispatch(Ue(t));break;case"peerConnection":{if(await fg(t.peer.id,t.peer.publicKey))break;const{keyPair:A,rooms:e}=g.getState(),I=e.findIndex(A=>A.id===t.roomId);if(I>-1&&e[I].onlyConnectWithKnownAddresses){if(!await hg(t.peer.id,t.peer.publicKey))break}g.dispatch(Zt.endpoints.sendMessage.initiate({content:{type:"peerConnection",roomId:t.roomId,fromPeerId:A.peerId,toPeerId:t.peer.id}}));break}case"peers":{const{keyPair:e,rooms:I,commonState:i}=g.getState(),o=64===i.currentRoomUrl.length?I.findIndex(A=>A.url===i.currentRoomUrl):-1;if(o>-1){const i=t.peers.length;if(0===i)break;const n=I[o].onlyConnectWithKnownAddresses;for(let C=0;C<i;C++){if(t.peers[C].publicKey===e.publicKey||t.peers[C].id===e.peerId||!A.isUUID(t.peers[C].id)||64!==t.peers[C].publicKey.length)continue;if(!await fg(t.peers[C].id,t.peers[C].publicKey)){if(n){if(!await hg(t.peers[C].id,t.peers[C].publicKey))continue}g.dispatch(xt.endpoints.connectWithPeer.initiate({roomId:t.roomId,peerId:t.peers[C].id,peerPublicKey:t.peers[C].publicKey,initiator:!0,rtcConfig:I[o].rtcConfig}))}}}break}case"description":await fg(t.fromPeerId,t.fromPeerPublicKey)||g.dispatch(xt.endpoints.setDescription.initiate({peerId:t.fromPeerId,peerPublicKey:t.fromPeerPublicKey,roomId:t.roomId,description:t.description}));break;case"candidate":await fg(t.fromPeerId)||g.dispatch(xt.endpoints.setCandidate.initiate({peerId:t.fromPeerId,candidate:t.candidate}));break;case"connection":{const{keyPair:e}=g.getState();if(A.isUUID(e.peerId)&&A.isHexadecimal(e.challenge)&&A.isHexadecimal(e.signature)&&128===e.signature.length&&64===e.challenge.length&&A.isUUID(t.fromPeerId)&&64===t.fromPeerPublicKey.length&&A.isUUID(t.roomId)){g.dispatch(tI({roomId:t.roomId,peerId:t.fromPeerId,peerPublicKey:t.fromPeerPublicKey}));const A=await tt({wasmMemory:qt}),I=t.labels.length;for(let i=0;i<I;i++){g.dispatch(iI({roomId:t.roomId,label:t.labels[i],peerId:t.fromPeerId}));const I=`Connected with ${e.peerId} on channel ${t.labels[i]}`;await wt(I,t.roomId,A,g,t.labels[i])}}break}case"error":console.error(t);break;default:console.error("Unknown message type "+t)}}catch(A){return}},jt=Wg(65536-ve-ze-qe,ve),Tt=(A,e,I=10,g=20)=>{let t=0;const i=setInterval(()=>{A.readyState===WebSocket.OPEN?(clearInterval(i),e()):(t+=1,console.log(`Waiting for connection... Attempt ${String(t)}`),t>=I&&(clearInterval(i),console.log("WebSocket failed to connect after multiple attempts, closing..."),A.removeEventListener("message",()=>{}),A.removeEventListener("open",()=>{}),A.removeEventListener("close",()=>{}),A.close()))},g)};let zt=null;const Xt=async(A,e)=>(zt&&(zt.removeEventListener("message",()=>{}),zt.removeEventListener("open",()=>{}),zt.removeEventListener("close",()=>{}),zt.close(),zt=null,console.log("WebSocket manually disconnected")),e.dispatch(lI.disconnect()),{data:void 0}),Vt=async(e,I)=>{if(zt&&zt.readyState===WebSocket.OPEN){const{keyPair:g}=I.getState();return A.isUUID(g.peerId)&&A.isHexadecimal(g.challenge)&&A.isHexadecimal(g.signature)&&128===g.signature.length&&64===g.challenge.length&&Tt(zt,()=>{zt.send(JSON.stringify(e.content))}),{data:void 0}}return console.warn("WebSocket is not open"),{data:void 0}},Wt=async({peerId:e,peerPublicKey:I,roomId:g},t)=>{if(zt&&zt.readyState===WebSocket.OPEN){const{keyPair:i}=t.getState();if(A.isUUID(i.peerId)&&A.isHexadecimal(i.challenge)&&A.isHexadecimal(i.signature)&&128===i.signature.length&&64===i.challenge.length&&A.isUUID(e)&&64===I.length&&A.isUUID(g)){t.dispatch(tI({roomId:g,peerId:e,peerPublicKey:I}));const A=[];t.dispatch(iI({roomId:g,label:"main",peerId:e})),A.push("main"),t.dispatch(iI({roomId:g,label:"signaling",peerId:e})),A.push("signaling"),Tt(zt,()=>{zt.send(JSON.stringify({type:"connection",roomId:g,fromPeerId:i.peerId,toPeerId:e,labels:A}))});const o=A.length,n=await tt({wasmMemory:jt});for(let e=0;e<o;e++){const I=`Connected with ${i.peerId} on channel ${A[e]}`;await wt(I,g,n,t,A[e])}}return{data:void 0}}return console.warn("WebSocket is not open"),{data:void 0}},Zt=cg({reducerPath:"signalingServerApi",baseQuery:async({signalingServerUrl:e},I)=>{const{signalingServer:g}=I.getState();if(zt||g.isConnected||g.isEstablishingConnection)return console.log("WebSocket already connected"),{data:void 0};I.dispatch(lI.startConnecting(e));try{const{keyPair:g}=I.getState();let t=localStorage.getItem("publicKey")??"",i=localStorage.getItem("secretKey")??"";if(0===g.secretKey.length&&0===i.length){const A=await dt();t=Lg(A.publicKey),i=Lg(A.secretKey),I.dispatch(Ne({publicKey:t,secretKey:i}))}else if(0===g.secretKey.length)if(128===i.length&&64===t.length)I.dispatch(Ne({publicKey:t,secretKey:i}));else{const A=await dt();t=Lg(A.publicKey),i=Lg(A.secretKey),I.dispatch(Ne({publicKey:t,secretKey:i}))}else t=g.publicKey;const o=e+"?publickey="+t;return zt=new WebSocket(o),zt.binaryType="arraybuffer",new Promise((e,t)=>{try{zt.onopen=()=>{console.log("WebSocket connected to:",o),I.dispatch(lI.connectionEstablished());const{rooms:t,commonState:i}=I.getState(),n=64===i.currentRoomUrl.length?t.findIndex(A=>A.url===i.currentRoomUrl):-1;n>-1&&A.isUUID(g.peerId)&&A.isUUID(t[n].id)?I.dispatch(AI({roomId:t[n].id,connectingToPeers:!0})):A.isUUID(g.peerId)&&64===i.currentRoomUrl.length&&Tt(zt,()=>{zt.send(JSON.stringify({type:"room",fromPeerId:g.peerId,roomUrl:i.currentRoomUrl}))}),e({data:void 0})},zt.onerror=A=>{console.error("WebSocket error:",A),zt&&(zt.removeEventListener("message",()=>{}),zt.removeEventListener("open",()=>{}),zt.removeEventListener("close",()=>{}),zt.close(),zt=null),I.dispatch(lI.disconnect()),t({error:"WebSocket connection failed"})},zt.onmessage=async A=>{await Ot(A,zt,I)},zt.onclose=()=>{zt&&(zt.removeEventListener("message",()=>{}),zt.removeEventListener("open",()=>{}),zt.removeEventListener("close",()=>{}),zt.close(),zt=null),I.dispatch(lI.disconnect()),console.log("WebSocket disconnected"),e({data:void 0})}}catch(A){t(A)}return()=>{zt&&(console.log("Cleaning up WebSocket connection..."),zt.removeEventListener("message",()=>{}),zt.removeEventListener("open",()=>{}),zt.removeEventListener("close",()=>{}),zt.close(),zt=null)}})}catch(A){return zt&&(zt.removeEventListener("message",()=>{}),zt.removeEventListener("open",()=>{}),zt.removeEventListener("close",()=>{}),zt.close(),zt=null),I.dispatch(lI.disconnect()),console.error("Error during WebSocket setup:",A),{error:"WebSocket connection failed"}}},endpoints:A=>({connectWebSocket:A.mutation({query:(A="wss://signaling.p2party.com/ws")=>({signalingServerUrl:A})}),disconnectWebSocket:A.mutation({queryFn:Xt}),sendMessage:A.mutation({queryFn:Vt}),connectWithPeer:A.mutation({queryFn:Wt})})}),_t=me();_t.startListening({matcher:mA(AI,$e,iI,CI,sI,BI),effect:async(e,I)=>{if(AI.match(e)){const{roomId:g,connectingToPeers:t}=e.payload;if(t){const{signalingServer:e,keyPair:t,rooms:i}=I.getState(),o=i.findIndex(A=>A.id===g);e.isConnected&&A.isUUID(t.peerId)&&o>-1&&A.isUUID(i[o].id)&&I.dispatch(Zt.endpoints.sendMessage.initiate({content:{type:"peers",fromPeerId:t.peerId,roomId:g}})),I.dispatch(AI({roomId:g,connectingToPeers:!1}))}}else if(iI.match(e));else if($e.match(e)){const{signalingServer:i,keyPair:o,rooms:n}=I.getState(),{url:C,id:a,onlyConnectWithKnownPeers:r}=e.payload;if(64===C.length&&null!=r&&localStorage.setItem(C+"-onlyConnectWithKnownPeers",String(r)),64===C.length&&A.isUUID(a)){await(g=C,t=a,dg("setDBUniqueRoom",g,t));const e=await Dg(a),r=e.length;for(let A=0;A<r;A++)I.dispatch(nI({roomId:e[A].roomId,merkleRootHex:e[A].merkleRoot,sha512Hex:e[A].hash,fromPeerId:e[A].fromPeerId,filename:e[A].filename,messageType:e[A].messageType,chunkSize:e[A].savedSize,totalSize:e[A].totalSize,channelLabel:e[A].channelLabel,timestamp:e[A].timestamp}));const s=n.findIndex(A=>A.id===a);i.isConnected&&A.isUUID(o.peerId)&&s>-1&&A.isUUID(n[s].id)&&I.dispatch(Zt.endpoints.sendMessage.initiate({content:{type:"peers",fromPeerId:o.peerId,roomId:n[s].id}}))}}else if(CI.match(e)){const{roomId:A,merkleRootHex:g,sha512Hex:t,alsoSendFinishedMessage:i}=e.payload,{rooms:o,keyPair:n}=I.getState(),C=o.findIndex(e=>e.id===A);if(C>-1){const A=o[C].messages.findLastIndex(A=>A.merkleRootHex===g||A.sha512Hex===t);if(A>-1&&o[C].messages[A].fromPeerId!==n.peerId){const e=await yt(o[C].messages[A].channelLabel,o[C].messages[A].merkleRootHex,o[C].messages[A].sha512Hex);I.dispatch(xt.endpoints.disconnectFromChannelLabel.initiate({label:e,alsoDeleteData:!1,alsoSendFinishedMessage:i}))}}}else if(sI.match(e)){const{merkleRootHex:A,hashHex:I}=e.payload;if(!A&&!I)return;if(A&&A.length!==2*ve)return;if(I&&I.length!==2*ve)return;A?(await Hg(A),await Ng(A),await(A=>dg("deleteDBMessageData",A))(A)):I&&await Ng(void 0,void 0,I)}else if(BI.match(e)){const A=e.payload;I.dispatch(xt.endpoints.disconnectFromRoom.initiate({roomId:A,deleteMessages:!0}))}var g,t}});const $t=me();$t.startListening({matcher:mA(Ne,Ye,Ge,Ue,be),effect:(e,I)=>{if(Ne.match(e)){const{publicKey:A,secretKey:I}=e.payload;64===A.length&&128===I.length&&(localStorage.setItem("publicKey",e.payload.publicKey),localStorage.setItem("secretKey",e.payload.secretKey))}else if(Ye.match(e)){const{peerId:g,challenge:t,signature:i,challengeId:o,username:n,credential:C}=e.payload;if(A.isUUID(g)&&A.isUUID(o)&&A.isHexadecimal(t)&&A.isHexadecimal(i)&&64===t.length&&128===i.length){localStorage.setItem("peerId",g),localStorage.setItem("challenge",t),localStorage.setItem("signature",i),localStorage.setItem("challengeId",o);const{keyPair:a,rooms:r,commonState:s}=I.getState(),B=64===s.currentRoomUrl.length?r.findIndex(A=>A.url===s.currentRoomUrl):-1;B>-1?(e.payload.username&&e.payload.credential&&I.dispatch(oI({roomId:r[B].id,iceServers:[{urls:["turn:turn.p2party.com:3478?transport=udp","turn:turn.p2party.com:3478?transport=tcp","turns:turn.p2party.com:443?transport=tcp"],username:n,credential:C}]})),A.isUUID(r[B].id)&&I.dispatch(AI({roomId:r[B].id,connectingToPeers:!0}))):A.isUUID(a.peerId)&&64===s.currentRoomUrl.length&&I.dispatch(Zt.endpoints.sendMessage.initiate({content:{type:"room",fromPeerId:a.peerId,roomUrl:s.currentRoomUrl}}))}}else if(Ge.match(e)){const{peerId:g,challenge:t,signature:i}=e.payload;A.isUUID(g)&&A.isHexadecimal(t)&&A.isHexadecimal(i)&&64===t.length&&128===i.length&&(localStorage.setItem("peerId",g),localStorage.setItem("challenge",t),localStorage.setItem("signature",i),I.dispatch(Zt.endpoints.sendMessage.initiate({content:{type:"challenge",fromPeerId:g,challenge:t,signature:i}})))}else if(Ue.match(e)){const{challengeId:g}=e.payload;if(A.isUUID(g)){localStorage.setItem("challengeId",g);const{keyPair:t,rooms:i,commonState:o}=I.getState(),n=64===o.currentRoomUrl.length?i.findIndex(A=>A.url===o.currentRoomUrl):-1;n>-1?e.payload.username&&e.payload.credential&&(I.dispatch(oI({roomId:i[n].id,iceServers:[{urls:["turn:turn.p2party.com:3478?transport=udp","turn:turn.p2party.com:3478?transport=tcp","turns:turn.p2party.com:443?transport=tcp"],username:e.payload.username,credential:e.payload.credential}]})),A.isUUID(i[n].id)?I.dispatch(AI({roomId:i[n].id,connectingToPeers:!0})):A.isUUID(t.peerId)&&64===o.currentRoomUrl.length&&I.dispatch(Zt.endpoints.sendMessage.initiate({content:{type:"room",fromPeerId:t.peerId,roomUrl:o.currentRoomUrl}}))):A.isUUID(t.peerId)&&64===o.currentRoomUrl.length&&I.dispatch(Zt.endpoints.sendMessage.initiate({content:{type:"room",fromPeerId:t.peerId,roomUrl:o.currentRoomUrl}}))}}else be.match(e)&&(localStorage.setItem("peerId",""),localStorage.setItem("challengeId",""),localStorage.setItem("publicKey",""),localStorage.setItem("secretKey",""),localStorage.setItem("challenge",""),localStorage.setItem("signature",""))}});const Ai=function(A){const I=function(A){const{thunk:e=!0,immutableCheck:I=!0,serializableCheck:g=!0,actionCreatorCheck:t=!0}=A??{};let i=new lA;return e&&("boolean"==typeof e?i.push(BA):i.push(cA(e.extraArgument))),i},{reducer:g,middleware:t,devTools:a=!0,preloadedState:r,enhancers:s}=A||{};let B,c;if("function"==typeof g)B=g;else{if(!i(g))throw new Error(Se(1));B=n(g)}c="function"==typeof t?t(I):I();let Q=C;a&&(Q=QA({trace:!1,..."object"==typeof a&&a}));const E=function(...A){return I=>(g,t)=>{const i=I(g,t);let o=()=>{throw new Error(e(15))};const n={getState:i.getState,dispatch:(A,...e)=>o(A,...e)},a=A.map(A=>A(n));return o=C(...a)(i.dispatch),{...i,dispatch:o}}}(...c),l=yA(E);return o(B,r,Q(..."function"==typeof s?s(l):l()))}({reducer:{commonState:Ke,keyPair:Pe,rooms:cI,signalingServer:wI,[Zt.reducerPath]:Zt.reducer,[xt.reducerPath]:xt.reducer},middleware:A=>A().concat([Zt.middleware,xt.middleware,_t.middleware,$t.middleware])}),ei=Ai.dispatch;var Ii=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"];const gi=A=>A.normalize("NFKD"),ti=async A=>{try{return await(async A=>{const e=gi(A).split(" ");if(e.length%3!=0)throw new Error("Number of words in mnemonic must be multiple of three.");const I=e.map(A=>{const e=Ii.indexOf(A);if(-1===e)throw new Error("Could not find word in wordlist.");return e.toString(2).padStart(11,"0")}).join(""),g=32*Math.floor(I.length/33),t=I.slice(0,g),i=I.slice(g),o=t.match(/(.{1,8})/g).map(A=>parseInt(A,2));if(o.length<16)throw new Error("Entropy length too small (less than 128 bits).");if(o.length>64)throw new Error("Entropy length too large (more than 512 bits).");const n=o.length/4,C=Uint8Array.from(o),a=await window.crypto.subtle.digest("SHA-512",C);if(new Uint8Array(a).reduce((A,e)=>A+e.toString(2).padStart(8,"0"),"").slice(0,n)!==i)throw new Error("Invalid checksum.");return!0})(A)}catch{return!1}},ii={store:Ai,commonStateSelector:A=>A.commonState,signalingServerSelector:A=>A.signalingServer,roomSelector:A=>A.rooms,keyPairSelector:A=>A.keyPair,connect:(e,I="wss://signaling.p2party.com/ws",g={iceServers:[{urls:["stun:stun.p2party.com:3478"]}],iceTransportPolicy:"all"})=>{if(64!==e.length)throw new Error("Invalid room url length");const{keyPair:t,signalingServer:i,rooms:o,commonState:n}=Ai.getState(),C=o.findIndex(A=>A.url===e);-1===C&&ei($e({url:e,id:"",rtcConfig:g})),n.currentRoomUrl!==e&&ei(Me(e)),i.isConnected&&A.isUUID(t.peerId)?ei(-1===C?Zt.endpoints.sendMessage.initiate({content:{type:"room",fromPeerId:t.peerId,roomUrl:e}}):AI({roomId:o[C].id,connectingToPeers:!0})):ei(Zt.endpoints.connectWebSocket.initiate(I))},connectToSignalingServer:(A,e="wss://signaling.p2party.com/ws")=>{if(64!==A.length)throw new Error("Invalid room url length");const{signalingServer:I,rooms:g,commonState:t}=Ai.getState();-1===g.findIndex(e=>e.url===A)&&ei($e({url:A,id:""})),t.currentRoomUrl!==A&&ei(Me(A)),I.serverUrl===e&&(I.isConnected||I.isEstablishingConnection)||ei(Zt.endpoints.connectWebSocket.initiate(e))},disconnectFromSignalingServer:()=>{ei(Zt.endpoints.disconnectWebSocket.initiate())},disconnectFromRoom:(A,e=!1)=>{ei(xt.endpoints.disconnectFromRoom.initiate({roomId:A,deleteMessages:e}))},disconnectFromAllRooms:(A=!1,e=[])=>{ei(xt.endpoints.disconnectFromAllRooms.initiate({deleteMessages:A,exceptionRoomIds:e}))},disconnectFromPeer:A=>{ei(xt.endpoints.disconnectFromPeer.initiate({peerId:A}))},allowConnectionRelay:(A,e=!0)=>{const{rooms:I}=Ai.getState(),g=I.findIndex(e=>e.id===A);g>-1&&ei(II({roomId:I[g].id,canBeConnectionRelay:e}))},onlyAllowConnectionsFromAddressBook:async(A,e)=>{if(64===A.length){const{rooms:I}=Ai.getState(),g=I.findIndex(e=>e.url===A);if(g>-1&&!I[g].onlyConnectWithKnownAddresses&&e&&I[g].peers.length>0){const A=I[g].peers.length;for(let e=0;e<A;e++){await hg(I[g].peers[e].peerId,I[g].peers[e].peerPublicKey)||ei(xt.endpoints.disconnectFromPeer.initiate({peerId:I[g].peers[e].peerId,alsoDeleteData:!1}))}}ei($e({url:g>-1?I[g].url:A,id:g>-1?I[g].id:"",onlyConnectWithKnownPeers:e}))}},addPeerToAddressBook:(A,e,I)=>dg("setDBAddressBookEntry",A,e,I),getPeerAddressBookEntry:hg,getAllPeersInAddressBook:()=>dg("getAllDBAddressBookEntries"),getAllPeersInBlacklist:()=>dg("getAllDBBlacklisted"),deletePeerFromAddressBook:async(e,I,g)=>{const t=await((A,e,I)=>dg("deleteDBAddressBookEntry",A,e,I))(e,I,g);A.isUUID(t)&&ei(xt.endpoints.disconnectFromPeer.initiate({peerId:t,alsoDeleteData:!1}))},blacklistPeer:async(A,e)=>{await((A,e)=>dg("setDBPeerInBlacklist",A,e))(A,e),ei(xt.endpoints.disconnectFromPeer.initiate({peerId:A,alsoDeleteData:!0}))},getPeerIsBlacklisted:fg,removePeerFromBlacklist:(A,e)=>dg("deleteDBPeerFromBlacklist",A,e),getAllExistingRooms:ug,openChannel:async(A,e,I)=>{ei(xt.endpoints.openChannel.initiate({roomId:A,channel:e,withPeers:I}))},sendMessage:(A,e,I,g=.9,t=3,i=st,o=1)=>{ei(xt.endpoints.sendMessage.initiate({data:A,label:e,roomId:I,minChunks:t,chunkSize:i,percentageFilledChunk:g,metadataSchemaVersion:o}))},readMessage:async(A,e)=>{if(!A&&!e)return{message:"No message",percentage:0,size:0,filename:"",mimeType:"text/plain",extension:"txt",category:Ug.Text};try{const{keyPair:I,rooms:g}=Ai.getState(),t=g.length;let i=-1,o=-1;for(let I=0;I<t;I++)if(o=g[I].messages.findLastIndex(I=>I.merkleRootHex===A||I.sha512Hex===e),o>-1){i=I;break}if(i>-1&&o>-1){const A=g[i].messages[o].messageType,e=Pg(A),t=bg(A),n=vg(A),C=g[i].messages[o].fromPeerId===I.peerId?100:Math.floor(g[i].messages[o].savedSize/g[i].messages[o].totalSize*100),a=100===C?await kg(g[i].messages[o].merkleRootHex,g[i].messages[o].sha512Hex):[],r=a.length>0?a.sort((A,e)=>A.chunkIndex-e.chunkIndex).map(A=>A.data):[(new Uint8Array).buffer],s=new Blob(r,{type:e});return A===Gg.Text?{message:await s.text(),percentage:C,size:g[i].messages[o].totalSize,filename:"",mimeType:e,extension:t,category:n}:s?{message:s,percentage:C,size:g[i].messages[o].totalSize,filename:g[i].messages[o].filename,mimeType:e,extension:t,category:n}:{message:"Invalid message",percentage:0,size:g[i].messages[o].totalSize,filename:g[i].messages[o].filename,mimeType:e,extension:t,category:n}}{const g=await yg(A,e);if(g){const A=g.messageType,e=Pg(A),t=bg(A),i=vg(A),o=Math.floor(g.savedSize/g.totalSize*100);if(100===o&&g.fromPeerId!==I.peerId){const A=await yt(g.channelLabel,g.merkleRoot,g.hash);await Ai.dispatch(xt.endpoints.disconnectFromChannelLabel.initiate({label:A,alsoDeleteData:!1}))}const n=100===o?await kg(g.merkleRoot):[],C=n.length>0?n.sort((A,e)=>A.chunkIndex-e.chunkIndex).map(A=>A.data):[(new Uint8Array).buffer],a=new Blob(C,{type:e});return A===Gg.Text?{message:await a.text(),percentage:o,size:g.totalSize,filename:"",mimeType:e,extension:t,category:i}:a?{message:a,percentage:o,size:g.totalSize,filename:g.filename,mimeType:e,extension:t,category:i}:{message:"Invalid message",percentage:0,size:g.totalSize,filename:g.filename,mimeType:e,extension:t,category:i}}return{message:"Irretrievable message",percentage:0,size:0,filename:"",mimeType:"text/plain",extension:"",category:Ug.Text}}}catch(A){return console.error(A),{message:"Irretrievable message",percentage:0,size:0,filename:"",mimeType:"text/plain",extension:"",category:Ug.Text}}},cancelMessage:async(A,e,I)=>{if(!e&&!I)throw new Error("Need to provide either merkle root or hash");if(e&&"string"==typeof e&&e.length!==2*ve)throw new Error("Invalid Merkle root length");if(e&&"string"!=typeof e&&e.length!==ve)throw new Error("Invalid Merkle root length");if(I&&"string"==typeof I&&I.length!==2*ve)throw new Error("Invalid hash length");if(I&&"string"!=typeof I&&I.length!==ve)throw new Error("Invalid hash length");const g=new CustomEvent(ct);window.dispatchEvent(g);const t=e&&"string"==typeof e?e:e&&"string"!=typeof e?Lg(e):"",i=I&&"string"==typeof I?I:I&&"string"!=typeof I?Lg(I):"";let o=-1,n=-1;const{rooms:C}=Ai.getState(),a=C.length;for(let A=0;A<a;A++)if(n=e?C[A].messages.findIndex(A=>A.merkleRootHex===t):I?C[A].messages.findIndex(A=>A.sha512Hex===i):-1,n>-1){o=A;break}if(o>-1&&n>-1&&C[o].messages[n].merkleRootHex.length===2*ve){const e=await yt(A,C[o].messages[n].merkleRootHex,C[o].messages[n].sha512Hex);await Ai.dispatch(xt.endpoints.disconnectFromChannelLabel.initiate({label:e,alsoDeleteData:!0})),Ai.dispatch(sI({merkleRootHex:C[o].messages[n].merkleRootHex}))}},deleteMessage:async(A,e)=>{if(!A&&!e)throw new Error("Need to provide either merkle root or hash");if(A&&"string"==typeof A&&A.length!==2*ve)throw new Error("Invalid Merkle root length");if(A&&"string"!=typeof A&&A.length!==ve)throw new Error("Invalid Merkle root length");if(e&&"string"==typeof e&&e.length!==2*ve)throw new Error("Invalid hash length");if(e&&"string"!=typeof e&&e.length!==ve)throw new Error("Invalid hash length");const I=new CustomEvent(ct);window.dispatchEvent(I);const g=A&&"string"==typeof A?A:A&&"string"!=typeof A?Lg(A):"",t=e&&"string"==typeof e?e:e&&"string"!=typeof e?Lg(e):"";let i=-1,o=-1;const{rooms:n}=Ai.getState(),C=n.length;for(let I=0;I<C;I++)if(o=A?n[I].messages.findIndex(A=>A.merkleRootHex===g):e?n[I].messages.findIndex(A=>A.sha512Hex===t):-1,o>-1){i=I;break}if(i>-1&&o>-1&&n[i].messages[o].merkleRootHex.length===2*ve){const A=await yt(n[i].messages[o].channelLabel,n[i].messages[o].merkleRootHex,n[i].messages[o].sha512Hex);await Ai.dispatch(xt.endpoints.disconnectFromChannelLabel.initiate({label:A,alsoDeleteData:!0})),Ai.dispatch(sI({merkleRootHex:n[i].messages[o].merkleRootHex}))}},purgeIdentity:()=>{ei(be());const{rooms:A}=Ai.getState(),e=A.length;for(let I=0;I<e;I++)ei(xt.endpoints.disconnectFromRoom.initiate({roomId:A[I].id}));ei(Zt.endpoints.disconnectWebSocket.initiate())},purgeRoom:A=>{const{rooms:e}=Ai.getState(),I=e.findIndex(e=>e.url===A);I>-1&&ei(BI(e[I].id)),ei(Zt.endpoints.disconnectWebSocket.initiate())},purge:async()=>{ei(be()),ei(Zt.endpoints.disconnectWebSocket.initiate());const A=await ug(),e=A.length;for(let I=0;I<e;I++)ei(BI(A[I].roomId))},generateRandomRoomUrl:async()=>{const A=await nt(256),e=(new TextEncoder).encode(A),I=await window.crypto.subtle.digest("SHA-512",e),g=await window.crypto.subtle.digest("SHA-256",I),t=new Uint8Array(g);return Lg(t)},encrypt:Et,decrypt:lt,sign:ht,verify:ft,newKeyPair:dt,generateMnemonic:async(A=128)=>{if(!Ii)throw new Error("English wordlist could not be loaded.");if(A%32!=0)throw new TypeError("Mnemonic strength needs to be multiple of 32.");if(![128,160,192,224,256,288,320,352,384,416,448,480,512].includes(A))throw new Error("Wrong mnemonic strength");const e=window.crypto.getRandomValues(new Uint8Array(A/8)),I=e.reduce((A,e)=>A+e.toString(2).padStart(8,"0"),""),g=A/32,t=Uint8Array.from(e),i=await window.crypto.subtle.digest("SHA-512",t);return(I+new Uint8Array(i).reduce((A,e)=>A+e.toString(2).padStart(8,"0"),"").slice(0,g)).match(/(.{1,11})/g).map(A=>{const e=parseInt(A,2);return Ii[e]}).join(" ")},keyPairFromMnemonic:async(A,e)=>{if(!await ti(A))throw new Error("Invalid mnemonic.");const I=new Uint8Array(Xe),g=new TextEncoder;g.encodeInto("password12345678",I);const t=new Uint8Array(Xe);if(e){const A=g.encode(e),I=await window.crypto.subtle.digest("SHA-512",A);t.set(new Uint8Array(I).slice(ve-Xe,ve))}else t.set(I);const i=await(async(A,e,I)=>{const g=gi(A),t=(new TextEncoder).encode(g).buffer,i=new Int8Array(t),o=i.length;e=e??window.crypto.getRandomValues(new Uint8Array(Xe));const n=I?.wasmMemory??et(o),C=(I=I??await tt({wasmMemory:n}))._malloc(Le),a=new Uint8Array(n.buffer,C,Le),r=window.crypto.getRandomValues(new Uint8Array(Le));a.set(r);const s=I._malloc(o*Uint8Array.BYTES_PER_ELEMENT),B=new Int8Array(n.buffer,s,o*Uint8Array.BYTES_PER_ELEMENT);B.set(i);const c=I._malloc(Xe),Q=new Uint8Array(n.buffer,c,Xe);Q.set(e);const E=I._argon2(o,a.byteOffset,B.byteOffset,Q.byteOffset),l=Uint8Array.from(a);if(I._free(C),I._free(s),I._free(c),0===E)return l;throw new Error("Could not generate argon2id for mnemonic.")})(A,t);return await(async A=>{const e=zg(),I=await tt({wasmMemory:e}),g=I._malloc(Re),t=new Uint8Array(e.buffer,g,Re),i=I._malloc(xe),o=new Uint8Array(e.buffer,i,xe),n=I._malloc(Le),C=new Uint8Array(e.buffer,n,Le);C.set(A);const a=I._keypair_from_seed(t.byteOffset,o.byteOffset,C.byteOffset);if(I._free(n),0===a){const A={publicKey:Uint8Array.from(t),secretKey:Uint8Array.from(o)};return I._free(g),I._free(i),A}throw I._free(g),I._free(i),new Error("An unexpected error occured.")})(i)},MIN_CHUNKS:3,MIN_CHUNK_SIZE:rt+1,MAX_CHUNK_SIZE:st,MIN_PERCENTAGE_FILLED_CHUNK:.1,MAX_PERCENTAGE_FILLED_CHUNK:1,ROOM_URL_LENGTH:64,MessageType:Gg,MessageCategory:Ug};"undefined"!=typeof window&&(window.p2party=ii),exports.default=ii,exports.p2party=ii;
|
|
1
|
+
"use strict";var A=require("class-validator");function e(A){return`Minified Redux error #${A}; visit https://redux.js.org/Errors?code=${A} for the full message or use the non-minified dev environment for full errors. `}var I=(()=>"function"==typeof Symbol&&Symbol.observable||"@@observable")(),g=()=>Math.random().toString(36).substring(7).split("").join("."),t={INIT:`@@redux/INIT${g()}`,REPLACE:`@@redux/REPLACE${g()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${g()}`};function i(A){if("object"!=typeof A||null===A)return!1;let e=A;for(;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(A)===e||null===Object.getPrototypeOf(A)}function o(A,g,n){if("function"!=typeof A)throw new Error(e(2));if("function"==typeof g&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw new Error(e(0));if("function"==typeof g&&void 0===n&&(n=g,g=void 0),void 0!==n){if("function"!=typeof n)throw new Error(e(1));return n(o)(A,g)}let C=A,a=g,r=new Map,s=r,B=0,c=!1;function Q(){s===r&&(s=new Map,r.forEach((A,e)=>{s.set(e,A)}))}function E(){if(c)throw new Error(e(3));return a}function l(A){if("function"!=typeof A)throw new Error(e(4));if(c)throw new Error(e(5));let I=!0;Q();const g=B++;return s.set(g,A),function(){if(I){if(c)throw new Error(e(6));I=!1,Q(),s.delete(g),r=null}}}function w(A){if(!i(A))throw new Error(e(7));if(void 0===A.type)throw new Error(e(8));if("string"!=typeof A.type)throw new Error(e(17));if(c)throw new Error(e(9));try{c=!0,a=C(a,A)}finally{c=!1}return(r=s).forEach(A=>{A()}),A}w({type:t.INIT});return{dispatch:w,subscribe:l,getState:E,replaceReducer:function(A){if("function"!=typeof A)throw new Error(e(10));C=A,w({type:t.REPLACE})},[I]:function(){const A=l;return{subscribe(I){if("object"!=typeof I||null===I)throw new Error(e(11));function g(){const A=I;A.next&&A.next(E())}g();return{unsubscribe:A(g)}},[I](){return this}}}}}function n(A){const I=Object.keys(A),g={};for(let e=0;e<I.length;e++){const t=I[e];"function"==typeof A[t]&&(g[t]=A[t])}const i=Object.keys(g);let o;try{!function(A){Object.keys(A).forEach(I=>{const g=A[I];if(void 0===g(void 0,{type:t.INIT}))throw new Error(e(12));if(void 0===g(void 0,{type:t.PROBE_UNKNOWN_ACTION()}))throw new Error(e(13))})}(g)}catch(A){o=A}return function(A={},I){if(o)throw o;let t=!1;const n={};for(let o=0;o<i.length;o++){const C=i[o],a=g[C],r=A[C],s=a(r,I);if(void 0===s)throw I&&I.type,new Error(e(14));n[C]=s,t=t||s!==r}return t=t||i.length!==Object.keys(A).length,t?n:A}}function C(...A){return 0===A.length?A=>A:1===A.length?A[0]:A.reduce((A,e)=>(...I)=>A(e(...I)))}function a(A){return i(A)&&"type"in A&&"string"==typeof A.type}var r=Symbol.for("immer-nothing"),s=Symbol.for("immer-draftable"),B=Symbol.for("immer-state");function c(A,...e){throw new Error(`[Immer] minified error nr: ${A}. Full error at: https://bit.ly/3cXEKWf`)}var Q=Object.getPrototypeOf;function E(A){return!!A&&!!A[B]}function l(A){return!!A&&(d(A)||Array.isArray(A)||!!A[s]||!!A.constructor?.[s]||m(A)||p(A))}var w=Object.prototype.constructor.toString();function d(A){if(!A||"object"!=typeof A)return!1;const e=Q(A);if(null===e)return!0;const I=Object.hasOwnProperty.call(e,"constructor")&&e.constructor;return I===Object||"function"==typeof I&&Function.toString.call(I)===w}function h(A,e){0===f(A)?Reflect.ownKeys(A).forEach(I=>{e(I,A[I],A)}):A.forEach((I,g)=>e(g,I,A))}function f(A){const e=A[B];return e?e.type_:Array.isArray(A)?1:m(A)?2:p(A)?3:0}function u(A,e){return 2===f(A)?A.has(e):Object.prototype.hasOwnProperty.call(A,e)}function y(A,e){return 2===f(A)?A.get(e):A[e]}function D(A,e,I){const g=f(A);2===g?A.set(e,I):3===g?A.add(I):A[e]=I}function m(A){return A instanceof Map}function p(A){return A instanceof Set}function S(A){return A.copy_||A.base_}function k(A,e){if(m(A))return new Map(A);if(p(A))return new Set(A);if(Array.isArray(A))return Array.prototype.slice.call(A);const I=d(A);if(!0===e||"class_only"===e&&!I){const e=Object.getOwnPropertyDescriptors(A);delete e[B];let I=Reflect.ownKeys(e);for(let g=0;g<I.length;g++){const t=I[g],i=e[t];!1===i.writable&&(i.writable=!0,i.configurable=!0),(i.get||i.set)&&(e[t]={configurable:!0,writable:!0,enumerable:i.enumerable,value:A[t]})}return Object.create(Q(A),e)}{const e=Q(A);if(null!==e&&I)return{...A};const g=Object.create(e);return Object.assign(g,A)}}function M(A,e=!1){return K(A)||E(A)||!l(A)||(f(A)>1&&(A.set=A.add=A.clear=A.delete=F),Object.freeze(A),e&&Object.entries(A).forEach(([A,e])=>M(e,!0))),A}function F(){c(2)}function K(A){return Object.isFrozen(A)}var H,N={};function Y(A){const e=N[A];return e||c(0),e}function U(){return H}function G(A,e){e&&(Y("Patches"),A.patches_=[],A.inversePatches_=[],A.patchListener_=e)}function v(A){b(A),A.drafts_.forEach(P),A.drafts_=null}function b(A){A===H&&(H=A.parent_)}function L(A){return H={drafts_:[],parent_:H,immer_:A,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function P(A){const e=A[B];0===e.type_||1===e.type_?e.revoke_():e.revoked_=!0}function J(A,e){e.unfinalizedDrafts_=e.drafts_.length;const I=e.drafts_[0];return void 0!==A&&A!==I?(I[B].modified_&&(v(e),c(4)),l(A)&&(A=R(e,A),e.parent_||q(e,A)),e.patches_&&Y("Patches").generateReplacementPatches_(I[B].base_,A,e.patches_,e.inversePatches_)):A=R(e,I,[]),v(e),e.patches_&&e.patchListener_(e.patches_,e.inversePatches_),A!==r?A:void 0}function R(A,e,I){if(K(e))return e;const g=e[B];if(!g)return h(e,(t,i)=>x(A,g,e,t,i,I)),e;if(g.scope_!==A)return e;if(!g.modified_)return q(A,g.base_,!0),g.base_;if(!g.finalized_){g.finalized_=!0,g.scope_.unfinalizedDrafts_--;const e=g.copy_;let t=e,i=!1;3===g.type_&&(t=new Set(e),e.clear(),i=!0),h(t,(t,o)=>x(A,g,e,t,o,I,i)),q(A,e,!1),I&&A.patches_&&Y("Patches").generatePatches_(g,I,A.patches_,A.inversePatches_)}return g.copy_}function x(A,e,I,g,t,i,o){if(E(t)){const o=R(A,t,i&&e&&3!==e.type_&&!u(e.assigned_,g)?i.concat(g):void 0);if(D(I,g,o),!E(o))return;A.canAutoFreeze_=!1}else o&&I.add(t);if(l(t)&&!K(t)){if(!A.immer_.autoFreeze_&&A.unfinalizedDrafts_<1)return;R(A,t),e&&e.scope_.parent_||"symbol"==typeof g||!Object.prototype.propertyIsEnumerable.call(I,g)||q(A,t)}}function q(A,e,I=!1){!A.parent_&&A.immer_.autoFreeze_&&A.canAutoFreeze_&&M(e,I)}var O={get(A,e){if(e===B)return A;const I=S(A);if(!u(I,e))return function(A,e,I){const g=z(e,I);return g?"value"in g?g.value:g.get?.call(A.draft_):void 0}(A,I,e);const g=I[e];return A.finalized_||!l(g)?g:g===T(A.base_,e)?(X(A),A.copy_[e]=W(g,A)):g},has:(A,e)=>e in S(A),ownKeys:A=>Reflect.ownKeys(S(A)),set(A,e,I){const g=z(S(A),e);if(g?.set)return g.set.call(A.draft_,I),!0;if(!A.modified_){const g=T(S(A),e),o=g?.[B];if(o&&o.base_===I)return A.copy_[e]=I,A.assigned_[e]=!1,!0;if(((t=I)===(i=g)?0!==t||1/t==1/i:t!=t&&i!=i)&&(void 0!==I||u(A.base_,e)))return!0;X(A),V(A)}var t,i;return A.copy_[e]===I&&(void 0!==I||e in A.copy_)||Number.isNaN(I)&&Number.isNaN(A.copy_[e])||(A.copy_[e]=I,A.assigned_[e]=!0),!0},deleteProperty:(A,e)=>(void 0!==T(A.base_,e)||e in A.base_?(A.assigned_[e]=!1,X(A),V(A)):delete A.assigned_[e],A.copy_&&delete A.copy_[e],!0),getOwnPropertyDescriptor(A,e){const I=S(A),g=Reflect.getOwnPropertyDescriptor(I,e);return g?{writable:!0,configurable:1!==A.type_||"length"!==e,enumerable:g.enumerable,value:I[e]}:g},defineProperty(){c(11)},getPrototypeOf:A=>Q(A.base_),setPrototypeOf(){c(12)}},j={};function T(A,e){const I=A[B];return(I?S(I):A)[e]}function z(A,e){if(!(e in A))return;let I=Q(A);for(;I;){const A=Object.getOwnPropertyDescriptor(I,e);if(A)return A;I=Q(I)}}function V(A){A.modified_||(A.modified_=!0,A.parent_&&V(A.parent_))}function X(A){A.copy_||(A.copy_=k(A.base_,A.scope_.immer_.useStrictShallowCopy_))}h(O,(A,e)=>{j[A]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}}),j.deleteProperty=function(A,e){return j.set.call(this,A,e,void 0)},j.set=function(A,e,I){return O.set.call(this,A[0],e,I,A[0])};function W(A,e){const I=m(A)?Y("MapSet").proxyMap_(A,e):p(A)?Y("MapSet").proxySet_(A,e):function(A,e){const I=Array.isArray(A),g={type_:I?1:0,scope_:e?e.scope_:U(),modified_:!1,finalized_:!1,assigned_:{},parent_:e,base_:A,draft_:null,copy_:null,revoke_:null,isManual_:!1};let t=g,i=O;I&&(t=[g],i=j);const{revoke:o,proxy:n}=Proxy.revocable(t,i);return g.draft_=n,g.revoke_=o,n}(A,e);return(e?e.scope_:U()).drafts_.push(I),I}function Z(A){if(!l(A)||K(A))return A;const e=A[B];let I;if(e){if(!e.modified_)return e.base_;e.finalized_=!0,I=k(A,e.scope_.immer_.useStrictShallowCopy_)}else I=k(A,!0);return h(I,(A,e)=>{D(I,A,Z(e))}),e&&(e.finalized_=!1),I}function _(){const A="replace",e="add",I="remove";function g(A){if(!l(A))return A;if(Array.isArray(A))return A.map(g);if(m(A))return new Map(Array.from(A.entries()).map(([A,e])=>[A,g(e)]));if(p(A))return new Set(Array.from(A).map(g));const e=Object.create(Q(A));for(const I in A)e[I]=g(A[I]);return u(A,s)&&(e[s]=A[s]),e}function t(A){return E(A)?g(A):A}var i,o;o={applyPatches_:function(t,i){return i.forEach(i=>{const{path:o,op:n}=i;let C=t;for(let A=0;A<o.length-1;A++){const e=f(C);let I=o[A];"string"!=typeof I&&"number"!=typeof I&&(I=""+I),0!==e&&1!==e||"__proto__"!==I&&"constructor"!==I||c(19),"function"==typeof C&&"prototype"===I&&c(19),C=y(C,I),"object"!=typeof C&&c(18,o.join("/"))}const a=f(C),r=g(i.value),s=o[o.length-1];switch(n){case A:switch(a){case 2:return C.set(s,r);case 3:c(16);default:return C[s]=r}case e:switch(a){case 1:return"-"===s?C.push(r):C.splice(s,0,r);case 2:return C.set(s,r);case 3:return C.add(r);default:return C[s]=r}case I:switch(a){case 1:return C.splice(s,1);case 2:return C.delete(s);case 3:return C.delete(i.value);default:return delete C[s]}default:c(17)}}),t},generatePatches_:function(g,i,o,n){switch(g.type_){case 0:case 2:return function(g,i,o,n){const{base_:C,copy_:a}=g;h(g.assigned_,(g,r)=>{const s=y(C,g),B=y(a,g),c=r?u(C,g)?A:e:I;if(s===B&&c===A)return;const Q=i.concat(g);o.push(c===I?{op:c,path:Q}:{op:c,path:Q,value:B}),n.push(c===e?{op:I,path:Q}:c===I?{op:e,path:Q,value:t(s)}:{op:A,path:Q,value:t(s)})})}(g,i,o,n);case 1:return function(g,i,o,n){let{base_:C,assigned_:a}=g,r=g.copy_;r.length<C.length&&([C,r]=[r,C],[o,n]=[n,o]);for(let e=0;e<C.length;e++)if(a[e]&&r[e]!==C[e]){const I=i.concat([e]);o.push({op:A,path:I,value:t(r[e])}),n.push({op:A,path:I,value:t(C[e])})}for(let A=C.length;A<r.length;A++){const I=i.concat([A]);o.push({op:e,path:I,value:t(r[A])})}for(let A=r.length-1;C.length<=A;--A){const e=i.concat([A]);n.push({op:I,path:e})}}(g,i,o,n);case 3:return function(A,g,t,i){let{base_:o,copy_:n}=A,C=0;o.forEach(A=>{if(!n.has(A)){const o=g.concat([C]);t.push({op:I,path:o,value:A}),i.unshift({op:e,path:o,value:A})}C++}),C=0,n.forEach(A=>{if(!o.has(A)){const o=g.concat([C]);t.push({op:e,path:o,value:A}),i.unshift({op:I,path:o,value:A})}C++})}(g,i,o,n)}},generateReplacementPatches_:function(e,I,g,t){g.push({op:A,path:[],value:I===r?void 0:I}),t.push({op:A,path:[],value:e})}},N[i="Patches"]||(N[i]=o)}var $=new class{constructor(A){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(A,e,I)=>{if("function"==typeof A&&"function"!=typeof e){const I=e;e=A;const g=this;return function(A=I,...t){return g.produce(A,A=>e.call(this,A,...t))}}let g;if("function"!=typeof e&&c(6),void 0!==I&&"function"!=typeof I&&c(7),l(A)){const t=L(this),i=W(A,void 0);let o=!0;try{g=e(i),o=!1}finally{o?v(t):b(t)}return G(t,I),J(g,t)}if(!A||"object"!=typeof A){if(g=e(A),void 0===g&&(g=A),g===r&&(g=void 0),this.autoFreeze_&&M(g,!0),I){const e=[],t=[];Y("Patches").generateReplacementPatches_(A,g,e,t),I(e,t)}return g}c(1)},this.produceWithPatches=(A,e)=>{if("function"==typeof A)return(e,...I)=>this.produceWithPatches(e,e=>A(e,...I));let I,g;return[this.produce(A,e,(A,e)=>{I=A,g=e}),I,g]},"boolean"==typeof A?.autoFreeze&&this.setAutoFreeze(A.autoFreeze),"boolean"==typeof A?.useStrictShallowCopy&&this.setUseStrictShallowCopy(A.useStrictShallowCopy)}createDraft(A){l(A)||c(8),E(A)&&(A=function(A){E(A)||c(10);return Z(A)}(A));const e=L(this),I=W(A,void 0);return I[B].isManual_=!0,b(e),I}finishDraft(A,e){const I=A&&A[B];I&&I.isManual_||c(9);const{scope_:g}=I;return G(g,e),J(void 0,g)}setAutoFreeze(A){this.autoFreeze_=A}setUseStrictShallowCopy(A){this.useStrictShallowCopy_=A}applyPatches(A,e){let I;for(I=e.length-1;I>=0;I--){const g=e[I];if(0===g.path.length&&"replace"===g.op){A=g.value;break}}I>-1&&(e=e.slice(I+1));const g=Y("Patches").applyPatches_;return E(A)?g(A,e):this.produce(A,A=>g(A,e))}},AA=$.produce,eA=$.produceWithPatches.bind($);$.setAutoFreeze.bind($),$.setUseStrictShallowCopy.bind($);var IA=$.applyPatches.bind($);$.createDraft.bind($),$.finishDraft.bind($);var gA=A=>Array.isArray(A)?A:[A];function tA(A){const e=Array.isArray(A[0])?A[0]:A;return function(A,e="expected all items to be functions, instead received the following types: "){if(!A.every(A=>"function"==typeof A)){const I=A.map(A=>"function"==typeof A?`function ${A.name||"unnamed"}()`:typeof A).join(", ");throw new TypeError(`${e}[${I}]`)}}(e,"createSelector expects all input-selectors to be functions, but received the following types: "),e}var iA="undefined"!=typeof WeakRef?WeakRef:class{constructor(A){this.value=A}deref(){return this.value}};function oA(){return{s:0,v:void 0,o:null,p:null}}function nA(A,e={}){let I={s:0,v:void 0,o:null,p:null};const{resultEqualityCheck:g}=e;let t,i=0;function o(){let e=I;const{length:o}=arguments;for(let A=0,I=o;A<I;A++){const I=arguments[A];if("function"==typeof I||"object"==typeof I&&null!==I){let A=e.o;null===A&&(e.o=A=new WeakMap);const g=A.get(I);void 0===g?(e=oA(),A.set(I,e)):e=g}else{let A=e.p;null===A&&(e.p=A=new Map);const g=A.get(I);void 0===g?(e=oA(),A.set(I,e)):e=g}}const n=e;let C;if(1===e.s)C=e.v;else if(C=A.apply(null,arguments),i++,g){const A=t?.deref?.()??t;null!=A&&g(A,C)&&(C=A,0!==i&&i--);t="object"==typeof C&&null!==C||"function"==typeof C?new iA(C):C}return n.s=1,n.v=C,C}return o.clearCache=()=>{I={s:0,v:void 0,o:null,p:null},o.resetResultsCount()},o.resultsCount=()=>i,o.resetResultsCount=()=>{i=0},o}function CA(A,...e){const I="function"==typeof A?{memoize:A,memoizeOptions:e}:A,g=(...A)=>{let e,g=0,t=0,i={},o=A.pop();"object"==typeof o&&(i=o,o=A.pop()),function(A,e="expected a function, instead received "+typeof A){if("function"!=typeof A)throw new TypeError(e)}(o,`createSelector expects an output function after the inputs, but received: [${typeof o}]`);const n={...I,...i},{memoize:C,memoizeOptions:a=[],argsMemoize:r=nA,argsMemoizeOptions:s=[]}=n,B=gA(a),c=gA(s),Q=tA(A),E=C(function(){return g++,o.apply(null,arguments)},...B),l=r(function(){t++;const A=function(A,e){const I=[],{length:g}=A;for(let t=0;t<g;t++)I.push(A[t].apply(null,e));return I}(Q,arguments);return e=E.apply(null,A),e},...c);return Object.assign(l,{resultFunc:o,memoizedResultFunc:E,dependencies:Q,dependencyRecomputations:()=>t,resetDependencyRecomputations:()=>{t=0},lastResult:()=>e,recomputations:()=>g,resetRecomputations:()=>{g=0},memoize:C,argsMemoize:r})};return Object.assign(g,{withTypes:()=>g}),g}var aA=CA(nA),rA=Object.assign((A,e=aA)=>{!function(A,e="expected an object, instead received "+typeof A){if("object"!=typeof A)throw new TypeError(e)}(A,"createStructuredSelector expects first argument to be an object where each property is a selector, instead received a "+typeof A);const I=Object.keys(A);return e(I.map(e=>A[e]),(...A)=>A.reduce((A,e,g)=>(A[I[g]]=e,A),{}))},{withTypes:()=>rA});function sA(A){return({dispatch:e,getState:I})=>g=>t=>"function"==typeof t?t(e,I,A):g(t)}var BA=sA(),cA=sA,QA="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!==arguments.length)return"object"==typeof arguments[0]?C:C.apply(null,arguments)};function EA(A,e){function I(...I){if(e){let g=e(...I);if(!g)throw new Error(Se(0));return{type:A,payload:g.payload,..."meta"in g&&{meta:g.meta},..."error"in g&&{error:g.error}}}return{type:A,payload:I[0]}}return I.toString=()=>`${A}`,I.type=A,I.match=e=>a(e)&&e.type===A,I}var lA=class A extends Array{constructor(...e){super(...e),Object.setPrototypeOf(this,A.prototype)}static get[Symbol.species](){return A}concat(...A){return super.concat.apply(this,A)}prepend(...e){return 1===e.length&&Array.isArray(e[0])?new A(...e[0].concat(this)):new A(...e.concat(this))}};function wA(A){return l(A)?AA(A,()=>{}):A}function dA(A,e,I){return A.has(e)?A.get(e):A.set(e,I(e)).get(e)}var hA="RTK_autoBatch",fA=()=>A=>({payload:A,meta:{[hA]:!0}}),uA=A=>e=>{setTimeout(e,A)},yA=A=>function(e){const{autoBatch:I=!0}=e??{};let g=new lA(A);return I&&g.push(((A={type:"raf"})=>e=>(...I)=>{const g=e(...I);let t=!0,i=!1,o=!1;const n=new Set,C="tick"===A.type?queueMicrotask:"raf"===A.type?"undefined"!=typeof window&&window.requestAnimationFrame?window.requestAnimationFrame:uA(10):"callback"===A.type?A.queueNotification:uA(A.timeout),a=()=>{o=!1,i&&(i=!1,n.forEach(A=>A()))};return Object.assign({},g,{subscribe(A){const e=g.subscribe(()=>t&&A());return n.add(A),()=>{e(),n.delete(A)}},dispatch(A){try{return t=!A?.meta?.[hA],i=!t,i&&(o||(o=!0,C(a))),g.dispatch(A)}finally{t=!0}}})})("object"==typeof I?I:void 0)),g};function DA(A){const e={},I=[];let g;const t={addCase(A,I){const g="string"==typeof A?A:A.type;if(!g)throw new Error(Se(28));if(g in e)throw new Error(Se(29));return e[g]=I,t},addMatcher:(A,e)=>(I.push({matcher:A,reducer:e}),t),addDefaultCase:A=>(g=A,t)};return A(t),[e,I,g]}var mA=(A,e)=>{return(I=A)&&"function"==typeof I.match?A.match(e):A(e);var I};function pA(...A){return e=>A.some(A=>mA(A,e))}function SA(...A){return e=>A.every(A=>mA(A,e))}function kA(A,e){if(!A||!A.meta)return!1;const I="string"==typeof A.meta.requestId,g=e.indexOf(A.meta.requestStatus)>-1;return I&&g}function MA(A){return"function"==typeof A[0]&&"pending"in A[0]&&"fulfilled"in A[0]&&"rejected"in A[0]}function FA(...A){return 0===A.length?A=>kA(A,["pending"]):MA(A)?pA(...A.map(A=>A.pending)):FA()(A[0])}function KA(...A){return 0===A.length?A=>kA(A,["rejected"]):MA(A)?pA(...A.map(A=>A.rejected)):KA()(A[0])}function HA(...A){const e=A=>A&&A.meta&&A.meta.rejectedWithValue;return 0===A.length||MA(A)?SA(KA(...A),e):HA()(A[0])}function NA(...A){return 0===A.length?A=>kA(A,["fulfilled"]):MA(A)?pA(...A.map(A=>A.fulfilled)):NA()(A[0])}function YA(...A){return 0===A.length?A=>kA(A,["pending","fulfilled","rejected"]):MA(A)?pA(...A.flatMap(A=>[A.pending,A.rejected,A.fulfilled])):YA()(A[0])}var UA=(A=21)=>{let e="",I=A;for(;I--;)e+="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW"[64*Math.random()|0];return e},GA=["name","message","stack","code"],vA=class{constructor(A,e){this.payload=A,this.meta=e}_type},bA=class{constructor(A,e){this.payload=A,this.meta=e}_type},LA=A=>{if("object"==typeof A&&null!==A){const e={};for(const I of GA)"string"==typeof A[I]&&(e[I]=A[I]);return e}return{message:String(A)}},PA="External signal was aborted",JA=(()=>{function A(A,e,I){const g=EA(A+"/fulfilled",(A,e,I,g)=>({payload:A,meta:{...g||{},arg:I,requestId:e,requestStatus:"fulfilled"}})),t=EA(A+"/pending",(A,e,I)=>({payload:void 0,meta:{...I||{},arg:e,requestId:A,requestStatus:"pending"}})),i=EA(A+"/rejected",(A,e,g,t,i)=>({payload:t,error:(I&&I.serializeError||LA)(A||"Rejected"),meta:{...i||{},arg:g,requestId:e,rejectedWithValue:!!t,requestStatus:"rejected",aborted:"AbortError"===A?.name,condition:"ConditionError"===A?.name}}));return Object.assign(function(A,{signal:o}={}){return(n,C,a)=>{const r=I?.idGenerator?I.idGenerator(A):UA(),s=new AbortController;let B,c;function Q(A){c=A,s.abort()}o&&(o.aborted?Q(PA):o.addEventListener("abort",()=>Q(PA),{once:!0}));const E=async function(){let o;try{let i=I?.condition?.(A,{getState:C,extra:a});if(null!==(E=i)&&"object"==typeof E&&"function"==typeof E.then&&(i=await i),!1===i||s.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};const l=new Promise((A,e)=>{B=()=>{e({name:"AbortError",message:c||"Aborted"})},s.signal.addEventListener("abort",B)});n(t(r,A,I?.getPendingMeta?.({requestId:r,arg:A},{getState:C,extra:a}))),o=await Promise.race([l,Promise.resolve(e(A,{dispatch:n,getState:C,extra:a,requestId:r,signal:s.signal,abort:Q,rejectWithValue:(A,e)=>new vA(A,e),fulfillWithValue:(A,e)=>new bA(A,e)})).then(e=>{if(e instanceof vA)throw e;return e instanceof bA?g(e.payload,r,A,e.meta):g(e,r,A)})])}catch(e){o=e instanceof vA?i(null,r,A,e.payload,e.meta):i(e,r,A)}finally{B&&s.signal.removeEventListener("abort",B)}var E;return I&&!I.dispatchConditionRejection&&i.match(o)&&o.meta.condition||n(o),o}();return Object.assign(E,{abort:Q,requestId:r,arg:A,unwrap:()=>E.then(RA)})}},{pending:t,rejected:i,fulfilled:g,settled:pA(i,g),typePrefix:A})}return A.withTypes=()=>A,A})();function RA(A){if(A.meta&&A.meta.rejectedWithValue)throw A.payload;if(A.error)throw A.error;return A.payload}var xA=Symbol.for("rtk-slice-createasyncthunk");function qA(A,e){return`${A}/${e}`}function OA({creators:A}={}){const e=A?.asyncThunk?.[xA];return function(A){const{name:I,reducerPath:g=I}=A;if(!I)throw new Error(Se(11));const t=("function"==typeof A.reducers?A.reducers(function(){function A(A,e){return{_reducerDefinitionType:"asyncThunk",payloadCreator:A,...e}}return A.withTypes=()=>A,{reducer:A=>Object.assign({[A.name]:(...e)=>A(...e)}[A.name],{_reducerDefinitionType:"reducer"}),preparedReducer:(A,e)=>({_reducerDefinitionType:"reducerWithPrepare",prepare:A,reducer:e}),asyncThunk:A}}()):A.reducers)||{},i=Object.keys(t),o={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},n={addCase(A,e){const I="string"==typeof A?A:A.type;if(!I)throw new Error(Se(12));if(I in o.sliceCaseReducersByType)throw new Error(Se(13));return o.sliceCaseReducersByType[I]=e,n},addMatcher:(A,e)=>(o.sliceMatchers.push({matcher:A,reducer:e}),n),exposeAction:(A,e)=>(o.actionCreators[A]=e,n),exposeCaseReducer:(A,e)=>(o.sliceCaseReducersByName[A]=e,n)};function C(){const[e={},I=[],g]="function"==typeof A.extraReducers?DA(A.extraReducers):[A.extraReducers],t={...e,...o.sliceCaseReducersByType};return function(A,e){let I,[g,t,i]=DA(e);if("function"==typeof A)I=()=>wA(A());else{const e=wA(A);I=()=>e}function o(A=I(),e){let o=[g[e.type],...t.filter(({matcher:A})=>A(e)).map(({reducer:A})=>A)];return 0===o.filter(A=>!!A).length&&(o=[i]),o.reduce((A,I)=>{if(I){if(E(A)){const g=I(A,e);return void 0===g?A:g}if(l(A))return AA(A,A=>I(A,e));{const g=I(A,e);if(void 0===g){if(null===A)return A;throw Error("A case reducer on a non-draftable value must not return undefined")}return g}}return A},A)}return o.getInitialState=I,o}(A.initialState,A=>{for(let e in t)A.addCase(e,t[e]);for(let e of o.sliceMatchers)A.addMatcher(e.matcher,e.reducer);for(let e of I)A.addMatcher(e.matcher,e.reducer);g&&A.addDefaultCase(g)})}i.forEach(g=>{const i=t[g],o={reducerName:g,type:qA(I,g),createNotation:"function"==typeof A.reducers};!function(A){return"asyncThunk"===A._reducerDefinitionType}(i)?function({type:A,reducerName:e,createNotation:I},g,t){let i,o;if("reducer"in g){if(I&&!function(A){return"reducerWithPrepare"===A._reducerDefinitionType}(g))throw new Error(Se(17));i=g.reducer,o=g.prepare}else i=g;t.addCase(A,i).exposeCaseReducer(e,i).exposeAction(e,o?EA(A,o):EA(A))}(o,i,n):function({type:A,reducerName:e},I,g,t){if(!t)throw new Error(Se(18));const{payloadCreator:i,fulfilled:o,pending:n,rejected:C,settled:a,options:r}=I,s=t(A,i,r);g.exposeAction(e,s),o&&g.addCase(s.fulfilled,o);n&&g.addCase(s.pending,n);C&&g.addCase(s.rejected,C);a&&g.addMatcher(s.settled,a);g.exposeCaseReducer(e,{fulfilled:o||zA,pending:n||zA,rejected:C||zA,settled:a||zA})}(o,i,n,e)});const a=A=>A,r=new Map,s=new WeakMap;let B;function c(A,e){return B||(B=C()),B(A,e)}function Q(){return B||(B=C()),B.getInitialState()}function w(e,I=!1){function g(A){let t=A[e];return void 0===t&&I&&(t=dA(s,g,Q)),t}function t(e=a){const g=dA(r,I,()=>new WeakMap);return dA(g,e,()=>{const g={};for(const[t,i]of Object.entries(A.selectors??{}))g[t]=jA(i,e,()=>dA(s,e,Q),I);return g})}return{reducerPath:e,getSelectors:t,get selectors(){return t(g)},selectSlice:g}}const d={name:I,reducer:c,actions:o.actionCreators,caseReducers:o.sliceCaseReducersByName,getInitialState:Q,...w(g),injectInto(A,{reducerPath:e,...I}={}){const t=e??g;return A.inject({reducerPath:t,reducer:c},I),{...d,...w(t,!0)}}};return d}}function jA(A,e,I,g){function t(t,...i){let o=e(t);return void 0===o&&g&&(o=I()),A(o,...i)}return t.unwrapped=A,t}var TA=OA();function zA(){}var VA="listener",XA="completed",WA="cancelled",ZA=`task-${WA}`,_A=`task-${XA}`,$A=`${VA}-${WA}`,Ae=`${VA}-${XA}`,ee=class{constructor(A){this.code=A,this.message=`task ${WA} (reason: ${A})`}name="TaskAbortError";message},Ie=(A,e)=>{if("function"!=typeof A)throw new TypeError(Se(32))},ge=()=>{},te=(A,e=ge)=>(A.catch(e),A),ie=(A,e)=>(A.addEventListener("abort",e,{once:!0}),()=>A.removeEventListener("abort",e)),oe=(A,e)=>{const I=A.signal;I.aborted||("reason"in I||Object.defineProperty(I,"reason",{enumerable:!0,value:e,configurable:!0,writable:!0}),A.abort(e))},ne=A=>{if(A.aborted){const{reason:e}=A;throw new ee(e)}};function Ce(A,e){let I=ge;return new Promise((g,t)=>{const i=()=>t(new ee(A.reason));A.aborted?i():(I=ie(A,i),e.finally(()=>I()).then(g,t))}).finally(()=>{I=ge})}var ae=A=>e=>te(Ce(A,e).then(e=>(ne(A),e))),re=A=>{const e=ae(A);return A=>e(new Promise(e=>setTimeout(e,A)))},{assign:se}=Object,Be={},ce="listenerMiddleware",Qe=(A,e)=>(I,g)=>{Ie(I);const t=new AbortController;var i;i=t,ie(A,()=>oe(i,A.reason));const o=(async(A,e)=>{try{return await Promise.resolve(),{status:"ok",value:await A()}}catch(A){return{status:A instanceof ee?"cancelled":"rejected",error:A}}finally{e?.()}})(async()=>{ne(A),ne(t.signal);const e=await I({pause:ae(t.signal),delay:re(t.signal),signal:t.signal});return ne(t.signal),e},()=>oe(t,_A));return g?.autoJoin&&e.push(o.catch(ge)),{result:ae(A)(o),cancel(){oe(t,ZA)}}},Ee=(A,e)=>(I,g)=>te((async(I,g)=>{ne(e);let t=()=>{};const i=[new Promise((e,g)=>{let i=A({predicate:I,effect:(A,I)=>{I.unsubscribe(),e([A,I.getState(),I.getOriginalState()])}});t=()=>{i(),g()}})];null!=g&&i.push(new Promise(A=>setTimeout(A,g,null)));try{const A=await Ce(e,Promise.race(i));return ne(e),A}finally{t()}})(I,g)),le=A=>{let{type:e,actionCreator:I,matcher:g,predicate:t,effect:i}=A;if(e)t=EA(e).match;else if(I)e=I.type,t=I.match;else if(g)t=g;else if(!t)throw new Error(Se(21));return Ie(i),{predicate:t,type:e,effect:i}},we=se(A=>{const{type:e,predicate:I,effect:g}=le(A);return{id:UA(),effect:g,type:e,predicate:I,pending:new Set,unsubscribe:()=>{throw new Error(Se(22))}}},{withTypes:()=>we}),de=(A,e)=>{const{type:I,effect:g,predicate:t}=le(e);return Array.from(A.values()).find(A=>("string"==typeof I?A.type===I:A.predicate===t)&&A.effect===g)},he=A=>{A.pending.forEach(A=>{oe(A,$A)})},fe=(A,e,I)=>{try{A(e,I)}catch(A){setTimeout(()=>{throw A},0)}},ue=se(EA(`${ce}/add`),{withTypes:()=>ue}),ye=EA(`${ce}/removeAll`),De=se(EA(`${ce}/remove`),{withTypes:()=>De}),me=(...A)=>{console.error(`${ce}/error`,...A)},pe=(A={})=>{const e=new Map,{extra:I,onError:g=me}=A;Ie(g);const t=A=>(A=>(A.unsubscribe=()=>e.delete(A.id),e.set(A.id,A),e=>{A.unsubscribe(),e?.cancelActive&&he(A)}))(de(e,A)??we(A));se(t,{withTypes:()=>t});const i=A=>{const I=de(e,A);return I&&(I.unsubscribe(),A.cancelActive&&he(I)),!!I};se(i,{withTypes:()=>i});const o=async(A,i,o,n)=>{const C=new AbortController,a=Ee(t,C.signal),r=[];try{A.pending.add(C),await Promise.resolve(A.effect(i,se({},o,{getOriginalState:n,condition:(A,e)=>a(A,e).then(Boolean),take:a,delay:re(C.signal),pause:ae(C.signal),extra:I,signal:C.signal,fork:Qe(C.signal,r),unsubscribe:A.unsubscribe,subscribe:()=>{e.set(A.id,A)},cancelActiveListeners:()=>{A.pending.forEach((A,e,I)=>{A!==C&&(oe(A,$A),I.delete(A))})},cancel:()=>{oe(C,$A),A.pending.delete(C)},throwIfCancelled:()=>{ne(C.signal)}})))}catch(A){A instanceof ee||fe(g,A,{raisedBy:"effect"})}finally{await Promise.all(r),oe(C,Ae),A.pending.delete(C)}},n=(A=>()=>{A.forEach(he),A.clear()})(e);return{middleware:A=>I=>C=>{if(!a(C))return I(C);if(ue.match(C))return t(C.payload);if(ye.match(C))return void n();if(De.match(C))return i(C.payload);let r=A.getState();const s=()=>{if(r===Be)throw new Error(Se(23));return r};let B;try{if(B=I(C),e.size>0){const I=A.getState(),t=Array.from(e.values());for(const e of t){let t=!1;try{t=e.predicate(C,I,r)}catch(A){t=!1,fe(g,A,{raisedBy:"predicate"})}t&&o(e,C,A,s)}}}finally{r=Be}return B},startListening:t,stopListening:i,clearListeners:n}};function Se(A){return`Minified Redux Toolkit error #${A}; visit https://redux-toolkit.js.org/Errors?code=${A} for the full message or use the non-minified dev environment for full errors. `}const ke=TA({name:"commonState",initialState:{currentRoomUrl:""},reducers:{setCurrentRoomUrl:(A,e)=>{A.currentRoomUrl=e.payload}}}),{setCurrentRoomUrl:Me}=ke.actions;var Fe=ke.reducer;const Ke={peerId:localStorage.getItem("peerId")??"",challengeId:localStorage.getItem("challengeId")??"",publicKey:localStorage.getItem("publicKey")??"",secretKey:localStorage.getItem("secretKey")??"",challenge:localStorage.getItem("challenge")??"",signature:localStorage.getItem("signature")??""},He=TA({name:"keyPair",initialState:Ke,reducers:{setKeyPair:(A,e)=>{const{publicKey:I,secretKey:g}=e.payload;64===I.length&&128===g.length&&(A.publicKey=e.payload.publicKey,A.secretKey=e.payload.secretKey)},setReconnectData:(e,I)=>{const{peerId:g,challenge:t,signature:i,challengeId:o}=I.payload;A.isUUID(g,4)&&A.isUUID(o)&&A.isHexadecimal(t)&&A.isHexadecimal(i)&&64===t.length&&128===i.length&&(e.peerId=g,e.challenge=t,e.signature=i,e.challengeId=o)},setPeerData:(e,I)=>{const{peerId:g,challenge:t,signature:i}=I.payload;A.isUUID(g,4)&&A.isHexadecimal(t)&&A.isHexadecimal(i)&&64===t.length&&128===i.length&&(e.peerId=g,e.challenge=t,e.signature=i)},setChallengeId:(e,I)=>{const{challengeId:g}=I.payload;A.isUUID(g)&&(e.challengeId=g)},resetIdentity:(A,e)=>({peerId:"",challengeId:"",publicKey:"",secretKey:"",challenge:"",signature:""})}}),{setKeyPair:Ne,setReconnectData:Ye,setPeerData:Ue,setChallengeId:Ge,resetIdentity:ve}=He.actions;var be=He.reducer;const Le=64*Uint8Array.BYTES_PER_ELEMENT,Pe=64*Uint8Array.BYTES_PER_ELEMENT,Je=32*Uint8Array.BYTES_PER_ELEMENT,Re=32*Uint8Array.BYTES_PER_ELEMENT,xe=64*Uint8Array.BYTES_PER_ELEMENT,qe=16*Uint8Array.BYTES_PER_ELEMENT,Oe=32*Uint8Array.BYTES_PER_ELEMENT,je=32*Uint8Array.BYTES_PER_ELEMENT,Te=12*Uint8Array.BYTES_PER_ELEMENT,ze=12*Uint8Array.BYTES_PER_ELEMENT,Ve=16*Uint8Array.BYTES_PER_ELEMENT,Xe=A=>ze+A+qe,We=A=>A-ze-qe,Ze={iceServers:[{urls:["stun:stun.p2party.com:3478"]}],iceTransportPolicy:"all"},_e=TA({name:"rooms",initialState:[],reducers:{setRoom:(e,I)=>{const{url:g,id:t,canBeConnectionRelay:i,rtcConfig:o,onlyConnectWithKnownPeers:n}=I.payload;if(64===g.length&&A.isUUID(t)){const A=e.findIndex(A=>A.url===g||A.id===t);A>-1?(e[A].url=g,e[A].id=t,null!=i&&(e[A].canBeConnectionRelay=i),o&&(e[A].rtcConfig=o),e[A].onlyConnectWithKnownAddresses=null!=n?n:"true"===localStorage.getItem(g+"-onlyConnectWithKnownPeers")):e.push({url:g,id:t,connectingToPeers:!1,connectedToPeers:!1,canBeConnectionRelay:i??!0,onlyConnectWithKnownAddresses:n??"true"===localStorage.getItem(g+"-onlyConnectWithKnownPeers"),rtcConfig:o??Ze,peers:[],channels:[],messages:[]})}else if(64===g.length){const A=e.findIndex(A=>A.url===g);A>-1?(e[A].url=g,e[A].id="",null!=i&&(e[A].canBeConnectionRelay=i),o&&(e[A].rtcConfig=o),e[A].onlyConnectWithKnownAddresses=null!=n?n:"true"===localStorage.getItem(g+"-onlyConnectWithKnownPeers")):e.push({url:g,id:"",connectingToPeers:!1,connectedToPeers:!1,canBeConnectionRelay:i??!0,onlyConnectWithKnownAddresses:n??"true"===localStorage.getItem(g+"-onlyConnectWithKnownPeers"),rtcConfig:o??Ze,peers:[],channels:[],messages:[]})}},setConnectingToPeers:(A,e)=>{const{roomId:I,connectingToPeers:g}=e.payload,t=A.findIndex(A=>A.id===I);t>-1&&(A[t].connectingToPeers=g)},setConnectedToPeers:(A,e)=>{const{roomId:I,connectedToPeers:g}=e.payload,t=A.findIndex(A=>A.id===I);t>-1&&(A[t].connectingToPeers=!1,A[t].connectedToPeers=g)},setConnectionRelay:(A,e)=>{const{roomId:I,canBeConnectionRelay:g}=e.payload,t=A.findIndex(A=>A.id===I);t>-1&&(A[t].canBeConnectionRelay=g)},setPeer:(A,e)=>{const{roomId:I,peerId:g,peerPublicKey:t}=e.payload,i=A.findIndex(A=>A.id===I);if(i>-1){-1===A[i].peers.findIndex(A=>A.peerId===g)&&A[i].peers.push({peerId:g,peerPublicKey:t})}},deletePeer:(A,e)=>{const I=A.length;for(let g=0;g<I;g++){const I=A[g].peers.findIndex(A=>A.peerId===e.payload.peerId);I>-1&&A[g].peers.splice(I,1)}},setChannel:(A,e)=>{const{roomId:I,label:g,peerId:t}=e.payload,i=A.findIndex(A=>A.id===I);if(i>-1){const e=A[i].channels.findIndex(A=>A.label===g);if(e>-1){-1===A[i].channels[e].peerIds.findIndex(A=>A===t)&&A[i].channels[e].peerIds.push(t)}else A[i].channels.push({label:g,peerIds:[t]})}},deleteChannel:(A,e)=>{const{peerId:I,label:g}=e.payload,t=A.length;for(let e=0;e<t;e++)if(g&&!I){const I=A[e].channels.findIndex(A=>A.label===g);I>-1&&A[e].channels.splice(I,1)}else if(!g&&I){const g=A[e].channels.length;for(let t=0;t<g;t++){const g=A[e].channels[e].peerIds.findIndex(A=>A===I);g>-1&&(A[e].channels[t].peerIds.splice(g,1),0===A[e].channels[t].peerIds.length&&A[e].channels.splice(t,1))}}else if(I&&g){const t=A[e].channels.findIndex(A=>A.label===g&&A.peerIds.includes(I));if(t>-1){const g=A[e].channels[t].peerIds.findIndex(A=>A===I);A[e].channels[t].peerIds.splice(g,1),0===A[e].channels[t].peerIds.length&&A[e].channels.splice(t,1)}}},setIceServers:(A,e)=>{const{roomId:I,iceServers:g}=e.payload,t=A.findIndex(A=>A.id===I);if(t>-1){const e=g.length,I=A[t].rtcConfig.iceServers?.flatMap(A=>Array.isArray(A.urls)?A.urls:[A.urls])??[];for(let i=0;i<e;i++){const e=g[i].urls.length;let o=!1;for(let A=0;A<e;A++)if(!I.includes(g[i].urls[A])){o=!0;break}o&&A[t].rtcConfig.iceServers?.push(g[i])}}},setMessage:(e,I)=>{const{roomId:g,merkleRootHex:t,sha512Hex:i,filename:o,channelLabel:n,fromPeerId:C,messageType:a,chunkSize:r,totalSize:s,chunksCreated:B,totalChunks:c,timestamp:Q}=I.payload,E=e.findIndex(A=>A.id===g);if(E>-1){const I=e[E].messages.findLastIndex(A=>A.merkleRootHex===t||A.sha512Hex===i&&0===A.merkleRootHex.length);-1===I?n&&C&&A.isUUID(C)&&a&&s&&e[E].messages.push({merkleRootHex:t,sha512Hex:i,channelLabel:n,filename:o.length>0?o:"txt",messageType:a,fromPeerId:C,timestamp:Q??Date.now(),savedSize:r>0?r:0,totalSize:s,chunksCreated:B??0,totalChunks:c??0}):e[E].messages[I].timestamp!==Q&&e[E].messages[I].sha512Hex===i&&e[E].messages[I].savedSize===e[E].messages[I].totalSize?e[E].messages.push({merkleRootHex:t,sha512Hex:i,channelLabel:n,filename:o.length>0?o:"txt",messageType:a,fromPeerId:C,timestamp:Q??Date.now(),savedSize:r,totalSize:s,chunksCreated:B??0,totalChunks:c??0}):(t.length===2*Le&&""===e[E].messages[I].merkleRootHex&&(e[E].messages[I].merkleRootHex=t),s>0&&e[E].messages[I].totalSize<s&&(e[E].messages[I].totalSize=s),r>0&&e[E].messages[I].totalSize>=e[E].messages[I].savedSize+r&&(e[E].messages[I].savedSize+=r),B&&B<=e[E].messages[I].totalChunks&&(e[E].messages[I].chunksCreated=B+1))}},setMessageAllChunks:(e,I)=>{const{roomId:g,merkleRootHex:t,sha512Hex:i,channelLabel:o,filename:n,messageType:C,fromPeerId:a,timestamp:r,totalSize:s}=I.payload,B=e.findIndex(A=>A.id===g);if(B>-1){const I=e[B].messages.findLastIndex(A=>A.merkleRootHex===t);-1===I&&o&&a&&A.isUUID(a)&&C&&s||I>-1&&e[B].messages[I].timestamp<r?e[B].messages.push({merkleRootHex:t,sha512Hex:i,channelLabel:o,filename:n.length>0?n:"txt",messageType:C,fromPeerId:a,timestamp:r,savedSize:s,totalSize:s,chunksCreated:0,totalChunks:0}):I>-1&&e[B].messages[I].savedSize!==s&&(e[B].messages[I].savedSize=s)}},deleteMessage:(A,e)=>{const{merkleRootHex:I,hashHex:g}=e.payload;if(!I&&!g)return;if(I&&I.length!==2*Le)return;if(g&&g.length!==2*Le)return;const t=A.length;for(let e=0;e<t;e++)if(I){const g=A[e].messages.findIndex(A=>A.merkleRootHex===I);g>-1&&A[e].messages.splice(g,1)}else if(g){const I=A[e].messages.findLastIndex(A=>A.sha512Hex===g);I>-1&&A[e].messages.splice(I,1)}},setOnlyConnectWithKnownPeers:(A,e)=>{const{roomId:I,onlyConnectWithKnownPeers:g}=e.payload,t=A.findIndex(A=>A.id===I);t>-1&&(A[t].onlyConnectWithKnownAddresses=g)},deleteRoom:(A,e)=>{const I=A.findIndex(A=>A.url===e.payload||A.id===e.payload);if(I>-1){const e=A[I].url;A[I]={url:e,id:"",connectingToPeers:!1,connectedToPeers:!1,canBeConnectionRelay:!0,onlyConnectWithKnownAddresses:!1,rtcConfig:Ze,peers:[],channels:[],messages:[]}}}}}),{setRoom:$e,setConnectingToPeers:AI,setConnectedToPeers:eI,setConnectionRelay:II,setOnlyConnectWithKnownPeers:gI,setPeer:tI,setChannel:iI,setIceServers:oI,setMessage:nI,setMessageAllChunks:CI,deletePeer:aI,deleteChannel:rI,deleteMessage:sI,deleteRoom:BI}=_e.actions;var cI=_e.reducer;const QI="wss://signaling.p2party.com/ws",EI=TA({name:"signalingServer",initialState:{isEstablishingConnection:!1,isConnected:!1,serverUrl:QI},reducers:{startConnecting:(A,e)=>{A.isEstablishingConnection=!0,A.serverUrl=e.payload??QI},connectionEstablished:A=>{A.isConnected=!0,A.isEstablishingConnection=!1},disconnect:A=>{A.isConnected=!1,A.isEstablishingConnection=!1}}}),lI=EI.actions;var wI=EI.reducer,dI=class extends Error{issues;constructor(A){super(A[0].message),this.name="SchemaError",this.issues=A}};function hI(A){return{status:A,isUninitialized:"uninitialized"===A,isLoading:"pending"===A,isSuccess:"fulfilled"===A,isError:"rejected"===A}}var fI=i;function uI(A,e){if(A===e||!(fI(A)&&fI(e)||Array.isArray(A)&&Array.isArray(e)))return e;const I=Object.keys(e),g=Object.keys(A);let t=I.length===g.length;const i=Array.isArray(e)?[]:{};for(const g of I)i[g]=uI(A[g],e[g]),t&&(t=A[g]===i[g]);return t?A:i}function yI(A){let e=0;for(const I in A)e++;return e}var DI=A=>[].concat(...A);function mI(A){return null!=A}var pI=class{constructor(A,e=void 0){this.value=A,this.meta=e}},SI=EA("__rtkq/focused"),kI=EA("__rtkq/unfocused"),MI=EA("__rtkq/online"),FI=EA("__rtkq/offline");function KI(A){return"query"===A.type}function HI(A){return"infinitequery"===A.type}function NI(A){return KI(A)||HI(A)}function YI(A,e,I,g,t,i){return"function"==typeof A?A(e,I,g,t).filter(mI).map(UI).map(i):Array.isArray(A)?A.map(UI).map(i):[]}function UI(A){return"string"==typeof A?{type:A}:A}var GI=Symbol("forceQueryFn"),vI=A=>"function"==typeof A[GI];var bI=class extends dI{constructor(A,e,I,g){super(A),this.value=e,this.schemaName=I,this._bqMeta=g}};async function LI(A,e,I,g){const t=await A["~standard"].validate(e);if(t.issues)throw new bI(t.issues,e,I,g);return t.value}function PI(A){return A}var JI=(A={})=>({...A,[hA]:!0});function RI(A,{pages:e,pageParams:I},g){const t=e.length-1;return A.getNextPageParam(e[t],e,I[t],I,g)}function xI(A,{pages:e,pageParams:I},g){return A.getPreviousPageParam?.(e[0],e,I[0],I,g)}function qI(A,e,I,g){return YI(I[A.meta.arg.endpointName][e],NA(A)?A.payload:void 0,HA(A)?A.payload:void 0,A.meta.arg.originalArgs,"baseQueryMeta"in A.meta?A.meta.baseQueryMeta:void 0,g)}function OI(A,e,I){const g=A[e];g&&I(g)}function jI(A){return("arg"in A?A.arg.fixedCacheKey:A.fixedCacheKey)??A.requestId}function TI(A,e,I){const g=A[jI(e)];g&&I(g)}var zI={};function VI({reducerPath:A,queryThunk:e,mutationThunk:I,serializeQueryArgs:g,context:{endpointDefinitions:t,apiUid:i,extractRehydrationInfo:o,hasRehydrationInfo:C},assertTagType:a,config:r}){const s=EA(`${A}/resetApiState`);function Q(A,e,I,g){A[e.queryCacheKey]??={status:"uninitialized",endpointName:e.endpointName},OI(A,e.queryCacheKey,A=>{A.status="pending",A.requestId=I&&A.requestId?A.requestId:g.requestId,void 0!==e.originalArgs&&(A.originalArgs=e.originalArgs),A.startedTimeStamp=g.startedTimeStamp;HI(t[g.arg.endpointName])&&"direction"in e&&(A.direction=e.direction)})}function l(A,e,I,g){OI(A,e.arg.queryCacheKey,A=>{if(A.requestId!==e.requestId&&!g)return;const{merge:i}=t[e.arg.endpointName];if(A.status="fulfilled",i)if(void 0!==A.data){const{fulfilledTimeStamp:g,arg:t,baseQueryMeta:o,requestId:n}=e;let C=AA(A.data,A=>i(A,I,{arg:t.originalArgs,baseQueryMeta:o,fulfilledTimeStamp:g,requestId:n}));A.data=C}else A.data=I;else A.data=t[e.arg.endpointName].structuralSharing??1?uI(E(A.data)?(E(o=A.data)||c(15),o[B].base_):A.data,I):I;var o;delete A.error,A.fulfilledTimeStamp=e.fulfilledTimeStamp})}const w=TA({name:`${A}/queries`,initialState:zI,reducers:{removeQueryResult:{reducer(A,{payload:{queryCacheKey:e}}){delete A[e]},prepare:fA()},cacheEntriesUpserted:{reducer(A,e){for(const I of e.payload){const{queryDescription:g,value:t}=I;Q(A,g,!0,{arg:g,requestId:e.meta.requestId,startedTimeStamp:e.meta.timestamp}),l(A,{arg:g,requestId:e.meta.requestId,fulfilledTimeStamp:e.meta.timestamp,baseQueryMeta:{}},t,!0)}},prepare:A=>({payload:A.map(A=>{const{endpointName:e,arg:I,value:i}=A,o=t[e];return{queryDescription:{type:"query",endpointName:e,originalArgs:A.arg,queryCacheKey:g({queryArgs:I,endpointDefinition:o,endpointName:e})},value:i}}),meta:{[hA]:!0,requestId:UA(),timestamp:Date.now()}})},queryResultPatched:{reducer(A,{payload:{queryCacheKey:e,patches:I}}){OI(A,e,A=>{A.data=IA(A.data,I.concat())})},prepare:fA()}},extraReducers(A){A.addCase(e.pending,(A,{meta:e,meta:{arg:I}})=>{Q(A,I,vI(I),e)}).addCase(e.fulfilled,(A,{meta:e,payload:I})=>{l(A,e,I,vI(e.arg))}).addCase(e.rejected,(A,{meta:{condition:e,arg:I,requestId:g},error:t,payload:i})=>{OI(A,I.queryCacheKey,A=>{if(e);else{if(A.requestId!==g)return;A.status="rejected",A.error=i??t}})}).addMatcher(C,(A,e)=>{const{queries:I}=o(e);for(const[e,g]of Object.entries(I))"fulfilled"!==g?.status&&"rejected"!==g?.status||(A[e]=g)})}}),d=TA({name:`${A}/mutations`,initialState:zI,reducers:{removeMutationResult:{reducer(A,{payload:e}){const I=jI(e);I in A&&delete A[I]},prepare:fA()}},extraReducers(A){A.addCase(I.pending,(A,{meta:e,meta:{requestId:I,arg:g,startedTimeStamp:t}})=>{g.track&&(A[jI(e)]={requestId:I,status:"pending",endpointName:g.endpointName,startedTimeStamp:t})}).addCase(I.fulfilled,(A,{payload:e,meta:I})=>{I.arg.track&&TI(A,I,A=>{A.requestId===I.requestId&&(A.status="fulfilled",A.data=e,A.fulfilledTimeStamp=I.fulfilledTimeStamp)})}).addCase(I.rejected,(A,{payload:e,error:I,meta:g})=>{g.arg.track&&TI(A,g,A=>{A.requestId===g.requestId&&(A.status="rejected",A.error=e??I)})}).addMatcher(C,(A,e)=>{const{mutations:I}=o(e);for(const[e,g]of Object.entries(I))"fulfilled"!==g?.status&&"rejected"!==g?.status||e===g?.requestId||(A[e]=g)})}}),h=TA({name:`${A}/invalidation`,initialState:{tags:{},keys:{}},reducers:{updateProvidedBy:{reducer(A,e){for(const{queryCacheKey:I,providedTags:g}of e.payload){f(A,I);for(const{type:e,id:t}of g){const g=(A.tags[e]??={})[t||"__internal_without_id"]??=[];g.includes(I)||g.push(I)}A.keys[I]=g}},prepare:fA()}},extraReducers(A){A.addCase(w.actions.removeQueryResult,(A,{payload:{queryCacheKey:e}})=>{f(A,e)}).addMatcher(C,(A,e)=>{const{provided:I}=o(e);for(const[e,g]of Object.entries(I))for(const[I,t]of Object.entries(g)){const g=(A.tags[e]??={})[I||"__internal_without_id"]??=[];for(const A of t){g.includes(A)||g.push(A)}}}).addMatcher(pA(NA(e),HA(e)),(A,e)=>{u(A,[e])}).addMatcher(w.actions.cacheEntriesUpserted.match,(A,e)=>{u(A,e.payload.map(({queryDescription:A,value:e})=>({type:"UNKNOWN",payload:e,meta:{requestStatus:"fulfilled",requestId:"UNKNOWN",arg:A}})))})}});function f(A,e){const I=A.keys[e]??[];for(const g of I){const I=g.type,t=g.id??"__internal_without_id",i=A.tags[I]?.[t];i&&(A.tags[I][t]=i.filter(A=>A!==e))}delete A.keys[e]}function u(A,e){const I=e.map(A=>{const e=qI(A,"providesTags",t,a),{queryCacheKey:I}=A.meta.arg;return{queryCacheKey:I,providedTags:e}});h.caseReducers.updateProvidedBy(A,h.actions.updateProvidedBy(I))}const y=TA({name:`${A}/subscriptions`,initialState:zI,reducers:{updateSubscriptionOptions(A,e){},unsubscribeQueryResult(A,e){},internal_getRTKQSubscriptions(){}}}),D=TA({name:`${A}/internalSubscriptions`,initialState:zI,reducers:{subscriptionsUpdated:{reducer:(A,e)=>IA(A,e.payload),prepare:fA()}}}),m=TA({name:`${A}/config`,initialState:{online:"undefined"==typeof navigator||void 0===navigator.onLine||navigator.onLine,focused:"undefined"==typeof document||"hidden"!==document.visibilityState,middlewareRegistered:!1,...r},reducers:{middlewareRegistered(A,{payload:e}){A.middlewareRegistered="conflict"!==A.middlewareRegistered&&i===e||"conflict"}},extraReducers:A=>{A.addCase(MI,A=>{A.online=!0}).addCase(FI,A=>{A.online=!1}).addCase(SI,A=>{A.focused=!0}).addCase(kI,A=>{A.focused=!1}).addMatcher(C,A=>({...A}))}}),p=n({queries:w.reducer,mutations:d.reducer,provided:h.reducer,subscriptions:D.reducer,config:m.reducer});return{reducer:(A,e)=>p(s.match(e)?void 0:A,e),actions:{...m.actions,...w.actions,...y.actions,...D.actions,...d.actions,...h.actions,resetApiState:s}}}var XI=Symbol.for("RTKQ/skipToken"),WI={status:"uninitialized"},ZI=AA(WI,()=>{}),_I=AA(WI,()=>{});var $I=WeakMap?new WeakMap:void 0,Ag=({endpointName:A,queryArgs:e})=>{let I="";const g=$I?.get(e);if("string"==typeof g)I=g;else{const A=JSON.stringify(e,(A,e)=>e=i(e="bigint"==typeof e?{$bigint:e.toString()}:e)?Object.keys(e).sort().reduce((A,I)=>(A[I]=e[I],A),{}):e);i(e)&&$I?.set(e,A),I=A}return`${A}(${I})`};function eg(...A){return function(e){const I=nA(A=>e.extractRehydrationInfo?.(A,{reducerPath:e.reducerPath??"api"})),g={reducerPath:"api",keepUnusedDataFor:60,refetchOnMountOrArgChange:!1,refetchOnFocus:!1,refetchOnReconnect:!1,invalidationBehavior:"delayed",...e,extractRehydrationInfo:I,serializeQueryArgs(A){let I=Ag;if("serializeQueryArgs"in A.endpointDefinition){const e=A.endpointDefinition.serializeQueryArgs;I=A=>{const I=e(A);return"string"==typeof I?I:Ag({...A,queryArgs:I})}}else e.serializeQueryArgs&&(I=e.serializeQueryArgs);return I(A)},tagTypes:[...e.tagTypes||[]]},t={endpointDefinitions:{},batch(A){A()},apiUid:UA(),extractRehydrationInfo:I,hasRehydrationInfo:nA(A=>null!=I(A))},i={injectEndpoints:function(A){const e=A.endpoints({query:A=>({...A,type:"query"}),mutation:A=>({...A,type:"mutation"}),infiniteQuery:A=>({...A,type:"infinitequery"})});for(const[I,g]of Object.entries(e))if(!0!==A.overrideExisting&&I in t.endpointDefinitions){if("throw"===A.overrideExisting)throw new Error(Se(39))}else{t.endpointDefinitions[I]=g;for(const A of o)A.injectEndpoint(I,g)}return i},enhanceEndpoints({addTagTypes:A,endpoints:e}){if(A)for(const e of A)g.tagTypes.includes(e)||g.tagTypes.push(e);if(e)for(const[A,I]of Object.entries(e))"function"==typeof I?I(t.endpointDefinitions[A]):Object.assign(t.endpointDefinitions[A]||{},I);return i}},o=A.map(A=>A.init(i,g,t));return i.injectEndpoints({endpoints:e.endpoints})}}function Ig(A,...e){return Object.assign(A,...e)}var gg=({api:A,queryThunk:e,internalState:I})=>{const g=`${A.reducerPath}/subscriptions`;let t=null,i=null;const{updateSubscriptionOptions:o,unsubscribeQueryResult:n}=A.internalActions,C=()=>I.currentSubscriptions,a={getSubscriptions:C,getSubscriptionCount:A=>yI(C()[A]??{}),isRequestSubscribed:(A,e)=>{const I=C();return!!I?.[A]?.[e]}};return(C,r)=>{if(t||(t=JSON.parse(JSON.stringify(I.currentSubscriptions))),A.util.resetApiState.match(C))return t=I.currentSubscriptions={},i=null,[!0,!1];if(A.internalActions.internal_getRTKQSubscriptions.match(C))return[!1,a];const s=((I,g)=>{if(o.match(g)){const{queryCacheKey:A,requestId:e,options:t}=g.payload;return I?.[A]?.[e]&&(I[A][e]=t),!0}if(n.match(g)){const{queryCacheKey:A,requestId:e}=g.payload;return I[A]&&delete I[A][e],!0}if(A.internalActions.removeQueryResult.match(g))return delete I[g.payload.queryCacheKey],!0;if(e.pending.match(g)){const{meta:{arg:A,requestId:e}}=g,t=I[A.queryCacheKey]??={};return t[`${e}_running`]={},A.subscribe&&(t[e]=A.subscriptionOptions??t[e]??{}),!0}let t=!1;if(e.fulfilled.match(g)||e.rejected.match(g)){const A=I[g.meta.arg.queryCacheKey]||{},e=`${g.meta.requestId}_running`;t||=!!A[e],delete A[e]}if(e.rejected.match(g)){const{meta:{condition:A,arg:e,requestId:i}}=g;if(A&&e.subscribe){const A=I[e.queryCacheKey]??={};A[i]=e.subscriptionOptions??A[i]??{},t=!0}}return t})(I.currentSubscriptions,C);let B=!0;if(s){i||(i=setTimeout(()=>{const e=JSON.parse(JSON.stringify(I.currentSubscriptions)),[,g]=eA(t,()=>e);r.next(A.internalActions.subscriptionsUpdated(g)),t=e,i=null},500));const o="string"==typeof C.type&&!!C.type.startsWith(g),n=e.rejected.match(C)&&C.meta.condition&&!!C.meta.arg.subscribe;B=!o&&!n}return[B,!1]}};var tg=({reducerPath:A,api:e,queryThunk:I,context:g,internalState:t,selectors:{selectQueryEntry:i,selectConfig:o}})=>{const{removeQueryResult:n,unsubscribeQueryResult:C,cacheEntriesUpserted:a}=e.internalActions,r=pA(C.match,I.fulfilled,I.rejected,a.match);function s(A){const e=t.currentSubscriptions[A];return!!e&&!function(A){for(const e in A)return!1;return!0}(e)}const B={};function c(A,e,I){const g=e.getState();for(const t of A){const A=i(g,t);Q(t,A?.endpointName,e,I)}}function Q(A,e,I,t){const i=g.endpointDefinitions[e],o=i?.keepUnusedDataFor??t.keepUnusedDataFor;if(o===1/0)return;const C=Math.max(0,Math.min(o,2147482.647));if(!s(A)){const e=B[A];e&&clearTimeout(e),B[A]=setTimeout(()=>{s(A)||I.dispatch(n({queryCacheKey:A})),delete B[A]},1e3*C)}}return(A,I,t)=>{const i=I.getState(),n=o(i);if(r(A)){let e;if(a.match(A))e=A.payload.map(A=>A.queryDescription.queryCacheKey);else{const{queryCacheKey:I}=C.match(A)?A.payload:A.meta.arg;e=[I]}c(e,I,n)}if(e.util.resetApiState.match(A))for(const[A,e]of Object.entries(B))e&&clearTimeout(e),delete B[A];if(g.hasRehydrationInfo(A)){const{queries:e}=g.extractRehydrationInfo(A);c(Object.keys(e),I,n)}}},ig=new Error("Promise never resolved before cacheEntryRemoved."),og=({api:A,reducerPath:e,context:I,queryThunk:g,mutationThunk:t,internalState:i,selectors:{selectQueryEntry:o,selectApiState:n}})=>{const C=YA(g),a=YA(t),r=NA(g,t),s={};function B(A,e,I){const g=s[A];g?.valueResolved&&(g.valueResolved({data:e,meta:I}),delete g.valueResolved)}function c(A){const e=s[A];e&&(delete s[A],e.cacheEntryRemoved())}function Q(e,g,t,i,o){const n=I.endpointDefinitions[e],C=n?.onCacheEntryAdded;if(!C)return;const a={},r=new Promise(A=>{a.cacheEntryRemoved=A}),B=Promise.race([new Promise(A=>{a.valueResolved=A}),r.then(()=>{throw ig})]);B.catch(()=>{}),s[t]=a;const c=A.endpoints[e].select(NI(n)?g:t),Q=i.dispatch((A,e,I)=>I),E={...i,getCacheEntry:()=>c(i.getState()),requestId:o,extra:Q,updateCachedData:NI(n)?I=>i.dispatch(A.util.updateQueryData(e,g,I)):void 0,cacheDataLoaded:B,cacheEntryRemoved:r},l=C(g,E);Promise.resolve(l).catch(A=>{if(A!==ig)throw A})}return(I,i,n)=>{const E=function(e){if(C(e))return e.meta.arg.queryCacheKey;if(a(e))return e.meta.arg.fixedCacheKey??e.meta.requestId;return A.internalActions.removeQueryResult.match(e)?e.payload.queryCacheKey:A.internalActions.removeMutationResult.match(e)?jI(e.payload):""}(I);function l(A,e,I,g){const t=o(n,e),C=o(i.getState(),e);!t&&C&&Q(A,g,e,i,I)}if(g.pending.match(I))l(I.meta.arg.endpointName,E,I.meta.requestId,I.meta.arg.originalArgs);else if(A.internalActions.cacheEntriesUpserted.match(I))for(const{queryDescription:A,value:e}of I.payload){const{endpointName:g,originalArgs:t,queryCacheKey:i}=A;l(g,i,I.meta.requestId,t),B(i,e,{})}else if(t.pending.match(I)){i.getState()[e].mutations[E]&&Q(I.meta.arg.endpointName,I.meta.arg.originalArgs,E,i,I.meta.requestId)}else if(r(I))B(E,I.payload,I.meta.baseQueryMeta);else if(A.internalActions.removeQueryResult.match(I)||A.internalActions.removeMutationResult.match(I))c(E);else if(A.util.resetApiState.match(I))for(const A of Object.keys(s))c(A)}},ng=({api:A,context:{apiUid:e},reducerPath:I})=>(I,g)=>{A.util.resetApiState.match(I)&&g.dispatch(A.internalActions.middlewareRegistered(e))},Cg=({reducerPath:A,context:e,context:{endpointDefinitions:I},mutationThunk:g,queryThunk:t,api:i,assertTagType:o,refetchQuery:n,internalState:C})=>{const{removeQueryResult:a}=i.internalActions,r=pA(NA(g),HA(g)),s=pA(NA(g,t),KA(g,t));let B=[];function c(I,g){const t=g.getState(),o=t[A];if(B.push(...I),"delayed"===o.config.invalidationBehavior&&function(A){const{queries:e,mutations:I}=A;for(const A of[e,I])for(const e in A)if("pending"===A[e]?.status)return!0;return!1}(o))return;const r=B;if(B=[],0===r.length)return;const s=i.util.selectInvalidatedBy(t,r);e.batch(()=>{const A=Array.from(s.values());for(const{queryCacheKey:e}of A){const A=o.queries[e],I=C.currentSubscriptions[e]??{};A&&(0===yI(I)?g.dispatch(a({queryCacheKey:e})):"uninitialized"!==A.status&&g.dispatch(n(A)))}})}return(A,e)=>{r(A)?c(qI(A,"invalidatesTags",I,o),e):s(A)?c([],e):i.util.invalidateTags.match(A)&&c(YI(A.payload,void 0,void 0,void 0,void 0,o),e)}},ag=({reducerPath:A,queryThunk:e,api:I,refetchQuery:g,internalState:t})=>{const i={};function o({queryCacheKey:e},I){const n=I.getState()[A],C=n.queries[e],r=t.currentSubscriptions[e];if(!C||"uninitialized"===C.status)return;const{lowestPollingInterval:s,skipPollingIfUnfocused:B}=a(r);if(!Number.isFinite(s))return;const c=i[e];c?.timeout&&(clearTimeout(c.timeout),c.timeout=void 0);const Q=Date.now()+s;i[e]={nextPollTimestamp:Q,pollingInterval:s,timeout:setTimeout(()=>{!n.config.focused&&B||I.dispatch(g(C)),o({queryCacheKey:e},I)},s)}}function n({queryCacheKey:e},I){const g=I.getState()[A].queries[e],n=t.currentSubscriptions[e];if(!g||"uninitialized"===g.status)return;const{lowestPollingInterval:r}=a(n);if(!Number.isFinite(r))return void C(e);const s=i[e],B=Date.now()+r;(!s||B<s.nextPollTimestamp)&&o({queryCacheKey:e},I)}function C(A){const e=i[A];e?.timeout&&clearTimeout(e.timeout),delete i[A]}function a(A={}){let e=!1,I=Number.POSITIVE_INFINITY;for(let g in A)A[g].pollingInterval&&(I=Math.min(A[g].pollingInterval,I),e=A[g].skipPollingIfUnfocused||e);return{lowestPollingInterval:I,skipPollingIfUnfocused:e}}return(A,g)=>{(I.internalActions.updateSubscriptionOptions.match(A)||I.internalActions.unsubscribeQueryResult.match(A))&&n(A.payload,g),(e.pending.match(A)||e.rejected.match(A)&&A.meta.condition)&&n(A.meta.arg,g),(e.fulfilled.match(A)||e.rejected.match(A)&&!A.meta.condition)&&o(A.meta.arg,g),I.util.resetApiState.match(A)&&function(){for(const A of Object.keys(i))C(A)}()}},rg=({api:A,context:e,queryThunk:I,mutationThunk:g})=>{const t=FA(I,g),i=KA(I,g),o=NA(I,g),n={};return(I,g)=>{if(t(I)){const{requestId:t,arg:{endpointName:i,originalArgs:o}}=I.meta,C=e.endpointDefinitions[i],a=C?.onQueryStarted;if(a){const e={},I=new Promise((A,I)=>{e.resolve=A,e.reject=I});I.catch(()=>{}),n[t]=e;const r=A.endpoints[i].select(NI(C)?o:t),s=g.dispatch((A,e,I)=>I),B={...g,getCacheEntry:()=>r(g.getState()),requestId:t,extra:s,updateCachedData:NI(C)?e=>g.dispatch(A.util.updateQueryData(i,o,e)):void 0,queryFulfilled:I};a(o,B)}}else if(o(I)){const{requestId:A,baseQueryMeta:e}=I.meta;n[A]?.resolve({data:I.payload,meta:e}),delete n[A]}else if(i(I)){const{requestId:A,rejectedWithValue:e,baseQueryMeta:g}=I.meta;n[A]?.reject({error:I.payload??I.error,isUnhandledError:!e,meta:g}),delete n[A]}}};function sg(A){const{reducerPath:e,queryThunk:I,api:g,context:t}=A,{apiUid:i}=t,o={invalidateTags:EA(`${e}/invalidateTags`)},n=A=>A.type.startsWith(`${e}/`),C=[ng,tg,Cg,ag,og,rg];return{middleware:I=>{let o=!1;const s={...A,internalState:{currentSubscriptions:{}},refetchQuery:r,isThisApiSliceAction:n},B=C.map(A=>A(s)),c=gg(s),Q=(({reducerPath:A,context:e,api:I,refetchQuery:g,internalState:t})=>{const{removeQueryResult:i}=I.internalActions;function o(I,o){const n=I.getState()[A],C=n.queries,a=t.currentSubscriptions;e.batch(()=>{for(const A of Object.keys(a)){const e=C[A],t=a[A];t&&e&&((Object.values(t).some(A=>!0===A[o])||Object.values(t).every(A=>void 0===A[o])&&n.config[o])&&(0===yI(t)?I.dispatch(i({queryCacheKey:A})):"uninitialized"!==e.status&&I.dispatch(g(e))))}})}return(A,e)=>{SI.match(A)&&o(e,"refetchOnFocus"),MI.match(A)&&o(e,"refetchOnReconnect")}})(s);return A=>C=>{if(!a(C))return A(C);o||(o=!0,I.dispatch(g.internalActions.middlewareRegistered(i)));const r={...I,next:A},s=I.getState(),[E,l]=c(C,r,s);let w;if(w=E?A(C):l,I.getState()[e]&&(Q(C,r,s),n(C)||t.hasRehydrationInfo(C)))for(const A of B)A(C,r,s);return w}},actions:o};function r(e){return A.api.endpoints[e.endpointName].initiate(e.originalArgs,{subscribe:!1,forceRefetch:!0})}}var Bg=Symbol(),cg=eg((({createSelector:A=aA}={})=>({name:Bg,init(e,{baseQuery:I,tagTypes:g,reducerPath:t,serializeQueryArgs:i,keepUnusedDataFor:o,refetchOnMountOrArgChange:n,refetchOnFocus:C,refetchOnReconnect:a,invalidationBehavior:r,onSchemaFailure:s,catchSchemaFailure:B,skipSchemaValidation:c},Q){_();const E=A=>A;Object.assign(e,{reducerPath:t,endpoints:{},internalActions:{onOnline:MI,onOffline:FI,onFocus:SI,onFocusLost:kI},util:{}});const w=function({serializeQueryArgs:A,reducerPath:e,createSelector:I}){const g=A=>ZI,t=A=>_I;return{buildQuerySelector:function(A,e){return a(A,e,i)},buildInfiniteQuerySelector:function(A,e){const{infiniteQueryOptions:I}=e;return a(A,e,function(A){const e={...A,...hI(A.status)},{isLoading:g,isError:t,direction:i}=e,o="forward"===i,n="backward"===i;return{...e,hasNextPage:r(I,e.data,e.originalArgs),hasPreviousPage:s(I,e.data,e.originalArgs),isFetchingNextPage:g&&o,isFetchingPreviousPage:g&&n,isFetchNextPageError:t&&o,isFetchPreviousPageError:t&&n}})},buildMutationSelector:function(){return A=>{let e;return e="object"==typeof A?jI(A)??XI:A,I(e===XI?t:A=>o(A)?.mutations?.[e]??_I,i)}},selectInvalidatedBy:function(A,I){const g=A[e],t=new Set;for(const A of I.filter(mI).map(UI)){const e=g.provided.tags[A.type];if(!e)continue;let I=(void 0!==A.id?e[A.id]:DI(Object.values(e)))??[];for(const A of I)t.add(A)}return DI(Array.from(t.values()).map(A=>{const e=g.queries[A];return e?[{queryCacheKey:A,endpointName:e.endpointName,originalArgs:e.originalArgs}]:[]}))},selectCachedArgsForQuery:function(A,e){return Object.values(n(A)).filter(A=>A?.endpointName===e&&"uninitialized"!==A.status).map(A=>A.originalArgs)},selectApiState:o,selectQueries:n,selectMutations:function(A){return o(A)?.mutations},selectQueryEntry:C,selectConfig:function(A){return o(A)?.config}};function i(A){return{...A,...hI(A.status)}}function o(A){return A[e]}function n(A){return o(A)?.queries}function C(A,e){return n(A)?.[e]}function a(e,t,i){return o=>{if(o===XI)return I(g,i);const n=A({queryArgs:o,endpointDefinition:t,endpointName:e});return I(A=>C(A,n)??ZI,i)}}function r(A,e,I){return!!e&&null!=RI(A,e,I)}function s(A,e,I){return!(!e||!A.getPreviousPageParam)&&null!=xI(A,e,I)}}({serializeQueryArgs:i,reducerPath:t,createSelector:A}),{selectInvalidatedBy:d,selectCachedArgsForQuery:h,buildQuerySelector:f,buildInfiniteQuerySelector:u,buildMutationSelector:y}=w;Ig(e.util,{selectInvalidatedBy:d,selectCachedArgsForQuery:h});const{queryThunk:D,infiniteQueryThunk:m,mutationThunk:p,patchQueryData:S,updateQueryData:k,upsertQueryData:M,prefetch:F,buildMatchThunkActions:K}=function({reducerPath:A,baseQuery:e,context:{endpointDefinitions:I},serializeQueryArgs:g,api:t,assertTagType:i,selectors:o,onSchemaFailure:n,catchSchemaFailure:C,skipSchemaValidation:a}){function r(A,e,I=0){const g=[e,...A];return I&&g.length>I?g.slice(0,-1):g}function s(A,e,I=0){const g=[...A,e];return I&&g.length>I?g.slice(1):g}const B=(A,e)=>A.query&&A[e]?A[e]:PI,c=async(A,{signal:g,abort:t,rejectWithValue:i,fulfillWithValue:c,dispatch:E,getState:l,extra:w})=>{const d=I[A.endpointName],{metaSchema:h,skipSchemaValidation:f=a}=d;try{let u=B(d,"transformResponse");const y={signal:g,abort:t,dispatch:E,getState:l,extra:w,endpoint:A.endpointName,type:A.type,forced:"query"===A.type?Q(A,l()):void 0,queryCacheKey:"query"===A.type?A.queryCacheKey:void 0},D="query"===A.type?A[GI]:void 0;let m;const p=async(e,I,g,t)=>{if(null==I&&e.pages.length)return Promise.resolve({data:e});const i={queryArg:A.originalArgs,pageParam:I},o=await S(i),n=t?r:s;return{data:{pages:n(e.pages,o.data,g),pageParams:n(e.pageParams,I,g)},meta:o.meta}};async function S(A){let I;const{extraOptions:g,argSchema:t,rawResponseSchema:i,responseSchema:o}=d;if(t&&!f&&(A=await LI(t,A,"argSchema",{})),I=D?D():d.query?await e(d.query(A),y,g):await d.queryFn(A,y,g,A=>e(A,y,g)),I.error)throw new pI(I.error,I.meta);let{data:n}=I;i&&!f&&(n=await LI(i,I.data,"rawResponseSchema",I.meta));let C=await u(n,I.meta,A);return o&&!f&&(C=await LI(o,C,"responseSchema",I.meta)),{...I,data:C}}if("query"===A.type&&"infiniteQueryOptions"in d){const{infiniteQueryOptions:k}=d,{maxPages:M=1/0}=k;let F;const K={pages:[],pageParams:[]},H=o.selectQueryEntry(l(),A.queryCacheKey)?.data,N=Q(A,l())&&!A.direction||!H?K:H;if("direction"in A&&A.direction&&N.pages.length){const Y="backward"===A.direction,U=(Y?xI:RI)(k,N,A.originalArgs);F=await p(N,U,M,Y)}else{const{initialPageParam:G=k.initialPageParam}=A,v=H?.pageParams??[],b=v[0]??G,L=v.length;F=await p(N,b,M),D&&(F={data:F.data.pages[0]});for(let P=1;P<L;P++){const J=RI(k,F.data,A.originalArgs);F=await p(F.data,J,M)}}m=F}else m=await S(A.originalArgs);return h&&!f&&m.meta&&(m.meta=await LI(h,m.meta,"metaSchema",m.meta)),c(m.data,JI({fulfilledTimeStamp:Date.now(),baseQueryMeta:m.meta}))}catch(R){let x=R;if(x instanceof pI){let q=B(d,"transformErrorResponse");const{rawErrorResponseSchema:O,errorResponseSchema:j}=d;let{value:T,meta:z}=x;try{O&&!f&&(T=await LI(O,T,"rawErrorResponseSchema",z)),h&&!f&&(z=await LI(h,z,"metaSchema",z));let V=await q(T,z,A.originalArgs);return j&&!f&&(V=await LI(j,V,"errorResponseSchema",z)),i(V,JI({baseQueryMeta:z}))}catch(X){x=X}}try{if(x instanceof bI){const W={endpoint:A.endpointName,arg:A.originalArgs,type:A.type,queryCacheKey:"query"===A.type?A.queryCacheKey:void 0};d.onSchemaFailure?.(x,W),n?.(x,W);const{catchSchemaFailure:Z=C}=d;if(Z)return i(Z(x,W),JI({baseQueryMeta:x._bqMeta}))}}catch(_){x=_}throw console.error(x),x}};function Q(A,e){const I=o.selectQueryEntry(e,A.queryCacheKey),g=o.selectConfig(e).refetchOnMountOrArgChange,t=I?.fulfilledTimeStamp,i=A.forceRefetch??(A.subscribe&&g);return!!i&&(!0===i||(Number(new Date)-Number(t))/1e3>=i)}const E=()=>JA(`${A}/executeQuery`,c,{getPendingMeta({arg:A}){const e=I[A.endpointName];return JI({startedTimeStamp:Date.now(),...HI(e)?{direction:A.direction}:{}})},condition(A,{getState:e}){const g=e(),t=o.selectQueryEntry(g,A.queryCacheKey),i=t?.fulfilledTimeStamp,n=A.originalArgs,C=t?.originalArgs,a=I[A.endpointName],r=A.direction;return!(!vI(A)&&("pending"===t?.status||!Q(A,g)&&(!KI(a)||!a?.forceRefetch?.({currentArg:n,previousArg:C,endpointState:t,state:g}))&&i&&!r))},dispatchConditionRejection:!0}),w=E(),d=E(),h=JA(`${A}/executeMutation`,c,{getPendingMeta:()=>JI({startedTimeStamp:Date.now()})});function f(A){return e=>e?.meta?.arg?.endpointName===A}return{queryThunk:w,mutationThunk:h,infiniteQueryThunk:d,prefetch:(A,e,I)=>(g,i)=>{const o=(A=>"force"in A)(I)&&I.force,n=(A=>"ifOlderThan"in A)(I)&&I.ifOlderThan,C=(I=!0)=>{const g={forceRefetch:I,isPrefetch:!0};return t.endpoints[A].initiate(e,g)},a=t.endpoints[A].select(e)(i());if(o)g(C());else if(n){const A=a?.fulfilledTimeStamp;if(!A)return void g(C());(Number(new Date)-Number(new Date(A)))/1e3>=n&&g(C())}else g(C(!1))},updateQueryData:(A,e,I,g=!0)=>(i,o)=>{const n=t.endpoints[A].select(e)(o()),C={patches:[],inversePatches:[],undo:()=>i(t.util.patchQueryData(A,e,C.inversePatches,g))};if("uninitialized"===n.status)return C;let a;if("data"in n)if(l(n.data)){const[A,e,g]=eA(n.data,I);C.patches.push(...e),C.inversePatches.push(...g),a=A}else a=I(n.data),C.patches.push({op:"replace",path:[],value:a}),C.inversePatches.push({op:"replace",path:[],value:n.data});return 0===C.patches.length||i(t.util.patchQueryData(A,e,C.patches,g)),C},upsertQueryData:(A,e,I)=>g=>g(t.endpoints[A].initiate(e,{subscribe:!1,forceRefetch:!0,[GI]:()=>({data:I})})),patchQueryData:(A,e,o,n)=>(C,a)=>{const r=I[A],s=g({queryArgs:e,endpointDefinition:r,endpointName:A});if(C(t.internalActions.queryResultPatched({queryCacheKey:s,patches:o})),!n)return;const B=t.endpoints[A].select(e)(a()),c=YI(r.providesTags,B.data,void 0,e,{},i);C(t.internalActions.updateProvidedBy([{queryCacheKey:s,providedTags:c}]))},buildMatchThunkActions:function(A,e){return{matchPending:SA(FA(A),f(e)),matchFulfilled:SA(NA(A),f(e)),matchRejected:SA(KA(A),f(e))}}}}({baseQuery:I,reducerPath:t,context:Q,api:e,serializeQueryArgs:i,assertTagType:E,selectors:w,onSchemaFailure:s,catchSchemaFailure:B,skipSchemaValidation:c}),{reducer:H,actions:N}=VI({context:Q,queryThunk:D,mutationThunk:p,serializeQueryArgs:i,reducerPath:t,assertTagType:E,config:{refetchOnFocus:C,refetchOnReconnect:a,refetchOnMountOrArgChange:n,keepUnusedDataFor:o,reducerPath:t,invalidationBehavior:r}});Ig(e.util,{patchQueryData:S,updateQueryData:k,upsertQueryData:M,prefetch:F,resetApiState:N.resetApiState,upsertQueryEntries:N.cacheEntriesUpserted}),Ig(e.internalActions,N);const{middleware:Y,actions:U}=sg({reducerPath:t,context:Q,queryThunk:D,mutationThunk:p,infiniteQueryThunk:m,api:e,assertTagType:E,selectors:w});Ig(e.util,U),Ig(e,{reducer:H,middleware:Y});const{buildInitiateQuery:G,buildInitiateInfiniteQuery:v,buildInitiateMutation:b,getRunningMutationThunk:L,getRunningMutationsThunk:P,getRunningQueriesThunk:J,getRunningQueryThunk:R}=function({serializeQueryArgs:A,queryThunk:e,infiniteQueryThunk:I,mutationThunk:g,api:t,context:i}){const o=new Map,n=new Map,{unsubscribeQueryResult:C,removeMutationResult:a,updateSubscriptionOptions:r}=t.internalActions;return{buildInitiateQuery:function(A,e){return s(A,e)},buildInitiateInfiniteQuery:function(A,e){return s(A,e)},buildInitiateMutation:function(A){return(e,{track:I=!0,fixedCacheKey:t}={})=>(i,o)=>{const C=g({type:"mutation",endpointName:A,originalArgs:e,track:I,fixedCacheKey:t}),r=i(C),{requestId:s,abort:B,unwrap:c}=r,Q=(E=A=>({error:A}),r.unwrap().then(A=>({data:A})).catch(E));var E;const l=Object.assign(Q,{arg:r.arg,requestId:s,abort:B,unwrap:c,reset:()=>{i(a({requestId:s,fixedCacheKey:t}))}}),w=n.get(i)||{};return n.set(i,w),w[s]=l,l.then(()=>{delete w[s],yI(w)||n.delete(i)}),t&&(w[t]=l,l.then(()=>{w[t]===l&&(delete w[t],yI(w)||n.delete(i))})),l}},getRunningQueryThunk:function(e,I){return g=>{const t=i.endpointDefinitions[e],n=A({queryArgs:I,endpointDefinition:t,endpointName:e});return o.get(g)?.[n]}},getRunningMutationThunk:function(A,e){return A=>n.get(A)?.[e]},getRunningQueriesThunk:function(){return A=>Object.values(o.get(A)||{}).filter(mI)},getRunningMutationsThunk:function(){return A=>Object.values(n.get(A)||{}).filter(mI)}};function s(g,i){const n=(a,{subscribe:s=!0,forceRefetch:B,subscriptionOptions:c,[GI]:Q,...E}={})=>(l,w)=>{const d=A({queryArgs:a,endpointDefinition:i,endpointName:g});let h;const f={...E,type:"query",subscribe:s,forceRefetch:B,subscriptionOptions:c,endpointName:g,originalArgs:a,queryCacheKey:d,[GI]:Q};if(KI(i))h=e(f);else{const{direction:A,initialPageParam:e}=E;h=I({...f,direction:A,initialPageParam:e})}const u=t.endpoints[g].select(a),y=l(h),D=u(w()),{requestId:m,abort:p}=y,S=D.requestId!==m,k=o.get(l)?.[d],M=()=>u(w()),F=Object.assign(Q?y.then(M):S&&!k?Promise.resolve(D):Promise.all([k,y]).then(M),{arg:a,requestId:m,subscriptionOptions:c,queryCacheKey:d,abort:p,async unwrap(){const A=await F;if(A.isError)throw A.error;return A.data},refetch:()=>l(n(a,{subscribe:!1,forceRefetch:!0})),unsubscribe(){s&&l(C({queryCacheKey:d,requestId:m}))},updateSubscriptionOptions(A){F.subscriptionOptions=A,l(r({endpointName:g,requestId:m,queryCacheKey:d,options:A}))}});if(!k&&!S&&!Q){const A=(H=l,N={},(K=o).has(H)?K.get(H):K.set(H,N).get(H));A[d]=F,F.then(()=>{delete A[d],yI(A)||o.delete(l)})}var K,H,N;return F};return n}}({queryThunk:D,mutationThunk:p,infiniteQueryThunk:m,api:e,serializeQueryArgs:i,context:Q});return Ig(e.util,{getRunningMutationThunk:L,getRunningMutationsThunk:P,getRunningQueryThunk:R,getRunningQueriesThunk:J}),{name:Bg,injectEndpoint(A,I){const g=e,t=g.endpoints[A]??={};KI(I)&&Ig(t,{name:A,select:f(A,I),initiate:G(A,I)},K(D,A)),"mutation"===I.type&&Ig(t,{name:A,select:y(),initiate:b(A)},K(p,A)),HI(I)&&Ig(t,{name:A,select:u(A,I),initiate:v(A,I)},K(D,A))}}}}))());const Qg=new Blob(['const e=(e,t)=>t.some(t=>e instanceof t);let t,a;const n=new WeakMap,o=new WeakMap,r=new WeakMap;let s={get(e,t,a){if(e instanceof IDBTransaction){if("done"===t)return n.get(e);if("store"===t)return a.objectStoreNames[1]?void 0:a.objectStore(a.objectStoreNames[0])}return d(e[t])},set:(e,t,a)=>(e[t]=a,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function i(e){s=e(s)}function c(e){return(a||(a=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(l(this),t),d(this.request)}:function(...t){return d(e.apply(l(this),t))}}function u(a){return"function"==typeof a?c(a):(a instanceof IDBTransaction&&function(e){if(n.has(e))return;const t=new Promise((t,a)=>{const n=()=>{e.removeEventListener("complete",o),e.removeEventListener("error",r),e.removeEventListener("abort",r)},o=()=>{t(),n()},r=()=>{a(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",o),e.addEventListener("error",r),e.addEventListener("abort",r)});n.set(e,t)}(a),e(a,t||(t=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(a,s):a)}function d(e){if(e instanceof IDBRequest)return function(e){const t=new Promise((t,a)=>{const n=()=>{e.removeEventListener("success",o),e.removeEventListener("error",r)},o=()=>{t(d(e.result)),n()},r=()=>{a(e.error),n()};e.addEventListener("success",o),e.addEventListener("error",r)});return r.set(t,e),t}(e);if(o.has(e))return o.get(e);const t=u(e);return t!==e&&(o.set(e,t),r.set(t,e)),t}const l=e=>r.get(e);const w=["get","getKey","getAll","getAllKeys","count"],h=["put","add","delete","clear"],m=new Map;function g(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(m.get(t))return m.get(t);const a=t.replace(/FromIndex$/,""),n=t!==a,o=h.includes(a);if(!(a in(n?IDBIndex:IDBObjectStore).prototype)||!o&&!w.includes(a))return;const r=async function(e,...t){const r=this.transaction(e,o?"readwrite":"readonly");let s=r.store;return n&&(s=s.index(t.shift())),(await Promise.all([s[a](...t),o&&r.done]))[0]};return m.set(t,r),r}i(e=>({...e,get:(t,a,n)=>g(t,a)||e.get(t,a,n),has:(t,a)=>!!g(t,a)||e.has(t,a)}));const k=["continue","continuePrimaryKey","advance"],y={},b=new WeakMap,f=new WeakMap,I={get(e,t){if(!k.includes(t))return e[t];let a=y[t];return a||(a=y[t]=function(...e){b.set(this,f.get(this)[t](...e))}),a}};async function*x(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;const a=new Proxy(t,I);for(f.set(a,t),r.set(a,l(t));t;)yield a,t=await(b.get(a)||t.continue()),b.delete(a)}function p(t,a){return a===Symbol.asyncIterator&&e(t,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===a&&e(t,[IDBIndex,IDBObjectStore])}i(e=>({...e,get:(t,a,n)=>p(t,a)?x:e.get(t,a,n),has:(t,a)=>p(t,a)||e.has(t,a)}));const D=64*Uint8Array.BYTES_PER_ELEMENT,B="p2party";async function S(){return function(e,t,{blocked:a,upgrade:n,blocking:o,terminated:r}={}){const s=indexedDB.open(e,t),i=d(s);return n&&s.addEventListener("upgradeneeded",e=>{n(d(s.result),e.oldVersion,e.newVersion,d(s.transaction),e)}),a&&s.addEventListener("blocked",e=>a(e.oldVersion,e.newVersion,e)),i.then(e=>{r&&e.addEventListener("close",()=>r()),o&&e.addEventListener("versionchange",e=>o(e.oldVersion,e.newVersion,e))}).catch(()=>{}),i}(B,16,{upgrade(e,t,a,n){if(e.objectStoreNames.contains("addressBook")){const e=n.objectStore("addressBook");e.indexNames.contains("username")||e.createIndex("username","username",{unique:!1}),e.indexNames.contains("peerId")||e.createIndex("peerId","peerId",{unique:!0}),e.indexNames.contains("peerPublicKey")||e.createIndex("peerPublicKey","peerPublicKey",{unique:!0})}else{const t=e.createObjectStore("addressBook",{keyPath:["peerId"]});t.createIndex("username","username",{unique:!1}),t.createIndex("peerId","peerId",{unique:!0}),t.createIndex("peerPublicKey","peerPublicKey",{unique:!0})}if(e.objectStoreNames.contains("blacklist")){const e=n.objectStore("blacklist");e.indexNames.contains("username")||e.createIndex("username","username",{unique:!1}),e.indexNames.contains("peerId")||e.createIndex("peerId","peerId",{unique:!0}),e.indexNames.contains("peerPublicKey")||e.createIndex("peerPublicKey","peerPublicKey",{unique:!0})}else{const t=e.createObjectStore("blacklist",{keyPath:["peerId"]});t.createIndex("username","username",{unique:!1}),t.createIndex("peerId","peerId",{unique:!0}),t.createIndex("peerPublicKey","peerPublicKey",{unique:!0})}if(e.objectStoreNames.contains("uniqueRoom")){const e=n.objectStore("uniqueRoom");e.indexNames.contains("roomUrl")||e.createIndex("roomUrl","roomUrl",{unique:!0}),e.indexNames.contains("roomId")||e.createIndex("roomId","roomId",{unique:!0})}else{const t=e.createObjectStore("uniqueRoom",{keyPath:["roomId"]});t.createIndex("roomUrl","roomUrl",{unique:!0}),t.createIndex("roomId","roomId",{unique:!0})}if(e.objectStoreNames.contains("messageData")){const e=n.objectStore("messageData");e.indexNames.contains("roomId")||e.createIndex("roomId","roomId",{unique:!1}),e.indexNames.contains("hash")||e.createIndex("hash","hash",{unique:!1}),e.indexNames.contains("merkleRoot")||e.createIndex("merkleRoot","merkleRoot",{unique:!0}),e.indexNames.contains("fromPeerId")||e.createIndex("fromPeerId","fromPeerId",{unique:!1})}else{const t=e.createObjectStore("messageData",{keyPath:["timestamp","roomId","merkleRoot"]});t.createIndex("roomId","roomId",{unique:!1}),t.createIndex("hash","hash",{unique:!1}),t.createIndex("merkleRoot","merkleRoot",{unique:!0}),t.createIndex("fromPeerId","fromPeerId",{unique:!1})}if(e.objectStoreNames.contains("chunks")){const e=n.objectStore("chunks");e.indexNames.contains("merkleRoot")||e.createIndex("merkleRoot","merkleRoot",{unique:!1}),e.indexNames.contains("hash")||e.createIndex("hash","hash",{unique:!1})}else{const t=e.createObjectStore("chunks",{keyPath:["merkleRoot","chunkIndex"]});t.createIndex("merkleRoot","merkleRoot",{unique:!1}),t.createIndex("hash","hash",{unique:!1})}if(e.objectStoreNames.contains("newChunks")){const e=n.objectStore("newChunks");e.indexNames.contains("hash")||e.createIndex("hash","hash",{unique:!1}),e.indexNames.contains("merkleRoot")||e.createIndex("merkleRoot","merkleRoot",{unique:!1}),e.indexNames.contains("realChunkHash")||e.createIndex("realChunkHash","realChunkHash",{unique:!0})}else{const t=e.createObjectStore("newChunks",{keyPath:["hash","chunkIndex"]});t.createIndex("hash","hash",{unique:!1}),t.createIndex("merkleRoot","merkleRoot",{unique:!1}),t.createIndex("realChunkHash","realChunkHash",{unique:!0})}if(e.objectStoreNames.contains("sendQueue")){const e=n.objectStore("sendQueue");e.indexNames.contains("labelPeer")||e.createIndex("labelPeer",["label","toPeerId"],{unique:!1})}else{e.createObjectStore("sendQueue",{keyPath:["position","label","toPeerId"]}).createIndex("labelPeer",["label","toPeerId"],{unique:!1})}}})}async function R(){await function(e,{blocked:t}={}){const a=indexedDB.deleteDatabase(e);return t&&a.addEventListener("blocked",e=>t(e.oldVersion,e)),d(a).then(()=>{})}(B,{blocked(){console.error("DB deletion BLOCKED")}})}onmessage=async e=>{const t=e.data,{id:a,method:n}=t;try{let e;switch(n){case"getDBAddressBookEntry":e=await async function(e,t){if(!e&&!t)return;if(e&&e.length<10&&!t)return;if(t&&64!==t.length&&!e)return;const a=await S();try{const n=a.transaction("addressBook","readonly"),o=e?n.objectStore("addressBook").index("peerId"):n.objectStore("addressBook").index("peerPublicKey"),r=e?await o.get(e):await o.get(t);return await n.done,a.close(),r?{username:r.username,peerId:r.peerId,peerPublicKey:r.peerPublicKey}:void 0}catch(e){return void a.close()}}(...t.args);break;case"getAllDBAddressBookEntries":e=await async function(){try{const e=await S(),t=await e.getAll("addressBook");return e.close(),t}catch(e){return[]}}(...t.args);break;case"setDBAddressBookEntry":e=await async function(e,t,a){try{const n=await S(),o=n.transaction(["addressBook"],"readwrite"),r=o.objectStore("addressBook"),s=r.index("peerId"),i=r.index("peerPublicKey"),c=await s.get(t),u=await i.get(a);(!c&&!u||c&&!u||!c&&u)&&await r.put({username:e,peerId:t,peerPublicKey:a,dateAdded:Date.now()}),await o.done,n.close()}catch(e){console.error(e)}}(...t.args);break;case"deleteDBAddressBookEntry":e=await async function(e,t,a){const n=!e||0===e.length,o=!t||t.length<10,r=!a||64!==a.length;if(n&&o&&r)throw new Error("Cannot delete address book with no data");let s=t??"";try{const n=await S(),i=n.transaction("addressBook","readwrite"),c=i.objectStore("addressBook");if(o)if(r){const t=c.index("username"),a=await t.getKey(e);if(a){const n=await t.get(e);s=n?.peerId??"",await c.delete(a)}}else{const e=c.index("peerPublicKey"),t=await e.getKey(a);if(t){const n=await e.get(a);s=n?.peerId??"",await c.delete(t)}}else{const e=c.index("peerId"),a=await e.getKey(t);a&&await c.delete(a)}await i.done,n.close()}catch{}return s}(...t.args);break;case"getDBPeerIsBlacklisted":e=await async function(e,t){if(!e&&!t)return!1;if(e&&e.length<10&&!t)return!1;if(t&&64!==t.length&&!e)return!1;try{const a=await S(),n=a.transaction("blacklist","readonly"),o=e?n.objectStore("blacklist").index("peerId"):n.objectStore("blacklist").index("peerPublicKey"),r=e?await o.get(e):await o.get(t);return await n.done,a.close(),!!r}catch(e){return!1}}(...t.args);break;case"getAllDBBlacklisted":e=await async function(){const e=await S();try{const t=await e.getAll("blacklist");return e.close(),t}catch(t){return e.close(),[]}}(...t.args);break;case"setDBPeerInBlacklist":e=await async function(e,t){try{const a=await S(),n=a.transaction(["blacklist"],"readwrite"),o=n.objectStore("blacklist"),r=o.index("peerId"),s=o.index("peerPublicKey"),i=await r.get(e),c=await s.get(t);(!i&&!c||i&&!c||!i&&c)&&await o.put({peerId:e,peerPublicKey:t,dateAdded:Date.now()}),await n.done,a.close()}catch(e){console.error(e)}}(...t.args);break;case"deleteDBPeerFromBlacklist":e=await async function(e,t){const a=!e||e.length<10,n=!t||64!==t.length;if(a&&n)throw new Error("Cannot delete blacklisted with no data");try{const n=await S(),o=n.transaction("blacklist","readwrite"),r=o.objectStore("blacklist");if(a){const e=r.index("peerPublicKey"),a=await e.getKey(t);a&&await r.delete(a)}else{const t=r.index("peerId"),a=await t.getKey(e);a&&await r.delete(a)}await o.done,n.close()}catch(e){console.error(e)}}(...t.args);break;case"getAllDBUniqueRooms":e=await async function(){const e=await S();try{const t=await e.getAll("uniqueRoom");return e.close(),t}catch(t){return e.close(),[]}}(...t.args);break;case"setDBUniqueRoom":e=await async function(e,t){try{const a=await S(),n=a.transaction(["uniqueRoom"],"readwrite"),o=n.objectStore("uniqueRoom"),r=o.index("roomUrl"),s=o.index("roomId"),i=await r.get(e),c=await s.get(t);if(!i&&!c){const a=Date.now();await o.put({roomId:t,roomUrl:e,messageCount:0,lastMessageMerkleRoot:"",createdAt:a,updatedAt:a})}await n.done,a.close()}catch(e){console.error(e)}}(...t.args);break;case"getDBMessageData":e=await async function(e,t){try{const a=await S(),n=a.transaction(["messageData"],"readonly"),o=n.objectStore("messageData"),r=o.index("merkleRoot"),s=o.index("hash");if(e&&e.length===2*D){const o=await r.get(e);if(o)return await n.done,a.close(),o;if(t&&t.length===2*D){const e=await s.get(t);return await n.done,a.close(),e}return await n.done,void a.close()}if(t&&t.length===2*D){const e=await s.get(t);return await n.done,a.close(),e}return await n.done,void a.close()}catch(e){return void console.error(e)}}(...t.args);break;case"getDBRoomMessageData":e=await async function(e){const t=await S(),a=await t.getAllFromIndex("messageData","roomId",e);t.close();const n=a.length,o=[];for(let t=0;t<n;t++)o.push({roomId:e,merkleRoot:a[t].merkleRoot,hash:a[t].hash,fromPeerId:a[t].fromPeerId,filename:a[t].filename,messageType:a[t].messageType,savedSize:a[t].savedSize,totalSize:a[t].totalSize,channelLabel:a[t].channelLabel,timestamp:a[t].timestamp});return o}(...t.args);break;case"setDBRoomMessageData":e=await async function(e,t,a,n,o,r,s,i,c,u){try{const d=await S(),l=d.transaction(["messageData","uniqueRoom"],"readwrite"),w=l.objectStore("messageData"),h=await w.index("merkleRoot").get(t),m=h?.savedSize??0;try{await w.put({roomId:e,timestamp:u,merkleRoot:t,hash:a,fromPeerId:n,filename:i,messageType:s,savedSize:m!==r?o+m:o,totalSize:r,channelLabel:c})}catch(e){throw await l.done,d.close(),e}const g=l.objectStore("uniqueRoom"),k=await g.index("roomId").get(e);if(k&&k.lastMessageMerkleRoot!==t)try{await g.put({...k,lastMessageMerkleRoot:t,messageCount:k.messageCount+1,updatedAt:Date.now()})}catch(e){throw await l.done,d.close(),e}await l.done,d.close()}catch(e){throw console.error(e),e}}(...t.args);break;case"getDBChunk":e=await async function(e,t){const a=await S(),n=await a.get("chunks",[e,t]);return a.close(),n?.data}(...t.args);break;case"existsDBChunk":e=await async function(e,t){const a=await S(),n=await a.count("chunks",[e,t]);return a.close(),n>0}(...t.args);break;case"getDBNewChunk":e=await async function(e,t){try{const a=await S(),n=t??-1;if(n>-1){const t=await a.get("newChunks",[e,n]);return a.close(),t}{const t=a.transaction("newChunks"),n=t.objectStore("newChunks").index("realChunkHash"),o=await n.get(e);return await t.done,a.close(),o}}catch(e){return void console.error(e)}}(...t.args);break;case"existsDBNewChunk":e=await async function(e,t){const a=await S(),n=await a.count("newChunks",[e,t]);return a.close(),n>0}(...t.args);break;case"getDBSendQueue":e=await async function(e,t,a){const n=await S();if(a){const o=await n.get("sendQueue",[a,e,t]);return n.close(),o?[o]:[]}const o=n.transaction("sendQueue","readonly").objectStore("sendQueue").index("labelPeer"),r=IDBKeyRange.only([e,t]),s=await o.getAll(r);return n.close(),s}(...t.args);break;case"getDBAllChunks":e=await async function(e,t){try{const a=await S(),n=a.transaction("chunks","readonly"),o=n.objectStore("chunks"),r=o.index("hash"),s=o.index("merkleRoot");if(e&&e.length===2*D){const t=await s.getAll(e);return 0===t.length?(await n.done,a.close(),[]):(await n.done,a.close(),t)}if(t&&t.length===2*D){const e=await r.getAll(t);return await n.done,a.close(),e}return await n.done,a.close(),[]}catch(e){return console.error(e),[]}}(...t.args);break;case"getDBAllChunksCount":e=await async function(e,t){try{const a=await S(),n=a.transaction(["chunks"],"readonly"),o=n.objectStore("chunks"),r=o.index("hash"),s=o.index("merkleRoot");if(t&&t.length===2*D){const o=await r.count(t);if(0===o){if(e&&e.length===2*D){const t=await s.count(e);return await n.done,a.close(),t}return await n.done,a.close(),0}return await n.done,a.close(),o}if(e&&e.length===2*D){const t=await s.count(e);return await n.done,a.close(),t}return await n.done,a.close(),0}catch(e){return 0}}(...t.args);break;case"setDBChunk":e=await async function(e){const t=await S();await t.add("chunks",e),t.close()}(...t.args);break;case"getDBAllNewChunks":e=await async function(e,t){if(!e&&!t)return[];if(e?.length!==2*D&&t?.length!==2*D)return[];const a=await S();if((e?await a.countFromIndex("newChunks","hash",e):await a.countFromIndex("newChunks","merkleRoot",t))>0){const n=e?await a.getAllFromIndex("newChunks","hash",e):await a.getAllFromIndex("newChunks","merkleRoot",t);return a.close(),n}{const n=a.transaction("newChunks","readonly").objectStore("newChunks"),o=e?n.index("hash"):n.index("merkleRoot"),r=e?IDBKeyRange.only(e):IDBKeyRange.only(t),s=await o.getAll(r);return a.close(),s}}(...t.args);break;case"getDBAllNewChunksCount":e=await async function(e){const t=await S(),a=await t.countFromIndex("newChunks","hash",e);return t.close(),a}(...t.args);break;case"setDBNewChunk":e=await async function(e){const t=await S();await t.put("newChunks",e),t.close()}(...t.args);break;case"setDBSendQueue":e=await async function(e){const t=await S();await t.put("sendQueue",e),t.close()}(...t.args);break;case"countDBSendQueue":e=await async function(e,t){const a=await S(),n=a.transaction("sendQueue","readonly").objectStore("sendQueue").index("labelPeer"),o=IDBKeyRange.only([e,t]),r=await n.count(o);return a.close(),r}(...t.args);break;case"deleteDBChunk":e=await async function(e,t){try{const a=await S(),n=a.transaction("chunks","readwrite"),o=n.objectStore("chunks");if(t){const a=IDBKeyRange.only([e,t]);await o.delete(a)}else{const t=o.index("hash"),a=await t.getAllKeys(e),n=a.length;if(0===n){const t=o.index("merkleRoot"),a=await t.getAllKeys(e),n=a.length;for(let e=0;e<n;e++)await o.delete(a[e])}else for(let e=0;e<n;e++)await o.delete(a[e])}await n.done,a.close()}catch(e){}}(...t.args);break;case"deleteDBNewChunk":e=await async function(e,t,a,n){try{const o=await S(),r=o.transaction("newChunks","readwrite"),s=r.objectStore("newChunks");if(e){const t=s.index("merkleRoot"),a=await t.getAllKeys(e),n=a.length;for(let e=0;e<n;e++)await s.delete(a[e])}else if(a&&n)await s.delete([a,n]);else if(a){const e=s.index("hash"),t=await e.getAllKeys(a),n=t.length;for(let e=0;e<n;e++)await s.delete(t[e])}else if(t){const e=s.index("realChunkHash"),a=await e.getKey(t);a&&await s.delete(a)}await r.done,o.close()}catch(e){console.error(e)}}(...t.args);break;case"deleteDBMessageData":e=await async function(e){try{const t=await S(),a=t.transaction(["messageData","uniqueRoom"],"readwrite"),n=a.objectStore("messageData"),o=a.objectStore("uniqueRoom"),r=n.index("merkleRoot"),s=await r.getAllKeys(e),i=s.length;let c="";for(let e=0;e<i;e++){if(0===e||0===c.length){const t=await n.get(s[e]);c=t?.roomId??""}await n.delete(s[e])}if(c.length>0){const e=o.index("roomId"),t=await e.get(c);if(t){const e=n.index("roomId"),a=await e.getAllKeys(c),r=a.length,s=r>0?await n.get(a[r-1]):void 0;await o.put({...t,messageCount:t.messageCount>0?t.messageCount-1:0,updatedAt:s?.timestamp??Date.now(),lastMessageMerkleRoot:s?.merkleRoot??""})}}await a.done,t.close()}catch(e){}}(...t.args);break;case"deleteDBUniqueRoom":e=await async function(e){try{const t=await S(),a=t.transaction("uniqueRoom","readwrite"),n=a.objectStore("uniqueRoom"),o=n.index("roomId"),r=await o.getKey(e);r&&await n.delete(r),await a.done,t.close()}catch(e){}}(...t.args);break;case"deleteDBSendQueue":e=await async function(e,t,a){try{const n=await S();if(a)await n.delete("sendQueue",[a,e,t]);else{const a=IDBKeyRange.only([e,t]);await n.delete("sendQueue",a)}n.close()}catch(e){}}(...t.args);break;case"deleteDB":e=await R();break;default:return void postMessage({id:a,error:"Method not found"})}postMessage({id:a,result:e})}catch(e){postMessage({id:a,error:String(e)})}};\n//# sourceMappingURL=db.worker.js.map\n'],{type:"application/javascript"}),Eg=new Worker(URL.createObjectURL(Qg),{type:"module"});let lg=0;const wg=new Map;function dg(A,...e){return new Promise((I,g)=>{const t=++lg;wg.set(t,{resolve:I,reject:g}),Eg.postMessage({id:t,method:A,args:e})})}Eg.onmessage=A=>{const{id:e,result:I,error:g}=A.data,t=wg.get(e);t&&(wg.delete(e),g?t.reject(g):t.resolve(I))};const hg=(A,e)=>dg("getDBAddressBookEntry",A,e),fg=(A,e)=>dg("getDBPeerIsBlacklisted",A,e),ug=()=>dg("getAllDBUniqueRooms"),yg=(A,e)=>dg("getDBMessageData",A,e),Dg=A=>dg("getDBRoomMessageData",A),mg=(A,e,I,g,t,i,o,n,C,a)=>dg("setDBRoomMessageData",A,e,I,g,t,i,o,n,C,a),pg=(A,e)=>dg("getDBNewChunk",A,e),Sg=(A,e)=>dg("getDBSendQueue",A,e),kg=(A,e)=>dg("getDBAllChunks",A,e),Mg=A=>dg("setDBChunk",A),Fg=A=>dg("setDBNewChunk",A),Kg=A=>dg("setDBSendQueue",A),Hg=(A,e)=>dg("deleteDBChunk",A,e),Ng=(A,e,I,g)=>dg("deleteDBNewChunk",A,e,I,g),Yg=(A,e,I)=>dg("deleteDBSendQueue",A,e,I),Ug={Text:1,ImagePNG:2,ImageJPEG:3,ImageJPG:4,ImageGIF:5,ImageBMP:6,ImageTIFF:7,ImageSVG:8,ImageWEBP:9,ImageHEIC:10,DocumentPDF:11,DocumentDOC:12,DocumentDOCX:13,DocumentXLS:14,DocumentXLSX:15,DocumentPPT:16,DocumentPPTX:17,DocumentTXT:18,DocumentRTF:19,DocumentODT:20,AudioMP3:21,AudioWAV:22,AudioAAC:23,AudioFLAC:24,AudioOGG:25,AudioM4A:26,VideoMP4:27,VideoAVI:28,VideoMKV:29,VideoMOV:30,VideoWMV:31,VideoFLV:32,VideoWEBM:33,CompressedZIP:34,CompressedRAR:35,Compressed7Z:36,CompressedTAR:37,CompressedGZ:38,CodeHTML:39,CodeCSS:40,CodeJS:41,CodeJSX:42,CodeTS:43,CodeTSX:44,CodeJSON:45,CodeXML:46,CodePY:47,CodeJAVA:48,CodeC:49,CodeCPP:50,CodeCS:51,CodeRB:52,CodePHP:53,CodeSQL:54,EbookEPUB:55,EbookMOBI:56,EbookAZW:57,FontTTF:58,FontOTF:59,ImageICO:60,ExecutableEXE:61,ExecutableDMG:62,ExecutableAPK:63,Unknown:64},Gg={Text:"Text",Image:"Image",Document:"Document",Audio:"Audio",Video:"Video",Compressed:"Compressed",Code:"Code",Ebook:"Ebook",Font:"Font",Executable:"Executable",Unknown:"Unknown"},vg=A=>{switch(A){case Ug.ImagePNG:return"png";case Ug.ImageJPEG:return"jpeg";case Ug.ImageJPG:return"jpg";case Ug.ImageGIF:return"gif";case Ug.ImageBMP:return"bmp";case Ug.ImageTIFF:return"tiff";case Ug.ImageSVG:return"svg";case Ug.ImageWEBP:return"webp";case Ug.ImageHEIC:return"heic";case Ug.DocumentPDF:return"pdf";case Ug.DocumentDOC:return"doc";case Ug.DocumentDOCX:return"docx";case Ug.DocumentXLS:return"xls";case Ug.DocumentXLSX:return"xlsx";case Ug.DocumentPPT:return"ppt";case Ug.DocumentPPTX:return"pptx";case Ug.DocumentTXT:return"txt";case Ug.DocumentRTF:return"rtf";case Ug.DocumentODT:return"odt";case Ug.AudioMP3:return"mp3";case Ug.AudioWAV:return"wav";case Ug.AudioAAC:return"aac";case Ug.AudioFLAC:return"flac";case Ug.AudioOGG:return"ogg";case Ug.AudioM4A:return"m4a";case Ug.VideoMP4:return"mp4";case Ug.VideoAVI:return"avi";case Ug.VideoMKV:return"mkv";case Ug.VideoMOV:return"mov";case Ug.VideoWMV:return"wmv";case Ug.VideoFLV:return"flv";case Ug.VideoWEBM:return"webm";case Ug.CompressedZIP:return"zip";case Ug.CompressedRAR:return"rar";case Ug.Compressed7Z:return"7z";case Ug.CompressedTAR:return"tar";case Ug.CompressedGZ:return"gz";case Ug.CodeHTML:return"html";case Ug.CodeCSS:return"css";case Ug.CodeJS:return"js";case Ug.CodeTS:return"ts";case Ug.CodeJSX:return"jsx";case Ug.CodeTSX:return"tsx";case Ug.CodeJSON:return"json";case Ug.CodeXML:return"xml";case Ug.CodePY:return"py";case Ug.CodeJAVA:return"java";case Ug.CodeC:return"c";case Ug.CodeCPP:return"cpp";case Ug.CodeCS:return"cs";case Ug.CodeRB:return"rb";case Ug.CodePHP:return"php";case Ug.CodeSQL:return"sql";case Ug.EbookEPUB:return"epub";case Ug.EbookMOBI:return"mobi";case Ug.EbookAZW:return"azw";case Ug.FontTTF:return"ttf";case Ug.FontOTF:return"otf";case Ug.ImageICO:return"ico";case Ug.ExecutableEXE:return"exe";case Ug.ExecutableDMG:return"dmg";case Ug.ExecutableAPK:return"apk";default:return""}},bg=A=>{switch(A){case Ug.Text:return"text/plain";case Ug.ImagePNG:return"image/png";case Ug.ImageJPEG:case Ug.ImageJPG:return"image/jpeg";case Ug.ImageGIF:return"image/gif";case Ug.ImageBMP:return"image/bmp";case Ug.ImageTIFF:return"image/tiff";case Ug.ImageSVG:return"image/svg+xml";case Ug.ImageWEBP:return"image/webp";case Ug.ImageHEIC:return"image/heic";case Ug.ImageICO:return"image/vnd.microsoft.icon";case Ug.DocumentPDF:return"application/pdf";case Ug.DocumentDOC:return"application/msword";case Ug.DocumentDOCX:return"application/vnd.openxmlformats-officedocument.wordprocessingml.document";case Ug.DocumentXLS:return"application/vnd.ms-excel";case Ug.DocumentXLSX:return"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";case Ug.DocumentPPT:return"application/vnd.ms-powerpoint";case Ug.DocumentPPTX:return"application/vnd.openxmlformats-officedocument.presentationml.presentation";case Ug.DocumentTXT:return"text/plain";case Ug.DocumentRTF:return"application/rtf";case Ug.DocumentODT:return"application/vnd.oasis.opendocument.text";case Ug.AudioMP3:return"audio/mpeg";case Ug.AudioWAV:return"audio/wav";case Ug.AudioAAC:return"audio/aac";case Ug.AudioFLAC:return"audio/flac";case Ug.AudioOGG:return"audio/ogg";case Ug.AudioM4A:return"audio/mp4";case Ug.VideoMP4:return"video/mp4";case Ug.VideoAVI:return"video/x-msvideo";case Ug.VideoMKV:return"video/x-matroska";case Ug.VideoMOV:return"video/quicktime";case Ug.VideoWMV:return"video/x-ms-wmv";case Ug.VideoFLV:return"video/x-flv";case Ug.VideoWEBM:return"video/webm";case Ug.CompressedZIP:return"application/zip";case Ug.CompressedRAR:return"application/vnd.rar";case Ug.Compressed7Z:return"application/x-7z-compressed";case Ug.CompressedTAR:return"application/x-tar";case Ug.CompressedGZ:return"application/gzip";case Ug.CodeHTML:return"text/html";case Ug.CodeCSS:return"text/css";case Ug.CodeJS:case Ug.CodeJSX:return"application/javascript";case Ug.CodeTS:case Ug.CodeTSX:return"application/typescript";case Ug.CodeJSON:return"application/json";case Ug.CodeXML:return"application/xml";case Ug.CodePY:return"text/x-python";case Ug.CodeJAVA:return"text/x-java-source";case Ug.CodeC:return"text/x-c";case Ug.CodeCPP:return"text/x-c++";case Ug.CodeCS:return"text/plain";case Ug.CodeRB:return"text/x-ruby";case Ug.CodePHP:return"application/x-httpd-php";case Ug.CodeSQL:return"application/sql";case Ug.EbookEPUB:return"application/epub+zip";case Ug.EbookMOBI:return"application/x-mobipocket-ebook";case Ug.EbookAZW:return"application/vnd.amazon.ebook";case Ug.FontTTF:return"font/ttf";case Ug.FontOTF:return"font/otf";case Ug.ExecutableEXE:return"application/vnd.microsoft.portable-executable";case Ug.ExecutableDMG:return"application/x-apple-diskimage";case Ug.ExecutableAPK:return"application/vnd.android.package-archive";default:return"application/octet-stream"}},Lg=A=>{switch(A){case Ug.Text:return Gg.Text;case Ug.ImagePNG:case Ug.ImageJPEG:case Ug.ImageJPG:case Ug.ImageGIF:case Ug.ImageBMP:case Ug.ImageTIFF:case Ug.ImageSVG:case Ug.ImageWEBP:case Ug.ImageHEIC:case Ug.ImageICO:return Gg.Image;case Ug.DocumentPDF:case Ug.DocumentDOC:case Ug.DocumentDOCX:case Ug.DocumentXLS:case Ug.DocumentXLSX:case Ug.DocumentPPT:case Ug.DocumentPPTX:case Ug.DocumentTXT:case Ug.DocumentRTF:case Ug.DocumentODT:return Gg.Document;case Ug.AudioMP3:case Ug.AudioWAV:case Ug.AudioAAC:case Ug.AudioFLAC:case Ug.AudioOGG:case Ug.AudioM4A:return Gg.Audio;case Ug.VideoMP4:case Ug.VideoAVI:case Ug.VideoMKV:case Ug.VideoMOV:case Ug.VideoWMV:case Ug.VideoFLV:case Ug.VideoWEBM:return Gg.Video;case Ug.CompressedZIP:case Ug.CompressedRAR:case Ug.Compressed7Z:case Ug.CompressedTAR:case Ug.CompressedGZ:return Gg.Compressed;case Ug.CodeHTML:case Ug.CodeCSS:case Ug.CodeJS:case Ug.CodeJSX:case Ug.CodeTS:case Ug.CodeTSX:case Ug.CodeJSON:case Ug.CodeXML:case Ug.CodePY:case Ug.CodeJAVA:case Ug.CodeC:case Ug.CodeCPP:case Ug.CodeCS:case Ug.CodeRB:case Ug.CodePHP:case Ug.CodeSQL:return Gg.Code;case Ug.EbookEPUB:case Ug.EbookMOBI:case Ug.EbookAZW:return Gg.Ebook;case Ug.FontTTF:case Ug.FontOTF:return Gg.Font;case Ug.ExecutableEXE:case Ug.ExecutableDMG:case Ug.ExecutableAPK:return Gg.Executable;default:return Gg.Unknown}},Pg=A=>new Promise(e=>{let I=0;const g=new Uint8Array(A.reduce((A,e)=>A+e.length,0));for(const e of A)g.set(e,I),I+=e.length;e(g)}),Jg=A=>[...A].map(A=>A.toString(16).toLocaleLowerCase().padStart(2,"0")).join(""),Rg=A=>{(A=A.replace(/^0x/,"")).length%2!=0&&(A="0"+A);const e=/[G-Z\s]/i.exec(A);if(e)throw new Error(`Found non-hex characters ${e[0]}`);const I=A.match(/[\dA-F]{2}/gi);if(!I)throw new Error("No hex characters in string");const g=I.map(A=>parseInt(A,16));return new Uint8Array(g)},xg=9+Le+8+8+256+8+8+8,qg=A=>{const e=new Uint8Array(xg);let I=0;new DataView(e.buffer,I,8).setBigUint64(0,BigInt(A.schemaVersion),!1),I+=8,e[I]=A.messageType,I+=1,e.set(A.hash,I),I+=Le;new DataView(e.buffer,I,8).setBigUint64(0,BigInt(A.totalSize),!1),I+=8;new DataView(e.buffer,I,8).setBigInt64(0,BigInt(A.date.getTime()),!1),I+=8;const g=(new TextEncoder).encode(A.name),t=new Uint8Array(256);t.set(g.subarray(0,Math.min(256,g.length))),e.set(t,I),I+=256;new DataView(e.buffer,I,8).setBigUint64(0,BigInt(A.chunkStartIndex),!1),I+=8;new DataView(e.buffer,I,8).setBigUint64(0,BigInt(A.chunkEndIndex),!1),I+=8;return new DataView(e.buffer,I,8).setBigUint64(0,BigInt(A.chunkIndex),!1),I+=8,e},Og=A=>{if(A.length!==xg)throw new Error("Invalid metadata buffer totalSize");let e=0;const I=new DataView(A.buffer,A.byteOffset+e,8),g=Number(I.getBigUint64(0,!1));e+=8;const t=A[e];e+=1;const i=A.slice(e,e+Le);e+=Le;const o=new DataView(A.buffer,A.byteOffset+e,8),n=Number(o.getBigUint64(0,!1));e+=8;const C=new DataView(A.buffer,A.byteOffset+e,8),a=Number(C.getBigUint64(0,!1)),r=new Date(a);e+=8;const s=A.slice(e,e+256),B=(new TextDecoder).decode(s).replace(/\0+$/,"");e+=256;const c=new DataView(A.buffer,A.byteOffset+e,8),Q=Number(c.getBigUint64(0,!1));e+=8;const E=new DataView(A.buffer,A.byteOffset+e,8),l=Number(E.getBigUint64(0,!1));e+=8;const w=new DataView(A.buffer,A.byteOffset+e,8);return{schemaVersion:g,messageType:t,hash:i,totalSize:n,date:r,name:B,chunkStartIndex:Q,chunkEndIndex:l,chunkIndex:Number(w.getBigUint64(0,!1))}},jg=(A,e,I)=>{e=e??32,I=I??81920;const g=65536,t=Math.ceil(A/g);if(t>I)throw new Error(`Memory required is ${String(t*g)} bytes while declared maximum is ${String(I*g)} bytes`);return t<e?e:t};var Tg=()=>{const A=(Re+xe)*Uint8Array.BYTES_PER_ELEMENT,e=jg(A);return new WebAssembly.Memory({initial:e,maximum:e})},zg=()=>{const A=(Re+xe+Je)*Uint8Array.BYTES_PER_ELEMENT,e=jg(A);return new WebAssembly.Memory({initial:e,maximum:e})},Vg=A=>{const e=(A+Pe+xe+Le)*Uint8Array.BYTES_PER_ELEMENT,I=jg(e);return new WebAssembly.Memory({initial:I,maximum:I})},Xg=A=>{const e=(A+Pe+Re)*Uint8Array.BYTES_PER_ELEMENT,I=jg(e);return new WebAssembly.Memory({initial:I,maximum:I})},Wg=(A,e)=>{const I=Xe(A),g=(A+Re+e+I+ze+1*(A+qe)+2*Oe+2*je+Te)*Uint8Array.BYTES_PER_ELEMENT,t=jg(g);return new WebAssembly.Memory({initial:t,maximum:t})},Zg=(A,e)=>{const I=We(A),g=(A+xe+e+I+2*Oe+Te+je)*Uint8Array.BYTES_PER_ELEMENT,t=jg(g);return new WebAssembly.Memory({initial:t,maximum:t})},_g=A=>{const e=jg((2*A+3)*Le);return new WebAssembly.Memory({initial:e,maximum:e})},$g=A=>{const e=jg(A*Le+A*(Le+1)+3*Le);return new WebAssembly.Memory({initial:e,maximum:e})},At=A=>{const e=A*Uint8Array.BYTES_PER_ELEMENT+4*Le,I=jg(e);return new WebAssembly.Memory({initial:I,maximum:I})},et=A=>{const e=(78643200+A+Je+Ve)*Uint8Array.BYTES_PER_ELEMENT,I=jg(e);return new WebAssembly.Memory({initial:I,maximum:I})};function It(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var gt={exports:{}};!function(A){async function e(A={}){var e,I=A,g=[],t=(A,e)=>{throw e};e=self.location.href;var i,o,n="";try{n=new URL(".",e).href}catch{}o=A=>{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)},i=async A=>{var e=await fetch(A,{credentials:"same-origin"});if(e.ok)return e.arrayBuffer();throw new Error(e.status+" : "+e.url)},console.log.bind(console);var C,a,r,s,B,c=console.error.bind(console),Q=[],E=!1,l=!1;function w(){var A=s.buffer;B=new Uint8Array(A),new BigInt64Array(A),new BigUint64Array(A)}var d=[];var h,f=0,u=null;function y(A){f++}function D(A){if(0==--f&&u){var e=u;u=null,e()}}function m(A){c(A="Aborted("+A+")"),E=!0,A+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(A);throw r?.(e),e}async function p(A){return function(A){if(ArrayBuffer.isView(A))return A;if(o)return o(A);throw"both async and sync fetching of the wasm failed"}(A)}async function S(A,e,I){return async function(A,e){try{var I=await p(A);return await WebAssembly.instantiate(I,e)}catch(A){c(`failed to asynchronously prepare wasm: ${A}`),m(A)}}(e,I)}class k{name="ExitStatus";constructor(A){this.message=`Program terminated with exit(${A})`,this.status=A}}var M,F={},K=new Set([]),H={get(A,e){var I=F[e];return I||(I=F[e]=new WebAssembly.Global({value:"i32",mutable:!0})),K.has(e)||(I.required=!0),I}},N=A=>{for(var e,I,g=0,t=0,i=A.length,o=new Uint8Array((3*i>>2)-("="==A[i-2])-("="==A[i-1]));g<i;g+=4,t+=3)e=pA[A.charCodeAt(g+1)],I=pA[A.charCodeAt(g+2)],o[t]=pA[A.charCodeAt(g)]<<2|e>>4,o[t+1]=e<<4|I>>2,o[t+2]=I<<6|pA[A.charCodeAt(g+3)];return o},Y=A=>{for(;A.length>0;)A.shift()(I)},U="undefined"!=typeof TextDecoder?new TextDecoder:void 0,G=(A,e=0,I,g)=>{var t=((A,e,I)=>{for(var g=e+I;A[e]&&!(e>=g);)++e;return e})(A,e,I);if(t-e>16&&A.buffer&&U)return U.decode(A.subarray(e,t));for(var i="";e<t;){var o=A[e++];if(128&o){var n=63&A[e++];if(192!=(224&o)){var C=63&A[e++];if((o=224==(240&o)?(15&o)<<12|n<<6|C:(7&o)<<18|n<<12|C<<6|63&A[e++])<65536)i+=String.fromCharCode(o);else{var a=o-65536;i+=String.fromCharCode(55296|a>>10,56320|1023&a)}}else i+=String.fromCharCode((31&o)<<6|n)}else i+=String.fromCharCode(o)}return i},v=A=>{var e=0,I=0;function g(){return A[e++]}function t(){for(var I=0,g=1;;){var t=A[e++];if(I+=(127&t)*g,g*=128,!(128&t))break}return I}function i(){var I=t();return G(A,(e+=I)-I,I)}function o(){for(var A=t(),e=[];A--;)e.push(i());return e}function n(A,e){if(A)throw new Error(e)}if(A instanceof WebAssembly.Module){var C=WebAssembly.Module.customSections(A,"dylink.0");n(0===C.length,"need dylink section"),I=(A=new Uint8Array(C[0])).length}else{n(!(1836278016==new Uint32Array(new Uint8Array(A.subarray(0,24)).buffer)[0]),"need to see wasm magic number"),n(0!==A[8],"need the dylink section to be first"),e=9;var a=t();I=e+a,n("dylink.0"!==i())}for(var r={neededDynlibs:[],tlsExports:new Set,weakImports:new Set,runtimePaths:[]};e<I;){var s=g(),B=t();if(1===s)r.memorySize=t(),r.memoryAlign=t(),r.tableSize=t(),r.tableAlign=t();else if(2===s)r.neededDynlibs=o();else if(3===s)for(var c=t();c--;){var Q=i();256&t()&&r.tlsExports.add(Q)}else if(4===s)for(c=t();c--;){i();Q=i();1==(3&t())&&r.weakImports.add(Q)}else 5===s?r.runtimePaths=o():e+=B}return r},b=(A,e,I)=>{var g={refcount:1/0,name:A,exports:I,global:!0};return L.loadedLibsByName[A]=g,null!=e&&(L.loadedLibsByHandle[e]=g),g},L={loadedLibsByName:{},loadedLibsByHandle:{},init(){b("__main__",0,kA)}},P=562400,J=(A,e)=>Math.ceil(A/e)*e,R=A=>["__cpp_exception","__c_longjmp","__wasm_apply_data_relocs","__dso_handle","__tls_size","__tls_align","__set_stack_limits","_emscripten_tls_init","__wasm_init_tls","__wasm_call_ctors","__start_em_asm","__stop_em_asm","__start_em_js","__stop_em_js"].includes(A)||A.startsWith("__em_js__"),x=A=>{const e=A.length;return[e%128|128,e>>7,...A]},q={i:127,p:127,j:126,f:125,d:124,e:111},O=A=>x(Array.from(A,A=>q[A])),j=[],T=new WebAssembly.Table({initial:3,element:"anyfunc"}),z=A=>{var e=j[A];return e||(j[A]=e=T.get(A)),e},V=(A,e)=>{if(M)for(var I=A;I<A+e;I++){var g=z(I);g&&M.set(g,I)}},X=[],W=(A,e)=>{T.set(A,e),j[A]=T.get(A)},Z=(A,e)=>{var I=(A=>(M||(M=new WeakMap,V(0,T.length)),M.get(A)||0))(A);if(I)return I;var g=X.length?X.pop():T.grow(1);try{W(g,A)}catch(I){if(!(I instanceof TypeError))throw I;var t=((A,e)=>{var I=Uint8Array.of(0,97,115,109,1,0,0,0,1,...x([1,96,...O(e.slice(1)),...O("v"===e[0]?"":e[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),g=new WebAssembly.Module(I);return new WebAssembly.Instance(g,{e:{f:A}}).exports.f})(A,e);W(g,t)}return M.set(A,g),g},_=(A,e,I)=>{var g={};for(var t in A){var i=A[t];"object"==typeof i&&(i=i.value),"number"==typeof i&&(i+=e),g[t]=i}return(A=>{for(var e in A)if(!R(e)){var I=A[e];F[e]||=new WebAssembly.Global({value:"i32",mutable:!0}),0==F[e].value&&("function"==typeof I?F[e].value=Z(I):"number"==typeof I?F[e].value=I:c(`unhandled export type for '${e}': ${typeof I}`))}})(g),g},$=A=>{var e=kA[A];return!(!e||e.stub)},AA=(A,e=!1)=>{var I;return $(A)&&(I=kA[A]),{sym:I,name:A}},eA=[],IA=(A,e,I)=>A?G(B,A,e):"",gA=(A,e,I,g,t)=>{var i=v(A);function o(){var I,t=Math.pow(2,i.memoryAlign),o=i.memorySize?J((A=>{if(l)return uA(A,1);var e=P,I=e+J(A,16);return P=I,F.__heap_base.value=I,e})(i.memorySize+t),t):0,n=i.tableSize?T.length:0;i.tableSize&&T.grow(i.tableSize);var C=new Proxy({},{get(A,e){switch(e){case"__memory_base":return o;case"__table_base":return n}var t;if(e in kA&&!kA[e].stub)return kA[e];e in A||(A[e]=(...A)=>(t||=function(A){var e=AA(A).sym;return!e&&g&&(e=g[A]),e||(e=I[A]),e}(e),t(...A)));return A[e]}}),a={"GOT.mem":new Proxy({},H),"GOT.func":new Proxy({},H),env:C,wasi_snapshot_preview1:C};function r(A,g){function t(A,e){for(var I=[],g=0;g<16&&-1!=e.indexOf("$"+g);g++)I.push("$"+g);I=I.join(","),m("DYNAMIC_EXECUTION=0 was set, cannot eval")}if(V(n,i.tableSize),I=_(g.exports,o),e.allowUndefined||nA(),"__start_em_asm"in I)for(var C=I.__start_em_asm,a=I.__stop_em_asm;C<a;){t(0,IA(C)),C=B.indexOf(0,C)+1}function r(A,e,I){var g=[];if("void"!=(e=e.slice(1,-1)))for(var t in e=e.split(",")){var i=e[t].split(" ").pop();g.push(i.replace("*",""))}m("DYNAMIC_EXECUTION=0 was set, cannot eval")}for(var s in I)if(s.startsWith("__em_js__")){C=I[s];var c=IA(C).split("<::>");r(s.replace("__em_js__",""),c[0],c[1]),delete I[s]}var Q=I.__wasm_apply_data_relocs;Q&&(l?Q():d.push(Q));var E,w=I.__wasm_call_ctors;return w&&(l?w():(E=w,eA.push(E))),I}if(e.loadAsync)return(async()=>{var e;return A instanceof WebAssembly.Module?e=new WebAssembly.Instance(A,a):({module:A,instance:e}=await WebAssembly.instantiate(A,a)),r(0,e)})();var s=A instanceof WebAssembly.Module?A:new WebAssembly.Module(A);return r(0,new WebAssembly.Instance(s,a))}return K=i.weakImports,(e={...e,rpath:{parentLibPath:I,paths:i.runtimePaths}}).loadAsync?i.neededDynlibs.reduce((A,I)=>A.then(()=>oA(I,e,g)),Promise.resolve()).then(o):(i.neededDynlibs.forEach(A=>oA(A,e,g)),o())},tA=(A,e)=>{for(var[I,g]of Object.entries(A)){const A=A=>{$(A)||(kA[A]=g)};A(I);const e="__main_argc_argv";"main"==I&&A(e),I==e&&A("main")}},iA=async A=>{var e=await i(A);return new Uint8Array(e)};function oA(A,e={global:!0,nodelete:!0},I,g){var t=L.loadedLibsByName[A];if(t)return e.global&&(t.global||(t.global=!0,tA(t.exports))),e.nodelete&&t.refcount!==1/0&&(t.refcount=1/0),t.refcount++,!e.loadAsync||Promise.resolve(!0);function i(){var I=n+A;if(e.loadAsync)return iA(I);if(!o)throw new Error(`${I}: file not found, and synchronous loading of external files is not available`);return o(I)}function C(){return e.loadAsync?i().then(g=>gA(g,e,A,I)):gA(i(),e,A,I)}function a(A){t.global&&tA(A),t.exports=A}return(t=b(A,g,"loading")).refcount=e.nodelete?1/0:1,t.global=e.global,e.loadAsync?C().then(A=>(a(A),!0)):(a(C()),!0)}var nA=()=>{for(var[A,e]of Object.entries(F))if(0==e.value){var I=AA(A,!0).sym;if(!I&&!e.required)continue;if("function"==typeof I)e.value=Z(I,I.sig);else{if("number"!=typeof I)throw new Error(`bad export type for '${A}': ${typeof I}`);e.value=I}}},CA=()=>{Q.length?(y(),Q.reduce((A,e)=>A.then(()=>oA(e,{loadAsync:!0,global:!0,nodelete:!0,allowUndefined:!0})),Promise.resolve()).then(()=>{nA(),D()})):nA()},aA=(A,e,I,g)=>m(`Assertion failed: ${IA(A)}, at: `+[e?IA(e):"unknown filename",I,g?IA(g):"unknown function"]);aA.sig="vppip";var rA=new WebAssembly.Global({value:"i32",mutable:!1},4096),sA=new WebAssembly.Global({value:"i32",mutable:!0},562400),BA=new WebAssembly.Global({value:"i32",mutable:!1},1),cA=()=>m("");cA.sig="v";var QA=()=>{};QA.sig="v";var EA={},lA=A=>{C=A,t(0,new k(A))};lA.sig="vi";var wA=A=>{if(!E)try{A()}catch(A){(A=>{if(A instanceof k||"unwind"==A)return C;t(0,A)})(A)}},dA=()=>performance.now();dA.sig="d";var hA=(A,e)=>{if(EA[A]&&(clearTimeout(EA[A].id),delete EA[A]),!e)return 0;var I=setTimeout(()=>{delete EA[A],wA(()=>fA(A,dA()))},e);return EA[A]={id:I,timeout_ms:e},0};hA.sig="iid";var fA,uA,yA,DA=A=>{var e=(A-s.buffer.byteLength+65535)/65536|0;try{return s.grow(e),w(),1}catch(A){}},mA=A=>{var e=B.length,I=2147483648;if((A>>>=0)>I)return!1;for(var g=1;g<=4;g*=2){var t=e+65536/g,i=Math.min(I,J(Math.max(A,t),65536));if(DA(i))return!0}return!1};mA.sig="ip";for(var pA=new Uint8Array(123),SA=25;SA>=0;--SA)pA[48+SA]=52+SA,pA[65+SA]=SA,pA[97+SA]=26+SA;pA[43]=62,pA[47]=63,function(){s=I.wasmMemory?I.wasmMemory:new WebAssembly.Memory({initial:32,maximum:32768});w()}();var kA={__assert_fail:aA,__heap_base:P,__indirect_function_table:T,__memory_base:rA,__stack_pointer:sA,__table_base:BA,_abort_js:cA,_emscripten_runtime_keepalive_clear:QA,_setitimer_js:hA,emscripten_resize_heap:mA,memory:s,proc_exit:lA},MA=await async function(){function A(A,e){MA=A.exports,MA=_(MA,4096);var g=v(e);return g.neededDynlibs&&(Q=g.neededDynlibs.concat(Q)),tA(MA),L.init(),CA(),d.push(MA.__wasm_apply_data_relocs),function(A){I._argon2=A.argon2,I._malloc=A.malloc,I._free=A.free,I._encrypt_chachapoly_asymmetric=A.encrypt_chachapoly_asymmetric,I._decrypt_chachapoly_asymmetric=A.decrypt_chachapoly_asymmetric,I._keypair_from_seed=A.keypair_from_seed,I._keypair_from_secret_key=A.keypair_from_secret_key,I._sign=A.sign,I._verify=A.verify,I._get_merkle_root=A.get_merkle_root,I._get_merkle_proof=A.get_merkle_proof,I._get_merkle_root_from_proof=A.get_merkle_root_from_proof,I._verify_merkle_proof=A.verify_merkle_proof,fA=A._emscripten_timeout,uA=A.calloc,yA=A.realloc,A._emscripten_stack_alloc,A.__wasm_apply_data_relocs}(MA),D(),MA}y();var e={env:kA,wasi_snapshot_preview1:kA,"GOT.mem":new Proxy(kA,H),"GOT.func":new Proxy(kA,H)};h??=N("AGFzbQEAAAAAEQhkeWxpbmsuMAEG4IkCBAIAAWsQYAJ/fwBgA39/fwBgAn9/AX9gAABgAX8AYAR/f39/AX9gAX8Bf2ADf39/AX9gA39/fgBgBH9/f38AYAR/f39+AGAFf39+f38AYAJ/fAF/YAJ/fABgB39/f39/f38Bf2AIf39/f39/f38BfwKtAgwWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MQlwcm9jX2V4aXQABANlbnYjX2Vtc2NyaXB0ZW5fcnVudGltZV9rZWVwYWxpdmVfY2xlYXIAAwNlbnYNX3NldGl0aW1lcl9qcwAMA2VudhZlbXNjcmlwdGVuX3Jlc2l6ZV9oZWFwAAYDZW52CV9hYm9ydF9qcwADA2Vudg1fX2Fzc2VydF9mYWlsAAkDZW52D19fc3RhY2tfcG9pbnRlcgN/AQNlbnYNX19tZW1vcnlfYmFzZQN/AANlbnYMX190YWJsZV9iYXNlA38AB0dPVC5tZW0LX19oZWFwX2Jhc2UDfwEDZW52Bm1lbW9yeQIBIICAAgNlbnYZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQFwAAIDPj0AAQQBAAYAAAgBCAAAAQAHBgAJAgYBCAEABAAJAAoACwEBAwMAAgcCAgYCBAQNAgUFBQcFBQIHDgMPBQMDB+ICExFfX3dhc21fY2FsbF9jdG9ycwBCBmFyZ29uMgBABm1hbGxvYwALBGZyZWUACB1lbmNyeXB0X2NoYWNoYXBvbHlfYXN5bW1ldHJpYwA/HWRlY3J5cHRfY2hhY2hhcG9seV9hc3ltbWV0cmljAD0Ra2V5cGFpcl9mcm9tX3NlZWQAPBdrZXlwYWlyX2Zyb21fc2VjcmV0X2tleQA7BHNpZ24AOgZ2ZXJpZnkAOQ9nZXRfbWVya2xlX3Jvb3QAOBBnZXRfbWVya2xlX3Byb29mADcaZ2V0X21lcmtsZV9yb290X2Zyb21fcHJvb2YANhN2ZXJpZnlfbWVya2xlX3Byb29mADUTX2Vtc2NyaXB0ZW5fdGltZW91dAAzBmNhbGxvYwAwB3JlYWxsb2MANBdfZW1zY3JpcHRlbl9zdGFja19hbGxvYwAvGF9fd2FzbV9hcHBseV9kYXRhX3JlbG9jcwBBCAE+CQgBACMCCwIxMgwBAQqQ3gU9ywYCG34HfyAAIAEoAgwiHUEB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dkEBcSACQQF0cjoAEyAAIAYgAkEadWoiA0ENdjoAGCAAIANBBXY6ABcgACADQQN0IAJBgICAHHFBF3ZyOgAWIAAgBSADQRl1aiICQQx2OgAbIAAgAkEEdjoAGiAAIAJBBHQgA0GAgIAPcUEVdnI6ABkgACABIAJBGnVqIgFBCnY6AB4gACABQQJ2OgAdIAAgAUGAgPAPcUESdjoAHyAAIAFBBnQgAkGAgMAfcUEUdnI6ABwL9AYCBn4DfyMAQdAFayIKJAACQCACUA0AIAAgACkDSCIDIAJCA4Z8IgQ3A0ggACAAKQNAIAMgBFatfDcDQCAAQdAAaiEJQoABIANCA4hC/wCDIgR9IgcgAlgEQEIAIQMgBEL/AIVCA1oEQCAHQvwBgyEFA0AgCSADIAR8p2ogASADp2otAAA6AAAgCSADQgGEIgggBHynaiABIAinai0AADoAACAJIANCAoQiCCAEfKdqIAEgCKdqLQAAOgAAIAkgA0IDhCIIIAR8p2ogASAIp2otAAA6AAAgA0IEfCIDIAVSDQALCyAHQgODIgVCAFIEQANAIAkgAyAEfKdqIAEgA6dqLQAAOgAAIANCAXwhAyAGQgF8IgYgBVINAAsLIAAgCSAKIApBgAVqIgsQGCABIAenaiEBIAIgB30iAkL/AFYEQANAIAAgASAKIAsQGCABQYABaiEBIAJCgAF9IgJC/wBWDQALCwJAIAJQDQBCACEGQgAhAyACQgRaBEAgAkL8AIMhBANAIAkgA6ciAGogACABai0AADoAACAJIABBAXIiC2ogASALai0AADoAACAJIABBAnIiC2ogASALai0AADoAACAJIABBA3IiAGogACABai0AADoAACADQgR8IgMgBFINAAsLIAJCA4MiAlANAANAIAkgA6ciAGogACABai0AADoAACADQgF8IQMgBkIBfCIGIAJSDQALCyAKIAo2AswFQQAhAANAIAooAswFIABqQQA6AAAgCigCzAUgAGpBADoAASAKKALMBSAAakEAOgACIAooAswFIABqQQA6AAMgAEEEciIBIAooAswFakEAOgAAIAooAswFIAFqQQA6AAEgCigCzAUgAWpBADoAAiAKKALMBSABakEAOgADIABBCGoiAEHABUcNAAsMAQtCACEDIAJCBFoEQCACQvz///8PgyEHA0AgCSADIAR8p2ogASADp2otAAA6AAAgCSADQgGEIgUgBHynaiABIAWnai0AADoAACAJIANCAoQiBSAEfKdqIAEgBadqLQAAOgAAIAkgA0IDhCIFIAR8p2ogASAFp2otAAA6AAAgA0IEfCIDIAdSDQALCyACQgODIgJQDQADQCAJIAMgBHynaiABIAOnai0AADoAACADQgF8IQMgBkIBfCIGIAJSDQALCyAKQdAFaiQAC54DAQt/IwBB4ARrIgMkACADIAApAiA3A8gBIAMgACkCGDcDwAEgAyAAKQIQNwO4ASADIAApAgg3A7ABIAMgACkCADcDqAEgAyAAKQIwNwPYASADIAApAjg3A+ABIAMgAEFAaykCADcD6AEgAyAAKQJINwPwASADIAApAig3A9ABIAMgACkCWDcDgAIgAyAAKQJgNwOIAiADIAApAmg3A5ACIAMgACkCcDcDmAIgAyAAKQJQNwP4ASAAQdAAaiEIIABBKGohCSADQdgAaiEEIANBMGohBiADQYABaiEFIANB+AFqIQsgA0HQAWohDANAIANBCGoiByADQagBaiINEBIgDSAHIAUQByAMIAYgBBAHIAsgBCAFEAcgCkEBaiIKIAFHDQALIAAgByAFEAcgCSAGIAQQByAIIAQgBRAHIABB+ABqIgEgByAGEAcgA0HAA2oiBCACEAogA0GgAmoiBSAAIAQQCSAAIAUgA0GYA2oiABAHIAkgA0HIAmoiAiADQfACaiIEEAcgCCAEIAAQByABIAUgAhAHIANB4ARqJAALzQQCBn4CfwJAIAApAzgiBEIAUgRAAkBCECAEfSIDIAIgAiADVhsiBVANACAAQUBrIQlCACEDIAVCBFoEQCAFQvz///8PgyEHA0AgCSADIAR8p2ogASADp2otAAA6AAAgCSADQgGEIgggBHynaiABIAinai0AADoAACAJIANCAoQiCCAEfKdqIAEgCKdqLQAAOgAAIAkgA0IDhCIIIAR8p2ogASAIp2otAAA6AAAgA0IEfCIDIAdSDQALCyAFQgODIgdQDQADQCAJIAMgBHynaiABIAOnai0AADoAACADQgF8IQMgBkIBfCIGIAdSDQALCyAAIAQgBXwiAzcDOCADQhBUDQEgACAAQUBrQhAQHCAAQgA3AzggAiAFfSECIAEgBadqIQELIAJCEFoEQCAAIAEgAkJwgyIDEBwgAkIPgyECIAEgA6dqIQELIAJQDQAgAkIDgyEFIABBQGshCiAAKQM4IQRCACEGAn5CACACQgRUDQAaIAogBKdqIgkgAS0AADoAACAJIAEtAAE6AAEgCSABLQACOgACIAkgAS0AAzoAA0IEIAJCDIMiB0IEUQ0AGiAJIAEtAAQ6AAQgCSABLQAFOgAFIAkgAS0ABjoABiAJIAEtAAc6AAdCCCAHQghRDQAaIAkgAS0ACDoACCAJIAEtAAk6AAkgCSABLQAKOgAKIAkgAS0ACzoAC0IMCyEDIAVCAFIEQANAIAogAyAEfKdqIAEgA6dqLQAAOgAAIANCAXwhAyAGQgF8IgYgBVINAAsLIAAgAiAEfDcDOAsL5QoCAX4DfyMAQdAFayIDJAAgACAAKAJIQQN2Qf8AcSIEakHQAGohBQJAIARB8ABPBEBBgAEgBGsiBARAIAUjAUHABWogBPwKAAALIAAgAEHQAGoiBCADIANBgAVqEBggBEEAQfAA/AsADAELQfAAIARrIgRFDQAgBSMBQcAFaiAE/AoAAAsgACAAKQNAIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3A8ABIAAgACkDSCICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISENwPIASAAIABB0ABqIAMgA0GABWoQGCABIAApAwAiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhDcAACABIAApAwgiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhDcACCABIAApAxAiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhDcAECABIAApAxgiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhDcAGCABIAApAyAiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhDcAICABIAApAygiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhDcAKCABIAApAzAiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhDcAMCABIAApAzgiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhDcAOCADIAM2AswFQQAhAQNAIAMoAswFIAFqQQA6AAAgAygCzAUgAWpBADoAASADKALMBSABakEAOgACIAMoAswFIAFqQQA6AAMgAUEEciIEIAMoAswFakEAOgAAIAMoAswFIARqQQA6AAEgAygCzAUgBGpBADoAAiADKALMBSAEakEAOgADIAFBCGoiAUHABUcNAAsgAyAANgLMBUEAIQEDQCADKALMBSABakEAOgAAIAMoAswFIAFqQQA6AAEgAygCzAUgAWpBADoAAiADKALMBSABakEAOgADIAFBBHIiACADKALMBWpBADoAACADKALMBSAAakEAOgABIAMoAswFIABqQQA6AAIgAygCzAUgAGpBADoAAyABQQhqIgFB0AFHDQALIANB0AVqJAAL2Q4CHH4efyMAQTBrIh4kACAAIAEQBiAAQdAAaiABQShqEAYgACABKAJcIiJBAXSsIgggASgCVCIjQQF0rCICfiABKAJYIiSsIg0gDX58IAEoAmAiJawiByABKAJQIiZBAXSsIgV+fCABKAJsIh9BJmysIg4gH6wiEX58IAEoAnAiJ0ETbKwiAyABKAJoIiBB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ASkDeIVCIIkiAiABKQNYIgZ8IAJC/////w+DIAZCAYZC/v///x+DfnwiBiAHhUIoiSIHIAV8IAdC/////w+DIAVCAYZC/v///x+DfnwiBSAChUIwiSICIAEpAygiAyABKQMIIgR8IARCAYZC/v///x+DIANC/////w+DfnwiBCABKQNohUIgiSIKIAEpA0giC3wgCkL/////D4MgC0IBhkL+////H4N+fCILIAOFQiiJIgMgBHwgA0L/////D4MgBEIBhkL+////H4N+fCIEIAqFQjCJIgogC3wgCkL/////D4MgC0IBhkL+////H4N+fCILIAOFQgGJIgMgASkDICIOIAEpAwAiCXwgCUIBhkL+////H4MgDkL/////D4N+fCIJIAEpA2CFQiCJIg8gAUFAayIZKQMAIhJ8IA9C/////w+DIBJCAYZC/v///x+DfnwiEiAOhUIoiSIOIAl8IA5C/////w+DIAlCAYZC/v///x+DfnwiCXwgA0L/////D4MgCUIBhkL+////H4N+fCIIhUIgiSITIAEpAzAiECABKQMQIgx8IAxCAYZC/v///x+DIBBC/////w+DfnwiDCABKQNwhUIgiSIRIAEpA1AiDXwgEUL/////D4MgDUIBhkL+////H4N+fCINIBCFQiiJIhAgDHwgEEL/////D4MgDEIBhkL+////H4N+fCIMIBGFQjCJIhEgDXwgEUL/////D4MgDUIBhkL+////H4N+fCINfCATQv////8PgyANQgGGQv7///8fg358IhQgA4VCKIkiAyAIfCADQv////8PgyAIQgGGQv7///8fg358Igg3AwAgASAIIBOFQjCJIgg3A3ggASAIIBR8IAhC/////w+DIBRCAYZC/v///x+DfnwiCDcDUCABIAMgCIVCAYk3AyggASANIBCFQgGJIgMgBHwgA0L/////D4MgBEIBhkL+////H4N+fCIEIAkgD4VCMIkiCYVCIIkiDyACIAZ8IAJC/////w+DIAZCAYZC/v///x+DfnwiAnwgD0L/////D4MgAkIBhkL+////H4N+fCIGIAOFQiiJIgMgBHwgA0L/////D4MgBEIBhkL+////H4N+fCIIIA+FQjCJIgQ3A2AgASAINwMIIAEgBCAGfCAEQv////8PgyAGQgGGQv7///8fg358IgYgA4VCAYk3AzAgASAGNwNYIAEgAiAHhUIBiSIHIAx8IAdC/////w+DIAxCAYZC/v///x+DfnwiAiAKhUIgiSIGIAkgEnwgCUL/////D4MgEkIBhkL+////H4N+fCIDfCAGQv////8PgyADQgGGQv7///8fg358IgQgB4VCKIkiByACfCAHQv////8PgyACQgGGQv7///8fg358IgI3AxAgASACIAaFQjCJIgI3A2ggGSACIAR8IAJC/////w+DIARCAYZC/v///x+DfnwiBDcDACABIAUgAyAOhUIBiSICfCAFQgGGQv7///8fgyACQv////8Pg358IgUgEYVCIIkiBiALfCAGQv////8PgyALQgGGQv7///8fg358IgMgAoVCKIkiAiAFfCACQv////8PgyAFQgGGQv7///8fg358IgogBoVCMIkiBSADfCAFQv////8PgyADQgGGQv7///8fg358IgY3A0ggASAFNwNwIAEgCjcDGCABIAQgB4VCAYk3AzggASACIAaFQgGJNwMgIBdBAWoiF0EIRw0ACwNAIBhBgBhqIBZBBHRqIgEgASkDiAMiByABKQOIASIFfCAFQgGGQv7///8fgyAHQv////8Pg358IgUgASkDiAeFQiCJIgIgASkDiAUiBnwgAkL/////D4MgBkIBhkL+////H4N+fCIGIAeFQiiJIgcgBXwgB0L/////D4MgBUIBhkL+////H4N+fCIFIAKFQjCJIgIgASkDiAIiAyABKQMIIgR8IARCAYZC/v///x+DIANC/////w+DfnwiBCABKQOIBoVCIIkiCiABKQOIBCILfCAKQv////8PgyALQgGGQv7///8fg358IgsgA4VCKIkiAyAEfCADQv////8PgyAEQgGGQv7///8fg358IgQgCoVCMIkiCiALfCAKQv////8PgyALQgGGQv7///8fg358IgsgA4VCAYkiAyABKQOAAiIOIAEpAwAiCXwgCUIBhkL+////H4MgDkL/////D4N+fCIJIAEpA4AGhUIgiSIPIAEpA4AEIhJ8IA9C/////w+DIBJCAYZC/v///x+DfnwiEiAOhUIoiSIOIAl8IA5C/////w+DIAlCAYZC/v///x+DfnwiCXwgA0L/////D4MgCUIBhkL+////H4N+fCIIhUIgiSITIAEpA4ADIhAgASkDgAEiDHwgDEIBhkL+////H4MgEEL/////D4N+fCIMIAEpA4AHhUIgiSIRIAEpA4AFIg18IBFC/////w+DIA1CAYZC/v///x+DfnwiDSAQhUIoiSIQIAx8IBBC/////w+DIAxCAYZC/v///x+DfnwiDCARhUIwiSIRIA18IBFC/////w+DIA1CAYZC/v///x+DfnwiDXwgE0L/////D4MgDUIBhkL+////H4N+fCIUIAOFQiiJIgMgCHwgA0L/////D4MgCEIBhkL+////H4N+fCIINwMAIAEgCCAThUIwiSIINwOIByABIAggFHwgCEL/////D4MgFEIBhkL+////H4N+fCIINwOABSABIAMgCIVCAYk3A4gCIAEgDSAQhUIBiSIDIAR8IANC/////w+DIARCAYZC/v///x+DfnwiBCAJIA+FQjCJIgmFQiCJIg8gAiAGfCACQv////8PgyAGQgGGQv7///8fg358IgJ8IA9C/////w+DIAJCAYZC/v///x+DfnwiBiADhUIoiSIDIAR8IANC/////w+DIARCAYZC/v///x+DfnwiCCAPhUIwiSIENwOABiABIAg3AwggASAEIAZ8IARC/////w+DIAZCAYZC/v///x+DfnwiBiADhUIBiTcDgAMgASAGNwOIBSABIAIgB4VCAYkiByAMfCAHQv////8PgyAMQgGGQv7///8fg358IgIgCoVCIIkiBiAJIBJ8IAlC/////w+DIBJCAYZC/v///x+DfnwiA3wgBkL/////D4MgA0IBhkL+////H4N+fCIEIAeFQiiJIgcgAnwgB0L/////D4MgAkIBhkL+////H4N+fCICNwOAASABIAIgBoVCMIkiAjcDiAYgASACIAR8IAJC/////w+DIARCAYZC/v///x+DfnwiBDcDgAQgASAFIAMgDoVCAYkiAnwgBUIBhkL+////H4MgAkL/////D4N+fCIFIBGFQiCJIgYgC3wgBkL/////D4MgC0IBhkL+////H4N+fCIDIAKFQiiJIgIgBXwgAkL/////D4MgBUIBhkL+////H4N+fCIKIAaFQjCJIgUgA3wgBUL/////D4MgA0IBhkL+////H4N+fCIGNwOIBCABIAU3A4AHIAEgCjcDiAEgASAEIAeFQgGJNwOIAyABIAIgBoVCAYk3A4ACIBZBAWoiFkEIRw0ACyAdIBhBgBBqQYAI/AoAAEEAIRYDQCAdIBZBA3QiAWoiFyAXKQMAIBhBgBhqIh4gAWopAwCFNwMAIB0gAUEIciIXaiIZIBkpAwAgFyAeaikDAIU3AwAgHSABQRByIhdqIhkgGSkDACAYQYAYaiAXaikDAIU3AwAgHSABQRhyIgFqIhcgFykDACAYQYAYaiABaikDAIU3AwAgFkEEaiIWQYABRw0ACwsgIUEBaiEWIBxBAWohHCAaQQFqIhogACgCFCIXSQ0ACwsgGEGAIGokAAuUBQIFfwJ+IwBB0ABrIgMkAAJAIAIEQEF/IQQgACkAUFAEQCAAKADgAiIFQYEBTwRAIAAgACkAQCIIQoABfDcAQCAAIAApAEggCEL/flatfDcASCAAIABB4ABqIgUQDCAAIAAoAOACQYABayIENgDgAiAEQYEBTw0DIAQEQCAFIABB4AFqIAT8CgAACyAAKADgAiEFCyAAIAApAEAiCCAFrXwiCTcAQCAAIAApAEggCCAJVq18NwBIIAAtAOQCBEAgAEJ/NwBYCyAAQn83AFAgAEHgAGohBkEAIQRBgAIgBWsiBwRAIAUgBmpBACAH/AsACyAAIAYQDCADIAApAAA3AwAgAyAAKQAINwMIIAMgACkAEDcDECADIAApABg3AxggAyAAKQAgNwMgIAMgACkAKDcDKCADIAApADA3AzAgAyAAKQA4NwM4IAIEQCABIAMgAvwKAAALIAMgADYCTANAIAMoAkwgBGpBADoAACADKAJMIARqQQA6AAEgAygCTCAEakEAOgACIAMoAkwgBGpBADoAAyAEQQRyIgAgAygCTGpBADoAACADKAJMIABqQQA6AAEgAygCTCAAakEAOgACIAMoAkwgAGpBADoAAyAEQQhqIgRBwABHDQALIAMgBjYCTEEAIQQDQCADKAJMIARqQQA6AAAgAygCTCAEakEAOgABIAMoAkwgBGpBADoAAiADKAJMIARqQQA6AAMgBEEEciIAIAMoAkxqQQA6AAAgAygCTCAAakEAOgABIAMoAkwgAGpBADoAAiADKAJMIABqQQA6AAMgBEEIaiIEQYACRw0AC0EAIQQLIANB0ABqJAAgBA8LECkACyMBIgBBs4ACaiAAQcb/AWpBsgIgAEGw/wFqEAUAC2wBAn8gAEEHakF4cSEBIwFB0IICaiICKAIAIgBFBEAgAiMDIgA2AgALAkAgAUEAIAAgAWoiASAATRtFBEAgAT8AQRB0TQ0BIAEQAw0BCyMBQeSEAmpBMDYCAEF/DwsjAUHQggJqIAE2AgAgAAvKCAEDfyMAQcABayICJAAgAkGQAWoiBCABEAYgAkHgAGoiAyAEEAYgAyADEAYgAyABIAMQByAEIAQgAxAHIAJBMGoiASAEEAYgAyADIAEQByABIAMQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiADIAEgAxAHIAEgAxAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgASADEAcgAiABEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgASACIAEQByABIAEQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiADIAEgAxAHIAEgAxAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgASADEAcgAiABEAZBASEBA0AgAiACEAYgAUEBaiIBQeQARw0ACyACQTBqIgEgAiABEAcgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgAkHgAGoiAyABIAMQByADIAMQBiADIAMQBiADIAMQBiADIAMQBiADIAMQBiAAIAMgAkGQAWoQByACQcABaiQAC+cXAhF+Cn8DQCACIBVBA3QiF2ogASAXaikAACIEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISENwMAIBVBAWoiFUEQRw0ACyADIAApAwA3AwAgAyAAKQM4NwM4IAMgACkDMDcDMCADIAApAyg3AyggAyAAKQMgNwMgIAMgACkDGDcDGCADIAApAxA3AxAgAyAAKQMINwMIA0AgAyADKQM4IAIgGEEDdCIVaiIBKQMAIAMpAyAiCUIyiSAJQi6JhSAJQheJhXwjAUFAayIXIBVqKQMAfCAJIAMpAzAiCiADKQMoIgiFgyAKhXx8IgQgAykDGHwiCzcDGCADIAMpAwAiBUIkiSAFQh6JhSAFQhmJhSAEfCADKQMQIgYgAykDCCIHhCAFgyAGIAeDhHwiBDcDOCADIAYgAiAVQQhyIhZqIhwpAwAgCiAIIAsgCCAJhYOFfCALQjKJIAtCLomFIAtCF4mFfHwgFiAXaikDAHwiCnwiBjcDECADIAQgBSAHhIMgBSAHg4QgCnwgBEIkiSAEQh6JhSAEQhmJhXwiCjcDMCADIAcgCCACIBVBEHIiFmopAwB8IBYgF2opAwB8IAkgBiAJIAuFg4V8IAZCMokgBkIuiYUgBkIXiYV8Igx8Igg3AwggAyAKIAQgBYSDIAQgBYOEIApCJIkgCkIeiYUgCkIZiYV8IAx8Igc3AyggAyAFIAkgAiAVQRhyIhZqKQMAfCAWIBdqKQMAfCAIIAYgC4WDIAuFfCAIQjKJIAhCLomFIAhC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AGYgAS0AMHI6ADAgASABLQBnIAEtADByOgAwIAEgAS0AaCABLQAwcjoAMCABIAEtAGkgAS0AMHI6ADAgASABLQBqIAEtADByOgAwIAEgAS0AayABLQAwcjoAMCABIAEtAGwgAS0AMHI6ADAgASABLQBtIAEtADByOgAwIAEgAS0AbiABLQAwcjoAMCABIAEtAG8gAS0AMHI6ADAgASABLQBwIAEtADByOgAwIAEgAS0AcSABLQAwcjoAMCABIAEtAHIgAS0AMHI6ADAgASABLQBzIAEtADByOgAwIAEgAS0AdCABLQAwcjoAMCABIAEtAHUgAS0AMHI6ADAgASABLQB2IAEtADByOgAwIAEgAS0AdyABLQAwcjoAMCABIAEtAHggAS0AMHI6ADAgASABLQB5IAEtADByOgAwIAEgAS0AeiABLQAwcjoAMCABIAEtAHsgAS0AMHI6ADAgASABLQB8IAEtADByOgAwIAEgAS0AfSABLQAwcjoAMCABIAEtAH4gAS0AMHI6ADAgASABLQB/IAEtADByOgAwIAEtADAhDCADIABBKGogAhAHIAFBMGoiAiADEA0gAUEAOgAAIAEgAS0AMCABLQAAcjoAACABIAEtADEgAS0AAHI6AAAgASABLQAyIAEtAAByOgAAIAEgAS0AMyABLQAAcjoAACABIAEtADQgAS0AAHI6AAAgASABLQA1IAEtAAByOgAAIAEgAS0ANiABLQAAcjoAACABIAEtADcgAS0AAHI6AAAgASABLQA4IAEtAAByOgAAIAEgAS0AOSABLQAAcjoAACABIAEtADogAS0AAHI6AAAgASABLQA7IAEtAAByOgAAIAEgAS0APCABLQAAcjoAACABIAEtAD0gAS0AAHI6AAAgASABLQA+IAEtAAByOgAAIAEgAS0APyABLQAAcjoAACABIAEtAEAgAS0AAHI6AAAgASABLQBBIAEtAAByOgAAIAEgAS0AQiABLQAAcjoAACABIAEtAEMgAS0AAHI6AAAgASABLQBEIAEtAAByOgAAIAEgAS0ARSABLQAAcjoAACABIAEtAEYgAS0AAHI6AAAgASABLQBHIAEtAAByOgAAIAEgAS0ASCABLQAAcjoAACABIAEtAEkgAS0AAHI6AAAgASABLQBKIAEtAAByOgAAIAEgAS0ASyABLQAAcjoAACABIAEt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EGsiGCQAIBhBgAhqIAFBgAj8CgAAQQAhAQNAIAFBA3QiFiAYQYAIaiIaaiIXIBcpAwAgACAWaikDAIU3AwAgGiAWQQhyIhdqIhkgGSkDACAAIBdqKQMAhTcDACAaIBZBEHIiF2oiGSAZKQMAIAAgF2opAwCFNwMAIBogFkEYciIWaiIXIBcpAwAgACAWaikDAIU3AwAgAUEEaiIBQYABRw0ACyAYIBpBgAj8CgAAQQAhAEEAIQEDQCAYIAFBA3QiFmoiFyAXKQMAIAIgFmopAwCFNwMAIBggFkEIciIXaiIZIBkpAwAgAiAXaikDAIU3AwAgGCAWQRByIhdqIhkgGSkDACACIBdqKQMAhTcDACAYIBZBGHIiFmoiFyAXKQMAIAIgFmopAwCFNwMAIAFBBGoiAUGAAUcNAAsDQCAYQYAIaiAAQQd0aiIBIAEpAzgiCCABKQMYIgd8IAdCAYZC/v///x+DIAhC/////w+DfnwiByABKQN4hUIgiSIEIAEpA1giBXwgBUIBhkL+////H4MgBEL/////D4N+fCIFIAiFQiiJIgggB3wgCEL/////D4MgB0IBhkL+////H4N+fCIHIASFQjCJIgQgASkDKCIDIAEpAwgiBnwgBkIBhkL+////H4MgA0L/////D4N+fCIGIAEpA2iFQiCJIgsgASkDSCIMfCAMQgGGQv7///8fgyALQv////8Pg358IgwgA4VCKIkiAyAGfCADQv////8PgyAGQgGGQv7///8fg358IgYgC4VCMIkiCyAMfCALQv////8PgyAMQgGGQv7///8fg358IgwgA4VCAYkiAyABKQMgIg8gASkDACIKfCAKQgGGQv7///8fgyAPQv////8Pg358IgogASkDYIVCIIkiECABQUBrIhYpAwAiE3wgE0IBhkL+////H4MgEEL/////D4N+fCITIA+FQiiJIg8gCnwgD0L/////D4MgCkIBhkL+////H4N+fCIKfCADQv////8PgyAKQgGGQv7///8fg358IgmFQiCJIhQgASkDMCIRIAEpAxAiDXwgDUIBhkL+////H4MgEUL/////D4N+fCINIAEpA3CFQiCJIhIgASkDUCIOfCAOQgGGQv7///8fgyASQv////8Pg358Ig4gEYVCKIkiESANfCARQv////8PgyANQgGGQv7///8fg358Ig0gEoVCMIkiEiAOfCASQv////8PgyAOQgGGQv7///8fg358Ig58IBRC/////w+DIA5CAYZC/v///x+DfnwiFSADhUIoiSIDIAl8IANC/////w+DIAlCAYZC/v///x+DfnwiCTcDACABIAkgFIVCMIkiCTcDeCABIAkgFXwgCUL/////D4MgFUIBhkL+////H4N+fCIJNwNQIAEgAyAJhUIBiTcDKCABIAQgBXwgBEL/////D4MgBUIBhkL+////H4N+fCIEIA4gEYVCAYkiBSAGfCAFQv////8PgyAGQgGGQv7///8fg358IgMgCiAQhUIwiSIGhUIgiSIKfCAEQgGGQv7///8fgyAKQv////8Pg358IhAgBYVCKIkiBSADfCAFQv////8PgyADQgGGQv7///8fg358IgkgCoVCMIkiAzcDYCABIAk3AwggASAFIAMgEHwgA0L/////D4MgEEIBhkL+////H4N+fCIFhUIBiTcDMCABIAU3A1ggASAEIAiFQgGJIgggDXwgCEL/////D4MgDUIBhkL+////H4N+fCIEIAuFQiCJIgUgBiATfCAGQv////8PgyATQgGGQv7///8fg358IgN8IAVC/////w+DIANCAYZC/v///x+DfnwiBiAIhUIoiSIIIAR8IAhC/////w+DIARCAYZC/v///x+DfnwiBDcDECABIAQgBYVCMIkiBDcDaCAWIAQgBnwgBEL/////D4MgBkIBhkL+////H4N+fCIGNwMAIAEgByADIA+FQgGJIgR8IAdCAYZC/v///x+DIARC/////w+DfnwiByAShUIgiSIFIAx8IAVC/////w+DIAxCAYZC/v///x+DfnwiAyAEhUIoiSIEIAd8IARC/////w+DIAdCAYZC/v///x+DfnwiCyAFhUIwiSIHIAN8IAdC/////w+DIANCAYZC/v///x+DfnwiBTcDSCABIAc3A3AgASALNwMYIAEgBiAIhUIBiTcDOCABIAQgBYVCAYk3AyAgAEEBaiIAQQhHDQALQQAhAANAIBhBgAhqIABBBHRqIgEgASkDiAMiCCABKQOIASIHfCAHQgGGQv7///8fgyAIQv////8Pg358IgcgASkDiAeFQiCJIgQgASkDiAUiBXwgBUIBhkL+////H4MgBEL/////D4N+fCIFIAiFQiiJIgggB3wgCEL/////D4MgB0IBhkL+////H4N+fCIHIASFQjCJIgQgASkDiAIiAyABKQMIIgZ8IAZCAYZC/v///x+DIANC/////w+DfnwiBiABKQOIBoVCIIkiCyABKQOIBCIMfCAMQgGGQv7///8fgyALQv////8Pg358IgwgA4VCKIkiAyAGfCADQv////8PgyAGQgGGQv7///8fg358IgYgC4VCMIkiCyAMfCALQv////8PgyAMQgGGQv7///8fg358IgwgA4VCAYkiAyABKQOAAiIPIAEpAwAiCnwgCkIBhkL+////H4MgD0L/////D4N+fCIKIAEpA4AGhUIgiSIQIAEpA4AEIhN8IBNCAYZC/v///x+DIBBC/////w+DfnwiEyAPhUIoiSIPIAp8IA9C/////w+DIApCAYZC/v///x+DfnwiCnwgA0L/////D4MgCkIBhkL+////H4N+fCIJhUIgiSIUIAEpA4ADIhEgASkDgAEiDXwgDUIBhkL+////H4MgEUL/////D4N+fCINIAEpA4AHhUIgiSISIAEpA4AFIg58IA5CAYZC/v///x+DIBJC/////w+DfnwiDiARhUIoiSIRIA18IBFC/////w+DIA1CAYZC/v///x+DfnwiDSAShUIwiSISIA58IBJC/////w+DIA5CAYZC/v///x+DfnwiDnwgFEL/////D4MgDkIBhkL+////H4N+fCIVIAOFQiiJIgMgCXwgA0L/////D4MgCUIBhkL+////H4N+fCIJNwMAIAEgCSAUhUIwiSIJNwOIByABIAkgFXwgCUL/////D4MgFUIBhkL+////H4N+fCIJNwOABSABIAMgCYVCAYk3A4gCIAEgBCAFfCAEQv////8PgyAFQgGGQv7///8fg358IgQgDiARhUIBiSIFIAZ8IAVC/////w+DIAZCAYZC/v///x+DfnwiAyAKIBCFQjCJIgaFQiCJIgp8IARCAYZC/v///x+DIApC/////w+DfnwiECAFhUIoiSIFIAN8IAVC/////w+DIANCAYZC/v///x+DfnwiCSAKhUIwiSIDNwOABiABIAk3AwggASAFIAMgEHwgA0L/////D4MgEEIBhkL+////H4N+fCIFhUIBiTcDgAMgASAFNwOIBSABIAQgCIVCAYkiCCANfCAIQv////8PgyANQgGGQv7///8fg358IgQgC4VCIIkiBSAGIBN8IAZC/////w+DIBNCAYZC/v///x+DfnwiA3wgBUL/////D4MgA0IBhkL+////H4N+fCIGIAiFQiiJIgggBHwgCEL/////D4MgBEIBhkL+////H4N+fCIENwOAASABIAQgBYVCMIkiBDcDiAYgASAEIAZ8IARC/////w+DIAZCAYZC/v///x+DfnwiBjcDgAQgASAHIAMgD4VCAYkiBHwgB0IBhkL+////H4MgBEL/////D4N+fCIHIBKFQiCJIgUgDHwgBUL/////D4MgDEIBhkL+////H4N+fCIDIASFQiiJIgQgB3wgBEL/////D4MgB0IBhkL+////H4N+fCILIAWFQjCJIgcgA3wgB0L/////D4MgA0IBhkL+////H4N+fCIFNwOIBCABIAc3A4AHIAEgCzcDiAEgASAGIAiFQgGJNwOIAyABIAQgBYVCAYk3A4ACIABBAWoiAEEIRw0ACyACIBhBgAj8CgAAQQAhAANAIAIgAEEDdCIBaiIWIBYpAwAgGEGACGoiGSABaikDAIU3AwAgAiABQQhyIhZqIhcgFykDACAWIBlqKQMAhTcDACACIAFBEHIiFmoiFyAXKQMAIBhBgAhqIBZqKQMAhTcDACACIAFBGHIiAWoiFiAWKQMAIBhBgAhqIAFqKQMAhTcDACAAQQRqIgBBgAFHDQALIBhBgBBqJAALogQCDn4Kf0EAQYCAgAggAC0AUBshFiAAKAIEIhdBBWytIQ8gACgCCCIYQQVsrSENIAAoAgwiGUEFbK0hCyAAKAIQIhpBBWytIQkgADUCACEIIAAoAiQhEiAAKAIgIRMgACgCHCEUIAAoAhghFSAAKAIUIREgGq0hECAZrSEOIBitIQwgF60hCgNAIAEoAANBAnZB////H3EgFWqtIgMgDn4gASgAAEH///8fcSARaq0iBCAQfnwgASgABkEEdkH///8fcSAUaq0iBSAMfnwgASgACUEGdiATaq0iBiAKfnwgEiAWaiABKAAMQQh2aq0iByAIfnwgAyAMfiAEIA5+fCAFIAp+fCAGIAh+fCAHIAl+fCADIAp+IAQgDH58IAUgCH58IAYgCX58IAcgC358IAMgCH4gBCAKfnwgBSAJfnwgBiALfnwgByANfnwgAyAJfiAEIAh+fCAFIAt+fCAGIA1+fCAHIA9+fCIDQhqIQv////8Pg3wiBEIaiEL/////D4N8IgVCGohC/////w+DfCIGQhqIQv////8Pg3wiB0IaiKdBBWwgA6dB////H3FqIhFBGnYgBKdB////H3FqIRUgBadB////H3EhFCAGp0H///8fcSETIAenQf///x9xIRIgEUH///8fcSERIAFBEGohASACQhB9IgJCD1YNAAsgACASNgIkIAAgEzYCICAAIBQ2AhwgACAVNgIYIAAgETYCFAvWCQEcfyABKAIAIQMgASgCKCEEIAEoAgQhBSABKAIsIQYgASgCCCEHIAEoAjAhCCABKAIMIQkgASgCNCEKIAEoAhAhCyABKAI4IQwgASgCFCENIAEoAjwhDiABKAIYIQ8gASgCQCEQIAEoAhwhESABKAJEIRIgASgCICETIAEoAkghFCAAIAEoAiQgASgCTGo2AiQgACATIBRqNgIgIAAgESASajYCHCAAIA8gEGo2AhggACANIA5qNgIUIAAgCyAMajYCECAAIAkgCmo2AgwgACAHIAhqNgIIIAAgBSAGajYCBCAAIAMgBGo2AgAgASgCACEDIAEoAighBCABKAIEIQUgASgCLCEGIAEoAgghByABKAIwIQggASgCDCEJIAEoAjQhCiABKAIQIQsgASgCOCEMIAEoAhQhDSABKAI8IQ4gASgCGCEPIAEoAkAhECABKAIcIREgASgCRCESIAEoAiAhEyABKAJIIRQgACABKAJMIAEoAiRrNgJMIAAgFCATazYCSCAAIBIgEWs2AkQgACAQIA9rNgJAIAAgDiANazYCPCAAIAwgC2s2AjggACAKIAlrNgI0IAAgCCAHazYCMCAAIAYgBWs2AiwgACAEIANrNgIoIABB0ABqIAAgAhAHIABBKGoiAyADIAJBKGoQByAAQfgAaiACQdAAaiABQfgAahAHIAEoAlAhEyABKAJUIRQgASgCWCEVIAEoAlwhFiABKAJgIRcgASgCZCEYIAEoAmghGSABKAJsIRogASgCcCEbIAEoAnQhHCAAKAIoIQEgACgCUCECIAAoAiwhAyAAKAJUIQQgACgCMCEFIAAoAlghBiAAKAI0IQcgACgCXCEIIAAoAjghCSAAKAJgIQogACgCPCELIAAoAmQhDCAAKAJAIQ0gACgCaCEOIAAoAkQhDyAAKAJsIRAgACgCSCERIAAoAnAhEiAAIAAoAkwiHSAAKAJ0Ih5qNgJMIAAgESASajYCSCAAIA8gEGo2AkQgACANIA5qNgJAIAAgCyAMajYCPCAAIAkgCmo2AjggACAHIAhqNgI0IAAgBSAGajYCMCAAIAMgBGo2AiwgACABIAJqNgIoIAAgHiAdazYCJCAAIBIgEWs2AiAgACAQIA9rNgIcIAAgDiANazYCGCAAIAwgC2s2AhQgACAKIAlrNgIQIAAgCCAHazYCDCAAIAYgBWs2AgggACAEIANrNgIEIAAgAiABazYCACAAIBxBAXQiASAAKAKcASICazYCnAEgACAbQQF0IgMgACgCmAEiBGs2ApgBIAAgGkEBdCIFIAAoApQBIgZrNgKUASAAIBlBAXQiByAAKAKQASIIazYCkAEgACAYQQF0IgkgACgCjAEiCms2AowBIAAgF0EBdCILIAAoAogBIgxrNgKIASAAIBZBAXQiDSAAKAKEASIOazYChAEgACAVQQF0Ig8gACgCgAEiEGs2AoABIAAgFEEBdCIRIAAoAnwiEms2AnwgACATQQF0IhMgACgCeCIUazYCeCAAIAMgBGo2AnAgACAFIAZqNgJsIAAgByAIajYCaCAAIAkgCmo2AmQgACALIAxqNgJgIAAgDSAOajYCXCAAIA8gEGo2AlggACARIBJqNgJUIAAgEyAUajYCUCAAIAEgAmo2AnQL9AQBGX4gATUAACEGIAExAB8hAiABMQAeIQ4gATEAHSEPIAExAAYhByABMQAFIQggATEABCEDIAExAAkhECABMQAIIREgATEAByESIAExAAwhCSABMQALIQogATEACiELIAExAA8hDCABMQAOIRMgATEADSEUIAExABwhBCABMQAbIRUgATEAGiEWIAExABkhBSABMQAYIRcgATEAFyEYIAAgATEAFUIPhiABMQAUQgeGhCABMQAWQheGhCABNQAQIhlCgICACHwiGkIZiHwiDSANQoCAgBB8Ig1CgICA4A+DfT4CGCAAIBdCDYYgGEIFhoQgBUIVhoQiBSANQhqIfCAFQoCAgAh8IgVCgICA8AODfT4CHCAAIBVCDIYgFkIEhoQgBEIUhoQgBUIZiHwiBCAEQoCAgBB8IgRCgICA4A+DfT4CICAAIBkgGkKAgIDwD4N9IBNCCoYgFEIChoQgDEIShoQgCkILhiALQgOGhCAJQhOGhCIJQoCAgAh8IgpCGYh8IgtCgICAEHwiDEIaiHw+AhQgACALIAxCgICA4A+DfT4CECAAIBFCDYYgEkIFhoQgEEIVhoQgCEIOhiADQgaGhCAHQhaGhCIHQoCAgAh8IghCGYh8IgMgA0KAgIAQfCIDQoCAgOAPg30+AgggACACQhKGQoCA8A+DIA5CCoYgD0IChoSEIgIgBEIaiHwgAkKAgIAIfCICQoCAgBCDfT4CJCAAIANCGoggCXwgCkKAgIDwAIN9PgIMIAAgByAIQoCAgPAHg30gBiACQhmIQhN+fCIGQoCAgBB8IgJCGoh8PgIEIAAgBiACQoCAgOAPg30+AgAL9xICFX4DfyAAIAAoACwiFkEFdkH///8Aca0gACgAPEEDdq0iAkKDoVZ+IAAzACogADEALEIQhkKAgPwAg4R8IgtCgIBAfSIIQhWHfCIBQoOhVn4gADUAMUIHiEL///8AgyIDQtOMQ34gACgAFyIXQRh2rSAAMQAbQgiGhCAAMQAcQhCGhEICiEL///8Ag3wgACgANCIYQQR2Qf///wBxrSIEQuf2J358IBZBGHatIAAxADBCCIaEIAAxADFCEIaEQgKIQv///wCDIgVC0asIfnwgADUAOUIGiEL///8AgyIGQpPYKH58IBhBGHatIAAxADhCCIaEIAAxADlCEIaEQgGIQv///wCDIglCmNocfnwiB3wgB0KAgEB9IhFCgICAf4N9IBdBBXZB////AHGtIANC5/YnfnwgBEKY2hx+fCAFQtOMQ358IAlCk9gofnwgA0KY2hx+IAAzABUgADEAF0IQhkKAgPwAg4R8IARCk9gofnwgBULn9id+fCIHQoCAQH0iCkIViHwiDEKAgEB9Ig1CFYd8Ig8gD0KAgEB9Ig9CgICAf4N9IAwgAULRqwh+fCANQoCAgH+DfSALIAhCgICAf4N9IAJC0asIfiAAKAAkIhZBGHatIAAxAChCCIaEIAAxAClCEIaEQgOIfCAGQoOhVn58IBZBBnZB////AHGtIAJC04xDfnwgBkLRqwh+fCAJQoOhVn58IgxCgIBAfSINQhWHfCIIQoCAQH0iDkIVh3wiC0KDoVZ+fCAHIApCgICA////A4N9IANCk9gofiAAKAAPIhZBGHatIAAxABNCCIaEIAAxABRCEIaEQgOIfCAFQpjaHH58IBZBBnZB////AHGtIAVCk9gofnwiCkKAgEB9IhJCFYh8IgdCgIBAfSIQQhWIfCABQtOMQ358IAtC0asIfnwgCCAOQoCAgH+DfSIIQoOhVn58Ig5CgIBAfSITQhWHfCIUQoCAQH0iFUIVh3wgFCAVQoCAgH+DfSAOIBNCgICAf4N9IAcgEEKAgID///////8Ag30gAULn9id+fCALQtOMQ358IAhC0asIfnwgDCANQoCAgH+DfSAEQoOhVn4gACgAHyIWQRh2rSAAMQAjQgiGhCAAMQAkQhCGhEIBiEL///8Ag3wgAkLn9id+fCAGQtOMQ358IAlC0asIfnwgFkEEdkH///8Aca0gA0KDoVZ+fCAEQtGrCH58IAJCmNocfnwgBkLn9id+fCAJQtOMQ358IgxCgIBAfSINQhWHfCIOQoCAQH0iEEIVh3wiB0KDoVZ+fCAKIBJCgICA////AYN9IAFCmNocfnwgC0Ln9id+fCAIQtOMQ358IAdC0asIfnwgDiAQQoCAgH+DfSIKQoOhVn58Ig5CgIBAfSISQhWHfCIQQoCAQH0iE0IVh3wgECATQoCAgH+DfSAOIBJCgICAf4N9IAFCk9gofiAAKAAKIhZBGHatIAAxAA5CCIaEIAAxAA9CEIaEQgGIQv///wCDfCALQpjaHH58IAhC5/YnfnwgB0LTjEN+fCAKQtGrCH58IAwgDUKAgIB/g30gA0LRqwh+IAA1ABxCB4hC////AIN8IARC04xDfnwgBUKDoVZ+fCACQpPYKH58IAZCmNocfnwgCULn9id+fCARQhWHfCIBQoCAQH0iA0IVh3wiAkKDoVZ+fCAWQQR2Qf///wBxrSALQpPYKH58IAhCmNocfnwgB0Ln9id+fCAKQtOMQ358IAJC0asIfnwiBEKAgEB9IgVCFYd8IgZCgIBAfSIJQhWHfCAGIAEgA0KAgIB/g30gD0IVh3wiA0KAgEB9IgtCFYciAUKDoVZ+fCAJQoCAgH+DfSABQtGrCH4gBHwgBUKAgIB/g30gCEKT2Ch+IAA1AAdCB4hC////AIN8IAdCmNocfnwgCkLn9id+fCACQtOMQ358IAdCk9gofiAAKAACIhZBGHatIAAxAAZCCIaEIAAxAAdCEIaEQgKIQv///wCDfCAKQpjaHH58IAJC5/YnfnwiBEKAgEB9IgVCFYd8IgZCgIBAfSIJQhWHfCAGIAFC04xDfnwgCUKAgIB/g30gAULn9id+IAR8IAVCgICAf4N9IBZBBXZB////AHGtIApCk9gofnwgAkKY2hx+fCACQpPYKH4gADMAACAAMQACQhCGQoCA/ACDhHwiAkKAgEB9IgRCFYd8IgVCgIBAfSIGQhWHfCABQpjaHH4gBXwgBkKAgIB/g30gAiAEQoCAgH+DfSABQpPYKH58IgFCFYd8IgVCFYd8IgZCFYd8IglCFYd8IghCFYd8IgdCFYd8IgpCFYd8IhFCFYd8IgxCFYd8Ig1CFYd8Ig9CFYcgAyALQoCAgH+DfXwiBEIVhyICQpPYKH4gAUL///8Ag3wiAzwAACAAIANCCIg8AAEgACACQpjaHH4gBUL///8Ag3wgA0IVh3wiAUILiDwABCAAIAFCA4g8AAMgACADQhCIQh+DIAFCBYaEPAACIAAgAkLn9id+IAZC////AIN8IAFCFYd8IgNCBog8AAYgACADQgKGIAFCgIDgAINCE4iEPAAFIAAgAkLTjEN+IAlC////AIN8IANCFYd8IgFCCYg8AAkgACABQgGIPAAIIAAgAUIHhiADQoCA/wCDQg6IhDwAByAAIAJC0asIfiAIQv///wCDfCABQhWHfCIDQgyIPAAMIAAgA0IEiDwACyAAIANCBIYgAUKAgPgAg0IRiIQ8AAogACACQoOhVn4gB0L///8Ag3wgA0IVh3wiAUIHiDwADiAAIAFCAYYgA0KAgMAAg0IUiIQ8AA0gACAKQv///wCDIAFCFYd8IgJCCog8ABEgACACQgKIPAAQIAAgAkIGhiABQoCA/gCDQg+IhDwADyAAIBFC////AIMgAkIVh3wiAUINiDwAFCAAIAFCBYg8ABMgACAMQv///wCDIAFCFYd8IgM8ABUgACABQgOGIAJCgIDwAINCEoiEPAASIAAgA0IIiDwAFiAAIA1C////AIMgA0IVh3wiAkILiDwAGSAAIAJCA4g8ABggACADQhCIQh+DIAJCBYaEPAAXIAAgD0L///8AgyACQhWHfCIBQgaIPAAbIAAgAUIChiACQoCA4ACDQhOIhDwAGiAAIAFCFYciAyAEQv///wCDfCICQhGIPAAfIAAgAkIJiDwAHiAAIAJCB4YgAUKAgP8Ag0IOiIQ8ABwgACADpyAEp2pBAXatPAAdC4MHAQp/IwBB4ANrIgIkAANAIAJBoAJqIgUgA0EBdGoiBiABIANqLQAAIgdBBHY6AAEgBiAHQQ9xOgAAIANBAXIiBkEBdCAFaiIHIAEgBmotAAAiBkEEdjoAASAHIAZBD3E6AAAgA0ECaiIDQSBHDQALQQAhAQNAIAJBoAJqIARqIgMgAy0AACABaiIBIAFBCGoiAUHwAXFrOgAAIAMgAy0AASABwEEEdWoiASABQQhqIgFB8AFxazoAASADIAMtAAIgAcBBBHVqIgEgAUEIaiIBQfABcWs6AAIgAcBBBHUhASAEQQNqIgRBP0cNAAsgAiACLQDfAiABajoA3wIgAEIANwIgIABCADcCGCAAQgA3AhAgAEIANwIIIABCADcCACAAQgA3AixBASEDIABBATYCKCAAQgA3AjQgAEIANwI8IABCADcCRCAAQoCAgIAQNwJMIABB1ABqQQBBzAD8CwAgAEH4AGohCyAAQdAAaiEHIABBKGohCSACQdABaiEBIAJBqAFqIQYgAkH4AWohBANAIAJBCGoiCCADQQF2IAJBoAJqIANqLAAAECcgAkGAAWoiBSAAIAgQHSAAIAUgBBAHIAkgBiABEAcgByABIAQQByALIAUgBhAHIANBPkkgA0ECaiEDDQALIAIgACkCIDcDiAMgAiAAKQIYNwOAAyACIAApAhA3A/gCIAIgACkCCDcD8AIgAiAAKQIANwPoAiACIAkpAgg3A5gDIAIgCSkCEDcDoAMgAiAJKQIYNwOoAyACIAkpAiA3A7ADIAIgCSkCADcDkAMgAiAHKQIINwPAAyACIAcpAhA3A8gDIAIgBykCGDcD0AMgAiAHKQIgNwPYAyACIAcpAgA3A7gDIAUgAkHoAmoiChASIAogBSAEEAcgAkGQA2oiAyAGIAEQByACQbgDaiIIIAEgBBAHIAUgChASIAogBSAEEAcgAyAGIAEQByAIIAEgBBAHIAUgChASIAogBSAEEAcgAyAGIAEQByAIIAEgBBAHIAUgChASIAAgBSAEEAcgCSAGIAEQByAHIAEgBBAHIAsgBSAGEAdBACEDA0AgAkEIaiIIIANBAXYgAkGgAmogA2osAAAQJyACQYABaiIFIAAgCBAdIAAgBSAEEAcgCSAGIAEQByAHIAEgBBAHIAsgBSAGEAcgA0E+SSADQQJqIQMNAAsgAkHgA2okAAuSDQIGfwN+IwAiBCAEQYAHa0FAcSIEJAAgBCABNgJ8AkAgAUHAAE0EQCABRQ0BIARBwAFqQQBBpQL8CwAgBEL5wvibkaOz8NsANwO4ASAEQuv6htq/tfbBHzcDsAEgBEKf2PnZwpHagpt/NwOoASAEQtGFmu/6z5SH0QA3A6ABIARC8e30+KWn/aelfzcDmAEgBEKr8NP0r+68tzw3A5ABIARCu86qptjQ67O7fzcDiAEgBCABrUKIkveV/8z5hOoAhTcDgAEgBCAEKAJ8NgLgASAEIAQoAuADQQRqIgU2AuADIAOtIQogBEHgAmohCCAEQeABaiEGA0ACQCAFIAZqIQcgCkGAAiAFayIDrSILWA0AIAMEQCAHIAIgA/wKAAALIAQgBCgC4AMgA2o2AuADIAQgBCkDwAEiDEKAAXw3A8ABIAQgBCkDyAEgDEL/flatfDcDyAEgBEGAAWogBhAMIAYgCEGAAfwKAAAgBCAEKALgA0GAAWsiBTYC4AMgAiADaiECIAogC30hCgwBCwsgCqciAwRAIAcgAiAD/AoAAAsgBCAEKALgAyADajYC4AMgBEGAAWogACABEBUaDAELIARBwAFqQQBBpQL8CwAgBEL5wvibkaOz8NsANwO4ASAEQuv6htq/tfbBHzcDsAEgBEKf2PnZwpHagpt/NwOoASAEQtGFmu/6z5SH0QA3A6ABIARC8e30+KWn/aelfzcDmAEgBEKr8NP0r+68tzw3A5ABIARCu86qptjQ67O7fzcDiAEgBELIkveV/8z5hOoANwOAASAEIAQoAnw2AuABIAQgBCgC4ANBBGoiBTYC4AMgA60hCiAEQeACaiEIIARB4AFqIQYDQAJAIAUgBmohByAKQYACIAVrIgOtIgtYDQAgAwRAIAcgAiAD/AoAAAsgBCAEKALgAyADajYC4AMgBCAEKQPAASIMQoABfDcDwAEgBCAEKQPIASAMQv9+Vq18NwPIASAEQYABaiAGEAwgBiAIQYAB/AoAACAEIAQoAuADQYABayIFNgLgAyACIANqIQIgCiALfSEKDAELCyAKpyIDBEAgByACIAP8CgAACyAEIAQoAuADIANqNgLgAyAEQYABaiAEQTBqQcAAEBVBAEgNACAAIAQpAzA3AAAgACAEKQM4NwAIIAAgBCkDSDcAGCAAIARBQGsiAykDADcAECAAQSBqIQIgAUEgayIFQcEATwRAIARBwARqIQADQCAAQQBBpQL8CwAgBEL5wvibkaOz8NsANwO4BCAEQp/Y+dnCkdqCm383A6gEIARC0YWa7/rPlIfRADcDoAQgBELx7fT4paf9p6V/NwOYBCAEQrvOqqbY0Ouzu383A4gEIARCyJL3lf/M+YTqADcDgAQgBCAEKQM4NwPoBCAEIAQpA0g3A/gEIAQgBCkDWDcDiAUgBCAEKQNoNwOYBSAEQuv6htq/tfbBHzcDsAQgBEKr8NP0r+68tzw3A5AEIAQgBCkDYDcDkAUgBCAEKQNQNwOABSAEIAMpAwA3A/AEIAQgBCkDMDcD4AQgBEHAADYC4AYgBEGABGogBEEwakHAABAVGiACIAQpA0g3ABggAiADKQMANwAQIAIgBCkDODcACCACIAQpAzA3AAAgAkEgaiECIAVBIGsiBUHAAEsNAAsLIARBwARqQQBBpQL8CwAgBCAEKQM4NwPoBCAEIARBQGspAwA3A/AEIAQgBCkDSDcD+AQgBCAEKQNQNwOABSAEIAQpA1g3A4gFIAQgBCkDYDcDkAUgBCAEKQNoNwOYBSAEQvnC+JuRo7Pw2wA3A7gEIARC6/qG2r+19sEfNwOwBCAEQp/Y+dnCkdqCm383A6gEIARC0YWa7/rPlIfRADcDoAQgBELx7fT4paf9p6V/NwOYBCAEQqvw0/Sv7ry3PDcDkAQgBEK7zqqm2NDrs7t/NwOIBCAEIAWtQoiS95X/zPmE6gCFNwOABCAEIAQpAzA3A+AEIARBwAA2AuAGIARBgARqIARBMGoiACAFEBUaIAVFDQAgAiAAIAX8CgAACyAEIARBgAFqNgKABEEAIQMDQCAEKAKABCADakEAOgAAIAQoAoAEIANqQQA6AAEgBCgCgAQgA2pBADoAAiAEKAKABCADakEAOgADIANBBHIiACAEKAKABGpBADoAACAEKAKABCAAakEAOgABIAQoAoAEIABqQQA6AAIgBCgCgAQgAGpBADoAAyADQQhqIgNBgANHDQALJAALzQsBB38gACABaiEFAkACQCAAKAIEIgNBAXENACADQQJxRQ0BIAAoAgAiAyABaiEBAkACQAJAIAAgA2siACMBQeiEAmoiBigCFEcEQCAAKAIMIQIgA0H/AU0EQCACIAAoAggiBEcNAiAGIgIgAigCAEF+IANBA3Z3cTYCAAwFCyAAKAIYIQcgACACRwRAIAAoAggiAyACNgIMIAIgAzYCCAwECyAAKAIUIgQEfyAAQRRqBSAAKAIQIgRFDQMgAEEQagshAwNAIAMhBiAEIgJBFGohAyACKAIUIgQNACACQRBqIQMgAigCECIEDQALIAZBADYCAAwDCyAFKAIEIgNBA3FBA0cNAyMBQeiEAmogATYCCCAFIANBfnE2AgQgACABQQFyNgIEIAUgATYCAA8LIAQgAjYCDCACIAQ2AggMAgtBACECCyAHRQ0AAkAjAUHohAJqIgYgACgCHCIDQQJ0aiIEKAKwAiAARgRAIAQgAjYCsAIgAg0BIAYiAiACKAIEQX4gA3dxNgIEDAILAkAgACAHKAIQRgRAIAcgAjYCEAwBCyAHIAI2AhQLIAJFDQELIAIgBzYCGCAAKAIQIgMEQCACIAM2AhAgAyACNgIYCyAAKAIUIgNFDQAgAiADNgIUIAMgAjYCGAsCQAJAAkACQCAFKAIEIgNBAnFFBEAjAUHohAJqIgIoAhggBUYEQCACIgMgADYCGCADIAMoAgwgAWoiATYCDCAAIAFBAXI2AgQgACADKAIURw0GIAMiAEEANgIIIABBADYCFA8LIwFB6IQCaiICKAIUIgggBUYEQCACIgMgADYCFCADIAMoAgggAWoiATYCCCAAIAFBAXI2AgQgACABaiABNgIADwsgA0F4cSABaiEBIAUoAgwhAiADQf8BTQRAIAUoAggiBCACRgRAIwFB6IQCaiICIAIoAgBBfiADQQN2d3E2AgAMBQsgBCACNgIMIAIgBDYCCAwECyAFKAIYIQcgAiAFRwRAIAUoAggiAyACNgIMIAIgAzYCCAwDCyAFKAIUIgQEfyAFQRRqBSAFKAIQIgRFDQIgBUEQagshAwNAIAMhBiAEIgJBFGohAyACKAIUIgQNACACQRBqIQMgAigCECIEDQALIAZBADYCAAwCCyAFIANBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAwDC0EAIQILIAdFDQACQCMBQeiEAmoiBiAFKAIcIgNBAnRqIgQoArACIAVGBEAgBCACNgKwAiACDQEgBiICIAIoAgRBfiADd3E2AgQMAgsCQCAFIAcoAhBGBEAgByACNgIQDAELIAcgAjYCFAsgAkUNAQsgAiAHNgIYIAUoAhAiAwRAIAIgAzYCECADIAI2AhgLIAUoAhQiA0UNACACIAM2AhQgAyACNgIYCyAAIAFBAXI2AgQgACABaiABNgIAIAAgCEcNACMBQeiEAmogATYCCA8LIAFB/wFNBEAjAUHohAJqIgQiAiABQXhxakEoaiEDAn8gAigCACICQQEgAUEDdnQiAXFFBEAgBCABIAJyNgIAIAMMAQsgAygCCAshASADIAA2AgggASAANgIMIAAgAzYCDCAAIAE2AggPC0EfIQIgAUH///8HTQRAIAFBJiABQQh2ZyIDa3ZBAXEgA0EBdGtBPmohAgsgACACNgIcIABCADcCECMBQeiEAmoiByIEIAJBAnRqIgNBsAJqIQYCQAJAIAQoAgQiBEEBIAJ0IgVxRQRAIAcgBCAFcjYCBCADIAA2ArACIAAgBjYCGAwBCyABQRkgAkEBdmtBACACQR9HG3QhAiADKAKwAiEDA0AgAyIEKAIEQXhxIAFGDQIgAkEddiEDIAJBAXQhAiAEIANBBHFqIgYoAhAiAw0ACyAGIAA2AhAgACAENgIYCyAAIAA2AgwgACAANgIIDwsgBCgCCCIBIAA2AgwgBCAANgIIIABBADYCGCAAIAQ2AgwgACABNgIICwuVCQExfyAAKAI8IR0gACgCOCEeIAAoAjQhEiAAKAIwIRMgACgCLCEfIAAoAighICAAKAIkISEgACgCICEiIAAoAhwhIyAAKAIYISQgACgCFCElIAAoAhAhJiAAKAIMIScgACgCCCEoIAAoAgQhKSAAKAIAISojAEFAaiEJA0ACQCADQj9WBEAgAiEFDAELIAlCADcDOCAJQgA3AzAgCUIANwMoIAlCADcDICAJQgA3AxggCUIANwMQIAlCADcDCCAJQgA3AwBBACEEA0AgBCAJaiABIARqLQAAOgAAIAMgBEEBaiIErVYNAAsgCSIFIQEgAiErC0EUIRYgKiEIICkhCiAoIQ4gJyEUICYhBCAlIQIgJCEGICMhByAiIQsgISEPICAhDCAdIRAgHiEXIBIhGCATIQ0gHyERA0AgBCAEIAhqIgQgDXNBEHciCCALaiILc0EMdyINIARqIhUgCHNBCHciCCALaiILIA1zQQd3IgQgByAHIBRqIgcgEHNBEHciECARaiINc0EMdyIRIAdqIgdqIhQgBiAGIA5qIgYgF3NBEHciDiAMaiIMc0EMdyIZIAZqIgYgDnNBCHciGnNBEHciDiACIAIgCmoiAiAYc0EQdyIKIA9qIg9zQQx3IhsgAmoiAiAKc0EIdyIKIA9qIhxqIg8gBHNBDHciBCAUaiIUIA5zQQh3IhcgD2oiDyAEc0EHdyEEIAsgCiAGIAcgEHNBCHciECANaiIGIBFzQQd3IgdqIgpzQRB3IgtqIg0gB3NBDHciByAKaiIOIAtzQQh3IhggDWoiCyAHc0EHdyEHIAYgCCACIAwgGmoiAiAZc0EHdyIGaiIIc0EQdyIMaiIRIAZzQQx3IgYgCGoiCiAMc0EIdyINIBFqIhEgBnNBB3chBiACIBsgHHNBB3ciAiAVaiIIIBBzQRB3IgxqIhUgAnNBDHciAiAIaiIIIAxzQQh3IhAgFWoiDCACc0EHdyECIBZBAmsiFg0ACyABKAAAIRYgASgABCEVIAEoAAghGSABKAAMIRogASgAECEbIAEoABQhHCABKAAYISwgASgAHCEtIAEoACAhLiABKAAkIS8gASgAKCEwIAEoACwhMSABKAAwITIgASgANCEzIAEoADghNCAFIAEoADwgECAdanM2ADwgBSA0IBcgHmpzNgA4IAUgMyASIBhqczYANCAFIDIgDSATanM2ADAgBSAxIBEgH2pzNgAsIAUgMCAMICBqczYAKCAFIC8gDyAhanM2ACQgBSAuIAsgImpzNgAgIAUgLSAHICNqczYAHCAFICwgBiAkanM2ABggBSAcIAIgJWpzNgAUIAUgGyAEICZqczYAECAFIBogFCAnanM2AAwgBSAZIA4gKGpzNgAIIAUgFSAKIClqczYABCAFIBYgCCAqanM2AAAgEiATQQFqIhNFaiESIANCwABYBEAgA0I/WARAIAOnIQFBACEEA0AgBCAraiAEIAVqLQAAOgAAIARBAWoiBCABSQ0ACwsgACASNgI0IAAgEzYCMAUgAUFAayEBIAVBQGshAiADQkB8IQMMAQsLC8cEAg1/A34jAEEQayIDJAAgACkDOCIPQgBSBEAgAEFAayICIA+nIgRqQQE6AAACQCAPQgF8Qg9WDQBBDyAEayIHRQ0AIAAgBGpBwQBqQQAgB/wLAAsgAEEBOgBQIAAgAkIQEBwLIAA1AjQhDyAANQIwIRAgADUCLCERIAEgACgCFCAAKAIkIAAoAiAgACgCHCAAKAIYIgRBGnZqIgJBGnZqIghBGnZqIgdBGnZBBWxqIgVB////H3EiBkEFaiIJQRp2IARB////H3EgBUEadmoiBWoiCkEadiACQf///x9xIgtqIgxBGnYgCEH///8fcSIIaiINQRp2IAdB////H3FqIg5BgICAIGsiAkEfdSIEIAVxIAJBH3ZBAWsiBUH///8fcSICIApxciIKQRp0IAIgCXEgBCAGcXJyIgYgACgCKGoiCTYAACABIAYgCUutIBEgBCALcSACIAxxciIGQRR0IApBBnZyrXx8IhE+AAQgASAQIAQgCHEgAiANcXIiAkEOdCAGQQx2cq18IBFCIIh8IhA+AAggASAPIAUgDnEgBCAHcXJBCHQgAkESdnKtfCAQQiCIfD4ADCADIAA2AgxBACEAA0AgAygCDCAAakEAOgAAIAMoAgwgAGpBADoAASADKAIMIABqQQA6AAIgAygCDCAAakEAOgADIABBBHIiASADKAIMakEAOgAAIAMoAgwgAWpBADoAASADKAIMIAFqQQA6AAIgAygCDCABakEAOgADIABBCGoiAEHYAEcNAAsgA0EQaiQAC80CAQF/IwBB0ABrIgUkACACQgBSBEAgBUKy2ojLx66ZkOsANwIUIAVC5fDBi+aNmZAzNwIMIAUgBCgAADYCHCAFIAQoAAQ2AiAgBSAEKAAINgIkIAUgBCgADDYCKCAFIAQoABA2AiwgBSAEKAAUNgIwIAUgBCgAGDYCNCAEKAAcIQQgBUEBNgI8IAUgBDYCOCAFIAMoAAA2AkAgBSADKAAENgJEIAUgAygACDYCSCAFQQxqIgMgASAAIAIQIyAFIAM2AkxBACEEA0AgBSgCTCAEakEAOgAAIAUoAkwgBGpBADoAASAFKAJMIARqQQA6AAIgBSgCTCAEakEAOgADIARBBHIiACAFKAJMakEAOgAAIAUoAkwgAGpBADoAASAFKAJMIABqQQA6AAIgBSgCTCAAakEAOgADIARBCGoiBEHAAEcNAAsLIAVB0ABqJAAL/gIBAX8jAEHQAGsiAyQAIANCstqIy8eumZDrADcCFCADQuXwwYvmjZmQMzcCDCADIAIoAAA2AhwgAyACKAAENgIgIAMgAigACDYCJCADIAIoAAw2AiggAyACKAAQNgIsIAMgAigAFDYCMCADIAIoABg2AjQgAigAHCECIANBADYCPCADIAI2AjggAyABKAAANgJAIAMgASgABDYCRCADIAEoAAg2AkggAEIANwA4IABCADcAMCAAQgA3ACggAEIANwAgIABCADcAGCAAQgA3ABAgAEIANwAIIABCADcAACADQQxqIgEgACAAQsAAECMgAyABNgJMQQAhAANAIAMoAkwgAGpBADoAACADKAJMIABqQQA6AAEgAygCTCAAakEAOgACIAMoAkwgAGpBADoAAyAAQQRyIgEgAygCTGpBADoAACADKAJMIAFqQQA6AAEgAygCTCABakEAOgACIAMoAkwgAWpBADoAAyAAQQhqIgBBwABHDQALIANB0ABqJAALsgUBCX8jAEGAAWsiAyQAIwEiBUHYiAJqIgQtAAAhBiAAQgA3AgQgAEEBNgIAIABCADcCDCAAQgA3AhQgAEIANwIcIABCgICAgBA3AiQgAEEsakEAQcwA/AsAIAAgBUGwD2ogAUHAB2xqIgEgBC0AAEECdiACIAJBACAGQQJ2IAJBgAFxQQd2cyIFa3FBAXRrIgJBAXNB/wFxQQFrQR92cxATIAAgAUH4AGogBC0AAEECdiACQQJzQf8BcUEBa0EfdnMQEyAAIAFB8AFqIAQtAABBAnYgAkEDc0H/AXFBAWtBH3ZzEBMgACABQegCaiAELQAAQQJ2IAJBBHNB/wFxQQFrQR92cxATIAAgAUHgA2ogBC0AAEECdiACQQVzQf8BcUEBa0EfdnMQEyAAIAFB2ARqIAQtAABBAnYgAkEGc0H/AXFBAWtBH3ZzEBMgACABQdAFaiAELQAAQQJ2IAJBB3NB/wFxQQFrQR92cxATIAAgAUHIBmogBC0AAEECdiACQQhzQf8BcUEBa0EfdnMQEyADIAApAkg3AyggAyAAQUBrKQIANwMgIAMgACkCODcDGCADIAApAjA3AxAgAyAAKQIoNwMIIAMgACkCCDcDOCADQUBrIAApAhA3AwAgAyAAKQIYNwNIIAMgACkCIDcDUCADIAApAgA3AzAgACgCUCEBIAAoAlQhAiAAKAJYIQQgACgCXCEGIAAoAmAhByAAKAJkIQggACgCaCEJIAAoAmwhCiAAKAJwIQsgA0EAIAAoAnRrNgJ8IANBACALazYCeCADQQAgCms2AnQgA0EAIAlrNgJwIANBACAIazYCbCADQQAgB2s2AmggA0EAIAZrNgJkIANBACAEazYCYCADQQAgAms2AlwgA0EAIAFrNgJYIAAgA0EIaiAFEBMgA0GAAWokAAsFABAEAAsFABAoAAuuCAEDfyMAQZABayIDJAAgA0HgAGoiBCABEAYgA0EwaiICIAQQBiACIAIQBiACIAEgAhAHIAQgBCACEAcgBCAEEAYgBCACIAQQByACIAQQBiACIAIQBiACIAIQBiACIAIQBiACIAIQBiAEIAIgBBAHIAIgBBAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAiAEEAcgAyACEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAyADEAYgAiADIAIQByACIAIQBiACIAIQBiACIAIQBiACIAIQBiACIAIQBiACIAIQBiACIAIQBiACIAIQBiACIAIQBiACIAIQBiAEIAIgBBAHIAIgBBAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAiAEEAcgAyACEAZBASECA0AgAyADEAYgAkEBaiICQeQARw0ACyADQTBqIgIgAyACEAcgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgA0HgAGoiBCACIAQQByAEIAQQBiAEIAQQBiAAIAQgARAHIANBkAFqJAALyw8BF38jAEHQAmsiAiQAIABBKGoiBiABEB4gAEIANwJUIABBATYCUCAAQgA3AlwgAEIANwJkIABCADcCbCAAQQA2AnQgAkHwAWoiBSAGEAYgAkHAAWoiBCAFIwFBwAZqEAdBfyEHIAIgAigC8AFBAWsiCDYC8AEgAiACKALAAUEBajYCwAEgAigC9AEhCSACKAL4ASEKIAIoAvwBIQsgAigCgAIhDCACKAKEAiENIAIoAogCIQ4gAigCjAIhDyACKAKQAiEQIAIoApQCIREgAkGQAWoiAyAEEAYgAyADIAQQByAAIAMQBiAAIAAgBBAHIAAgACAFEAcgACAAECogACAAIAMQByAAIAAgBRAHIAJB4ABqIgMgABAGIAMgAyAEEAcgAiACKAKEASIEIBFrNgJUIAIgAigCgAEiAyAQazYCUCACIAIoAnwiBSAPazYCTCACIAIoAngiEiAOazYCSCACIAIoAnQiEyANazYCRCACIAIoAnAiFCAMazYCQCACIAIoAmwiFSALazYCPCACIAIoAmgiFiAKazYCOCACIAIoAmQiFyAJazYCNCACIAIoAmAiGCAIazYCMCACIAJBMGoQDSACQQA6AKACIAIgAi0AACACLQCgAnI6AKACIAIgAi0AASACLQCgAnI6AKACIAIgAi0AAiACLQCgAnI6AKACIAIgAi0AAyACLQCgAnI6AKACIAIgAi0ABCACLQCgAnI6AKACIAIgAi0ABSACLQCgAnI6AKACIAIgAi0ABiACLQCgAnI6AKACIAIgAi0AByACLQCgAnI6AKACIAIgAi0ACCACLQCgAnI6AKACIAIgAi0ACSACLQCgAnI6AKACIAIgAi0ACiACLQCgAnI6AKACIAIgAi0ACyACLQCgAnI6AKACIAIgAi0ADCACLQCgAnI6AKACIAIgAi0A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AowCIAMgESAIazYCiAIgAyAZIAlrNgKEAiADIBcgAms2AoACIANB0AFqIgIgA0GwAmoiPhAGIANBoAFqIgQgA0GAAmoiPxAGIANB8ANqIi8gAiAEEAcgAygCwAEhAiADKALwASEXIAMoArwBIQQgAygC7AEhHyADKAK4ASEHIAMoAugBIRogAygCtAEhCCADKALkASEbIAMoArABIQkgAygC4AEhHCADKAKsASESIAMoAtwBIR0gAygCqAEhDyADKALYASFAIAMoAqQBIRAgAygC1AEhQSADKALEASERIAMoAvQBIUIgAygCoAEhGSADKALQASFDIAMgBSA1cyIFIB4gNHMiHms2AmQgAyAOIDdzIg4gKyA2cyIrazYCYCADIAwgOXMiDCAqIDhzIiprNgJcIAMgCyA7cyILICggOnMiKGs2AlggAyAKID1zIgogJyA8cyInazYCVCADIBMgM3MiEyANIClzIg1rNgJQIAMgFCAycyIUICUgJnMiJWs2AkwgAyAVIDFzIhUgIyAkcyIjazYCSCADIBYgLnMiFiAYICJzIiJrNgJEIAMgLCAtcyIYICAgIXMiIGs2AkAgAyBDIBlrIiQ2AnAgAyBCIBFrIiY2ApQBIAMgQSAQayIpNgJ0IAMgQCAPayIsNgJ4IAMgHSASayIdNgJ8IAMgHCAJayIcNgKAASADIBsgCGsiGzYChAEgAyAaIAdrIho2AogBIAMgHyAEayItNgKMASADIBcgAmsiLjYCkAEgA0FAayIXIBcgPhAHIAMgBSAeajYCNCADIA4gK2o2AjAgAyAMICpqNgIsIAMgCyAoajYCKCADIAogJ2o2AiQgAyANIBNqNgIgIAMgFCAlajYCHCADIBUgI2o2AhggAyAWICJqNgIUIAMgGCAgajYCECADQRBqIgUgBSA/EAcgAygCECEFIAMoAkAhCiADKAIUIQsgAygCRCEMIAMoAhghDiADKAJIIRMgAygCHCEUIAMoAkwhFSADKAIgIRYgAygCUCENIAMoAiQhHiADKAJUIRcgAygCKCEfIAMoAlghICADKAIsISEgAygCXCEiIAMoAjAhGCADKAJgISMgAyADKAI0IiUgAygCZCInajYC5AMgAyAYICNqNgLgAyADICEgImo2AtwDIAMgHyAgajYC2AMgAyAXIB5qNgLUAyADIA0gFmo2AtAD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IAJByBpqIAUgBhAHIAJB8BpqIAYgARAHIAJBmBtqIAMgBRAHIAQgEhAKIAMgFiAEEAkgAkGAGWoiGSADIAEQByACQagZaiAFIAYQByACQdAZaiAGIAEQByACQfgZaiADIAUQByAEIBkQCiADIBYgBBAJIAJB4BdqIhsgAyABEAcgAkGIGGogBSAGEAcgAkGwGGogBiABEAcgAkHYGGogAyAFEAcgBCAbEAogAyAYIAQQCSACQcAWaiIcIAMgARAHIAJB6BZqIAUgBhAHIAJBkBdqIAYgARAHIAJBuBdqIAMgBRAHIAcgAkGAGGopAgA3AwAgCSACQfgXaikCADcDACAMIAJB8BdqKQIANwMAIA0gAkHoF2opAgA3AwAgDiACQZAYaikCADcDACAPIAJBmBhqKQIANwMAIBAgAkGgGGopAgA3AwAgESACQagYaikCADcDACACIAIpAuAXNwOAHiACIAIpAogYNwOoHiATIAJB0BhqKQIANwMAIBQgAkHIGGopAgA3AwAgFSACQcAYaikCADcDACAXIAJBuBhqKQIANwMAIAIgAikCsBg3A9AeIAQgAxASIAJBoBVqIh0gBCAKEAcgAkHIFWogCyAIEAcgAkHwFWogCCAKEAcgAkGYFmogBCALEAcgByACQcAVaikCADcDACAJIAJBuBVqKQIANwMAIAwgAkGwFWopAgA3AwAgDSACQagVaikCADcDACAOIAJB0BVqKQIANwMAIA8gAkHYFWopAgA3AwAgECACQeAVaikCADcDACARIAJB6BVqKQIANwMAIAIgAikCoBU3A4AeIAIgAikCyBU3A6geIBMgAkGQFmopAgA3AwAgFCACQYgWaikCADcDACAVIAJBgBZqKQIANwMAIBcgAkH4FWopAgA3AwAgAiACKQLwFTcD0B4gBCADEBIgAkGAFGoiGiAEIAoQByACQagUaiALIAgQByACQdAUaiAIIAoQByACQfgUaiAEIAsQByAEIBoQCiADIBkgBBAJIAJB4BJqIhogAyABEAcgAkGIE2ogBSAGEAcgAkGwE2ogBiABEAcgAkHYE2ogAyAFEAcgByACQaAUaikCADcDACAJIAJBmBRqKQIANwMAIAwgAkGQFGopAgA3AwAgDSACQYgUaikCADcDACAOIAJBsBRqKQIANwMAIA8gAkG4FGopAgA3AwAgECACQcAUaikCADcDACARIAJByBRqKQIANwMAIAIgAikCgBQ3A4AeIAIgAikCqBQ3A6geIBMgAkHwFGopAgA3AwAgFCACQegUaikCADcDACAVIAJB4BRqKQIANwMAIBcgAkHYFGopAgA3AwAgAiACKQLQFDcD0B4gBCADEBIgAkHAEWoiByAEIAoQByACQegRaiALIAgQByACQZASaiAIIAoQByACQbgSaiAEIAsQByAEIAcQCiADIB0gBBAJIAJBoBBqIgggAyABEAcgAkHIEGogBSAGEAcgAkHwEGogBiABEAcgAkGYEWogAyAFEAcgBCAIEAogAyAYIAQQCSACQYAPaiIMIAMgARAHIAJBqA9qIAUgBhAHIAJB0A9qIAYgARAHIAJB+A9qIAMgBRAHIAQgDBAKIAMgHSAEEAkgAkHgDWoiDyADIAEQByACQYgOaiAFIAYQByACQbAOaiAGIAEQByACQdgOaiADIAUQByAEIA8QCiADIBIgBBAJIAJBwAxqIhAgAyABEAcgAkHoDGogBSAGEAcgAkGQDWogBiABEAcgAkG4DWogAyAFEAcgBCAQEAogAyASIAQQCSACQaALaiITIAMgARAHIAJByAtqIAUgBhAHIAJB8AtqIAYgARAHIAJBmAxqIAMgBRAHIAQgDBAKIAMgByAEEAkgAkGACmoiDSADIAEQByACQagKaiAFIAYQByACQdAKaiAGIAEQByACQfgKaiADIAUQByAEIA0QCiADIBIgBBAJIAJB4AhqIg4gAyABEAcgAkGICWogBSAGEAcgAkGwCWogBiABEAcgAkHYCWogAyAFEAcgBCAOEAogAyAaIAQQCSACQcAHaiIUIAMgARAHIAJB6AdqIAUgBhAHIAJBkAhqIAYgARAHIAJBuAhqIAMgBRAHIAQgDRAKIAMgByAEEAkgAkGgBmoiFSADIAEQByACQcgGaiAFIAYQByACQfAGaiAGIAEQByACQZgHaiADIAUQByAEIA4QCiADIAggBBAJIAJBgAVqIhEgAyABEAcgAkGoBWogBSAGEAcgAkHQBWogBiABEAcgAkH4BWogAyAFEAcgBCAREAogAyAZIAQQCSACQeADaiISIAMgARAHIAJBiARqIAUgBhAHIAJBsARqIAYgARAHIAJB2ARqIAMgBRAHIAQgEhAKIAMgGyAEEAkgAkHAAmoiCSAD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AigCaCELIAIoApQBIQwgAigCbCENIAIoApgBIQ4gAigCcCEPIAIoApwBIRAgAigCdCERIAIoAqABIRIgAigCeCETIAIgAigCfCIUIAIoAqQBIhVqNgKkAiACIBIgE2o2AqACIAIgECARajYCnAIgAiAOIA9qNgKYAiACIAwgDWo2ApQCIAIgCiALajYCkAIgAiAIIAlqNgKMAiACIAYgB2o2AogCIAIgBCAFajYChAIgAiABIANqNgKAAiACIBUgFGs2AvQBIAIgEiATazYC8AEgAiAQIBFrNgLsASACIA4gD2s2AugBIAIgDCANazYC5AEgAiAKIAtrNgLgASACIAggCWs2AtwBIAIgBiAHazYC2AEgAiAEIAVrNgLUASACIAEgA2s2AtABIAJB0AFqIgEgARAXIAIgAkGAAmogARAHIAAgAhANIAJBsAJqJABBAAsQACMAIABrQXBxIgAkACAAC6MDAgJ/AX4CQAJ/QQAgAEUNABogAK0gAa1+IgSnIgIgACABckGAgARJDQAaQX8gAiAEQiCIpxsLIgAQCyIBRQ0AIAFBBGstAABBA3FFDQACQCAARQ0AIAFBADoAACAAIAFqIgJBAWtBADoAACAAQQNJDQAgAUEAOgACIAFBADoAASACQQNrQQA6AAAgAkECa0EAOgAAIABBB0kNACABQQA6AAMgAkEEa0EAOgAAIABBCUkNACABQQAgAWtBA3EiAmoiA0EANgIAIAMgACACa0F8cSIAaiICQQRrQQA2AgAgAEEJSQ0AIANBADYCCCADQQA2AgQgAkEIa0EANgIAIAJBDGtBADYCACAAQRlJDQAgA0EANgIYIANBADYCFCADQQA2AhAgA0EANgIMIAJBEGtBADYCACACQRRrQQA2AgAgAkEYa0EANgIAIAJBHGtBADYCACAAIANBBHFBGHIiAGsiAkEgSQ0AIAAgA2ohAANAIABCADcDGCAAQgA3AxAgAEIANwMIIABCADcDACAAQSBqIQAgAkEgayICQR9LDQALCwsgAQsNABABIABBgAFqEAAACwUAECgAC3UBAX8gAEQAAAAAAAAAABACGgJAIwFB3IgCaigCAEEbQRpBDiAAQQFGGyAAQQJGGyIAQQFrdkEBcQRAIwFB3IkCaiICIAIoAgBBASAAQQFrdHI2AgAMAQsjAUHgggJqIABBAnRqKAIA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NwAoIAcgBCkAIDcAICAHIAQpABg3ABggByAEKQAQNwAQIAcgBCkACDcACCAHIAQpAAA3AAAgCUIANwMIIAlCADcDACAGIwEiBCkDODcDOCAGIAQpAzA3AzAgBiAEKQMoNwMoIAYgBCkDIDcDICAGIAQpAxg3AxggBiAEKQMQNwMQIAYgBCkDCDcDCCAGIAQpAwA3AwAgBiAFQoABEA4gBiABEBEgACAIQQFqIghHDQEMAgsLIAUQCEF9DAELIAUQCCABIAIQGUEARwsgBkHQAWokAAvRBAEHfyMAQdABayIEJAAgAyABKQAANwAAIAMgASkAODcAOCADIAEpADA3ADAgAyABKQAoNwAoIAMgASkAIDcAICADIAEpABg3ABggAyABKQAQNwAQIAMgASkACDcACAJ/AkAgAEEBRgRAQX8gAiABEBkNAhogAyABKQAANwAAIAMgASkAODcAOCADIAEpADA3ADAgAyABKQAoNwAoIAMgASkAIDcAICADIAEpABg3ABggAyABKQAQNwAQIAMgASkACDcACAwBC0F/QYABEAsiBUUNARoCQCAARQ0AIAVBQGshByAEQUBrIQkDQAJAIAIgCEHBAGxqIgohASADIQYCQAJAIApBQGstAAAOAgEAAgsgAyEBIAohBgsgBSABKQAANwAAIAUgASkAODcAOCAFIAEpADA3ADAgBSABKQAoNwAoIAUgASkAIDcAICAFIAEpABg3ABggBSABKQAQNwAQIAUgASkACDcACCAHIAYpADg3ADggByAGKQAwNwAwIAcgBikAKDcAKCAHIAYpACA3ACAgByAGKQAYNwAYIAcgBikAEDcAECAHIAYpAAg3AAggByAGKQAANwAAIAlCADcDCCAJQgA3AwAgBCMBIgEpAzg3AzggBCABKQMwNwMwIAQgASkDKDcDKCAEIAEpAyA3AyAgBCABKQMYNwMYIAQgASkDEDcDECAEIAEpAwg3AwggBCABKQMANwMAIAQgBUKAARAOIAQgAxARIAAgCEEBaiIIRw0BDAILCyAFEAhBfgwCCyAFEAgLQQALIARB0AFqJAAL9AUBDH8jAEHQAWsiBiQAQX8hCAJAIABFDQADQCABIARBBnRqIAIQGQRAIARBAWoiBCAARw0BDAILC0GAARALIgdFBEBBfiEIDAELQQAhCCAAQQFHBEAgB0FAayEFIAZBQGshDgNAIABBAXEhD0EAIQhBACEKA0AgByABIApBBnRqIgIpAAA3AAAgByACQThqKQAANwA4IAcgAkEwaikAADcAMCAHIAJBKGopAAA3ACggByACQSBqKQAANwAgIAcgAkEYaikAADcAGCAHIAJBEGopAAA3ABAgByACQQhqKQAANwAIIApBAXIhDAJAAkACQCAPRQ0AIAAgDEcNACAFIAIpAAA3AAAgBSACKQA4NwA4IAUgAikAMDcAMCAFIAIpACg3ACggBSACKQAgNwAgIAUgAikAGDcAGCAFIAIpABA3ABAgBSACKQAINwAIQQAhDSAEIApGDQEMAgsgBSABIAxBBnRqIgkpAAA3AAAgBSAJKQA4NwA4IAUgCSkAMDcAMCAFIAkpACg3ACggBSAJKQAgNwAgIAUgCSkAGDcAGCAFIAkpABA3ABAgBSAJKQAINwAIIAQgCkYiDUUgBCAMR3ENASAJIAIgDRshAgsgAyALQcEAbGoiBCACKQAANwAAIAQgAikAODcAOCAEIAIpADA3ADAgBCACKQAoNwAoIAQgAikAIDcAICAEIAIpABg3ABggBCACKQAQNwAQIAQgAikACDcACCAEQUBrIA06AAAgC0EBaiELIAghBAsgDkIANwMAIA5CADcDCCAGIwEiAikDODcDOCAGIAIpAzA3AzAgBiACKQMoNwMoIAYgAikDIDcDICAGIAIpAxg3AxggBiACKQMQNwMQIAYgAikDCDcDCCAGIAIpAwA3AwAgBiAHQoABEA4gBiABIAhBBnRqEBEgCEEBaiEIIApBAmoiCiAASQ0ACyAAuEQAAAAAAADgP6Kb/AMiAEEBSw0ACyALQcEAbCEICyAHEAgLIAZB0AFqJAAgCAu3BgEHfyMAQdABayIEJABBgAEQCyIFBH8gAEECTwRAIAVBQGshBiAEQUBrIQkDQEEAIQdBACEIAkAgAEEBcUUEQANAIAUgASAHQQZ0aiIDKQAANwAAIAUgAykAODcAOCAFIAMpADA3ADAgBSADKQAoNwAoIAUgAykAIDcAICAFIAMpABg3ABggBSADKQAQNwAQIAUgAykACDcACCAGIAMpAHg3ADggBiADKQBwNwAwIAYgAykAaDcAKCAGIAMpAGA3ACAgBiADKQBYNwAYIAYgAykAUDcAECAGIAMpAEg3AAggBiADKQBANwAAIAlCADcDCCAJQgA3AwAgBCMBIgMpAzg3AzggBCADKQMwNwMwIAQgAykDKDcDKCAEIAMpAyA3AyAgBCADKQMYNwMYIAQgAykDEDcDECAEIAMpAwg3AwggBCADKQMANwMAIAQgBUKAARAOIAQgASAIQQZ0ahARIAhBAWohCCAHQQJqIgcgAEkNAAwCCwALA0AgBSABIAdBBnRqIgMpAAA3AAAgBSADKQA4NwA4IAUgAykAMDcAMCAFIAMpACg3ACggBSADKQAgNwAgIAUgAykAGDcAGCAFIAMpABA3ABAgBSADKQAINwAIIAYgA0HAAEEAIAdBAXIgAEcbaiIDKQA4NwA4IAYgAykAMDcAMCAGIAMpACg3ACggBiADKQAgNwAgIAYgAykAGDcAGCAGIAMpABA3ABAgBiADKQAINwAIIAYgAykAADcAACAJQgA3AwggCUIANwMAIAQjASIDKQM4NwM4IAQgAykDMDcDMCAEIAMpAyg3AyggBCADKQMgNwMgIAQgAykDGDcDGCAEIAMpAxA3AxAgBCADKQMINwMIIAQgAykDADcDACAEIAVCgAEQDiAEIAEgCEEGdGoQESAIQQFqIQggB0ECaiIHIABJDQALCyAAuEQAAAAAAADgP6Kb/AMiAEEBSw0ACwsgAiABKQAANwAAIAIgASkAODcAOCACIAEpADA3ADAgAiABKQAoNwAoIAIgASkAIDcAICACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCAFEAhBAAVBfwsgBEHQAWokAAu5SQEofyMAQeAIayIEJAACQAJAIAMtAD9BEEkNAEEgIQYgA0EgaiEKQQEhCwNAIAogBkECayINai0AACIMIwFB4A5qIg4gDWotAAAiCWtBCHUgDiAGQQFrIgZqLQAAIgggBiAKai0AACIOc0EBa0EIdSALcSIGcSAOIAhrQQh1IAtxIAdyciEHIAkgDHNBAWtBCHUgBnEhCyANIgYNAAsgBw0AQX8hIQwBC0F/ISEgAi0AH0F/c0H/AHEgAi0AASACLQACIAItAAMgAi0ABCACLQAFIAItAAYgAi0AByACLQAIIAItAAkgAi0ACiACLQALIAItAAwgAi0ADSACLQAOIAItAA8gAi0AECACLQARIAItABIgAi0AEyACLQAUIAItABUgAi0AFiACLQAXIAItABggAi0AGSACLQAaIAItABsgAi0AHCACLQAeIAItAB1xcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcUH/AXNyQQFrQewBIAItAABrcUGAAnENACAEQaACaiINIAIQKw0AIA0QGg0AIARB6ANqIicgAxAeIARCADcCnAQgBEIANwKkBCAEQgA3AqwEIARBADYCtAQgBEIANwKUBCAEQQE2ApAEIARBwAZqIhwgJxAGIARB4ARqIikgHCMBIihBwAZqEAcgBCAEKALgBEEBajYC4AQgBCAEKALABkEBayIiNgLABiAEKALEBiEjIAQoAsgGIR0gBCgCzAYhHiAEKALQBiEVIAQoAtQGIRMgBCgC2AYhFCAEKALcBiEXIAQoAuAGIRggBCgC5AYhGSAEQcADaiIgIBwgKRAHICAgIBAqICAgHCAgEAcgBEGAAWoiDiAgEAYgDiAOICkQByAEIAQoAqQBIhogGWs2AiQgBCAEKAKgASIbIBhrNgIgIAQgBCgCnAEiDyAXazYCHCAEIAQoApgBIgsgFGs2AhggBCAEKAKUASIKIBNrNgIUIAQgBCgCkAEiByAVazYCECAEIAQoAowBIgwgHms2AgwgBCAEKAKIASIJIB1rNgIIIAQgBCgChAEiCCAjazYCBCAEIAQoAoABIgYgIms2AgAgBCAZIBpqNgKkBiAEIBggG2o2AqAGIAQgDyAXajYCnAYgBCALIBRqNgKYBiAEIAogE2o2ApQGIAQgByAVajYCkAYgBCAMIB5qNgKMBiAEIAkgHWo2AogGIAQgCCAjajYChAYgBCAGICJqNgKABiAEQZAIaiIJIAQQDSAEQQA6AMAIIAQgBC0AkAggBC0AwAhyOgDACCAEIAQtAJEIIAQtAMAIcjoAwAggBCAELQCSCCAELQDACHI6AMAIIAQgBC0AkwggBC0AwAhyOgDACCAEIAQtAJQIIAQtAMAIcjoAwAggBCAELQCVCCAELQDACHI6AMAIIAQgBC0AlgggBC0AwAhyOgDACCAEIAQtAJcIIAQtAMAIcjoAwAggBCAELQCYCCAELQDACHI6AMAIIAQgBC0AmQggBC0AwAhyOgDACCAEIAQtAJoIIAQtAMAIcjoAwAggBCAELQCbCCAELQDACHI6AMAIIAQgBC0AnAggBC0AwAhyOgDACCAEIAQtAJ0IIAQtAMAIcjoAwAggBCAELQCeCCAELQDACHI6AMAIIAQgBC0AnwggBC0AwAhyOgDACCAEIAQtAKAIIAQtAMAIcjoAwAggBCAELQChCCAELQDACHI6AMAIIAQgBC0AogggBC0AwAhyOgDACCAEIAQtAKMIIAQtAMAIcjoAwAggBCAELQCkCCAELQDACHI6AMAIIAQgBC0ApQggBC0AwAhyOgDACCAEIAQtAKYIIAQtAMAIcjoAwAggBCAELQCnCCAELQDACHI6AMAIIAQgBC0AqAggBC0AwAhyOgDACCAEIAQtAKkIIAQtAMAIcjoAwAggBCAELQCqCCAELQDACHI6AMAIIAQgBC0AqwggBC0AwAhyOgDACCAEIAQtAKwIIAQtAMAIcjoAwAggBCAELQCtCCAELQDACHI6AMAIIAQgBC0ArgggBC0AwAhyOgDACCAEIAQtAK8IIAQtAMAIcjoAwAggBC0AwAghCCAJIARBgAZqIgYQDSAEQQA6AMAIIAQgBC0AkAggBC0AwAhyOgDACCAEIAQtAJEIIAQtAMAIcjoAwAggBCAELQCSCCAELQDACHI6AMAIIAQgBC0AkwggBC0AwAhyOgDACCAEIAQtAJQIIAQtAMAIcjoAwAggBCAELQCVCCAELQDACHI6AMAIIAQgBC0AlgggBC0AwAhyOgDACCAEIAQtAJcIIAQtAMAIcjoAwAggBCAELQCYCCAELQDACHI6AMAIIAQgBC0AmQggBC0AwAhyOgDACCAEIAQtAJoIIAQtAMAIcjoAwAggBCAELQCbCCAELQDACHI6AMAIIAQgBC0AnAggBC0AwAhyOgDACCAEIAQtAJ0IIAQtAMAIcjoAwAggBCAELQCeCCAELQDACHI6AMAIIAQgBC0AnwggBC0AwAhyOgDACCAEIAQtAKAIIAQtAMAIcjoAwAggBCAELQChCCAELQDACHI6AMAIIAQgBC0AogggBC0AwAhyOgDACCAEIAQtAKMIIAQtAMAIcjoAwAggBCAELQCkCCAELQDACHI6AMAIIAQgBC0ApQggBC0AwAhyOgDACCAEIAQtAKYIIAQtAMAIcjoAwAggBCAELQCnCCAELQDACHI6AMAIIAQgBC0AqAggBC0AwAhyOgDACCAEIAQtAKkIIAQtAMAIcjoAwAggBCAELQCqCCAELQDACHI6AMAIIAQgBC0AqwggBC0AwAhyOgDA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/gCDQg+IhDwALyADIBNC////AIMgCkIVh3wiCUINiDwANCADIAlCBYg8ADMgAyAWQv///wCDIAlCFYd8Igs8ADUgAyAJQgOGIApCgIDwAINCEoiEPAAyIAMgC0IIiDwANiADIBVC////AIMgC0IVh3wiCkILiDwAOSADIApCA4g8ADggAyALQhCIQh+DIApCBYaEPAA3IAMgGUL///8AgyAKQhWHfCIJQgaIPAA7IAMgCUIChiAKQoCA4ACDQhOIhDwAOiADIAlCFYciCyAMQv///wCDfCIKQhGIPAA/IAMgCkIJiDwAPiADIApCB4YgCUKAgP8Ag0IOiIQ8ADwgAyALpyAMp2pBAXatPAA9IAQgCDYCkAVBACEDA0AgBCgCkAUgA2pBADoAACAEKAKQBSADakEAOgABIAQoApAFIANqQQA6AAIgBCgCkAUgA2pBADoAAyADQQRyIgAgBCgCkAVqQQA6AAAgBCgCkAUgAGpBADoAASAEKAKQBSAAakEAOgACIAQoApAFIABqQQA6AAMgA0EIaiIDQcAARw0ACyAEIARBQGs2ApAFQQAhAwNAIAQoApAFIANqQQA6AAAgBCgCkAUgA2pBADoAASAEKAKQBSADakEAOgACIAQoApAFIANqQQA6AAMgA0EEciIAIAQoApAFakEAOgAAIAQoApAFIABqQQA6AAEgBCgCkAUgAGpBADoAAiAEKAKQBSAAakEAOgADIANBCGoiA0HAAEcNAAsgBEHgBWokAEEACywAIAAgASkAIDcAACAAIAEpADg3ABggACABKQAwNwAQIAAgASkAKDcACEEAC+oCAgV/A34jAEGAA2siAyQAIANCADcDSCADIwEiBCkDCDcDCCADIAQpAxA3AxAgAyAEKQMYNwMYIAMgBCkDIDcDICADQShqIgUgBCkDKDcDACADIAQpAzA3AzAgAyAEKQM4NwM4IANCADcDQCADIAQpAwA3AwAgAyACQiAQDiADIAEQESABIAEtAABB+AFxOgAAIAEgAS0AH0E/cUHAAHI6AB8gAyABECAgA0GwAmoiBCADQdAAahAXIANBgAJqIgYgAyAEEAcgA0HQAWoiByAFIAQQByAAIAcQDSADQeACaiAGEA0gACAALQAfIAMtAOACQQd0czoAHyACKQAIIQggAikAECEJIAIpAAAhCiABIAIpABg3ABggASAJNwAQIAEgCDcACCABIAo3AAAgACkACCEIIAApABAhCSAAKQAAIQogASAAKQAYNwA4IAEgCTcAMCABIAg3ACggASAKNwAgIANBgANqJABBAAuWGwIKfwN+IwAiCCEMIAhBwARrQUBxIgckAEEgEAsiCEUEQCAMJABBfw8LQSAQCyIJRQRAIAgQCCAMJABBfg8LIABBDGshECAHQgA3A8gBIAcjASIAKQMINwOIASAHIAApAxA3A5ABIAcgACkDGDcDmAEgByAAKQMgNwOgASAHIAApAyg3A6gBIAcgACkDMDcDsAEgByAAKQM4NwO4ASAHQgA3A8ABIAcgACkDADcDgAEgB0GAAWoiACADQiAQDiAAIAdBIGoiABARIAcgBy0AIEH4AXE6ACAgByAHLQA/QT9xQcAAcjoAPyAJIAcpAzA3ABAgCSAHKQMoNwAIIAkgBykDIDcAACAJIAcpAzg3ABggByAANgKAAUEAIQADQCAHKAKAASAAakEAOgAAIAcoAoABIABqQQA6AAEgBygCgAEgAGpBADoAAiAHKAKAASAAakEAOgADIABBBHIiAyAHKAKAAWpBADoAACAHKAKAASADakEAOgABIAcoAoABIANqQQA6AAIgBygCgAEgA2pBADoAAyAAQQhqIgBBwABHDQALIAggCRAuBEAgCBAIIAkQCCAMJABBfA8LQSAQCyINIAIQLQRAIA0QCCAIEAggCRAIIAwkAEF6DwtBIBALIgNFBEAgDRAIIAgQCCAJEAggDCQAQXkPCyADQtu37969+/btWzcAACADQtu37969+/btWzcAGCADQtu37969+/btWzcAECADQtu37969+/btWzcACCAHQeAAaiIAIAkgDRAsRQRAIAdBwAFqQQBBpQL8CwAgByAHKQNoNwPoASAHIAcpA3A3A/ABIAcgBykDeDcD+AEgB0L5wvibkaOz8NsANwO4ASAHQuv6htq/tfbBHzcDsAEgB0Kf2PnZwpHagpt/NwOoASAHQtGFmu/6z5SH0QA3A6ABIAdC8e30+KWn/aelfzcDmAEgB0Kr8NP0r+68tzw3A5ABIAdCu86qptjQ67O7fzcDiAEgB0LIkveV/8z5hOoANwOAASAHIAcpA2A3A+ABIAcgBygC4ANBIGoiAjYC4AMgByAANgK8BCAHKAK8BEEAOgAAIAcoArwEQQA6AAEgBygCvARBADoAAiAHKAK8BEEAOgADIAcoArwEQQA6AAQgBygCvARBADoABSAHKAK8BEEAOgAGIAcoArwEQQA6AAcgBygCvARBADoACCAHKAK8BEEAOgAJIAcoArwEQQA6AAogBygCvARBADoACyAHKAK8BEEAOgAMIAcoArwEQQA6AA0gBygCvARBADoADiAHKAK8BEEAOgAPIAcoArwEQQA6ABAgBygCvARBADoAESAHKAK8BEEAOgASIAcoArwEQQA6ABMgBygCvARBADoAFCAHKAK8BEEAOgAVIAcoArwEQQA6ABYgBygCvARBADoAFyAHKAK8BEEAOgAYIAcoArwEQQA6ABkgBygCvARBADoAGiAHKAK8BEEAOgAbIAcoArwEQQA6ABwgBygCvARBADoAHSAHKAK8BEEAOgAeIAcoArwEQQA6AB8gB0HgAmohDyAHQeABaiEKQiAhESAIIQADQAJAIAIgCmohDiARQYACIAJrIgutIhJYDQAgCwRAIA4gACAL/AoAAAsgByAHKALgAyALajYC4AMgByAHKQPAASITQoABfDcDwAEgByAHKQPIASATQv9+Vq18NwPIASAHQYABaiAKEAwgCiAPQYAB/AoAACAHIAcoAuADQYABayICNgLgAyAAIAtqIQAgESASfSERDAELCyARpyICBEAgDiAAIAL8CgAACyAHIAcoAuADIAJqIgI2AuADQiAhESANIQADQAJAIAIgCmohDiARQYACIAJrIgutIhJYDQAgCwRAIA4gACAL/AoAAAsgByAHKALgAyALajYC4AMgByAHKQPAASITQoABfDcDwAEgByAHKQPIASATQv9+Vq18NwPIASAHQYABaiAKEAwgCiAPQYAB/AoAACAHIAcoAuADQYABayICNgLgAyAAIAtqIQAgESASfSERDAELCyARpyICBEAgDiAAIAL8CgAACyAHIAcoAuADIAJqNgLgAyAHQYABaiIAIAdBIGpBwAAQFRogByAANgK8BEEAIQADQCAHKAK8BCAAakEAOgAAIAcoArwEIABqQQA6AAEgBygCvAQgAGpBADoAAiAHKAK8BCAAakEAOgADIABBBHIiAiAHKAK8BGpBADoAACAHKAK8BCACakEAOgABIAcoArwEIAJqQQA6AAIgBygCvAQgAmpBADoAAyAAQQhqIgBBgANHDQALQQAhAANAIAAgA2oiAiAAIAdqQUBrLQAAOgAAIAIgB0EgaiIKIABBIXJqLQAAOgABIAIgAEEiciAKai0AADoAAiACIABBI3IgCmotAAA6AAMgAEEEaiIAQSBHDQALIAcgCjYCvARBACEAA0AgBygCvAQgAGpBADoAACAHKAK8BCAAakEAOgABIAcoArwEIABqQQA6AAIgBygCvAQgAGpBADoAAyAAQQRyIgIgBygCvARqQQA6AAAgBygCvAQgAmpBADoAASAHKAK8BCACakEAOgACIAcoArwEIAJqQQA6AAMgAEEIaiIAQcAARw0ACyANEAggCBAIIAkQCCABQQxqIQggBK0hEiMAQfACayIAJAACQAJAIBCtIhNCEFQNACAAQSBqIgIgASADECYgAEIANwJ8IABBADYChAEgAEIANwJ0IABBADoAsAEgAEIANwOYASAAIAAoAjA2AogBIAAgACkCNDcCjAEgACAAKAI8NgKUASAAIAAoAiBB////H3E2AmAgACAAKAAjQQJ2QYP+/x9xNgJkIAAgACgBJkEEdkH/gf8fcTYCaCAAIAAoAClBBnZB///AH3E2AmwgACAAKAIsQQh2Qf//P3E2AnAgACACNgLsAkEAIQIDQCAAKALsAiACakEAOgAAIAAoAuwCIAJqQQA6AAEgACgC7AIgAmpBADoAAiAAKALsAiACakEAOgADIAJBBHIiBCAAKALsAmpBADoAACAAKALsAiAEakEAOgABIAAoAuwCIARqQQA6AAIgACgC7AIgBGpBADoAAyACQQhqIgJBwABHDQALIABB4ABqIgIgBSASEBAgAiMBQeCAAmoiBEIAIBJ9Qg+DEBAgAiAIIBNCEH0iERAQIAIgBEIAIBN9Qg+DEBAgACASNwMYIAIgAEEYaiIEQggQECAAIBE3AxggAiAEQggQECACIAAQJCAAIAI2AuwCQQAhAgNAIAAoAuwCIAJqQQA6AAAgACgC7AIgAmpBADoAASAAKALsAiACakEAOgACIAAoAuwCIAJqQQA6AAMgAkEEciIEIAAoAuwCakEAOgAAIAAoAuwCIARqQQA6AAEgACgC7AIgBGpBADoAAiAAKALsAiAEakEAOgADIAJBCGoiAkGAAkcNAAsgACAANgLsAiAAIAggE6dqQRBrNgLoAiAAQQA7AeYCIAAgAC8B5gIgACgC7AItAAAgACgC6AItAABzcjsB5gIgACAALwHmAiAAKALsAi0AASAAKALoAi0AAXNyOwHmAiAAIAAvAeYCIAAoAuwCLQACIAAoAugCLQACc3I7AeYCIAAgAC8B5gIgACgC7AItAAMgACgC6AItAANzcjsB5gIgACAALwHmAiAAKALsAi0ABCAAKALoAi0ABHNyOwHmAiAAIAAvAeYCIAAoAuwCLQAFIAAoAugCLQAFc3I7AeYCIAAgAC8B5gIgACgC7AItAAYgACgC6AItAAZzcjsB5gIgACAALwHmAiAAKALsAi0AByAAKALoAi0AB3NyOwHmAiAAIAAvAeYCIAAoAuwCLQAIIAAoAugCLQAIc3I7AeYCIAAgAC8B5gIgACgC7AItAAkgACgC6AItAAlzcjsB5gIgACAALwHmAiAAKALsAi0ACiAAKALoAi0ACnNyOwHmAiAAIAAvAeYCIAAoAuwCLQALIAAoAugCLQALc3I7AeYCIAAgAC8B5gIgACgC7AItAAwgACgC6AItAAxzcjsB5gIgACAALwHmAiAAKALsAi0ADSAAKALoAi0ADXNyOwHmAiAAIAAvAeYCIAAoAuwCLQAOIAAoAugCLQAOc3I7AeYCIAAgAC8B5gIgACgC7AItAA8gACgC6AItAA9zcjsB5gIgACAALwHmAkEBazsB5gIgACMBQdqIAmovAQBBAnYgAC8B5gJBD3ZzOwHmAiAALwHmAiAAIAA2AuwCIAAoAuwCQQA6AAAgACgC7AJBADoAASAAKALsAkEAOgACIAAoAuwCQQA6AAMgACgC7AJBADoABCAAKALsAkEAOgAFIAAoAuwCQQA6AAYgACgC7AJBADoAByAAKALsAkEAOgAIIAAoAuwCQQA6AAkgACgC7AJBADoACiAAKALsAkEAOgALIAAoAuwCQQA6AAwgACgC7AJBADoADSAAKALsAkEAOgAOIAAoAuwCQQA6AA9BAWshAgJAIAYEQCACRQ0BIBGnIgFFDQIgBkEAIAH8CwAMAgtCACARIAIbIREMAgsgBiAIIBEgASADECVBACECDAELQgAhEUF/IQILIAcgETcDgAEgAEHwAmokACADEAggDCQAQXdBACACGw8LIA0QCCAIEAggCRAIIAMQCCAMJABBeAsRACMBQeSEAmpBAEH8BPwLAAvpFAIKfwN+IwAiCyEOIAtBwARrQUBxIggkAEEgEAsiC0UEQCAOJABBfw8LQSAQCyIKRQRAIAsQCCAOJABBfg8LIAhCADcDyAEgCCMBIgkpAwg3A4gBIAggCSkDEDcDkAEgCCAJKQMYNwOYASAIIAkpAyA3A6ABIAggCSkDKDcDqAEgCCAJKQMwNwOwASAIIAkpAzg3A7gBIAhCADcDwAEgCCAJKQMANwOAASAIQYABaiIJIANCIBAOIAkgCEEgaiIDEBEgCCAILQAgQfgBcToAICAIIAgtAD9BP3FBwAByOgA/IAogCCkDMDcAECAKIAgpAyg3AAggCiAIKQMgNwAAIAogCCkDODcAGCAIIAM2AoABQQAhAwNAIAgoAoABIANqQQA6AAAgCCgCgAEgA2pBADoAASAIKAKAASADakEAOgACIAgoAoABIANqQQA6AAMgA0EEciIJIAgoAoABakEAOgAAIAgoAoABIAlqQQA6AAEgCCgCgAEgCWpBADoAAiAIKAKAASAJakEAOgADIANBCGoiA0HAAEcNAAsgCyAKEC4EQCALEAggChAIIA4kAEF8DwtBIBALIg9FBEAgCxAIIAoQCCAOJABBew8LIA8gAhAtBEAgDxAIIAsQCCAKEAggDiQAQXoPC0EgEAsiCUUEQCAPEAggCxAIIAoQCCAOJABBeQ8LIAlC27fv3r379u1bNwAAIAlC27fv3r379u1bNwAYIAlC27fv3r379u1bNwAQIAlC27fv3r379u1bNwAIIAhB4ABqIgMgCiAPECxFBEAgCEHAAWpBAEGlAvwLACAIIAgpA2g3A+gBIAggCCkDcDcD8AEgCCAIKQN4NwP4ASAIQvnC+JuRo7Pw2wA3A7gBIAhC6/qG2r+19sEfNwOwASAIQp/Y+dnCkdqCm383A6gBIAhC0YWa7/rPlIfRADcDoAEgCELx7fT4paf9p6V/NwOYASAIQqvw0/Sv7ry3PDcDkAEgCEK7zqqm2NDrs7t/NwOIASAIQsiS95X/zPmE6gA3A4ABIAggCCkDYDcD4AEgCCAIKALgA0EgaiICNgLgAyAIIAM2ArwEIAgoArwEQQA6AAAgCCgCvARBADoAASAIKAK8BEEAOgACIAgoArwEQQA6AAMgCCgCvARBADoABCAIKAK8BEEAOgAFIAgoArwEQQA6AAYgCCgCvARBADoAByAIKAK8BEEAOgAIIAgoArwEQQA6AAkgCCgCvARBADoACiAIKAK8BEEAOgALIAgoArwEQQA6AAwgCCgCvARBADoADSAIKAK8BEEAOgAOIAgoArwEQQA6AA8gCCgCvARBADoAECAIKAK8BEEAOgARIAgoArwEQQA6ABIgCCgCvARBADoAEyAIKAK8BEEAOgAUIAgoArwEQQA6ABUgCCgCvARBADoAFiAIKAK8BEEAOgAXIAgoArwEQQA6ABggCCgCvARBADoAGSAIKAK8BEEAOgAaIAgoArwEQQA6ABsgCCgCvARBADoAHCAIKAK8BEEAOgAdIAgoArwEQQA6AB4gCCgCvARBADoAHyAIQeACaiERIAhB4AFqIQxCICESIA8hAwNAAkAgAiAMaiEQIBJBgAIgAmsiDa0iE1gNACANBEAgECADIA38CgAACyAIIAgoAuADIA1qNgLgAyAIIAgpA8ABIhRCgAF8NwPAASAIIAgpA8gBIBRC/35WrXw3A8gBIAhBgAFqIAwQDCAMIBFBgAH8CgAAIAggCCgC4ANBgAFrIgI2AuADIAMgDWohAyASIBN9IRIMAQsLIBKnIgIEQCAQIAMgAvwKAAALIAggCCgC4AMgAmoiAjYC4ANCICESIAshAwNAAkAgAiAMaiEQIBJBgAIgAmsiDa0iE1gNACANBEAgECADIA38CgAACyAIIAgoAuADIA1qNgLgAyAIIAgpA8ABIhRCgAF8NwPAASAIIAgpA8gBIBRC/35WrXw3A8gBIAhBgAFqIAwQDCAMIBFBgAH8CgAAIAggCCgC4ANBgAFrIgI2AuADIAMgDWohAyASIBN9IRIMAQsLIBKnIgIEQCAQIAMgAvwKAAALIAggCCgC4AMgAmo2AuADIAhBgAFqIgIgCEEgakHAABAVGiAIIAI2ArwEQQAhAwNAIAgoArwEIANqQQA6AAAgCCgCvAQgA2pBADoAASAIKAK8BCADakEAOgACIAgoArwEIANqQQA6AAMgA0EEciICIAgoArwEakEAOgAAIAgoArwEIAJqQQA6AAEgCCgCvAQgAmpBADoAAiAIKAK8BCACakEAOgADIANBCGoiA0GAA0cNAAtBACEDA0AgAyAJaiICIAMgCGpBQGstAAA6AAAgAiAIQSBqIgwgA0EhcmotAAA6AAEgAiADQSJyIAxqLQAAOgACIAIgA0EjciAMai0AADoAAyADQQRqIgNBIEcNAAsgCCAMNgK8BEEAIQMDQCAIKAK8BCADakEAOgAAIAgoArwEIANqQQA6AAEgCCgCvAQgA2pBADoAAiAIKAK8BCADakEAOgADIANBBHIiAiAIKAK8BGpBADoAACAIKAK8BCACakEAOgABIAgoArwEIAJqQQA6AAIgCCgCvAQgAmpBADoAAyADQQhqIgNBwABHDQALIA8QCCALEAggChAIIAdBDGohAyAFrSETIwBB4AJrIgIkAAJAIACtIhJC8P///w9UBEAgAkEQaiIAIAQgCRAmIAJCADcCbCACQQA2AnQgAkIANwJkIAJBADoAoAEgAkIANwOIASACIAIoAiA2AnggAiACKQIkNwJ8IAIgAigCLDYChAEgAiACKAIQQf///x9xNgJQIAIgAigAE0ECdkGD/v8fcTYCVCACIAIoARZBBHZB/4H/H3E2AlggAiACKAAZQQZ2Qf//wB9xNgJcIAIgAigCHEEIdkH//z9xNgJgIAIgADYCCEEAIQADQCACKAIIIABqQQA6AAAgAigCCCAAakEAOgABIAIoAgggAGpBADoAAiACKAIIIABqQQA6AAMgAEEEciIFIAIoAghqQQA6AAAgAigCCCAFakEAOgABIAIoAgggBWpBADoAAiACKAIIIAVqQQA6AAMgAEEIaiIAQcAARw0ACyACQdAAaiIAIAYgExAQIAAjAUHggAJqIgVCACATfUIPgxAQIAMgASASIAQgCRAlIAAgAyASEBAgACAFQgAgEn1CD4MQECACIBM3AwggACACQQhqIgFCCBAQIAIgEjcDCCAAIAFCCBAQIAAgAyASp2oQJCACIAA2AtwCQQAhAANAIAIoAtwCIABqQQA6AAAgAigC3AIgAGpBADoAASACKALcAiAAakEAOgACIAIoAtwCIABqQQA6AAMgAEEEciIBIAIoAtwCakEAOgAAIAIoAtwCIAFqQQA6AAEgAigC3AIgAWpBADoAAiACKALcAiABakEAOgADIABBCGoiAEGAAkcNAAsgCCASQhB8NwOAASACQeACaiQADAELECkACyAJEAggByAEKAAINgAIIAcgBCkAADcAACAOJABBAA8LIA8QCCALEAggChAIIAkQCCAOJABBeAuNJAILfwN+IwAiBCENIARBgBJrQUBxIgQkACABIAJGBEAgDSQAQX0PC0EgEAsiDEUEQCAN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");var g=function(e){return A(e.instance,e.module)}(await S(0,h,e));return g}();return function A(e=g){f>0||f>0?u=A:(I.calledRun=!0,E||(l=!0,Y(d),MA.__wasm_call_ctors(),Y(eA),a?.(I)))}(),(()=>{var A=null,e=0;function g(){if(A&&l){var e=A;A=null,e.forEach(A=>onmessage(A))}}function t(){g(),A&&setTimeout(t,100)}onmessage=i=>{if(!l)return A||(A=[],setTimeout(t,100)),void A.push(i);g();var o=I["_"+i.data.funcName];if(!o)throw"invalid worker function to call: "+i.data.funcName;var n=i.data.data;n&&(n.byteLength||(n=new Uint8Array(n)),e=yA(e,n.length),B.set(n,e)),i.data.callbackId,n?o(e,n.length):o(0,0)}})(),l?I:new Promise((A,e)=>{a=A,r=e})}A.exports=e,A.exports.default=e}(gt);var tt=It(gt.exports);const it=async(A,e,I,g)=>{if(A.length%Le!==0)throw new Error("Hashes were not passed");const t=A.length/Le;if(0===t)throw new Error("Cannot calculate Merkle proof of element of empty tree.");if(1===t){const A=new Uint8Array(Le+1);if(A.set(e),g){const e=Le+1,I=window.crypto.getRandomValues(new Uint8Array(g));let t=0;const i=4;return new DataView(I.buffer,t,i).setUint32(0,e,!1),t+=i,I.set(A,t),I}return A}const i=I?.wasmMemory??$g(t),o=I??await tt({wasmMemory:i}),n=o._malloc(t*Le),C=new Uint8Array(i.buffer,n,t*Le);C.set(A);const a=o._malloc(Le),r=new Uint8Array(i.buffer,a,Le);r.set(e);const s=t*(Le+1),B=o._malloc(s),c=new Uint8Array(i.buffer,B,s),Q=o._get_merkle_proof(t,C.byteOffset,r.byteOffset,c.byteOffset);switch(o._free(n),o._free(a),Q){case-1:throw o._free(B),new Error("Element not in tree.");case-2:throw o._free(B),new Error("Could not allocate memory for hash concatenation helper array.");case-3:throw o._free(B),new Error("Could not calculate hash.");default:if(Q>0){if(g&&g>=Q){const A=window.crypto.getRandomValues(new Uint8Array(g));let e=0;const I=4;return new DataView(A.buffer,e,I).setUint32(0,Q,!1),e+=I,A.set(c.slice(0,Q),e),o._free(B),A}{const A=Uint8Array.from([...c.slice(0,Q)]);return o._free(B),A}}throw o._free(B),new Error("An unexpected error occured")}},ot=(A,e)=>new Promise((I,g)=>{try{A===e&&I(A);const g=e-A,t=Math.ceil(Math.log2(g)/8),i=Math.pow(Math.pow(2,8),t),o=Math.floor(i/g)*g;let n=new Uint8Array(t),C=o;for(;C>=o;){n=window.crypto.getRandomValues(n),C=0;for(let A=0;A<t;A++)C<<=8,C+=n[A];C<o&&(C%=g,I(A+C))}I(C)}catch(A){g(A)}}),nt=async(A,e,I=!0,g=!0,t=!0)=>{if(e||(e=A),0===e&&A===e)return"";const i=e>A?await ot(A,e):A,o=await((A,e=!0,I=!0,g=!0)=>new Promise((t,i)=>{try{let i="";e&&(i+="abcdefghijklmnopqrstuvwxyz"),I&&(i+="ABCDEFGHIJKLMNOPQRSTUVWXYZ"),g&&(i+="0123456789");let o="";const n=window.crypto.getRandomValues(new Uint8Array(A));for(let e=0;e<A;e++)o+=i[n[e]%i.length];t(o)}catch(A){i(A)}}))(i,I,g,t);return o},Ct=async A=>{const e=A.length;if(e<2)return A;const I=[...A];for(let A=e-1;A>0;A--){const e=await ot(0,A+1),g=I[A];I[A]=I[e],I[e]=g}return I},at=4+48*(Le+1),rt=Re+Pe+xg+at+ze+qe,st=65536-rt,Bt=[1],ct="CANCEL_SEND",Qt=async(A,e,I,g,t=1,i=st,o=.9,n=1)=>{const{keyPair:C}=e.getState();if(t<1)throw new Error("Need at least one chunk.");if(o<1e-4||o>1)throw new Error("Percentage of useful data in chunk should be in (0, 1].");if(!Bt.includes(n))throw new Error("Unknown metadata version schema.");if(i>st||i<=rt)throw new Error(`Chunk length needs to be between ${String(rt)} and ${String(st)}`);let a=!1;window.addEventListener(ct,()=>{a=!0});const r=(A=>{if("string"==typeof A)return Ug.Text;const e=A.name.split(".").pop()?.toLowerCase()??"";return{png:Ug.ImagePNG,jpeg:Ug.ImageJPEG,jpg:Ug.ImageJPG,gif:Ug.ImageGIF,bmp:Ug.ImageBMP,tiff:Ug.ImageTIFF,svg:Ug.ImageSVG,webp:Ug.ImageWEBP,heic:Ug.ImageHEIC,pdf:Ug.DocumentPDF,doc:Ug.DocumentDOC,docx:Ug.DocumentDOCX,xls:Ug.DocumentXLS,xlsx:Ug.DocumentXLSX,ppt:Ug.DocumentPPT,pptx:Ug.DocumentPPTX,txt:Ug.DocumentTXT,rtf:Ug.DocumentRTF,odt:Ug.DocumentODT,mp3:Ug.AudioMP3,wav:Ug.AudioWAV,aac:Ug.AudioAAC,flac:Ug.AudioFLAC,ogg:Ug.AudioOGG,m4a:Ug.AudioM4A,mp4:Ug.VideoMP4,avi:Ug.VideoAVI,mkv:Ug.VideoMKV,mov:Ug.VideoMOV,wmv:Ug.VideoWMV,flv:Ug.VideoFLV,webm:Ug.VideoWEBM,zip:Ug.CompressedZIP,rar:Ug.CompressedRAR,"7z":Ug.Compressed7Z,tar:Ug.CompressedTAR,gz:Ug.CompressedGZ,html:Ug.CodeHTML,css:Ug.CodeCSS,js:Ug.CodeJS,ts:Ug.CodeTS,jsx:Ug.CodeJSX,tsx:Ug.CodeTSX,json:Ug.CodeJSON,xml:Ug.CodeXML,py:Ug.CodePY,java:Ug.CodeJAVA,c:Ug.CodeC,cpp:Ug.CodeCPP,cs:Ug.CodeCS,rb:Ug.CodeRB,php:Ug.CodePHP,sql:Ug.CodeSQL,epub:Ug.EbookEPUB,mobi:Ug.EbookMOBI,azw:Ug.EbookAZW,ttf:Ug.FontTTF,otf:Ug.FontOTF,ico:Ug.ImageICO,exe:Ug.ExecutableEXE,dmg:Ug.ExecutableDMG,apk:Ug.ExecutableAPK}[e]||Ug.Unknown})(A),s=r===Ug.Text?await nt(256):A.name.slice(0,255),B="string"==typeof A?(new TextEncoder).encode(A):A,c=await navigator.storage.estimate(),Q=(c.quota??10737418240)-(c.usage??65536),E="string"==typeof A?B.length:B.size;if(E>Q)throw new Error("Not enough space to save the file in the browser.");if(E<1)throw new Error("No data to split in chunks");const l=new Date,w=await window.crypto.subtle.digest("SHA-512",E<10485760?"string"==typeof A?B.buffer:await B.arrayBuffer():"string"==typeof A?B.slice(0,10485760).buffer:await B.slice(0,10485760).arrayBuffer()),d=new Uint8Array(w),h=Jg(d),f={schemaVersion:n,messageType:r,hash:d,name:s,totalSize:E,date:l};let u=0;const y=Math.max(t,Math.ceil(E/(i*o))),D=new Uint8Array(i),m=new Uint8Array(y*Le);for(let t=0;t<y&&!a;t++){window.crypto.getRandomValues(D);const n=await ot(0,Math.floor(i*(1-o))),a=E-u,c=Math.min(Math.max(a,0),Math.ceil(i*o));let Q=n+c;if(a>0){const e=B.slice(u,u+c);if("string"==typeof A)D.set(e,n);else{const A=await e.arrayBuffer();D.set(new Uint8Array(A),n)}u+=c}else{const A=Q+E+1,e=Number.MAX_SAFE_INTEGER-A;Q+=await ot(A,e)}const w=await window.crypto.subtle.digest("SHA-512",D),d=new Uint8Array(w),p=Jg(d);m.set(d,t*Le);const S=qg({...f,chunkStartIndex:n,chunkEndIndex:Q,chunkIndex:t});try{await Fg({hash:h,merkleRoot:"",chunkIndex:t,realChunkHash:p,data:D.buffer,metadata:S.buffer,merkleProof:(new Uint8Array).buffer})}catch{}e.dispatch(nI({roomId:g.id,merkleRootHex:"",sha512Hex:h,fromPeerId:C.peerId,chunkSize:0,totalSize:E,chunksCreated:t+1,totalChunks:y,messageType:r,filename:s,channelLabel:I,timestamp:l.getTime()}))}if(a)return await Ng(void 0,void 0,h),e.dispatch(sI({hashHex:h})),{merkleRoot:new Uint8Array,merkleRootHex:"",hash:new Uint8Array,hashHex:"",totalChunks:0,totalSize:0,messageType:0,chunkHashes:new Uint8Array};const p=$g(y),S=await tt({wasmMemory:p}),k=await(async(A,e)=>{if(A.length%Le!==0)throw new Error("Hashes were not passed");const I=A.length/Le;if(0===I)throw new Error("Cannot calculate Merkle root of tree with no leaves.");if(1===I)return A;const g=e?.wasmMemory??_g(I),t=e??await tt({wasmMemory:g}),i=t._malloc(I*Le),o=new Uint8Array(g.buffer,i,I*Le);o.set(A);const n=t._malloc(Le),C=new Uint8Array(g.buffer,n,Le),a=t._get_merkle_root(I,o.byteOffset,C.byteOffset);switch(t._free(i),a){case 0:{const A=Uint8Array.from([...C]);return t._free(n),A}case-1:throw t._free(n),new Error("Could not allocate memory for hash concatenation helper array.");case-2:throw t._free(n),new Error("Could not calculate hash.");default:throw t._free(n),new Error("Unexpected error occured.")}})(m,S),M=Jg(k);try{await mg(g.id,M,h,C.peerId,E,E,r,s,I,l.getTime())}catch(A){console.error(A)}return e.dispatch(nI({roomId:g.id,merkleRootHex:M,sha512Hex:h,fromPeerId:C.peerId,chunkSize:0,totalSize:E,chunksCreated:y,totalChunks:y,messageType:r,filename:s,channelLabel:I,timestamp:l.getTime()})),a?(await Ng(M),e.dispatch(sI({merkleRootHex:M})),{merkleRoot:new Uint8Array,merkleRootHex:"",hash:new Uint8Array,hashHex:"",totalChunks:0,totalSize:0,messageType:0,chunkHashes:new Uint8Array}):(window.removeEventListener(ct,()=>{}),{merkleRoot:k,merkleRootHex:M,hash:d,hashHex:h,totalSize:E,totalChunks:y,messageType:r,chunkHashes:m})},Et=async(A,e,I,g,t)=>{const i=A.length,o=g.length,n=t?.wasmMemory??Wg(i,o),C=t??await tt({wasmMemory:n}),a=C._malloc(i*Uint8Array.BYTES_PER_ELEMENT),r=new Uint8Array(n.buffer,a,i*Uint8Array.BYTES_PER_ELEMENT);r.set(A);const s=C._malloc(Re),B=new Uint8Array(n.buffer,s,Re);B.set(e);const c=C._malloc(xe),Q=new Uint8Array(n.buffer,c,xe);Q.set(I);const E=C._malloc(ze),l=new Uint8Array(n.buffer,E,ze),w=window.crypto.getRandomValues(new Uint8Array(ze));l.set(w);const d=C._malloc(o*Uint8Array.BYTES_PER_ELEMENT),h=new Uint8Array(n.buffer,d,o*Uint8Array.BYTES_PER_ELEMENT);h.set(g);const f=Xe(i),u=C._malloc(f*Uint8Array.BYTES_PER_ELEMENT),y=new Uint8Array(n.buffer,u,f*Uint8Array.BYTES_PER_ELEMENT),D=C._encrypt_chachapoly_asymmetric(i,r.byteOffset,B.byteOffset,Q.byteOffset,l.byteOffset,o,h.byteOffset,y.byteOffset);switch(C._free(a),C._free(s),C._free(c),C._free(E),C._free(d),D){case 0:{const A=Uint8Array.from([...y]);return C._free(u),A}case-1:throw C._free(u),new Error("Could not allocate memory for the ephemeral x25519 public key array.");case-2:throw C._free(u),new Error("Could not allocate memory for the ephemeral x25519 secret key array.");case-3:throw C._free(u),new Error("Could not convert Ed25519 secret key to X25519.");case-4:throw C._free(u),new Error("Could not calculate x25519 public key from x25519 secret key.");case-5:throw C._free(u),new Error("Could not allocate memory for the receiver's ed25519 converted to x25519 public key array.");case-6:throw C._free(u),new Error("Could not convert Ed25519 public key to X25519.");case-7:throw C._free(u),new Error("Could not allocate memory for the shared secret.");case-8:throw C._free(u),new Error("Could not calculate the shared secret.");case-9:throw C._free(u),new Error("Could not encrypt.");default:throw C._free(u),new Error("An unexpected error occured.")}},lt=async(A,e,I,g,t)=>{const i=A.length,o=g.length,n=t?.wasmMemory??Zg(i,o),C=t??await tt({wasmMemory:n}),a=We(i),r=C._malloc(i*Uint8Array.BYTES_PER_ELEMENT),s=new Uint8Array(n.buffer,r,i*Uint8Array.BYTES_PER_ELEMENT);s.set(A);const B=C._malloc(Re),c=new Uint8Array(n.buffer,B,Re);c.set(e);const Q=C._malloc(xe),E=new Uint8Array(n.buffer,Q,xe);E.set(I);const l=C._malloc(o*Uint8Array.BYTES_PER_ELEMENT),w=new Uint8Array(n.buffer,l,o*Uint8Array.BYTES_PER_ELEMENT);w.set(g);const d=C._malloc(a*Uint8Array.BYTES_PER_ELEMENT),h=new Uint8Array(n.buffer,d,a*Uint8Array.BYTES_PER_ELEMENT),f=C._decrypt_chachapoly_asymmetric(i,s.byteOffset,c.byteOffset,E.byteOffset,o,w.byteOffset,h.byteOffset);switch(C._free(r),C._free(B),C._free(Q),C._free(l),f){case 0:{const A=Uint8Array.from([...h]);return C._free(d),A}case-1:throw C._free(d),new Error("Could not allocate memory for the ed25519 converted to x25519 public key array.");case-2:throw C._free(d),new Error("Could not allocate memory for the ed25519 converted to x25519 secret key array.");case-3:throw C._free(d),new Error("Could not convert receiver ed25519 secret key to x25519.");case-4:throw C._free(d),new Error("Could not generate x25519 public key from x25519 secret key.");case-5:throw C._free(d),new Error("Could not allocate memory for the ed25519 converted to x25519 receiver public key.");case-6:throw C._free(d),new Error("Could not convert receiver ed25519 public key to x25519.");case-7:throw C._free(d),new Error("Could not allocate memory for the shared secret.");case-8:throw C._free(d),new Error("Could not calculate the shared secret.");case-9:throw C._free(d),new Error("Could not decrypt");default:throw C._free(d),new Error("Unsuccessful decryption attempt")}},wt=async(A,e,I,g,t)=>{const{keyPair:i,rooms:o}=g.getState(),n=Rg(i.secretKey),C=o.findIndex(A=>A.id===e);if(C>-1){const a=o[C].peers,r=o[C].channels,s=t?r.findIndex(A=>A.label===t):0;if(-1===s)throw new Error("No channel with label "+t);const{merkleRoot:B,merkleRootHex:c,hashHex:Q,totalSize:E,totalChunks:l}=await Qt(A,g,t,o[C]),w=r[s].peerIds.length;for(let A=0;A<w;A++){const o=r[s].peerIds[A],C=a.findIndex(A=>A.peerId===o);if(-1===C)continue;const w=a[C].peerPublicKey,d=Rg(w),h=Array.from({length:l},(A,e)=>e),f=await Ct(h);for(let A=0;A<l;A++){const C=f[A],a=await pg(Q,C);if(!a)continue;const l=Og(new Uint8Array(a.data).slice(0,xg));l.chunkStartIndex<l.chunkEndIndex?g.dispatch(nI({roomId:e,merkleRootHex:c,sha512Hex:Q,fromPeerId:i.peerId,chunkSize:l.chunkEndIndex-l.chunkStartIndex,totalSize:E,messageType:l.messageType,filename:l.name,channelLabel:t??r[s].label})):await Hg(c,l.chunkIndex);const w=await Et(new Uint8Array(a.data),d,n,B,I),h=await Pg([B,w]);g.dispatch(Wt.endpoints.sendMessage.initiate({content:{type:"message",message:Jg(h),roomId:e,fromPeerId:i.peerId,toPeerId:o,label:t}}))}}}},dt=async A=>{const e=A?.wasmMemory??Tg(),I=A??await tt({wasmMemory:e}),g=I._malloc(Re),t=new Uint8Array(e.buffer,g,Re),i=I._malloc(xe),o=new Uint8Array(e.buffer,i,xe),n=I._malloc(Je),C=new Uint8Array(e.buffer,n,Je);window.crypto.getRandomValues(C);const a=I._keypair_from_seed(t.byteOffset,o.byteOffset,C.byteOffset);if(I._free(n),0===a){const A={publicKey:Uint8Array.from(t),secretKey:Uint8Array.from(o)};return I._free(g),I._free(i),A}throw I._free(g),I._free(i),new Error("An unexpected error occured.")},ht=async(A,e,I)=>{const g=A.length,t=I?I.wasmMemory:Vg(g),i=I??await tt({wasmMemory:t}),o=i._malloc(g*Uint8Array.BYTES_PER_ELEMENT),n=new Uint8Array(t.buffer,o,g*Uint8Array.BYTES_PER_ELEMENT);n.set(A);const C=i._malloc(Pe),a=new Uint8Array(t.buffer,C,Pe),r=i._malloc(xe),s=new Uint8Array(t.buffer,r,xe);s.set(e),i._sign(g,n.byteOffset,s.byteOffset,a.byteOffset);const B=Uint8Array.from([...a]);return i._free(o),i._free(C),i._free(r),B},ft=async(A,e,I,g)=>{const t=A.length,i=g?g.wasmMemory:Xg(t),o=g??await tt({wasmMemory:i}),n=o._malloc(t*Uint8Array.BYTES_PER_ELEMENT),C=new Uint8Array(i.buffer,n,t*Uint8Array.BYTES_PER_ELEMENT);C.set(A);const a=o._malloc(Pe),r=new Uint8Array(i.buffer,a,Pe);r.set(e);const s=o._malloc(Re),B=new Uint8Array(i.buffer,s,Re);B.set(I);const c=o._verify(t,C.byteOffset,B.byteOffset,r.byteOffset);return o._free(n),o._free(a),o._free(s),0===c},ut=(A,e)=>new Promise((I,g)=>{try{(A.length<=0||A.length>32)&&g(new Error("Label larger than 128 characters")),"string"==typeof e&&e.length!==2*Le?g(new Error("Merkle root hex should be 128 bytes")):"string"!=typeof e&&e.length!==Le&&g(new Error("Merkle root should be 64 bytes"));let t="";const i=(new TextEncoder).encode(A),o=new Uint8Array(32);o.set(i.subarray(0,Math.min(32,i.length))),t+=Jg(o),t+="~",t+="string"==typeof e?e:Jg(e),I(t)}catch(A){g(A)}}),yt=A=>new Promise((e,I)=>{try{const g=A.split("~"),t=g.length;2!==t&&t>1?I(new Error("Channel message label needs to have 2 components.")):1===t&&e({channelLabel:A,merkleRootHex:"",merkleRoot:new Uint8Array});const i=Rg(g[0]);32!==i.length&&I(new Error("Channel label is not 128 bytes long."));const o=(new TextDecoder).decode(i).replace(/\0+$/,""),n=Rg(g[1]);n.length!==Le&&I(new Error("Merkle root has invalid length")),e({channelLabel:o,merkleRoot:n,merkleRootHex:g[1]})}catch(A){I(A)}}),Dt=A=>new Promise(e=>{setTimeout(e,A)}),mt=async(A,e,I,g,t,i,o,n,C)=>{let a=!1;const r=o.withPeerPublicKey,s=Rg(r),{merkleRootHex:B}=await yt(A.label),c=Array.from({length:I},(A,e)=>e),Q=await Ct(c);for(let o=0;o<I;o++){const I=Q[o],r=await dt(n),c=await ht(r.publicKey,e,n),E=await pg(i,I);if(!E)continue;const l=new Uint8Array(E.metadata),w=Og(l);if(w.chunkStartIndex>=0&&w.chunkEndIndex>w.chunkStartIndex&&w.chunkEndIndex-w.chunkStartIndex<=w.totalSize){const A=bg(w.messageType);try{await Mg({merkleRoot:B,hash:i,chunkIndex:w.chunkIndex,data:E.data.slice(w.chunkStartIndex,w.chunkEndIndex),mimeType:A})}catch(A){console.error(A)}}const d=new Uint8Array(at);if(0===E.merkleProof.byteLength){const A=await it(g,Rg(E.realChunkHash),C,at);d.set(A);try{await Fg({hash:i,merkleRoot:B,realChunkHash:E.realChunkHash,chunkIndex:I,data:E.data,metadata:E.metadata,merkleProof:d.buffer})}catch(A){console.warn(A)}}else if(d.set(new Uint8Array(E.merkleProof)),0===E.merkleRoot.length)try{await Fg({hash:i,merkleRoot:B,realChunkHash:E.realChunkHash,chunkIndex:I,data:E.data,metadata:E.metadata,merkleProof:E.merkleProof})}catch(A){console.warn(A)}const h=await Pg([l,d,new Uint8Array(E.data)]),f=await Et(h,s,r.secretKey,t,n),u=await Pg([r.publicKey,c,f]),y=await ot(1,10);if(await Dt(y),"open"===A.readyState&&A.bufferedAmount<Mt)A.send(u.buffer);else{if("closed"===A.readyState){console.log("Cannot send message because channel is "+A.readyState+" and bufferedAmount is "+A.bufferedAmount);break}a=!0;try{await Kg({position:I,label:A.label,toPeerId:A.withPeerId,encryptedData:u.buffer})}catch(A){console.error(A)}}}if(a)for(;"open"===A.readyState&&A.bufferedAmount<Mt;){const e=await Sg(A.label,o.withPeerId);for(;e.length>0&&A.bufferedAmount<Mt&&"open"===A.readyState;){const I=await ot(1,10);await Dt(I);let g=await ot(0,e.length);g===e.length&&(g=0);const[t]=e.splice(g,1);if("open"===A.readyState){A.send(t.encryptedData);try{await Yg(A.label,o.withPeerId,t.position)}catch(A){console.error(A)}}}}},pt=async(A,e,I,g,t)=>{try{const i=t.filter(A=>A.label===e.label),o=Jg(A),{channelLabel:n,merkleRootHex:C}=await yt(e.label),a=I.messages.findIndex(A=>A.merkleRootHex===C);if(a<0)return;const r=I.messages[a].sha512Hex;if(o===r){const A=I.messages.findLastIndex(A=>A.merkleRootHex===C||A.sha512Hex===r);A>-1&&g.dispatch(CI({roomId:I.id,merkleRootHex:C,sha512Hex:r,fromPeerId:I.messages[A].fromPeerId,totalSize:I.messages[A].totalSize,messageType:I.messages[A].messageType,filename:I.messages[A].filename,channelLabel:n,timestamp:I.messages[A].timestamp}))}else{const A=await pg(o),e=A?.chunkIndex??-1;if(A&&e>-1){const A=I.messages.findLastIndex(A=>A.merkleRootHex===C||A.sha512Hex===r),t=await((A,e)=>dg("getDBChunk",A,e))(C,e),a=t?.byteLength??0;t&&a>0&&A>-1?(I.messages[A].savedSize+a===I.messages[A].totalSize||I.messages[A].savedSize===I.messages[A].totalSize?g.dispatch(CI({roomId:I.id,merkleRootHex:C,sha512Hex:r,fromPeerId:I.messages[A].fromPeerId,totalSize:I.messages[A].totalSize,messageType:I.messages[A].messageType,filename:I.messages[A].filename,channelLabel:n,timestamp:I.messages[A].timestamp})):g.dispatch(nI({roomId:I.id,merkleRootHex:C,sha512Hex:r,fromPeerId:I.messages[A].fromPeerId,chunkSize:a,totalSize:I.messages[A].totalSize,messageType:I.messages[A].messageType,filename:I.messages[A].filename,channelLabel:n,timestamp:I.messages[A].timestamp})),1===i.length&&await Ng(void 0,o)):-1===A&&console.log("No message with hex "+r)}}}catch(A){throw console.error(A),A}},St=async(A,e,I,g,t,i,o)=>{try{const a=new Uint8Array(A),r=a.slice(0,Re),s=a.slice(Re,Re+Pe);if(!await ft(r,s,I,i))return{date:new Date,chunkIndex:-1,chunkSize:0,receivedFullSize:!1,messageAlreadyExists:!1,chunkAlreadyExists:!1,savedSize:0,totalSize:0,messageType:Ug.Text,filename:"",chunkHash:new Uint8Array,messageHash:new Uint8Array};const B=a.slice(Re+Pe),c=await lt(B,r,g,e,i),Q=Og(c.slice(0,xg)),E=Q.chunkEndIndex-Q.chunkStartIndex>Q.totalSize?0:Q.chunkEndIndex-Q.chunkStartIndex,l=E>0?c.slice(xg+at+Q.chunkStartIndex,xg+at+Q.chunkEndIndex):c.slice(xg+at),w=await window.crypto.subtle.digest("SHA-512",c.slice(xg+at)),d=new Uint8Array(w);if(0===E)return{date:Q.date,chunkIndex:-1,chunkSize:0,receivedFullSize:!1,messageAlreadyExists:!1,chunkAlreadyExists:!1,savedSize:0,totalSize:Q.totalSize,messageType:Q.messageType,filename:Q.name,chunkHash:d,messageHash:Q.hash};const h=Jg(e),f=t.messages.findLastIndex(A=>A.merkleRootHex===h),u=await(n=h,C=Q.chunkIndex,dg("existsDBChunk",n,C)),y=await yg(h),D=null!=y&&y.savedSize===y.totalSize||f>-1&&t.messages[f].totalSize===t.messages[f].savedSize,m=-1===f||!y||t.messages[f].totalSize>=t.messages[f].savedSize+E&&!u,p=D||f>-1&&!u&&t.messages[f].totalSize===t.messages[f].savedSize+E||-1===f&&E===Q.totalSize;if(!m)return{date:Q.date,chunkIndex:-1,chunkSize:0===E?0:-1===f?-1:-2,receivedFullSize:p,messageAlreadyExists:null!=y,chunkAlreadyExists:u,savedSize:f>-1?t.messages[f].savedSize:y?y.savedSize:0,totalSize:Q.totalSize,messageType:Q.messageType,filename:Q.name,chunkHash:d,messageHash:Q.hash};const S=c.slice(xg,xg+at),k=new DataView(S.buffer,S.byteOffset,4).getUint32(0,!1);if(k>at)return{date:Q.date,chunkIndex:-1,chunkSize:-3,receivedFullSize:p,messageAlreadyExists:null!=y,chunkAlreadyExists:u,savedSize:f>-1?t.messages[f].savedSize:y?y.savedSize:0,totalSize:Q.totalSize,messageType:Q.messageType,filename:Q.name,chunkHash:d,messageHash:Q.hash};const M=S.slice(4,4+k),F=c.slice(xg+at),K=await(async(A,e,I,g)=>{const t=I.length;if(t%(Le+1)!==0)throw new Error("Proof length not multiple of hash length + 1.");const i=t/(Le+1),o=g?.wasmMemory??At(t),n=g??await tt({wasmMemory:o}),C=n._malloc(Le),a=new Uint8Array(o.buffer,C,Le),r=await window.crypto.subtle.digest("SHA-512",A);a.set(new Uint8Array(r));const s=n._malloc(Le),B=new Uint8Array(o.buffer,s,Le);B.set(e);const c=n._malloc(t),Q=new Uint8Array(o.buffer,c,t);Q.set(I);const E=n._verify_merkle_proof(i,a.byteOffset,B.byteOffset,Q.byteOffset);switch(n._free(C),n._free(s),n._free(c),E){case 0:return!0;case 1:return!1;case-1:throw new Error("If 1 artifact then proof is its hash");case-2:throw new Error("Could not allocate memory for hashes helper array.");case-3:throw new Error("Proof artifact position is neither left nor right.");case-4:throw new Error("Could not calculate hash.");default:throw new Error("Unexpected error occured.")}})(F,e,M,o);if(!K)return{date:Q.date,chunkIndex:-1,chunkSize:-4,receivedFullSize:p,messageAlreadyExists:null!=y,chunkAlreadyExists:u,savedSize:f>-1?t.messages[f].savedSize:y?y.savedSize:0,totalSize:Q.totalSize,messageType:Q.messageType,filename:Q.name,chunkHash:d,messageHash:Q.hash};const H=bg(Q.messageType);try{return u||await Mg({merkleRoot:h,hash:Jg(Q.hash),chunkIndex:Q.chunkIndex,data:l.buffer,mimeType:H}),{date:Q.date,chunkIndex:Q.chunkIndex,chunkSize:E,receivedFullSize:p,messageAlreadyExists:null!=y,chunkAlreadyExists:u,savedSize:f>-1?t.messages[f].savedSize:y?y.savedSize:0,totalSize:Q.totalSize,messageType:Q.messageType,filename:Q.name,chunkHash:d,messageHash:Q.hash}}catch(A){return{date:Q.date,chunkIndex:Q.chunkIndex,chunkSize:0,receivedFullSize:null!=y&&p,messageAlreadyExists:null!=y,chunkAlreadyExists:u,savedSize:f>-1?t.messages[f].savedSize:y?y.savedSize:0,totalSize:0,messageType:Q.messageType,filename:Q.name,chunkHash:d,messageHash:Q.hash}}}catch(A){throw console.error(A),A}var n,C},kt=65536,Mt=131072,Ft=({channel:A,epc:e,roomId:I,dataChannels:g,decryptionModule:t,merkleModule:i},o)=>{const{keyPair:n}=o.getState();if("string"==typeof A){const I=g.findIndex(I=>I.label===A&&I.withPeerId===e.withPeerId);if(I>-1&&"open"===g[I].readyState)return g[I]}const C="string"==typeof A?A:A.label,a="string"==typeof A?e.createDataChannel(A,{ordered:!1,protocol:"raw"}):A;a.binaryType="arraybuffer",a.bufferedAmountLowThreshold=kt,a.onbufferedamountlow=async()=>{for(;"open"===a.readyState;){const A=await Sg(C,e.withPeerId);if(0===A.length)break;for(;A.length>0&&a.bufferedAmount<Mt&&"open"===a.readyState;){const I=await ot(1,10);await Dt(I);let g=await ot(0,A.length);g===A.length&&(g=0);const[t]=A.splice(g,1);"open"===a.readyState&&(a.send(t.encryptedData),await Yg(C,e.withPeerId,t.position))}}};const r=a;return r.withPeerId=e.withPeerId,r.roomIds=[I],r.onclose=async()=>{console.log(`Channel with label ${r.label} has closed.`),await o.dispatch(Rt.endpoints.disconnectFromPeerChannelLabel.initiate({peerId:e.withPeerId,label:r.label})),"main"===r.label&&o.dispatch(AI({roomId:I,connectingToPeers:!0}))},r.onerror=async A=>{console.error(A),await o.dispatch(Wt.endpoints.disconnectWebSocket.initiate()),await o.dispatch(Rt.endpoints.disconnectFromPeerChannelLabel.initiate({peerId:e.withPeerId,label:r.label})),o.dispatch(AI({roomId:I,connectingToPeers:!0}))},r.onmessage=async A=>{try{const{channelLabel:a,merkleRoot:s,merkleRootHex:B}=await yt(C),c=e.withPeerPublicKey,Q=Rg(c),E=Rg(n.secretKey),{rooms:l}=o.getState(),w=l.findIndex(A=>A.id===I);if(w>-1){const n=A.data;if(n.byteLength===Le)await pt(new Uint8Array(n),r,l[w],o,g);else if(n.byteLength===kt){const{date:A,chunkSize:g,chunkIndex:C,receivedFullSize:c,totalSize:d,messageType:h,filename:f,chunkHash:u,messageHash:y}=await St(n,s,Q,E,l[w],t,i);d>0&&u.length===Le&&"open"===r.readyState&&r.send(u.buffer);const D=Jg(y);c?(await mg(I,B,D,e.withPeerId,d,d,h,f,a,A.getTime()),"open"===r.readyState&&r.send(y.buffer),o.dispatch(CI({roomId:I,merkleRootHex:B,sha512Hex:D,fromPeerId:e.withPeerId,totalSize:d,messageType:h,filename:f,channelLabel:a,timestamp:A.getTime(),alsoSendFinishedMessage:!0}))):g>0&&C>-1&&(await mg(I,B,D,e.withPeerId,g,d,h,f,a,A.getTime()),o.dispatch(nI({roomId:I,merkleRootHex:B,sha512Hex:D,fromPeerId:e.withPeerId,chunkSize:g,totalSize:d,messageType:h,filename:f,channelLabel:a,timestamp:A.getTime()})))}else console.error("Unrecognized data size")}}catch(A){console.error(A)}},r.onopen=async()=>{try{console.log(`Channel with label "${r.label}" and client ${e.withPeerId} is open.`),g.push(r);const A=await yt(C);""===A.merkleRootHex&&A.channelLabel.length>0&&o.dispatch(iI({roomId:I,label:C,peerId:r.withPeerId}))}catch(A){console.error(A)}},r},Kt=async A=>{for(;A.iceCandidates.length>0&&"stable"===A.signalingState&&A.remoteDescription;){const e=A.iceCandidates.shift();if(e){const I=new RTCIceCandidate(e);I.usernameFragment!==e.usernameFragment&&await A.addIceCandidate(I)}}},Ht=async({peerId:e,peerPublicKey:I,roomId:g,initiator:t,rtcConfig:i},o)=>new Promise((n,C)=>{try{const{keyPair:a}=o.getState();t??=!0,i??=Ze,t&&console.log(`You are initiating a peer connection with ${e}.`),A.isUUID(e)||C(new Error("PeerId is not a valid uuidv4")),64!==I.length&&C(new Error("Peer public key is not a valid length"));const r=new RTCPeerConnection(i);r.withPeerId=e,r.withPeerPublicKey=I,r.roomIds=[g],r.iceCandidates=[],r.onnegotiationneeded=async()=>{if("stable"===r.signalingState)try{await r.setLocalDescription(),r.localDescription&&(await o.dispatch(Wt.endpoints.sendMessage.initiate({content:{type:"description",description:r.localDescription,fromPeerId:a.peerId,fromPeerPublicKey:a.publicKey,toPeerId:e,roomId:g}})),console.log(`Negotiation was needed with ${e} and you sent a description ${r.localDescription.type}.`))}catch(A){console.error(A)}},r.onicecandidate=async({candidate:A})=>{A&&""!==A.candidate&&await o.dispatch(Wt.endpoints.sendMessage.initiate({content:{type:"candidate",candidate:A,fromPeerId:a.peerId,toPeerId:e,roomId:g}}))},r.onicecandidateerror=A=>{console.error(A)},r.oniceconnectionstatechange=async()=>{if("failed"===r.iceConnectionState){const{signalingServer:A}=o.getState();!A.isConnected&&!A.isEstablishingConnection&&A.serverUrl.length>0&&await o.dispatch(Wt.endpoints.connectWebSocket.initiate(A.serverUrl)),r.restartIce()}console.log(`ICE candidate connection state with ${e} is ${r.iceConnectionState}.`)},r.onicegatheringstatechange=()=>{console.log(`ICE gathering state with ${e} is ${r.iceGatheringState}.`)},r.onsignalingstatechange=async()=>{console.log(`Signaling state with ${e} is ${r.signalingState}.`),"stable"===r.signalingState&&r.remoteDescription&&await Kt(r)},r.onconnectionstatechange=async()=>{"closed"===r.connectionState||"failed"===r.connectionState||"disconnected"===r.connectionState?(console.error(`Connection with peer ${e} has ${r.connectionState}.`),await o.dispatch(Rt.endpoints.disconnectFromPeer.initiate({peerId:e}))):(console.log(`Connection status with peer ${e} is ${r.connectionState}.`),"connected"===r.connectionState&&o.dispatch(tI({roomId:g,peerId:e,peerPublicKey:I})))},n(r)}catch(A){C(A)}}),Nt=async({data:A,label:e,roomId:I,peerConnections:g,dataChannels:t,encryptionWasmMemory:i,decryptionWasmMemory:o,merkleWasmMemory:n,minChunks:C,chunkSize:a,percentageFilledChunk:r,metadataSchemaVersion:s},B)=>{const c=await tt({wasmMemory:i}),Q=await tt({wasmMemory:o}),E=await tt({wasmMemory:n});return await(async(A,e,I,g,t,i,o,n,C,a=1,r=st,s=.9,B=1)=>{try{const{rooms:c,keyPair:Q}=e.getState(),E=Rg(Q.secretKey),l=c.findIndex(A=>A.id===g);if(l>-1){const Q=c[l].channels.findIndex(A=>A.label===I);if(-1===Q)throw new Error("No channel with label "+I);const{merkleRoot:w,merkleRootHex:d,hashHex:h,totalChunks:f,chunkHashes:u}=await Qt(A,e,I,c[l],a,r,s,B);if(0===w.length||0===h.length||0===f||0===u.length)return;const y=await ut(I,d),D=c[l].channels[Q].peerIds.length,m=[];for(let A=0;A<D;A++){const I=t.findIndex(e=>e.withPeerId===c[l].channels[Q].peerIds[A]);if(-1===I)continue;const a=Ft({channel:y,epc:t[I],roomId:g,dataChannels:i,decryptionModule:n,merkleModule:C},e);m.push(mt(a,E,f,u,w,h,t[I],o,C))}await Promise.allSettled(m)}}catch(A){console.trace(A)}})(A,B,e,I,g,t,c,Q,E,C,a,r,s),{data:void 0}},Yt=async({alsoDeleteDB:A,peerConnections:e,dataChannels:I},g)=>{const t=I.length;for(let A=0;A<t;A++)"open"===I[A].readyState&&I[A].close();const i=e.length;for(let A=0;A<i;A++)g.dispatch(aI({peerId:e[A].withPeerId})),e[A].ontrack=null,e[A].ondatachannel=null,e[A].onicecandidate=null,e[A].onicecandidateerror=null,e[A].onnegotiationneeded=null,e[A].onsignalingstatechange=null,e[A].onconnectionstatechange=null,e[A].onicegatheringstatechange=null,e[A].oniceconnectionstatechange=null,"closed"!==e[A].connectionState&&e[A].close(),delete e[A],e.splice(A,1);return A&&await dg("deleteDB"),{data:void 0}},Ut=async({roomId:A,deleteMessages:e,peerConnections:I,dataChannels:g},t)=>{const i=g.length;for(let e=0;e<i;e++){if(!g[e]||!g[e].roomIds.includes(A)||"open"!==g[e].readyState)continue;const I=g[e].roomIds.findIndex(e=>e===A);I>-1&&(g[e].roomIds.splice(I,1),0===g[e].roomIds.length&&g[e].close())}const o=I.length;for(let e=0;e<o;e++){if(!I[e]||!I[e].roomIds.includes(A)||"connected"!==I[e].connectionState)continue;const g=I[e].roomIds.findIndex(e=>e===A);g>-1&&(I[e].roomIds.splice(g,1),0===I[e].roomIds.length&&(I[e].ontrack=null,I[e].ondatachannel=null,I[e].onicecandidate=null,I[e].onicecandidateerror=null,I[e].onnegotiationneeded=null,I[e].onsignalingstatechange=null,I[e].onconnectionstatechange=null,I[e].onicegatheringstatechange=null,I[e].oniceconnectionstatechange=null,I[e].close(),t.dispatch(aI({peerId:I[e].withPeerId})),delete I[e],I.splice(e,1)))}if(e){if((await ug()).findIndex(e=>e.roomId===A)>-1){await(A=>dg("deleteDBUniqueRoom",A))(A);const e=await Dg(A),I=e.length;for(let A=0;A<I;A++)t.dispatch(sI({merkleRootHex:e[A].merkleRoot}))}}return{data:void 0}},Gt=[],vt=[],bt=[],Lt=Wg(65536-Le-ze-qe,Le),Pt=Zg(65536,Le),Jt=At(192*(Le+1)),Rt=cg({reducerPath:"webrtcApi",baseQuery:async({peerId:A,peerPublicKey:e,roomId:I,initiator:g,rtcConfig:t,peerConnections:i,dataChannels:o,decryptionWasmMemory:n,merkleWasmMemory:C},a)=>{const{keyPair:r}=a.getState();if(A===r.peerId)throw new Error("Cannot create a connection with oneself.");const s=await tt({wasmMemory:n}),B=await tt({wasmMemory:C});if(await fg(A))return{data:void 0};const c=i.findIndex(e=>e.withPeerId===A);if(-1===c){const n=await Ht({peerId:A,peerPublicKey:e,roomId:I,initiator:g,rtcConfig:t},a);n.ondatachannel=A=>{Ft({channel:A.channel,epc:n,roomId:I,dataChannels:o,decryptionModule:s,merkleModule:B},a)},i.push(n),g&&Ft({channel:"main",epc:n,roomId:I,dataChannels:o,decryptionModule:s,merkleModule:B},a)}else{const g=i[c];if("connected"===g.connectionState){g.roomIds.push(I),a.dispatch(tI({roomId:I,peerId:A,peerPublicKey:e}));const t=o.length;for(let e=0;e<t;e++)o[e].withPeerId===A&&o[e].roomIds.push(I);const{rooms:i}=a.getState(),n=i.length;for(let e=0;e<n;e++){const g=i[e].channels.findIndex(e=>e.peerIds.includes(A));g>-1&&a.dispatch(iI({roomId:I,label:i[e].channels[g].label,peerId:A}))}}}return{data:void 0}},endpoints:A=>({connectWithPeer:A.mutation({query:({peerId:A,peerPublicKey:e,roomId:I,initiator:g=!0,rtcConfig:t={iceServers:[{urls:["stun:stun.p2party.com:3478"]}]}})=>({peerId:A,peerPublicKey:e,roomId:I,initiator:g,rtcConfig:t,peerConnections:Gt,dataChannels:bt,encryptionWasmMemory:Lt,decryptionWasmMemory:Pt,merkleWasmMemory:Jt})}),setDescription:A.mutation({queryFn:(A,e,I)=>(async({peerId:A,peerPublicKey:e,roomId:I,description:g,rtcConfig:t,peerConnections:i,iceCandidates:o,dataChannels:n,decryptionWasmMemory:C,merkleWasmMemory:a},r)=>{const{keyPair:s}=r.getState(),B=await tt({wasmMemory:C}),c=await tt({wasmMemory:a}),Q=i.findIndex(e=>e.withPeerId===A),E=Q>-1?i[Q]:await Ht({peerId:A,peerPublicKey:e,roomId:I,initiator:!1,rtcConfig:t},r);E.ondatachannel=A=>{Ft({channel:A.channel,epc:E,roomId:I,dataChannels:n,decryptionModule:B,merkleModule:c},r)};const l=o.length,w=[];for(let e=0;e<l;e++)o[e].withPeerId===A&&(w.push(e),E.iceCandidates.push(o[e]));const d=w.length;for(let A=0;A<d;A++)o.splice(w[A],1);if(-1===Q&&i.push(E),"offer"===g.type){await E.setRemoteDescription(g),await E.setLocalDescription();const e=E.localDescription;e&&await r.dispatch(Wt.endpoints.sendMessage.initiate({content:{type:"description",description:e,fromPeerId:s.peerId,fromPeerPublicKey:s.publicKey,toPeerId:A,roomId:I}}))}else"stable"===E.signalingState||"have-local-offer"!==E.signalingState&&"have-remote-offer"!==E.signalingState?await Kt(E):await E.setRemoteDescription(g);return"connected"===E.connectionState&&Q>-1&&Ft({channel:"main",epc:E,roomId:I,dataChannels:n,decryptionModule:B,merkleModule:c},r),{data:void 0}})({...A,peerConnections:Gt,iceCandidates:vt,dataChannels:bt,decryptionWasmMemory:Pt,merkleWasmMemory:Jt},e)}),setCandidate:A.mutation({queryFn:(A,e,I)=>(async({peerId:A,candidate:e,peerConnections:I,iceCandidates:g})=>{const t=I.findIndex(e=>e.withPeerId===A);if(t>-1){const A=I[t],g=new RTCIceCandidate(e);A.remoteDescription&&"stable"===A.signalingState?await A.addIceCandidate(g):A.iceCandidates.push(g)}else g.push({...e,withPeerId:A});return{data:void 0}})({...A,peerConnections:Gt,iceCandidates:vt})}),openChannel:A.mutation({queryFn:(A,e,I)=>(async({roomId:A,channel:e,withPeers:I,peerConnections:g,dataChannels:t,decryptionWasmMemory:i,merkleWasmMemory:o},n)=>{const{keyPair:C}=n.getState(),a=await tt({wasmMemory:i}),r=await tt({wasmMemory:o});if(I&&I.length>0){const i=I.length;for(let o=0;o<i;o++){if(C.peerId===I[o].peerId)continue;const i=g.findIndex(A=>A.withPeerId===I[o].peerId);if(i>-1){const I=g[i];Ft({channel:e,epc:I,roomId:A,dataChannels:t,decryptionModule:a,merkleModule:r},n)}}}else{const I=g.length;for(let i=0;i<I;i++){const I=g[i];Ft({channel:e,epc:I,roomId:A,dataChannels:t,decryptionModule:a,merkleModule:r},n)}}return{data:void 0}})({...A,peerConnections:Gt,dataChannels:bt,decryptionWasmMemory:Pt,merkleWasmMemory:Jt},e)}),sendMessage:A.mutation({queryFn:(A,e,I)=>Nt({...A,peerConnections:Gt,dataChannels:bt,encryptionWasmMemory:Lt,decryptionWasmMemory:Pt,merkleWasmMemory:Jt},e)}),disconnect:A.mutation({queryFn:(A,e,I)=>Yt({...A,peerConnections:Gt,dataChannels:bt},e)}),disconnectFromRoom:A.mutation({queryFn:(A,e,I)=>Ut({...A,peerConnections:Gt,dataChannels:bt},e)}),disconnectFromAllRooms:A.mutation({queryFn:(A,e,I)=>(async({deleteMessages:A,exceptionRoomIds:e,peerConnections:I,dataChannels:g},t)=>new Promise((i,o)=>{try{let o,n=0;const C=g.length;for(o=0;o<C;o++)if(g[o]&&"open"===g[o].readyState)if(e&&e.length>0){const A=g[o].roomIds.length,I=[];for(n=0;n<A;n++)e.includes(g[o].roomIds[n])||I.push(n);const t=I.length;for(n=0;n<t;n++)g[o].roomIds.splice(I[n],1);0===g[o].roomIds.length&&g[o].close()}else g[o].close();const a=I.length;for(o=0;o<a;o++)if(I[o]&&"connected"===I[o].connectionState)if(e&&e.length>0){const A=I[o].roomIds.length,g=[];for(n=0;n<A;n++)e.includes(I[o].roomIds[n])||g.push(n);const i=g.length;for(n=0;n<i;n++)I[o].roomIds.splice(g[n],1);0===I[o].roomIds.length&&(I[o].ontrack=null,I[o].ondatachannel=null,I[o].onicecandidate=null,I[o].onicecandidateerror=null,I[o].onnegotiationneeded=null,I[o].onsignalingstatechange=null,I[o].onconnectionstatechange=null,I[o].onicegatheringstatechange=null,I[o].oniceconnectionstatechange=null,I[o].close(),t.dispatch(aI({peerId:I[o].withPeerId})),delete I[o],I.splice(o,1))}else I[o].ontrack=null,I[o].ondatachannel=null,I[o].onicecandidate=null,I[o].onicecandidateerror=null,I[o].onnegotiationneeded=null,I[o].onsignalingstatechange=null,I[o].onconnectionstatechange=null,I[o].onicegatheringstatechange=null,I[o].oniceconnectionstatechange=null,I[o].close(),t.dispatch(aI({peerId:I[o].withPeerId})),delete I[o],I.splice(o,1);if(A){const{rooms:A}=t.getState(),I=A.length;for(o=0;o<I;o++){if(e&&e.includes(A[o].id))continue;const I=A[o].messages.length;for(n=0;n<I;n++)t.dispatch(sI({merkleRootHex:A[o].messages[n].merkleRootHex}))}}i({data:void 0})}catch(A){o(A)}}))({...A,peerConnections:Gt,dataChannels:bt},e)}),disconnectFromPeer:A.mutation({queryFn:(A,e,I)=>(({peerId:A,alsoDeleteData:e,peerConnections:I,dataChannels:g},t)=>{t.dispatch(aI({peerId:A}));const i=I.findIndex(e=>e.withPeerId===A);i>-1&&(I[i].ontrack=null,I[i].ondatachannel=null,I[i].onicecandidate=null,I[i].onicecandidateerror=null,I[i].onnegotiationneeded=null,I[i].onsignalingstatechange=null,I[i].onconnectionstatechange=null,I[i].onicegatheringstatechange=null,I[i].oniceconnectionstatechange=null,"closed"!==I[i].connectionState&&I[i].close(),delete I[i],I.splice(i,1));const o=g.length;for(let e=0;e<o;e++)g[e].withPeerId===A&&"open"===g[e].readyState&&g[e].close();if(e){const{rooms:e}=t.getState(),I=e.length;for(let g=0;g<I;g++){const I=e[g].messages.length;for(let i=0;i<I;i++)e[g].messages[i].fromPeerId===A&&t.dispatch(sI({merkleRootHex:e[g].messages[i].merkleRootHex}))}}return{data:void 0}})({...A,peerConnections:Gt,dataChannels:bt},e)}),disconnectFromChannelLabel:A.mutation({queryFn:(A,e,I)=>(async({label:A,alsoDeleteData:e,dataChannels:I},g)=>{const t=I.length;if(0===t)return{data:void 0};for(let i=0;i<t;i++)if(I[i]&&I[i].label===A&&"open"===I[i].readyState){if(e){const{merkleRootHex:I}=await yt(A);e&&g.dispatch(sI({merkleRootHex:I}))}I[i].close()}return{data:void 0}})({...A,dataChannels:bt},e)}),disconnectFromPeerChannelLabel:A.mutation({queryFn:(A,e,I)=>(async({peerId:A,label:e,peerConnections:I,dataChannels:g},t)=>{const i=g.findIndex(I=>I.label===e&&I.withPeerId===A);i>-1&&g[i]&&(t.dispatch(rI({peerId:A,label:e})),await Yg(e,A),g[i]&&(g[i].onopen=null,g[i].onclose=null,g[i].onerror=null,g[i].onclosing=null,g[i].onmessage=null,g[i].onbufferedamountlow=null,"open"===g[i].readyState&&g[i].close(),delete g[i]),g.splice(i,1));const{channelLabel:o,merkleRootHex:n}=await yt(e),C=n.length>0;C&&g.findIndex(A=>{const e=A.label.split("~");return 2===e.length&&e[1]===n})<0&&await Ng(n);const{rooms:a,keyPair:r}=t.getState(),s=a.length;let B=!1;for(let e=0;e<s;e++){if(C){const A=a[e].messages.findLastIndex(A=>A.merkleRootHex===n);if(A>-1&&a[e].messages[A].fromPeerId===r.peerId){const I=a[e].messages[A].sha512Hex,g=a[e].id,t=a[e].messages[A].savedSize,i=a[e].messages[A].totalSize,C=a[e].messages[A].messageType,s=a[e].messages[A].filename,B=a[e].messages[A].timestamp;await mg(g,n,I,r.peerId,t,i,C,s,o,B)}}const I=a[e].channels.length;for(let g=0;g<I;g++)if(a[e].channels[g].peerIds.includes(A)){B=!0;break}if(B)break}if(!B){t.dispatch(aI({peerId:A}));const e=I.findIndex(e=>e.withPeerId===A);e>-1&&(I[e].ontrack=null,I[e].ondatachannel=null,I[e].onicecandidate=null,I[e].onicecandidateerror=null,I[e].onnegotiationneeded=null,I[e].onsignalingstatechange=null,I[e].onconnectionstatechange=null,I[e].onicegatheringstatechange=null,I[e].oniceconnectionstatechange=null,"closed"!==I[e].connectionState&&I[e].close(),delete I[e],I.splice(e,1))}return{data:void 0}})({...A,peerConnections:Gt,dataChannels:bt},e)})})}),xt=Wg(65536-Le-ze-qe,Le),qt=async(e,I,g)=>{try{if("PING"===e.data)return void I.send("PONG");const t=JSON.parse(e.data);switch(t.type){case"ping":{const{keyPair:A}=g.getState();await g.dispatch(Wt.endpoints.sendMessage.initiate({content:{type:"pong",fromPeerId:A.peerId}}));break}case"peerId":{const{keyPair:e}=g.getState(),I=t.peerId.length>0?t.peerId:"",i=t.challenge.length>0?t.challenge:"",o=A.isUUID(I)&&A.isHexadecimal(i)&&64===i.length&&0===e.challenge.length&&0===e.signature.length&&!t.challengeId&&!t.username&&!t.credential,n=A.isUUID(I)&&A.isUUID(e.peerId)&&e.peerId!==I&&A.isHexadecimal(i)&&64===i.length&&!t.challengeId&&!t.username&&!t.credential;o||n?await(async(A,e,I,g)=>{const t=Rg(A.secretKey),i=Uint8Array.from(I.match(/.{1,2}/g).map(A=>parseInt(A,16))),o=await ht(i,t),n=[...new Uint8Array(o)].map(A=>A.toString(16).padStart(2,"0")).join("");g.dispatch(Ue({peerId:e,challenge:I,signature:n}))})(e,I,i,g):g.dispatch(Ye({peerId:I,challenge:i,signature:t.signature??"",challengeId:t.challengeId??"",username:t.username??"",credential:t.credential??""}));break}case"roomId":g.dispatch($e({id:t.roomId,url:t.roomUrl}));break;case"challenge":g.dispatch(Ge(t));break;case"peerConnection":{if(await fg(t.peer.id,t.peer.publicKey))break;const{keyPair:A,rooms:e}=g.getState(),I=e.findIndex(A=>A.id===t.roomId);if(I>-1&&e[I].onlyConnectWithKnownAddresses){if(!await hg(t.peer.id,t.peer.publicKey))break}await g.dispatch(Wt.endpoints.sendMessage.initiate({content:{type:"peerConnection",roomId:t.roomId,fromPeerId:A.peerId,toPeerId:t.peer.id}}));break}case"peers":{const{keyPair:e,rooms:I,commonState:i}=g.getState(),o=64===i.currentRoomUrl.length?I.findIndex(A=>A.url===i.currentRoomUrl):-1;if(o>-1){const i=t.peers.length;if(0===i)break;const n=I[o].onlyConnectWithKnownAddresses;for(let C=0;C<i;C++){if(t.peers[C].publicKey===e.publicKey||t.peers[C].id===e.peerId||!A.isUUID(t.peers[C].id)||64!==t.peers[C].publicKey.length)continue;if(!await fg(t.peers[C].id,t.peers[C].publicKey)){if(n){if(!await hg(t.peers[C].id,t.peers[C].publicKey))continue}await g.dispatch(Rt.endpoints.connectWithPeer.initiate({roomId:t.roomId,peerId:t.peers[C].id,peerPublicKey:t.peers[C].publicKey,initiator:!0,rtcConfig:I[o].rtcConfig}))}}}break}case"description":await fg(t.fromPeerId,t.fromPeerPublicKey)||await g.dispatch(Rt.endpoints.setDescription.initiate({peerId:t.fromPeerId,peerPublicKey:t.fromPeerPublicKey,roomId:t.roomId,description:t.description}));break;case"candidate":await fg(t.fromPeerId)||await g.dispatch(Rt.endpoints.setCandidate.initiate({peerId:t.fromPeerId,candidate:t.candidate}));break;case"connection":{const{keyPair:e}=g.getState();if(A.isUUID(e.peerId)&&A.isHexadecimal(e.challenge)&&A.isHexadecimal(e.signature)&&128===e.signature.length&&64===e.challenge.length&&A.isUUID(t.fromPeerId)&&64===t.fromPeerPublicKey.length&&A.isUUID(t.roomId)){g.dispatch(tI({roomId:t.roomId,peerId:t.fromPeerId,peerPublicKey:t.fromPeerPublicKey}));const A=await tt({wasmMemory:xt}),I=t.labels.length;for(let i=0;i<I;i++){g.dispatch(iI({roomId:t.roomId,label:t.labels[i],peerId:t.fromPeerId}));const I=`Connected with ${e.peerId} on channel ${t.labels[i]}`;await wt(I,t.roomId,A,g,t.labels[i])}}break}case"error":console.error(t);break;default:console.error("Unknown message type "+JSON.stringify(t))}}catch(A){return}},Ot=Wg(65536-Le-ze-qe,Le),jt=(A,e,I=10,g=20)=>{let t=0;const i=setInterval(()=>{A.readyState===WebSocket.OPEN?(clearInterval(i),e()):(t+=1,console.log(`Waiting for connection... Attempt ${String(t)}`),t>=I&&(clearInterval(i),console.log("WebSocket failed to connect after multiple attempts, closing..."),A.removeEventListener("message",()=>{}),A.removeEventListener("open",()=>{}),A.removeEventListener("close",()=>{}),A.close()))},g)};let Tt=null;const zt=(A,e)=>(Tt&&(Tt.removeEventListener("message",()=>{}),Tt.removeEventListener("open",()=>{}),Tt.removeEventListener("close",()=>{}),Tt.close(),Tt=null,console.log("WebSocket manually disconnected")),e.dispatch(lI.disconnect()),{data:void 0}),Vt=(e,I)=>{if(Tt&&Tt.readyState===WebSocket.OPEN){const{keyPair:g}=I.getState();return A.isUUID(g.peerId)&&A.isHexadecimal(g.challenge)&&A.isHexadecimal(g.signature)&&128===g.signature.length&&64===g.challenge.length&&jt(Tt,()=>{Tt.send(JSON.stringify(e.content))}),{data:void 0}}return console.warn("WebSocket is not open"),{data:void 0}},Xt=async({peerId:e,peerPublicKey:I,roomId:g},t)=>{if(Tt&&Tt.readyState===WebSocket.OPEN){const{keyPair:i}=t.getState();if(A.isUUID(i.peerId)&&A.isHexadecimal(i.challenge)&&A.isHexadecimal(i.signature)&&128===i.signature.length&&64===i.challenge.length&&A.isUUID(e)&&64===I.length&&A.isUUID(g)){t.dispatch(tI({roomId:g,peerId:e,peerPublicKey:I}));const A=[];t.dispatch(iI({roomId:g,label:"main",peerId:e})),A.push("main"),t.dispatch(iI({roomId:g,label:"signaling",peerId:e})),A.push("signaling"),jt(Tt,()=>{Tt.send(JSON.stringify({type:"connection",roomId:g,fromPeerId:i.peerId,toPeerId:e,labels:A}))});const o=A.length,n=await tt({wasmMemory:Ot});for(let e=0;e<o;e++){const I=`Connected with ${i.peerId} on channel ${A[e]}`;await wt(I,g,n,t,A[e])}}return{data:void 0}}return console.warn("WebSocket is not open"),{data:void 0}},Wt=cg({reducerPath:"signalingServerApi",baseQuery:async({signalingServerUrl:e},I)=>{const{signalingServer:g}=I.getState();if(Tt||g.isConnected||g.isEstablishingConnection)return console.log("WebSocket already connected"),{data:void 0};I.dispatch(lI.startConnecting(e));try{const{keyPair:g}=I.getState();let t=localStorage.getItem("publicKey")??"",i=localStorage.getItem("secretKey")??"";if(0===g.secretKey.length&&0===i.length){const A=await dt();t=Jg(A.publicKey),i=Jg(A.secretKey),I.dispatch(Ne({publicKey:t,secretKey:i}))}else if(0===g.secretKey.length)if(128===i.length&&64===t.length)I.dispatch(Ne({publicKey:t,secretKey:i}));else{const A=await dt();t=Jg(A.publicKey),i=Jg(A.secretKey),I.dispatch(Ne({publicKey:t,secretKey:i}))}else t=g.publicKey;const o=e+"?publickey="+t;return Tt=new WebSocket(o),Tt.binaryType="arraybuffer",new Promise((e,t)=>{try{Tt.onopen=()=>{console.log("WebSocket connected to:",o),I.dispatch(lI.connectionEstablished());const{rooms:t,commonState:i}=I.getState(),n=64===i.currentRoomUrl.length?t.findIndex(A=>A.url===i.currentRoomUrl):-1;n>-1&&A.isUUID(g.peerId)&&A.isUUID(t[n].id)?I.dispatch(AI({roomId:t[n].id,connectingToPeers:!0})):A.isUUID(g.peerId)&&64===i.currentRoomUrl.length&&jt(Tt,()=>{Tt.send(JSON.stringify({type:"room",fromPeerId:g.peerId,roomUrl:i.currentRoomUrl}))}),e({data:void 0})},Tt.onerror=A=>{console.error("WebSocket error:",A),Tt&&(Tt.removeEventListener("message",()=>{}),Tt.removeEventListener("open",()=>{}),Tt.removeEventListener("close",()=>{}),Tt.close(),Tt=null),I.dispatch(lI.disconnect()),t({error:"WebSocket connection failed"})},Tt.onmessage=async A=>{await qt(A,Tt,I)},Tt.onclose=()=>{Tt&&(Tt.removeEventListener("message",()=>{}),Tt.removeEventListener("open",()=>{}),Tt.removeEventListener("close",()=>{}),Tt.close(),Tt=null),I.dispatch(lI.disconnect()),console.log("WebSocket disconnected"),e({data:void 0})}}catch(A){t(A)}return()=>{Tt&&(console.log("Cleaning up WebSocket connection..."),Tt.removeEventListener("message",()=>{}),Tt.removeEventListener("open",()=>{}),Tt.removeEventListener("close",()=>{}),Tt.close(),Tt=null)}})}catch(A){return Tt&&(Tt.removeEventListener("message",()=>{}),Tt.removeEventListener("open",()=>{}),Tt.removeEventListener("close",()=>{}),Tt.close(),Tt=null),I.dispatch(lI.disconnect()),console.error("Error during WebSocket setup:",A),{error:"WebSocket connection failed"}}},endpoints:A=>({connectWebSocket:A.mutation({query:(A="wss://signaling.p2party.com/ws")=>({signalingServerUrl:A})}),disconnectWebSocket:A.mutation({queryFn:zt}),sendMessage:A.mutation({queryFn:Vt}),connectWithPeer:A.mutation({queryFn:Xt})})}),Zt=pe();Zt.startListening({matcher:pA(AI,$e,iI,CI,sI,BI),effect:async(e,I)=>{if(AI.match(e)){const{roomId:g,connectingToPeers:t}=e.payload;if(t){const{signalingServer:e,keyPair:t,rooms:i}=I.getState(),o=i.findIndex(A=>A.id===g);e.isConnected&&A.isUUID(t.peerId)&&o>-1&&A.isUUID(i[o].id)&&await I.dispatch(Wt.endpoints.sendMessage.initiate({content:{type:"peers",fromPeerId:t.peerId,roomId:g}})),I.dispatch(AI({roomId:g,connectingToPeers:!1}))}}else if(iI.match(e));else if($e.match(e)){const{signalingServer:i,keyPair:o,rooms:n}=I.getState(),{url:C,id:a,onlyConnectWithKnownPeers:r}=e.payload;if(64===C.length&&null!=r&&localStorage.setItem(C+"-onlyConnectWithKnownPeers",String(r)),64===C.length&&A.isUUID(a)){await(g=C,t=a,dg("setDBUniqueRoom",g,t));const e=await Dg(a),r=e.length;for(let A=0;A<r;A++)I.dispatch(nI({roomId:e[A].roomId,merkleRootHex:e[A].merkleRoot,sha512Hex:e[A].hash,fromPeerId:e[A].fromPeerId,filename:e[A].filename,messageType:e[A].messageType,chunkSize:e[A].savedSize,totalSize:e[A].totalSize,channelLabel:e[A].channelLabel,timestamp:e[A].timestamp}));const s=n.findIndex(A=>A.id===a);i.isConnected&&A.isUUID(o.peerId)&&s>-1&&A.isUUID(n[s].id)&&await I.dispatch(Wt.endpoints.sendMessage.initiate({content:{type:"peers",fromPeerId:o.peerId,roomId:n[s].id}}))}}else if(CI.match(e)){const{roomId:A,merkleRootHex:g,sha512Hex:t,alsoSendFinishedMessage:i}=e.payload,{rooms:o,keyPair:n}=I.getState(),C=o.findIndex(e=>e.id===A);if(C>-1){const A=o[C].messages.findLastIndex(A=>A.merkleRootHex===g||A.sha512Hex===t);if(A>-1&&o[C].messages[A].fromPeerId!==n.peerId){const e=await ut(o[C].messages[A].channelLabel,o[C].messages[A].merkleRootHex);await I.dispatch(Rt.endpoints.disconnectFromChannelLabel.initiate({label:e,alsoDeleteData:!1,alsoSendFinishedMessage:i}))}}}else if(sI.match(e)){const{merkleRootHex:A,hashHex:I}=e.payload;if(!A&&!I)return;if(A&&A.length!==2*Le)return;if(I&&I.length!==2*Le)return;A?(await Hg(A),await Ng(A),await(A=>dg("deleteDBMessageData",A))(A)):I&&await Ng(void 0,void 0,I)}else if(BI.match(e)){const A=e.payload;await I.dispatch(Rt.endpoints.disconnectFromRoom.initiate({roomId:A,deleteMessages:!0}))}var g,t}});const _t=pe();_t.startListening({matcher:pA(Ne,Ye,Ue,Ge,ve),effect:async(e,I)=>{if(Ne.match(e)){const{publicKey:A,secretKey:I}=e.payload;64===A.length&&128===I.length&&(localStorage.setItem("publicKey",e.payload.publicKey),localStorage.setItem("secretKey",e.payload.secretKey))}else if(Ye.match(e)){const{peerId:g,challenge:t,signature:i,challengeId:o,username:n,credential:C}=e.payload;if(A.isUUID(g)&&A.isUUID(o)&&A.isHexadecimal(t)&&A.isHexadecimal(i)&&64===t.length&&128===i.length){localStorage.setItem("peerId",g),localStorage.setItem("challenge",t),localStorage.setItem("signature",i),localStorage.setItem("challengeId",o);const{keyPair:a,rooms:r,commonState:s}=I.getState(),B=64===s.currentRoomUrl.length?r.findIndex(A=>A.url===s.currentRoomUrl):-1;B>-1?(e.payload.username&&e.payload.credential&&I.dispatch(oI({roomId:r[B].id,iceServers:[{urls:["turn:turn.p2party.com:3478?transport=udp","turn:turn.p2party.com:3478?transport=tcp","turns:turn.p2party.com:443?transport=tcp"],username:n,credential:C}]})),A.isUUID(r[B].id)&&I.dispatch(AI({roomId:r[B].id,connectingToPeers:!0}))):A.isUUID(a.peerId)&&64===s.currentRoomUrl.length&&await I.dispatch(Wt.endpoints.sendMessage.initiate({content:{type:"room",fromPeerId:a.peerId,roomUrl:s.currentRoomUrl}}))}}else if(Ue.match(e)){const{peerId:g,challenge:t,signature:i}=e.payload;A.isUUID(g)&&A.isHexadecimal(t)&&A.isHexadecimal(i)&&64===t.length&&128===i.length&&(localStorage.setItem("peerId",g),localStorage.setItem("challenge",t),localStorage.setItem("signature",i),await I.dispatch(Wt.endpoints.sendMessage.initiate({content:{type:"challenge",fromPeerId:g,challenge:t,signature:i}})))}else if(Ge.match(e)){const{challengeId:g}=e.payload;if(A.isUUID(g)){localStorage.setItem("challengeId",g);const{keyPair:t,rooms:i,commonState:o}=I.getState(),n=64===o.currentRoomUrl.length?i.findIndex(A=>A.url===o.currentRoomUrl):-1;n>-1?e.payload.username&&e.payload.credential&&(I.dispatch(oI({roomId:i[n].id,iceServers:[{urls:["turn:turn.p2party.com:3478?transport=udp","turn:turn.p2party.com:3478?transport=tcp","turns:turn.p2party.com:443?transport=tcp"],username:e.payload.username,credential:e.payload.credential}]})),A.isUUID(i[n].id)?I.dispatch(AI({roomId:i[n].id,connectingToPeers:!0})):A.isUUID(t.peerId)&&64===o.currentRoomUrl.length&&await I.dispatch(Wt.endpoints.sendMessage.initiate({content:{type:"room",fromPeerId:t.peerId,roomUrl:o.currentRoomUrl}}))):A.isUUID(t.peerId)&&64===o.currentRoomUrl.length&&await I.dispatch(Wt.endpoints.sendMessage.initiate({content:{type:"room",fromPeerId:t.peerId,roomUrl:o.currentRoomUrl}}))}}else ve.match(e)&&(localStorage.setItem("peerId",""),localStorage.setItem("challengeId",""),localStorage.setItem("publicKey",""),localStorage.setItem("secretKey",""),localStorage.setItem("challenge",""),localStorage.setItem("signature",""))}});const $t=function(A){const I=function(A){const{thunk:e=!0,immutableCheck:I=!0,serializableCheck:g=!0,actionCreatorCheck:t=!0}=A??{};let i=new lA;return e&&("boolean"==typeof e?i.push(BA):i.push(cA(e.extraArgument))),i},{reducer:g,middleware:t,devTools:a=!0,preloadedState:r,enhancers:s}=A||{};let B,c;if("function"==typeof g)B=g;else{if(!i(g))throw new Error(Se(1));B=n(g)}c="function"==typeof t?t(I):I();let Q=C;a&&(Q=QA({trace:!1,..."object"==typeof a&&a}));const E=function(...A){return I=>(g,t)=>{const i=I(g,t);let o=()=>{throw new Error(e(15))};const n={getState:i.getState,dispatch:(A,...e)=>o(A,...e)},a=A.map(A=>A(n));return o=C(...a)(i.dispatch),{...i,dispatch:o}}}(...c),l=yA(E);return o(B,r,Q(..."function"==typeof s?s(l):l()))}({reducer:{commonState:Fe,keyPair:be,rooms:cI,signalingServer:wI,[Wt.reducerPath]:Wt.reducer,[Rt.reducerPath]:Rt.reducer},middleware:A=>A().concat([Wt.middleware,Rt.middleware,Zt.middleware,_t.middleware])}),Ai=$t.dispatch;var ei=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"];const Ii=A=>A.normalize("NFKD"),gi=async A=>{try{return await(async A=>{const e=Ii(A).split(" ");if(e.length%3!=0)throw new Error("Number of words in mnemonic must be multiple of three.");const I=e.map(A=>{const e=ei.indexOf(A);if(-1===e)throw new Error("Could not find word in wordlist.");return e.toString(2).padStart(11,"0")}).join(""),g=32*Math.floor(I.length/33),t=I.slice(0,g),i=I.slice(g),o=t.match(/(.{1,8})/g).map(A=>parseInt(A,2));if(o.length<16)throw new Error("Entropy length too small (less than 128 bits).");if(o.length>64)throw new Error("Entropy length too large (more than 512 bits).");const n=o.length/4,C=Uint8Array.from(o),a=await window.crypto.subtle.digest("SHA-512",C);if(new Uint8Array(a).reduce((A,e)=>A+e.toString(2).padStart(8,"0"),"").slice(0,n)!==i)throw new Error("Invalid checksum.");return!0})(A)}catch{return!1}},ti={store:$t,commonStateSelector:A=>A.commonState,signalingServerSelector:A=>A.signalingServer,roomSelector:A=>A.rooms,keyPairSelector:A=>A.keyPair,connect:async(e,I="wss://signaling.p2party.com/ws",g={iceServers:[{urls:["stun:stun.p2party.com:3478"]}],iceTransportPolicy:"all"})=>{if(64!==e.length)throw new Error("Invalid room url length");const{keyPair:t,signalingServer:i,rooms:o,commonState:n}=$t.getState(),C=o.findIndex(A=>A.url===e);-1===C&&Ai($e({url:e,id:"",rtcConfig:g})),n.currentRoomUrl!==e&&Ai(Me(e)),i.isConnected&&A.isUUID(t.peerId)?-1===C?await Ai(Wt.endpoints.sendMessage.initiate({content:{type:"room",fromPeerId:t.peerId,roomUrl:e}})):Ai(AI({roomId:o[C].id,connectingToPeers:!0})):await Ai(Wt.endpoints.connectWebSocket.initiate(I))},connectToSignalingServer:async(A,e="wss://signaling.p2party.com/ws")=>{if(64!==A.length)throw new Error("Invalid room url length");const{signalingServer:I,rooms:g,commonState:t}=$t.getState();-1===g.findIndex(e=>e.url===A)&&Ai($e({url:A,id:""})),t.currentRoomUrl!==A&&Ai(Me(A)),I.serverUrl===e&&(I.isConnected||I.isEstablishingConnection)||await Ai(Wt.endpoints.connectWebSocket.initiate(e))},disconnectFromSignalingServer:async()=>{await Ai(Wt.endpoints.disconnectWebSocket.initiate())},disconnectFromRoom:async(A,e=!1)=>{await Ai(Rt.endpoints.disconnectFromRoom.initiate({roomId:A,deleteMessages:e}))},disconnectFromAllRooms:async(A=!1,e=[])=>{await Ai(Rt.endpoints.disconnectFromAllRooms.initiate({deleteMessages:A,exceptionRoomIds:e}))},disconnectFromPeer:async A=>{await Ai(Rt.endpoints.disconnectFromPeer.initiate({peerId:A}))},allowConnectionRelay:(A,e=!0)=>{const{rooms:I}=$t.getState(),g=I.findIndex(e=>e.id===A);g>-1&&Ai(II({roomId:I[g].id,canBeConnectionRelay:e}))},onlyAllowConnectionsFromAddressBook:async(A,e)=>{if(64===A.length){const{rooms:I}=$t.getState(),g=I.findIndex(e=>e.url===A);if(g>-1&&!I[g].onlyConnectWithKnownAddresses&&e&&I[g].peers.length>0){const A=I[g].peers.length;for(let e=0;e<A;e++){await hg(I[g].peers[e].peerId,I[g].peers[e].peerPublicKey)||await Ai(Rt.endpoints.disconnectFromPeer.initiate({peerId:I[g].peers[e].peerId,alsoDeleteData:!1}))}}Ai($e({url:g>-1?I[g].url:A,id:g>-1?I[g].id:"",onlyConnectWithKnownPeers:e}))}},addPeerToAddressBook:(A,e,I)=>dg("setDBAddressBookEntry",A,e,I),getPeerAddressBookEntry:hg,getAllPeersInAddressBook:()=>dg("getAllDBAddressBookEntries"),getAllPeersInBlacklist:()=>dg("getAllDBBlacklisted"),deletePeerFromAddressBook:async(e,I,g)=>{const t=await((A,e,I)=>dg("deleteDBAddressBookEntry",A,e,I))(e,I,g);A.isUUID(t)&&await Ai(Rt.endpoints.disconnectFromPeer.initiate({peerId:t,alsoDeleteData:!1}))},blacklistPeer:async(A,e)=>{await((A,e)=>dg("setDBPeerInBlacklist",A,e))(A,e),await Ai(Rt.endpoints.disconnectFromPeer.initiate({peerId:A,alsoDeleteData:!0}))},getPeerIsBlacklisted:fg,removePeerFromBlacklist:(A,e)=>dg("deleteDBPeerFromBlacklist",A,e),getAllExistingRooms:ug,openChannel:async(A,e,I)=>{await Ai(Rt.endpoints.openChannel.initiate({roomId:A,channel:e,withPeers:I}))},sendMessage:async(A,e,I,g=.9,t=3,i=st,o=1)=>{await Ai(Rt.endpoints.sendMessage.initiate({data:A,label:e,roomId:I,minChunks:t,chunkSize:i,percentageFilledChunk:g,metadataSchemaVersion:o}))},readMessage:async(A,e)=>{if(!A&&!e)return{message:"No message",percentage:0,size:0,filename:"",mimeType:"text/plain",extension:"txt",category:Gg.Text};try{const{keyPair:I,rooms:g}=$t.getState(),t=g.length;let i=-1,o=-1;for(let I=0;I<t;I++)if(o=g[I].messages.findLastIndex(I=>I.merkleRootHex===A||I.sha512Hex===e),o>-1){i=I;break}if(i>-1&&o>-1){const A=g[i].messages[o].messageType,e=bg(A),t=vg(A),n=Lg(A),C=g[i].messages[o].fromPeerId===I.peerId?100:Math.floor(g[i].messages[o].savedSize/g[i].messages[o].totalSize*100),a=100===C?await kg(g[i].messages[o].merkleRootHex,g[i].messages[o].sha512Hex):[],r=a.length>0?a.sort((A,e)=>A.chunkIndex-e.chunkIndex).map(A=>A.data):[(new Uint8Array).buffer],s=new Blob(r,{type:e});return A===Ug.Text?{message:await s.text(),percentage:C,size:g[i].messages[o].totalSize,filename:"",mimeType:e,extension:t,category:n}:s?{message:s,percentage:C,size:g[i].messages[o].totalSize,filename:g[i].messages[o].filename,mimeType:e,extension:t,category:n}:{message:"Invalid message",percentage:0,size:g[i].messages[o].totalSize,filename:g[i].messages[o].filename,mimeType:e,extension:t,category:n}}{const g=await yg(A,e);if(g){const A=g.messageType,e=bg(A),t=vg(A),i=Lg(A),o=Math.floor(g.savedSize/g.totalSize*100);if(100===o&&g.fromPeerId!==I.peerId){const A=await ut(g.channelLabel,g.merkleRoot);await $t.dispatch(Rt.endpoints.disconnectFromChannelLabel.initiate({label:A,alsoDeleteData:!1}))}const n=100===o?await kg(g.merkleRoot):[],C=n.length>0?n.sort((A,e)=>A.chunkIndex-e.chunkIndex).map(A=>A.data):[(new Uint8Array).buffer],a=new Blob(C,{type:e});return A===Ug.Text?{message:await a.text(),percentage:o,size:g.totalSize,filename:"",mimeType:e,extension:t,category:i}:a?{message:a,percentage:o,size:g.totalSize,filename:g.filename,mimeType:e,extension:t,category:i}:{message:"Invalid message",percentage:0,size:g.totalSize,filename:g.filename,mimeType:e,extension:t,category:i}}return{message:"Irretrievable message",percentage:0,size:0,filename:"",mimeType:"text/plain",extension:"",category:Gg.Text}}}catch(A){return console.error(A),{message:"Irretrievable message",percentage:0,size:0,filename:"",mimeType:"text/plain",extension:"",category:Gg.Text}}},cancelMessage:async(A,e,I)=>{if(!e&&!I)throw new Error("Need to provide either merkle root or hash");if(e&&"string"==typeof e&&e.length!==2*Le)throw new Error("Invalid Merkle root length");if(e&&"string"!=typeof e&&e.length!==Le)throw new Error("Invalid Merkle root length");if(I&&"string"==typeof I&&I.length!==2*Le)throw new Error("Invalid hash length");if(I&&"string"!=typeof I&&I.length!==Le)throw new Error("Invalid hash length");const g=new CustomEvent(ct);window.dispatchEvent(g);const t=e&&"string"==typeof e?e:e&&"string"!=typeof e?Jg(e):"",i=I&&"string"==typeof I?I:I&&"string"!=typeof I?Jg(I):"";let o=-1,n=-1;const{rooms:C}=$t.getState(),a=C.length;for(let A=0;A<a;A++)if(n=e?C[A].messages.findIndex(A=>A.merkleRootHex===t):I?C[A].messages.findIndex(A=>A.sha512Hex===i):-1,n>-1){o=A;break}if(o>-1&&n>-1&&C[o].messages[n].merkleRootHex.length===2*Le){const e=await ut(A,C[o].messages[n].merkleRootHex);await $t.dispatch(Rt.endpoints.disconnectFromChannelLabel.initiate({label:e,alsoDeleteData:!0})),$t.dispatch(sI({merkleRootHex:C[o].messages[n].merkleRootHex}))}},deleteMessage:async(A,e)=>{if(!A&&!e)throw new Error("Need to provide either merkle root or hash");if(A&&"string"==typeof A&&A.length!==2*Le)throw new Error("Invalid Merkle root length");if(A&&"string"!=typeof A&&A.length!==Le)throw new Error("Invalid Merkle root length");if(e&&"string"==typeof e&&e.length!==2*Le)throw new Error("Invalid hash length");if(e&&"string"!=typeof e&&e.length!==Le)throw new Error("Invalid hash length");const I=new CustomEvent(ct);window.dispatchEvent(I);const g=A&&"string"==typeof A?A:A&&"string"!=typeof A?Jg(A):"",t=e&&"string"==typeof e?e:e&&"string"!=typeof e?Jg(e):"";let i=-1,o=-1;const{rooms:n}=$t.getState(),C=n.length;for(let I=0;I<C;I++)if(o=A?n[I].messages.findIndex(A=>A.merkleRootHex===g):e?n[I].messages.findIndex(A=>A.sha512Hex===t):-1,o>-1){i=I;break}if(i>-1&&o>-1&&n[i].messages[o].merkleRootHex.length===2*Le){const A=await ut(n[i].messages[o].channelLabel,n[i].messages[o].merkleRootHex);await $t.dispatch(Rt.endpoints.disconnectFromChannelLabel.initiate({label:A,alsoDeleteData:!0})),$t.dispatch(sI({merkleRootHex:n[i].messages[o].merkleRootHex}))}},purgeIdentity:async()=>{Ai(ve());const{rooms:A}=$t.getState(),e=A.length;for(let I=0;I<e;I++)await Ai(Rt.endpoints.disconnectFromRoom.initiate({roomId:A[I].id}));await Ai(Wt.endpoints.disconnectWebSocket.initiate())},purgeRoom:async A=>{const{rooms:e}=$t.getState(),I=e.findIndex(e=>e.url===A);I>-1&&Ai(BI(e[I].id)),await Ai(Wt.endpoints.disconnectWebSocket.initiate())},purge:async()=>{Ai(ve()),await Ai(Wt.endpoints.disconnectWebSocket.initiate());const A=await ug(),e=A.length;for(let I=0;I<e;I++)Ai(BI(A[I].roomId))},generateRandomRoomUrl:async()=>{const A=await nt(256),e=(new TextEncoder).encode(A),I=await window.crypto.subtle.digest("SHA-512",e),g=await window.crypto.subtle.digest("SHA-256",I),t=new Uint8Array(g);return Jg(t)},encrypt:Et,decrypt:lt,sign:ht,verify:ft,newKeyPair:dt,generateMnemonic:async(A=128)=>{if(!ei)throw new Error("English wordlist could not be loaded.");if(A%32!=0)throw new TypeError("Mnemonic strength needs to be multiple of 32.");if(![128,160,192,224,256,288,320,352,384,416,448,480,512].includes(A))throw new Error("Wrong mnemonic strength");const e=window.crypto.getRandomValues(new Uint8Array(A/8)),I=e.reduce((A,e)=>A+e.toString(2).padStart(8,"0"),""),g=A/32,t=Uint8Array.from(e),i=await window.crypto.subtle.digest("SHA-512",t);return(I+new Uint8Array(i).reduce((A,e)=>A+e.toString(2).padStart(8,"0"),"").slice(0,g)).match(/(.{1,11})/g).map(A=>{const e=parseInt(A,2);return ei[e]}).join(" ")},keyPairFromMnemonic:async(A,e)=>{if(!await gi(A))throw new Error("Invalid mnemonic.");const I=new Uint8Array(Ve),g=new TextEncoder;g.encodeInto("password12345678",I);const t=new Uint8Array(Ve);if(e){const A=g.encode(e),I=await window.crypto.subtle.digest("SHA-512",A);t.set(new Uint8Array(I).slice(Le-Ve,Le))}else t.set(I);const i=await(async(A,e,I)=>{const g=Ii(A),t=(new TextEncoder).encode(g).buffer,i=new Int8Array(t),o=i.length;e=e??window.crypto.getRandomValues(new Uint8Array(Ve));const n=I?.wasmMemory??et(o),C=(I=I??await tt({wasmMemory:n}))._malloc(Je),a=new Uint8Array(n.buffer,C,Je),r=window.crypto.getRandomValues(new Uint8Array(Je));a.set(r);const s=I._malloc(o*Uint8Array.BYTES_PER_ELEMENT),B=new Int8Array(n.buffer,s,o*Uint8Array.BYTES_PER_ELEMENT);B.set(i);const c=I._malloc(Ve),Q=new Uint8Array(n.buffer,c,Ve);Q.set(e);const E=I._argon2(o,a.byteOffset,B.byteOffset,Q.byteOffset),l=Uint8Array.from(a);if(I._free(C),I._free(s),I._free(c),0===E)return l;throw new Error("Could not generate argon2id for mnemonic.")})(A,t);return await(async A=>{const e=zg(),I=await tt({wasmMemory:e}),g=I._malloc(Re),t=new Uint8Array(e.buffer,g,Re),i=I._malloc(xe),o=new Uint8Array(e.buffer,i,xe),n=I._malloc(Je),C=new Uint8Array(e.buffer,n,Je);C.set(A);const a=I._keypair_from_seed(t.byteOffset,o.byteOffset,C.byteOffset);if(I._free(n),0===a){const A={publicKey:Uint8Array.from(t),secretKey:Uint8Array.from(o)};return I._free(g),I._free(i),A}throw I._free(g),I._free(i),new Error("An unexpected error occured.")})(i)},MIN_CHUNKS:3,MIN_CHUNK_SIZE:rt+1,MAX_CHUNK_SIZE:st,MIN_PERCENTAGE_FILLED_CHUNK:.1,MAX_PERCENTAGE_FILLED_CHUNK:1,ROOM_URL_LENGTH:64,MessageType:Ug,MessageCategory:Gg};"undefined"!=typeof window&&(window.p2party=ti),exports.default=ti,exports.p2party=ti;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|