const nt={test:location.search.indexOf("test=1")>0,debug:location.search.indexOf("debug=1")>0,http:!1,ssl:!0,asServiceWorker:!1,transport:"websocket",noSharedWorker:location.search.indexOf("noSharedWorker=1")>0,multipleTransports:!0};(nt.http=location.search.indexOf("http=1")>0)&&(nt.multipleTransports=!1);nt.multipleTransports&&(nt.http=!0);nt.http&&(nt.transport="https");const we=nt.debug,As=typeof window<"u"?window:self,At=As,lt=typeof window<"u"?window:self,Jt=navigator?navigator.userAgent:null;navigator.userAgent.search(/OS X|iPhone|iPad|iOS/i);navigator.userAgent.toLowerCase().indexOf("android");(()=>{try{return+navigator.userAgent.match(/Chrom(?:e|ium)\/(.+?)(?:\s|\.)/)[1]}catch{}})();const ct="safari"in lt||!!(Jt&&(/\b(iPad|iPhone|iPod)\b/.test(Jt)||Jt.match("Safari")&&!Jt.match("Chrome"))),Ye=navigator.userAgent.toLowerCase().indexOf("firefox")>-1;(navigator.maxTouchPoints===void 0||navigator.maxTouchPoints>0)&&navigator.userAgent.search(/iOS|iPhone OS|Android|BlackBerry|BB10|Series ?[64]0|J2ME|MIDP|opera mini|opera mobi|mobi.+Gecko|Windows Phone/i)!=-1;const Lt=typeof ServiceWorkerGlobalScope<"u"&&self instanceof ServiceWorkerGlobalScope,Xt=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&!Lt,Ke=Xt||Lt,ve=()=>self.clients.matchAll({includeUncontrolled:!1,type:"window"}),Ge=(e,...t)=>{try{e.postMessage(...t)}catch(s){console.error("[worker] postMessage error:",s,t)}},Ze=(e,...t)=>{ve().then(s=>{s.length&&s.slice(e?0:-1).forEach(i=>{Ge(i,...t)})})},Xe=(...e)=>{Ge(self,...e)},Qe=()=>{};Lt&&Ze.bind(null,!1);Lt&&Ze.bind(null,!0);const Cs=Date.now();function De(){return"["+((Date.now()-Cs)/1e3).toFixed(3)+"]"}var vt=(e=>(e[e.None=0]="None",e[e.Error=1]="Error",e[e.Warn=2]="Warn",e[e.Log=4]="Log",e[e.Debug=8]="Debug",e))(vt||{});const Bs=[0,1,2,4,8],Ds=ct||Ye,Oe=!Ds,ne={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",underscore:"\x1B[4m",blink:"\x1B[5m",reverse:"\x1B[7m",hidden:"\x1B[8m",fg:{black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m"},bg:{black:"\x1B[40m",red:"\x1B[41m",green:"\x1B[42m",yellow:"\x1B[43m",blue:"\x1B[44m",magenta:"\x1B[45m",cyan:"\x1B[46m",white:"\x1B[47m"}},Os=[["debug",8],["info",4],["warn",2],["error",1],["assert",1],["trace",4],["group",4],["groupCollapsed",4],["groupEnd",4]];function Q(e,t=7,s=!1,i=""){let r;!we&&!s&&(t=1),Oe?i||(Lt?i=ne.fg.yellow:Xt&&(i=ne.fg.cyan)):i="";const o=i;i?i=`%s ${i}%s`:i="%s";const l=function(...g){return t&4&&console.log(i,De(),e,...g)};Os.forEach(([g,f])=>{l[g]=function(...c){return t&f&&console[g](i,De(),e,...c)}}),l.setPrefix=function(g){r=g,e="["+g+"]"},l.setPrefix(e),l.setLevel=function(g){t=Bs.slice(0,g+1).reduce((f,c)=>f|c,0)};const _={};return l.bindPrefix=function(g,f=t){return _[g]??(_[g]=Q(`${r}] ${Oe&&o?ne.reset:""}[${g}`,f,s,o))},l}function Ct(e){return new Promise(t=>{setTimeout(t,e)})}const Rs=self,ts="cachedAssets";function oe(e){return e.ok&&e.status===200}function Re(e){return Promise.race([e,Ct(1e4).then(()=>Promise.reject())])}async function Ns(e){try{const t=await Re(Rs.caches.open(ts)),s=await Re(t.match(e.request,{ignoreVary:!0}));if(s&&oe(s))return s;const i={Vary:"*"};let r=await fetch(e.request,{headers:i});if(oe(r))t.put(e.request,r.clone());else if(r.status===304){const o=e.request.url.replace(/\?.+$/,"")+"?"+(Math.random()*1e5|0);r=await fetch(o,{headers:i}),oe(r)&&t.put(e.request,r.clone())}return r}catch{return fetch(e.request)}}function Ls(e,t){return new Promise(s=>{const i=new FileReader;i.addEventListener("loadend",r=>{s(r.target.result)}),i[t](e)})}function qs(e){return Ls(e,"readAsArrayBuffer")}function Kt(e){return qs(e).then(t=>new Uint8Array(t))}function es(...e){const t=e.reduce((r,o)=>r+(o.byteLength||o.length),0),s=new Uint8Array(t);let i=0;return e.forEach(r=>{s.set(r instanceof ArrayBuffer?new Uint8Array(r):r,i),i+=r.byteLength||r.length}),s}function ss(){}const zs={isFulfilled:!1,isRejected:!1,notify:()=>{},notifyAll:function(...e){this.lastNotify=e,this.listeners?.forEach(t=>t(...e))},addNotifyListener:function(e){this.lastNotify&&e(...this.lastNotify),(this.listeners??(this.listeners=[])).push(e)},resolve:function(e){this.isFulfilled||this.isRejected||(this.isFulfilled=!0,this._resolve(e),this.onFinish())},reject:function(...e){this.isRejected||this.isFulfilled||(this.isRejected=!0,this._reject(...e),this.onFinish())},onFinish:function(){this.notify=this.notifyAll=this.lastNotify=null,this.listeners&&(this.listeners.length=0),this.cancel&&(this.cancel=ss)}};function H(){let e,t;const s=new Promise((i,r)=>{e=i,t=r});return Object.assign(s,zs),s._resolve=e,s._reject=t,s}self.deferredPromise=H;function Ws(e){const t=e.length,s=new Uint8Array(Math.ceil(t/2));let i=0;t%2&&(s[i++]=parseInt(e.charAt(0),16));for(let r=i;r=0;i--){let r=!0;for(let o=0;oe.length)continue;const g=Ne(e,Ks,l);g===-1||l-g>100||(i={offset:l+8,size:_-12})}if(!i)throw new Error("No ESDS found");const r=e.subarray(i.offset,i.offset+i.size),o=Hs(r);if(!o)throw new Error("Invalid ESDS");if(!js(o.decoderConfigDescriptor,Vs))throw new Error("Not a broken DSCI");if(i.size{const d=l,S=_;try{const U=e.apply(null,u);d(U)}catch(U){console.error("debounce error",U),S(U)}},c=(...u)=>{o||(o=new Promise((S,U)=>(l=S,_=U))),r?(clearTimeout(r),g=!0,_(),o=new Promise((S,U)=>(l=S,_=U))):s&&(f(u),g=!1);const d=lt.setTimeout(()=>{i&&(!s||g)&&f(u),r===d&&(r=o=l=_=void 0,g=!1)},t);return r=d,o.catch(ss),o};return c.clearTimeout=()=>{r&&(lt.clearTimeout(r),_(),r=o=l=_=void 0,g=!1)},c.isDebounced=()=>!!r,c}function Qs(e){return e=parseInt((e||"1")+""),e<=4&&e>=1?e:1}const ti="account";function qt(e){const t=new URL(e).searchParams;return Qs(t.get(ti)||"")}function ei(e){return Array.isArray(e)?e:[e]}function si(e){return["image/jpeg","image/png","image/gif","image/svg+xml","image/webp","image/bmp","image/avif","image/jxl","video/mp4","video/webm","video/quicktime","audio/ogg","audio/mpeg","audio/mp4","audio/wav","application/json","application/pdf"].indexOf(e)===-1?"application/octet-stream":e}function is(e,t=""){e=ei(e);const s=si(t);return new Blob(e,{type:s})}function Bt(e,t){const s=new Error;return{type:e,stack:s.stack}}class rs{constructor(){throw new Error("Cannot instantiate a static utility class")}}const Zt=class Zt extends rs{static async get(){return this.deferred&&await this.deferred,this.key}static async getAsBase64(){const t=await this.get();if(!t)return null;const s=await crypto.subtle.exportKey("raw",t);return btoa(String.fromCharCode(...new Uint8Array(s)))}static save(t){this.key=t,this.deferred?.resolve(),this.deferred=void 0}static resetDeferred(){this.key=null,this.deferred=H()}};Zt.key=null,Zt.deferred=H();let yt=Zt;const ii=Date.now()%Math.random()*1e8|0;function $t(e,t){const s=e.indexOf(t);return(s===-1?void 0:e.splice(s,1))?.[0]}class ri{constructor(t){this._constructor(t)}_constructor(t){this.reuseResults=t,this.listeners={},this.listenerResults={}}addEventListener(t,s,i){var o;const r={callback:s,options:i};if(((o=this.listeners)[t]??(o[t]=new Set)).add(r),this.listenerResults.hasOwnProperty(t)&&(s(...this.listenerResults[t]),i?.once)){this.listeners[t].delete(r);return}}addMultipleEventsListeners(t){for(const s in t)this.addEventListener(s,t[s])}removeEventListener(t,s,i){if(this.listeners[t]){for(const r of this.listeners[t])if(r.callback===s){this.listeners[t].delete(r);break}}}invokeListenerCallback(t,s,...i){let r,o;try{r=s.callback(...i)}catch(l){o=l}if(s.options?.once&&this.removeEventListener(t,s.callback),o)throw o;return r}_dispatchEvent(t,s,...i){this.reuseResults&&(this.listenerResults[t]=i);const r=s&&[],o=this.listeners[t];if(o)for(const l of o){const _=this.invokeListenerCallback(t,l,...i);r&&r.push(_)}return r}dispatchResultableEvent(t,...s){return this._dispatchEvent(t,!0,...s)}dispatchEvent(t,...s){this._dispatchEvent(t,!1,...s)}cleanup(){this.listeners={},this.listenerResults={}}}const ni=!0;class Dt extends ri{constructor(t){super(!1),this.logSuffix=t,this.onMessage=s=>{const i=s.data,r=s.source||s.currentTarget;this.processTaskMap[i.type](i,r,s)},this.processResultTask=s=>{const{taskId:i,result:r,error:o}=s.payload,l=this.awaiting[i];l&&(this.debug&&this.log.debug("done",l.taskType,r,o),"error"in s.payload?l.reject(o):l.resolve(r),delete this.awaiting[i])},this.processAckTask=s=>{const i=s.payload,r=this.awaiting[i.taskId];if(!r)return;const o=r.resolve,l={cached:i.cached,result:i.cached?"result"in i?Promise.resolve(i.result):Promise.reject(i.error):new Promise((_,g)=>{r.resolve=_,r.reject=g})};o(l),i.cached&&delete this.awaiting[i.taskId]},this.processPingTask=(s,i,r)=>{this.pushTask(this.createTask("pong",void 0),r.source)},this.processPongTask=(s,i,r)=>{const o=this.pingResolves.get(i);o&&(this.pingResolves.delete(i),o())},this.processCloseTask=(s,i,r)=>{this.detachPort(i)},this.processBatchTask=(s,i,r)=>{const o={data:r.data,source:r.source,currentTarget:r.currentTarget};s.payload.forEach(l=>{o.data=l,this.onMessage(o)})},this.processLockTask=(s,i,r)=>{const o=s.payload;this.requestedLocks.has(o)||(this.requestedLocks.set(o,i),navigator.locks.request(o,()=>{this.processCloseTask(void 0,i,void 0),this.requestedLocks.delete(o)}))},this.processInvokeTask=async(s,i,r)=>{const o=s.id,l=s.payload;let _,g,f;l.void||(_={taskId:o},g=this.createTask("result",_)),l.withAck&&(f=this.createTask("ack",{taskId:o,cached:!0}));let c;try{const u=this.listeners[l.type];if(!u?.size)throw new Error("no listener");const d=u.values().next().value;let S=this.invokeListenerCallback(l.type,d,l.payload,i,r);if(l.void)return;if(c=S instanceof Promise,f){const U=!c;if(f.payload.cached=U,U&&(f.payload.result=S),this.pushTask(f,i),U)return}c&&(S=await S),S instanceof Dt.TransferableResult&&(g.transfer=S.transferables,S=S.value),_.result=S}catch(u){if(this.log.error("worker task error:",u,s),l.void)return;if(f&&f.payload.cached){f.payload.error=u,this.pushTask(f,i);return}_.error=u}this.pushTask(g,i)},this.listenPorts=[],this.sendPorts=[],this.pingResolves=new Map,this.taskId=Math.random(),this.awaiting={},this.pending=new Map,this.log=Q("MP"+(t?"-"+t:"")),this.debug=we,this.heldLocks=new Map,this.requestedLocks=new Map,this.processTaskMap={result:this.processResultTask,ack:this.processAckTask,invoke:this.processInvokeTask,ping:this.processPingTask,pong:this.processPongTask,close:this.processCloseTask,lock:this.processLockTask,batch:this.processBatchTask}}setOnPortDisconnect(t){this.onPortDisconnect=t}attachPort(t){this.attachListenPort(t),this.attachSendPort(t)}attachListenPort(t){this.listenPorts.push(t),t.addEventListener("message",this.onMessage)}attachSendPort(t){if(this.log.warn("attaching send port"),t.start?.(),this.sendPorts.push(t),typeof window<"u"&&ni)if("locks"in navigator){const s=["lock",ii,this.logSuffix||"",Math.random()*2147483647|0].join("-");this.log.warn("created lock",s);const i=new Promise(r=>this.heldLocks.set(t,{resolve:r,id:s})).then(()=>this.heldLocks.delete(t));navigator.locks.request(s,()=>(this.resendLockTask(t),i))}else window.addEventListener("beforeunload",()=>{const s=this.createTask("close",void 0);this.postMessage(void 0,s)});this.releasePending()}resendLockTask(t){const s=this.heldLocks.get(t);s&&this.pushTask(this.createTask("lock",s.id),t)}detachPort(t){this.log.warn("disconnecting port"),$t(this.listenPorts,t),$t(this.sendPorts,t),t.removeEventListener?.("message",this.onMessage),t.close?.(),this.onPortDisconnect?.(t),this.heldLocks.get(t)?.resolve();const i=Bt("PORT_DISCONNECTED");for(const r in this.awaiting){const o=this.awaiting[r];o.port===t&&(o.reject(i),delete this.awaiting[r])}}postMessage(t,s){(Array.isArray(t)?t:t?[t]:this.sendPorts).forEach(r=>{r.postMessage(s,s.transfer)})}async releasePending(){this.releasingPending||(this.releasingPending=!0,await Promise.resolve(),this.debug&&this.log.debug("releasing tasks, length:",this.pending.size),this.pending.forEach((t,s)=>{let i=t;{let o;i=[],t.forEach(l=>{l.transfer?(o=void 0,i.push(l)):(o||(o=this.createTask("batch",[]),i.push(o)),o.payload.push(l))})}const r=s?[s]:this.sendPorts;r.length&&(i.forEach(o=>{try{this.postMessage(r,o)}catch(l){this.log.error("postMessage error:",l,o,r)}}),this.pending.delete(s))}),this.debug&&this.log.debug("released tasks"),this.releasingPending=!1)}createTask(t,s,i){return{type:t,payload:s,id:this.taskId++,transfer:i}}createInvokeTask(t,s,i,r,o){return this.createTask("invoke",{type:t,payload:s,withAck:i,void:r},o)}pushTask(t,s){let i=this.pending.get(s);i||this.pending.set(s,i=[]),i.push(t),this.releasePending()}invokeVoid(t,s,i,r){const o=this.createInvokeTask(t,s,void 0,!0,r);this.pushTask(o,i)}invoke(t,s,i,r,o){this.debug&&this.log.debug("start",t,s);let l;const _=new Promise((g,f)=>{l=this.createInvokeTask(t,s,i,void 0,o),this.awaiting[l.id]={resolve:g,reject:f,taskType:t,port:r},this.pushTask(l,r)});if(Ke){_.finally(()=>{clearInterval(g)});const g=lt.setInterval(()=>{this.log.error("task still has no result",l,r)},6e4)}return _}invokeExceptSource(t,s,i){const r=this.sendPorts.slice();$t(r,i),r.forEach(o=>{this.invokeVoid(t,s,o)})}async invokeExceptSourceAsync(t,s,i){const r=this.sendPorts.slice();$t(r,i),await Promise.all(r.map(o=>this.invoke(t,s,void 0,o)))}}(e=>{class t{constructor(i,r){this.value=i,this.transferables=r}}e.TransferableResult=t})(Dt||(Dt={}));var ns=Dt;class oi extends ns{constructor(){super("CRYPTO"),this.lastIndex=-1}invokeCryptoNew({method:t,args:s,transfer:i}){const r={method:t,args:s},o=this.listeners.invoke;if(o?.size){let _=o.values().next().value.callback(r);return!Ke&&!(_ instanceof Promise)&&(_=Promise.resolve(_)),_}const l=t==="aes-encrypt"||t==="aes-decrypt"?this.lastIndex=(this.lastIndex+1)%this.sendPorts.length:0;return this.invoke("invoke",r,void 0,this.sendPorts[l],i)}invokeCrypto(t,...s){return this.invokeCryptoNew({method:t,args:s})}sendToOnePort(t){this.invokeVoid("port",void 0,this.sendPorts[0],[t])}}const Ot=new oi;At&&(At.cryptoMessagePort=Ot);const Se=class Se extends rs{static resolveDeferred(t){this.value=t,this.deferred?.resolve(),this.deferred=void 0}static async isUsingPasscode(){if(this.deferred&&await this.deferred,typeof this.value!="boolean")throw new Error("Is using passcode is not boolean WTF?");return this.value}static resetDeferred(){this.value=void 0,this.deferred=H()}};Se.deferred=H();let Ut=Se;class ai{constructor(t,s,i){this.mimeType=t,this.size=s,this.saveFileCallback=i,this.bytes=new Uint8Array(s)}async write(t,s){const i=s+t.byteLength;if(i>this.bytes.byteLength){const r=new Uint8Array(i);r.set(this.bytes,0),this.bytes=r}this.bytes.set(t,s)}truncate(){this.bytes=new Uint8Array}trim(t){this.bytes=this.bytes.slice(0,t)}finalize(t=!0){const s=is(this.bytes,this.mimeType);return t&&this.saveFileCallback&&this.saveFileCallback(s),s}getParts(){return this.bytes}replaceParts(t){this.bytes=t}}const ce={cachedAssets:{encryptable:!1},cachedBackgrounds:{encryptable:!1},cachedFiles:{encryptable:!0},cachedStreamChunks:{encryptable:!0},cachedHlsQualityFiles:{encryptable:!0},cachedHlsStreamChunks:{encryptable:!0}},K=class K{constructor(t){this.dbName=t,this.useStorage=!0,nt.test&&(this.dbName+="_test"),K.STORAGES.length&&(this.useStorage=K.STORAGES[0].useStorage),this.config=Object.entries(ce).find(([s])=>s===t)?.[1],this.openDatabase(),K.STORAGES.push(this)}static async encrypt(t){const s=await yt.get(),i=await Kt(t),r=t.type,o=await Ot.invokeCryptoNew({method:"aes-local-encrypt",args:[{key:s,data:i}],transfer:[i.buffer]});return new Blob([o],{type:r})}static async decrypt(t){const s=await yt.get(),i=await Kt(t),r=t.type,o=await Ot.invokeCryptoNew({method:"aes-local-decrypt",args:[{key:s,encryptedData:i}],transfer:[i.buffer]});return new Blob([o],{type:r})}async waitToEnable(){K.disabledPromise&&await K.disabledPromise}openDatabase(){return this.openDbPromise??(this.openDbPromise=caches.open(this.dbName))}delete(t){return this.timeoutOperation(s=>s.delete("/"+t))}deleteAll(){return caches.delete(this.dbName)}async has(t){return!!await this.timeoutOperation(i=>i.match("/"+t))}async get(t){await this.waitToEnable();const s=await this.timeoutOperation(i=>i.match("/"+t));if(s)return this.config?.encryptable&&await Ut.isUsingPasscode()?new Response(await K.decrypt(await s.blob()),{headers:s.headers,status:s.status,statusText:s.statusText}):s}async save(t,s){await this.waitToEnable();let i=s;return this.config?.encryptable&&await Ut.isUsingPasscode()&&(i=new Response(await K.encrypt(await s.blob()),{headers:s.headers,status:s.status,statusText:s.statusText})),this.timeoutOperation(r=>r.put("/"+t,i))}getFile(t,s="blob"){return this.get(t).then(i=>{if(!i)throw Bt("NO_ENTRY_FOUND");return i[s]()})}saveFile(t,s){s instanceof Blob||(s=is(s));const i=new Response(s,{headers:{"Content-Length":""+s.size}});return this.save(t,i).then(()=>s)}timeoutOperation(t){return this.useStorage?new Promise(async(s,i)=>{let r=!1;const o=setTimeout(()=>{i(),r=!0},15e3);try{const l=await this.openDatabase();if(!l)throw this.useStorage=!1,this.openDbPromise=void 0,"no cache?";const _=await t(l);if(r)return;s(_)}catch(l){i(l)}clearTimeout(o)}):Promise.reject(Bt("STORAGE_OFFLINE"))}prepareWriting(t,s,i){return{deferred:H(),getWriter:()=>new ai(i,s,o=>this.saveFile(t,o).catch(()=>o))}}static toggleStorage(t,s){return this.STORAGES.forEach(i=>{i.useStorage=t}),Promise.resolve()}static async deleteAllStorages(){const t=Object.keys(ce);await Promise.all(t.map(async s=>{await new K(s).deleteAll()}))}static temporarilyToggle(t){t?(this.disabledPromise?.resolve(),this.disabledPromise=void 0):this.disabledPromise=H()}static async clearEncryptableStorages(){const t=Object.entries(ce).filter(([,{encryptable:s}])=>s).map(([s])=>s);await Promise.all(t.map(async s=>{await new K(s).timeoutOperation(async r=>{const o=await r.keys();await Promise.all(o.map(l=>r.delete(l)))})}))}};K.STORAGES=[];let ht=K;function ci(e){return new Promise(t=>{setTimeout(()=>{t(new Response("",{status:408,statusText:"Request timed out."}))},e)})}const os=self,Pt=new Map,he=new ht("cachedStreamChunks"),li=86400,as="Time-Cached",ui=20*1024*1024,hi=()=>he.timeoutOperation(e=>e.keys().then(t=>{const s=new Map,i=Date.now()/1e3|0;for(const o of t){const l=o.url.match(/\/(\d+?)\?/);l&&!s.has(l[1])&&s.set(l[1],o)}const r=[];for(const[o,l]of s){const _=e.match(l).then(g=>{if(+g.headers.get(as)+li<=i)return R("will delete stream chunk:",o),e.delete(l,{ignoreSearch:!0,ignoreVary:!0})});r.push(_)}return Promise.all(r)}));setInterval(hi,18e5);setInterval(()=>{const e=ge();for(const[t,s]of Pt)if(t!==e){for(const i in s)s[i].reject();Pt.delete(t)}},12e4);const Vt=new Map;os.streams=Vt;class mt{constructor(t){this.info=t,this.loadedOffsets=new Set,this.destroy=()=>{this.destroyDebounced.clearTimeout(),Vt.delete(this.id),J.invokeVoid("cancelFilePartRequests",{docId:mt.getDocId(this.info),accountNumber:this.info.accountNumber},ge())},this.toggleInUse=s=>{this.inUse+=s?1:-1,this.inUse||this.destroy()},this.id=mt.getId(t),Vt.set(this.id,this),this.inUse=0,this.limitPart=t.size>75*1024*1024?mi:_i,this.destroyDebounced=Xs(this.destroy,15e4,!1,!0)}async requestFilePartFromWorker(t,s,i=!1){const r={docId:mt.getDocId(this.info),dcId:this.info.dcId,offset:t,limit:s,accountNumber:this.info.accountNumber},o=JSON.stringify(r),l=ge();let _=Pt.get(l);_||Pt.set(l,_={});let g=_[o];if(g)return g.then(c=>c.bytes);this.loadedOffsets.add(t),g=_[o]=H(),J.invoke("requestFilePart",r,void 0,l).then(g.resolve.bind(g),g.reject.bind(g)).finally(()=>{_[o]===g&&(delete _[o],Object.keys(_).length||Pt.delete(l))});const f=g.then(c=>c.bytes);return this.saveChunkToCache(f,t,s),!i&&this.preloadChunks(t,ui),f}requestFilePartFromCache(t,s,i){const r=this.getChunkKey(t,s);return he.getFile(r).then(o=>i?new Uint8Array:Kt(o),o=>{o.type})}requestFilePart(t,s,i){return this.requestFilePartFromCache(t,s,i).then(o=>o||this.requestFilePartFromWorker(t,s,i))}saveChunkToCache(t,s,i){return t.then(r=>{const o=this.getChunkKey(s,i),l=new Response(r,{headers:{"Content-Length":""+r.length,"Content-Type":"application/octet-stream",[as]:""+(Date.now()/1e3|0)}});return he.save(o,l)})}preloadChunk(t){this.loadedOffsets.has(t)||(this.loadedOffsets.add(t),this.requestFilePart(t,this.limitPart,!0))}preloadChunks(t,s){if(s>this.info.size&&(s=this.info.size),!t)this.preloadChunk(Le(t,this.limitPart));else for(;t{let c=es(...f.filter(Boolean));if(i!==l||r!==l+o){const d=i-l,S=r-l+1;c=c.slice(d,S)}(this.shouldPatchMp4===!0||this.shouldPatchMp4===l)&&Zs(c)&&(this.shouldPatchMp4=l);const u={"Accept-Ranges":"bytes","Content-Range":`bytes ${i}-${i+c.byteLength-1}/${this.info.size||"*"}`,"Content-Length":`${c.byteLength}`,"Response-Time":""+Date.now()};return this.info.mimeType&&(u["Content-Type"]=this.info.mimeType),new Response(c,{status:206,statusText:"Partial Content",headers:u})})}getChunkKey(t,s){return this.id+"?offset="+t+"&limit="+s}patchChromiumMp4(){this.shouldPatchMp4=!0}static get(t){return Vt.get(this.getId(t))??new mt(t)}static getId(t){return`${t.accountNumber}-${this.getDocId(t)}`}static getDocId(t){return t.location.id}}function cs(e){return JSON.parse(decodeURIComponent(e))}function fi(e,t,s){async function i(){const r=ls(e.request.headers.get("Range")),o=cs(t),l=await os.clients.get(e.clientId);l?.type==="window"&&(o.accountNumber=qt(l.url));const _=mt.get(o);return s==="_crbug1250841"&&_.patchChromiumMp4(),_.requestRange(r)}e.respondWith(Promise.race([ci(45*1e3),i()]))}function pi({url:e,inUse:t,accountNumber:s}){[e]=e.split("?");const i="stream/",r=e.indexOf(i),o=cs(e.slice(r+i.length));o.accountNumber=s,mt.get(o).toggleInUse(t)}function di(e,t,s){return e[0]===0&&e[1]===1?new Response(new Uint8Array(2).buffer,{status:206,statusText:"Partial Content",headers:{"Accept-Ranges":"bytes","Content-Range":`bytes 0-1/${s||"*"}`,"Content-Length":"2","Content-Type":t||"video/mp4"}}):null}const _i=512*1024,mi=1024*1024,gi=512*4;function ls(e){if(!e)return[0,0];const[,t]=e.split("="),s=t.split(", "),[i,r]=s[0].split("-");return[+i,+r||0]}function Le(e,t=gi){return e-e%t}function yi(e){return 2**Math.ceil(Math.log(e)/Math.log(2))}const us=e=>({name:`tweb-account-${e}`,version:9,stores:[{name:"session",encryptedName:"session__encrypted"},{name:"stickerSets",encryptedName:"stickerSets__encrypted"},{name:"users",encryptedName:"users__encrypted"},{name:"chats",encryptedName:"chats__encrypted"},{name:"dialogs",encryptedName:"dialogs__encrypted"},{name:"messages",encryptedName:"messages__encrypted"},{name:"webapp",encryptedName:"webapp__encrypted"}]});At.getDatabaseState=us;const wi="assets/img/logo_filled_rounded.png",vi="assets/img/logo_plain.svg";function hs(e,t,s){const r=_=>Object.keys(_).filter(g=>_[g]!==void 0),o=typeof e;return e&&t&&o==="object"&&o===typeof t?r(e).length===r(t).length&&r(e).every(_=>hs(e[_],t[_])):e===t}function bi(e,t){if(t)for(const s in t)t[s]!==void 0&&(e[s]=t[s]);return e}const It=class It{constructor(t){bi(this,t),nt.test&&(this.name+="_test"),this.storageIsAvailable=!0,this.log=Q(["IDB",t.name].join("-")),this.log("constructor"),this.openDatabase(!0),It.INSTANCES.push(this)}isAvailable(){return this.storageIsAvailable}openDatabase(t=!1){if(this.openDbPromise&&!t)return this.openDbPromise;const s=(l,_)=>{const g=Array.from(l.indexNames);for(const f of g)l.deleteIndex(f);if(_.indexes?.length)for(const f of _.indexes)l.indexNames.contains(f.indexName)||l.createIndex(f.indexName,f.keyPath,f.objectParameters)},i=(l,_)=>{const g=l.createObjectStore(_.name);s(g,_)};try{var r=indexedDB.open(this.name,this.version);if(!r)return Promise.reject()}catch(l){return this.log.error("error opening db",l.message),this.storageIsAvailable=!1,Promise.reject(l)}let o=!1;return setTimeout(()=>{o||r.onerror(Bt("IDB_CREATE_TIMEOUT"))},3e3),this.openDbPromise=new Promise((l,_)=>{r.onsuccess=g=>{o=!0;const f=r.result;let c=!1;this.log("Opened"),f.onerror=u=>{this.storageIsAvailable=!1,this.log.error("Error creating/accessing IndexedDB database",u),_(u)},f.onclose=u=>{this.log.error("closed:",u),!c&&this.openDatabase()},f.onabort=u=>{this.log.error("abort:",u);const d=u.target;this.openDatabase(c=!0),d.onerror&&d.onerror(u),f.close()},f.onversionchange=u=>{this.log.error("onversionchange, lol?")},l(this.db=f)},r.onerror=g=>{o=!0,this.storageIsAvailable=!1,this.log.error("Error creating/accessing IndexedDB database",g),_(g)},r.onupgradeneeded=g=>{o=!0,this.log.warn("performing idb upgrade from",g.oldVersion,"to",g.newVersion);const f=g.target,c=f.result;this.stores.forEach(u=>{if(!c.objectStoreNames.contains(u.name))i(c,u);else{const S=f.transaction.objectStore(u.name);s(S,u)}u.encryptedName&&!c.objectStoreNames.contains(u.encryptedName)&&c.createObjectStore(u.encryptedName)})}}).then(l=>this.openDbPromise=l)}async closeDatabase(){this.db&&(this.db.onclose=()=>{},this.db.close())}static create(t){return this.INSTANCES.find(s=>s.name===t.name)??new It(t)}static closeDatabases(t){this.INSTANCES.forEach(s=>{t&&t===s||s.closeDatabase()})}static deleteDatabaseByName(t){return new Promise((s,i)=>{this.INSTANCES.forEach(o=>{if(o.name===t)return o.closeDatabase()});const r=indexedDB.deleteDatabase(t);r.onerror=()=>i(),r.onsuccess=()=>s()})}};It.INSTANCES=[];let fe=It;class Fi{constructor(t,s){this.storeName=s,this.log=Q(["IDB",t.name,s].join("-")),this.idb=fe.create(t)}close(){return this.idb.closeDatabase()}delete(t,s){const i=Array.isArray(t);return i||(t=[].concat(t)),this.getObjectStore("readwrite",r=>{const o=t.map(l=>r.delete(l));return i?o:o[0]},"",s)}clear(t){return this.getObjectStore("readwrite",s=>s.clear(),"",t)}save(t,s,i){const r=Array.isArray(t);return r||(t=[].concat(t),s=[].concat(s)),this.getObjectStore("readwrite",o=>{const l=t.map((_,g)=>o.put(s[g],_));return r?l:l[0]},"",i)}get(t,s){const i=Array.isArray(t);if(i){if(!t.length)return Promise.resolve([])}else{if(!t)return;t=[].concat(t)}return this.getObjectStore("readonly",r=>{const o=t.map(l=>r.get(l));return i?o:o[0]},"",s)}async getObjectStore(t,s,i,r=this.storeName){let o;i&&(o=performance.now(),this.log(i+": start"));const l=setTimeout(()=>{this.log.error("transaction not finished",d,i)},1e4),_=this.idb.openDatabase(),g=_ instanceof Promise?await _:_;let f,c;const u=new Promise((B,q)=>[f,c]=[B,q]),d=g.transaction([r],t,{durability:"relaxed"}),S=()=>{clearTimeout(l),c(d.error)},U=()=>{clearTimeout(l),i&&this.log(i+": end",performance.now()-o);const B=C.map(q=>q.result);f(T?B:B[0]),i&&this.log(i+": resolved",T?B:B[0])};d.onerror=S;const x=t==="readwrite";x&&(d.oncomplete=()=>U());const A=s(d.objectStore(r),U,S),T=Array.isArray(A),C=T?A:[].concat(A);if(x)return u;const W=C.length;let j=W;const M=()=>{d.error||--j||U()};for(let B=0;Bs.getAll(),"",t)}getAllKeys(t){return this.getObjectStore("readonly",s=>s.getAllKeys(),"",t)}getAllEntries(t){const s=[];return new Promise((i,r)=>{this.getObjectStore("readonly",(o,l,_)=>{const g=o.openCursor();return g.onsuccess=f=>{const c=f.target.result;c?(s.push([c.key,c.value]),c.continue()):(l(),i(s))},g.onerror=_,[]},"",t).catch(r)})}}const st=self,Si=location.protocol+"//"+location.hostname+location.pathname.split("/").slice(0,-1).join("/")+"/",Ui=11500;let fs=0,ps=!0;class Mi{constructor(t,s,i){this.defaults=i,this.cache={},this.storage=new Fi(t,s)}getDefault(t){const s=this.defaults[t];return typeof s=="function"?s():s}get(t){return this.cache.hasOwnProperty(t)?this.cache[t]:this.storage.get(t).then(i=>i,()=>{}).then(i=>this.cache.hasOwnProperty(t)?this.cache[t]:(i??(i=this.getDefault(t)),this.cache[t]=i))}getCached(t){const s=this.get(t);if(s instanceof Promise)throw"no property";return s}async set(t,s){const i=this.cache[t]??this.defaults[t];if(!hs(i,s)){this.cache[t]=s;try{this.storage.save(t,s)}catch{}}}}const ds={push_mute_until:0,push_lang:{push_message_nopreview:"You have a new message",push_action_mute1d:"Mute for 24H",push_action_settings:"Settings"},push_settings:{}},ut=new Mi(us(1),"session",ds);for(const e in ds)ut.get(e);st.addEventListener("push",e=>{const t=e.data.json();R("push",{...t});try{const[s,i,r]=[ut.getCached("push_mute_until"),ut.getCached("push_settings"),ut.getCached("push_lang")],o=Date.now();if(_s()&&s&&o{const t=e.notification;R("on notification click",t),t.close();const s=e.action;if(s==="mute1d"&&_s()){R("[SW] mute for 1d"),ut.set("push_mute_until",Date.now()+864e5);return}const i=t.data;if(!i)return;const r=st.clients.matchAll({type:"window"}).then(o=>{i.action=s,Ft=i;for(let l=0;lst.clients.openWindow(l.baseUrl||Si))}).catch(o=>{R.error("Clients.matchAll error",o)});e.waitUntil(r)});st.addEventListener("notificationclose",Ti);const pe=new Set;let Ft;function Ti(e){ki(e.notification)}function ki(e){pe.delete(e)}function xi(e){for(const s of pe)try{if(e&&s.tag!==e)continue;s.close(),pe.delete(s)}catch{}let t;return"getNotifications"in st.registration?t=st.registration.getNotifications({tag:e}).then(s=>{for(let i=0,r=s.length;i{R.error("Offline register SW error",s)}):t=Promise.resolve(),t}function _s(){return Ye}function Pi(e,t,s){let i=e.title||"Telegram",r=e.description||"",o;e.custom&&(e.custom.channel_id?o=""+-e.custom.channel_id:e.custom.chat_id?o=""+-e.custom.chat_id:o=e.custom.from_id||""),e.custom.peerId=""+o;let l="peer"+o;const _=o+"_"+e.custom.msg_id;if(Rt.has(_)){const u="ignoring push";throw R.warn(u,e),Rt.delete(_),u}t?.nopreview&&(i="Telegram",r=s.push_message_nopreview,l="unknown_peer");const g=[{action:"mute1d",title:s.push_action_mute1d}],f={body:r,icon:wi,tag:l,data:e,actions:g,badge:vi,silent:e.custom.silent==="1"};return R("show notify",i,r,e,f),st.registration.showNotification(i,f).catch(u=>{R.error("Show notification promise",u)})}function Ei(e,t){fs=Date.now(),ps=e.localNotifications,Ft&&t&&(J.invokeVoid("pushClick",Ft,t),Ft=void 0),e.lang&&ut.set("push_lang",e.lang),e.settings&&ut.set("push_settings",e.settings)}const Rt=new Map;function Ii(e){Rt.set(e,Date.now())}setInterval(()=>{const e=Date.now();Rt.forEach((t,s)=>{e-t>3e4&&Rt.delete(s)})},30*6e4);class Ai extends ns{constructor(){super("SERVICE"),At&&(At.serviceMessagePort=this)}}function Ci(e,t,s){const i=(r,o)=>{e.attachListenPort(r),o&&e.attachSendPort(o)};e.setOnPortDisconnect(s),typeof SharedWorkerGlobalScope<"u"?lt.addEventListener("connect",r=>i(r.source,r.source)):typeof ServiceWorkerGlobalScope<"u"?i(lt,null):i(lt,lt)}const Z=new Map,le=Bt("UNKNOWN"),Bi=!1;self.downloadMap=Z;const Di={download:e=>{const{id:t}=e;if(Z.has(t))return Promise.reject(le);const s=Q("DOWNLOAD-"+t);s("prepare");const i=new CountQueuingStrategy({highWaterMark:1}),r=H();r.then(()=>{setTimeout(()=>{Z.delete(t)},5e3)},()=>{Z.delete(t)});let o;const l=new ReadableStream({start:g=>{o=g},cancel:g=>{s("cancel",t,g),r.reject(le)}},i),_={...e,readableStream:l,promise:r,controller:o,log:s};return Z.set(t,_),r.catch(()=>{throw le})},downloadChunk:({id:e,chunk:t})=>{const s=Z.get(e);return s?s.controller.enqueue(t):Promise.reject()},downloadFinalize:e=>{const t=Z.get(e);return t?(t.log("finalize"),t.promise.resolve(),t.controller.close()):Promise.reject()},downloadCancel:e=>{const t=Z.get(e);if(t)return t.log("cancel"),t.promise.reject(),t.controller.error()}};function Oi(e){return e.addMultipleEventsListeners(Di),{onDownloadFetch:Ri,onClosedWindows:Ni}}function Ri(e,t){ye("downloadRequestReceived",t);const s=Ct(100).then(()=>{const i=Z.get(t);if(!i||i.used&&!Bi){R.warn("no such download",t);return}i.log("fetch"),i.used=!0;const r=i.readableStream;return new Response(r,{headers:i.headers,status:200})});e.respondWith(s)}function Ni(){if(R("cancelling all downloads"),Z.size)for(const[e,t]of Z)t.controller.error()}const Et={};function Li(e){return{files:e.getAll("files"),title:e.get("title"),text:e.get("text"),url:e.get("url")}}async function qi(e,t){try{R("share data",e);const s=Li(e);(Et[t]??(Et[t]=[])).push(s)}catch(s){R.warn("something wrong with the data",s)}}function zi(e){const t=Et[e.id];t&&(delete Et[e.id],R("releasing share events to client:",e.id,"length:",t.length),t.forEach(s=>{J.invokeVoid("share",s,e)}))}function Wi(e,t){const s=e.request.formData().then(i=>(qi(i,e.resultingClientId),Response.redirect("..")));e.respondWith(s)}const qe=1,ji=2;function gt(e,t){if(e.type===t)return e;if(!e.boxes)return null;for(const s of e.boxes){const i=gt(s,t);if(i)return i}return null}function de(e){return new Uint8Array(e._raw.buffer,e._raw.byteOffset,e._raw.byteLength)}function Ji(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ms={exports:{}};(function(e){var t=function(s){var i=1e7,r=7,o=9007199254740992,l=U(o),_="0123456789abcdefghijklmnopqrstuvwxyz",g=typeof BigInt=="function";function f(n,a,h,p){return typeof n>"u"?f[0]:typeof a<"u"?+a==10&&!h?P(n):Ps(n,a,h,p):P(n)}function c(n,a){this.value=n,this.sign=a,this.isSmall=!1}c.prototype=Object.create(f.prototype);function u(n){this.value=n,this.sign=n<0,this.isSmall=!0}u.prototype=Object.create(f.prototype);function d(n){this.value=n}d.prototype=Object.create(f.prototype);function S(n){return-o0?Math.floor(n):Math.ceil(n)}function W(n,a){var h=n.length,p=a.length,y=new Array(h),m=0,w=i,v,F;for(F=0;F=w?1:0,y[F]=v-m*w;for(;F0&&y.push(m),y}function j(n,a){return n.length>=a.length?W(n,a):W(a,n)}function M(n,a){var h=n.length,p=new Array(h),y=i,m,w;for(w=0;w0;)p[w++]=a%y,a=Math.floor(a/y);return p}c.prototype.add=function(n){var a=P(n);if(this.sign!==a.sign)return this.subtract(a.negate());var h=this.value,p=a.value;return a.isSmall?new c(M(h,Math.abs(p)),this.sign):new c(j(h,p),this.sign)},c.prototype.plus=c.prototype.add,u.prototype.add=function(n){var a=P(n),h=this.value;if(h<0!==a.sign)return this.subtract(a.negate());var p=a.value;if(a.isSmall){if(S(h+p))return new u(h+p);p=U(Math.abs(p))}return new c(M(p,Math.abs(h)),h<0)},u.prototype.plus=u.prototype.add,d.prototype.add=function(n){return new d(this.value+P(n).value)},d.prototype.plus=d.prototype.add;function B(n,a){var h=n.length,p=a.length,y=new Array(h),m=0,w=i,v,F;for(v=0;v=0?p=B(n,a):(p=B(a,n),h=!h),p=x(p),typeof p=="number"?(h&&(p=-p),new u(p)):new c(p,h)}function k(n,a,h){var p=n.length,y=new Array(p),m=-a,w=i,v,F;for(v=0;v=0)},u.prototype.minus=u.prototype.subtract,d.prototype.subtract=function(n){return new d(this.value-P(n).value)},d.prototype.minus=d.prototype.subtract,c.prototype.negate=function(){return new c(this.value,!this.sign)},u.prototype.negate=function(){var n=this.sign,a=new u(-this.value);return a.sign=!n,a},d.prototype.negate=function(){return new d(-this.value)},c.prototype.abs=function(){return new c(this.value,!1)},u.prototype.abs=function(){return new u(Math.abs(this.value))},d.prototype.abs=function(){return new d(this.value>=0?this.value:-this.value)};function D(n,a){var h=n.length,p=a.length,y=h+p,m=T(y),w=i,v,F,E,O,I;for(E=0;E0;)p[v++]=m%y,m=Math.floor(m/y);return p}function G(n,a){for(var h=[];a-- >0;)h.push(0);return h.concat(n)}function Wt(n,a){var h=Math.max(n.length,a.length);if(h<=30)return D(n,a);h=Math.ceil(h/2);var p=n.slice(h),y=n.slice(0,h),m=a.slice(h),w=a.slice(0,h),v=Wt(y,w),F=Wt(p,m),E=Wt(j(y,p),j(w,m)),O=j(j(v,G(B(B(E,v),F),h)),G(F,2*h));return A(O),O}function Ss(n,a){return-.012*n-.012*a+15e-6*n*a>0}c.prototype.multiply=function(n){var a=P(n),h=this.value,p=a.value,y=this.sign!==a.sign,m;if(a.isSmall){if(p===0)return f[0];if(p===1)return this;if(p===-1)return this.negate();if(m=Math.abs(p),m=0;I--){for(O=y-1,F[I+p]!==w&&(O=Math.floor((F[I+p]*y+F[I+p-1])/w)),L=0,V=0,ie=E.length,$=0;$p&&(E=(E+1)*w),v=Math.ceil(E/O);do{if(I=z(a,v),pt(I,m)<=0)break;v--}while(v);y.push(v),m=B(m,I)}return y.reverse(),[x(y),x(m)]}function Te(n,a){var h=n.length,p=T(h),y=i,m,w,v,F;for(v=0,m=h-1;m>=0;--m)F=v*y+n[m],w=C(F/a),v=F-w*a,p[m]=w|0;return[p,v|0]}function ft(n,a){var h,p=P(a);if(g)return[new d(n.value/p.value),new d(n.value%p.value)];var y=n.value,m=p.value,w;if(m===0)throw new Error("Cannot divide by zero");if(n.isSmall)return p.isSmall?[new u(C(y/m)),new u(y%m)]:[f[0],n];if(p.isSmall){if(m===1)return[n,f[0]];if(m==-1)return[n.negate(),f[0]];var v=Math.abs(m);if(va.length?1:-1;for(var h=n.length-1;h>=0;h--)if(n[h]!==a[h])return n[h]>a[h]?1:-1;return 0}c.prototype.compareAbs=function(n){var a=P(n),h=this.value,p=a.value;return a.isSmall?1:pt(h,p)},u.prototype.compareAbs=function(n){var a=P(n),h=Math.abs(this.value),p=a.value;return a.isSmall?(p=Math.abs(p),h===p?0:h>p?1:-1):-1},d.prototype.compareAbs=function(n){var a=this.value,h=P(n).value;return a=a>=0?a:-a,h=h>=0?h:-h,a===h?0:a>h?1:-1},c.prototype.compare=function(n){if(n===1/0)return-1;if(n===-1/0)return 1;var a=P(n),h=this.value,p=a.value;return this.sign!==a.sign?a.sign?1:-1:a.isSmall?this.sign?-1:1:pt(h,p)*(this.sign?-1:1)},c.prototype.compareTo=c.prototype.compare,u.prototype.compare=function(n){if(n===1/0)return-1;if(n===-1/0)return 1;var a=P(n),h=this.value,p=a.value;return a.isSmall?h==p?0:h>p?1:-1:h<0!==a.sign?h<0?-1:1:h<0?1:-1},u.prototype.compareTo=u.prototype.compare,d.prototype.compare=function(n){if(n===1/0)return-1;if(n===-1/0)return 1;var a=this.value,h=P(n).value;return a===h?0:a>h?1:-1},d.prototype.compareTo=d.prototype.compare,c.prototype.equals=function(n){return this.compare(n)===0},d.prototype.eq=d.prototype.equals=u.prototype.eq=u.prototype.equals=c.prototype.eq=c.prototype.equals,c.prototype.notEquals=function(n){return this.compare(n)!==0},d.prototype.neq=d.prototype.notEquals=u.prototype.neq=u.prototype.notEquals=c.prototype.neq=c.prototype.notEquals,c.prototype.greater=function(n){return this.compare(n)>0},d.prototype.gt=d.prototype.greater=u.prototype.gt=u.prototype.greater=c.prototype.gt=c.prototype.greater,c.prototype.lesser=function(n){return this.compare(n)<0},d.prototype.lt=d.prototype.lesser=u.prototype.lt=u.prototype.lesser=c.prototype.lt=c.prototype.lesser,c.prototype.greaterOrEquals=function(n){return this.compare(n)>=0},d.prototype.geq=d.prototype.greaterOrEquals=u.prototype.geq=u.prototype.greaterOrEquals=c.prototype.geq=c.prototype.greaterOrEquals,c.prototype.lesserOrEquals=function(n){return this.compare(n)<=0},d.prototype.leq=d.prototype.lesserOrEquals=u.prototype.leq=u.prototype.lesserOrEquals=c.prototype.leq=c.prototype.lesserOrEquals,c.prototype.isEven=function(){return(this.value[0]&1)===0},u.prototype.isEven=function(){return(this.value&1)===0},d.prototype.isEven=function(){return(this.value&BigInt(1))===BigInt(0)},c.prototype.isOdd=function(){return(this.value[0]&1)===1},u.prototype.isOdd=function(){return(this.value&1)===1},d.prototype.isOdd=function(){return(this.value&BigInt(1))===BigInt(1)},c.prototype.isPositive=function(){return!this.sign},u.prototype.isPositive=function(){return this.value>0},d.prototype.isPositive=u.prototype.isPositive,c.prototype.isNegative=function(){return this.sign},u.prototype.isNegative=function(){return this.value<0},d.prototype.isNegative=u.prototype.isNegative,c.prototype.isUnit=function(){return!1},u.prototype.isUnit=function(){return Math.abs(this.value)===1},d.prototype.isUnit=function(){return this.abs().value===BigInt(1)},c.prototype.isZero=function(){return!1},u.prototype.isZero=function(){return this.value===0},d.prototype.isZero=function(){return this.value===BigInt(0)},c.prototype.isDivisibleBy=function(n){var a=P(n);return a.isZero()?!1:a.isUnit()?!0:a.compareAbs(2)===0?this.isEven():this.mod(a).isZero()},d.prototype.isDivisibleBy=u.prototype.isDivisibleBy=c.prototype.isDivisibleBy;function ke(n){var a=n.abs();if(a.isUnit())return!1;if(a.equals(2)||a.equals(3)||a.equals(5))return!0;if(a.isEven()||a.isDivisibleBy(3)||a.isDivisibleBy(5))return!1;if(a.lesser(49))return!0}function Qt(n,a){for(var h=n.prev(),p=h,y=0,m,w,v;p.isEven();)p=p.divide(2),y++;t:for(w=0;w-o?new u(n-1):new c(l,!0)},d.prototype.prev=function(){return new d(this.value-BigInt(1))};for(var tt=[1];2*tt[tt.length-1]<=i;)tt.push(2*tt[tt.length-1]);var Mt=tt.length,dt=tt[Mt-1];function xe(n){return Math.abs(n)<=i}c.prototype.shiftLeft=function(n){var a=P(n).toJSNumber();if(!xe(a))throw new Error(String(a)+" is too large for shifting.");if(a<0)return this.shiftRight(-a);var h=this;if(h.isZero())return h;for(;a>=Mt;)h=h.multiply(dt),a-=Mt-1;return h.multiply(tt[a])},d.prototype.shiftLeft=u.prototype.shiftLeft=c.prototype.shiftLeft,c.prototype.shiftRight=function(n){var a,h=P(n).toJSNumber();if(!xe(h))throw new Error(String(h)+" is too large for shifting.");if(h<0)return this.shiftLeft(-h);for(var p=this;h>=Mt;){if(p.isZero()||p.isNegative()&&p.isUnit())return p;a=ft(p,dt),p=a[1].isNegative()?a[0].prev():a[0],h-=Mt-1}return a=ft(p,tt[h]),a[1].isNegative()?a[0].prev():a[0]},d.prototype.shiftRight=u.prototype.shiftRight=c.prototype.shiftRight;function te(n,a,h){a=P(a);for(var p=n.isNegative(),y=a.isNegative(),m=p?n.not():n,w=y?a.not():a,v=0,F=0,E=null,O=null,I=[];!m.isZero()||!w.isZero();)E=ft(m,dt),v=E[1].toJSNumber(),p&&(v=dt-1-v),O=ft(w,dt),F=O[1].toJSNumber(),y&&(F=dt-1-F),m=E[0],w=O[0],I.push(h(v,F));for(var L=h(p?1:0,y?1:0)!==0?t(-1):t(0),V=I.length-1;V>=0;V-=1)L=L.multiply(dt).add(t(I[V]));return L}c.prototype.not=function(){return this.negate().prev()},d.prototype.not=u.prototype.not=c.prototype.not,c.prototype.and=function(n){return te(this,n,function(a,h){return a&h})},d.prototype.and=u.prototype.and=c.prototype.and,c.prototype.or=function(n){return te(this,n,function(a,h){return a|h})},d.prototype.or=u.prototype.or=c.prototype.or,c.prototype.xor=function(n){return te(this,n,function(a,h){return a^h})},d.prototype.xor=u.prototype.xor=c.prototype.xor;var ee=1<<30,Ts=(i&-i)*(i&-i)|ee;function jt(n){var a=n.value,h=typeof a=="number"?a|ee:typeof a=="bigint"?a|BigInt(ee):a[0]+a[1]*i|Ts;return h&-h}function Pe(n,a){if(a.compareTo(n)<=0){var h=Pe(n,a.square(a)),p=h.p,y=h.e,m=p.multiply(a);return m.compareTo(n)<=0?{p:m,e:y*2+1}:{p,e:y*2}}return{p:t(1),e:0}}c.prototype.bitLength=function(){var n=this;return n.compareTo(t(0))<0&&(n=n.negate().subtract(t(1))),n.compareTo(t(0))===0?t(0):t(Pe(n,t(2)).e).add(t(1))},d.prototype.bitLength=u.prototype.bitLength=c.prototype.bitLength;function Ee(n,a){return n=P(n),a=P(a),n.greater(a)?n:a}function se(n,a){return n=P(n),a=P(a),n.lesser(a)?n:a}function Ie(n,a){if(n=P(n).abs(),a=P(a).abs(),n.equals(a))return n;if(n.isZero())return a;if(a.isZero())return n;for(var h=f[1],p,y;n.isEven()&&a.isEven();)p=se(jt(n),jt(a)),n=n.divide(p),a=a.divide(p),h=h.multiply(p);for(;n.isEven();)n=n.divide(jt(n));do{for(;a.isEven();)a=a.divide(jt(a));n.greater(a)&&(y=a,a=n,n=y),a=a.subtract(n)}while(!a.isZero());return h.isUnit()?n:n.multiply(h)}function ks(n,a){return n=P(n).abs(),a=P(a).abs(),n.divide(Ie(n,a)).multiply(a)}function xs(n,a,h){n=P(n),a=P(a);var p=h||Math.random,y=se(n,a),m=Ee(n,a),w=m.subtract(y).add(1);if(w.isSmall)return y.add(Math.floor(p()*w));for(var v=Tt(w,i).value,F=[],E=!0,O=0;O=w){if(F==="1"&&w===1)continue;throw new Error(F+" is not a valid digit in base "+a+".")}}a=P(a);var E=[],O=n[0]==="-";for(m=O?1:0;m"&&m=0;m--)p=p.add(n[m].times(y)),y=y.times(a);return h?p.negate():p}function Es(n,a){return a=a||_,n"}function Tt(n,a){if(a=t(a),a.isZero()){if(n.isZero())return{value:[0],isNegative:!1};throw new Error("Cannot convert nonzero numbers to base 0.")}if(a.equals(-1)){if(n.isZero())return{value:[0],isNegative:!1};if(n.isNegative())return{value:[].concat.apply([],Array.apply(null,Array(-n.toJSNumber())).map(Array.prototype.valueOf,[1,0])),isNegative:!1};var h=Array.apply(null,Array(n.toJSNumber()-1)).map(Array.prototype.valueOf,[0,1]);return h.unshift([1]),{value:[].concat.apply([],h),isNegative:!1}}var p=!1;if(n.isNegative()&&a.isPositive()&&(p=!0,n=n.abs()),a.isUnit())return n.isZero()?{value:[0],isNegative:!1}:{value:Array.apply(null,Array(n.toJSNumber())).map(Number.prototype.valueOf,1),isNegative:p};for(var y=[],m=n,w;m.isNegative()||m.compareAbs(a)>=0;){w=m.divmod(a),m=w.quotient;var v=w.remainder;v.isNegative()&&(v=a.minus(v).abs(),m=m.next()),y.push(v.toJSNumber())}return y.push(m.toJSNumber()),{value:y.reverse(),isNegative:p}}function Ce(n,a,h){var p=Tt(n,a);return(p.isNegative?"-":"")+p.value.map(function(y){return Es(y,h)}).join("")}c.prototype.toArray=function(n){return Tt(this,n)},u.prototype.toArray=function(n){return Tt(this,n)},d.prototype.toArray=function(n){return Tt(this,n)},c.prototype.toString=function(n,a){if(n===s&&(n=10),n!==10||a)return Ce(this,n,a);for(var h=this.value,p=h.length,y=String(h[--p]),m="0000000",w;--p>=0;)w=String(h[p]),y+=m.slice(w.length)+w;var v=this.sign?"-":"";return v+y},u.prototype.toString=function(n,a){return n===s&&(n=10),n!=10||a?Ce(this,n,a):String(this.value)},d.prototype.toString=u.prototype.toString,d.prototype.toJSON=c.prototype.toJSON=u.prototype.toJSON=function(){return this.toString()},c.prototype.valueOf=function(){return parseInt(this.toString(),10)},c.prototype.toJSNumber=c.prototype.valueOf,u.prototype.valueOf=function(){return this.value},u.prototype.toJSNumber=u.prototype.valueOf,d.prototype.valueOf=d.prototype.toJSNumber=function(){return parseInt(this.toString(),10)};function Be(n){if(S(+n)){var a=+n;if(a===C(a))return g?new d(BigInt(a)):new u(a);throw new Error("Invalid integer: "+n)}var h=n[0]==="-";h&&(n=n.slice(1));var p=n.split(/e/i);if(p.length>2)throw new Error("Invalid integer: "+p.join("e"));if(p.length===2){var y=p[1];if(y[0]==="+"&&(y=y.slice(1)),y=+y,y!==C(y)||!S(y))throw new Error("Invalid integer: "+y+" is not a valid exponent.");var m=p[0],w=m.indexOf(".");if(w>=0&&(y-=m.length-w-1,m=m.slice(0,w)+m.slice(w+1)),y<0)throw new Error("Cannot include negative exponent part for integers");m+=new Array(y+1).join("0"),n=m}var v=/^([0-9][0-9]*)$/.test(n);if(!v)throw new Error("Invalid integer: "+n);if(g)return new d(BigInt(h?"-"+n:n));for(var F=[],E=n.length,O=r,I=E-O;E>0;)F.push(+n.slice(I,E)),I-=O,I<0&&(I=0),E-=O;return A(F),new c(F,h)}function Is(n){if(g)return new d(BigInt(n));if(S(n)){if(n!==C(n))throw new Error(n+" is not an integer.");return new u(n)}return Be(n.toString())}function P(n){return typeof n=="number"?Is(n):typeof n=="string"?Be(n):typeof n=="bigint"?new d(n):n}for(var _t=0;_t<1e3;_t++)f[_t]=P(_t),_t>0&&(f[-_t]=P(-_t));return f.one=f[1],f.zero=f[0],f.minusOne=f[-1],f.max=Ee,f.min=se,f.gcd=Ie,f.lcm=ks,f.isInstance=function(n){return n instanceof c||n instanceof u||n instanceof d},f.randBetween=xs,f.fromArray=function(n,a,h){return Ae(n.map(P),P(a||10),h)},f}();e.hasOwnProperty("exports")&&(e.exports=t)})(ms);var $i=ms.exports,et=Ji($i),N={};N.parseBuffer=function(e){return new X(e).parse()};N.addBoxProcessor=function(e,t){typeof e!="string"||typeof t!="function"||(b.prototype._boxProcessors[e]=t)};N.createFile=function(){return new X};N.createBox=function(e,t,s){var i=b.create(e);return t&&t.append(i,s),i};N.createFullBox=function(e,t,s){var i=N.createBox(e,t,s);return i.version=0,i.flags=0,i};N.Utils={};N.Utils.dataViewToString=function(e,t){var s=t||"utf-8";if(typeof TextDecoder<"u")return new TextDecoder(s).decode(e);var i=[],r=0;if(s==="utf-8")for(;r>6),t.push(128|63&i)):i<65536?(t.push(224|i>>12),t.push(128|63&i>>6),t.push(128|63&i)):(t.push(240|i>>18),t.push(128|63&i>>12),t.push(128|63&i>>6),t.push(128|63&i))}return t};N.Utils.appendBox=function(e,t,s){if(t._offset=e._cursor.offset,t._root=e._root?e._root:e,t._raw=e._raw,t._parent=e,s!==-1){if(s==null){e.boxes.push(t);return}var i=-1,r;if(typeof s=="number")i=s;else{if(typeof s=="string")r=s;else if(typeof s=="object"&&s.type)r=s.type;else{e.boxes.push(t);return}for(var o=0;o"u"?0:e};var X=function(e){this._cursor=new N.Cursor,this.boxes=[],e&&(this._raw=new DataView(e))};X.prototype.fetch=function(e){var t=this.fetchAll(e,!0);return t.length?t[0]:null};X.prototype.fetchAll=function(e,t){var s=[];return X._sweep.call(this,e,s,t),s};X.prototype.parse=function(){for(this._cursor.offset=0,this.boxes=[];this._cursor.offset"u")break;this.boxes.push(e)}return this};X._sweep=function(e,t,s){this.type&&this.type==e&&t.push(this);for(var i in this.boxes){if(t.length&&s)return;X._sweep.call(this.boxes[i],e,t,s)}};X.prototype.write=function(){var e=0,t;for(t=0;t=r));i++);}else for(s&&(t=this[e].length),i=0;i>3,t};b.prototype._readUint=function(e){var t=null,s=this._cursor.offset-this._raw.byteOffset,i,r;switch(e){case 8:t=this._raw.getUint8(s);break;case 16:t=this._raw.getUint16(s);break;case 24:i=this._raw.getUint16(s),r=this._raw.getUint8(s+2),t=(i<<8)+r;break;case 32:t=this._raw.getUint32(s);break;case 64:{const o=this._raw.getUint32(s),l=this._raw.getUint32(s+4);t=et(o).shiftLeft(32).add(l);break}}return this._cursor.offset+=e>>3,t};b.prototype._readString=function(e){for(var t="",s=0;s0?e:this._raw.byteLength-(this._cursor.offset-this._offset);if(t>0){var s=new Uint8Array(this._raw.buffer,this._cursor.offset,t);return this._cursor.offset+=t,s}else return null};b.prototype._readUTF8String=function(){var e=this._raw.byteLength-(this._cursor.offset-this._offset),t=null;return e>0&&(t=new DataView(this._raw.buffer,this._cursor.offset,e),this._cursor.offset+=e),t&&N.Utils.dataViewToString(t)};b.prototype._parseBox=function(){if(this._parsing=!0,this._cursor.offset=this._offset,this._offset+8>this._raw.buffer.byteLength){this._root._incomplete=!0;return}switch(this._procField("size","uint",32),this._procField("type","string",4),this.size===1&&this._procField("largesize","uint",64),this.type==="uuid"&&this._procFieldArray("usertype",16,"uint",8),this.size){case 0:this._raw=new DataView(this._raw.buffer,this._offset);break;case 1:this._offset+this.size>this._raw.buffer.byteLength?(this._incomplete=!0,this._root._incomplete=!0):this._raw=new DataView(this._raw.buffer,this._offset,this.largesize);break;default:this._offset+this.size>this._raw.buffer.byteLength?(this._incomplete=!0,this._root._incomplete=!0):this._raw=new DataView(this._raw.buffer,this._offset,this.size)}this._incomplete||(this._boxProcessors[this.type]&&this._boxProcessors[this.type].call(this),this._boxContainers.indexOf(this.type)!==-1?this._parseContainerBox():this._data=this._readData())};b.prototype._parseFullBox=function(){this.version=this._readUint(8),this.flags=this._readUint(24)};b.prototype._parseContainerBox=function(){for(this.boxes=[];this._cursor.offset-this._raw.byteOffset>3}else this.size+=e>>3};b.prototype._writeUint=function(e,t){if(this._rawo){var s=this._cursor.offset-this._rawo.byteOffset,i,r;switch(e){case 8:this._rawo.setUint8(s,t);break;case 16:this._rawo.setUint16(s,t);break;case 24:i=(t&16776960)>>8,r=t&255,this._rawo.setUint16(s,i),this._rawo.setUint8(s+2,r);break;case 32:this._rawo.setUint32(s,t);break;case 64:{this._rawo.setUint32(s,t.shiftRight(32).and(4294967295).toJSNumber()),this._rawo.setUint32(s+4,t.and(4294967295).toJSNumber());break}}this._cursor.offset+=e>>3}else this.size+=e>>3};b.prototype._writeString=function(e,t){for(var s=0;s>10&31)+96,(this.language>>5&31)+96,(this.language&31)+96)),this._procField("pre_defined","uint",16)};b.prototype._boxProcessors.mehd=function(){this._procFullBox(),this._procField("fragment_duration","uint",this.version==1?64:32)};b.prototype._boxProcessors.mfhd=function(){this._procFullBox(),this._procField("sequence_number","uint",32)};b.prototype._boxProcessors.mfro=function(){this._procFullBox(),this._procField("mfra_size","uint",32)};b.prototype._boxProcessors.mp4a=b.prototype._boxProcessors.enca=function(){this._procFieldArray("reserved1",6,"uint",8),this._procField("data_reference_index","uint",16),this._procFieldArray("reserved2",2,"uint",32),this._procField("channelcount","uint",16),this._procField("samplesize","uint",16),this._procField("pre_defined","uint",16),this._procField("reserved3","uint",16),this._procField("samplerate","template",32),this._procSubBoxes("esds",1)};b.prototype._boxProcessors.mvhd=function(){this._procFullBox(),this._procField("creation_time","uint",this.version==1?64:32),this._procField("modification_time","uint",this.version==1?64:32),this._procField("timescale","uint",32),this._procField("duration","uint",this.version==1?64:32),this._procField("rate","template",32),this._procField("volume","template",16),this._procField("reserved1","uint",16),this._procFieldArray("reserved2",2,"uint",32),this._procFieldArray("matrix",9,"template",32),this._procFieldArray("pre_defined",6,"uint",32),this._procField("next_track_ID","uint",32)};b.prototype._boxProcessors.payl=function(){this._procField("cue_text","utf8")};b.prototype._boxProcessors.prft=function(){this._procFullBox(),this._procField("reference_track_ID","uint",32),this._procField("ntp_timestamp_sec","uint",32),this._procField("ntp_timestamp_frac","uint",32),this._procField("media_time","uint",this.version==1?64:32)};b.prototype._boxProcessors.pssh=function(){this._procFullBox(),this._procFieldArray("SystemID",16,"uint",8),this._procField("DataSize","uint",32),this._procFieldArray("Data",this.DataSize,"uint",8)};b.prototype._boxProcessors.schm=function(){this._procFullBox(),this._procField("scheme_type","uint",32),this._procField("scheme_version","uint",32),this.flags&1&&this._procField("scheme_uri","string",-1)};b.prototype._boxProcessors.sdtp=function(){this._procFullBox();var e=-1;this._parsing&&(e=this._raw.byteLength-(this._cursor.offset-this._raw.byteOffset)),this._procFieldArray("sample_dependency_table",e,"uint",8)};b.prototype._boxProcessors.sidx=function(){this._procFullBox(),this._procField("reference_ID","uint",32),this._procField("timescale","uint",32),this._procField("earliest_presentation_time","uint",this.version==1?64:32),this._procField("first_offset","uint",this.version==1?64:32),this._procField("reserved","uint",16),this._procField("reference_count","uint",16),this._procEntries("references",this.reference_count,function(e){this._parsing||(e.reference=(e.reference_type&1)<<31,e.reference|=e.referenced_size&2147483647,e.sap=(e.starts_with_SAP&1)<<31,e.sap|=(e.SAP_type&3)<<28,e.sap|=e.SAP_delta_time&268435455),this._procEntryField(e,"reference","uint",32),this._procEntryField(e,"subsegment_duration","uint",32),this._procEntryField(e,"sap","uint",32),this._parsing&&(e.reference_type=e.reference>>31&1,e.referenced_size=e.reference&2147483647,e.starts_with_SAP=e.sap>>31&1,e.SAP_type=e.sap>>28&7,e.SAP_delta_time=e.sap&268435455)})};b.prototype._boxProcessors.smhd=function(){this._procFullBox(),this._procField("balance","uint",16),this._procField("reserved","uint",16)};b.prototype._boxProcessors.ssix=function(){this._procFullBox(),this._procField("subsegment_count","uint",32),this._procEntries("subsegments",this.subsegment_count,function(e){this._procEntryField(e,"ranges_count","uint",32),this._procSubEntries(e,"ranges",e.ranges_count,function(t){this._procEntryField(t,"level","uint",8),this._procEntryField(t,"range_size","uint",24)})})};b.prototype._boxProcessors.stsd=function(){this._procFullBox(),this._procField("entry_count","uint",32),this._procSubBoxes("entries",this.entry_count)};b.prototype._boxProcessors.stts=function(){this._procFullBox(),this._procField("entry_count","uint",32),this._procEntries("entries",this.entry_count,function(e){this._procEntryField(e,"sample_count","uint",32),this._procEntryField(e,"sample_delta","uint",32)})};b.prototype._boxProcessors.subs=function(){this._procFullBox(),this._procField("entry_count","uint",32),this._procEntries("entries",this.entry_count,function(e){this._procEntryField(e,"sample_delta","uint",32),this._procEntryField(e,"subsample_count","uint",16),this._procSubEntries(e,"subsamples",e.subsample_count,function(t){this._procEntryField(t,"subsample_size","uint",this.version===1?32:16),this._procEntryField(t,"subsample_priority","uint",8),this._procEntryField(t,"discardable","uint",8),this._procEntryField(t,"codec_specific_parameters","uint",32)})})};b.prototype._boxProcessors.tenc=function(){this._procFullBox(),this._procField("default_IsEncrypted","uint",24),this._procField("default_IV_size","uint",8),this._procFieldArray("default_KID",16,"uint",8)};b.prototype._boxProcessors.tfdt=function(){this._procFullBox(),this._procField("baseMediaDecodeTime","uint",this.version==1?64:32)};b.prototype._boxProcessors.tfhd=function(){this._procFullBox(),this._procField("track_ID","uint",32),this.flags&1&&this._procField("base_data_offset","uint",64),this.flags&2&&this._procField("sample_description_offset","uint",32),this.flags&8&&this._procField("default_sample_duration","uint",32),this.flags&16&&this._procField("default_sample_size","uint",32),this.flags&32&&this._procField("default_sample_flags","uint",32)};b.prototype._boxProcessors.tfra=function(){this._procFullBox(),this._procField("track_ID","uint",32),this._parsing||(this.reserved=0,this.reserved|=(this.length_size_of_traf_num&48)<<4,this.reserved|=(this.length_size_of_trun_num&12)<<2,this.reserved|=this.length_size_of_sample_num&3),this._procField("reserved","uint",32),this._parsing&&(this.length_size_of_traf_num=(this.reserved&48)>>4,this.length_size_of_trun_num=(this.reserved&12)>>2,this.length_size_of_sample_num=this.reserved&3),this._procField("number_of_entry","uint",32),this._procEntries("entries",this.number_of_entry,function(e){this._procEntryField(e,"time","uint",this.version===1?64:32),this._procEntryField(e,"moof_offset","uint",this.version===1?64:32),this._procEntryField(e,"traf_number","uint",(this.length_size_of_traf_num+1)*8),this._procEntryField(e,"trun_number","uint",(this.length_size_of_trun_num+1)*8),this._procEntryField(e,"sample_number","uint",(this.length_size_of_sample_num+1)*8)})};b.prototype._boxProcessors.tkhd=function(){this._procFullBox(),this._procField("creation_time","uint",this.version==1?64:32),this._procField("modification_time","uint",this.version==1?64:32),this._procField("track_ID","uint",32),this._procField("reserved1","uint",32),this._procField("duration","uint",this.version==1?64:32),this._procFieldArray("reserved2",2,"uint",32),this._procField("layer","uint",16),this._procField("alternate_group","uint",16),this._procField("volume","template",16),this._procField("reserved3","uint",16),this._procFieldArray("matrix",9,"template",32),this._procField("width","template",32),this._procField("height","template",32)};b.prototype._boxProcessors.trex=function(){this._procFullBox(),this._procField("track_ID","uint",32),this._procField("default_sample_description_index","uint",32),this._procField("default_sample_duration","uint",32),this._procField("default_sample_size","uint",32),this._procField("default_sample_flags","uint",32)};b.prototype._boxProcessors.trun=function(){this._procFullBox(),this._procField("sample_count","uint",32),this.flags&1&&this._procField("data_offset","int",32),this.flags&4&&this._procField("first_sample_flags","uint",32),this._procEntries("samples",this.sample_count,function(e){this.flags&256&&this._procEntryField(e,"sample_duration","uint",32),this.flags&512&&this._procEntryField(e,"sample_size","uint",32),this.flags&1024&&this._procEntryField(e,"sample_flags","uint",32),this.flags&2048&&this._procEntryField(e,"sample_composition_time_offset",this.version===1?"int":"uint",32)})};b.prototype._boxProcessors["url "]=b.prototype._boxProcessors["urn "]=function(){this._procFullBox(),this.type==="urn "&&this._procField("name","string",-1),this._procField("location","string",-1)};b.prototype._boxProcessors.vlab=function(){this._procField("source_label","utf8")};b.prototype._boxProcessors.vmhd=function(){this._procFullBox(),this._procField("graphicsmode","uint",16),this._procFieldArray("opcolor",3,"uint",16)};b.prototype._boxProcessors.vttC=function(){this._procField("config","utf8")};b.prototype._boxProcessors.vtte=function(){};b.prototype._boxProcessors.stco=function(){this._procFullBox(),this._procField("entry_count","uint",32),this._procFieldArray("chunk_offsets",this.entry_count,"uint",32)};b.prototype._boxProcessors.stsz=function(){this._procFullBox(),this._procField("sample_size","uint",32),this._procField("sample_count","uint",32),this.sample_size===0&&this._procFieldArray("entry_sizes",this.sample_count,"uint",32)};b.prototype._boxProcessors.stsc=function(){this._procFullBox(),this._procField("entry_count","uint",32),this._procEntries("entries",this.entry_count,function(e){this._procEntryField(e,"first_chunk","uint",32),this._procEntryField(e,"samples_per_chunk","uint",32),this._procEntryField(e,"sample_description_index","uint",32)})};b.prototype._boxProcessors.stss=function(){this._procFullBox(),this._procField("entry_count","uint",32),this._procFieldArray("sample_numbers",this.entry_count,"uint",32)};b.prototype._boxProcessors.hdlr=function(){this._procFullBox(),this._procField("pre_defined","uint",32),this._procField("handler_type","string",4),this._procFieldArray("reserved",3,"uint",32),this._procField("name","string",-1)};b.prototype._boxProcessors.Opus=function(){this._procFieldArray("reserved1",3,"uint",16),this._procField("data_reference_index","uint",16),this._procFieldArray("reserved2",2,"uint",32),this._procField("channel_count","uint",16),this._procField("sample_size","uint",16),this._procFieldArray("reserved3",2,"uint",16),this._procField("samplerate","template",32),this._procSubBoxes("entries")};b.prototype._boxProcessors.dOps=function(){this._procField("version","int",8),this._procField("output_channel_count","uint",8),this._procField("pre_skip","uint",16),this._procField("input_sample_rate","uint",32),this._procField("output_gain","uint",16),this._procField("channel_mapping_family","uint",8),this.channel_mapping_family!==0&&(this._procField("stream_count","uint",8),this._procField("coupled_count","uint",8),this._procFieldArray("channel_mapping",this.output_channel_count,"uint",8))};b.prototype._boxProcessors.fLaC=function(){this._procFieldArray("reserved1",3,"uint",16),this._procField("data_reference_index","uint",16),this._procFieldArray("reserved2",2,"uint",32),this._procField("channel_count","uint",16),this._procField("sample_size","uint",16),this._procFieldArray("reserved3",2,"uint",16),this._procField("sample_rate","template",32),this._procSubBoxes("entries")};b.prototype._boxProcessors.dfLa=function(){this._procFullBox()};b.prototype._boxProcessors.btrt=function(){this._procField("bufferSizeDB","uint",32),this._procField("maxBitrate","uint",32),this._procField("avgBitrate","uint",32)};const Hi=new Uint8Array([0,7,14,9,28,27,18,21,56,63,54,49,36,35,42,45,112,119,126,121,108,107,98,101,72,79,70,65,84,83,90,93,224,231,238,233,252,251,242,245,216,223,214,209,196,195,202,205,144,151,158,153,140,139,130,133,168,175,166,161,180,179,186,189,199,192,201,206,219,220,213,210,255,248,241,246,227,228,237,234,183,176,185,190,171,172,165,162,143,136,129,134,147,148,157,154,39,32,41,46,59,60,53,50,31,24,17,22,3,4,13,10,87,80,89,94,75,76,69,66,111,104,97,102,115,116,125,122,137,142,135,128,149,146,155,156,177,182,191,184,173,170,163,164,249,254,247,240,229,226,235,236,193,198,207,200,221,218,211,212,105,110,103,96,117,114,123,124,81,86,95,88,77,74,67,68,25,30,23,16,5,2,11,12,33,38,47,40,61,58,51,52,78,73,64,71,82,85,92,91,118,113,120,127,106,109,100,99,62,57,48,55,34,37,44,43,6,1,8,15,26,29,20,19,174,169,160,167,178,181,188,187,150,145,152,159,138,141,132,131,222,217,208,215,194,197,204,203,230,225,232,239,250,253,244,243]),Vi=new Uint16Array([0,32773,32783,10,32795,30,20,32785,32819,54,60,32825,40,32813,32807,34,32867,102,108,32873,120,32893,32887,114,80,32853,32863,90,32843,78,68,32833,32963,198,204,32969,216,32989,32983,210,240,33013,33023,250,33003,238,228,32993,160,32933,32943,170,32955,190,180,32945,32915,150,156,32921,136,32909,32903,130,33155,390,396,33161,408,33181,33175,402,432,33205,33215,442,33195,430,420,33185,480,33253,33263,490,33275,510,500,33265,33235,470,476,33241,456,33229,33223,450,320,33093,33103,330,33115,350,340,33105,33139,374,380,33145,360,33133,33127,354,33059,294,300,33065,312,33085,33079,306,272,33045,33055,282,33035,270,260,33025,33539,774,780,33545,792,33565,33559,786,816,33589,33599,826,33579,814,804,33569,864,33637,33647,874,33659,894,884,33649,33619,854,860,33625,840,33613,33607,834,960,33733,33743,970,33755,990,980,33745,33779,1014,1020,33785,1e3,33773,33767,994,33699,934,940,33705,952,33725,33719,946,912,33685,33695,922,33675,910,900,33665,640,33413,33423,650,33435,670,660,33425,33459,694,700,33465,680,33453,33447,674,33507,742,748,33513,760,33533,33527,754,720,33493,33503,730,33483,718,708,33473,33347,582,588,33353,600,33373,33367,594,624,33397,33407,634,33387,622,612,33377,544,33317,33327,554,33339,574,564,33329,33299,534,540,33305,520,33293,33287,514]);function Yi(e){let t=0;for(let s=0;s>8^e[s]])&65535;return t}function Gi(e,t,s){for(;;){const i=s&127;if(s>>=7,s===0){e.setUint8(t++,i);break}else e.setUint8(t++,i|128)}return t}function Zi(e){const t=new Uint8Array(1e4),s=new DataView(t.buffer,t.byteOffset,t.byteLength);s.setUint16(0,65528),s.setUint8(2,122);const i=e.pcms.length-1;if(i>7)throw new Error("Too many channels");s.setUint8(3,i<<4|8);let o=Gi(s,4,e.index);s.setUint16(o,e.blockSize-1),o+=2;const l=Yi(t.subarray(0,o));s.setUint8(o++,l);for(const g of e.pcms){s.setUint8(o++,2);let f=g[0],c=0,u=0;for(let d=0;d=f.length&&(f=g[++c],u=0),s.setInt16(o,f[u++]),o+=2;c>0&&g.splice(0,c),u>0&&(g[0]=f.subarray(u))}const _=Ki(t.subarray(0,o));return s.setUint16(o,_),o+=2,{data:t.subarray(0,o),duration:e.blockSize/48e3}}function Xi(e){const t=new Uint8Array(38),s=new DataView(t.buffer);return s.setUint8(0,128),s.setUint8(1,0),s.setUint16(2,34),s.setUint16(4,e.blockSize),s.setUint16(6,e.blockSize),s.setUint16(8,0),s.setUint16(10,0),s.setUint16(12,0),s.setUint8(14,11),s.setUint8(15,184),s.setUint8(16,e.channelCount-1<<1),s.setUint8(17,240),s.setUint32(18,0),s.setUint32(22,0),s.setUint32(26,0),s.setUint32(30,0),s.setUint32(34,0),t}function Qi(e){const t=gt(e,"stbl"),s=gt(e,"mdhd");let i,r,o,l,_,g,f;for(const k of t.boxes)k.type==="stts"&&(i=k),k.type==="stsc"&&(r=k),k.type==="stco"&&(o=k),k.type==="ctts"&&(l=k),k.type==="stsz"&&(_=k),k.type==="stsd"&&(g=k),k.type==="stss"&&(f=k);if(!i||!r||!o||!_||!g)throw new Error("Missing required box");const c=[];let u=!1,d=0,S=0,U,x,A,T,C,W=-1,j=-1,M=-1,B=-1,q=0;for(let k=0;k<_.sample_count;k++){const D={idx:k,size:_.sample_size||_.entry_sizes[k]};if(S+=D.size,c.push(D),k===0?(U=1,x=0,A=r.entries[x].samples_per_chunk,T=0,D.chunkIdx=U,D.chunkRunIdx=x,x+1W&&(j+=1,W<0&&(W=0),W+=i.entries[j].sample_count),k>0){const z=c[k-1];z.duration=i.entries[j].sample_delta,d+=z.duration,D.dts=z.dts+z.duration}else D.dts=0;l?(k>=M&&(B+=1,M<0&&(M=0),M+=l.entries[B].sample_count),D.cts=D.dts+l.entries[B].sample_offset):D.cts=D.dts,f?k===f.sample_numbers[q]-1?(D.isSync=!0,u=!0,q++):D.isSync=!1:(D.isSync=!0,u=!0)}if(c.length){const k=c[c.length-1];k.duration=Math.max(0,s.duration-k.dts),d+=k.duration}return{mdhd:s,totalSize:S,samples:c,hasSyncSamples:u}}async function tr(e){const{decodeOpus:t,chunk:s,samples:i}=e,r=2048;let o=null,l=0;const _=[];function g(f=!1){if(!f&&l[]));for(let d=0;d(d+=G.data.byteLength,{__data:G.data,sample_duration:Math.round(G.duration*C.timescale),sample_size:G.data.byteLength,sample_flags:2<<24,sample_composition_time_offset:0}))}else d+=j,D.sample_count=W.length,D.samples=W.map(z=>{let G=0;return M&&(z.isSync?G|=2<<24:G|=65536|1<<24),{__data:l.subarray(z.offset,z.offset+z.size),sample_duration:z.duration,sample_size:z.size,sample_flags:G,sample_composition_time_offset:z.cts-z.dts}});u.push(D)}const S=N.createFullBox("mdat");S.data=new Uint8Array(d);let U=0;const x=f.getLength();for(const A of u){A.data_offset=x+U+8;for(const T of A.samples)S.data.set(T.__data,U),U+=T.sample_size}return g.append(f),g.append(S),new Uint8Array(g.write())}const rr=(e,t=4294967295,s=79764919)=>{const i=new Int32Array(256);let r,o,l,_=t;for(r=0;r<256;r++){for(l=r<<24,o=8;o>0;--o)l=l&2147483648?l<<1^s:l<<1;i[r]=l}for(r=0;r>24^e[r])&255];return _},ze=(e,t=rr)=>{const s=T=>new Uint8Array(T.length/2).map((C,W)=>parseInt(T.substring(W*2,(W+1)*2),16)),i=T=>s(T)[0],r=T=>new DataView(s(T).buffer).getInt32(0,!0),o=new Map;[,8364,,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,,381,,,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,,382,376].forEach((T,C)=>o.set(T,C));const l=new Uint8Array(e.length);let _=!1,g=0,f,c=42,u=e.length>13&&e.substring(0,9)==="dynEncode",d,S=0,U;u&&(S=11,d=i(e.substring(9,S)),d<=1&&(S+=2,c=i(e.substring(11,S))),d===1&&(S+=8,U=r(e.substring(13,S))));const x=256-c;for(let T=S;T255){const C=o.get(f);C&&(f=C+127)}_&&(_=!1,f-=64),l[g++]=f0?f+x:f-c}const A=l.subarray(0,g);if(u&&d===1){const T=t(A);if(T!==U){const C="Decode failed crc32 validation";throw console.error("`simple-yenc`\n",C+` `,"Expected: "+U+"; Got: "+T+` `,"Visit https://github.com/eshaz/simple-yenc for more information"),new Error(C)}}return A};function Y(){const e=Uint8Array,t=Float32Array;Y.modules||Object.defineProperties(Y,{modules:{value:new WeakMap},setModule:{value(s,i){Y.modules.set(s,Promise.resolve(i))}},getModule:{value(s,i){let r=Y.modules.get(s);return r||(i?r=WebAssembly.compile(ze(i)):(i=s.wasm,r=Y.inflateDynEncodeString(i).then(o=>WebAssembly.compile(o))),Y.modules.set(s,r)),r}},concatFloat32:{value(s,i){let r=new t(i),o=0,l=0;for(;o({errors:s,channelData:i,samplesDecoded:r,sampleRate:o,bitDepth:l})},getDecodedAudioMultiChannel:{value(s,i,r,o,l,_){let g=[],f,c;for(f=0;f{const r=String.raw`dynEncode0114db91da9bu‡*t“““t“““““t““““$#“U¤¤“U¤¤3yƒ†„‰zzss|yu„svu‡yÚ&ˆ“4<054<,5T44^T44<(6U~J(44< ~A544U~6J0444ˆ†545 444J0444‰J,4U“4ˆU“‡…Ò“7U45“4U4Z“4U4U^/6545T4T44BUˆ~64CU~O4U54U~5 U5T4B4Z!4U~5U5U5T4U~6U4ZTU5U5T44~4O4U2ZTU5T44Z!4B6T44Uˆ~64B6U~O44Uˆ~4O4U~54U~5 44~C4~54U~5 44~5454Uˆ4B6Ub!444~UO4U~5 “U5“4U4ZTUŠ#44U$4†64<4~B6^“4<444~Uˆ~B4U~54Uˆ544~544~Uˆ5 µ“Uä#UJUè#5TT4U0ZTTUX5U5T4T4Uà#~4OU4U $~Cˆ4~54U~5 T44$6U\!TTT4UaT4<6T4<64<Z!44~4N4<U~5 4U”Z!4U±_TUŠ#44U•Uˆ6UÔ~B$544$6U\!4Uˆ6U¤#~B44Uä#~B$~64<6_TU‰#444U”~B~6~54<Y!44<_!T4Y!4<64~444~AN44<U~6J4U5 44J4U”[!U#44UŠO4U~54U~5 U54 “7U6844J44J 4UJ4UJ04VK(44<J44<J$4U´~54U~5 4U¤~5!TTT4U$5"U“5TTTTTTT4U$"4VK,U54<(6U~64<$6_!4< 64~6A54A544U~6#J(U’54A4U‡[!44J(44#~A4Uˆ6U“‡UŠU…[!44†64~64_!4<64~54<6T4<4]TU5 T4Y!44~44~AN4U~54U~54U5 44J(44J UÄA!U5U”#UôJU"UÔJUœ#UÔ"JU˜#U´"JT4U´ZTU5T4UôZTU5T4UDZTU5T4U$[T44~UO4U~5 UÔUô4U~U´$.U5T4UP[T4U~4~UO4U~5 U˜#<Uœ#<4U~U2$.UÄUN 44 ~UO4U~5 44!~UO4U~5 4U~4~UO4U~5 44J44J(U5 44U¤~J@44Uä~J<44UD~J844U~J44U$54U$5U‘54U$54U1^4U1^†!4U•~54U~5U”54U~6U4U^/65T4T4U$54U~4BUˆ~4O4U54U~5 UU'464U'_/54UˆU”~5T4T4U~4BUˆ~UO4U54U~5 U54Uä~4U¤~4U~U'$!44~5U5T44\T44U<~$6U\!4U#aT4U~4Uˆ~4O4U~5 U5U5U5TTT4U$"4YTU5 4Uˆ4~C5U5 U5U5444$4~64~\TUŽ5 4U~4Uˆ~5T4Y!44O4U~54U~54U5 4CYTU‹5 4Uä~4U¤~4U~4$6TU54U\!44Bæ4Bä~[!4U~4UD~4U~4Uˆ~4$6TUŒ54U\!44B†4B„~[!44U<~4U4~$5 4U"U˜#$544"†Y!454U^!44<J44<(J454U~84­U”N!#%'+/37?GOWgw‡—·×÷Uä;U”9$%& !"#`;Y.getModule(Y,r).then(o=>WebAssembly.instantiate(o,{})).then(({exports:o})=>{const l=new Map(Object.entries(o)),_=l.get("puff"),g=l.get("memory").buffer,f=new e(g),c=new DataView(g);let u=l.get("__heap_base");const d=s.length,S=u;u+=4,c.setInt32(S,d,!0);const U=u;u+=d,f.set(s,U);const x=u;u+=4,c.setInt32(x,f.byteLength-u,!0),_(u,x,U,S),i(f.slice(u,u+c.getInt32(x,!0)))})})}}}),Object.defineProperty(this,"wasm",{enumerable:!0,get:()=>this._wasm}),this.getOutputChannels=(s,i,r)=>{let o=[],l=0;for(;l{const o=this._wasm.malloc(i.BYTES_PER_ELEMENT*s);return r&&this._pointers.add(o),{ptr:o,len:s,buf:new i(this._wasm.HEAP,o,s)}},this.free=()=>{this._pointers.forEach(s=>{this._wasm.free(s)}),this._pointers.clear()},this.codeToString=s=>{const i=[],r=new Uint8Array(this._wasm.HEAP);for(let o=r[s];o!==0;o=r[++s])i.push(o);return String.fromCharCode.apply(null,i)},this.addError=(s,i,r,o,l,_)=>{s.push({message:i,frameLength:r,frameNumber:o,inputBytes:l,outputSamples:_})},this.instantiate=(s,i)=>(i&&Y.setModule(s,i),this._wasm=new s(Y).instantiate(),this._pointers=new Set,this._wasm.ready.then(()=>this))}function kt(e){function t(){}function s(M){throw M}for(var i=new Uint8Array(123),r=25;r>=0;--r)i[48+r]=52+r,i[65+r]=r,i[97+r]=26+r;i[43]=62,i[47]=63,kt.wasm||Object.defineProperty(kt,"wasm",{get:()=>String.raw`dynEncode01a36c6f98c83ø%yã¯#6ïIØh€¼ÿ-^º*:8‘ÖJÒ#Á(¶3 ùsÕÿ›§£Ÿ/.*[v²¯\õzºÜá»(’oBM×å ÊvmË1±ˆIü(&Øb?0˜=MáPðxA%TÔΞ=} c×0ÓPùœN:Ê£ ̆ӱæQ•ñҒ¥M_ªqA1kð¹¥ÊŒÇ@6u§­k¿Ä9Ó²ŠFÒà(A£c£ )ìTÆ=M]+àaåÅBñcȼ{±!›ÕÕ_ò#²ƒßá'֛«ñ†Û.òƒ¿á(h›¯Äò´ýÏ” ÆB\0¬E¸?s*iê9)~QÄõÿ6+º·=M”l½UÀƒ«¥$´ªFÏó ÷¨M/‰§=}WÃs¥FÈ$9»PsH0Ç3»P®Wq öCðé~¥Ö}¸ :taãž/±©Ý ×sôd™‡v[<áëŸx[ôÿ„0bñRºƒÊ½j–Ëz•hq¹˜J›•"Ò '*¤0‹Ó34Þ¯‘rÑöv[B/¨¿ê9!†ïr÷²Çn5ɓME€k”5Ú?7ڃk,–*ždÔörÏk4œVáÔ†ÕÖÝjoooožaúˆ¼l—^Û=}MQï˜]½ßQ²lÂù[gŸ=M9 ~“êÃŸ3¨¨Ó 9ñgGze ¹©ulfÙ |¯Sà¦oÌt= ¶zÈ<÷ÿñ•ºßÏ×h]9Í©:–#Dãø»­3LeÙ ˜¯©[¿)hÓ¯fó¦Ûæþ?p9 V…ïȁ“nÊá$˵¥Ö%Ú1Érn:fӯ温պ£¬ó+ ” |;ýoô:*W(©Jÿ+vOÄb7< א­ßëÙ [)oU89~ÚÇ3€ˆÍ¿”V¡N¢&¿švlG‚ЕäÝk©&M6»¡ƒ˜6!^°©€äÞÔû› ÏvÚÃBÆL¿,Y+ÏÇjàìL£¡Rñƒ¤…ekX\ÍyF= 1X1ªhýQ^údç@!G ¥Ñ)°+w± yÅIOiǵ;gR#ó¨'%âfº£P¾SÃã[¥Eýcœ&0›v¢‘\G„ˆ-ÌÏùÙ¡ÜpSX-UQÏ <ăJ#iƒ"Ú<Ùo;ðúÙ¡Ú6i¹“|#òm·ÝßÝYÐÓ = ë$‹}¥‹Ö q_.ľ³}–ÊðÿXi·xKQQK=MÎKÚ8ÏR«øé’³M[§ÍôÛ§@4åÁË¿Ç(=Mð2¦ùÍè ÃÊà Ë'ÇeÜ3£<ü¨Üš&lw"‹j5i–,¤–›{ŸöÞØ~OcÒWØ®æ„ϦëJòªéøX¦±n«rüÆ»g/Ò ðlzd²‰IªÎ~¨Öj=Mv0ª¬¢“©Aí~DøÝõU•±nø+møFÛæiáFU'ª³'ø^%šnpÂûd)"~ßVÔÒY…¿gò}Q7"Ìæ]º¯eFZ0íîv˜ ídcœ§ª^i\Ò qÖáϕ¿û·Ãdý©Ä îŒ-|7Ñ{à~‹UrÂVƯ£ª/wYÒF'˜, nÃæŒV¶óc‘yçiØç7µe$ŠÉ~)&òûô$d1G5‘Sê=M@= ƒӏçÓ^=}Q²™U¾µ:ã7ç4ÿît3?Âvs›ºïÿ ð€ëA¨ 4e\WÓXÉ2¾Àlf«#¬pªÔHê5_Ìîr³—éļáˆõ“,=}ËÖõ7Â= = T qãMaѤÖ)_;©T$¢¡k"׊b¢"l‚ë­}žåëí"ÐDã:Ԉo5{ϑªæ6Nnû?=M)~9Î* ä‡@­Äk¨c$ne&^3ÕÔ/Vì§"ñ†1Ô¯»—3Hæ}oTÏ{Ë’Z= jùÔòó¡ 6_DÒKM÷ÞwÙ.tRc£ŠŒI‚!f”uWw¶YYT»°I ·®D=M5ß®“ÆhÙðí=M¨þ­¹§«ùïËԅtëY̜ìnÉ‚Ô~eó”óÌ íef»1öýÆìôu)Àê±tõ¸pŸ K *›ÄÕ;ñßé;•{OtÑü;åpñރSØo¬9<{Ž ÛS¼Súë!Ä,(s³U™Ê­Õ£õ5ɵ-û©^ܝëã¶SÃC%(–%^}†3ùIã4}ý¼| ^눺šhÜ*ßÓ{ðÕ¥rí¬Øz´cTd!\¼á0%ãôw¡AGi´à/X®¤ƒk¯þK²ρ:ÛÑý€PHõ·_™Šrʾ²îrÈO¸û8u=}ð衸8—ÐÑØQˆR‚5y)P/¿!5ÇZ’#lõ;4°0­œÅɱRµòòÁ†ˆ{±«W¯üý²!™¥ú¯•×U1¼{”gÏ TïìÑîu´&…iFÀ7zÅÐ÷HÁ†ª–˜T÷°s©ãÞC u€½™ Pðìô“»Y$íÌ?ËŽÜ*=Mq¤àþ“?ðN\ë݌§Ñ‡dñ+´ä°iyß̓zp´(õ¦Lvçš»P~áÆínĊÇ:Ñ= Ž˜×k— ¤Oæ~ٶώ¦?¨¾Uh,a[SäÅP,æu«Nè ÆÝýI<€Ç}:«3;·Õ= ·@kj;@#G:ÓWÚµ!­[>YÂyXגvF?êÀædø!¿ñ’°×_o3¥)fŽÇ(LÝÙª±~O÷M{^=M…uØ]§6áÊc$ŏT@„ {õ†I=M{÷¼d Û³=}8—>³LlÊUÕŒˆmí(kx¾ý;çZÇâùŒÀ+·@Xª™¥Š’¡ò ‡Fš@¨¾ h¤ØfüЉ¬v;­RÐíMj\Èìë¦ æz-K’{|xÐJt’<‚aóñ/·}µ½þæF®|´h_Å ÂQ†ƒ%<‹ÊÙg2(e3ß/¡òm6Y/‘= s72ƒ‚õr7x¡IuhzY_1nf>©Uc|†zõ‘¥g¸¢™}ÛOÕ‚Uéñ!%@Âíç¥ßm¹v9ôÈÚ+›QÒcÏ?'À4c£%%àAÛ'.¯«¸Q¸¶0dܒSŠ³î †C£÷Ý%$ô¼pÄ :¹(hLd¯<#hö1X3˜›•³¢ÏÅØèÐøå§”²Íú¡Œ.¨Kqϸeÿ’¾H¯æîÎÜ7³u= †q/<ý\ióLñ$w£Gѹzÿôí©¶¦EØØ²H€Y“7RöŽÇNœ„“ðBA˜Æ§8ÿ&.ði?°†v°¶ìcøø¤ähá= DW×m†clÜê<ô|­p7<#lïsVʰä3*Œ5ÞH‰ñ]Þû5šGòqw,uhõÁuJ¸vJ?HËL*Ç,wðB5Œ6Tœ=}ó’íB×WîyM ÒÂ̱[¿mœ)Ži°­M ¡Íãe§(‡¤7Ž8m}ô= Þw^ ›kF#™].âÂ'àœ6"7Ÿ”ª¢Ã*¾ ¾à·Uó…Ý71\gÒ«k®ÿun ÑH[[˜1Î3.'5à·Ëƒßu™CLBԚgî­ïÖaäèûV3š_×Ïæ‰ŽvOqaçUZ<•-KsZù~©\!ˆ¼¾^͕ô2^?Ÿ*…\šÓRG…+lÑ)ÀØËDÝf|]\ŠxÂŒŒý$4ðÛþœw¸„9G˜Ð ýA·¶¶vpZºüX@@™øp 4z‰&‘•²Âj3É·=M寊= ’’v¾–gUR¨Wdª­/x·+–,ae*1ù¦vÎl ^mºò ¦Ó”"@×¥sŽô#ù  ;Êr[B¢êµ‹-œ [a|>…]ê6¢JHX΀Ò@:{=}qá!Í̳K¡ "A=Mä‘= °z…ÞÆç*1z^5ºbπÈ*mŒZUíí ÅÐᴔçÏã)Ž{ÜĽ 8‰ApG× ¬·F¼EÌ1å9Úb—n”X&> ÷ÿÉ~1$5@қa,”à‡¢'¹„Ðÿy2ûL•¯×VãñéÊ^sY8éíÍ,ŠFŠìQ•Ö§ )[Ç9)Æ,3өμ= ¸k@‹ÄʐÖH7¨Å9ywІ¢WBĨ)*Ó/Û#:÷¤†%ÛKu3f@¿Z(M=M°/ }‹à‚PC¡OCÿîòE ?¥Æ±G(´MùcpÁ0¶YE$›$IH®ô¼ÚXr§pþkÞå%€…ˆ>֙Ún  ºóØ@ˆýµÐú-²ø\ø?L©}˜]Nõql€ÅiÑ3χƒ³ì¥Ú½vëýô3?r+¬Áõ¥â4Û¥)H¤ë}‹ºŠ…æQ´*Ã8¡x(ðª=M=}¶wªf4¯ŸŽF†R!"µö·\˜VêT)jâßm€8¨ÛM¬”¥úãc‘FÁÏrHŠ••Ö¢8 [á¦c@¡JÍûv Tb!r€~{%u·Ûû3pC0¦wnP/{³¹™½  Þs•³¡‘å5!Üf^¦³Ó"ì¼Q̃¦kš™ú5µ-ðøD¿h6õ„È þ©ªV‚àÍà©×ãG߬H#þhïdiÊàÕ\“-´°”3Tê¼Eû¤ .[fL¡€JüŒ,ÉKîëB”F³.Z”€*ÌE¨V^„ ¯ªf#º“uºY)êÜ£Pñf×Z Iºæ2ÞÆÔUǞx4"BU®¯R”€Ðú֌: ô· eAAlD,[O€ò0bÁ¡){Ãuánò\ a?ÁlaÇPæÌ+’ê°?„ywíÑî.Ù㛕‡ë3;+@ü Ÿ>Õ= î}1‚™võQ%n<_¸FÆï!šZµ‰Ñã}¡Ÿ"ÉS°É'íÔ¶¶)Þ•Òü;?ží÷LäIá¨H0Ô#ÁB§#†J½¢=}"ÉØ\?rÚÃp®2‚q(=MYƒ¯—hµ ¥x4ôË_·—2ögÉXP/_ÇF|˾ÿfêÛ*Ó2Žq¸Ó†®»“• cþšë™ÝSÛ¹ r„ŠÞ¤®žQb.Ÿ‚‘©6®8W ³‚Ågz¦Û*‹*ºYb’Y,—ÒZð$æ͸oíÁ˜hóÃdrö #°ñŒ0ŽÌ^k؂â\̐ºåum™›„ó‚nÏxÂA5Ákm…W,™iÖL4aavwŸ¹”ǰ=M3ªë09WTÓ­¤Éný€ö§ :Îâ-™ž* bÀi­%‚º²Ü֙бžbÝÏ Ïna«èŒ êÕw®ç§ƒ…·Áœz„~ ûµ/<4ǬÕf¢†P{½}Ù ®Ï—I ä1’Áœb= ÐgçM$7G =}”sd¹Pš»ì2U©ŸB¿eM–&%T •5´iâgeúeù'†ú¾"Ie$ðW‘´K*¼”ÚE‘=MT àýoC½7Äf*±²ýÔLBÞûGW ‰ô õ¥sÏÄûnüvšw¢]Š×›0LþQiÅK¿¬ÇŒÀ¤¬/ˆ´õ 4tµ…b—U,¢‹2¬ Ätp‡påkJÌD·É7æýD 8ªüM—ÀL—bÝå?‡;¤$€‚Â1½\iJfÙèŽôœA»—ýMÝC…‚uü)˜ÏUx}êßj¡4x¢âê䈯±%§^¸©ïÂõ¡´ÃÌã q§‰è&¾Þ°®÷á]9•´Fñ ‰Ý3+c¾ë60\¹”þ7ú=MÑyŽÿ-)F¿ˆÑF¤2Ù­ÂgÍ=}2ÈH麟?é.š½=MORèàl;U¸/wØs¯”£à±›:7p“© :®¡˜ZLá*wE‡#vShd䪥JNóq¯BîÅó¡J™VA•ve7¿Á,´¦@0PôRC5aÚç¸\·ˆ}x¡r6Ïpoÿ÷Á›Õ«„G•_…Ü7Šdq–šé³wJϯ3Ë |FKcȊ¡Š´ˆ›‘+/͎N4JðøVnÛ·ø= ¸«A,¬˜*=}óo@ڀ¿ö»–b=MAöf_ú³ï¢ÓѢЉÌJtSò²ŽLI>Ix—'áκ…°»â=MC¼Vé^>Ý’¹V9§ãÉ-Ð|£CÖËÜ­ùCt[ Fg7WÚl³ä¯Õsü÷±,d›%¤ÊÒzjªGI®®&)AeQÞÈÇ.úƒ:VŽ$—Éíøß󦲰Po{±]Êv,NXå¸P8Ý_#12· ›u",†Æ 4bà"¡&Úª‘ GÊz§§\üݽgò6Ñ&{àc‹iÓɯf»5‚[ =}#ÿ¼\ëe}²¾~ªi~™ÆœÓa§N‡@væ4L’’­l…ì=}Y°EQÆÈ©™Ž8÷_d*8M×ÿÐÉ‚øa=M­³«5nm'±Šöq\±/+â!4g‚,TN»ø P©0}[•zñ”–Z†ÿèr–)¦EÏ;N¡ß$= ¢a‘ÛÁÔdº®Ñ;Xò\tIþ…}ƒT¾grGu<ï rB‰œ¯‘Õ}—P•ÞîãB=}iÓ5ÀÁ)•Y‚.½‹Ãqó ÓS«N¡µaܙT,BžÊõd'’~²h %t“üõÀíÖzô{DWÀþ=M «.v·õžâñÉe‚6eR¾”fšµh¾ñ¼“¶zõñè”LLRY˙"&Åãz{èý4LÄ.H¬41~È dPîÏÀ¼ðlröø*¿pÇÃiz.aá^¹î/’u ?a£e±lzZÚ>\¦ê= ²Hõs‘ßÔ1/ô= F¨e´B{¸ŒÛ­ºÇûf©U8grÉ4â ²À¾Ï+€§¹ò˜@Yƪ´+‚±õ1½Ê'·³ó¯¼ô{ …€1ç£Ü½~ííÍñFû”{M\ÎîÖ5h¼L+ˆ;Âf4Rs³++ôp¥\±(KR{0ãÏýñÍ;&e¤»ïí9øl€-E§â•z{´ÈDÔ¬Ì@ìCÖtHv¹é³ûé#= 1H/10€ûÍX¬!‹L&Ì[(Ì£¸©äh´|®g”û4Œ×½Y~#¹øÿ'÷J×dF4¸T…†÷ ¥£b‹ÏŒç܌þMªúSOÅúr0p‹ÛG¯µ]LU³Í—ÝH<äO³Åúª"Nðå+/±#Ѹ£¼Ä/ž]»ÀÎ0¾ôË́DͽIæÇÀöàHÂ=Mæké+êévË|à”Å.UK ôF˜1c§Ô+Έ܈‚¤¦•$îP7ä¼ÕJ>ëC¸¬KX»N8üÐÀ­G2¥g>ž}‚r°ùÊ™æ.¨ä¸Š´&ÈW‡„ûŽ…q‡ ™6š¹ïÿâî¨Ïº%Ú!܋MÞÀU•=}ð™"ÛZ­ÃjÇ=}ŸâY<ŸúÍì…uõ÷p¿pÕ6âq‘äÔfÔÜá;ÀÛ )Û)% ‰^e I!=MüíˆY‹¡‚€•NÈî€Rþ@/·°ÍmOÀÇ(’óŸuˆWu!¸õVgƽó5 hí²¾8,ÚAÌr4Aö䓌fgeÕ"˜Zz i‚,òk¬SÎ%>6û¼u ªùâ{€rþJªÆ0³îêqvHÕS8•í´öh m±hÜè¿ô<ÏjÛ Ëä\rçÓ'ñmúÉgðB;9i¨ÜÌ{î–Rx‘ø+Tz® åÞë¥vì[JþæZmË[µ÷ª4}…qRÒÜ4Ýf~„ |1¬ ˆ9¹›5lK/=M0J”ÓN•uÏMü暭Þû¸Y4 #x‘|™= >ÍÆ—Z¯:nR{ª$* ¶¶2èÌ>%ˆ™m ÿQd±P-™ ÁoJä cNôK)÷‰è63W’†ˆ+¨¥nÆ¡A§áƏ§ßWqsÝ#ºF 6]’ä c&›õîáʃæˆ:=}Â|?ÕAëé XjÖb›&ù¡…6â–˜yڅ€ÑÌúxô¬¼H'ƒ¬+5pPˆ*þüGzñèš7A)-˜ Ê0BDmHÐ Þ+ª0®G±˜uRMGm/ŠY<‘¥go³”—§Â4Hð=}óç6À- éàs—ó9uÉ+,â¥Ò.ØöÑü0k5­Ñš¦‚.&ëüýpz|Ú¦ZdhæÀ–ùèí”ü<= •é!gaô·îصÈIC;­|°Ëo~ˆ˜)ñ{„Pö‚<FÑ{D¸ðÓe9?h›Bê…À- ²×öÞ1ûWDP“›zö¡j‚÷ߖøˆÆZ aDM¹}éO›7 ˜0‘ȝÓÔ2?‘”AŒ,ƨd«O‘“ãÚ÷YTKmæ:–¸ÆœÜ€Æhà‹èdUo·æ}ƒŠÆmßwMå¾!UìxøCGHFGfn؍k: e±Æ)—ùTÂʬ•o¥ü·HpיÛcI#º|™&ûß4qY’êæ“wA¼íE£0Ôx²'Õ'=}æ»DÄêóÈâ6jÅ^p·~œPaïw ƒ¸°N¼í ‰7­×„~j:ÎGHsmâmá«7-°í =}•m‚Ùi'pë*K2¡Þ âV^É%gg~lç½Òœ °oã)kË*ށc¦ÿJø_µ³ÜéßÒïÔ=M°I°j,KCÌ}}P¥Øs._ÆõZ¬´äˆêNˆ­»ö²¸Ã#ÊG?­UÙ­JejzûË(Ž˜}®¨gñ¬Ïº<õ6ë8eK>”$Öæ3ù³²sæ+žŒ¿…á]#[:‘ÜJ6ì@¡÷!U£ i{ê= =}iU,m0ܱ— ôú°ÿ×µƒßc¦¥ß¯“S$V£N£Î®^7#Áv#I/ÙGu;ä©0xNðqßÜJd-“‡cÅ;¿±n“ ̄ǗÕ"àÖQRs½BÜ|ƒÇI‘}¶à'ÛCʳ@æ/¤Ôw+aA嗗©çI2ä˜Ä+1á±TOòãǝÇçOòäό–³zŒ®³Ð ´ß£VTIn¸èÕ²º=}ga;v8Œ•\GTÑwax¨ h{Ôdqª_j±¬ÍJßÊdñ©Gjy¨Þ´S¶ÁÞË{”#Àš»¬Ë*ßãS¤Þ‰T4¾¤~‰©nvZmo åt]ÒPJD˜wâ̶¿STjÝ%¸¤Îß9«9ªÏš{56#ðßyµ»SDv¨aŠÅ°w1¨jÉ[§2¿8¸´ÌÝÐx8ÜEý‚ÜKv»Ž|Uœ¼•€øhÌeñë(Ã£U‡YçúçDSLîˆù_Œõú…Çÿ(‚4¿º¤Ot=}w|é8HÛísfmc[DÒoêûtPW‰½]=}ǍsKê ¼LV²6kòfˆÄx(&«ÁAzq1Q+j'ÕA\BZd;W¼Ñèü*Å[À×$ì|µ•±uûÈe«&G{ž¬öoa³F°ô=}C"|pˆzJ8ÀD,eO2f:𷮍À¯8“OÏ۔Èœ5—\ŽTöFsP¼+½#5[k0E¼ù{!œ ¢W=MšéØ=Mx¢ +áGê,?‘ æåh¯tgÁw´•%u€u¦Å…n„ë„åÐ/ށê%Åï=}PJKqÝCG=}¹ØæSƒ·í£7{ï¿ށ8ïã¶<·<‰ûkœe&f0„½Ñ&Þ´=}ċéNš¢Ÿ”ØhaÄáTü%5íÀžÛìl¿dU|ïpž&4Š^Æv2{h–÷Å7›+x®î߸Hdjô@m«hÑß,Ìf9øâP^„ú¦"e¥wkWxWÞ6¦¾?Ži²‡þéC»TNô&¾pHß´Â5=M:d´R, N»¸½:‚ zÃÊú4ËB¡ÖþZ@†‚  Ã2€iÒtÅ/© F’›ÆÉXÕÓO³¾Ûs0æ ³(”é»RÅ¢:…zuwçÕ?½†d”÷8¿òÃ\¡°Q/‹Ý¿¡ 9˜/p_2WÚ Gy3f8øIëV9I.\êÿŽöG =M9Uý+ ÷Ü}J~@»o¨›q§_>Ëd1—ÕüI Ã=}=}†µ¶I^pãÕñó+k#…càñõ­‘´ö¥t(ÛCž³= ­Ôuà+DÁ嗘½çòòÃÕ= ±tx§tt>³nÝ*뤴ŽTÇPJ³zŒ°+9á‰ÉĹ"ïÊ¢§2?]°¼&KiÖNrï/À¶½SLj±¬Ù±{{µO«û„Td•#ˆÁÞË{ cÙàé%ôckª§þ²{]jé%ð¥ÙäÊ61ïë*åfa×ÿ®°zŸæÕd)¤¾OÆûÒà2È%P©xî%˜¦yšûîSc]ñŒuD»G¦:$“3ß&”m¿=}JÀ*ƒ¥¹ * ñ *1Œ·Môþy61ÇoÕ*ø±úx£”~ìd ScäçZj.=MeäML\òc‡>@ґf†7ý~‹¬ñ¥ãÜ{  YåQdÙ°šï0·uØÛ&qa¡Êœ¦Wg 1.µ{]1nnÃeþ;ÖšˆDÉYR¦ Yjòæv§é²µ-õa RÛÈ\²ò¤¥Ê茦ð=MV¬Š‚×MAƒNdYËÑúœa“¶mà+‚ÂßgH»hŸI.‰Ú@ÚbLÚbŒ%œðPœðPœðºoýÄlIs,w/—曀”…òÙ*Ø%~@n4ν–nŠN"-Š3ŸÕ5Ÿ6t œ›FtCܛ5¿½Ÿ= ™x¡K‘±û p=MÌìóŠÁ‡èÞ÷( +~Èð“ð=M˜\¹ÐÑ»É:(ù5XàV=MϬá²Ü uSÓ%$ikìojó”’y-¢Mù¯»w8,‡Ë1B¹™³Š&…¢­Õ¢‡!'!}•uå³17¬HMŽm+Óí…é ɦ]Ý·oÿQÕp§/_ÈîkÑ!ô½OŽÐ˜R·‚iXž]GF²‰ ì™âhØbo " _›‘Ÿ Ï'²ëç 9ÊMê,ÎZÈ¥*‡IO³I¸&+ì1aã¶vл]8uÁ9ëÛÑ˙1âFc=MÆ\#PüŒóCÄj ™&Y7ŸT´Eø‚è:v&¬5I}ÑÄÌ©Ý)‡S/cë“tÁvy×.iu8¯Iúˆ°ü >4¿vyÆ%â—KiÝV…Å@ñ1¶—¶‘ ñÚX3 ª£w؄ŠÃÀÞ,EÜ ~ðF¼ÜÃjWˆ²C«¸GüPcA,"s(\«[1²I¥8@n°øBK «Ùt“j5š·eÕÖ¥t~ÿú;ïd=M,ë¿ðǃü—Š?˜JuùJîÏó(¹”è'>i7åkõ:Ø8ŠÅg4HłUHIá†hœÛ)ïH<ՕOûAJßJ! Ì}mԄëö‰W=MÒ øzxåß=M‰†/ N+v©‰·-ÖýI.'Ü_Hýòh©rÖ©r¨×ù&Š%ˆü§ßÔë"uƒI%T%OʰÁv†ïÿæGÞm”F7Æ%2‘c=M ;ƒöæx/äۘ#Ígã/}óTáI²ŸWÄÑút B(# éIÁñ#Z3l* Æ:™æP\J‹2–M°…ýÕ¾æ\ø Ý½“jGŽø= ÊÛ/q˜Y ßÇTÉꈅ~¡³FqnÄéÐDRnd‹±n,ÐÕEÑÛÌÐò˜?9Þ+ßg)Ɠ{P• :OmÑÜcђ¼–|cSPÕ{ÀvD0ŦaAÅÒÍBA= 3¬Vá,‚ö-×·„埗sB—/×¼àØ‰6W éLº\I›ŸÄ´£hªWB0¨zdž*á£/‘8ÏVuä[fØlûIG0ã=MFhÔmˆÌfB5²†ñlE—ÜÁÝÏÀPŸ·ÍrÛÁsA"‹Ð‚¼1ªn…Ð8ó‚Ãxô3–·Ýî«'À7æ-g&5Fõ9ð‹¿ ‹»N[ñ&¡WLÉ{Ó=}n=}fWI$1^ü¾ì1zü†FØôÂÒ%ƒ²Cd1 (“æ¿J屌ƒì»B¿~«okÄá+Î]7ß²ã<ßæ<2 öÜ ;Ú¯,|§Ry=}Cy<ÔSg¤k×ôA®j,ËR¾]¬èƒ7Y¹ùA7ühŸ»ÀÍ?÷ƒ3Õ(әñsÅvȰpZ¼WÝeÓWíŸR¼¡Ì—êÁÉG¸‘ò* úÀš !ÙNϾæ)¦SMk˜§8‘AoôµUëàD ¬®U­^â€?ÕAþfF,¤NÖ{¬Üè+IÝLªkþ§=}„±­Ð|Ìþ™~ƒ£T§ÃßÛ;VÉ6‰iu=}UG”ƒÁ¾“a‰á=Mh3šÌ Ӊ~žc.”}ÏUÂ7Z«Ê0Æö‡@4f/,Ȝٱ\gƂÙu+ø²óíØ©ãzÄÐ#㌟ËïW»£æ´Úá¼:x«¶úHtL®³²w”NÓñÒeGž&ðõwüÖ0¢A ý‰ÚNh™ég[™ŒJ†K(Ô ¿„¬˜ûñÚM/o·=}¬Há>{øN-pƯÁLúÂÓЖ«æG¶~㻆¥%S|¬ûä&48¾Ï~3'tG90x¯Â«DÇj˜ð0-‚6'"Jb¿SBœn¤Œ%Âwf®¤¢ŒéÞ#i§&= ‰þõ¦‹¢wÚ€œ¬C—2êt'!ã@m…'qa$äUjK˜Ç¡k¶‹D2áòYç$nNӃl㠚búB´šôï¶2èé:Pbìb!Â÷Êæ4!ÝΎê0Pi[O4*K¶1)‹Ek=MgÓâ”h,~’p_¾ yÉn‚à³Tr¿‹ÆÀ_ºŸÕ †0Züoì&a‹ÄÈ©%{g"+ñŽ j¦ý’òÕ̘jvwÁ]ŠÍrdG‹ÕÆqnxp<^L*΀OãÈá1LjK= ßÎ">g'è‡ø:‹¬S>·BqA¢sDý•§ÐÖÆãÚs~K²æ³Z\âIÿÔ´{¹$êþ¿ÈS6K¾eŠó±am+T„Ï„f‰co҂‹~Œ§×¡øÚ•–n¹Î™Ÿ_?zyúGÃYÿîÄNõK]̔¹¶ì§gÀŠÆvH¶¢ç‰ªb)'Å5Idj>µç¢W¾í¥­:øiµe=}Æk¸ÖJ…¥=}(+‘% °9g¯?d(xÄo7¨¯s&K ±øÇÒl¾ä˜‡"zÉÜøYÜíÀÚkv±#mO‰*süÂG•çìR@¼3'Mý3.BB]Ï= a~SÀ‘QŽ Ÿ—9,xìÄêð˜!Ç@¶Úu50*!y–˜!p°ûó¿VäW™vËLý4rI—P2΋†6“jèßë!o-ÿ<ØoÉuἤÉ@¤;|Y1H\êÏtž3î‰÷âÿÍç«8n¬~;:qB@uJ>ð²ÚlʼnQ˜ñø5 *jŠ$^örÁ\€Ì \\˜Ml˜@1ˆkë+̰¯îšŽŠÐ÷ó2(Þgã+Y:ÉXÚ5‹Î“%jԃˆi^u†ŒŽßò|Q¬Ñ¤bO¹È^[)t+J ÷%j­fÜM@V2ñ¹MЁîx9V‰¨“ø­Ú8­Na)ÝÁ›ð‰à¹4ÝÊ·øf#çTÆps!—K  þžôP Ê¥Sü¦ôM»Wïæq¯¨5#ÀAJ'gdk®zÉaÕ)IÓK×6ò¯×þí'MÚ¨j†=M…ë]Ëٛàôû]µ|ÞCë*hô‘óÀ&قõaX_[jz|#(…BŽä£NÁ \}ÓBa&¬þWnGÕ$GEÏC=}¶ÀG9$p1øA.\‘ƒöj=MV' ©Náõsò5‡—è¨ùު·¶ÿÅÞåDꦖh{ª+’2„®¿-'«ËºU,‚sØK-“*uÓYœ“(XXXn†Úó¶ÕyF/EîOmõ­ýEÇÖè@“vð¿×éÿqR̀(û“‡QLW;\˽bnl=M<Ç©a°„Þ·½ñ” ¡MçUÓVɌŸU?ä{2âÆÔö^Ü>°˜þđʼn•Se[cŸãqØP*‘_ÏkaUpvÇÙ|fN^Øý:7.6†x7\ûñ<Üß$s=M‚š ;ۈ­ãêtçڛ@힗d¦û‡<ìç·ÿæRz[¯ØlŸß%–Ëûm½/HpyˆS;; g"…ŸÚŸs;‘= d ŽÇ2ý®Ý—Ò Þî¥STåiÃcQ.½þb·Íá/“3ð´i3“oÇ ž8uCj]$“§ÃßÉ鍢‰¼–»xèŽO¼ǵ×hÙ›ë£.s~·ŠxŶUw—3ÔÂZí×IFÔBs;ëý½–ì ÷!eÆ-dòìej¸L"ðµá‘ӔRîejj×{“ëejêj•íÎW›Ìäyz§¼ºçb䔙¬ðž§uáiW2Õ0õ2U‘6=}™ìGĽe3 >놫_M R¥ò¨^Á”´ljs-gž‹"Ýë lbŽ]ԉŒD_Mάa õ趂ádZ a ?¹%›ÄñÀJSy'“÷tUDdӗMù ì/Wï/ßã‘æ9›¬|¯,9ÎäQ‡íHfÿŽ9ކUÁü™GoA)\ïú|ð±ìZWôBÔ4i)VÀçíþÆU”•JÓ n÷Ìï{¿‚ÛCQ…¿Íp{è\•3´ †Î´WŒÊôJ1¹"\ €K"5„l…iýI³„õ†ÜÏÅb ¹ÅD¹\FÒ‹)¾Ä_×»jÒùk)à"~çp 3̲€]¤ö5À¹(°n5k½¥çY%½z™aTìd= ]­Vµ,XAG?’ Ô/ùÌ$äÑìdX-ØIÙq.‚i‘Ö•9²ýÿhÄx;sÄa÷eú¤Ùδtlã÷Wê¶µüs+}]å¾g.¯Ðm-(-däþJڃ±ké¼I%i¼-Äj¨ƒü<3= ÕsðKߨÙäDB*xgՑI&¡·òÖATfÕ+kŸÁ6¦Ñs×Ò^÷^H!ÜÆxՏ@¯m²ãRÊ0ýþYÄÌk©˜Êí¥4°Q9îÅ6}¸v„ŸO”Üê(ÞGô~qWrd½S«½1‹Þ] žþÒ('+µÀ§øKÔ<ÿ·;É-!ݏÅ5Fo@Šä²øe+'.ߍԀdë.ô+Ç£¥lPr–ÆÑnëÕì7kЧ*E(fë*sÍIHLꨨy}µJµ4Di.}®P{ÊBÀ±™0ã§ë ]î&[ëêå6<ù˜à߄ÙxÂxÕØÎrEÕaÓ¤µøÊ=Må¬¢§ƒbŸKЂN|®ºÔvЙ+~ÃÔ»Ú\ÿ™¯‰'K>^á­ 0ÿKDõæùžVæQJ,Qü'ˆý¦‘‚^xâøöà,YÌhuÈU=M"RÄ÷ÞÞië@=  Y8uL DÊEì¡è¡y nV¹˜´ã” (u¥ÈêMDpªÈ®hKÑS~™‰GœšúÞe§ÖłЎ4Ùpê¬rðÖ#„V.¾¦³bIç×}CΚ)Kú6VO¾*i“@ád7QƒH材³¿AgL¨®¦ÒšœþïŠôˆ¼-Ǔöb½4I ó“H´Ì‹@Zo=}—àyK?Ý«GáE:uÿ²D&&™¨Ð¸[hž¥¡w:zž|êÖ>Gm‰zÂ랟^ä4°Áè]XFª ÞÎÎèyW¬L Y¶¸Üùþü ³Ô63ÖÈtÃ@-(¦¼²µ\*ÃäÒvœ¿’IH«y%—ÏŠÓB±=}kˆÅÌ÷GÍ=M[–íN î™9r—Æ.ލÊÍá = 6ï2-N(¤ÁYŽÀÕnj²…d›¹äšã?%B›=MÌëãÆà(°#>ïOí]9¤ûٍƥÍ߄¾=}J„i1‰z6.~C¯õ‡¾Ò°=}3Åà—C)÷!j‡Sn‡S\©uÑxù<ÝÒ= ]ï›Qf*›÷²x´ýÅý&LŽJÎc2¿Yf÷E7#øÑµ?„•§:ÉŸÏhÞ­^.å.Ýȶ£=M\/@ ¹ØõóYêbÊ\ïu¦²a´7vÒfŸ ‹op´ˆšbÈ_&¹rzl¡jÔ¿öß$YÜNafä™.p,¿Ž±&1I¿Y= }·ŽÏx{Òì¿]%zÀTÚ6CæµÆ1l÷ùPõò’ÖZ[•1ìû+€WzÁzÁ—Np!n!bK Y= €´Ñe+‚wçœv怰\Jª>÷¢0?cc6­ÚA_d‘´­Ÿ«vr¹ÞN2¤ˆk<6ㅇ7™z, µžYô¶¶¨×åþÍ­HxDôxZ½WäøÀ>>Ր(æ8ÿ),Ü/>2¤üÿ’µ:G Ëj*&"fDÑø…TÈ5Îõ0é¡üóiV%:Š”õs88^V_|§Põ³~)ÕÛZ ÐҔ‰Õhþÿø¯žKBœàÆÂÖ9ûcþžÉµ€¥Ð/ôÈíZ¡g&= »ìŽJ"øÒhLeL—Kï0û™©nõ —¥mý~öÿýÒâ%àY D6Û[s…n¬o|¼Üd“½eÐqŒ„¹W%ÚaĜ±š™ÕnÅtx¡+Ü~ ј@ã¿'¸x•ÎÃ÷ï0^™ªw)WS®oi’Fq»ŸÄ© ´<ÑDöÛNŽO ™%9÷“Sr¼Í›o÷!U6ÝØç¦^äw»ð^ñ=}57= iæÌÞȜÍùî§ÕŒfdµé:òÓA¥“Š×‰Ówpƒ‘¾ ¾kÜhf/axr—®·º]àßãþ¸«s¥âòFä½WžÁ Cê號c¹}h~¤ÉÑν1÷†jly ú €iO1ý­SZáўP¹oV#¡Ž²ú ʾ֊‘ýqo¤;j3wÁ}ê4wéLjgfêO„…­0n-? —gi¾þ÷§“@ϲHP-iUÕ7 ¢Kù_<‡UòÎnÈH¶L5)•[gÅæRâ´.ߊÉ^sIþ¾Ÿ7\}~J1paõÏ ËQ‹,wJªÁ™ýÞSÓ.¸áäˆÃ”À·t/ÅÝ$ÅÃÛbµègÙ¤9üÆ*[’›A­u’jr$µcñ£ñ€¸wÄo·UÏã{ù«à-¾ûZ‚çn<ßÞ77£“š‰ nÒäy Zîr>çM®jµß&aæË°€©íñ˜Òj3ê÷¢Èh¤'(åó ¿ì]ø†u½ñ÷ÂÏøÞ?ÜåJîMl«ûìêkh]¿hm˜Vï¶zg[‘]UÒ/Š¿Py04Û5Ù;þ:-6ce0CÆÔH=MT²aÃê*;Öãë6;ïmÂm7dŽ,—Wrû„!'CçfEÊÐÓ¯UÖ6±¹Õ$¸šºÛ€Ž?Òy^ +=MÈ<…7¯>9eXe"i¥|‹–±£~š±úi ù£Â= (­´Ç—zuRh|ã½L â÷‚êÍfcaræ@âóÍÙPNÒæŠl›õÃÀ½…Ô@0¦Ï–lÿíTùV.ӟPÜ;²e3 OòT]w—<‹Qõÿ06lÂN­Ý¬5f‰Ý|}IàælN™Éû¬KLₕ޼P6ä0®gÂ5®&t¹ÊåLáK9D塳ÂŸ· Ÿõ¬@ÞV¨Ëí³ëçÔG³üö»€~%cv‹¬é …‡­ûå GDKfêᦄ–s€•ö«Ùå/C‘XóùIí ØƒÀ@ˆÓ= 0ʖÝ!K<ô>WÓȀ-è4 G{„)öL8«?„BP»«·lrõn·ÉyŸ¼a8_jˆÌƒ¾Gy./“êÝ¥öA݆û¯Î;Ý û@‘‰F~‰ÏRн\gÑö‚= ÐÞV‡0“ö׬:î»hëFæù‹ãí=M]¼Ùûü£{3 ¤™ùp<ût?‰ÅJÆ(2X}}äèqÉïëXåew}56Ãæv«ÄúºÃv™n çvø±úÎ_n²©tíO-t~‚Ö‰d†(Ô6!õZhÞr/í³â'Žu=}m³çRÍìUæÔ+¥9r NŠtDþ¡\Gb0Á‚é]ut˜ÆZkꑉœë?ý<Ð>ùL‹ëé{R˜ôãhr®dg½ºÒî_Á'gfƒ«ŸUÉS ë1Æj›úSJšÊQ$“×=M_ÑT_³íD+˜¬®'JÁ¸ÆæŸ8“‹î6¯•ò֌Ÿ¢ÐAÕ²~‰³¡)BeêéÕv>0´ïƒOÆj¶%™N“‡Šô¡ÑVhd4Q+ˆõBÙüÚßU"þX ÀB´a.'}_AÜ£¶ã¾‡1¯7H’ñD†ò²ˆíJvwS—£¹ñ2%ɔM×3qC2° 9…=}Ç] gssl{½_ʊK[®e«ØäƒÜ$ xïS cBˆÛzÃ,C6 !ž…r]?;¥f& ^Ža¿…?‡]²0B_b™1oÁäïŸî–XhŽ&…ý"GísÚ³‹ÿúR‡… HQÏú¶}i»”7™¢æatæ ÖÉÔîeo°= ¡8®À‰ g(N Z\"‡íòéÇË7lÎëÕÜKŠorÐvíGõ7aÕ÷*ê&¸›‹®<GÖá4ûö…4 kDŒÿ˜FØ.?6þ‚4â/¦Í{rÍzL0sæŠìðÏZþáëÏóJ…„Në-6-‹ž†½_pr´/[F÷ƒ]·Ï‰Ë(˜è™LJ†Ú|®5(´èæÒ²¬°0êˆ×Økց= Æý›ñ/h]0h–?ØÆø¼=M€ SHn];9 „ÐXTêðpßq=}gsK9XÔíÍʧ+¹ânߪ÷@…ì5)Š'q•@ ¤/#ž(aÞÇVUo:ÈÑå°rtÌm+iŒ»t DþOü'±¬GJ9êlô‚üŒŒ¼Rùœ.›3ƒ×š‹3= Þ.:oÐE>K<…ˆ?Ï£ˆÖÈmš·ÿ1q=M äÌUû×UÔÏØ80ë«ÞK¤x XªQÕ3ÓªÃ:ÈI›°Iü3 8°ÎðgNÛV1ãh›Q= Q†fß²4-ÇÒ8X¬¸£,¤wà m5蜘*íT8£*$cmChýSMrݶöp‡”ŪpŒ]U€3Þè1lܶ܈;ós·€ïŠ)è,Œ ‘YW£È•~åð>¼Ghcπ̼¸ÿþh…k …)d—´QÞGb%è¼MlKì€jý·=}ˆk:#–ÌÏðH3 ÜÌú‡\ N>Ì= ¾„ÒÚí¨ üU:.cÜá9šë„FS¬ƒ=}r×½\¶ûN­1k."T½¹W¿‹™|;ZšˆäÐú€üߙV]:0Ó|Cþ;\Yëæ”žßّ ÁBö̝¶~ ۟#ð1†bBŽ|jèj¤#þ_ñ5ÄÍnZûse²¡$£D¨_ºxxi¹£Õ±S¾€»€T®œÙØ4€„íA½kTÄ=M—f××íŠRëG²™3\NQŸÇ€ô½FÙN¶ ý}§“?¶ÔìœvâX±>’boÎgV •¾÷³žÙøl2NæäÑÞdžª”—ýÇ9Á¬òo§/gK~Xh#¼|ã~𪉏¦–+Cät~Ikbi3gK(5D¹ÎV¥îÿtÑ÷W“ˆo­¹Xƒ]m|FÖë+.\Oÿs¿ëwéR]ÜÈ6¡³ º3žÁ_õ ¯ ú›@bXT;xUqŽ=Mq&OŸ¼¡’&¶©üÉlÖ(e&‰­äJ¦ú/éü =}Z¶µR÷T–ÎOjÉYÄ4ýÏìšë@âÒU{Ο\h' ‡æhÄ!„ðLyOgæyM0mØ|Îtk­ýL2÷ˆU~…Q¹Ä¿o‘y´T$°õ¢]¹KùáÑ騳¦±\i‘³£ÉÓ)(Qþe8O»v”°ñàý\GKͯÚ)ڈI-6ÛÛªq×ÎE]¡Sç‰5tÙ‚Ãø91^…žÅíM@»~d s½=M_3 uun¼\-=} –“X:i÷}Š”}‰†Ct:Yäå¸ÐUÀ70jäl©ôã҄#nØOý%È6æNz1ÅÔ³A(AžRO ¨;Àê5 ¹a:˜N!0¹çx *lÑêÎðjZ œIj59ÏX)<‡™Ô›ßo  ØÿŸ´üø ý9‘á®øéééçšyÑW¾1‹´Êýם¢jš+)õ*p”¹+& æ¦é®9·Œ8M­xøDM­H‘ÐÂBÐ6|äù¶ñ”•«—°TÔ/FR-öÿ«•ºçȑHi=}VtÙ½I‡ÇqXaåÔwB?lÞàoSې)Kùˆÿ&ö†àïޟKÊ¿.qÐÌÎTœ²=Mÿîý:4Bê‡p= ñ¯ü揟˜´­Nõ¦ýsôˆ¬Ù¶²tVMвó"aÂ%—*ú¼W¥qïíöh¡oÏOÂ3ζn;f·FK-«lg&ÙJE+vÜ·= QË(á6ÿ°’òOÆÈ+ˆXTÝjëì8·pÀ¥_C;7‹¯ÈûîÑî/†Ò„,üõÏ|pÉ8&ÅQZ»„*.X”YÜÎ(.7±ÄM•ÙØá™Ë8Þˆ×Äà̖õ²òª¬Êíæ|éZ}²C´ZÔv Ò«ËÐC;õÕTK#»ìCwƒ¿­Â/e¼ørB4³³¯¨ƒ’oÕ±ˆ3©^ÃÕ¨Ð!͏Ëô ï€ï²x?¬.ó €K@¾÷Å·ã½ÜȺ³§Mt¼úíF2Ÿ/T=MY1-aÀÁF›€×ù= ç_o—%AÑրçæóÿ_ ¾ðuxÖ¨O“4ªÐãˆ8ò%ç@òz$0k-ҚŽH¢bt)tüV’‡Ñ2mæü/x€_;<þÓûAsvü¤’kx7¬N5ŽaÛ¢ØÞ¢FÓHz6^]ò“Ê(‡lœ ¼ùŸ_MÐݍÁ˜½Õ/#¡çŽy4äÄ<¡žBN‡¸éœ"Quú‹€)K˜>èZ~í|¤šè8ëÍzÙý‡ÛÍùÿšL¹èEÈڐjmr= èÀ®ýB׿us~”òå‹à¥£F­dcæz]¨äüC)q©yŠ[ŽVÖüo€xà÷6ќW-4íüš0ªßªƒ«$Do„t;V†À€¶= $ü3dCç2eióW[)°ÂªÄaðŽïË_wÉá‡ĕ§/Z,Ú@ð_L<,[P-wÉá=M…𠶍f'.›iɁ3ô>›»Ù”IT,ª¨=M¶_ð_4…#'¯D ٔT}gFßË1t5îÄWˆogD×+39c,^€»Q=M„:Dçã 0£è®ZñxR¬ò1w1.¢.Â= Ý~5eâ±Ô)R³ivÊK›ÿBal!š§%%ö£‘|~?ŒuèÎDýŽx­{N!ðiÒh”°Ø¬CSxKVv¿Q’ÀïMÁ"3Œœ©®-†üŒL¿èg#5-b,ìÀMÂà{¤å ØSâJI¯Ü£’o¬^„³z‘7RùÚ³ E͖ôwàû¯HüHN¤4“4¬¶D 4¬÷MÛٗqp÷Ü­Â&jéÒÜ ‘ß •’= ^= HæO Nó]º(­å”ý:ì &µÔh½Š’/„7µÌ£<Íõþ…Iâ-…¤‰þ)Ä!õÌPœ[Ã侫È6~°ÒÐÝögGÎh…¤ŒfùßIݨ„ÖRqˆ-Òâý)ýN¼&±Gx!š5­NGÄ(ÖÛ’žµ—WÜԞ'¶³,‡ó&U¶Ã$ò³œ=}ù æÀ›5ó{Õ®Áðw#dJ̼÷Røwüšé=}mç}^¦ Â= ¶Èª”溨§eüƦ»¿BtþÞÍÏKý•b§zu†©rþÙÛ-Äû"MF¥m6v…t0©ÉÒsMUcä4fðÆá²÷éT*…Ý•f®‘6ÞMW3ñô Y=MöÎ)Íø¿¸«hèIŽ…WÞ;gÈt·Íúèk£ Öi˜ÖüìÐî kkm/ß#1Ù%­÷¨†çdFì” Xt—ýC Þ|ùȕVA€4ÿ'9Շ%ÜËèþ m€Ü¶&9Ì}縫ÏU„ÞþÍÉàₐV¼ql…¯i:Ïwßô«Çª Sâ\aؔYífF¯­–¯\ÃaUU-S 'õ-§ Ƴ¤§ê̟Z þ×¶:rg¸KÕ»2ô<¶.–}3hêõÝC7.ä"žôv?â¾PûU2ÙK ë,FÏ9ÎúŸŸƒÉü\¥䷣©±K÷醺«ô¹ ŸçöÄç0‘.D¼ÒEÿÓq°µß-Õù:Émî7àßÅà4ùÌùÏ¿Fç*^^Àèoï#Ošß¤ «Ã®ä3øˆ_¶§|ԅ¢!vg'Så¯hΎ÷-€úP™y² ç5‘²‚Y€Iæ»Q‰ÊxK‘œá#P4êK”ÙèyˆË–w só*C‡@d*†™ªä¦#SåGÖðàïKÀø®Ç“~\¹ÁHMzõ¨‰øL5óÞÛ0Sô-÷ãæ„›L#UB¶N3àÌt®žET‹p•¶Vt­!Cf”FJ!"õ7$ôüT ›Oًë~þŒñŠS†w&Æ|=M_¤´ ÏúL̪\§ˆ½&=MD|…Å>wkȁJŽ zµJ(Z‚Ä¢A·øF¥J¿·l-'g›ÖálÈ¡˜jAEúN¦‚<ÌÍ-ütµæù±J=Mæ³ãÏ[ä±Éº3‡ß‡«*÷ ¯zî±n#‹ý´›8΅ ]þqP?CÚ”ˆþnn=M0åusx¤Û2þaóÑv½PƒÛ^c«= Më‡ÊŽ|¯—¤1œW¼«õ9 -åƒ÷?¬e±¿Ü­¤ÖƒGüƒ–-)ČüdãnRP{õ!J…[zí¤M8®z y(^mbpî%7 ¸úÜŸjɓ’[~ÆRä;&âx^š¼•œ‘^+tŸÀñk 9¨¿w?#Æoä¨ä"¤b¢jЇs\ŽŸÊx€føXŸ'œ~S ÀÍí‘qói‰X[P¿„‘ýTagŗȭçS™U‹íÏõÔNÎôKÐe«•…†¦ZXœh¸ãø3Éw„ ¡™X½“ª[²¶*åm ƒä‘ !¯(M+©ŸÅú¨Zú¨lçed ½ƒ}±“¯¶±÷¦!"xB”9ºBo§pJÒ©¶"¢:d­U‚Õö©Hä®åø¬É*ÞK{Hh“S„ÎAUîô@Õ7<‘Ùt/—gÃȎ²¦*öy…«•wô£îjÆ WÓbà:ŠÚΊbß§òñ[=}wÖ:¿©Eh㤗ºÉQ·9¶˜‰‡W6z׋vuX/¹ŸR›Ù®D¹SÙçØÃÉ-rà©È!Z¯ù¿K„ÌCb= WÃîÝæ!þ ÌR®U¼¹s¼å¯ùÝf¥(V@Äz¼Ã«<ÂõöÄHô@('>ã(„ì[Z™Í#)0Ííz¥ |ÌFØËŽ“G®{+ÝÉÜ7eñ ®=}ƒúó!ò.ôkg>X<¾ã}ãÄÜWõjœ%Gó@G|ð1ôEeî,¥*ü¾°É$x0ƒËg±¼ò,“Å·tÀčÔ$à—4s¦;G L¥È³.@®};FˆéÛÑ*=}oè/j“lŸð£Ì‡ú¯Ëø=MÑy[ژ@'n?¬íHðQ9O(ŽnÄk%ò‡9O„U)žk½%Oÿ¸,åH°(¶D“×Ú38Ù9}r¿åb±SOãÓô¿gdU³‹{Sà<0ž²ƒé\oÈë·c–0d´·r3ÈW¿—Ò¿µXz= £i_9ëŒmwvGàöýŒÔ{ËÈ(Hèòn~æ*Ú4^|ùç*ëÏØ+ô´ÀµK+ѧ˾´À èùÿìÅÝ5 .wìh“µ/” nã'›;¥Å¥˜ ‘ÀYˏ³ncõÚK4ßuß}rtèó:-/šÕ»Øˆsn½K¼E´iÇ ÑÞ4¹0ԙ³5I¨†´¹*?³EV*˜p+pŠÌNíx„H]µŠ˜Vênão×TM8¡­Ð’”óxЙ<úŒ¶ˆê­ù­ÔÎü€ªÝܨ‹˜ n|ll•µI- ¼{“¹«Dê:ÇÌ]—5\¹ÀI3(ŠÏ¦®0"i4µ‹Õ̋ÌßU/藙ÓZžÄœºc¥¹E”ÓËÇ:KüXÆUû¶„׫ÓVÉE•Q°®ý³­Ÿ½©’4^·z&*²’•ŽEÍ|=M¢ÙƒA:›ÄÚ»S°(ÍçLªóª©ž˜iKoØjÁñ’ò%/YÑèFu{猳2Xl2Ã$Ã÷¢R³/ïË P¯¿XÞo‰´áªֆÝfˆ?ôàõdñy«Ûö›S㬦3n×ñ8¦(Q5ÿ½š‘{‰ ¶m¡¹WÍ~óã‹Ó‹°Íœk”©'>҇ýÁCؑµøq󲅪òÐ_HˆÕ¢•ö‡óÇ|Ì®ñ•P™°Ž–z}ZÔñÿSÄÀ9á±y¡ÉA?4ÈμOIOÅð›ÍioBÅ&WlÁÌ:Ëx¯‡<‚ayaP3D°rá: o&p®½= ¼còù–¥þš!KQÎĈKéü°’e‰¬ïäæ9²äŽfÊ !¤´1©¿¿Æ;fj؞eÙ¯<¬hqNÕýˆY†×ƒC´p‚Å¡¹œΡþ#'åc(yCÿG?l{F8q’«è)&!^¡ðQZYÔPA*†f'C~×ÐYvíòÞÛø„íÎ3ø'ړtøúwyÀúNãxyQ¸Ì%¤p\Ãw—íG]mHQñ†´o:Ö9Õ̉ ðÜøE†‘XÙ|1qM¦@aÒ4+È[Ûà“Þ7ˌõà d×rXuX·mË0}¹é\ù5E˜ÑÓ3_7£·Ùç×ï£0[cf¨˜’QÎ¹°Ô›´™ ÎVJxÝn!\ÿu–l¡N€-⊠JÊmVg3¸7D#\FÁxHµ÷€ƒ’áî=MnT~FV·L*E«Á-ɟáàÀ·…n#Ât¬”±½¦zÍQÜl(ŽE¥2K¿†´7ý&.·+%òMRîûyj-áùè:‹(X“ò#µß±’«‰=M@µß±l÷ó%j%š´ 3Gíù{Ç9ª+äz,¤{e£†®à´Ze®+þèÿ$[ÔYT+þ‰[ø1f ˜Ý2@˜5gЄiøÌÌÁÔÐ7;îK¿Úái©Ê_t8¶ÊïȉèÿMçÑç%e¨Ä¬—Ï«¤k äUæ0²ßµ—”÷ßà8¬¹–àËößyý7NÐmEèÜù7åÇFôo±FòHéì.ϋßUÎi»¦Ð3KóƒŽ9÷VTrо¶ýÕ!ü !üWIMÁ×v—ýH­¿åDÎ8](IºÅ _¸òCY籆êGå$$ ØËÏJE…µ‰~ ½9¿µ-©#d弍pïÛR˜ñ_Œ˜jE]¥. ]˜bÁðsPbYü"ÐyÊ5Hmído·êؼ’äÀÙKx¢*½1ë“ÍŸtuÔS<‘RTeÆÂ´wŽh|P;´3íÓÁ¢e}‡Ï6Âlhœh6O=Mjެ,AW¼x^yÑíÑÃyŽtØ5.Õ³š;MæGdﲤ§ð8ÎEi¤·Y”BR›$À¼4¤Þ+U~ûr”A•ޝÀo°Ã{§2ÞÃTAˆ3gئ6ÜÑ$Á1ö mBˆ†é¤ g}<‡ð‹Q®«‚c;|þ×"kÅ níáÔM¹wŒG¡\Pm›Ê7ÎÏm1ø2 s#sƒ=}#¼û”õ'SëaŠúð°Nh>ìªÑ­ã_¸rvupC¡)Ɨ]ã'[,³ ?ž= bÎ\FÃfìÔ,‰ày%‘àwS«_¦à+È岘1VüVx[EÚA6÷ûF5¡R ‘{ùd»Îڕ·-¸R¸û ;&ݔ±2š,Nݯ3Ð2)°QT ے{Á”¹”:¿~êVj™dÈj™ýœËÜåž1Æ’mAsՑʈÛÁ&æéj=}²bi߬_Ԟ÷õz›áÂL¦´‰»¯ú/´ù]±Ó¹(F¡߇u(ƒ±4&| ÔØ>j¢«Ï*9*±ê ÊÒ­é&&1ü䈳mc±”a´FCU"ü„£òº¨±¢–»©iݳùþ©óÁ*”©Èþ? ƒÎ'ó+ðÀÏ:<õk#ÏP’ÖZ îâ+»ÑêÉ»ö…ïã5xÖd/ɏ)äÉñ‡Å+?¬ó¾~ŽªLÅÁwzø‘üŸœêcä©;9©¾XroÄ3 $âQºhÛ Ç;=}cՙ¤æ ˜Ô‡ÓÂO™Ée?šÃÎÍÜõ‰Ék–ÃÂFÝPŠotƒÅªŸT1Lå¬ôN{[ݳTc’ ˜:RÑmÄkº±V ´/R>¯hí=MN‚ˆK’'»54¦üw+wð2»çv(Òêа{ ½¡),÷EÓT”eÖÓ‰suf;åÕ)ûó=Mûå¤ê¥>[Ç8%¯HßÑ«˜ÌKÊWU9ÓÅR÷çc§/E¶ÀÄÆvǤ¹JYýNˆˆ%½Ð{9:~®Øêù2öÖÕõoëËÈ6ù]ìŸÔD÷w¶ô4…“I—ÙœãR˜¸_†.WɛsßøBTFÖn¼]“@ÆQ“= Ò’îBRê#L"úÛLµêÔù»ÿ­T*NÞÊìiB÷$ఙ¹–,{9ˆ?%n)ç·äJ%: ûÝƚ‚0,Š?ìjV‘·Nç÷ÛÅ«IÁ²MÃ¥J±Jx%‚õˆ¶ÃÚãÁ‘9KocƲ 3*ž4^OìÄÈ.òòø"cÄplh(SžZ+ovß±h”¹ó²d¬e´jÇv™¸y=  Ÿ}’žŸ=}Ž’ìñ¯ë¯¹%+ÅÓ@cK%%ë+bO°ö”=}JZø“–íqN‡Ç81Ì|ç2Ý¸?çø”AQXl„%Ž'öE>ēj¯ïùc‚÷1û \Ú Ü9öàHû]Ñ7>𐳏>óGf0Iõ8ïÎï73ÓD¡ª˜ìû]°ñmr'æþ[h7Ød QϏÜ.àh´T5 Ö"Ý AòhԖ…ÞNå=}ÄÞÎ2 ¢°˜ºõs›h5„.šh¢H¤gNhÖøP s4§ ‹œÀ ÿÒKÕÄp%ÛȰ'X\XsùYÌAè±ËE^G¯))=}<ÚT»¬À+D”.•¬ ƒðܸê.jSžÂàb¿,´ïªHA–¬Jc°Ú~öt|˜rè#H£‹ÝÏa¢Ù“ŸVj‹h×å”Hz­ñ—>Ú?^+*±=MŸ‚üÿFRÍ·ÛTTÊ[Œ¤ôFfæ´9Õë÷Cäs~wÉ?̵AãJMTÔßÐäR4 𢿘1jô”<Ùì1‚Ûh&g©,ôRM©2V«ãlÙz pÁèï­Æ(} JÈÍ®>¦tk›JÈ"~ÌÊÿÈÒ 3* ª"ÁP_ö#¢Ž7Ê<²4OêßÔT¦2·Ô³r[­¸ Ujf¥êÒCû:TÉã1 4‡×Û ›*•DÝgBMfo ¦|žie—¡Ñð;ÆÙÎú^ƒÚ]ƒº³î †ÊÅ Ý/‚ìè\m²™m^I­ŽŽŸ9l0¸øûíÉÞO׿µ•¢Œ[½Dâ–-N<+ˆ©}¨yL*ö?$=}GÜ"x&ó‚pêB•ý—ÊT?aΧ?,S åù^p'®èy(h\5Q¾«Ž)­¹»,ô»7Nô«àè)J%KèƒíJ%óWiD¡ç= >æ=MÀ »Ä2jr6ò†šÔ›Œ¶0ǤŠ;¢i¦‘ ‚«bC·&i°÷„èõRÒEÕuYL_¢> Þ"½¹8[ÉÇ¢LÝ#¨2:+"Ax¢Í¶ÀÂ[vkwN¶­·,-%Ô /Ɉ䩜j<ý =}È^äC|,p[?›g=Miz]÷>YÚdŒˆÐsBÎ$G¡“¤-TÓ‹i0pI“jèY9„c+±·2¨«D½w'Ð7Zd¼ÍÙèöùº?å½³+­D¦\@z]Ýåâù»ÌåÂE=MLñ¾Á$ƒ!ýˆý4Ùz’ò=}­nJïl38øi&bç\…Äìg®xxóùs¯Î U^;݈-Êm}½Î çr­¨0Û9³›†±_³>£¤NÈ~7)3ɗrcÀFoO¡õu&;f)²óíÂõä[Ü2JÈœ­º(ËZgãÒ˜'ø8ždFUÄ¢oƒ¦Ä(AÂÍnRâ_¯u3 b._—rmµŽ:…ÿŠkUŠ ÿ™UE¼´º£î´ÍùÀŝ¦hç¸rÍúj>3jW?Výß¶tÂøé¹ˆ—–äGùD3_\€]blÔ2Ùâ–×ƭނ !÷[ãçÙm <“L§µ›é]ïî!;ÏнA{¥‰¿Ey£Y:c¹wBő0E•ÿ"‹–³ïƒÆ"µÿ⣺™„â„’Z’Ššô¼mû—™*;q kræJøÉ“×ä!CÜ}he¦ Vï^2Ý"œæsä4 ž‘¸ËŒå,ö!/¯Ú^•m Ìâ'Æ#:»G”P› ÙÎCïµË~ñ^æóvz^ÐÙì­õþèöi®á7¯œÝIã±Q‡È#UúKoœöÖ'ã¼8ÈÙ)ì÷å;Ï-JÊDÅ;¹ê–àCòësʈY¦ •æ%἟-£íxo&v–YKawd÷ƒ¥Âš_g{= .Ô´žÆn¶ôš°Bx¼y‚½Ff-šºöbþ¯Ô=MÞlˆ˜ •-V¿V(àA/ì\ÃW­˜ t'SMÀÒõ—.2åÅÃS»øºhŸFɛkäÇ֘®U_”?[J©šÑڞÃïIt?W{3íž4¥A“ ŒbÕÜõ8ý)DëÄÀ²ù)©æÌ<ÍL,o{°Ë6øß±c»K= {m ¸Rµ­;§Íµþ ô•ãr›Ìc÷¸±>zݶ¼捧‡lÔ93’–éI°œÂˆÐÿ1 âË…Ýõ= øŸëÑì¸C=MXJ酯·Žx:i½×˜à2´­ÕJíÍ ¤ÃI›t‰_¾‘ðÎk=}äLg÷ëµô/ÜZŠIq©©Âá×9KƒtÿìlŒ+B¾õå0¦»šÔO‚á=Mbë<]=}h€G¡2=}—´dj9dS ™«ÀŽiŽi˜jÜäÇ٘/ À}º¤ÎXõ­üdè7«]áÄÇ#W= àGžfa»¦š»yæjón=}:™.26)8NµEv·”>E¶6‰ÑzGÁ–4pÚÏ­$ö/[ˆ|w;í= Ê˜eø–­Ûrù¢ÎdQ4àý‡‹¦ÛüCAñÿ\=  øÐIž êª!$~þ„ž° 4×8-¦JOôÕG{ëÊ}¡¬DŸ5{NEJ§þ‹Zí¼éôCæ£×ã’å®=}¥×*’—½ÑS¬Cì3Ú¬qâað3ö/ÇUŽ|¹Kô¦˜Øº<Ûñ(4ôï¼ñлv8¬pŽt¡Çm“¬f–¦ð%Eõ-÷Ë(õ9Ì̳oõ)ßH-ǫ̃¥¼mSâNwöªð^— ãíQFq1]§w°ô“J<¿\×·å•-Wu6ë]R-äú%I¦øغý»3‹ ®¦µn¯wÄ,·Ç¨w!Maë A ­tØ*á= W©Ûx-¹"¬SË­½XZJUz]s>H²ÜNU­Õ 1igv[Ñ8ªGCUŠÎÞ¦•nõûLÞË<­‚‡TI2åÂüF•z/ϸAŒ£q_ N=Mðõ/ي2¶@šõ=}æAwsˆGÎùÂb„‡¡Íà÷†åaŒcp£7+R YÊ(5#>¼—±›ˆÑÆ;K·nê'(§YM͔ø÷͊®Ž(öó‘PDwžÉè1¶5yê4É,<óÓ^êYçLÑ\æ_æ'TqìÄæ‚×èëk!Ëpô3“)ÿ¦ûº½yøî)ˆ1™ÌÀŒjûRi¼“ïnòššævŠZ-ÔÞ,zmÀ,˜´kØHW›¡ 9C ÃDØãö™4ƒØYÝL­*¶„â\v…K lHÿ²øM•Wþ¾€xÜY8P”T¿éEݎC…–r’>g¦-‡ß°„«„ëf¬e¬Ö³ÿGÌS_£Ïà~¦‚zSèÛzSƒ¿}„¸Yõ©í£é\MOô®®3ÁÙp»†3²§"B°G!+漍o=MâÐPyQË<9=Mõ»ìT)èõ³˜[¡lEüã^ÈÿždjùŒù“¯£ÿÆ\Ç».[¿£“Ymüžéýó|zçp­Ýóå½m·J5ïÉÁM -÷Æ8-ñSµ¾¦Rl%¨½MEa²5\÷—­«ºÄ˜Gw®„ÅõÀs%~ÃH¿¸l&k“÷¥ÿÞºÃõ#Jr¨ë·ƒl¤Õ¨Ÿÿ#a¥ß ÑãQ£2;®Ó÷#’@®ƒN 8Íãœ!@õM ½Dî/!Àž!ÿچªúA”¢yøð›"‰žbv PúÚ~‚V ,N>"‹ žRY"xp™òa]|¡”ú?Æ.laƒé¸pá6ÿ›Ÿc¤ÏŠßn€rq«=}{½[›âØÔíºñŽOlÇ!1èõ(ó«"¯l&N{h•Ü7façz—4Σï¾âºï-ÔñaÎ žqcÞæ°U“]ŽËgŽ¢_Qáξ.¿ ï]÷ð‹˜r:z÷ÀÃc‚Òa.œ ”'¬-3Ë/yçBw¿ºò0j‘™í¿'áޅã9ßÕK¸Í|6 vùâ2wä4PFa‰y»™¨ô¼ŠDy½·;=}ý®>ýE¨E±œPzö#èå<‡¿,ΩªÔ@yçù‚–´!„ô ] ðޟ¡íˆßÂ2cµˆËt q¾¶AHû™ýM&¹Pe㪬1ÃÌã»Ä!„XOu^åŸãJ8è2¥K8KŒe]ëžFšw}ü.Z]µ–?Sù‹à¬>ùyÎþñsºƒëí¿ùÓ[ûí>ÐUhnÔBäpR*ž@hÓÒ@7À…ƒc¦)-ªI«8‹™Ów|íà&M¢ì·Mú7N”F„úۆ$7Óǜ€2Ážú&®ÿ´¸§ÑÒ³Ô–àa.‘1ên3œB6Kå= âk4NèD÷Ÿ¸Ò[AgØÉ^\M¿«DÍ_8ýÂMfT>¸bŽÓÃ'ê[ԃõŸLu^[–3©N]vòý(7™UHe3¤˜ÖŽ(sQf+™s÷²Å”R׃ßÝïë\Rµiµ²Ú¯ÝñrípuÜCë&c‚tJ+=}.H)¾¡âïþXTGí䁿wc´M̞K;ˆÎ‡ÍFÂ+YHÏQÁ˜¢²ø¿Q R¶JNøäÆX;Œ¬ sq•K^ ø>ãcy-(Ds‹bÜx:ÊÚ($E˜êÅ3Vz0¾õQYÁwj:^vf9:î5\Kàã\û[”¬È¼ÚÎÿ!÷P~_Þ~ üw©ó®KÀÿþÙG´¥æàªsä6³eÃnÌçn( QÛ+Ñû {6ËÖj1.[‡mtp@ÿ=}—'D”2Le¿G_×w¹°cw°KCT‡hB͵8×Ü#u_UnIô€ð†Ò¦â±çj±Æñôõ ›÷ ½ZI3K‚4Åçtµý7:<Õ¼RøŒ \’·»Z'ÐFÓúÉoØEqWĶXóÉ:Pû¾¬aGP‚­˜Z[Bá3fCÍd÷=}™8\úà›-–IÀòÌW-÷aJh ¡=M®[gf1XÄÞ3¹D©!;÷ï¾-ÃՃÓ½DµOx}{¡Žð™Û7úŒcùH;–|ç¤Lz£ÿ™Þi•Ë 8¶ã4ó€%¹‚ª,ØL}.9é…'Ëë=  ò¸©#¼d  ŒkêDØÎ†pmU>NƒÑï æ¦à¹c/È7è„a¹Tß>µÛè¢þ·ÈÚïi8æsžÂp Äñ†½Š›kçßú;Jó°‚A¨ˆŸùf“-ÜoÛË=}¾û£K2¶ñ€$eƒd¹“*÷‚¬>yIœeՉúûTôî.E¥^,¤~ßè«q†¢$ÇçGdÆøžb·ï@Q³¼I ¬ó)Œêç"º rþÓÙAèÒû§àüZm‡??(£ÓæIá¸ÚKÚ^ÌË JñKõÌ)å: ˆ,Ô'LÿúÜHhʈ”8R»kXä?W%x|šë ²±w†ëEaé)"óPõx@ƒáÝYnzÃþӏ= ˜Ô\—Š¥›LuM"·*Ä x)ÜõȘ éP]Á&Fu yôެ©kw믋Á‡™Ž_%ÂÔ+'€‰ãOúùç¶¡ãÑú?¿ã{*ßXÞÜ+ò‡@©k7ÌØ l7°À4 ùÂÛ¬š)¯"x}W±~°~EuûÑîVQ B*é‘L=}Æ¿_V/3÷Üà2e€égÝ<&—ÛÌi&Òª©òµi‹ÄËÁÒ ó¿iÜÝvüªŸkÊhFM«FÃW~óSRZ$ªq¾tò>0ã)¦k»|ÃÓ$N„ÍìsÒcÙÓã_ÆòÆ*fœ>äڊÝÍ+5ð$²u+Ž„)°Ó«æÑæßè±.¤÷fÖ¹Ó+¬[ ›ÂˆÎ/uk÷©8m¤ºoÖcàA{“v)4c†±^´?Úûâ×gC&®7Ù= ³}Rƒƒh;«Y¬To–^Ôr6›=}ó3͙VÞbs,„ 3ªJ[·ò—óµh³t5UøXÿÏÏצÅ$–.ð?¯Šõì\áÂ͒Sl~W›pÁŸƒ Ô¯P袽d]ï*Oƒڛ8Ç©ÖöS†‰§Òérï<ÿî)ÃC7â§BjD^C¥HÆJîêÍ*?{¢Æ>Eû{FëŸ WÁZÖ?¥±º\K+¯0âHdzÿØr§#*À¥YžùàˆÑöD)¥eE'ÚÇ¿u®ïM¸|~¨×_Œ%Ó¥Ô¦;ÐØd÷öëÍ×þJ€Š‹£÷w4¯Z(ýÉۖ’z€†š…ƒ±ÄÁô,é|É=M&À|“Ù³£”‡Rª›Ž¤cäèhMbÿ.)¶£Ýý|.¬+…©¤Jª²ã|j+¤o¤DKËF¸8ÌÂî¬>póUØ´I÷µàW§´HÀœ%ßåÁ´£wßR$íѪHÈ=MYv[±×ÿ¬ófÓÓ¡ø5öñ‘Rj{O¥bt³ó« ø•&®%M«« ðãvMU@¿¶m1ò³Y¬ÆÇ¯ŸAË;𻬨¥BòÓÚÂ÷¢2 d€ãÌùÌËù€ØÉiñDDÄ©ˆ¢4¦ƒx:é¶ùܺNW.s-êOޚBáaÊKB>\ÂÁ ‡•s±u¾=}C:'ô?¼>¡z¢›Š¢”r¢—ò¢zâê%㡆”Csá«’ŠÒ¿‡:“$Ӄm }ûÁϯe´­ s&yÃÝ£;fbª°Æcfž’®’.Eâ.¢—r5â셏2}¼iæÆ"3cìÏÊ Œåc£m%ͳ ¯Â# æ§ëh‚“¤¡¹èšjš‚::g"9 ŒB ìÒ¬eÃ[!6â2¥n«ô½¨AIO»º-¢nåÜ#ÚU褛/Ei!w~Y~Y~YÎM¸ñuÇš‚z¢}ÛëݖŒ|¾÷ºÇÓ£˜fgd¦³BN–Úg%Ás¼ª¸o‘MbYÍäâtÛ%•ôöO¼f„h f¢Ï5˜OÑo(hË©=M³ -ú2 w+4e·$Pã»@éÍ÷Ó·ºßHôßGfµð(N“Ë °3·LK¾ ßڞ”æú‹¾ˆC¨­o‹¶óà‹±s Û‹Æ=M*ú xƒà„æ¨YÑwÆ¥?K»Ü³±½+°ÈÞ])ÙDK½g“r§*]í䨾ê¯ˤáåBêFåäIóñã­¯'Fƒ%Ϲ­%ä¨Zƒ »ámNj*¢ˆïO¤bƒËà×&ÇDÖ “þç†Î*@èn+ìO±^sî!|ƒÉ>s¶(àá¾=}î—AQ«ôg¾’K £ar^øœÁÀf™œÒ)äçÓ?±Ò¯¢½!⟠›u“¡„Œ„_“Ri= i¡iˆòfýæ æL!Vá¢øÚjvwÉ Ò=MuØÚx<nMíM= íTYŁý!ùÉ909á8»È¶h2èítㄠ$2:bӏÌ2jqqoi||OLwU3+Å]†ŽTŠ£ó®0±Á±Ÿ 7ïŽbn&a‚’=}™G ]’]ÛQ™q@1å] ¨9ÁîYÈ]–‰²}ã‡^ zLNr½°P= 9.bóÿ|o‹}r°,mËQŸ0 Yžt?•2¥ :œ…ÊÁazظp¬}8?þ”N1T0kaVˆðɶ Q| ׎‘>‚¨©6_úÛ9õ ‘Õð{,ÎØ©Æ@_:à9øKŠ^ Š,_•2}iEŒîÁrC=MŽT=MŠì+Dâuy1[–hr=}éª)Þ6þùÛudq7Ÿ:p鉑NÙçIº_yٗZØÝP‹ü@\xW|ÎYHNŸr{paGnځŸÕ} ìû‡œŽrý/Ê]©á\—F4OC{–Úm"œßi] lèòÞéýñ–TÞ= ƒVT ƒ9'Wžøb>ïý» ٞh’F€¹©*ÿ¡jß-‡Å]«5Öã‹$‡î 6îÜQÓ}å¯vì…Ùê«×®µ è?†—εn{ÑB[ã÷&©Êºî*¬GÃsÉÖÕ=M±‹* „Ûxgþ}.iôAÍ A§•ó0:òïÈJ5¹Aë'sú úñátn,õç­ª5\k6Ê,=M+É¥N®'àąƒ‹„ksm£œÊQ°Ú-v«µ1Þ£³.ñHö춍»û²³¦Óá*ç¢é:5à‡Ôcøðß(´eía$ø=Mƺv|ƒz'¦¸ü­–,zòêûÀÓ"qO ö?@É}}û1¾Þý ­ªÍl ĜZ‘™Y‰=}-*è("Þ6S">|ßBL6OÏé ®W í°€ëÝݜï=M•ˆÀvŠòü‘ÎU¿\ú¼õPÏá%YqæË׺=}æþƒÈ?a慐Œüǔ—ײ“ÿËLjóo= ÞµG*%ÈòrŽXõ š*š^’€Nî­íbÆðÞàÈÄI‰q@o=}_—æ€â4‰ ! Oð"!ñš4'—?G]æ<Òálj4Á}ÄP6É,h,\JJ{ÖJEDيíýåS ò…Dg—}]æ•DdñÑþ¨Õ¿½KX»¹MIKÍ'AÕµ®¦Zж­„î”õðÏmþE-}–ú0ud¶§xlkˆ• ˜¶}ú“ùÎ'U¨©á°û[‡ ‘¬ZªŸO?–äa‚j·«|>Ÿ?%‚mˆ €ÀàhG +0w$ÔL͞í¹å +ç}†hÏþ±åþë'×åY¯å$cÿ'1¦‹0“­³’+ጠøºÓqtd}Ъ2An^úô‚q&V}ˆÄªµõQëÎ>G1ó‡Ý xI¦êqˆâK‹swÁÚ™5s=  ֒÷ÙlëA<€—NZçÁàB¢ƒ ÞDÖmq q}Pª5u7_LH‰1QV¦Ú'èBaÅPKŠ®o'ñ9«îën^žUa&½Øi5˜^…r ¸:¢•JÝ"‡›LÖ:*‘ðo›ô— ÖÈÓT©&€”Ì⁠ôž<¹»2™üρ¸ݎyv²=}¹†@ в|¾ª!ƒ=M}{^qÿµ]àÉܒ¡N©¼*ßyl óý&m2À$sy|â ûo|ÎuºXWIT&r_8dªµqsd¾Ôdq=}4êv-nM½Þ¬Q,0n8>²Á^óû•]TîvEn?ˆD„ÔÊѹßü¢(γ}ï–Yõ}ø“‚ì<}]ÚÌВn)évwmäsY‹Ö3" *IQ(ˆ‡|Îِâ7A¢ø6/ƒ<.IÒûZàÇOj>IÑ)âqftMp´, ҂!xŸJIdKìQÖ:îe1Ï—QøÝt $ Lb¸ù Ž¢ <ñ•ÿ¿W–ãu%°ye»iaT= ;‡å … ÿXÓ+2àÕ×1àï}G½òiÖ ‘Ö],7dÿ´°㺫Ü;ãié}É%÷ý0Z8üærF¥;= ¯aõYå±C(]ԟíÀwFµ¾ #*´#è°wb8MQu[¡´3lß[MÓ·öl=M!؂½QVK?ÐfI|sn+5°¡3²aCE–™C†ó輁ÎJJ l&{ÃùPŸ½ÁpEgãüãÕkÛoiÖÖ·W´_i•œ@W#d˜™ø{ÿ»À³ëÕKÂQaêË!Í#MAws=Mwÿæ“ÍpFáå¯/·¶QduAB²¸•† 6˜Çé)²{¥«ŠZÓH‡â4¢ÖmÓŪ 䨴o÷6¼¤¥Ñ<<°Øo#Î_·™¢‰ªQ«AÆi¯»¨¡¸¨VÄåÞÿ~ü³T’Î%•°$ÃÎsèóq,t8ôdï°/ú­zùüb­S;ª‚#¾ös$¹7늕±•mË¿¢Ûª7o…(êüÏßlWl¬–nŠºAòî0²‚aviúp”?ÇUXTÕÖØuÅ|끢ˆ2rnla??Wö“u|¡qىÝ7]=};¸AaûàbÖýäœPÊÈZßßI‘¯û½93—…t‡!~5Íô,È:®pú )A:¹î²ì߃QêÏVMæêÁHëv&úЍ îÇ5»¹%iŠF\¾ *í²¨ ó˜‘kDŸw= äåG Ï~„oÖ!3zýrCµBX¬Š‘íà·ú8– ‰&^æpÉ=}&"ð8Z±8ÉQ2þ¾ÂîÞÒñŒ„Á9Д·eÐÀª= \\êo^A–*åæ¦È…] µf%YhÊQr®´< aâï=}_ÞKgÛ!xi¼š…ÒÇíÙH(¨¡³¡¦õäåD*Jhï,û+÷éìÍ3+ºMK+æ(®ÂŽÆÞvmZæv‹D¢0VM勡lîė"]VóæÔÅ^^+N³]QÒÖô¦„žRzg¥»$bØFV‡)=M=}¿ZÈ_ˆ­D$aÞ¹q2 ² f€VO¿HÃî—T=}«NEàçÁD“+{„’ bÑêmÉé×¹»6½…¥4+¥<ã¿G¤ ÕhÞ%2ÇF–ûøÿ'M›c}«”³UhO.ó§¸ÓðþOÛjD15»àøÇ ìBéLÛ2~÷ÚN’~Š­Â4ˆ .4IiÆ/¯°—˜ƒKlм=}ÅÜ'©Ëß|9b›„ùýîiÂ^}šb¿;g1Fµ§¦,”¯Ö2Ô<™= "˜Ž¡Ÿ™h– 2®‰ò»R.€ ÃÚ÷¹ •ö™¡ð–´Wßà'­#D«Ú—Œß,¡ã¾íå™Õ©âÎJÅþ9º#íã<ÉTæx´¤ùKL‡g=MÚS»nz¦Mda‘YZqé’}WÙcgT ©¥Áæ ¶™~Mú¸ò°AÔ 74Ù:÷úhL~õü0rìì}Z…܁ÑñŎԹIéÝýÑðµ-lš.u6ezïZÕÇôù› ¶Ïc¤ê¸è[ZÖw… þ0AOZt š4îÞ¹ïTÕvªæ±/Tøóz= Àö铢xI’šž”.ï§¯ìËêb÷îÖÅ%¹{þ1×wtë×wžˆø {O”éõ{éá{~ø¢ËÆßc7Á² ¨Æ àÀ0¸Úõ™P@ŒÛyû**ڝ˜:åIþ1sEÜÛÈkÿç ¡œ“ïƒ/ÿwû‘+–»ÐŸ"ÛLù§,aç‹C‘Þa·¡áeõ¦ q@C)~B¿sFaqBÒoZƒLDay-?+h™© C–&——©BTýM “–v+HqI¯¾°˜W= ^ =MFBXÁ¬s0òãÖÇÀCšZa= vo”©W½q‡ æ g•L¹ý§þ4|¢ ø6bP´ºÒ՟šøãº,.óGٝɘÈôGHݍœÔs븘Z8è\ NEa™zºzðsÆ\O‰ù—_·®ís™Ÿå‹×ÿTYú\´.ç½Ãšyà= d/¹i֓Xˆ¼CÕ÷”zZyÚ۝§¦íø$QFQg­:ô¥¨]DaâþÍR@{ßjq'J±„"¯ÎsøÛCr4‹~Àⵘ µÜñ°°mGré&U 4ñ߸×{6\×lå&‚ýÁg›» #wvý= 6Á©” î˜0{#¬¥Ø¿†æ|(@F ¸Ÿ” ¸ þåè´ù¢ƒï‹Ä ›ƒŽc‘ oK°B àBN€Pìø/Qg¤sèD 6ô7ÄOOâ0‚êüL$»€B¸tñÿ¸ûR)ÎÎЫ¹XòHô‘»é"zr:y|“÷T›X”—/4·þôCâ?’ORc֛z:šÚ¹ý®×7‹½nÒ”µ•)t°åÐ.µùÛ½ô„’$Q)U–Þ ÐX÷|».Æhöô†X0ÏOÀ а±2*ˆEÁV)ÉñBØ"h]Ê79aLsé၃mƒÍQ1Š|^œýÃJ(ÕßRT~:{LH™<@ÿòú{|8O•ž=M¢þ†}ýšç[ÚuÖôA0™±$i _ÊÛÆtüìqïM½uw5QIïXLÔþP\=MqöaÁ'4A-˜ùMjÕ= ù‹\õ’xÕK4è@ïvËFÉüXkOðÕ7:ï~ʆ!ü²mû™F S1üO ɾ;pé W,ü=M >>€9 +@~=}Œ™ ^F¼’y^}v€Aš  "z±rd‘àwÖ*™ë’Û}^1˜q†= žÇ ?…Ov?)Vrõf\=MÜðºMØIyÎw8}Rxf˜\ìòZ‹ÙàLz^˜BÂ3dfU÷Éòk‰Ì¼àÎNŠ™58„ŽUîI’m™ ¼"ǎò¡\bUž$¼•ÄÞ*¡Y&H’ãZ{A Üt‚öÿZêâ~@àŠ]‚ïÿ‰]\‚ qEŽŒArš\]½ßҖh•€Ö"’‡]!9fBŠ[¶’ ¨Š  b^áʯ™DЙäϐ®&¦Z®&hê(dB:œžtbûW­SÙUé‘祴ßã¾H'ðJ[ޟšõ=MYLÎõòH‘‘‘A]!^ø͊oÿÚ¥–Ö%2í©øD¯›¯©U„¯¯½2ÓÒ»;˜Å÷·D'«eݴɂ¹ä ÎéøÔ§¯–ÑÔá!SFÇÃfÇ3:ãšè¥®Ì› õ;ÒíôŒÌ&#¯?ÃfÞÜ= ‡ µ‡ƒÿÌofÌáDKíó#M#ïO'QRµ0ú8ÃP (mÃ×Ùûæù•߸9pÿxßXèR$\ä&2äý×z%WZ$I°&÷}$ª¾÷áX*T}¤ÿ_ÆÉâ'1¶=}}‹c xd_x¼Âª^CÍ}¸Ÿ"Q3væÚ€°0œ‘ÃdÁÓ¶ò÷“ç†Ò«91Û/²€ ô8ŒªDHâo¤›»iEÌËs…á«U“‹…渭áί‰Á„K‡ÆO0§z»,â½ÝøÏ=}µ†c˜.*è¥á )ͦ›qì3P¢°]2é׃ã½ýcŸ\ÈÍ®þFTT°'#9ŸZ*1çx{ñ³aÇfßݸÂèŒ =}<¤…A¨|‰‹õ<ªaI£‰ è9Ÿºf[W·ÿñ\HŸÞæX®=}^$Ž‚¦‰¹= “tH²Mᘨꣶ¦ó¬Ãk¤ñ¨óªc‡¤«D£„£Ù²Cæ¤!$ˆâ£s²£¾ðãé´« «ï„¯ à¦q§„Ò´ I»É(§ø¬›àõS^C:ˆÃy­3qísŽù*Kcê cÜ~c· ª}€¤eÜÊ ã°ÓØš'Ó}ª‡"SŽ&ã:*$b¸¨aÇÁ7ð¥~_¨kY³m5½3 ¬ÖÂÿ ¼'f€ävžfwE¥ÿ¸›öcQL¤Ðý¯ÕÈ돂C$ݥእے^Ó0¬ýœ¼%åäÛ&1ó¾9;¡ëÃe‘±'ÏÑÅ"åœ'BØ2“àz´M·«Þ­Äž´„A7Ԁ ‹d§)Nl'‡¤¯=}d;yQ[?¯ÒmSªL+q­µ4-·´L¿ÇEX–è.àÅaŠÆ´ŠMµ>·”=}{üÏM¹ƚ+Œ%º6éÒ´AJëë›Û¬žN'Mí›áõ¡T7ÑÃBÿ75öÙÕÄÆæ ½ÞþéîÑn[qDø\?¹>‡I¹’ˆz‚Ëâ ©ØÚÌÀÁEújÍ듨@µE‚ïõ• ‘ÎÜìÎv¡ÝÎ]$û®Ê^ý$ÊPŒŒ 8 @íóûNl9ô=M™‹ÎØð‘O„Þz“ ÕX—q¼ÐÞÄh)¿àÆmWØHZHÝ~ª~¬Ži{v½ª6H¦ÚjƒkRÛUÖ)Ûô8= 1×z4wõ èûBPÑ Úú‘Yñýùòrï¶U~\Lª€mf÷âzös84c™É†æ¶Rœ“Œ> î$yÍ㐭 F#eÿcÉó®ëëɋŸ;‘É©‘%«A¬y4…¹æÄ~GgTÍçØ|ƒt¼ê'øŽ´ô…&rd{SÚ©–¾=}ÆâѼE"­´vU²/!øƒ‰päj®ŽÔ}–ËŸ2àiöªíÑ·)4,ҖìM‚÷5²üOã5JjÕ~}2͚¿9:]-Ñ üÄͰ^Ä͒€ùŸŸ€Takà ~•S'Ï7± Å˜5˜bzüáSÓð϶Ìa"M[ŒQ„@ÊùЂÔMD¢)LN±s“î±Jjé}‘|[|Q^ M¦^;Uˆq±¼[÷’~NR4€b4†˜ž"6áWù’û]4 sïS= –#S]3L4°,;C}['‚V)l@ŠØÒ>t=MvT0]™Ví¡ŽcE—"98‰/÷»Uñ<†ÅZ™Á"fcÐ]ª¸0h—ccC ¬“x2CN¸&J¸ÅÏÿÉäoÜå©û†æþÁhn¤»ÝÎÁœ5d!±‚¢IŌk GžàfâYd‡yœô…^~‡ûéÙVƋ¤Úæ7Ïrµ®¦0µÑ×ö=M¡¿|¼7É÷úWrÈÜ!úø~B†jà!ÿù‘¾=}¾ƒì™¢'˜àÛIøåõÜúwæüm9úœ]<è@]1Œ¢ ŸHôð£U)C]Z«HÓþäëUê˜ù_ 5#I—å3òvDÁ±¦¾Æ,tŏnKr7-©qO¸Ú0ï55P<•È·n–÷ixÖ§‚æ1xF€•!ðBú*4Èpµx¢–=Mâua†W (_ª¶+í/½ò­SÐ[úaƒõ~EIˆû ⥠Ö;3ü¨/9ºxg9xNˆ?—W8†>½˜Å …ßo:5èzw‰YxÑiPM„= vÀkÕ:ۑ‹0(¢è’L˜gƒÚi@GìßRŒ ÷B˜HÎ?ù:žVê¾éÔºÎ—ö¢M²ÜY‰ëï OƬ–í;Ç*N…Ð@΋= #fýòôWjs†…ꊉ9ع¡h“ú HÂÉ7ûâ YdH=M–û!~FÁ1EÈ%xGí‹ØtîšMIÆâßKٍÁp=}ÞÀ+þ£×P§gþ#‘*#yú£„|rºC¤f¤{¢T˂+»Ÿ¡b,£ç£‡›Œñ¬cƵsç¤pТû|ò2».aÊÓCº³s¾ËV‹J³. Ýó9¤_lgҳӳ䯬G3䱨OC%©%Î_³#»3%уYß'•ßÌëŽ{}»Â´ƒHZVôƒºÌkí nØ.­”šYV ÛOš…?W1[g;S£êX»£i÷¯‹ô=}B¦ã@»# þÙVŽlYچ…/übÜ~Y~/V0’{‰®éqŽ)r€ï»wÂþêØéH 4Þ« ŽésûÖ)ßh§«>%i ¦=}‘½–rﯝþG}9eº±«ºi]Yw.)õ§ó½ï=MîË1Å%rBEk°0€?±¿ð‡ˆÁòˆ…ŸUE֔ŒÓ8ZÕ½~ˆSÊÕ:Ä®•{ÉBƒj¨OˇR.èßýøïñ¬ik ÝÌ ñ7¥Fê­¡²øUŠC5uÄ͑m÷O}I…þ¸Fj¬í¦¨î§"¡ÆÛ= ôӃ;ãž=}iÆd@J%P§8¨jb«Q!¶¡ÄûŌ ì"6WWØ[ÒPgU•ѹâÇtTð/WÐ)í¾F.WäÝëõ£?8Û銪ëþËçeëA¶IâG_X5ñžÑ›N÷‘ L1šõÀR¨]rÈ^ü•â7eî”:¨ŒJ¨*G­™O¶¿þÏsœêSbýS«A ®­…¨‘¤%Ϫd¦dbf¨.«á"öÔJøèpø¸J±K«ýP•B͟(-FlÍí= øŸO…(Y-b~LKõŒ75Gí?!ø5:J‡øC5€iíQ¯õœdŽn­÷ƒýRƒì)%þÑ­WéÍû”ñ|Ü>ÚktP7–Øù1=}•SknfgÓ2UÚ\ï;n üѨ6tpcu¿µ‹I@æjN|§zviÈ>Ââ§6tÑîéJ4Յï÷)}ðy^ÏûA("û¹ž^ ô]Þ6ȼ<‹ •…©ýh¼Ï»@dWµŒ›ïëj‰=M½xvusÂB)tH÷!6J…ÜÅ8'6Ìÿ:HSó­úȶ¶6/î*9ȃ9'”vç¡MìÇÅ( ¶:ñW\‡k"1Oáƒ#aL¦öy}V'àØ"~”E*ÀjJ|Eœy))Ǿi#©Ús}pŒ,y›‚-ÜàO{ÎZÇEx%Ÿ³®]ÀØêjc?ؖo{x€¯ŠåöÂ=}vf'êþ0ìÂ=Mï(´‚¼uÜo3‚±»Ó"O¤]{= v†;ÁR™ŒõÞõ:ˆö«Ý<Œ6t‚Û,w¤6»öÓ4—¶ÓÔ@ãx‚†ì¡Û1vd†{\ϝ¦j3Þ) Šêu -ÎêTOÇTÆüÔ §m2f\ŠÚ?N*„| »„tæœ[«F¯„•šŒs 3±vÖW<ó®ðÐÖØ ó¦‚ä½»JLV2½ªK4¿â+èþ©õsò婓è"gŠ!ŽjW"žuwu* váo͎pQÎ= KÀt.’UA~~&ð€“ÜKޚ¹Æ¡úíp]…ÝN®Nr @ ¥…Ý”‚M1o~$ùÀS=}€A }ôÝCÀâ¬%ª£ÄC£#|Y~¢~Y~QV~Y~YX A‘_¡EùJ˜¢Æ~tâ~i#e¹_Áچz}k{’°±Ojìa9Á¶ÓsPåÈȹˆëÑÒæeT'%hË\º[T#„GqH:òÙ5>V†8äc)[H• ­à¿5kþ=}k¥–u jtKÀf~”t6.Ç㧕‚e+=M°„6·.¥<Ä#üT!K’—ˆ:NÚÈ._“v™—«•a^ÕbtñÏìCJà®ÀÌ> fåÜÎM]ýUD܀uïÜYn'(éëïهx mŽÌbCf>ÃЇ:=MUäè@ú€w{ê¨p ÈÇzËÕåöAèàˆk_ÆfË̝Q7‡^•"w}¢“•ÂWŸ!ÄܞÊ6¡Šã|úI¿›%_ˆÊÏ)ÇВÀ)R”a¡%(ÖBõ9ž3ݚ”َɃõu¸­Òµ!ƒ¿AÉgŠÛ2häq9hºõ Y6×®•¤¾«ΛS° ÎÛNW7bºTLvýp v8¼ë±Bmàb,Çâ¾êu/t0¾1ezÄ?Ù³JOa{«€4̑ïhEùt†ú@;øÑ9QÌ·žÈVç!US¸À§d¦ãÉ䣩sV~Ù¢Ü~Y0~Y~|V~˜á< ;ìE¾6ërh»H¾ä…=M¥¬z Lå¹~µ~¦‰çéu#¯G 5(>7,=MD·\ÈeîáQé­Ÿ3“êZlUy–Gˆ³=œUÎÜç:6#zVëފný9ÆÒ/Vó}=}eú$Öµ–;ÖT¦Šcu7.‰QºÒÁ4Ñ«r= hŒüô¾ŒEX:4‚¢4L¡Iq{À}id§I¹ÖøÉ o¢\wp=MMÈ\&QOÝíZÃw|˜ÁX“)ñ Gk·CЈ‹i¸}ÑMðâØE‚®Ï‹[5à€u0¹úœsˆÝdט¥æÊ½L*ä­ðÉ|—èö¤=  óñ@Ñyt2Ð÷ãN>9B¿E¹È¶—ü—¯/P;&~⊆ç‹Åçoþ)•ZΉT©ÐƎ4 ÖþfF‰@Ká^ºv÷±c(à¯~ËBå›üŸ? ´)òф%ˆø_Nb$QÆÓÏÂåt2“Ö§á!¬ä6ÚSÍ2¦Þᆒƒ™Ÿ,P@"‹§º/'”Å磢©(dA¸*YK·ïåÄÏÄ2>ޏ´ÁM':ÍóŽøèXAÝí±%Òø®ñbÃ׿²8yKÞ «y«ÄÉ3B)½Þ·AZgŠÿÎ+¢Vdq¼›2àj¿Ä@‹'ÒÂÿ3|-縁‹,ÊaK]‰&¡‹¡”*šë£Á=M¨$ «9œ'…{HçCˆ¦¦(ù­Æ”Ë@¾&@éTS€¹² R§¯@ð¥¾>/À²öôö3)8Õ³7,§aÿ¾mdü¹-V–V£n-Ó ÷/„Hø)pþÎnaµ1=MgÛy|QÝcTÁŒÞ½qa¬vYY:øÎ¿yXæeK¦Aî^õF¾Î ˜…9ÂUž„dà+…]Ä_â% ÜF;Å«Á£Žã³£­iY~Y~Y–<}Yz}Øqú~YP<‡GrZŸUÚgû)¢6„y×üÙil„›ô1“ð•_ öÂñ4Ÿ–-_AFçë5Õ9B7œ&­ê>÷< QiV¢M”%Ý®%؛¢¦°¡ýH,æ1¹Ä}~G0F±Éé]ÏÜEnÄà@—üýB¶°s—Úg]Äj ¾DµoˆiGÏÕÄÈy7î2ïôû=MiaÛWÂ>–T¨˜Ô9WZ‡nßοfO\€½ž Ù“YH/ÐÅÞñ|}–+àuª!xG6ÆN-? ’§Î?œÑu¨˜NÑ8]ÅYeáÚ¡qDøÁ®š¡ò±±ÔM’p‰—JžS1²uaŸv2þŸ3ˆrA^¡‹0¨rÛ3‹$»È¨tÌ+gaùÍ*s^Õ'fáDÏá·m@…ÓÙ᫆6Ë?¦ý´k"ºd!Bëá.‡’?ËÑ0åú×â"-É ¯œiTÿžÔ9þw-ÆâÌA= ¢. ü¥ÉCÆ´hz,¹Èòá< v6üH6%†…·oö<= É8ž×™¢5iz¢<ñ=  ©%X¼k •Éü'¡@(gྡྷ‚VÌm„q²ÜUmÈ ÑÑ)qlfíØB“”œ¿Ÿ3rYa¥/Á·XI³= V(OrË~¡Å?&-4œF;ÛnµÁp̄.ÌÆ H7Íˆ*%Õ²8t‡q0’nÜK$=}[%šÎÛùûìw¡íïßMËÿhžRøLIˆ¢x›*yóš°Ò8=M\€ôî{,ýA¨xDUE1TÒ7yyÖ¢àÁ1°ÛñãJ$ƒGéU!‡S¶n>›šÉMo>l¿ œ, µßþëBue}Ð*YÕݚþÜ€)…Ù¹áæ»vq‘(7ÊÞ_&’ 3!X&Bñ¡ÁŽG”"@¯ýXV.’TîH¾Re z0œF¹¨˜sßyf†à Ž˜JWº ’üZ:ráaŽŽf þÂUž“. žû⮲—ë!#w'¤É±3#¶U&Ÿ¹àk¬tÃÜÞ©T àëEr³});v³bÿÁek ;–qå3Ú®Û2(#Ïo!Ò©À·ækÔ÷i+Ä$»OéçƒôÌ%>èC‘Ð%½ø´7Ú­„€©Ä[|­„ޤw@¸c*³¤{/´ãžøáÿ²„ævËá;·ºã= ð¤ÿ‘m*ºŸøpªL5ß3ÕnžŠÖºž‰ef1¿›¸>¦ÜÂVdÙܾUƒü¹¿’q'^¤<ù:¤•3¤®rJæ|7ÛUÕ°šGer÷{!ܨéLIãþ=MÕK÷Èd0üìó8V¯?Ͷdõŏ2ð#W.”óÊ±'DZ¹iå}€»Ë9+$Ã. Ëm,¥zV4S\Î¥¥øÆƒ_øÛ·H)$‡ó3^¶¥ê©æ&ӏԫ%¤jã»-¬#f"V6ª0J Ã=}–(FáS”\ڋa–%?Aó“~¦¹±]f<ڋ¿(yäº{›j¼i—Ü$šªê+£*É»[ªÎÒ}e>¦ÙÓ0Ø;JüdåâîóÖ¦Õ(c}!®sU·QÔ*h>oƒå/Ì =}Ò$-.ä]Ä«rÒ#b%œSeÁïù<®B;£k»ôéƒK«äR˜ŽÔà‹¬v(/lÝÓ^ü¾‡z $¹t'?üÃÉ×r#zµv$ÜÚ¸] Jã.g;Åÿ>£Jx ^½ÿK­XÐmƒÑ5@ q4¢Þð½¥î+QìÔ\Ï7·×ÀÇN1Æ@Ì^l¹VÀ‡+´<õ^,ëò5¥y³W8GQÜ\±¥E/|G ÍL]¹ò/ÆìƒTÃÕE‘î_ù\4‹’™gá5Ëù<4\®kyéÇV"Ùü´Õ6×:òÅ\öø¬>RãéXí4ŒÄ&ïI…úéb_>,î øÎ»=œuþop“VoílfoY¶è/O íéXÝ(„îžÓèg7Ìq3ópŠÁš7‚,4 ÿ(´qüÇæ¶×· ¢àØÜ ­Ø4uC 2õÂi'Íâë>ö:uxõy•ÁêýC’ä—Fß^³aÄ-Q–òG2Gtˆ„\×böë rºueA8w÷Ðp/ãXšIðèWñ Ê= a*!ìòV²ÁEïô=MœZ; BG° Köq‚È=}òRuLÚ ŒëÌ<ñ (ŒÀÝ~žá°ñOC4…=MÝZK19ÂGµºþ |Æ]‰dö’0¹Ù N¸þuöÐ "†mx—s2šasŸþ= ×…²]’cÝ âoÁEÌɵË·½Ní…~åÌםÉ0 ÄU‹ýÌ*։2d‡ ­Û"7ÅÉj0f,xí G% ÚM…yÁØ¿2\h¶ÓىðiKös—×ÿ’ÚÀˆî pR<ûN$•è=}ËQ(}}V <±1aK.bŽ„m(©{B+þѼÄÙéü€Ü›ÍÑّ;*x8–Ta"¤áÖû'’¦¹†’8î—¨ö7 )5æ‰{Þn¥¾O¼ºès܃* 9;p­Âyý†K:Ù۔JÐím{† ª‡ ۅæÊƒ/P Ñ[,èæþ…1oõ²ŸYk¶&ï_Sã~¾@ʜX_Ò¡¡†.˜ŸsP4*ŒÚ lD£ßó»+êE%3û¨q—³WÀ%jæj”Ó÷r°êðž«Ïø.gJÀ4k9ç„L7 —@º&…a»w\·.ñÌ›éÊÁ¢Wj†•¬ËSðgš‚¶”4ÛyȬšÈj‘/Ôòär ÌÇÒ¸ ÷vӑ½á(ßx?1ô¼»ŸÐ¦p¨<;Ä<(æVSæÄ¾øÙ †Ñœ¿ïý<&þ©óÅÖº\z\›sڲʀpfnéœ[ êá9 pê= 3¥ýù#6›ÛÝ.2¨x?Öö#}¼¥¯[ÐcMTåoˆ¬ÔŸC³ú®Tîö'4ÅÛËå2êÅßù/õ9_;Ñi*gMí/âh;Ö4è ¹8&û×oÔb+hâÊüßpT[H$h¶ÀÏ!¡k²¹ø©¡„fÏ!¿„p¹¡n%¸®eÆÏï Dc;¨Fú[W쯭i#Þœ¹$H³—9­„šÔ¤Æû‘hªjà¨ÓFØÂ‡H–äpÓ²„ÏÒªæUdwâ®ÀÕäpÛ¦IlHfDÊL…ó­û©È&ûĬ5ÑÊe2§{xÀª ,Tãêf)3˛›Ó¥õfäê¿­ØdS=Mÿ³›Û©c”Áۏ®VÛk•'†Ò$Ž(Š2@äPu´'ºdVÐûhûæ ß.œ::9%%¼?ö¥mZ¹e=MbœC¢±/rÖ){ä¦ûgz&F‚ ffÐ[Ô®qp#öÎIå~Çy?£©¬=MS= ç¼-^·äCI£ 9ӷʰ’y/©ž´µ?”:ÑñWîá¶^n’+h8…Ǜ€éM§°'•MëJà5úñÿ\ñ©5Ò5e¼JlYm†ÇΌÃì9€ðÁ¿{íͯz6þú¢êÍu›çÆÌ(K'ç³ ¾ÂÕ×nAoí‘¼5…XÖ+T&­”Â4ÇLtB<^ÿ֖ðIf¢ÃÖS¨ö!y&,@Ù(|ÞImeCLh@ŸêHiY¼ˆ¡28^¹Þ7å\”qŽ[Ã<ÑH/=}¬òÜ(ÂÎÒüÝ 2Ý  û&AóAæ¢VUCÔn?K~ÁPÞµðàrHö^®ÅM‹V-ÁMã¸ðZôxF ?‡-ʋ6n …kÈ=M 6áüñLdXž—úØàÄ|çIâIÜiWdÎ=}ޚ¦= Pœ8½–6‘"zòþåÇswõµBò:d âˆÓKå¤"¾*a¤Í‹ÜôÀŽ½Éƒ|el{ ×°J×pc7÷°ßÆH0ÚYŽ™÷ O{+~xðSxÿwœÝÂÑåbvî“x#¼Ý~ü=M%îsµÚXéB,;V{¤B\Ýõ3®Í*^„8òÇ[T²<ƒ*›…yt¸Æ^3ˉ°¿_ñL¸S¡ÝX!ÿz”އdx®Rv»É™_i 8b“½V |¹¥Ðã¬KmmmEE¯Ú}‚ºC¦÷"""þþ£¶Ù¤MçØÙÙ9:Šԟ£˜F½¾îŸ: g¶¹&|e"–U€[ïJ¼&åqU³V›;}‘WÙÞì»cÁóeè9´v{&ى䱙$<»p®Í[u­O‡ ýuy?Ç6F Ñɶæ°Úý&0Ÿð Ò{<®‡UÔÉJâˉß.Ô2rL’ŽV:‡™š1Œ»q¶m[wÕψ=}w‰¿È@f Ùi–)ÍQX­œ@™AXà l‰‚;2ŒÇ³…ùæ{m¢š-€\åáJ>Ãç'_Js=}¥˜/{~YÐ†XŽZpY>‚Œ<~Yšaw5å(­ÜV¢lÿ[Ññ»–o$ÕMn%Œ7¦òñÚÀ:ÞsÊÐ1sÛó˜= 2 Ž‘ã>°®ü8úp€f!pWFûxnï‹* jþ¹i)8Î.v,羙_LåpRü4uL´ˆ*ý”ìwA Zƒf?áçxÏ{"kB‘Š>¯8 %žɘç ܨ¾½ÔZE8Až¼“}†ÈæYÁ¦a2IÁÝÀ…ìwlMèkh¼GÕ=M‘ÜB--x{ÔÌ /óä]=}e~ÎÔKjÉ=MŸê1eyÀGâÏfb(ä ÁÌMbÜãò]î^‘=Mþ'ÛîøO¨;?<Ñùojªlðuqmh=Mp ÍÿÞªÍxö½Úá®ÈöN’¼ ¼™4ÁÊJ^’›”-èõóš´asÒ¬) hœú¥árÑhŽ,&äù9a´&Ž= Î“Ú‚E¡|ú‰u-4ÛqNùÚ¿XïØ›z©DÛxYْùÞ»jRwˆÆn§…@X¤Ò–d²pÙ‰Šq²(‚‰bõ¢ È[r좇­ªžjJי’XVVú˜t©PÂÂx€RWluAte¢'žwèéžâV;¥»C²¥#$»)$o‹E9Ž‘²²p@’¼nOl}|6= F´Pt/™g߆à¼5ÕÈ~ïyl?vÄIö]ðj@qŒá¯e;'pÓ­N¹fÓϲvSà/fÓ²ž ;±«££$Ã'¸–RÝxÿ©i×ë. 5ÙvËPIü}ðfW?I Þ0v=}J »+(Ô´¾Çùiï/Dû½öTØioh»/hÔ¼>×ùj1„ûÁvTài oj¡ß3º‰,_Ô2‡8–ïÜ²ˆH–÷Ý2ˆX–ÿÞ²‰h–ÁpNrV -Œ&S¥Ë'¤Ã³#ô×0ÿ¢&‡=MYfš{˜â^A zŽ|˜!PjQ˜|XÂ^™ z{á@:Š z {â€:š zß{ØÂp.–zß|Øp>– úÁm*TÎâˆlQ|8Ú^• úÂ{x²˜( úB{xÒ˜0 úÂ|xò˜8 úB|x˜@  :ªœ:ºœ:Êœ:Úœ:êœ:ú ž~A–½R˜Á’X)XO {nA™© É é  ªÊê Ú¦VÓ¶VÔÆVÕÖVÖæV×öVØVÙV:$Ïž¼lí U6DÏÍþ¼ný‰Uz¤s¬€s´t¼€tÄùuÔv܀väwì€wôxü€xy €yz€ #¨É{'¸ {+ÈI{/؉{3èÉ|7ø Ú)BèÝY¥³)$»Ý¤¾œWÐIœÈ²ë삒œ_â‚r¢?âšp Öro:Ö"™l!|ڞ*ê›'ú›( ›)›jêŸgúŸh ŸiŸJ*—4uòíŒÐ à¹Ž#©£³©ÃqÍ¥0äyU‡ßRnà‰áR\‚‘ÞšAžrÁU2ÈžlAURÐžnÁVrØžpAV’àž2ª”Äg2µ…ðŸ,ê”ÌhR¹‚…Ÿ.*”Ôir½†Ÿ0j”Üj’Á‚† Ÿò²u*—Å ëòu:—É ì2uJ—Í íruZ—Ñ î²vj—Õ ïòvz—Y–’~Âý2vŠ—Ý ñrvš—á Â9ŽC££³«%óÔJ"ÎâW#Ãá+º…*Åa+څ2Çá,ú…:Éa,…BËá-:…JÍa-Z…RÏá.z…ZÑa.š…bÓá/º†jÕa/چr×á0ú†zÙa0†‚Ûá1:†ŠÝa1Z†’ßá2z†šáa2š†¢Ãâkº•*Åbkڕ2!ÕbpЉ–= œ‚!Û?âqʊ:–p–r–t–v–x–z–|–~Š^’¶§²«$£££cY~Y~Y~Y~Yš'ÙmP^uMO= mNP\qÎD-©}‹D/½=}‹C2­ D.¥Èøxóþà8øööÀ˜øôÐøK7=M½ J:=M I6!ÍLJ8-·òÜ Oòݘ/VrޜWÖrÜ¢ÇõlÃ>ß5ìÆ6¿•ìÄ@Ïì3M¼ > U =}aÌI>Q¬6íÐF•íÑPomÒH—UmÐô…ÎRb˜‘îRa”™Òb™‰Þ’bg;VjÕUfáÎOVhÑ®9ÿfšÿpðhZ„õNW€nPX|ñžPWù^Ðý¥¸¯Sd¦¼×Ód¤Â·sd¥º§ëE-ÄYÅ.ÉIۅ.Å]û…-³ÌwÓe±Ò‡se¯ÊŸóå²Î³Ä0Ýi{†0ß};†/âm‹0ÞgÅ1 ëûÓ­cË’~Y~Y¾fÓlÞ ¸ÇQEè6/’àr›W}l ÏytÛj§2¢[Õܑ…"Ÿê:l]K¥t$ˆ¨Y¸‹ƒ>$Œ§MÂÅ©lÁÏSP䪂¿ï 󠄚­ÔçØ´läÏÂT皳‚û×”[hJ¹D/<艺8Åÿ93ìå«2Ê=}³ÝeËñ7„U)ï½½_„v)s¼ét÷ŒInXëI‹ÓðB ïˆÝjöHBњMJwáP•ŒÖòD"‚,æPÙÇmúJãçêÁ1ÕÞLF—zT“gÇö›ï°(Kõå:ÁáBæL¹ýì9¸UP6mƶ|ûlmä!Ø00O/ü¼~{=}j}ٙé.ùwVÆAҊžü6rA¹0›°êE ú<ÅE&ú‹ìò¼š£j¶©£š² ~Y\ÝàbV~Y¢K~ ó~ùû^0MœYʜÈB©T*þ^\? „Z9eS†kÐU·<.Ÿ2ïŖ4Ìn7 muˆ0q°ñ˜ñ&É&ÉöW:“ÙY0Y0ª/§¯²ª°¨±©±)zêŠ-õhLÌE×ÉÆEÓWuJxL€árø‰6Ãî/î¸Ê.õu(üEÏô8ö= 6ð6p"}öIÑˆPƒøàCó.]„y#©U;l2ͳHh«Ö lT<ï¹ø¿ýµù½y‡z„ÙÞ<ŠÃ²òr­ÎLQKK‹×¼×Àx@w>JTëDqý¡¹qáXfÍ>wº—Z)ùjÇ.6µ¶Õ;÷-Ãö?ÒË®L« “N²O°–À=} à AÎ nÍ?=}ÝOýýOO*ɗJ¼qyþ ßzH¡©P€Ÿ€?<Ÿ¬ð&P= ËáÔÄÖa'k¸‡é·¬Î§$p!!p!ð$Ɓ1®OI;Šüî@ÓO;gÓ¬…#ÇÙÿäE’TìO™£$@:³“ä(>Ûzí0RHN =M   Rœ–>XþÛz‹† Ûªöt\ï£+|½ »XP÷QVÈû³Jº‘Æ+Y÷9Z}¥@¾ŠÝ= ÿˆcAܗ'£³æpóCèA^5£Ë)öt[zçHÍÞQá!+£³æpqE'¨”Z᪊™…‰2{ürÞn¬£ÔwYßÛä\7TÃa"“yRSIbâmiÖZñµƒ=M•ž £”œ2]šÑqøG}“Ò`});var o,l;function _(){var M=l.buffer;o=new Uint8Array(M)}function g(M){return Math.cos(M)}function f(M){return Math.exp(M)}var c=(M,B,q)=>o.copyWithin(M,B,B+q),u=M=>{s("OOM")},d=M=>{o.length,u()},S={b:g,a:f,c,d};function U(M){M.f()}var x={a:S},A,T,C,W,j;this.setModule=M=>{e.setModule(kt,M)},this.getModule=()=>e.getModule(kt),this.instantiate=()=>(this.getModule().then(M=>WebAssembly.instantiate(M,x)).then(M=>{const B=M.exports;A=B.g,T=B.h,C=B.i,W=B.j,j=B.k,l=B.e,_(),U(B),t()}),this.ready=new Promise(M=>{t=M}).then(()=>{this.HEAP=l.buffer,this.malloc=T,this.free=j,this.opus_frame_decoder_create=A,this.opus_frame_decode_float_deinterleaved=C,this.opus_frame_decoder_destroy=W}),this)}function at(e={}){at.errors||Object.defineProperties(at,{errors:{value:new Map([[-1,"OPUS_BAD_ARG: One or more invalid/out of range arguments"],[-2,"OPUS_BUFFER_TOO_SMALL: Not enough bytes allocated in the buffer"],[-3,"OPUS_INTERNAL_ERROR: An internal error was detected"],[-4,"OPUS_INVALID_PACKET: The compressed data passed is corrupted"],[-5,"OPUS_UNIMPLEMENTED: Invalid/unsupported request number"],[-6,"OPUS_INVALID_STATE: An encoder or decoder structure is invalid or already freed"],[-7,"OPUS_ALLOC_FAIL: Memory allocation has failed"]])}}),this._init=()=>new this._WASMAudioDecoderCommon(this).instantiate(this._EmscriptenWASM,this._module).then(c=>{this._common=c,this._inputBytes=0,this._outputSamples=0,this._frameNumber=0,this._input=this._common.allocateTypedArray(this._inputSize,Uint8Array),this._output=this._common.allocateTypedArray(this._outputChannels*this._outputChannelSize,Float32Array);const u=this._common.allocateTypedArray(this._channels,Uint8Array);u.buf.set(this._channelMappingTable),this._decoder=this._common.wasm.opus_frame_decoder_create(this._sampleRate,this._channels,this._streamCount,this._coupledStreamCount,u.ptr,this._preSkip,this._forceStereo)}),Object.defineProperty(this,"ready",{enumerable:!0,get:()=>this._ready}),this.reset=()=>(this.free(),this._init()),this.free=()=>{this._common.free(),this._common.wasm.opus_frame_decoder_destroy(this._decoder),this._common.wasm.free(this._decoder)},this._decode=c=>{if(!(c instanceof Uint8Array))throw Error("Data to decode must be Uint8Array. Instead got "+typeof c);this._input.buf.set(c);let u=this._common.wasm.opus_frame_decode_float_deinterleaved(this._decoder,this._input.ptr,c.length,this._output.ptr),d;return u<0&&(d="libopus "+u+" "+(at.errors.get(u)||"Unknown Error"),console.error(d),u=0),{outputBuffer:this._common.getOutputChannels(this._output.buf,this._outputChannels,u),samplesDecoded:u,error:d}},this.decodeFrame=c=>{let u=[];const d=this._decode(c);return d.error&&this._common.addError(u,d.error,c.length,this._frameNumber,this._inputBytes,this._outputSamples),this._frameNumber++,this._inputBytes+=c.length,this._outputSamples+=d.samplesDecoded,this._WASMAudioDecoderCommon.getDecodedAudioMultiChannel(u,[d.outputBuffer],this._outputChannels,d.samplesDecoded,this._sampleRate)},this.decodeFrames=c=>{let u=[],d=[],S=0,U=0;for(;Utypeof c=="number",i=e.sampleRate,r=e.channels,o=e.streamCount,l=e.coupledStreamCount,_=e.channelMappingTable,g=e.preSkip,f=e.forceStereo?1:0;if(r>2&&(!s(o)||!s(l)||!Array.isArray(_)))throw new Error("Invalid Opus Decoder Options for multichannel decoding.");return this._sampleRate=[8e3,12e3,16e3,24e3,48e3].includes(i)?i:48e3,this._channels=s(r)?r:2,this._streamCount=s(o)?o:1,this._coupledStreamCount=s(l)?l:this._channels-1,this._channelMappingTable=_||(this._channels===2?[0,1]:[0]),this._preSkip=g||0,this._forceStereo=r<=t&&r!=2?f:0,this._inputSize=32e3*.12*this._channels,this._outputChannelSize=120*48,this._outputChannels=this._forceStereo?2:this._channels,this._ready=this._init(),this}function We(e,t,s){return Math.min(s,Math.max(t,e))}const bt=self,Nt=new Map;bt.pendingStreams=Nt;const _e=new Map,Ht=new Map,ue=8e3,nr=1e4,or=5e3,ar=1e3,je=3e4,cr=5e3,Je="video/mp4",lr="application/vnd.apple.mpegurl";function ur(e){return e<0?1e3<<-e:1e3>>e}class hr{constructor(t,s){this.call=t,this.accountNumber=s,this._generation=0,this._retryCount=0,this._destroyed=!1,this._controllers=new Set,this._waitingForBuffer=new Set,this._timeouts=new Set,this._hlsWaitingForBuffer=[],this._hlsWaitingForChunk=new Map,this._pendingRejects=[],this.destroy=(i=new Error("destroyed"))=>{this._log("destroying rtmp stream",i),Nt.delete(this.call.id),this.clearClock(),this.clearDeadTimeout();for(const r of this._timeouts)clearTimeout(r);this._opusDecoder!==void 0&&this._opusDecoder.free();for(const r of this._controllers)r.close();for(const r of this._waitingForBuffer)r.close();for(const r of this._pendingRejects)r(i);this._destroyed=!0,this._generation=0,ye("rtmpStreamDestroyed",this.call.id)},this.onHlsTimeout=()=>{const i=this._log.bindPrefix("onHlsTimeout");if(i("hls playlist refetch timeout"),this._hlsWaitingForBuffer.length||this._hlsWaitingForChunk.size){i("still active (some fetch is pending)"),this.setDeadTimeout(this.onHlsTimeout,je);return}i("destroying due to inactivity"),this.destroy()},this.decodeOpus=this.decodeOpus.bind(this),this._log=Q("RTMP-"+(Date.now()+"").slice(-2)),this._log("constructor",t.id)}updateRtt(t){this._rtts.push(t)>10&&this._rtts.shift()}maybeAdjustBufferSize(){if(this._rtts.length<3)return;const t=this._log.bindPrefix("maybeAdjustBufferSize"),s=this._rtts.reduce((r,o)=>r+o,0)/this._rtts.length,i=Math.ceil(We(s*3,ue,nr)/this._chunkTime);if(t(`avg rtt=${s} target buffer size=${i}`),i!==this._bufferSize){const r=i-this._bufferSize;this._cutoff=this._cutoff.minus(this._chunkTime*r),this._bufferSize=i,t(`adjusted buffer size to ${i}`)}}async processChunk(t,s){return t?ir({chunk:t,seq:s,timestamp:et(s).multiply(this._chunkTime),opusTrackId:this._initChunk.opusTrackId,decodeOpus:ct&&this.decodeOpus}):new Uint8Array(0)}async fetchChunk(t,s){const i=this._log.bindPrefix("fetchChunk-"+t.toString());if(t.isNegative()){i.warn("negative time");return}if(!s&&this._lastRequestedTime!==void 0&&t.lesserOrEquals(this._lastRequestedTime)){i.warn("last requested time is greater or equals",this._lastRequestedTime.toString());return}this._lastRequestedTime=t,i(`starting fetch time=${t}`);const r=Date.now(),o=await J.invoke("requestRtmpPart",{dcId:this._dcId,accountNumber:this.accountNumber,request:{_:"inputGroupCallStream",call:this.call,time_ms:t.toString(),scale:this._scale,video_channel:qe,video_quality:ji}}),l=Date.now()-r;if(this.updateRtt(l),i(`ended fetch time=${t}, rtt=${l}`),!o){i.warn("no bytes");return}if(o.container!=="mp4")throw new Error("Invalid container");return N.parseBuffer(o.bytes.slice(o.contentOffset).buffer)}async generateInitChunk(t){this._initChunk||(this._initChunk=sr(t,{opusToFlac:ct}),this._initChunk.opusInitOptions&&await this.initOpusDecoder(),this._retryCount=0)}async initOpusDecoder(t=!1){if(this._decoderInitPromise){await this._decoderInitPromise;return}this._log("creating opus decoder"),this._opusDecoder!==void 0&&!t&&this._opusDecoder.free();const s=new at(this._initChunk.opusInitOptions);this._decoderInitPromise=s.ready,await this._decoderInitPromise,this._opusDecoder=s,this._log("opus decoder created")}async decodeOpus(t){return this._opusDecoder===void 0&&await this.initOpusDecoder(),this._opusDecoder.decodeFrame(t)}hasEnoughBuffer(){return!!this._initChunk&&this._bufferSize&&this._buffer.some(t=>!!t.segment)}sendBufferToController(t){this._log("sending buffer to controller"),t.enqueue(this._initChunk.data);for(const s of this._buffer){if(!s.segment)break;t.enqueue(s.segment)}}removeStaleChunks(){do{const t=this._buffer[0];if(t&&t.time.lt(this._cutoff))this._buffer.shift(),this._log("removing stale chunk",t.time.toString());else break}while(!0)}async _replenishBuffer(t=1,s=this._lastReplenishingPromise){const i=this._log.bindPrefix("replenishBuffer-"+this._replenishTempId++);this.removeStaleChunks();const r=this._generation,o=We(this._bufferSize-this._buffer.length,0,t);if(!o){i("skipping replenish - buffer full");return}const l=()=>this._destroyed||this._generation!==r,_=this._lastRequestedTime,g=[];i(`replenishing buffer chunksToFetch=${o} lastBufferedChunkTime=${_} bufferLength=${this._buffer.length}`);for(let c=1;c<=o;++c){const u=_.add(this._chunkTime*c),d={time:u};this._buffer.push(d);const S=async U=>{try{d.iso=await this.fetchChunk(u,U)}catch(x){i("error",x.type,u.toString());const A=async T=>{if(await Ct(T),!l())return S(!0)};if(x.type==="TIME_TOO_BIG"){if(U)throw new Error("stream ended");const T=await this.fetchState();if(l())return;const C=this.findChannel(T),W=u.minus(et(C.last_timestamp_ms)).add(this._chunkTime).toJSNumber();if(W<0)throw new Error("stream ended");return A(W)}else throw x}return d};g.push(S())}let f=await Promise.all(g);if(!l()&&(this.maybeAdjustBufferSize(),await s,!l())){if(f=f.filter(c=>c.time.gt(this._lastFlushedTime)),!f.length){i.warn("skipping flush - no new chunks");return}if(this._lastFlushedTime.notEquals(et.zero)&&f[0].time.minus(this._lastFlushedTime).notEquals(this._chunkTime)&&i.error(`chunks are not continuous, lastFlushed=${this._lastFlushedTime.toString()}, newChunks=${f[0].time.toString()}`),this._lastFlushedTime=f[f.length-1].time,f=f.filter(c=>c.iso?!0:(this._log.error("empty chunk?",c),!1)),ct){for(const c of this._hlsWaitingForBuffer)c();this._hlsWaitingForBuffer.length=0;for(const c of f){await this.prepareChunkForFlushing(c);const u=this._hlsWaitingForChunk.get(c.seq)||[];this._hlsWaitingForChunk.delete(c.seq),i(`sending chunk to waiters time=${c.time} seq=${c.seq}`);for(const d of u)d(c.segment)}}else{for(const c of f){await this.prepareChunkForFlushing(c),i(`sending chunk to controller time=${c.time} seq=${c.seq}`);for(const u of this._controllers)u.enqueue(c.segment)}for(const c of this._waitingForBuffer)this.sendBufferToController(c),this._controllers.add(c);this._waitingForBuffer.clear()}i("buffer replenished")}}replenishBuffer(...t){const s=this._lastReplenishingPromise,i=this._lastReplenishingPromise=(async()=>{const r=this._replenishBuffer(...t);try{const o=await r;return await s,o}catch(o){throw o}})();return this._bufferSize-this._buffer.length>0&&this._lastRequestedTime.geq(et.zero)?Promise.all([i,this.replenishBuffer()]).then(()=>{}):i}async prepareChunkForFlushing(t){this._initChunk||(this._log(`will add init chunk to time=${t.time.toString()}`),await this.generateInitChunk(t.iso));const s=this._lastChunkSeq++;t.seq=s,t.segment=await this.processChunk(t.iso,s)}async fetchState(){const t=H();let s=0,i;const r=()=>{if(s>3){t.reject(new Error("Failed to fetch state"));return}i&&(clearTimeout(i),this._timeouts.delete(i)),i=bt.setTimeout(()=>{s++,r()},1e3),this._timeouts.add(i),J.invoke("requestRtmpState",{call:this.call,accountNumber:this.accountNumber}).then(o=>{clearTimeout(i),t.resolve(o)}).catch(o=>{this._log.error("error fetching state",o),s++,r()})};return r(),t}clearClock(){clearInterval(this._clock),this._clock=void 0}setClock(){const t=this._log.bindPrefix("clock"),s=this._clock=bt.setInterval(()=>{this._time=this._time.add(this._chunkTime),this._cutoff=this._cutoff.add(this._chunkTime),this.notifyTime(),t(`tick ts=${this._time.toString()} cutoff=${this._cutoff.toString()}`),this.replenishBuffer().catch(i=>{this._destroyed||this._clock!==s||(t.error("error replenishing buffer",i),this._buffer.some(r=>r.segment)||this.handleError(i))})},this._chunkTime)}findChannel(t){const s=t.channels.find(i=>i.channel===qe);if(!s)throw R.error("no unified channel found",t),new Error("No unified channel found");return s}async _start(){const t=this._log.bindPrefix("start");t(`starting ${this.call.id} generation ${this._generation} -> ${this._generation+1}`,this),this.clearClock(),this._initChunk=void 0,this._lastChunkSeq=0,this._buffer=[],this._lastFlushedTime=et.zero,this._replenishTempId=0,this._lastReplenishingPromise=Promise.resolve(),this._rtts=[];const s=++this._generation,i=()=>this._generation===s&&!this._destroyed,[r]=await Promise.all([this.fetchState(),Ht.get(this.call.id)&&Ct(Math.max(0,Ht.get(this.call.id)-Date.now()))]);if(!i())return;Ht.delete(this.call.id);const o=this.findChannel(r);if(t(`started, last_ts=${o.last_timestamp_ms}, scale=${o.scale}`),this._time=et(o.last_timestamp_ms).minus(ar),this._lastRequestedTime=this._time,ct){const l=_e.get(this.call.id);l&&l.gt(this._time)&&(this._time=l)}this._cutoff=this._time.minus(ue),this._scale=o.scale,this._chunkTime=ur(this._scale),this._bufferSize=Math.ceil(ue/this._chunkTime),this._dcId=r.dcId,this.notifyTime(),this.setClock(),await this.replenishBuffer(Math.ceil(or/this._chunkTime))}start(){this._start().catch(t=>this.handleError(t))}notifyTime(){ct&&_e.set(this.call.id,this._time),ye("rtmpStreamTime",{callId:this.call.id,time:this._time.toString()})}handleError(t){if(this._destroyed)return!1;const s=this._log.bindPrefix("handleError");if(typeof t=="object"&&t&&typeof t.type=="string"){if(t.type.startsWith("FLOOD_WAIT")){const i=+t.type.split("_").pop();return Ht.set(this.call.id,Date.now()+i*1e3),this.start(),!0}if(t.type==="TIME_TOO_SMALL"||t.type==="TIME_INVALID")return s("rtmp stream need resync",t),this.start(),!0;if((t.type==="GROUPCALL_FORBIDDEN"||t.type==="VIDEO_CHANNEL_INVALID")&&this._retryCount<3)return s("retrying rtmp stream",t),this._retryCount+=1,this.start(),!0}s("rtmp stream error",t),this.destroy(t)}createStream(){const t=this._log.bindPrefix("createStream");let s;return new ReadableStream({start:i=>{t(`added rtmp stream controller call=${this.call.id} gen=${this._generation} destroyed=${this._destroyed}`),s=i,this._generation===0&&this.start(),this.clearDeadTimeout(),this.hasEnoughBuffer()?(this.sendBufferToController(i),this._controllers.add(i)):this._waitingForBuffer.add(i)},cancel:()=>{this._destroyed||(t("rtmp stream controller died",this.call.id),this._controllers.delete(s),this._waitingForBuffer.delete(s),this._controllers.size||this.setDeadTimeout(this.destroy,cr))}})}clearDeadTimeout(){this._deadTimeout&&(clearTimeout(this._deadTimeout),this._deadTimeout=void 0)}setDeadTimeout(t,s){this.clearDeadTimeout(),this._deadTimeout=bt.setTimeout(t,s)}generateHlsPlaylist(t,s=!1){const i=this._chunkTime/1e3,r=["#EXTM3U","#EXT-X-VERSION:7",`#EXT-X-TARGETDURATION:${Math.ceil(i)}`,`#EXT-X-MEDIA-SEQUENCE:${this._buffer[0]?.seq??0}`,"#EXT-X-INDEPENDENT-SEGMENTS",`#EXT-X-MAP:URI="${t}?hls=init"`];for(const o of this._buffer){if(!o.segment)break;r.push(`#EXTINF:${i},`,`${t}?hls=${o.seq}`)}return s&&r.push("#EXT-X-ENDLIST"),r.join(` `)}async getHlsPlaylist(t){const s=this._log.bindPrefix("getHlsPlaylist");return s("getting hls playlist"),this.setDeadTimeout(this.onHlsTimeout,je),this._generation!==0?this.generateHlsPlaylist(t):(this.start(),new Promise(i=>{const r=o=>{s("hls playlist fetch error, returning empty+end",o),i(this.generateHlsPlaylist(t,!0))};this._pendingRejects.push(r),this._hlsWaitingForBuffer.push(()=>{const o=this._pendingRejects.indexOf(r);o!==-1&&this._pendingRejects.splice(o,1),i(this.generateHlsPlaylist(t))})}))}getInitChunk(){return this._initChunk?.data}async getHlsChunk(t){const s=this._log.bindPrefix("getHlsChunk");s("getting hls chunk",t);const i=this._buffer.find(r=>r.seq===t);if(i&&i.segment)return i.segment;if(this._buffer.length&&t{const l=bt.setInterval(()=>{this._buffer.length&&t{clearInterval(l),o(f)},g=this._hlsWaitingForChunk.get(t)||[];g.push(f=>{const c=this._pendingRejects.indexOf(_);c!==-1&&this._pendingRejects.splice(c,1),clearInterval(l),r(f)}),this._pendingRejects.push(_),this._hlsWaitingForChunk.set(t,g)})}}async function fr(e,t,s){const i=JSON.parse(decodeURIComponent(t));let r=Nt.get(i.id);const o=s?.startsWith("hls="),l=await bt.clients.get(e.clientId),_=qt(l.url);if(r||(R("creating rtmp stream",i.id),r=new hr(i,_),Nt.set(i.id,r)),o){s=s.split("&t=")[0];const g=e.request.url.split("?")[0],f=s.slice(4);if(f==="playlist")return r.getHlsPlaylist(g).then(u=>new Response(u,{headers:{"Content-Type":lr}}));if(f==="init"){const u=r.getInitChunk();return u?new Response(u,{headers:{"Content-Type":Je}}):new Response("",{status:404})}const c=Number(f);return isNaN(c)?new Response("",{status:404}):r.getHlsChunk(c).then(u=>u?new Response(u,{headers:{"Content-Type":Je}}):new Response("",{status:404}))}return new Response(r.createStream(),{headers:{"Content-Type":"video/mp4"}})}function pr(e,t,s){const i=fr(e,t,s);e.respondWith(i)}function dr([e,t]){const s=Nt.get(e+"");s&&s.destroy(),ct&&t&&_e.delete(e)}const zt=()=>new Response("",{status:500,statusText:"Internal Server Error",headers:{"Cache-Control":"no-cache"}}),_r="application/x-mpegurl",gs=self;Q("HLS");const wt=Q("SW-HLS");function mr(e){return e?.mime_type===_r}class ys{constructor(){this.ongoingRequests=new Map}async performRequest(t,s){let i=this.ongoingRequests.get(t);i||this.ongoingRequests.set(t,i=s());const r=await i;return this.ongoingRequests.delete(t),r}}const $e=new ht("cachedHlsQualityFiles"),gr=new ys;async function yr(e,t,s){const i=H();e.respondWith(i);try{const r=t,o=await gs.clients.get(e.clientId),l=qt(o.url),_=await gr.performRequest(me(r),()=>wr(r,l));i.resolve(new Response(_))}catch(r){i.resolve(zt()),wt.error(r)}}async function wr(e,t){const i=await(await vr(e,t)).text();return await br(i,t)}function me(e){return`hls_quality_${e}`}async function vr(e,t){try{const s=await $e.getFile(me(e));return wt.info("using cached quality file",e),s}catch{wt.info("fetching quality file",e);const s=await J.invoke("downloadDoc",{docId:e,accountNumber:t});return $e.saveFile(me(e),s),s}}async function br(e,t){const s="mtproto:(\\d+)",i=e.match(new RegExp(s));if(!i)throw new Error("Wrong Hls quality file format");const r=i[1];if(wt.info("targetDocId",r),!r)throw new Error("Wrong Hls quality file format");const o=await J.invoke("requestDoc",{docId:r,accountNumber:t}),l={docId:r,dcId:o.dc_id,size:o.size,mimeType:o.mime_type},_=`hls_stream/${encodeURIComponent(JSON.stringify(l))}`,g=new URL(_,location.origin).toString();return e.replace(new RegExp(s,"g"),g)}const ws="Time-Cached",Fr=24*60*60,be=new ht("cachedHlsStreamChunks"),Sr=new ys;async function Ur(e,t){const s=[];let i=0;for(const l of t){const _=await Sr.performRequest(Fe(e,l),()=>Mr(e,l));i+=_.length,s.push(_)}if(s.length===1)return s[0];const r=new Uint8Array(i);let o=0;for(const l of s)r.set(l,o),o+=l.length;return r}async function Mr(e,t){try{const s=Fe(e,t),i=await be.getFile(s,"blob");return await Kt(i)}catch{const{bytes:s}=await J.invoke("requestFilePart",{...e,...t});return Tr(s,e,t),s}}function Fe(e,t){return`${e.accountNumber}-${e.docId}?offset=${t.offset}&limit=${t.limit}`}async function Tr(e,t,s){const i=Fe(t,s),r=new Response(e,{headers:{"Content-Length":""+e.length,"Content-Type":"application/octet-stream",[ws]:""+(Date.now()/1e3|0)}});await be.save(i,r)}async function kr(){await Ct(2e4),He(),setInterval(He,18e5)}function He(){return be.timeoutOperation(async e=>{const t=await e.keys(),s=Date.now()/1e3|0;await Promise.all(t.map(async i=>{const r=await e.match(i);if(!r)return;const o=+r.headers.get(ws);o&&(o+Fr>s||(wt("deleting cached stream chunk",i.url),await e.delete(i)))}))})}const xt=4096,ot=1024*1024;function xr(e,t){const s=Math.floor(e/xt)*xt,i=(Math.floor(t/xt)+1)*xt,r=Math.floor(e/ot)*ot,o=(Math.floor(e/ot)+1)*ot,l=Math.min(o,i),_=l-s,g=Ve(_),f=Math.max(l-g,r),c=[{offset:f,limit:g}];let u=o;for(;ut);)c.push({offset:u,limit:ot}),u+=ot;if(u<=t){const U=t-u+1,x=Ve(U);c.push({offset:u,limit:x})}const d=c[c.length-1],S=d.offset+d.limit-1;return{alignedLowerBound:f,alignedUpperBound:S,ranges:c}}function Ve(e){return Math.max(2**Math.ceil(Math.log2(e)),xt)}const Pr=self;async function Er(e,t,s){const i=H();e.respondWith(i);try{const{docId:r,dcId:o,size:l,mimeType:_}=JSON.parse(decodeURIComponent(t)),g=ls(e.request.headers.get("Range")),f=await Pr.clients.get(e.clientId),c=qt(f.url),[u,d]=g,{ranges:S,alignedLowerBound:U}=xr(u,d),x=await Ur({docId:r,dcId:o,accountNumber:c},S),A={"Accept-Ranges":"bytes","Content-Range":`bytes ${g[0]}-${g[1]}/${l||"*"}`,"Content-Length":`${d-u+1}`};A["Content-Type"]=_;const T=x.slice(u-U,d-U+1);i.resolve(new Response(T,{status:206,statusText:"Partial Content",headers:A}))}catch(r){i.resolve(zt()),wt.error(r)}}let vs;function Ir(){return vs}function Ar(e){return vs=e}const Cr="mtproto:",Br=1e6,Dr=1280,Or=720;function Rr(e){let t=Nr(e);if(Ir().IS_AV1_SUPPORTED||(t=t.filter(i=>i.codec!=="av01")),!t.length)return null;t.sort((i,r)=>i.bandwidth-r.bandwidth);let s=`#EXTM3U `;for(const i of t){const{w:r,h:o,bandwidth:l,url:_}=i;s+=`#EXT-X-STREAM-INF:BANDWIDTH=${l},RESOLUTION=${r}x${o} `,s+=_+` `}return s+=` #EXT-X-ENDLIST`,s}function Nr(e){if(!e?.length)return[];const t=Lr(e),s=qr(e);return Object.entries(t).map(([i,r])=>{const{w:o=Dr,h:l=Or,duration:_=0,video_codec:g}=r,{size:f}=e.find(u=>u.id.toString()===i),c=(_>0?f/_*8:Br)|0;return{id:i,w:o,h:l,duration:_,bandwidth:c,url:s[i],codec:g}})}function Lr(e){const t={};for(const s of e){const i=s?.attributes?.find(r=>r._==="documentAttributeVideo");i&&(t[s.id]=i)}return t}function qr(e){const t={};for(const s of e)mr(s)&&(t[Wr(s)]=zr(s));return t}function zr(e){return`hls_quality_file/${e.id}`}function Wr(e){const t=e.attributes?.find(i=>i._==="documentAttributeFilename");return(e.file_name||t?.file_name)?.slice(Cr.length)}async function jr(e,t,s){const i=H();e.respondWith(i);try{const r=JSON.parse(decodeURIComponent(t)),o=await gs.clients.get(e.clientId),l=qt(o.url),_=r.location?.id,g=await J.invoke("requestAltDocsByDoc",{docId:_,accountNumber:l});if(!g)throw new Error("No alt docs found for document");const f=Rr(g);if(!f)throw new Error("Failed to create video source for hls streaming");i.resolve(new Response(f))}catch(r){i.resolve(zt()),wt.error(r)}}const Jr=new ht("cachedBackgrounds");function $r(e){const t=e.request.url.match(/backgrounds.*/)[0];if(!t){e.respondWith(zt());return}const s=H();e.respondWith(s),(async()=>{const i=await Jr.getFile(t,"blob");s.resolve(new Response(i,{status:200}))})()}Q("SW-mtproto-bug",vt.None);const R=Q("SW",vt.Error|vt.Debug|vt.Log|vt.Warn,!0),it=self;let St;const ge=()=>St;let Yt;const ye=(...e)=>{ve().then(t=>{t.forEach(s=>{J.invokeVoid(...e,s)})})};R("init");const Hr=e=>{const t=new MessageChannel;J.attachPort(St=t.port1),J.invokeVoid("port",void 0,e,[t.port2]);const s=new MessageChannel;Ot.attachPort(Yt=s.port1),J.invokeVoid("serviceCryptoPort",void 0,e,[s.port2])},Vr=e=>{!rt.size&&!St&&(R("sending message port for mtproto"),Hr(e))},bs=e=>{if(R("window connected",e.id,"windows before",rt.size),e.frameType==="none"){R.warn("maybe a bugged Safari starting window",e.id);return}R("windows",Array.from(rt)),J.invokeVoid("hello",void 0,e),Vr(e),rt.set(e.id,e),zi(e)},J=new Ai;J.addMultipleEventsListeners({environment:e=>{Ar(e)},notificationsClear:xi,toggleStorages:({enabled:e,clearWrite:t})=>{ht.toggleStorage(e,t)},pushPing:(e,t)=>{Ei(e,t)},hello:(e,t)=>{bs(t)},shownNotification:Ii,leaveRtmpCall:dr,toggleStreamInUse:pi,toggleCacheStorage:e=>{ht.temporarilyToggle(e)},toggleUsingPasscode:e=>{Ut.resolveDeferred(e.isUsingPasscode),yt.save(e.isUsingPasscode?e.encryptionKey:null)},saveEncryptionKey:e=>{yt.save(e)}});const{onDownloadFetch:Yr,onClosedWindows:Kr}=Oi(J);ve().then(e=>{R(`got ${e.length} windows from the start`),e.forEach(t=>{bs(t)})});const rt=new Map;self.connectedWindows=rt;Ci(J,void 0,e=>{if(R("something has disconnected",e),!(e instanceof WindowClient)||!rt.has(e.id)){R.warn("it is not a window");return}rt.delete(e.id),R("window disconnected, left",rt.size),rt.size||(R.warn("no windows left"),yt.resetDeferred(),Ut.resetDeferred(),St&&(J.detachPort(St),St=void 0),Yt&&(Ot.detachPort(Yt),Yt=void 0),Kr())});kr();const Gr=e=>{if(!ct&&e.request.url.indexOf(location.origin+"/")===0&&e.request.url.match(/\.(js|css|jpe?g|json|wasm|png|mp3|svg|tgs|ico|woff2?|ttf|webmanifest?)(?:\?.*)?$/))return e.respondWith(Ns(e));try{const[t,s]=e.request.url.split("/").slice(-2),[i,r]=s.split("?");switch(t){case"stream":{fi(e,i,r);break}case"d":case"download":{Yr(e,i);break}case"share":{Wi(e,i);break}case"ping":{e.respondWith(new Response("pong"));break}case"rtmp":{pr(e,i,r);break}case"hls":{jr(e,i,r);break}case"hls_quality_file":{yr(e,i,r);break}case"hls_stream":{Er(e,i,r);break}case"backgrounds":{$r(e);break}}}catch(t){R.error("fetch error",t),e.respondWith(zt())}},Fs=()=>{it.onfetch=Gr};it.addEventListener("install",e=>{R("installing"),e.waitUntil(it.skipWaiting().then(()=>R("skipped waiting")))});it.addEventListener("activate",e=>{R("activating",it),e.waitUntil(it.caches.delete(ts).then(()=>R("cleared assets cache"))),e.waitUntil(it.clients.claim().then(()=>R("claimed clients")))});it.onoffline=it.ononline=Fs;Fs(); //# sourceMappingURL=sw-Dn5v51JD.js.map