@vindral/web-sdk 4.1.1 → 4.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{Cx0ZKpcT.js → C-MEaX21.js} +1 -1
- package/{DWjXKRl8.js → CI-d-Lzb.js} +1 -1
- package/{B3oxL4M1.js → ZD9OGvpf.js} +3074 -3020
- package/cast-sender.d.ts +14 -0
- package/core.d.ts +14 -0
- package/core.js +1 -1
- package/legacy.d.ts +18 -1
- package/legacy.es.js +2950 -2886
- package/legacy.umd.js +9 -9
- package/package.json +1 -1
- package/player.d.ts +23 -2
- package/player.js +540 -502
- package/react.d.ts +23 -2
package/legacy.umd.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
(function(R,h){typeof exports=="object"&&typeof module!="undefined"?h(exports):typeof define=="function"&&define.amd?define(["exports"],h):(R=typeof globalThis!="undefined"?globalThis:R||self,h(R.Vindral={}))})(this,function(R){"use strict";var BR=Object.create;var Ao=Object.defineProperty,UR=Object.defineProperties,FR=Object.getOwnPropertyDescriptor,nR=Object.getOwnPropertyDescriptors;var os=Object.getOwnPropertySymbols;var Tr=Object.prototype.hasOwnProperty,yr=Object.prototype.propertyIsEnumerable;var ve=(R,h)=>(h=Symbol[R])?h:Symbol.for("Symbol."+R),Qt=R=>{throw TypeError(R)},eo=Math.pow,ls=(R,h,u)=>h in R?Ao(R,h,{enumerable:!0,configurable:!0,writable:!0,value:u}):R[h]=u,S=(R,h)=>{for(var u in h||(h={}))Tr.call(h,u)&&ls(R,u,h[u]);if(os)for(var u of os(h))yr.call(h,u)&&ls(R,u,h[u]);return R},O=(R,h)=>UR(R,nR(h)),wr=(R,h)=>Ao(R,"name",{value:h,configurable:!0});var br=(R,h)=>{var u={};for(var W in R)Tr.call(R,W)&&h.indexOf(W)<0&&(u[W]=R[W]);if(R!=null&&os)for(var W of os(R))h.indexOf(W)<0&&yr.call(R,W)&&(u[W]=R[W]);return u};var bQ=R=>{var h;return[,,,BR((h=R==null?void 0:R[ve("metadata")])!=null?h:null)]},fr=["class","method","getter","setter","accessor","field","value","get","set"],EF=R=>R!==void 0&&typeof R!="function"?Qt("Function expected"):R,sR=(R,h,u,W,V)=>({kind:fr[R],name:h,metadata:W,addInitializer:m=>u._?Qt("Already initialized"):V.push(EF(m||null))}),Tt=(R,h)=>ls(h,ve("metadata"),R[3]),fQ=(R,h,u,W)=>{for(var V=0,m=R[h>>1],Z=m&&m.length;V<Z;V++)h&1?m[V].call(u):W=m[V].call(u,W);return W},XA=(R,h,u,W,V,m)=>{var Z,P,q,sA,f,_=h&7,le=!!(h&8),gA=!!(h&16),RA=_>3?R.length+1:_?le?1:2:0,hF=fr[_+5],SF=_>3&&(R[RA-1]=[]),hs=R[RA]||(R[RA]=[]),PA=_&&(!gA&&!le&&(V=V.prototype),_<5&&(_>3||!gA)&&FR(_<4?V:{get[u](){return U(this,m)},set[u](kA){return l(this,m,kA)}},u));_?gA&&_<4&&wr(m,(_>2?"set ":_>1?"get ":"")+u):wr(V,u);for(var HQ=W.length-1;HQ>=0;HQ--)sA=sR(_,u,q={},R[3],hs),_&&(sA.static=le,sA.private=gA,f=sA.access={has:gA?kA=>aR(V,kA):kA=>u in kA},_^3&&(f.get=gA?kA=>(_^1?U:I)(kA,V,_^4?m:PA.get):kA=>kA[u]),_>2&&(f.set=gA?(kA,IB)=>l(kA,V,IB,_^4?m:PA.set):(kA,IB)=>kA[u]=IB)),P=(0,W[HQ])(_?_<4?gA?m:PA[hF]:_>4?void 0:{get:PA.get,set:PA.set}:V,sA),q._=1,_^4||P===void 0?EF(P)&&(_>4?SF.unshift(P):_?gA?m=P:PA[hF]=P:V=P):typeof P!="object"||P===null?Qt("Object expected"):(EF(Z=P.get)&&(PA.get=Z),EF(Z=P.set)&&(PA.set=Z),EF(Z=P.init)&&SF.unshift(Z));return _||Tt(R,V),PA&&Ao(V,u,PA),gA?_^4?m:PA:V},i=(R,h,u)=>ls(R,typeof h!="symbol"?h+"":h,u),to=(R,h,u)=>h.has(R)||Qt("Cannot "+u),aR=(R,h)=>Object(h)!==h?Qt('Cannot use the "in" operator on this value'):R.has(h),U=(R,h,u)=>(to(R,h,"read from private field"),u?u.call(R):h.get(R)),o=(R,h,u)=>h.has(R)?Qt("Cannot add the same private member more than once"):h instanceof WeakSet?h.add(R):h.set(R,u),l=(R,h,u,W)=>(to(R,h,"write to private field"),W?W.call(R,u):h.set(R,u),u),I=(R,h,u)=>(to(R,h,"access private method"),u);var GQ=(R,h,u,W)=>({set _(V){l(R,h,V,u)},get _(){return U(R,h,W)}});var r=(R,h,u)=>new Promise((W,V)=>{var m=q=>{try{P(u.next(q))}catch(sA){V(sA)}},Z=q=>{try{P(u.throw(q))}catch(sA){V(sA)}},P=q=>q.done?W(q.value):Promise.resolve(q.value).then(m,Z);P((u=u.apply(R,h)).next())}),lA=function(R,h){this[0]=R,this[1]=h},it=(R,h,u)=>{var W=(Z,P,q,sA)=>{try{var f=u[Z](P),_=(P=f.value)instanceof lA,le=f.done;Promise.resolve(_?P[0]:P).then(gA=>_?W(Z==="return"?Z:"next",P[1]?{done:gA.done,value:gA.value}:gA,q,sA):q({value:gA,done:le})).catch(gA=>W("throw",gA,q,sA))}catch(gA){sA(gA)}},V=Z=>m[Z]=P=>new Promise((q,sA)=>W(Z,P,q,sA)),m={};return u=u.apply(R,h),m[ve("asyncIterator")]=()=>m,V("next"),V("throw"),V("return"),m},Qo=R=>{var h=R[ve("asyncIterator")],u=!1,W,V={};return h==null?(h=R[ve("iterator")](),W=m=>V[m]=Z=>h[m](Z)):(h=h.call(R),W=m=>V[m]=Z=>{if(u){if(u=!1,m==="throw")throw Z;return Z}return u=!0,{done:!1,value:new lA(new Promise(P=>{var q=h[m](Z);q instanceof Object||Qt("Object expected"),P(q)}),1)}}),V[ve("iterator")]=()=>V,W("next"),"throw"in h?W("throw"):V.throw=m=>{throw m},"return"in h&&W("return"),V},rA=(R,h,u)=>(h=R[ve("asyncIterator")])?h.call(R):(R=R[ve("iterator")](),h={},u=(W,V)=>(V=R[W])&&(h[W]=m=>new Promise((Z,P,q)=>(m=V.call(R,m),q=m.done,Promise.resolve(m.value).then(sA=>Z({value:sA,done:q}),P)))),u("next"),u("return"),h);var ae=(R,h,u)=>{if(h!=null){typeof h!="object"&&typeof h!="function"&&Qt("Object expected");var W;u&&(W=h[ve("asyncDispose")]),W===void 0&&(W=h[ve("dispose")]),typeof W!="function"&&Qt("Object not disposable"),R.push([u,W,h])}else u&&R.push([u]);return h},oe=(R,h,u)=>{var W=typeof SuppressedError=="function"?SuppressedError:function(Z,P,q,sA){return sA=Error(q),sA.name="SuppressedError",sA.error=Z,sA.suppressed=P,sA},V=Z=>h=u?new W(Z,h,"An error was suppressed during disposal"):(u=!0,Z),m=Z=>{for(;Z=R.pop();)try{var P=Z[1]&&Z[1].call(Z[2]);if(Z[0])return Promise.resolve(P).then(m,q=>(V(q),m()))}catch(q){V(q)}if(u)throw h};return m()};var He,qQ,de,WB,cA,Ye,st,Ot,pB,zt,_Q,$Q,DB,io,Pt,jt,Qe,Ee,qt,_t,ZB,AA,$t,xe,ge,Ai,ei,NA,ot,lt,ti,In,wB,TB,CA,Gr,Mr,vr,Lr,cn,Cn,Hr,gF,Rn,Yr,xr,_B,$B,AU,eU,vA,OA,nA,Ui,rt,Xe,AQ,Xr,Bo,Ne,Fi,ni,tU,QU,si,iU,BU,me,ai,UU,FU,oi,eQ,Kr,Uo,Ie,li,nU,ri,sU,aU,oU,di,Sn,tQ,Or,Fo,Et,lU,We,QQ,iQ,BQ,pe,rU,UQ,De,Jn,iA,IF,rs,MQ,ds,yt,Ei,gi,Ke,Vn,zA,jA,FQ,un,Oe,Ii,EA,zr,Pr,jr,qr,_r,$r,Ad,ed,td,Qd,ci,EU,gU,SA,IU,Ci,Ri,cU,kn,id,Nn,Si,Ji,gt,nQ,mn,sQ,ce,bA,CU,RU,ie,hU,SU,ui,JU,Wn,Bd,aQ,VU,ki,uU,Ni,kU,oQ,It,dB,cr,mi,NU,Wi,lQ,ct,Ct,Rt,Ya,rQ,Cr,pi,mA,Di,Zi,xa,wi,cF,Rr,hr,Sr,Jr,ze,qA,dQ,EQ,Ti,Ze,Es,EB,Vr,ur,kr,Nr,Ce,mU,gQ,yi,bi,JA,Ud,Fd,fi,gs,Is,cs,CF,Be,WU,IQ,Gi,pU,fA,vQ,LQ,ht,Pe,Mi,cQ,je,vi,Li,pn,nd,St,Jt,CQ,DU,ZU,Dn,Zn,sd,qe,Hi,wU,_A,we,RQ,Ue,TU,wn,yU,no,Re,hQ,_e,Te,bU,so,fU,Vt,GU,MU,vU,Tn,ad,LU,Yi,HU,xi,YU,ao,xU,ye,XU,KU,bn,od,fn,ut,SQ,OU,zU,PU,JQ,oo,ld,Gn,jU,kt,Ki,mr,VQ,uQ,kQ,Nt,Pa,Oi,Cs,NQ,qU,Mn,rd,_U,vn,dd,Ln,Pi,ji,$U,AF,Wr,pr,Dr,qi,_i,mQ,ZA,he,Se,mt,$i,eF,tF,$e,LA,Rs,RF,Ed,lo,wA,HA,Je,WQ,oA,Wt,QF,iF,Hn,AB,YA,gd,eB,BF,tB,Id,cd,Cd,Rd,ro,At,pQ,Yn,hd,QB,pt,iB,fe,BB,et,UB,FB,nB,xn,Xn,Kn,Sd,Zt,UF,Ge,TA,DQ,Fe,Jd,gB,Vd,jn,$,FF,nF,sF,wt,oB,ud,kd,qn,ZQ,$A,wQ,lB,Nd,md;const h=Q=>{switch(Q){case"h264":case"av1":return"video";case"aac":case"opus":case"mp3":return"audio";case"webvtt":return"text";default:throw new Error("Unknown codec")}};class u{constructor(A){i(this,"maxSize",0);i(this,"size",0);i(this,"buffers",[]);i(this,"_borrowedBuffers",0);i(this,"get",A=>{const e=this.buffers.shift();return this._borrowedBuffers++,this.size<A||!e?(this.buffers=[],this.size=A,new ArrayBuffer(A)):e});i(this,"reclaim",A=>{this._borrowedBuffers=Math.max(0,this._borrowedBuffers-1),!(A.byteLength<this.size)&&(this.buffers.length>=this.maxSize||this.buffers.push(A))});this.maxSize=A}get bufferSize(){return this.size}get poolSize(){return this.buffers.length}get borrowedBuffers(){return this._borrowedBuffers}}function W(Q,A){if(!Q)throw new Error(A)}const V=()=>{};class m{constructor(){i(this,"promise");i(this,"resolved");i(this,"resolve");i(this,"reject");i(this,"pending",!0);this.promise=new Promise((A,e)=>{this.resolve=t=>{this.pending=!1,this.resolved=t,A(t)},this.reject=t=>{this.pending=!1,e(t)}}),this.promise.catch(V)}static resolved(A){const e=new m;return e.resolve(A),e}static fromPromise(A){const e=new m;return e.promise=A,A.then(t=>{e.pending=!1,e.resolved=t},t=>{e.pending=!1,e.reject(t)}),e}}class Z{constructor(A=50){i(this,"maxSize");i(this,"values",[]);i(this,"push",A=>{this.isFull()&&this.pop(),this.values.push(A)});i(this,"clear",()=>void(this.values=[]));i(this,"pop",()=>this.values.shift());i(this,"peekFirst",()=>this.values[0]);i(this,"peekLast",()=>this.values[this.values.length-1]);i(this,"isFull",()=>this.values.length>=this.maxSize);i(this,"isEmpty",()=>this.values.length===0);i(this,"items",()=>this.values);i(this,"filterPop",A=>{for(;this.peekFirst()&&!A(this.peekFirst());)this.pop()});this.maxSize=A}}function P(Q){const A=new q(Q);return[A,A]}class q{constructor(A){o(this,He);o(this,qQ,new m);o(this,de);o(this,WB,!1);l(this,He,new Z(A))}isFull(){return U(this,He).isFull()}close(){var A;(A=U(this,de))==null||A.resolve(),l(this,WB,!0)}abort(A){var e,t;(e=U(this,de))==null||e.promise.catch(V),(t=U(this,de))==null||t.reject(A)}push(A){return r(this,null,function*(){var e;U(this,He).isFull()&&(yield U(this,qQ).promise),U(this,He).push(A),(e=U(this,de))==null||e.resolve(),l(this,de,new m)})}pop(){return r(this,null,function*(){var A;for(;!(U(this,WB)&&U(this,He).isEmpty());){const e=U(this,He).pop();if(e)return U(this,qQ).resolve(),l(this,qQ,new m),e;U(this,de)||l(this,de,new m),yield(A=U(this,de))==null?void 0:A.promise}})}start(A){}pull(A){return r(this,null,function*(){const e=yield this.pop();e?A.enqueue(e):A.close()})}cancel(A){this.abort(new Error(A))}next(){return r(this,null,function*(){const A=yield this.pop().catch(()=>{});return A?{done:!1,value:A}:{done:!0,value:void 0}})}return(){return this.close(),Promise.resolve({done:!0,value:void 0})}[Symbol.asyncIterator](){return this}}He=new WeakMap,qQ=new WeakMap,de=new WeakMap,WB=new WeakMap;function sA(Q){const A=atob(Q),e=new Uint8Array(A.length);for(let t=0;t<A.length;t++)e[t]=A.charCodeAt(t);return e.buffer}function f(Q){return typeof BigInt=="function"?BigInt(Q):Q}class _{constructor(A,e=0){i(this,"buffer");i(this,"bytes");i(this,"bitOffset");i(this,"peekBit",()=>this.getBit(this.bytes,this.bitOffset));i(this,"readBit",()=>{const A=this.peekBit();return this.bitOffset++,A});i(this,"readBits",A=>{let e=0;for(let t=0;t<A;t++)e=e<<1|(this.getBit(this.bytes,this.bitOffset++)?1:0);return e});i(this,"readSignedExpGolomb",()=>{const A=this.readUnsignedExpGolomb();return A&1?(A+1)/2:-(A/2)});i(this,"readUnsignedExpGolomb",()=>{let A=0;for(;this.getBit(this.bytes,this.bitOffset++)===0;)A++;let e=1<<A;for(let t=A-1;t>=0;t--)e|=this.getBit(this.bytes,this.bitOffset++)<<t;return e-1});i(this,"getBit",(A,e)=>A[e>>3]>>7-(e&7)&1);this.buffer=A,this.bytes=new Uint8Array(this.buffer),this.bitOffset=e}}function le(){const Q=self.MediaSource,A=self.ManagedMediaSource;return Q!=null?Q:A}const gA=new RegExp("(android|bbd+|meego).+mobile|avantgo|bada/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)/|plucker|pocket|psp|series(4|6)0|symbian|treo|up.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/","i"),RA=navigator.userAgent.toLowerCase(),hF=gA.test(RA),SF=()=>{const Q=document.createElement("video");return Q.canPlayType("application/vnd.apple.mpegURL")!==""||Q.canPlayType("audio/mpegurl")!==""},hs=()=>{try{if(typeof WebAssembly=="object"&&typeof WebAssembly.instantiate=="function"){const Q=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(Q instanceof WebAssembly.Module)return new WebAssembly.Instance(Q)instanceof WebAssembly.Instance}}catch(Q){return!1}return!1},PA=()=>RA.indexOf("CrKey")!==-1,HQ=()=>navigator.platform==="MacIntel"&&navigator.maxTouchPoints===0,kA=()=>navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1,IB=()=>RA.indexOf("iphone")>=0&&RA.indexOf("like iphone")<0||RA.indexOf("ipad")>=0&&RA.indexOf("like ipad")<0||RA.indexOf("ipod")>=0&&RA.indexOf("like ipod")<0||kA(),Wd=()=>{var Q,A;return kA()?!1:(A=(Q=le())==null?void 0:Q.isTypeSupported('audio/mp4; codecs="opus"'))!=null?A:!1},pd=()=>/^(?!.*chrome).*safari/i.test(RA);function Dd(){var Q,A;if(/(iPhone|iPod|iPad)/i.test(RA))return(A=(Q=RA==null?void 0:RA.match(/OS [\d_]+/i))==null?void 0:Q[0])==null?void 0:A.substring(3).split("_").map(e=>parseInt(e))[0]}function Zd(){var Q,A;if(/^((?!chrome|android).)*safari/i.test(RA))return(A=(Q=RA.match(/version\/([\d.]+)/))==null?void 0:Q[1])==null?void 0:A.split(".").map(e=>parseInt(e))[0]}const Ss=()=>{var e,t;const Q=!!le();let A=!1;return Q&&(A=Wd()),{isMobile:hF,supportsMp4Opus:A,supportsMediaSource:Q,supportsHls:SF(),supportsWebAssembly:hs(),platform:{iosVersion:(e=Dd())!=null?e:Number.MAX_SAFE_INTEGER,safariVersion:(t=Zd())!=null?t:Number.MAX_SAFE_INTEGER,isIpadOS:kA(),isMacOS:HQ(),isIOS:IB()}}},Js=(Q,A,e)=>{let t=0;for(let B=A;B<=e;B++)if(B===A){const F=Q[B];t+=F&127,F&128&&(t-=128)}else t=t*256+Q[B];return t};class YQ{constructor(A){o(this,cA);o(this,Ye);o(this,st);l(this,Ye,A),l(this,st,new DataView(A.buffer,A.byteOffset,A.byteLength)),l(this,cA,0)}position(){return U(this,cA)}byteOffset(){return U(this,Ye).byteOffset+U(this,cA)}buffer(){return U(this,Ye)}remaining(){return U(this,Ye).length-U(this,cA)}readUint8(){const A=U(this,st).getUint8(U(this,cA));return l(this,cA,U(this,cA)+1),A}readUint24(){const A=U(this,st).getUint32(U(this,cA))>>8&16777215;return l(this,cA,U(this,cA)+3),A}readUint16(){const A=U(this,st).getUint16(U(this,cA));return l(this,cA,U(this,cA)+2),A}readUint32(){const A=U(this,st).getUint32(U(this,cA));return l(this,cA,U(this,cA)+4),A}readUint64(){const A=Js(U(this,Ye),U(this,cA),U(this,cA)+7);return l(this,cA,U(this,cA)+8),A}readBytes(A){const e=U(this,Ye).subarray(U(this,cA),U(this,cA)+A);return l(this,cA,U(this,cA)+A),e}readRemaining(){return this.readBytes(this.remaining())}readUtf8String(){const A=[];let e;for(;(e=this.readUint8())!==0&&(A.push(e),this.remaining()!=0););return new TextDecoder().decode(new Uint8Array(A))}}cA=new WeakMap,Ye=new WeakMap,st=new WeakMap;class wd{constructor(A=100,e=100){i(this,"resizeSteps");i(this,"internalBuffer");i(this,"view");i(this,"uint8");i(this,"_position",0);i(this,"_end",0);this.resizeSteps=e,this.internalBuffer=new ArrayBuffer(A),this.view=new DataView(this.internalBuffer),this.uint8=new Uint8Array(this.internalBuffer)}position(){return this._position}seek(A){this._position=Math.max(0,Math.min(this._end,A))}seekToEnd(){this._position=this._end}writeUint8(A){this.writeAndMove(A,1)}writeUint16(A){this.writeAndMove(A,2)}writeUint24(A){this.writeAndMove(A,3)}writeUint32(A){this.writeAndMove(A,4)}writeUint32At(A,e){this.view.setUint32(A,e)}writeBytes(A){this.resizeIfNeeded(this.position()+A.byteLength),this.uint8.set(A,this.position()),this._position+=A.byteLength,this._end=Math.max(this._end,this._position)}buffer(){return this.internalBuffer.slice(0,this._end)}write(A,e){switch(this.resizeIfNeeded(this.position()+e),e){case 1:this.view.setUint8(this.position(),A);break;case 2:this.view.setUint16(this.position(),A);break;case 3:this.view.setUint8(this.position(),A>>16&255),this.view.setUint8(this.position()+1,A>>8&255),this.view.setUint8(this.position()+2,A&255);break;case 4:this.view.setUint32(this.position(),A);break}}writeAndMove(A,e){this.write(A,e),this._position+=e,this._end=Math.max(this._end,this._position)}resizeIfNeeded(A){if(A>this.internalBuffer.byteLength){const e=new ArrayBuffer(A+this.resizeSteps),t=new Uint8Array(e);t.set(this.uint8),this.internalBuffer=e,this.view=new DataView(this.internalBuffer),this.uint8=t}}}class xQ{constructor(A,e,t){i(this,"onSuccess");i(this,"onError");i(this,"doExecute");this.doExecute=A,this.onSuccess=e,this.onError=t}execute(A){try{this.doExecute(A),this.onSuccess()}catch(e){this.onError(e)}}}const XQ=Q=>Q.reduce((A,e)=>A+e,0)/Q.length,Bt=Q=>({last:Q[Q.length-1]||0,average:Q.length===0?0:XQ(Q),max:Q.length===0?0:Math.max(...Q),min:Q.length===0?0:Math.min(...Q)}),Td=Q=>{let A=0,e=0,t=0,B=0,F=0;for(let d=0;d<Q.length;d++){const{x:E,y:g}=Q[d];A+=E,e+=g,t+=E*g,B+=E*E,F+=g*g}const n=(Q.length*t-A*e)/(Q.length*B-A*A),s=(e-n*A)/Q.length,a=Math.pow((Q.length*t-A*e)/Math.sqrt((Q.length*B-A*A)*(Q.length*F-e*e)),2);return{slope:n,intercept:s,r2:a,predict:d=>n*(Q.length+d)+s}};class yd{constructor(A=10){i(this,"rates");i(this,"_total",0);i(this,"accumulatedValues",0);i(this,"lastTickTime",Date.now());i(this,"add",A=>{this.accumulatedValues+=A,this._total+=A});i(this,"tick",()=>{const A=this.accumulatedValues/((Date.now()-this.lastTickTime)/1e3);this.rates.push(A),this.accumulatedValues=0,this.lastTickTime=Date.now()});this.rates=new Z(A)}get total(){return this._total}get average(){return this.rates.isEmpty()?0:XQ(this.rates.items())}get minMaxAverage(){return Bt(this.rates.items())}}const bt=(Q,A)=>{if(Q===A)return!0;if(Q==null||typeof Q!="object"||A==null||typeof A!="object")return!1;let e=0,t=0;for(const B in Q)e+=1;for(const B in A)if(t+=1,!(B in Q)||!bt(Q[B],A[B]))return!1;return e==t};class ee{constructor(){i(this,"listeners",{})}emit(A,e){const t=this.listeners[A];t&&(this.listeners[A]=t.filter(F=>!F.once),t.map(F=>F.fn(e)).map(F=>typeof F=="function"&&(F==null?void 0:F())))}off(A,e){const t=this.listeners[A];t&&(this.listeners[A]=t.filter(B=>B.fn!==e))}on(A,e){this.add(A,e,!1)}once(A,e){this.add(A,e,!0)}reset(){this.listeners={}}add(A,e,t){const B=this.listeners[A],F={fn:e,once:t};B?B.push(F):this.listeners[A]=[F]}}const Vs=1e3,us=Vs*1e3,Eo=us*1e3,ks=(Q,A,e)=>Q%A===0?Q/A:(Q/A).toFixed(e),bd=(Q,A=1)=>Q>=Eo?`${ks(Q,Eo,A)} Gbit/s`:Q>=us?`${ks(Q,us,A)} Mbit/s`:Q>=Vs?`${ks(Q,Vs,A)} Kbit/s`:`${Q} bit/s`,fd=({width:Q,height:A})=>`${Q}x${A}`,Gd=Q=>Q%1e3===0?`${Q/1e3} kHz`:Q>1e3?`${(Q/1e3).toFixed(1)} kHz`:`${Q} Hz`,go=["off","error","warn","info","debug","trace"],Md={OFF:"off"},at=class at{constructor({context:A,logLevel:e,debug:t}){o(this,Ot,new Map);o(this,pB,"");o(this,zt,!1);o(this,_Q,"off");i(this,"trace",(...A)=>{});i(this,"debug",(...A)=>{});i(this,"info",(...A)=>{});i(this,"warn",(...A)=>{});i(this,"error",(...A)=>{});i(this,"table",(...A)=>{});i(this,"count",(...A)=>{});l(this,pB,A),l(this,_Q,e),l(this,zt,t||!1),this.setLevel(e),this.setDebug(U(this,zt))}setDebug(A){l(this,zt,A);for(const[e,t]of U(this,Ot))t.setDebug(A);A?(this.table=console.table.bind(console),this.count=console.count.bind(console)):(this.table=()=>{},this.count=()=>{})}setLevel(A){l(this,_Q,A);for(const[t,B]of U(this,Ot))B.setLevel(A);const e=go.indexOf(A);for(const[t,B]of go.entries())B!=="off"&&(t<=e?this[B]=console[B].bind(console,"%c%s %c%s","font-weight:bold;",B.toUpperCase(),"font-weight:normal;",U(this,pB)):this[B]=()=>{})}createContext(A){const e=U(this,Ot).get(A);if(!e){const t=new at({context:`${A}`,logLevel:U(this,_Q),debug:U(this,zt)});return U(this,Ot).set(A,t),t}return e}static get(){return U(at,$Q)||l(at,$Q,new at({context:"Vindral",logLevel:"off"})),U(at,$Q)}};Ot=new WeakMap,pB=new WeakMap,zt=new WeakMap,_Q=new WeakMap,$Q=new WeakMap,o(at,$Q);let pA=at;function KA(Q){const A=pA.get().createContext(Q.context);return function(t,B){const F=String(B.name);function n(...s){Q.enter&&A[Q.enter](`Enter '${F}'`,S({},s));try{const a=t.call(this,...s);return a instanceof Promise?a.then(d=>{Q.return&&A[Q.return](`Return '${F}'`,d)}).catch(d=>{Q.error&&A[Q.error](`Error '${F}'`,d)}):Q.return&&A[Q.return](`Return '${F}'`,a),a}catch(a){throw Q.error&&A[Q.error](`Error '${F}'`,a),a}}return n}}function ke(){return typeof Symbol.asyncDispose!="symbol"&&Object.defineProperty(Symbol,"asyncDispose",{value:Symbol.for("asyncDispose")}),Symbol.asyncDispose}function Io(){return typeof Symbol.dispose!="symbol"&&Object.defineProperty(Symbol,"dispose",{value:Symbol.for("dispose")}),Symbol.dispose}class vd{constructor(A,e){o(this,DB);i(this,"value");i(this,"unlocker");this.value=A,this.unlocker=e}unlocked(){var A;return(A=this.unlocker)==null?void 0:A.promise}[Io()](){I(this,DB,io).call(this)}[Symbol.dispose](){I(this,DB,io).call(this)}}DB=new WeakSet,io=function(){this.unlocker.resolve(this.value)};class Ld{constructor(A){o(this,Pt);o(this,jt,new m);l(this,Pt,A),U(this,jt).resolve(A)}unsafeValue(){return U(this,Pt)}isLocked(){return U(this,jt).pending}lock(){return r(this,null,function*(){const A=new m;A.promise.then(t=>{l(this,Pt,t)}).catch(V);const e=U(this,jt).promise.then(()=>A);return l(this,jt,A),yield e,new vd(U(this,Pt),A)})}}Pt=new WeakMap,jt=new WeakMap;class GA{constructor(A){o(this,Qe);o(this,Ee);l(this,Qe,A),l(this,Ee,new m)}isClosed(){var A;return!((A=U(this,Ee))!=null&&A.pending)}current(){return U(this,Qe)}value(){var A;return[U(this,Qe),(A=U(this,Ee))==null?void 0:A.promise]}update(A){var e;if(!((e=U(this,Ee))!=null&&e.pending))throw new Error("ObservableValue is closed");l(this,Qe,A instanceof Function?A(U(this,Qe)):A),U(this,Ee).resolve(U(this,Qe)),l(this,Ee,new m)}close(){var A;(A=U(this,Ee))==null||A.resolve(U(this,Qe)),l(this,Ee,void 0)}waitFor(A){return r(this,null,function*(){if(A(U(this,Qe)))return U(this,Qe);for(;;){const[e,t]=this.value();if(!t)throw new Error("ObservableValue was closed while waiting for condition");const B=yield t;if(A(B))return B}})}[Symbol.asyncIterator](){return it(this,null,function*(){for(;;){const[A,e]=this.value();if(yield A,!e)return;yield new lA(e)}})}}Qe=new WeakMap,Ee=new WeakMap;const co=(Q,A)=>{const e=S({},Q);return typeof e!="object"||A.forEach(t=>{delete e[t]}),e},ft=(Q,A=Date.now())=>{const e=Q.length;if(e>0){const t=e-1,B=Q[t];B.end||(B.end=A)}},KQ=(Q,A=Date.now())=>{ft(Q),Q.push({start:A})},OQ=Q=>Q.reduce((A,e)=>{var t;return A+(((t=e.end)!=null?t:Date.now())-e.start)},0),Co=(Q,A,e=Date.now())=>Q.reduce((t,B)=>{var s;const F=Math.max(e-A,B.start),n=(s=B.end)!=null?s:e;return Math.max(0,n-F)+t},0),gn=class gn{constructor(){i(this,"pendingTimeouts",new Set);i(this,"pendingIntervals",new Set);i(this,"clearTimeout",A=>{this.pendingTimeouts.delete(A)&&window.clearTimeout(A)});i(this,"clearInterval",A=>{this.pendingIntervals.delete(A)&&window.clearInterval(A)});i(this,"setTimeout",(A,e,...t)=>{const B=window.setTimeout(()=>{A(...t),this.clearTimeout(B)},e);return this.pendingTimeouts.add(B),B});i(this,"setInterval",(A,e,...t)=>{const B=window.setInterval(()=>{A(...t)},e);return this.pendingIntervals.add(B),B});i(this,"unload",()=>{this.pendingIntervals.forEach(this.clearInterval),this.pendingTimeouts.forEach(this.clearTimeout)})}};i(gn,"create",()=>new gn);let DA=gn;function Ro(Q){try{return Q()}catch(A){return A}}const ho=Q=>{try{return JSON.parse(Q)}catch(A){return}},So=()=>{const Q=[...Array(256).keys()].map(e=>e.toString(16).padStart(2,"0")),A=crypto.getRandomValues(new Uint8Array(16));return A[6]=A[6]&15|64,A[8]=A[8]&63|128,[...A.entries()].map(([e,t])=>[4,6,8,10].includes(e)?`-${Q[t]}`:Q[t]).join("")},Gt=Q=>r(this,null,function*(){return new Promise(A=>setTimeout(A,Q))}),Ns=(e,...t)=>r(this,[e,...t],function*(Q,A=new Error("Timeout")){return new Promise((B,F)=>setTimeout(()=>F(A),Q))}),Hd=(Q,A)=>r(this,null,function*(){throw yield Q,new Error(A)});function Jo(Q){return!(typeof Q.edges[0]=="string"||Q.channels[0]&&!("catalog"in Q.channels[0]))}function Vo(Q){return Q.tracks.filter(A=>!!A.codec).filter(A=>ms(A.codec||"")).map((A,e)=>{const t=A.codec,B=A.bitrate;W(t,"codec is required"),W(B!=null,"bitrate is required");const F=ms(t);if(W(F,"codec is required"),h(F)==="audio"){const n=A.samplerate||0,s=A.channelConfig==="stereo"?2:1;return{track:A,id:e,codec:F,codecString:t,bitRate:B,channels:s,sampleRate:n,language:A.language}}return h(F)==="text"?{track:A,id:e,bitRate:0,codec:F,kind:"subtitles",codecString:t,label:A.label,language:A.language}:(W(A.width,"width is required"),W(A.height,"width is required"),W(A.framerate,"framerate is required"),{track:A,id:e,codec:F,bitRate:B,codecString:t,width:A.width,height:A.height,frameRate:A.framerate})}).sort((A,e)=>A.bitRate-e.bitRate)}function ms(Q){if(Q.startsWith("opus"))return"opus";if(Q.startsWith("mp4a"))return"aac";if(Q.startsWith("avc1"))return"h264";if(Q.startsWith("av01"))return"av1";if(Q.startsWith("webvtt"))return"webvtt"}const Mt=Q=>"width"in Q&&typeof Q.width=="number",vt=Q=>"sampleRate"in Q&&typeof Q.sampleRate=="number",Lt=Q=>{switch(Q.codec){case"opus":return'audio/mp4; codecs="opus"';case"mp3":return"audio/mpeg";case"webvtt":return"text/vtt";case"aac":return Q.codecString?`audio/mp4; codecs="${Q.codecString}"`:"audio/mp4";case"h264":return Q.codecString?`video/mp4; codecs="${Q.codecString}"`:"video/mp4";case"av1":return Q.codecString?`video/mp4; codecs="${Q.codecString}"`:"video/mp4"}},Ut=()=>Number.MAX_SAFE_INTEGER,JF=()=>({width:Number.MAX_SAFE_INTEGER,height:Number.MAX_SAFE_INTEGER}),uo=Q=>!(typeof Q!="object"||Q===null||!("type"in Q)),Yd=Q=>Q?{Authorization:`Bearer ${Q}`}:void 0,xd=Q=>typeof Q=="object"&&Q!==null&&"message"in Q;class Xd extends Error{constructor({status:e,url:t,body:B}){const F=ho(B),n=xd(F)?F.message:`Url ${t.toString()}, Status code: ${e}, Body: ${B}`;super(n);i(this,"status");i(this,"body");i(this,"url");this.status=e,this.body=B,this.url=t,Object.setPrototypeOf(this,new.target.prototype)}}const Kd=Q=>typeof Q.status=="number",ko=(Q,A)=>r(this,null,function*(){const e=yield fetch(Q.toString(),S({mode:"cors"},A));if(!e.ok)throw new Xd({status:e.status,url:Q,body:yield e.text()});return e}),Ws=(Q,A)=>r(this,null,function*(){return yield(yield ko(Q,S({},A))).json()}),No=(Q,A)=>r(this,null,function*(){return ko(Q,S({method:"POST"},A))});function Od(Q){var A;return!(typeof Q.edges[0]=="string"||Q.channels[0]&&"catalog"in Q.channels[0]&&typeof((A=Q.channels[0])==null?void 0:A.catalog)=="undefined")}const mo={lbConnect:Q=>Q.channelGroupId?`connect?channelId=${Q.channelId}&channelGroupId=${Q.channelGroupId}`:`connect?channelId=${Q.channelId}`,thumbnails:(Q,A)=>A?Q.channelGroupId?`thumbnail/?channelGroupId=${Q.channelGroupId}&auth.token=${A}&auth.type=jwt`:Q.channelId?`thumbnail/?channelId=${Q.channelId}&auth.token=${A}&auth.type=jwt`:"thumbnail":"thumbnail"};class Wo{constructor(A){i(this,"baseUrl");i(this,"tokenFactory");this.baseUrl=new URL("/api/v4/",A.publicEndpoint).toString(),this.tokenFactory=A.tokenFactory}connect(A){return r(this,null,function*(){const{channelId:e,channelGroupId:t}=A,B={channelId:e,channelGroupId:t},F=new URL(mo.lbConnect(A),this.baseUrl),n=this.getAuthToken(B),s=yield Ws(F,{headers:this.getHeaders(n)});if(Od(s)){const a=s.channels.map(d=>{const E=this.toChannel(d,B),g=Vo(d.catalog);return O(S(S({},d),E),{renditions:g})});return O(S({},s),{channels:a})}else{const a=s.channels.map(d=>{const E=this.toChannel(d,B);return S(S({},d),E)});return O(S({},s),{channels:a})}})}getChannel(A){return r(this,null,function*(){const e={channelId:A},t=new URL(`channel/${A}`,this.baseUrl),B=this.getAuthToken(e),F=yield Ws(t,{headers:this.getHeaders(B)});return this.toChannel(F,e,B)})}getChannels(A){return r(this,null,function*(){const e={channelGroupId:A},t=new URL(`channels/${A}`,this.baseUrl),B=this.getAuthToken(e),F=yield Ws(t,{headers:this.getHeaders(B)}),n=Array.isArray(F)?F:F.channels;return this.toChannels(n,e,B)})}getHeaders(A){var t;return(t=Yd(A))!=null?t:{}}getAuthToken(A){return this.tokenFactory?this.tokenFactory(A):void 0}toChannels(A,e,t){return A.map(B=>this.toChannel(B,e,t))}toChannel(A,e,t){const{baseUrl:B,sizes:F}=A.thumbnail,n=B||new URL(mo.thumbnails(e,t),this.baseUrl),s=F.map(a=>new URL(`?channelId=${A.channelId}&width=${a.width}&height=${a.height}${zd(e,t)}`,n).toString());return{channelId:A.channelId,name:A.name,isLive:A.isLive,thumbnailUrls:s}}}const zd=(Q,A)=>A?Q.channelGroupId?`&channelGroupId=${Q.channelGroupId}&auth.token=${A}&auth.type=jwt`:`&auth.token=${A}&auth.type=jwt`:"";class po extends ee{constructor(e){super();i(this,"state","not casting");i(this,"config");i(this,"unloaded",!1);i(this,"updateAuthenticationToken",e=>{this.config&&(this.config.options.authenticationToken=e,this.send({type:"updateAuthToken",token:e}))});i(this,"unload",()=>{var e;this.unloaded=!0,(e=this.getSession())==null||e.removeMessageListener("urn:x-cast:com.vindral.castdata",this.onMessage)});i(this,"init",()=>r(this,null,function*(){return new Promise((e,t)=>{let B=!1;const F=setTimeout(()=>{B=!0,t()},1e4);window.__onGCastApiAvailable=n=>{if(B){B=!1;return}if(clearTimeout(F),!n)return t();setTimeout(()=>{try{this.onGCastApiAvailable(),e()}catch(s){t()}},1e3)},this.castLibrariesAdded()&&window.cast?window.__onGCastApiAvailable(!0):this.verifyCastLibraries()})}));i(this,"start",()=>r(this,null,function*(){var e;yield(e=this.getInstance())==null?void 0:e.requestSession()}));i(this,"stop",()=>{var e;(e=this.getSession())==null||e.endSession(!0)});i(this,"getReceiverName",()=>{var e,t;return((t=(e=this.getSession())==null?void 0:e.getCastDevice())==null?void 0:t.friendlyName)||void 0});i(this,"onGCastApiAvailable",()=>{var F;const e=this.getInstance();if(!e)throw"cast context should exist";const t=e.getSessionState(),B=((F=this.config)==null?void 0:F.receiverApplicationId)||"A5452297";e.setOptions({receiverApplicationId:B,autoJoinPolicy:chrome.cast.AutoJoinPolicy.TAB_AND_ORIGIN_SCOPED,resumeSavedSession:!0}),e.addEventListener(cast.framework.CastContextEventType.SESSION_STATE_CHANGED,this.onSessionStateChanged),t===cast.framework.SessionState.SESSION_STARTED&&setTimeout(()=>{this.state="casting",this.emit("resumed")})});i(this,"send",e=>{var t;(t=this.getSession())==null||t.sendMessage("urn:x-cast:com.vindral.castdata",e)});i(this,"onMessage",(e,t)=>{if(e==="urn:x-cast:com.vindral.castdata")try{const B=JSON.parse(t);switch(B.type){case"metadata":this.emit("metadata",B.metadata);break;case"serverWallclockTime":this.emit("server wallclock time",B.serverWallclockTime);break;default:break}}catch(B){}});i(this,"onSessionStarted",()=>{var e;(e=this.getSession())==null||e.addMessageListener("urn:x-cast:com.vindral.castdata",this.onMessage),this.send({type:"start",config:this.config})});i(this,"onSessionStateChanged",e=>{if(!this.unloaded)switch(e.sessionState){case cast.framework.SessionState.SESSION_START_FAILED:this.state="not casting",this.emit("failed");break;case cast.framework.SessionState.SESSION_ENDED:this.state="not casting",this.emit("disconnected");break;case cast.framework.SessionState.SESSION_ENDING:break;case cast.framework.SessionState.SESSION_RESUMED:this.onSessionStarted(),this.state="casting",this.emit("resumed");break;case cast.framework.SessionState.SESSION_STARTED:this.onSessionStarted(),this.state="casting",this.emit("connected");break;case cast.framework.SessionState.SESSION_STARTING:break}});i(this,"getInstance",()=>{var e;return(e=window.cast)==null?void 0:e.framework.CastContext.getInstance()});i(this,"getSession",()=>{var e;return(e=this.getInstance())==null?void 0:e.getCurrentSession()});i(this,"castLibrariesAdded",()=>!!(document.querySelector("#vindralCastFrameworkLib")&&document.querySelector("#vindralCastSenderLib")));i(this,"verifyCastLibraries",()=>{if(this.castLibrariesAdded())return;const e=document.createElement("script");e.type="text/javascript",e.id="vindralCastFrameworkLib",e.src="//www.gstatic.com/cast/sdk/libs/sender/1.0/cast_framework.js",document.head.appendChild(e);const t=document.createElement("script");t.type="text/javascript",t.id="vindralCastSenderLib",t.src="//www.gstatic.com/cv/js/sender/v1/cast_sender.js",document.head.appendChild(t)});this.config=e}get casting(){return this.state==="casting"}get volume(){var e,t;return(t=(e=this.getSession())==null?void 0:e.getVolume())!=null?t:0}set volume(e){var t;(t=this.getSession())==null||t.setVolume(e)}get language(){var e,t;return(t=(e=this.config)==null?void 0:e.options)==null?void 0:t.language}set language(e){this.config&&(this.config.options.language=e,this.send({type:"setLanguage",language:e}))}get channelId(){var e;return((e=this.config)==null?void 0:e.options.channelId)||""}set channelId(e){this.config&&(this.config.options.channelId=e,this.send({type:"setChannelId",channelId:e}))}}const Pd={sizeBasedResolutionCapEnabled:!0,pictureInPictureEnabled:!0,abrEnabled:!0,burstEnabled:!1,mseEnabled:!0,mseOpusEnabled:!1,muted:!1,minBufferTime:1500,maxBufferTime:1500,logLevel:Md.OFF,maxSize:JF(),maxVideoBitRate:Ut(),maxAudioBitRate:Ut(),tags:[],media:"audio+video",poster:!0,reconnectHandler:Q=>Q.reconnectRetries<30,iosWakeLockEnabled:!1,telemetryEnabled:!0,iosMediaElementEnabled:!1,pauseSupportEnabled:!0,advanced:{wasmDecodingConstraint:{bitRate:Number.MAX_SAFE_INTEGER,width:1280,height:1280}},videoCodecs:["av1","h264"],webtransportEnabled:!0},Do="connection_failed",Zo="connection_failed_will_not_attempt_again",wo="authentication_error",To="authentication_expired",yo="channel_not_found",bo="no_incoming_data_error",fo="connection_inactivity",jd="missing_init_segment",qd="no_track_context",_d="invalid_track_context_state",Go="disconnected_by_edge",$d="decoder_error",AE="audio_player_error",eE="media_source_error",tE="webgl_context_lost_error",QE="access_forbidden",iE="channel_switch_failed",BE="drm_error";class Y extends Error{constructor(e,t,B={}){super(e);i(this,"props");i(this,"extra",{});i(this,"code",()=>this.props.code);i(this,"isFatal",()=>this.props.isFatal);i(this,"source",()=>this.props.source);i(this,"type",()=>{var e;return(e=this.props.type)!=null?e:"external"});i(this,"toStringifiable",()=>{var B;const e=this.source(),t=e instanceof Error?e.stack:this.stack;return O(S({},this.extra),{code:this.props.code,isFatal:this.props.isFatal,type:this.props.type,message:this.message,sourceMessage:(B=this.source())==null?void 0:B.message,stack:t})});this.props=t,this.extra=B,Object.setPrototypeOf(this,new.target.prototype)}}const UE=(Q,A)=>new Y("MediaElement Error",{isFatal:Q,code:"media_element_error",source:A},{mediaErrorCode:A.code}),Mo=(Q,A)=>new Y("Decoder Error",{isFatal:Q,code:$d,source:A,type:"internal"}),vo=(Q,A)=>new Y("Audio Player Error",{isFatal:Q,code:AE,source:A,type:"internal"}),FE=(Q,A)=>new Y(`No init segment for rendition id ${Q} for channel ${A}`,{isFatal:!1,code:jd,type:"internal"}),Lo=(Q,A,e,t)=>new Y("MediaSource Error",{isFatal:Q,code:eE,source:A,type:"internal"},{type:t,consecutiveErrorsCount:e}),VF=(Q,A)=>new Y(`No track context for ${Q}${A?`, rendition id ${A}`:""}`,{isFatal:!1,code:qd,type:"internal"}),nE=(Q,A)=>new Y(`Track context is in an invalid state for ${Q}${A?`, rendition id ${A}`:""}`,{isFatal:!1,code:_d,type:"internal"}),sE=()=>new Y("Web Audio Context resume timeout",{isFatal:!1,code:"web_audio_context_resume_timeout"}),cB=Q=>new Y("Disconnected From Edge Server",{type:"external",source:Q,isFatal:!1,code:Go}),uF=Q=>new Y("Authentication Failed",{isFatal:!0,code:wo,source:Q}),aE=Q=>new Y("Authentication Expired",{isFatal:!0,code:To,source:Q}),oE=(Q,A)=>new Y("Connection closed due to inactivity",{isFatal:!1,code:fo,source:A,type:Q}),Ho=(Q,A)=>new Y("Channel not found",{isFatal:!1,code:yo,source:A,type:Q}),lE=Q=>new Y("No Incoming Data",{isFatal:!1,code:bo,source:Q}),rE=Q=>new Y("Connection attempt failed",{isFatal:!1,code:Do,source:Q}),Yo=()=>new Y("Connection failed - no more reconnect attempts",{isFatal:!0,code:Zo}),dE=Q=>new Y("WebGL Context Lost",{isFatal:!1,code:tE,source:Q,type:"internal"}),xo=Q=>new Y(Q,{isFatal:!0,code:QE}),Xo=Q=>new Y(`Channel switch to '${Q}' failed`,{isFatal:!1,code:iE}),Ko=(Q,A=!1,e)=>new Y(Q,{isFatal:A,code:BE,source:e}),Oo=(Q,A)=>Q&&typeof Q=="object"&&A in Q,zo=Q=>!(typeof Q!="object"||!Oo(Q,"channelId")||typeof Q.channelId!="string"||!Oo(Q,"url")||typeof Q.url!="string"||Q.channelId.length===0||Q.url.length===0),EE=Q=>{if(!zo(Q))throw new Y("Invalid options",{isFatal:!0,code:"invalid_options"});const A=S({},Q);return Object.keys(A).forEach(e=>{const t=A;typeof t[e]=="undefined"&&delete t[e]}),A},gE={playready:["150","2000","3000"],widevine:["SW_SECURE_CRYPTO","SW_SECURE_DECODE","HW_SECURE_CRYPTO","HW_SECURE_DECODE","HW_SECURE_ALL"],fairplay:[""],clearkey:[""]},ps={initDataTypes:["cenc"],audioCapabilities:[{contentType:'audio/mp4; codecs="mp4a.40.2"'}],videoCapabilities:[{contentType:'video/mp4; codecs="avc1.42c01f"'}]},IE={fairplay:{keySystem:"com.apple.fps",supportedConfig:{initDataTypes:["sinf"],videoCapabilities:[{contentType:'video/mp4; codecs="avc1.42c01f"'}]}},playready:{keySystem:"com.microsoft.playready",supportedConfig:ps},widevine:{keySystem:"com.widevine.alpha",supportedConfig:ps},clearkey:{keySystem:"org.w3.clearkey",supportedConfig:ps}},Po=(Q,A)=>r(this,null,function*(){return navigator.requestMediaKeySystemAccess(Q,[A]).catch(()=>{})}),jo=(Q,A,e,t,B,F)=>r(this,null,function*(){let n;for(const s of t){const a=e==null?void 0:e.map(E=>O(S({},E),{robustness:s,contentType:F?`${B==="audioCapabilities"?"audio/mp4":"video/mp4"}; codecs="${F}"`:E.contentType}));if(!(yield Po(Q,{initDataTypes:A,[B]:a})))break;n=a}return n}),cE=(Q,A,e)=>r(this,null,function*(){const{keySystem:t,supportedConfig:B}=IE[Q],{initDataTypes:F,videoCapabilities:n,audioCapabilities:s}=B,a=gE[Q],[d,E]=yield Promise.all([jo(t,F,n,a,"videoCapabilities",A),jo(t,F,s,a,"audioCapabilities",e)]);return!d&&!E?void 0:yield Po(t,{initDataTypes:F,videoCapabilities:d,audioCapabilities:E})}),CE=(Q,A,e)=>r(this,null,function*(){let t;for(const B of Q)if(t=yield cE(B,A,e),t)return{keySystem:B,mediaKeySystemAccess:t}});class kF{constructor(A,e,t,B){i(this,"keySystem");i(this,"licenseServerUrl");i(this,"certificate");i(this,"headers",{});i(this,"queryParams",{});o(this,qt);o(this,_t);l(this,qt,e),this.keySystem=A,this.licenseServerUrl=t,this.certificate=B}get statistics(){return{keySystem:U(this,qt).keySystem,licenseServerUrl:this.licenseServerUrl,mediaKeySystemConfiguration:U(this,qt).getConfiguration()}}getMediaKeys(){return r(this,null,function*(){return U(this,_t)?U(this,_t):(l(this,_t,yield U(this,qt).createMediaKeys()),U(this,_t))})}requestLicense(A){return r(this,null,function*(){const e=new URL(this.licenseServerUrl);for(const[F,n]of Object.entries(this.queryParams))e.searchParams.append(F,n);const t=yield fetch(e,{method:"POST",body:A,headers:S({"Content-Type":"application/octet-stream"},this.headers)});if(!t.ok)throw new Error(`Failed to fetch license: ${t.statusText}`);return yield t.arrayBuffer()})}}qt=new WeakMap,_t=new WeakMap;function qo(Q){const A=window.atob(Q.replace(/-/g,"+").replace(/_/g,"/"));let e="";for(let t=0;t<A.length;t++)e+=("0"+A.charCodeAt(t).toString(16)).substr(-2);return e}function RE(Q){let A="";for(let e=0;e<Q.length;e+=2)A+=String.fromCharCode(parseInt(Q.substr(e,2),16));return window.btoa(A).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function hE(Q,A){if(Q.byteLength!==A.byteLength)return!1;const e=new Uint8Array(Q),t=new Uint8Array(A);for(let B=0;B<e.length;B++)if(e[B]!==t[B])return!1;return!0}class SE extends kF{constructor(e,t){super("clearkey",e,"");o(this,ZB);l(this,ZB,t)}handleLicenseRequest(e){const t=new Uint8Array(e),B=String.fromCharCode(...t),F=JSON.parse(B),n=[];for(let d=0;d<F.kids.length;d++){const E=F.kids[d];if(E){const g=qo(E).toLowerCase(),c=U(this,ZB)[g];c&&n.push({kty:"oct",alg:"A128KW",kid:E,k:RE(c)})}}const s=JSON.stringify({keys:n,type:F.type});return new TextEncoder().encode(s)}}ZB=new WeakMap;class JE extends kF{constructor(A,e,t){super("fairplay",A,e,t)}}const VE=Q=>{var s,a,d,E;const A=String.fromCharCode(...new Uint16Array(Q)),e=new window.DOMParser().parseFromString(A,"application/xml"),t=e.getElementsByTagName("HttpHeaders")[0];let B={};if(t){const g=t.getElementsByTagName("name"),c=t.getElementsByTagName("value");for(let J=0;J<g.length;J++){const k=(s=g[J])==null?void 0:s.childNodes[0],p=(a=c[J])==null?void 0:a.childNodes[0];k!=null&&k.nodeValue&&p&&p.nodeValue&&(B[k.nodeValue]=p.nodeValue)}}const F=e.getElementsByTagName("Challenge")[0];let n;return F&&((d=F.childNodes[0])!=null&&d.nodeValue)&&(n=window.atob((E=F.childNodes[0])==null?void 0:E.nodeValue)),e.querySelector("parsererror")&&(B={"Content-Type":"text/xml; charset=utf-8",SOAPAction:'"http://schemas.microsoft.com/DRM/2007/03/protocols/AcquireLicense"'},n=Q),{headers:B,message:n}};class uE extends kF{constructor(A,e){super("playready",A,e)}requestLicense(A){return r(this,null,function*(){W(this.licenseServerUrl,"No license server URL set");const e=new URL(this.licenseServerUrl);for(const[F,n]of Object.entries(this.queryParams))e.searchParams.append(F,n);const t=VE(A),B=yield fetch(e,{method:"POST",headers:S(S({},t.headers),this.headers),body:t.message});if(!B.ok)throw new Error(`Failed to fetch license: ${B.statusText}`);return yield B.arrayBuffer()})}}class kE extends kF{constructor(A,e){super("widevine",A,e)}}const NE=5e3;class _o{constructor(A,e,t,B){o(this,CA);o(this,AA);o(this,$t);o(this,xe);o(this,ge,new m);o(this,Ai,{});o(this,ei,{});o(this,NA);o(this,ot,new Map);o(this,lt);o(this,ti);o(this,In,Ss());o(this,wB,A=>{if(U(this,AA).info("Received DRM data",{options:A}),window.clearTimeout(U(this,ti)),U(this,NA)){const e=I(this,CA,xr).call(this,A)[U(this,NA).keySystem];e&&(U(this,NA).licenseServerUrl=e)}U(this,ge).resolve(A)});o(this,TB,A=>{U(this,AA).info("Encrypted event received",{event:A}),I(this,CA,Gr).call(this,A)});o(this,cn,A=>{var F,n;U(this,AA).debug("Session message received",{event:A});const e=A.target,t=A.message;if(!U(this,ot).get(e)){U(this,AA).error("No active session found for event",{event:A});return}U(this,AA).debug("Requesting license for session",{sessionId:e.sessionId,licenseServerUrl:(F=U(this,NA))==null?void 0:F.licenseServerUrl}),(n=U(this,NA))==null||n.requestLicense(t).then(s=>{U(this,AA).debug("License received for session",{sessionId:e.sessionId}),e.update(s).catch(a=>{I(this,CA,gF).call(this,{message:"Failed to update session with license",isFatal:!1,error:a})})}).catch(s=>{I(this,CA,gF).call(this,{message:"Failed to request license",isFatal:!1,error:s})})});o(this,Cn,A=>{const e=A.target;U(this,AA).debug("Key status changed for session",{sessionId:e.sessionId}),e.keyStatuses.forEach((t,B)=>{const F=qo(window.btoa(String.fromCharCode(...new Uint8Array(B))));U(this,AA).debug("Key status",{base64kid:F,status:t})})});o(this,Rn,A=>r(this,null,function*(){const e=I(this,CA,Yr).call(this,A);U(this,AA).debug("Prioritized key system list",{keySystemList:e});const t=yield CE(e,A.videoCodec,A.audioCodec);if(!t)return U(this,AA).warn("No supported key system found"),null;U(this,AA).debug("Supported key system found",t.mediaKeySystemAccess.getConfiguration());const{keySystem:B,mediaKeySystemAccess:F}=t;let n=null;return B==="clearkey"?(W(A.clearkeys,"No clearkeys found"),n=new SE(F,A.clearkeys)):B==="playready"?(W(A.playreadyLicenseUrl,"No playreadyLicenseUrl found"),n=new uE(F,A.playreadyLicenseUrl)):B==="widevine"?(W(A.widevineLicenseUrl,"No widevineLicenseUrl found"),n=new kE(F,A.widevineLicenseUrl)):B==="fairplay"&&(W(A.fairplayLicenseUrl,"No fairplayLicenseUrl found"),W(A.fairplayCertificate,"No fairplayCertificate found"),n=new JE(F,A.fairplayLicenseUrl,A.fairplayCertificate)),n&&(n.headers=U(this,Ai),n.queryParams=U(this,ei)),n}));l(this,$t,A),l(this,AA,e),l(this,Ai,t||{}),l(this,ei,B||{}),U(this,$t).on("received drm data",U(this,wB))}static isSupported(){return!!navigator.requestMediaKeySystemAccess}attach(A){l(this,xe,A),U(this,AA).info("Media element attached"),U(this,xe).addEventListener("encrypted",U(this,TB))}getStatistics(){var A,e;return!U(this,ge).resolved&&!((A=U(this,NA))!=null&&A.statistics)?null:S(S({},U(this,ge).resolved),(e=U(this,NA))==null?void 0:e.statistics)}unload(){var A;U(this,AA).info("Unloading EncryptedMediaExtensions"),U(this,$t).off("received drm data",U(this,wB)),(A=U(this,xe))==null||A.removeEventListener("encrypted",U(this,TB)),U(this,ot).forEach((e,t)=>{t.close()}),U(this,ot).clear(),l(this,lt,void 0),l(this,NA,void 0)}set headers(A){l(this,Ai,A),U(this,NA)&&(U(this,NA).headers=A)}set queryParams(A){l(this,ei,A),U(this,NA)&&(U(this,NA).queryParams=A)}onChannelSwitch(){if(!U(this,ge).resolved){U(this,AA).debug("DRM is not used, skipping channel switch handling");return}pd()&&U(this,In).platform.safariVersion<18&&I(this,CA,gF).call(this,{message:"DRM channel switch not supported on Safari < 18",isFatal:!0}),window.clearTimeout(U(this,ti));const A=U(this,ge).resolved;l(this,ge,new m),l(this,ti,window.setTimeout(()=>{U(this,ge).resolve(A)},NE))}}AA=new WeakMap,$t=new WeakMap,xe=new WeakMap,ge=new WeakMap,Ai=new WeakMap,ei=new WeakMap,NA=new WeakMap,ot=new WeakMap,lt=new WeakMap,ti=new WeakMap,In=new WeakMap,wB=new WeakMap,TB=new WeakMap,CA=new WeakSet,Gr=function(A){return r(this,null,function*(){try{yield I(this,CA,Mr).call(this),U(this,AA).debug("Media keys initialization completed"),yield I(this,CA,vr).call(this,A.initData,A.initDataType)}catch(e){I(this,CA,gF).call(this,{message:"Failed to handle encrypted event",isFatal:!0,error:e})}})},Mr=function(){return r(this,null,function*(){var e;U(this,AA).debug("Initializing media keys");const A=yield U(this,ge).promise;if((e=U(this,xe))!=null&&e.mediaKeys){U(this,AA).debug("Media keys already set on media element");return}if(U(this,lt)){U(this,AA).debug("Media keys initialization already in progress, waiting for completion"),yield U(this,lt);return}l(this,lt,r(this,null,function*(){const t=yield U(this,Rn).call(this,A);U(this,AA).debug("CDM obtained",{cdm:t}),W(U(this,xe),"No media element found"),W(t,"No CDM found");const B=yield t.getMediaKeys();t.certificate&&(yield I(this,CA,Hr).call(this,B,t.certificate)),U(this,AA).debug("Setting media keys on media element"),yield U(this,xe).setMediaKeys(B),l(this,NA,t)})),yield U(this,lt)})},vr=function(A,e){return r(this,null,function*(){W(U(this,NA),"No CDM manager found");const t=yield U(this,NA).getMediaKeys();if(!A||!I(this,CA,Lr).call(this,A)){U(this,AA).debug("Duplicate initData, no need to create new session",{initData:A});return}const B=t.createSession();U(this,AA).debug("Creating new session",{session:B}),B.addEventListener("keystatuseschange",U(this,Cn)),B.closed.then(F=>{U(this,AA).info("Session is closed",{reason:F})}),B.addEventListener("message",U(this,cn)),U(this,ot).set(B,A),U(this,AA).debug("Generating request for session",{session:B,initDataType:e,initData:A}),yield B.generateRequest(e,A)})},Lr=function(A){for(const[e,t]of U(this,ot))if(hE(A,t))return!1;return!0},cn=new WeakMap,Cn=new WeakMap,Hr=function(A,e){return r(this,null,function*(){try{U(this,AA).debug("Setting server certificate",{certificate:e}),(yield A.setServerCertificate(e))||U(this,AA).warn("Server certificates are not supported by the CDM.")}catch(t){U(this,AA).error("Failed to set server certificate",{error:t})}})},gF=function(A){const{message:e,isFatal:t,error:B}=A;U(this,AA).error(e,{error:B}),U(this,$t).emit("error",Ko(e,t,B))},Rn=new WeakMap,Yr=function(A){const e=[];return A.clearkeys&&e.push("clearkey"),A.playreadyLicenseUrl&&e.push("playready"),A.widevineLicenseUrl&&e.push("widevine"),A.fairplayLicenseUrl&&A.fairplayCertificate&&e.push("fairplay"),e},xr=function(A){return{fairplay:A.fairplayLicenseUrl,playready:A.playreadyLicenseUrl,widevine:A.widevineLicenseUrl,clearkey:void 0}};const mE=7,WE=8,pE=Q=>{const A=Q.getUint32(0,!1),e=Q.getUint8(0)<<16|Q.getUint16(1,!1);let t=0;return e===1?t+=3:A===1&&(t+=4),t},DE=Q=>pE(new DataView(Q,0))!==0,$o=(Q,A=0)=>{for(let e=A;e<Q.byteLength-4;e++){const t=Q.getUint32(e)===1,B=(Q.getUint8(e)<<16|Q.getUint16(e+1))===1;if(t||B)return{position:e,nalPrefixSize:t?4:3}}},ZE=Q=>Q&31,wE=(Q,A)=>{const e=new DataView(Q,0);let t=$o(e);for(;t;){const{position:B,nalPrefixSize:F}=t,n=$o(e,B+4),s=n?n.position-B-F:void 0;if(!A(new DataView(Q,B+F,s),F))return;t=n}},Al=Q=>{const A=[],e=[];if(!DE(Q)){const t=new DataView(Q,0),B=t.getUint8(5)&31;let F=6;for(let s=0;s<B;s++){const a=t.getUint16(F);A.push(Q.slice(F+2,F+2+a)),F+=a+2}const n=t.getUint8(F);F+=1;for(let s=0;s<n;s++){const a=t.getUint16(F);e.push(Q.slice(F+2,F+2+a)),F+=a+2}return{sequenceParameterSets:A,pictureParameterSets:e}}return wE(Q,t=>{const B=t.byteOffset+t.byteLength;switch(ZE(t.getUint8(0))){case WE:e.push(t.buffer.slice(t.byteOffset,B));break;case mE:A.push(t.buffer.slice(t.byteOffset,B));break}return!0}),{sequenceParameterSets:A,pictureParameterSets:e}},TE=Q=>{var k;const A=new DataView(Q),e=A.getUint8(1),t=A.getUint8(2),B=A.getUint8(3),F=new _(Q,4*8);F.readUnsignedExpGolomb();let n=1;switch(e){case 100:case 110:case 122:case 244:case 44:case 83:case 86:case 118:case 128:case 138:case 144:{if(n=F.readUnsignedExpGolomb(),n===3&&F.readBits(1),F.readUnsignedExpGolomb()+8,F.readUnsignedExpGolomb()+8,F.readBit(),F.readBit()){for(let w=0;w<(n!=3?8:12);w++)if(F.readBit()){const D=w<6?16:64;let G=0,v=8,H=8;for(let j=0;j<D;j++)H!=0&&(G=F.readSignedExpGolomb(),H=(v+G+256)%256),v=H==0?v:H}}break}}F.readUnsignedExpGolomb();const s=F.readUnsignedExpGolomb();if(s==0)F.readUnsignedExpGolomb();else if(s==1)throw new Error("Unhandled case");F.readUnsignedExpGolomb(),F.readBit();const a=F.readUnsignedExpGolomb(),d=F.readUnsignedExpGolomb(),E=F.readBit();E===0&&F.readBit(),F.readBit();let g=a+1,c=d+1;if(c*=2-E,c*=16,g*=16,F.readBit()){const p=n==1?1:0,M=1<<(n==1||n==2?1:0),D=2-E<<p,G=F.readUnsignedExpGolomb()*M,v=F.readUnsignedExpGolomb()*M,H=F.readUnsignedExpGolomb()*D,j=F.readUnsignedExpGolomb()*D;g-=G+v,c-=H+j}let J={numerator:1,denumerator:1};return F.readBit()&&F.readBit()&&(J=(k=yE[F.readBits(8)])!=null?k:{numerator:0,denumerator:0}),{width:g,height:c,pixelAspectRatio:J,profileIdc:e,constraintFlags:t,levelIdc:B}},yE=[{numerator:0,denumerator:0},{numerator:1,denumerator:1},{numerator:12,denumerator:11},{numerator:10,denumerator:11},{numerator:16,denumerator:11},{numerator:40,denumerator:33},{numerator:24,denumerator:11},{numerator:20,denumerator:11},{numerator:32,denumerator:11},{numerator:80,denumerator:33},{numerator:18,denumerator:11},{numerator:15,denumerator:11},{numerator:64,denumerator:33},{numerator:160,denumerator:99},{numerator:4,denumerator:3},{numerator:3,denumerator:2},{numerator:2,denumerator:1}],bE=184549376;function fE(Q){const A=new YQ(Q),e=GE(A);e.flags&bE&&ME(A);const t=vE(A);if(String.fromCharCode(...t.frameId)==="TXXX"){const F=new YQ(A.readBytes(t.size));return{header:e,txx:LE(F)}}}function GE(Q){const A=Q.readBytes(3),e=Q.readUint8(),t=Q.readUint8(),B=Q.readUint8(),F=Q.readUint32();return{id:A,majorVersion:e,minorVersion:t,flags:B,size:F}}function ME(Q){const A=Q.readUint32();return Q.readBytes(A-4),{}}function vE(Q){const A=Q.readBytes(4),e=Q.readUint32(),t=Q.readUint16();return{frameId:A,size:e,flags:t}}function LE(Q){const A=Q.readUint8(),e=Q.readUtf8String(),t=Q.readUtf8String();return{encoding:A,description:e,value:t}}function el(Q){let A=Q.readUint32();const e=[Q.readUint8(),Q.readUint8(),Q.readUint8(),Q.readUint8()],t=String.fromCharCode.apply(null,e);return A===1&&(A=Q.readUint64()-8),{size:A-8,type:t}}function HE(Q,A){const e=el(A),t=new YQ(A.readBytes(e.size));if(e.type!==Q.type)throw new Error(`invalid error type: ${e.type}, expected ${Q.type}`);const B=Q.decodeData(t);return t.readRemaining(),B}function Ft(Q){const A=Q.readUint8(),e=Q.readUint24();return{version:A,flags:e}}const Qi=class Qi{constructor({timescale:A,presentationTime:e,presentationTimeDelta:t,schemeIdUri:B,value:F,eventDuration:n,id:s,data:a}){i(this,"type",Qi.type);i(this,"timescale");i(this,"presentationTime");i(this,"presentationTimeDelta");i(this,"schemeIdUri");i(this,"value");i(this,"eventDuration");i(this,"id");i(this,"data");this.timescale=A,this.presentationTime=e,this.presentationTimeDelta=t,this.schemeIdUri=B,this.value=F,this.eventDuration=n,this.id=s,this.data=a}static decodeData(A){const{version:e}=Ft(A);switch(e){case 1:{const t=A.readUint32(),B=A.readUint64(),F=A.readUint32(),n=A.readUint32(),s=A.readUtf8String(),a=A.readUtf8String(),d=A.remaining(),E=A.readBytes(d);return new Qi({timescale:t,presentationTime:B,eventDuration:F,id:n,schemeIdUri:s,value:a,data:E})}case 0:{const t=A.readUtf8String(),B=A.readUtf8String(),F=A.readUint32(),n=A.readUint32(),s=A.readUint32(),a=A.readUint32(),d=A.remaining(),E=A.readBytes(d);return new Qi({timescale:F,presentationTimeDelta:n,schemeIdUri:t,value:B,eventDuration:s,id:a,data:E})}default:throw new Error(`unsupported version ${e}`)}}};i(Qi,"type","emsg");let NF=Qi;const yB=class yB{constructor(A){i(this,"type",yB.type);i(this,"data");this.data=A}static decodeData(A){const e=A.readRemaining();return new yB(e)}};i(yB,"type","mdat");let mF=yB;const bB=class bB{constructor(A,e,t){i(this,"type",bB.type);i(this,"extra");i(this,"byteOffset");i(this,"baseMediaDecodeTime");this.extra=A,this.byteOffset=e,this.baseMediaDecodeTime=t}static decodeData(A){const e=Ft(A),t=A.byteOffset();let B=0;return e.version===1?B=A.readUint64():B=A.readUint32(),new bB(e,t,B)}};i(bB,"type","tfdt");let WF=bB;const dA=class dA{constructor(A,e,t){i(this,"type",dA.type);i(this,"dataOffset");i(this,"firstSampleFlags");i(this,"samplesCount");i(this,"sampleDurations",[]);i(this,"sampleSizes",[]);i(this,"sampleFlags",[]);i(this,"sampleCts",[]);this.dataOffset=e,this.firstSampleFlags=t,this.samplesCount=A}is_sync_sample(A){const e=dA.FLAG_SAMPLE_FLAG_IS_NON_SYNC|dA.FLAG_SAMPLE_DEPENDS_YES,t=this.sampleFlags[A];if(typeof t!="undefined")return(t&e)===0;if(A===0&&this.firstSampleFlags)return(this.firstSampleFlags&e)===0}static decodeData(A){const{flags:e}=Ft(A),t=A.readUint32();let B,F;e&dA.TRUN_DATA_OFFSET&&(B=A.readUint32()),e&dA.TRUN_FIRST_SAMPLE_FLAGS&&(F=A.readUint32());const n=new dA(t,B,F);for(let s=0;s<t;s++)e&dA.SAMPLE_DURATION&&n.sampleDurations.push(A.readUint32()),e&dA.SAMPLE_SIZE&&n.sampleSizes.push(A.readUint32()),e&dA.SAMPLE_FLAGS&&n.sampleFlags.push(A.readUint32()),e&dA.SAMPLE_CTS&&n.sampleCts.push(A.readUint32());return n}};i(dA,"TRUN_DATA_OFFSET",1),i(dA,"TRUN_FIRST_SAMPLE_FLAGS",4),i(dA,"SAMPLE_DURATION",256),i(dA,"SAMPLE_SIZE",512),i(dA,"SAMPLE_FLAGS",1024),i(dA,"SAMPLE_CTS",2048),i(dA,"FLAG_SAMPLE_FLAG_IS_NON_SYNC",65536),i(dA,"FLAG_SAMPLE_DEPENDS_NO",33554432),i(dA,"FLAG_SAMPLE_DEPENDS_YES",16777216),i(dA,"type","trun");let CB=dA;const fB=class fB{constructor(A,e){i(this,"type",fB.type);i(this,"tfdt");i(this,"trun");this.tfdt=A,this.trun=e}static decodeData(A){let e,t;for(;A.remaining()>0;){const B=re(A);B instanceof WF&&(e=B),B instanceof CB&&(t=B)}return new fB(e,t)}};i(fB,"type","traf");let pF=fB;const GB=class GB{constructor(A){i(this,"type",GB.type);i(this,"traf");this.traf=A}static decodeData(A){let e;for(;A.remaining()>0;){const t=re(A);t instanceof pF&&(e=t)}if(!e)throw new Error("No traf found");return new GB(e)}};i(GB,"type","moof");let DF=GB;const MB=class MB{constructor(){i(this,"type",MB.type)}static decodeData(A){return new MB}};i(MB,"type","mvhd");let ZF=MB;const vB=class vB{constructor(A){i(this,"type",vB.type);i(this,"fourCC");this.fourCC=A}mediaType(){switch(this.fourCC){case"vide":return"video";case"soun":return"audio";case"sbtl":return"text";default:throw new Error("Unknown media type")}}static decodeData(A){Ft(A),A.readUint32();const e=String.fromCharCode(...A.readBytes(4));return new vB(e)}};i(vB,"type","hdlr");let wF=vB;const ii=class ii{constructor(A,e,t,B){i(this,"type",ii.type);i(this,"creationTime");i(this,"modificationTime");i(this,"timescale");i(this,"duration");this.creationTime=A,this.modificationTime=e,this.timescale=t,this.duration=B}static decodeData(A){const{version:e}=Ft(A);if(e===1){const s=A.readUint64(),a=A.readUint64(),d=A.readUint32(),E=A.readUint64();return new ii(s,a,d,E)}const t=A.readUint32(),B=A.readUint32(),F=A.readUint32(),n=A.readUint32();return new ii(t,B,F,n)}};i(ii,"type","mdhd");let TF=ii;const LB=class LB{constructor(A,e,t,B){i(this,"type",LB.type);i(this,"av01");i(this,"avc1");i(this,"opus");i(this,"codec");this.avc1=A,this.av01=e,this.opus=t,this.codec=B}mediaType(){return this.avc1||this.av01?"video":"audio"}width(){var A;return(A=this.avc1)==null?void 0:A.width}height(){var A;return(A=this.avc1)==null?void 0:A.height}static decodeData(A){Ft(A);const e=A.readUint32();let t,B,F,n;for(let s=0;s<e;s++)for(;A.remaining()>0;){const a=re(A);switch(a.type){case"avc1":t="h264",B=a;break;case"av01":t="av1",n=a;break;case"mp4a":t="aac";break;case"Opus":t="opus",F=a;break}}return new LB(B,n,F,t)}};i(LB,"type","stsd");let yF=LB;const HB=class HB{constructor(A){i(this,"type",HB.type);i(this,"stsd");this.stsd=A}static decodeData(A){let e;for(;A.remaining()>0;){const t=re(A);t instanceof yF&&(e=t)}if(!e)throw new Error("No stsd found");return new HB(e)}};i(HB,"type","stbl");let bF=HB;const YB=class YB{constructor(A){i(this,"type",YB.type);i(this,"stbl");this.stbl=A}static decodeData(A){let e;for(;A.remaining()>0;){const t=re(A);t instanceof bF&&(e=t)}if(!e)throw new Error("No stbl found");return new YB(e)}};i(YB,"type","minf");let fF=YB;const xB=class xB{constructor(A,e,t){i(this,"type",xB.type);i(this,"hdlr");i(this,"minf");i(this,"mdhd");this.hdlr=A,this.minf=e,this.mdhd=t}static decodeData(A){let e,t,B;for(;A.remaining()>0;){const F=re(A);F instanceof wF&&(e=F),F instanceof fF&&(t=F),F instanceof TF&&(B=F)}if(!e)throw new Error("No hdlr found");if(!t)throw new Error("No minf found");if(!B)throw new Error("No mdhd found");return new xB(e,t,B)}};i(xB,"type","mdia");let GF=xB;const XB=class XB{constructor(A,e,t,B,F,n,s,a){i(this,"type",XB.type);i(this,"modificationTime");i(this,"creationTime");i(this,"trackId");i(this,"duration");i(this,"alternateGroup");i(this,"volume");i(this,"width");i(this,"height");this.modificationTime=A,this.creationTime=e,this.trackId=t,this.duration=B,this.alternateGroup=F,this.volume=n,this.width=s,this.height=a}static decodeData(A){const e=Ft(A);let t=0,B=0;e.version===1?(t=A.readUint64(),B=A.readUint64()):(t=A.readUint32(),B=A.readUint32());const F=A.readUint32();A.readUint32();const n=A.readUint32();A.readUint32(),A.readUint32(),A.readUint16();const s=A.readUint16(),a=A.readUint16();A.readUint16(),new Array(9).fill(0).map(()=>A.readUint32());const d=A.readUint16();A.readUint16();const E=A.readUint16();return A.readUint16(),new XB(t,B,F,n,s,a,d,E)}};i(XB,"type","tkhd");let MF=XB;const KB=class KB{constructor(A,e){i(this,"type",KB.type);i(this,"tkhd");i(this,"mdia");this.tkhd=A,this.mdia=e}static decodeData(A){let e,t;for(;A.remaining()>0;){const B=re(A);B instanceof MF&&(e=B),B instanceof GF&&(t=B)}if(!e)throw new Error("No tkhd found");if(!t)throw new Error("No mdia found");return new KB(e,t)}};i(KB,"type","trak");let vF=KB;const OB=class OB{constructor(A,e){i(this,"type",OB.type);i(this,"mvhd");i(this,"traks");this.mvhd=A,this.traks=e}static decodeData(A){let e;const t=[];for(;A.remaining()>0;){const B=re(A);B instanceof vF&&t.push(B),B instanceof ZF&&(e=B)}if(!e)throw new Error("No mvhd found");return new OB(e,t)}};i(OB,"type","moov");let LF=OB;const zB=class zB{constructor(A,e,t,B,F,n,s,a){i(this,"type",zB.type);i(this,"configurationVersion");i(this,"avcProfileIndication");i(this,"profileCompatibility");i(this,"avcLevelIndication");i(this,"lengthSizeMinusOne");i(this,"sequenceParameterSets");i(this,"pictureParameterSets");i(this,"bytes");this.configurationVersion=A,this.avcProfileIndication=e,this.profileCompatibility=t,this.avcLevelIndication=B,this.lengthSizeMinusOne=F,this.sequenceParameterSets=n,this.pictureParameterSets=s,this.bytes=a}static decodeData(A){const e=A.buffer(),t=A.readUint8(),B=A.readUint8(),F=A.readUint8(),n=A.readUint8(),s=A.readUint8()&3,a=A.readUint8()&31,d=[];for(let c=0;c<a;c++){const J=A.readBytes(A.readUint16());d.push(J)}const E=A.readUint8(),g=[];for(let c=0;c<E;c++){const J=A.readBytes(A.readUint16());g.push(J)}return new zB(t,B,F,n,s,d,g,e)}};i(zB,"type","avcC");let Ds=zB;const PB=class PB{constructor(A,e,t,B,F){i(this,"type",PB.type);i(this,"avcC");i(this,"width");i(this,"height");i(this,"horizontalResolution");i(this,"verticalResolution");this.avcC=A,this.width=e,this.height=t,this.horizontalResolution=B,this.verticalResolution=F}static decodeData(A){A.readUint32(),A.readUint16(),A.readUint16(),A.readUint32(),A.readUint64(),A.readUint32();const e=A.readUint16(),t=A.readUint16(),B=A.readUint32(),F=A.readUint32();A.readUint32(),A.readUint16(),A.readBytes(32),A.readUint16(),A.readUint16();let n;for(;A.remaining()>0;){const s=re(A);switch(s.type){case"avcC":n=s;break}}if(!n)throw new Error("no avcC");return new PB(n,e,t,B,F)}};i(PB,"type","avc1");let Zs=PB;const jB=class jB{constructor(){i(this,"type",jB.type)}static decodeData(A){return new jB}};i(jB,"type","dOps");let ws=jB;const qB=class qB{constructor(A,e,t){i(this,"type",qB.type);i(this,"dops");i(this,"channelCount");i(this,"sampleRate");this.dops=A,this.channelCount=e,this.sampleRate=t}static decodeData(A){A.readUint32(),A.readUint16(),A.readUint16();const e=A.readUint16();A.readUint16(),A.readUint32();const t=A.readUint16();A.readUint16(),A.readUint32();const B=A.readUint16();A.readUint16(),e===1&&(A.readUint64(),A.readUint64());const F=HE(ws,A);return new qB(F,t,B)}};i(qB,"type","Opus");let Ts=qB;const Bi=class Bi{constructor(A,e){i(this,"type",Bi.type);i(this,"ntpTimestamp");i(this,"mediaTime");this.ntpTimestamp=A,this.mediaTime=e}static decodeData(A){const{version:e}=Ft(A);A.readUint32();const t=A.readUint32(),B=A.readUint32();if(e===1){const n=A.readUint64();return new Bi([t,B],n)}const F=A.readUint32();return new Bi([t,B],F)}};i(Bi,"type","prft");let HF=Bi;class YE{constructor(A,e){o(this,_B);o(this,$B);l(this,_B,A),l(this,$B,e.readBytes(A.size))}data(){return U(this,$B)}get type(){return U(this,_B).type}}_B=new WeakMap,$B=new WeakMap;const xE={moov:LF,trak:vF,tkhd:MF,mvhd:ZF,moof:DF,traf:pF,tfdt:WF,trun:CB,mdat:mF,mdia:GF,hdlr:wF,minf:fF,stbl:bF,mdhd:TF,stsd:yF,prft:HF,avc1:Zs,avcC:Ds,Opus:Ts,emsg:NF};function re(Q){const A=el(Q),e=xE[A.type],t=new YQ(Q.readBytes(A.size));if(!e){const F=new YE(A,t);return t.readRemaining(),F}const B=e.decodeData(t);return t.readRemaining(),B}function XE(Q){if(Q.byteLength<8)throw new Error("Buffer too small");const A=new YQ(Q),e=new Map;for(;A.remaining()>0;){const F=re(A);e.set(F.type,F)}const t=e.get("ftyp"),B=e.get("moov");if(!t)throw new Error("ftyp atom not found");if(!B||!(B instanceof LF))throw new Error("moov atom not found");return{ftyp:t,moov:B}}function KE(Q){if(Q.byteLength<8)throw new Error("Buffer too small");const A=new YQ(Q),e=new Map,t=[];for(;A.remaining()>0;){const s=re(A);s instanceof NF&&t.push(s),e.set(s.type,s)}const B=e.get("moof"),F=e.get("mdat"),n=e.get("prft");if(!B||!(B instanceof DF))throw new Error("moof atom not found");if(!F||!(F instanceof mF))throw new Error("mdat atom not found");if(n&&!(n instanceof HF))throw new Error("invalid prft found");return{moof:B,mdat:F,prft:n,emsgs:t}}class OE{constructor(A){o(this,AU);o(this,eU);l(this,AU,A),l(this,eU,XE(A))}rawBytes(){return U(this,AU)}init(){return U(this,eU)}}AU=new WeakMap,eU=new WeakMap;const Ha=class Ha{constructor(A,e){o(this,vA);o(this,OA);o(this,nA);l(this,vA,e),l(this,OA,A),l(this,nA,KE(e))}clone(){return new Ha(U(this,OA),new Uint8Array(U(this,vA).buffer.slice(U(this,vA).byteOffset,U(this,vA).byteOffset+U(this,vA).byteLength)))}updateBaseMediaDecodeTime(A){const e=new DataView(U(this,vA).buffer,U(this,vA).byteOffset,U(this,vA).byteLength);if(U(this,nA).moof.traf.tfdt)if(U(this,nA).moof.traf.tfdt.baseMediaDecodeTime=A,U(this,nA).moof.traf.tfdt.extra.version===1){const t=Math.floor(A/4294967296),B=(A&4294967295)>>>0;e.setUint32(U(this,nA).moof.traf.tfdt.byteOffset-U(this,vA).byteOffset,t),e.setUint32(U(this,nA).moof.traf.tfdt.byteOffset-U(this,vA).byteOffset+4,B)}else e.setUint32(U(this,nA).moof.traf.tfdt.byteOffset-U(this,vA).byteOffset,A)}producerReferenceTime(){if(!U(this,nA).prft)return;const[A,e]=U(this,nA).prft.ntpTimestamp,t=A*1e3+e/eo(2,32)*1e3,B=new Date(Date.UTC(1900,0,1,0,0,0));return new Date(B.getTime()+t)}duration(){var A;return((A=U(this,nA).moof.traf.trun)==null?void 0:A.sampleDurations.reduce((e,t)=>e+t,0))||0}baseMediaDecodeTime(){var e;const A=(e=U(this,nA).moof.traf.tfdt)==null?void 0:e.baseMediaDecodeTime;if(!A)throw new Error("no baseMediaDecodeTime");return A}startsWithKeyframe(){const A=U(this,nA).moof.traf.trun,e=(A==null?void 0:A.firstSampleFlags)||(A==null?void 0:A.sampleFlags[0]);return e?(e&CB.FLAG_SAMPLE_DEPENDS_NO)!==0:!1}compositionTimeOffset(A){var e;return(e=U(this,nA).moof.traf.trun)==null?void 0:e.sampleCts[A]}timescale(){const A=U(this,OA).init().moov.traks[0];if(!A)throw new Error("no tracks");return A.mdia.mdhd.timescale}mediaType(){var e;const A=(e=U(this,OA).init().moov.traks[0])==null?void 0:e.mdia.hdlr.mediaType();if(!A)throw new Error("no media type");return A}header(){return U(this,OA)}fragment(){return U(this,nA)}samplesCount(){var A;return((A=U(this,nA).moof.traf.trun)==null?void 0:A.samplesCount)||0}sample(A){var J,k,p,w,M,D,G,v,H,j,VA,FA,uA,se,WA;const e=(J=U(this,OA).init().moov.traks[0])==null?void 0:J.mdia.minf.stbl.stsd.codec,t=((k=U(this,nA).moof.traf.trun)==null?void 0:k.samplesCount)||0,B=(p=U(this,nA).moof.traf.tfdt)==null?void 0:p.baseMediaDecodeTime;if(A>=t||typeof B=="undefined"||!e)return;const F=((w=U(this,nA).moof.traf.trun)==null?void 0:w.sampleDurations[A])||0,n=((M=U(this,nA).moof.traf.trun)==null?void 0:M.sampleDurations.slice(0,A).reduce((yA,C)=>yA+C,0))||0,s=B+n,a=((D=U(this,OA).init().moov.traks[0])==null?void 0:D.mdia.mdhd.timescale)||1e3,d=((G=U(this,nA).moof.traf.trun)==null?void 0:G.sampleSizes[A])||U(this,nA).mdat.data.byteLength,E=((v=U(this,nA).moof.traf.trun)==null?void 0:v.sampleSizes.slice(0,A).reduce((yA,C)=>yA+C,0))||0,g=U(this,nA).mdat.data.subarray(E,E+d),c=((H=U(this,nA).moof.traf.trun)==null?void 0:H.is_sync_sample(A))||!1;if(this.mediaType()==="video"){const yA=((j=U(this,OA).init().moov.traks[0])==null?void 0:j.tkhd.width)||0,C=((VA=U(this,OA).init().moov.traks[0])==null?void 0:VA.tkhd.height)||0;return{type:"video",codec:e,width:yA,height:C,duration:F,isSync:c,timescale:a,timestamp:s,data:g}}return{type:"audio",codec:e,channels:((uA=(FA=U(this,OA).init().moov.traks[0])==null?void 0:FA.mdia.minf.stbl.stsd.opus)==null?void 0:uA.channelCount)||0,sampleRate:((WA=(se=U(this,OA).init().moov.traks[0])==null?void 0:se.mdia.minf.stbl.stsd.opus)==null?void 0:WA.sampleRate)||0,duration:F,isSync:c,timestamp:s,data:g,timescale:a}}rawBytes(){return U(this,vA)}};vA=new WeakMap,OA=new WeakMap,nA=new WeakMap;let ys=Ha;class tl{constructor(A){o(this,Ui);l(this,Ui,new OE(A))}header(){return U(this,Ui)}createFragment(A){return new ys(U(this,Ui),A)}}Ui=new WeakMap;function b(Q){const A=new ArrayBuffer(Q.length),e=new Uint8Array(A);for(let t=0,B=Q.length;t<B;t++)e[t]=Q.charCodeAt(t);return new Uint8Array(A)}const QA={ftyp:b("ftyp"),mvhd:b("mvhd"),moov:b("moov"),trak:b("trak"),tkhd:b("tkhd"),mdia:b("mdia"),mdhd:b("mdhd"),hdlr:b("hdlr"),minf:b("minf"),vmhd:b("vmhd"),smhd:b("smhd"),dinf:b("dinf"),dref:b("dref"),stbl:b("stbl"),stsd:b("stsd"),avc1:b("avc1"),av01:b("av01"),av1C:b("av1C"),avcC:b("avcC"),esds:b("esds"),colr:b("colr"),nclx:b("nclx"),mvex:b("mvex"),trex:b("trex"),udta:b("udta"),meta:b("meta"),ilst:b("ilst"),moof:b("moof"),mfhd:b("mfhd"),traf:b("traf"),tfhd:b("tfhd"),tfdt:b("tfdt"),trun:b("trun"),mdat:b("mdat"),mp4a:b("mp4a"),Opus:b("Opus"),prft:b("prft"),dOps:b("dOps"),emsg:b("emsg")},zE=1e3,RB=b("iso6"),Ql=new Uint8Array([0,0,2,0]),PE=[RB,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([97,118,99,49]),new Uint8Array([109,112,52,49])],jE=[RB,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([97,118,48,49]),new Uint8Array([109,112,52,49])],qE=[RB,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([109,112,52,49])];class il{constructor(){i(this,"writer",new wd)}}const IA=(Q,A,e)=>{Q.writer.writeUint32(e+8),Q.writer.writeBytes(A)},hA=(Q,A,e,t,B)=>{IA(Q,A,e+4),Q.writer.writeUint8(t),Q.writer.writeUint24(B)},bs=(Q,A)=>{IA(Q,QA.ftyp,RB.byteLength+Ql.byteLength+A.reduce((e,t)=>e+t.byteLength,0)),Q.writer.writeBytes(RB),Q.writer.writeBytes(Ql),A.forEach(e=>Q.writer.writeBytes(e))},_E=(Q,A,e)=>{hA(Q,QA.mvhd,96,0,0),Q.writer.writeUint32(0),Q.writer.writeUint32(0),Q.writer.writeUint32(e),Q.writer.writeUint32(A),Q.writer.writeUint32(65536),Q.writer.writeUint16(256),Q.writer.writeBytes(new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])),Q.writer.writeUint32(2)},Bl=Q=>"sequenceParameterSets"in Q,fs=Q=>"sequenceHeader"in Q,Ht=Q=>Q.type=="video",hB=Q=>Q.type=="audio",$E=(Q,A,e)=>{const t=Q.writer.position();hA(Q,QA.tkhd,0,0,3),Q.writer.writeUint32(0),Q.writer.writeUint32(0),Q.writer.writeUint32(A.trackId),Q.writer.writeUint32(0),Q.writer.writeUint32(A.duration*e/A.timescale),Q.writer.writeUint32(0),Q.writer.writeUint32(0),Q.writer.writeUint16(0),Q.writer.writeUint16(hB(A)?1:0),Q.writer.writeUint16(hB(A)?256:0),Q.writer.writeUint16(0),Q.writer.writeBytes(new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0])),Ht(A)?(Q.writer.writeUint32(A.width*65536),Q.writer.writeUint32(A.height*65536)):hB(A)&&(Q.writer.writeUint32(0),Q.writer.writeUint32(0)),Q.writer.writeUint32At(t,Q.writer.position()-t)},Ag=(Q,A)=>{hA(Q,QA.mdhd,20,0,0),Q.writer.writeUint32(0),Q.writer.writeUint32(0),Q.writer.writeUint32(A.timescale),Q.writer.writeUint32(A.duration);const e=A.lang||"und",t=(e.charCodeAt(0)&31)<<10|(e.charCodeAt(1)&31)<<5|e.charCodeAt(2)&31;Q.writer.writeUint16(t),Q.writer.writeUint16(0)},eg=(Q,A)=>{const e=Q.writer.position();hA(Q,QA.hdlr,0,0,0),Q.writer.writeUint32(0),Q.writer.writeBytes(b(Ht(A)?"vide":"soun")),Q.writer.writeUint32(0),Q.writer.writeUint32(0),Q.writer.writeUint32(0),Q.writer.writeBytes(b(Ht(A)?"VideoHandler\0":"SoundHandler\0")),Q.writer.writeUint32At(e,Q.writer.position()-e)},tg=Q=>{const A=Q.writer.position();IA(Q,QA.dinf,0),hA(Q,QA.dref,16,0,0),Q.writer.writeUint32(1),hA(Q,b("url "),0,0,1),Q.writer.writeUint32At(A,Q.writer.position()-A)},Qg=(Q,A)=>{const e=Q.writer.position();IA(Q,QA.avcC,0),Q.writer.writeUint8(1),Q.writer.writeUint8(A.sequenceParameterSets[0][1]),Q.writer.writeUint8(A.sequenceParameterSets[0][2]),Q.writer.writeUint8(A.sequenceParameterSets[0][3]),Q.writer.writeUint8(255),Q.writer.writeUint8(224|A.sequenceParameterSets.length),A.sequenceParameterSets.forEach(t=>{Q.writer.writeUint16(t.byteLength),Q.writer.writeBytes(t)}),Q.writer.writeUint8(A.pictureParameterSets.length),A.pictureParameterSets.forEach(t=>{Q.writer.writeUint16(t.byteLength),Q.writer.writeBytes(t)}),Q.writer.writeUint32At(e,Q.writer.position()-e)},ig=(Q,A)=>{var s,a;const e=Q.writer.position();IA(Q,QA.av1C,0);const{seqProfile:t,operatingPoints:B,colorConfig:F}=A.parsedSequenceHeader,n=B[0];Q.writer.writeUint8(129),Q.writer.writeUint8(t<<5|((s=n==null?void 0:n.seqLevelIdx)!=null?s:0)),Q.writer.writeUint8(((a=n==null?void 0:n.tier)!=null?a:0)|(F.highBitDepth?1:0)|(F.bitDepth===12?1:0)<<5|(F.monoChrome?1:0)<<4|F.subsamplingX<<3|F.subsamplingY<<2|F.chromaSamplePosition&65535),Q.writer.writeUint8(0),Q.writer.writeBytes(A.sequenceHeader),Q.writer.writeUint32At(e,Q.writer.position()-e)},Bg=(Q,A)=>{const e=Q.writer.position(),t=fs(A)?QA.av01:QA.avc1;IA(Q,t,0),Q.writer.writeUint32(0),Q.writer.writeUint16(0),Q.writer.writeUint16(1),Q.writer.writeUint16(0),Q.writer.writeUint16(0),Q.writer.writeUint32(0),Q.writer.writeUint32(0),Q.writer.writeUint32(0),Q.writer.writeUint16(A.width),Q.writer.writeUint16(A.height),Q.writer.writeUint32(4718592),Q.writer.writeUint32(4718592),Q.writer.writeUint32(0),Q.writer.writeUint16(1),Q.writer.writeUint8(0),Q.writer.writeBytes(new Uint8Array(31)),Q.writer.writeUint16(24),Q.writer.writeUint16(-1),Bl(A)?Qg(Q,A):fs(A)&&(ig(Q,A),A.parsedSequenceHeader.colorConfig&&(IA(Q,b("colr"),11),Q.writer.writeBytes(QA.nclx),Q.writer.writeUint16(A.parsedSequenceHeader.colorConfig.colorPrimaries),Q.writer.writeUint16(A.parsedSequenceHeader.colorConfig.transferCharacteristics),Q.writer.writeUint16(A.parsedSequenceHeader.colorConfig.matrixCoefficients),Q.writer.writeUint8(A.parsedSequenceHeader.colorConfig.colorRange?1:0))),A.pixelAspectRatio&&(IA(Q,b("pasp"),8),Q.writer.writeUint32(A.pixelAspectRatio.numerator),Q.writer.writeUint32(A.pixelAspectRatio.denumerator)),A.bitrate&&(IA(Q,b("btrt"),12),Q.writer.writeUint32(0),Q.writer.writeUint32(A.bitrate),Q.writer.writeUint32(A.bitrate)),Q.writer.writeUint32At(e,Q.writer.position()-e)},YF=(Q,A,e)=>{let t=3;for(Q.writer.writeUint8(A);t>0;t--)Q.writer.writeUint8(e>>7*t|128);Q.writer.writeUint8(e&127)},Ug=(Q,A)=>{const e=A.decoderConfig.byteLength>0?A.decoderConfig.byteLength+5:0,t=Q.writer.position();hA(Q,QA.esds,0,0,0),YF(Q,3,21+e+5+1),Q.writer.writeUint16(A.trackId),Q.writer.writeUint8(0),YF(Q,4,13+e);const B=A.codec==="mp3"&&A.sampleRate>24e3?107:64;Q.writer.writeUint8(B),Q.writer.writeUint8(21),Q.writer.writeUint24(0),Q.writer.writeUint32(A.bitrate||0),Q.writer.writeUint32(A.bitrate||0),A.decoderConfig.byteLength>0&&(YF(Q,5,A.decoderConfig.byteLength),Q.writer.writeBytes(A.decoderConfig)),YF(Q,6,1),Q.writer.writeUint8(2),Q.writer.writeUint32At(t,Q.writer.position()-t)},Fg=Q=>{switch(Q){case"aac":case"mp3":return"mp4a";case"opus":return"Opus"}},ng=(Q,A)=>{const e=Q.writer.position();IA(Q,b("dOps"),0),Q.writer.writeUint8(0);const t=A.decoderConfig,B=new DataView(t.buffer,t.byteOffset,t.byteLength);Q.writer.writeUint8(B.getUint8(9)),Q.writer.writeUint16(B.getUint16(10,!0)),Q.writer.writeUint32(B.getUint32(12,!0)),Q.writer.writeUint16(B.getUint16(16,!0)),Q.writer.writeBytes(A.decoderConfig.slice(18)),Q.writer.writeUint32At(e,Q.writer.position()-e)},sg=(Q,A)=>{const e=Q.writer.position();switch(IA(Q,b(Fg(A.codec)),0),Q.writer.writeUint32(0),Q.writer.writeUint16(0),Q.writer.writeUint16(1),Q.writer.writeUint16(0),Q.writer.writeUint16(0),Q.writer.writeUint32(0),Q.writer.writeUint16(A.channelCount),Q.writer.writeUint16(16),Q.writer.writeUint32(0),Q.writer.writeUint16(A.sampleRate),Q.writer.writeUint16(0),A.codec){case"aac":case"mp3":Ug(Q,A);break;case"opus":ng(Q,A);break}A.bitrate&&(IA(Q,b("btrt"),12),Q.writer.writeUint32(0),Q.writer.writeUint32(A.bitrate),Q.writer.writeUint32(A.bitrate)),Q.writer.writeUint32At(e,Q.writer.position()-e)},ag=(Q,A)=>{const e=Q.writer.position();IA(Q,QA.stbl,0);const t=Q.writer.position();hA(Q,QA.stsd,0,0,0),Q.writer.writeUint32(1),Ht(A)?Bg(Q,A):hB(A)&&sg(Q,A),Q.writer.writeUint32At(t,Q.writer.position()-t),hA(Q,b("stts"),4,0,0),Q.writer.writeUint32(0),hA(Q,b("stsc"),4,0,0),Q.writer.writeUint32(0),hA(Q,b("stsz"),8,0,0),Q.writer.writeUint32(0),Q.writer.writeUint32(0),hA(Q,b("stco"),4,0,0),Q.writer.writeUint32(0),Q.writer.writeUint32At(e,Q.writer.position()-e)},og=(Q,A)=>{const e=Q.writer.position();IA(Q,QA.minf,0),Ht(A)?(hA(Q,QA.vmhd,8,0,1),Q.writer.writeUint32(0),Q.writer.writeUint32(0)):hB(A)&&(hA(Q,QA.smhd,4,0,0),Q.writer.writeUint16(0),Q.writer.writeUint16(0)),tg(Q),ag(Q,A),Q.writer.writeUint32At(e,Q.writer.position()-e)},lg=(Q,A)=>{const e=Q.writer.position();IA(Q,QA.mdia,0),Ag(Q,A),eg(Q,A),og(Q,A),Q.writer.writeUint32At(e,Q.writer.position()-e)},rg=(Q,A,e)=>{const t=Q.writer.position();IA(Q,QA.trak,0),$E(Q,A,e),lg(Q,A),Q.writer.writeUint32At(t,Q.writer.position()-t)},dg=(Q,A)=>{hA(Q,QA.trex,20,0,0),Q.writer.writeUint32(A.trackId),Q.writer.writeUint32(1),Q.writer.writeUint32(0),Q.writer.writeUint32(0),Q.writer.writeUint32(0)},Eg=(Q,A)=>{const e=Q.writer.position();IA(Q,QA.mvex,0),A.forEach(t=>dg(Q,t)),Q.writer.writeUint32At(e,Q.writer.position()-e)},gg=(Q,A,e,t)=>{const B=Q.writer.position();IA(Q,QA.moov,0),_E(Q,0,e),A.forEach(F=>rg(Q,F,e)),Eg(Q,A),Q.writer.writeUint32At(B,Q.writer.position()-B)},Ig=(Q,A)=>{const e=Q.writer.position();hA(Q,QA.tfhd,16,0,56),Q.writer.writeUint32(A.trackId),Q.writer.writeUint32(A.defaultDuration||0),Q.writer.writeUint32(A.defaultSize||0),Q.writer.writeUint32(A.defaultFlags||0),Q.writer.writeUint32At(e,Q.writer.position()-e)},cg=(Q,A)=>{const e=Q.writer.position();hA(Q,QA.tfdt,8,1,0);const t=Math.floor(A.timestamp/4294967296),B=(A.timestamp&4294967295)>>>0;Q.writer.writeUint32(t),Q.writer.writeUint32(B),Q.writer.writeUint32At(e,Q.writer.position()-e)},Cg=(Q,A)=>{if(!A.samples[0])throw new Error("At least one sample must be provided");const e=A.samples.some(a=>!!a.compositionTimeOffset),t=Gs(A.samples[0])!==A.defaultFlags,B=A.samples.length>1;let F=1;t&&(F|=4),e&&(F|=2048),B&&(F|=512,F|=256,F|=1024);const n=Q.writer.position();hA(Q,QA.trun,16,1,F),Q.writer.writeUint32(A.samples.length);const s=Q.writer.position();Q.writer.writeUint32(0),t&&Q.writer.writeUint32(Gs(A.samples[0]));for(const a of A.samples)B&&(Q.writer.writeUint32(a.duration),Q.writer.writeUint32(a.data.byteLength),Q.writer.writeUint32(Gs(a))),e&&Q.writer.writeUint32(a.compositionTimeOffset||0);Q.writer.writeUint32At(s,Q.writer.position()+8),Q.writer.writeUint32At(n,Q.writer.position()-n)},Gs=Q=>Q.isSync?33554432:16842752,Rg=(Q,A)=>{const e=Q.writer.position();IA(Q,QA.traf,0),Ig(Q,A),cg(Q,A),Cg(Q,A),Q.writer.writeUint32At(e,Q.writer.position()-e)},hg=(Q,A)=>{hA(Q,QA.mfhd,4,0,0),Q.writer.writeUint32(A)},Sg=(Q,A)=>{const e=Q.writer.position();IA(Q,QA.moof,0),hg(Q,A.sequenceNumber),Rg(Q,A),Q.writer.writeUint32At(e,Q.writer.position()-e)},Jg=(Q,A)=>{const e=A.samples.reduce((t,B)=>t+B.data.byteLength,0);IA(Q,QA.mdat,e),A.samples.forEach(t=>Q.writer.writeBytes(t.data))},xF=(Q,A)=>{const e=new il,t=Q.filter(F=>Ht(F)&&Bl(F)).length>0;return Q.filter(F=>Ht(F)&&fs(F)).length>0?bs(e,jE):t?bs(e,PE):bs(e,qE),gg(e,Q,zE),e.writer.buffer()},XF=Q=>{const A=new il;return Sg(A,Q),Jg(A,Q),A.writer.buffer()},Vg=(Q,A)=>{const e=Q.map(n=>O(S({},n),{data:new Uint8Array(n.data)}));if(!e[0])throw new Error("At least one sample must be provided");const{timestamp:t,data:B,duration:F}=e[0];return XF({trackId:1,timestamp:t,sequenceNumber:A,defaultSize:B.byteLength,defaultFlags:33554432,defaultDuration:F,samples:e})},ug=(Q,A,e,t)=>xF([{type:"audio",codec:"aac",decoderConfig:Q,channelCount:A,sampleRate:e,timescale:t,duration:0,trackId:1}]),Ul=Q=>{const{sequenceParameterSets:A,pictureParameterSets:e}=Al(Q),t=A[0],B=e[0];if(!t||!B)throw new Error("No sps or pps provided");return TE(t)},kg=(Q,A)=>{const e=Q.map(s=>O(S({},s),{data:new Uint8Array(s.data)}));if(!e[0])throw new Error("At least one sample must be provided");const{isSync:t,timestamp:B,data:F,duration:n}=e[0];return XF({trackId:1,timestamp:B,sequenceNumber:A,defaultSize:F.byteLength,defaultFlags:t?33554432:16842752,defaultDuration:n,samples:e})},Ng=(Q,A)=>{const{sequenceParameterSets:e,pictureParameterSets:t}=Al(Q),B=Ul(Q);return xF([{type:"video",sequenceParameterSets:e.map(F=>new Uint8Array(F)),pictureParameterSets:t.map(F=>new Uint8Array(F)),width:B.width,height:B.height,timescale:A,duration:0,trackId:1}])},mg=(Q,A,e)=>xF([{type:"audio",trackId:1,channelCount:A,timescale:e,codec:"opus",decoderConfig:Q,duration:0,sampleRate:48e3}]),Wg=(Q,A)=>{const e=Q.map(n=>O(S({},n),{data:new Uint8Array(n.data)}));if(!e[0])throw new Error("At least one sample must be provided");const{timestamp:t,data:B,duration:F}=e[0];return XF({trackId:1,timestamp:t,sequenceNumber:A,defaultSize:B.byteLength,defaultFlags:33554432,defaultDuration:F,samples:e})},Fl=Q=>{const A=new _(Q);return A.peekBit()===1&&A.readBits(32),Zg(A),vg(A)},pg=Q=>{let A=0;for(let e=0;e<8;e++){const t=Q.readBits(8);if(A|=(t&127)<<e*7,(t&128)!==128)break}return A},Dg=Q=>{let A=0;for(;A<100&&Q.readBit()===0;)A++;return A>=32?0:Q.readBits(A)+(1<<A)-1},Zg=Q=>{const A=Q.readBits(8);if((A>>7&1)!==0)return;const t=A>>3&15,B=A>>2&1,F=A>>1&1;return B==1&&Q.readBits(8),F==1&&pg(Q),{headerLength:1+B,type:t}},wg=Q=>{const A=Q.readBits(32),e=Q.readBits(32),t=Q.readBit()!==0;let B=0;return t&&(B=Dg(Q)+1),{timescale:e,equalPictureInterval:t,numUnitsInDisplayTick:A,numTicksPerPicture:B}},nl=2,Ms=2,Tg=1,yg=2,bg=2,fg=13,Gg=0,Mg=2,sl=0,vg=Q=>{const A=Q.readBits(3),t=Q.readBit()!==0,B=Q.readBit()!==0;let F,n=!1,s=!1,a=!1,d=0,E=0;const g=[];if(B)Q.readBits(5);else{if(s=Q.readBit()!==0,s&&(F=wg(Q),n=Q.readBit()!==0,n))throw new Error("Not implemented");a=Q.readBit()!==0;const z=Q.readBits(5)+1;for(let N=0;N<z;N++){const x=Q.readBits(12),L=Q.readBits(5);let tA=0;if(L>7&&(tA=Q.readBit()),n)throw new Error("decoderModelInfoPresentFlag==1");a&&Q.readBit()!==0&&Q.readBits(4),g.push({tier:tA,operatingPointIdc:x,seqLevelIdx:L})}}const c=Q.readBits(4)+1,J=Q.readBits(4)+1,k=Q.readBits(c)+1,p=Q.readBits(J)+1;let w=!1;B?w=!1:w=Q.readBit()!==0,w&&(d=Q.readBits(4)+2,E=Q.readBits(3)+1);const M=Q.readBit()!==0,D=Q.readBit()!==0,G=Q.readBit()!==0;let v=!1,H=!1,j=!1,VA=!1,FA=!1,uA=!1,se=!1,WA=nl,yA=Ms,C=0;B||(v=Q.readBit()!==0,H=Q.readBit()!==0,j=Q.readBit()!==0,VA=Q.readBit()!==0,FA=Q.readBit()!==0,FA&&(uA=Q.readBit()!==0,se=Q.readBit()!==0),Q.readBit()!==0?WA=nl:WA=Q.readBit(),WA>0?Q.readBit()>0?yA=Ms:yA=Q.readBit():yA=Ms,FA?C=Q.readBits(3):C=0);const T=Q.readBit()!==0,BA=Q.readBit()!==0,eA=Q.readBit()!==0;return{seqProfile:A,stillPicture:t,reducedStillPictureHeader:B,timingInfoPresentFlag:s,timingInfo:F!=null?F:{equalPictureInterval:!1,numUnitsInDisplayTick:0,timescale:0,numTicksPerPicture:0},decoderModelInfoPresentFlag:n,initialDisplayDelayPresentFlag:a,operatingPoints:g,frameWidthBits:c,frameHeightBits:J,maxFrameWidth:k,maxFrameHeight:p,frameIdNumbersPresentFlag:w,deltaFrameIdLength:d,additionalFrameIdLength:E,use_128x128Superblock:M,enableFilterIntra:D,enableIntraEdgeFilter:G,enableInterintraCompound:v,enableMaskedCompound:H,enableWarpedMotion:j,enableDualFilter:VA,enableOrderHint:FA,enableJntComp:uA,enableRefFrameMvs:se,seqForceScreenContentTools:WA,seqForceIntegerMv:yA,orderHintBits:C,enableSuperres:T,enableCdef:BA,enableRestoration:eA,colorConfig:Lg(Q,A),filmGrainParamsPresent:Q.readBit()!==0}},Lg=(Q,A)=>{const e=Q.readBit()!==0;let t=8,B=!1;A===2&&e?t=Q.readBit()!==0?12:10:A<=2&&(t=e?10:8),A===1?B=!1:B=Q.readBit()!==0;const F=B?1:3,n=Q.readBit()!==0;let s=yg,a=bg,d=Mg,E=!1,g=0,c=0,J=sl,k=!1;return n&&(s=Q.readBits(8),a=Q.readBits(8),d=Q.readBits(8)),B?(E=Q.readBit()!==0,g=1,c=1,J=sl,k=!1,{highBitDepth:e,bitDepth:t,monoChrome:B,chromaSamplePosition:J,colorPrimaries:s,colorRange:E,matrixCoefficients:d,numPlanes:F,separateUvDeltaQ:k,subsamplingX:g,subsamplingY:c,transferCharacteristics:a}):s===Tg&&a==fg&&d==Gg?(E=!0,g=0,c=0,{highBitDepth:e,bitDepth:t,monoChrome:B,chromaSamplePosition:J,colorPrimaries:s,colorRange:E,matrixCoefficients:d,numPlanes:F,separateUvDeltaQ:k,subsamplingX:g,subsamplingY:c,transferCharacteristics:a}):(E=Q.readBit()!==0,A===0?(g=1,c=1):A===1?(g=0,c=0):t===12?(g=Q.readBit(),g!==0?c=Q.readBit():c=0):(g=1,c=0),g!==0&&c!==0&&(J=Q.readBits(2)),k=Q.readBit()!==0,{highBitDepth:e,bitDepth:t,monoChrome:B,chromaSamplePosition:J,colorPrimaries:s,colorRange:E,matrixCoefficients:d,numPlanes:F,separateUvDeltaQ:k,subsamplingX:g,subsamplingY:c,transferCharacteristics:a})},Hg=Q=>{const A=Fl(Q);if(A)return{width:A.maxFrameWidth,height:A.maxFrameHeight}},Yg=(Q,A)=>{const e=Q.map(s=>O(S({},s),{data:new Uint8Array(s.data)}));if(!e[0])throw new Error("At least one sample must be provided");const{isSync:t,timestamp:B,data:F,duration:n}=e[0];return XF({trackId:1,timestamp:B,sequenceNumber:A,defaultSize:F.byteLength,defaultFlags:t?33554432:16842752,defaultDuration:n,samples:e})},xg=(Q,A)=>{const e=Fl(Q);if(!e)throw new Error("Failed to parse sequence header");return xF([{type:"video",parsedSequenceHeader:e,sequenceHeader:new Uint8Array(Q),width:e.maxFrameWidth,height:e.maxFrameHeight,timescale:A,duration:0,trackId:1}])},Xg=(Q,A,e)=>{switch(Q){case"h264":return Og(A,e);case"av1":return zg(A,e);case"opus":return Pg(A,e);case"aac":return jg(A,e);default:throw new Error(`Failed to initialize ${Q} segment`)}},Kg=(Q,A)=>{switch(Q){case"h264":return Ul(A);case"av1":return Hg(A)}},Og=(Q,A)=>Ng(Q,A),zg=(Q,A)=>xg(Q,A),Pg=(Q,A)=>mg(new Uint8Array(Q),2,A),jg=(Q,A)=>ug(new Uint8Array(Q),2,A,A),qg=(Q,A)=>{if(!Q[0])throw new Error("At least one sample must be provided");switch(Q[0].codec){case"h264":return kg(Q,A);case"opus":return Wg(Q,A);case"aac":return Vg(Q,A);case"av1":return Yg(Q,A);default:throw new Error(`Unsupported codec ${Q[0].codec}`)}},SB=Q=>!!(Q&1),_g=Q=>!!(Q&2),$g=Q=>!!(Q&4),AI=Q=>!!(Q&8),eI=Q=>!!(Q&16),tI=Q=>{const A=new DataView(Q,0),e=A.getUint8(0),t=A.getUint16(1),B=A.getUint8(3),F=A.getUint8(4),n=Js(new Uint8Array(Q),5,12),s=A.getUint32(13),a=eI(B)?A.getInt16(17):void 0,d=Q.slice(t);return{version:e,renditionId:F,flags:B,timestamp:n,timescale:s,payload:d,compositionTimeOffset:a}},QI="data:video/mp4;base64,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",KF=()=>"wakeLock"in navigator&&window.navigator.userAgent.indexOf("Samsung")===-1;class iI{constructor(){i(this,"enabled",!1);i(this,"wakeLockVideo");i(this,"_wakeLock",null);i(this,"handleVisibilityChange",()=>{this._wakeLock!==null&&document.visibilityState==="visible"&&this.enable()});KF()&&(this._wakeLock=null,document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("fullscreenchange",this.handleVisibilityChange))}_addSourceToVideo(A,e,t){const B=document.createElement("source");B.src=t,B.type=`video/${e}`,A.appendChild(B)}get isEnabled(){return this.enabled}attach(A){if(!KF()){if(!this.wakeLockVideo){const e=document.createElement("video");this.wakeLockVideo=e,this.wakeLockVideo.setAttribute("title","Live Stream"),this.wakeLockVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.wakeLockVideo,"mp4",QI),Object.assign(this.wakeLockVideo.style,{position:"absolute",left:"-100%",top:"-100%"}),this.wakeLockVideo.addEventListener("loadedmetadata",()=>{e.addEventListener("timeupdate",()=>{e.currentTime>.5&&(e.currentTime=Math.random())})})}A&&A.appendChild(this.wakeLockVideo)}}enable(){return r(this,null,function*(){var A,e;return KF()?navigator.wakeLock.request("screen").then(t=>{this._wakeLock=t,this.enabled=!0,this._wakeLock.addEventListener("release",()=>{})}).catch(()=>{this.enabled=!1}):((e=(A=this.wakeLockVideo)==null?void 0:A.play())!=null?e:Promise.resolve()).then(B=>(this.enabled=!0,B)).catch(()=>{this.enabled=!1})})}disable(){var A,e;KF()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):((A=this.wakeLockVideo)==null||A.pause(),(e=this.wakeLockVideo)==null||e.remove()),this.enabled=!1}unload(){document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("fullscreenchange",this.handleVisibilityChange),this.disable()}}const BI=/\r\n|\r|\n/;class al{constructor(A){o(this,rt);o(this,Xe);l(this,rt,A),l(this,Xe,0)}skipEmptyLines(){let A=0;for(;U(this,rt)[U(this,Xe)]==="";)GQ(this,Xe)._++,A++;return A}readLine(){return U(this,rt)[GQ(this,Xe)._++]}takeUntilEmptyLine(){const A=[];for(;U(this,rt)[U(this,Xe)]!=="";){const e=this.readLine();if(e===void 0)break;A.push(e)}return A}linesLeft(){return U(this,rt).length-U(this,Xe)}}rt=new WeakMap,Xe=new WeakMap;class ol{constructor(){o(this,AQ)}parse(A){const e=[],t=A.split(BI),B=new al(t),F=B.readLine();if(!F||!F.startsWith("WEBVTT"))throw new Error("missing 'WEBVTT' signature");for(;B.readLine()!=="";);for(;B.linesLeft()>0;){const n=I(this,AQ,Xr).call(this,B);e.push(n),B.skipEmptyLines()}return e}}AQ=new WeakSet,Xr=function(A){A.skipEmptyLines();const e=A.takeUntilEmptyLine(),t=new al(e);let B=t.readLine(),F;if(B!=null&&B.includes("-->")||(F=B,B=t.readLine()),B===void 0)throw new Error("expected cue line");const[n,s]=B.split("-->").map(J=>J.trim());if(!n||!s)throw new Error(`a cue needs both start and end time start: ${n} end: ${s}`);const[a,d]=s.split(" ",1).map(J=>J.trim());if(!a)throw new Error(`missing end time: ${a}`);const E=t.readLine();if(!E)throw new Error("missing text");const g=I(this,AQ,Bo).call(this,n),c=I(this,AQ,Bo).call(this,a);return{id:F,startTime:g,endTime:c,text:E}},Bo=function(A){const e=A.split(":");if(e.length==2){const[s=0,a=0]=e.map(E=>parseFloat(E));return s*60+a}const[t=0,B=0,F=0]=e.map(s=>parseFloat(s));return t*60*60+B*60+F};class vs extends ee{constructor({type:e,autoplay:t,muted:B,logger:F,poster:n}){super();i(this,"element");i(this,"logger");i(this,"seekTimes",new Z(10));i(this,"seekStartTime");i(this,"_userProvidedMuted");i(this,"timers",new DA);i(this,"_userHasProvidedInput",!1);i(this,"_isPaused",!0);i(this,"isActivated",!1);i(this,"dummy");i(this,"_iosHackEnterPiPMode",()=>{const e=this.element.parentElement,t=this.element.clientWidth/this.element.clientHeight;this.element.style.position="fixed",this.element.style.opacity="0",this.element.style.pointerEvents="none",e&&(this.dummy=document.createElement("video"),this.dummy.style.paddingBottom="calc(100% / "+t+")",this.dummy.style.width="100%",this.dummy.style.height="0px",e.appendChild(this.dummy))});i(this,"_iosHackExitPiPMode",()=>{this.element.style.position="relative",this.element.style.opacity="1",this.element.style.pointerEvents="auto",this.dummy&&(this.dummy.remove(),this.dummy=void 0)});i(this,"attach",e=>{this.element.remove(),e.appendChild(this.element)});i(this,"load",()=>{this.timers.setInterval(this.onPlayPause,500),this.timers.setTimeout(()=>{this.timers.setInterval(this.onBufferStateChange,500)},1e4)});i(this,"unload",()=>{this.timers.unload()});i(this,"getPlaybackRate",()=>this.element.playbackRate);i(this,"getPlaybackState",()=>this.element.readyState>=this.element.HAVE_FUTURE_DATA?"playing":"buffering");i(this,"setPlaybackRate",e=>void(this.element.playbackRate=e));i(this,"getBuffer",()=>{const e=[],t=this.element.buffered;if(!t)return[];for(let B=0;B<t.length;B++)e.push({start:t.start(B)*1e3,end:t.end(B)*1e3});return e});i(this,"pause",()=>{this._isPaused=!1,this.element.pause()});i(this,"tryPlay",()=>{this.element.muted=this._userProvidedMuted,this._play().catch(V)});i(this,"play",()=>{this.element.muted=this._userProvidedMuted,this._play().catch(e=>{if(e instanceof Error){const t=new Y("Media Play Error",{source:e,isFatal:!1,code:"media_play_error"});this.emit("error",t)}})});i(this,"_play",()=>r(this,null,function*(){try{yield this.element.play(),this._userHasProvidedInput=!this.muted||this._userProvidedMuted}catch(e){if(e instanceof Error&&e.name==="NotAllowedError")if(this._userHasProvidedInput=!1,this.element.muted)this.emit("needs user input",{forAudio:!0,forVideo:!0});else return this.element.muted=!0,this.emit("needs user input",{forAudio:!0,forVideo:!1}),this._play();else throw e}}));i(this,"onEvent",e=>{this.logger.trace(e.type,{state:this.element.readyState,event:e,playbackState:this.getPlaybackState()})});i(this,"onVolumeChange",()=>{this.logger.info("volume state",{isMuted:this.element.muted,volume:this.element.volume}),this.emit("volume state",{isMuted:this.element.muted,volume:this.element.volume})});i(this,"onPlayPause",()=>{this._isPaused!==this.element.paused&&(this._isPaused=this.element.paused,this.logger.info("player pause change",{paused:this.element.paused}),this.emit("media element state",this.element.paused?"paused":"playing"))});i(this,"onBufferStateChange",()=>{this.emit("buffer state",{isPaused:this.element.paused,buffered:this.getBuffer(),currentTime:this.currentTime,playbackState:this.getPlaybackState()})});i(this,"onSeekStart",()=>{this.seekStartTime=Date.now()});i(this,"onSeekEnd",()=>{this.seekStartTime&&(this.seekTimes.push(Date.now()-this.seekStartTime),this.seekStartTime=void 0)});this.logger=F,this._userProvidedMuted=B,this.element=document.createElement(e),this.element instanceof HTMLVideoElement&&(this.element.playsInline=!0),this.element.controls=!1,this.element.autoplay=t,this.element.muted=B,this.element.style.display="block",this.element.style.width="100%",this.element.disableRemotePlayback=!0,this.element.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAQAAACRI2S5AAAAEElEQVR42mNkIAAYRxWAAQAG9gAKqv6+AwAAAABJRU5ErkJggg=="),this.onPlayPause(),setTimeout(()=>{!this.element||!n||this.element.setAttribute("poster",n)},0),this.element.addEventListener("stalled",this.onEvent),this.element.addEventListener("canplay",this.onEvent),this.element.addEventListener("loadeddata",this.onEvent),this.element.addEventListener("loadedmetadata",this.onEvent),this.element.addEventListener("canplaythrough",this.onEvent),this.element.addEventListener("waiting",this.onEvent),this.element.addEventListener("playing",this.onPlayPause),this.element.addEventListener("pause",this.onPlayPause),this.element.addEventListener("seeked",this.onSeekEnd),this.element.addEventListener("seeking",this.onSeekStart),this.element.addEventListener("volumechange",this.onVolumeChange),this.element.addEventListener("timeupdate",this.onBufferStateChange),this.element.addEventListener("progress",this.onBufferStateChange)}get seekTime(){return this.seekTimes.isEmpty()?0:XQ(this.seekTimes.items())}get isSeeking(){return this.element.seeking}get currentTime(){return isNaN(this.element.currentTime)?0:this.element.currentTime*1e3}set currentTime(e){Number.isFinite(e)&&(this.element.currentTime=e/1e3)}get playbackRate(){return this.element.playbackRate}set playbackRate(e){this.element.playbackRate=e}get volume(){return this.element.volume}set volume(e){this.element.volume=e}get muted(){return this.element.muted}set muted(e){this._userProvidedMuted=e,this.element.muted=e}get userHasProvidedInput(){return this._userHasProvidedInput}get isPaused(){return this._isPaused}}const UI=["minBufferTime","maxBufferTime","burstEnabled","sizeBasedResolutionCapEnabled","separateVideoSocketEnabled","videoCodecs"];function FI(Q){return UI.includes(Q)}class nI{constructor(A){i(this,"options");i(this,"overrides",new Map);this.options=A}getOptions(){return this.options}addOverrides(A,e){this.overrides.set(A,e)}set(A,e){this.options[A]=e}get(A,e){var t;if(e&&FI(A)){const B=(t=this.overrides.get(e))==null?void 0:t[A];if(typeof B!="undefined")return B}return this.options[A]}getOverride(A,e){var t;return(t=this.overrides.get(e))==null?void 0:t[A]}}const sI=Q=>{const A=window;A.vindralInstances=A.vindralInstances||{},A.vindralInstances[Q.getStatistics().clientId.substring(0,8)]=Q},aI=Q=>{if(!navigator.mediaCapabilities)return Promise.resolve({smooth:!0,supported:!0,powerEfficient:!0,failedToQuery:!0});if(Q.codec==="webvtt")throw new Error("WebVTT is not supported");let A;return vt(Q)?A={type:"media-source",audio:{contentType:Lt(Q),bitrate:Q.bitRate,channels:Q.channels.toString(),samplerate:Q.sampleRate}}:A={type:"media-source",video:{contentType:Lt(Q),bitrate:Q.bitRate,width:Q.width,height:Q.height,framerate:Q.frameRate[0]/Q.frameRate[1]}},navigator.mediaCapabilities.decodingInfo(A)},oI=.15,lI=.2,ll=.4,rI=.5,dI=.6,Ls=15,EI={cooldownTime:3e3,maxBufferingEvents:{last10Seconds:0},maxBufferingRatio:{last10Seconds:0},maxRecentDowngradesCount:3,maxDowngradeLookbackMs:60*1e3,minTimeSpentPlaying:{factor:.5,ratio:.1},maxCooldownRatio:2},Hs=Q=>A=>A>Q,hn=class hn{constructor(A,e,t,B){i(this,"qualityOfServiceSource");i(this,"config");i(this,"emitter");i(this,"logger");i(this,"isSuspended",!1);i(this,"lastAdaptTime",Date.now());i(this,"isEnabled",!0);i(this,"load",()=>{this.emitter.on("buffer state",this.onBufferState),this.emitter.on("adapted level",this.onAdaptedLevel)});i(this,"unload",()=>{this.emitter.off("buffer state",this.onBufferState),this.emitter.off("adapted level",this.onAdaptedLevel)});i(this,"suspend",()=>{this.isSuspended=!0});i(this,"unsuspend",()=>{this.reset(),this.isSuspended=!1});i(this,"reset",(A=0)=>{this.lastAdaptTime=Date.now()+A});i(this,"getStatistics",()=>({isAbrEnabled:this.isEnabled}));i(this,"isQoSOk",A=>{const e=this.qualityOfServiceSource.getLevelStats(A),{upgradesFromLevel:t,downgradesFromLevel:B}=e!=null?e:{upgradesFromLevel:[],downgradesFromLevel:[]},F=Date.now()-this.config.maxDowngradeLookbackMs,n=B.filter(Hs(F)).length,s=t.filter(Hs(F)).length;if(n-s>this.config.maxRecentDowngradesCount)return this.logger.debug("Recent downgrades count is over maximum",{downgrades:n-s,maxRecentDowngradesCount:this.config.maxRecentDowngradesCount}),!1;const a=this.qualityOfServiceSource.timeSpentPlayingInAtLeastLevelRatio(A),d=this.qualityOfServiceSource.timeActive()-this.qualityOfServiceSource.timeSpentBuffering(),E=a*d/this.config.maxDowngradeLookbackMs;if(n>1&&E<this.config.minTimeSpentPlaying.factor)return this.logger.debug("Time spent playing is too low",{recentDowngrades:n,timeSpentPlayingInAtLeastLevelRatio:a}),!1;if(n>1&&a<this.config.minTimeSpentPlaying.ratio)return this.logger.debug("Time spent playing in at least this level is too low",{recentDowngrades:n,timeSpentPlayingInAtLeastLevelRatio:a}),!1;const g=Math.max(0,B.length-t.length-E),c=Date.now()-this.config.maxDowngradeLookbackMs*g,J=B.filter(Hs(c)).length;return J&&g>this.config.maxCooldownRatio?(this.logger.debug("Too many downgrades compared to time spent playing",{downgradesWithinCooldownTime:J,cooldownRatio:g}),!1):!0});i(this,"onBufferState",A=>{if(!this.isEnabled||this.isSuspended||this.lastAdaptTime+this.config.cooldownTime>Date.now())return;const{bufferFullness:e,general:t}=this.qualityOfServiceSource.getMetrics(),B=this.qualityOfServiceSource.getBufferFullnessRegression();if(!B)return;const F=10*1e3,{slope:n}=B,s=B.predict(Ls),a=n<0,d=B.predict(Ls)<ll&&B.slope<0,E=B.predict(Ls)>dI,g=this.qualityOfServiceSource.timeSpentBufferingLast(30*1e3),c=this.qualityOfServiceSource.timeSpentActiveLast(30*1e3),J=g/c;if(e<.15&&J>.8){this.adaptLevel("reconnect");return}if(t.decodeRate<=1){this.adaptLevel("downgrade");return}d||e<oI?a&&e<ll&&s<lI&&this.adaptLevel(A.playbackState==="buffering"?"double downgrade":"downgrade"):e>rI&&E&&!this.tooMuchTimeBuffering(F)&&!this.tooManyBufferingEvents(F)&&this.adaptLevel("upgrade")});i(this,"onAdaptedLevel",()=>{this.reset()});i(this,"adaptLevel",A=>this.emitter.emit("adapt level",A));this.qualityOfServiceSource=t,this.config=S(S({},EI),B),this.emitter=A,this.logger=e}tooMuchTimeBuffering(A){return this.qualityOfServiceSource.timeSpentBufferingLast(A)/this.qualityOfServiceSource.timeSpentActiveLast(A)>this.config.maxBufferingRatio.last10Seconds}tooManyBufferingEvents(A){return this.qualityOfServiceSource.timeSpentBufferingLast(A)>this.config.maxBufferingEvents.last10Seconds}};i(hn,"create",(A,e,t,B={})=>new hn(A,e,t,B));let Ys=hn;const gI={minBufferTime:1500,maxBufferTime:1500,cooldownTime:3e4,maxBufferingEvents:{last30Seconds:3},maxBufferingRatio:{last30Seconds:.15}},dt=class dt{constructor(A,e,t,B,F){i(this,"qualityOfServiceSource");i(this,"targetBufferTimeTarget");i(this,"config");i(this,"emitter");i(this,"logger");i(this,"isSuspended",!1);i(this,"lastIncreaseTime",Date.now());i(this,"bufferTimeAdjustmentCount",0);i(this,"load",()=>{this.emitter.on("buffer state",this.onBufferState)});i(this,"unload",()=>{this.emitter.off("buffer state",this.onBufferState)});i(this,"suspend",()=>{this.isSuspended=!0});i(this,"unsuspend",()=>{this.reset(),this.isSuspended=!1});i(this,"reset",()=>{this.lastIncreaseTime=Date.now()});i(this,"getStatistics",()=>({bufferTimeAdjustmentCount:this.bufferTimeAdjustmentCount}));i(this,"onBufferState",A=>{const{minBufferTime:e,maxBufferTime:t,cooldownTime:B}=this.config;if(this.isSuspended||this.lastIncreaseTime+B>Date.now()||this.targetBufferTimeTarget.targetBufferTime>=t)return;const F=this.qualityOfServiceSource.timeSpentBufferingLast(30*1e3),n=this.qualityOfServiceSource.bufferingEventsLast(30*1e3),s=this.qualityOfServiceSource.timeSpentActiveLast(30*1e3),a=F/s,d=Math.ceil(Math.max((t-e)/(dt.BUFFER_TIME_MAX_STEPS-1),dt.BUFFER_TIME_STEP_SIZE));(a>this.config.maxBufferingRatio.last30Seconds||n>this.config.maxBufferingEvents.last30Seconds)&&(this.targetBufferTimeTarget.targetBufferTime=Math.min(t,this.targetBufferTimeTarget.targetBufferTime+d),this.bufferTimeAdjustmentCount++,this.reset())});this.qualityOfServiceSource=t,this.targetBufferTimeTarget=B,this.config=S(S({},gI),F),this.emitter=A,this.logger=e}updateConfig(A){this.config=S(S({},this.config),A)}};i(dt,"BUFFER_TIME_STEP_SIZE",500),i(dt,"BUFFER_TIME_MAX_STEPS",3),i(dt,"create",(A,e,t,B,F={})=>new dt(A,e,t,B,F));let xs=dt;var OF=(Q=>(Q[Q.StreamHeaderGroup=4]="StreamHeaderGroup",Q[Q.FetchHeader=5]="FetchHeader",Q[Q.StreamHeaderTrack=60]="StreamHeaderTrack",Q))(OF||{});const MA={Normal:0,ObjectDoesNotExist:1,GroupDoesNotExist:2,EndOfGroup:3,EndOfTrackAndGroup:4};function rl(Q){switch(Q){case MA.Normal:case MA.ObjectDoesNotExist:case MA.GroupDoesNotExist:case MA.EndOfGroup:case MA.EndOfTrackAndGroup:return}throw new Error("Unknown object status "+Q)}class II{constructor(A,e,t,B,F,n){o(this,Ne);o(this,Fi);o(this,ni);o(this,tU);o(this,QU);o(this,si,new m);o(this,iU,0);o(this,BU);l(this,Ne,A),l(this,Fi,e),l(this,ni,t),l(this,tU,B),l(this,QU,F),l(this,BU,n)}endStatus(){return U(this,si).promise}groupId(){return U(this,Fi)}subscribeId(){return U(this,ni)}next(){return r(this,null,function*(){if(!U(this,si).pending)return{done:!0,value:void 0};if(yield U(this,Ne).isDone())return{done:!0,value:void 0};const A=U(this,iU)===0?U(this,Fi):yield U(this,Ne).readBigVarInt(),e=yield U(this,Ne).readBigVarInt(),t=yield U(this,Ne).readVarInt();let B=0,F=new Uint8Array;return t>0?F=yield U(this,Ne).read(t):B=yield U(this,Ne).readVarInt(),rl(B),(B===MA.EndOfTrackAndGroup||B===MA.EndOfGroup)&&U(this,si).resolve(B),GQ(this,iU)._++,{done:!1,value:{subscribeId:U(this,ni),trackAlias:U(this,tU),groupId:A,subGroupId:f(0),objectId:e,subscriberPriority:U(this,QU),streamId:U(this,BU),objectStatus:B,payload:F}}})}return(){return r(this,null,function*(){for(;!(yield this.next()).done;);return{done:!0,value:void 0}})}[Symbol.asyncIterator](){return this}[ke()](){return Promise.resolve()}[Symbol.asyncDispose](){return Promise.resolve()}}Ne=new WeakMap,Fi=new WeakMap,ni=new WeakMap,tU=new WeakMap,QU=new WeakMap,si=new WeakMap,iU=new WeakMap,BU=new WeakMap;class cI{constructor(A,e,t,B,F){o(this,eQ);o(this,me);o(this,ai);o(this,UU);o(this,FU);o(this,oi);l(this,me,A),l(this,ai,e),l(this,UU,t),l(this,FU,B),l(this,oi,F)}streamId(){return U(this,oi)}groups(){return I(this,eQ,Kr).call(this)}subscribeId(){return U(this,ai)}return(){return r(this,null,function*(){return yield U(this,me).close(),{done:!0,value:void 0}})}[Symbol.asyncIterator](){return this}[ke()](){return I(this,eQ,Uo).call(this)}[Symbol.asyncDispose](){return I(this,eQ,Uo).call(this)}}me=new WeakMap,ai=new WeakMap,UU=new WeakMap,FU=new WeakMap,oi=new WeakMap,eQ=new WeakSet,Kr=function(){return it(this,null,function*(){for(;!(yield new lA(U(this,me).isDone()));){const A=yield new lA(U(this,me).readBigVarInt()),e=new II(U(this,me),A,U(this,ai),U(this,UU),U(this,FU),U(this,oi));if(yield e,(yield new lA(Promise.race([e.endStatus(),U(this,me).closed()])))===MA.EndOfTrackAndGroup)return}})},Uo=function(){return U(this,me).close().catch(()=>{})};class CI{constructor(A,e,t,B,F,n,s){o(this,tQ);o(this,Ie);o(this,li);o(this,nU);o(this,ri);o(this,sU);o(this,aU);o(this,oU,!1);o(this,di);o(this,Sn,pA.get().createContext("GroupReader"));l(this,Ie,A),l(this,li,e),l(this,nU,t),l(this,ri,B),l(this,sU,F),l(this,aU,n),l(this,di,s)}streamId(){return U(this,di)}groupId(){return U(this,ri)}subscribeId(){return U(this,li)}next(){return r(this,null,function*(){try{if((yield U(this,Ie).isDone())||U(this,oU))return{done:!0,value:void 0};const A=yield U(this,Ie).readBigVarInt(),e=yield U(this,Ie).readVarInt();let t=0,B=new Uint8Array;return e>0?B=yield U(this,Ie).read(e):t=yield U(this,Ie).readVarInt(),rl(t),t===MA.EndOfGroup&&l(this,oU,!0),{done:!1,value:{subscribeId:U(this,li),trackAlias:U(this,nU),groupId:U(this,ri),subGroupId:U(this,sU),subscriberPriority:U(this,aU),streamId:U(this,di),objectId:A,objectStatus:t,payload:B}}}catch(A){return U(this,Sn).info("Error reading object",{error:A}),{done:!0,value:void 0}}})}return(){return r(this,null,function*(){return yield U(this,Ie).close().catch(()=>{}),{done:!0,value:void 0}})}groups(){return I(this,tQ,Or).call(this)}[Symbol.asyncIterator](){return this}[ke()](){return I(this,tQ,Fo).call(this)}[Symbol.asyncDispose](){return I(this,tQ,Fo).call(this)}}Ie=new WeakMap,li=new WeakMap,nU=new WeakMap,ri=new WeakMap,sU=new WeakMap,aU=new WeakMap,oU=new WeakMap,di=new WeakMap,Sn=new WeakMap,tQ=new WeakSet,Or=function(){return it(this,null,function*(){yield this})},Fo=function(){return U(this,Ie).close().catch(()=>{})};function dl(Q,A){return r(this,null,function*(){const e=yield Q.readVarInt();switch(e){case OF.StreamHeaderGroup:{const t=yield Q.readBigVarInt(),B=yield Q.readBigVarInt(),F=yield Q.readBigVarInt(),n=yield Q.readBigVarInt(),s=yield Q.readUnsigned8();return new CI(Q,t,B,F,n,s,A)}case OF.StreamHeaderTrack:{const t=yield Q.readBigVarInt(),B=yield Q.readBigVarInt(),F=yield Q.readUnsigned8();return new cI(Q,t,B,F,A)}default:throw new Error("Unexpected message type "+e)}})}class RI{constructor(A,e){o(this,Et);o(this,lU);l(this,Et,A),l(this,lU,e)}start(A){U(this,Et).addEventListener("message",e=>{if(typeof e.data=="object"&&e.data instanceof ArrayBuffer){const t=new Uint8Array(e.data);t[0]==U(this,lU)&&A.enqueue(t.subarray(1))}}),U(this,Et).addEventListener("error",()=>A.error(new Error("WebSocket error"))),U(this,Et).addEventListener("close",()=>Ro(()=>A.close()))}cancel(A){U(this,Et).close(void 0,A)}}Et=new WeakMap,lU=new WeakMap;class hI{constructor(A){o(this,We);o(this,QQ,null);o(this,iQ,null);o(this,BQ,null);l(this,We,A)}start(A){l(this,QQ,e=>{if(typeof e.data=="object"&&e.data instanceof ArrayBuffer){const t=new Uint8Array(e.data),B=t[0]||0,F=B&127,n=(B>>7&1)>0;if(F&&F!==0){const s=t.subarray(1);A.enqueue([n,F,s])}}}),l(this,iQ,()=>Ro(()=>A.close())),l(this,BQ,()=>A.error(new Error("WebSocket error"))),U(this,We).addEventListener("message",U(this,QQ)),U(this,We).addEventListener("error",U(this,BQ)),U(this,We).addEventListener("close",U(this,iQ))}cancel(A){U(this,QQ)&&U(this,We).removeEventListener("message",U(this,QQ)),U(this,BQ)&&U(this,We).removeEventListener("error",U(this,BQ)),U(this,iQ)&&U(this,We).removeEventListener("close",U(this,iQ))}}We=new WeakMap,QQ=new WeakMap,iQ=new WeakMap,BQ=new WeakMap;class zF{constructor(A,e){o(this,iA);o(this,pe);o(this,rU);o(this,UQ);o(this,De,0);o(this,Jn,new TextDecoder);l(this,pe,A),l(this,rU,e),l(this,UQ,e.getReader())}readUnsigned8(){return r(this,null,function*(){return yield I(this,iA,MQ).call(this,1),I(this,iA,yt).call(this,1)[0]})}readString(){return r(this,null,function*(){const A=yield this.readVarInt(),e=yield this.read(A);return U(this,Jn).decode(e)})}readVarInt(){return r(this,null,function*(){const A=yield this.readBigVarInt();if(A>Number.MAX_SAFE_INTEGER)throw new Error("VarInt is too large");return Number(A)})}readBigVarInt(){return r(this,null,function*(){yield I(this,iA,MQ).call(this,1);const A=(I(this,iA,ds).call(this,1)[0]&192)>>6;switch(U(this,pe)[U(this,De)]=I(this,iA,ds).call(this,1)[0]&63,A){case 0:return f(I(this,iA,yt).call(this,1)[0]);case 1:{yield I(this,iA,MQ).call(this,2);const e=I(this,iA,yt).call(this,2),t=new DataView(e.buffer,e.byteOffset,e.byteLength);return f(t.getUint16(0))}case 2:{yield I(this,iA,MQ).call(this,4);const e=I(this,iA,yt).call(this,4),t=new DataView(e.buffer,e.byteOffset,e.byteLength);return f(t.getUint32(0))}case 3:{yield I(this,iA,MQ).call(this,8);const e=I(this,iA,yt).call(this,8),t=new DataView(e.buffer,e.byteOffset,e.byteLength);if(typeof t.getBigUint64!="undefined")return f(t.getBigUint64(0));const B=Js(e,0,7);return f(B)}default:throw new Error("Invalid VarInt size")}})}read(A){return r(this,null,function*(){return yield I(this,iA,MQ).call(this,A),I(this,iA,yt).call(this,A)})}readAll(){return r(this,null,function*(){for(;yield I(this,iA,rs).call(this););return I(this,iA,yt).call(this,I(this,iA,IF).call(this))})}isDone(){return r(this,null,function*(){return I(this,iA,IF).call(this)>0?!1:(yield I(this,iA,rs).call(this))==0})}closed(){return r(this,null,function*(){return U(this,UQ).closed})}close(){return r(this,null,function*(){return U(this,UQ).releaseLock(),U(this,rU).cancel()})}}pe=new WeakMap,rU=new WeakMap,UQ=new WeakMap,De=new WeakMap,Jn=new WeakMap,iA=new WeakSet,IF=function(){return U(this,pe).length-U(this,De)},rs=function(){return r(this,null,function*(){const{value:A,done:e}=yield U(this,UQ).read();if(e)return Promise.resolve(0);if(I(this,iA,IF).call(this)===0)l(this,pe,A);else{const B=U(this,pe).subarray(U(this,De)),F=new Uint8Array(B.length+A.length);F.set(B),F.set(A,B.byteLength),l(this,pe,F)}return l(this,De,0),Promise.resolve(A.length)})},MQ=function(A){return r(this,null,function*(){for(;I(this,iA,IF).call(this)<A;)if((yield I(this,iA,rs).call(this))===0)throw new Error("Read failed")})},ds=function(A){return U(this,pe).subarray(U(this,De),U(this,De)+A)},yt=function(A){const e=I(this,iA,ds).call(this,A);return l(this,De,U(this,De)+e.length),e};class El{constructor(A){o(this,Ei,new Uint8Array(8));o(this,gi);o(this,Ke);o(this,Vn,new TextEncoder);l(this,gi,A),l(this,Ke,U(this,gi).getWriter())}writeString(A){return r(this,null,function*(){const e=U(this,Vn).encode(A);return yield this.writeVarInt(e.length),this.write(e)})}write(A){return U(this,Ke).write(A)}writeUnsigned8(A){return U(this,Ke).write(PF(A,U(this,Ei)))}writeVarInt(A){return U(this,Ke).write(Vl(A,U(this,Ei)))}writeBigVarInt(A){return U(this,Ke).write(ul(A,U(this,Ei)))}flush(){return r(this,null,function*(){})}close(){return r(this,null,function*(){U(this,Ke).releaseLock(),yield U(this,gi).close()})}}Ei=new WeakMap,gi=new WeakMap,Ke=new WeakMap,Vn=new WeakMap;const gl={OPEN:1},dU=class dU{constructor(A){o(this,zA,0);o(this,jA,new Uint8Array(dU.DEFAULT_BUFFER_SIZE));o(this,FQ);o(this,un,new TextEncoder);l(this,FQ,A)}writeString(A){return r(this,null,function*(){const e=U(this,un).encode(A);return yield this.writeVarInt(e.length),this.write(e)})}ensureBufferSpace(A){if(U(this,jA).length-U(this,zA)>=A)return;const e=new Uint8Array(U(this,jA).length+A);e.set(U(this,jA)),l(this,jA,e)}write(A){return this.ensureBufferSpace(A.length),U(this,jA).set(A,U(this,zA)),l(this,zA,U(this,zA)+A.byteLength),Promise.resolve()}writeUnsigned8(A){return this.ensureBufferSpace(1),PF(A,U(this,jA).subarray(U(this,zA))),l(this,zA,U(this,zA)+1),Promise.resolve()}writeVarInt(A){if(A<0)throw new Error(`VarInt can not be negative: ${A}`);return this.ensureBufferSpace(8),l(this,zA,U(this,zA)+Vl(A,U(this,jA).subarray(U(this,zA))).byteLength),Promise.resolve()}writeBigVarInt(A){if(A<0)throw new Error(`VarInt can not be negative: ${A}`);return this.ensureBufferSpace(8),l(this,zA,U(this,zA)+ul(A,U(this,jA).subarray(U(this,zA))).byteLength),Promise.resolve()}flush(){if(U(this,FQ).readyState!==gl.OPEN)throw new Error("Writer is not open");return U(this,FQ).send(U(this,jA).subarray(0,U(this,zA))),l(this,zA,0),l(this,jA,new Uint8Array(dU.DEFAULT_BUFFER_SIZE)),Promise.resolve()}close(){return U(this,FQ).close(),Promise.resolve()}};zA=new WeakMap,jA=new WeakMap,FQ=new WeakMap,un=new WeakMap,i(dU,"DEFAULT_BUFFER_SIZE",1024);let JB=dU;const Il=Math.pow(2,6)-1,cl=Math.pow(2,14)-1,Cl=Math.pow(2,30)-1,SI=Number.MAX_SAFE_INTEGER,JI=typeof BigInt=="function"?eo(f(2),f(62))-f(1):f(Number.MAX_SAFE_INTEGER);function PF(Q,A){return A[0]=Q,A.subarray(0,1)}function Rl(Q,A){const e=new DataView(A.buffer,A.byteOffset,2);return e.setUint16(0,Q),new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function hl(Q,A){const e=new DataView(A.buffer,A.byteOffset,4);return e.setUint32(0,Q),new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function Sl(Q,A){const e=new DataView(A.buffer,A.byteOffset,8);return e.setBigUint64(0,Q),new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function Jl(Q,A){const e=new DataView(A.buffer,A.byteOffset,8);return e.setUint32(0,Q/4294967296),e.setUint32(4,Q&4294967295),A.set([192],0),new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function Vl(Q,A){if(Q<=Il)return PF(Q,A);if(Q<=cl)return Rl(Q|16384,A);if(Q<=Cl)return hl(Q|2147483648,A);if(Q<=SI)return typeof BigInt=="function"?Sl(BigInt(Q)|BigInt(3221225472)<<BigInt(32),A):Jl(Number(Q),A);throw new Error(`overflow, value larger than 53-bits: ${Q}`)}function ul(Q,A){if(Q<Il)return PF(Number(Q),A);if(Q<cl)return Rl(Number(Q)|16384,A);if(Q<=Cl)return hl(Number(Q)|2147483648,A);if(Q<=JI)return typeof BigInt=="function"?Sl(BigInt(Q)|BigInt(3221225472)<<BigInt(32),A):Jl(Number(Q),A);throw new Error(`overflow, value larger than 62-bits: ${Q}`)}var y=(Q=>(Q[Q.SubscribeUpdate=2]="SubscribeUpdate",Q[Q.Subscribe=3]="Subscribe",Q[Q.SubscribeOk=4]="SubscribeOk",Q[Q.SubscribeError=5]="SubscribeError",Q[Q.Announce=6]="Announce",Q[Q.AnnounceOk=7]="AnnounceOk",Q[Q.AnnounceError=8]="AnnounceError",Q[Q.Unannounce=9]="Unannounce",Q[Q.Unsubscribe=10]="Unsubscribe",Q[Q.SubscribeDone=11]="SubscribeDone",Q[Q.AnnounceCancel=12]="AnnounceCancel",Q[Q.TrackStatusRequest=13]="TrackStatusRequest",Q[Q.TrackStatus=14]="TrackStatus",Q[Q.Goaway=16]="Goaway",Q[Q.ClientSetup=64]="ClientSetup",Q[Q.ServerSetup=65]="ServerSetup",Q[Q.Unknown=255]="Unknown",Q))(y||{});function jF(Q){return r(this,null,function*(){const A=yield Q.readVarInt();if(A<1||A>32)throw new Error(`namespace must be between 1 and 32, got ${A}`);const e=[];for(let t=0;t<A;t++)e.push(yield Q.readString());return e})}function Xs(Q,A){return r(this,null,function*(){yield Q.writeVarInt(A.length);for(const e of A)yield Q.writeString(e)})}const qF=f(2);function zQ(Q){return r(this,null,function*(){const A=yield Q.readVarInt(),e=new Map;for(let t=0;t<A;t++){const B=yield Q.readBigVarInt(),F=yield Q.read(yield Q.readVarInt());e.set(B,{type:B,payload:F})}return e})}function PQ(Q,A){return r(this,null,function*(){yield Q.writeVarInt(A.size);for(const[e,t]of A)yield Q.writeBigVarInt(e),yield Q.writeVarInt(t.payload.length),yield Q.write(t.payload)})}function VI(Q){return r(this,null,function*(){return{type:y.Announce,namespace:yield jF(Q),params:yield zQ(Q)}})}function uI(Q,A){return r(this,null,function*(){yield Xs(Q,A.namespace),yield PQ(Q,A.params)})}function kI(Q){return r(this,null,function*(){return{type:y.AnnounceOk,namespace:yield jF(Q)}})}function NI(Q,A){return r(this,null,function*(){yield Xs(Q,A.namespace)})}const mI={Subscriber:2},_F={Role:f(0)},kl={Draft07:4278190087};function Nl(Q){return r(this,null,function*(){const A=yield Q.readVarInt();switch(A){case kl.Draft07:return{type:"known",value:A};default:return{type:"unknown",value:A}}})}function WI(Q,A){return r(this,null,function*(){yield Q.writeVarInt(A.supportedVersions.length);for(const e of A.supportedVersions)yield Q.writeVarInt(e.value);yield PQ(Q,A.parameters)})}function pI(Q){return r(this,null,function*(){const A=[],e=yield Q.readVarInt();for(let B=0;B<e;B++)A.push(yield Nl(Q));const t=yield zQ(Q);if(!t.has(_F.Role))throw new Error("Role parameter is required");return{type:y.ClientSetup,supportedVersions:A,parameters:t}})}function DI(Q,A){return r(this,null,function*(){yield Q.writeVarInt(A.selectedVersion.value),yield PQ(Q,A.parameters)})}function ZI(Q){return r(this,null,function*(){const A=yield Nl(Q);if(A.type!=="known")throw new Error("Expected known version");const e=yield zQ(Q);if(!e.has(_F.Role))throw new Error("Role parameter is required");return{type:y.ServerSetup,selectedVersion:A,parameters:e}})}const wI={"latest-group":1,"latest-object":2,"absolute-start":3,"absolute-range":4};function TI(Q){return r(this,null,function*(){const A=yield Q.readVarInt();switch(A){case 1:return{type:"latest-group"};case 2:return{type:"latest-object"};case 3:return{type:"absolute-start",start:{group:yield Q.readBigVarInt(),object:yield Q.readBigVarInt()}};case 4:return{type:"absolute-range",start:{group:yield Q.readBigVarInt(),object:yield Q.readBigVarInt()},end:{group:yield Q.readBigVarInt(),object:yield Q.readBigVarInt()}};default:throw new Error(`Invalid location type ${A}`)}})}function yI(Q,A){return r(this,null,function*(){const e=wI[A.type];switch(yield Q.writeVarInt(e),A.type){case"absolute-range":yield Q.writeBigVarInt(A.start.group),yield Q.writeBigVarInt(A.start.object),yield Q.writeBigVarInt(A.end.group),yield Q.writeBigVarInt(A.end.object);break;case"absolute-start":yield Q.writeBigVarInt(A.start.group),yield Q.writeBigVarInt(A.start.object);break;case"latest-object":case"latest-group":break;default:throw new Error(`Invalid location type ${e}`)}})}function ml(Q){return r(this,null,function*(){const A=yield Q.readUnsigned8();switch(A){case 0:return"inherit-publisher";case 1:return"ascending";case 2:return"descending";default:throw new Error(`Invalid location type ${A}`)}})}function Wl(Q,A){return r(this,null,function*(){switch(A){case"inherit-publisher":yield Q.writeUnsigned8(0);break;case"ascending":yield Q.writeUnsigned8(1);break;case"descending":yield Q.writeUnsigned8(2);break}})}function bI(Q){return r(this,null,function*(){const A=yield Q.readBigVarInt(),e=yield Q.readBigVarInt(),t=yield jF(Q),B=yield Q.readString(),F=yield Q.readUnsigned8(),n=yield ml(Q),s=yield TI(Q),a=yield zQ(Q);if(s.type==="absolute-range"){const d=s.start.group>s.end.group,E=s.start.group===s.end.group&&s.start.object>s.end.object;if(d||E)throw new Error("Invalid filter range")}return{type:y.Subscribe,id:A,trackAlias:e,namespace:t,name:B,subscriberPriority:F,groupOrder:n,filterType:s,params:a}})}function fI(Q,A){return r(this,null,function*(){yield Q.writeBigVarInt(A.id),yield Q.writeBigVarInt(A.trackAlias),yield Xs(Q,A.namespace),yield Q.writeString(A.name),yield Q.writeUnsigned8(A.subscriberPriority),yield Wl(Q,A.groupOrder),yield yI(Q,A.filterType),yield PQ(Q,A.params)})}const Ks={TrackEnded:3,Expired:6};function GI(Q){return r(this,null,function*(){const A=yield Q.readBigVarInt(),e=yield Q.readVarInt(),t=yield Q.readString(),B=(yield Q.readUnsigned8())==1;let F;return B&&(F={group:yield Q.readBigVarInt(),object:yield Q.readBigVarInt()}),{type:y.SubscribeDone,id:A,errorCode:e,reason:t,finalInfo:F}})}function MI(Q,A){return r(this,null,function*(){yield Q.writeBigVarInt(A.id),yield Q.writeVarInt(A.errorCode),yield Q.writeString(A.reason),yield Q.writeUnsigned8(A.finalInfo?1:0),A.finalInfo&&(yield Q.writeBigVarInt(A.finalInfo.group),yield Q.writeBigVarInt(A.finalInfo.object))})}function vI(Q){return r(this,null,function*(){return{type:y.SubscribeError,id:yield Q.readBigVarInt(),errorCode:yield Q.readBigVarInt(),reason:yield Q.readString(),trackAlias:yield Q.readBigVarInt()}})}function LI(Q,A){return r(this,null,function*(){yield Q.writeBigVarInt(A.id),yield Q.writeBigVarInt(A.errorCode),yield Q.writeString(A.reason),yield Q.writeBigVarInt(A.trackAlias)})}function HI(Q){return r(this,null,function*(){const A=yield Q.readBigVarInt(),e=yield Q.readBigVarInt(),t=yield ml(Q),B=(yield Q.readUnsigned8())==1;let F;if(t=="inherit-publisher")throw new Error("SusbcribeOk cannot have inherit publisher group order");B&&(F={group:yield Q.readBigVarInt(),object:yield Q.readBigVarInt()});const n=yield zQ(Q);return{type:y.SubscribeOk,id:A,groupOrder:t,expires:e,largestInfo:F,params:n}})}function YI(Q,A){return r(this,null,function*(){yield Q.writeBigVarInt(A.id),yield Q.writeBigVarInt(A.expires),yield Wl(Q,A.groupOrder),yield Q.writeUnsigned8(A.largestInfo?1:0),A.largestInfo&&(yield Q.writeBigVarInt(A.largestInfo.group),yield Q.writeBigVarInt(A.largestInfo.object)),yield PQ(Q,A.params)})}function xI(Q){return r(this,null,function*(){const A=yield Q.readBigVarInt(),e=yield Q.readBigVarInt(),t=yield Q.readBigVarInt(),B=yield Q.readBigVarInt(),F=yield Q.readBigVarInt(),n=yield Q.readUnsigned8(),s=yield zQ(Q),a=e>B,d=e===B&&t>F;if(a||d)throw new Error("Invalid filter range");return{type:y.SubscribeUpdate,id:A,start:{group:e,object:t},end:{group:B,object:F},subscriberPriority:n,params:s}})}function XI(Q,A){return r(this,null,function*(){yield Q.writeBigVarInt(A.id),yield Q.writeBigVarInt(A.start.group),yield Q.writeBigVarInt(A.start.object),yield Q.writeBigVarInt(A.end.group),yield Q.writeBigVarInt(A.end.object),yield Q.writeUnsigned8(A.subscriberPriority),yield PQ(Q,A.params)})}function KI(Q){return r(this,null,function*(){return{type:y.Unsubscribe,id:yield Q.readBigVarInt()}})}function OI(Q,A){return r(this,null,function*(){yield Q.writeBigVarInt(A.id)})}class pl{constructor(A){o(this,EA);o(this,Oe);o(this,Ii,new Uint8Array);l(this,Oe,A)}write(A){return r(this,null,function*(){yield U(this,Oe).writeVarInt(A.type);const e=new JB({close:()=>{},readyState:gl.OPEN,send:t=>{l(this,Ii,new Uint8Array(t))}});switch(A.type){case y.Subscribe:yield I(this,EA,jr).call(this,e,A);break;case y.Announce:yield I(this,EA,td).call(this,e,A);break;case y.SubscribeOk:yield I(this,EA,qr).call(this,e,A);break;case y.SubscribeUpdate:yield I(this,EA,$r).call(this,e,A);break;case y.SubscribeError:yield I(this,EA,_r).call(this,e,A);break;case y.SubscribeDone:yield I(this,EA,Ad).call(this,e,A);break;case y.Unsubscribe:yield I(this,EA,ed).call(this,e,A);break;case y.ClientSetup:yield I(this,EA,zr).call(this,e,A);break;case y.ServerSetup:yield I(this,EA,Pr).call(this,e,A);break;case y.AnnounceOk:yield I(this,EA,Qd).call(this,e,A);break;default:throw new Error(`Unknown message type: ${A.type}`)}yield e.flush(),yield U(this,Oe).writeVarInt(U(this,Ii).byteLength),yield U(this,Oe).write(U(this,Ii)),yield U(this,Oe).flush()})}close(){return r(this,null,function*(){return U(this,Oe).close()})}}Oe=new WeakMap,Ii=new WeakMap,EA=new WeakSet,zr=function(A,e){return r(this,null,function*(){yield WI(A,e)})},Pr=function(A,e){return r(this,null,function*(){yield DI(A,e)})},jr=function(A,e){return r(this,null,function*(){yield fI(A,e)})},qr=function(A,e){return r(this,null,function*(){yield YI(A,e)})},_r=function(A,e){return r(this,null,function*(){yield LI(A,e)})},$r=function(A,e){return r(this,null,function*(){yield XI(A,e)})},Ad=function(A,e){return r(this,null,function*(){yield MI(A,e)})},ed=function(A,e){return r(this,null,function*(){yield OI(A,e)})},td=function(A,e){return r(this,null,function*(){yield uI(A,e)})},Qd=function(A,e){return r(this,null,function*(){yield NI(A,e)})};class zI{constructor(A,e){o(this,ci);o(this,EU);o(this,gU);l(this,ci,A),l(this,EU,new pl(A)),l(this,gU,e)}write(A){return r(this,null,function*(){yield U(this,ci).write(U(this,gU)),yield U(this,EU).write(A)})}close(){return U(this,ci).close()}}ci=new WeakMap,EU=new WeakMap,gU=new WeakMap;function PI(Q){return r(this,null,function*(){return{type:y.AnnounceError,namespace:yield jF(Q),errorCode:yield Q.readBigVarInt(),reason:yield Q.readString()}})}function jI(Q,A,e){return r(this,null,function*(){return{type:y.Unknown,messageType:A,payload:yield Q.read(e)}})}class Dl{constructor(A){o(this,SA);l(this,SA,A)}cancel(){return U(this,SA).close()}read(){return r(this,null,function*(){const A=yield U(this,SA).readVarInt(),e=yield U(this,SA).readVarInt();switch(A){case y.ServerSetup:return ZI(U(this,SA));case y.ClientSetup:return pI(U(this,SA));case y.Subscribe:return bI(U(this,SA));case y.SubscribeOk:return HI(U(this,SA));case y.SubscribeDone:return GI(U(this,SA));case y.SubscribeError:return vI(U(this,SA));case y.SubscribeUpdate:return xI(U(this,SA));case y.Unsubscribe:return KI(U(this,SA));case y.Announce:return VI(U(this,SA));case y.AnnounceOk:return kI(U(this,SA));case y.AnnounceError:return PI(U(this,SA))}return jI(U(this,SA),f(A),e)})}}SA=new WeakMap;const hi=class hi{constructor(A,e){o(this,kn);o(this,IU);o(this,Ci);o(this,Ri,new m);o(this,cU,new m);l(this,IU,A),l(this,Ci,e),U(this,Ri).resolve()}write(A){return r(this,null,function*(){const e=yield I(this,kn,id).call(this);try{yield U(this,IU).write(A)}finally{e.resolve()}})}markPostHandshake(){U(this,cU).resolve()}postHandshake(){return U(this,cU).promise}read(){return r(this,null,function*(){return U(this,Ci).read()})}cancel(){return U(this,Ci).cancel()}static wrapWebsocket(A){const e=new ReadableStream(new RI(A,U(hi,Nn))),t=new Dl(new zF(new Uint8Array([]),e)),B=new zI(new JB(A),new Uint8Array([0]));return new hi(B,t)}static wrapWebTransport(A){const e=A.writable,t=A.readable;return new hi(new pl(new El(e)),new Dl(new zF(new Uint8Array,t)))}};IU=new WeakMap,Ci=new WeakMap,Ri=new WeakMap,cU=new WeakMap,kn=new WeakSet,id=function(){const A=new m,e=U(this,Ri).promise.then(()=>A);return l(this,Ri,A),e},Nn=new WeakMap,o(hi,Nn,0);let $F=hi;function Zl(Q,A){return r(this,null,function*(){yield Q.write({type:y.ClientSetup,supportedVersions:[{type:"known",value:kl.Draft07}],parameters:new Map([[_F.Role,{type:_F.Role,payload:new Uint8Array([A])}]])});const e=yield Q.read();if(Q.markPostHandshake(),e.type!==y.ServerSetup)throw new Error("Expected server setup message");if(e.selectedVersion.type!=="known")throw new Error("Expected known version")})}class qI{constructor(A){i(this,"announce");o(this,Si,new m);this.announce=A}onOk(A){U(this,Si).resolve(A)}onError(A){const e=new Error(A.reason);return U(this,Si).reject(e),e}ok(){return U(this,Si).promise}}Si=new WeakMap;function _I(Q){const A=new qI(Q);return new $I(A)}class $I{constructor(A){i(this,"state");this.state=A}}const Vi=class Vi{constructor(A){i(this,"subscribe");o(this,Ji,new m);o(this,gt,new m);o(this,nQ,new m);o(this,mn,Date.now());o(this,sQ,new m);o(this,ce);switch(this.subscribe=A,A.filterType.type){case"absolute-start":l(this,ce,{startGroup:A.filterType.start.group});break;case"absolute-range":l(this,ce,{startGroup:A.filterType.start.group,endGroup:A.filterType.end.group});break}}onUpdate(A){l(this,ce,{startGroup:A.start.group}),A.end.group>f(0)&&(U(this,ce).endGroup=A.end.group-f(1))}onError(A){const e=new Error(A.reason);return U(this,Ji).reject(e),U(this,gt).reject(e),e}onDone(A){A.finalInfo&&(U(this,ce)||l(this,ce,{startGroup:f(0)}),U(this,ce).endGroup=A.finalInfo.group),U(this,gt).resolve(A)}onUnsubscribe(A){U(this,nQ).resolve(A)}onOk(A){const e=Math.max(0,Date.now()-U(this,mn)),t=Number(A.expires);if(t>0){const B=Math.max(Vi.minGraceTime,Math.min(t/10,Vi.maxGraceTime));Promise.race([Gt(t-B-e),this.done().catch(V)]).then(()=>U(this,sQ).resolve(this.expiryState())).catch(V)}U(this,Ji).resolve(A)}done(){return U(this,gt).promise}ok(){return U(this,Ji).promise}range(){return U(this,ce)}close(){U(this,sQ).promise.catch(V),U(this,sQ).reject(new Error("Subscription closed"))}expiryState(){return U(this,gt).resolved&&U(this,gt).resolved.errorCode!==Ks.Expired?"done":U(this,nQ).pending?"active":"unsubscribed"}unsubscribed(){return U(this,nQ).promise}isUnsubscribed(){return U(this,nQ).resolved}expiryNotification(){return U(this,sQ).promise}};Ji=new WeakMap,gt=new WeakMap,nQ=new WeakMap,mn=new WeakMap,sQ=new WeakMap,ce=new WeakMap,i(Vi,"maxGraceTime",15e3),i(Vi,"minGraceTime",3e3);let An=Vi;class Ac{constructor(A){o(this,bA);o(this,CU,!1);l(this,bA,A)}write(A){return r(this,null,function*(){U(this,CU)||(yield U(this,bA).writeVarInt(OF.StreamHeaderGroup),yield U(this,bA).writeBigVarInt(A.subscribeId),yield U(this,bA).writeBigVarInt(A.trackAlias),yield U(this,bA).writeBigVarInt(A.groupId),yield U(this,bA).writeBigVarInt(A.subGroupId),yield U(this,bA).writeUnsigned8(A.subscriberPriority),l(this,CU,!0)),yield U(this,bA).writeBigVarInt(A.objectId),yield U(this,bA).writeVarInt(A.payload.length),A.payload.length>0?yield U(this,bA).write(A.payload):yield U(this,bA).writeVarInt(A.objectStatus),yield U(this,bA).flush()})}close(){return r(this,null,function*(){yield U(this,bA).close()})}}bA=new WeakMap,CU=new WeakMap;class ec{constructor(A,e,t,B){o(this,Wn);o(this,RU);o(this,ie);o(this,hU);o(this,SU);o(this,ui);o(this,JU);l(this,RU,e),l(this,ie,A),l(this,hU,t),l(this,SU,B),l(this,JU,pA.get().createContext(`SubscriptionWriter:${A.subscribe.name}`))}finalInfo(){return U(this,ui)}run(){return r(this,null,function*(){yield Promise.race([I(this,Wn,Bd).call(this).catch(A=>U(this,JU).error("error writing subscription",A)),U(this,ie).unsubscribed(),U(this,ie).done(),U(this,ie).expiryNotification().catch(V)])})}done(A,e){return r(this,null,function*(){if(U(this,ie).isUnsubscribed())return;const t={type:y.SubscribeDone,id:U(this,ie).subscribe.id,errorCode:A,reason:e,finalInfo:U(this,ui)};U(this,ie).onDone(t),yield U(this,SU).push(t)})}[ke()](){return this.done(Ks.TrackEnded,"Track ended")}[Symbol.asyncDispose](){return this.done(Ks.TrackEnded,"Track ended")}}RU=new WeakMap,ie=new WeakMap,hU=new WeakMap,SU=new WeakMap,ui=new WeakMap,JU=new WeakMap,Wn=new WeakSet,Bd=function(){return r(this,null,function*(){try{for(var n=rA(U(this,RU)),s,a,d;s=!(a=yield n.next()).done;s=!1){const E=a.value;var A=[];try{const g=U(this,ie).range();if(g&&(g.startGroup>E.id||g.endGroup&&g.endGroup<E.id))break;const c=yield U(this,hU).openSendStream();const J=new Ac(c);const k=ae(A,new tc(J,E.consume(),U(this,ie)),!0);yield k.run();l(this,ui,k.finalGroup())}catch(e){var t=e,B=!0}finally{var F=oe(A,t,B);F&&(yield F)}}}catch(a){d=[a]}finally{try{s&&(a=n.return)&&(yield a.call(n))}finally{if(d)throw d[0]}}})};class tc{constructor(A,e,t){o(this,aQ);o(this,VU);o(this,ki);o(this,uU);o(this,Ni);l(this,aQ,A),l(this,VU,e),l(this,ki,t),l(this,Ni,pA.get().createContext(`GroupSubscriptionWriter:${t.subscribe.name}`))}finalGroup(){return U(this,uU)}run(){return r(this,null,function*(){U(this,Ni).debug("write group");try{for(var A=rA(U(this,VU)),e,t,B;e=!(t=yield A.next()).done;e=!1){const F=t.value;yield U(this,aQ).write({subscribeId:U(this,ki).subscribe.id,trackAlias:U(this,ki).subscribe.trackAlias,subGroupId:f(0),subscriberPriority:0,groupId:F.groupId,objectId:F.objectId,objectStatus:F.objectStatus,payload:F.payload}),l(this,uU,{group:F.groupId,object:F.objectId})}}catch(t){B=[t]}finally{try{e&&(t=A.return)&&(yield t.call(A))}finally{if(B)throw B[0]}}U(this,Ni).debug("write group done")})}[ke()](){return U(this,aQ).close().catch(V)}[Symbol.asyncDispose](){return U(this,aQ).close().catch(V)}}aQ=new WeakMap,VU=new WeakMap,ki=new WeakMap,uU=new WeakMap,Ni=new WeakMap;class Qc{constructor(A,e,t){o(this,It);i(this,"state");o(this,kU);o(this,oQ);this.state=A,l(this,kU,e),l(this,oQ,t)}ok(A){return r(this,null,function*(){var a,d,E;const e=(a=this.state.range())==null?void 0:a.startGroup,t=A.latest(),B=t==null?void 0:t.id,F=(E=(d=t==null?void 0:t.latest())==null?void 0:d.objectId)!=null?E:f(0),n=A.consume(e!=null?e:B),s={type:y.SubscribeOk,id:this.state.subscribe.id,expires:f(0),groupOrder:"ascending",params:new Map,largestInfo:B?{group:B,object:F}:void 0};return yield U(this,oQ).push(s),new ec(this.state,n,U(this,kU),U(this,oQ))})}invalidRange(){return I(this,It,dB).call(this,f(1),"Invalid range")}retryTrackAlias(){return I(this,It,dB).call(this,f(2),"Retry track alias")}trackDoesNotExist(){return I(this,It,dB).call(this,f(3),"Track does not exist")}unauthorized(){return I(this,It,dB).call(this,f(4),"Unauthorized")}timeout(){return I(this,It,dB).call(this,f(5),"Timeout")}[ke()](){return this.trackDoesNotExist()}[Symbol.asyncDispose](){return this.trackDoesNotExist()}}kU=new WeakMap,oQ=new WeakMap,It=new WeakSet,dB=function(A,e){const t={type:y.SubscribeError,id:this.state.subscribe.id,errorCode:A,reason:e,trackAlias:this.state.subscribe.trackAlias};return U(this,oQ).push(t)},cr=[KA({context:"Session",enter:"info",error:"error"})];class Os{constructor(A,e,t){fQ(Ya,5,this);o(this,mi);o(this,NU);o(this,Wi);o(this,lQ,pA.get().createContext("Publisher"));o(this,ct,new GA(new Map));o(this,Ct,new GA(new Map));o(this,Rt,new q(10));l(this,mi,A),l(this,NU,e),l(this,Wi,t)}announce(A){return r(this,null,function*(){if(U(this,ct).current().has(A.join("/")))throw new Error("Duplicate announcement");const e=new Map,t=U(this,mi).authToken();t&&e.set(qF,{type:qF,payload:new TextEncoder().encode(t)});const B={type:y.Announce,namespace:A,params:e},F=_I(B);if(U(this,ct).update(s=>s.set(B.namespace.join("/"),F)),yield U(this,Wi).push(B),!(yield Promise.race([F.state.ok(),U(this,mi).closed()])))throw new Error("Session closed")})}close(){U(this,Ct).current().forEach(A=>A.close()),U(this,Ct).close(),U(this,ct).close(),U(this,Rt).close()}incomingSubscriptions(){return U(this,Rt)}onMessage(A){return r(this,null,function*(){switch(A.type){case y.Subscribe:{const e=new An(A);if(U(this,Ct).update(t=>(t.set(A.id,e),t)),U(this,Rt).isFull()){const t=yield U(this,Rt).pop();yield t==null?void 0:t.timeout()}yield U(this,Rt).push(new Qc(e,U(this,NU),U(this,Wi)))}break;case y.SubscribeUpdate:{const e=U(this,Ct).current().get(A.id);e||U(this,lQ).debug("No subscription found",A),e==null||e.onUpdate(A)}break;case y.Unsubscribe:{const e=U(this,Ct).current().get(A.id);e||U(this,lQ).debug("No subscription found",A),e==null||e.onUnsubscribe(A)}break;case y.AnnounceOk:{const e=U(this,ct).current().get(A.namespace.join("/"));e||U(this,lQ).debug("No announcement found",A),e==null||e.state.onOk(A)}break;case y.AnnounceError:{const e=U(this,ct).current().get(A.namespace.join("/"));e||U(this,lQ).debug("No announcement found",A),e==null||e.state.onError(A)}break}})}}Ya=bQ(null),mi=new WeakMap,NU=new WeakMap,Wi=new WeakMap,lQ=new WeakMap,ct=new WeakMap,Ct=new WeakMap,Rt=new WeakMap,XA(Ya,1,"announce",cr,Os),Tt(Ya,Os);function ic(Q,A){const e=new An(A),[t,B]=P(100),F=new Bc(e,t),n=new wl(Q,e,B);return[F,n]}class Bc{constructor(A,e){i(this,"state");o(this,rQ);this.state=A,l(this,rQ,e)}onDone(A){this.state.onDone(A)}onData(A){return U(this,rQ).push(A)}onError(A){const e=this.state.onError(A);U(this,rQ).abort(e)}close(){this.state.close(),U(this,rQ).close()}}rQ=new WeakMap;class wl{constructor(A,e,t){fQ(xa,5,this);o(this,wi);o(this,pi);o(this,mA);o(this,Di);o(this,Zi,new m);l(this,pi,A),l(this,mA,e),l(this,Di,t)}get id(){return U(this,mA).subscribe.id}get trackAlias(){return U(this,mA).subscribe.trackAlias}get name(){return U(this,mA).subscribe.name}range(){return U(this,mA).range()}expiryNotification(){return U(this,mA).expiryNotification()}update(A,e){return r(this,null,function*(){const t={type:y.SubscribeUpdate,id:U(this,mA).subscribe.id,start:{group:A,object:f(0)},end:{group:e+f(1),object:f(0)},params:new Map,subscriberPriority:0};U(this,mA).onUpdate(t),yield U(this,pi).push(t)})}unsubscribe(){return r(this,null,function*(){const A={type:y.Unsubscribe,id:U(this,mA).subscribe.id};U(this,mA).onUnsubscribe(A),yield U(this,pi).push(A)})}close(){var A,e;return U(this,Zi).resolve(),(e=(A=U(this,Di)).return)==null?void 0:e.call(A)}closed(){return U(this,Zi).promise}done(){return U(this,mA).done()}expiryState(){return U(this,mA).expiryState()}unsubscribed(){return U(this,mA).isUnsubscribed()}return(){return r(this,null,function*(){return U(this,Zi).resolve(),yield this.unsubscribe(),{done:!0,value:void 0}})}groups(){return it(this,null,function*(){var A,e;try{for(var J=rA(U(this,Di)),k,p,w;k=!(p=yield new lA(J.next())).done;k=!1){var s=p.value;var a=[];try{const M=ae(a,s,!0);try{for(var t=rA(M.groups()),B,F,n;B=!(F=yield new lA(t.next())).done;B=!1){const D=F.value;const G=(A=U(this,mA).range())==null?void 0:A.startGroup,v=(e=U(this,mA).range())==null?void 0:e.endGroup;if(G&&D.groupId()<G)return{done:!0,value:void 0};if(v&&D.groupId()>v)return{done:!0,value:void 0};yield D}}catch(F){n=[F]}finally{try{B&&(F=t.return)&&(yield new lA(F.call(t)))}finally{if(n)throw n[0]}}}catch(d){var E=d,g=!0}finally{var c=oe(a,E,g);c&&(yield new lA(c))}}}catch(p){w=[p]}finally{try{k&&(p=J.return)&&(yield new lA(p.call(J)))}finally{if(w)throw w[0]}}})}[Symbol.asyncIterator](){return this.groups()}objects(){return it(this,null,function*(){try{for(var F=rA(this.groups()),n,s,a;n=!(s=yield new lA(F.next())).done;n=!1){const d=s.value;try{for(var A=rA(d),e,t,B;e=!(t=yield new lA(A.next())).done;e=!1){const E=t.value;yield E}}catch(t){B=[t]}finally{try{e&&(t=A.return)&&(yield new lA(t.call(A)))}finally{if(B)throw B[0]}}}}catch(s){a=[s]}finally{try{n&&(s=F.return)&&(yield new lA(s.call(F)))}finally{if(a)throw a[0]}}})}[(Cr=[KA({context:"SubscriptionConsumer",enter:"info"})],ke())](){return I(this,wi,cF).call(this)}[Symbol.asyncDispose](){return I(this,wi,cF).call(this)}}xa=bQ(null),pi=new WeakMap,mA=new WeakMap,Di=new WeakMap,Zi=new WeakMap,wi=new WeakSet,cF=function(){return r(this,null,function*(){return yield this.close(),this.unsubscribe()})},cF=XA(xa,17,"#dispose",Cr,wi,cF),Tt(xa,wl);const Uc=2e3;Jr=[KA({context:"Session",return:"debug"})],Sr=[KA({context:"Session",enter:"info",error:"error"})],hr=[KA({context:"Session",enter:"debug"})],Rr=[KA({context:"Session",enter:"debug"})];class en{constructor(A,e){fQ(Ti,5,this);o(this,Ze);o(this,ze);i(this,"nextSubscribeId",f(0));o(this,qA,new GA(new Map));o(this,dQ);o(this,EQ,pA.get().createContext("Subscriber"));l(this,ze,A),l(this,dQ,e),I(this,Ze,Es).call(this).catch(V)}subscribe(A,e){return r(this,null,function*(){const t=this.nextSubscribeId++,B=new Map,F=U(this,ze).authToken();F&&B.set(qF,{type:qF,payload:new TextEncoder().encode(F)});const n={type:y.Subscribe,namespace:A,name:e.name,id:t,trackAlias:t,groupOrder:e.groupOrder,subscriberPriority:e.priority,filterType:e.filterType,params:B},[s,a]=ic(U(this,dQ),n);if(U(this,qA).update(E=>E.set(t,s)),yield U(this,dQ).push(n),!(yield Promise.race([s.state.ok(),U(this,ze).closed()])))throw new Error("Session closed");return a.closed().then(()=>Promise.race([Gt(Uc),this.closed()])).then(()=>I(this,Ze,EB).call(this,a.id)).catch(()=>I(this,Ze,EB).call(this,a.id)),a})}closed(){return U(this,ze).closed()}transportType(){return U(this,ze).transportType()}url(){return U(this,ze).url()}onMessage(A){return r(this,null,function*(){switch(A.type){case y.Announce:yield U(this,dQ).push({type:y.AnnounceOk,namespace:A.namespace});break;case y.SubscribeOk:{const e=U(this,qA).current().get(A.id);e&&e.state.onOk(A)}break;case y.SubscribeError:{const e=U(this,qA).current().get(A.id);e||U(this,EQ).debug("No subscription found",A),e==null||e.onError(A),I(this,Ze,EB).call(this,A.id)}break;case y.SubscribeDone:{const e=U(this,qA).current().get(A.id);e||U(this,EQ).debug("No subscription found",A),e==null||e.onDone(A)}break}})}onObjectReader(A){return r(this,null,function*(){const e=U(this,qA).current().get(A.subscribeId());if(!e){U(this,EQ).warn("No subscription found",A.subscribeId());return}yield e.onData(A)})}close(){U(this,qA).current().forEach(A=>A.close()),U(this,qA).close()}}Ti=bQ(null),ze=new WeakMap,qA=new WeakMap,dQ=new WeakMap,EQ=new WeakMap,Ze=new WeakSet,Es=function(){return r(this,null,function*(){try{for(var A=rA(U(this,qA)),e,t,B;e=!(t=yield A.next()).done;e=!1){const F=t.value;const n=[...F.values()].map(s=>s.state.subscribe);U(this,EQ).debug("current subscriptions",n)}}catch(t){B=[t]}finally{try{e&&(t=A.return)&&(yield t.call(A))}finally{if(B)throw B[0]}}})},EB=function(A){U(this,qA).isClosed()||U(this,qA).update(e=>(e.delete(A),e))},Es=XA(Ti,17,"#observeChanges",Jr,Ze,Es),XA(Ti,1,"subscribe",Sr,en),XA(Ti,1,"close",hr,en),EB=XA(Ti,17,"#deleteSubscription",Rr,Ze,EB),Tt(Ti,en);class zs{constructor(A,e){fQ(fi,5,this);o(this,JA);o(this,Ce);o(this,mU);o(this,gQ);o(this,yi,pA.get().createContext("Session"));i(this,"subscriber");i(this,"publisher");o(this,bi);const[t,B]=P(100);l(this,Ce,A),l(this,gQ,B),this.subscriber=new en(this,t),this.publisher=new Os(this,A,t),l(this,mU,I(this,JA,Fd).call(this)),l(this,bi,new GA(e)),this.closed().then(()=>this.close()).catch(V)}updateAuthToken(A){U(this,bi).update(A)}authToken(){return U(this,bi).current()}transportType(){return U(this,Ce).transportType()}url(){return U(this,Ce).url()}closed(){return U(this,mU)}close(){try{this.subscriber.close(),this.publisher.close(),U(this,gQ).cancel("closing"),U(this,Ce).close()}catch(A){U(this,yi).warn("Error closing session",A)}}[(Nr=[KA({context:"Session",return:"info",error:"error"})],kr=[KA({context:"Session",return:"info",error:"error"})],ur=[KA({context:"Session",return:"info",error:"error"})],Vr=[KA({context:"Session",enter:"debug"})],Io())](){I(this,JA,CF).call(this)}[Symbol.dispose](){I(this,JA,CF).call(this)}}fi=bQ(null),Ce=new WeakMap,mU=new WeakMap,gQ=new WeakMap,yi=new WeakMap,bi=new WeakMap,JA=new WeakSet,Ud=function(A){return r(this,null,function*(){var e,t;switch(U(this,yi).debug("received message",A),yield(e=this.subscriber)==null?void 0:e.onMessage(A),yield(t=this.publisher)==null?void 0:t.onMessage(A),A.type){case y.Goaway:break}})},Fd=function(){return r(this,null,function*(){return(yield Promise.all([I(this,JA,Is).call(this),I(this,JA,cs).call(this),I(this,JA,gs).call(this)])).find(e=>e instanceof Error)})},gs=function(){return r(this,null,function*(){try{try{for(var A=rA(U(this,gQ)),e,t,B;e=!(t=yield A.next()).done;e=!1){const F=t.value;U(this,yi).debug("sending message",F),yield U(this,Ce).writeMessage(F)}}catch(t){B=[t]}finally{try{e&&(t=A.return)&&(yield t.call(A))}finally{if(B)throw B[0]}}}catch(F){return F}})},Is=function(){return r(this,null,function*(){try{for(yield U(this,Ce).afterHandshake();;){const A=yield U(this,Ce).readMessage().catch(()=>{});if(!A)break;yield I(this,JA,Ud).call(this,A)}}catch(A){return A}finally{U(this,gQ).cancel("closing")}})},cs=function(){return r(this,null,function*(){var A;try{for(;;){const e=yield U(this,Ce).objectStream();if(!e)break;yield(A=this.subscriber)==null?void 0:A.onObjectReader(e)}}catch(e){return e}})},CF=function(){this.close()},gs=XA(fi,17,"#runOutgoingMessages",Nr,JA,gs),Is=XA(fi,17,"#runControl",kr,JA,Is),cs=XA(fi,17,"#runObjects",ur,JA,cs),CF=XA(fi,17,"#dispose",Vr,JA,CF),Tt(fi,zs);const Fc=128;class nc{constructor(A,e,t){o(this,fA);o(this,Be);o(this,WU);o(this,IQ,!0);o(this,Gi,!1);o(this,pU);l(this,Be,A),l(this,WU,e),l(this,pU,t)}writeUnsigned8(A){return r(this,null,function*(){return I(this,fA,vQ).call(this),yield I(this,fA,LQ).call(this),U(this,Be).writeUnsigned8(A)})}writeVarInt(A){return r(this,null,function*(){return I(this,fA,vQ).call(this),yield I(this,fA,LQ).call(this),U(this,Be).writeVarInt(A)})}writeBigVarInt(A){return r(this,null,function*(){return I(this,fA,vQ).call(this),yield I(this,fA,LQ).call(this),U(this,Be).writeBigVarInt(A)})}write(A){return r(this,null,function*(){return I(this,fA,vQ).call(this),yield I(this,fA,LQ).call(this),U(this,Be).write(A)})}writeString(A){return r(this,null,function*(){return I(this,fA,vQ).call(this),yield I(this,fA,LQ).call(this),U(this,Be).writeString(A)})}flush(){return r(this,null,function*(){I(this,fA,vQ).call(this),l(this,IQ,!0),yield U(this,Be).flush()})}close(){return r(this,null,function*(){U(this,Gi)||(l(this,IQ,!0),yield I(this,fA,LQ).call(this,!1),yield U(this,Be).flush(),l(this,Gi,!0),U(this,pU).call(this))})}}Be=new WeakMap,WU=new WeakMap,IQ=new WeakMap,Gi=new WeakMap,pU=new WeakMap,fA=new WeakSet,vQ=function(){if(U(this,Gi))throw new Error("Stream is closed")},LQ=function(A=!0){if(U(this,IQ))return l(this,IQ,!1),U(this,Be).writeUnsigned8(U(this,WU)|(A?Fc:0))};class sc{constructor(A,e){o(this,pn);o(this,ht);o(this,Pe);o(this,Mi);o(this,cQ);o(this,je,new Map);o(this,vi,pA.get().createContext("WebSocketConnection"));o(this,Li,new Set(new Array(128).fill(0).map((A,e)=>e+1)));l(this,ht,A),l(this,Pe,e),l(this,Mi,new ReadableStream(new hI(A))),U(this,ht).addEventListener("close",()=>{U(this,Pe).markPostHandshake(),U(this,je).forEach(t=>t.close())})}openSendStream(){const A=U(this,Li).values().next().value;if(!A)throw new Error("No stream IDs available");return U(this,Li).delete(A),Promise.resolve(new nc(new JB(U(this,ht)),A,()=>I(this,pn,nd).call(this,A)))}transportType(){return"websocket"}url(){return U(this,ht).url}afterHandshake(){return U(this,Pe).postHandshake()}objectStream(){return r(this,null,function*(){var A;for(;;){l(this,cQ,U(this,Mi).getReader());try{const{value:e,done:t}=yield U(this,cQ).read();if(t)return;const[B,F,n]=e;if(U(this,je).has(f(F))){const s=U(this,je).get(f(F));if(!s)throw new Error("Stream not found");n.length>0&&(yield s.push(n)),B||(U(this,vi).debug("Closing stream",{streamId:F}),s.close(),U(this,je).delete(f(F)))}else{let E;U(this,vi).debug("Creating new stream",{streamId:F});const[s,a]=P(1e3),d=new ReadableStream({pull(g){return r(this,null,function*(){const c=yield a.pop();c?g.enqueue(c):g.close()})}});if(U(this,je).set(f(F),s),B||(U(this,vi).debug("Closing new stream",{streamId:F}),yield d.cancel(),U(this,je).delete(f(F))),n.length>0)return yield dl(new zF(n,d),F)}}finally{(A=U(this,cQ))==null||A.releaseLock()}}})}close(){var A;return U(this,Pe).cancel().catch(V),U(this,Mi).cancel("closing").catch(V),(A=U(this,cQ))==null||A.cancel("closing").catch(V),U(this,ht).close()}closed(){return Promise.resolve()}writeMessage(A){return r(this,null,function*(){yield U(this,Pe).write(A)})}readMessage(){return r(this,null,function*(){return U(this,Pe).read()})}}ht=new WeakMap,Pe=new WeakMap,Mi=new WeakMap,cQ=new WeakMap,je=new WeakMap,vi=new WeakMap,Li=new WeakMap,pn=new WeakSet,nd=function(A){U(this,Li).add(A)};class ac{constructor(A,e,t){o(this,Zn);o(this,St);o(this,Jt);o(this,CQ,new q(100));o(this,DU);o(this,ZU,0);o(this,Dn,pA.get().createContext("WebTransportConnection"));l(this,DU,t),l(this,St,A),l(this,Jt,e),I(this,Zn,sd).call(this).catch(B=>{U(this,Dn).debug("Incoming streams handling ended with error",B),U(this,Jt).markPostHandshake(),U(this,CQ).close()})}openSendStream(){return r(this,null,function*(){const A=yield U(this,St).createUnidirectionalStream();return new El(A)})}transportType(){return"webtransport"}url(){return U(this,DU)}afterHandshake(){return U(this,Jt).postHandshake()}closed(){return r(this,null,function*(){yield U(this,St).closed})}close(){U(this,St).close()}writeMessage(A){return r(this,null,function*(){yield U(this,Jt).write(A)})}readMessage(){return r(this,null,function*(){return U(this,Jt).read()})}objectStream(){return r(this,null,function*(){return U(this,CQ).pop()})}}St=new WeakMap,Jt=new WeakMap,CQ=new WeakMap,DU=new WeakMap,ZU=new WeakMap,Dn=new WeakMap,Zn=new WeakSet,sd=function(){return r(this,null,function*(){const A=U(this,St).incomingUnidirectionalStreams.getReader();for(;;){const{value:e,done:t}=yield A.read();if(t){U(this,CQ).close();return}const B=new zF(new Uint8Array,e);yield U(this,CQ).push(dl(B,U(this,ZU))),GQ(this,ZU)._++}})};function Ps(Q){return r(this,null,function*(){const A=new WebSocket(Q.wsUrl||Q.url);A.binaryType="arraybuffer",yield new Promise((F,n)=>{A.addEventListener("error",()=>n(new Error("WebSocket error")),{once:!0}),A.addEventListener("open",F,{once:!0})});const e=$F.wrapWebsocket(A);Zl(e,Q.role).catch(()=>{A.close()});const t=new sc(A,e);return new zs(t,Q.authToken)})}function oc(Q){return r(this,null,function*(){const A="60b82e8021689e163c1041b4475ef9c86e7565bc45d1a0aa43f5148769f461c7",e=new Uint8Array(A.length/2);for(let a=0;a<e.length;a+=1)e[a]=parseInt(A.slice(2*a,2*a+2),16);const t=new WebTransport(Q.url,{congestionControl:"low-latency"});yield Promise.race([t.ready,t.closed.then(()=>Promise.reject(new Error("WebTransport closed")))]);const B=yield t.createBidirectionalStream(),F=$F.wrapWebTransport(B);Zl(F,Q.role).catch(()=>{t.close()});const n=new ac(t,F,Q.url.toString());return new zs(n,Q.authToken)})}function lc(Q){return r(this,null,function*(){if(self.WebTransport&&(Q==null?void 0:Q.preferredTransport)!=="websocket"&&Q.url.protocol.startsWith("https")){const A=oc(Q).catch(()=>Ps(Q)),e=yield Promise.race([A,Gt(Q.websocketFallbackTimeoutMs)]);return e||Ps(Q)}return Ps(Q)})}class Le{constructor(){o(this,qe,{name:"",priority:0,groupOrder:"descending",filterType:{type:"latest-group"}})}name(A){return U(this,qe).name=A,this}priority(A){return U(this,qe).priority=A,this}groupOrder(A){return U(this,qe).groupOrder=A,this}startGroup(A){return U(this,qe).filterType={type:"absolute-start",start:{group:A,object:f(0)}},this}range(A,e){return U(this,qe).filterType={type:"absolute-range",start:{group:A,object:f(0)},end:{group:e,object:f(0)}},this}build(){return U(this,qe)}}qe=new WeakMap;class Tl{constructor(A,e){o(this,Hi);o(this,wU);l(this,Hi,A),l(this,wU,e)}subscribe(A){return U(this,Hi).subscribe(this.namespace(),A)}closed(){return U(this,Hi).closed()}namespace(){return U(this,wU).namespace}}Hi=new WeakMap,wU=new WeakMap;function rc(Q,A){return["com.vindral.moq",Q]}function Yt(Q){const A=Q[1];if(!A)throw new Error("namespace must contain a channel ID");return A}function dc(Q){return"tracks"in Q}function Ec(Q){const A=new TextDecoder().decode(Q);return JSON.parse(A)}const Xa=class Xa{constructor(A,e){o(this,yU);o(this,_A);o(this,we);o(this,RQ,new Z(100));o(this,Ue);o(this,TU);o(this,wn,A=>r(this,null,function*(){if(!A)return U(this,_A).close();if(U(this,Ue))return;const e=U(this,RQ).items().reduce((t,B)=>t<B?t:B,A);l(this,Ue,I(this,yU,no).call(this,e,A)),U(this,Ue).size===0&&(yield U(this,_A).close())}));l(this,_A,A),l(this,we,e),A.done().then(t=>r(this,null,function*(){var B;return U(this,wn).call(this,(B=t.finalInfo)==null?void 0:B.group)})).catch(V),l(this,TU,A.groups())}static subscribe(A,e){return r(this,null,function*(){const t=yield A.subscribe(e);return new Xa(t,void 0)})}subscribeId(){return U(this,_A).id}name(){return U(this,_A).name}largestGroupId(){return U(this,we)}needsRenewal(){return U(this,_A).expiryState()==="active"&&U(this,Ue)===void 0}endOfTrack(A){const e=U(this,RQ).items().reduce((t,B)=>t<B?t:B,A);return this.update(e,A)}update(A,e){return r(this,null,function*(){return l(this,Ue,I(this,yU,no).call(this,A,e)),U(this,Ue).size===0&&(yield U(this,_A).close()),U(this,_A).update(A,e)})}unsubscribe(){return U(this,_A).unsubscribe()}next(){return r(this,null,function*(){var t;if(U(this,Ue)&&U(this,Ue).size===0)return{done:!0,value:void 0};const A=yield U(this,TU).next();if(A.done)return A;const e=A.value.groupId();return(t=U(this,Ue))==null||t.delete(e),U(this,RQ).push(e),U(this,we)||l(this,we,e),l(this,we,U(this,we)<e?e:U(this,we)),A})}return(){return U(this,_A).return()}[Symbol.asyncIterator](){return this}};_A=new WeakMap,we=new WeakMap,RQ=new WeakMap,Ue=new WeakMap,TU=new WeakMap,wn=new WeakMap,yU=new WeakSet,no=function(A,e){const t=new Set;for(let B=A;B<=e;B++)t==null||t.add(B);return U(this,RQ).items().forEach(B=>{t==null||t.delete(B)}),t};let tn=Xa;const Ka=class Ka{constructor(A){o(this,bU);o(this,Re);o(this,hQ);o(this,_e,new q(10));o(this,Te);o(this,fU,(A,e)=>r(this,null,function*(){var g=[];try{const t=ae(g,yield U(this,Re).lock());const B={subscribeId:t.value.subscribeId()};if(!t.value.needsRenewal()){U(this,Te).debug("Subscription does not need renewal",B);return}const F=t.value.largestGroupId();const n=F!==void 0;const s=new Le().name(e.name).priority(e.priority).groupOrder(e.groupOrder);B.largestGroupId=F;U(this,Te).debug("Renewing subscription",B);switch(e.filterType.type){case"absolute-range":U(this,Te).debug("Absolute range is not renewed",B);return;case"absolute-start":case"latest-group":case"latest-object":n&&s.startGroup(F+f(1));break}const a=s.build();B.newTrack=a;const[d]=yield Promise.all([A.subscribe(a),n?t.value.update(F,F):t.value.unsubscribe()]);d.done().then(()=>I(this,bU,so).call(this,d)).catch(V);d.expiryNotification().then(()=>U(this,fU).call(this,A,a)).catch(V);const E=new tn(d,F);t.value=E;yield U(this,_e).push(E);U(this,Te).info("Subscription renewed",B)}catch(c){var J=c,k=!0}finally{oe(g,J,k)}}));l(this,Re,new Ld(A)),l(this,hQ,A),l(this,Te,pA.get().createContext(`Renewable '${A.name()}'`))}static subscribe(A,e,t){return r(this,null,function*(){const B=yield A.subscribe(e),F=new Ka(new tn(B,t));return B.done().then(()=>{var n;return I(n=F,bU,so).call(n,B)}).catch(V),B.expiryNotification().then(()=>{var n;return U(n=F,fU).call(n,A,e)}).catch(V),F})}largestGroupId(){return U(this,Re).unsafeValue().largestGroupId()}update(A,e){return r(this,null,function*(){var B=[];try{const t=ae(B,yield U(this,Re).lock());U(this,_e).close();return t.value.update(A,e)}catch(F){var n=F,s=!0}finally{oe(B,n,s)}})}endOfTrack(A){return r(this,null,function*(){var t=[];try{const e=ae(t,yield U(this,Re).lock());U(this,_e).close();return e.value.endOfTrack(A)}catch(B){var F=B,n=!0}finally{oe(t,F,n)}})}unsubscribe(){return r(this,null,function*(){var e=[];try{const A=ae(e,yield U(this,Re).lock());U(this,_e).close();return A.value.unsubscribe()}catch(t){var B=t,F=!0}finally{oe(e,B,F)}})}return(){return r(this,null,function*(){var e=[];try{const A=ae(e,yield U(this,Re).lock());U(this,_e).close();return A.value.return()}catch(t){var B=t,F=!0}finally{oe(e,B,F)}})}next(){return r(this,null,function*(){var e,t;const A=yield U(this,hQ).next();if(A.done){yield(t=(e=U(this,hQ)).return)==null?void 0:t.call(e);const B=yield U(this,_e).pop();if(B)return l(this,hQ,B),this.next()}return A})}[Symbol.asyncIterator](){return this}objects(){return it(this,null,function*(){try{for(var s=rA(this),a,d,E;a=!(d=yield new lA(s.next())).done;a=!1){var A=d.value;var e=[];try{const g=ae(e,A,!0);yield*Qo(g)}catch(t){var B=t,F=!0}finally{var n=oe(e,B,F);n&&(yield new lA(n))}}}catch(d){E=[d]}finally{try{a&&(d=s.return)&&(yield new lA(d.call(s)))}finally{if(E)throw E[0]}}})}};Re=new WeakMap,hQ=new WeakMap,_e=new WeakMap,Te=new WeakMap,bU=new WeakSet,so=function(A){return r(this,null,function*(){var e;if(A.unsubscribed()||(e=A.range())!=null&&e.endGroup){U(this,Te).info("Server initiated subscribe done but the subscription is already closing");return}if(U(this,Re).unsafeValue().subscribeId()!==A.id){U(this,Te).info("subscribeId mismatch - the subscription already has been renewed");return}return this.return()})},fU=new WeakMap;let nt=Ka;const gc="catalog";function yl(Q){const A=Ec(Q.payload);if(!dc(A))throw new Error("unexpected catalog type");return A}const yn=class yn{constructor(A,e,t){o(this,Tn);o(this,Vt);o(this,GU);o(this,MU);o(this,vU);l(this,GU,A),l(this,Vt,e),l(this,MU,t),l(this,vU,I(this,Tn,ad).call(this)),this.closed().finally(()=>U(this,Vt).close()).catch(V)}catalog(){return U(this,Vt)}closed(){return U(this,vU)}close(){return r(this,null,function*(){return U(this,Vt).close(),(yield U(this,GU).promise).unsubscribe()})}static start(A,e){return r(this,null,function*(){const t=m.fromPromise(nt.subscribe(A,new Le().name(e.catalogName||gc).groupOrder("ascending").build())),B=m.fromPromise(t.promise.then(a=>a.objects()));if(e.catalog)return new yn(t,new GA(e.catalog),B);const n=yield(yield B.promise).next();if(!n.value)throw new Error("No catalog found");const s=yl(n.value);return new yn(t,new GA(s),B)})}};Vt=new WeakMap,GU=new WeakMap,MU=new WeakMap,vU=new WeakMap,Tn=new WeakSet,ad=function(){return r(this,null,function*(){const A=yield U(this,MU).promise;try{for(var e=rA(A),t,B,F;t=!(B=yield e.next()).done;t=!1){const n=B.value;if(n.objectStatus!==MA.Normal)continue;const s=yl(n);U(this,Vt).update(s)}}catch(B){F=[B]}finally{try{t&&(B=e.return)&&(yield B.call(e))}finally{if(F)throw F[0]}}})};let js=yn;class Ic{constructor(A,e,t,B){o(this,YU);o(this,LU);o(this,Yi);o(this,HU);i(this,"track");o(this,xi,pA.get().createContext("CmafGroup"));this.track=B,l(this,LU,t),l(this,Yi,A),l(this,HU,e)}[Symbol.asyncIterator](){return it(this,null,function*(){const A={name:this.track.trackObject.name,namespace:this.track.namespace};U(this,xi).debug("start",S({},A));try{for(var e=rA(U(this,Yi)),t,B,F;t=!(B=yield new lA(e.next())).done;t=!1){const n=B.value;if(n.objectStatus===MA.EndOfTrackAndGroup&&(yield new lA(this.track.endOfTrack(n.groupId))),n.objectStatus!==MA.Normal)continue;const s=U(this,HU).createFragment(n.payload),a=s.timescale(),d=s.baseMediaDecodeTime()/a*1e3,E=s.duration()/a*1e3,g=d+E,c=U(this,LU)/1e3*a;s.updateBaseMediaDecodeTime(s.baseMediaDecodeTime()-c);const J=this.track.timestampRange();if(J&&d>=J[1])break;U(this,xi).debug("fragment",O(S({},A),{startTime:d,endTime:g,subscribeId:n.subscribeId,groupId:n.groupId,objectId:n.objectId,streamId:n.streamId})),yield[n.groupId,s]}}catch(B){F=[B]}finally{try{t&&(B=e.return)&&(yield new lA(B.call(e)))}finally{if(F)throw F[0]}}U(this,xi).debug("end",S({},A))})}[ke()](){return I(this,YU,ao).call(this)}[Symbol.asyncDispose](){return I(this,YU,ao).call(this)}}LU=new WeakMap,Yi=new WeakMap,HU=new WeakMap,xi=new WeakMap,YU=new WeakSet,ao=function(){return r(this,null,function*(){var A,e;return yield(e=(A=U(this,Yi)).return)==null?void 0:e.call(A),Promise.resolve()})};const Xi=class Xi{constructor(A,e,t,B,F){o(this,xU);o(this,ye);o(this,XU);o(this,KU);i(this,"trackObject");i(this,"namespace");this.trackObject=A,this.namespace=e,l(this,ye,t),l(this,xU,B),l(this,XU,F)}static subscribe(A,e,t,B){return r(this,null,function*(){var E;if(e.format!=="cmaf")throw new Error("format must be cmaf");const F=new Le().name(e.name);B&&F.startGroup(B);const n=F.build();if(e.initTrack){const g=new Le().name(e.initTrack).build(),[c,J]=yield Promise.all([I(E=Xi,bn,od).call(E,A,g),nt.subscribe(A,n,B?B-f(1):void 0)]),k=new tl(c);return new Xi(e,A.namespace(),J,k,t)}W(e.initData,"no init data found on track");const s=sA(e.initData),a=new tl(new Uint8Array(s)),d=yield nt.subscribe(A,n,B?B-f(1):void 0);return new Xi(e,A.namespace(),d,a,t)})}largestGroupId(){return U(this,ye).largestGroupId()}stopAfterTimestampReached(A){l(this,KU,[0,A])}timestampRange(){return U(this,KU)}endOfTrack(A){return U(this,ye).endOfTrack(A)}update(A,e){return U(this,ye).update(A,e)}unsubscribe(){return r(this,null,function*(){return U(this,ye).unsubscribe()})}next(){return r(this,null,function*(){const A=yield U(this,ye).next();return A.done?A:{done:!1,value:new Ic(A.value,U(this,xU),U(this,XU),this)}})}return(){return r(this,null,function*(){return yield U(this,ye).return(),{done:!0,value:void 0}})}[Symbol.asyncIterator](){return this}[ke()](){return this.unsubscribe()}[Symbol.asyncDispose](){return r(this,null,function*(){return this.unsubscribe()})}};xU=new WeakMap,ye=new WeakMap,XU=new WeakMap,KU=new WeakMap,bn=new WeakSet,od=function(A,e){return r(this,null,function*(){var F=[];try{const t=ae(F,yield A.subscribe(e),!0);const B=yield t.objects().next();if(B.done)throw new Error("No init object");yield t.close();return B.value.payload}catch(n){var s=n,a=!0}finally{var d=oe(F,s,a);d&&(yield d)}})},o(Xi,bn);let qs=Xi;const bl=1e4,cc=3e4,Oa=class Oa{constructor(A,e,t){o(this,JQ);o(this,fn,pA.get().createContext("Timeline"));o(this,ut,new GA([]));o(this,SQ);o(this,OU);o(this,zU);o(this,PU);l(this,OU,A),l(this,zU,t),l(this,SQ,e),l(this,PU,I(this,JQ,oo).call(this,U(this,SQ))),this.closed().finally(()=>U(this,ut).close()).catch(V)}closed(){return U(this,PU)}close(){return r(this,null,function*(){return(yield U(this,SQ).promise).unsubscribe()})}timeline(){const[A,e]=U(this,ut).value();return A}timestampWallclockOffset(){return XQ(this.timeline().map(A=>A.mediaPts-A.wallclock))}static start(A,e){const t=m.fromPromise(nt.subscribe(A,new Le().name(e).groupOrder("ascending").build()));return new Oa(A,t,e)}waitForWallclockTime(A){return r(this,null,function*(){return yield U(this,ut).waitFor(e=>!!e.find(t=>t.wallclock>=A)),this.timeline()})}waitForTimelineToHaveMinDuration(){return r(this,null,function*(){return yield U(this,ut).waitFor(A=>{const e=A[0],t=A[A.length-1];return!e||!t?!1:t.wallclock-e.wallclock>bl}),this.timeline()})}};fn=new WeakMap,ut=new WeakMap,SQ=new WeakMap,OU=new WeakMap,zU=new WeakMap,PU=new WeakMap,JQ=new WeakSet,oo=function(A){return r(this,null,function*(){const e=yield A.promise;try{for(var J=rA(e),k,p,w;k=!(p=yield J.next()).done;k=!1){var s=p.value;var a=[];try{const M=ae(a,s,!0);try{for(var t=rA(M),B,F,n;B=!(F=yield t.next()).done;B=!1){const D=F.value;if(D.objectStatus!==MA.Normal)continue;const G=Cc(D.payload);U(this,ut).update(v=>{var H,j;for(v.push(...G),v.sort((VA,FA)=>VA.wallclock-FA.wallclock);v[0]&&((j=(H=v[v.length-1])==null?void 0:H.wallclock)!=null?j:0)-v[0].wallclock>cc;)v.shift();return v}),e===U(this,SQ).resolved&&D.groupId>f(0)&&D.objectId==f(0)&&I(this,JQ,ld).call(this,D.groupId).catch(v=>{U(this,fn).warn("backfill failed",v)})}}catch(F){n=[F]}finally{try{B&&(F=t.return)&&(yield F.call(t))}finally{if(n)throw n[0]}}}catch(d){var E=d,g=!0}finally{var c=oe(a,E,g);c&&(yield c)}}}catch(p){w=[p]}finally{try{k&&(p=J.return)&&(yield p.call(J))}finally{if(w)throw w[0]}}})},ld=function(A){return r(this,null,function*(){const e=A-f(1),t=this.timeline(),B=t[0],F=t[t.length-1];if(!B||!F||F.wallclock-B.wallclock>bl)return;const n=m.fromPromise(nt.subscribe(U(this,OU),new Le().name(U(this,zU)).groupOrder("ascending").range(e,e).build()));return I(this,JQ,oo).call(this,n)})};let _s=Oa;function Cc(Q){var e;const A=new TextDecoder("utf-8").decode(Q).split(`
|
|
2
|
-
`);return(e=A[0])!=null&&e.startsWith("MEDIA_PTS")&&A.shift(),A.filter(t=>t.length>0).map(t=>{const[B,F,n,s,a]=t.split(",");if(!B||!s)throw new Error(`invalid timeline row: ${t}`);return{mediaPts:parseInt(B),groupId:F?parseInt(F):void 0,objectId:n?parseInt(n):void 0,wallclock:parseInt(s),metadata:a}})}function Rc(Q){return typeof Q.language=="string"}const za=class za{constructor(A,e,t,B,F){o(this,Gn,new ol);o(this,jU);o(this,kt);o(this,Ki,0);i(this,"trackObject");i(this,"namespace");l(this,kt,A),l(this,jU,e),this.trackObject=t,this.namespace=B,l(this,Ki,F)}static subscribe(A,e,t){return r(this,null,function*(){if(!Rc(e))throw new Error("track object language is required");const B=new Le().name(e.name).build(),F=yield nt.subscribe(A,B),n=F.objects();return new za(F,n,e,A.namespace(),t)})}largestGroupId(){return U(this,kt).largestGroupId()}update(A,e){return U(this,kt).update(A,e)}unsubscribe(){return U(this,kt).unsubscribe()}next(){return r(this,null,function*(){for(;;){const A=yield U(this,jU).next();if(A.done)return A;if(A.value.objectStatus!==MA.Normal)continue;const e=new TextDecoder().decode(A.value.payload),t=U(this,Gn).parse(e).map(F=>(F.startTime-=U(this,Ki)/1e3,F.endTime-=U(this,Ki)/1e3,F));return{done:!1,value:{language:this.trackObject.language,cues:t}}}})}return(){return r(this,null,function*(){return yield U(this,kt).return(),{done:!0,value:void 0}})}[Symbol.asyncIterator](){return this}[ke()](){return this.unsubscribe()}[Symbol.asyncDispose](){return this.unsubscribe()}};Gn=new WeakMap,jU=new WeakMap,kt=new WeakMap,Ki=new WeakMap;let $s=za;mr=[KA({context:"Channel",enter:"info"})];const zi=class zi{constructor(A,e,t,B,F){o(this,Oi);i(this,"namespace");o(this,VQ);o(this,uQ);o(this,kQ);o(this,Nt);this.namespace=B,l(this,VQ,A),l(this,uQ,e),l(this,kQ,t),l(this,Nt,F)}static start(A,e){return r(this,null,function*(){const t=new Tl(A,{namespace:e.namespace}),[B,F]=yield Promise.all([_s.start(t,"timeline"),js.start(t,{catalog:e.catalog,namespace:e.namespace})]);return new zi(t,B,F,e.namespace,0)})}closed(){return U(this,kQ).closed()}catalog(){return U(this,kQ).catalog()}timestampWallclockOffset(){return U(this,uQ).timestampWallclockOffset()}timestampOffsetMs(){return U(this,Nt)}setTimestampOffsetMs(A){l(this,Nt,A)}waitForWallclockTime(A){return U(this,uQ).waitForWallclockTime(A)}subscribeCmafTrack(A,e){const t=this.catalog().current().tracks,B=A["com.vindral.variant_uid"]!==void 0?t.find(F=>F["com.vindral.variant_uid"]===A["com.vindral.variant_uid"]):void 0;return I(this,Oi,Cs).call(this,()=>qs.subscribe(U(this,VQ),B!=null?B:A,U(this,Nt),e))}subscribeWebVttTrack(A){return I(this,Oi,Cs).call(this,()=>$s.subscribe(U(this,VQ),A,U(this,Nt)))}subscribeTrack(A){return I(this,Oi,Cs).call(this,()=>U(this,VQ).subscribe(A))}close(){return Promise.all([U(this,kQ).close(),U(this,uQ).close()])}};Pa=bQ(null),VQ=new WeakMap,uQ=new WeakMap,kQ=new WeakMap,Nt=new WeakMap,Oi=new WeakSet,Cs=function(A){return r(this,null,function*(){const[e,t]=this.catalog().value();try{return yield A()}catch(B){if(e===this.catalog().current()&&t&&(yield Promise.race([t,Gt(500)])),e!==this.catalog().current())return A();throw B}})},XA(Pa,9,"start",mr,zi),Tt(Pa,zi),fQ(Pa,3,zi);let Qn=zi;const ja=class ja{constructor(A){o(this,Mn);o(this,NQ);o(this,qU);const[e,t]=A.value.value();l(this,NQ,{createdAt:new Date,wallclock:new Date(e.ntpTimestamp),rtt:e.rtt}),l(this,qU,I(this,Mn,rd).call(this,A))}wallclock(){const e=Date.now()-U(this,NQ).createdAt.getTime();return U(this,NQ).wallclock.getTime()+e}closed(){return U(this,qU)}static start(A){return new ja(A)}};NQ=new WeakMap,qU=new WeakMap,Mn=new WeakSet,rd=function(A){return r(this,null,function*(){try{for(var e=rA(A.value),t,B,F;t=!(B=yield e.next()).done;t=!1){const n=B.value;l(this,NQ,{createdAt:new Date,wallclock:new Date(n.ntpTimestamp),rtt:n.rtt})}}catch(B){F=[B]}finally{try{t&&(B=e.return)&&(yield B.call(e))}finally{if(F)throw F[0]}}})};let Aa=ja;function Bn(Q){return typeof Q=="string"||Q===null||Q===void 0}function hc(Q){return"provider"in Q&&typeof Q.provider=="string"&&(!("widevineLicenseUrl"in Q)||Bn(Q.widevineLicenseUrl))&&(!("playreadyLicenseUrl"in Q)||Bn(Q.playreadyLicenseUrl))&&(!("fairplayLicenseUrl"in Q)||Bn(Q.fairplayLicenseUrl))&&(!("fairplayCertificate"in Q)||Bn(Q.fairplayCertificate))}function Sc(Q){try{return sA(Q)}catch(A){throw new Error("Failed to convert fairplayCertificate")}}function Jc(Q){const A=new TextDecoder().decode(Q),e=JSON.parse(A);if(!hc(e))throw new Error("Invalid drm object");const F=e,{fairplayCertificate:t}=F,B=br(F,["fairplayCertificate"]);return O(S({},B),{fairplayCertificate:t?Sc(t):void 0})}class ea{constructor(A){i(this,"value");this.value=A}static create(A,e,t){return r(this,null,function*(){var a=[];try{const B=ae(a,yield A.subscribeTrack(new Le().name("drm").build()),!0);const F=B.objects();const n=yield F.next();if(n.done)throw new Error("No drm object received");const s=Jc(n.value.payload);return new ea(O(S({},s),{videoCodec:e,audioCodec:t}))}catch(d){var E=d,g=!0}finally{var c=oe(a,E,g);c&&(yield c)}})}}function Vc(Q){return"rtt"in Q&&typeof Q.rtt=="number"&&"ntpTimestamp"in Q&&typeof Q.ntpTimestamp=="number"&&"estimatedBandwidth"in Q&&typeof Q.estimatedBandwidth=="number"}function fl(Q){const A=new TextDecoder().decode(Q),e=JSON.parse(A);if(!Vc(e))throw new Error("Invalid stats object");return e}const uc=1e4,qa=class qa{constructor(A,e,t){o(this,vn);i(this,"ip");i(this,"value");o(this,_U);this.ip=t,this.value=new GA(e),l(this,_U,I(this,vn,dd).call(this,A))}closed(){return U(this,_U)}idleTimeout(){return r(this,null,function*(){for(;;){const[A,e]=this.value.value();try{yield Promise.race([Ns(uc,new Error("Idle timeout")),e])}catch(t){return t}}})}static start(A){return r(this,null,function*(){const t=(yield A.subscribe(new Le().name("stats").groupOrder("ascending").build())).objects(),B=yield t.next();if(B.done)throw new Error("No stats object received");const F=fl(B.value.payload);if(!F.ip)throw new Error("Expected IP in initial stats object");return new qa(t,F,F.ip)})}};_U=new WeakMap,vn=new WeakSet,dd=function(A){return r(this,null,function*(){try{for(var e=rA(A),t,B,F;t=!(B=yield e.next()).done;t=!1){const n=B.value;if(n.objectStatus!==MA.Normal)continue;const s=fl(n.payload);this.value.update(s)}}catch(B){F=[B]}finally{try{t&&(B=e.return)&&(yield B.call(e))}finally{if(F)throw F[0]}}})};let ta=qa;class kc{constructor(A){o(this,Ln,pA.get().createContext("UpstreamWatcher"));o(this,Pi);l(this,Pi,new GA(m.fromPromise(A.closed())))}update(A){U(this,Pi).update(m.fromPromise(A.closed()))}closed(){return r(this,null,function*(){try{for(;;){const[A,e]=U(this,Pi).value();let t=!1;yield Promise.race([e==null?void 0:e.then(()=>t=!0),A.promise.then(()=>{if(!t)throw U(this,Ln).warn("Upstream closed"),new Error("Upstream closed")})])}}catch(A){return A}})}}Ln=new WeakMap,Pi=new WeakMap;class Qa{constructor(A,e){o(this,ji,pA.get().createContext("TracksIterator"));o(this,$U);o(this,AF);l(this,$U,A),l(this,AF,e)}[Symbol.asyncIterator](){return it(this,null,function*(){const A=U(this,AF);try{for(var e=rA(U(this,$U)),t,B,F;t=!(B=yield new lA(e.next())).done;t=!1){const n=B.value;if(!n)continue;const s={name:n.trackObject.name,namespace:n.namespace};U(this,ji).debug("track start",S({mediaType:A},s)),yield*Qo(n),U(this,ji).debug("track end",S({mediaType:A},s))}}catch(B){F=[B]}finally{try{t&&(B=e.return)&&(yield new lA(B.call(e)))}finally{if(F)throw F[0]}}U(this,ji).debug("tracks ended",{mediaType:A})})}}ji=new WeakMap,$U=new WeakMap,AF=new WeakMap;let Nc=(Dr=[KA({context:"Player",enter:"info"})],pr=[KA({context:"Player",enter:"info",return:"info"})],Wr=[KA({context:"Player",enter:"info"})],$e=class{constructor(A,e,t){fQ(tF,5,this);o(this,LA);o(this,qi);o(this,_i);o(this,mQ);o(this,ZA);o(this,he,new GA(void 0));o(this,Se,new GA(void 0));o(this,mt,new GA(void 0));o(this,$i);o(this,eF);i(this,"subtitles",new Qa(U(this,mt),"subtitles"));i(this,"video",new Qa(U(this,Se),"video"));i(this,"audio",new Qa(U(this,he),"audio"));l(this,qi,A),l(this,_i,Aa.start(t)),l(this,mQ,t),l(this,ZA,new GA(e)),l(this,$i,new kc(e)),l(this,eF,Promise.race([t.idleTimeout(),I(this,LA,Ed).call(this),U(this,$i).closed()])),U(this,qi).closed().then(()=>this.close()).catch(V)}closed(){return U(this,eF)}static start(A,e){return r(this,null,function*(){const t=new Tl(A,{namespace:rc("auxiliary")}),[[B,F,n],s]=yield Promise.all([Qn.start(A,e).then(d=>Promise.all([Promise.resolve(d),e.videoTrack?d.subscribeCmafTrack(e.videoTrack):void 0,e.audioTrack?d.subscribeCmafTrack(e.audioTrack):void 0])),ta.start(t)]),a=new $e(A,B,s);return n&&U(a,he).update(n),F&&U(a,Se).update(F),a})}connectionInfo(){const A=U(this,mQ).value.current();return{ip:U(this,mQ).ip,rtt:A.rtt,estimatedBandwidth:A.estimatedBandwidth}}stats(){return U(this,mQ).value}catalog(){return U(this,ZA).current().catalog()}namespace(){return U(this,ZA).current().namespace}videoTrack(){var A;return(A=U(this,Se).current())==null?void 0:A.trackObject}audioTrack(){var A;return(A=U(this,he).current())==null?void 0:A.trackObject}referenceClock(){return U(this,_i)}drm(){return r(this,null,function*(){var e,t;if(this.catalog().current().tracks.find(({name:B})=>B==="drm"))return ea.create(U(this,ZA).current(),(e=this.videoTrack())==null?void 0:e.codec,(t=this.audioTrack())==null?void 0:t.codec)})}close(){return Promise.all([U(this,ZA).current().close(),U(this,ZA).close(),I(this,LA,Rs).call(this,U(this,he)),I(this,LA,Rs).call(this,U(this,Se)),I(this,LA,Rs).call(this,U(this,mt))])}zap(A,e){return r(this,null,function*(){var k,p;const t=yield Qn.start(U(this,qi),A),B=U(this,_i).wallclock()-e,F=U(this,ZA).current(),n=F.timestampWallclockOffset(),s=yield t.waitForWallclockTime(B);U(this,$i).update(t),yield U(this,ZA).current().close();const a=s.toReversed().find(w=>w.wallclock<=B),d=a!=null&&a.mediaPts?a.mediaPts-F.timestampOffsetMs():void 0,c=t.timestampWallclockOffset()-n+F.timestampOffsetMs();t.setTimestampOffsetMs(c);const J=a!=null&&a.groupId?f(a.groupId):void 0;d&&((k=U(this,Se).current())==null||k.stopAfterTimestampReached(d),(p=U(this,he).current())==null||p.stopAfterTimestampReached(d)),U(this,ZA).update(t),yield Promise.all([A.videoTrack?this.setVideoTrack(A.videoTrack,J):void 0,A.audioTrack?this.setAudioTrack(A.audioTrack,J):void 0])})}setSubtitleTrack(A){return r(this,null,function*(){var t,B;if(!A){yield(t=U(this,mt).current())==null?void 0:t.unsubscribe();return}const[e]=yield Promise.all([U(this,ZA).current().subscribeWebVttTrack(A),(B=U(this,mt).current())==null?void 0:B.unsubscribe()]);U(this,mt).update(e)})}setVideoTrack(A,e){return r(this,null,function*(){const t=yield I(this,LA,RF).call(this,U(this,ZA).current(),A,U(this,Se).current(),e);U(this,Se).update(t)})}setAudioTrack(A,e){return r(this,null,function*(){const t=yield I(this,LA,RF).call(this,U(this,ZA).current(),A,U(this,he).current(),e);U(this,he).update(t)})}},tF=bQ(null),qi=new WeakMap,_i=new WeakMap,mQ=new WeakMap,ZA=new WeakMap,he=new WeakMap,Se=new WeakMap,mt=new WeakMap,$i=new WeakMap,eF=new WeakMap,LA=new WeakSet,Rs=function(A){const e=A.current(),t=e==null?void 0:e.largestGroupId();return A.isClosed()||A.update(void 0),A.close(),t?e==null?void 0:e.update(t,t):e==null?void 0:e.unsubscribe()},RF=function(A,e,t,B){return r(this,null,function*(){const F=t==null?void 0:t.largestGroupId(),[n,s]=yield Promise.all([A.subscribeCmafTrack(e,B||(F?F+f(1):void 0)),F?t==null?void 0:t.update(F,F):t==null?void 0:t.unsubscribe()]);return n})},Ed=function(){return r(this,null,function*(){try{for(var F=rA(U(this,ZA)),n,s,a;n=!(s=yield F.next()).done;n=!1){const d=s.value;try{for(var A=rA(d.catalog()),e,t,B;e=!(t=yield A.next()).done;e=!1){const E=t.value;yield Promise.all([I(this,LA,lo).call(this,E,U(this,Se)),I(this,LA,lo).call(this,E,U(this,he))])}}catch(t){B=[t]}finally{try{e&&(t=A.return)&&(yield t.call(A))}finally{if(B)throw B[0]}}}}catch(s){a=[s]}finally{try{n&&(s=F.return)&&(yield s.call(F))}finally{if(a)throw a[0]}}})},lo=function(A,e){return r(this,null,function*(){const t=e.current();if(!t)return;const B=t.trackObject.name,F=t.trackObject["com.vindral.variant_uid"],n=A.tracks.find(a=>a.name===B),s=A.tracks.find(a=>a["com.vindral.variant_uid"]===F);if(!n){if(!s){e.update(void 0);return}e.update(yield U(this,ZA).current().subscribeCmafTrack(s))}})},XA(tF,1,"close",Dr,$e),XA(tF,1,"zap",pr,$e),RF=XA(tF,17,"#replaceTrack",Wr,LA,RF),Tt(tF,$e),$e);function ia(Q,A,e){const t=new URL("/voq/subscribe",Q);return t.searchParams.set("sessionId",A.sessionId),t.searchParams.set("clientId",A.clientId),t.searchParams.set("channelId",A.channelId),e&&t.searchParams.set("authToken",e),t}const mc=1e4,_a=class _a{constructor(A,e,t,B,F,n){o(this,YA);o(this,wA);o(this,HA);o(this,Je);o(this,WQ,"disconnected");o(this,oA);o(this,Wt,new Map);o(this,QF);o(this,iF,new Z(10));o(this,Hn,Number.MAX_SAFE_INTEGER);o(this,AB,new Map);o(this,eB,A=>{if(!A){U(this,oA).setSubtitleTrack(void 0).catch(V);return}const e=U(this,Wt).get(Yt(U(this,oA).namespace())),t=e==null?void 0:e.getTextTrack(A);t&&U(this,oA).setSubtitleTrack(t).catch(V)});o(this,BF,A=>{switch(A.type){case"subscribe":{if(U(this,tB)){U(this,HA).info("Ignoring - we are already switching");return}l(this,tB,!0),I(this,YA,cd).call(this,A.subscription).catch(e=>{U(this,HA).error("error handling subscription",e),U(this,wA).emit("received signal",{type:"subscription changed",subscription:A.subscription,reset:!0})}).finally(()=>l(this,tB,!1))}break;case"telemetry":No(new URL("/api/telemetry",U(this,Je).url().replace("wss://","https://")),{body:A.body,headers:{"Content-Type":"text/plain"}}).catch(V);break;case"refresh auth":U(this,Je).updateAuthToken(A.token);break}});o(this,tB,!1);i(this,"disconnect",(A="Disconnect Requested")=>{U(this,HA).info("Disconnecting",A),U(this,Je).close(),U(this,oA).close().catch(V),l(this,AB,new Map),l(this,WQ,"disconnected")});l(this,wA,A),l(this,HA,e),l(this,Je,t),l(this,oA,B),l(this,Wt,F),l(this,QF,n),U(this,wA).on("send signal",U(this,BF)),U(this,wA).on("disconnect",this.disconnect),U(this,wA).on("text track",U(this,eB)),I(this,YA,gd).call(this).catch(V),I(this,YA,Cd).call(this).catch(V)}get estimatedBandwidth(){return U(this,Hn)}unload(){U(this,wA).off("send signal",U(this,BF)),U(this,wA).off("disconnect",this.disconnect),U(this,wA).off("text track",U(this,eB)),this.disconnect()}suspend(){}unsuspend(){}getStatistics(){const e=U(this,oA).connectionInfo().estimatedBandwidth;return{rtt:Bt(U(this,iF).items()),estimatedBandwidth:e,connectCount:0,connectionAttemptCount:0,edgeUrl:U(this,Je).url(),connectionProtocol:"moq"}}static start(A,e,t,B){return r(this,null,function*(){var M,D,G,v;const F=new Map(B.connectInfo.channels.map(H=>[Yt(H.catalog.namespace),new Ua(new GA(H.catalog))])),n=yield B.onConnectInfo(B.connectInfo),s=B.options.get("authenticationToken");let a,d;switch(typeof B.edgeUrl){case"string":{a=ia(B.edgeUrl,n,s);break}default:a=ia(B.edgeUrl.moqUrl||B.edgeUrl.moqWsUrl,n,s),d=ia(B.edgeUrl.moqWsUrl,n,s);break}const E=(M=B.connectInfo.channels.find(H=>H.channelId===n.channelId))==null?void 0:M.catalog;e.debug("Resolved edge url",{edgeUrl:a,edgeWsUrl:d}),W(E,"no catalog found");const g=(D=F.get(Yt(E.namespace)))==null?void 0:D.getVideoTrack(n.video),c=(G=F.get(Yt(E.namespace)))==null?void 0:G.getAudioTrack(n.audio),J=yield lc({url:a,wsUrl:d,authToken:B.options.get("authenticationToken"),preferredTransport:B.options.get("webtransportEnabled")?"webtransport":"websocket",role:mI.Subscriber,websocketFallbackTimeoutMs:2e3}),k=yield Promise.race([Nc.start(J.subscriber,{namespace:E.namespace,catalog:E,videoTrack:g==null?void 0:g.track,audioTrack:c==null?void 0:c.track}),Ns(mc,new Error("Timeout waiting for player to start")),Hd(J.closed(),"Session closed before player started")]),p=new Ua(k.catalog());F.set(Yt(E.namespace),p),A.emit("received signal",{type:"client ip",ip:k.connectionInfo().ip}),k.drm().then(H=>{H&&A.emit("received drm data",H.value)}).catch(H=>{e.error("Error getting DRM data",H)});const w=new _a(A,e,J,k,F,t);return n.textTrack&&U(v=w,eB).call(v,n.textTrack),w})}getState(){return U(this,WQ)}get rtt(){return U(this,oA).connectionInfo().rtt}close(){U(this,Je).close()}closed(){return Promise.race([U(this,Je).closed(),U(this,oA).closed()])}};wA=new WeakMap,HA=new WeakMap,Je=new WeakMap,WQ=new WeakMap,oA=new WeakMap,Wt=new WeakMap,QF=new WeakMap,iF=new WeakMap,Hn=new WeakMap,AB=new WeakMap,YA=new WeakSet,gd=function(){return r(this,null,function*(){try{for(var A=rA(U(this,oA).stats()),e,t,B;e=!(t=yield A.next()).done;e=!1){const{rtt:F}=t.value;U(this,iF).push(F)}}catch(t){B=[t]}finally{try{e&&(t=A.return)&&(yield t.call(A))}finally{if(B)throw B[0]}}})},eB=new WeakMap,BF=new WeakMap,tB=new WeakMap,Id=function(A){return r(this,null,function*(){var B;const e=yield U(this,QF).connect({channelId:A});if(!Jo(e))throw new Error("no moq connect info found");const t=(B=e.channels.find(F=>F.channelId===A))==null?void 0:B.catalog;if(!t)throw new Error("no catalog found");return t})},cd=function(A){return r(this,null,function*(){var n,s,a;U(this,HA).info("handle subscription",A);const e=U(this,oA);let t=U(this,Wt).get(A.channelId);if(t||(t=new Ua(new GA(yield I(this,YA,Id).call(this,A.channelId))),U(this,Wt).set(A.channelId,t)),e.namespace().join("/")!==t.namespace().join("/")){U(this,HA).info("changing channel",A.channelId);const d=t.getVideoTrack(A.video),E=t.getAudioTrack(A.audio);yield e.zap({namespace:t.namespace(),catalog:t.catalog(),videoTrack:d==null?void 0:d.track,audioTrack:E==null?void 0:E.track},500),e.drm().then(g=>{g&&U(this,wA).emit("received drm data",g.value)}).catch(g=>{U(this,HA).error("Error getting DRM data",g)}),U(this,HA).info("switched channel",A.channelId),(n=U(this,Wt).get(Yt(e.namespace())))==null||n.updateCatalog(e.catalog()),U(this,wA).emit("received signal",{type:"subscription changed",subscription:A});return}const B=t.getVideoTrack(A.video),F=t.getAudioTrack(A.audio);yield Promise.all([B&&B.track.name!==((s=U(this,oA).videoTrack())==null?void 0:s.name)?U(this,oA).setVideoTrack(B.track):void 0,F&&F.track.name!==((a=U(this,oA).audioTrack())==null?void 0:a.name)?U(this,oA).setAudioTrack(F.track):void 0]),U(this,wA).emit("received signal",{type:"subscription changed",subscription:A})})},Cd=function(){return r(this,null,function*(){try{l(this,WQ,"connecting"),U(this,HA).info("Connecting..."),l(this,WQ,"connected"),yield Promise.all([I(this,YA,ro).call(this,U(this,oA).referenceClock(),U(this,oA).audio),I(this,YA,ro).call(this,U(this,oA).referenceClock(),U(this,oA).video),I(this,YA,Rd).call(this,U(this,oA).subtitles)]),yield U(this,oA).closed(),U(this,Je).close(),U(this,HA).info("Session closed")}catch(A){U(this,HA).warn("Session error",A)}})},Rd=function(A){return r(this,null,function*(){try{for(var e=rA(A),t,B,F;t=!(B=yield e.next()).done;t=!1){const n=B.value;U(this,wA).emit("text track data",n)}}catch(B){F=[B]}finally{try{t&&(B=e.return)&&(yield B.call(e))}finally{if(F)throw F[0]}}})},ro=function(A,e){return r(this,null,function*(){var s;let t="",B="",F;const n=U(this,oA).videoTrack()===void 0;try{for(var c=rA(e),J,k,p;J=!(k=yield c.next()).done;J=!1){const w=k.value;const M=Yt(w.track.namespace),D=w.track.trackObject.language,G=ms((s=w.track.trackObject.codec)!=null?s:""),v=w.track.trackObject.codec,H=G?Lt({codec:G,codecString:v}):void 0,j=!!w.track.trackObject["com.vindral.drm"];try{for(var a=rA(w),d,E,g;d=!(E=yield a.next()).done;d=!1){const[VA,FA]=E.value;const se={channelId:t!==""&&(n||FA.mediaType()==="video")&&t!==M?M:void 0,language:FA.mediaType()==="audio"&&B!==D?D:void 0,drmTransition:F!==void 0&&F!==j};t=M,B=D,F=j;const WA=FA.producerReferenceTime(),yA=U(this,AB).get(w.track.namespace)||0;if(WA&&Date.now()-yA>1e3){U(this,AB).set(w.track.namespace,Date.now());const C=A.wallclock()-WA.getTime();U(this,HA).debug("timing-info",{mediaType:FA.mediaType(),referenceClock:A,delta:C,groupId:VA,timestamp:FA.baseMediaDecodeTime()/FA.timescale()*1e3+C,wallclockTime:WA.getTime()}),U(this,wA).emit("received signal",{type:"timing info",timingInfo:{channelId:M,timestamp:FA.baseMediaDecodeTime()/FA.timescale()*1e3+C,wallclockTime:WA.getTime()}})}U(this,wA).emit("received moq data",{payload:FA,channelId:M,groupId:VA,mimeType:H,codec:G,switchInfo:se,renditionId:Wc(w.track.trackObject.name)})}}catch(E){g=[E]}finally{try{d&&(E=a.return)&&(yield E.call(a))}finally{if(g)throw g[0]}}}}catch(k){p=[k]}finally{try{J&&(k=c.return)&&(yield k.call(c))}finally{if(p)throw p[0]}}})};let Ba=_a;function Wc(Q){return Q.split("").reduce((e,t)=>e=t.charCodeAt(0)+(e<<6)+(e<<16)-e,0)}class Ua{constructor(A){o(this,Yn);o(this,At);o(this,pQ);l(this,At,A),l(this,pQ,I(this,Yn,hd).call(this))}catalog(){return U(this,At).current()}namespace(){return U(this,At).current().namespace}updateCatalog(A){l(this,At,A)}getTextTrack(A){return U(this,At).current().tracks.find(e=>e.label===A)}getAudioTrack(A){if(!A.codec)return;const e=U(this,pQ).filter(t=>!(!vt(t)||t.bitRate>A.bitRate||A.codec&&t.codec!==A.codec||A.language&&t.language!==A.language));return e[e.length-1]}getVideoTrack(A){if(!A.codec)return;const e=U(this,pQ).filter(t=>!(!Mt(t)||t.bitRate>A.bitRate||A.codec&&t.codec!==A.codec));return e[e.length-1]}renditions(){return U(this,pQ)}}At=new WeakMap,pQ=new WeakMap,Yn=new WeakSet,hd=function(){const[A,e]=U(this,At).value();return Vo(A)};const pc=(Q,A)=>{const e=new URL("/subscribe",Q);return e.searchParams.append("channelId",A.channelId),e.searchParams.append("sessionId",A.sessionId),e.searchParams.append("clientId",A.clientId),A.audio&&A.audio.codec&&(e.searchParams.append("audio.bitRate",Math.round(A.audio.bitRate).toString()),e.searchParams.append("audio.codec",A.audio.codec),A.audio.language&&e.searchParams.append("audio.language",A.audio.language)),A.video&&A.video.codec&&(e.searchParams.append("video.width",A.video.width.toString()),e.searchParams.append("video.height",A.video.height.toString()),e.searchParams.append("video.bitRate",Math.round(A.video.bitRate).toString()),e.searchParams.append("video.codec",A.video.codec)),A.expectAdditionalConnection&&e.searchParams.append("expectAdditionalConnection",A.expectAdditionalConnection.toString()),A.burstMs&&e.searchParams.append("burstMs",A.burstMs.toString()),A.channelGroupId&&e.searchParams.append("channelGroupId",A.channelGroupId),A.authToken&&(e.searchParams.append("auth.token",A.authToken),e.searchParams.append("auth.type","jwt")),e.toString()};class Dc extends ee{constructor(e,t){super();i(this,"options");i(this,"websockets",[]);i(this,"logger");i(this,"reconnectState",{reconnectRetries:0});i(this,"isSuspended",!1);i(this,"_connectionAttemptCount",0);i(this,"connectStartTime",0);i(this,"_connectTime");i(this,"shouldContinueConnecting",!1);i(this,"_isConnectInProgress",!1);i(this,"readyState",()=>{if(this.websockets.length===0)return WebSocket.CLOSED;const e=this.websockets.map(t=>t.readyState);for(const t of e)switch(t){case WebSocket.OPEN:continue;default:return t}return WebSocket.OPEN});i(this,"url",()=>{var e;return(e=this.websockets[0])==null?void 0:e.url});i(this,"send",e=>{var t;this.websockets.length&&((t=this.websockets[0])==null||t.send(e))});i(this,"close",e=>{var B;let t=!1;return(B=this.websockets)==null||B.forEach(F=>{F.onmessage=V,F.removeEventListener("error",this.onError),F.removeEventListener("close",this.onClose),F.removeEventListener("open",this.onOpen),F.close(1e3,e),t=!0}),this.websockets=[],this.shouldContinueConnecting=!1,this._isConnectInProgress=!1,this.logger.info("Closed websocket",{reason:e}),t});i(this,"suspend",()=>{this.isSuspended=!0});i(this,"unsuspend",()=>{this.isSuspended=!1,this.readyState()!==WebSocket.OPEN&&!this.isConnectInProgress&&this.connect()});i(this,"onMessage",(e,t)=>{this.websockets.length!==0&&this.options.onMessage(e,t.data)});i(this,"onError",()=>{this.logger.info("On error",S({},this.options)),this.close("one websocket had an error"),this.emit("error",new Y("WebSocket error",{code:"websocket_error",isFatal:!1}))});i(this,"onClose",e=>{switch(this.logger.info("Closed",O(S({},this.options),{reason:e.reason,code:e.code,isSuspended:this.isSuspended})),this.close("one websocket was closed"),e.code){case 4e3:this.emit("error",uF(cB()));break;case 4001:this.emit("error",uF(cB()));break;case 4002:this.emit("error",aE(cB()));break;case 4003:this.emit("error",Ho("internal",cB()));break;case 4010:this.emit("error",oE("internal",cB()));break}this.emit("close",this)});i(this,"onOpen",()=>{this.logger.info("Opened",S({},this.options)),this.readyState()===WebSocket.OPEN&&(this._connectTime=Date.now()-this.connectStartTime,this.reconnectState.reconnectRetries=0,this._isConnectInProgress=!1,this.emit("open",this))});i(this,"connect",(e=!1)=>r(this,null,function*(){if(this.isConnectInProgress)return this.logger.info("Connect already in progress"),!1;if(this.isSuspended)return!1;if(this.readyState()!==WebSocket.CLOSED&&this.close("new connection in progress"),this.shouldContinueConnecting=!0,this._isConnectInProgress=!0,e&&this.options.reconnectDelay>0){this.logger.info("Waiting for reconnect delay",S({},this.options)),yield Gt(this.options.reconnectDelay);const t=yield this.options.reconnectHandler(this.reconnectState);if(this.reconnectState.reconnectRetries++,!t)return this._isConnectInProgress=!1,this.emit("error",Yo()),!1}this._connectionAttemptCount++;try{if(!this.shouldContinueConnecting)return this._isConnectInProgress=!1,this.logger.info("Connection aborted"),!1;const{url:t,connectionCount:B}=yield this.options.connectHandler();if(this.connectStartTime=Date.now(),!this.shouldContinueConnecting)return this._isConnectInProgress=!1,this.logger.info("Connection aborted"),!1;this.logger.info("Connecting websockets",O(S({},this.options),{url:t}));for(let F=0;F<B;F++){const n=new WebSocket(t);n.binaryType="arraybuffer",n.onmessage=s=>this.onMessage(F,s),n.addEventListener("error",this.onError),n.addEventListener("close",this.onClose),n.addEventListener("open",this.onOpen),this.websockets.push(n)}return!0}catch(t){return this._isConnectInProgress=!1,t instanceof Y&&(this.logger.error("Failed to connect",t.toStringifiable()),t.isFatal())||this.shouldContinueConnecting&&(this.logger.info("Connection aborted",{error:t}),this.emit("error",new Y("Failed to connect",{code:"failed_to_connect",isFatal:!1,source:t,type:"internal"}))),!1}}));this.options=e,this.logger=t}get isConnectInProgress(){return this._isConnectInProgress}get connectionCount(){return this.websockets.length}get connectionAttemptCount(){return this._connectionAttemptCount}get connectTime(){return this._connectTime}}const Zc=65536*8,wc=.9,Fa=Q=>Zc*wc*1e3/Q,be=class be{constructor(A,e,t){i(this,"emitter");i(this,"transport");i(this,"logger");i(this,"config");i(this,"rtts",new Z(10));i(this,"lastPingSentTime",Date.now());i(this,"isPingInFlight",!1);i(this,"connectCount",0);i(this,"missedPings",0);i(this,"_estimatedPingBandwidth");i(this,"contextSwitchesInProgress",new Set);i(this,"contextSwitchesCompleted",new Set);i(this,"buffer",[]);i(this,"disconnected",new m);i(this,"unload",()=>{this.logger.debug("Unloading module..."),this.close("Unloading"),this.emitter.off("send signal",this.sendSignal),this.emitter.off("disconnect",this.close),this.emitter.off("reconnect",this.reconnect),this.logger.debug("Unloaded module")});i(this,"suspend",()=>{this.resetPingState(),this.transport.suspend()});i(this,"unsuspend",()=>{this.transport.unsuspend()});i(this,"getState",()=>{switch(this.transport.readyState()){case WebSocket.OPEN:return"connected";case WebSocket.CONNECTING:return"connecting";default:return"disconnected"}});i(this,"sendSignal",A=>{if(this.logger.debug("sending signal",{signal:A}),this.transport.readyState()!==WebSocket.OPEN){this.logger.debug("transport is closed");return}this.transport.send(JSON.stringify(A))});i(this,"getStatistics",()=>{var e;const A=Bt(this.rtts.items());return{rtt:A,estimatedBandwidth:Fa(A.average),edgeUrl:(e=this.transport)==null?void 0:e.url(),connectionProtocol:"vindral_ws"}});i(this,"onMessage",(A,e)=>{var t;if(this.pingCooldownExpired()&&this.sendPing(),this.contextSwitchesCompleted.size===((t=this.transport)==null?void 0:t.connectionCount)){this.logger.info("Completing context switch"),this.contextSwitchesInProgress.clear(),this.contextSwitchesCompleted.clear();const B=this.buffer.filter(([n,s])=>!(s instanceof ArrayBuffer)),F=this.buffer.filter(([n,s])=>s instanceof ArrayBuffer);B.map(n=>this.handleMessage(n[0],n[1])),F.map(n=>this.handleMessage(n[0],n[1])),this.buffer=[]}if(this.contextSwitchesInProgress.has(A)){if(!(e instanceof ArrayBuffer)){const B=JSON.parse(e);if(uo(B)&&B.type==="context switch complete"){this.logger.info("context switch completed",{socketId:A}),this.emitter.emit("context switch complete"),this.contextSwitchesCompleted.add(A);return}}this.buffer.push([A,e]);return}this.handleMessage(A,e)});i(this,"resolveEdgeUrl",()=>r(this,null,function*(){const A=this.config.connectInfo,e=yield this.config.onConnectInfo(A),t=this.config.options.getOverride("separateVideoSocketEnabled",e.channelId),B=this.config.options.get("media")==="audio+video";let F=1;B&&(F=t!==!1?2:1);const n=pc(this.config.edgeUrl,{video:e.video,audio:e.audio,burstMs:e.burstMs,sessionId:e.sessionId,clientId:e.clientId,channelId:e.channelId,channelGroupId:e.channelGroupId,expectAdditionalConnection:F>1,authToken:this.config.options.get("authenticationToken")});return this.logger.debug("Resolved edge url",{edgeUrl:n}),{url:n,connectionCount:F}}));i(this,"handleMessage",(A,e)=>{if(e instanceof ArrayBuffer)this.emitter.emit("received data",e);else{const t=JSON.parse(e);if(!uo(t))return;switch(t.type){case"pong":this.lastPingSentTime&&(this.rtts.push(Date.now()-this.lastPingSentTime),this.isPingInFlight=!1,this.emitter.emit("rtt",this.rtt));break;case"context switch":this.logger.info("Starting context switch",{socketId:A}),this.emitter.emit("context switch started"),this.contextSwitchesInProgress.add(A);break;default:this.emitter.emit("received signal",t);break}}});i(this,"connectWebSocketTransport",()=>{const A=new Dc({reconnectDelay:1e3,onMessage:this.onMessage,reconnectHandler:this.config.reconnectHandler,connectHandler:this.resolveEdgeUrl},this.logger.createContext("Transport"));return A.on("open",this.onTransportChange),A.on("close",this.onTransportChange),A.on("error",e=>this.disconnected.reject(e)),A.connect(),A});i(this,"close",(A="Disconnect Requested")=>{var e;this.contextSwitchesCompleted.clear(),this.contextSwitchesInProgress.clear(),this.buffer=[],this.resetPingState(),this.disconnected.resolve(),(e=this.transport)==null||e.close(A)});i(this,"onTransportChange",()=>{var A;switch(this.getState()){case"connected":(A=this.transport)!=null&&A.connectTime&&(this.rtts.push(this.transport.connectTime/be.TLS_ROUNDTRIPS/this.transport.connectionCount),this.emitter.emit("rtt",this.rtt)),this.connectCount++,this.resetPingState();break;default:this.contextSwitchesCompleted.clear(),this.contextSwitchesInProgress.clear(),this.buffer=[],this.resetPingState(),this.disconnected.resolve();break}this.emitter.emit("connection state",this.getState())});i(this,"reconnect",A=>{if(this.transport.isConnectInProgress){this.logger.debug("Stopping reconnect, already mid-connection");return}this.close(A)});i(this,"resetPingState",()=>{this.missedPings=0,this.isPingInFlight=!1});i(this,"pingCooldownExpired",()=>Date.now()-this.lastPingSentTime>be.PING_INTERVAL);i(this,"sendPing",()=>{if(this.isPingInFlight){this.missedPings++,this.missedPings>be.MAX_MISSED_PINGS&&this.reconnect("missed pings");return}this.isPingInFlight=!0,this.lastPingSentTime=Date.now(),this.missedPings=0,this.sendSignal({type:"ping"})});this._estimatedPingBandwidth=Fa(t.estimatedRtt),this.logger=e,this.emitter=A,this.config=t,this.emitter.on("send signal",this.sendSignal),this.emitter.on("disconnect",this.close),this.emitter.on("reconnect",this.reconnect),this.disconnected.promise.catch(V),this.transport=this.connectWebSocketTransport()}get rtt(){return this.rtts.items().length>0?XQ(this.rtts.items()):0}get estimatedBandwidth(){return this.rtt>0?Fa(this.rtt):this._estimatedPingBandwidth}closed(){return this.disconnected.promise}};i(be,"PING_INTERVAL",5e3),i(be,"MAX_MISSED_PINGS",4),i(be,"TLS_ROUNDTRIPS",3),i(be,"start",(A,e,t)=>new Promise((B,F)=>{const n=new be(A,e,t);n.transport.once("error",s=>F(s)),n.transport.once("open",()=>B(n))}));let na=be;class Tc{constructor(A){o(this,QB);o(this,pt,[]);o(this,iB);l(this,QB,A)}select(A){if(U(this,QB).edgeUrl)return U(this,QB).edgeUrl;U(this,pt).length===0&&l(this,pt,U(this,pt).concat(A));const e=U(this,pt).shift();if(l(this,iB,e),e)return e}shiftedEdge(){return U(this,iB)}reset(){l(this,iB,void 0),l(this,pt,[])}}QB=new WeakMap,pt=new WeakMap,iB=new WeakMap;const sB=class sB{constructor(A,e,t){o(this,Kn);i(this,"emitter");i(this,"logger");i(this,"config");i(this,"apiClient");i(this,"connectionImpl");o(this,fe,!0);o(this,BB);o(this,et,0);o(this,UB,0);o(this,FB);o(this,nB);i(this,"unload",()=>{var A;this.logger.debug("Unloading module..."),this.disconnect("Unloading"),(A=this.connectionImpl)==null||A.unload(),this.logger.debug("Unloaded module")});i(this,"suspend",()=>{var A;l(this,fe,!1),(A=this.connectionImpl)==null||A.suspend()});i(this,"unsuspend",()=>{var A;l(this,fe,!0),(A=this.connectionImpl)==null||A.unsuspend(),this.connect()});i(this,"getState",()=>this.connectionImpl?this.connectionImpl.getState():"disconnected");i(this,"getStatistics",()=>this.connectionImpl?O(S({},this.connectionImpl.getStatistics()),{connectCount:U(this,UB),connectionAttemptCount:U(this,et)}):{rtt:{min:0,max:0,average:0,last:0},estimatedBandwidth:0,connectCount:U(this,UB),connectionAttemptCount:U(this,et),connectionProtocol:void 0});i(this,"connect",()=>{l(this,fe,!0),!U(this,BB)&&l(this,BB,I(this,Kn,Sd).call(this))});i(this,"disconnect",(A="Disconnect Requested")=>{var e;l(this,fe,!1),(e=this.connectionImpl)==null||e.close(A)});i(this,"reconnect",A=>{this.disconnect(A),this.connect()});o(this,xn,()=>r(this,null,function*(){try{return yield this.apiClient.connect(this.config.options.getOptions())}catch(A){if(Kd(A))switch(A.status){case 401:throw this.emitter.emit("error",uF(A)),uF(A);case 403:throw this.emitter.emit("error",xo(A.message)),xo(A.message)}throw this.emitter.emit("error",rE(A instanceof Error?A:void 0)),A}}));o(this,Xn,()=>r(this,null,function*(){const A=Date.now(),e=()=>Date.now()-A;return Promise.race([Gt(sB.PING_TIMEOUT),fetch(new URL("/api/v4/connect/ping",this.config.options.get("url")).toString(),{method:"HEAD"})]).then(e,e)}));this.logger=e,this.emitter=A,this.config=t,this.apiClient=new Wo({publicEndpoint:this.config.options.get("url").toString(),tokenFactory:()=>this.config.options.get("authenticationToken")})}get rtt(){var A,e;return(e=(A=this.connectionImpl)==null?void 0:A.rtt)!=null?e:0}get estimatedBandwidth(){var A;return((A=this.connectionImpl)==null?void 0:A.estimatedBandwidth)||Number.MAX_SAFE_INTEGER}get firstConnectionTime(){return U(this,FB)}get lastConnectionTime(){return U(this,nB)}};fe=new WeakMap,BB=new WeakMap,et=new WeakMap,UB=new WeakMap,FB=new WeakMap,nB=new WeakMap,xn=new WeakMap,Xn=new WeakMap,Kn=new WeakSet,Sd=function(){return r(this,null,function*(){var e;const A=new Tc({edgeUrl:this.config.options.get("edgeUrl")});for(l(this,et,0);;){GQ(this,et)._++;try{const[B,F]=yield Promise.all([U(this,xn).call(this),U(this,Xn).call(this)]),n=F/2;if(!U(this,fe))break;const s=A.select(B.edges);if(!s)throw new Y("Failed to resolve edge url",{isFatal:!0,code:"failed_to_resolve_edge_url"});Jo(B)?this.connectionImpl=yield Ba.start(this.emitter,this.logger,this.apiClient,O(S({},this.config),{connectInfo:B,estimatedRtt:n,edgeUrl:s})):(W(typeof s=="string","Edge URL is expected to be a string"),this.connectionImpl=yield na.start(this.emitter,this.logger,O(S({},this.config),{connectInfo:B,estimatedRtt:n,edgeUrl:s}))),A.reset(),GQ(this,UB)._++,l(this,et,0),l(this,nB,Date.now()),U(this,FB)||l(this,FB,U(this,nB)),yield this.connectionImpl.closed()}catch(B){this.logger.info("Failed to connect",B);const F=A.shiftedEdge();F&&this.emitter.emit("telemetry event",{code:"shifted_edge",edgeUrl:typeof F=="string"?F:F.moqUrl||F.moqWsUrl}),B instanceof Y?this.emitter.emit("error",B):B instanceof Error&&this.emitter.emit("error",new Y(B.message,{code:"start_failed",isFatal:!1}))}if((e=this.connectionImpl)==null||e.unload(),this.connectionImpl=void 0,!U(this,fe))break;if(!(yield this.config.reconnectHandler({reconnectRetries:U(this,et)}))){this.emitter.emit("error",Yo());break}if(yield Gt(1e3),!U(this,fe))break}l(this,BB,void 0)})},i(sB,"PING_TIMEOUT",1e3),i(sB,"create",(A,e,t)=>new sB(A,e,t));let sa=sB;const aa=()=>({video:O(S({},JF()),{bitRate:Ut()}),audio:{bitRate:Ut()}}),yc=()=>({width:window.innerWidth,height:window.innerHeight,bitRate:Ut()}),aB=class aB{constructor(A,e,t,B){i(this,"emitter");i(this,"timers",new DA);i(this,"pictureInPictureSource");i(this,"element");i(this,"currentCap");i(this,"userSpecifiedCap");i(this,"renditionLevelSource");i(this,"resizeObserver");i(this,"elementSize");i(this,"_sizeBasedResolutionCapEnabled");i(this,"unload",()=>{var A;this.emitter.off("enter picture in picture",this.enterPictureInPicture),this.emitter.off("exit picture in picture",this.exitPictureInPicture),(A=this.resizeObserver)==null||A.disconnect(),this.suspend()});i(this,"load",()=>{window.ResizeObserver&&(this.resizeObserver=new ResizeObserver(this.onResize),this.resizeObserver.observe(this.element)),this.evaluateConstraintCap()});i(this,"unsuspend",()=>{this.timers.setInterval(this.evaluateConstraintCap,aB.CHECK_SIZE_INTERVAL),this.evaluateConstraintCap()});i(this,"suspend",()=>{this.timers.unload()});i(this,"setUserSpecifiedCap",A=>{var t;const e=(t=this.getUserSpecifiedCap())!=null?t:aa();this.userSpecifiedCap=O(S({},e),{video:S(S({},e.video),A.video),audio:S(S({},e.audio),A.audio)}),this.evaluateConstraintCap()});i(this,"getUserSpecifiedCap",()=>this.userSpecifiedCap);i(this,"getCurrentConstraintCap",()=>this.currentCap);i(this,"getStatistics",()=>({constraintCap:this.getUserSpecifiedCap(),windowInnerWidth:window.innerWidth,windowInnerHeight:window.innerHeight,elementWidth:this.elementSize.width,elementHeight:this.elementSize.height,pixelRatio:window.devicePixelRatio}));i(this,"constrainSubscription",A=>{const e=this.getCurrentConstraintCap();return e&&(A.video.codec&&(A.video.bitRate=Math.min(e.video.bitRate,A.video.bitRate),A.video.width=Math.min(e.video.width,A.video.width),A.video.height=Math.min(e.video.height,A.video.height)),A.audio.codec&&(A.audio.bitRate=Math.min(e.audio.bitRate,A.audio.bitRate))),A});i(this,"onResize",A=>{A.forEach(e=>{this.elementSize={width:e.contentRect.width,height:e.contentRect.height}})});i(this,"evaluateConstraintCap",()=>{var n,s,a,d,E;const A=this.sizeBasedResolutionCapEnabled?O(S({},aa()),{video:yc()}):aa();if(!this.resizeObserver){const g=this.element.getBoundingClientRect();this.elementSize={width:g.width,height:g.height}}if(this.sizeBasedResolutionCapEnabled){const g=window.devicePixelRatio,c=(n=this.pictureInPictureSource)==null?void 0:n.getPictureInPictureSize();this.elementSize.width>0&&this.elementSize.height>0&&(A.video.width=this.elementSize.width,A.video.height=this.elementSize.height),c&&(A.video.width=c.width,A.video.height=c.height),A.video.width*=g,A.video.height*=g}const t=this.renditionLevelSource.getRenditionLevels().find(g=>{if(g.video){const c=g.video.width/g.video.height,J=A.video.width/A.video.height;return c>J?g.video.width>A.video.width:g.video.height>A.video.height}});t&&t.video&&(A.video.width=t.video.width,A.video.height=t.video.height);const B=(s=this.userSpecifiedCap)==null?void 0:s.video,F=(a=this.userSpecifiedCap)==null?void 0:a.audio;B&&(A.video.width>B.width&&(A.video.width=B.width),A.video.height>B.height&&(A.video.height=B.height)),A.video.bitRate=(d=B==null?void 0:B.bitRate)!=null?d:A.video.bitRate,A.audio.bitRate=(E=F==null?void 0:F.bitRate)!=null?E:A.audio.bitRate,bt(A,this.currentCap)?this.currentCap=S({},A):(this.currentCap=S({},A),this.emitter.emit("constraint cap changed",A))});i(this,"enterPictureInPicture",A=>{this.pictureInPictureSource=A,this.evaluateConstraintCap()});i(this,"exitPictureInPicture",()=>{this.pictureInPictureSource=void 0,this.evaluateConstraintCap()});this.element=e;const F=this.element.getBoundingClientRect();this.elementSize={width:F.width,height:F.height},this.emitter=A,this.renditionLevelSource=t,this._sizeBasedResolutionCapEnabled=B,this.emitter.on("enter picture in picture",this.enterPictureInPicture),this.emitter.on("exit picture in picture",this.exitPictureInPicture)}get sizeBasedResolutionCapEnabled(){return this._sizeBasedResolutionCapEnabled}set sizeBasedResolutionCapEnabled(A){this._sizeBasedResolutionCapEnabled=A,this.evaluateConstraintCap()}};i(aB,"CHECK_SIZE_INTERVAL",1e3),i(aB,"create",(A,e,t,B)=>new aB(A,e,t,B));let oa=aB;const bc=5,fc=100,Gc=1e3;class la{constructor(A,e,t,B){i(this,"timers",DA.create());i(this,"logger");i(this,"emitter");i(this,"trackContexts");i(this,"playbackSource");i(this,"isSuspended",!1);i(this,"load",()=>{this.timers.setInterval(this.emitDecodedFrames,fc),this.timers.setInterval(this.emitDecodeRate,Gc),this.emitter.on("init segment",this.onInitSegment),this.emitter.on("coded sample",this.decode)});i(this,"unload",()=>{this.trackContexts.forEach(({decoderContext:A})=>A.unload()),this.timers.unload(),this.emitter.off("init segment",this.onInitSegment),this.emitter.off("coded sample",this.decode)});i(this,"suspend",()=>{this.isSuspended=!0});i(this,"unsuspend",()=>{this.isSuspended=!1});i(this,"getBuffer",A=>{var e;return(e=this.trackContexts.get(A))==null?void 0:e.buffer});i(this,"videoDecodeRate",()=>{var F,n,s;const A=this.trackContexts.get("video"),e=(F=A==null?void 0:A.sampleDuration)!=null?F:40,t=Bt((n=A==null?void 0:A.decodeTime.items())!=null?n:[]),B=Bt((s=A==null?void 0:A.transportTime.items())!=null?s:[]);return e/(t.average+B.average)});i(this,"getStatistics",()=>{var F,n,s,a;const A=this.trackContexts.get("video"),e=Bt((F=A==null?void 0:A.decodeTime.items())!=null?F:[]),t=Bt((n=A==null?void 0:A.transportTime.items())!=null?n:[]),B=Bt((a=(s=this.trackContexts.get("audio"))==null?void 0:s.decodeTime.items())!=null?a:[]);return{videoDecodeRate:this.videoDecodeRate(),videoDecodeTime:e,audioDecodeTime:B,videoTransportTime:t}});i(this,"onInitSegment",({initSegment:A})=>{var t;const e=(t=this.trackContexts.get(A.type))==null?void 0:t.decoderContext;if(!e)throw new Y("No known decoder context",{code:"no_known_decoder_context",isFatal:!1});e.initSegment(A)});i(this,"decode",A=>{const e=this.trackContexts.get(A.type);if(!e)throw new Y("No known decoder context",{code:"no_known_decoder_context",isFatal:!1});if(this.isSuspended)return;e.sampleDuration=A.duration/A.timescale*1e3;const{decoderContext:t,buffer:B}=e,F=A.timestamp/A.timescale*1e3,n=A.duration/A.timescale*1e3,s=B[B.length-1];!s||F-bc>s.end?B.push({start:F,end:F+n}):F+n*5<s.end?e.buffer=[{start:F,end:F+n}]:s.end=F+n,t.enqueue(A),this.emitDecodedFrames()});i(this,"emitDecodedFrames",()=>{let A;this.updateBufferState(),this.trackContexts.forEach(e=>{var B,F;let t;for(;(t=(F=(B=e.decoderContext).error)==null?void 0:F.call(B))!==void 0;)this.emitter.emit("error",Mo(!1,t));for(;(A=e.decoderContext.take())!==void 0;){const{statistics:n}=A;n&&(e.decodeTime.push(n.decodeTime),e.transportTime.push((n.transportTimeToWorker+n.transportTimeFromWorker)/n.samplesInBatch)),this.emitter.emit("decoded frame",A)}})});i(this,"emitDecodeRate",()=>{this.emitter.emit("video decode rate",this.videoDecodeRate())});i(this,"updateBufferState",()=>{var F,n;let A;if(this.trackContexts.forEach(s=>{var a,d,E,g;if(!A)A=s.buffer;else{const c=(d=(a=s.buffer[s.buffer.length-1])==null?void 0:a.end)!=null?d:0;((g=(E=A[A.length-1])==null?void 0:E.end)!=null?g:0)>c&&(A=s.buffer)}}),!A)return;const e=this.playbackSource.currentTime,t=(n=(F=A[A.length-1])==null?void 0:F.end)!=null?n:0,B=e<t?"playing":"buffering";this.emitter.emit("buffer state",{buffered:A,currentTime:this.playbackSource.currentTime,isPaused:this.playbackSource.isPaused,playbackState:B})});this.logger=e,this.emitter=A,this.trackContexts=t,this.playbackSource=B}static create(A,e,t,B,F){return r(this,null,function*(){const n=new Map;for(const s of t)switch(s.type){case"audio":{const{OpusDecoderContext:a}=yield Promise.resolve().then(()=>eR);n.set(s.type,{buffer:[],decoderContext:yield a.create(48e3,2),decodeTime:new Z(100),transportTime:new Z(100),sampleDuration:40});break}case"video":{const{H264DecoderWorkerContext:a}=yield Promise.resolve().then(()=>iR);n.set(s.type,{buffer:[],decoderContext:yield a.create(F),decodeTime:new Z(100),transportTime:new Z(100),sampleDuration:40});break}}return new la(A,e,n,B)})}}const On=class On{constructor(A){i(this,"emitter");i(this,"isVisibleCount",0);i(this,"isHiddenCount",0);i(this,"isOnlineCount",0);i(this,"isOfflineCount",0);i(this,"isActive",document.visibilityState==="visible");i(this,"unload",()=>{document.removeEventListener("visibilitychange",this.onVisibilityChanged),window.removeEventListener("pagehide",this.onPageHide),window.removeEventListener("online",this.onOnline),window.removeEventListener("offline",this.onOffline)});i(this,"load",()=>{document.addEventListener("visibilitychange",this.onVisibilityChanged),window.addEventListener("pagehide",this.onPageHide),window.addEventListener("online",this.onOnline),window.addEventListener("offline",this.onOffline)});i(this,"unsuspend",()=>{});i(this,"getStatistics",()=>{var A,e,t,B,F;return{isVisible:this.isVisible,isOnline:this.isOnline,isVisibleCount:this.isVisibleCount,isHiddenCount:this.isHiddenCount,isOnlineCount:this.isOnlineCount,isOfflineCount:this.isOfflineCount,navigatorRtt:(A=navigator.connection)==null?void 0:A.rtt,navigatorEffectiveType:(e=navigator.connection)==null?void 0:e.effectiveType,navigatorConnectionType:(t=navigator.connection)==null?void 0:t.type,navigatorSaveData:(B=navigator.connection)==null?void 0:B.saveData,navigatorDownlink:(F=navigator.connection)==null?void 0:F.downlink}});i(this,"onOnline",()=>this.isOnlineCount++);i(this,"onOffline",()=>this.isOfflineCount++);i(this,"onPageHide",A=>this.emitter.emit("pagehide",A));i(this,"onVisibilityChanged",()=>{this.setIsActive(document.visibilityState==="visible")});i(this,"setIsActive",A=>{A!==this.isActive&&(this.emitter.emit("page active",A),A?this.isVisibleCount++:this.isHiddenCount++),this.isActive=A});this.emitter=A}get isOnline(){return navigator.onLine}get isVisible(){return document.visibilityState==="visible"}};i(On,"create",A=>new On(A));let ra=On;const Mc=Q=>(A,e,t)=>A.timestamp<=e||A.timestampAdded<=t-Q,Dt=class Dt{constructor(A,e,t){i(this,"logger");i(this,"emitter");i(this,"waitingEvents",[]);i(this,"isTriggered",Mc(Dt.EVENT_TIMEOUT));i(this,"timeSource");i(this,"timers",new DA);i(this,"load",()=>{this.timers.setInterval(this.onBufferedStateChanged,Dt.EVENT_CHECK_INTERVAL),this.emitter.on("add event",this.addEvent)});i(this,"unload",()=>{this.timers.unload(),this.emitter.off("add event",this.addEvent)});i(this,"addEvent",A=>{this.logger.debug("Adding event",{event:A}),!this.waitingEvents.some(e=>typeof e.id!="undefined"&&e.id===A.id)&&this.waitingEvents.push(O(S({},A),{timestampAdded:Date.now()}))});i(this,"extractEvent",(A,e)=>{e.type==="video"&&A.channelId!==e.channelId&&this.addEvent({type:"channel switch",channelId:e.channelId,timestamp:e.timestamp/e.timescale*1e3}),e.type==="audio"&&A.type==="audio"&&e.language!==void 0&&e.language!==A.language&&this.addEvent({type:"language switch",language:e.language,timestamp:e.timestamp/e.timescale*1e3})});i(this,"onBufferedStateChanged",()=>{var F;const A=Date.now(),e=(F=this.timeSource.drift)!=null?F:0,t=this.timeSource.serverCurrentTime-e;if(this.waitingEvents.length===0)return;const B=this.waitingEvents.filter(n=>this.isTriggered(n,t,A));this.waitingEvents=this.waitingEvents.filter(n=>!this.isTriggered(n,t,A)),B.forEach(n=>{this.logger.debug("Emitting event",{event:n}),this.emitter.emit("event",n)})});this.logger=e,this.emitter=A,this.timeSource=t}};i(Dt,"EVENT_TIMEOUT",5e3),i(Dt,"EVENT_CHECK_INTERVAL",20),i(Dt,"create",(A,e,t)=>new Dt(A,e,t));let da=Dt;const Ve=class Ve{constructor(A){i(this,"emitter");i(this,"timers",DA.create());i(this,"bytesReceived",new Map);i(this,"timeoutInterval");i(this,"lastBytesUpdated",Date.now());i(this,"load",()=>{this.emitter.on("connection state",this.onConnectionState),this.timers.setInterval(()=>this.bytesReceived.forEach(A=>A.tick()),100)});i(this,"unload",()=>{this.emitter.off("connection state",this.onConnectionState),this.timers.unload()});i(this,"averageBitRate",A=>{var e,t;return((t=(e=this.bytesReceived.get(A))==null?void 0:e.average)!=null?t:0)*8});i(this,"totalBytesReceived",()=>{let A=0;return this.bytesReceived.forEach(e=>{A+=e.total}),A});i(this,"add",(A,e)=>{let t=this.bytesReceived.get(A);t||(t=new yd(20),this.bytesReceived.set(A,t)),e>0&&(this.lastBytesUpdated=Date.now(),this.timeoutInterval||(this.timeoutInterval=this.timers.setInterval(this.checkTimeout,Ve.UPDATE_RECEIVED_BYTES_INTERVAL))),t.add(e)});i(this,"getStatistics",()=>({bytesReceived:this.totalBytesReceived(),videoBitRate:this.averageBitRate("video"),audioBitRate:this.averageBitRate("audio")}));i(this,"onConnectionState",A=>{this.clearTimeoutInterval(),A==="connected"&&(this.lastBytesUpdated=Date.now(),this.timeoutInterval=this.timers.setInterval(this.checkTimeout,Ve.UPDATE_RECEIVED_BYTES_INTERVAL))});i(this,"checkTimeout",()=>{const A=Date.now()-this.lastBytesUpdated;if(this.totalBytesReceived()===0&&A>Ve.NO_DATA_ERROR_TIMEOUT){this.emitter.emit("error",lE()),this.emitter.emit("reconnect","no incoming data"),this.clearTimeoutInterval();return}A>Ve.NO_DATA_TIMEOUT&&this.totalBytesReceived()>0&&(this.emitter.emit("no data timeout",this.totalBytesReceived()),this.clearTimeoutInterval())});i(this,"clearTimeoutInterval",()=>{this.timeoutInterval&&(this.timers.clearInterval(this.timeoutInterval),this.timeoutInterval=void 0)});this.emitter=A}};i(Ve,"NO_DATA_ERROR_TIMEOUT",20*1e3),i(Ve,"NO_DATA_TIMEOUT",5*1e3),i(Ve,"UPDATE_RECEIVED_BYTES_INTERVAL",1e3),i(Ve,"create",A=>new Ve(A));let Ea=Ve;const vc=()=>window.AudioContext||window.webkitAudioContext,zn=class zn extends ee{constructor(){super();i(this,"context",new(vc()));i(this,"timers",DA.create());i(this,"previousCurrentTime",0);i(this,"_isStuck",!1);i(this,"mediaStreamDestination");i(this,"unload",()=>(this.timers.unload(),this.context.removeEventListener("statechange",this.onStateChange),this.context.state!=="closed"?this.context.close():Promise.resolve()));i(this,"createGain",()=>this.context.createGain());i(this,"createBuffer",(e,t,B)=>this.context.createBuffer(e,t,B));i(this,"createBufferSource",()=>this.context.createBufferSource());i(this,"getMediaStreamDestination",()=>(this.mediaStreamDestination||(this.mediaStreamDestination=this.context.createMediaStreamDestination()),this.mediaStreamDestination));i(this,"getDefaultDestination",()=>this.context.destination);i(this,"createSplitter",()=>this.context.createChannelSplitter(2));i(this,"resume",()=>r(this,null,function*(){try{return yield Promise.race([this.context.resume(),Ns(1e3,sE())])}catch(e){throw this.suspend().catch(V),e}}));i(this,"suspend",()=>r(this,null,function*(){var e;yield(e=this.context.suspend())!=null?e:Promise.resolve()}));i(this,"onStateChange",()=>this.emit("state",this.state));this.context.addEventListener("statechange",this.onStateChange),this.timers.setInterval(()=>{this._isStuck=this.isRunning&&this.context.currentTime===this.previousCurrentTime,this._isStuck&&this.emit("stuck"),this.previousCurrentTime=this.context.currentTime},zn.CHECK_INTERVAL)}get isStuck(){return this._isStuck}get isRunning(){return this.state==="running"}get currentTime(){return this.context.currentTime}get sampleRate(){return this.context.sampleRate}get state(){return this.context.state}};i(zn,"CHECK_INTERVAL",1e3);let ga=zn;const Pn=class Pn extends ee{constructor(e,t,{muted:B,reInitWhenStuck:F}){super();i(this,"logger");i(this,"audio");i(this,"gainNode");i(this,"splitter");i(this,"_volume",1);i(this,"_userProvidedMuted",!1);i(this,"_muted",!1);i(this,"startTime",0);i(this,"samples",new Float32Array(new ArrayBuffer(5*960*4*2)));i(this,"preInitSampleQueue",new Z(500));i(this,"unplayedBufferSources",new Z(100));i(this,"sampleRate",48e3);i(this,"channels",2);i(this,"index",0);i(this,"clockSource");i(this,"clockDelta");i(this,"startTimeIsInvalidated",!0);i(this,"lastSampleTimestamp",0);i(this,"reInitWhenStuck");i(this,"ignoreSuspendCalls",!1);i(this,"isActivated",!1);i(this,"unload",()=>r(this,null,function*(){var e,t;(e=this.gainNode)==null||e.disconnect(),yield(t=this.audio)==null?void 0:t.unload(),this.reset(),this.audio=void 0,this.gainNode=void 0}));i(this,"suspend",()=>{this.setGain(0)});i(this,"unsuspend",()=>{var e;this.setGain(this._volume),this.ignoreSuspendCalls=!!this.audio,(e=this.audio)==null||e.suspend().then(()=>r(this,null,function*(){yield this.resume(),this.ignoreSuspendCalls=!1})).catch(()=>{this.ignoreSuspendCalls=!1,this.emit("state change","suspended")})});i(this,"flush",()=>{if(!this.audio||!this.gainNode)throw new Y("AudioContext must be initialized to flush",{isFatal:!1,code:"audiocontext_must_be_initialized"});const e=this.samples.length/this.channels,t=this.audio.createBufferSource(),B=this.audio.createBuffer(this.channels,e,this.sampleRate);let F=0;for(let s=0;s<this.channels;s++){F=s;const a=B.getChannelData(s);for(let d=0;d<e;d++)a[d]=this.samples[F],F+=this.channels}const n=Math.max(this.startTime,0);t.buffer=B,t.connect(this.gainNode),this.splitter&&t.connect(this.splitter),t.start(n),this.unplayedBufferSources.push([n,t]),this.startTime+=B.duration});i(this,"onDecodedFrame",e=>{if(!(this.gainNode&&this.audio&&this.audio.isRunning)){if(e.type==="audio"){this.preInitSampleQueue.push(O(S({},e),{data:e.data.slice(0,e.data.length)}));const t=this.clockSource.currentTime;this.preInitSampleQueue.filterPop(({timestamp:B,timescale:F})=>B/F*1e3>t)}return}for(;!this.preInitSampleQueue.isEmpty();){const t=this.preInitSampleQueue.items();this.preInitSampleQueue.clear(),t.forEach(this.onDecodedFrame)}if(this.unplayedBufferSources.filterPop(([t,B])=>{var F,n;return((n=(F=this.audio)==null?void 0:F.currentTime)!=null?n:0)<t}),e.type==="audio"){const t=e.timestamp/e.timescale*1e3;if(t<this.lastSampleTimestamp&&(this.logger.info("Unordered timestamp - invalidating start time"),this.startTimeIsInvalidated=!0),this.lastSampleTimestamp=t,this.startTimeIsInvalidated){const B=this.audio.currentTime*1e3,F=this.clockSource.currentTime,n=(B+t-F)/1e3;this.clockDelta=F-B,this.startTime=n,this.startTimeIsInvalidated=!1,this.unplayedBufferSources.items().forEach(([s,a])=>{n<=s&&a.stop()})}this.samples.set(e.data,this.index),this.index+=e.data.length,this.channels=e.channels,this.sampleRate=e.sampleRate,this.samples.length<=this.index&&(this.index=0,this.flush())}});i(this,"play",()=>r(this,null,function*(){this.audio=this.getAudioContext(),yield this.resume()}));i(this,"pause",()=>{});i(this,"flushBuffer",()=>{this.unplayedBufferSources.items().forEach(([e,t])=>t.stop()),this.index=0});i(this,"resume",()=>r(this,null,function*(){var e;if(!this._userProvidedMuted)try{yield(e=this.audio)==null?void 0:e.resume(),this._muted=this._userProvidedMuted,this.startTimeIsInvalidated=!0}catch(t){throw this._muted=!0,t}}));i(this,"getAudioContext",()=>this.audio?this.audio:this.setupContext());i(this,"setupContext",()=>{var e,t,B;return(e=this.audio)==null||e.unload(),this.audio=new ga,this.audio.on("state",F=>{this.logger.info("AudioContext state change",{state:F}),F==="running"&&(this._muted=this._userProvidedMuted,this.setGain(this._volume)),!this.ignoreSuspendCalls&&this.emit("state change",F)}),this.audio.on("stuck",()=>{this.reInitWhenStuck&&(this.logger.info("Re-init audio context"),this.setupContext(),this.resume().catch(V),this.emit("stuck"))}),(t=this.gainNode)==null||t.disconnect(),this.gainNode=this.audio.createGain(),this.setGain(this._volume),this.startTime=this.audio.currentTime,(B=this.splitter)==null||B.disconnect(),this.splitter=this.audio.createSplitter(),this.audio});i(this,"setGain",e=>{this.gainNode&&(this.gainNode.gain.value=this._muted?0:e)});this._muted=B,this._userProvidedMuted=B,this.logger=e,this.clockSource=t,this.reInitWhenStuck=F}get isContextRunning(){var e;return((e=this.audio)==null?void 0:e.state)==="running"}get volume(){return this._volume}set volume(e){this._volume=e,this.muted||this.setGain(e)}get seekTime(){return 0}get isSeeking(){return!1}get muted(){var e;return this._muted||!((e=this.audio)!=null&&e.isRunning)}set muted(e){this._userProvidedMuted=e,this._muted=e,this.setGain(this._volume)}get isPaused(){return!1}get currentTime(){var e;return!this.audio||!this.audio.isRunning||this.audio.isStuck?this.clockSource.currentTime:this.audio.currentTime*1e3+((e=this.clockDelta)!=null?e:0)}set currentTime(e){this.logger.debug("setting current time to",{currentTime:e}),this.startTimeIsInvalidated=!0}get audioNode(){return this.splitter}useMediaStreamDestination(){var B;const t=this.getAudioContext().getMediaStreamDestination();return(B=this.gainNode)==null||B.connect(t),t}useDefaultDestination(){var B;const t=this.getAudioContext().getDefaultDestination();return(B=this.gainNode)==null||B.connect(t),t}};i(Pn,"create",(e,t,B)=>new Pn(e,t,B));let Un=Pn;class Gl{constructor(){o(this,Zt,[]);l(this,Zt,[])}addTextTrack(A,e,t){const B=[],F={kind:A,label:e,language:t,mode:"disabled",cues:B,addCue:n=>{B.push(n)},removeCue:n=>{const s=B.findIndex(a=>a===n);s!==-1&&B.splice(s,1)}};return U(this,Zt).push(F),F}set language(A){U(this,Zt).forEach(e=>{e.language===A?e.mode="showing":e.mode="hidden"})}get language(){var A;return(A=U(this,Zt).find(e=>e.mode==="showing"))==null?void 0:A.language}getActiveCues(A){const e=U(this,Zt).find(t=>t.mode==="showing");return e?e.cues.filter(({startTime:t,endTime:B})=>A>=t&&A<=B):[]}}Zt=new WeakMap;const xt=(Q,A)=>{let e;for(e=A;Q>1;Q--)e+=A;return e};class Lc{constructor(){i(this,"audio");i(this,"unmute",()=>this.audio.play().catch(V));const A=document.createElement("div");A.innerHTML="<audio x-webkit-airplay='deny'></audio>";const e=A.children.item(0);if(e instanceof HTMLAudioElement)this.audio=e,this.audio.controls=!1,this.audio.disableRemotePlayback=!0,this.audio.preload="auto",this.audio.src="data:audio/mpeg;base64,//uQx"+xt(23,"A")+"WGluZwAAAA8AAAACAAACcQCA"+xt(16,"gICA")+xt(66,"/")+"8AAABhTEFNRTMuMTAwA8MAAAAAAAAAABQgJAUHQQAB9AAAAnGMHkkI"+xt(320,"A")+"//sQxAADgnABGiAAQBCqgCRMAAgEAH"+xt(15,"/")+"7+n/9FTuQsQH//////2NG0jWUGlio5gLQTOtIoeR2WX////X4s9Atb/JRVCbBUpeRUq"+xt(18,"/")+"9RUi0f2jn/+xDECgPCjAEQAABN4AAANIAAAAQVTEFNRTMuMTAw"+xt(97,"V")+"Q==",this.audio.loop=!1,this.audio.load();else throw new Error("Failed to create audio tag")}}class Hc{constructor(){o(this,Fe);o(this,UF,[]);o(this,Ge,document.createElement("canvas"));o(this,TA);o(this,DQ,window.devicePixelRatio||1);i(this,"config",{backgroundColor:"rgba(0,0,0,0.6)",textPadding:8,fontSize:"28px",lineGap:16});const A=U(this,Ge).getContext("2d",{alpha:!0});if(!A)throw new Error("Failed to create 2d context");l(this,TA,A),I(this,Fe,gB).call(this)}get canvas(){return U(this,Ge)}setActiveCues(A){l(this,UF,A)}render(A,e=!1){const t=U(this,UF).flatMap(s=>s.text.split(`
|
|
3
|
-
`).flatMap(
|
|
1
|
+
(function(C,h){typeof exports=="object"&&typeof module!="undefined"?h(exports):typeof define=="function"&&define.amd?define(["exports"],h):(C=typeof globalThis!="undefined"?globalThis:C||self,h(C.Vindral={}))})(this,function(C){"use strict";var IR=Object.create;var io=Object.defineProperty,cR=Object.defineProperties,CR=Object.getOwnPropertyDescriptor,RR=Object.getOwnPropertyDescriptors;var ds=Object.getOwnPropertySymbols;var Mr=Object.prototype.hasOwnProperty,vr=Object.prototype.propertyIsEnumerable;var He=(C,h)=>(h=Symbol[C])?h:Symbol.for("Symbol."+C),Ut=C=>{throw TypeError(C)},Bo=Math.pow,Es=(C,h,k)=>h in C?io(C,h,{enumerable:!0,configurable:!0,writable:!0,value:k}):C[h]=k,S=(C,h)=>{for(var k in h||(h={}))Mr.call(h,k)&&Es(C,k,h[k]);if(ds)for(var k of ds(h))vr.call(h,k)&&Es(C,k,h[k]);return C},O=(C,h)=>cR(C,RR(h)),Gr=(C,h)=>io(C,"name",{value:h,configurable:!0});var Lr=(C,h)=>{var k={};for(var p in C)Mr.call(C,p)&&h.indexOf(p)<0&&(k[p]=C[p]);if(C!=null&&ds)for(var p of ds(C))h.indexOf(p)<0&&vr.call(C,p)&&(k[p]=C[p]);return k};var bQ=C=>{var h;return[,,,IR((h=C==null?void 0:C[He("metadata")])!=null?h:null)]},Hr=["class","method","getter","setter","accessor","field","value","get","set"],IF=C=>C!==void 0&&typeof C!="function"?Ut("Function expected"):C,hR=(C,h,k,p,V)=>({kind:Hr[C],name:h,metadata:p,addInitializer:m=>k._?Ut("Already initialized"):V.push(IF(m||null))}),ft=(C,h)=>Es(h,He("metadata"),C[3]),GQ=(C,h,k,p)=>{for(var V=0,m=C[h>>1],w=m&&m.length;V<w;V++)h&1?m[V].call(k):p=m[V].call(k,p);return p},YA=(C,h,k,p,V,m)=>{var w,z,q,sA,G,_=h&7,ae=!!(h&8),gA=!!(h&16),hA=_>3?C.length+1:_?ae?1:2:0,JF=Hr[_+5],VF=_>3&&(C[hA-1]=[]),Vs=C[hA]||(C[hA]=[]),OA=_&&(!gA&&!ae&&(V=V.prototype),_<5&&(_>3||!gA)&&CR(_<4?V:{get[k](){return U(this,m)},set[k](kA){return l(this,m,kA)}},k));_?gA&&_<4&&Gr(m,(_>2?"set ":_>1?"get ":"")+k):Gr(V,k);for(var HQ=p.length-1;HQ>=0;HQ--)sA=hR(_,k,q={},C[3],Vs),_&&(sA.static=ae,sA.private=gA,G=sA.access={has:gA?kA=>SR(V,kA):kA=>k in kA},_^3&&(G.get=gA?kA=>(_^1?U:I)(kA,V,_^4?m:OA.get):kA=>kA[k]),_>2&&(G.set=gA?(kA,IB)=>l(kA,V,IB,_^4?m:OA.set):(kA,IB)=>kA[k]=IB)),z=(0,p[HQ])(_?_<4?gA?m:OA[JF]:_>4?void 0:{get:OA.get,set:OA.set}:V,sA),q._=1,_^4||z===void 0?IF(z)&&(_>4?VF.unshift(z):_?gA?m=z:OA[JF]=z:V=z):typeof z!="object"||z===null?Ut("Object expected"):(IF(w=z.get)&&(OA.get=w),IF(w=z.set)&&(OA.set=w),IF(w=z.init)&&VF.unshift(w));return _||ft(C,V),OA&&io(V,k,OA),gA?_^4?m:OA:V},i=(C,h,k)=>Es(C,typeof h!="symbol"?h+"":h,k),Uo=(C,h,k)=>h.has(C)||Ut("Cannot "+k),SR=(C,h)=>Object(h)!==h?Ut('Cannot use the "in" operator on this value'):C.has(h),U=(C,h,k)=>(Uo(C,h,"read from private field"),k?k.call(C):h.get(C)),o=(C,h,k)=>h.has(C)?Ut("Cannot add the same private member more than once"):h instanceof WeakSet?h.add(C):h.set(C,k),l=(C,h,k,p)=>(Uo(C,h,"write to private field"),p?p.call(C,k):h.set(C,k),k),I=(C,h,k)=>(Uo(C,h,"access private method"),k);var ue=(C,h,k,p)=>({set _(V){l(C,h,V,k)},get _(){return U(C,h,p)}});var d=(C,h,k)=>new Promise((p,V)=>{var m=q=>{try{z(k.next(q))}catch(sA){V(sA)}},w=q=>{try{z(k.throw(q))}catch(sA){V(sA)}},z=q=>q.done?p(q.value):Promise.resolve(q.value).then(m,w);z((k=k.apply(C,h)).next())}),lA=function(C,h){this[0]=C,this[1]=h},Ft=(C,h,k)=>{var p=(w,z,q,sA)=>{try{var G=k[w](z),_=(z=G.value)instanceof lA,ae=G.done;Promise.resolve(_?z[0]:z).then(gA=>_?p(w==="return"?w:"next",z[1]?{done:gA.done,value:gA.value}:gA,q,sA):q({value:gA,done:ae})).catch(gA=>p("throw",gA,q,sA))}catch(gA){sA(gA)}},V=w=>m[w]=z=>new Promise((q,sA)=>p(w,z,q,sA)),m={};return k=k.apply(C,h),m[He("asyncIterator")]=()=>m,V("next"),V("throw"),V("return"),m},Fo=C=>{var h=C[He("asyncIterator")],k=!1,p,V={};return h==null?(h=C[He("iterator")](),p=m=>V[m]=w=>h[m](w)):(h=h.call(C),p=m=>V[m]=w=>{if(k){if(k=!1,m==="throw")throw w;return w}return k=!0,{done:!1,value:new lA(new Promise(z=>{var q=h[m](w);q instanceof Object||Ut("Object expected"),z(q)}),1)}}),V[He("iterator")]=()=>V,p("next"),"throw"in h?p("throw"):V.throw=m=>{throw m},"return"in h&&p("return"),V},rA=(C,h,k)=>(h=C[He("asyncIterator")])?h.call(C):(C=C[He("iterator")](),h={},k=(p,V)=>(V=C[p])&&(h[p]=m=>new Promise((w,z,q)=>(m=V.call(C,m),q=m.done,Promise.resolve(m.value).then(sA=>w({value:sA,done:q}),z)))),k("next"),k("return"),h);var ne=(C,h,k)=>{if(h!=null){typeof h!="object"&&typeof h!="function"&&Ut("Object expected");var p;k&&(p=h[He("asyncDispose")]),p===void 0&&(p=h[He("dispose")]),typeof p!="function"&&Ut("Object not disposable"),C.push([k,p,h])}else k&&C.push([k]);return h},se=(C,h,k)=>{var p=typeof SuppressedError=="function"?SuppressedError:function(w,z,q,sA){return sA=Error(q),sA.name="SuppressedError",sA.error=w,sA.suppressed=z,sA},V=w=>h=k?new p(w,h,"An error was suppressed during disposal"):(k=!0,w),m=w=>{for(;w=C.pop();)try{var z=w[1]&&w[1].call(w[2]);if(w[0])return Promise.resolve(z).then(m,q=>(V(q),m()))}catch(q){V(q)}if(k)throw h};return m()};var Xe,qQ,le,WB,pB,Ne,re,cA,Ke,ot,Pt,DB,jt,_Q,$Q,ZB,no,qt,_t,ee,de,$t,AQ,wB,eA,eQ,Oe,Ee,me,NA,rt,dt,Rn,Ai,TB,yB,CA,Yr,xr,Xr,Kr,hn,Sn,Or,cF,Jn,zr,Pr,AU,eU,tU,QU,MA,XA,BA,ii,Et,ze,tQ,jr,so,We,Bi,Ui,iU,BU,Fi,UU,FU,pe,ni,nU,sU,si,QQ,qr,ao,ge,ai,aU,oi,oU,lU,rU,li,un,iQ,_r,oo,It,dU,De,BQ,UQ,FQ,Ze,EU,nQ,we,kn,iA,CF,gs,MQ,Is,bt,ri,di,Pe,Nn,KA,zA,sQ,mn,je,Ei,EA,$r,Ad,ed,td,Qd,id,Bd,Ud,Fd,nd,gi,IU,cU,SA,CU,Ii,ci,RU,Wn,sd,pn,Ri,hi,ct,aQ,Dn,oQ,Ie,TA,hU,SU,te,JU,VU,Ji,uU,Zn,ad,lQ,kU,Vi,NU,ui,mU,rQ,Ct,dB,Jr,ki,WU,Ni,dQ,Rt,ht,St,Ka,EQ,Vr,mi,mA,Wi,pi,Oa,Di,RF,ur,kr,Nr,mr,qe,PA,gQ,IQ,Zi,Te,cs,EB,Wr,pr,Dr,Zr,ce,pU,cQ,wi,Ti,JA,od,ld,yi,Cs,Rs,hs,hF,Qe,DU,CQ,fi,ZU,yA,vQ,LQ,Jt,_e,bi,RQ,$e,Gi,Mi,wn,rd,Vt,ut,hQ,wU,TU,Tn,yn,dd,At,vi,yU,jA,ye,SQ,ie,fU,fn,bU,lo,Ce,JQ,et,fe,GU,ro,MU,kt,vU,LU,HU,bn,Ed,YU,Li,xU,Hi,XU,Eo,KU,be,OU,zU,Mn,gd,vn,Nt,VQ,PU,jU,qU,uQ,go,Id,Ln,_U,mt,xi,wr,kQ,NQ,mQ,Wt,_a,Xi,Ss,WQ,$U,Hn,cd,AF,Yn,Cd,xn,Oi,zi,eF,tF,Tr,yr,fr,Pi,ji,pQ,DA,Re,he,pt,qi,QF,iF,tt,vA,Js,SF,Rd,Io,ZA,LA,Se,DQ,oA,Dt,BF,UF,Xn,_i,HA,hd,$i,FF,AB,Sd,Jd,Vd,ud,co,Qt,ZQ,Kn,kd,eB,Zt,tB,Me,QB,it,iB,BB,UB,On,zn,Pn,Nd,Tt,nF,ve,wA,wQ,Be,md,gB,Wd,$n,$,sF,aF,oF,yt,sB,pd,Dd,As,TQ,qA,yQ,aB,Zd,wd;const h=Q=>{switch(Q){case"h264":case"av1":return"video";case"aac":case"opus":case"mp3":return"audio";case"webvtt":return"text";default:throw new Error("Unknown codec")}};class k{constructor(A){i(this,"maxSize",0);i(this,"size",0);i(this,"buffers",[]);i(this,"_borrowedBuffers",0);i(this,"get",A=>{const e=this.buffers.shift();return this._borrowedBuffers++,this.size<A||!e?(this.buffers=[],this.size=A,new ArrayBuffer(A)):e});i(this,"reclaim",A=>{this._borrowedBuffers=Math.max(0,this._borrowedBuffers-1),!(A.byteLength<this.size)&&(this.buffers.length>=this.maxSize||this.buffers.push(A))});this.maxSize=A}get bufferSize(){return this.size}get poolSize(){return this.buffers.length}get borrowedBuffers(){return this._borrowedBuffers}}function p(Q,A){if(!Q)throw new Error(A)}const V=()=>{};class m{constructor(){i(this,"promise");i(this,"resolved");i(this,"resolve");i(this,"reject");i(this,"pending",!0);this.promise=new Promise((A,e)=>{this.resolve=t=>{this.pending=!1,this.resolved=t,A(t)},this.reject=t=>{this.pending=!1,e(t)}}),this.promise.catch(V)}static resolved(A){const e=new m;return e.resolve(A),e}static fromPromise(A){const e=new m;return e.promise=A,A.then(t=>{e.pending=!1,e.resolved=t},t=>{e.pending=!1,e.reject(t)}),e}}class w{constructor(A=50){i(this,"maxSize");i(this,"values",[]);i(this,"push",A=>{this.isFull()&&this.pop(),this.values.push(A)});i(this,"clear",()=>void(this.values=[]));i(this,"pop",()=>this.values.shift());i(this,"peekFirst",()=>this.values[0]);i(this,"peekLast",()=>this.values[this.values.length-1]);i(this,"isFull",()=>this.values.length>=this.maxSize);i(this,"isEmpty",()=>this.values.length===0);i(this,"items",()=>this.values);i(this,"filterPop",A=>{for(;this.peekFirst()&&!A(this.peekFirst());)this.pop()});this.maxSize=A}}function z(Q){const A=new q(Q);return[A,A]}class q{constructor(A){o(this,Xe);o(this,qQ,new m);o(this,le);o(this,WB,!1);l(this,Xe,new w(A))}isFull(){return U(this,Xe).isFull()}close(){var A;(A=U(this,le))==null||A.resolve(),l(this,WB,!0)}abort(A){var e,t;(e=U(this,le))==null||e.promise.catch(V),(t=U(this,le))==null||t.reject(A)}push(A){return d(this,null,function*(){var e;U(this,Xe).isFull()&&(yield U(this,qQ).promise),U(this,Xe).push(A),(e=U(this,le))==null||e.resolve(),l(this,le,new m)})}pop(){return d(this,null,function*(){var A;for(;!(U(this,WB)&&U(this,Xe).isEmpty());){const e=U(this,Xe).pop();if(e)return U(this,qQ).resolve(),l(this,qQ,new m),e;U(this,le)||l(this,le,new m),yield(A=U(this,le))==null?void 0:A.promise}})}start(A){}pull(A){return d(this,null,function*(){const e=yield this.pop();e?A.enqueue(e):A.close()})}cancel(A){this.abort(new Error(A))}next(){return d(this,null,function*(){const A=yield this.pop().catch(()=>{});return A?{done:!1,value:A}:{done:!0,value:void 0}})}return(){return this.close(),Promise.resolve({done:!0,value:void 0})}[Symbol.asyncIterator](){return this}}Xe=new WeakMap,qQ=new WeakMap,le=new WeakMap,WB=new WeakMap;function sA(Q){const A=atob(Q),e=new Uint8Array(A.length);for(let t=0;t<A.length;t++)e[t]=A.charCodeAt(t);return e.buffer}function G(Q){return typeof BigInt=="function"?BigInt(Q):Q}class _{constructor(A,e=0){o(this,pB);o(this,Ne);o(this,re);i(this,"position",()=>U(this,re));i(this,"peekBit",()=>this.getBit(U(this,Ne),U(this,re)));i(this,"readBit",()=>{const A=this.peekBit();return ue(this,re)._++,A});i(this,"readBits",A=>{let e=0;for(let t=0;t<A;t++)e=e<<1|(this.getBit(U(this,Ne),ue(this,re)._++)?1:0);return e});i(this,"remainingBits",()=>U(this,Ne).byteLength*8-U(this,re));i(this,"readSignedExpGolomb",()=>{const A=this.readUnsignedExpGolomb();return A&1?(A+1)/2:-(A/2)});i(this,"readUnsignedExpGolomb",()=>{let A=0;for(;this.getBit(U(this,Ne),ue(this,re)._++)===0;)A++;let e=1<<A;for(let t=A-1;t>=0;t--)e|=this.getBit(U(this,Ne),ue(this,re)._++)<<t;return e-1});i(this,"getBit",(A,e)=>{if(A.byteLength*8<=e)throw new Error("BitReader: Out of bounds");return A[e>>3]>>7-(e&7)&1});l(this,pB,A),l(this,Ne,new Uint8Array(U(this,pB))),l(this,re,e)}bytes(){return U(this,Ne)}}pB=new WeakMap,Ne=new WeakMap,re=new WeakMap;function ae(){const Q=self.MediaSource,A=self.ManagedMediaSource;return Q!=null?Q:A}const gA=new RegExp("(android|bbd+|meego).+mobile|avantgo|bada/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)/|plucker|pocket|psp|series(4|6)0|symbian|treo|up.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/","i"),hA=navigator.userAgent.toLowerCase(),JF=gA.test(hA),VF=()=>{const Q=document.createElement("video");return Q.canPlayType("application/vnd.apple.mpegURL")!==""||Q.canPlayType("audio/mpegurl")!==""},Vs=()=>{try{if(typeof WebAssembly=="object"&&typeof WebAssembly.instantiate=="function"){const Q=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(Q instanceof WebAssembly.Module)return new WebAssembly.Instance(Q)instanceof WebAssembly.Instance}}catch(Q){return!1}return!1},OA=()=>hA.indexOf("CrKey")!==-1,HQ=()=>navigator.platform==="MacIntel"&&navigator.maxTouchPoints===0,kA=()=>navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1,IB=()=>hA.indexOf("iphone")>=0&&hA.indexOf("like iphone")<0||hA.indexOf("ipad")>=0&&hA.indexOf("like ipad")<0||hA.indexOf("ipod")>=0&&hA.indexOf("like ipod")<0||kA(),Td=()=>{var Q,A;return kA()?!1:(A=(Q=ae())==null?void 0:Q.isTypeSupported('audio/mp4; codecs="opus"'))!=null?A:!1},yd=()=>/^(?!.*chrome).*safari/i.test(hA);function fd(){var Q,A;if(/(iPhone|iPod|iPad)/i.test(hA))return(A=(Q=hA==null?void 0:hA.match(/OS [\d_]+/i))==null?void 0:Q[0])==null?void 0:A.substring(3).split("_").map(e=>parseInt(e))[0]}function bd(){var Q,A;if(/^((?!chrome|android).)*safari/i.test(hA))return(A=(Q=hA.match(/version\/([\d.]+)/))==null?void 0:Q[1])==null?void 0:A.split(".").map(e=>parseInt(e))[0]}const us=()=>{var e,t;const Q=!!ae();let A=!1;return Q&&(A=Td()),{isMobile:JF,supportsMp4Opus:A,supportsMediaSource:Q,supportsHls:VF(),supportsWebAssembly:Vs(),platform:{iosVersion:(e=fd())!=null?e:Number.MAX_SAFE_INTEGER,safariVersion:(t=bd())!=null?t:Number.MAX_SAFE_INTEGER,isIpadOS:kA(),isMacOS:HQ(),isIOS:IB()}}},ks=(Q,A,e)=>{let t=0;for(let B=A;B<=e;B++)if(B===A){const F=Q[B];t+=F&127,F&128&&(t-=128)}else t=t*256+Q[B];return t};class YQ{constructor(A){o(this,cA);o(this,Ke);o(this,ot);l(this,Ke,A),l(this,ot,new DataView(A.buffer,A.byteOffset,A.byteLength)),l(this,cA,0)}position(){return U(this,cA)}byteOffset(){return U(this,Ke).byteOffset+U(this,cA)}buffer(){return U(this,Ke)}remaining(){return U(this,Ke).length-U(this,cA)}readUint8(){const A=U(this,ot).getUint8(U(this,cA));return l(this,cA,U(this,cA)+1),A}readUint24(){const A=U(this,ot).getUint32(U(this,cA))>>8&16777215;return l(this,cA,U(this,cA)+3),A}readUint16(){const A=U(this,ot).getUint16(U(this,cA));return l(this,cA,U(this,cA)+2),A}readUint32(){const A=U(this,ot).getUint32(U(this,cA));return l(this,cA,U(this,cA)+4),A}readUint64(){const A=ks(U(this,Ke),U(this,cA),U(this,cA)+7);return l(this,cA,U(this,cA)+8),A}readBytes(A){const e=U(this,Ke).subarray(U(this,cA),U(this,cA)+A);return l(this,cA,U(this,cA)+A),e}readRemaining(){return this.readBytes(this.remaining())}readUtf8String(){const A=[];let e;for(;(e=this.readUint8())!==0&&(A.push(e),this.remaining()!=0););return new TextDecoder().decode(new Uint8Array(A))}}cA=new WeakMap,Ke=new WeakMap,ot=new WeakMap;class Gd{constructor(A=100,e=100){i(this,"resizeSteps");i(this,"internalBuffer");i(this,"view");i(this,"uint8");i(this,"_position",0);i(this,"_end",0);this.resizeSteps=e,this.internalBuffer=new ArrayBuffer(A),this.view=new DataView(this.internalBuffer),this.uint8=new Uint8Array(this.internalBuffer)}position(){return this._position}seek(A){this._position=Math.max(0,Math.min(this._end,A))}seekToEnd(){this._position=this._end}writeUint8(A){this.writeAndMove(A,1)}writeUint16(A){this.writeAndMove(A,2)}writeUint24(A){this.writeAndMove(A,3)}writeUint32(A){this.writeAndMove(A,4)}writeUint64(A){const e=Math.floor(A/4294967296),t=(A&4294967295)>>>0;this.writeUint32(e),this.writeUint32(t)}writeUint32At(A,e){this.view.setUint32(A,e)}writeBytes(A){this.resizeIfNeeded(this.position()+A.byteLength),this.uint8.set(A,this.position()),this._position+=A.byteLength,this._end=Math.max(this._end,this._position)}buffer(){return this.internalBuffer.slice(0,this._end)}write(A,e){switch(this.resizeIfNeeded(this.position()+e),e){case 1:this.view.setUint8(this.position(),A);break;case 2:this.view.setUint16(this.position(),A);break;case 3:this.view.setUint8(this.position(),A>>16&255),this.view.setUint8(this.position()+1,A>>8&255),this.view.setUint8(this.position()+2,A&255);break;case 4:this.view.setUint32(this.position(),A);break}}writeAndMove(A,e){this.write(A,e),this._position+=e,this._end=Math.max(this._end,this._position)}resizeIfNeeded(A){if(A>this.internalBuffer.byteLength){const e=new ArrayBuffer(A+this.resizeSteps),t=new Uint8Array(e);t.set(this.uint8),this.internalBuffer=e,this.view=new DataView(this.internalBuffer),this.uint8=t}}}class xQ{constructor(A,e,t){i(this,"onSuccess");i(this,"onError");i(this,"doExecute");this.doExecute=A,this.onSuccess=e,this.onError=t}execute(A){try{this.doExecute(A),this.onSuccess()}catch(e){this.onError(e)}}}const XQ=Q=>Q.reduce((A,e)=>A+e,0)/Q.length,nt=Q=>({last:Q[Q.length-1]||0,average:Q.length===0?0:XQ(Q),max:Q.length===0?0:Math.max(...Q),min:Q.length===0?0:Math.min(...Q)}),Md=Q=>{let A=0,e=0,t=0,B=0,F=0;for(let r=0;r<Q.length;r++){const{x:E,y:g}=Q[r];A+=E,e+=g,t+=E*g,B+=E*E,F+=g*g}const n=(Q.length*t-A*e)/(Q.length*B-A*A),s=(e-n*A)/Q.length,a=Math.pow((Q.length*t-A*e)/Math.sqrt((Q.length*B-A*A)*(Q.length*F-e*e)),2);return{slope:n,intercept:s,r2:a,predict:r=>n*(Q.length+r)+s}};class vd{constructor(A=10){i(this,"rates");i(this,"_total",0);i(this,"accumulatedValues",0);i(this,"lastTickTime",Date.now());i(this,"add",A=>{this.accumulatedValues+=A,this._total+=A});i(this,"tick",()=>{const A=this.accumulatedValues/((Date.now()-this.lastTickTime)/1e3);this.rates.push(A),this.accumulatedValues=0,this.lastTickTime=Date.now()});this.rates=new w(A)}get total(){return this._total}get average(){return this.rates.isEmpty()?0:XQ(this.rates.items())}get minMaxAverage(){return nt(this.rates.items())}}const Gt=(Q,A)=>{if(Q===A)return!0;if(Q==null||typeof Q!="object"||A==null||typeof A!="object")return!1;let e=0,t=0;for(const B in Q)e+=1;for(const B in A)if(t+=1,!(B in Q)||!Gt(Q[B],A[B]))return!1;return e==t};class $A{constructor(){i(this,"listeners",{})}emit(A,e){const t=this.listeners[A];t&&(this.listeners[A]=t.filter(F=>!F.once),t.map(F=>F.fn(e)).map(F=>typeof F=="function"&&(F==null?void 0:F())))}off(A,e){const t=this.listeners[A];t&&(this.listeners[A]=t.filter(B=>B.fn!==e))}on(A,e){this.add(A,e,!1)}once(A,e){this.add(A,e,!0)}reset(){this.listeners={}}add(A,e,t){const B=this.listeners[A],F={fn:e,once:t};B?B.push(F):this.listeners[A]=[F]}}const Ns=1e3,ms=Ns*1e3,Co=ms*1e3,Ws=(Q,A,e)=>Q%A===0?Q/A:(Q/A).toFixed(e),Ld=(Q,A=1)=>Q>=Co?`${Ws(Q,Co,A)} Gbit/s`:Q>=ms?`${Ws(Q,ms,A)} Mbit/s`:Q>=Ns?`${Ws(Q,Ns,A)} Kbit/s`:`${Q} bit/s`,Hd=({width:Q,height:A})=>`${Q}x${A}`,Yd=Q=>Q%1e3===0?`${Q/1e3} kHz`:Q>1e3?`${(Q/1e3).toFixed(1)} kHz`:`${Q} Hz`,Ro=["off","error","warn","info","debug","trace"],xd={OFF:"off"},lt=class lt{constructor({context:A,logLevel:e,debug:t}){o(this,Pt,new Map);o(this,DB,"");o(this,jt,!1);o(this,_Q,"off");i(this,"trace",(...A)=>{});i(this,"debug",(...A)=>{});i(this,"info",(...A)=>{});i(this,"warn",(...A)=>{});i(this,"error",(...A)=>{});i(this,"table",(...A)=>{});i(this,"count",(...A)=>{});l(this,DB,A),l(this,_Q,e),l(this,jt,t||!1),this.setLevel(e),this.setDebug(U(this,jt))}setDebug(A){l(this,jt,A);for(const[e,t]of U(this,Pt))t.setDebug(A);A?(this.table=console.table.bind(console),this.count=console.count.bind(console)):(this.table=()=>{},this.count=()=>{})}setLevel(A){l(this,_Q,A);for(const[t,B]of U(this,Pt))B.setLevel(A);const e=Ro.indexOf(A);for(const[t,B]of Ro.entries())B!=="off"&&(t<=e?this[B]=console[B].bind(console,"%c%s %c%s","font-weight:bold;",B.toUpperCase(),"font-weight:normal;",U(this,DB)):this[B]=()=>{})}createContext(A){const e=U(this,Pt).get(A);if(!e){const t=new lt({context:`${A}`,logLevel:U(this,_Q),debug:U(this,jt)});return U(this,Pt).set(A,t),t}return e}static get(){return U(lt,$Q)||l(lt,$Q,new lt({context:"Vindral",logLevel:"off"})),U(lt,$Q)}};Pt=new WeakMap,DB=new WeakMap,jt=new WeakMap,_Q=new WeakMap,$Q=new WeakMap,o(lt,$Q);let WA=lt;function xA(Q){const A=WA.get().createContext(Q.context);return function(t,B){const F=String(B.name);function n(...s){Q.enter&&A[Q.enter](`Enter '${F}'`,S({},s));try{const a=t.call(this,...s);return a instanceof Promise?a.then(r=>{Q.return&&A[Q.return](`Return '${F}'`,r)}).catch(r=>{Q.error&&A[Q.error](`Error '${F}'`,r)}):Q.return&&A[Q.return](`Return '${F}'`,a),a}catch(a){throw Q.error&&A[Q.error](`Error '${F}'`,a),a}}return n}}function ke(){return typeof Symbol.asyncDispose!="symbol"&&Object.defineProperty(Symbol,"asyncDispose",{value:Symbol.for("asyncDispose")}),Symbol.asyncDispose}function ho(){return typeof Symbol.dispose!="symbol"&&Object.defineProperty(Symbol,"dispose",{value:Symbol.for("dispose")}),Symbol.dispose}class Xd{constructor(A,e){o(this,ZB);i(this,"value");i(this,"unlocker");this.value=A,this.unlocker=e}unlocked(){var A;return(A=this.unlocker)==null?void 0:A.promise}[ho()](){I(this,ZB,no).call(this)}[Symbol.dispose](){I(this,ZB,no).call(this)}}ZB=new WeakSet,no=function(){this.unlocker.resolve(this.value)};class Kd{constructor(A){o(this,qt);o(this,_t,new m);l(this,qt,A),U(this,_t).resolve(A)}unsafeValue(){return U(this,qt)}isLocked(){return U(this,_t).pending}lock(){return d(this,null,function*(){const A=new m;A.promise.then(t=>{l(this,qt,t)}).catch(V);const e=U(this,_t).promise.then(()=>A);return l(this,_t,A),yield e,new Xd(U(this,qt),A)})}}qt=new WeakMap,_t=new WeakMap;class bA{constructor(A){o(this,ee);o(this,de);l(this,ee,A),l(this,de,new m)}isClosed(){var A;return!((A=U(this,de))!=null&&A.pending)}current(){return U(this,ee)}value(){var A;return[U(this,ee),(A=U(this,de))==null?void 0:A.promise]}update(A){var e;if(!((e=U(this,de))!=null&&e.pending))throw new Error("ObservableValue is closed");l(this,ee,A instanceof Function?A(U(this,ee)):A),U(this,de).resolve(U(this,ee)),l(this,de,new m)}close(){var A;(A=U(this,de))==null||A.resolve(U(this,ee)),l(this,de,void 0)}waitFor(A){return d(this,null,function*(){if(A(U(this,ee)))return U(this,ee);for(;;){const[e,t]=this.value();if(!t)throw new Error("ObservableValue was closed while waiting for condition");const B=yield t;if(A(B))return B}})}[Symbol.asyncIterator](){return Ft(this,null,function*(){for(;;){const[A,e]=this.value();if(yield A,!e)return;yield new lA(e)}})}}ee=new WeakMap,de=new WeakMap;const So=(Q,A)=>{const e=S({},Q);return typeof e!="object"||A.forEach(t=>{delete e[t]}),e},Mt=(Q,A=Date.now())=>{const e=Q.length;if(e>0){const t=e-1,B=Q[t];B.end||(B.end=A)}},KQ=(Q,A=Date.now())=>{Mt(Q),Q.push({start:A})},OQ=Q=>Q.reduce((A,e)=>{var t;return A+(((t=e.end)!=null?t:Date.now())-e.start)},0),Jo=(Q,A,e=Date.now())=>Q.reduce((t,B)=>{var s;const F=Math.max(e-A,B.start),n=(s=B.end)!=null?s:e;return Math.max(0,n-F)+t},0),Cn=class Cn{constructor(){i(this,"pendingTimeouts",new Set);i(this,"pendingIntervals",new Set);i(this,"clearTimeout",A=>{this.pendingTimeouts.delete(A)&&window.clearTimeout(A)});i(this,"clearInterval",A=>{this.pendingIntervals.delete(A)&&window.clearInterval(A)});i(this,"setTimeout",(A,e,...t)=>{const B=window.setTimeout(()=>{A(...t),this.clearTimeout(B)},e);return this.pendingTimeouts.add(B),B});i(this,"setInterval",(A,e,...t)=>{const B=window.setInterval(()=>{A(...t)},e);return this.pendingIntervals.add(B),B});i(this,"unload",()=>{this.pendingIntervals.forEach(this.clearInterval),this.pendingTimeouts.forEach(this.clearTimeout)})}};i(Cn,"create",()=>new Cn);let pA=Cn;function Vo(Q){try{return Q()}catch(A){return A}}const uo=Q=>{try{return JSON.parse(Q)}catch(A){return}},ko=()=>{const Q=[...Array(256).keys()].map(e=>e.toString(16).padStart(2,"0")),A=crypto.getRandomValues(new Uint8Array(16));return A[6]=A[6]&15|64,A[8]=A[8]&63|128,[...A.entries()].map(([e,t])=>[4,6,8,10].includes(e)?`-${Q[t]}`:Q[t]).join("")},vt=Q=>d(this,null,function*(){return new Promise(A=>setTimeout(A,Q))}),ps=(e,...t)=>d(this,[e,...t],function*(Q,A=new Error("Timeout")){return new Promise((B,F)=>setTimeout(()=>F(A),Q))}),Od=(Q,A)=>d(this,null,function*(){throw yield Q,new Error(A)});function No(Q){return!(typeof Q.edges[0]=="string"||Q.channels[0]&&!("catalog"in Q.channels[0]))}function mo(Q){return Q.tracks.filter(A=>!!A.codec).filter(A=>Ds(A.codec||"")).map((A,e)=>{const t=A.codec,B=A.bitrate;p(t,"codec is required"),p(B!=null,"bitrate is required");const F=Ds(t);if(p(F,"codec is required"),h(F)==="audio"){const n=A.samplerate||0,s=A.channelConfig==="stereo"?2:1;return{track:A,id:e,codec:F,codecString:t,bitRate:B,channels:s,sampleRate:n,language:A.language}}return h(F)==="text"?{track:A,id:e,bitRate:0,codec:F,kind:"subtitles",codecString:t,label:A.label,language:A.language}:(p(A.width,"width is required"),p(A.height,"width is required"),p(A.framerate,"framerate is required"),{track:A,id:e,codec:F,bitRate:B,codecString:t,width:A.width,height:A.height,frameRate:A.framerate})}).sort((A,e)=>A.bitRate-e.bitRate)}function Ds(Q){if(Q.startsWith("opus"))return"opus";if(Q.startsWith("mp4a"))return"aac";if(Q.startsWith("avc1"))return"h264";if(Q.startsWith("av01"))return"av1";if(Q.startsWith("webvtt"))return"webvtt"}const Lt=Q=>"width"in Q&&typeof Q.width=="number",Ht=Q=>"sampleRate"in Q&&typeof Q.sampleRate=="number",Yt=Q=>{switch(Q.codec){case"opus":return'audio/mp4; codecs="opus"';case"mp3":return"audio/mpeg";case"webvtt":return"text/vtt";case"aac":return Q.codecString?`audio/mp4; codecs="${Q.codecString}"`:"audio/mp4";case"h264":return Q.codecString?`video/mp4; codecs="${Q.codecString}"`:"video/mp4";case"av1":return Q.codecString?`video/mp4; codecs="${Q.codecString}"`:"video/mp4"}},st=()=>Number.MAX_SAFE_INTEGER,uF=()=>({width:Number.MAX_SAFE_INTEGER,height:Number.MAX_SAFE_INTEGER}),Wo=Q=>!(typeof Q!="object"||Q===null||!("type"in Q)),zd=Q=>Q?{Authorization:`Bearer ${Q}`}:void 0,Pd=Q=>typeof Q=="object"&&Q!==null&&"message"in Q;class jd extends Error{constructor({status:e,url:t,body:B}){const F=uo(B),n=Pd(F)?F.message:`Url ${t.toString()}, Status code: ${e}, Body: ${B}`;super(n);i(this,"status");i(this,"body");i(this,"url");this.status=e,this.body=B,this.url=t,Object.setPrototypeOf(this,new.target.prototype)}}const qd=Q=>typeof Q.status=="number",po=(Q,A)=>d(this,null,function*(){const e=yield fetch(Q.toString(),S({mode:"cors"},A));if(!e.ok)throw new jd({status:e.status,url:Q,body:yield e.text()});return e}),Zs=(Q,A)=>d(this,null,function*(){return yield(yield po(Q,S({},A))).json()}),Do=(Q,A)=>d(this,null,function*(){return po(Q,S({method:"POST"},A))});function _d(Q){var A;return!(typeof Q.edges[0]=="string"||Q.channels[0]&&"catalog"in Q.channels[0]&&typeof((A=Q.channels[0])==null?void 0:A.catalog)=="undefined")}const Zo={lbConnect:Q=>Q.channelGroupId?`connect?channelId=${Q.channelId}&channelGroupId=${Q.channelGroupId}`:`connect?channelId=${Q.channelId}`,thumbnails:(Q,A)=>A?Q.channelGroupId?`thumbnail/?channelGroupId=${Q.channelGroupId}&auth.token=${A}&auth.type=jwt`:Q.channelId?`thumbnail/?channelId=${Q.channelId}&auth.token=${A}&auth.type=jwt`:"thumbnail":"thumbnail"};class wo{constructor(A){i(this,"baseUrl");i(this,"tokenFactory");this.baseUrl=new URL("/api/v4/",A.publicEndpoint).toString(),this.tokenFactory=A.tokenFactory}connect(A){return d(this,null,function*(){const{channelId:e,channelGroupId:t}=A,B={channelId:e,channelGroupId:t},F=new URL(Zo.lbConnect(A),this.baseUrl),n=this.getAuthToken(B),s=yield Zs(F,{headers:this.getHeaders(n)});if(_d(s)){const a=s.channels.map(r=>{const E=this.toChannel(r,B),g=mo(r.catalog);return O(S(S({},r),E),{renditions:g})});return O(S({},s),{channels:a})}else{const a=s.channels.map(r=>{const E=this.toChannel(r,B);return S(S({},r),E)});return O(S({},s),{channels:a})}})}getChannel(A){return d(this,null,function*(){const e={channelId:A},t=new URL(`channel/${A}`,this.baseUrl),B=this.getAuthToken(e),F=yield Zs(t,{headers:this.getHeaders(B)});return this.toChannel(F,e,B)})}getChannels(A){return d(this,null,function*(){const e={channelGroupId:A},t=new URL(`channels/${A}`,this.baseUrl),B=this.getAuthToken(e),F=yield Zs(t,{headers:this.getHeaders(B)}),n=Array.isArray(F)?F:F.channels;return this.toChannels(n,e,B)})}getHeaders(A){var t;return(t=zd(A))!=null?t:{}}getAuthToken(A){return this.tokenFactory?this.tokenFactory(A):void 0}toChannels(A,e,t){return A.map(B=>this.toChannel(B,e,t))}toChannel(A,e,t){const{baseUrl:B,sizes:F}=A.thumbnail,n=B||new URL(Zo.thumbnails(e,t),this.baseUrl),s=F.map(a=>new URL(`?channelId=${A.channelId}&width=${a.width}&height=${a.height}${$d(e,t)}`,n).toString());return{channelId:A.channelId,name:A.name,isLive:A.isLive,thumbnailUrls:s}}}const $d=(Q,A)=>A?Q.channelGroupId?`&channelGroupId=${Q.channelGroupId}&auth.token=${A}&auth.type=jwt`:`&auth.token=${A}&auth.type=jwt`:"";class To extends $A{constructor(e){super();i(this,"state","not casting");i(this,"config");i(this,"unloaded",!1);i(this,"updateAuthenticationToken",e=>{this.config&&(this.config.options.authenticationToken=e,this.send({type:"updateAuthToken",token:e}))});i(this,"unload",()=>{var e;this.unloaded=!0,(e=this.getSession())==null||e.removeMessageListener("urn:x-cast:com.vindral.castdata",this.onMessage)});i(this,"init",()=>d(this,null,function*(){return new Promise((e,t)=>{let B=!1;const F=setTimeout(()=>{B=!0,t()},1e4);window.__onGCastApiAvailable=n=>{if(B){B=!1;return}if(clearTimeout(F),!n)return t();setTimeout(()=>{try{this.onGCastApiAvailable(),e()}catch(s){t()}},1e3)},this.castLibrariesAdded()&&window.cast?window.__onGCastApiAvailable(!0):this.verifyCastLibraries()})}));i(this,"start",()=>d(this,null,function*(){var e;yield(e=this.getInstance())==null?void 0:e.requestSession()}));i(this,"stop",()=>{var e;(e=this.getSession())==null||e.endSession(!0)});i(this,"getReceiverName",()=>{var e,t;return((t=(e=this.getSession())==null?void 0:e.getCastDevice())==null?void 0:t.friendlyName)||void 0});i(this,"onGCastApiAvailable",()=>{var F;const e=this.getInstance();if(!e)throw"cast context should exist";const t=e.getSessionState(),B=((F=this.config)==null?void 0:F.receiverApplicationId)||"A5452297";e.setOptions({receiverApplicationId:B,autoJoinPolicy:chrome.cast.AutoJoinPolicy.TAB_AND_ORIGIN_SCOPED,resumeSavedSession:!0}),e.addEventListener(cast.framework.CastContextEventType.SESSION_STATE_CHANGED,this.onSessionStateChanged),t===cast.framework.SessionState.SESSION_STARTED&&setTimeout(()=>{this.state="casting",this.emit("resumed")})});i(this,"send",e=>{var t;(t=this.getSession())==null||t.sendMessage("urn:x-cast:com.vindral.castdata",e)});i(this,"onMessage",(e,t)=>{if(e==="urn:x-cast:com.vindral.castdata")try{const B=JSON.parse(t);switch(B.type){case"metadata":this.emit("metadata",B.metadata);break;case"serverWallclockTime":this.emit("server wallclock time",B.serverWallclockTime);break;default:break}}catch(B){}});i(this,"onSessionStarted",()=>{var e;(e=this.getSession())==null||e.addMessageListener("urn:x-cast:com.vindral.castdata",this.onMessage),this.send({type:"start",config:this.config})});i(this,"onSessionStateChanged",e=>{if(!this.unloaded)switch(e.sessionState){case cast.framework.SessionState.SESSION_START_FAILED:this.state="not casting",this.emit("failed");break;case cast.framework.SessionState.SESSION_ENDED:this.state="not casting",this.emit("disconnected");break;case cast.framework.SessionState.SESSION_ENDING:break;case cast.framework.SessionState.SESSION_RESUMED:this.onSessionStarted(),this.state="casting",this.emit("resumed");break;case cast.framework.SessionState.SESSION_STARTED:this.onSessionStarted(),this.state="casting",this.emit("connected");break;case cast.framework.SessionState.SESSION_STARTING:break}});i(this,"getInstance",()=>{var e;return(e=window.cast)==null?void 0:e.framework.CastContext.getInstance()});i(this,"getSession",()=>{var e;return(e=this.getInstance())==null?void 0:e.getCurrentSession()});i(this,"castLibrariesAdded",()=>!!(document.querySelector("#vindralCastFrameworkLib")&&document.querySelector("#vindralCastSenderLib")));i(this,"verifyCastLibraries",()=>{if(this.castLibrariesAdded())return;const e=document.createElement("script");e.type="text/javascript",e.id="vindralCastFrameworkLib",e.src="//www.gstatic.com/cast/sdk/libs/sender/1.0/cast_framework.js",document.head.appendChild(e);const t=document.createElement("script");t.type="text/javascript",t.id="vindralCastSenderLib",t.src="//www.gstatic.com/cv/js/sender/v1/cast_sender.js",document.head.appendChild(t)});this.config=e}get casting(){return this.state==="casting"}get volume(){var e,t;return(t=(e=this.getSession())==null?void 0:e.getVolume())!=null?t:0}set volume(e){var t;(t=this.getSession())==null||t.setVolume(e)}get language(){var e,t;return(t=(e=this.config)==null?void 0:e.options)==null?void 0:t.language}set language(e){this.config&&(this.config.options.language=e,this.send({type:"setLanguage",language:e}))}get channelId(){var e;return((e=this.config)==null?void 0:e.options.channelId)||""}set channelId(e){this.config&&(this.config.options.channelId=e,this.send({type:"setChannelId",channelId:e}))}}const AE={sizeBasedResolutionCapEnabled:!0,pictureInPictureEnabled:!0,abrEnabled:!0,burstEnabled:!1,mseEnabled:!0,mseOpusEnabled:!1,muted:!1,minBufferTime:1500,maxBufferTime:1500,logLevel:xd.OFF,maxSize:uF(),maxVideoBitRate:st(),maxAudioBitRate:st(),tags:[],media:"audio+video",poster:!0,reconnectHandler:Q=>Q.reconnectRetries<30,iosWakeLockEnabled:!1,telemetryEnabled:!0,iosMediaElementEnabled:!1,pauseSupportEnabled:!0,advanced:{wasmDecodingConstraint:{bitRate:Number.MAX_SAFE_INTEGER,width:1280,height:1280}},videoCodecs:["av1","h264"],webtransportEnabled:!0},yo="connection_failed",fo="connection_failed_will_not_attempt_again",bo="authentication_error",Go="authentication_expired",Mo="channel_not_found",vo="no_incoming_data_error",Lo="connection_inactivity",eE="missing_init_segment",tE="no_track_context",QE="invalid_track_context_state",Ho="disconnected_by_edge",iE="decoder_error",BE="audio_player_error",UE="media_source_error",FE="webgl_context_lost_error",nE="access_forbidden",sE="channel_switch_failed",aE="drm_error";class X extends Error{constructor(e,t,B={}){super(e);i(this,"props");i(this,"extra",{});i(this,"code",()=>this.props.code);i(this,"isFatal",()=>this.props.isFatal);i(this,"source",()=>this.props.source);i(this,"type",()=>{var e;return(e=this.props.type)!=null?e:"external"});i(this,"toStringifiable",()=>{var B;const e=this.source(),t=e instanceof Error?e.stack:this.stack;return O(S({},this.extra),{code:this.props.code,isFatal:this.props.isFatal,type:this.props.type,message:this.message,sourceMessage:(B=this.source())==null?void 0:B.message,stack:t})});this.props=t,this.extra=B,Object.setPrototypeOf(this,new.target.prototype)}}const oE=(Q,A)=>new X("MediaElement Error",{isFatal:Q,code:"media_element_error",source:A},{mediaErrorCode:A.code}),Yo=(Q,A)=>new X("Decoder Error",{isFatal:Q,code:iE,source:A,type:"internal"}),xo=(Q,A)=>new X("Audio Player Error",{isFatal:Q,code:BE,source:A,type:"internal"}),lE=(Q,A)=>new X(`No init segment for rendition id ${Q} for channel ${A}`,{isFatal:!1,code:eE,type:"internal"}),Xo=(Q,A,e,t)=>new X("MediaSource Error",{isFatal:Q,code:UE,source:A,type:"internal"},{type:t,consecutiveErrorsCount:e}),kF=(Q,A)=>new X(`No track context for ${Q}${A?`, rendition id ${A}`:""}`,{isFatal:!1,code:tE,type:"internal"}),rE=(Q,A)=>new X(`Track context is in an invalid state for ${Q}${A?`, rendition id ${A}`:""}`,{isFatal:!1,code:QE,type:"internal"}),dE=()=>new X("Web Audio Context resume timeout",{isFatal:!1,code:"web_audio_context_resume_timeout"}),cB=Q=>new X("Disconnected From Edge Server",{type:"external",source:Q,isFatal:!1,code:Ho}),NF=Q=>new X("Authentication Failed",{isFatal:!0,code:bo,source:Q}),EE=Q=>new X("Authentication Expired",{isFatal:!0,code:Go,source:Q}),gE=(Q,A)=>new X("Connection closed due to inactivity",{isFatal:!1,code:Lo,source:A,type:Q}),Ko=(Q,A)=>new X("Channel not found",{isFatal:!1,code:Mo,source:A,type:Q}),IE=Q=>new X("No Incoming Data",{isFatal:!1,code:vo,source:Q}),cE=Q=>new X("Connection attempt failed",{isFatal:!1,code:yo,source:Q}),Oo=()=>new X("Connection failed - no more reconnect attempts",{isFatal:!0,code:fo}),CE=Q=>new X("WebGL Context Lost",{isFatal:!1,code:FE,source:Q,type:"internal"}),zo=Q=>new X(Q,{isFatal:!0,code:nE}),Po=Q=>new X(`Channel switch to '${Q}' failed`,{isFatal:!1,code:sE}),jo=(Q,A=!1,e)=>new X(Q,{isFatal:A,code:aE,source:e}),qo=(Q,A)=>Q&&typeof Q=="object"&&A in Q,_o=Q=>!(typeof Q!="object"||!qo(Q,"channelId")||typeof Q.channelId!="string"||!qo(Q,"url")||typeof Q.url!="string"||Q.channelId.length===0||Q.url.length===0),RE=Q=>{if(!_o(Q))throw new X("Invalid options",{isFatal:!0,code:"invalid_options"});const A=S({},Q);return Object.keys(A).forEach(e=>{const t=A;typeof t[e]=="undefined"&&delete t[e]}),A},$o={playready:["150","2000","3000"],widevine:["SW_SECURE_CRYPTO","SW_SECURE_DECODE","HW_SECURE_CRYPTO","HW_SECURE_DECODE","HW_SECURE_ALL"],fairplay:[""],clearkey:[""]},ws={initDataTypes:["cenc"],audioCapabilities:[{contentType:'audio/mp4; codecs="mp4a.40.2"'}],videoCapabilities:[{contentType:'video/mp4; codecs="avc1.42c01f"'}]},hE={fairplay:{keySystem:"com.apple.fps",supportedConfig:{initDataTypes:["sinf"],videoCapabilities:[{contentType:'video/mp4; codecs="avc1.42c01f"'}]}},playready:{keySystem:"com.microsoft.playready",supportedConfig:ws},widevine:{keySystem:"com.widevine.alpha",supportedConfig:ws},clearkey:{keySystem:"org.w3.clearkey",supportedConfig:ws}},Al=(Q,A)=>d(this,null,function*(){return navigator.requestMediaKeySystemAccess(Q,[A]).catch(()=>{})}),el=(Q,A,e,t,B,F)=>d(this,null,function*(){let n;for(const s of t){const a=e==null?void 0:e.map(E=>O(S({},E),{robustness:s,contentType:F?`${B==="audioCapabilities"?"audio/mp4":"video/mp4"}; codecs="${F}"`:E.contentType}));if(!(yield Al(Q,{initDataTypes:A,[B]:a})))break;n=a}return n}),SE=(Q,A,e,t)=>d(this,null,function*(){const{keySystem:B,supportedConfig:F}=hE[Q],{initDataTypes:n,videoCapabilities:s,audioCapabilities:a}=F,r=t==null?void 0:t[Q],E=(r==null?void 0:r.videoRobustness)||$o[Q],g=(r==null?void 0:r.audioRobustness)||$o[Q],[c,J]=yield Promise.all([el(B,n,s,E,"videoCapabilities",A),el(B,n,a,g,"audioCapabilities",e)]);return!c&&!J?void 0:yield Al(B,{initDataTypes:n,videoCapabilities:c,audioCapabilities:J})}),JE=(Q,A,e,t)=>d(this,null,function*(){let B;for(const F of Q)if(B=yield SE(F,A,e,t),B)return{keySystem:F,mediaKeySystemAccess:B}});class mF{constructor(A,e,t,B){i(this,"keySystem");i(this,"licenseServerUrl");i(this,"certificate");i(this,"headers",{});i(this,"queryParams",{});o(this,$t);o(this,AQ);l(this,$t,e),this.keySystem=A,this.licenseServerUrl=t,this.certificate=B}get statistics(){return{keySystem:U(this,$t).keySystem,licenseServerUrl:this.licenseServerUrl,mediaKeySystemConfiguration:U(this,$t).getConfiguration()}}getMediaKeys(){return d(this,null,function*(){return U(this,AQ)?U(this,AQ):(l(this,AQ,yield U(this,$t).createMediaKeys()),U(this,AQ))})}requestLicense(A){return d(this,null,function*(){const e=new URL(this.licenseServerUrl);for(const[F,n]of Object.entries(this.queryParams))e.searchParams.append(F,n);const t=yield fetch(e,{method:"POST",body:A,headers:S({"Content-Type":"application/octet-stream"},this.headers)});if(!t.ok)throw new Error(`Failed to fetch license: ${t.statusText}`);return yield t.arrayBuffer()})}}$t=new WeakMap,AQ=new WeakMap;function tl(Q){const A=window.atob(Q.replace(/-/g,"+").replace(/_/g,"/"));let e="";for(let t=0;t<A.length;t++)e+=("0"+A.charCodeAt(t).toString(16)).substr(-2);return e}function VE(Q){let A="";for(let e=0;e<Q.length;e+=2)A+=String.fromCharCode(parseInt(Q.substr(e,2),16));return window.btoa(A).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function uE(Q,A){if(Q.byteLength!==A.byteLength)return!1;const e=new Uint8Array(Q),t=new Uint8Array(A);for(let B=0;B<e.length;B++)if(e[B]!==t[B])return!1;return!0}class kE extends mF{constructor(e,t){super("clearkey",e,"");o(this,wB);l(this,wB,t)}handleLicenseRequest(e){const t=new Uint8Array(e),B=String.fromCharCode(...t),F=JSON.parse(B),n=[];for(let r=0;r<F.kids.length;r++){const E=F.kids[r];if(E){const g=tl(E).toLowerCase(),c=U(this,wB)[g];c&&n.push({kty:"oct",alg:"A128KW",kid:E,k:VE(c)})}}const s=JSON.stringify({keys:n,type:F.type});return new TextEncoder().encode(s)}}wB=new WeakMap;class NE extends mF{constructor(A,e,t){super("fairplay",A,e,t)}}const mE=Q=>{var s,a,r,E;const A=String.fromCharCode(...new Uint16Array(Q)),e=new window.DOMParser().parseFromString(A,"application/xml"),t=e.getElementsByTagName("HttpHeaders")[0];let B={};if(t){const g=t.getElementsByTagName("name"),c=t.getElementsByTagName("value");for(let J=0;J<g.length;J++){const u=(s=g[J])==null?void 0:s.childNodes[0],D=(a=c[J])==null?void 0:a.childNodes[0];u!=null&&u.nodeValue&&D&&D.nodeValue&&(B[u.nodeValue]=D.nodeValue)}}const F=e.getElementsByTagName("Challenge")[0];let n;return F&&((r=F.childNodes[0])!=null&&r.nodeValue)&&(n=window.atob((E=F.childNodes[0])==null?void 0:E.nodeValue)),e.querySelector("parsererror")&&(B={"Content-Type":"text/xml; charset=utf-8",SOAPAction:'"http://schemas.microsoft.com/DRM/2007/03/protocols/AcquireLicense"'},n=Q),{headers:B,message:n}};class WE extends mF{constructor(A,e){super("playready",A,e)}requestLicense(A){return d(this,null,function*(){p(this.licenseServerUrl,"No license server URL set");const e=new URL(this.licenseServerUrl);for(const[F,n]of Object.entries(this.queryParams))e.searchParams.append(F,n);const t=mE(A),B=yield fetch(e,{method:"POST",headers:S(S({},t.headers),this.headers),body:t.message});if(!B.ok)throw new Error(`Failed to fetch license: ${B.statusText}`);return yield B.arrayBuffer()})}}class pE extends mF{constructor(A,e){super("widevine",A,e)}}const DE=5e3;class Ql{constructor(A,e,t={}){o(this,CA);o(this,eA);o(this,eQ);o(this,Oe);o(this,Ee,new m);o(this,me);o(this,NA);o(this,rt,new Map);o(this,dt);o(this,Rn,us());o(this,Ai);o(this,TB,A=>{if(U(this,eA).info("Received DRM data",{drmData:A}),window.clearTimeout(U(this,Ai)),U(this,NA)){const e=I(this,CA,Pr).call(this,A)[U(this,NA).keySystem];e&&(U(this,NA).licenseServerUrl=e)}U(this,Ee).resolve(A)});o(this,yB,A=>{U(this,eA).info("Encrypted event received",{event:A}),I(this,CA,Yr).call(this,A)});o(this,hn,A=>{var F,n;U(this,eA).debug("Session message received",{event:A});const e=A.target,t=A.message;if(!U(this,rt).get(e)){U(this,eA).error("No active session found for event",{event:A});return}U(this,eA).debug("Requesting license for session",{sessionId:e.sessionId,licenseServerUrl:(F=U(this,NA))==null?void 0:F.licenseServerUrl}),(n=U(this,NA))==null||n.requestLicense(t).then(s=>{U(this,eA).debug("License received for session",{sessionId:e.sessionId}),e.update(s).catch(a=>{I(this,CA,cF).call(this,{message:"Failed to update session with license",isFatal:!1,error:a})})}).catch(s=>{I(this,CA,cF).call(this,{message:"Failed to request license",isFatal:!1,error:s})})});o(this,Sn,A=>{const e=A.target;U(this,eA).debug("Key status changed for session",{sessionId:e.sessionId}),e.keyStatuses.forEach((t,B)=>{const F=tl(window.btoa(String.fromCharCode(...new Uint8Array(B))));U(this,eA).debug("Key status",{base64kid:F,status:t})})});o(this,Jn,A=>d(this,null,function*(){const e=I(this,CA,zr).call(this,A);U(this,eA).debug("Prioritized key system list",{keySystemList:e});const t=yield JE(e,A.videoCodec,A.audioCodec,{widevine:U(this,me).widevine,playready:U(this,me).playready});if(!t)return U(this,eA).warn("No supported key system found"),null;U(this,eA).debug("Supported key system found",t.mediaKeySystemAccess.getConfiguration());const{keySystem:B,mediaKeySystemAccess:F}=t;let n=null;return B==="clearkey"?(p(A.clearkeys,"No clearkeys found"),n=new kE(F,A.clearkeys)):B==="playready"?(p(A.playreadyLicenseUrl,"No playreadyLicenseUrl found"),n=new WE(F,A.playreadyLicenseUrl)):B==="widevine"?(p(A.widevineLicenseUrl,"No widevineLicenseUrl found"),n=new pE(F,A.widevineLicenseUrl)):B==="fairplay"&&(p(A.fairplayLicenseUrl,"No fairplayLicenseUrl found"),p(A.fairplayCertificate,"No fairplayCertificate found"),n=new NE(F,A.fairplayLicenseUrl,A.fairplayCertificate)),n&&(n.headers=U(this,me).headers||{},n.queryParams=U(this,me).queryParams||{}),n}));l(this,eQ,A),l(this,eA,e),l(this,me,t),U(this,eQ).on("received drm data",U(this,TB))}static isSupported(){return!!navigator.requestMediaKeySystemAccess}attach(A){l(this,Oe,A),U(this,eA).info("Media element attached"),U(this,Oe).addEventListener("encrypted",U(this,yB))}getStatistics(){var A,e;return!U(this,Ee).resolved&&!((A=U(this,NA))!=null&&A.statistics)?null:S(S({},U(this,Ee).resolved),(e=U(this,NA))==null?void 0:e.statistics)}unload(){var A;U(this,eA).info("Unloading EncryptedMediaExtensions"),U(this,eQ).off("received drm data",U(this,TB)),(A=U(this,Oe))==null||A.removeEventListener("encrypted",U(this,yB)),U(this,rt).forEach((e,t)=>{t.close()}),U(this,rt).clear(),l(this,dt,void 0),l(this,NA,void 0)}set headers(A){U(this,me).headers=A,U(this,NA)&&(U(this,NA).headers=A)}set queryParams(A){U(this,me).queryParams=A,U(this,NA)&&(U(this,NA).queryParams=A)}onChannelSwitch(){if(!U(this,Ee).resolved){U(this,eA).debug("DRM is not used, skipping channel switch handling");return}yd()&&U(this,Rn).platform.safariVersion<18&&I(this,CA,cF).call(this,{message:"DRM channel switch not supported on Safari < 18",isFatal:!0}),window.clearTimeout(U(this,Ai));const A=U(this,Ee).resolved;l(this,Ee,new m),l(this,Ai,window.setTimeout(()=>{U(this,Ee).resolve(A)},DE))}}eA=new WeakMap,eQ=new WeakMap,Oe=new WeakMap,Ee=new WeakMap,me=new WeakMap,NA=new WeakMap,rt=new WeakMap,dt=new WeakMap,Rn=new WeakMap,Ai=new WeakMap,TB=new WeakMap,yB=new WeakMap,CA=new WeakSet,Yr=function(A){return d(this,null,function*(){try{yield I(this,CA,xr).call(this),U(this,eA).debug("Media keys initialization completed"),yield I(this,CA,Xr).call(this,A.initData,A.initDataType)}catch(e){I(this,CA,cF).call(this,{message:"Failed to handle encrypted event",isFatal:!0,error:e})}})},xr=function(){return d(this,null,function*(){var e;U(this,eA).debug("Initializing media keys");const A=yield U(this,Ee).promise;if((e=U(this,Oe))!=null&&e.mediaKeys){U(this,eA).debug("Media keys already set on media element");return}if(U(this,dt)){U(this,eA).debug("Media keys initialization already in progress, waiting for completion"),yield U(this,dt);return}l(this,dt,d(this,null,function*(){const t=yield U(this,Jn).call(this,A);U(this,eA).debug("CDM obtained",{cdm:t}),p(U(this,Oe),"No media element found"),p(t,"No CDM found");const B=yield t.getMediaKeys();t.certificate&&(yield I(this,CA,Or).call(this,B,t.certificate)),U(this,eA).debug("Setting media keys on media element"),yield U(this,Oe).setMediaKeys(B),l(this,NA,t)})),yield U(this,dt)})},Xr=function(A,e){return d(this,null,function*(){p(U(this,NA),"No CDM manager found");const t=yield U(this,NA).getMediaKeys();if(!A||!I(this,CA,Kr).call(this,A)){U(this,eA).debug("Duplicate initData, no need to create new session",{initData:A});return}const B=t.createSession();U(this,eA).debug("Creating new session",{session:B}),B.addEventListener("keystatuseschange",U(this,Sn)),B.closed.then(F=>{U(this,eA).info("Session is closed",{reason:F})}),B.addEventListener("message",U(this,hn)),U(this,rt).set(B,A),U(this,eA).debug("Generating request for session",{session:B,initDataType:e,initData:A}),yield B.generateRequest(e,A)})},Kr=function(A){for(const[e,t]of U(this,rt))if(uE(A,t))return!1;return!0},hn=new WeakMap,Sn=new WeakMap,Or=function(A,e){return d(this,null,function*(){try{U(this,eA).debug("Setting server certificate",{certificate:e}),(yield A.setServerCertificate(e))||U(this,eA).warn("Server certificates are not supported by the CDM.")}catch(t){U(this,eA).error("Failed to set server certificate",{error:t})}})},cF=function(A){const{message:e,isFatal:t,error:B}=A;U(this,eA).error(e,{error:B}),U(this,eQ).emit("error",jo(e,t,B))},Jn=new WeakMap,zr=function(A){const e=[];return A.clearkeys&&e.push("clearkey"),A.playreadyLicenseUrl&&e.push("playready"),A.widevineLicenseUrl&&e.push("widevine"),A.fairplayLicenseUrl&&A.fairplayCertificate&&e.push("fairplay"),e},Pr=function(A){return{fairplay:A.fairplayLicenseUrl,playready:A.playreadyLicenseUrl,widevine:A.widevineLicenseUrl,clearkey:void 0}};const ZE=7,wE=8,TE=Q=>{const A=Q.getUint32(0,!1),e=Q.getUint8(0)<<16|Q.getUint16(1,!1);let t=0;return e===1?t+=3:A===1&&(t+=4),t},yE=Q=>TE(new DataView(Q,0))!==0,il=(Q,A=0)=>{for(let e=A;e<Q.byteLength-4;e++){const t=Q.getUint32(e)===1,B=(Q.getUint8(e)<<16|Q.getUint16(e+1))===1;if(t||B)return{position:e,nalPrefixSize:t?4:3}}},fE=Q=>Q&31,bE=(Q,A)=>{const e=new DataView(Q,0);let t=il(e);for(;t;){const{position:B,nalPrefixSize:F}=t,n=il(e,B+4),s=n?n.position-B-F:void 0;if(!A(new DataView(Q,B+F,s),F))return;t=n}},Bl=Q=>{const A=[],e=[];if(!yE(Q)){const t=new DataView(Q,0),B=t.getUint8(5)&31;let F=6;for(let s=0;s<B;s++){const a=t.getUint16(F);A.push(Q.slice(F+2,F+2+a)),F+=a+2}const n=t.getUint8(F);F+=1;for(let s=0;s<n;s++){const a=t.getUint16(F);e.push(Q.slice(F+2,F+2+a)),F+=a+2}return{sequenceParameterSets:A,pictureParameterSets:e}}return bE(Q,t=>{const B=t.byteOffset+t.byteLength;switch(fE(t.getUint8(0))){case wE:e.push(t.buffer.slice(t.byteOffset,B));break;case ZE:A.push(t.buffer.slice(t.byteOffset,B));break}return!0}),{sequenceParameterSets:A,pictureParameterSets:e}},GE=Q=>{var u;const A=new DataView(Q),e=A.getUint8(1),t=A.getUint8(2),B=A.getUint8(3),F=new _(Q,4*8);F.readUnsignedExpGolomb();let n=1;switch(e){case 100:case 110:case 122:case 244:case 44:case 83:case 86:case 118:case 128:case 138:case 144:{if(n=F.readUnsignedExpGolomb(),n===3&&F.readBits(1),F.readUnsignedExpGolomb()+8,F.readUnsignedExpGolomb()+8,F.readBit(),F.readBit()){for(let T=0;T<(n!=3?8:12);T++)if(F.readBit()){const Z=T<6?16:64;let M=0,H=8,Y=8;for(let P=0;P<Z;P++)Y!=0&&(M=F.readSignedExpGolomb(),Y=(H+M+256)%256),H=Y==0?H:Y}}break}}F.readUnsignedExpGolomb();const s=F.readUnsignedExpGolomb();if(s==0)F.readUnsignedExpGolomb();else if(s==1)throw new Error("Unhandled case");F.readUnsignedExpGolomb(),F.readBit();const a=F.readUnsignedExpGolomb(),r=F.readUnsignedExpGolomb(),E=F.readBit();E===0&&F.readBit(),F.readBit();let g=a+1,c=r+1;if(c*=2-E,c*=16,g*=16,F.readBit()){const D=n==1?1:0,L=1<<(n==1||n==2?1:0),Z=2-E<<D,M=F.readUnsignedExpGolomb()*L,H=F.readUnsignedExpGolomb()*L,Y=F.readUnsignedExpGolomb()*Z,P=F.readUnsignedExpGolomb()*Z;g-=M+H,c-=Y+P}let J={numerator:1,denumerator:1};return F.readBit()&&F.readBit()&&(J=(u=ME[F.readBits(8)])!=null?u:{numerator:0,denumerator:0}),{width:g,height:c,pixelAspectRatio:J,profileIdc:e,constraintFlags:t,levelIdc:B}},ME=[{numerator:0,denumerator:0},{numerator:1,denumerator:1},{numerator:12,denumerator:11},{numerator:10,denumerator:11},{numerator:16,denumerator:11},{numerator:40,denumerator:33},{numerator:24,denumerator:11},{numerator:20,denumerator:11},{numerator:32,denumerator:11},{numerator:80,denumerator:33},{numerator:18,denumerator:11},{numerator:15,denumerator:11},{numerator:64,denumerator:33},{numerator:160,denumerator:99},{numerator:4,denumerator:3},{numerator:3,denumerator:2},{numerator:2,denumerator:1}],vE=184549376;function LE(Q){const A=new YQ(Q),e=HE(A);e.flags&vE&&YE(A);const t=xE(A);if(String.fromCharCode(...t.frameId)==="TXXX"){const F=new YQ(A.readBytes(t.size));return{header:e,txx:XE(F)}}}function HE(Q){const A=Q.readBytes(3),e=Q.readUint8(),t=Q.readUint8(),B=Q.readUint8(),F=Q.readUint32();return{id:A,majorVersion:e,minorVersion:t,flags:B,size:F}}function YE(Q){const A=Q.readUint32();return Q.readBytes(A-4),{}}function xE(Q){const A=Q.readBytes(4),e=Q.readUint32(),t=Q.readUint16();return{frameId:A,size:e,flags:t}}function XE(Q){const A=Q.readUint8(),e=Q.readUtf8String(),t=Q.readUtf8String();return{encoding:A,description:e,value:t}}function Ul(Q){let A=Q.readUint32();const e=[Q.readUint8(),Q.readUint8(),Q.readUint8(),Q.readUint8()],t=String.fromCharCode.apply(null,e);return A===1&&(A=Q.readUint64()-8),{size:A-8,type:t}}function KE(Q,A){const e=Ul(A),t=new YQ(A.readBytes(e.size));if(e.type!==Q.type)throw new Error(`invalid error type: ${e.type}, expected ${Q.type}`);const B=Q.decodeData(t);return t.readRemaining(),B}function Ye(Q){const A=Q.readUint8(),e=Q.readUint24();return{version:A,flags:e}}const ei=class ei{constructor({timescale:A,presentationTime:e,presentationTimeDelta:t,schemeIdUri:B,value:F,eventDuration:n,id:s,data:a}){i(this,"type",ei.type);i(this,"timescale");i(this,"presentationTime");i(this,"presentationTimeDelta");i(this,"schemeIdUri");i(this,"value");i(this,"eventDuration");i(this,"id");i(this,"data");this.timescale=A,this.presentationTime=e,this.presentationTimeDelta=t,this.schemeIdUri=B,this.value=F,this.eventDuration=n,this.id=s,this.data=a}static decodeData(A){const{version:e}=Ye(A);switch(e){case 1:{const t=A.readUint32(),B=A.readUint64(),F=A.readUint32(),n=A.readUint32(),s=A.readUtf8String(),a=A.readUtf8String(),r=A.remaining(),E=A.readBytes(r);return new ei({timescale:t,presentationTime:B,eventDuration:F,id:n,schemeIdUri:s,value:a,data:E})}case 0:{const t=A.readUtf8String(),B=A.readUtf8String(),F=A.readUint32(),n=A.readUint32(),s=A.readUint32(),a=A.readUint32(),r=A.remaining(),E=A.readBytes(r);return new ei({timescale:F,presentationTimeDelta:n,schemeIdUri:t,value:B,eventDuration:s,id:a,data:E})}default:throw new Error(`unsupported version ${e}`)}}};i(ei,"type","emsg");let WF=ei;const fB=class fB{constructor(A){i(this,"type",fB.type);i(this,"data");this.data=A}static decodeData(A){const e=A.readRemaining();return new fB(e)}};i(fB,"type","mdat");let pF=fB;const bB=class bB{constructor(A,e,t){i(this,"type",bB.type);i(this,"extra");i(this,"byteOffset");i(this,"baseMediaDecodeTime");this.extra=A,this.byteOffset=e,this.baseMediaDecodeTime=t}static decodeData(A){const e=Ye(A),t=A.byteOffset();let B=0;return e.version===1?B=A.readUint64():B=A.readUint32(),new bB(e,t,B)}};i(bB,"type","tfdt");let DF=bB;const dA=class dA{constructor(A,e,t){i(this,"type",dA.type);i(this,"dataOffset");i(this,"firstSampleFlags");i(this,"samplesCount");i(this,"sampleDurations",[]);i(this,"sampleSizes",[]);i(this,"sampleFlags",[]);i(this,"sampleCts",[]);this.dataOffset=e,this.firstSampleFlags=t,this.samplesCount=A}is_sync_sample(A){const e=dA.FLAG_SAMPLE_FLAG_IS_NON_SYNC|dA.FLAG_SAMPLE_DEPENDS_YES,t=this.sampleFlags[A];if(typeof t!="undefined")return(t&e)===0;if(A===0&&this.firstSampleFlags)return(this.firstSampleFlags&e)===0}static decodeData(A){const{flags:e}=Ye(A),t=A.readUint32();let B,F;e&dA.TRUN_DATA_OFFSET&&(B=A.readUint32()),e&dA.TRUN_FIRST_SAMPLE_FLAGS&&(F=A.readUint32());const n=new dA(t,B,F);for(let s=0;s<t;s++)e&dA.SAMPLE_DURATION&&n.sampleDurations.push(A.readUint32()),e&dA.SAMPLE_SIZE&&n.sampleSizes.push(A.readUint32()),e&dA.SAMPLE_FLAGS&&n.sampleFlags.push(A.readUint32()),e&dA.SAMPLE_CTS&&n.sampleCts.push(A.readUint32());return n}};i(dA,"TRUN_DATA_OFFSET",1),i(dA,"TRUN_FIRST_SAMPLE_FLAGS",4),i(dA,"SAMPLE_DURATION",256),i(dA,"SAMPLE_SIZE",512),i(dA,"SAMPLE_FLAGS",1024),i(dA,"SAMPLE_CTS",2048),i(dA,"FLAG_SAMPLE_FLAG_IS_NON_SYNC",65536),i(dA,"FLAG_SAMPLE_DEPENDS_NO",33554432),i(dA,"FLAG_SAMPLE_DEPENDS_YES",16777216),i(dA,"type","trun");let CB=dA;const OE=1,zE=2,PE=8,jE=16,qE=32,GB=class GB{constructor(A,e,t,B){i(this,"type",GB.type);i(this,"extra");i(this,"defaultSampleDuration");i(this,"defaultSampleSize");i(this,"defaultSampleFlags");this.extra=A,this.defaultSampleDuration=e,this.defaultSampleSize=t,this.defaultSampleFlags=B}static decodeData(A){const e=Ye(A);let t,B,F;return A.readUint32(),(e.flags&OE)>0&&A.readUint64(),(e.flags&zE)>0&&A.readUint32(),(e.flags&PE)>0&&(t=A.readUint32()),(e.flags&jE)>0&&(B=A.readUint32()),(e.flags&qE)>0&&(F=A.readUint32()),new GB(e,t,B,F)}};i(GB,"type","tfhd");let ZF=GB;const MB=class MB{constructor(A,e,t){i(this,"type",MB.type);i(this,"tfhd");i(this,"tfdt");i(this,"trun");this.tfhd=A,this.tfdt=e,this.trun=t}static decodeData(A){let e,t,B;for(;A.remaining()>0;){const F=oe(A);F instanceof ZF&&(e=F),F instanceof DF&&(t=F),F instanceof CB&&(B=F)}return new MB(e,t,B)}};i(MB,"type","traf");let wF=MB;const vB=class vB{constructor(A){i(this,"type",vB.type);i(this,"traf");this.traf=A}static decodeData(A){let e;for(;A.remaining()>0;){const t=oe(A);t instanceof wF&&(e=t)}if(!e)throw new Error("No traf found");return new vB(e)}};i(vB,"type","moof");let TF=vB;const LB=class LB{constructor(){i(this,"type",LB.type)}static decodeData(A){return new LB}};i(LB,"type","mvhd");let yF=LB;const HB=class HB{constructor(A){i(this,"type",HB.type);i(this,"fourCC");this.fourCC=A}mediaType(){switch(this.fourCC){case"vide":return"video";case"soun":return"audio";case"sbtl":return"text";default:throw new Error("Unknown media type")}}static decodeData(A){Ye(A),A.readUint32();const e=String.fromCharCode(...A.readBytes(4));return new HB(e)}};i(HB,"type","hdlr");let fF=HB;const ti=class ti{constructor(A,e,t,B){i(this,"type",ti.type);i(this,"creationTime");i(this,"modificationTime");i(this,"timescale");i(this,"duration");this.creationTime=A,this.modificationTime=e,this.timescale=t,this.duration=B}static decodeData(A){const{version:e}=Ye(A);if(e===1){const s=A.readUint64(),a=A.readUint64(),r=A.readUint32(),E=A.readUint64();return new ti(s,a,r,E)}const t=A.readUint32(),B=A.readUint32(),F=A.readUint32(),n=A.readUint32();return new ti(t,B,F,n)}};i(ti,"type","mdhd");let bF=ti;const YB=class YB{constructor(A,e,t,B){i(this,"type",YB.type);i(this,"av01");i(this,"avc1");i(this,"opus");i(this,"codec");this.avc1=A,this.av01=e,this.opus=t,this.codec=B}mediaType(){return this.avc1||this.av01?"video":"audio"}width(){var A;return(A=this.avc1)==null?void 0:A.width}height(){var A;return(A=this.avc1)==null?void 0:A.height}static decodeData(A){Ye(A);const e=A.readUint32();let t,B,F,n;for(let s=0;s<e;s++)for(;A.remaining()>0;){const a=oe(A);switch(a.type){case"avc1":t="h264",B=a;break;case"av01":t="av1",n=a;break;case"mp4a":t="aac";break;case"Opus":t="opus",F=a;break}}return new YB(B,n,F,t)}};i(YB,"type","stsd");let GF=YB;const xB=class xB{constructor(A){i(this,"type",xB.type);i(this,"stsd");this.stsd=A}static decodeData(A){let e;for(;A.remaining()>0;){const t=oe(A);t instanceof GF&&(e=t)}if(!e)throw new Error("No stsd found");return new xB(e)}};i(xB,"type","stbl");let MF=xB;const XB=class XB{constructor(A){i(this,"type",XB.type);i(this,"stbl");this.stbl=A}static decodeData(A){let e;for(;A.remaining()>0;){const t=oe(A);t instanceof MF&&(e=t)}if(!e)throw new Error("No stbl found");return new XB(e)}};i(XB,"type","minf");let vF=XB;const KB=class KB{constructor(A,e,t){i(this,"type",KB.type);i(this,"hdlr");i(this,"minf");i(this,"mdhd");this.hdlr=A,this.minf=e,this.mdhd=t}static decodeData(A){let e,t,B;for(;A.remaining()>0;){const F=oe(A);F instanceof fF&&(e=F),F instanceof vF&&(t=F),F instanceof bF&&(B=F)}if(!e)throw new Error("No hdlr found");if(!t)throw new Error("No minf found");if(!B)throw new Error("No mdhd found");return new KB(e,t,B)}};i(KB,"type","mdia");let LF=KB;const OB=class OB{constructor(A,e,t,B,F,n,s,a){i(this,"type",OB.type);i(this,"modificationTime");i(this,"creationTime");i(this,"trackId");i(this,"duration");i(this,"alternateGroup");i(this,"volume");i(this,"width");i(this,"height");this.modificationTime=A,this.creationTime=e,this.trackId=t,this.duration=B,this.alternateGroup=F,this.volume=n,this.width=s,this.height=a}static decodeData(A){const e=Ye(A);let t=0,B=0;e.version===1?(t=A.readUint64(),B=A.readUint64()):(t=A.readUint32(),B=A.readUint32());const F=A.readUint32();A.readUint32();const n=A.readUint32();A.readUint32(),A.readUint32(),A.readUint16();const s=A.readUint16(),a=A.readUint16();A.readUint16(),new Array(9).fill(0).map(()=>A.readUint32());const r=A.readUint16();A.readUint16();const E=A.readUint16();return A.readUint16(),new OB(t,B,F,n,s,a,r,E)}};i(OB,"type","tkhd");let HF=OB;const zB=class zB{constructor(A,e){i(this,"type",zB.type);i(this,"tkhd");i(this,"mdia");this.tkhd=A,this.mdia=e}static decodeData(A){let e,t;for(;A.remaining()>0;){const B=oe(A);B instanceof HF&&(e=B),B instanceof LF&&(t=B)}if(!e)throw new Error("No tkhd found");if(!t)throw new Error("No mdia found");return new zB(e,t)}};i(zB,"type","trak");let YF=zB;const PB=class PB{constructor(A,e){i(this,"type",PB.type);i(this,"mvhd");i(this,"traks");this.mvhd=A,this.traks=e}static decodeData(A){let e;const t=[];for(;A.remaining()>0;){const B=oe(A);B instanceof YF&&t.push(B),B instanceof yF&&(e=B)}if(!e)throw new Error("No mvhd found");return new PB(e,t)}};i(PB,"type","moov");let xF=PB;const jB=class jB{constructor(A,e,t,B,F,n,s,a){i(this,"type",jB.type);i(this,"configurationVersion");i(this,"avcProfileIndication");i(this,"profileCompatibility");i(this,"avcLevelIndication");i(this,"lengthSizeMinusOne");i(this,"sequenceParameterSets");i(this,"pictureParameterSets");i(this,"bytes");this.configurationVersion=A,this.avcProfileIndication=e,this.profileCompatibility=t,this.avcLevelIndication=B,this.lengthSizeMinusOne=F,this.sequenceParameterSets=n,this.pictureParameterSets=s,this.bytes=a}static decodeData(A){const e=A.buffer(),t=A.readUint8(),B=A.readUint8(),F=A.readUint8(),n=A.readUint8(),s=A.readUint8()&3,a=A.readUint8()&31,r=[];for(let c=0;c<a;c++){const J=A.readBytes(A.readUint16());r.push(J)}const E=A.readUint8(),g=[];for(let c=0;c<E;c++){const J=A.readBytes(A.readUint16());g.push(J)}return new jB(t,B,F,n,s,r,g,e)}};i(jB,"type","avcC");let Ts=jB;const qB=class qB{constructor(A,e,t,B,F){i(this,"type",qB.type);i(this,"avcC");i(this,"width");i(this,"height");i(this,"horizontalResolution");i(this,"verticalResolution");this.avcC=A,this.width=e,this.height=t,this.horizontalResolution=B,this.verticalResolution=F}static decodeData(A){A.readUint32(),A.readUint16(),A.readUint16(),A.readUint32(),A.readUint64(),A.readUint32();const e=A.readUint16(),t=A.readUint16(),B=A.readUint32(),F=A.readUint32();A.readUint32(),A.readUint16(),A.readBytes(32),A.readUint16(),A.readUint16();let n;for(;A.remaining()>0;){const s=oe(A);switch(s.type){case"avcC":n=s;break}}if(!n)throw new Error("no avcC");return new qB(n,e,t,B,F)}};i(qB,"type","avc1");let ys=qB;const _B=class _B{constructor(){i(this,"type",_B.type)}static decodeData(A){return new _B}};i(_B,"type","dOps");let fs=_B;const $B=class $B{constructor(A,e,t){i(this,"type",$B.type);i(this,"dops");i(this,"channelCount");i(this,"sampleRate");this.dops=A,this.channelCount=e,this.sampleRate=t}static decodeData(A){A.readUint32(),A.readUint16(),A.readUint16();const e=A.readUint16();A.readUint16(),A.readUint32();const t=A.readUint16();A.readUint16(),A.readUint32();const B=A.readUint16();A.readUint16(),e===1&&(A.readUint64(),A.readUint64());const F=KE(fs,A);return new $B(F,t,B)}};i($B,"type","Opus");let bs=$B;const Qi=class Qi{constructor(A,e){i(this,"type",Qi.type);i(this,"ntpTimestamp");i(this,"mediaTime");this.ntpTimestamp=A,this.mediaTime=e}date(){const[A,e]=this.ntpTimestamp,t=A*1e3+e/Bo(2,32)*1e3,B=new Date(Date.UTC(1900,0,1,0,0,0));return new Date(B.getTime()+t)}static decodeData(A){const{version:e}=Ye(A);A.readUint32();const t=A.readUint32(),B=A.readUint32();if(e===1){const n=A.readUint64();return new Qi([t,B],n)}const F=A.readUint32();return new Qi([t,B],F)}};i(Qi,"type","prft");let XF=Qi;class _E{constructor(A,e){o(this,AU);o(this,eU);l(this,AU,A),l(this,eU,e.readBytes(A.size))}data(){return U(this,eU)}get type(){return U(this,AU).type}}AU=new WeakMap,eU=new WeakMap;const $E={moov:xF,trak:YF,tkhd:HF,mvhd:yF,moof:TF,traf:wF,tfhd:ZF,tfdt:DF,trun:CB,mdat:pF,mdia:LF,hdlr:fF,minf:vF,stbl:MF,mdhd:bF,stsd:GF,prft:XF,avc1:ys,avcC:Ts,Opus:bs,emsg:WF};function oe(Q){const A=Ul(Q),e=$E[A.type],t=new YQ(Q.readBytes(A.size));if(!e){const F=new _E(A,t);return t.readRemaining(),F}const B=e.decodeData(t);return t.readRemaining(),B}function Ag(Q){if(Q.byteLength<8)throw new Error("Buffer too small");const A=new YQ(Q),e=new Map;for(;A.remaining()>0;){const F=oe(A);e.set(F.type,F)}const t=e.get("ftyp"),B=e.get("moov");if(!t)throw new Error("ftyp atom not found");if(!B||!(B instanceof xF))throw new Error("moov atom not found");return{ftyp:t,moov:B}}function eg(Q){if(Q.byteLength<8)throw new Error("Buffer too small");const A=new YQ(Q),e=new Map,t=[];for(;A.remaining()>0;){const s=oe(A);s instanceof WF&&t.push(s),e.set(s.type,s)}const B=e.get("moof"),F=e.get("mdat"),n=e.get("prft");if(!B||!(B instanceof TF))throw new Error("moof atom not found");if(!F||!(F instanceof pF))throw new Error("mdat atom not found");if(n&&!(n instanceof XF))throw new Error("invalid prft found");return{moof:B,mdat:F,prft:n,emsgs:t}}class tg{constructor(A){o(this,tU);o(this,QU);l(this,tU,A),l(this,QU,Ag(A))}rawBytes(){return U(this,tU)}init(){return U(this,QU)}}tU=new WeakMap,QU=new WeakMap;const Xa=class Xa{constructor(A,e){o(this,MA);o(this,XA);o(this,BA);l(this,MA,e),l(this,XA,A),l(this,BA,eg(e))}clone(){return new Xa(U(this,XA),new Uint8Array(U(this,MA).buffer.slice(U(this,MA).byteOffset,U(this,MA).byteOffset+U(this,MA).byteLength)))}updateBaseMediaDecodeTime(A){const e=new DataView(U(this,MA).buffer,U(this,MA).byteOffset,U(this,MA).byteLength);if(U(this,BA).moof.traf.tfdt)if(U(this,BA).moof.traf.tfdt.baseMediaDecodeTime=A,U(this,BA).moof.traf.tfdt.extra.version===1){const t=Math.floor(A/4294967296),B=(A&4294967295)>>>0;e.setUint32(U(this,BA).moof.traf.tfdt.byteOffset-U(this,MA).byteOffset,t),e.setUint32(U(this,BA).moof.traf.tfdt.byteOffset-U(this,MA).byteOffset+4,B)}else e.setUint32(U(this,BA).moof.traf.tfdt.byteOffset-U(this,MA).byteOffset,A)}producerReferenceTime(){if(U(this,BA).prft)return U(this,BA).prft.date()}duration(){const A=U(this,BA).moof.traf.trun,e=U(this,BA).moof.traf.tfhd;if((A==null?void 0:A.sampleDurations.length)===0){const t=(A==null?void 0:A.samplesCount)||1;if(e!=null&&e.defaultSampleDuration)return(e==null?void 0:e.defaultSampleDuration)*t}return(A==null?void 0:A.sampleDurations.reduce((t,B)=>t+B,0))||0}baseMediaDecodeTime(){var e;const A=(e=U(this,BA).moof.traf.tfdt)==null?void 0:e.baseMediaDecodeTime;if(!A)throw new Error("no baseMediaDecodeTime");return A}startsWithKeyframe(){var t;const A=U(this,BA).moof.traf.trun,e=(A==null?void 0:A.firstSampleFlags)||(A==null?void 0:A.sampleFlags[0])||((t=U(this,BA).moof.traf.tfhd)==null?void 0:t.defaultSampleFlags);return e?(e&CB.FLAG_SAMPLE_DEPENDS_NO)!==0:!1}compositionTimeOffset(A){var e;return(e=U(this,BA).moof.traf.trun)==null?void 0:e.sampleCts[A]}timescale(){const A=U(this,XA).init().moov.traks[0];if(!A)throw new Error("no tracks");return A.mdia.mdhd.timescale}mediaType(){var e;const A=(e=U(this,XA).init().moov.traks[0])==null?void 0:e.mdia.hdlr.mediaType();if(!A)throw new Error("no media type");return A}header(){return U(this,XA)}fragment(){return U(this,BA)}samplesCount(){var A;return((A=U(this,BA).moof.traf.trun)==null?void 0:A.samplesCount)||0}sample(A){var J,u,D,T,L,Z,M,H,Y,P,VA,FA,uA,Fe,R;const e=(J=U(this,XA).init().moov.traks[0])==null?void 0:J.mdia.minf.stbl.stsd.codec,t=((u=U(this,BA).moof.traf.trun)==null?void 0:u.samplesCount)||0,B=(D=U(this,BA).moof.traf.tfdt)==null?void 0:D.baseMediaDecodeTime;if(A>=t||typeof B=="undefined"||!e)return;const F=((T=U(this,BA).moof.traf.trun)==null?void 0:T.sampleDurations[A])||0,n=((L=U(this,BA).moof.traf.trun)==null?void 0:L.sampleDurations.slice(0,A).reduce((W,x)=>W+x,0))||0,s=B+n,a=((Z=U(this,XA).init().moov.traks[0])==null?void 0:Z.mdia.mdhd.timescale)||1e3,r=((M=U(this,BA).moof.traf.trun)==null?void 0:M.sampleSizes[A])||U(this,BA).mdat.data.byteLength,E=((H=U(this,BA).moof.traf.trun)==null?void 0:H.sampleSizes.slice(0,A).reduce((W,x)=>W+x,0))||0,g=U(this,BA).mdat.data.subarray(E,E+r),c=((Y=U(this,BA).moof.traf.trun)==null?void 0:Y.is_sync_sample(A))||!1;if(this.mediaType()==="video"){const W=((P=U(this,XA).init().moov.traks[0])==null?void 0:P.tkhd.width)||0,x=((VA=U(this,XA).init().moov.traks[0])==null?void 0:VA.tkhd.height)||0;return{type:"video",codec:e,width:W,height:x,duration:F,isSync:c,timescale:a,timestamp:s,data:g}}return{type:"audio",codec:e,channels:((uA=(FA=U(this,XA).init().moov.traks[0])==null?void 0:FA.mdia.minf.stbl.stsd.opus)==null?void 0:uA.channelCount)||0,sampleRate:((R=(Fe=U(this,XA).init().moov.traks[0])==null?void 0:Fe.mdia.minf.stbl.stsd.opus)==null?void 0:R.sampleRate)||0,duration:F,isSync:c,timestamp:s,data:g,timescale:a}}rawBytes(){return U(this,MA)}};MA=new WeakMap,XA=new WeakMap,BA=new WeakMap;let Gs=Xa;class Fl{constructor(A){o(this,ii);l(this,ii,new tg(A))}header(){return U(this,ii)}createFragment(A){return new Gs(U(this,ii),A)}}ii=new WeakMap;function b(Q){const A=new ArrayBuffer(Q.length),e=new Uint8Array(A);for(let t=0,B=Q.length;t<B;t++)e[t]=Q.charCodeAt(t);return new Uint8Array(A)}const QA={ftyp:b("ftyp"),mvhd:b("mvhd"),moov:b("moov"),trak:b("trak"),tkhd:b("tkhd"),mdia:b("mdia"),mdhd:b("mdhd"),hdlr:b("hdlr"),minf:b("minf"),vmhd:b("vmhd"),smhd:b("smhd"),dinf:b("dinf"),dref:b("dref"),stbl:b("stbl"),stsd:b("stsd"),avc1:b("avc1"),av01:b("av01"),av1C:b("av1C"),avcC:b("avcC"),esds:b("esds"),colr:b("colr"),nclx:b("nclx"),mvex:b("mvex"),trex:b("trex"),udta:b("udta"),meta:b("meta"),ilst:b("ilst"),moof:b("moof"),mfhd:b("mfhd"),traf:b("traf"),tfhd:b("tfhd"),tfdt:b("tfdt"),trun:b("trun"),mdat:b("mdat"),mp4a:b("mp4a"),Opus:b("Opus"),prft:b("prft"),dOps:b("dOps"),emsg:b("emsg")},Qg=1e3,RB=b("iso6"),nl=new Uint8Array([0,0,2,0]),ig=[RB,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([97,118,99,49]),new Uint8Array([109,112,52,49])],Bg=[RB,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([97,118,48,49]),new Uint8Array([109,112,52,49])],Ug=[RB,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([109,112,52,49])];class sl{constructor(){i(this,"writer",new Gd);i(this,"moofOffset",0)}}const IA=(Q,A,e)=>{Q.writer.writeUint32(e+8),Q.writer.writeBytes(A)},RA=(Q,A,e,t,B)=>{IA(Q,A,e+4),Q.writer.writeUint8(t),Q.writer.writeUint24(B)},Ms=(Q,A)=>{IA(Q,QA.ftyp,RB.byteLength+nl.byteLength+A.reduce((e,t)=>e+t.byteLength,0)),Q.writer.writeBytes(RB),Q.writer.writeBytes(nl),A.forEach(e=>Q.writer.writeBytes(e))},Fg=Math.pow(2,32),ng=2208988800,sg=(Q,A,e,t)=>{RA(Q,QA.prft,20,1,0);const F=e/1e3,n=Math.floor(F),a=(F-n)*1e3*1e3*Fg/1e6;Q.writer.writeUint32(A),Q.writer.writeUint32(n+ng),Q.writer.writeUint32(a),Q.writer.writeUint64(t)},ag=(Q,A,e)=>{RA(Q,QA.mvhd,96,0,0),Q.writer.writeUint32(0),Q.writer.writeUint32(0),Q.writer.writeUint32(e),Q.writer.writeUint32(A),Q.writer.writeUint32(65536),Q.writer.writeUint16(256),Q.writer.writeBytes(new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])),Q.writer.writeUint32(2)},al=Q=>"sequenceParameterSets"in Q,vs=Q=>"sequenceHeader"in Q,xt=Q=>Q.type=="video",hB=Q=>Q.type=="audio",og=(Q,A,e)=>{const t=Q.writer.position();RA(Q,QA.tkhd,0,0,3),Q.writer.writeUint32(0),Q.writer.writeUint32(0),Q.writer.writeUint32(A.trackId),Q.writer.writeUint32(0),Q.writer.writeUint32(A.duration*e/A.timescale),Q.writer.writeUint32(0),Q.writer.writeUint32(0),Q.writer.writeUint16(0),Q.writer.writeUint16(hB(A)?1:0),Q.writer.writeUint16(hB(A)?256:0),Q.writer.writeUint16(0),Q.writer.writeBytes(new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0])),xt(A)?(Q.writer.writeUint32(A.width*65536),Q.writer.writeUint32(A.height*65536)):hB(A)&&(Q.writer.writeUint32(0),Q.writer.writeUint32(0)),Q.writer.writeUint32At(t,Q.writer.position()-t)},lg=(Q,A)=>{RA(Q,QA.mdhd,20,0,0),Q.writer.writeUint32(0),Q.writer.writeUint32(0),Q.writer.writeUint32(A.timescale),Q.writer.writeUint32(A.duration);const e=A.lang||"und",t=(e.charCodeAt(0)&31)<<10|(e.charCodeAt(1)&31)<<5|e.charCodeAt(2)&31;Q.writer.writeUint16(t),Q.writer.writeUint16(0)},rg=(Q,A)=>{const e=Q.writer.position();RA(Q,QA.hdlr,0,0,0),Q.writer.writeUint32(0),Q.writer.writeBytes(b(xt(A)?"vide":"soun")),Q.writer.writeUint32(0),Q.writer.writeUint32(0),Q.writer.writeUint32(0),Q.writer.writeBytes(b(xt(A)?"VideoHandler\0":"SoundHandler\0")),Q.writer.writeUint32At(e,Q.writer.position()-e)},dg=Q=>{const A=Q.writer.position();IA(Q,QA.dinf,0),RA(Q,QA.dref,16,0,0),Q.writer.writeUint32(1),RA(Q,b("url "),0,0,1),Q.writer.writeUint32At(A,Q.writer.position()-A)},Eg=(Q,A)=>{const e=Q.writer.position();IA(Q,QA.avcC,0),Q.writer.writeUint8(1),Q.writer.writeUint8(A.sequenceParameterSets[0][1]),Q.writer.writeUint8(A.sequenceParameterSets[0][2]),Q.writer.writeUint8(A.sequenceParameterSets[0][3]),Q.writer.writeUint8(255),Q.writer.writeUint8(224|A.sequenceParameterSets.length),A.sequenceParameterSets.forEach(t=>{Q.writer.writeUint16(t.byteLength),Q.writer.writeBytes(t)}),Q.writer.writeUint8(A.pictureParameterSets.length),A.pictureParameterSets.forEach(t=>{Q.writer.writeUint16(t.byteLength),Q.writer.writeBytes(t)}),Q.writer.writeUint32At(e,Q.writer.position()-e)},gg=(Q,A)=>{var s,a;const e=Q.writer.position();IA(Q,QA.av1C,0);const{seqProfile:t,operatingPoints:B,colorConfig:F}=A.parsedSequenceHeader,n=B[0];Q.writer.writeUint8(129),Q.writer.writeUint8(t<<5|((s=n==null?void 0:n.seqLevelIdx)!=null?s:0)),Q.writer.writeUint8(((a=n==null?void 0:n.tier)!=null?a:0)|(F.highBitDepth?1:0)|(F.bitDepth===12?1:0)<<5|(F.monoChrome?1:0)<<4|F.subsamplingX<<3|F.subsamplingY<<2|F.chromaSamplePosition&65535),Q.writer.writeUint8(0),Q.writer.writeBytes(A.sequenceHeader),Q.writer.writeUint32At(e,Q.writer.position()-e)},Ig=(Q,A)=>{const e=Q.writer.position(),t=vs(A)?QA.av01:QA.avc1;IA(Q,t,0),Q.writer.writeUint32(0),Q.writer.writeUint16(0),Q.writer.writeUint16(1),Q.writer.writeUint16(0),Q.writer.writeUint16(0),Q.writer.writeUint32(0),Q.writer.writeUint32(0),Q.writer.writeUint32(0),Q.writer.writeUint16(A.width),Q.writer.writeUint16(A.height),Q.writer.writeUint32(4718592),Q.writer.writeUint32(4718592),Q.writer.writeUint32(0),Q.writer.writeUint16(1),Q.writer.writeUint8(0),Q.writer.writeBytes(new Uint8Array(31)),Q.writer.writeUint16(24),Q.writer.writeUint16(-1),al(A)?Eg(Q,A):vs(A)&&(gg(Q,A),A.parsedSequenceHeader.colorConfig&&(IA(Q,b("colr"),11),Q.writer.writeBytes(QA.nclx),Q.writer.writeUint16(A.parsedSequenceHeader.colorConfig.colorPrimaries),Q.writer.writeUint16(A.parsedSequenceHeader.colorConfig.transferCharacteristics),Q.writer.writeUint16(A.parsedSequenceHeader.colorConfig.matrixCoefficients),Q.writer.writeUint8(A.parsedSequenceHeader.colorConfig.colorRange?1:0))),A.pixelAspectRatio&&(IA(Q,b("pasp"),8),Q.writer.writeUint32(A.pixelAspectRatio.numerator),Q.writer.writeUint32(A.pixelAspectRatio.denumerator)),A.bitrate&&(IA(Q,b("btrt"),12),Q.writer.writeUint32(0),Q.writer.writeUint32(A.bitrate),Q.writer.writeUint32(A.bitrate)),Q.writer.writeUint32At(e,Q.writer.position()-e)},KF=(Q,A,e)=>{let t=3;for(Q.writer.writeUint8(A);t>0;t--)Q.writer.writeUint8(e>>7*t|128);Q.writer.writeUint8(e&127)},cg=(Q,A)=>{const e=A.decoderConfig.byteLength>0?A.decoderConfig.byteLength+5:0,t=Q.writer.position();RA(Q,QA.esds,0,0,0),KF(Q,3,21+e+5+1),Q.writer.writeUint16(A.trackId),Q.writer.writeUint8(0),KF(Q,4,13+e);const B=A.codec==="mp3"&&A.sampleRate>24e3?107:64;Q.writer.writeUint8(B),Q.writer.writeUint8(21),Q.writer.writeUint24(0),Q.writer.writeUint32(A.bitrate||0),Q.writer.writeUint32(A.bitrate||0),A.decoderConfig.byteLength>0&&(KF(Q,5,A.decoderConfig.byteLength),Q.writer.writeBytes(A.decoderConfig)),KF(Q,6,1),Q.writer.writeUint8(2),Q.writer.writeUint32At(t,Q.writer.position()-t)},Cg=Q=>{switch(Q){case"aac":case"mp3":return"mp4a";case"opus":return"Opus"}},Rg=(Q,A)=>{const e=Q.writer.position();IA(Q,b("dOps"),0),Q.writer.writeUint8(0);const t=A.decoderConfig,B=new DataView(t.buffer,t.byteOffset,t.byteLength);Q.writer.writeUint8(B.getUint8(9)),Q.writer.writeUint16(B.getUint16(10,!0)),Q.writer.writeUint32(B.getUint32(12,!0)),Q.writer.writeUint16(B.getUint16(16,!0)),Q.writer.writeBytes(A.decoderConfig.slice(18)),Q.writer.writeUint32At(e,Q.writer.position()-e)},hg=(Q,A)=>{const e=Q.writer.position();switch(IA(Q,b(Cg(A.codec)),0),Q.writer.writeUint32(0),Q.writer.writeUint16(0),Q.writer.writeUint16(1),Q.writer.writeUint16(0),Q.writer.writeUint16(0),Q.writer.writeUint32(0),Q.writer.writeUint16(A.channelCount),Q.writer.writeUint16(16),Q.writer.writeUint32(0),Q.writer.writeUint16(A.sampleRate),Q.writer.writeUint16(0),A.codec){case"aac":case"mp3":cg(Q,A);break;case"opus":Rg(Q,A);break}A.bitrate&&(IA(Q,b("btrt"),12),Q.writer.writeUint32(0),Q.writer.writeUint32(A.bitrate),Q.writer.writeUint32(A.bitrate)),Q.writer.writeUint32At(e,Q.writer.position()-e)},Sg=(Q,A)=>{const e=Q.writer.position();IA(Q,QA.stbl,0);const t=Q.writer.position();RA(Q,QA.stsd,0,0,0),Q.writer.writeUint32(1),xt(A)?Ig(Q,A):hB(A)&&hg(Q,A),Q.writer.writeUint32At(t,Q.writer.position()-t),RA(Q,b("stts"),4,0,0),Q.writer.writeUint32(0),RA(Q,b("stsc"),4,0,0),Q.writer.writeUint32(0),RA(Q,b("stsz"),8,0,0),Q.writer.writeUint32(0),Q.writer.writeUint32(0),RA(Q,b("stco"),4,0,0),Q.writer.writeUint32(0),Q.writer.writeUint32At(e,Q.writer.position()-e)},Jg=(Q,A)=>{const e=Q.writer.position();IA(Q,QA.minf,0),xt(A)?(RA(Q,QA.vmhd,8,0,1),Q.writer.writeUint32(0),Q.writer.writeUint32(0)):hB(A)&&(RA(Q,QA.smhd,4,0,0),Q.writer.writeUint16(0),Q.writer.writeUint16(0)),dg(Q),Sg(Q,A),Q.writer.writeUint32At(e,Q.writer.position()-e)},Vg=(Q,A)=>{const e=Q.writer.position();IA(Q,QA.mdia,0),lg(Q,A),rg(Q,A),Jg(Q,A),Q.writer.writeUint32At(e,Q.writer.position()-e)},ug=(Q,A,e)=>{const t=Q.writer.position();IA(Q,QA.trak,0),og(Q,A,e),Vg(Q,A),Q.writer.writeUint32At(t,Q.writer.position()-t)},kg=(Q,A)=>{RA(Q,QA.trex,20,0,0),Q.writer.writeUint32(A.trackId),Q.writer.writeUint32(1),Q.writer.writeUint32(0),Q.writer.writeUint32(0),Q.writer.writeUint32(0)},Ng=(Q,A)=>{const e=Q.writer.position();IA(Q,QA.mvex,0),A.forEach(t=>kg(Q,t)),Q.writer.writeUint32At(e,Q.writer.position()-e)},mg=(Q,A,e,t)=>{const B=Q.writer.position();IA(Q,QA.moov,0),ag(Q,0,e),A.forEach(F=>ug(Q,F,e)),Ng(Q,A),Q.writer.writeUint32At(B,Q.writer.position()-B)},Wg=(Q,A)=>{const e=Q.writer.position();RA(Q,QA.tfhd,16,0,56),Q.writer.writeUint32(A.trackId),Q.writer.writeUint32(A.defaultDuration||0),Q.writer.writeUint32(A.defaultSize||0),Q.writer.writeUint32(A.defaultFlags||0),Q.writer.writeUint32At(e,Q.writer.position()-e)},pg=(Q,A)=>{const e=Q.writer.position();RA(Q,QA.tfdt,8,1,0);const t=Math.floor(A.timestamp/4294967296),B=(A.timestamp&4294967295)>>>0;Q.writer.writeUint32(t),Q.writer.writeUint32(B),Q.writer.writeUint32At(e,Q.writer.position()-e)},Dg=(Q,A)=>{if(!A.samples[0])throw new Error("At least one sample must be provided");const e=A.samples.some(a=>!!a.compositionTimeOffset),t=Ls(A.samples[0])!==A.defaultFlags,B=A.samples.length>1;let F=1;t&&(F|=4),e&&(F|=2048),B&&(F|=512,F|=256,F|=1024);const n=Q.writer.position();RA(Q,QA.trun,16,1,F),Q.writer.writeUint32(A.samples.length);const s=Q.writer.position();Q.writer.writeUint32(0),t&&Q.writer.writeUint32(Ls(A.samples[0]));for(const a of A.samples)B&&(Q.writer.writeUint32(a.duration),Q.writer.writeUint32(a.data.byteLength),Q.writer.writeUint32(Ls(a))),e&&Q.writer.writeUint32(a.compositionTimeOffset||0);Q.writer.writeUint32At(s,Q.writer.position()-Q.moofOffset+8),Q.writer.writeUint32At(n,Q.writer.position()-n)},Ls=Q=>Q.isSync?33554432:16842752,Zg=(Q,A)=>{const e=Q.writer.position();IA(Q,QA.traf,0),Wg(Q,A),pg(Q,A),Dg(Q,A),Q.writer.writeUint32At(e,Q.writer.position()-e)},wg=(Q,A)=>{RA(Q,QA.mfhd,4,0,0),Q.writer.writeUint32(A)},Tg=(Q,A)=>{const e=Q.writer.position();IA(Q,QA.moof,0),wg(Q,A.sequenceNumber),Zg(Q,A),Q.writer.writeUint32At(e,Q.writer.position()-e)},yg=(Q,A)=>{const e=A.samples.reduce((t,B)=>t+B.data.byteLength,0);IA(Q,QA.mdat,e),A.samples.forEach(t=>Q.writer.writeBytes(t.data))},OF=(Q,A)=>{const e=new sl,t=Q.filter(F=>xt(F)&&al(F)).length>0;return Q.filter(F=>xt(F)&&vs(F)).length>0?Ms(e,Bg):t?Ms(e,ig):Ms(e,Ug),mg(e,Q,Qg),e.writer.buffer()},zF=Q=>{var e;const A=new sl;return((e=Q.samples[0])==null?void 0:e.producerReferenceTime)!==void 0&&sg(A,Q.trackId,Q.samples[0].producerReferenceTime,Q.timestamp),A.moofOffset=A.writer.position(),Tg(A,Q),yg(A,Q),A.writer.buffer()},fg=(Q,A)=>{const e=Q.map(n=>O(S({},n),{data:new Uint8Array(n.data)}));if(!e[0])throw new Error("At least one sample must be provided");const{timestamp:t,data:B,duration:F}=e[0];return zF({trackId:1,timestamp:t,sequenceNumber:A,defaultSize:B.byteLength,defaultFlags:33554432,defaultDuration:F,samples:e})},bg=(Q,A,e,t)=>OF([{type:"audio",codec:"aac",decoderConfig:Q,channelCount:A,sampleRate:e,timescale:t,duration:0,trackId:1}]),ol=Q=>{const{sequenceParameterSets:A,pictureParameterSets:e}=Bl(Q),t=A[0],B=e[0];if(!t||!B)throw new Error("No sps or pps provided");return GE(t)},Gg=(Q,A)=>{const e=Q.map(s=>O(S({},s),{data:new Uint8Array(s.data)}));if(!e[0])throw new Error("At least one sample must be provided");const{isSync:t,timestamp:B,data:F,duration:n}=e[0];return zF({trackId:1,timestamp:B,sequenceNumber:A,defaultSize:F.byteLength,defaultFlags:t?33554432:16842752,defaultDuration:n,samples:e})},Mg=(Q,A)=>{const{sequenceParameterSets:e,pictureParameterSets:t}=Bl(Q),B=ol(Q);return OF([{type:"video",sequenceParameterSets:e.map(F=>new Uint8Array(F)),pictureParameterSets:t.map(F=>new Uint8Array(F)),width:B.width,height:B.height,timescale:A,duration:0,trackId:1}])},vg=(Q,A,e)=>OF([{type:"audio",trackId:1,channelCount:A,timescale:e,codec:"opus",decoderConfig:Q,duration:0,sampleRate:48e3}]),Lg=(Q,A)=>{const e=Q.map(n=>O(S({},n),{data:new Uint8Array(n.data)}));if(!e[0])throw new Error("At least one sample must be provided");const{timestamp:t,data:B,duration:F}=e[0];return zF({trackId:1,timestamp:t,sequenceNumber:A,defaultSize:B.byteLength,defaultFlags:33554432,defaultDuration:F,samples:e})},ll=Q=>{const A=new _(Q);return A.peekBit()===1&&A.readBits(32),xg(A),_g(A)},Hg=Q=>{let A=0,e=0;for(let t=0;t<8;t++){const B=Q.readBits(8);if(A|=(B&127)<<t*7,e+=1,(B&128)!==128)break}return[e,A]},Yg=Q=>{let A=0;for(;A<100&&Q.readBit()===0;)A++;return A>=32?0:Q.readBits(A)+(1<<A)-1},xg=Q=>{const A=Q.remainingBits()/8,e=Q.readBits(8);if((e>>7&1)!==0)return;const B=e>>3&15,F=e>>2&1,n=e>>1&1;F==1&&Q.readBits(8);const[s,a]=n?Hg(Q):[0,A];return{headerLength:1+F+s,type:B,obuSize:a}},Xg=Q=>{const A=Q.readBits(32),e=Q.readBits(32),t=Q.readBit()!==0;let B=0;return t&&(B=Yg(Q)+1),{timescale:e,equalPictureInterval:t,numUnitsInDisplayTick:A,numTicksPerPicture:B}},rl=2,Hs=2,Kg=1,Og=2,zg=2,Pg=13,jg=0,qg=2,dl=0,_g=Q=>{const A=Q.readBits(3),t=Q.readBit()!==0,B=Q.readBit()!==0;let F,n=!1,s=!1,a=!1,r=0,E=0;const g=[];if(B)Q.readBits(5);else{if(s=Q.readBit()!==0,s&&(F=Xg(Q),n=Q.readBit()!==0,n))throw new Error("Not implemented");a=Q.readBit()!==0;const fA=Q.readBits(5)+1;for(let N=0;N<fA;N++){const v=Q.readBits(12),AA=Q.readBits(5);let nA=0;if(AA>7&&(nA=Q.readBit()),n)throw new Error("decoderModelInfoPresentFlag==1");a&&Q.readBit()!==0&&Q.readBits(4),g.push({tier:nA,operatingPointIdc:v,seqLevelIdx:AA})}}const c=Q.readBits(4)+1,J=Q.readBits(4)+1,u=Q.readBits(c)+1,D=Q.readBits(J)+1;let T=!1;B?T=!1:T=Q.readBit()!==0,T&&(r=Q.readBits(4)+2,E=Q.readBits(3)+1);const L=Q.readBit()!==0,Z=Q.readBit()!==0,M=Q.readBit()!==0;let H=!1,Y=!1,P=!1,VA=!1,FA=!1,uA=!1,Fe=!1,R=rl,W=Hs,x=0;B||(H=Q.readBit()!==0,Y=Q.readBit()!==0,P=Q.readBit()!==0,VA=Q.readBit()!==0,FA=Q.readBit()!==0,FA&&(uA=Q.readBit()!==0,Fe=Q.readBit()!==0),Q.readBit()!==0?R=rl:R=Q.readBit(),R>0?Q.readBit()>0?W=Hs:W=Q.readBit():W=Hs,FA?x=Q.readBits(3):x=0);const tA=Q.readBit()!==0,K=Q.readBit()!==0,j=Q.readBit()!==0;return{seqProfile:A,stillPicture:t,reducedStillPictureHeader:B,timingInfoPresentFlag:s,timingInfo:F!=null?F:{equalPictureInterval:!1,numUnitsInDisplayTick:0,timescale:0,numTicksPerPicture:0},decoderModelInfoPresentFlag:n,initialDisplayDelayPresentFlag:a,operatingPoints:g,frameWidthBits:c,frameHeightBits:J,maxFrameWidth:u,maxFrameHeight:D,frameIdNumbersPresentFlag:T,deltaFrameIdLength:r,additionalFrameIdLength:E,use_128x128Superblock:L,enableFilterIntra:Z,enableIntraEdgeFilter:M,enableInterintraCompound:H,enableMaskedCompound:Y,enableWarpedMotion:P,enableDualFilter:VA,enableOrderHint:FA,enableJntComp:uA,enableRefFrameMvs:Fe,seqForceScreenContentTools:R,seqForceIntegerMv:W,orderHintBits:x,enableSuperres:tA,enableCdef:K,enableRestoration:j,colorConfig:$g(Q,A),filmGrainParamsPresent:Q.readBit()!==0}},$g=(Q,A)=>{const e=Q.readBit()!==0;let t=8,B=!1;A===2&&e?t=Q.readBit()!==0?12:10:A<=2&&(t=e?10:8),A===1?B=!1:B=Q.readBit()!==0;const F=B?1:3,n=Q.readBit()!==0;let s=Og,a=zg,r=qg,E=!1,g=0,c=0,J=dl,u=!1;return n&&(s=Q.readBits(8),a=Q.readBits(8),r=Q.readBits(8)),B?(E=Q.readBit()!==0,g=1,c=1,J=dl,u=!1,{highBitDepth:e,bitDepth:t,monoChrome:B,chromaSamplePosition:J,colorPrimaries:s,colorRange:E,matrixCoefficients:r,numPlanes:F,separateUvDeltaQ:u,subsamplingX:g,subsamplingY:c,transferCharacteristics:a}):s===Kg&&a==Pg&&r==jg?(E=!0,g=0,c=0,{highBitDepth:e,bitDepth:t,monoChrome:B,chromaSamplePosition:J,colorPrimaries:s,colorRange:E,matrixCoefficients:r,numPlanes:F,separateUvDeltaQ:u,subsamplingX:g,subsamplingY:c,transferCharacteristics:a}):(E=Q.readBit()!==0,A===0?(g=1,c=1):A===1?(g=0,c=0):t===12?(g=Q.readBit(),g!==0?c=Q.readBit():c=0):(g=1,c=0),g!==0&&c!==0&&(J=Q.readBits(2)),u=Q.readBit()!==0,{highBitDepth:e,bitDepth:t,monoChrome:B,chromaSamplePosition:J,colorPrimaries:s,colorRange:E,matrixCoefficients:r,numPlanes:F,separateUvDeltaQ:u,subsamplingX:g,subsamplingY:c,transferCharacteristics:a})},AI=Q=>{const A=ll(Q);if(A)return{width:A.maxFrameWidth,height:A.maxFrameHeight}},eI=(Q,A)=>{const e=Q.map(s=>O(S({},s),{data:new Uint8Array(s.data)}));if(!e[0])throw new Error("At least one sample must be provided");const{isSync:t,timestamp:B,data:F,duration:n}=e[0];return zF({trackId:1,timestamp:B,sequenceNumber:A,defaultSize:F.byteLength,defaultFlags:t?33554432:16842752,defaultDuration:n,samples:e})},tI=(Q,A)=>{const e=ll(Q);if(!e)throw new Error("Failed to parse sequence header");return OF([{type:"video",parsedSequenceHeader:e,sequenceHeader:new Uint8Array(Q),width:e.maxFrameWidth,height:e.maxFrameHeight,timescale:A,duration:0,trackId:1}])},QI=(Q,A,e)=>{switch(Q){case"h264":return BI(A,e);case"av1":return UI(A,e);case"opus":return FI(A,e);case"aac":return nI(A,e);default:throw new Error(`Failed to initialize ${Q} segment`)}},iI=(Q,A)=>{switch(Q){case"h264":return ol(A);case"av1":return AI(A)}},BI=(Q,A)=>Mg(Q,A),UI=(Q,A)=>tI(Q,A),FI=(Q,A)=>vg(new Uint8Array(Q),2,A),nI=(Q,A)=>bg(new Uint8Array(Q),2,A,A),sI=(Q,A)=>{if(!Q[0])throw new Error("At least one sample must be provided");switch(Q[0].codec){case"h264":return Gg(Q,A);case"opus":return Lg(Q,A);case"aac":return fg(Q,A);case"av1":return eI(Q,A);default:throw new Error(`Unsupported codec ${Q[0].codec}`)}},SB=Q=>!!(Q&1),aI=Q=>!!(Q&2),oI=Q=>!!(Q&4),lI=Q=>!!(Q&8),rI=Q=>!!(Q&16),dI=Q=>{const A=new DataView(Q,0),e=A.getUint8(0),t=A.getUint16(1),B=A.getUint8(3),F=A.getUint8(4),n=ks(new Uint8Array(Q),5,12),s=A.getUint32(13),a=rI(B)?A.getInt16(17):void 0,r=Q.slice(t);return{version:e,renditionId:F,flags:B,timestamp:n,timescale:s,payload:r,compositionTimeOffset:a}},EI="data:video/mp4;base64,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",PF=()=>"wakeLock"in navigator&&window.navigator.userAgent.indexOf("Samsung")===-1;class gI{constructor(){i(this,"enabled",!1);i(this,"wakeLockVideo");i(this,"_wakeLock",null);i(this,"handleVisibilityChange",()=>{this._wakeLock!==null&&document.visibilityState==="visible"&&this.enable()});PF()&&(this._wakeLock=null,document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("fullscreenchange",this.handleVisibilityChange))}_addSourceToVideo(A,e,t){const B=document.createElement("source");B.src=t,B.type=`video/${e}`,A.appendChild(B)}get isEnabled(){return this.enabled}attach(A){if(!PF()){if(!this.wakeLockVideo){const e=document.createElement("video");this.wakeLockVideo=e,this.wakeLockVideo.setAttribute("title","Live Stream"),this.wakeLockVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.wakeLockVideo,"mp4",EI),Object.assign(this.wakeLockVideo.style,{position:"absolute",left:"-100%",top:"-100%"}),this.wakeLockVideo.addEventListener("loadedmetadata",()=>{e.addEventListener("timeupdate",()=>{e.currentTime>.5&&(e.currentTime=Math.random())})})}A&&A.appendChild(this.wakeLockVideo)}}enable(){return d(this,null,function*(){var A,e;return PF()?navigator.wakeLock.request("screen").then(t=>{this._wakeLock=t,this.enabled=!0,this._wakeLock.addEventListener("release",()=>{})}).catch(()=>{this.enabled=!1}):((e=(A=this.wakeLockVideo)==null?void 0:A.play())!=null?e:Promise.resolve()).then(B=>(this.enabled=!0,B)).catch(()=>{this.enabled=!1})})}disable(){var A,e;PF()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):((A=this.wakeLockVideo)==null||A.pause(),(e=this.wakeLockVideo)==null||e.remove()),this.enabled=!1}unload(){document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("fullscreenchange",this.handleVisibilityChange),this.disable()}}const II=/\r\n|\r|\n/;class El{constructor(A){o(this,Et);o(this,ze);l(this,Et,A),l(this,ze,0)}skipEmptyLines(){let A=0;for(;U(this,Et)[U(this,ze)]==="";)ue(this,ze)._++,A++;return A}readLine(){return U(this,Et)[ue(this,ze)._++]}takeUntilEmptyLine(){const A=[];for(;U(this,Et)[U(this,ze)]!=="";){const e=this.readLine();if(e===void 0)break;A.push(e)}return A}linesLeft(){return U(this,Et).length-U(this,ze)}}Et=new WeakMap,ze=new WeakMap;class gl{constructor(){o(this,tQ)}parse(A){const e=[],t=A.split(II),B=new El(t),F=B.readLine();if(!F||!F.startsWith("WEBVTT"))throw new Error("missing 'WEBVTT' signature");for(;B.readLine()!=="";);for(;B.linesLeft()>0;){const n=I(this,tQ,jr).call(this,B);e.push(n),B.skipEmptyLines()}return e}}tQ=new WeakSet,jr=function(A){A.skipEmptyLines();const e=A.takeUntilEmptyLine(),t=new El(e);let B=t.readLine(),F;if(B!=null&&B.includes("-->")||(F=B,B=t.readLine()),B===void 0)throw new Error("expected cue line");const[n,s]=B.split("-->").map(J=>J.trim());if(!n||!s)throw new Error(`a cue needs both start and end time start: ${n} end: ${s}`);const[a,r]=s.split(" ",1).map(J=>J.trim());if(!a)throw new Error(`missing end time: ${a}`);const E=t.readLine();if(!E)throw new Error("missing text");const g=I(this,tQ,so).call(this,n),c=I(this,tQ,so).call(this,a);return{id:F,startTime:g,endTime:c,text:E}},so=function(A){const e=A.split(":");if(e.length==2){const[s=0,a=0]=e.map(E=>parseFloat(E));return s*60+a}const[t=0,B=0,F=0]=e.map(s=>parseFloat(s));return t*60*60+B*60+F};class Ys extends $A{constructor({type:e,autoplay:t,muted:B,logger:F,poster:n}){super();i(this,"element");i(this,"logger");i(this,"seekTimes",new w(10));i(this,"seekStartTime");i(this,"_userProvidedMuted");i(this,"timers",new pA);i(this,"_userHasProvidedInput",!1);i(this,"_isPaused",!0);i(this,"isActivated",!1);i(this,"dummy");i(this,"_iosHackEnterPiPMode",()=>{const e=this.element.parentElement,t=this.element.clientWidth/this.element.clientHeight;this.element.style.position="fixed",this.element.style.opacity="0",this.element.style.pointerEvents="none",e&&(this.dummy=document.createElement("video"),this.dummy.style.paddingBottom="calc(100% / "+t+")",this.dummy.style.width="100%",this.dummy.style.height="0px",e.appendChild(this.dummy))});i(this,"_iosHackExitPiPMode",()=>{this.element.style.position="relative",this.element.style.opacity="1",this.element.style.pointerEvents="auto",this.dummy&&(this.dummy.remove(),this.dummy=void 0)});i(this,"attach",e=>{this.element.remove(),e.appendChild(this.element)});i(this,"load",()=>{this.timers.setInterval(this.onPlayPause,500),this.timers.setTimeout(()=>{this.timers.setInterval(this.onBufferStateChange,500)},1e4)});i(this,"unload",()=>{this.timers.unload()});i(this,"getPlaybackRate",()=>this.element.playbackRate);i(this,"getPlaybackState",()=>this.element.readyState>=this.element.HAVE_FUTURE_DATA?"playing":"buffering");i(this,"setPlaybackRate",e=>void(this.element.playbackRate=e));i(this,"getBuffer",()=>{const e=[],t=this.element.buffered;if(!t)return[];for(let B=0;B<t.length;B++)e.push({start:t.start(B)*1e3,end:t.end(B)*1e3});return e});i(this,"pause",()=>{this._isPaused=!1,this.element.pause()});i(this,"tryPlay",()=>{this.element.muted=this._userProvidedMuted,this._play().catch(V)});i(this,"play",()=>{this.element.muted=this._userProvidedMuted,this._play().catch(e=>{if(e instanceof Error){const t=new X("Media Play Error",{source:e,isFatal:!1,code:"media_play_error"});this.emit("error",t)}})});i(this,"_play",()=>d(this,null,function*(){try{yield this.element.play(),this._userHasProvidedInput=!this.muted||this._userProvidedMuted}catch(e){if(e instanceof Error&&e.name==="NotAllowedError")if(this._userHasProvidedInput=!1,this.element.muted)this.emit("needs user input",{forAudio:!0,forVideo:!0});else return this.element.muted=!0,this.emit("needs user input",{forAudio:!0,forVideo:!1}),this._play();else throw e}}));i(this,"onEvent",e=>{this.logger.trace(e.type,{state:this.element.readyState,event:e,playbackState:this.getPlaybackState()})});i(this,"onVolumeChange",()=>{this.logger.info("volume state",{isMuted:this.element.muted,volume:this.element.volume}),this.emit("volume state",{isMuted:this.element.muted,volume:this.element.volume})});i(this,"onPlayPause",()=>{this._isPaused!==this.element.paused&&(this._isPaused=this.element.paused,this.logger.info("player pause change",{paused:this.element.paused}),this.emit("media element state",this.element.paused?"paused":"playing"))});i(this,"onBufferStateChange",()=>{this.emit("buffer state",{isPaused:this.element.paused,buffered:this.getBuffer(),currentTime:this.currentTime,playbackState:this.getPlaybackState()})});i(this,"onSeekStart",()=>{this.seekStartTime=Date.now()});i(this,"onSeekEnd",()=>{this.seekStartTime&&(this.seekTimes.push(Date.now()-this.seekStartTime),this.seekStartTime=void 0)});this.logger=F,this._userProvidedMuted=B,this.element=document.createElement(e),this.element instanceof HTMLVideoElement&&(this.element.playsInline=!0),this.element.controls=!1,this.element.autoplay=t,this.element.muted=B,this.element.style.display="block",this.element.style.width="100%",this.element.disableRemotePlayback=!0,this.element.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAQAAACRI2S5AAAAEElEQVR42mNkIAAYRxWAAQAG9gAKqv6+AwAAAABJRU5ErkJggg=="),this.onPlayPause(),setTimeout(()=>{!this.element||!n||this.element.setAttribute("poster",n)},0),this.element.addEventListener("stalled",this.onEvent),this.element.addEventListener("canplay",this.onEvent),this.element.addEventListener("loadeddata",this.onEvent),this.element.addEventListener("loadedmetadata",this.onEvent),this.element.addEventListener("canplaythrough",this.onEvent),this.element.addEventListener("waiting",this.onEvent),this.element.addEventListener("playing",this.onPlayPause),this.element.addEventListener("pause",this.onPlayPause),this.element.addEventListener("seeked",this.onSeekEnd),this.element.addEventListener("seeking",this.onSeekStart),this.element.addEventListener("volumechange",this.onVolumeChange),this.element.addEventListener("timeupdate",this.onBufferStateChange),this.element.addEventListener("progress",this.onBufferStateChange)}get seekTime(){return this.seekTimes.isEmpty()?0:XQ(this.seekTimes.items())}get isSeeking(){return this.element.seeking}get currentTime(){return isNaN(this.element.currentTime)?0:this.element.currentTime*1e3}set currentTime(e){Number.isFinite(e)&&(this.element.currentTime=e/1e3)}get playbackRate(){return this.element.playbackRate}set playbackRate(e){this.element.playbackRate=e}get volume(){return this.element.volume}set volume(e){this.element.volume=e}get muted(){return this.element.muted}set muted(e){this._userProvidedMuted=e,this.element.muted=e}get userHasProvidedInput(){return this._userHasProvidedInput}get isPaused(){return this._isPaused}}const cI=["minBufferTime","maxBufferTime","burstEnabled","sizeBasedResolutionCapEnabled","separateVideoSocketEnabled","videoCodecs"];function CI(Q){return cI.includes(Q)}class RI{constructor(A){i(this,"options");i(this,"overrides",new Map);this.options=A}getOptions(){return this.options}addOverrides(A,e){this.overrides.set(A,e)}set(A,e){this.options[A]=e}get(A,e){var t;if(e&&CI(A)){const B=(t=this.overrides.get(e))==null?void 0:t[A];if(typeof B!="undefined")return B}return this.options[A]}getOverride(A,e){var t;return(t=this.overrides.get(e))==null?void 0:t[A]}}const hI=Q=>{const A=window;A.vindralInstances=A.vindralInstances||{},A.vindralInstances[Q.getStatistics().clientId.substring(0,8)]=Q},SI=Q=>{if(!navigator.mediaCapabilities)return Promise.resolve({smooth:!0,supported:!0,powerEfficient:!0,failedToQuery:!0});if(Q.codec==="webvtt")throw new Error("WebVTT is not supported");let A;return Ht(Q)?A={type:"media-source",audio:{contentType:Yt(Q),bitrate:Q.bitRate,channels:Q.channels.toString(),samplerate:Q.sampleRate}}:A={type:"media-source",video:{contentType:Yt(Q),bitrate:Q.bitRate,width:Q.width,height:Q.height,framerate:Q.frameRate[0]/Q.frameRate[1]}},navigator.mediaCapabilities.decodingInfo(A)},JI=.15,VI=.2,Il=.4,uI=.5,kI=.6,xs=15,NI={cooldownTime:3e3,maxBufferingEvents:{last10Seconds:0},maxBufferingRatio:{last10Seconds:0},maxRecentDowngradesCount:3,maxDowngradeLookbackMs:60*1e3,minTimeSpentPlaying:{factor:.5,ratio:.1},maxCooldownRatio:2},Xs=Q=>A=>A>Q,Vn=class Vn{constructor(A,e,t,B){i(this,"qualityOfServiceSource");i(this,"config");i(this,"emitter");i(this,"logger");i(this,"isSuspended",!1);i(this,"lastAdaptTime",Date.now());i(this,"isEnabled",!0);i(this,"load",()=>{this.emitter.on("buffer state",this.onBufferState),this.emitter.on("adapted level",this.onAdaptedLevel)});i(this,"unload",()=>{this.emitter.off("buffer state",this.onBufferState),this.emitter.off("adapted level",this.onAdaptedLevel)});i(this,"suspend",()=>{this.isSuspended=!0});i(this,"unsuspend",()=>{this.reset(),this.isSuspended=!1});i(this,"reset",(A=0)=>{this.lastAdaptTime=Date.now()+A});i(this,"getStatistics",()=>({isAbrEnabled:this.isEnabled}));i(this,"isQoSOk",A=>{const e=this.qualityOfServiceSource.getLevelStats(A),{upgradesFromLevel:t,downgradesFromLevel:B}=e!=null?e:{upgradesFromLevel:[],downgradesFromLevel:[]},F=Date.now()-this.config.maxDowngradeLookbackMs,n=B.filter(Xs(F)).length,s=t.filter(Xs(F)).length;if(n-s>this.config.maxRecentDowngradesCount)return this.logger.debug("Recent downgrades count is over maximum",{downgrades:n-s,maxRecentDowngradesCount:this.config.maxRecentDowngradesCount}),!1;const a=this.qualityOfServiceSource.timeSpentPlayingInAtLeastLevelRatio(A),r=this.qualityOfServiceSource.timeActive()-this.qualityOfServiceSource.timeSpentBuffering(),E=a*r/this.config.maxDowngradeLookbackMs;if(n>1&&E<this.config.minTimeSpentPlaying.factor)return this.logger.debug("Time spent playing is too low",{recentDowngrades:n,timeSpentPlayingInAtLeastLevelRatio:a}),!1;if(n>1&&a<this.config.minTimeSpentPlaying.ratio)return this.logger.debug("Time spent playing in at least this level is too low",{recentDowngrades:n,timeSpentPlayingInAtLeastLevelRatio:a}),!1;const g=Math.max(0,B.length-t.length-E),c=Date.now()-this.config.maxDowngradeLookbackMs*g,J=B.filter(Xs(c)).length;return J&&g>this.config.maxCooldownRatio?(this.logger.debug("Too many downgrades compared to time spent playing",{downgradesWithinCooldownTime:J,cooldownRatio:g}),!1):!0});i(this,"onBufferState",A=>{if(!this.isEnabled||this.isSuspended||this.lastAdaptTime+this.config.cooldownTime>Date.now())return;const{bufferFullness:e,general:t}=this.qualityOfServiceSource.getMetrics(),B=this.qualityOfServiceSource.getBufferFullnessRegression();if(!B)return;const F=10*1e3,{slope:n}=B,s=B.predict(xs),a=n<0,r=B.predict(xs)<Il&&B.slope<0,E=B.predict(xs)>kI,g=this.qualityOfServiceSource.timeSpentBufferingLast(30*1e3),c=this.qualityOfServiceSource.timeSpentActiveLast(30*1e3),J=g/c;if(e<.15&&J>.8){this.adaptLevel("reconnect");return}if(t.decodeRate<=1){this.adaptLevel("downgrade");return}r||e<JI?a&&e<Il&&s<VI&&this.adaptLevel(A.playbackState==="buffering"?"double downgrade":"downgrade"):e>uI&&E&&!this.tooMuchTimeBuffering(F)&&!this.tooManyBufferingEvents(F)&&this.adaptLevel("upgrade")});i(this,"onAdaptedLevel",()=>{this.reset()});i(this,"adaptLevel",A=>this.emitter.emit("adapt level",A));this.qualityOfServiceSource=t,this.config=S(S({},NI),B),this.emitter=A,this.logger=e}tooMuchTimeBuffering(A){return this.qualityOfServiceSource.timeSpentBufferingLast(A)/this.qualityOfServiceSource.timeSpentActiveLast(A)>this.config.maxBufferingRatio.last10Seconds}tooManyBufferingEvents(A){return this.qualityOfServiceSource.timeSpentBufferingLast(A)>this.config.maxBufferingEvents.last10Seconds}};i(Vn,"create",(A,e,t,B={})=>new Vn(A,e,t,B));let Ks=Vn;const mI={minBufferTime:1500,maxBufferTime:1500,cooldownTime:3e4,maxBufferingEvents:{last30Seconds:3},maxBufferingRatio:{last30Seconds:.15}},gt=class gt{constructor(A,e,t,B,F){i(this,"qualityOfServiceSource");i(this,"targetBufferTimeTarget");i(this,"config");i(this,"emitter");i(this,"logger");i(this,"isSuspended",!1);i(this,"lastIncreaseTime",Date.now());i(this,"bufferTimeAdjustmentCount",0);i(this,"load",()=>{this.emitter.on("buffer state",this.onBufferState)});i(this,"unload",()=>{this.emitter.off("buffer state",this.onBufferState)});i(this,"suspend",()=>{this.isSuspended=!0});i(this,"unsuspend",()=>{this.reset(),this.isSuspended=!1});i(this,"reset",()=>{this.lastIncreaseTime=Date.now()});i(this,"getStatistics",()=>({bufferTimeAdjustmentCount:this.bufferTimeAdjustmentCount}));i(this,"onBufferState",A=>{const{minBufferTime:e,maxBufferTime:t,cooldownTime:B}=this.config;if(this.isSuspended||this.lastIncreaseTime+B>Date.now()||this.targetBufferTimeTarget.targetBufferTime>=t)return;const F=this.qualityOfServiceSource.timeSpentBufferingLast(30*1e3),n=this.qualityOfServiceSource.bufferingEventsLast(30*1e3),s=this.qualityOfServiceSource.timeSpentActiveLast(30*1e3),a=F/s,r=Math.ceil(Math.max((t-e)/(gt.BUFFER_TIME_MAX_STEPS-1),gt.BUFFER_TIME_STEP_SIZE));(a>this.config.maxBufferingRatio.last30Seconds||n>this.config.maxBufferingEvents.last30Seconds)&&(this.targetBufferTimeTarget.targetBufferTime=Math.min(t,this.targetBufferTimeTarget.targetBufferTime+r),this.bufferTimeAdjustmentCount++,this.reset())});this.qualityOfServiceSource=t,this.targetBufferTimeTarget=B,this.config=S(S({},mI),F),this.emitter=A,this.logger=e}updateConfig(A){this.config=S(S({},this.config),A)}};i(gt,"BUFFER_TIME_STEP_SIZE",500),i(gt,"BUFFER_TIME_MAX_STEPS",3),i(gt,"create",(A,e,t,B,F={})=>new gt(A,e,t,B,F));let Os=gt;var jF=(Q=>(Q[Q.StreamHeaderGroup=4]="StreamHeaderGroup",Q[Q.FetchHeader=5]="FetchHeader",Q[Q.StreamHeaderTrack=60]="StreamHeaderTrack",Q))(jF||{});const GA={Normal:0,ObjectDoesNotExist:1,GroupDoesNotExist:2,EndOfGroup:3,EndOfTrackAndGroup:4};function cl(Q){switch(Q){case GA.Normal:case GA.ObjectDoesNotExist:case GA.GroupDoesNotExist:case GA.EndOfGroup:case GA.EndOfTrackAndGroup:return}throw new Error("Unknown object status "+Q)}class WI{constructor(A,e,t,B,F,n){o(this,We);o(this,Bi);o(this,Ui);o(this,iU);o(this,BU);o(this,Fi,new m);o(this,UU,0);o(this,FU);l(this,We,A),l(this,Bi,e),l(this,Ui,t),l(this,iU,B),l(this,BU,F),l(this,FU,n)}endStatus(){return U(this,Fi).promise}groupId(){return U(this,Bi)}subscribeId(){return U(this,Ui)}next(){return d(this,null,function*(){if(!U(this,Fi).pending)return{done:!0,value:void 0};if(yield U(this,We).isDone())return{done:!0,value:void 0};const A=U(this,UU)===0?U(this,Bi):yield U(this,We).readBigVarInt(),e=yield U(this,We).readBigVarInt(),t=yield U(this,We).readVarInt();let B=0,F=new Uint8Array;return t>0?F=yield U(this,We).read(t):B=yield U(this,We).readVarInt(),cl(B),(B===GA.EndOfTrackAndGroup||B===GA.EndOfGroup)&&U(this,Fi).resolve(B),ue(this,UU)._++,{done:!1,value:{subscribeId:U(this,Ui),trackAlias:U(this,iU),groupId:A,subGroupId:G(0),objectId:e,subscriberPriority:U(this,BU),streamId:U(this,FU),objectStatus:B,payload:F}}})}return(){return d(this,null,function*(){for(;!(yield this.next()).done;);return{done:!0,value:void 0}})}[Symbol.asyncIterator](){return this}[ke()](){return Promise.resolve()}[Symbol.asyncDispose](){return Promise.resolve()}}We=new WeakMap,Bi=new WeakMap,Ui=new WeakMap,iU=new WeakMap,BU=new WeakMap,Fi=new WeakMap,UU=new WeakMap,FU=new WeakMap;class pI{constructor(A,e,t,B,F){o(this,QQ);o(this,pe);o(this,ni);o(this,nU);o(this,sU);o(this,si);l(this,pe,A),l(this,ni,e),l(this,nU,t),l(this,sU,B),l(this,si,F)}streamId(){return U(this,si)}groups(){return I(this,QQ,qr).call(this)}subscribeId(){return U(this,ni)}return(){return d(this,null,function*(){return yield U(this,pe).close(),{done:!0,value:void 0}})}[Symbol.asyncIterator](){return this}[ke()](){return I(this,QQ,ao).call(this)}[Symbol.asyncDispose](){return I(this,QQ,ao).call(this)}}pe=new WeakMap,ni=new WeakMap,nU=new WeakMap,sU=new WeakMap,si=new WeakMap,QQ=new WeakSet,qr=function(){return Ft(this,null,function*(){for(;!(yield new lA(U(this,pe).isDone()));){const A=yield new lA(U(this,pe).readBigVarInt()),e=new WI(U(this,pe),A,U(this,ni),U(this,nU),U(this,sU),U(this,si));if(yield e,(yield new lA(Promise.race([e.endStatus(),U(this,pe).closed()])))===GA.EndOfTrackAndGroup)return}})},ao=function(){return U(this,pe).close().catch(()=>{})};class DI{constructor(A,e,t,B,F,n,s){o(this,iQ);o(this,ge);o(this,ai);o(this,aU);o(this,oi);o(this,oU);o(this,lU);o(this,rU,!1);o(this,li);o(this,un,WA.get().createContext("GroupReader"));l(this,ge,A),l(this,ai,e),l(this,aU,t),l(this,oi,B),l(this,oU,F),l(this,lU,n),l(this,li,s)}streamId(){return U(this,li)}groupId(){return U(this,oi)}subscribeId(){return U(this,ai)}next(){return d(this,null,function*(){try{if((yield U(this,ge).isDone())||U(this,rU))return{done:!0,value:void 0};const A=yield U(this,ge).readBigVarInt(),e=yield U(this,ge).readVarInt();let t=0,B=new Uint8Array;return e>0?B=yield U(this,ge).read(e):t=yield U(this,ge).readVarInt(),cl(t),t===GA.EndOfGroup&&l(this,rU,!0),{done:!1,value:{subscribeId:U(this,ai),trackAlias:U(this,aU),groupId:U(this,oi),subGroupId:U(this,oU),subscriberPriority:U(this,lU),streamId:U(this,li),objectId:A,objectStatus:t,payload:B}}}catch(A){return U(this,un).info("Error reading object",{error:A}),{done:!0,value:void 0}}})}return(){return d(this,null,function*(){return yield U(this,ge).close().catch(()=>{}),{done:!0,value:void 0}})}groups(){return I(this,iQ,_r).call(this)}[Symbol.asyncIterator](){return this}[ke()](){return I(this,iQ,oo).call(this)}[Symbol.asyncDispose](){return I(this,iQ,oo).call(this)}}ge=new WeakMap,ai=new WeakMap,aU=new WeakMap,oi=new WeakMap,oU=new WeakMap,lU=new WeakMap,rU=new WeakMap,li=new WeakMap,un=new WeakMap,iQ=new WeakSet,_r=function(){return Ft(this,null,function*(){yield this})},oo=function(){return U(this,ge).close().catch(()=>{})};function Cl(Q,A){return d(this,null,function*(){const e=yield Q.readVarInt();switch(e){case jF.StreamHeaderGroup:{const t=yield Q.readBigVarInt(),B=yield Q.readBigVarInt(),F=yield Q.readBigVarInt(),n=yield Q.readBigVarInt(),s=yield Q.readUnsigned8();return new DI(Q,t,B,F,n,s,A)}case jF.StreamHeaderTrack:{const t=yield Q.readBigVarInt(),B=yield Q.readBigVarInt(),F=yield Q.readUnsigned8();return new pI(Q,t,B,F,A)}default:throw new Error("Unexpected message type "+e)}})}class ZI{constructor(A,e){o(this,It);o(this,dU);l(this,It,A),l(this,dU,e)}start(A){U(this,It).addEventListener("message",e=>{if(typeof e.data=="object"&&e.data instanceof ArrayBuffer){const t=new Uint8Array(e.data);t[0]==U(this,dU)&&A.enqueue(t.subarray(1))}}),U(this,It).addEventListener("error",()=>A.error(new Error("WebSocket error"))),U(this,It).addEventListener("close",()=>Vo(()=>A.close()))}cancel(A){U(this,It).close(void 0,A)}}It=new WeakMap,dU=new WeakMap;class wI{constructor(A){o(this,De);o(this,BQ,null);o(this,UQ,null);o(this,FQ,null);l(this,De,A)}start(A){l(this,BQ,e=>{if(typeof e.data=="object"&&e.data instanceof ArrayBuffer){const t=new Uint8Array(e.data),B=t[0]||0,F=B&127,n=(B>>7&1)>0;if(F&&F!==0){const s=t.subarray(1);A.enqueue([n,F,s])}}}),l(this,UQ,()=>Vo(()=>A.close())),l(this,FQ,()=>A.error(new Error("WebSocket error"))),U(this,De).addEventListener("message",U(this,BQ)),U(this,De).addEventListener("error",U(this,FQ)),U(this,De).addEventListener("close",U(this,UQ))}cancel(A){U(this,BQ)&&U(this,De).removeEventListener("message",U(this,BQ)),U(this,FQ)&&U(this,De).removeEventListener("error",U(this,FQ)),U(this,UQ)&&U(this,De).removeEventListener("close",U(this,UQ))}}De=new WeakMap,BQ=new WeakMap,UQ=new WeakMap,FQ=new WeakMap;class qF{constructor(A,e){o(this,iA);o(this,Ze);o(this,EU);o(this,nQ);o(this,we,0);o(this,kn,new TextDecoder);l(this,Ze,A),l(this,EU,e),l(this,nQ,e.getReader())}readUnsigned8(){return d(this,null,function*(){return yield I(this,iA,MQ).call(this,1),I(this,iA,bt).call(this,1)[0]})}readString(){return d(this,null,function*(){const A=yield this.readVarInt(),e=yield this.read(A);return U(this,kn).decode(e)})}readVarInt(){return d(this,null,function*(){const A=yield this.readBigVarInt();if(A>Number.MAX_SAFE_INTEGER)throw new Error("VarInt is too large");return Number(A)})}readBigVarInt(){return d(this,null,function*(){yield I(this,iA,MQ).call(this,1);const A=(I(this,iA,Is).call(this,1)[0]&192)>>6;switch(U(this,Ze)[U(this,we)]=I(this,iA,Is).call(this,1)[0]&63,A){case 0:return G(I(this,iA,bt).call(this,1)[0]);case 1:{yield I(this,iA,MQ).call(this,2);const e=I(this,iA,bt).call(this,2),t=new DataView(e.buffer,e.byteOffset,e.byteLength);return G(t.getUint16(0))}case 2:{yield I(this,iA,MQ).call(this,4);const e=I(this,iA,bt).call(this,4),t=new DataView(e.buffer,e.byteOffset,e.byteLength);return G(t.getUint32(0))}case 3:{yield I(this,iA,MQ).call(this,8);const e=I(this,iA,bt).call(this,8),t=new DataView(e.buffer,e.byteOffset,e.byteLength);if(typeof t.getBigUint64!="undefined")return G(t.getBigUint64(0));const B=ks(e,0,7);return G(B)}default:throw new Error("Invalid VarInt size")}})}read(A){return d(this,null,function*(){return yield I(this,iA,MQ).call(this,A),I(this,iA,bt).call(this,A)})}readAll(){return d(this,null,function*(){for(;yield I(this,iA,gs).call(this););return I(this,iA,bt).call(this,I(this,iA,CF).call(this))})}isDone(){return d(this,null,function*(){return I(this,iA,CF).call(this)>0?!1:(yield I(this,iA,gs).call(this))==0})}closed(){return d(this,null,function*(){return U(this,nQ).closed})}close(){return d(this,null,function*(){return U(this,nQ).releaseLock(),U(this,EU).cancel()})}}Ze=new WeakMap,EU=new WeakMap,nQ=new WeakMap,we=new WeakMap,kn=new WeakMap,iA=new WeakSet,CF=function(){return U(this,Ze).length-U(this,we)},gs=function(){return d(this,null,function*(){const{value:A,done:e}=yield U(this,nQ).read();if(e)return Promise.resolve(0);if(I(this,iA,CF).call(this)===0)l(this,Ze,A);else{const B=U(this,Ze).subarray(U(this,we)),F=new Uint8Array(B.length+A.length);F.set(B),F.set(A,B.byteLength),l(this,Ze,F)}return l(this,we,0),Promise.resolve(A.length)})},MQ=function(A){return d(this,null,function*(){for(;I(this,iA,CF).call(this)<A;)if((yield I(this,iA,gs).call(this))===0)throw new Error("Read failed")})},Is=function(A){return U(this,Ze).subarray(U(this,we),U(this,we)+A)},bt=function(A){const e=I(this,iA,Is).call(this,A);return l(this,we,U(this,we)+e.length),e};class Rl{constructor(A){o(this,ri,new Uint8Array(8));o(this,di);o(this,Pe);o(this,Nn,new TextEncoder);l(this,di,A),l(this,Pe,U(this,di).getWriter())}writeString(A){return d(this,null,function*(){const e=U(this,Nn).encode(A);return yield this.writeVarInt(e.length),this.write(e)})}write(A){return U(this,Pe).write(A)}writeUnsigned8(A){return U(this,Pe).write(_F(A,U(this,ri)))}writeVarInt(A){return U(this,Pe).write(Wl(A,U(this,ri)))}writeBigVarInt(A){return U(this,Pe).write(pl(A,U(this,ri)))}flush(){return d(this,null,function*(){})}close(){return d(this,null,function*(){U(this,Pe).releaseLock(),yield U(this,di).close()})}}ri=new WeakMap,di=new WeakMap,Pe=new WeakMap,Nn=new WeakMap;const hl={OPEN:1},gU=class gU{constructor(A){o(this,KA,0);o(this,zA,new Uint8Array(gU.DEFAULT_BUFFER_SIZE));o(this,sQ);o(this,mn,new TextEncoder);l(this,sQ,A)}writeString(A){return d(this,null,function*(){const e=U(this,mn).encode(A);return yield this.writeVarInt(e.length),this.write(e)})}ensureBufferSpace(A){if(U(this,zA).length-U(this,KA)>=A)return;const e=new Uint8Array(U(this,zA).length+A);e.set(U(this,zA)),l(this,zA,e)}write(A){return this.ensureBufferSpace(A.length),U(this,zA).set(A,U(this,KA)),l(this,KA,U(this,KA)+A.byteLength),Promise.resolve()}writeUnsigned8(A){return this.ensureBufferSpace(1),_F(A,U(this,zA).subarray(U(this,KA))),l(this,KA,U(this,KA)+1),Promise.resolve()}writeVarInt(A){if(A<0)throw new Error(`VarInt can not be negative: ${A}`);return this.ensureBufferSpace(8),l(this,KA,U(this,KA)+Wl(A,U(this,zA).subarray(U(this,KA))).byteLength),Promise.resolve()}writeBigVarInt(A){if(A<0)throw new Error(`VarInt can not be negative: ${A}`);return this.ensureBufferSpace(8),l(this,KA,U(this,KA)+pl(A,U(this,zA).subarray(U(this,KA))).byteLength),Promise.resolve()}flush(){if(U(this,sQ).readyState!==hl.OPEN)throw new Error("Writer is not open");return U(this,sQ).send(U(this,zA).subarray(0,U(this,KA))),l(this,KA,0),l(this,zA,new Uint8Array(gU.DEFAULT_BUFFER_SIZE)),Promise.resolve()}close(){return U(this,sQ).close(),Promise.resolve()}};KA=new WeakMap,zA=new WeakMap,sQ=new WeakMap,mn=new WeakMap,i(gU,"DEFAULT_BUFFER_SIZE",1024);let JB=gU;const Sl=Math.pow(2,6)-1,Jl=Math.pow(2,14)-1,Vl=Math.pow(2,30)-1,TI=Number.MAX_SAFE_INTEGER,yI=typeof BigInt=="function"?Bo(G(2),G(62))-G(1):G(Number.MAX_SAFE_INTEGER);function _F(Q,A){return A[0]=Q,A.subarray(0,1)}function ul(Q,A){const e=new DataView(A.buffer,A.byteOffset,2);return e.setUint16(0,Q),new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function kl(Q,A){const e=new DataView(A.buffer,A.byteOffset,4);return e.setUint32(0,Q),new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function Nl(Q,A){const e=new DataView(A.buffer,A.byteOffset,8);return e.setBigUint64(0,Q),new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function ml(Q,A){const e=new DataView(A.buffer,A.byteOffset,8);return e.setUint32(0,Q/4294967296),e.setUint32(4,Q&4294967295),A.set([192],0),new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function Wl(Q,A){if(Q<=Sl)return _F(Q,A);if(Q<=Jl)return ul(Q|16384,A);if(Q<=Vl)return kl(Q|2147483648,A);if(Q<=TI)return typeof BigInt=="function"?Nl(BigInt(Q)|BigInt(3221225472)<<BigInt(32),A):ml(Number(Q),A);throw new Error(`overflow, value larger than 53-bits: ${Q}`)}function pl(Q,A){if(Q<Sl)return _F(Number(Q),A);if(Q<Jl)return ul(Number(Q)|16384,A);if(Q<=Vl)return kl(Number(Q)|2147483648,A);if(Q<=yI)return typeof BigInt=="function"?Nl(BigInt(Q)|BigInt(3221225472)<<BigInt(32),A):ml(Number(Q),A);throw new Error(`overflow, value larger than 62-bits: ${Q}`)}var y=(Q=>(Q[Q.SubscribeUpdate=2]="SubscribeUpdate",Q[Q.Subscribe=3]="Subscribe",Q[Q.SubscribeOk=4]="SubscribeOk",Q[Q.SubscribeError=5]="SubscribeError",Q[Q.Announce=6]="Announce",Q[Q.AnnounceOk=7]="AnnounceOk",Q[Q.AnnounceError=8]="AnnounceError",Q[Q.Unannounce=9]="Unannounce",Q[Q.Unsubscribe=10]="Unsubscribe",Q[Q.SubscribeDone=11]="SubscribeDone",Q[Q.AnnounceCancel=12]="AnnounceCancel",Q[Q.TrackStatusRequest=13]="TrackStatusRequest",Q[Q.TrackStatus=14]="TrackStatus",Q[Q.Goaway=16]="Goaway",Q[Q.ClientSetup=64]="ClientSetup",Q[Q.ServerSetup=65]="ServerSetup",Q[Q.Unknown=255]="Unknown",Q))(y||{});function $F(Q){return d(this,null,function*(){const A=yield Q.readVarInt();if(A<1||A>32)throw new Error(`namespace must be between 1 and 32, got ${A}`);const e=[];for(let t=0;t<A;t++)e.push(yield Q.readString());return e})}function zs(Q,A){return d(this,null,function*(){yield Q.writeVarInt(A.length);for(const e of A)yield Q.writeString(e)})}const An=G(2);function zQ(Q){return d(this,null,function*(){const A=yield Q.readVarInt(),e=new Map;for(let t=0;t<A;t++){const B=yield Q.readBigVarInt(),F=yield Q.read(yield Q.readVarInt());e.set(B,{type:B,payload:F})}return e})}function PQ(Q,A){return d(this,null,function*(){yield Q.writeVarInt(A.size);for(const[e,t]of A)yield Q.writeBigVarInt(e),yield Q.writeVarInt(t.payload.length),yield Q.write(t.payload)})}function fI(Q){return d(this,null,function*(){return{type:y.Announce,namespace:yield $F(Q),params:yield zQ(Q)}})}function bI(Q,A){return d(this,null,function*(){yield zs(Q,A.namespace),yield PQ(Q,A.params)})}function GI(Q){return d(this,null,function*(){return{type:y.AnnounceOk,namespace:yield $F(Q)}})}function MI(Q,A){return d(this,null,function*(){yield zs(Q,A.namespace)})}const vI={Subscriber:2},en={Role:G(0)},Dl={Draft07:4278190087};function Zl(Q){return d(this,null,function*(){const A=yield Q.readVarInt();switch(A){case Dl.Draft07:return{type:"known",value:A};default:return{type:"unknown",value:A}}})}function LI(Q,A){return d(this,null,function*(){yield Q.writeVarInt(A.supportedVersions.length);for(const e of A.supportedVersions)yield Q.writeVarInt(e.value);yield PQ(Q,A.parameters)})}function HI(Q){return d(this,null,function*(){const A=[],e=yield Q.readVarInt();for(let B=0;B<e;B++)A.push(yield Zl(Q));const t=yield zQ(Q);if(!t.has(en.Role))throw new Error("Role parameter is required");return{type:y.ClientSetup,supportedVersions:A,parameters:t}})}function YI(Q,A){return d(this,null,function*(){yield Q.writeVarInt(A.selectedVersion.value),yield PQ(Q,A.parameters)})}function xI(Q){return d(this,null,function*(){const A=yield Zl(Q);if(A.type!=="known")throw new Error("Expected known version");const e=yield zQ(Q);if(!e.has(en.Role))throw new Error("Role parameter is required");return{type:y.ServerSetup,selectedVersion:A,parameters:e}})}const XI={"latest-group":1,"latest-object":2,"absolute-start":3,"absolute-range":4};function KI(Q){return d(this,null,function*(){const A=yield Q.readVarInt();switch(A){case 1:return{type:"latest-group"};case 2:return{type:"latest-object"};case 3:return{type:"absolute-start",start:{group:yield Q.readBigVarInt(),object:yield Q.readBigVarInt()}};case 4:return{type:"absolute-range",start:{group:yield Q.readBigVarInt(),object:yield Q.readBigVarInt()},end:{group:yield Q.readBigVarInt(),object:yield Q.readBigVarInt()}};default:throw new Error(`Invalid location type ${A}`)}})}function OI(Q,A){return d(this,null,function*(){const e=XI[A.type];switch(yield Q.writeVarInt(e),A.type){case"absolute-range":yield Q.writeBigVarInt(A.start.group),yield Q.writeBigVarInt(A.start.object),yield Q.writeBigVarInt(A.end.group),yield Q.writeBigVarInt(A.end.object);break;case"absolute-start":yield Q.writeBigVarInt(A.start.group),yield Q.writeBigVarInt(A.start.object);break;case"latest-object":case"latest-group":break;default:throw new Error(`Invalid location type ${e}`)}})}function wl(Q){return d(this,null,function*(){const A=yield Q.readUnsigned8();switch(A){case 0:return"inherit-publisher";case 1:return"ascending";case 2:return"descending";default:throw new Error(`Invalid location type ${A}`)}})}function Tl(Q,A){return d(this,null,function*(){switch(A){case"inherit-publisher":yield Q.writeUnsigned8(0);break;case"ascending":yield Q.writeUnsigned8(1);break;case"descending":yield Q.writeUnsigned8(2);break}})}function zI(Q){return d(this,null,function*(){const A=yield Q.readBigVarInt(),e=yield Q.readBigVarInt(),t=yield $F(Q),B=yield Q.readString(),F=yield Q.readUnsigned8(),n=yield wl(Q),s=yield KI(Q),a=yield zQ(Q);if(s.type==="absolute-range"){const r=s.start.group>s.end.group,E=s.start.group===s.end.group&&s.start.object>s.end.object;if(r||E)throw new Error("Invalid filter range")}return{type:y.Subscribe,id:A,trackAlias:e,namespace:t,name:B,subscriberPriority:F,groupOrder:n,filterType:s,params:a}})}function PI(Q,A){return d(this,null,function*(){yield Q.writeBigVarInt(A.id),yield Q.writeBigVarInt(A.trackAlias),yield zs(Q,A.namespace),yield Q.writeString(A.name),yield Q.writeUnsigned8(A.subscriberPriority),yield Tl(Q,A.groupOrder),yield OI(Q,A.filterType),yield PQ(Q,A.params)})}const Ps={TrackEnded:3,Expired:6};function jI(Q){return d(this,null,function*(){const A=yield Q.readBigVarInt(),e=yield Q.readVarInt(),t=yield Q.readString(),B=(yield Q.readUnsigned8())==1;let F;return B&&(F={group:yield Q.readBigVarInt(),object:yield Q.readBigVarInt()}),{type:y.SubscribeDone,id:A,errorCode:e,reason:t,finalInfo:F}})}function qI(Q,A){return d(this,null,function*(){yield Q.writeBigVarInt(A.id),yield Q.writeVarInt(A.errorCode),yield Q.writeString(A.reason),yield Q.writeUnsigned8(A.finalInfo?1:0),A.finalInfo&&(yield Q.writeBigVarInt(A.finalInfo.group),yield Q.writeBigVarInt(A.finalInfo.object))})}function _I(Q){return d(this,null,function*(){return{type:y.SubscribeError,id:yield Q.readBigVarInt(),errorCode:yield Q.readBigVarInt(),reason:yield Q.readString(),trackAlias:yield Q.readBigVarInt()}})}function $I(Q,A){return d(this,null,function*(){yield Q.writeBigVarInt(A.id),yield Q.writeBigVarInt(A.errorCode),yield Q.writeString(A.reason),yield Q.writeBigVarInt(A.trackAlias)})}function Ac(Q){return d(this,null,function*(){const A=yield Q.readBigVarInt(),e=yield Q.readBigVarInt(),t=yield wl(Q),B=(yield Q.readUnsigned8())==1;let F;if(t=="inherit-publisher")throw new Error("SusbcribeOk cannot have inherit publisher group order");B&&(F={group:yield Q.readBigVarInt(),object:yield Q.readBigVarInt()});const n=yield zQ(Q);return{type:y.SubscribeOk,id:A,groupOrder:t,expires:e,largestInfo:F,params:n}})}function ec(Q,A){return d(this,null,function*(){yield Q.writeBigVarInt(A.id),yield Q.writeBigVarInt(A.expires),yield Tl(Q,A.groupOrder),yield Q.writeUnsigned8(A.largestInfo?1:0),A.largestInfo&&(yield Q.writeBigVarInt(A.largestInfo.group),yield Q.writeBigVarInt(A.largestInfo.object)),yield PQ(Q,A.params)})}function tc(Q){return d(this,null,function*(){const A=yield Q.readBigVarInt(),e=yield Q.readBigVarInt(),t=yield Q.readBigVarInt(),B=yield Q.readBigVarInt(),F=yield Q.readBigVarInt(),n=yield Q.readUnsigned8(),s=yield zQ(Q),a=e>B,r=e===B&&t>F;if(a||r)throw new Error("Invalid filter range");return{type:y.SubscribeUpdate,id:A,start:{group:e,object:t},end:{group:B,object:F},subscriberPriority:n,params:s}})}function Qc(Q,A){return d(this,null,function*(){yield Q.writeBigVarInt(A.id),yield Q.writeBigVarInt(A.start.group),yield Q.writeBigVarInt(A.start.object),yield Q.writeBigVarInt(A.end.group),yield Q.writeBigVarInt(A.end.object),yield Q.writeUnsigned8(A.subscriberPriority),yield PQ(Q,A.params)})}function ic(Q){return d(this,null,function*(){return{type:y.Unsubscribe,id:yield Q.readBigVarInt()}})}function Bc(Q,A){return d(this,null,function*(){yield Q.writeBigVarInt(A.id)})}class yl{constructor(A){o(this,EA);o(this,je);o(this,Ei,new Uint8Array);l(this,je,A)}write(A){return d(this,null,function*(){yield U(this,je).writeVarInt(A.type);const e=new JB({close:()=>{},readyState:hl.OPEN,send:t=>{l(this,Ei,new Uint8Array(t))}});switch(A.type){case y.Subscribe:yield I(this,EA,ed).call(this,e,A);break;case y.Announce:yield I(this,EA,Fd).call(this,e,A);break;case y.SubscribeOk:yield I(this,EA,td).call(this,e,A);break;case y.SubscribeUpdate:yield I(this,EA,id).call(this,e,A);break;case y.SubscribeError:yield I(this,EA,Qd).call(this,e,A);break;case y.SubscribeDone:yield I(this,EA,Bd).call(this,e,A);break;case y.Unsubscribe:yield I(this,EA,Ud).call(this,e,A);break;case y.ClientSetup:yield I(this,EA,$r).call(this,e,A);break;case y.ServerSetup:yield I(this,EA,Ad).call(this,e,A);break;case y.AnnounceOk:yield I(this,EA,nd).call(this,e,A);break;default:throw new Error(`Unknown message type: ${A.type}`)}yield e.flush(),yield U(this,je).writeVarInt(U(this,Ei).byteLength),yield U(this,je).write(U(this,Ei)),yield U(this,je).flush()})}close(){return d(this,null,function*(){return U(this,je).close()})}}je=new WeakMap,Ei=new WeakMap,EA=new WeakSet,$r=function(A,e){return d(this,null,function*(){yield LI(A,e)})},Ad=function(A,e){return d(this,null,function*(){yield YI(A,e)})},ed=function(A,e){return d(this,null,function*(){yield PI(A,e)})},td=function(A,e){return d(this,null,function*(){yield ec(A,e)})},Qd=function(A,e){return d(this,null,function*(){yield $I(A,e)})},id=function(A,e){return d(this,null,function*(){yield Qc(A,e)})},Bd=function(A,e){return d(this,null,function*(){yield qI(A,e)})},Ud=function(A,e){return d(this,null,function*(){yield Bc(A,e)})},Fd=function(A,e){return d(this,null,function*(){yield bI(A,e)})},nd=function(A,e){return d(this,null,function*(){yield MI(A,e)})};class Uc{constructor(A,e){o(this,gi);o(this,IU);o(this,cU);l(this,gi,A),l(this,IU,new yl(A)),l(this,cU,e)}write(A){return d(this,null,function*(){yield U(this,gi).write(U(this,cU)),yield U(this,IU).write(A)})}close(){return U(this,gi).close()}}gi=new WeakMap,IU=new WeakMap,cU=new WeakMap;function Fc(Q){return d(this,null,function*(){return{type:y.AnnounceError,namespace:yield $F(Q),errorCode:yield Q.readBigVarInt(),reason:yield Q.readString()}})}function nc(Q,A,e){return d(this,null,function*(){return{type:y.Unknown,messageType:A,payload:yield Q.read(e)}})}class fl{constructor(A){o(this,SA);l(this,SA,A)}cancel(){return U(this,SA).close()}read(){return d(this,null,function*(){const A=yield U(this,SA).readVarInt(),e=yield U(this,SA).readVarInt();switch(A){case y.ServerSetup:return xI(U(this,SA));case y.ClientSetup:return HI(U(this,SA));case y.Subscribe:return zI(U(this,SA));case y.SubscribeOk:return Ac(U(this,SA));case y.SubscribeDone:return jI(U(this,SA));case y.SubscribeError:return _I(U(this,SA));case y.SubscribeUpdate:return tc(U(this,SA));case y.Unsubscribe:return ic(U(this,SA));case y.Announce:return fI(U(this,SA));case y.AnnounceOk:return GI(U(this,SA));case y.AnnounceError:return Fc(U(this,SA))}return nc(U(this,SA),G(A),e)})}}SA=new WeakMap;const Ci=class Ci{constructor(A,e){o(this,Wn);o(this,CU);o(this,Ii);o(this,ci,new m);o(this,RU,new m);l(this,CU,A),l(this,Ii,e),U(this,ci).resolve()}write(A){return d(this,null,function*(){const e=yield I(this,Wn,sd).call(this);try{yield U(this,CU).write(A)}finally{e.resolve()}})}markPostHandshake(){U(this,RU).resolve()}postHandshake(){return U(this,RU).promise}read(){return d(this,null,function*(){return U(this,Ii).read()})}cancel(){return U(this,Ii).cancel()}static wrapWebsocket(A){const e=new ReadableStream(new ZI(A,U(Ci,pn))),t=new fl(new qF(new Uint8Array([]),e)),B=new Uc(new JB(A),new Uint8Array([0]));return new Ci(B,t)}static wrapWebTransport(A){const e=A.writable,t=A.readable;return new Ci(new yl(new Rl(e)),new fl(new qF(new Uint8Array,t)))}};CU=new WeakMap,Ii=new WeakMap,ci=new WeakMap,RU=new WeakMap,Wn=new WeakSet,sd=function(){const A=new m,e=U(this,ci).promise.then(()=>A);return l(this,ci,A),e},pn=new WeakMap,o(Ci,pn,0);let tn=Ci;function bl(Q,A){return d(this,null,function*(){yield Q.write({type:y.ClientSetup,supportedVersions:[{type:"known",value:Dl.Draft07}],parameters:new Map([[en.Role,{type:en.Role,payload:new Uint8Array([A])}]])});const e=yield Q.read();if(Q.markPostHandshake(),e.type!==y.ServerSetup)throw new Error("Expected server setup message");if(e.selectedVersion.type!=="known")throw new Error("Expected known version")})}class sc{constructor(A){i(this,"announce");o(this,Ri,new m);this.announce=A}onOk(A){U(this,Ri).resolve(A)}onError(A){const e=new Error(A.reason);return U(this,Ri).reject(e),e}ok(){return U(this,Ri).promise}}Ri=new WeakMap;function ac(Q){const A=new sc(Q);return new oc(A)}class oc{constructor(A){i(this,"state");this.state=A}}const Si=class Si{constructor(A){i(this,"subscribe");o(this,hi,new m);o(this,ct,new m);o(this,aQ,new m);o(this,Dn,Date.now());o(this,oQ,new m);o(this,Ie);switch(this.subscribe=A,A.filterType.type){case"absolute-start":l(this,Ie,{startGroup:A.filterType.start.group});break;case"absolute-range":l(this,Ie,{startGroup:A.filterType.start.group,endGroup:A.filterType.end.group});break}}onUpdate(A){l(this,Ie,{startGroup:A.start.group}),A.end.group>G(0)&&(U(this,Ie).endGroup=A.end.group-G(1))}onError(A){const e=new Error(A.reason);return U(this,hi).reject(e),U(this,ct).reject(e),e}onDone(A){A.finalInfo&&(U(this,Ie)||l(this,Ie,{startGroup:G(0)}),U(this,Ie).endGroup=A.finalInfo.group),U(this,ct).resolve(A)}onUnsubscribe(A){U(this,aQ).resolve(A)}onOk(A){const e=Math.max(0,Date.now()-U(this,Dn)),t=Number(A.expires);if(t>0){const B=Math.max(Si.minGraceTime,Math.min(t/10,Si.maxGraceTime));Promise.race([vt(t-B-e),this.done().catch(V)]).then(()=>U(this,oQ).resolve(this.expiryState())).catch(V)}U(this,hi).resolve(A)}done(){return U(this,ct).promise}ok(){return U(this,hi).promise}range(){return U(this,Ie)}close(){U(this,oQ).promise.catch(V),U(this,oQ).reject(new Error("Subscription closed"))}expiryState(){return U(this,ct).resolved&&U(this,ct).resolved.errorCode!==Ps.Expired?"done":U(this,aQ).pending?"active":"unsubscribed"}unsubscribed(){return U(this,aQ).promise}isUnsubscribed(){return U(this,aQ).resolved}expiryNotification(){return U(this,oQ).promise}};hi=new WeakMap,ct=new WeakMap,aQ=new WeakMap,Dn=new WeakMap,oQ=new WeakMap,Ie=new WeakMap,i(Si,"maxGraceTime",15e3),i(Si,"minGraceTime",3e3);let Qn=Si;class lc{constructor(A){o(this,TA);o(this,hU,!1);l(this,TA,A)}write(A){return d(this,null,function*(){U(this,hU)||(yield U(this,TA).writeVarInt(jF.StreamHeaderGroup),yield U(this,TA).writeBigVarInt(A.subscribeId),yield U(this,TA).writeBigVarInt(A.trackAlias),yield U(this,TA).writeBigVarInt(A.groupId),yield U(this,TA).writeBigVarInt(A.subGroupId),yield U(this,TA).writeUnsigned8(A.subscriberPriority),l(this,hU,!0)),yield U(this,TA).writeBigVarInt(A.objectId),yield U(this,TA).writeVarInt(A.payload.length),A.payload.length>0?yield U(this,TA).write(A.payload):yield U(this,TA).writeVarInt(A.objectStatus),yield U(this,TA).flush()})}close(){return d(this,null,function*(){yield U(this,TA).close()})}}TA=new WeakMap,hU=new WeakMap;class rc{constructor(A,e,t,B){o(this,Zn);o(this,SU);o(this,te);o(this,JU);o(this,VU);o(this,Ji);o(this,uU);l(this,SU,e),l(this,te,A),l(this,JU,t),l(this,VU,B),l(this,uU,WA.get().createContext(`SubscriptionWriter:${A.subscribe.name}`))}finalInfo(){return U(this,Ji)}run(){return d(this,null,function*(){yield Promise.race([I(this,Zn,ad).call(this).catch(A=>U(this,uU).error("error writing subscription",A)),U(this,te).unsubscribed(),U(this,te).done(),U(this,te).expiryNotification().catch(V)])})}done(A,e){return d(this,null,function*(){if(U(this,te).isUnsubscribed())return;const t={type:y.SubscribeDone,id:U(this,te).subscribe.id,errorCode:A,reason:e,finalInfo:U(this,Ji)};U(this,te).onDone(t),yield U(this,VU).push(t)})}[ke()](){return this.done(Ps.TrackEnded,"Track ended")}[Symbol.asyncDispose](){return this.done(Ps.TrackEnded,"Track ended")}}SU=new WeakMap,te=new WeakMap,JU=new WeakMap,VU=new WeakMap,Ji=new WeakMap,uU=new WeakMap,Zn=new WeakSet,ad=function(){return d(this,null,function*(){try{for(var n=rA(U(this,SU)),s,a,r;s=!(a=yield n.next()).done;s=!1){const E=a.value;var A=[];try{const g=U(this,te).range();if(g&&(g.startGroup>E.id||g.endGroup&&g.endGroup<E.id))break;const c=yield U(this,JU).openSendStream();const J=new lc(c);const u=ne(A,new dc(J,E.consume(),U(this,te)),!0);yield u.run();l(this,Ji,u.finalGroup())}catch(e){var t=e,B=!0}finally{var F=se(A,t,B);F&&(yield F)}}}catch(a){r=[a]}finally{try{s&&(a=n.return)&&(yield a.call(n))}finally{if(r)throw r[0]}}})};class dc{constructor(A,e,t){o(this,lQ);o(this,kU);o(this,Vi);o(this,NU);o(this,ui);l(this,lQ,A),l(this,kU,e),l(this,Vi,t),l(this,ui,WA.get().createContext(`GroupSubscriptionWriter:${t.subscribe.name}`))}finalGroup(){return U(this,NU)}run(){return d(this,null,function*(){U(this,ui).debug("write group");try{for(var A=rA(U(this,kU)),e,t,B;e=!(t=yield A.next()).done;e=!1){const F=t.value;yield U(this,lQ).write({subscribeId:U(this,Vi).subscribe.id,trackAlias:U(this,Vi).subscribe.trackAlias,subGroupId:G(0),subscriberPriority:0,groupId:F.groupId,objectId:F.objectId,objectStatus:F.objectStatus,payload:F.payload}),l(this,NU,{group:F.groupId,object:F.objectId})}}catch(t){B=[t]}finally{try{e&&(t=A.return)&&(yield t.call(A))}finally{if(B)throw B[0]}}U(this,ui).debug("write group done")})}[ke()](){return U(this,lQ).close().catch(V)}[Symbol.asyncDispose](){return U(this,lQ).close().catch(V)}}lQ=new WeakMap,kU=new WeakMap,Vi=new WeakMap,NU=new WeakMap,ui=new WeakMap;class Ec{constructor(A,e,t){o(this,Ct);i(this,"state");o(this,mU);o(this,rQ);this.state=A,l(this,mU,e),l(this,rQ,t)}ok(A){return d(this,null,function*(){var a,r,E;const e=(a=this.state.range())==null?void 0:a.startGroup,t=A.latest(),B=t==null?void 0:t.id,F=(E=(r=t==null?void 0:t.latest())==null?void 0:r.objectId)!=null?E:G(0),n=A.consume(e!=null?e:B),s={type:y.SubscribeOk,id:this.state.subscribe.id,expires:G(0),groupOrder:"ascending",params:new Map,largestInfo:B?{group:B,object:F}:void 0};return yield U(this,rQ).push(s),new rc(this.state,n,U(this,mU),U(this,rQ))})}invalidRange(){return I(this,Ct,dB).call(this,G(1),"Invalid range")}retryTrackAlias(){return I(this,Ct,dB).call(this,G(2),"Retry track alias")}trackDoesNotExist(){return I(this,Ct,dB).call(this,G(3),"Track does not exist")}unauthorized(){return I(this,Ct,dB).call(this,G(4),"Unauthorized")}timeout(){return I(this,Ct,dB).call(this,G(5),"Timeout")}[ke()](){return this.trackDoesNotExist()}[Symbol.asyncDispose](){return this.trackDoesNotExist()}}mU=new WeakMap,rQ=new WeakMap,Ct=new WeakSet,dB=function(A,e){const t={type:y.SubscribeError,id:this.state.subscribe.id,errorCode:A,reason:e,trackAlias:this.state.subscribe.trackAlias};return U(this,rQ).push(t)},Jr=[xA({context:"Session",enter:"info",error:"error"})];class js{constructor(A,e,t){GQ(Ka,5,this);o(this,ki);o(this,WU);o(this,Ni);o(this,dQ,WA.get().createContext("Publisher"));o(this,Rt,new bA(new Map));o(this,ht,new bA(new Map));o(this,St,new q(10));l(this,ki,A),l(this,WU,e),l(this,Ni,t)}announce(A){return d(this,null,function*(){if(U(this,Rt).current().has(A.join("/")))throw new Error("Duplicate announcement");const e=new Map,t=U(this,ki).authToken();t&&e.set(An,{type:An,payload:new TextEncoder().encode(t)});const B={type:y.Announce,namespace:A,params:e},F=ac(B);if(U(this,Rt).update(s=>s.set(B.namespace.join("/"),F)),yield U(this,Ni).push(B),!(yield Promise.race([F.state.ok(),U(this,ki).closed()])))throw new Error("Session closed")})}close(){U(this,ht).current().forEach(A=>A.close()),U(this,ht).close(),U(this,Rt).close(),U(this,St).close()}incomingSubscriptions(){return U(this,St)}onMessage(A){return d(this,null,function*(){switch(A.type){case y.Subscribe:{const e=new Qn(A);if(U(this,ht).update(t=>(t.set(A.id,e),t)),U(this,St).isFull()){const t=yield U(this,St).pop();yield t==null?void 0:t.timeout()}yield U(this,St).push(new Ec(e,U(this,WU),U(this,Ni)))}break;case y.SubscribeUpdate:{const e=U(this,ht).current().get(A.id);e||U(this,dQ).debug("No subscription found",A),e==null||e.onUpdate(A)}break;case y.Unsubscribe:{const e=U(this,ht).current().get(A.id);e||U(this,dQ).debug("No subscription found",A),e==null||e.onUnsubscribe(A)}break;case y.AnnounceOk:{const e=U(this,Rt).current().get(A.namespace.join("/"));e||U(this,dQ).debug("No announcement found",A),e==null||e.state.onOk(A)}break;case y.AnnounceError:{const e=U(this,Rt).current().get(A.namespace.join("/"));e||U(this,dQ).debug("No announcement found",A),e==null||e.state.onError(A)}break}})}}Ka=bQ(null),ki=new WeakMap,WU=new WeakMap,Ni=new WeakMap,dQ=new WeakMap,Rt=new WeakMap,ht=new WeakMap,St=new WeakMap,YA(Ka,1,"announce",Jr,js),ft(Ka,js);function gc(Q,A){const e=new Qn(A),[t,B]=z(100),F=new Ic(e,t),n=new Gl(Q,e,B);return[F,n]}class Ic{constructor(A,e){i(this,"state");o(this,EQ);this.state=A,l(this,EQ,e)}onDone(A){this.state.onDone(A)}onData(A){return U(this,EQ).push(A)}onError(A){const e=this.state.onError(A);U(this,EQ).abort(e)}close(){this.state.close(),U(this,EQ).close()}}EQ=new WeakMap;class Gl{constructor(A,e,t){GQ(Oa,5,this);o(this,Di);o(this,mi);o(this,mA);o(this,Wi);o(this,pi,new m);l(this,mi,A),l(this,mA,e),l(this,Wi,t)}get id(){return U(this,mA).subscribe.id}get trackAlias(){return U(this,mA).subscribe.trackAlias}get name(){return U(this,mA).subscribe.name}range(){return U(this,mA).range()}expiryNotification(){return U(this,mA).expiryNotification()}update(A,e){return d(this,null,function*(){const t={type:y.SubscribeUpdate,id:U(this,mA).subscribe.id,start:{group:A,object:G(0)},end:{group:e+G(1),object:G(0)},params:new Map,subscriberPriority:0};U(this,mA).onUpdate(t),yield U(this,mi).push(t)})}unsubscribe(){return d(this,null,function*(){const A={type:y.Unsubscribe,id:U(this,mA).subscribe.id};U(this,mA).onUnsubscribe(A),yield U(this,mi).push(A)})}close(){var A,e;return U(this,pi).resolve(),(e=(A=U(this,Wi)).return)==null?void 0:e.call(A)}closed(){return U(this,pi).promise}done(){return U(this,mA).done()}expiryState(){return U(this,mA).expiryState()}unsubscribed(){return U(this,mA).isUnsubscribed()}return(){return d(this,null,function*(){return U(this,pi).resolve(),yield this.unsubscribe(),{done:!0,value:void 0}})}groups(){return Ft(this,null,function*(){var A,e;try{for(var J=rA(U(this,Wi)),u,D,T;u=!(D=yield new lA(J.next())).done;u=!1){var s=D.value;var a=[];try{const L=ne(a,s,!0);try{for(var t=rA(L.groups()),B,F,n;B=!(F=yield new lA(t.next())).done;B=!1){const Z=F.value;const M=(A=U(this,mA).range())==null?void 0:A.startGroup,H=(e=U(this,mA).range())==null?void 0:e.endGroup;if(M&&Z.groupId()<M)return{done:!0,value:void 0};if(H&&Z.groupId()>H)return{done:!0,value:void 0};yield Z}}catch(F){n=[F]}finally{try{B&&(F=t.return)&&(yield new lA(F.call(t)))}finally{if(n)throw n[0]}}}catch(r){var E=r,g=!0}finally{var c=se(a,E,g);c&&(yield new lA(c))}}}catch(D){T=[D]}finally{try{u&&(D=J.return)&&(yield new lA(D.call(J)))}finally{if(T)throw T[0]}}})}[Symbol.asyncIterator](){return this.groups()}objects(){return Ft(this,null,function*(){try{for(var F=rA(this.groups()),n,s,a;n=!(s=yield new lA(F.next())).done;n=!1){const r=s.value;try{for(var A=rA(r),e,t,B;e=!(t=yield new lA(A.next())).done;e=!1){const E=t.value;yield E}}catch(t){B=[t]}finally{try{e&&(t=A.return)&&(yield new lA(t.call(A)))}finally{if(B)throw B[0]}}}}catch(s){a=[s]}finally{try{n&&(s=F.return)&&(yield new lA(s.call(F)))}finally{if(a)throw a[0]}}})}[(Vr=[xA({context:"SubscriptionConsumer",enter:"info"})],ke())](){return I(this,Di,RF).call(this)}[Symbol.asyncDispose](){return I(this,Di,RF).call(this)}}Oa=bQ(null),mi=new WeakMap,mA=new WeakMap,Wi=new WeakMap,pi=new WeakMap,Di=new WeakSet,RF=function(){return d(this,null,function*(){return yield this.close(),this.unsubscribe()})},RF=YA(Oa,17,"#dispose",Vr,Di,RF),ft(Oa,Gl);const cc=2e3;mr=[xA({context:"Session",return:"debug"})],Nr=[xA({context:"Session",enter:"info",error:"error"})],kr=[xA({context:"Session",enter:"debug"})],ur=[xA({context:"Session",enter:"debug"})];class Bn{constructor(A,e){GQ(Zi,5,this);o(this,Te);o(this,qe);i(this,"nextSubscribeId",G(0));o(this,PA,new bA(new Map));o(this,gQ);o(this,IQ,WA.get().createContext("Subscriber"));l(this,qe,A),l(this,gQ,e),I(this,Te,cs).call(this).catch(V)}subscribe(A,e){return d(this,null,function*(){const t=this.nextSubscribeId++,B=new Map,F=U(this,qe).authToken();F&&B.set(An,{type:An,payload:new TextEncoder().encode(F)});const n={type:y.Subscribe,namespace:A,name:e.name,id:t,trackAlias:t,groupOrder:e.groupOrder,subscriberPriority:e.priority,filterType:e.filterType,params:B},[s,a]=gc(U(this,gQ),n);if(U(this,PA).update(E=>E.set(t,s)),yield U(this,gQ).push(n),!(yield Promise.race([s.state.ok(),U(this,qe).closed()])))throw new Error("Session closed");return a.closed().then(()=>Promise.race([vt(cc),this.closed()])).then(()=>I(this,Te,EB).call(this,a.id)).catch(()=>I(this,Te,EB).call(this,a.id)),a})}closed(){return U(this,qe).closed()}transportType(){return U(this,qe).transportType()}url(){return U(this,qe).url()}onMessage(A){return d(this,null,function*(){switch(A.type){case y.Announce:yield U(this,gQ).push({type:y.AnnounceOk,namespace:A.namespace});break;case y.SubscribeOk:{const e=U(this,PA).current().get(A.id);e&&e.state.onOk(A)}break;case y.SubscribeError:{const e=U(this,PA).current().get(A.id);e||U(this,IQ).debug("No subscription found",A),e==null||e.onError(A),I(this,Te,EB).call(this,A.id)}break;case y.SubscribeDone:{const e=U(this,PA).current().get(A.id);e||U(this,IQ).debug("No subscription found",A),e==null||e.onDone(A)}break}})}onObjectReader(A){return d(this,null,function*(){const e=U(this,PA).current().get(A.subscribeId());if(!e){U(this,IQ).warn("No subscription found",A.subscribeId());return}yield e.onData(A)})}close(){U(this,PA).current().forEach(A=>A.close()),U(this,PA).close()}}Zi=bQ(null),qe=new WeakMap,PA=new WeakMap,gQ=new WeakMap,IQ=new WeakMap,Te=new WeakSet,cs=function(){return d(this,null,function*(){try{for(var A=rA(U(this,PA)),e,t,B;e=!(t=yield A.next()).done;e=!1){const F=t.value;const n=[...F.values()].map(s=>s.state.subscribe);U(this,IQ).debug("current subscriptions",n)}}catch(t){B=[t]}finally{try{e&&(t=A.return)&&(yield t.call(A))}finally{if(B)throw B[0]}}})},EB=function(A){U(this,PA).isClosed()||U(this,PA).update(e=>(e.delete(A),e))},cs=YA(Zi,17,"#observeChanges",mr,Te,cs),YA(Zi,1,"subscribe",Nr,Bn),YA(Zi,1,"close",kr,Bn),EB=YA(Zi,17,"#deleteSubscription",ur,Te,EB),ft(Zi,Bn);class qs{constructor(A,e){GQ(yi,5,this);o(this,JA);o(this,ce);o(this,pU);o(this,cQ);o(this,wi,WA.get().createContext("Session"));i(this,"subscriber");i(this,"publisher");o(this,Ti);const[t,B]=z(100);l(this,ce,A),l(this,cQ,B),this.subscriber=new Bn(this,t),this.publisher=new js(this,A,t),l(this,pU,I(this,JA,ld).call(this)),l(this,Ti,new bA(e)),this.closed().then(()=>this.close()).catch(V)}updateAuthToken(A){U(this,Ti).update(A)}authToken(){return U(this,Ti).current()}transportType(){return U(this,ce).transportType()}url(){return U(this,ce).url()}closed(){return U(this,pU)}close(){try{this.subscriber.close(),this.publisher.close(),U(this,cQ).cancel("closing"),U(this,ce).close()}catch(A){U(this,wi).warn("Error closing session",A)}}[(Zr=[xA({context:"Session",return:"info",error:"error"})],Dr=[xA({context:"Session",return:"info",error:"error"})],pr=[xA({context:"Session",return:"info",error:"error"})],Wr=[xA({context:"Session",enter:"debug"})],ho())](){I(this,JA,hF).call(this)}[Symbol.dispose](){I(this,JA,hF).call(this)}}yi=bQ(null),ce=new WeakMap,pU=new WeakMap,cQ=new WeakMap,wi=new WeakMap,Ti=new WeakMap,JA=new WeakSet,od=function(A){return d(this,null,function*(){var e,t;switch(U(this,wi).debug("received message",A),yield(e=this.subscriber)==null?void 0:e.onMessage(A),yield(t=this.publisher)==null?void 0:t.onMessage(A),A.type){case y.Goaway:break}})},ld=function(){return d(this,null,function*(){return(yield Promise.all([I(this,JA,Rs).call(this),I(this,JA,hs).call(this),I(this,JA,Cs).call(this)])).find(e=>e instanceof Error)})},Cs=function(){return d(this,null,function*(){try{try{for(var A=rA(U(this,cQ)),e,t,B;e=!(t=yield A.next()).done;e=!1){const F=t.value;U(this,wi).debug("sending message",F),yield U(this,ce).writeMessage(F)}}catch(t){B=[t]}finally{try{e&&(t=A.return)&&(yield t.call(A))}finally{if(B)throw B[0]}}}catch(F){return F}})},Rs=function(){return d(this,null,function*(){try{for(yield U(this,ce).afterHandshake();;){const A=yield U(this,ce).readMessage().catch(()=>{});if(!A)break;yield I(this,JA,od).call(this,A)}}catch(A){return A}finally{U(this,cQ).cancel("closing")}})},hs=function(){return d(this,null,function*(){var A;try{for(;;){const e=yield U(this,ce).objectStream();if(!e)break;yield(A=this.subscriber)==null?void 0:A.onObjectReader(e)}}catch(e){return e}})},hF=function(){this.close()},Cs=YA(yi,17,"#runOutgoingMessages",Zr,JA,Cs),Rs=YA(yi,17,"#runControl",Dr,JA,Rs),hs=YA(yi,17,"#runObjects",pr,JA,hs),hF=YA(yi,17,"#dispose",Wr,JA,hF),ft(yi,qs);const Cc=128;class Rc{constructor(A,e,t){o(this,yA);o(this,Qe);o(this,DU);o(this,CQ,!0);o(this,fi,!1);o(this,ZU);l(this,Qe,A),l(this,DU,e),l(this,ZU,t)}writeUnsigned8(A){return d(this,null,function*(){return I(this,yA,vQ).call(this),yield I(this,yA,LQ).call(this),U(this,Qe).writeUnsigned8(A)})}writeVarInt(A){return d(this,null,function*(){return I(this,yA,vQ).call(this),yield I(this,yA,LQ).call(this),U(this,Qe).writeVarInt(A)})}writeBigVarInt(A){return d(this,null,function*(){return I(this,yA,vQ).call(this),yield I(this,yA,LQ).call(this),U(this,Qe).writeBigVarInt(A)})}write(A){return d(this,null,function*(){return I(this,yA,vQ).call(this),yield I(this,yA,LQ).call(this),U(this,Qe).write(A)})}writeString(A){return d(this,null,function*(){return I(this,yA,vQ).call(this),yield I(this,yA,LQ).call(this),U(this,Qe).writeString(A)})}flush(){return d(this,null,function*(){I(this,yA,vQ).call(this),l(this,CQ,!0),yield U(this,Qe).flush()})}close(){return d(this,null,function*(){U(this,fi)||(l(this,CQ,!0),yield I(this,yA,LQ).call(this,!1),yield U(this,Qe).flush(),l(this,fi,!0),U(this,ZU).call(this))})}}Qe=new WeakMap,DU=new WeakMap,CQ=new WeakMap,fi=new WeakMap,ZU=new WeakMap,yA=new WeakSet,vQ=function(){if(U(this,fi))throw new Error("Stream is closed")},LQ=function(A=!0){if(U(this,CQ))return l(this,CQ,!1),U(this,Qe).writeUnsigned8(U(this,DU)|(A?Cc:0))};class hc{constructor(A,e){o(this,wn);o(this,Jt);o(this,_e);o(this,bi);o(this,RQ);o(this,$e,new Map);o(this,Gi,WA.get().createContext("WebSocketConnection"));o(this,Mi,new Set(new Array(128).fill(0).map((A,e)=>e+1)));l(this,Jt,A),l(this,_e,e),l(this,bi,new ReadableStream(new wI(A))),U(this,Jt).addEventListener("close",()=>{U(this,_e).markPostHandshake(),U(this,$e).forEach(t=>t.close())})}openSendStream(){const A=U(this,Mi).values().next().value;if(!A)throw new Error("No stream IDs available");return U(this,Mi).delete(A),Promise.resolve(new Rc(new JB(U(this,Jt)),A,()=>I(this,wn,rd).call(this,A)))}transportType(){return"websocket"}url(){return U(this,Jt).url}afterHandshake(){return U(this,_e).postHandshake()}objectStream(){return d(this,null,function*(){var A;for(;;){l(this,RQ,U(this,bi).getReader());try{const{value:e,done:t}=yield U(this,RQ).read();if(t)return;const[B,F,n]=e;if(U(this,$e).has(G(F))){const s=U(this,$e).get(G(F));if(!s)throw new Error("Stream not found");n.length>0&&(yield s.push(n)),B||(U(this,Gi).debug("Closing stream",{streamId:F}),s.close(),U(this,$e).delete(G(F)))}else{let E;U(this,Gi).debug("Creating new stream",{streamId:F});const[s,a]=z(1e3),r=new ReadableStream({pull(g){return d(this,null,function*(){const c=yield a.pop();c?g.enqueue(c):g.close()})}});if(U(this,$e).set(G(F),s),B||(U(this,Gi).debug("Closing new stream",{streamId:F}),yield r.cancel(),U(this,$e).delete(G(F))),n.length>0)return yield Cl(new qF(n,r),F)}}finally{(A=U(this,RQ))==null||A.releaseLock()}}})}close(){var A;return U(this,_e).cancel().catch(V),U(this,bi).cancel("closing").catch(V),(A=U(this,RQ))==null||A.cancel("closing").catch(V),U(this,Jt).close()}closed(){return Promise.resolve()}writeMessage(A){return d(this,null,function*(){yield U(this,_e).write(A)})}readMessage(){return d(this,null,function*(){return U(this,_e).read()})}}Jt=new WeakMap,_e=new WeakMap,bi=new WeakMap,RQ=new WeakMap,$e=new WeakMap,Gi=new WeakMap,Mi=new WeakMap,wn=new WeakSet,rd=function(A){U(this,Mi).add(A)};class Sc{constructor(A,e,t){o(this,yn);o(this,Vt);o(this,ut);o(this,hQ,new q(100));o(this,wU);o(this,TU,0);o(this,Tn,WA.get().createContext("WebTransportConnection"));l(this,wU,t),l(this,Vt,A),l(this,ut,e),I(this,yn,dd).call(this).catch(B=>{U(this,Tn).debug("Incoming streams handling ended with error",B),U(this,ut).markPostHandshake(),U(this,hQ).close()})}openSendStream(){return d(this,null,function*(){const A=yield U(this,Vt).createUnidirectionalStream();return new Rl(A)})}transportType(){return"webtransport"}url(){return U(this,wU)}afterHandshake(){return U(this,ut).postHandshake()}closed(){return d(this,null,function*(){yield U(this,Vt).closed})}close(){U(this,Vt).close()}writeMessage(A){return d(this,null,function*(){yield U(this,ut).write(A)})}readMessage(){return d(this,null,function*(){return U(this,ut).read()})}objectStream(){return d(this,null,function*(){return U(this,hQ).pop()})}}Vt=new WeakMap,ut=new WeakMap,hQ=new WeakMap,wU=new WeakMap,TU=new WeakMap,Tn=new WeakMap,yn=new WeakSet,dd=function(){return d(this,null,function*(){const A=U(this,Vt).incomingUnidirectionalStreams.getReader();for(;;){const{value:e,done:t}=yield A.read();if(t){U(this,hQ).close();return}const B=new qF(new Uint8Array,e);yield U(this,hQ).push(Cl(B,U(this,TU))),ue(this,TU)._++}})};function _s(Q){return d(this,null,function*(){const A=new WebSocket(Q.wsUrl||Q.url);A.binaryType="arraybuffer",yield new Promise((F,n)=>{A.addEventListener("error",()=>n(new Error("WebSocket error")),{once:!0}),A.addEventListener("open",F,{once:!0})});const e=tn.wrapWebsocket(A);bl(e,Q.role).catch(()=>{A.close()});const t=new hc(A,e);return new qs(t,Q.authToken)})}function Jc(Q){return d(this,null,function*(){const A="60b82e8021689e163c1041b4475ef9c86e7565bc45d1a0aa43f5148769f461c7",e=new Uint8Array(A.length/2);for(let a=0;a<e.length;a+=1)e[a]=parseInt(A.slice(2*a,2*a+2),16);const t=new WebTransport(Q.url,{congestionControl:"low-latency"});yield Promise.race([t.ready,t.closed.then(()=>Promise.reject(new Error("WebTransport closed")))]);const B=yield t.createBidirectionalStream(),F=tn.wrapWebTransport(B);bl(F,Q.role).catch(()=>{t.close()});const n=new Sc(t,F,Q.url.toString());return new qs(n,Q.authToken)})}function Vc(Q){return d(this,null,function*(){if(self.WebTransport&&(Q==null?void 0:Q.preferredTransport)!=="websocket"&&Q.url.protocol.startsWith("https")){const A=Jc(Q).catch(()=>_s(Q)),e=yield Promise.race([A,vt(Q.websocketFallbackTimeoutMs)]);return e||_s(Q)}return _s(Q)})}class xe{constructor(){o(this,At,{name:"",priority:0,groupOrder:"descending",filterType:{type:"latest-group"}})}name(A){return U(this,At).name=A,this}priority(A){return U(this,At).priority=A,this}groupOrder(A){return U(this,At).groupOrder=A,this}startGroup(A){return U(this,At).filterType={type:"absolute-start",start:{group:A,object:G(0)}},this}range(A,e){return U(this,At).filterType={type:"absolute-range",start:{group:A,object:G(0)},end:{group:e,object:G(0)}},this}build(){return U(this,At)}}At=new WeakMap;class Ml{constructor(A,e){o(this,vi);o(this,yU);l(this,vi,A),l(this,yU,e)}subscribe(A){return U(this,vi).subscribe(this.namespace(),A)}closed(){return U(this,vi).closed()}namespace(){return U(this,yU).namespace}}vi=new WeakMap,yU=new WeakMap;function uc(Q,A){return["com.vindral.moq",Q]}function Xt(Q){const A=Q[1];if(!A)throw new Error("namespace must contain a channel ID");return A}function kc(Q){return"tracks"in Q}function Nc(Q){const A=new TextDecoder().decode(Q);return JSON.parse(A)}const za=class za{constructor(A,e){o(this,bU);o(this,jA);o(this,ye);o(this,SQ,new w(100));o(this,ie);o(this,fU);o(this,fn,A=>d(this,null,function*(){if(!A)return U(this,jA).close();if(U(this,ie))return;const e=U(this,SQ).items().reduce((t,B)=>t<B?t:B,A);l(this,ie,I(this,bU,lo).call(this,e,A)),U(this,ie).size===0&&(yield U(this,jA).close())}));l(this,jA,A),l(this,ye,e),A.done().then(t=>d(this,null,function*(){var B;return U(this,fn).call(this,(B=t.finalInfo)==null?void 0:B.group)})).catch(V),l(this,fU,A.groups())}static subscribe(A,e){return d(this,null,function*(){const t=yield A.subscribe(e);return new za(t,void 0)})}subscribeId(){return U(this,jA).id}name(){return U(this,jA).name}largestGroupId(){return U(this,ye)}needsRenewal(){return U(this,jA).expiryState()==="active"&&U(this,ie)===void 0}endOfTrack(A){const e=U(this,SQ).items().reduce((t,B)=>t<B?t:B,A);return this.update(e,A)}update(A,e){return d(this,null,function*(){return l(this,ie,I(this,bU,lo).call(this,A,e)),U(this,ie).size===0&&(yield U(this,jA).close()),U(this,jA).update(A,e)})}unsubscribe(){return U(this,jA).unsubscribe()}next(){return d(this,null,function*(){var t;if(U(this,ie)&&U(this,ie).size===0)return{done:!0,value:void 0};const A=yield U(this,fU).next();if(A.done)return A;const e=A.value.groupId();return(t=U(this,ie))==null||t.delete(e),U(this,SQ).push(e),U(this,ye)||l(this,ye,e),l(this,ye,U(this,ye)<e?e:U(this,ye)),A})}return(){return U(this,jA).return()}[Symbol.asyncIterator](){return this}};jA=new WeakMap,ye=new WeakMap,SQ=new WeakMap,ie=new WeakMap,fU=new WeakMap,fn=new WeakMap,bU=new WeakSet,lo=function(A,e){const t=new Set;for(let B=A;B<=e;B++)t==null||t.add(B);return U(this,SQ).items().forEach(B=>{t==null||t.delete(B)}),t};let Un=za;const Pa=class Pa{constructor(A){o(this,GU);o(this,Ce);o(this,JQ);o(this,et,new q(10));o(this,fe);o(this,MU,(A,e)=>d(this,null,function*(){var g=[];try{const t=ne(g,yield U(this,Ce).lock());const B={subscribeId:t.value.subscribeId()};if(!t.value.needsRenewal()){U(this,fe).debug("Subscription does not need renewal",B);return}const F=t.value.largestGroupId();const n=F!==void 0;const s=new xe().name(e.name).priority(e.priority).groupOrder(e.groupOrder);B.largestGroupId=F;U(this,fe).debug("Renewing subscription",B);switch(e.filterType.type){case"absolute-range":U(this,fe).debug("Absolute range is not renewed",B);return;case"absolute-start":case"latest-group":case"latest-object":n&&s.startGroup(F+G(1));break}const a=s.build();B.newTrack=a;const[r]=yield Promise.all([A.subscribe(a),n?t.value.update(F,F):t.value.unsubscribe()]);r.done().then(()=>I(this,GU,ro).call(this,r)).catch(V);r.expiryNotification().then(()=>U(this,MU).call(this,A,a)).catch(V);const E=new Un(r,F);t.value=E;yield U(this,et).push(E);U(this,fe).info("Subscription renewed",B)}catch(c){var J=c,u=!0}finally{se(g,J,u)}}));l(this,Ce,new Kd(A)),l(this,JQ,A),l(this,fe,WA.get().createContext(`Renewable '${A.name()}'`))}static subscribe(A,e,t){return d(this,null,function*(){const B=yield A.subscribe(e),F=new Pa(new Un(B,t));return B.done().then(()=>{var n;return I(n=F,GU,ro).call(n,B)}).catch(V),B.expiryNotification().then(()=>{var n;return U(n=F,MU).call(n,A,e)}).catch(V),F})}largestGroupId(){return U(this,Ce).unsafeValue().largestGroupId()}update(A,e){return d(this,null,function*(){var B=[];try{const t=ne(B,yield U(this,Ce).lock());U(this,et).close();return t.value.update(A,e)}catch(F){var n=F,s=!0}finally{se(B,n,s)}})}endOfTrack(A){return d(this,null,function*(){var t=[];try{const e=ne(t,yield U(this,Ce).lock());U(this,et).close();return e.value.endOfTrack(A)}catch(B){var F=B,n=!0}finally{se(t,F,n)}})}unsubscribe(){return d(this,null,function*(){var e=[];try{const A=ne(e,yield U(this,Ce).lock());U(this,et).close();return A.value.unsubscribe()}catch(t){var B=t,F=!0}finally{se(e,B,F)}})}return(){return d(this,null,function*(){var e=[];try{const A=ne(e,yield U(this,Ce).lock());U(this,et).close();return A.value.return()}catch(t){var B=t,F=!0}finally{se(e,B,F)}})}next(){return d(this,null,function*(){var e,t;const A=yield U(this,JQ).next();if(A.done){yield(t=(e=U(this,JQ)).return)==null?void 0:t.call(e);const B=yield U(this,et).pop();if(B)return l(this,JQ,B),this.next()}return A})}[Symbol.asyncIterator](){return this}objects(){return Ft(this,null,function*(){try{for(var s=rA(this),a,r,E;a=!(r=yield new lA(s.next())).done;a=!1){var A=r.value;var e=[];try{const g=ne(e,A,!0);yield*Fo(g)}catch(t){var B=t,F=!0}finally{var n=se(e,B,F);n&&(yield new lA(n))}}}catch(r){E=[r]}finally{try{a&&(r=s.return)&&(yield new lA(r.call(s)))}finally{if(E)throw E[0]}}})}};Ce=new WeakMap,JQ=new WeakMap,et=new WeakMap,fe=new WeakMap,GU=new WeakSet,ro=function(A){return d(this,null,function*(){var e;if(A.unsubscribed()||(e=A.range())!=null&&e.endGroup){U(this,fe).info("Server initiated subscribe done but the subscription is already closing");return}if(U(this,Ce).unsafeValue().subscribeId()!==A.id){U(this,fe).info("subscribeId mismatch - the subscription already has been renewed");return}return this.return()})},MU=new WeakMap;let at=Pa;const mc="catalog";function vl(Q){const A=Nc(Q.payload);if(!kc(A))throw new Error("unexpected catalog type");return A}const Gn=class Gn{constructor(A,e,t){o(this,bn);o(this,kt);o(this,vU);o(this,LU);o(this,HU);l(this,vU,A),l(this,kt,e),l(this,LU,t),l(this,HU,I(this,bn,Ed).call(this)),this.closed().finally(()=>U(this,kt).close()).catch(V)}catalog(){return U(this,kt)}closed(){return U(this,HU)}close(){return d(this,null,function*(){return U(this,kt).close(),(yield U(this,vU).promise).unsubscribe()})}static start(A,e){return d(this,null,function*(){const t=m.fromPromise(at.subscribe(A,new xe().name(e.catalogName||mc).groupOrder("ascending").build())),B=m.fromPromise(t.promise.then(a=>a.objects()));if(e.catalog)return new Gn(t,new bA(e.catalog),B);const n=yield(yield B.promise).next();if(!n.value)throw new Error("No catalog found");const s=vl(n.value);return new Gn(t,new bA(s),B)})}};kt=new WeakMap,vU=new WeakMap,LU=new WeakMap,HU=new WeakMap,bn=new WeakSet,Ed=function(){return d(this,null,function*(){const A=yield U(this,LU).promise;try{for(var e=rA(A),t,B,F;t=!(B=yield e.next()).done;t=!1){const n=B.value;if(n.objectStatus!==GA.Normal)continue;const s=vl(n);U(this,kt).update(s)}}catch(B){F=[B]}finally{try{t&&(B=e.return)&&(yield B.call(e))}finally{if(F)throw F[0]}}})};let $s=Gn;class Wc{constructor(A,e,t,B){o(this,XU);o(this,YU);o(this,Li);o(this,xU);i(this,"track");o(this,Hi,WA.get().createContext("CmafGroup"));this.track=B,l(this,YU,t),l(this,Li,A),l(this,xU,e)}[Symbol.asyncIterator](){return Ft(this,null,function*(){const A={name:this.track.trackObject.name,namespace:this.track.namespace};U(this,Hi).debug("start",S({},A));try{for(var e=rA(U(this,Li)),t,B,F;t=!(B=yield new lA(e.next())).done;t=!1){const n=B.value;if(n.objectStatus===GA.EndOfTrackAndGroup&&(yield new lA(this.track.endOfTrack(n.groupId))),n.objectStatus!==GA.Normal)continue;const s=U(this,xU).createFragment(n.payload),a=s.timescale(),r=s.baseMediaDecodeTime()/a*1e3,E=s.duration()/a*1e3,g=r+E,c=U(this,YU)/1e3*a;s.updateBaseMediaDecodeTime(s.baseMediaDecodeTime()-c);const J=this.track.timestampRange();if(J&&r>=J[1])break;U(this,Hi).debug("fragment",O(S({},A),{startTime:r,endTime:g,subscribeId:n.subscribeId,groupId:n.groupId,objectId:n.objectId,streamId:n.streamId})),yield[n.groupId,s]}}catch(B){F=[B]}finally{try{t&&(B=e.return)&&(yield new lA(B.call(e)))}finally{if(F)throw F[0]}}U(this,Hi).debug("end",S({},A))})}[ke()](){return I(this,XU,Eo).call(this)}[Symbol.asyncDispose](){return I(this,XU,Eo).call(this)}}YU=new WeakMap,Li=new WeakMap,xU=new WeakMap,Hi=new WeakMap,XU=new WeakSet,Eo=function(){return d(this,null,function*(){var A,e;return yield(e=(A=U(this,Li)).return)==null?void 0:e.call(A),Promise.resolve()})};const Yi=class Yi{constructor(A,e,t,B,F){o(this,KU);o(this,be);o(this,OU);o(this,zU);i(this,"trackObject");i(this,"namespace");this.trackObject=A,this.namespace=e,l(this,be,t),l(this,KU,B),l(this,OU,F)}static subscribe(A,e,t,B){return d(this,null,function*(){var E;if(e.format!=="cmaf")throw new Error("format must be cmaf");const F=new xe().name(e.name);B&&F.startGroup(B);const n=F.build();if(e.initTrack){const g=new xe().name(e.initTrack).build(),[c,J]=yield Promise.all([I(E=Yi,Mn,gd).call(E,A,g),at.subscribe(A,n,B?B-G(1):void 0)]),u=new Fl(c);return new Yi(e,A.namespace(),J,u,t)}p(e.initData,"no init data found on track");const s=sA(e.initData),a=new Fl(new Uint8Array(s)),r=yield at.subscribe(A,n,B?B-G(1):void 0);return new Yi(e,A.namespace(),r,a,t)})}largestGroupId(){return U(this,be).largestGroupId()}stopAfterTimestampReached(A){l(this,zU,[0,A])}timestampRange(){return U(this,zU)}endOfTrack(A){return U(this,be).endOfTrack(A)}update(A,e){return U(this,be).update(A,e)}unsubscribe(){return d(this,null,function*(){return U(this,be).unsubscribe()})}next(){return d(this,null,function*(){const A=yield U(this,be).next();return A.done?A:{done:!1,value:new Wc(A.value,U(this,KU),U(this,OU),this)}})}return(){return d(this,null,function*(){return yield U(this,be).return(),{done:!0,value:void 0}})}[Symbol.asyncIterator](){return this}[ke()](){return this.unsubscribe()}[Symbol.asyncDispose](){return d(this,null,function*(){return this.unsubscribe()})}};KU=new WeakMap,be=new WeakMap,OU=new WeakMap,zU=new WeakMap,Mn=new WeakSet,gd=function(A,e){return d(this,null,function*(){var F=[];try{const t=ne(F,yield A.subscribe(e),!0);const B=yield t.objects().next();if(B.done)throw new Error("No init object");yield t.close();return B.value.payload}catch(n){var s=n,a=!0}finally{var r=se(F,s,a);r&&(yield r)}})},o(Yi,Mn);let Aa=Yi;const Ll=1e4,pc=3e4,ja=class ja{constructor(A,e,t){o(this,uQ);o(this,vn,WA.get().createContext("Timeline"));o(this,Nt,new bA([]));o(this,VQ);o(this,PU);o(this,jU);o(this,qU);l(this,PU,A),l(this,jU,t),l(this,VQ,e),l(this,qU,I(this,uQ,go).call(this,U(this,VQ))),this.closed().finally(()=>U(this,Nt).close()).catch(V)}closed(){return U(this,qU)}close(){return d(this,null,function*(){return(yield U(this,VQ).promise).unsubscribe()})}timeline(){const[A,e]=U(this,Nt).value();return A}timestampWallclockOffset(){return XQ(this.timeline().map(A=>A.mediaPts-A.wallclock))}static start(A,e){const t=m.fromPromise(at.subscribe(A,new xe().name(e).groupOrder("ascending").build()));return new ja(A,t,e)}waitForWallclockTime(A){return d(this,null,function*(){return yield U(this,Nt).waitFor(e=>!!e.find(t=>t.wallclock>=A)),this.timeline()})}waitForTimelineToHaveMinDuration(){return d(this,null,function*(){return yield U(this,Nt).waitFor(A=>{const e=A[0],t=A[A.length-1];return!e||!t?!1:t.wallclock-e.wallclock>Ll}),this.timeline()})}};vn=new WeakMap,Nt=new WeakMap,VQ=new WeakMap,PU=new WeakMap,jU=new WeakMap,qU=new WeakMap,uQ=new WeakSet,go=function(A){return d(this,null,function*(){const e=yield A.promise;try{for(var J=rA(e),u,D,T;u=!(D=yield J.next()).done;u=!1){var s=D.value;var a=[];try{const L=ne(a,s,!0);try{for(var t=rA(L),B,F,n;B=!(F=yield t.next()).done;B=!1){const Z=F.value;if(Z.objectStatus!==GA.Normal)continue;const M=Dc(Z.payload);U(this,Nt).update(H=>{var Y,P;for(H.push(...M),H.sort((VA,FA)=>VA.wallclock-FA.wallclock);H[0]&&((P=(Y=H[H.length-1])==null?void 0:Y.wallclock)!=null?P:0)-H[0].wallclock>pc;)H.shift();return H}),e===U(this,VQ).resolved&&Z.groupId>G(0)&&Z.objectId==G(0)&&I(this,uQ,Id).call(this,Z.groupId).catch(H=>{U(this,vn).warn("backfill failed",H)})}}catch(F){n=[F]}finally{try{B&&(F=t.return)&&(yield F.call(t))}finally{if(n)throw n[0]}}}catch(r){var E=r,g=!0}finally{var c=se(a,E,g);c&&(yield c)}}}catch(D){T=[D]}finally{try{u&&(D=J.return)&&(yield D.call(J))}finally{if(T)throw T[0]}}})},Id=function(A){return d(this,null,function*(){const e=A-G(1),t=this.timeline(),B=t[0],F=t[t.length-1];if(!B||!F||F.wallclock-B.wallclock>Ll)return;const n=m.fromPromise(at.subscribe(U(this,PU),new xe().name(U(this,jU)).groupOrder("ascending").range(e,e).build()));return I(this,uQ,go).call(this,n)})};let ea=ja;function Dc(Q){var e;const A=new TextDecoder("utf-8").decode(Q).split(`
|
|
2
|
+
`);return(e=A[0])!=null&&e.startsWith("MEDIA_PTS")&&A.shift(),A.filter(t=>t.length>0).map(t=>{const[B,F,n,s,a]=t.split(",");if(!B||!s)throw new Error(`invalid timeline row: ${t}`);return{mediaPts:parseInt(B),groupId:F?parseInt(F):void 0,objectId:n?parseInt(n):void 0,wallclock:parseInt(s),metadata:a}})}function Zc(Q){return typeof Q.language=="string"}const qa=class qa{constructor(A,e,t,B,F){o(this,Ln,new gl);o(this,_U);o(this,mt);o(this,xi,0);i(this,"trackObject");i(this,"namespace");l(this,mt,A),l(this,_U,e),this.trackObject=t,this.namespace=B,l(this,xi,F)}static subscribe(A,e,t){return d(this,null,function*(){if(!Zc(e))throw new Error("track object language is required");const B=new xe().name(e.name).build(),F=yield at.subscribe(A,B),n=F.objects();return new qa(F,n,e,A.namespace(),t)})}largestGroupId(){return U(this,mt).largestGroupId()}update(A,e){return U(this,mt).update(A,e)}unsubscribe(){return U(this,mt).unsubscribe()}next(){return d(this,null,function*(){for(;;){const A=yield U(this,_U).next();if(A.done)return A;if(A.value.objectStatus!==GA.Normal)continue;const e=new TextDecoder().decode(A.value.payload),t=U(this,Ln).parse(e).map(F=>(F.startTime-=U(this,xi)/1e3,F.endTime-=U(this,xi)/1e3,F));return{done:!1,value:{language:this.trackObject.language,cues:t}}}})}return(){return d(this,null,function*(){return yield U(this,mt).return(),{done:!0,value:void 0}})}[Symbol.asyncIterator](){return this}[ke()](){return this.unsubscribe()}[Symbol.asyncDispose](){return this.unsubscribe()}};Ln=new WeakMap,_U=new WeakMap,mt=new WeakMap,xi=new WeakMap;let ta=qa;wr=[xA({context:"Channel",enter:"info"})];const Ki=class Ki{constructor(A,e,t,B,F){o(this,Xi);i(this,"namespace");o(this,kQ);o(this,NQ);o(this,mQ);o(this,Wt);this.namespace=B,l(this,kQ,A),l(this,NQ,e),l(this,mQ,t),l(this,Wt,F)}static start(A,e){return d(this,null,function*(){const t=new Ml(A,{namespace:e.namespace}),[B,F]=yield Promise.all([ea.start(t,"timeline"),$s.start(t,{catalog:e.catalog,namespace:e.namespace})]);return new Ki(t,B,F,e.namespace,0)})}closed(){return U(this,mQ).closed()}catalog(){return U(this,mQ).catalog()}timestampWallclockOffset(){return U(this,NQ).timestampWallclockOffset()}timestampOffsetMs(){return U(this,Wt)}setTimestampOffsetMs(A){l(this,Wt,A)}waitForWallclockTime(A){return U(this,NQ).waitForWallclockTime(A)}subscribeCmafTrack(A,e){const t=this.catalog().current().tracks,B=A["com.vindral.variant_uid"]!==void 0?t.find(F=>F["com.vindral.variant_uid"]===A["com.vindral.variant_uid"]):void 0;return I(this,Xi,Ss).call(this,()=>Aa.subscribe(U(this,kQ),B!=null?B:A,U(this,Wt),e))}subscribeWebVttTrack(A){return I(this,Xi,Ss).call(this,()=>ta.subscribe(U(this,kQ),A,U(this,Wt)))}subscribeTrack(A){return I(this,Xi,Ss).call(this,()=>U(this,kQ).subscribe(A))}close(){return Promise.all([U(this,mQ).close(),U(this,NQ).close()])}};_a=bQ(null),kQ=new WeakMap,NQ=new WeakMap,mQ=new WeakMap,Wt=new WeakMap,Xi=new WeakSet,Ss=function(A){return d(this,null,function*(){const[e,t]=this.catalog().value();try{return yield A()}catch(B){if(e===this.catalog().current()&&t&&(yield Promise.race([t,vt(500)])),e!==this.catalog().current())return A();throw B}})},YA(_a,9,"start",wr,Ki),ft(_a,Ki),GQ(_a,3,Ki);let Fn=Ki;const $a=class $a{constructor(A){o(this,Hn);o(this,WQ);o(this,$U);const[e,t]=A.value.value();l(this,WQ,{createdAt:new Date,wallclock:new Date(e.ntpTimestamp),rtt:e.rtt}),l(this,$U,I(this,Hn,cd).call(this,A))}wallclock(){const e=Date.now()-U(this,WQ).createdAt.getTime();return U(this,WQ).wallclock.getTime()+e}closed(){return U(this,$U)}static start(A){return new $a(A)}};WQ=new WeakMap,$U=new WeakMap,Hn=new WeakSet,cd=function(A){return d(this,null,function*(){try{for(var e=rA(A.value),t,B,F;t=!(B=yield e.next()).done;t=!1){const n=B.value;l(this,WQ,{createdAt:new Date,wallclock:new Date(n.ntpTimestamp),rtt:n.rtt})}}catch(B){F=[B]}finally{try{t&&(B=e.return)&&(yield B.call(e))}finally{if(F)throw F[0]}}})};let Qa=$a;function nn(Q){return typeof Q=="string"||Q===null||Q===void 0}function wc(Q){return"provider"in Q&&typeof Q.provider=="string"&&(!("widevineLicenseUrl"in Q)||nn(Q.widevineLicenseUrl))&&(!("playreadyLicenseUrl"in Q)||nn(Q.playreadyLicenseUrl))&&(!("fairplayLicenseUrl"in Q)||nn(Q.fairplayLicenseUrl))&&(!("fairplayCertificate"in Q)||nn(Q.fairplayCertificate))}function Tc(Q){try{return sA(Q)}catch(A){throw new Error("Failed to convert fairplayCertificate")}}function yc(Q){const A=new TextDecoder().decode(Q),e=JSON.parse(A);if(!wc(e))throw new Error("Invalid drm object");const F=e,{fairplayCertificate:t}=F,B=Lr(F,["fairplayCertificate"]);return O(S({},B),{fairplayCertificate:t?Tc(t):void 0})}class ia{constructor(A){i(this,"value");this.value=A}static create(A,e,t){return d(this,null,function*(){var a=[];try{const B=ne(a,yield A.subscribeTrack(new xe().name("drm").build()),!0);const F=B.objects();const n=yield F.next();if(n.done)throw new Error("No drm object received");const s=yc(n.value.payload);return new ia(O(S({},s),{videoCodec:e,audioCodec:t}))}catch(r){var E=r,g=!0}finally{var c=se(a,E,g);c&&(yield c)}})}}function fc(Q){return"rtt"in Q&&typeof Q.rtt=="number"&&"ntpTimestamp"in Q&&typeof Q.ntpTimestamp=="number"&&"estimatedBandwidth"in Q&&typeof Q.estimatedBandwidth=="number"}function Hl(Q){const A=new TextDecoder().decode(Q),e=JSON.parse(A);if(!fc(e))throw new Error("Invalid stats object");return e}const bc=1e4,Ao=class Ao{constructor(A,e,t){o(this,Yn);i(this,"ip");i(this,"value");o(this,AF);this.ip=t,this.value=new bA(e),l(this,AF,I(this,Yn,Cd).call(this,A))}closed(){return U(this,AF)}idleTimeout(){return d(this,null,function*(){for(;;){const[A,e]=this.value.value();try{yield Promise.race([ps(bc,new Error("Idle timeout")),e])}catch(t){return t}}})}static start(A){return d(this,null,function*(){const t=(yield A.subscribe(new xe().name("stats").groupOrder("ascending").build())).objects(),B=yield t.next();if(B.done)throw new Error("No stats object received");const F=Hl(B.value.payload);if(!F.ip)throw new Error("Expected IP in initial stats object");return new Ao(t,F,F.ip)})}};AF=new WeakMap,Yn=new WeakSet,Cd=function(A){return d(this,null,function*(){try{for(var e=rA(A),t,B,F;t=!(B=yield e.next()).done;t=!1){const n=B.value;if(n.objectStatus!==GA.Normal)continue;const s=Hl(n.payload);this.value.update(s)}}catch(B){F=[B]}finally{try{t&&(B=e.return)&&(yield B.call(e))}finally{if(F)throw F[0]}}})};let Ba=Ao;class Gc{constructor(A){o(this,xn,WA.get().createContext("UpstreamWatcher"));o(this,Oi);l(this,Oi,new bA(m.fromPromise(A.closed())))}update(A){U(this,Oi).update(m.fromPromise(A.closed()))}closed(){return d(this,null,function*(){try{for(;;){const[A,e]=U(this,Oi).value();let t=!1;yield Promise.race([e==null?void 0:e.then(()=>t=!0),A.promise.then(()=>{if(!t)throw U(this,xn).warn("Upstream closed"),new Error("Upstream closed")})])}}catch(A){return A}})}}xn=new WeakMap,Oi=new WeakMap;class Ua{constructor(A,e){o(this,zi,WA.get().createContext("TracksIterator"));o(this,eF);o(this,tF);l(this,eF,A),l(this,tF,e)}[Symbol.asyncIterator](){return Ft(this,null,function*(){const A=U(this,tF);try{for(var e=rA(U(this,eF)),t,B,F;t=!(B=yield new lA(e.next())).done;t=!1){const n=B.value;if(!n)continue;const s={name:n.trackObject.name,namespace:n.namespace};U(this,zi).debug("track start",S({mediaType:A},s)),yield*Fo(n),U(this,zi).debug("track end",S({mediaType:A},s))}}catch(B){F=[B]}finally{try{t&&(B=e.return)&&(yield new lA(B.call(e)))}finally{if(F)throw F[0]}}U(this,zi).debug("tracks ended",{mediaType:A})})}}zi=new WeakMap,eF=new WeakMap,tF=new WeakMap;let Mc=(fr=[xA({context:"Player",enter:"info"})],yr=[xA({context:"Player",enter:"info",return:"info"})],Tr=[xA({context:"Player",enter:"info"})],tt=class{constructor(A,e,t){GQ(iF,5,this);o(this,vA);o(this,Pi);o(this,ji);o(this,pQ);o(this,DA);o(this,Re,new bA(void 0));o(this,he,new bA(void 0));o(this,pt,new bA(void 0));o(this,qi);o(this,QF);i(this,"subtitles",new Ua(U(this,pt),"subtitles"));i(this,"video",new Ua(U(this,he),"video"));i(this,"audio",new Ua(U(this,Re),"audio"));l(this,Pi,A),l(this,ji,Qa.start(t)),l(this,pQ,t),l(this,DA,new bA(e)),l(this,qi,new Gc(e)),l(this,QF,Promise.race([t.idleTimeout(),I(this,vA,Rd).call(this),U(this,qi).closed()])),U(this,Pi).closed().then(()=>this.close()).catch(V)}closed(){return U(this,QF)}static start(A,e){return d(this,null,function*(){const t=new Ml(A,{namespace:uc("auxiliary")}),[[B,F,n],s]=yield Promise.all([Fn.start(A,e).then(r=>Promise.all([Promise.resolve(r),e.videoTrack?r.subscribeCmafTrack(e.videoTrack):void 0,e.audioTrack?r.subscribeCmafTrack(e.audioTrack):void 0])),Ba.start(t)]),a=new tt(A,B,s);return n&&U(a,Re).update(n),F&&U(a,he).update(F),a})}connectionInfo(){const A=U(this,pQ).value.current();return{ip:U(this,pQ).ip,rtt:A.rtt,estimatedBandwidth:A.estimatedBandwidth}}stats(){return U(this,pQ).value}catalog(){return U(this,DA).current().catalog()}namespace(){return U(this,DA).current().namespace}videoTrack(){var A;return(A=U(this,he).current())==null?void 0:A.trackObject}audioTrack(){var A;return(A=U(this,Re).current())==null?void 0:A.trackObject}referenceClock(){return U(this,ji)}drm(){return d(this,null,function*(){var e,t;if(this.catalog().current().tracks.find(({name:B})=>B==="drm"))return ia.create(U(this,DA).current(),(e=this.videoTrack())==null?void 0:e.codec,(t=this.audioTrack())==null?void 0:t.codec)})}close(){return Promise.all([U(this,DA).current().close(),U(this,DA).close(),I(this,vA,Js).call(this,U(this,Re)),I(this,vA,Js).call(this,U(this,he)),I(this,vA,Js).call(this,U(this,pt))])}zap(A,e){return d(this,null,function*(){var u,D;const t=yield Fn.start(U(this,Pi),A),B=U(this,ji).wallclock()-e,F=U(this,DA).current(),n=F.timestampWallclockOffset(),s=yield t.waitForWallclockTime(B);U(this,qi).update(t),yield U(this,DA).current().close();const a=s.toReversed().find(T=>T.wallclock<=B),r=a!=null&&a.mediaPts?a.mediaPts-F.timestampOffsetMs():void 0,c=t.timestampWallclockOffset()-n+F.timestampOffsetMs();t.setTimestampOffsetMs(c);const J=a!=null&&a.groupId?G(a.groupId):void 0;r&&((u=U(this,he).current())==null||u.stopAfterTimestampReached(r),(D=U(this,Re).current())==null||D.stopAfterTimestampReached(r)),U(this,DA).update(t),yield Promise.all([A.videoTrack?this.setVideoTrack(A.videoTrack,J):void 0,A.audioTrack?this.setAudioTrack(A.audioTrack,J):void 0])})}setSubtitleTrack(A){return d(this,null,function*(){var t,B;if(!A){yield(t=U(this,pt).current())==null?void 0:t.unsubscribe();return}const[e]=yield Promise.all([U(this,DA).current().subscribeWebVttTrack(A),(B=U(this,pt).current())==null?void 0:B.unsubscribe()]);U(this,pt).update(e)})}setVideoTrack(A,e){return d(this,null,function*(){const t=yield I(this,vA,SF).call(this,U(this,DA).current(),A,U(this,he).current(),e);U(this,he).update(t)})}setAudioTrack(A,e){return d(this,null,function*(){const t=yield I(this,vA,SF).call(this,U(this,DA).current(),A,U(this,Re).current(),e);U(this,Re).update(t)})}},iF=bQ(null),Pi=new WeakMap,ji=new WeakMap,pQ=new WeakMap,DA=new WeakMap,Re=new WeakMap,he=new WeakMap,pt=new WeakMap,qi=new WeakMap,QF=new WeakMap,vA=new WeakSet,Js=function(A){const e=A.current(),t=e==null?void 0:e.largestGroupId();return A.isClosed()||A.update(void 0),A.close(),t?e==null?void 0:e.update(t,t):e==null?void 0:e.unsubscribe()},SF=function(A,e,t,B){return d(this,null,function*(){const F=t==null?void 0:t.largestGroupId(),[n,s]=yield Promise.all([A.subscribeCmafTrack(e,B||(F?F+G(1):void 0)),F?t==null?void 0:t.update(F,F):t==null?void 0:t.unsubscribe()]);return n})},Rd=function(){return d(this,null,function*(){try{for(var F=rA(U(this,DA)),n,s,a;n=!(s=yield F.next()).done;n=!1){const r=s.value;try{for(var A=rA(r.catalog()),e,t,B;e=!(t=yield A.next()).done;e=!1){const E=t.value;yield Promise.all([I(this,vA,Io).call(this,E,U(this,he)),I(this,vA,Io).call(this,E,U(this,Re))])}}catch(t){B=[t]}finally{try{e&&(t=A.return)&&(yield t.call(A))}finally{if(B)throw B[0]}}}}catch(s){a=[s]}finally{try{n&&(s=F.return)&&(yield s.call(F))}finally{if(a)throw a[0]}}})},Io=function(A,e){return d(this,null,function*(){const t=e.current();if(!t)return;const B=t.trackObject.name,F=t.trackObject["com.vindral.variant_uid"],n=A.tracks.find(a=>a.name===B),s=A.tracks.find(a=>a["com.vindral.variant_uid"]===F);if(!n){if(!s){e.update(void 0);return}e.update(yield U(this,DA).current().subscribeCmafTrack(s))}})},YA(iF,1,"close",fr,tt),YA(iF,1,"zap",yr,tt),SF=YA(iF,17,"#replaceTrack",Tr,vA,SF),ft(iF,tt),tt);function Fa(Q,A,e){const t=new URL("/voq/subscribe",Q);return t.searchParams.set("sessionId",A.sessionId),t.searchParams.set("clientId",A.clientId),t.searchParams.set("channelId",A.channelId),e&&t.searchParams.set("authToken",e),t}const vc=1e4,eo=class eo{constructor(A,e,t,B,F,n){o(this,HA);o(this,ZA);o(this,LA);o(this,Se);o(this,DQ,"disconnected");o(this,oA);o(this,Dt,new Map);o(this,BF);o(this,UF,new w(10));o(this,Xn,Number.MAX_SAFE_INTEGER);o(this,_i,new Map);o(this,$i,A=>{if(!A){U(this,oA).setSubtitleTrack(void 0).catch(V);return}const e=U(this,Dt).get(Xt(U(this,oA).namespace())),t=e==null?void 0:e.getTextTrack(A);t&&U(this,oA).setSubtitleTrack(t).catch(V)});o(this,FF,A=>{switch(A.type){case"subscribe":{if(U(this,AB)){U(this,LA).info("Ignoring - we are already switching");return}l(this,AB,!0),I(this,HA,Jd).call(this,A.subscription).catch(e=>{U(this,LA).error("error handling subscription",e),U(this,ZA).emit("received signal",{type:"subscription changed",subscription:A.subscription,reset:!0})}).finally(()=>l(this,AB,!1))}break;case"telemetry":Do(new URL("/api/telemetry",U(this,Se).url().replace("wss://","https://")),{body:A.body,headers:{"Content-Type":"text/plain"}}).catch(V);break;case"refresh auth":U(this,Se).updateAuthToken(A.token);break}});o(this,AB,!1);i(this,"disconnect",(A="Disconnect Requested")=>{U(this,LA).info("Disconnecting",A),U(this,Se).close(),U(this,oA).close().catch(V),l(this,_i,new Map),l(this,DQ,"disconnected")});l(this,ZA,A),l(this,LA,e),l(this,Se,t),l(this,oA,B),l(this,Dt,F),l(this,BF,n),U(this,ZA).on("send signal",U(this,FF)),U(this,ZA).on("disconnect",this.disconnect),U(this,ZA).on("text track",U(this,$i)),I(this,HA,hd).call(this).catch(V),I(this,HA,Vd).call(this).catch(V)}get estimatedBandwidth(){return U(this,Xn)}unload(){U(this,ZA).off("send signal",U(this,FF)),U(this,ZA).off("disconnect",this.disconnect),U(this,ZA).off("text track",U(this,$i)),this.disconnect()}suspend(){}unsuspend(){}getStatistics(){const e=U(this,oA).connectionInfo().estimatedBandwidth;return{rtt:nt(U(this,UF).items()),estimatedBandwidth:e,connectCount:0,connectionAttemptCount:0,edgeUrl:U(this,Se).url(),connectionProtocol:"moq"}}static start(A,e,t,B){return d(this,null,function*(){var L,Z,M,H;const F=new Map(B.connectInfo.channels.map(Y=>[Xt(Y.catalog.namespace),new sa(new bA(Y.catalog))])),n=yield B.onConnectInfo(B.connectInfo),s=B.options.get("authenticationToken");let a,r;switch(typeof B.edgeUrl){case"string":{a=Fa(B.edgeUrl,n,s);break}default:a=Fa(B.edgeUrl.moqUrl||B.edgeUrl.moqWsUrl,n,s),r=Fa(B.edgeUrl.moqWsUrl,n,s);break}const E=(L=B.connectInfo.channels.find(Y=>Y.channelId===n.channelId))==null?void 0:L.catalog;e.debug("Resolved edge url",{edgeUrl:a,edgeWsUrl:r}),p(E,"no catalog found");const g=(Z=F.get(Xt(E.namespace)))==null?void 0:Z.getVideoTrack(n.video),c=(M=F.get(Xt(E.namespace)))==null?void 0:M.getAudioTrack(n.audio),J=yield Vc({url:a,wsUrl:r,authToken:B.options.get("authenticationToken"),preferredTransport:B.options.get("webtransportEnabled")?"webtransport":"websocket",role:vI.Subscriber,websocketFallbackTimeoutMs:2e3}),u=yield Promise.race([Mc.start(J.subscriber,{namespace:E.namespace,catalog:E,videoTrack:g==null?void 0:g.track,audioTrack:c==null?void 0:c.track}),ps(vc,new Error("Timeout waiting for player to start")),Od(J.closed(),"Session closed before player started")]),D=new sa(u.catalog());F.set(Xt(E.namespace),D),A.emit("received signal",{type:"client ip",ip:u.connectionInfo().ip}),u.drm().then(Y=>{Y&&A.emit("received drm data",Y.value)}).catch(Y=>{e.error("Error getting DRM data",Y)});const T=new eo(A,e,J,u,F,t);return n.textTrack&&U(H=T,$i).call(H,n.textTrack),T})}getState(){return U(this,DQ)}get rtt(){return U(this,oA).connectionInfo().rtt}close(){U(this,Se).close()}closed(){return Promise.race([U(this,Se).closed(),U(this,oA).closed()])}};ZA=new WeakMap,LA=new WeakMap,Se=new WeakMap,DQ=new WeakMap,oA=new WeakMap,Dt=new WeakMap,BF=new WeakMap,UF=new WeakMap,Xn=new WeakMap,_i=new WeakMap,HA=new WeakSet,hd=function(){return d(this,null,function*(){try{for(var A=rA(U(this,oA).stats()),e,t,B;e=!(t=yield A.next()).done;e=!1){const{rtt:F}=t.value;U(this,UF).push(F)}}catch(t){B=[t]}finally{try{e&&(t=A.return)&&(yield t.call(A))}finally{if(B)throw B[0]}}})},$i=new WeakMap,FF=new WeakMap,AB=new WeakMap,Sd=function(A){return d(this,null,function*(){var B;const e=yield U(this,BF).connect({channelId:A});if(!No(e))throw new Error("no moq connect info found");const t=(B=e.channels.find(F=>F.channelId===A))==null?void 0:B.catalog;if(!t)throw new Error("no catalog found");return t})},Jd=function(A){return d(this,null,function*(){var n,s,a;U(this,LA).info("handle subscription",A);const e=U(this,oA);let t=U(this,Dt).get(A.channelId);if(t||(t=new sa(new bA(yield I(this,HA,Sd).call(this,A.channelId))),U(this,Dt).set(A.channelId,t)),e.namespace().join("/")!==t.namespace().join("/")){U(this,LA).info("changing channel",A.channelId);const r=t.getVideoTrack(A.video),E=t.getAudioTrack(A.audio);yield e.zap({namespace:t.namespace(),catalog:t.catalog(),videoTrack:r==null?void 0:r.track,audioTrack:E==null?void 0:E.track},500),e.drm().then(g=>{g&&U(this,ZA).emit("received drm data",g.value)}).catch(g=>{U(this,LA).error("Error getting DRM data",g)}),U(this,LA).info("switched channel",A.channelId),(n=U(this,Dt).get(Xt(e.namespace())))==null||n.updateCatalog(e.catalog()),U(this,ZA).emit("received signal",{type:"subscription changed",subscription:A});return}const B=t.getVideoTrack(A.video),F=t.getAudioTrack(A.audio);yield Promise.all([B&&B.track.name!==((s=U(this,oA).videoTrack())==null?void 0:s.name)?U(this,oA).setVideoTrack(B.track):void 0,F&&F.track.name!==((a=U(this,oA).audioTrack())==null?void 0:a.name)?U(this,oA).setAudioTrack(F.track):void 0]),U(this,ZA).emit("received signal",{type:"subscription changed",subscription:A})})},Vd=function(){return d(this,null,function*(){try{l(this,DQ,"connecting"),U(this,LA).info("Connecting..."),l(this,DQ,"connected"),yield Promise.all([I(this,HA,co).call(this,U(this,oA).referenceClock(),U(this,oA).audio),I(this,HA,co).call(this,U(this,oA).referenceClock(),U(this,oA).video),I(this,HA,ud).call(this,U(this,oA).subtitles)]),yield U(this,oA).closed(),U(this,Se).close(),U(this,LA).info("Session closed")}catch(A){U(this,LA).warn("Session error",A)}})},ud=function(A){return d(this,null,function*(){try{for(var e=rA(A),t,B,F;t=!(B=yield e.next()).done;t=!1){const n=B.value;U(this,ZA).emit("text track data",n)}}catch(B){F=[B]}finally{try{t&&(B=e.return)&&(yield B.call(e))}finally{if(F)throw F[0]}}})},co=function(A,e){return d(this,null,function*(){var s;let t="",B="",F;const n=U(this,oA).videoTrack()===void 0;try{for(var c=rA(e),J,u,D;J=!(u=yield c.next()).done;J=!1){const T=u.value;const L=Xt(T.track.namespace),Z=T.track.trackObject.language,M=Ds((s=T.track.trackObject.codec)!=null?s:""),H=T.track.trackObject.codec,Y=M?Yt({codec:M,codecString:H}):void 0,P=!!T.track.trackObject["com.vindral.drm"];try{for(var a=rA(T),r,E,g;r=!(E=yield a.next()).done;r=!1){const[VA,FA]=E.value;const Fe={channelId:t!==""&&(n||FA.mediaType()==="video")&&t!==L?L:void 0,language:FA.mediaType()==="audio"&&B!==Z?Z:void 0,drmTransition:F!==void 0&&F!==P};t=L,B=Z,F=P;const R=FA.producerReferenceTime(),W=U(this,_i).get(T.track.namespace)||0;if(R&&Date.now()-W>1e3){U(this,_i).set(T.track.namespace,Date.now());const x=A.wallclock()-R.getTime();U(this,LA).debug("timing-info",{mediaType:FA.mediaType(),referenceClock:A,delta:x,groupId:VA,timestamp:FA.baseMediaDecodeTime()/FA.timescale()*1e3+x,wallclockTime:R.getTime()}),U(this,ZA).emit("received signal",{type:"timing info",timingInfo:{channelId:L,timestamp:FA.baseMediaDecodeTime()/FA.timescale()*1e3+x,wallclockTime:R.getTime()}})}U(this,ZA).emit("received moq data",{payload:FA,channelId:L,groupId:VA,mimeType:Y,codec:M,switchInfo:Fe,renditionId:Lc(T.track.trackObject.name)})}}catch(E){g=[E]}finally{try{r&&(E=a.return)&&(yield E.call(a))}finally{if(g)throw g[0]}}}}catch(u){D=[u]}finally{try{J&&(u=c.return)&&(yield u.call(c))}finally{if(D)throw D[0]}}})};let na=eo;function Lc(Q){return Q.split("").reduce((e,t)=>e=t.charCodeAt(0)+(e<<6)+(e<<16)-e,0)}class sa{constructor(A){o(this,Kn);o(this,Qt);o(this,ZQ);l(this,Qt,A),l(this,ZQ,I(this,Kn,kd).call(this))}catalog(){return U(this,Qt).current()}namespace(){return U(this,Qt).current().namespace}updateCatalog(A){l(this,Qt,A)}getTextTrack(A){return U(this,Qt).current().tracks.find(e=>e.label===A)}getAudioTrack(A){if(!A.codec)return;const e=U(this,ZQ).filter(t=>!(!Ht(t)||t.bitRate>A.bitRate||A.codec&&t.codec!==A.codec||A.language&&t.language!==A.language));return e[e.length-1]}getVideoTrack(A){if(!A.codec)return;const e=U(this,ZQ).filter(t=>!(!Lt(t)||t.bitRate>A.bitRate||A.codec&&t.codec!==A.codec));return e[e.length-1]}renditions(){return U(this,ZQ)}}Qt=new WeakMap,ZQ=new WeakMap,Kn=new WeakSet,kd=function(){const[A,e]=U(this,Qt).value();return mo(A)};const Hc=(Q,A)=>{const e=new URL("/subscribe",Q);return e.searchParams.append("channelId",A.channelId),e.searchParams.append("sessionId",A.sessionId),e.searchParams.append("clientId",A.clientId),A.audio&&A.audio.codec&&(e.searchParams.append("audio.bitRate",Math.round(A.audio.bitRate).toString()),e.searchParams.append("audio.codec",A.audio.codec),A.audio.language&&e.searchParams.append("audio.language",A.audio.language)),A.video&&A.video.codec&&(e.searchParams.append("video.width",A.video.width.toString()),e.searchParams.append("video.height",A.video.height.toString()),e.searchParams.append("video.bitRate",Math.round(A.video.bitRate).toString()),e.searchParams.append("video.codec",A.video.codec)),A.expectAdditionalConnection&&e.searchParams.append("expectAdditionalConnection",A.expectAdditionalConnection.toString()),A.burstMs&&e.searchParams.append("burstMs",A.burstMs.toString()),A.channelGroupId&&e.searchParams.append("channelGroupId",A.channelGroupId),A.authToken&&(e.searchParams.append("auth.token",A.authToken),e.searchParams.append("auth.type","jwt")),e.toString()};class Yc extends $A{constructor(e,t){super();i(this,"options");i(this,"websockets",[]);i(this,"logger");i(this,"reconnectState",{reconnectRetries:0});i(this,"isSuspended",!1);i(this,"_connectionAttemptCount",0);i(this,"connectStartTime",0);i(this,"_connectTime");i(this,"shouldContinueConnecting",!1);i(this,"_isConnectInProgress",!1);i(this,"readyState",()=>{if(this.websockets.length===0)return WebSocket.CLOSED;const e=this.websockets.map(t=>t.readyState);for(const t of e)switch(t){case WebSocket.OPEN:continue;default:return t}return WebSocket.OPEN});i(this,"url",()=>{var e;return(e=this.websockets[0])==null?void 0:e.url});i(this,"send",e=>{var t;this.websockets.length&&((t=this.websockets[0])==null||t.send(e))});i(this,"close",e=>{var B;let t=!1;return(B=this.websockets)==null||B.forEach(F=>{F.onmessage=V,F.removeEventListener("error",this.onError),F.removeEventListener("close",this.onClose),F.removeEventListener("open",this.onOpen),F.close(1e3,e),t=!0}),this.websockets=[],this.shouldContinueConnecting=!1,this._isConnectInProgress=!1,this.logger.info("Closed websocket",{reason:e}),t});i(this,"suspend",()=>{this.isSuspended=!0});i(this,"unsuspend",()=>{this.isSuspended=!1,this.readyState()!==WebSocket.OPEN&&!this.isConnectInProgress&&this.connect()});i(this,"onMessage",(e,t)=>{this.websockets.length!==0&&this.options.onMessage(e,t.data)});i(this,"onError",()=>{this.logger.info("On error",S({},this.options)),this.close("one websocket had an error"),this.emit("error",new X("WebSocket error",{code:"websocket_error",isFatal:!1}))});i(this,"onClose",e=>{switch(this.logger.info("Closed",O(S({},this.options),{reason:e.reason,code:e.code,isSuspended:this.isSuspended})),this.close("one websocket was closed"),e.code){case 4e3:this.emit("error",NF(cB()));break;case 4001:this.emit("error",NF(cB()));break;case 4002:this.emit("error",EE(cB()));break;case 4003:this.emit("error",Ko("internal",cB()));break;case 4010:this.emit("error",gE("internal",cB()));break}this.emit("close",this)});i(this,"onOpen",()=>{this.logger.info("Opened",S({},this.options)),this.readyState()===WebSocket.OPEN&&(this._connectTime=Date.now()-this.connectStartTime,this.reconnectState.reconnectRetries=0,this._isConnectInProgress=!1,this.emit("open",this))});i(this,"connect",(e=!1)=>d(this,null,function*(){if(this.isConnectInProgress)return this.logger.info("Connect already in progress"),!1;if(this.isSuspended)return!1;if(this.readyState()!==WebSocket.CLOSED&&this.close("new connection in progress"),this.shouldContinueConnecting=!0,this._isConnectInProgress=!0,e&&this.options.reconnectDelay>0){this.logger.info("Waiting for reconnect delay",S({},this.options)),yield vt(this.options.reconnectDelay);const t=yield this.options.reconnectHandler(this.reconnectState);if(this.reconnectState.reconnectRetries++,!t)return this._isConnectInProgress=!1,this.emit("error",Oo()),!1}this._connectionAttemptCount++;try{if(!this.shouldContinueConnecting)return this._isConnectInProgress=!1,this.logger.info("Connection aborted"),!1;const{url:t,connectionCount:B}=yield this.options.connectHandler();if(this.connectStartTime=Date.now(),!this.shouldContinueConnecting)return this._isConnectInProgress=!1,this.logger.info("Connection aborted"),!1;this.logger.info("Connecting websockets",O(S({},this.options),{url:t}));for(let F=0;F<B;F++){const n=new WebSocket(t);n.binaryType="arraybuffer",n.onmessage=s=>this.onMessage(F,s),n.addEventListener("error",this.onError),n.addEventListener("close",this.onClose),n.addEventListener("open",this.onOpen),this.websockets.push(n)}return!0}catch(t){return this._isConnectInProgress=!1,t instanceof X&&(this.logger.error("Failed to connect",t.toStringifiable()),t.isFatal())||this.shouldContinueConnecting&&(this.logger.info("Connection aborted",{error:t}),this.emit("error",new X("Failed to connect",{code:"failed_to_connect",isFatal:!1,source:t,type:"internal"}))),!1}}));this.options=e,this.logger=t}get isConnectInProgress(){return this._isConnectInProgress}get connectionCount(){return this.websockets.length}get connectionAttemptCount(){return this._connectionAttemptCount}get connectTime(){return this._connectTime}}const xc=65536*8,Xc=.9,aa=Q=>xc*Xc*1e3/Q,Ge=class Ge{constructor(A,e,t){i(this,"emitter");i(this,"transport");i(this,"logger");i(this,"config");i(this,"rtts",new w(10));i(this,"lastPingSentTime",Date.now());i(this,"isPingInFlight",!1);i(this,"connectCount",0);i(this,"missedPings",0);i(this,"_estimatedPingBandwidth");i(this,"contextSwitchesInProgress",new Set);i(this,"contextSwitchesCompleted",new Set);i(this,"buffer",[]);i(this,"disconnected",new m);i(this,"unload",()=>{this.logger.debug("Unloading module..."),this.close("Unloading"),this.emitter.off("send signal",this.sendSignal),this.emitter.off("disconnect",this.close),this.emitter.off("reconnect",this.reconnect),this.logger.debug("Unloaded module")});i(this,"suspend",()=>{this.resetPingState(),this.transport.suspend()});i(this,"unsuspend",()=>{this.transport.unsuspend()});i(this,"getState",()=>{switch(this.transport.readyState()){case WebSocket.OPEN:return"connected";case WebSocket.CONNECTING:return"connecting";default:return"disconnected"}});i(this,"sendSignal",A=>{if(this.logger.debug("sending signal",{signal:A}),this.transport.readyState()!==WebSocket.OPEN){this.logger.debug("transport is closed");return}this.transport.send(JSON.stringify(A))});i(this,"getStatistics",()=>{var e;const A=nt(this.rtts.items());return{rtt:A,estimatedBandwidth:aa(A.average),edgeUrl:(e=this.transport)==null?void 0:e.url(),connectionProtocol:"vindral_ws"}});i(this,"onMessage",(A,e)=>{var t;if(this.pingCooldownExpired()&&this.sendPing(),this.contextSwitchesCompleted.size===((t=this.transport)==null?void 0:t.connectionCount)){this.logger.info("Completing context switch"),this.contextSwitchesInProgress.clear(),this.contextSwitchesCompleted.clear();const B=this.buffer.filter(([n,s])=>!(s instanceof ArrayBuffer)),F=this.buffer.filter(([n,s])=>s instanceof ArrayBuffer);B.map(n=>this.handleMessage(n[0],n[1])),F.map(n=>this.handleMessage(n[0],n[1])),this.buffer=[]}if(this.contextSwitchesInProgress.has(A)){if(!(e instanceof ArrayBuffer)){const B=JSON.parse(e);if(Wo(B)&&B.type==="context switch complete"){this.logger.info("context switch completed",{socketId:A}),this.emitter.emit("context switch complete"),this.contextSwitchesCompleted.add(A);return}}this.buffer.push([A,e]);return}this.handleMessage(A,e)});i(this,"resolveEdgeUrl",()=>d(this,null,function*(){const A=this.config.connectInfo,e=yield this.config.onConnectInfo(A),t=this.config.options.getOverride("separateVideoSocketEnabled",e.channelId),B=this.config.options.get("media")==="audio+video";let F=1;B&&(F=t!==!1?2:1);const n=Hc(this.config.edgeUrl,{video:e.video,audio:e.audio,burstMs:e.burstMs,sessionId:e.sessionId,clientId:e.clientId,channelId:e.channelId,channelGroupId:e.channelGroupId,expectAdditionalConnection:F>1,authToken:this.config.options.get("authenticationToken")});return this.logger.debug("Resolved edge url",{edgeUrl:n}),{url:n,connectionCount:F}}));i(this,"handleMessage",(A,e)=>{if(e instanceof ArrayBuffer)this.emitter.emit("received data",e);else{const t=JSON.parse(e);if(!Wo(t))return;switch(t.type){case"pong":this.lastPingSentTime&&(this.rtts.push(Date.now()-this.lastPingSentTime),this.isPingInFlight=!1,this.emitter.emit("rtt",this.rtt));break;case"context switch":this.logger.info("Starting context switch",{socketId:A}),this.emitter.emit("context switch started"),this.contextSwitchesInProgress.add(A);break;default:this.emitter.emit("received signal",t);break}}});i(this,"connectWebSocketTransport",()=>{const A=new Yc({reconnectDelay:1e3,onMessage:this.onMessage,reconnectHandler:this.config.reconnectHandler,connectHandler:this.resolveEdgeUrl},this.logger.createContext("Transport"));return A.on("open",this.onTransportChange),A.on("close",this.onTransportChange),A.on("error",e=>this.disconnected.reject(e)),A.connect(),A});i(this,"close",(A="Disconnect Requested")=>{var e;this.contextSwitchesCompleted.clear(),this.contextSwitchesInProgress.clear(),this.buffer=[],this.resetPingState(),this.disconnected.resolve(),(e=this.transport)==null||e.close(A)});i(this,"onTransportChange",()=>{var A;switch(this.getState()){case"connected":(A=this.transport)!=null&&A.connectTime&&(this.rtts.push(this.transport.connectTime/Ge.TLS_ROUNDTRIPS/this.transport.connectionCount),this.emitter.emit("rtt",this.rtt)),this.connectCount++,this.resetPingState();break;default:this.contextSwitchesCompleted.clear(),this.contextSwitchesInProgress.clear(),this.buffer=[],this.resetPingState(),this.disconnected.resolve();break}this.emitter.emit("connection state",this.getState())});i(this,"reconnect",A=>{if(this.transport.isConnectInProgress){this.logger.debug("Stopping reconnect, already mid-connection");return}this.close(A)});i(this,"resetPingState",()=>{this.missedPings=0,this.isPingInFlight=!1});i(this,"pingCooldownExpired",()=>Date.now()-this.lastPingSentTime>Ge.PING_INTERVAL);i(this,"sendPing",()=>{if(this.isPingInFlight){this.missedPings++,this.missedPings>Ge.MAX_MISSED_PINGS&&this.reconnect("missed pings");return}this.isPingInFlight=!0,this.lastPingSentTime=Date.now(),this.missedPings=0,this.sendSignal({type:"ping"})});this._estimatedPingBandwidth=aa(t.estimatedRtt),this.logger=e,this.emitter=A,this.config=t,this.emitter.on("send signal",this.sendSignal),this.emitter.on("disconnect",this.close),this.emitter.on("reconnect",this.reconnect),this.disconnected.promise.catch(V),this.transport=this.connectWebSocketTransport()}get rtt(){return this.rtts.items().length>0?XQ(this.rtts.items()):0}get estimatedBandwidth(){return this.rtt>0?aa(this.rtt):this._estimatedPingBandwidth}closed(){return this.disconnected.promise}};i(Ge,"PING_INTERVAL",5e3),i(Ge,"MAX_MISSED_PINGS",4),i(Ge,"TLS_ROUNDTRIPS",3),i(Ge,"start",(A,e,t)=>new Promise((B,F)=>{const n=new Ge(A,e,t);n.transport.once("error",s=>F(s)),n.transport.once("open",()=>B(n))}));let oa=Ge;class Kc{constructor(A){o(this,eB);o(this,Zt,[]);o(this,tB);l(this,eB,A)}select(A){if(U(this,eB).edgeUrl)return U(this,eB).edgeUrl;U(this,Zt).length===0&&l(this,Zt,U(this,Zt).concat(A));const e=U(this,Zt).shift();if(l(this,tB,e),e)return e}shiftedEdge(){return U(this,tB)}reset(){l(this,tB,void 0),l(this,Zt,[])}}eB=new WeakMap,Zt=new WeakMap,tB=new WeakMap;const FB=class FB{constructor(A,e,t){o(this,Pn);i(this,"emitter");i(this,"logger");i(this,"config");i(this,"apiClient");i(this,"connectionImpl");o(this,Me,!0);o(this,QB);o(this,it,0);o(this,iB,0);o(this,BB);o(this,UB);i(this,"unload",()=>{var A;this.logger.debug("Unloading module..."),this.disconnect("Unloading"),(A=this.connectionImpl)==null||A.unload(),this.logger.debug("Unloaded module")});i(this,"suspend",()=>{var A;l(this,Me,!1),(A=this.connectionImpl)==null||A.suspend()});i(this,"unsuspend",()=>{var A;l(this,Me,!0),(A=this.connectionImpl)==null||A.unsuspend(),this.connect()});i(this,"getState",()=>this.connectionImpl?this.connectionImpl.getState():"disconnected");i(this,"getStatistics",()=>this.connectionImpl?O(S({},this.connectionImpl.getStatistics()),{connectCount:U(this,iB),connectionAttemptCount:U(this,it)}):{rtt:{min:0,max:0,average:0,last:0},estimatedBandwidth:0,connectCount:U(this,iB),connectionAttemptCount:U(this,it),connectionProtocol:void 0});i(this,"connect",()=>{l(this,Me,!0),!U(this,QB)&&l(this,QB,I(this,Pn,Nd).call(this))});i(this,"disconnect",(A="Disconnect Requested")=>{var e;l(this,Me,!1),(e=this.connectionImpl)==null||e.close(A)});i(this,"reconnect",A=>{this.disconnect(A),this.connect()});o(this,On,()=>d(this,null,function*(){try{return yield this.apiClient.connect(this.config.options.getOptions())}catch(A){if(qd(A))switch(A.status){case 401:throw this.emitter.emit("error",NF(A)),NF(A);case 403:throw this.emitter.emit("error",zo(A.message)),zo(A.message)}throw this.emitter.emit("error",cE(A instanceof Error?A:void 0)),A}}));o(this,zn,()=>d(this,null,function*(){const A=Date.now(),e=()=>Date.now()-A;return Promise.race([vt(FB.PING_TIMEOUT),fetch(new URL("/api/v4/connect/ping",this.config.options.get("url")).toString(),{method:"HEAD"})]).then(e,e)}));this.logger=e,this.emitter=A,this.config=t,this.apiClient=new wo({publicEndpoint:this.config.options.get("url").toString(),tokenFactory:()=>this.config.options.get("authenticationToken")})}get rtt(){var A,e;return(e=(A=this.connectionImpl)==null?void 0:A.rtt)!=null?e:0}get estimatedBandwidth(){var A;return((A=this.connectionImpl)==null?void 0:A.estimatedBandwidth)||Number.MAX_SAFE_INTEGER}get firstConnectionTime(){return U(this,BB)}get lastConnectionTime(){return U(this,UB)}};Me=new WeakMap,QB=new WeakMap,it=new WeakMap,iB=new WeakMap,BB=new WeakMap,UB=new WeakMap,On=new WeakMap,zn=new WeakMap,Pn=new WeakSet,Nd=function(){return d(this,null,function*(){var e;const A=new Kc({edgeUrl:this.config.options.get("edgeUrl")});for(l(this,it,0);;){ue(this,it)._++;try{const[B,F]=yield Promise.all([U(this,On).call(this),U(this,zn).call(this)]),n=F/2;if(!U(this,Me))break;const s=A.select(B.edges);if(!s)throw new X("Failed to resolve edge url",{isFatal:!0,code:"failed_to_resolve_edge_url"});No(B)?this.connectionImpl=yield na.start(this.emitter,this.logger,this.apiClient,O(S({},this.config),{connectInfo:B,estimatedRtt:n,edgeUrl:s})):(p(typeof s=="string","Edge URL is expected to be a string"),this.connectionImpl=yield oa.start(this.emitter,this.logger,O(S({},this.config),{connectInfo:B,estimatedRtt:n,edgeUrl:s}))),A.reset(),ue(this,iB)._++,l(this,it,0),l(this,UB,Date.now()),U(this,BB)||l(this,BB,U(this,UB)),yield this.connectionImpl.closed()}catch(B){this.logger.info("Failed to connect",B);const F=A.shiftedEdge();F&&this.emitter.emit("telemetry event",{code:"shifted_edge",edgeUrl:typeof F=="string"?F:F.moqUrl||F.moqWsUrl}),B instanceof X?this.emitter.emit("error",B):B instanceof Error&&this.emitter.emit("error",new X(B.message,{code:"start_failed",isFatal:!1}))}if((e=this.connectionImpl)==null||e.unload(),this.connectionImpl=void 0,!U(this,Me))break;if(!(yield this.config.reconnectHandler({reconnectRetries:U(this,it)}))){this.emitter.emit("error",Oo());break}if(yield vt(1e3),!U(this,Me))break}l(this,QB,void 0)})},i(FB,"PING_TIMEOUT",1e3),i(FB,"create",(A,e,t)=>new FB(A,e,t));let la=FB;const ra=()=>({video:O(S({},uF()),{bitRate:st()}),audio:{bitRate:st()}}),Oc=()=>({width:window.innerWidth,height:window.innerHeight,bitRate:st()}),nB=class nB{constructor(A,e,t,B){i(this,"emitter");i(this,"timers",new pA);i(this,"pictureInPictureSource");i(this,"element");i(this,"currentCap");i(this,"userSpecifiedCap");i(this,"renditionLevelSource");i(this,"resizeObserver");i(this,"elementSize");i(this,"_sizeBasedResolutionCapEnabled");i(this,"unload",()=>{var A;this.emitter.off("enter picture in picture",this.enterPictureInPicture),this.emitter.off("exit picture in picture",this.exitPictureInPicture),(A=this.resizeObserver)==null||A.disconnect(),this.suspend()});i(this,"load",()=>{window.ResizeObserver&&(this.resizeObserver=new ResizeObserver(this.onResize),this.resizeObserver.observe(this.element)),this.evaluateConstraintCap()});i(this,"unsuspend",()=>{this.timers.setInterval(this.evaluateConstraintCap,nB.CHECK_SIZE_INTERVAL),this.evaluateConstraintCap()});i(this,"suspend",()=>{this.timers.unload()});i(this,"setUserSpecifiedCap",A=>{var t;const e=(t=this.getUserSpecifiedCap())!=null?t:ra();this.userSpecifiedCap=O(S({},e),{video:S(S({},e.video),A.video),audio:S(S({},e.audio),A.audio)}),this.evaluateConstraintCap()});i(this,"getUserSpecifiedCap",()=>this.userSpecifiedCap);i(this,"getCurrentConstraintCap",()=>this.currentCap);i(this,"getStatistics",()=>({constraintCap:this.getUserSpecifiedCap(),windowInnerWidth:window.innerWidth,windowInnerHeight:window.innerHeight,elementWidth:this.elementSize.width,elementHeight:this.elementSize.height,pixelRatio:window.devicePixelRatio}));i(this,"constrainSubscription",A=>{const e=this.getCurrentConstraintCap();return e&&(A.video.codec&&(A.video.bitRate=Math.min(e.video.bitRate,A.video.bitRate),A.video.width=Math.min(e.video.width,A.video.width),A.video.height=Math.min(e.video.height,A.video.height)),A.audio.codec&&(A.audio.bitRate=Math.min(e.audio.bitRate,A.audio.bitRate))),A});i(this,"onResize",A=>{A.forEach(e=>{this.elementSize={width:e.contentRect.width,height:e.contentRect.height}})});i(this,"evaluateConstraintCap",()=>{var n,s,a,r,E;const A=this.sizeBasedResolutionCapEnabled?O(S({},ra()),{video:Oc()}):ra();if(!this.resizeObserver){const g=this.element.getBoundingClientRect();this.elementSize={width:g.width,height:g.height}}if(this.sizeBasedResolutionCapEnabled){const g=window.devicePixelRatio,c=(n=this.pictureInPictureSource)==null?void 0:n.getPictureInPictureSize();this.elementSize.width>0&&this.elementSize.height>0&&(A.video.width=this.elementSize.width,A.video.height=this.elementSize.height),c&&(A.video.width=c.width,A.video.height=c.height),A.video.width*=g,A.video.height*=g}const t=this.renditionLevelSource.getRenditionLevels().find(g=>{if(g.video){const c=g.video.width/g.video.height,J=A.video.width/A.video.height;return c>J?g.video.width>A.video.width:g.video.height>A.video.height}});t&&t.video&&(A.video.width=t.video.width,A.video.height=t.video.height);const B=(s=this.userSpecifiedCap)==null?void 0:s.video,F=(a=this.userSpecifiedCap)==null?void 0:a.audio;B&&(A.video.width>B.width&&(A.video.width=B.width),A.video.height>B.height&&(A.video.height=B.height)),A.video.bitRate=(r=B==null?void 0:B.bitRate)!=null?r:A.video.bitRate,A.audio.bitRate=(E=F==null?void 0:F.bitRate)!=null?E:A.audio.bitRate,Gt(A,this.currentCap)?this.currentCap=S({},A):(this.currentCap=S({},A),this.emitter.emit("constraint cap changed",A))});i(this,"enterPictureInPicture",A=>{this.pictureInPictureSource=A,this.evaluateConstraintCap()});i(this,"exitPictureInPicture",()=>{this.pictureInPictureSource=void 0,this.evaluateConstraintCap()});this.element=e;const F=this.element.getBoundingClientRect();this.elementSize={width:F.width,height:F.height},this.emitter=A,this.renditionLevelSource=t,this._sizeBasedResolutionCapEnabled=B,this.emitter.on("enter picture in picture",this.enterPictureInPicture),this.emitter.on("exit picture in picture",this.exitPictureInPicture)}get sizeBasedResolutionCapEnabled(){return this._sizeBasedResolutionCapEnabled}set sizeBasedResolutionCapEnabled(A){this._sizeBasedResolutionCapEnabled=A,this.evaluateConstraintCap()}};i(nB,"CHECK_SIZE_INTERVAL",1e3),i(nB,"create",(A,e,t,B)=>new nB(A,e,t,B));let da=nB;const zc=5,Pc=100,jc=1e3;class Ea{constructor(A,e,t,B){i(this,"timers",pA.create());i(this,"logger");i(this,"emitter");i(this,"trackContexts");i(this,"playbackSource");i(this,"isSuspended",!1);i(this,"load",()=>{this.timers.setInterval(this.emitDecodedFrames,Pc),this.timers.setInterval(this.emitDecodeRate,jc),this.emitter.on("init segment",this.onInitSegment),this.emitter.on("coded sample",this.decode)});i(this,"unload",()=>{this.trackContexts.forEach(({decoderContext:A})=>A.unload()),this.timers.unload(),this.emitter.off("init segment",this.onInitSegment),this.emitter.off("coded sample",this.decode)});i(this,"suspend",()=>{this.isSuspended=!0});i(this,"unsuspend",()=>{this.isSuspended=!1});i(this,"getBuffer",A=>{var e;return(e=this.trackContexts.get(A))==null?void 0:e.buffer});i(this,"videoDecodeRate",()=>{var F,n,s;const A=this.trackContexts.get("video"),e=(F=A==null?void 0:A.sampleDuration)!=null?F:40,t=nt((n=A==null?void 0:A.decodeTime.items())!=null?n:[]),B=nt((s=A==null?void 0:A.transportTime.items())!=null?s:[]);return e/(t.average+B.average)});i(this,"getStatistics",()=>{var F,n,s,a;const A=this.trackContexts.get("video"),e=nt((F=A==null?void 0:A.decodeTime.items())!=null?F:[]),t=nt((n=A==null?void 0:A.transportTime.items())!=null?n:[]),B=nt((a=(s=this.trackContexts.get("audio"))==null?void 0:s.decodeTime.items())!=null?a:[]);return{videoDecodeRate:this.videoDecodeRate(),videoDecodeTime:e,audioDecodeTime:B,videoTransportTime:t}});i(this,"onInitSegment",({initSegment:A})=>{var t;const e=(t=this.trackContexts.get(A.type))==null?void 0:t.decoderContext;if(!e)throw new X("No known decoder context",{code:"no_known_decoder_context",isFatal:!1});e.initSegment(A)});i(this,"decode",A=>{const e=this.trackContexts.get(A.type);if(!e)throw new X("No known decoder context",{code:"no_known_decoder_context",isFatal:!1});if(this.isSuspended)return;e.sampleDuration=A.duration/A.timescale*1e3;const{decoderContext:t,buffer:B}=e,F=A.timestamp/A.timescale*1e3,n=A.duration/A.timescale*1e3,s=B[B.length-1];!s||F-zc>s.end?B.push({start:F,end:F+n}):F+n*5<s.end?e.buffer=[{start:F,end:F+n}]:s.end=F+n,t.enqueue(A),this.emitDecodedFrames()});i(this,"emitDecodedFrames",()=>{let A;this.updateBufferState(),this.trackContexts.forEach(e=>{var B,F;let t;for(;(t=(F=(B=e.decoderContext).error)==null?void 0:F.call(B))!==void 0;)this.emitter.emit("error",Yo(!1,t));for(;(A=e.decoderContext.take())!==void 0;){const{statistics:n}=A;n&&(e.decodeTime.push(n.decodeTime),e.transportTime.push((n.transportTimeToWorker+n.transportTimeFromWorker)/n.samplesInBatch)),this.emitter.emit("decoded frame",A)}})});i(this,"emitDecodeRate",()=>{this.emitter.emit("video decode rate",this.videoDecodeRate())});i(this,"updateBufferState",()=>{var F,n;let A;if(this.trackContexts.forEach(s=>{var a,r,E,g;if(!A)A=s.buffer;else{const c=(r=(a=s.buffer[s.buffer.length-1])==null?void 0:a.end)!=null?r:0;((g=(E=A[A.length-1])==null?void 0:E.end)!=null?g:0)>c&&(A=s.buffer)}}),!A)return;const e=this.playbackSource.currentTime,t=(n=(F=A[A.length-1])==null?void 0:F.end)!=null?n:0,B=e<t?"playing":"buffering";this.emitter.emit("buffer state",{buffered:A,currentTime:this.playbackSource.currentTime,isPaused:this.playbackSource.isPaused,playbackState:B})});this.logger=e,this.emitter=A,this.trackContexts=t,this.playbackSource=B}static create(A,e,t,B,F){return d(this,null,function*(){const n=new Map;for(const s of t)switch(s.type){case"audio":{const{OpusDecoderContext:a}=yield Promise.resolve().then(()=>rR);n.set(s.type,{buffer:[],decoderContext:yield a.create(48e3,2),decodeTime:new w(100),transportTime:new w(100),sampleDuration:40});break}case"video":{const{H264DecoderWorkerContext:a}=yield Promise.resolve().then(()=>gR);n.set(s.type,{buffer:[],decoderContext:yield a.create(F),decodeTime:new w(100),transportTime:new w(100),sampleDuration:40});break}}return new Ea(A,e,n,B)})}}const jn=class jn{constructor(A){i(this,"emitter");i(this,"isVisibleCount",0);i(this,"isHiddenCount",0);i(this,"isOnlineCount",0);i(this,"isOfflineCount",0);i(this,"isActive",document.visibilityState==="visible");i(this,"unload",()=>{document.removeEventListener("visibilitychange",this.onVisibilityChanged),window.removeEventListener("pagehide",this.onPageHide),window.removeEventListener("online",this.onOnline),window.removeEventListener("offline",this.onOffline)});i(this,"load",()=>{document.addEventListener("visibilitychange",this.onVisibilityChanged),window.addEventListener("pagehide",this.onPageHide),window.addEventListener("online",this.onOnline),window.addEventListener("offline",this.onOffline)});i(this,"unsuspend",()=>{});i(this,"getStatistics",()=>{var A,e,t,B,F;return{isVisible:this.isVisible,isOnline:this.isOnline,isVisibleCount:this.isVisibleCount,isHiddenCount:this.isHiddenCount,isOnlineCount:this.isOnlineCount,isOfflineCount:this.isOfflineCount,navigatorRtt:(A=navigator.connection)==null?void 0:A.rtt,navigatorEffectiveType:(e=navigator.connection)==null?void 0:e.effectiveType,navigatorConnectionType:(t=navigator.connection)==null?void 0:t.type,navigatorSaveData:(B=navigator.connection)==null?void 0:B.saveData,navigatorDownlink:(F=navigator.connection)==null?void 0:F.downlink}});i(this,"onOnline",()=>this.isOnlineCount++);i(this,"onOffline",()=>this.isOfflineCount++);i(this,"onPageHide",A=>this.emitter.emit("pagehide",A));i(this,"onVisibilityChanged",()=>{this.setIsActive(document.visibilityState==="visible")});i(this,"setIsActive",A=>{A!==this.isActive&&(this.emitter.emit("page active",A),A?this.isVisibleCount++:this.isHiddenCount++),this.isActive=A});this.emitter=A}get isOnline(){return navigator.onLine}get isVisible(){return document.visibilityState==="visible"}};i(jn,"create",A=>new jn(A));let ga=jn;const qc=Q=>(A,e,t)=>A.timestamp<=e||A.timestampAdded<=t-Q,wt=class wt{constructor(A,e,t){i(this,"logger");i(this,"emitter");i(this,"waitingEvents",[]);i(this,"isTriggered",qc(wt.EVENT_TIMEOUT));i(this,"timeSource");i(this,"timers",new pA);i(this,"load",()=>{this.timers.setInterval(this.onBufferedStateChanged,wt.EVENT_CHECK_INTERVAL),this.emitter.on("add event",this.addEvent)});i(this,"unload",()=>{this.timers.unload(),this.emitter.off("add event",this.addEvent)});i(this,"addEvent",A=>{this.logger.debug("Adding event",{event:A}),!this.waitingEvents.some(e=>typeof e.id!="undefined"&&e.id===A.id)&&this.waitingEvents.push(O(S({},A),{timestampAdded:Date.now()}))});i(this,"extractEvent",(A,e)=>{e.type==="video"&&A.channelId!==e.channelId&&this.addEvent({type:"channel switch",channelId:e.channelId,timestamp:e.timestamp/e.timescale*1e3}),e.type==="audio"&&A.type==="audio"&&e.language!==void 0&&e.language!==A.language&&this.addEvent({type:"language switch",language:e.language,timestamp:e.timestamp/e.timescale*1e3})});i(this,"onBufferedStateChanged",()=>{var F;const A=Date.now(),e=(F=this.timeSource.drift)!=null?F:0,t=this.timeSource.serverCurrentTime-e;if(this.waitingEvents.length===0)return;const B=this.waitingEvents.filter(n=>this.isTriggered(n,t,A));this.waitingEvents=this.waitingEvents.filter(n=>!this.isTriggered(n,t,A)),B.forEach(n=>{this.logger.debug("Emitting event",{event:n}),this.emitter.emit("event",n)})});this.logger=e,this.emitter=A,this.timeSource=t}};i(wt,"EVENT_TIMEOUT",5e3),i(wt,"EVENT_CHECK_INTERVAL",20),i(wt,"create",(A,e,t)=>new wt(A,e,t));let Ia=wt;const Je=class Je{constructor(A){i(this,"emitter");i(this,"timers",pA.create());i(this,"bytesReceived",new Map);i(this,"timeoutInterval");i(this,"lastBytesUpdated",Date.now());i(this,"load",()=>{this.emitter.on("connection state",this.onConnectionState),this.timers.setInterval(()=>this.bytesReceived.forEach(A=>A.tick()),100)});i(this,"unload",()=>{this.emitter.off("connection state",this.onConnectionState),this.timers.unload()});i(this,"averageBitRate",A=>{var e,t;return((t=(e=this.bytesReceived.get(A))==null?void 0:e.average)!=null?t:0)*8});i(this,"totalBytesReceived",()=>{let A=0;return this.bytesReceived.forEach(e=>{A+=e.total}),A});i(this,"add",(A,e)=>{let t=this.bytesReceived.get(A);t||(t=new vd(20),this.bytesReceived.set(A,t)),e>0&&(this.lastBytesUpdated=Date.now(),this.timeoutInterval||(this.timeoutInterval=this.timers.setInterval(this.checkTimeout,Je.UPDATE_RECEIVED_BYTES_INTERVAL))),t.add(e)});i(this,"getStatistics",()=>({bytesReceived:this.totalBytesReceived(),videoBitRate:this.averageBitRate("video"),audioBitRate:this.averageBitRate("audio")}));i(this,"onConnectionState",A=>{this.clearTimeoutInterval(),A==="connected"&&(this.lastBytesUpdated=Date.now(),this.timeoutInterval=this.timers.setInterval(this.checkTimeout,Je.UPDATE_RECEIVED_BYTES_INTERVAL))});i(this,"checkTimeout",()=>{const A=Date.now()-this.lastBytesUpdated;if(this.totalBytesReceived()===0&&A>Je.NO_DATA_ERROR_TIMEOUT){this.emitter.emit("error",IE()),this.emitter.emit("reconnect","no incoming data"),this.clearTimeoutInterval();return}A>Je.NO_DATA_TIMEOUT&&this.totalBytesReceived()>0&&(this.emitter.emit("no data timeout",this.totalBytesReceived()),this.clearTimeoutInterval())});i(this,"clearTimeoutInterval",()=>{this.timeoutInterval&&(this.timers.clearInterval(this.timeoutInterval),this.timeoutInterval=void 0)});this.emitter=A}};i(Je,"NO_DATA_ERROR_TIMEOUT",20*1e3),i(Je,"NO_DATA_TIMEOUT",5*1e3),i(Je,"UPDATE_RECEIVED_BYTES_INTERVAL",1e3),i(Je,"create",A=>new Je(A));let ca=Je;const _c=()=>window.AudioContext||window.webkitAudioContext,qn=class qn extends $A{constructor(){super();i(this,"context",new(_c()));i(this,"timers",pA.create());i(this,"previousCurrentTime",0);i(this,"_isStuck",!1);i(this,"mediaStreamDestination");i(this,"unload",()=>(this.timers.unload(),this.context.removeEventListener("statechange",this.onStateChange),this.context.state!=="closed"?this.context.close():Promise.resolve()));i(this,"createGain",()=>this.context.createGain());i(this,"createBuffer",(e,t,B)=>this.context.createBuffer(e,t,B));i(this,"createBufferSource",()=>this.context.createBufferSource());i(this,"getMediaStreamDestination",()=>(this.mediaStreamDestination||(this.mediaStreamDestination=this.context.createMediaStreamDestination()),this.mediaStreamDestination));i(this,"getDefaultDestination",()=>this.context.destination);i(this,"createSplitter",()=>this.context.createChannelSplitter(2));i(this,"resume",()=>d(this,null,function*(){try{return yield Promise.race([this.context.resume(),ps(1e3,dE())])}catch(e){throw this.suspend().catch(V),e}}));i(this,"suspend",()=>d(this,null,function*(){var e;yield(e=this.context.suspend())!=null?e:Promise.resolve()}));i(this,"onStateChange",()=>this.emit("state",this.state));this.context.addEventListener("statechange",this.onStateChange),this.timers.setInterval(()=>{this._isStuck=this.isRunning&&this.context.currentTime===this.previousCurrentTime,this._isStuck&&this.emit("stuck"),this.previousCurrentTime=this.context.currentTime},qn.CHECK_INTERVAL)}get isStuck(){return this._isStuck}get isRunning(){return this.state==="running"}get currentTime(){return this.context.currentTime}get sampleRate(){return this.context.sampleRate}get state(){return this.context.state}};i(qn,"CHECK_INTERVAL",1e3);let Ca=qn;const _n=class _n extends $A{constructor(e,t,{muted:B,reInitWhenStuck:F}){super();i(this,"logger");i(this,"audio");i(this,"gainNode");i(this,"splitter");i(this,"_volume",1);i(this,"_userProvidedMuted",!1);i(this,"_muted",!1);i(this,"startTime",0);i(this,"samples",new Float32Array(new ArrayBuffer(5*960*4*2)));i(this,"preInitSampleQueue",new w(500));i(this,"unplayedBufferSources",new w(100));i(this,"sampleRate",48e3);i(this,"channels",2);i(this,"index",0);i(this,"clockSource");i(this,"clockDelta");i(this,"startTimeIsInvalidated",!0);i(this,"lastSampleTimestamp",0);i(this,"reInitWhenStuck");i(this,"ignoreSuspendCalls",!1);i(this,"isActivated",!1);i(this,"unload",()=>d(this,null,function*(){var e,t;(e=this.gainNode)==null||e.disconnect(),yield(t=this.audio)==null?void 0:t.unload(),this.reset(),this.audio=void 0,this.gainNode=void 0}));i(this,"suspend",()=>{this.setGain(0)});i(this,"unsuspend",()=>{var e;this.setGain(this._volume),this.ignoreSuspendCalls=!!this.audio,(e=this.audio)==null||e.suspend().then(()=>d(this,null,function*(){yield this.resume(),this.ignoreSuspendCalls=!1})).catch(()=>{this.ignoreSuspendCalls=!1,this.emit("state change","suspended")})});i(this,"flush",()=>{if(!this.audio||!this.gainNode)throw new X("AudioContext must be initialized to flush",{isFatal:!1,code:"audiocontext_must_be_initialized"});const e=this.samples.length/this.channels,t=this.audio.createBufferSource(),B=this.audio.createBuffer(this.channels,e,this.sampleRate);let F=0;for(let s=0;s<this.channels;s++){F=s;const a=B.getChannelData(s);for(let r=0;r<e;r++)a[r]=this.samples[F],F+=this.channels}const n=Math.max(this.startTime,0);t.buffer=B,t.connect(this.gainNode),this.splitter&&t.connect(this.splitter),t.start(n),this.unplayedBufferSources.push([n,t]),this.startTime+=B.duration});i(this,"onDecodedFrame",e=>{if(!(this.gainNode&&this.audio&&this.audio.isRunning)){if(e.type==="audio"){this.preInitSampleQueue.push(O(S({},e),{data:e.data.slice(0,e.data.length)}));const t=this.clockSource.currentTime;this.preInitSampleQueue.filterPop(({timestamp:B,timescale:F})=>B/F*1e3>t)}return}for(;!this.preInitSampleQueue.isEmpty();){const t=this.preInitSampleQueue.items();this.preInitSampleQueue.clear(),t.forEach(this.onDecodedFrame)}if(this.unplayedBufferSources.filterPop(([t,B])=>{var F,n;return((n=(F=this.audio)==null?void 0:F.currentTime)!=null?n:0)<t}),e.type==="audio"){const t=e.timestamp/e.timescale*1e3;if(t<this.lastSampleTimestamp&&(this.logger.info("Unordered timestamp - invalidating start time"),this.startTimeIsInvalidated=!0),this.lastSampleTimestamp=t,this.startTimeIsInvalidated){const B=this.audio.currentTime*1e3,F=this.clockSource.currentTime,n=(B+t-F)/1e3;this.clockDelta=F-B,this.startTime=n,this.startTimeIsInvalidated=!1,this.unplayedBufferSources.items().forEach(([s,a])=>{n<=s&&a.stop()})}this.samples.set(e.data,this.index),this.index+=e.data.length,this.channels=e.channels,this.sampleRate=e.sampleRate,this.samples.length<=this.index&&(this.index=0,this.flush())}});i(this,"play",()=>d(this,null,function*(){this.audio=this.getAudioContext(),yield this.resume()}));i(this,"pause",()=>{});i(this,"flushBuffer",()=>{this.unplayedBufferSources.items().forEach(([e,t])=>t.stop()),this.index=0});i(this,"resume",()=>d(this,null,function*(){var e;if(!this._userProvidedMuted)try{yield(e=this.audio)==null?void 0:e.resume(),this._muted=this._userProvidedMuted,this.startTimeIsInvalidated=!0}catch(t){throw this._muted=!0,t}}));i(this,"getAudioContext",()=>this.audio?this.audio:this.setupContext());i(this,"setupContext",()=>{var e,t,B;return(e=this.audio)==null||e.unload(),this.audio=new Ca,this.audio.on("state",F=>{this.logger.info("AudioContext state change",{state:F}),F==="running"&&(this._muted=this._userProvidedMuted,this.setGain(this._volume)),!this.ignoreSuspendCalls&&this.emit("state change",F)}),this.audio.on("stuck",()=>{this.reInitWhenStuck&&(this.logger.info("Re-init audio context"),this.setupContext(),this.resume().catch(V),this.emit("stuck"))}),(t=this.gainNode)==null||t.disconnect(),this.gainNode=this.audio.createGain(),this.setGain(this._volume),this.startTime=this.audio.currentTime,(B=this.splitter)==null||B.disconnect(),this.splitter=this.audio.createSplitter(),this.audio});i(this,"setGain",e=>{this.gainNode&&(this.gainNode.gain.value=this._muted?0:e)});this._muted=B,this._userProvidedMuted=B,this.logger=e,this.clockSource=t,this.reInitWhenStuck=F}get isContextRunning(){var e;return((e=this.audio)==null?void 0:e.state)==="running"}get volume(){return this._volume}set volume(e){this._volume=e,this.muted||this.setGain(e)}get seekTime(){return 0}get isSeeking(){return!1}get muted(){var e;return this._muted||!((e=this.audio)!=null&&e.isRunning)}set muted(e){this._userProvidedMuted=e,this._muted=e,this.setGain(this._volume)}get isPaused(){return!1}get currentTime(){var e;return!this.audio||!this.audio.isRunning||this.audio.isStuck?this.clockSource.currentTime:this.audio.currentTime*1e3+((e=this.clockDelta)!=null?e:0)}set currentTime(e){this.logger.debug("setting current time to",{currentTime:e}),this.startTimeIsInvalidated=!0}get audioNode(){return this.splitter}useMediaStreamDestination(){var B;const t=this.getAudioContext().getMediaStreamDestination();return(B=this.gainNode)==null||B.connect(t),t}useDefaultDestination(){var B;const t=this.getAudioContext().getDefaultDestination();return(B=this.gainNode)==null||B.connect(t),t}};i(_n,"create",(e,t,B)=>new _n(e,t,B));let sn=_n;class Yl{constructor(){o(this,Tt,[]);l(this,Tt,[])}addTextTrack(A,e,t){const B=[],F={kind:A,label:e,language:t,mode:"disabled",cues:B,addCue:n=>{B.push(n)},removeCue:n=>{const s=B.findIndex(a=>a===n);s!==-1&&B.splice(s,1)}};return U(this,Tt).push(F),F}set language(A){U(this,Tt).forEach(e=>{e.language===A?e.mode="showing":e.mode="hidden"})}get language(){var A;return(A=U(this,Tt).find(e=>e.mode==="showing"))==null?void 0:A.language}getActiveCues(A){const e=U(this,Tt).find(t=>t.mode==="showing");return e?e.cues.filter(({startTime:t,endTime:B})=>A>=t&&A<=B):[]}}Tt=new WeakMap;const Kt=(Q,A)=>{let e;for(e=A;Q>1;Q--)e+=A;return e};class $c{constructor(){i(this,"audio");i(this,"unmute",()=>this.audio.play().catch(V));const A=document.createElement("div");A.innerHTML="<audio x-webkit-airplay='deny'></audio>";const e=A.children.item(0);if(e instanceof HTMLAudioElement)this.audio=e,this.audio.controls=!1,this.audio.disableRemotePlayback=!0,this.audio.preload="auto",this.audio.src="data:audio/mpeg;base64,//uQx"+Kt(23,"A")+"WGluZwAAAA8AAAACAAACcQCA"+Kt(16,"gICA")+Kt(66,"/")+"8AAABhTEFNRTMuMTAwA8MAAAAAAAAAABQgJAUHQQAB9AAAAnGMHkkI"+Kt(320,"A")+"//sQxAADgnABGiAAQBCqgCRMAAgEAH"+Kt(15,"/")+"7+n/9FTuQsQH//////2NG0jWUGlio5gLQTOtIoeR2WX////X4s9Atb/JRVCbBUpeRUq"+Kt(18,"/")+"9RUi0f2jn/+xDECgPCjAEQAABN4AAANIAAAAQVTEFNRTMuMTAw"+Kt(97,"V")+"Q==",this.audio.loop=!1,this.audio.load();else throw new Error("Failed to create audio tag")}}class AC{constructor(){o(this,Be);o(this,nF,[]);o(this,ve,document.createElement("canvas"));o(this,wA);o(this,wQ,window.devicePixelRatio||1);i(this,"config",{backgroundColor:"rgba(0,0,0,0.6)",textPadding:8,fontSize:"28px",lineGap:16});const A=U(this,ve).getContext("2d",{alpha:!0});if(!A)throw new Error("Failed to create 2d context");l(this,wA,A),I(this,Be,gB).call(this)}get canvas(){return U(this,ve)}setActiveCues(A){l(this,nF,A)}render(A,e=!1){const t=U(this,nF).flatMap(s=>s.text.split(`
|
|
3
|
+
`).flatMap(r=>I(this,Be,Wd).call(this,r,A.width)).map(r=>{I(this,Be,gB).call(this);const E=U(this,wA).measureText(r);return{text:r,measurement:E,size:{height:E.fontBoundingBoxAscent+E.fontBoundingBoxDescent+this.config.textPadding*2,width:E.width+this.config.textPadding*2}}})),B=Math.max(...t.map(s=>s.size.width)),F=t.reduce((s,{size:a})=>s+a.height,0)+(t.length-1)*this.config.lineGap;let n=0;I(this,Be,md).call(this,B,F),U(this,wA).clearRect(0,0,U(this,ve).width,U(this,ve).height);for(const{size:s,text:a}of t)I(this,Be,gB).call(this),U(this,wA).fillStyle=this.config.backgroundColor,U(this,wA).fillRect(0,n,s.width,s.height),I(this,Be,gB).call(this),U(this,wA).fillText(a,this.config.textPadding,n+this.config.textPadding),n+=s.height+this.config.lineGap;e&&(U(this,wA).strokeStyle="red",U(this,wA).strokeRect(0,0,A.width,U(this,ve).height))}}nF=new WeakMap,ve=new WeakMap,wA=new WeakMap,wQ=new WeakMap,Be=new WeakSet,md=function(A,e){U(this,ve).width=A*U(this,wQ),U(this,ve).height=e*U(this,wQ),U(this,wA).scale(U(this,wQ),U(this,wQ)),this.canvas.style.width=`${A}px`,this.canvas.style.height=`${e}px`},gB=function(){U(this,wA).fillStyle="white",U(this,wA).textAlign="left",U(this,wA).textBaseline="top",U(this,wA).font=`${this.config.fontSize} sans-serif`},Wd=function(A,e){const t=[],B=A.split(" ");let F="";for(;B.length>0;){I(this,Be,gB).call(this);let n=0;for(;U(this,wA).measureText(F+(F.length>0?" ":"")+B[0]).width+this.config.textPadding*2<=e&&B.length>0;)n++,F+=(F.length>0?" ":"")+B.shift();if(n==0){t.push(B.shift()||""),F="";continue}t.push(F),F=""}return t};const eC=`
|
|
4
4
|
precision mediump float;
|
|
5
5
|
uniform sampler2D texture;
|
|
6
6
|
|
|
@@ -12,7 +12,7 @@ void main() {
|
|
|
12
12
|
|
|
13
13
|
gl_FragColor = vec4(y, y, y, a);
|
|
14
14
|
}
|
|
15
|
-
`,
|
|
15
|
+
`,tC=`
|
|
16
16
|
attribute vec2 position;
|
|
17
17
|
varying vec2 texture_coordinate;
|
|
18
18
|
uniform mat4 model;
|
|
@@ -21,7 +21,7 @@ void main() {
|
|
|
21
21
|
texture_coordinate = position;
|
|
22
22
|
gl_Position = model * vec4(position, 0.0, 1.0);
|
|
23
23
|
}
|
|
24
|
-
`,
|
|
24
|
+
`,xl=(Q,A)=>{let e=Q.getContext("webgl",A);if(e||(e=Q.getContext("experimental-webgl",A)),!e)throw new X("Failed to create webgl context",{isFatal:!0,code:"failed_to_create_web_gl_context"});return e},jQ=(Q,A,e)=>{const t=Q.createShader(A);if(!t)throw new X("Failed to create shader",{isFatal:!0,code:"failed_to_create_shader"});if(Q.shaderSource(t,e),Q.compileShader(t),!Q.getShaderParameter(t,Q.COMPILE_STATUS)){const B=Q.getShaderInfoLog(t);throw new X(`Failed to compile shader: ${B!=null?B:""}`,{isFatal:!0,code:"failed_to_compile_shader"})}return t},Ot=Q=>{const A=Q.createTexture();if(!A)throw new X("Failed to create texture",{isFatal:!0,code:"failed_to_create_texture"});return Q.bindTexture(Q.TEXTURE_2D,A),Q.texParameteri(Q.TEXTURE_2D,Q.TEXTURE_MAG_FILTER,Q.NEAREST),Q.texParameteri(Q.TEXTURE_2D,Q.TEXTURE_MIN_FILTER,Q.NEAREST),Q.texParameteri(Q.TEXTURE_2D,Q.TEXTURE_WRAP_S,Q.CLAMP_TO_EDGE),Q.texParameteri(Q.TEXTURE_2D,Q.TEXTURE_WRAP_T,Q.CLAMP_TO_EDGE),A},Xl=(Q,A)=>{const e=Q.createBuffer();if(!e)throw new X("Failed to create buffer",{isFatal:!0,code:"failed_to_create_buffer"});return Q.bindBuffer(Q.ARRAY_BUFFER,e),Q.bufferData(Q.ARRAY_BUFFER,A.buffer,Q.STATIC_DRAW),e},Ra=(Q,A,e)=>{const t=Q.createProgram();if(!t)throw new X("Failed to create program",{isFatal:!0,code:"failed_to_create_program"});if(Q.attachShader(t,e),Q.attachShader(t,A),Q.linkProgram(t),!Q.getProgramParameter(t,Q.LINK_STATUS)){const B=Q.getShaderInfoLog(t);throw new X(`Failed to link program: ${B!=null?B:""}`,{isFatal:!0,code:"failed_to_link_program"})}return t};class QC{constructor(A){o(this,sB);o(this,$n,96);o(this,$);o(this,sF);o(this,aF);o(this,oF);o(this,yt);i(this,"subtitleRenderer",new AC);o(this,As,(A,e,t,B)=>[A,0,0,0,0,-e,0,0,0,0,1,0,t,B,0,1]);l(this,$,A),l(this,sF,Ot(A)),l(this,aF,jQ(A,A.FRAGMENT_SHADER,eC)),l(this,oF,jQ(A,A.VERTEX_SHADER,tC)),l(this,yt,Ra(A,U(this,oF),U(this,aF))),this.subtitleRenderer.config.fontSize="64px"}setActiveCues(A,e){this.subtitleRenderer.setActiveCues(A),this.subtitleRenderer.render(e)}render(A){const e=this.subtitleRenderer.canvas,t=(A.padding+U(this,$n))*window.devicePixelRatio;e.width!==0&&(U(this,$).useProgram(U(this,yt)),I(this,sB,pd).call(this),I(this,sB,Dd).call(this,this.subtitleRenderer.canvas.width/A.width,this.subtitleRenderer.canvas.height/A.height,-this.subtitleRenderer.canvas.width/A.width/2,-(1-(this.subtitleRenderer.canvas.height+t)/A.height)),U(this,$).uniform1i(U(this,$).getUniformLocation(U(this,yt),"texture"),4),U(this,$).activeTexture(U(this,$).TEXTURE4),U(this,$).bindTexture(U(this,$).TEXTURE_2D,U(this,sF)),U(this,$).enable(U(this,$).BLEND),U(this,$).blendFunc(U(this,$).SRC_ALPHA,U(this,$).ONE_MINUS_SRC_ALPHA),U(this,$).texImage2D(U(this,$).TEXTURE_2D,0,U(this,$).RGBA,U(this,$).RGBA,U(this,$).UNSIGNED_BYTE,e),U(this,$).texParameteri(U(this,$).TEXTURE_2D,U(this,$).TEXTURE_MAG_FILTER,U(this,$).LINEAR),U(this,$).drawArrays(U(this,$).TRIANGLE_STRIP,0,4))}}$n=new WeakMap,$=new WeakMap,sF=new WeakMap,aF=new WeakMap,oF=new WeakMap,yt=new WeakMap,sB=new WeakSet,pd=function(){const A=U(this,$).getAttribLocation(U(this,yt),"position");U(this,$).enableVertexAttribArray(A),U(this,$).vertexAttribPointer(A,2,U(this,$).FLOAT,!1,0,0)},Dd=function(A,e,t,B){const F=U(this,$).getUniformLocation(U(this,yt),"model");U(this,$).uniformMatrix4fv(F,!1,U(this,As).call(this,A,e,t,B))},As=new WeakMap;const Kl=`
|
|
25
25
|
precision mediump float;
|
|
26
26
|
uniform sampler2D y_texture;
|
|
27
27
|
uniform sampler2D u_texture;
|
|
@@ -37,7 +37,7 @@ void main() {
|
|
|
37
37
|
|
|
38
38
|
gl_FragColor = vec4(y, u, v, 1) * conversion;
|
|
39
39
|
}
|
|
40
|
-
`,
|
|
40
|
+
`,Ol=`
|
|
41
41
|
attribute vec2 position;
|
|
42
42
|
varying vec2 texture_coordinate;
|
|
43
43
|
uniform mat4 model;
|
|
@@ -46,8 +46,8 @@ void main() {
|
|
|
46
46
|
texture_coordinate = position;
|
|
47
47
|
gl_Position = model * vec4(position, 0.0, 1.0);
|
|
48
48
|
}
|
|
49
|
-
`,Yl={width:256,codedWidth:256,height:144,codedHeight:144},xl={preserveDrawingBuffer:!1,alpha:!1,depth:!1,stencil:!1,antialias:!1,premultipliedAlpha:!1},aF=class aF extends ee{constructor(){super();i(this,"canvas",document.createElement("canvas"));i(this,"context",Ml(this.canvas,xl));i(this,"pixelShader",jQ(this.context,this.context.FRAGMENT_SHADER,Ll));i(this,"vertexShader",jQ(this.context,this.context.VERTEX_SHADER,Hl));i(this,"buffer",vl(this.context,aF.SQUARE_VERTICES));i(this,"program",Ia(this.context,this.vertexShader,this.pixelShader));i(this,"textures",{y:Xt(this.context),u:Xt(this.context),v:Xt(this.context)});i(this,"textRenderer");i(this,"size",Yl);i(this,"onContextLost",e=>{this.textRenderer=void 0;const t=new Error(e instanceof WebGLContextEvent?e.statusMessage:"webgl context lost");this.emit("context lost",dE(t)),e.preventDefault()});i(this,"onContextRestored",()=>{this.emit("context restored"),this.context=Ml(this.canvas,xl),this.pixelShader=jQ(this.context,this.context.FRAGMENT_SHADER,Ll),this.vertexShader=jQ(this.context,this.context.VERTEX_SHADER,Hl),this.buffer=vl(this.context,aF.SQUARE_VERTICES),this.program=Ia(this.context,this.vertexShader,this.pixelShader),this.textures={y:Xt(this.context),u:Xt(this.context),v:Xt(this.context)},this.load()});i(this,"load",()=>{this.context.useProgram(this.program),this.setupPositionVertexAttributes(),this.setSize(Yl),this.context.uniform1i(this.context.getUniformLocation(this.program,"y_texture"),0),this.context.uniform1i(this.context.getUniformLocation(this.program,"u_texture"),1),this.context.uniform1i(this.context.getUniformLocation(this.program,"v_texture"),2),this.setConversionMatrix(this.rec709())});i(this,"unload",()=>{var t;this.setSize({width:1,height:1,codedHeight:1,codedWidth:1}),[this.textures.y,this.textures.u,this.textures.v].forEach(B=>this.context.deleteTexture(B)),this.context.deleteShader(this.pixelShader),this.context.deleteShader(this.vertexShader),this.context.deleteProgram(this.program),this.context.deleteBuffer(this.buffer),this.canvas.removeEventListener("webglcontextlost",this.onContextLost),this.canvas.removeEventListener("webglcontextrestored",this.onContextRestored),(t=this.context.getExtension("WEBGL_lose_context"))==null||t.loseContext()});i(this,"resetSize",()=>{this.setSize({width:this.size.width/2,height:this.size.height/2,codedHeight:this.size.codedHeight/2,codedWidth:this.size.codedWidth/2})});i(this,"render",(e,t)=>{var B;this.context.useProgram(this.program),this.setSize({width:e.width,height:e.height,codedWidth:e.codedWidth,codedHeight:e.codedHeight}),this.setConversionMatrix(this.rec709()),this.setModelMatrix(this.size.width/this.size.codedWidth,this.size.height/this.size.codedHeight),this.context.activeTexture(this.context.TEXTURE0),this.updateTexture(this.textures.y,this.size.codedWidth,this.size.codedHeight,e.data[0]),this.context.activeTexture(this.context.TEXTURE1),this.updateTexture(this.textures.u,this.size.codedWidth/2,this.size.codedHeight/2,e.data[1]),this.context.activeTexture(this.context.TEXTURE2),this.updateTexture(this.textures.v,this.size.codedWidth/2,this.size.codedHeight/2,e.data[2]),this.context.drawArrays(this.context.TRIANGLE_STRIP,0,4),this.textRenderer&&this.textRenderer.render({width:Math.max(t.clientWidth,960)*window.devicePixelRatio,height:Math.max(t.clientHeight,540)*window.devicePixelRatio,padding:-parseInt((B=t.style.getPropertyValue("--vindral-control-bar-offset"))!=null?B:"0",10)})});i(this,"updateTexture",(e,t,B,F)=>{const s=this.context.LUMINANCE,a=this.context.UNSIGNED_BYTE;this.context.bindTexture(this.context.TEXTURE_2D,e),this.context.texImage2D(this.context.TEXTURE_2D,0,s,t,B,0,s,a,F)});i(this,"setupPositionVertexAttributes",()=>{const e=this.context.getAttribLocation(this.program,"position");this.context.enableVertexAttribArray(e),this.context.vertexAttribPointer(e,2,this.context.FLOAT,!1,0,0)});i(this,"setSize",e=>{bt(e,this.size)||(this.size=e,this.canvas.setAttribute("width",e.width.toString()),this.canvas.setAttribute("height",e.height.toString()),this.context.viewport(0,0,e.width,e.height),this.setModelMatrix(e.width/e.codedWidth,e.height/e.codedHeight))});i(this,"setModelMatrix",(e,t)=>{const B=this.context.getUniformLocation(this.program,"model");this.context.uniformMatrix4fv(B,!1,this.transformMatrix(e,t))});i(this,"setConversionMatrix",e=>{const t=this.context.getUniformLocation(this.program,"conversion");this.context.uniformMatrix4fv(t,!1,e)});i(this,"transformMatrix",(e,t)=>[2/e,0,0,0,0,-2/t,0,0,0,0,2/1,0,-1,1,0,1]);i(this,"rec709",()=>[1.16438,0,1.79274,-.97295,1.16438,-.21325,-.53291,.30148,1.16438,2.1124,0,-1.1334,0,0,0,1]);i(this,"rec601",()=>[1.16438,0,1.59603,-.87079,1.16438,-.39176,-.81297,.52959,1.16438,2.01723,0,-1.08139,0,0,0,1]);this.canvas.addEventListener("webglcontextlost",this.onContextLost),this.canvas.addEventListener("webglcontextrestored",this.onContextRestored,!1),this.canvas.style.width="100%",this.canvas.style.position="relative"}getTextRenderer(){return this.textRenderer||(this.textRenderer=new Xc(this.context)),this.textRenderer}};i(aF,"SQUARE_VERTICES",new Float32Array([0,0,0,1,1,0,1,1]));let ca=aF;const _n=class _n{constructor(A,e,t,B){i(this,"oldTimestampLimit",400);i(this,"pool");i(this,"logger");i(this,"videoRenderer",new ca);i(this,"renderQueue",[]);i(this,"clockSource");i(this,"isFirstFrame",!0);i(this,"animationFrameRequest");i(this,"renderedFrameCount",0);i(this,"rendererDroppedFrameCount",0);i(this,"renderTargetSize");i(this,"load",()=>{this.videoRenderer.load()});i(this,"unload",()=>(this.stopRender(),this.videoRenderer.unload(),Promise.resolve()));i(this,"suspend",()=>{this.renderQueue=[],this.stopRender()});i(this,"unsuspend",()=>{this.animationFrameRequest=requestAnimationFrame(this.render)});i(this,"element",()=>this.videoRenderer.canvas);i(this,"getStatistics",()=>({renderedFrameCount:this.renderedFrameCount,rendererDroppedFrameCount:this.rendererDroppedFrameCount,contextLostCount:0,contextRestoredCount:0}));i(this,"resetSize",()=>{this.videoRenderer.resetSize()});i(this,"setActiveCues",(A,e)=>{this.videoRenderer.getTextRenderer().setActiveCues(A,e)});i(this,"onDecodedFrame",A=>{if(A.type==="video")if(this.isFirstFrame)this.isFirstFrame=!1,requestAnimationFrame(()=>{this.renderSample(A)});else{const e=(this.clockSource.currentTime-this.oldTimestampLimit)/1e3;this.renderQueue=this.renderQueue.filter(t=>{const B=t.timestamp/t.timescale,F=A.timestamp/A.timescale,n=B>e&&B<=F;return n||this.pool.reclaim(t.buffer),n}),this.renderQueue.push(A)}});i(this,"render",()=>{const A=this.clockSource.currentTime;let e=this.renderQueue[0],t,B=0;for(;e&&e.timestamp/e.timescale*1e3<=A;)e=this.renderQueue.shift(),e&&(B++,t&&this.pool.reclaim(t.buffer),t=e),e=this.renderQueue[0];t&&this.renderSample(t),this.rendererDroppedFrameCount+=Math.max(B-1,0),this.animationFrameRequest=requestAnimationFrame(this.render)});i(this,"renderSample",A=>{this.renderedFrameCount++,this.videoRenderer.render(A,this.renderTargetSize),this.pool.reclaim(A.buffer)});i(this,"stopRender",()=>{this.animationFrameRequest&&cancelAnimationFrame(this.animationFrameRequest)});this.logger=A,this.clockSource=e,this.pool=t,this.renderTargetSize=B||this.videoRenderer.canvas}};i(_n,"create",(A,e,t,B)=>new _n(A,e,t,B));let Fn=_n;const $n=class $n{constructor(A,e,t,B,F){i(this,"logger");i(this,"emitter");i(this,"audioPlayer");i(this,"videoPlayer");i(this,"pool");i(this,"unmuter",new Lc);i(this,"_isPaused",!1);i(this,"isDisconnected",!1);i(this,"timers",new DA);i(this,"textTracks",new Gl);i(this,"playbackRate");i(this,"reset",()=>{});i(this,"load",()=>{this.audioPlayer.useDefaultDestination(),this.emitter.on("decoded frame",this.onDecodedFrame),this.emitter.on("flush buffers",this.flushBuffers),this.videoPlayer.load(),this.timers.setInterval(()=>{if(!this.textTracks.language)return;const A=this.textTracks.getActiveCues(this.currentTime/1e3);this.videoPlayer.setActiveCues(A,{width:this.videoPlayer.element().clientWidth,height:this.videoPlayer.element().clientHeight})},100)});i(this,"unload",()=>{this.emitter.off("decoded frame",this.onDecodedFrame),this.emitter.off("flush buffers",this.flushBuffers),this.audioPlayer.unload(),this.videoPlayer.unload(),this.timers.unload()});i(this,"suspend",()=>{this.videoPlayer.suspend(),this.audioPlayer.suspend()});i(this,"unsuspend",()=>{this.videoPlayer.unsuspend(),this.audioPlayer.unsuspend()});i(this,"element",()=>this.videoPlayer.element());i(this,"getStatistics",()=>this.videoPlayer.getStatistics());i(this,"flushBuffers",()=>{this.audioPlayer.flushBuffer()});i(this,"activateAudioPlayer",()=>(this.isDisconnected&&(this.isDisconnected=!1,this.audioPlayer.useDefaultDestination()),this._isPaused=!1,this.unmuter.unmute(),this.audioPlayer.play()));i(this,"onDecodedFrame",A=>{try{this.audioPlayer.onDecodedFrame(A)}catch(e){e instanceof Error&&this.emitter.emit("error",vo(!1,e))}this.videoPlayer.onDecodedFrame(A)});this.logger=e,this.emitter=A,this.pool=t,this.audioPlayer=Un.create(this.logger.createContext("AudioPlayerModule"),B,{muted:F,reInitWhenStuck:!0}),this.audioPlayer.on("stuck",()=>{this.isDisconnected=!0}),this.audioPlayer.on("state change",()=>{this.emitter.emit("volume state",{volume:this.volume,isMuted:this.muted})}),this.videoPlayer=Fn.create(this.logger.createContext("VideoPlayerModule"),this.audioPlayer,this.pool)}get volume(){return this.audioPlayer.volume}set volume(A){this.audioPlayer.volume=A}get muted(){return this.audioPlayer.muted}set muted(A){const e=this.muted;this.audioPlayer.muted=A,!A&&e&&this.activateAudioPlayer().catch(V)}get currentTime(){return this.audioPlayer.currentTime}set currentTime(A){this.audioPlayer.currentTime=A}get isActivated(){return this.audioPlayer.isActivated}set isActivated(A){this.audioPlayer.isActivated=A}get seekTime(){return this.audioPlayer.seekTime}get isPaused(){return this._isPaused}get isSeeking(){return this.audioPlayer.isSeeking}get audioNode(){return this.audioPlayer.audioNode}play(){this.activateAudioPlayer().then(()=>{this.emitter.emit("media element state","playing")}).catch(()=>{this.emitter.emit("needs user input",{forAudio:!0,forVideo:!1})})}pause(){this._isPaused=!0,this.audioPlayer.pause(),this.emitter.emit("media element state","paused")}};i($n,"create",(A,e,t,B,F)=>new $n(A,e,t,B,F));let Ca=$n;const As=class As{constructor(A,e,t,B,{muted:F,type:n,poster:s}){i(this,"logger");i(this,"emitter");i(this,"mediaElement");i(this,"audioPlayer");i(this,"videoPlayer");i(this,"pool");i(this,"isDisconnected",!0);i(this,"_userProvidedMuted",!1);i(this,"timers",new DA);i(this,"volumeState");i(this,"textTracks",new Gl);i(this,"reset",()=>{});i(this,"load",()=>{this.mediaElement.load(),this.emitter.on("decoded frame",this.onDecodedFrame),this.emitter.on("flush buffers",this.flushBuffers),this.emitter.on("ios-hack: reset size",this.resetCanvasSize),this.emitter.on("enter picture in picture",this.onEnterIOSHack),this.emitter.on("exit picture in picture",this.onExitIOSHack),this.element().element.addEventListener("webkitendfullscreen",this.onExitIOSHack),this.element().element.addEventListener("webkitbeginfullscreen",this.onEnterIOSHack),this.videoPlayer.load(),this.timers.setInterval(()=>{if(!this.textTracks.language)return;const A=this.textTracks.getActiveCues(this.currentTime/1e3);this.videoPlayer.setActiveCues(A,{width:this.mediaElement.element.clientWidth,height:this.mediaElement.element.clientHeight})},100)});i(this,"unload",()=>{this.emitter.off("decoded frame",this.onDecodedFrame),this.emitter.off("flush buffers",this.flushBuffers),this.emitter.off("ios-hack: reset size",this.resetCanvasSize),this.emitter.off("enter picture in picture",this.onEnterIOSHack),this.emitter.off("exit picture in picture",this.onExitIOSHack),this.element().element.removeEventListener("webkitendfullscreen",this.onExitIOSHack),this.element().element.removeEventListener("webkitbeginfullscreen",this.onEnterIOSHack),this.mediaElement.unload(),this.timers.unload(),this.audioPlayer.unload(),this.videoPlayer.unload()});i(this,"suspend",()=>{this.videoPlayer.suspend(),this.audioPlayer.suspend()});i(this,"unsuspend",()=>{this.videoPlayer.unsuspend(),this.audioPlayer.unsuspend()});i(this,"element",()=>this.mediaElement);i(this,"getStatistics",()=>this.videoPlayer.getStatistics());i(this,"activateAudioPlayer",()=>(this.isDisconnected&&this.connectStreams(),this.audioPlayer.play()));i(this,"flushBuffers",()=>{this.audioPlayer.flushBuffer()});i(this,"resetCanvasSize",()=>{this.videoPlayer.resetSize()});i(this,"onEnterIOSHack",()=>{this.mediaElement._iosHackEnterPiPMode()});i(this,"onExitIOSHack",()=>{this.mediaElement._iosHackExitPiPMode()});i(this,"onDecodedFrame",A=>{try{this.audioPlayer.onDecodedFrame(A)}catch(e){e instanceof Error&&this.emitter.emit("error",vo(!1,e))}this.videoPlayer.onDecodedFrame(A)});i(this,"connectStreams",()=>{const A=this.videoPlayer.element().captureStream(),e=this.audioPlayer.useMediaStreamDestination().stream,t=[];t.push(...A.getTracks(),...e.getTracks()),this.mediaElement.element.srcObject=new MediaStream(t),this.isDisconnected=!1});i(this,"updateVolumeState",()=>{const A={isMuted:this.muted,volume:this.volume};bt(A,this.volumeState)||(this.volumeState=A,this.emitter.emit("volume state",this.volumeState))});this.logger=e,this.emitter=A,this.pool=t,this._userProvidedMuted=F,this.mediaElement=new vs({poster:s,type:n,muted:F,autoplay:!1,logger:this.logger.createContext("MediaElement")}),this.mediaElement.on("volume state",a=>{this.updateVolumeState(),!a.isMuted&&!this.audioPlayer.isContextRunning&&this.activateAudioPlayer().catch(V),a.isMuted||(this._userProvidedMuted=!1)}),this.mediaElement.on("media element state",a=>{a==="paused"&&this.audioPlayer.flushBuffer(),this.emitter.emit("media element state",a)}),this.audioPlayer=Un.create(this.logger.createContext("AudioPlayerModule"),B,{muted:!1,reInitWhenStuck:!1}),this.audioPlayer.on("stuck",()=>{this.isDisconnected=!0}),this.audioPlayer.on("state change",a=>{a==="suspended"||a==="interrupted"?this.mediaElement.muted=!0:a==="running"&&(this.mediaElement.muted=this._userProvidedMuted||document.visibilityState==="hidden"),this.updateVolumeState()}),this.videoPlayer=Fn.create(this.logger.createContext("VideoPlayerModule"),this.audioPlayer,this.pool,this.mediaElement.element),this.volumeState={volume:this.volume,isMuted:this.muted}}get volume(){return this.mediaElement.volume}set volume(A){this.mediaElement.volume=A}get muted(){return this.mediaElement.muted||this.audioPlayer.muted}set muted(A){const e=this.muted;this._userProvidedMuted=A,this.mediaElement.muted=A,!A&&e&&this.activateAudioPlayer().catch(V)}get currentTime(){return this.audioPlayer.currentTime}set currentTime(A){this.audioPlayer.currentTime=A}get isActivated(){return this.mediaElement.isActivated}set isActivated(A){this.mediaElement.isActivated=A}get seekTime(){return this.mediaElement.seekTime}get isPaused(){return this.mediaElement.isPaused}get isSeeking(){return this.mediaElement.isSeeking}get audioNode(){return this.audioPlayer.audioNode}play(){const A=this._userProvidedMuted;return this.activateAudioPlayer().catch(()=>{A||this.emitter.emit("needs user input",{forAudio:!0,forVideo:!1})}),this.mediaElement.play()}pause(){this.mediaElement.pause()}};i(As,"create",(A,e,t,B,F)=>new As(A,e,t,B,F));let Ra=As;const Kc=()=>Q=>Xl(Q.buffered.start(0),Q.buffered.end(Q.buffered.length-1)),Xl=(Q,A)=>e=>e.remove(Math.max(0,Q),Math.min(Number.POSITIVE_INFINITY,A)),Kl=Q=>A=>A.appendBuffer(Q),Oc=Q=>A=>A.changeType(Q),zc=Q=>A=>Q(A);class Pc{constructor(A){i(this,"commandQueue",[]);i(this,"sourceBuffer");i(this,"currentInit");i(this,"handleQueue",()=>{var A;this.sourceBuffer.updating||(A=this.commandQueue.shift())==null||A.execute(this.sourceBuffer)});i(this,"appendBuffer",(A,e)=>new Promise((t,B)=>{if(e&&this.currentInit!==e){const n=new xQ(Kl(e),t,B);this.commandQueue.push(n),this.currentInit=e}const F=new xQ(Kl(A),t,B);this.commandQueue.push(F),this.handleQueue()}));i(this,"execute",A=>new Promise((e,t)=>{const B=new xQ(zc(A),e,t);this.commandQueue.push(B),this.handleQueue()}));i(this,"buffered",()=>this.sourceBuffer.buffered);i(this,"removeFromMediaSource",A=>{A.removeSourceBuffer(this.sourceBuffer)});i(this,"changeType",A=>new Promise((e,t)=>{const B=new xQ(Oc(A),e,t);this.commandQueue.push(B),this.handleQueue()}));i(this,"removeBuffer",(A,e)=>new Promise((t,B)=>{const F=new xQ(Xl(A,e),t,B);this.commandQueue.push(F),this.handleQueue()}));i(this,"flush",()=>new Promise((A,e)=>{const t=new xQ(Kc,A,e);this.commandQueue.push(t),this.handleQueue()}));this.sourceBuffer=A,this.sourceBuffer.addEventListener("updateend",this.handleQueue)}}class Ol extends ee{constructor(){super();i(this,"MediaSource",le());i(this,"mediaSource",new this.MediaSource);i(this,"isOpen",()=>this.mediaSource.readyState==="open");i(this,"isClosed",()=>this.mediaSource.readyState==="closed");i(this,"isEnded",()=>this.mediaSource.readyState==="ended");i(this,"createObjectURL",()=>URL.createObjectURL(this.mediaSource));i(this,"attach",e=>{const t=e;if("srcObject"in t)try{t.srcObject=this.mediaSource}catch(B){if(B instanceof Error&&B.name!=="TypeError")throw B;t.src=this.createObjectURL()}else e.src=this.createObjectURL()});i(this,"detach",e=>{if(this.mediaSource&&this.mediaSource.readyState==="open")try{this.mediaSource.endOfStream()}catch(t){}e.srcObject&&(e.srcObject=null),e.src!==""&&(URL.revokeObjectURL(e.src),e.removeAttribute("src")),e.load()});i(this,"addSourceBuffer",e=>{const t=this.mediaSource.addSourceBuffer(e);return new Pc(t)});i(this,"removeSourceBuffer",e=>{e.removeFromMediaSource(this.mediaSource)});i(this,"endOfStream",e=>{this.mediaSource.endOfStream(e)});i(this,"onSourceOpen",()=>{this.setDurationIfNeeded(),this.emit("source open")});i(this,"onSourceEnded",()=>this.emit("source ended"));i(this,"onSourceClosed",()=>this.emit("source close"));i(this,"setDurationIfNeeded",()=>{if(Number.isNaN(this.mediaSource.duration)&&this.mediaSource.readyState==="open"){for(let e=0;e<this.mediaSource.sourceBuffers.length;e++){const t=this.mediaSource.sourceBuffers[e];if(t!=null&&t.updating)return}this.mediaSource.duration=Number.POSITIVE_INFINITY}});this.mediaSource.addEventListener("sourceopen",this.onSourceOpen),this.mediaSource.addEventListener("sourceclose",this.onSourceClosed),this.mediaSource.addEventListener("sourceended",this.onSourceEnded)}}i(Ol,"isTypeSupported",e=>{var t,B;return(B=(t=le())==null?void 0:t.isTypeSupported(e))!=null?B:!1});class zl{constructor(){i(this,"initSegments",new Map);i(this,"set",(A,e,t)=>{var F;const B=(F=this.initSegments.get(A))!=null?F:new Map;B.set(e,t),this.initSegments.set(A,B)});i(this,"get",(A,e)=>{var t;return(t=this.initSegments.get(A))==null?void 0:t.get(e)})}}function jc(Q,{mediaSource:A,mimeType:e,codec:t}){return O(S({},Q),{state:"initialized",mimeType:e,codec:t,sourceBuffer:A.addSourceBuffer(e),isWorkingOnPendingSamples:!1,sequenceNumber:0,lastBufferCleanupTime:Date.now()})}function Pl({initSegments:Q,pendingSamples:A}){return{state:"uninitialized",initSegments:Q!=null?Q:new zl,sequenceNumber:0,isWorkingOnPendingSamples:!1,hasFirstSync:!!A,pendingSamples:A!=null?A:[],consecutiveQuotaExceededErrorCount:0,successfulAppendCalls:0}}const es=class es{constructor(A,e,t){i(this,"maxChunkSize",20);i(this,"minConsecutiveErrorsBeforeEmit",5);i(this,"maxSecondsInBuffer",60);i(this,"logger");i(this,"timers",DA.create());i(this,"emitter");i(this,"mediaElement");i(this,"mediaSource",new Ol);i(this,"trackContexts",new Map);i(this,"autoRecoverFromMediaErrors",!0);i(this,"quotaErrorCount",0);i(this,"recoveredFromErrorCount",0);i(this,"sourceOpenStartTime",Date.now());i(this,"sourceOpenEndTime",Date.now());i(this,"pendingTracksToAddSourceBuffers");i(this,"hasAddedInitialPosterFrame",!0);i(this,"load",()=>{this.emitter.on("init segment",this.init),this.emitter.on("coded sample",this.onCodedSample),this.emitter.on("flush buffers",this.flushBuffers),this.emitter.on("fragment",this.onFragment)});i(this,"unload",()=>{this.logger.debug("Unloading module..."),this.emitter.off("init segment",this.init),this.emitter.off("coded sample",this.onCodedSample),this.emitter.off("flush buffers",this.flushBuffers),this.emitter.off("fragment",this.onFragment),this.mediaSource.off("source ended",this.onSourceEnded),this.mediaSource.off("source open",this.onSourceOpen),this.mediaSource.detach(this.mediaElement),this.trackContexts.forEach(A=>A.pendingSamples=[]),this.timers.unload(),this.logger.debug("Unloaded module")});i(this,"getStatistics",()=>{var e,t,B,F;const A={quotaErrorCount:this.quotaErrorCount,mediaSourceOpenTime:this.sourceOpenEndTime-this.sourceOpenStartTime,successfulAudioAppendsCalls:(e=this.trackContexts.get("audio"))==null?void 0:e.successfulAppendCalls,successfulVideoAppendCalls:(t=this.trackContexts.get("video"))==null?void 0:t.successfulAppendCalls};if(this.mediaElement instanceof HTMLVideoElement){const n=(F=(B=this.mediaElement).getVideoPlaybackQuality)==null?void 0:F.call(B);A.totalVideoFrames=n==null?void 0:n.totalVideoFrames,A.droppedVideoFrames=n==null?void 0:n.droppedVideoFrames}return A});i(this,"flushBuffers",()=>{this.trackContexts.forEach(A=>{A.pendingSamples=[],A.hasFirstSync=!1,A.state!=="uninitialized"&&this.mediaSource.isOpen()&&A.sourceBuffer.removeBuffer(0,Number.POSITIVE_INFINITY).catch(e=>{this.logger.error("Failed to remove buffer",e)})})});i(this,"setTrackContexts",(A=new Map)=>{this.logger.debug("setTrackContexts"),["audio","video"].forEach(t=>{var n,s,a,d;const B=(s=(n=A.get(t))==null?void 0:n.pendingSamples)!=null?s:[],F=(a=A.get(t))==null?void 0:a.initSegments;for(;B.length>0&&!((d=B[0])!=null&&d.isSync);)B.shift();this.trackContexts.set(t,Pl({pendingSamples:B,initSegments:F}))})});i(this,"setSourceBuffers",A=>r(this,null,function*(){if(this.mediaSource.isClosed()){this.pendingTracksToAddSourceBuffers=A;return}let e=!0;for(const t of A){const B=this.trackContexts.get(t.type);if(!B||B.state==="uninitialized"||B.mimeType!==t.mimeType){e=!1;break}}if(e){this.logger.debug("Already setup with the correct mime types");return}for(const t of A){let B=this.trackContexts.get(t.type);B||(B=Pl({pendingSamples:[],initSegments:new zl}),this.trackContexts.set(t.type,B)),B.state==="initialized"?t.mimeType!==B.mimeType&&(yield B.sourceBuffer.changeType(t.mimeType)):this.trackContexts.set(t.type,jc(B,{mimeType:t.mimeType,mediaSource:this.mediaSource,codec:t.codec}))}}));i(this,"getBuffer",A=>{const e=[];if(this.mediaSource.isClosed())return[];const t=this.trackContexts.get(A);if(!t||t.state==="uninitialized")return[];try{const B=t.sourceBuffer.buffered();if(!B)return[];for(let F=0;F<B.length;F++)e.push({start:B.start(F)*1e3,end:B.end(F)*1e3});return e}catch(B){return[]}});i(this,"init",({initSegment:A,mimeType:e})=>{this.logger.debug("Added init segment",{channel:A.channelId,renditionId:A.renditionId});const t=this.trackContexts.get(A.type);if(!t)throw VF(A.type,A.renditionId);t.state==="initialized"&&(t.mimeType=e);const B=Xg(A.codec,A.data,A.timescale);B&&t.initSegments.set(A.channelId,A.renditionId,new Uint8Array(B))});i(this,"append",(A,e)=>r(this,null,function*(){var s;const t=A[0];if(!t)return;const B=this.trackContexts.get(t.type),F=B==null?void 0:B.initSegments.get(t.channelId,t.renditionId);if(this.mediaSource.isClosed())return;if(!F)throw FE(t.renditionId,t.channelId);if(!B)throw VF(t.type,t.renditionId);if(B.state==="uninitialized")throw nE(t.type,t.renditionId);if(e){const a=(t.timestamp+((s=t.compositionTimeOffset)!=null?s:0))/t.timescale;yield B.sourceBuffer.removeBuffer(a,Number.POSITIVE_INFINITY);const d=B.previousSample;if(d&&d.codec!==t.codec&&B.sourceBuffer.changeType)try{yield B.sourceBuffer.changeType(B.mimeType)}catch(E){}"fragmented"in t||(yield B.sourceBuffer.appendBuffer(F))}const n=Math.max(0,t.timestamp/t.timescale-this.maxSecondsInBuffer);n>0&&Date.now()-B.lastBufferCleanupTime>1e4&&(B.lastBufferCleanupTime=Date.now(),yield B.sourceBuffer.removeBuffer(0,n+10));try{let a=B.sequenceNumber;if("fragmented"in t)for(const d of A)"initData"in d&&(yield B.sourceBuffer.appendBuffer(d.data,d.initData));else{const d=qg(A,a++);yield B.sourceBuffer.appendBuffer(d)}B.sequenceNumber=a,B.consecutiveQuotaExceededErrorCount=0,B.successfulAppendCalls++}catch(a){throw a instanceof DOMException&&(a.code===DOMException.QUOTA_EXCEEDED_ERR?(this.quotaErrorCount++,B.consecutiveQuotaExceededErrorCount++,this.logger.error("quota exceeded error",{error:a}),B.pendingSamples.unshift(...A)):this.mediaElement.error&&B.pendingSamples.unshift(...A)),a}}));i(this,"onFragment",({fragment:A,mimeType:e,codec:t,channelId:B,renditionId:F})=>{const n=A.mediaType(),s=A.rawBytes(),a=A.header().rawBytes(),d=A.baseMediaDecodeTime(),E=A.timescale(),g=A.duration(),c=n==="video"?A.startsWithKeyframe():!0,J=A.compositionTimeOffset(0);if(n==="text"){this.logger.warn("Skipping unexpected text fragment");return}if(!t){this.logger.warn("Skipping fragment with no codec");return}const k=this.trackContexts.get(n);if(!k)throw VF(n);k.state==="initialized"&&e&&(k.mimeType=e,k.initSegments.set(B,F,a));const p={fragmented:!0,type:n,data:s,initData:a,timestamp:d,duration:g,timescale:E,channelId:B,renditionId:F,isSync:c,codec:t,fragment:A,compositionTimeOffset:J};this.onCodedSample(p)});i(this,"onCodedSample",A=>{if(A.duration===0)return;const e=this.trackContexts.get(A.type);if(!e)throw VF(A.type,A.renditionId);if(!(!e.hasFirstSync&&!A.isSync)){if(this.hasAddedInitialPosterFrame&&A.isSync&&A.type==="video"){this.hasAddedInitialPosterFrame=!1;const t=S({},A);"fragment"in t?(t.fragment=t.fragment.clone(),t.fragment.updateBaseMediaDecodeTime(0),t.data=t.fragment.rawBytes()):t.timestamp=0,e.pendingSamples.push(t)}e.hasFirstSync=!0,e.pendingSamples.push(A),e.state!=="uninitialized"&&(e.isWorkingOnPendingSamples||qc(e,this.append,this.maxChunkSize).catch(t=>{if(e.isWorkingOnPendingSamples=!1,t instanceof Error){if(this.logger.error("append failed",{message:t.message,name:t.name}),t instanceof DOMException&&t.code===DOMException.QUOTA_EXCEEDED_ERR){if(e.consecutiveQuotaExceededErrorCount>=this.minConsecutiveErrorsBeforeEmit){const B=Lo(!1,t,e.consecutiveQuotaExceededErrorCount,A.type);this.emitter.emit("error",B)}}else{const B=Lo(!1,t,e.consecutiveQuotaExceededErrorCount,A.type);this.emitter.emit("error",B)}this.mediaElement.error&&this.onSourceEnded()}}))}});i(this,"onSourceOpen",()=>{this.logger.debug("source opened"),this.sourceOpenEndTime=Date.now(),this.pendingTracksToAddSourceBuffers&&(this.setSourceBuffers(this.pendingTracksToAddSourceBuffers),this.pendingTracksToAddSourceBuffers=void 0)});i(this,"onSourceEnded",()=>{const{error:A}=this.mediaElement;if(A){const e=/AUDIO_RENDERER/.test(A.message)||!this.autoRecoverFromMediaErrors,t=UE(e,A);if(this.logger.error("MediaElement error",{error:t}),this.emitter.emit("error",t),!t.isFatal()){this.logger.info("Re-opening MediaSource"),this.emitter.emit("recovered from media error",{error:t,count:this.recoveredFromErrorCount}),this.recoveredFromErrorCount++;const B=!this.mediaElement.paused,F=[];this.trackContexts.forEach((n,s)=>{n.state==="initialized"&&F.push({type:s,mimeType:n.mimeType,codec:n.codec})}),this.sourceOpenStartTime=Date.now(),this.pendingTracksToAddSourceBuffers=F,this.mediaElement.src="",this.setTrackContexts(this.trackContexts),this.mediaSource.attach(this.mediaElement),B&&this.mediaElement.play().catch(V)}}this.logger.debug("source ended")});this.logger=A,this.mediaElement=t,this.emitter=e}};i(es,"create",(A,e,t)=>{const B=new es(A,e,t);return B.setTrackContexts(),B.mediaSource.on("source ended",B.onSourceEnded),B.mediaSource.on("source open",B.onSourceOpen),B.mediaSource.attach(t),B});let ha=es;const jl=(Q,A)=>{var s;const e=Q.renditionId!==A.renditionId,t=Q.channelId!==A.channelId,B=((s=Q.timestamp)!=null?s:0)>A.timestamp,F=Q.type==="video"&&A.type==="video"&&"levelIdc"in Q&&"levelIdc"in A&&Q.levelIdc!==A.levelIdc;let n=!1;return Q.type==="video"&&A.type==="video"&&"width"in Q&&"width"in A&&(n=A.width!==Q.width||A.height!==Q.height),t||e||B||n||F},qc=(Q,A,e)=>r(this,null,function*(){for(Q.isWorkingOnPendingSamples=!0;Q.pendingSamples.length>0;){const t=[];let B=0;for(let s=0;s<Q.pendingSamples.length;s++){B=s;const a=Q.pendingSamples[s],d=Q.pendingSamples[s+1];if(a&&(t.push(a),d)){if(jl(a,d))break;const E=(a.timestamp+a.duration)/a.timescale;if(d.timestamp/d.timescale-E>.1)break}if(s===e-1)break}const F=t[0];if(!F)break;const n=Q.previousSample?jl(Q.previousSample,F):!0;yield A(t,n),Q.pendingSamples=Q.pendingSamples.slice(B+1),Q.previousSample=t[t.length-1]}Q.isWorkingOnPendingSamples=!1}),ts=class ts{constructor(A,e){i(this,"logger");i(this,"emitter");i(this,"element");i(this,"pictureInPictureWindow");i(this,"unload",()=>{this.emitter.off("add picture in picture listener",this.onEnablePictureInPicture)});i(this,"onEnablePictureInPicture",A=>{this.element=A.element,A.element.addEventListener("leavepictureinpicture",()=>{this.pictureInPictureWindow=void 0,this.logger.debug("Leave picture in picture"),this.emitter.emit("exit picture in picture")}),A.element.addEventListener("enterpictureinpicture",e=>{this.pictureInPictureWindow=e.pictureInPictureWindow,this.logger.debug("Enter picture in picture"),this.emitter.emit("enter picture in picture",this)}),A.element.autopictureinpicture=!0});i(this,"getPictureInPictureSize",()=>this.pictureInPictureWindow);i(this,"isPictureInPictureActive",()=>this.isWebkitPresentationModeActive()||this.isStandardPictureInPictureActive());i(this,"isPictureInPictureSupported",()=>this.isWebkitPresentationModeSupported()||this.isStandardPictureInPictureSupported());i(this,"requestPictureInPicture",()=>(this.emitter.emit("ios-hack: reset size"),this.isStandardPictureInPictureSupported()?this.requestStandardPictureInPicture():this.isWebkitPresentationModeSupported()?this.requestWebkitPresentationMode("picture-in-picture"):Promise.reject(new Error("Picture in picture is not supported"))));i(this,"exitPictureInPicture",()=>this.isStandardPictureInPictureSupported()?this.exitStandardPictureInPicture():this.isWebkitPresentationModeSupported()?this.requestWebkitPresentationMode("inline"):Promise.reject(new Error("Picture in picture is not supported")));i(this,"getStatistics",()=>({isPictureInPictureActive:this.isPictureInPictureActive()}));i(this,"requestStandardPictureInPicture",()=>r(this,null,function*(){return yield this.element.requestPictureInPicture()}));i(this,"exitStandardPictureInPicture",()=>r(this,null,function*(){return yield document.exitPictureInPicture()}));i(this,"isStandardPictureInPictureSupported",()=>!!this.element&&!!this.element.requestPictureInPicture&&!!document.pictureInPictureEnabled);i(this,"isStandardPictureInPictureActive",()=>!!this.element&&!!document.pictureInPictureElement);i(this,"isWebkitPresentationModeActive",()=>!!this.element&&this.element.webkitPresentationMode==="picture-in-picture");i(this,"requestWebkitPresentationMode",A=>r(this,null,function*(){return this.element.webkitSetPresentationMode(A),Promise.resolve()}));i(this,"isWebkitPresentationModeSupported",()=>!!this.element&&!!this.element.webkitSetPresentationMode);this.emitter=A,this.logger=e,this.emitter.on("add picture in picture listener",this.onEnablePictureInPicture)}};i(ts,"create",(A,e)=>new ts(A,e));let Sa=ts;const Qs=class Qs{constructor(A,e,t,B){i(this,"emitter");i(this,"logger");i(this,"clockSource");i(this,"state","buffering");i(this,"bufferFullness",0);i(this,"targetBufferTime");i(this,"lastBufferStateEvent","drained");i(this,"firstFrameTime");i(this,"currentTimeIsInRange",!1);i(this,"needsInputForAudioCount",0);i(this,"needsInputForVideoCount",0);i(this,"unload",()=>{this.emitter.off("buffer state",this.onBufferedStateChanged),this.emitter.off("needs user input",this.onNeedsUserInput)});i(this,"setTargetBufferTime",A=>void(this.targetBufferTime=A));i(this,"getTargetBufferTime",()=>this.targetBufferTime);i(this,"getBufferFullness",()=>this.bufferFullness);i(this,"getLastBufferStateEvent",()=>this.lastBufferStateEvent);i(this,"getState",()=>this.state);i(this,"getFirstFrameTime",()=>this.firstFrameTime);i(this,"getStatistics",()=>({bufferTime:this.targetBufferTime,needsInputForAudioCount:this.needsInputForAudioCount,needsInputForVideoCount:this.needsInputForVideoCount}));i(this,"onBufferedStateChanged",({buffered:A,isPaused:e})=>{const t=this.clockSource.currentTime,B=A.some(E=>E.start<t&&t<E.end),F=A[A.length-1],n=F?F.end-F.start>=this.targetBufferTime:!1,s=F?Math.max(0,F.end-t)/this.targetBufferTime:0,a=e?"paused":B?"playing":"buffering",d=this.state;this.currentTimeIsInRange!==B&&!B?(this.lastBufferStateEvent="drained",this.emitter.emit("buffer state event",this.lastBufferStateEvent)):B&&n&&this.lastBufferStateEvent==="drained"&&(this.lastBufferStateEvent="filled",this.emitter.emit("buffer state event",this.lastBufferStateEvent)),a==="playing"&&!this.firstFrameTime&&(this.firstFrameTime=Date.now()),this.currentTimeIsInRange=B,this.state=a,this.bufferFullness=B?s:0,d!==a&&this.emitter.emit("playback state",a),this.emitter.emit("buffer fullness",this.bufferFullness)});i(this,"onNeedsUserInput",({forAudio:A,forVideo:e})=>{A&&this.needsInputForAudioCount++,e&&this.needsInputForVideoCount++});this.emitter=A,this.logger=e,this.clockSource=t,this.targetBufferTime=B,this.emitter.on("buffer state",this.onBufferedStateChanged),this.emitter.on("needs user input",this.onNeedsUserInput)}};i(Qs,"create",(A,e,t,B)=>new Qs(A,e,t,B));let Ja=Qs;const Va=()=>({upgradesFromLevel:[],downgradesFromLevel:[],bufferingRanges:[],activeRanges:[],decodeRate:Number.MAX_SAFE_INTEGER}),_c=()=>({levels:{},levelDowngrades:[],levelUpgrades:[],bufferFullness:0,general:Va()}),is=class is{constructor(A,e){i(this,"minBufferFullnessLengthForRegression",6);i(this,"logger");i(this,"emitter");i(this,"timers",DA.create());i(this,"metrics",_c());i(this,"bufferFullness",new Z(30));i(this,"bufferFullnessRegression");i(this,"currentLevel");i(this,"isSuspended",!1);i(this,"_fatalQosCount",0);i(this,"hasAsserted",!1);i(this,"load",()=>{this.emitter.on("playback state",this.onPlaybackState),this.emitter.on("buffer fullness",this.onBufferFullness),this.emitter.on("rendition level changed",this.onRenditionLevelChanged),this.emitter.on("video decode rate",this.onVideoDecodeRate)});i(this,"unload",()=>{this.emitter.off("playback state",this.onPlaybackState),this.emitter.off("buffer fullness",this.onBufferFullness),this.emitter.off("rendition level changed",this.onRenditionLevelChanged),this.emitter.off("video decode rate",this.onVideoDecodeRate),this.suspend()});i(this,"suspend",()=>{this.isSuspended=!0,this.timers.unload(),this.stopBuffering(),this.unsetActive()});i(this,"unsuspend",()=>{this.isSuspended=!1,this.currentLevel&&this.setActive()});i(this,"fatalQosGraceTime",()=>1e4*(this.fatalQosCount+1));i(this,"incrementFatalQosCount",()=>{this._fatalQosCount++});i(this,"getMetrics",()=>this.metrics);i(this,"getLevelStats",A=>{var t,B,F,n;const e=((B=(t=A.video)==null?void 0:t.bitRate)!=null?B:0)+((n=(F=A.audio)==null?void 0:F.bitRate)!=null?n:0);return this.metrics.levels[e]});i(this,"getBufferFullnessRegression",()=>this.bufferFullnessRegression);i(this,"activeRatios",()=>{const A=new Map,e=OQ(this.metrics.general.activeRanges);if(Object.entries(this.metrics.levels).forEach(([t,B])=>{A.set(t,e?OQ(B.activeRanges)/e:0)}),!this.hasAsserted){const t=A.size?Math.abs(Array.from(A.values()).reduce((B,F)=>B+F,0)-1)<=.02:!0;t||(this.hasAsserted=!0,console.assert(t,`Active ratios should be close to 1 - actual: ${Array.from(A.values()).reduce((B,F)=>B+F,0)}`))}return A});i(this,"bufferingRatios",()=>{const A=new Map,e=OQ(this.metrics.general.bufferingRanges);if(Object.entries(this.metrics.levels).forEach(([t,B])=>{A.set(t,e?OQ(B.bufferingRanges)/e:0)}),!this.hasAsserted){const t=Array.from(A.values()).reduce((B,F)=>B+F,0)<=1;t||(this.hasAsserted=!0,console.assert(t,`Buffering ratios should be less than 1 - actual: ${Array.from(A.values()).reduce((B,F)=>B+F,0)}`))}return A});i(this,"bufferingEventsLast",A=>this.metrics.general.bufferingRanges.filter(e=>e.start>=Date.now()-A).length);i(this,"timeSpentBufferingLast",A=>Co(this.metrics.general.bufferingRanges,A));i(this,"timeSpentActiveLast",A=>Co(this.metrics.general.activeRanges,A));i(this,"timeSpentPlayingInAtLeastLevelRatio",A=>{var a,d,E,g;const e=this.timeSpentBuffering(),t=this.timeActive(),B=this.bufferingRatios(),F=this.activeRatios(),n=((d=(a=A.video)==null?void 0:a.bitRate)!=null?d:0)+((g=(E=A.audio)==null?void 0:E.bitRate)!=null?g:0),s=e/t;return Object.keys(this.metrics.levels).map(c=>parseInt(c,10)).filter(c=>c>=n).reduce((c,J)=>{var k,p;return((k=F.get(J.toString()))!=null?k:0)-((p=B.get(J.toString()))!=null?p:0)*s+c},0)});i(this,"timeSpentBuffering",()=>OQ(this.metrics.general.bufferingRanges));i(this,"timeActive",()=>OQ(this.metrics.general.activeRanges));i(this,"getStatistics",()=>({timeSpentBuffering:this.timeSpentBuffering(),bufferingEventsCount:this.metrics.general.bufferingRanges.length,timeSpentRatio:[...this.activeRatios()].reduce((A,[e,t])=>(A[e]=t,A),{}),fatalQosCount:this.fatalQosCount}));i(this,"onRenditionLevelChanged",A=>{var F,n,s,a,d,E,g,c,J,k,p,w,M,D;const e=((s=(n=(F=A.from)==null?void 0:F.video)==null?void 0:n.bitRate)!=null?s:0)+((E=(d=(a=A.from)==null?void 0:a.audio)==null?void 0:d.bitRate)!=null?E:0),t=((J=(c=(g=A.to)==null?void 0:g.video)==null?void 0:c.bitRate)!=null?J:0)+((w=(p=(k=A.to)==null?void 0:k.audio)==null?void 0:p.bitRate)!=null?w:0);this.logger.info("rendition level changed",{fromLevel:e,toLevel:t}),this.metrics.general.activeRanges.length===0&&this.setActive(),A.from&&A.to&&(e<t?this.metrics.general.upgradesFromLevel.push(Date.now()):this.metrics.general.downgradesFromLevel.push(Date.now()));let B=!1;if(A.from){const G=(M=this.metrics.levels[e])!=null?M:Va();e<t?G.upgradesFromLevel.push(Date.now()):G.downgradesFromLevel.push(Date.now()),ft(G.activeRanges);const v=G.bufferingRanges[G.bufferingRanges.length-1];B=!!v&&!v.end,ft(G.bufferingRanges),this.metrics.levels[e]=G}if(A.to){const G=(D=this.metrics.levels[t])!=null?D:Va();KQ(G.activeRanges),B&&KQ(G.bufferingRanges),this.metrics.levels[t]=G,this.currentLevel=t}});i(this,"onBufferFullness",A=>{this.bufferFullness.push(A),this.metrics.bufferFullness=A,this.bufferFullness.items().length>=this.minBufferFullnessLengthForRegression&&(this.bufferFullnessRegression=this.calculateLinearRegression())});i(this,"onPlaybackState",A=>{switch(this.logger.info("Playback state",{state:A,currentLevel:this.currentLevel}),A){case"playing":this.stopBuffering();break;case"buffering":this.isSuspended||this.startBuffering();break}});i(this,"onVideoDecodeRate",A=>{var t;if(this.metrics.general.decodeRate=A,!this.currentLevel)return;const e=this.metrics.levels[(t=this.currentLevel)!=null?t:0];e&&(e.decodeRate=A)});i(this,"calculateLinearRegression",()=>Td(this.bufferFullness.items().map((A,e)=>({x:e,y:A}))));i(this,"stopBuffering",()=>{if(this.currentLevel){const A=this.metrics.levels[this.currentLevel];A&&ft(A.bufferingRanges)}ft(this.metrics.general.bufferingRanges)});i(this,"startBuffering",()=>{if(this.currentLevel){const A=this.metrics.levels[this.currentLevel];A&&KQ(A.bufferingRanges)}KQ(this.metrics.general.bufferingRanges)});i(this,"unsetActive",()=>{if(this.currentLevel){const A=this.metrics.levels[this.currentLevel];A&&ft(A.activeRanges)}ft(this.metrics.general.activeRanges)});this.logger=e,this.emitter=A}get fatalQosCount(){return this._fatalQosCount}setActive(){if(this.currentLevel){const A=this.metrics.levels[this.currentLevel];A&&KQ(A.activeRanges)}KQ(this.metrics.general.activeRanges)}};i(is,"create",(A,e)=>new is(A,e));let ua=is;const Bs=class Bs{constructor(A,e){i(this,"renditions",new Map);i(this,"renditionLevels",[]);i(this,"languages",[]);i(this,"emitter");i(this,"subscriptionSource");i(this,"renditionLevelChangeCount",0);i(this,"unload",()=>{this.emitter.off("renditions",this.onRenditions),this.emitter.off("subscription changed",this.onSubscriptionChanged)});i(this,"getRenditionLevels",A=>A?this.createRenditionLevels(A):this.renditionLevels);i(this,"getRenditionLevel",A=>{var s;const e=A!=null?A:this.getCurrentSubscription(),t=A?this.createRenditionLevels(A):this.renditionLevels;if(!e.video)return t.length?t[0]:void 0;const B=e.video.bitRate||Number.MAX_SAFE_INTEGER,F=e.video.width||Number.MAX_SAFE_INTEGER,n=e.video.height||Number.MAX_SAFE_INTEGER;return(s=t.filter(a=>a.video&&e.video?a.video.bitRate<=B&&a.video.width<=F&&a.video.height<=n:!0).pop())!=null?s:t[0]});i(this,"setRenditions",(A,e)=>{this.renditions.set(A,e)});i(this,"getLanguages",()=>this.languages);i(this,"getVideoRendition",(A,e=this.getCurrentSubscription().channelId)=>{const t=this.getRendition(A,e);if(t&&Mt(t))return t});i(this,"getAudioRenditions",A=>{const e=this.renditions.get(A);return e==null?void 0:e.filter(B=>vt(B))});i(this,"getVideoRenditions",A=>{const e=this.renditions.get(A);return e==null?void 0:e.filter(B=>Mt(B))});i(this,"getAudioRendition",(A,e=this.getCurrentSubscription().channelId)=>{const t=this.getRendition(A,e);if(t&&vt(t))return t});i(this,"getRendition",(A,e=this.getCurrentSubscription().channelId)=>{var t;return(t=this.renditions.get(e))==null?void 0:t.find(B=>B.id===A)});i(this,"getStatistics",()=>{var e,t,B,F,n,s,a,d,E,g;const A=this.getRenditionLevel();return{videoCodec:(e=A==null?void 0:A.video)==null?void 0:e.codec,audioCodec:(t=A==null?void 0:A.audio)==null?void 0:t.codec,videoRenditionId:(B=A==null?void 0:A.video)==null?void 0:B.id,audioRenditionId:(F=A==null?void 0:A.audio)==null?void 0:F.id,videoWidth:(n=A==null?void 0:A.video)==null?void 0:n.width,videoHeight:(s=A==null?void 0:A.video)==null?void 0:s.height,expectedVideoBitRate:(a=A==null?void 0:A.video)==null?void 0:a.bitRate,expectedAudioBitRate:(d=A==null?void 0:A.audio)==null?void 0:d.bitRate,frameRate:(E=A==null?void 0:A.video)==null?void 0:E.frameRate,language:(g=A==null?void 0:A.audio)==null?void 0:g.language,renditionLevelChangeCount:this.renditionLevelChangeCount}});i(this,"onRenditions",A=>{const e=this.subscriptionSource.getCurrentSubscription();this.renditions.set(A.channelId,A.renditions),this.updateRenditionLevels({to:e,from:e})});i(this,"onSubscriptionChanged",A=>{this.updateRenditionLevels(A)});i(this,"updateRenditionLevels",({to:A,from:e})=>{var d;const{channelId:t,initiator:B}=A,F=this.getRenditionLevel(e),n=new Set;((d=this.renditions.get(t))!=null?d:[]).filter(E=>E.codec!=="webvtt").forEach(E=>E.language?n.add(E.language):void 0),this.languages=Array.from(n),this.renditionLevels=this.createRenditionLevels(A);const a=this.getRenditionLevel(A);bt(F,a)||(this.renditionLevelChangeCount++,this.emitter.emit("rendition level changed",{to:a,from:F,reason:B?"manual":"abr"}))});i(this,"createRenditionLevels",A=>{var E;const{video:e,audio:t,channelId:B}=A,F=(E=this.renditions.get(B))!=null?E:[],n=F.filter(Mt).filter(g=>e&&g.codec===e.codec),s=F.filter(vt).filter(g=>t&&g.codec===t.codec&&g.language===t.language),a=Math.max(n.length,s.length),d=[];for(let g=0;g<a;g++){const c=n[Math.min(n.length-1,g)],J=s[Math.min(s.length-1,g)];d.push({audio:J,video:c})}return d});i(this,"getCurrentSubscription",()=>this.subscriptionSource.getCurrentSubscription());this.subscriptionSource=e,this.emitter=A,this.emitter.on("renditions",this.onRenditions),this.emitter.on("subscription changed",this.onSubscriptionChanged)}};i(Bs,"create",(A,e)=>new Bs(A,e));let ka=Bs;const VB=Q=>JSON.parse(JSON.stringify(Q)),$c=1e4,Us=class Us{constructor(A,e,t){i(this,"logger");i(this,"timers",new DA);i(this,"emitter");i(this,"targetSubscription");i(this,"currentSubscription");i(this,"_isSwitchingSubscription",!1);i(this,"pendingSubscriptionTimeoutId");i(this,"burstMs",0);i(this,"unload",()=>{this.logger.debug("Unloading module..."),this.timers.unload(),this.emitter.off("subscription changed",this.onSubscriptionChanged),this.logger.debug("Unloaded module")});i(this,"isSwitchingSubscription",()=>this._isSwitchingSubscription);i(this,"getTargetSubscription",()=>this.targetSubscription);i(this,"getCurrentSubscription",()=>this.currentSubscription);i(this,"enableBurst",A=>{this.burstMs=A});i(this,"setSize",A=>{this.targetSubscription.video.width=A.width,this.targetSubscription.video.height=A.height,this.scheduleSubscriptionChange()});i(this,"setVideoConstraint",A=>{this.targetSubscription.video=A,this.scheduleSubscriptionChange()});i(this,"setAudioConstraint",A=>{this.targetSubscription.audio=A,this.scheduleSubscriptionChange()});i(this,"setVideoBitRate",A=>{this.targetSubscription.video.bitRate=A,this.scheduleSubscriptionChange()});i(this,"setAudioBitRate",A=>{this.targetSubscription.audio.bitRate=A,this.scheduleSubscriptionChange()});i(this,"setChannelId",A=>{this.targetSubscription.channelId=A,this.scheduleSubscriptionChange()});i(this,"setLanguage",A=>{this.targetSubscription.audio.language=A,this.scheduleSubscriptionChange()});i(this,"setVideoCodec",A=>{this.targetSubscription.video.codec=A,this.scheduleSubscriptionChange()});i(this,"setAudioCodec",A=>{this.targetSubscription.audio.codec=A,this.scheduleSubscriptionChange()});i(this,"setBurst",A=>{A?this.targetSubscription.burstMs=A:delete this.targetSubscription.burstMs});i(this,"isNewSubscription",()=>{const A=["burstMs","meta","initiator","channelGroupId"];return!bt(co(this.currentSubscription,A),co(this.targetSubscription,A))});i(this,"onSubscriptionChanged",({to:A,reset:e})=>{this.logger.debug("onSubscriptionChanged",{to:A,reset:e}),e?this.targetSubscription=VB(this.currentSubscription):this.currentSubscription=VB(A),this._isSwitchingSubscription=this.isNewSubscription()});i(this,"scheduleSubscriptionChange",()=>{this.targetSubscription=VB(this.targetSubscription),this._isSwitchingSubscription=this.isNewSubscription();const A=this.currentSubscription.channelId,e=this.targetSubscription.channelId,t=A!==e;this._isSwitchingSubscription&&(t&&this.burstMs?this.setBurst(this.burstMs):this.setBurst(0),this.pendingSubscriptionTimeoutId&&(this.timers.clearTimeout(this.pendingSubscriptionTimeoutId),this.pendingSubscriptionTimeoutId=void 0),t&&this.timers.setTimeout(()=>{this.currentSubscription.channelId===A&&this.targetSubscription.channelId===e&&(this.logger.warn("Channel switch timeout",e),this.targetSubscription=VB(this.currentSubscription),this.emitter.emit("channel switch timeout",e))},$c),this.pendingSubscriptionTimeoutId=this.timers.setTimeout(()=>this.emitter.emit("send signal",{type:"subscribe",subscription:this.getTargetSubscription()}),0))});this.logger=A,this.targetSubscription=e,this.currentSubscription=VB(e),this.emitter=t,this.emitter.on("subscription changed",this.onSubscriptionChanged)}};i(Us,"create",(A,e,t)=>new Us(A,t,e));let Na=Us;const ql=5e3,AC=()=>HQ()||kA()||PA(),_l=()=>AC()?100:0,$l=Q=>A=>A>Q,Fs=class Fs{constructor(A,e,t,B,F){i(this,"emitter");i(this,"logger");i(this,"playbackSource");i(this,"bufferSource");i(this,"keyframeTimestamps",new Z(10));i(this,"lastSeekTime",Date.now());i(this,"seekCooldownTime",1e3);i(this,"seekTimeoutTime",5e3);i(this,"seekKeyframeOvershoot",50);i(this,"syncMaxBehind");i(this,"syncMaxBehindMultiplierStep",1);i(this,"syncMaxBehindIncreaseEvery",2);i(this,"syncMaxBehindMaximumAllowed",2e3);i(this,"syncMaxBehindMultiplier",1);i(this,"timeshiftOnAudio",!1);i(this,"syncMaxAhead",150);i(this,"timeshiftSync",{enabled:!1,maxBehind:50,multiplier:1,maxBehindAllowed:600,overshoot:_l(),minOvershootAllowed:_l(),maxOvershootAllowed:500});i(this,"maxTimeSyncDifferenceTolerance",150);i(this,"timers",DA.create());i(this,"rtt",0);i(this,"channelSyncInfo",new Map);i(this,"driftAdjustmentsCount",0);i(this,"timeshiftDriftAdjustmentCount",0);i(this,"driftAdjustments",[]);i(this,"timeShiftAdjustments",[]);i(this,"timestampOffset");i(this,"currentChannelId");i(this,"highestSeenTimestamps",new Map);i(this,"isSuspended",!1);i(this,"isSyncAdjustmentActivated",!1);i(this,"load",()=>{this.timers.setInterval(this.onSync,100)});i(this,"unload",()=>{this.logger.debug("Unloading module..."),this.emitter.off("rtt",this.updateRtt),this.timers.unload(),this.logger.debug("Unloaded module")});i(this,"suspend",()=>{this.isSuspended=!0});i(this,"unsuspend",()=>{this.resetSyncState(),this.isSuspended=!1});i(this,"deactivateSyncAdjustments",()=>{this.isSyncAdjustmentActivated=!1});i(this,"activateSyncAdjustments",()=>{this.tryApplySyncInfo(0),this.lastSeekTime=Date.now(),this.isSyncAdjustmentActivated=!0});i(this,"reset",()=>{this.logger.info("Reset sync state"),this.currentChannelId=void 0,this.timestampOffset=void 0,this.resetSyncState(),this.highestSeenTimestamps.clear()});i(this,"getTimeshiftOffset",()=>{var A;return(A=this.timestampOffset)!=null?A:0});i(this,"getCurrentChannelId",()=>this.currentChannelId);i(this,"resetSyncState",()=>{this.timeshiftSync.multiplier=1,this.syncMaxBehindMultiplier=1,this.driftAdjustments=[],this.timeShiftAdjustments=[]});i(this,"getLiveEdgeTime",A=>{const e=this.channelSyncInfo.get(A);if(!e)return;const t=Date.now()-e.localTimestamp;return e.timestamp+t});i(this,"getLiveEdgeTimeLatencyAdjusted",A=>{const e=this.getLiveEdgeTime(A);if(e)return e+this.rtt/2});i(this,"getWallclockTime",A=>{const e=this.channelSyncInfo.get(A);if(!e)return;const t=Date.now()-e.localTimestamp;return e.wallclockTime+t});i(this,"getWallclockTimeLatencyAdjusted",A=>{const e=this.getWallclockTime(A);if(e)return e+this.rtt/2});i(this,"processSample",A=>{var B;if(!A.channelId)throw new Error("Sample must be assigned to a channel");this.currentChannelId||(this.currentChannelId=A.channelId),this.timestampOffset||(this.timestampOffset=A.timestamp/A.timescale*1e3-ql);const e=A.type==="video"&&A.isSync;if(this.currentChannelId!==A.channelId){let F=Number.MAX_SAFE_INTEGER;console.assert(this.highestSeenTimestamps.size!==0,"no known timestamps"),this.highestSeenTimestamps.forEach(s=>{F=Math.min(F,s)});const n=A.timestamp/A.timescale*1e3;this.currentChannelId=A.channelId,this.timestampOffset=n-F}else(e||this.timeshiftOnAudio)&&this.tryTimeshiftSync();const t=this.timestampOffset*A.timescale/1e3;return A.timestamp-=t,e&&this.keyframeTimestamps.push(A.timestamp/A.timescale*1e3),this.highestSeenTimestamps.set(A.type,Math.max((B=this.highestSeenTimestamps.get(A.type))!=null?B:0,A.timestamp/A.timescale*1e3)),A});i(this,"processFragment",(A,e)=>{var n;this.currentChannelId||(this.currentChannelId=A);const t=e.mediaType();if(!t)throw new Error("Fragment must have a media type");this.timestampOffset||(this.timestampOffset=e.baseMediaDecodeTime()/e.timescale()*1e3-ql);const B=e.mediaType()==="video"&&e.startsWithKeyframe();this.currentChannelId!==A?(console.assert(this.highestSeenTimestamps.size!==0,"no known timestamps"),this.highestSeenTimestamps.forEach(s=>{}),this.currentChannelId=A):(B||this.timeshiftOnAudio)&&this.tryTimeshiftSync();const F=this.timestampOffset*e.timescale()/1e3;return e.updateBaseMediaDecodeTime(e.baseMediaDecodeTime()-F),B&&this.keyframeTimestamps.push(e.baseMediaDecodeTime()/e.timescale()*1e3),this.highestSeenTimestamps.set(t,Math.max((n=this.highestSeenTimestamps.get(t))!=null?n:0,e.baseMediaDecodeTime()/e.timescale()*1e3)),e});i(this,"getStatistics",()=>({drift:this.drift,driftAdjustmentCount:this.driftAdjustmentsCount,timeshiftDriftAdjustmentCount:this.timeshiftDriftAdjustmentCount,seekTime:this.playbackSource.seekTime}));i(this,"updateRtt",A=>void(this.rtt=A));i(this,"isPlaybackSourceReadyToSeek",()=>!this.isSeeking()&&this.isSeekCooldownExpired()&&this.isSyncAdjustmentActivated);i(this,"isSeeking",()=>this.playbackSource.isSeeking?!this.isSeekTimeoutExpired():!1);i(this,"isAllowedToSync",()=>this.isPlaybackSourceReadyToSeek()&&!!this.currentChannelId&&!this.isSuspended&&!this.playbackSource.isPaused);i(this,"isSeekCooldownExpired",()=>Date.now()-this.lastSeekTime>this.seekCooldownTime);i(this,"isSeekTimeoutExpired",()=>Date.now()-this.lastSeekTime>this.seekTimeoutTime);i(this,"currentTimeshiftMaxBehind",()=>Math.min(this.timeshiftSync.maxBehind*this.timeshiftSync.multiplier,this.timeshiftSync.maxBehindAllowed));i(this,"currentSyncMaxBehind",()=>Math.min(this.syncMaxBehindMultiplier*this.syncMaxBehind,this.syncMaxBehindMaximumAllowed));i(this,"currentSyncMaxAhead",()=>this.playbackSource.seekTime>500?Math.max(this.syncMaxAhead*this.syncMaxBehindMultiplier,300):this.syncMaxAhead);i(this,"tryTimeshiftSync",()=>{var F;if(!this.timeshiftSync.enabled||!this.isAllowedToSync())return;const A=(F=this.drift)!=null?F:0;if(A>=this.syncMaxBehind)return;if(A<this.currentTimeshiftMaxBehind()){this.timeshiftSync.overshoot=0;return}if(!this.timestampOffset)return;const e=Date.now()-this.seekTimeoutTime*this.timeshiftSync.multiplier,t=this.timeShiftAdjustments.filter($l(e)).length;if(t&&this.timeshiftSync.multiplier>2)return this.logger.debug("Too many diff timeShifts within sliding window",{timeShiftsCooldownMs:e,timeShiftsWithinCooldownTime:t}),!1;const B=A+this.timeshiftSync.overshoot;this.logger.info("Adjusting for drift using timeshift",{drift:A,syncAmount:B,currentTime:this.playbackSource.currentTime,rtt:this.rtt,overshoot:this.timeshiftSync.overshoot}),this.timestampOffset+=B,this.lastSeekTime=Date.now(),!this.playbackSource.isPaused&&(this.timeShiftAdjustments.push(this.lastSeekTime),this.timeshiftDriftAdjustmentCount++,this.timeshiftSync.multiplier++,this.timeshiftSync.overshoot=Math.max(this.timeshiftSync.minOvershootAllowed,Math.min(this.timeshiftSync.multiplier*A/2,this.timeshiftSync.maxOvershootAllowed)))});i(this,"onSync",()=>{var s;if(!this.isAllowedToSync())return;const A=(s=this.drift)!=null?s:0;if(A<0&&-A<this.currentSyncMaxAhead()||A>0&&A<this.currentSyncMaxBehind()||Math.abs(A)<1||!this.isSeekCooldownExpired())return;const e=Date.now()-this.seekTimeoutTime*this.syncMaxBehindMultiplier,t=this.driftAdjustments.filter($l(e)).length;if(t&&this.syncMaxBehindMultiplier>2)return this.logger.debug("Too many diff adjustments within sliding window",{adjustmentsCooldownMs:e,adjustmentsWithinCooldownTime:t}),!1;const B=this.playbackSource.seekTime,F=this.playbackSource.currentTime+A,n=this.findKeyframeCloseToTimestamp(F);if(n||this.keyframeTimestamps.isEmpty()){const a=n?n+this.seekKeyframeOvershoot:F;if(this.logger.info("Adjusting for drift using seek",{drift:A,currentTime:this.playbackSource.currentTime,targetCurrentTime:a,seekTime:B,rtt:this.rtt}),this.lastSeekTime=Date.now(),this.driftAdjustments.push(this.lastSeekTime),this.driftAdjustmentsCount++,this.playbackSource.currentTime=a+B,this.timeshiftSync.overshoot=Math.max(this.timeshiftSync.minOvershootAllowed,this.timeshiftSync.overshoot/2),this.driftAdjustmentsCount%this.syncMaxBehindIncreaseEvery===0&&!this.playbackSource.isPaused){const d=this.currentSyncMaxBehind;this.syncMaxBehindMultiplier+=this.syncMaxBehindMultiplierStep,d!==this.currentSyncMaxBehind&&this.logger.info("Increasing max drift behind allowed",{from:d,to:this.currentSyncMaxBehind})}}});i(this,"findKeyframeCloseToTimestamp",A=>{const e=this.keyframeTimestamps.items();for(const t of e)if(t>=A&&t<=A+200)return t});this.logger=e,this.emitter=A,this.playbackSource=t,this.bufferSource=B,this.timeshiftSync.enabled=F,this.syncMaxBehind=this.timeshiftSync.enabled?1e3:200,this.emitter.on("rtt",this.updateRtt)}updateChannelSyncInfo(A,e){const t=Date.now(),B=this.channelSyncInfo.get(A),F=this.getLiveEdgeTime(A);if(this.isSuspended)return;if(!B||!F){this.logger.info("Initial timing info",{syncInfo:e}),this.channelSyncInfo.set(A,O(S({},e),{localTimestamp:t,timeDifferences:new Z(12)}));return}const n=e.wallclockTime-B.wallclockTime,s=e.timestamp-B.timestamp,a=t-B.localTimestamp,d=s-a;if(B.timeDifferences.push(d),this.logger.debug("Timing info",{rtt:this.rtt,channelId:A,syncInfo:e,localTimestamp:t,diffFromEstimated:d,timestampDelta:s,wallclockDelta:n,localWallclockDelta:a}),Math.abs(d)>=this.bufferSource.getTargetBufferTime()*2){this.logger.info("Resetting sync info",{diffFromEstimated:d}),this.channelSyncInfo.set(A,O(S({},e),{localTimestamp:t,timeDifferences:new Z(B.timeDifferences.maxSize+1)})),this.currentChannelId&&this.currentChannelId===A&&(this.reset(),this.emitter.emit("channel reset"));return}B.timeDifferences.isFull()&&this.tryApplySyncInfo(this.maxTimeSyncDifferenceTolerance)}tryApplySyncInfo(A){const e=this.getCurrentChannelId();if(!e)return;const t=this.channelSyncInfo.get(e);if(!t)return;const B=XQ(t.timeDifferences.items());Math.abs(B)>A&&(this.logger.info("Adjusting sync info",{averageDifference:B}),t.timestamp+=B,t.timeDifferences.clear())}get serverCurrentTime(){return this.channelCurrentTime-this.getTimeshiftOffset()}get channelCurrentTime(){const A=this.getCurrentChannelId();if(!A)return 0;const e=this.getLiveEdgeTime(A);return e?e-this.bufferSource.getTargetBufferTime():0}get drift(){return this.serverCurrentTime-this.playbackSource.currentTime}};i(Fs,"create",(A,e,t,B,F)=>new Fs(A,e,t,B,F));let ma=Fs;const eC={enabled:!0,interval:3e4,includeErrors:!0,includeEvents:!0,includeStats:!0,maxRetries:10,maxErrorReports:50,maxEvents:50},Wa=(Q,A)=>O(S({},A),{type:Q,timestamp:new Date().toISOString(),discriminator:"web"}),ns=class ns{constructor(A,e,t,B){i(this,"logger");i(this,"timers",new DA);i(this,"emitter");i(this,"options");i(this,"parentContext");i(this,"unsentLines",new Z(100));i(this,"retries",0);i(this,"errorCount",0);i(this,"eventCount",0);i(this,"statsCount",0);i(this,"unload",()=>{this.logger.debug("Unloading module..."),window.removeEventListener("error",this.onError),window.removeEventListener("unhandledrejection",this.onRejection),this.timers.unload(),this.emitter.off("error",this.addError),this.emitter.off("visibilitystate",this.onVisibilityChange),this.emitter.off("pagehide",this.onPageHide),this.emitter.off("telemetry event",this.addEvent),this.addStats({isFinal:!0,initiator:"unload"}),this.send("beacon"),this.logger.debug("Unloaded module")});i(this,"load",()=>{window.addEventListener("error",this.onError),window.addEventListener("unhandledrejection",this.onRejection),this.emitter.on("error",this.addError),this.emitter.on("visibilitystate",this.onVisibilityChange),this.emitter.on("pagehide",this.onPageHide),this.emitter.on("telemetry event",this.addEvent),this.timers.setInterval(()=>{this.addStats(),this.send("fetch")},this.options.interval)});i(this,"addStats",({isFinal:A,initiator:e}={isFinal:!1,initiator:"interval"},t={})=>{if(!this.options.includeStats)return;const B=this.parentContext.getStatistics(),F=Wa("stats",O(S(S({},t),B),{isFinal:A,initiator:e,count:this.statsCount++}));this.unsentLines.push(F)});i(this,"addEvent",A=>{if(!this.options.includeEvents||this.eventCount>this.options.maxEvents)return;const e=this.parentContext.getStatistics(),t=Wa("event",S(S({},e),A));this.eventCount++,this.unsentLines.push(t)});i(this,"getStatistics",()=>({errorCount:this.errorCount}));i(this,"send",A=>r(this,null,function*(){if(this.options.enabled&&!(this.retries>=this.options.maxRetries)&&!this.unsentLines.isEmpty()){this.logger.debug("Sending telemetry",{lines:this.unsentLines.items()});try{const e=this.unsentLines.items().map(t=>JSON.stringify(t)).reverse().join(`
|
|
50
|
-
`);switch(A){case"beacon":navigator.sendBeacon(this.options.url,e);break;case"fetch":default:this.parentContext.connectionState==="connected"?this.emitter.emit("send signal",{type:"telemetry",body:e}):yield No(new URL(this.options.url),{body:e,headers:{"Content-Type":"text/plain"}});break}this.retries=0,this.unsentLines.clear()}catch(e){this.retries++}}}));i(this,"onVisibilityChange",A=>{A==="hidden"&&(this.addStats({isFinal:!0,initiator:"visibilitychange"}),this.send("beacon"))});i(this,"onPageHide",A=>{this.addStats({isFinal:!0,initiator:"pagehide"},{persisted:A.persisted}),this.send("beacon")});i(this,"onRejection",A=>this.addError(A.reason));i(this,"onError",A=>this.addError(A.error));i(this,"addError",A=>{const{includeErrors:e,maxErrorReports:t}=this.options;if(e&&A instanceof Y){if(this.errorCount++,this.errorCount>t)return;const B=this.parentContext.getStatistics();this.unsentLines.push(Wa("error",S(S({},B),A.toStringifiable())))}});this.logger=A,this.emitter=e,this.options=S(S({},eC),t),this.parentContext=B}};i(ns,"create",(A,e,t,B)=>new ns(A,e,t,B));let nn=ns;const ss=class ss{constructor(A,e,t){i(this,"logger");i(this,"element");i(this,"documentState");i(this,"timers",new DA);i(this,"unload",()=>{this.timers.unload()});i(this,"unpause",()=>{this.element.userHasProvidedInput&&this.element.isPaused&&this.documentState.isVisible&&this.documentState.isOnline&&(this.logger.debug("Unpause video"),this.element.tryPlay())});this.logger=A,this.element=e,this.documentState=t,this.timers.setInterval(this.unpause,100)}};i(ss,"create",(A,e,t)=>new ss(A,e,t));let sn=ss;const tC=6,QC=Q=>{let A=[Q],e=0,t=0,B=!1;const F=(s,a)=>{var w,M,D;s.flags&&SB(s.flags)&&(e=(w=s.compositionTimeOffset)!=null?w:0),s.timestamp+=e,s.compositionTimeOffset=((M=s.compositionTimeOffset)!=null?M:0)-e;const d=s.timestamp/s.timescale,g=a.flags&&SB(a.flags)?(D=a.compositionTimeOffset)!=null?D:0:e,J=(a.timestamp+g)/a.timescale,k=Math.max(0,Math.round((J-d)*s.timescale));return k>0&&(t=k),O(S({},s),{duration:k>0?k:t})};return(s,a=!1)=>{if(s.flags&&SB(s.flags)&&a&&(B=!B),!(a&&A.length<tC&&B)&&A.length>0){B=!1;let E=s;for(let c=A.length-1;c>0;c--){const J=A[c];if(!J||!E)break;J.timestamp>=E.timestamp?A.splice(c,1):E=J}const g=A.map((c,J)=>F(c,A[J+1]||s));return A=[s],g}return A.push(s),[]}},iC=(Q,A,e)=>{if(Mt(A))return S(O(S({},Q),{type:"video",codec:A.codec,isSync:SB(Q.flags),data:Q.payload,duration:0,width:A.width,height:A.height}),e);if(A.codec==="webvtt")throw new Error("WebVTT is not supported");return O(S({},Q),{type:"audio",channels:A.channels,sampleRate:A.sampleRate,codec:A.codec,language:A.language,isSync:SB(Q.flags),data:Q.payload,duration:0})};class BC{constructor(){i(this,"highEntropyValues");var A;(A=self.navigator.userAgentData)==null||A.getHighEntropyValues(["architecture","model","platformVersion","fullVersionList"]).then(e=>{this.highEntropyValues=e})}getUserAgentInformation(){var F,n,s,a,d,E;const A=window.location.origin,t=!A||A=="null"?"":`${window.location.pathname}${window.location.search}`.substring(0,1e3),B={locationOrigin:window.location.origin,locationPath:t,ancestorOrigins:((F=window.location.ancestorOrigins)==null?void 0:F.length)>0?Array.from(window.location.ancestorOrigins):void 0,hardwareConcurrency:navigator.hardwareConcurrency,deviceMemory:navigator.deviceMemory};if(self.navigator.userAgentData&&this.highEntropyValues){const g="1",c=[...(n=this.highEntropyValues.brands)!=null?n:[]];c.sort((D,G)=>D.brand.localeCompare(G.brand));const J=[...(s=this.highEntropyValues.fullVersionList)!=null?s:[]];J.sort((D,G)=>D.brand.localeCompare(G.brand));const k=J.map(D=>D.version),p=c.map(D=>D.brand),w=c.map(D=>D.version),M=parseInt((d=(a=this.highEntropyValues.platformVersion)==null?void 0:a.split(".")[0])!=null?d:g);return S({userAgentLegacy:window.navigator.userAgent,ua:{browser:{brands:p,fullVersionBrands:k,majorVersions:w},device:this.highEntropyValues.model||"Other",os:{family:this.highEntropyValues.platform||"Other",version:(E=this.highEntropyValues.platformVersion)!=null?E:g,major_version:Number.isFinite(M)?M:0}}},B)}else return S({userAgent:window.navigator.userAgent},B)}}const UC=Q=>{if(typeof Q!="object"||Q===null)throw new Error("not an object");if(!("video"in Q))throw new Error("missing video in subscription");if(!("audio"in Q))throw new Error("missing audio in subscription");if(!("channelId"in Q))throw new Error("missing channelId");return!0},ne=class ne extends ee{constructor(e){var WA,yA;super();i(this,"pictureInPicture");i(this,"drm");i(this,"browser",Ss());i(this,"options");i(this,"element");i(this,"playbackSource");i(this,"emitter",new ee);i(this,"logger");i(this,"modules");i(this,"clientIp");i(this,"sessionId");i(this,"clientId",So());i(this,"_channels",[]);i(this,"createdAt",Date.now());i(this,"hasCalledConnect",!1);i(this,"latestEmittedLanguages",[]);i(this,"wakeLock");i(this,"pool",new u(ne.MAX_POOL_SIZE));i(this,"userAgentInformation",new BC);i(this,"encryptedMediaExtensions");o(this,ZQ,0);o(this,$A,[]);i(this,"sampleProcessingSesssions",new Map);i(this,"sizes",new Map);i(this,"isSuspended",!0);i(this,"disconnectTimeout");o(this,wQ);i(this,"attach",e=>{var t;(t=this.wakeLock)==null||t.attach(e),e.appendChild(this.element)});i(this,"getOptions",()=>this.options.getOptions());i(this,"getThumbnailUrl",()=>{let e=this.options.get("edgeUrl")||this.options.get("url");e=e.replace("wss://","https://"),e=e.replace("ws://","http://"),e=e.endsWith("/")?e.slice(0,-1):e;const t=window.devicePixelRatio||1,B=Math.round(window.innerWidth*t),F=Math.round(window.innerHeight*t),n=this.options.get("authenticationToken"),s=n?`&auth.token=${n}`:"";return`${e}/api/thumbnail?channelId=${this.channelId}${s}&width=${B}&height=${F}`});i(this,"updateAuthenticationToken",e=>{this.logger.debug("Got new auth token",{token:e}),this.options.set("authenticationToken",e),this.emitter.emit("send signal",{type:"refresh auth",token:e})});i(this,"connect",()=>{this.hasCalledConnect||(this.play(),this._connect())});i(this,"_connect",()=>{var e,t;this.hasCalledConnect||(this.hasCalledConnect=!0,Object.values(this.modules).forEach(B=>{B&&"load"in B&&B.load()}),this.unsuspend(),this.playbackSource instanceof vs&&((t=(e=this.playbackSource).load)==null||t.call(e)),this.modules.connection.connect())});i(this,"getCastOptions",()=>({url:this.options.get("url"),channelId:this.options.get("channelId"),channelGroupId:this.options.get("channelGroupId"),authenticationToken:this.options.get("authenticationToken"),language:this.options.get("language"),logLevel:this.options.get("logLevel"),minBufferTime:this.options.get("minBufferTime"),tags:this.options.get("tags"),ownerSessionId:this.sessionId,edgeUrl:this.options.get("edgeUrl"),media:this.options.get("media"),drm:this.options.get("drm")}));i(this,"onConnectInfo",e=>r(this,null,function*(){var d;this.sessionId=So();const t=this.modules.subscription.getTargetSubscription(),B=e.channels.find(E=>E.channelId===t.channelId);if(this.emitter.emit("connect info",e),this._channels=e.channels,this.updateTextTracks((d=B==null?void 0:B.renditions)!=null?d:[]),!this.textTrack&&this.options.get("textTrack")&&(this.textTrack=this.options.get("textTrack")),yield Promise.all(e.channels.map(E=>r(this,null,function*(){E.overrides&&this.options.addOverrides(E.channelId,E.overrides),E.renditions=yield this.filterRenditions(E.renditions),this.modules.renditions.setRenditions(E.channelId,E.renditions)}))),!B)throw Ho("external");const F=this.options.getOverride("sizeBasedResolutionCapEnabled",this.channelId);F!==void 0&&(this.modules.constraintCap.sizeBasedResolutionCapEnabled=F);const n=this.options.getOverride("minBufferTime",this.channelId),s=this.options.getOverride("maxBufferTime",this.channelId);if((n||s)&&(this.modules.bufferTime.updateConfig({minBufferTime:this.options.get("minBufferTime",this.channelId),maxBufferTime:this.options.get("maxBufferTime",this.channelId)}),this.targetBufferTime=this.options.get("minBufferTime",this.channelId)),this.options.get("burstEnabled",this.channelId)&&this.modules.subscription.enableBurst(this.targetBufferTime),this.emit("is live",B.isLive),!B.isLive)throw new Error("Waiting for channel to go live");this.patchSubscription(B,this.modules.connection.estimatedBandwidth),yield this.initializeDecodingModule(),this.resetModules(),this.emit("rendition levels",this.modules.renditions.getRenditionLevels()),this.emit("channels",this.channels),this.emitLanguagesIfChanged(),this.sampleProcessingSesssions.clear();const a=this.options.get("burstEnabled",this.channelId);return{video:this.targetSubscription.video,audio:this.targetSubscription.audio,burstMs:a?this.targetBufferTime:void 0,sessionId:this.sessionId,clientId:this.clientId,channelId:this.channelId,channelGroupId:this.options.get("channelGroupId"),authToken:this.options.get("authenticationToken"),textTrack:this.textTrack}}));i(this,"emitLanguagesIfChanged",()=>{const e=this.modules.renditions.getLanguages(),t=this.latestEmittedLanguages;e.length==t.length&&e.every(F=>t.includes(F))||(this.logger.debug("Emitting new languages",{currentLanguages:e}),this.latestEmittedLanguages=e,this.emit("languages",this.latestEmittedLanguages))});i(this,"updateTextTracks",e=>{const t=e.filter(B=>B.codec==="webvtt");t.forEach(B=>{if(!U(this,$A).find(n=>n.language===B.language)){if(this.modules.canvasModule){const n=this.modules.canvasModule.textTracks.addTextTrack(B.kind,B.label||B.language||"",B.language||"");U(this,$A).push(n)}else if(this.mediaElement instanceof HTMLVideoElement){const n=this.mediaElement.addTextTrack(B.kind,B.label||B.language,B.language);U(this,$A).push(n)}}});for(const B of U(this,$A))t.find(n=>n.language===B.language)?B.mode==="disabled"&&(B.mode="hidden"):B.mode="disabled";this.emit("text tracks",this.textTracks)});i(this,"cleanupTextTracks",(e=this.currentTime-2e4)=>{U(this,$A).forEach(t=>{if(t.cues)for(const B of t.cues)B.endTime*1e3<e-2e3&&t.removeCue(B)})});i(this,"filterRenditions",e=>r(this,null,function*(){const t=yield Promise.all(e.map(s=>r(this,null,function*(){var E,g,c;if(vt(s))return!0;if(!Mt(s)||!this.isSupportedVideoCodecProfile(s.codec,s.codecString))return!1;if(!this.willUseMediaSource()){const J=this.options.get("advanced"),k=(E=J.wasmDecodingConstraint.bitRate)!=null?E:Number.MAX_SAFE_INTEGER,p=(g=J.wasmDecodingConstraint.width)!=null?g:Number.MAX_SAFE_INTEGER,w=(c=J.wasmDecodingConstraint.height)!=null?c:Number.MAX_SAFE_INTEGER;return s.bitRate<=k&&s.width<=p&&s.height<=w}const a=yield aI(s);if(!a.supported||s.codec=="av1"&&!a.smooth&&!a.powerEfficient)return!1;const d=this.options.getOverride("maxVideoBitRate",this.channelId);return d?d>=s.bitRate:!0})));let B=e.filter((s,a)=>t[a]);const F=B.filter(s=>s.codec==="h264").reverse()[0],n=B.filter(s=>s.codec==="av1").reverse()[0];return F&&n&&F.width>n.width&&F.height>n.height&&(B=B.filter(s=>s.codec!=="av1")),B}));i(this,"patchSubscription",(e,t)=>{const B=Math.min(this.options.get("maxVideoBitRate"),ne.INITIAL_MAX_BIT_RATE,t,this.targetSubscription.video.bitRate),F=Math.min(this.options.get("maxAudioBitRate"),ne.INITIAL_MAX_BIT_RATE,t,this.targetSubscription.audio.bitRate),n=this.options.get("media")==="audio"?[]:this.options.get("videoCodecs",this.channelId),s=this.supportedAudioCodecs(),a=e.renditions.filter(vt),d=e.renditions.filter(Mt),E=s.find(k=>a.find(p=>p.codec===k)!==void 0),g=n.find(k=>d.find(p=>p.codec===k)!==void 0),c=a.map(k=>k.language);if(this.logger.debug("supported and selected codecs",{audioCodecs:s,videoCodecs:n,audioCodec:E,videoCodec:g}),g){const k=this.options.get("maxSize");this.modules.subscription.setVideoConstraint(S({codec:g,bitRate:this.abrEnabled?B:this.options.get("maxVideoBitRate")},k))}E&&(this.modules.subscription.setAudioConstraint({codec:E,bitRate:this.abrEnabled?F:this.options.get("maxAudioBitRate"),language:this.options.get("language")}),(!c.includes(this.options.get("language"))||this.language===void 0)&&this.modules.subscription.setLanguage(c[0])),this.alignSizeAndBitRate(this.targetSubscription);const J=this.modules.subscription.getTargetSubscription();this.emitter.emit("subscription changed",{to:J,from:this.modules.subscription.getCurrentSubscription()})});i(this,"isSupportedVideoCodecProfile",(e,t)=>{if(this.willUseMediaSource()){const B=le();return B?B.isTypeSupported(Lt({codec:e,codecString:t})):!0}if(e==="h264"){const B=!!(t!=null&&t.startsWith("avc1.42")),F=!!(t!=null&&t.startsWith("avc1.66."));return B||F}return e!=="av1"});i(this,"supportedAudioCodecs",()=>{if(this.options.get("media")==="video")return[];const e=[];return(this.browser.supportsMp4Opus&&this.options.get("mseOpusEnabled")||!this.willUseMediaSource())&&e.push("opus"),this.willUseMediaSource()&&e.push("aac"),e});i(this,"initializeDecodingModule",()=>r(this,null,function*(){var B,F;const e=this.currentRenditionLevel,t=[];if(!e)throw new Y("No currentRenditionLevel",{code:"no_current_rendition_level",isFatal:!1});if(e!=null&&e.video&&t.push({type:"video",mimeType:Lt(e.video),codec:e.video.codec}),e!=null&&e.audio&&t.push({type:"audio",codec:e.audio.codec,mimeType:Lt(e.audio)}),t.length===0)throw new Y("Can't initialize decoding module without tracks",{code:"no_tracks",isFatal:!1});if(this.willUseMediaSource()&&this.element instanceof HTMLMediaElement)this.emitter.emit("flush buffers"),yield(B=this.modules.mseModule)==null?void 0:B.setSourceBuffers(t);else{const n=yield la.create(this.emitter,this.logger.createContext("DecoderModule"),t,this.playbackSource,this.pool);(F=this.modules.decoder)==null||F.unload(),this.modules.decoder=n,this.modules.decoder.load()}}));i(this,"unload",()=>r(this,null,function*(){var e,t,B;this.logger.debug("Unloading modules..."),yield Promise.all(Object.values(this.modules).map(F=>F==null?void 0:F.unload())),(e=this.wakeLock)==null||e.unload(),this.pool=new u(ne.MAX_POOL_SIZE),(B=(t=this.playbackSource).unload)==null||B.call(t),this.element.remove(),this.emitter.reset(),this.encryptedMediaExtensions.unload(),this.reset(),this.logger.debug("Unloaded modules")}));i(this,"userInput",()=>{this.play()});i(this,"pause",()=>{this.options.get("pauseSupportEnabled")&&this.playbackState!=="paused"&&(this.playbackSource.pause(),this.hasCalledConnect&&this.suspend())});i(this,"registerDebugInstance",()=>{sI(this)});i(this,"play",()=>{var e;this.hasCalledConnect?this.unsuspend():this.playbackState!=="playing"&&(this._connect(),self.addEventListener("__vindral_register_debug__",this.registerDebugInstance),this.modules.timer.setInterval(()=>this.cleanupTextTracks(),ne.REMOVE_CUE_THRESHOLD)),(e=this.wakeLock)==null||e.enable(),this.playbackState==="paused"&&(this.resetModules(),this.emitter.emit("flush buffers"),this.cleanupTextTracks(Number.MAX_SAFE_INTEGER)),this.playbackSource.play()});i(this,"getStatistics",()=>Object.values(this.modules).reduce((e,t)=>t&&"getStatistics"in t?S(S({},e),t.getStatistics()):e,this.getRuntimeInfo()));i(this,"resetModules",()=>{Object.values(this.modules).forEach(e=>{e&&"reset"in e&&e.reset()}),this.sampleProcessingSesssions.clear(),this.playbackSource.currentTime=0,this.playbackSource.isActivated=!1});i(this,"getRuntimeInfo",()=>{const e=this.modules.canvasModule?this.options.get("iosMediaElementEnabled"):void 0;return S({uptime:Date.now()-this.createdAt,version:"4.1.1",clientId:this.clientId,sessionId:this.sessionId,channelId:this.channelId,channelGroupId:this.options.get("channelGroupId"),ip:this.clientIp,url:this.options.get("url"),timeToFirstFrame:this.timeToFirstFrame(),iosMediaElementEnabled:e},this.userAgentInformation.getUserAgentInformation())});i(this,"onMediaElementState",e=>{this.logger.info("media element state",{state:e}),this.options.get("pauseSupportEnabled")&&(e==="paused"?this.modules.documentState.isVisible&&(this.suspend(),this.modules.connection.disconnect()):(this.unsuspend(),this.modules.connection.getState()==="disconnected"&&this.modules.connection.unsuspend()))});i(this,"onBufferEvent",e=>{var B,F,n,s;this.emit("buffer state event",e);const t=!this.playbackSource.isActivated||this.playbackSource.isPaused;if(e==="filled"&&t){const a=Math.max(this.currentTime,(F=(B=this.videoBufferedRanges[0])==null?void 0:B.start)!=null?F:0,(s=(n=this.audioBufferedRanges[0])==null?void 0:n.start)!=null?s:0);this.logger.info("Buffer filled - starting playback",{currentTime:a}),this.playbackSource.currentTime=a,this.modules.sync.activateSyncAdjustments(),this.playbackSource.isActivated=!0}else e==="drained"&&this.playbackSource.isPaused&&(this.playbackSource.isActivated=!1,this.modules.sync.deactivateSyncAdjustments())});i(this,"timeToFirstFrame",()=>{const e=this.modules.playback.getFirstFrameTime(),t=this.modules.connection.firstConnectionTime;if(t&&e)return e-t});this.options=new nI(S(S({},Pd),EE(e)));const t=["localhost","127.0.0.1"];e.telemetryEnabled===void 0&&t.includes(location.hostname)&&this.options.set("telemetryEnabled",!1);const B={channelId:this.options.get("channelId"),audio:{language:this.options.get("language"),bitRate:this.options.get("maxAudioBitRate")},video:{bitRate:this.options.get("maxVideoBitRate"),width:this.options.get("maxSize").width,height:this.options.get("maxSize").height}},F=pA.get();F.setLevel(this.options.get("logLevel")),F.setDebug(!1),this.logger=F;const n=Sa.create(this.emitter,this.logger.createContext("PictureInPictureModule")),s=DA.create(),a=sa.create(this.emitter,this.logger.createContext("ConnectionModule"),{reconnectHandler:this.options.get("reconnectHandler"),options:this.options,onConnectInfo:this.onConnectInfo}),d=Na.create(this.logger.createContext("SubscriptionModule"),this.emitter,B),E=ka.create(this.emitter,d),g=ua.create(this.emitter,this.logger.createContext("QualityOfServiceModule")),c=Ja.create(this.emitter,this.logger.createContext("PlaybackModule"),this,this.options.get("minBufferTime"));this.encryptedMediaExtensions=new _o(this.emitter,this.logger.createContext("EncryptedMediaExtensions"),(WA=e.drm)==null?void 0:WA.headers,(yA=e.drm)==null?void 0:yA.queryParams),this.drm={setHeaders:C=>{this.encryptedMediaExtensions.headers=C},setQueryParams:C=>{this.encryptedMediaExtensions.queryParams=C}};const J=ra.create(this.emitter),k=this.options.get("poster"),p=k===!0?this.getThumbnailUrl():k||void 0;let w,M,D;if(this.willUseMediaSource()){const C=new vs({type:this.options.get("media")=="audio"?"audio":"video",autoplay:!1,muted:this.options.get("muted")||this.options.get("media")==="video",logger:this.logger.createContext("MediaElement"),poster:p});C.on("buffer state",T=>this.emitter.emit("buffer state",T)),C.on("needs user input",T=>this.emitter.emit("needs user input",T)),C.on("volume state",T=>this.emit("volume state",T)),C.on("media element state",T=>this.onMediaElementState(T)),this.element=C.element,this.playbackSource=C,_o.isSupported()&&this.encryptedMediaExtensions.attach(C.element),w=ha.create(this.logger.createContext("MseModule"),this.emitter,this.element),this.options.get("pauseSupportEnabled")||(M=sn.create(this.logger.createContext("UnpauseModule"),C,J)),this.options.get("pictureInPictureEnabled")&&this.emitter.emit("add picture in picture listener",{element:C.element})}else if(this.browser.platform.iosVersion>=15&&this.options.get("iosMediaElementEnabled")){const C=Ra.create(this.emitter,this.logger.createContext("ModernCanvasModule"),this.pool,this,{type:this.options.get("media")=="audio"?"audio":"video",muted:this.options.get("muted")||this.options.get("media")==="video",poster:p}),T=C.element();this.element=T.element,this.playbackSource=C,D=C,this.options.get("pictureInPictureEnabled")&&this.browser.platform.iosVersion>15&&this.emitter.emit("add picture in picture listener",{element:this.element}),this.options.get("pauseSupportEnabled")||(M=sn.create(this.logger.createContext("UnpauseModule"),T,J))}else{const C=Ca.create(this.emitter,this.logger.createContext("LegacyCanvasModule"),this.pool,this,this.options.get("muted")||this.options.get("media")==="video");this.element=C.element(),this.playbackSource=C,D=C,this.options.get("iosWakeLockEnabled")&&(this.wakeLock=new iI)}this.emitter.on("channel reset",this.resetModules),this.emitter.on("no data timeout",this.resetModules),this.emitter.on("media element state",C=>this.onMediaElementState(C)),this.emitter.on("volume state",C=>this.emit("volume state",C)),this.options.get("pauseSupportEnabled")||this.emitter.on("exit picture in picture",()=>s.setTimeout(()=>this.play(),0)),this.emitter.on("constraint cap changed",C=>{this.logger.info("new cap set",{cap:C}),this.alignSizeAndBitRate(this.targetSubscription)}),this.pictureInPicture={enter:()=>n.requestPictureInPicture(),exit:()=>n.exitPictureInPicture(),isActive:()=>n.isPictureInPictureActive(),isSupported:()=>n.isPictureInPictureSupported()},this.emitter.on("error",C=>{if(C.type()==="external"&&this.emit("error",C),C.isFatal())return()=>void this.unload()});const G=this.browser.platform.isIOS&&!this.browser.platform.isIpadOS,v=ma.create(this.emitter,this.logger.createContext("SyncModule"),this.playbackSource,c,this.willUseMediaSource()&&!G),H=(this.options.get("edgeUrl")||this.options.get("url")).replace("wss://","https://").replace("ws://","http://").replace("//lb.","//errors."),j=new URL("/telemetry",H).toString(),VA=nn.create(this.logger.createContext("TelemetryModule"),this.emitter,{url:j,enabled:this.options.get("telemetryEnabled"),includeStats:!1,interval:5e3},this);this.modules={telemetry:VA,bufferTime:xs.create(this.emitter,this.logger.createContext("BufferTimeModule"),g,this,{maxBufferTime:this.options.get("maxBufferTime"),minBufferTime:this.options.get("minBufferTime")}),incomingData:Ea.create(this.emitter),adaptivity:Ys.create(this.emitter,this.logger.createContext("AdaptivityModule"),g,{cooldownTime:Math.max(this.options.get("minBufferTime"),2e3)}),constraintCap:oa.create(this.emitter,this.element,E,this.options.get("abrEnabled")?this.options.get("sizeBasedResolutionCapEnabled"):!1),event:da.create(this.emitter,this.logger.createContext("EventModule"),v),sync:v,documentState:J,connection:a,playback:c,pictureInPicture:n,timer:s,subscription:d,renditions:E,qualityOfService:g,mseModule:w,unpause:M,canvasModule:D},this.modules.adaptivity.isEnabled=this.options.get("abrEnabled"),this.emitter.on("page active",C=>{var T;C&&typeof this.disconnectTimeout=="number"&&(this.modules.timer.clearInterval(this.disconnectTimeout),this.disconnectTimeout=void 0),C?this.playbackSource.isPaused||(this.logger.debug("Unsuspending"),this.unsuspend()):(this.logger.debug("Suspending"),this.suspend(),this.modules.decoder?this.options.get("iosBackgroundPlayEnabled")?(this.modules.decoder.unsuspend(),(T=this.modules.canvasModule)==null||T.unsuspend()):this.modules.connection.disconnect():(this.disconnectTimeout&&this.modules.timer.clearInterval(this.disconnectTimeout),this.disconnectTimeout=this.modules.timer.setInterval(()=>{const BA=this.playbackState==="paused"||this.muted;this.connectionState==="connected"&&BA&&(this.emitter.emit("flush buffers"),this.modules.connection.disconnect("Page inactive timeout"))},ne.DISCONNECT_TIMEOUT)))});let FA;this.emitter.on("context switch complete",()=>{FA||(FA=window.setTimeout(()=>{window.clearTimeout(FA),FA=void 0,this.emit("context switch","completed"),this.emitLanguagesIfChanged()},this.targetBufferTime))}),this.emitter.on("context switch started",()=>this.emit("context switch","started")),this.emitter.on("needs user input",C=>this.emit("needs user input",C)),this.emitter.on("event",C=>{switch(C.type){case"metadata":this.emit("metadata",C);break;case"channel switch":this.emit("channel switch",{channelId:C.channelId});break;case"language switch":this.emit("language switch",{language:C.language});break}}),this.emitter.on("buffer state event",this.onBufferEvent),this.emitter.on("playback state",C=>this.emit("playback state",C)),this.emitter.on("rendition level changed",({to:C})=>{C&&this.emit("rendition level",C)}),this.emitter.on("connection state",C=>{this.emit("connection state",C)}),this.emitter.on("recovered from media error",()=>{this.modules.adaptivity.reset(this.targetBufferTime*2)}),this.emitter.once("connect info",C=>{var eA,K,z;const BA=((K=(eA=C.telemetry)==null?void 0:eA.probability)!=null?K:1)>=Math.random();C.telemetry&&((z=this.modules.telemetry)==null||z.unload(),this.modules.telemetry=nn.create(this.logger.createContext("TelemetryModule"),this.emitter,O(S({},C.telemetry),{enabled:this.options.get("telemetryEnabled")&&BA}),this),this.modules.telemetry.load())}),this.emitter.on("adapt level",C=>{var x,L,tA,X,UA;this.logger.debug("adapt level",{direction:C});const T=this.modules.renditions.getRenditionLevels(),BA=this.modules.renditions.getRenditionLevel(),eA=T.findIndex(aA=>aA===BA),K=T.length-1;let z=eA;switch(C){case"upgrade":{const aA=Math.min(eA+1,K),xA=T[aA],rF=(x=this.modules.connection.estimatedBandwidth)!=null?x:Ut(),TQ=((tA=(L=xA==null?void 0:xA.audio)==null?void 0:L.bitRate)!=null?tA:0)+((UA=(X=xA==null?void 0:xA.video)==null?void 0:X.bitRate)!=null?UA:0),dF=rF*2>TQ;xA&&dF&&this.modules.adaptivity.isQoSOk(xA)&&(z=aA)}break;case"downgrade":z=Math.max(eA-1,0);break;case"double downgrade":z=Math.max(eA-2,0);break;case"reconnect":if(eA===0||this.modules.qualityOfService.timeSpentBufferingLast(6e3)>5e3){if(!this.modules.connection.lastConnectionTime||Date.now()-this.modules.connection.lastConnectionTime<this.modules.qualityOfService.fatalQosGraceTime()||this.modules.connection.getState()!=="connected")return;this.modules.qualityOfService.incrementFatalQosCount(),this.logger.info("Reconnecting due to poor qos"),this.modules.connection.reconnect("Fatal QOS"),this.emitter.emit("adapted level");return}else z=0}if(z===eA)return;const N=T[z];this.alignSizeAndBitRate(O(S({},this.targetSubscription),{video:S(S({},this.targetSubscription.video),N==null?void 0:N.video),audio:S(S({},this.targetSubscription.audio),N==null?void 0:N.audio)})),this.emitter.emit("adapted level")}),this.emitter.on("text track data",C=>{const T=U(this,$A).find(z=>z.language===C.language),eA=this.modules.sync.getTimeshiftOffset()/1e3,K=eA-U(this,ZQ);if(l(this,ZQ,eA),T){if(T.cues)for(const z of T.cues)z.startTime-=K,z.endTime-=K;for(const z of C.cues){const N=new VTTCue(z.startTime-eA,z.endTime-eA,z.text);T.addCue(N)}}}),this.emitter.on("received signal",C=>{var eA;const T=C,BA=this.modules.subscription.getCurrentSubscription();switch(this.logger.debug("received",S({},T)),T.type){case"client ip":this.clientIp=T.ip;break;case"renditions":this.updateTextTracks(T.renditions),l(this,wQ,this.filterRenditions(T.renditions).then(K=>{this.emitter.emit("renditions",{renditions:K,channelId:this.currentSubscription.channelId}),this.emit("rendition levels",this.modules.renditions.getRenditionLevels()),this.emitLanguagesIfChanged()}).finally(()=>{l(this,wQ,void 0)}));break;case"subscription changed":try{UC(T.subscription)}catch(K){this.emitter.emit("error",new Y("Subscription failed validation",{source:K instanceof Error?K:void 0,isFatal:!1,code:"subscription_failed_validation"}))}this.emitter.emit("subscription changed",{reset:T.reset,to:T.subscription,from:this.modules.subscription.getCurrentSubscription()}),T.reset&&BA.channelId!==T.subscription.channelId&&(this.emit("error",Xo(T.subscription.channelId)),this.emit("channel switch failed",{channelId:BA.channelId})),this.modules.sync.timeshiftOnAudio=!((eA=T.subscription.video)!=null&&eA.codec),this.modules.adaptivity.reset();break;case"timing info":this.modules.sync.updateChannelSyncInfo(T.timingInfo.channelId,T.timingInfo),this.emit("server wallclock time",T.timingInfo.wallclockTime);break}}),this.emitter.on("channel switch timeout",C=>{this.emit("error",Xo(C)),this.emit("channel switch failed",{channelId:this.currentSubscription.channelId})}),this.emitter.on("received data",C=>{const T=this.modules.subscription.getCurrentSubscription(),BA=tI(C);if(!T){this.logger.warn("Received unwanted message",S({},BA));return}se(O(S({},BA),{channelId:T.channelId}))}),this.emitter.on("received moq data",C=>{var z,N,x;const T=C.payload.mediaType(),BA=C.channelId,eA=C.renditionId,K=this.modules.sync.processFragment(BA,C.payload);if(C.switchInfo.channelId&&(C.switchInfo.drmTransition&&this.emitter.emit("error",Ko("Switching between DRM and non-DRM channels is not supported",!0)),this.encryptedMediaExtensions.onChannelSwitch(),this.emit("rendition levels",this.modules.renditions.getRenditionLevels()),this.modules.event.addEvent({type:"channel switch",channelId:C.switchInfo.channelId,timestamp:K.baseMediaDecodeTime()/K.timescale()*1e3})),C.switchInfo.language&&this.modules.event.addEvent({type:"language switch",language:C.switchInfo.language,timestamp:K.baseMediaDecodeTime()/K.timescale()*1e3}),this.modules.incomingData.add(T,C.payload.rawBytes().byteLength),K.fragment().emsgs.forEach(L=>{if(!L.presentationTime)return;const tA=fE(L.data);tA&&this.modules.event.addEvent({id:L.id,timestamp:L.presentationTime/L.timescale*1e3-this.modules.sync.getTimeshiftOffset(),content:tA.txx.value,type:"metadata"})}),this.modules.decoder){const L=(z=K.header().init().moov.traks[0])==null?void 0:z.mdia.minf.stbl.stsd,tA=(N=L==null?void 0:L.avc1)==null?void 0:N.avcC.bytes,X=(x=L==null?void 0:L.codec)!=null?x:"h264";if(tA){const UA=tA.buffer.slice(tA.byteOffset,tA.byteOffset+tA.byteLength);if(T==="text")throw new Error("Subtitles are not supported");this.emitter.emit("init segment",{initSegment:{channelId:BA,renditionId:eA,data:UA,timescale:1e3,type:T,codec:X},mimeType:T})}for(let UA=0;UA<K.samplesCount();UA++){const aA=K.sample(UA);aA&&this.emitter.emit("coded sample",O(S({},aA),{renditionId:eA,channelId:BA,data:aA.data.buffer.slice(aA.data.byteOffset,aA.data.byteOffset+aA.data.byteLength)}))}}else this.emitter.emit("fragment",{mimeType:C.mimeType,codec:C.codec,fragment:K,channelId:BA,renditionId:eA})});const uA=this.options.get("container");uA&&this.attach(uA),this.logger.info("Created Vindral instance",{options:this.options});const se=C=>r(this,null,function*(){const T=C.channelId;U(this,wQ)&&(yield U(this,wQ));const BA=this.modules.renditions.getRendition(C.renditionId,T);if(!$g(C.flags)){if(AI(C.flags)){const K=new TextDecoder().decode(C.payload),z=this.modules.sync.getTimeshiftOffset();if(C.renditionId!==0){const N=ho(K);if(N&&N.language!==void 0){const L=new ol().parse(N.content||""),tA=z/1e3,X=U(this,$A).find(aA=>aA.language===N.language),UA=tA-U(this,ZQ);if(l(this,ZQ,tA),X){if(X.cues)for(const aA of X.cues)aA.startTime-=UA,aA.endTime-=UA;for(const aA of L){const xA=new VTTCue(aA.startTime-tA,aA.endTime-tA,aA.text);X.addCue(xA)}}}}else this.modules.event.addEvent({timestamp:C.timestamp/C.timescale*1e3-this.modules.sync.getTimeshiftOffset(),content:K,type:"metadata"})}else if(BA!=null&&BA.codec){const eA=h(BA.codec);if(eA==="text")throw new Error("Subtitles are not supported");if(this.modules.incomingData.add(eA,C.payload.byteLength),_g(C.flags)){const K=O(S({type:eA,data:C.payload,codec:BA.codec},C),{channelId:T}),z=Kg(K.codec,K.payload);z&&this.sizes.set(K.renditionId,z);const N=Lt({codec:BA.codec,codecString:BA.codecString});this.emitter.emit("init segment",{initSegment:K,mimeType:N}),this.emit("initialized media")}else{const K=iC(C,BA,this.sizes.get(C.renditionId));let z=this.sampleProcessingSesssions.get(eA);if(!z)z=QC(this.modules.sync.processSample(K)),this.sampleProcessingSesssions.set(eA,z);else{const N=z(this.modules.sync.processSample(K),this.isSwitchingRenditionLevel&&K.type==="video");let x=K;N.forEach(L=>{this.modules.event.extractEvent(L,x),this.emitter.emit("coded sample",L),x=L})}}}}});this.options.get("maxVideoBitRate")!==Number.MAX_SAFE_INTEGER&&(this.maxVideoBitRate=this.options.get("maxVideoBitRate")),this.options.get("maxAudioBitRate")!==Number.MAX_SAFE_INTEGER&&(this.maxAudioBitRate=this.options.get("maxAudioBitRate")),bt(this.options.get("maxSize"),JF())||(this.maxSize=this.options.get("maxSize")),this.options.get("burstEnabled")&&d.enableBurst(this.targetBufferTime)}set volume(e){this.playbackSource.volume=e}get volume(){return this.playbackSource.volume}set muted(e){if(e===this.muted)return;const t=this.playbackSource.muted;this.playbackSource.muted=e,!e&&t&&!this.playbackSource.isPaused&&this.playbackSource.play()}get muted(){return this.playbackSource.muted}get media(){return this.options.get("media")}get videoBitRate(){return this.modules.incomingData.averageBitRate("video")}get audioBitRate(){return this.modules.incomingData.averageBitRate("audio")}get connectionState(){return this.modules.connection.getState()}get playbackState(){return this.modules.playback.getState()}get bufferFullness(){return this.modules.playback.getBufferFullness()}get sizeBasedResolutionCapEnabled(){return this.modules.constraintCap.sizeBasedResolutionCapEnabled}set sizeBasedResolutionCapEnabled(e){this.modules.constraintCap.sizeBasedResolutionCapEnabled=e}get abrEnabled(){return this.modules.adaptivity.isEnabled}set abrEnabled(e){this.modules.constraintCap.sizeBasedResolutionCapEnabled=e?this.options.get("sizeBasedResolutionCapEnabled"):!1,this.modules.adaptivity.isEnabled=e,this.alignSizeAndBitRate(this.targetSubscription)}get serverEdgeTime(){return this.modules.sync.getLiveEdgeTimeLatencyAdjusted(this.currentSubscription.channelId)}get serverWallclockTime(){return this.modules.sync.getWallclockTimeLatencyAdjusted(this.currentSubscription.channelId)}get currentTime(){return this.modules.sync.serverCurrentTime}get channelCurrentTime(){return this.modules.sync.channelCurrentTime}get targetBufferTime(){return this.modules.playback.getTargetBufferTime()}set targetBufferTime(e){this.modules.playback.getTargetBufferTime()!==e&&(this.modules.playback.setTargetBufferTime(e),this.playbackSource.currentTime=this.modules.sync.serverCurrentTime,this.options.get("burstEnabled",this.channelId)?this.modules.subscription.enableBurst(this.targetBufferTime):this.modules.subscription.enableBurst(0))}get playbackLatency(){var e;if(this.playbackSource.currentTime!==0)return this.targetBufferTime+((e=this.modules.sync.drift)!=null?e:0)+this.modules.connection.rtt/2}get playbackWallclockTime(){if(!(!this.serverWallclockTime||!this.playbackLatency))return this.serverWallclockTime-this.playbackLatency}get channels(){return this._channels}get languages(){return this.modules.renditions.getLanguages()}get language(){return this.modules.subscription.getTargetSubscription().audio.language}set language(e){this.modules.subscription.setLanguage(e)}set textTrack(e){U(this,$A).forEach(t=>{t.label===e?t.mode="showing":t.mode="hidden"}),this.emitter.emit("text track",e)}get textTracks(){return U(this,$A).filter(e=>e.mode!=="disabled").map(e=>e.label)}get textTrack(){var e;return(e=U(this,$A).find(t=>t.mode==="showing"))==null?void 0:e.label}get channelId(){var e,t;return(t=(e=this.modules)==null?void 0:e.subscription.getTargetSubscription().channelId)!=null?t:this.options.get("channelId")}set channelId(e){if(e===this.channelId)return;this.modules.subscription.setChannelId(e);const t=this.options.get("media")==="audio"?[]:this.options.get("videoCodecs"),B=this.modules.renditions.getAudioRenditions(e),F=this.modules.renditions.getVideoRenditions(e),n=this.targetSubscription.audio.language,s=B==null?void 0:B.some(d=>d.language===n),a=t.find(d=>(F==null?void 0:F.find(E=>E.codec===d))!==void 0);a&&this.modules.subscription.setVideoCodec(a),this.logger.debug("Channel switch - started",{audioRenditions:B,targetSubscriptionLanguage:n,targetHasCurrentLanguage:s}),this.alignSizeAndBitRate(this.targetSubscription)}get maxSize(){var B,F;const{width:e,height:t}=(F=(B=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:B.video)!=null?F:JF();return{width:e,height:t}}set maxSize(e){this.modules.constraintCap.setUserSpecifiedCap({video:{width:e.width,height:e.height}}),this.alignSizeAndBitRate(this.targetSubscription)}get maxVideoBitRate(){var e,t;return(t=(e=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:e.video.bitRate)!=null?t:Ut()}set maxVideoBitRate(e){this.modules.constraintCap.setUserSpecifiedCap({video:{bitRate:e}}),this.alignSizeAndBitRate(this.targetSubscription)}get maxAudioBitRate(){var e,t;return(t=(e=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:e.audio.bitRate)!=null?t:Ut()}set maxAudioBitRate(e){this.modules.constraintCap.setUserSpecifiedCap({audio:{bitRate:e}}),this.alignSizeAndBitRate(this.targetSubscription)}get renditionLevels(){return this.modules.renditions.getRenditionLevels()}get currentRenditionLevel(){return this.modules.renditions.getRenditionLevel()}get targetRenditionLevel(){return this.modules.renditions.getRenditionLevel(this.modules.subscription.getTargetSubscription())}get isSwitchingRenditionLevel(){return this.modules.subscription.isSwitchingSubscription()}get videoBufferedRanges(){var e,t,B,F;return(F=(B=(e=this.modules.mseModule)==null?void 0:e.getBuffer("video"))!=null?B:(t=this.modules.decoder)==null?void 0:t.getBuffer("video"))!=null?F:[]}get audioBufferedRanges(){var e,t,B,F;return(F=(B=(e=this.modules.mseModule)==null?void 0:e.getBuffer("audio"))!=null?B:(t=this.modules.decoder)==null?void 0:t.getBuffer("audio"))!=null?F:[]}getApiClient(){return this.modules.connection.apiClient}get lastBufferEvent(){return this.modules.playback.getLastBufferStateEvent()}get activeRatios(){return this.modules.qualityOfService.activeRatios()}get bufferingRatios(){return this.modules.qualityOfService.bufferingRatios()}get timeSpentBuffering(){return this.modules.qualityOfService.timeSpentBuffering()}get timeActive(){return this.modules.qualityOfService.timeActive()}get mediaElement(){return this.element}get audioNode(){var e;return(e=this.modules)!=null&&e.canvasModule?this.modules.canvasModule.audioNode:void 0}get drmStatistics(){var e;return(e=this.encryptedMediaExtensions)==null?void 0:e.getStatistics()}get uptime(){return Date.now()-this.createdAt}suspend(){this.isSuspended||(Object.values(this.modules).forEach(e=>{e&&"suspend"in e&&e.suspend()}),this.isSuspended=!0)}unsuspend(){this.isSuspended&&(Object.values(this.modules).forEach(e=>{e&&"unsuspend"in e&&e.unsuspend()}),this.isSuspended=!1)}alignSizeAndBitRate(e){const t=this.modules.constraintCap.constrainSubscription(O(S({},e),{video:S({},e.video),audio:S({},e.audio)})),B=this.modules.constraintCap.getUserSpecifiedCap();!this.abrEnabled&&B&&(t.audio.bitRate=B.audio.bitRate,t.video.bitRate=B.video.bitRate,t.video.width=B.video.width,t.video.height=B.video.height);const F=this.modules.renditions.getRenditionLevel(t);if(F){if(F.video&&(this.modules.subscription.setVideoBitRate(F.video.bitRate),this.modules.subscription.setSize(F.video)),F.audio)this.modules.subscription.setAudioBitRate(F.audio.bitRate),this.modules.subscription.setLanguage(F.audio.language);else if(t.audio.language){let n=this.modules.renditions.getAudioRenditions(t.channelId);!this.abrEnabled&&B&&(n=n==null?void 0:n.filter(g=>g.bitRate<B.audio.bitRate));const s=t.audio.language,a=n==null?void 0:n.some(g=>g.language===s),d=n==null?void 0:n.find(g=>g.language),E=(n==null?void 0:n.length)&&n[0]||void 0;a||(d?(this.logger.debug("Randomizing language since target did not have current language"),this.modules.subscription.setAudioBitRate(d.bitRate),this.modules.subscription.setLanguage(d.language)):(this.logger.debug("Randomizing audio rendition since target did not have current language"),E!=null&&E.bitRate&&this.modules.subscription.setAudioBitRate(E.bitRate),this.modules.subscription.setLanguage(E==null?void 0:E.language)))}}}get currentSubscription(){return this.modules.subscription.getCurrentSubscription()}get targetSubscription(){return this.modules.subscription.getTargetSubscription()}willUseMediaSource(){return this.browser.supportsMediaSource&&this.options.get("mseEnabled")}};ZQ=new WeakMap,$A=new WeakMap,wQ=new WeakMap,i(ne,"MAX_POOL_SIZE",10),i(ne,"INITIAL_MAX_BIT_RATE",2.5*1e3*1e3),i(ne,"DISCONNECT_TIMEOUT",15*1e3),i(ne,"REMOVE_CUE_THRESHOLD",1e3*10);let an=ne;const on={buffering:"_buffering_1ccif_1","buffering-fullscreen":"_buffering-fullscreen_1ccif_16",hidden:"_hidden_1ccif_25","buffering-indicator":"_buffering-indicator_1ccif_31"};class te{constructor(A){i(this,"attach",A=>{this.detach(),A.appendChild(this.element)});i(this,"attachBefore",(A,e)=>{this.detach(),A.insertBefore(this.element,e)});i(this,"detach",()=>this.element.remove());this.element=A}}const pa=on.hidden,FC=on.buffering,Ar=on["buffering-fullscreen"],nC=on["buffering-indicator"];class er extends te{constructor(){super(document.createElement("div"));i(this,"indicator",document.createElement("div"));i(this,"isHidden",()=>this.element.classList.contains(pa));i(this,"setHidden",e=>e?this.hide():this.show());i(this,"hide",()=>this.element.classList.add(pa));i(this,"show",()=>this.element.classList.remove(pa));i(this,"fullscreen",e=>{e?this.element.classList.add(Ar):this.element.classList.remove(Ar)});this.element.className=FC,this.indicator.className=nC,this.element.appendChild(this.indicator)}}class tr extends ee{constructor(e){super();i(this,"config");i(this,"hlsUrl");i(this,"element");i(this,"connectingTimeout");i(this,"updateAuthenticationToken",e=>{});i(this,"unload",()=>{this.element&&(this.element.removeEventListener("webkitplaybacktargetavailabilitychanged",this.onAirPlayAvailable),this.element.removeEventListener("webkitcurrentplaybacktargetiswirelesschanged",this.onAirPlayPlaybackChanged),this.element.remove())});i(this,"onAirPlayAvailable",e=>{switch(e.availability){case"available":{this.element.src!==this.hlsUrl&&this.checkHlsUrl(this.hlsUrl).then(B=>{B&&(this.element.src=this.hlsUrl,this.emit("available"))});break}}});i(this,"onAirPlayPlaybackChanged",()=>{window.clearTimeout(this.connectingTimeout),this.element.webkitCurrentPlaybackTargetIsWireless?(this.emit("connected"),this.element.style.display="block",this.element.paused&&this.element.play()):(this.emit("disconnected"),this.element.pause(),this.element.src="",this.element.src=this.hlsUrl,this.element.style.display="none")});this.hlsUrl=new URL(`/api/hls?channelId=${e.channelId}`,e.url).toString(),this.config=e,this.element=document.createElement("video"),this.element.style.position="absolute",this.element.style.top="0",this.element.style.bottom="0",this.element.style.left="0",this.element.style.right="0",this.element.style.width="100%",this.element.style.height="100%",this.element.style.zIndex="1001",this.element.style.display="none",this.element.id="vindral-airplay-element",this.element.slot="overlay",this.element.playsInline=!0,this.element.controls=!0,this.element.preload="metadata",this.element.addEventListener("webkitplaybacktargetavailabilitychanged",this.onAirPlayAvailable),this.element.addEventListener("webkitcurrentplaybacktargetiswirelesschanged",this.onAirPlayPlaybackChanged),this.config.container.appendChild(this.element)}get casting(){return this.element.webkitCurrentPlaybackTargetIsWireless}set channelId(e){}showPlaybackTargetPicker(){this.element.paused&&(this.element.play(),this.connectingTimeout=window.setTimeout(()=>{this.element.webkitCurrentPlaybackTargetIsWireless||(this.element.pause(),this.element.src="",this.element.src=this.hlsUrl)},3e4)),this.element.webkitShowPlaybackTargetPicker()}static isAirPlaySupported(){return!!window.WebKitPlaybackTargetAvailabilityEvent}checkHlsUrl(e){return r(this,null,function*(){try{return(yield fetch(e,{method:"HEAD"})).ok}catch(t){return!1}})}}const Qr={bar:"_bar_zames_1",hidden:"_hidden_zames_45"},uB={"channel-selection-item":"_channel-selection-item_suenn_1","channel-selection-item-selected":"_channel-selection-item-selected_suenn_8","channel-selection-item-image":"_channel-selection-item-image_suenn_13",withThumbnails:"_withThumbnails_suenn_19","hide-on-small":"_hide-on-small_suenn_27"},sC={"icon-button":"_icon-button_5fg7v_1"},ir={enter:{viewBox:"-12 -12 38 38",content:`<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(-5.000000, -5.000000)">
|
|
49
|
+
`,zl={width:256,codedWidth:256,height:144,codedHeight:144},Pl={preserveDrawingBuffer:!1,alpha:!1,depth:!1,stencil:!1,antialias:!1,premultipliedAlpha:!1},lF=class lF extends $A{constructor(){super();i(this,"canvas",document.createElement("canvas"));i(this,"context",xl(this.canvas,Pl));i(this,"pixelShader",jQ(this.context,this.context.FRAGMENT_SHADER,Kl));i(this,"vertexShader",jQ(this.context,this.context.VERTEX_SHADER,Ol));i(this,"buffer",Xl(this.context,lF.SQUARE_VERTICES));i(this,"program",Ra(this.context,this.vertexShader,this.pixelShader));i(this,"textures",{y:Ot(this.context),u:Ot(this.context),v:Ot(this.context)});i(this,"textRenderer");i(this,"size",zl);i(this,"onContextLost",e=>{this.textRenderer=void 0;const t=new Error(e instanceof WebGLContextEvent?e.statusMessage:"webgl context lost");this.emit("context lost",CE(t)),e.preventDefault()});i(this,"onContextRestored",()=>{this.emit("context restored"),this.context=xl(this.canvas,Pl),this.pixelShader=jQ(this.context,this.context.FRAGMENT_SHADER,Kl),this.vertexShader=jQ(this.context,this.context.VERTEX_SHADER,Ol),this.buffer=Xl(this.context,lF.SQUARE_VERTICES),this.program=Ra(this.context,this.vertexShader,this.pixelShader),this.textures={y:Ot(this.context),u:Ot(this.context),v:Ot(this.context)},this.load()});i(this,"load",()=>{this.context.useProgram(this.program),this.setupPositionVertexAttributes(),this.setSize(zl),this.context.uniform1i(this.context.getUniformLocation(this.program,"y_texture"),0),this.context.uniform1i(this.context.getUniformLocation(this.program,"u_texture"),1),this.context.uniform1i(this.context.getUniformLocation(this.program,"v_texture"),2),this.setConversionMatrix(this.rec709())});i(this,"unload",()=>{var t;this.setSize({width:1,height:1,codedHeight:1,codedWidth:1}),[this.textures.y,this.textures.u,this.textures.v].forEach(B=>this.context.deleteTexture(B)),this.context.deleteShader(this.pixelShader),this.context.deleteShader(this.vertexShader),this.context.deleteProgram(this.program),this.context.deleteBuffer(this.buffer),this.canvas.removeEventListener("webglcontextlost",this.onContextLost),this.canvas.removeEventListener("webglcontextrestored",this.onContextRestored),(t=this.context.getExtension("WEBGL_lose_context"))==null||t.loseContext()});i(this,"resetSize",()=>{this.setSize({width:this.size.width/2,height:this.size.height/2,codedHeight:this.size.codedHeight/2,codedWidth:this.size.codedWidth/2})});i(this,"render",(e,t)=>{var B;this.context.useProgram(this.program),this.setSize({width:e.width,height:e.height,codedWidth:e.codedWidth,codedHeight:e.codedHeight}),this.setConversionMatrix(this.rec709()),this.setModelMatrix(this.size.width/this.size.codedWidth,this.size.height/this.size.codedHeight),this.context.activeTexture(this.context.TEXTURE0),this.updateTexture(this.textures.y,this.size.codedWidth,this.size.codedHeight,e.data[0]),this.context.activeTexture(this.context.TEXTURE1),this.updateTexture(this.textures.u,this.size.codedWidth/2,this.size.codedHeight/2,e.data[1]),this.context.activeTexture(this.context.TEXTURE2),this.updateTexture(this.textures.v,this.size.codedWidth/2,this.size.codedHeight/2,e.data[2]),this.context.drawArrays(this.context.TRIANGLE_STRIP,0,4),this.textRenderer&&this.textRenderer.render({width:Math.max(t.clientWidth,960)*window.devicePixelRatio,height:Math.max(t.clientHeight,540)*window.devicePixelRatio,padding:-parseInt((B=t.style.getPropertyValue("--vindral-control-bar-offset"))!=null?B:"0",10)})});i(this,"updateTexture",(e,t,B,F)=>{const s=this.context.LUMINANCE,a=this.context.UNSIGNED_BYTE;this.context.bindTexture(this.context.TEXTURE_2D,e),this.context.texImage2D(this.context.TEXTURE_2D,0,s,t,B,0,s,a,F)});i(this,"setupPositionVertexAttributes",()=>{const e=this.context.getAttribLocation(this.program,"position");this.context.enableVertexAttribArray(e),this.context.vertexAttribPointer(e,2,this.context.FLOAT,!1,0,0)});i(this,"setSize",e=>{Gt(e,this.size)||(this.size=e,this.canvas.setAttribute("width",e.width.toString()),this.canvas.setAttribute("height",e.height.toString()),this.context.viewport(0,0,e.width,e.height),this.setModelMatrix(e.width/e.codedWidth,e.height/e.codedHeight))});i(this,"setModelMatrix",(e,t)=>{const B=this.context.getUniformLocation(this.program,"model");this.context.uniformMatrix4fv(B,!1,this.transformMatrix(e,t))});i(this,"setConversionMatrix",e=>{const t=this.context.getUniformLocation(this.program,"conversion");this.context.uniformMatrix4fv(t,!1,e)});i(this,"transformMatrix",(e,t)=>[2/e,0,0,0,0,-2/t,0,0,0,0,2/1,0,-1,1,0,1]);i(this,"rec709",()=>[1.16438,0,1.79274,-.97295,1.16438,-.21325,-.53291,.30148,1.16438,2.1124,0,-1.1334,0,0,0,1]);i(this,"rec601",()=>[1.16438,0,1.59603,-.87079,1.16438,-.39176,-.81297,.52959,1.16438,2.01723,0,-1.08139,0,0,0,1]);this.canvas.addEventListener("webglcontextlost",this.onContextLost),this.canvas.addEventListener("webglcontextrestored",this.onContextRestored,!1),this.canvas.style.width="100%",this.canvas.style.position="relative"}getTextRenderer(){return this.textRenderer||(this.textRenderer=new QC(this.context)),this.textRenderer}};i(lF,"SQUARE_VERTICES",new Float32Array([0,0,0,1,1,0,1,1]));let ha=lF;const es=class es{constructor(A,e,t,B){i(this,"oldTimestampLimit",400);i(this,"pool");i(this,"logger");i(this,"videoRenderer",new ha);i(this,"renderQueue",[]);i(this,"clockSource");i(this,"isFirstFrame",!0);i(this,"animationFrameRequest");i(this,"renderedFrameCount",0);i(this,"rendererDroppedFrameCount",0);i(this,"renderTargetSize");i(this,"load",()=>{this.videoRenderer.load()});i(this,"unload",()=>(this.stopRender(),this.videoRenderer.unload(),Promise.resolve()));i(this,"suspend",()=>{this.renderQueue=[],this.stopRender()});i(this,"unsuspend",()=>{this.animationFrameRequest=requestAnimationFrame(this.render)});i(this,"element",()=>this.videoRenderer.canvas);i(this,"getStatistics",()=>({renderedFrameCount:this.renderedFrameCount,rendererDroppedFrameCount:this.rendererDroppedFrameCount,contextLostCount:0,contextRestoredCount:0}));i(this,"resetSize",()=>{this.videoRenderer.resetSize()});i(this,"setActiveCues",(A,e)=>{this.videoRenderer.getTextRenderer().setActiveCues(A,e)});i(this,"onDecodedFrame",A=>{if(A.type==="video")if(this.isFirstFrame)this.isFirstFrame=!1,requestAnimationFrame(()=>{this.renderSample(A)});else{const e=(this.clockSource.currentTime-this.oldTimestampLimit)/1e3;this.renderQueue=this.renderQueue.filter(t=>{const B=t.timestamp/t.timescale,F=A.timestamp/A.timescale,n=B>e&&B<=F;return n||this.pool.reclaim(t.buffer),n}),this.renderQueue.push(A)}});i(this,"render",()=>{const A=this.clockSource.currentTime;let e=this.renderQueue[0],t,B=0;for(;e&&e.timestamp/e.timescale*1e3<=A;)e=this.renderQueue.shift(),e&&(B++,t&&this.pool.reclaim(t.buffer),t=e),e=this.renderQueue[0];t&&this.renderSample(t),this.rendererDroppedFrameCount+=Math.max(B-1,0),this.animationFrameRequest=requestAnimationFrame(this.render)});i(this,"renderSample",A=>{this.renderedFrameCount++,this.videoRenderer.render(A,this.renderTargetSize),this.pool.reclaim(A.buffer)});i(this,"stopRender",()=>{this.animationFrameRequest&&cancelAnimationFrame(this.animationFrameRequest)});this.logger=A,this.clockSource=e,this.pool=t,this.renderTargetSize=B||this.videoRenderer.canvas}};i(es,"create",(A,e,t,B)=>new es(A,e,t,B));let an=es;const ts=class ts{constructor(A,e,t,B,F){i(this,"logger");i(this,"emitter");i(this,"audioPlayer");i(this,"videoPlayer");i(this,"pool");i(this,"unmuter",new $c);i(this,"_isPaused",!1);i(this,"isDisconnected",!1);i(this,"timers",new pA);i(this,"textTracks",new Yl);i(this,"playbackRate");i(this,"reset",()=>{});i(this,"load",()=>{this.audioPlayer.useDefaultDestination(),this.emitter.on("decoded frame",this.onDecodedFrame),this.emitter.on("flush buffers",this.flushBuffers),this.videoPlayer.load(),this.timers.setInterval(()=>{if(!this.textTracks.language)return;const A=this.textTracks.getActiveCues(this.currentTime/1e3);this.videoPlayer.setActiveCues(A,{width:this.videoPlayer.element().clientWidth,height:this.videoPlayer.element().clientHeight})},100)});i(this,"unload",()=>{this.emitter.off("decoded frame",this.onDecodedFrame),this.emitter.off("flush buffers",this.flushBuffers),this.audioPlayer.unload(),this.videoPlayer.unload(),this.timers.unload()});i(this,"suspend",()=>{this.videoPlayer.suspend(),this.audioPlayer.suspend()});i(this,"unsuspend",()=>{this.videoPlayer.unsuspend(),this.audioPlayer.unsuspend()});i(this,"element",()=>this.videoPlayer.element());i(this,"getStatistics",()=>this.videoPlayer.getStatistics());i(this,"flushBuffers",()=>{this.audioPlayer.flushBuffer()});i(this,"activateAudioPlayer",()=>(this.isDisconnected&&(this.isDisconnected=!1,this.audioPlayer.useDefaultDestination()),this._isPaused=!1,this.unmuter.unmute(),this.audioPlayer.play()));i(this,"onDecodedFrame",A=>{try{this.audioPlayer.onDecodedFrame(A)}catch(e){e instanceof Error&&this.emitter.emit("error",xo(!1,e))}this.videoPlayer.onDecodedFrame(A)});this.logger=e,this.emitter=A,this.pool=t,this.audioPlayer=sn.create(this.logger.createContext("AudioPlayerModule"),B,{muted:F,reInitWhenStuck:!0}),this.audioPlayer.on("stuck",()=>{this.isDisconnected=!0}),this.audioPlayer.on("state change",()=>{this.emitter.emit("volume state",{volume:this.volume,isMuted:this.muted})}),this.videoPlayer=an.create(this.logger.createContext("VideoPlayerModule"),this.audioPlayer,this.pool)}get volume(){return this.audioPlayer.volume}set volume(A){this.audioPlayer.volume=A}get muted(){return this.audioPlayer.muted}set muted(A){const e=this.muted;this.audioPlayer.muted=A,!A&&e&&this.activateAudioPlayer().catch(V)}get currentTime(){return this.audioPlayer.currentTime}set currentTime(A){this.audioPlayer.currentTime=A}get isActivated(){return this.audioPlayer.isActivated}set isActivated(A){this.audioPlayer.isActivated=A}get seekTime(){return this.audioPlayer.seekTime}get isPaused(){return this._isPaused}get isSeeking(){return this.audioPlayer.isSeeking}get audioNode(){return this.audioPlayer.audioNode}play(){this.activateAudioPlayer().then(()=>{this.emitter.emit("media element state","playing")}).catch(()=>{this.emitter.emit("needs user input",{forAudio:!0,forVideo:!1})})}pause(){this._isPaused=!0,this.audioPlayer.pause(),this.emitter.emit("media element state","paused")}};i(ts,"create",(A,e,t,B,F)=>new ts(A,e,t,B,F));let Sa=ts;const Qs=class Qs{constructor(A,e,t,B,{muted:F,type:n,poster:s}){i(this,"logger");i(this,"emitter");i(this,"mediaElement");i(this,"audioPlayer");i(this,"videoPlayer");i(this,"pool");i(this,"isDisconnected",!0);i(this,"_userProvidedMuted",!1);i(this,"timers",new pA);i(this,"volumeState");i(this,"textTracks",new Yl);i(this,"reset",()=>{});i(this,"load",()=>{this.mediaElement.load(),this.emitter.on("decoded frame",this.onDecodedFrame),this.emitter.on("flush buffers",this.flushBuffers),this.emitter.on("ios-hack: reset size",this.resetCanvasSize),this.emitter.on("enter picture in picture",this.onEnterIOSHack),this.emitter.on("exit picture in picture",this.onExitIOSHack),this.element().element.addEventListener("webkitendfullscreen",this.onExitIOSHack),this.element().element.addEventListener("webkitbeginfullscreen",this.onEnterIOSHack),this.videoPlayer.load(),this.timers.setInterval(()=>{if(!this.textTracks.language)return;const A=this.textTracks.getActiveCues(this.currentTime/1e3);this.videoPlayer.setActiveCues(A,{width:this.mediaElement.element.clientWidth,height:this.mediaElement.element.clientHeight})},100)});i(this,"unload",()=>{this.emitter.off("decoded frame",this.onDecodedFrame),this.emitter.off("flush buffers",this.flushBuffers),this.emitter.off("ios-hack: reset size",this.resetCanvasSize),this.emitter.off("enter picture in picture",this.onEnterIOSHack),this.emitter.off("exit picture in picture",this.onExitIOSHack),this.element().element.removeEventListener("webkitendfullscreen",this.onExitIOSHack),this.element().element.removeEventListener("webkitbeginfullscreen",this.onEnterIOSHack),this.mediaElement.unload(),this.timers.unload(),this.audioPlayer.unload(),this.videoPlayer.unload()});i(this,"suspend",()=>{this.videoPlayer.suspend(),this.audioPlayer.suspend()});i(this,"unsuspend",()=>{this.videoPlayer.unsuspend(),this.audioPlayer.unsuspend()});i(this,"element",()=>this.mediaElement);i(this,"getStatistics",()=>this.videoPlayer.getStatistics());i(this,"activateAudioPlayer",()=>(this.isDisconnected&&this.connectStreams(),this.audioPlayer.play()));i(this,"flushBuffers",()=>{this.audioPlayer.flushBuffer()});i(this,"resetCanvasSize",()=>{this.videoPlayer.resetSize()});i(this,"onEnterIOSHack",()=>{this.mediaElement._iosHackEnterPiPMode()});i(this,"onExitIOSHack",()=>{this.mediaElement._iosHackExitPiPMode()});i(this,"onDecodedFrame",A=>{try{this.audioPlayer.onDecodedFrame(A)}catch(e){e instanceof Error&&this.emitter.emit("error",xo(!1,e))}this.videoPlayer.onDecodedFrame(A)});i(this,"connectStreams",()=>{const A=this.videoPlayer.element().captureStream(),e=this.audioPlayer.useMediaStreamDestination().stream,t=[];t.push(...A.getTracks(),...e.getTracks()),this.mediaElement.element.srcObject=new MediaStream(t),this.isDisconnected=!1});i(this,"updateVolumeState",()=>{const A={isMuted:this.muted,volume:this.volume};Gt(A,this.volumeState)||(this.volumeState=A,this.emitter.emit("volume state",this.volumeState))});this.logger=e,this.emitter=A,this.pool=t,this._userProvidedMuted=F,this.mediaElement=new Ys({poster:s,type:n,muted:F,autoplay:!1,logger:this.logger.createContext("MediaElement")}),this.mediaElement.on("volume state",a=>{this.updateVolumeState(),!a.isMuted&&!this.audioPlayer.isContextRunning&&this.activateAudioPlayer().catch(V),a.isMuted||(this._userProvidedMuted=!1)}),this.mediaElement.on("media element state",a=>{a==="paused"&&this.audioPlayer.flushBuffer(),this.emitter.emit("media element state",a)}),this.audioPlayer=sn.create(this.logger.createContext("AudioPlayerModule"),B,{muted:!1,reInitWhenStuck:!1}),this.audioPlayer.on("stuck",()=>{this.isDisconnected=!0}),this.audioPlayer.on("state change",a=>{a==="suspended"||a==="interrupted"?this.mediaElement.muted=!0:a==="running"&&(this.mediaElement.muted=this._userProvidedMuted||document.visibilityState==="hidden"),this.updateVolumeState()}),this.videoPlayer=an.create(this.logger.createContext("VideoPlayerModule"),this.audioPlayer,this.pool,this.mediaElement.element),this.volumeState={volume:this.volume,isMuted:this.muted}}get volume(){return this.mediaElement.volume}set volume(A){this.mediaElement.volume=A}get muted(){return this.mediaElement.muted||this.audioPlayer.muted}set muted(A){const e=this.muted;this._userProvidedMuted=A,this.mediaElement.muted=A,!A&&e&&this.activateAudioPlayer().catch(V)}get currentTime(){return this.audioPlayer.currentTime}set currentTime(A){this.audioPlayer.currentTime=A}get isActivated(){return this.mediaElement.isActivated}set isActivated(A){this.mediaElement.isActivated=A}get seekTime(){return this.mediaElement.seekTime}get isPaused(){return this.mediaElement.isPaused}get isSeeking(){return this.mediaElement.isSeeking}get audioNode(){return this.audioPlayer.audioNode}play(){const A=this._userProvidedMuted;return this.activateAudioPlayer().catch(()=>{A||this.emitter.emit("needs user input",{forAudio:!0,forVideo:!1})}),this.mediaElement.play()}pause(){this.mediaElement.pause()}};i(Qs,"create",(A,e,t,B,F)=>new Qs(A,e,t,B,F));let Ja=Qs;const iC=()=>Q=>jl(Q.buffered.start(0),Q.buffered.end(Q.buffered.length-1)),jl=(Q,A)=>e=>e.remove(Math.max(0,Q),Math.min(Number.POSITIVE_INFINITY,A)),ql=Q=>A=>A.appendBuffer(Q),BC=Q=>A=>A.changeType(Q),UC=Q=>A=>Q(A);class FC{constructor(A){i(this,"commandQueue",[]);i(this,"sourceBuffer");i(this,"currentInit");i(this,"handleQueue",()=>{var A;this.sourceBuffer.updating||(A=this.commandQueue.shift())==null||A.execute(this.sourceBuffer)});i(this,"appendBuffer",(A,e)=>new Promise((t,B)=>{if(e&&this.currentInit!==e){const n=new xQ(ql(e),t,B);this.commandQueue.push(n),this.currentInit=e}const F=new xQ(ql(A),t,B);this.commandQueue.push(F),this.handleQueue()}));i(this,"execute",A=>new Promise((e,t)=>{const B=new xQ(UC(A),e,t);this.commandQueue.push(B),this.handleQueue()}));i(this,"buffered",()=>this.sourceBuffer.buffered);i(this,"removeFromMediaSource",A=>{A.removeSourceBuffer(this.sourceBuffer)});i(this,"changeType",A=>new Promise((e,t)=>{const B=new xQ(BC(A),e,t);this.commandQueue.push(B),this.handleQueue()}));i(this,"removeBuffer",(A,e)=>new Promise((t,B)=>{const F=new xQ(jl(A,e),t,B);this.commandQueue.push(F),this.handleQueue()}));i(this,"flush",()=>new Promise((A,e)=>{const t=new xQ(iC,A,e);this.commandQueue.push(t),this.handleQueue()}));this.sourceBuffer=A,this.sourceBuffer.addEventListener("updateend",this.handleQueue)}}class _l extends $A{constructor(){super();i(this,"MediaSource",ae());i(this,"mediaSource",new this.MediaSource);i(this,"isOpen",()=>this.mediaSource.readyState==="open");i(this,"isClosed",()=>this.mediaSource.readyState==="closed");i(this,"isEnded",()=>this.mediaSource.readyState==="ended");i(this,"createObjectURL",()=>URL.createObjectURL(this.mediaSource));i(this,"attach",e=>{const t=e;if("srcObject"in t)try{t.srcObject=this.mediaSource}catch(B){if(B instanceof Error&&B.name!=="TypeError")throw B;t.src=this.createObjectURL()}else e.src=this.createObjectURL()});i(this,"detach",e=>{if(this.mediaSource&&this.mediaSource.readyState==="open")try{this.mediaSource.endOfStream()}catch(t){}e.srcObject&&(e.srcObject=null),e.src!==""&&(URL.revokeObjectURL(e.src),e.removeAttribute("src")),e.load()});i(this,"addSourceBuffer",e=>{const t=this.mediaSource.addSourceBuffer(e);return new FC(t)});i(this,"removeSourceBuffer",e=>{e.removeFromMediaSource(this.mediaSource)});i(this,"endOfStream",e=>{this.mediaSource.endOfStream(e)});i(this,"onSourceOpen",()=>{this.setDurationIfNeeded(),this.emit("source open")});i(this,"onSourceEnded",()=>this.emit("source ended"));i(this,"onSourceClosed",()=>this.emit("source close"));i(this,"setDurationIfNeeded",()=>{if(Number.isNaN(this.mediaSource.duration)&&this.mediaSource.readyState==="open"){for(let e=0;e<this.mediaSource.sourceBuffers.length;e++){const t=this.mediaSource.sourceBuffers[e];if(t!=null&&t.updating)return}this.mediaSource.duration=Number.POSITIVE_INFINITY}});this.mediaSource.addEventListener("sourceopen",this.onSourceOpen),this.mediaSource.addEventListener("sourceclose",this.onSourceClosed),this.mediaSource.addEventListener("sourceended",this.onSourceEnded)}}i(_l,"isTypeSupported",e=>{var t,B;return(B=(t=ae())==null?void 0:t.isTypeSupported(e))!=null?B:!1});class $l{constructor(){i(this,"initSegments",new Map);i(this,"set",(A,e,t)=>{var F;const B=(F=this.initSegments.get(A))!=null?F:new Map;B.set(e,t),this.initSegments.set(A,B)});i(this,"get",(A,e)=>{var t;return(t=this.initSegments.get(A))==null?void 0:t.get(e)})}}function nC(Q,{mediaSource:A,mimeType:e,codec:t}){return O(S({},Q),{state:"initialized",mimeType:e,codec:t,sourceBuffer:A.addSourceBuffer(e),isWorkingOnPendingSamples:!1,sequenceNumber:0,lastBufferCleanupTime:Date.now()})}function Ar({initSegments:Q,pendingSamples:A}){return{state:"uninitialized",initSegments:Q!=null?Q:new $l,sequenceNumber:0,isWorkingOnPendingSamples:!1,hasFirstSync:!!A,pendingSamples:A!=null?A:[],consecutiveQuotaExceededErrorCount:0,successfulAppendCalls:0}}const is=class is{constructor(A,e,t){i(this,"maxChunkSize",20);i(this,"minConsecutiveErrorsBeforeEmit",5);i(this,"maxSecondsInBuffer",60);i(this,"logger");i(this,"timers",pA.create());i(this,"emitter");i(this,"mediaElement");i(this,"mediaSource",new _l);i(this,"trackContexts",new Map);i(this,"autoRecoverFromMediaErrors",!0);i(this,"quotaErrorCount",0);i(this,"recoveredFromErrorCount",0);i(this,"sourceOpenStartTime",Date.now());i(this,"sourceOpenEndTime",Date.now());i(this,"pendingTracksToAddSourceBuffers");i(this,"hasAddedInitialPosterFrame",!0);i(this,"load",()=>{this.emitter.on("init segment",this.init),this.emitter.on("coded sample",this.onCodedSample),this.emitter.on("flush buffers",this.flushBuffers),this.emitter.on("fragment",this.onFragment)});i(this,"unload",()=>{this.logger.debug("Unloading module..."),this.emitter.off("init segment",this.init),this.emitter.off("coded sample",this.onCodedSample),this.emitter.off("flush buffers",this.flushBuffers),this.emitter.off("fragment",this.onFragment),this.mediaSource.off("source ended",this.onSourceEnded),this.mediaSource.off("source open",this.onSourceOpen),this.mediaSource.detach(this.mediaElement),this.trackContexts.forEach(A=>A.pendingSamples=[]),this.timers.unload(),this.logger.debug("Unloaded module")});i(this,"getStatistics",()=>{var e,t,B,F;const A={quotaErrorCount:this.quotaErrorCount,mediaSourceOpenTime:this.sourceOpenEndTime-this.sourceOpenStartTime,successfulAudioAppendsCalls:(e=this.trackContexts.get("audio"))==null?void 0:e.successfulAppendCalls,successfulVideoAppendCalls:(t=this.trackContexts.get("video"))==null?void 0:t.successfulAppendCalls};if(this.mediaElement instanceof HTMLVideoElement){const n=(F=(B=this.mediaElement).getVideoPlaybackQuality)==null?void 0:F.call(B);A.totalVideoFrames=n==null?void 0:n.totalVideoFrames,A.droppedVideoFrames=n==null?void 0:n.droppedVideoFrames}return A});i(this,"flushBuffers",()=>{this.trackContexts.forEach(A=>{A.pendingSamples=[],A.hasFirstSync=!1,A.state!=="uninitialized"&&this.mediaSource.isOpen()&&A.sourceBuffer.removeBuffer(0,Number.POSITIVE_INFINITY).catch(e=>{this.logger.error("Failed to remove buffer",e)})})});i(this,"setTrackContexts",(A=new Map)=>{this.logger.debug("setTrackContexts"),["audio","video"].forEach(t=>{var n,s,a,r;const B=(s=(n=A.get(t))==null?void 0:n.pendingSamples)!=null?s:[],F=(a=A.get(t))==null?void 0:a.initSegments;for(;B.length>0&&!((r=B[0])!=null&&r.isSync);)B.shift();this.trackContexts.set(t,Ar({pendingSamples:B,initSegments:F}))})});i(this,"setSourceBuffers",A=>d(this,null,function*(){if(this.mediaSource.isClosed()){this.pendingTracksToAddSourceBuffers=A;return}let e=!0;for(const t of A){const B=this.trackContexts.get(t.type);if(!B||B.state==="uninitialized"||B.mimeType!==t.mimeType){e=!1;break}}if(e){this.logger.debug("Already setup with the correct mime types");return}for(const t of A){let B=this.trackContexts.get(t.type);B||(B=Ar({pendingSamples:[],initSegments:new $l}),this.trackContexts.set(t.type,B)),B.state==="initialized"?t.mimeType!==B.mimeType&&(yield B.sourceBuffer.changeType(t.mimeType)):this.trackContexts.set(t.type,nC(B,{mimeType:t.mimeType,mediaSource:this.mediaSource,codec:t.codec}))}}));i(this,"getBuffer",A=>{const e=[];if(this.mediaSource.isClosed())return[];const t=this.trackContexts.get(A);if(!t||t.state==="uninitialized")return[];try{const B=t.sourceBuffer.buffered();if(!B)return[];for(let F=0;F<B.length;F++)e.push({start:B.start(F)*1e3,end:B.end(F)*1e3});return e}catch(B){return[]}});i(this,"init",({initSegment:A,mimeType:e})=>{this.logger.debug("Added init segment",{channel:A.channelId,renditionId:A.renditionId});const t=this.trackContexts.get(A.type);if(!t)throw kF(A.type,A.renditionId);t.state==="initialized"&&(t.mimeType=e);const B=QI(A.codec,A.data,A.timescale);B&&t.initSegments.set(A.channelId,A.renditionId,new Uint8Array(B))});i(this,"append",(A,e)=>d(this,null,function*(){var s;const t=A[0];if(!t)return;const B=this.trackContexts.get(t.type),F=B==null?void 0:B.initSegments.get(t.channelId,t.renditionId);if(this.mediaSource.isClosed())return;if(!F)throw lE(t.renditionId,t.channelId);if(!B)throw kF(t.type,t.renditionId);if(B.state==="uninitialized")throw rE(t.type,t.renditionId);if(e){const a=(t.timestamp+((s=t.compositionTimeOffset)!=null?s:0))/t.timescale;yield B.sourceBuffer.removeBuffer(a,Number.POSITIVE_INFINITY);const r=B.previousSample;if(r&&r.codec!==t.codec&&B.sourceBuffer.changeType)try{yield B.sourceBuffer.changeType(B.mimeType)}catch(E){}"fragmented"in t||(yield B.sourceBuffer.appendBuffer(F))}const n=Math.max(0,t.timestamp/t.timescale-this.maxSecondsInBuffer);n>0&&Date.now()-B.lastBufferCleanupTime>1e4&&(B.lastBufferCleanupTime=Date.now(),yield B.sourceBuffer.removeBuffer(0,n+10));try{let a=B.sequenceNumber;if("fragmented"in t)for(const r of A)"initData"in r&&(yield B.sourceBuffer.appendBuffer(r.data,r.initData));else{const r=sI(A,a++);yield B.sourceBuffer.appendBuffer(r)}B.sequenceNumber=a,B.consecutiveQuotaExceededErrorCount=0,B.successfulAppendCalls++}catch(a){throw a instanceof DOMException&&(a.code===DOMException.QUOTA_EXCEEDED_ERR?(this.quotaErrorCount++,B.consecutiveQuotaExceededErrorCount++,this.logger.error("quota exceeded error",{error:a}),B.pendingSamples.unshift(...A)):this.mediaElement.error&&B.pendingSamples.unshift(...A)),a}}));i(this,"onFragment",({fragment:A,mimeType:e,codec:t,channelId:B,renditionId:F})=>{const n=A.mediaType(),s=A.rawBytes(),a=A.header().rawBytes(),r=A.baseMediaDecodeTime(),E=A.timescale(),g=A.duration(),c=n==="video"?A.startsWithKeyframe():!0,J=A.compositionTimeOffset(0);if(n==="text"){this.logger.warn("Skipping unexpected text fragment");return}if(!t){this.logger.warn("Skipping fragment with no codec");return}const u=this.trackContexts.get(n);if(!u)throw kF(n);u.state==="initialized"&&e&&(u.mimeType=e,u.initSegments.set(B,F,a));const D={fragmented:!0,type:n,data:s,initData:a,timestamp:r,duration:g,timescale:E,channelId:B,renditionId:F,isSync:c,codec:t,fragment:A,compositionTimeOffset:J};this.onCodedSample(D)});i(this,"onCodedSample",A=>{if(A.duration===0)return;const e=this.trackContexts.get(A.type);if(!e)throw kF(A.type,A.renditionId);if(!(!e.hasFirstSync&&!A.isSync)){if(this.hasAddedInitialPosterFrame&&A.isSync&&A.type==="video"){this.hasAddedInitialPosterFrame=!1;const t=S({},A);"fragment"in t?(t.fragment=t.fragment.clone(),t.fragment.updateBaseMediaDecodeTime(0),t.data=t.fragment.rawBytes()):t.timestamp=0,e.pendingSamples.push(t)}e.hasFirstSync=!0,e.pendingSamples.push(A),e.state!=="uninitialized"&&(e.isWorkingOnPendingSamples||sC(e,this.append,this.maxChunkSize).catch(t=>{if(e.isWorkingOnPendingSamples=!1,t instanceof Error){if(this.logger.error("append failed",{message:t.message,name:t.name}),t instanceof DOMException&&t.code===DOMException.QUOTA_EXCEEDED_ERR){if(e.consecutiveQuotaExceededErrorCount>=this.minConsecutiveErrorsBeforeEmit){const B=Xo(!1,t,e.consecutiveQuotaExceededErrorCount,A.type);this.emitter.emit("error",B)}}else{const B=Xo(!1,t,e.consecutiveQuotaExceededErrorCount,A.type);this.emitter.emit("error",B)}this.mediaElement.error&&this.onSourceEnded()}}))}});i(this,"onSourceOpen",()=>{this.logger.debug("source opened"),this.sourceOpenEndTime=Date.now(),this.pendingTracksToAddSourceBuffers&&(this.setSourceBuffers(this.pendingTracksToAddSourceBuffers),this.pendingTracksToAddSourceBuffers=void 0)});i(this,"onSourceEnded",()=>{const{error:A}=this.mediaElement;if(A){const e=/AUDIO_RENDERER/.test(A.message)||!this.autoRecoverFromMediaErrors,t=oE(e,A);if(this.logger.error("MediaElement error",{error:t}),this.emitter.emit("error",t),!t.isFatal()){this.logger.info("Re-opening MediaSource"),this.emitter.emit("recovered from media error",{error:t,count:this.recoveredFromErrorCount}),this.recoveredFromErrorCount++;const B=!this.mediaElement.paused,F=[];this.trackContexts.forEach((n,s)=>{n.state==="initialized"&&F.push({type:s,mimeType:n.mimeType,codec:n.codec})}),this.sourceOpenStartTime=Date.now(),this.pendingTracksToAddSourceBuffers=F,this.mediaElement.src="",this.setTrackContexts(this.trackContexts),this.mediaSource.attach(this.mediaElement),B&&this.mediaElement.play().catch(V)}}this.logger.debug("source ended")});this.logger=A,this.mediaElement=t,this.emitter=e}};i(is,"create",(A,e,t)=>{const B=new is(A,e,t);return B.setTrackContexts(),B.mediaSource.on("source ended",B.onSourceEnded),B.mediaSource.on("source open",B.onSourceOpen),B.mediaSource.attach(t),B});let Va=is;const er=(Q,A)=>{var s;const e=Q.renditionId!==A.renditionId,t=Q.channelId!==A.channelId,B=((s=Q.timestamp)!=null?s:0)>A.timestamp,F=Q.type==="video"&&A.type==="video"&&"levelIdc"in Q&&"levelIdc"in A&&Q.levelIdc!==A.levelIdc;let n=!1;return Q.type==="video"&&A.type==="video"&&"width"in Q&&"width"in A&&(n=A.width!==Q.width||A.height!==Q.height),t||e||B||n||F},sC=(Q,A,e)=>d(this,null,function*(){for(Q.isWorkingOnPendingSamples=!0;Q.pendingSamples.length>0;){const t=[];let B=0;for(let s=0;s<Q.pendingSamples.length;s++){B=s;const a=Q.pendingSamples[s],r=Q.pendingSamples[s+1];if(a&&(t.push(a),r)){if(er(a,r))break;const E=(a.timestamp+a.duration)/a.timescale;if(r.timestamp/r.timescale-E>.1)break}if(s===e-1)break}const F=t[0];if(!F)break;const n=Q.previousSample?er(Q.previousSample,F):!0;yield A(t,n),Q.pendingSamples=Q.pendingSamples.slice(B+1),Q.previousSample=t[t.length-1]}Q.isWorkingOnPendingSamples=!1}),Bs=class Bs{constructor(A,e){i(this,"logger");i(this,"emitter");i(this,"element");i(this,"pictureInPictureWindow");i(this,"unload",()=>{this.emitter.off("add picture in picture listener",this.onEnablePictureInPicture)});i(this,"onEnablePictureInPicture",A=>{this.element=A.element,A.element.addEventListener("leavepictureinpicture",()=>{this.pictureInPictureWindow=void 0,this.logger.debug("Leave picture in picture"),this.emitter.emit("exit picture in picture")}),A.element.addEventListener("enterpictureinpicture",e=>{this.pictureInPictureWindow=e.pictureInPictureWindow,this.logger.debug("Enter picture in picture"),this.emitter.emit("enter picture in picture",this)}),A.element.autopictureinpicture=!0});i(this,"getPictureInPictureSize",()=>this.pictureInPictureWindow);i(this,"isPictureInPictureActive",()=>this.isWebkitPresentationModeActive()||this.isStandardPictureInPictureActive());i(this,"isPictureInPictureSupported",()=>this.isWebkitPresentationModeSupported()||this.isStandardPictureInPictureSupported());i(this,"requestPictureInPicture",()=>(this.emitter.emit("ios-hack: reset size"),this.isStandardPictureInPictureSupported()?this.requestStandardPictureInPicture():this.isWebkitPresentationModeSupported()?this.requestWebkitPresentationMode("picture-in-picture"):Promise.reject(new Error("Picture in picture is not supported"))));i(this,"exitPictureInPicture",()=>this.isStandardPictureInPictureSupported()?this.exitStandardPictureInPicture():this.isWebkitPresentationModeSupported()?this.requestWebkitPresentationMode("inline"):Promise.reject(new Error("Picture in picture is not supported")));i(this,"getStatistics",()=>({isPictureInPictureActive:this.isPictureInPictureActive()}));i(this,"requestStandardPictureInPicture",()=>d(this,null,function*(){return yield this.element.requestPictureInPicture()}));i(this,"exitStandardPictureInPicture",()=>d(this,null,function*(){return yield document.exitPictureInPicture()}));i(this,"isStandardPictureInPictureSupported",()=>!!this.element&&!!this.element.requestPictureInPicture&&!!document.pictureInPictureEnabled);i(this,"isStandardPictureInPictureActive",()=>!!this.element&&!!document.pictureInPictureElement);i(this,"isWebkitPresentationModeActive",()=>!!this.element&&this.element.webkitPresentationMode==="picture-in-picture");i(this,"requestWebkitPresentationMode",A=>d(this,null,function*(){return this.element.webkitSetPresentationMode(A),Promise.resolve()}));i(this,"isWebkitPresentationModeSupported",()=>!!this.element&&!!this.element.webkitSetPresentationMode);this.emitter=A,this.logger=e,this.emitter.on("add picture in picture listener",this.onEnablePictureInPicture)}};i(Bs,"create",(A,e)=>new Bs(A,e));let ua=Bs;const Us=class Us{constructor(A,e,t,B){i(this,"emitter");i(this,"logger");i(this,"clockSource");i(this,"state","buffering");i(this,"bufferFullness",0);i(this,"targetBufferTime");i(this,"lastBufferStateEvent","drained");i(this,"firstFrameTime");i(this,"currentTimeIsInRange",!1);i(this,"needsInputForAudioCount",0);i(this,"needsInputForVideoCount",0);i(this,"unload",()=>{this.emitter.off("buffer state",this.onBufferedStateChanged),this.emitter.off("needs user input",this.onNeedsUserInput)});i(this,"setTargetBufferTime",A=>void(this.targetBufferTime=A));i(this,"getTargetBufferTime",()=>this.targetBufferTime);i(this,"getBufferFullness",()=>this.bufferFullness);i(this,"getLastBufferStateEvent",()=>this.lastBufferStateEvent);i(this,"getState",()=>this.state);i(this,"getFirstFrameTime",()=>this.firstFrameTime);i(this,"getStatistics",()=>({bufferTime:this.targetBufferTime,needsInputForAudioCount:this.needsInputForAudioCount,needsInputForVideoCount:this.needsInputForVideoCount}));i(this,"onBufferedStateChanged",({buffered:A,isPaused:e})=>{const t=this.clockSource.currentTime,B=A.some(E=>E.start<t&&t<E.end),F=A[A.length-1],n=F?F.end-F.start>=this.targetBufferTime:!1,s=F?Math.max(0,F.end-t)/this.targetBufferTime:0,a=e?"paused":B?"playing":"buffering",r=this.state;this.currentTimeIsInRange!==B&&!B?(this.lastBufferStateEvent="drained",this.emitter.emit("buffer state event",this.lastBufferStateEvent)):B&&n&&this.lastBufferStateEvent==="drained"&&(this.lastBufferStateEvent="filled",this.emitter.emit("buffer state event",this.lastBufferStateEvent)),a==="playing"&&!this.firstFrameTime&&(this.firstFrameTime=Date.now()),this.currentTimeIsInRange=B,this.state=a,this.bufferFullness=B?s:0,r!==a&&this.emitter.emit("playback state",a),this.emitter.emit("buffer fullness",this.bufferFullness)});i(this,"onNeedsUserInput",({forAudio:A,forVideo:e})=>{A&&this.needsInputForAudioCount++,e&&this.needsInputForVideoCount++});this.emitter=A,this.logger=e,this.clockSource=t,this.targetBufferTime=B,this.emitter.on("buffer state",this.onBufferedStateChanged),this.emitter.on("needs user input",this.onNeedsUserInput)}};i(Us,"create",(A,e,t,B)=>new Us(A,e,t,B));let ka=Us;const Na=()=>({upgradesFromLevel:[],downgradesFromLevel:[],bufferingRanges:[],activeRanges:[],decodeRate:Number.MAX_SAFE_INTEGER}),aC=()=>({levels:{},levelDowngrades:[],levelUpgrades:[],bufferFullness:0,general:Na()}),Fs=class Fs{constructor(A,e){i(this,"minBufferFullnessLengthForRegression",6);i(this,"logger");i(this,"emitter");i(this,"timers",pA.create());i(this,"metrics",aC());i(this,"bufferFullness",new w(30));i(this,"bufferFullnessRegression");i(this,"currentLevel");i(this,"isSuspended",!1);i(this,"_fatalQosCount",0);i(this,"hasAsserted",!1);i(this,"load",()=>{this.emitter.on("playback state",this.onPlaybackState),this.emitter.on("buffer fullness",this.onBufferFullness),this.emitter.on("rendition level changed",this.onRenditionLevelChanged),this.emitter.on("video decode rate",this.onVideoDecodeRate)});i(this,"unload",()=>{this.emitter.off("playback state",this.onPlaybackState),this.emitter.off("buffer fullness",this.onBufferFullness),this.emitter.off("rendition level changed",this.onRenditionLevelChanged),this.emitter.off("video decode rate",this.onVideoDecodeRate),this.suspend()});i(this,"suspend",()=>{this.isSuspended=!0,this.timers.unload(),this.stopBuffering(),this.unsetActive()});i(this,"unsuspend",()=>{this.isSuspended=!1,this.currentLevel&&this.setActive()});i(this,"fatalQosGraceTime",()=>1e4*(this.fatalQosCount+1));i(this,"incrementFatalQosCount",()=>{this._fatalQosCount++});i(this,"getMetrics",()=>this.metrics);i(this,"getLevelStats",A=>{var t,B,F,n;const e=((B=(t=A.video)==null?void 0:t.bitRate)!=null?B:0)+((n=(F=A.audio)==null?void 0:F.bitRate)!=null?n:0);return this.metrics.levels[e]});i(this,"getBufferFullnessRegression",()=>this.bufferFullnessRegression);i(this,"activeRatios",()=>{const A=new Map,e=OQ(this.metrics.general.activeRanges);if(Object.entries(this.metrics.levels).forEach(([t,B])=>{A.set(t,e?OQ(B.activeRanges)/e:0)}),!this.hasAsserted){const t=A.size?Math.abs(Array.from(A.values()).reduce((B,F)=>B+F,0)-1)<=.02:!0;t||(this.hasAsserted=!0,console.assert(t,`Active ratios should be close to 1 - actual: ${Array.from(A.values()).reduce((B,F)=>B+F,0)}`))}return A});i(this,"bufferingRatios",()=>{const A=new Map,e=OQ(this.metrics.general.bufferingRanges);if(Object.entries(this.metrics.levels).forEach(([t,B])=>{A.set(t,e?OQ(B.bufferingRanges)/e:0)}),!this.hasAsserted){const t=Array.from(A.values()).reduce((B,F)=>B+F,0)<=1;t||(this.hasAsserted=!0,console.assert(t,`Buffering ratios should be less than 1 - actual: ${Array.from(A.values()).reduce((B,F)=>B+F,0)}`))}return A});i(this,"bufferingEventsLast",A=>this.metrics.general.bufferingRanges.filter(e=>e.start>=Date.now()-A).length);i(this,"timeSpentBufferingLast",A=>Jo(this.metrics.general.bufferingRanges,A));i(this,"timeSpentActiveLast",A=>Jo(this.metrics.general.activeRanges,A));i(this,"timeSpentPlayingInAtLeastLevelRatio",A=>{var a,r,E,g;const e=this.timeSpentBuffering(),t=this.timeActive(),B=this.bufferingRatios(),F=this.activeRatios(),n=((r=(a=A.video)==null?void 0:a.bitRate)!=null?r:0)+((g=(E=A.audio)==null?void 0:E.bitRate)!=null?g:0),s=e/t;return Object.keys(this.metrics.levels).map(c=>parseInt(c,10)).filter(c=>c>=n).reduce((c,J)=>{var u,D;return((u=F.get(J.toString()))!=null?u:0)-((D=B.get(J.toString()))!=null?D:0)*s+c},0)});i(this,"timeSpentBuffering",()=>OQ(this.metrics.general.bufferingRanges));i(this,"timeActive",()=>OQ(this.metrics.general.activeRanges));i(this,"getStatistics",()=>({timeSpentBuffering:this.timeSpentBuffering(),bufferingEventsCount:this.metrics.general.bufferingRanges.length,timeSpentRatio:[...this.activeRatios()].reduce((A,[e,t])=>(A[e]=t,A),{}),fatalQosCount:this.fatalQosCount}));i(this,"onRenditionLevelChanged",A=>{var F,n,s,a,r,E,g,c,J,u,D,T,L,Z;const e=((s=(n=(F=A.from)==null?void 0:F.video)==null?void 0:n.bitRate)!=null?s:0)+((E=(r=(a=A.from)==null?void 0:a.audio)==null?void 0:r.bitRate)!=null?E:0),t=((J=(c=(g=A.to)==null?void 0:g.video)==null?void 0:c.bitRate)!=null?J:0)+((T=(D=(u=A.to)==null?void 0:u.audio)==null?void 0:D.bitRate)!=null?T:0);this.logger.info("rendition level changed",{fromLevel:e,toLevel:t}),this.metrics.general.activeRanges.length===0&&this.setActive(),A.from&&A.to&&(e<t?this.metrics.general.upgradesFromLevel.push(Date.now()):this.metrics.general.downgradesFromLevel.push(Date.now()));let B=!1;if(A.from){const M=(L=this.metrics.levels[e])!=null?L:Na();e<t?M.upgradesFromLevel.push(Date.now()):M.downgradesFromLevel.push(Date.now()),Mt(M.activeRanges);const H=M.bufferingRanges[M.bufferingRanges.length-1];B=!!H&&!H.end,Mt(M.bufferingRanges),this.metrics.levels[e]=M}if(A.to){const M=(Z=this.metrics.levels[t])!=null?Z:Na();KQ(M.activeRanges),B&&KQ(M.bufferingRanges),this.metrics.levels[t]=M,this.currentLevel=t}});i(this,"onBufferFullness",A=>{this.bufferFullness.push(A),this.metrics.bufferFullness=A,this.bufferFullness.items().length>=this.minBufferFullnessLengthForRegression&&(this.bufferFullnessRegression=this.calculateLinearRegression())});i(this,"onPlaybackState",A=>{switch(this.logger.info("Playback state",{state:A,currentLevel:this.currentLevel}),A){case"playing":this.stopBuffering();break;case"buffering":this.isSuspended||this.startBuffering();break}});i(this,"onVideoDecodeRate",A=>{var t;if(this.metrics.general.decodeRate=A,!this.currentLevel)return;const e=this.metrics.levels[(t=this.currentLevel)!=null?t:0];e&&(e.decodeRate=A)});i(this,"calculateLinearRegression",()=>Md(this.bufferFullness.items().map((A,e)=>({x:e,y:A}))));i(this,"stopBuffering",()=>{if(this.currentLevel){const A=this.metrics.levels[this.currentLevel];A&&Mt(A.bufferingRanges)}Mt(this.metrics.general.bufferingRanges)});i(this,"startBuffering",()=>{if(this.currentLevel){const A=this.metrics.levels[this.currentLevel];A&&KQ(A.bufferingRanges)}KQ(this.metrics.general.bufferingRanges)});i(this,"unsetActive",()=>{if(this.currentLevel){const A=this.metrics.levels[this.currentLevel];A&&Mt(A.activeRanges)}Mt(this.metrics.general.activeRanges)});this.logger=e,this.emitter=A}get fatalQosCount(){return this._fatalQosCount}setActive(){if(this.currentLevel){const A=this.metrics.levels[this.currentLevel];A&&KQ(A.activeRanges)}KQ(this.metrics.general.activeRanges)}};i(Fs,"create",(A,e)=>new Fs(A,e));let ma=Fs;const ns=class ns{constructor(A,e){i(this,"renditions",new Map);i(this,"renditionLevels",[]);i(this,"languages",[]);i(this,"emitter");i(this,"subscriptionSource");i(this,"renditionLevelChangeCount",0);i(this,"unload",()=>{this.emitter.off("renditions",this.onRenditions),this.emitter.off("subscription changed",this.onSubscriptionChanged)});i(this,"getRenditionLevels",A=>A?this.createRenditionLevels(A):this.renditionLevels);i(this,"getRenditionLevel",A=>{var s;const e=A!=null?A:this.getCurrentSubscription(),t=A?this.createRenditionLevels(A):this.renditionLevels;if(!e.video)return t.length?t[0]:void 0;const B=e.video.bitRate||Number.MAX_SAFE_INTEGER,F=e.video.width||Number.MAX_SAFE_INTEGER,n=e.video.height||Number.MAX_SAFE_INTEGER;return(s=t.filter(a=>a.video&&e.video?a.video.bitRate<=B&&a.video.width<=F&&a.video.height<=n:!0).pop())!=null?s:t[0]});i(this,"setRenditions",(A,e)=>{this.renditions.set(A,e)});i(this,"getLanguages",()=>this.languages);i(this,"getVideoRendition",(A,e=this.getCurrentSubscription().channelId)=>{const t=this.getRendition(A,e);if(t&&Lt(t))return t});i(this,"getAudioRenditions",A=>{const e=this.renditions.get(A);return e==null?void 0:e.filter(B=>Ht(B))});i(this,"getVideoRenditions",A=>{const e=this.renditions.get(A);return e==null?void 0:e.filter(B=>Lt(B))});i(this,"getAudioRendition",(A,e=this.getCurrentSubscription().channelId)=>{const t=this.getRendition(A,e);if(t&&Ht(t))return t});i(this,"getRendition",(A,e=this.getCurrentSubscription().channelId)=>{var t;return(t=this.renditions.get(e))==null?void 0:t.find(B=>B.id===A)});i(this,"getStatistics",()=>{var e,t,B,F,n,s,a,r,E,g;const A=this.getRenditionLevel();return{videoCodec:(e=A==null?void 0:A.video)==null?void 0:e.codec,audioCodec:(t=A==null?void 0:A.audio)==null?void 0:t.codec,videoRenditionId:(B=A==null?void 0:A.video)==null?void 0:B.id,audioRenditionId:(F=A==null?void 0:A.audio)==null?void 0:F.id,videoWidth:(n=A==null?void 0:A.video)==null?void 0:n.width,videoHeight:(s=A==null?void 0:A.video)==null?void 0:s.height,expectedVideoBitRate:(a=A==null?void 0:A.video)==null?void 0:a.bitRate,expectedAudioBitRate:(r=A==null?void 0:A.audio)==null?void 0:r.bitRate,frameRate:(E=A==null?void 0:A.video)==null?void 0:E.frameRate,language:(g=A==null?void 0:A.audio)==null?void 0:g.language,renditionLevelChangeCount:this.renditionLevelChangeCount}});i(this,"onRenditions",A=>{const e=this.subscriptionSource.getCurrentSubscription();this.renditions.set(A.channelId,A.renditions),this.updateRenditionLevels({to:e,from:e})});i(this,"onSubscriptionChanged",A=>{this.updateRenditionLevels(A)});i(this,"updateRenditionLevels",({to:A,from:e})=>{var r;const{channelId:t,initiator:B}=A,F=this.getRenditionLevel(e),n=new Set;((r=this.renditions.get(t))!=null?r:[]).filter(E=>E.codec!=="webvtt").forEach(E=>E.language?n.add(E.language):void 0),this.languages=Array.from(n),this.renditionLevels=this.createRenditionLevels(A);const a=this.getRenditionLevel(A);Gt(F,a)||(this.renditionLevelChangeCount++,this.emitter.emit("rendition level changed",{to:a,from:F,reason:B?"manual":"abr"}))});i(this,"createRenditionLevels",A=>{var E;const{video:e,audio:t,channelId:B}=A,F=(E=this.renditions.get(B))!=null?E:[],n=F.filter(Lt).filter(g=>e&&g.codec===e.codec),s=F.filter(Ht).filter(g=>t&&g.codec===t.codec&&g.language===t.language),a=Math.max(n.length,s.length),r=[];for(let g=0;g<a;g++){const c=n[Math.min(n.length-1,g)],J=s[Math.min(s.length-1,g)];r.push({audio:J,video:c})}return r});i(this,"getCurrentSubscription",()=>this.subscriptionSource.getCurrentSubscription());this.subscriptionSource=e,this.emitter=A,this.emitter.on("renditions",this.onRenditions),this.emitter.on("subscription changed",this.onSubscriptionChanged)}};i(ns,"create",(A,e)=>new ns(A,e));let Wa=ns;const VB=Q=>JSON.parse(JSON.stringify(Q)),oC=1e4,ss=class ss{constructor(A,e,t){i(this,"logger");i(this,"timers",new pA);i(this,"emitter");i(this,"targetSubscription");i(this,"currentSubscription");i(this,"_isSwitchingSubscription",!1);i(this,"pendingSubscriptionTimeoutId");i(this,"burstMs",0);i(this,"unload",()=>{this.logger.debug("Unloading module..."),this.timers.unload(),this.emitter.off("subscription changed",this.onSubscriptionChanged),this.logger.debug("Unloaded module")});i(this,"isSwitchingSubscription",()=>this._isSwitchingSubscription);i(this,"getTargetSubscription",()=>this.targetSubscription);i(this,"getCurrentSubscription",()=>this.currentSubscription);i(this,"enableBurst",A=>{this.burstMs=A});i(this,"setSize",A=>{this.targetSubscription.video.width=A.width,this.targetSubscription.video.height=A.height,this.scheduleSubscriptionChange()});i(this,"setVideoConstraint",A=>{this.targetSubscription.video=A,this.scheduleSubscriptionChange()});i(this,"setAudioConstraint",A=>{this.targetSubscription.audio=A,this.scheduleSubscriptionChange()});i(this,"setVideoBitRate",A=>{this.targetSubscription.video.bitRate=A,this.scheduleSubscriptionChange()});i(this,"setAudioBitRate",A=>{this.targetSubscription.audio.bitRate=A,this.scheduleSubscriptionChange()});i(this,"setChannelId",A=>{this.targetSubscription.channelId=A,this.scheduleSubscriptionChange()});i(this,"setLanguage",A=>{this.targetSubscription.audio.language=A,this.scheduleSubscriptionChange()});i(this,"setVideoCodec",A=>{this.targetSubscription.video.codec=A,this.scheduleSubscriptionChange()});i(this,"setAudioCodec",A=>{this.targetSubscription.audio.codec=A,this.scheduleSubscriptionChange()});i(this,"setBurst",A=>{A?this.targetSubscription.burstMs=A:delete this.targetSubscription.burstMs});i(this,"isNewSubscription",()=>{const A=["burstMs","meta","initiator","channelGroupId"];return!Gt(So(this.currentSubscription,A),So(this.targetSubscription,A))});i(this,"onSubscriptionChanged",({to:A,reset:e})=>{this.logger.debug("onSubscriptionChanged",{to:A,reset:e}),e?this.targetSubscription=VB(this.currentSubscription):this.currentSubscription=VB(A),this._isSwitchingSubscription=this.isNewSubscription()});i(this,"scheduleSubscriptionChange",()=>{this.targetSubscription=VB(this.targetSubscription),this._isSwitchingSubscription=this.isNewSubscription();const A=this.currentSubscription.channelId,e=this.targetSubscription.channelId,t=A!==e;this._isSwitchingSubscription&&(t&&this.burstMs?this.setBurst(this.burstMs):this.setBurst(0),this.pendingSubscriptionTimeoutId&&(this.timers.clearTimeout(this.pendingSubscriptionTimeoutId),this.pendingSubscriptionTimeoutId=void 0),t&&this.timers.setTimeout(()=>{this.currentSubscription.channelId===A&&this.targetSubscription.channelId===e&&(this.logger.warn("Channel switch timeout",e),this.targetSubscription=VB(this.currentSubscription),this.emitter.emit("channel switch timeout",e))},oC),this.pendingSubscriptionTimeoutId=this.timers.setTimeout(()=>this.emitter.emit("send signal",{type:"subscribe",subscription:this.getTargetSubscription()}),0))});this.logger=A,this.targetSubscription=e,this.currentSubscription=VB(e),this.emitter=t,this.emitter.on("subscription changed",this.onSubscriptionChanged)}};i(ss,"create",(A,e,t)=>new ss(A,t,e));let pa=ss;const tr=5e3,lC=()=>HQ()||kA()||OA(),Qr=()=>lC()?100:0,ir=Q=>A=>A>Q,as=class as{constructor(A,e,t,B,F){i(this,"emitter");i(this,"logger");i(this,"playbackSource");i(this,"bufferSource");i(this,"keyframeTimestamps",new w(10));i(this,"lastSeekTime",Date.now());i(this,"seekCooldownTime",1e3);i(this,"seekTimeoutTime",5e3);i(this,"seekKeyframeOvershoot",50);i(this,"syncMaxBehind");i(this,"syncMaxBehindMultiplierStep",1);i(this,"syncMaxBehindIncreaseEvery",2);i(this,"syncMaxBehindMaximumAllowed",2e3);i(this,"syncMaxBehindMultiplier",1);i(this,"timeshiftOnAudio",!1);i(this,"syncMaxAhead",150);i(this,"timeshiftSync",{enabled:!1,maxBehind:50,multiplier:1,maxBehindAllowed:600,overshoot:Qr(),minOvershootAllowed:Qr(),maxOvershootAllowed:500});i(this,"maxTimeSyncDifferenceTolerance",150);i(this,"timers",pA.create());i(this,"rtt",0);i(this,"channelSyncInfo",new Map);i(this,"driftAdjustmentsCount",0);i(this,"timeshiftDriftAdjustmentCount",0);i(this,"driftAdjustments",[]);i(this,"timeShiftAdjustments",[]);i(this,"timestampOffset");i(this,"currentChannelId");i(this,"highestSeenTimestamps",new Map);i(this,"isSuspended",!1);i(this,"isSyncAdjustmentActivated",!1);i(this,"load",()=>{this.timers.setInterval(this.onSync,100)});i(this,"unload",()=>{this.logger.debug("Unloading module..."),this.emitter.off("rtt",this.updateRtt),this.timers.unload(),this.logger.debug("Unloaded module")});i(this,"suspend",()=>{this.isSuspended=!0});i(this,"unsuspend",()=>{this.resetSyncState(),this.isSuspended=!1});i(this,"deactivateSyncAdjustments",()=>{this.isSyncAdjustmentActivated=!1});i(this,"activateSyncAdjustments",()=>{this.tryApplySyncInfo(0),this.lastSeekTime=Date.now(),this.isSyncAdjustmentActivated=!0});i(this,"reset",()=>{this.logger.info("Reset sync state"),this.currentChannelId=void 0,this.timestampOffset=void 0,this.resetSyncState(),this.highestSeenTimestamps.clear()});i(this,"getTimeshiftOffset",()=>{var A;return(A=this.timestampOffset)!=null?A:0});i(this,"getCurrentChannelId",()=>this.currentChannelId);i(this,"resetSyncState",()=>{this.timeshiftSync.multiplier=1,this.syncMaxBehindMultiplier=1,this.driftAdjustments=[],this.timeShiftAdjustments=[]});i(this,"getLiveEdgeTime",A=>{const e=this.channelSyncInfo.get(A);if(!e)return;const t=Date.now()-e.localTimestamp;return e.timestamp+t});i(this,"getLiveEdgeTimeLatencyAdjusted",A=>{const e=this.getLiveEdgeTime(A);if(e)return e+this.rtt/2});i(this,"getWallclockTime",A=>{const e=this.channelSyncInfo.get(A);if(!e)return;const t=Date.now()-e.localTimestamp;return e.wallclockTime+t});i(this,"getWallclockTimeLatencyAdjusted",A=>{const e=this.getWallclockTime(A);if(e)return e+this.rtt/2});i(this,"processSample",A=>{var B;if(!A.channelId)throw new Error("Sample must be assigned to a channel");this.currentChannelId||(this.currentChannelId=A.channelId),this.timestampOffset||(this.timestampOffset=A.timestamp/A.timescale*1e3-tr);const e=A.type==="video"&&A.isSync;if(this.currentChannelId!==A.channelId){let F=Number.MAX_SAFE_INTEGER;console.assert(this.highestSeenTimestamps.size!==0,"no known timestamps"),this.highestSeenTimestamps.forEach(s=>{F=Math.min(F,s)});const n=A.timestamp/A.timescale*1e3;this.currentChannelId=A.channelId,this.timestampOffset=n-F}else(e||this.timeshiftOnAudio)&&this.tryTimeshiftSync();const t=this.timestampOffset*A.timescale/1e3;return A.timestamp-=t,e&&this.keyframeTimestamps.push(A.timestamp/A.timescale*1e3),this.highestSeenTimestamps.set(A.type,Math.max((B=this.highestSeenTimestamps.get(A.type))!=null?B:0,A.timestamp/A.timescale*1e3)),A});i(this,"processFragment",(A,e)=>{var n;this.currentChannelId||(this.currentChannelId=A);const t=e.mediaType();if(!t)throw new Error("Fragment must have a media type");this.timestampOffset||(this.timestampOffset=e.baseMediaDecodeTime()/e.timescale()*1e3-tr);const B=e.mediaType()==="video"&&e.startsWithKeyframe();this.currentChannelId!==A?(console.assert(this.highestSeenTimestamps.size!==0,"no known timestamps"),this.highestSeenTimestamps.forEach(s=>{}),this.currentChannelId=A):(B||this.timeshiftOnAudio)&&this.tryTimeshiftSync();const F=this.timestampOffset*e.timescale()/1e3;return e.updateBaseMediaDecodeTime(e.baseMediaDecodeTime()-F),B&&this.keyframeTimestamps.push(e.baseMediaDecodeTime()/e.timescale()*1e3),this.highestSeenTimestamps.set(t,Math.max((n=this.highestSeenTimestamps.get(t))!=null?n:0,e.baseMediaDecodeTime()/e.timescale()*1e3)),e});i(this,"getStatistics",()=>({drift:this.drift,driftAdjustmentCount:this.driftAdjustmentsCount,timeshiftDriftAdjustmentCount:this.timeshiftDriftAdjustmentCount,seekTime:this.playbackSource.seekTime}));i(this,"updateRtt",A=>void(this.rtt=A));i(this,"isPlaybackSourceReadyToSeek",()=>!this.isSeeking()&&this.isSeekCooldownExpired()&&this.isSyncAdjustmentActivated);i(this,"isSeeking",()=>this.playbackSource.isSeeking?!this.isSeekTimeoutExpired():!1);i(this,"isAllowedToSync",()=>this.isPlaybackSourceReadyToSeek()&&!!this.currentChannelId&&!this.isSuspended&&!this.playbackSource.isPaused);i(this,"isSeekCooldownExpired",()=>Date.now()-this.lastSeekTime>this.seekCooldownTime);i(this,"isSeekTimeoutExpired",()=>Date.now()-this.lastSeekTime>this.seekTimeoutTime);i(this,"currentTimeshiftMaxBehind",()=>Math.min(this.timeshiftSync.maxBehind*this.timeshiftSync.multiplier,this.timeshiftSync.maxBehindAllowed));i(this,"currentSyncMaxBehind",()=>Math.min(this.syncMaxBehindMultiplier*this.syncMaxBehind,this.syncMaxBehindMaximumAllowed));i(this,"currentSyncMaxAhead",()=>this.playbackSource.seekTime>500?Math.max(this.syncMaxAhead*this.syncMaxBehindMultiplier,300):this.syncMaxAhead);i(this,"tryTimeshiftSync",()=>{var F;if(!this.timeshiftSync.enabled||!this.isAllowedToSync())return;const A=(F=this.drift)!=null?F:0;if(A>=this.syncMaxBehind)return;if(A<this.currentTimeshiftMaxBehind()){this.timeshiftSync.overshoot=0;return}if(!this.timestampOffset)return;const e=Date.now()-this.seekTimeoutTime*this.timeshiftSync.multiplier,t=this.timeShiftAdjustments.filter(ir(e)).length;if(t&&this.timeshiftSync.multiplier>2)return this.logger.debug("Too many diff timeShifts within sliding window",{timeShiftsCooldownMs:e,timeShiftsWithinCooldownTime:t}),!1;const B=A+this.timeshiftSync.overshoot;this.logger.info("Adjusting for drift using timeshift",{drift:A,syncAmount:B,currentTime:this.playbackSource.currentTime,rtt:this.rtt,overshoot:this.timeshiftSync.overshoot}),this.timestampOffset+=B,this.lastSeekTime=Date.now(),!this.playbackSource.isPaused&&(this.timeShiftAdjustments.push(this.lastSeekTime),this.timeshiftDriftAdjustmentCount++,this.timeshiftSync.multiplier++,this.timeshiftSync.overshoot=Math.max(this.timeshiftSync.minOvershootAllowed,Math.min(this.timeshiftSync.multiplier*A/2,this.timeshiftSync.maxOvershootAllowed)))});i(this,"onSync",()=>{var s;if(!this.isAllowedToSync())return;const A=(s=this.drift)!=null?s:0;if(A<0&&-A<this.currentSyncMaxAhead()||A>0&&A<this.currentSyncMaxBehind()||Math.abs(A)<1||!this.isSeekCooldownExpired())return;const e=Date.now()-this.seekTimeoutTime*this.syncMaxBehindMultiplier,t=this.driftAdjustments.filter(ir(e)).length;if(t&&this.syncMaxBehindMultiplier>2)return this.logger.debug("Too many diff adjustments within sliding window",{adjustmentsCooldownMs:e,adjustmentsWithinCooldownTime:t}),!1;const B=this.playbackSource.seekTime,F=this.playbackSource.currentTime+A,n=this.findKeyframeCloseToTimestamp(F);if(n||this.keyframeTimestamps.isEmpty()){const a=n?n+this.seekKeyframeOvershoot:F;if(this.logger.info("Adjusting for drift using seek",{drift:A,currentTime:this.playbackSource.currentTime,targetCurrentTime:a,seekTime:B,rtt:this.rtt}),this.lastSeekTime=Date.now(),this.driftAdjustments.push(this.lastSeekTime),this.driftAdjustmentsCount++,this.playbackSource.currentTime=a+B,this.timeshiftSync.overshoot=Math.max(this.timeshiftSync.minOvershootAllowed,this.timeshiftSync.overshoot/2),this.driftAdjustmentsCount%this.syncMaxBehindIncreaseEvery===0&&!this.playbackSource.isPaused){const r=this.currentSyncMaxBehind;this.syncMaxBehindMultiplier+=this.syncMaxBehindMultiplierStep,r!==this.currentSyncMaxBehind&&this.logger.info("Increasing max drift behind allowed",{from:r,to:this.currentSyncMaxBehind})}}});i(this,"findKeyframeCloseToTimestamp",A=>{const e=this.keyframeTimestamps.items();for(const t of e)if(t>=A&&t<=A+200)return t});this.logger=e,this.emitter=A,this.playbackSource=t,this.bufferSource=B,this.timeshiftSync.enabled=F,this.syncMaxBehind=this.timeshiftSync.enabled?1e3:200,this.emitter.on("rtt",this.updateRtt)}updateChannelSyncInfo(A,e){const t=Date.now(),B=this.channelSyncInfo.get(A),F=this.getLiveEdgeTime(A);if(this.isSuspended)return;if(!B||!F){this.logger.info("Initial timing info",{syncInfo:e}),this.channelSyncInfo.set(A,O(S({},e),{localTimestamp:t,timeDifferences:new w(12)}));return}const n=e.wallclockTime-B.wallclockTime,s=e.timestamp-B.timestamp,a=t-B.localTimestamp,r=s-a;if(B.timeDifferences.push(r),this.logger.debug("Timing info",{rtt:this.rtt,channelId:A,syncInfo:e,localTimestamp:t,diffFromEstimated:r,timestampDelta:s,wallclockDelta:n,localWallclockDelta:a}),Math.abs(r)>=this.bufferSource.getTargetBufferTime()*2){this.logger.info("Resetting sync info",{diffFromEstimated:r}),this.channelSyncInfo.set(A,O(S({},e),{localTimestamp:t,timeDifferences:new w(B.timeDifferences.maxSize+1)})),this.currentChannelId&&this.currentChannelId===A&&(this.reset(),this.emitter.emit("channel reset"));return}B.timeDifferences.isFull()&&this.tryApplySyncInfo(this.maxTimeSyncDifferenceTolerance)}tryApplySyncInfo(A){const e=this.getCurrentChannelId();if(!e)return;const t=this.channelSyncInfo.get(e);if(!t)return;const B=XQ(t.timeDifferences.items());Math.abs(B)>A&&(this.logger.info("Adjusting sync info",{averageDifference:B}),t.timestamp+=B,t.timeDifferences.clear())}get serverCurrentTime(){return this.channelCurrentTime-this.getTimeshiftOffset()}get channelCurrentTime(){const A=this.getCurrentChannelId();if(!A)return 0;const e=this.getLiveEdgeTime(A);return e?e-this.bufferSource.getTargetBufferTime():0}get drift(){return this.serverCurrentTime-this.playbackSource.currentTime}};i(as,"create",(A,e,t,B,F)=>new as(A,e,t,B,F));let Da=as;const rC={enabled:!0,interval:3e4,includeErrors:!0,includeEvents:!0,includeStats:!0,maxRetries:10,maxErrorReports:50,maxEvents:50},Za=(Q,A)=>O(S({},A),{type:Q,timestamp:new Date().toISOString(),discriminator:"web"}),os=class os{constructor(A,e,t,B){i(this,"logger");i(this,"timers",new pA);i(this,"emitter");i(this,"options");i(this,"parentContext");i(this,"unsentLines",new w(100));i(this,"retries",0);i(this,"errorCount",0);i(this,"eventCount",0);i(this,"statsCount",0);i(this,"unload",()=>{this.logger.debug("Unloading module..."),window.removeEventListener("error",this.onError),window.removeEventListener("unhandledrejection",this.onRejection),this.timers.unload(),this.emitter.off("error",this.addError),this.emitter.off("visibilitystate",this.onVisibilityChange),this.emitter.off("pagehide",this.onPageHide),this.emitter.off("telemetry event",this.addEvent),this.addStats({isFinal:!0,initiator:"unload"}),this.send("beacon"),this.logger.debug("Unloaded module")});i(this,"load",()=>{window.addEventListener("error",this.onError),window.addEventListener("unhandledrejection",this.onRejection),this.emitter.on("error",this.addError),this.emitter.on("visibilitystate",this.onVisibilityChange),this.emitter.on("pagehide",this.onPageHide),this.emitter.on("telemetry event",this.addEvent),this.timers.setInterval(()=>{this.addStats(),this.send("fetch")},this.options.interval)});i(this,"addStats",({isFinal:A,initiator:e}={isFinal:!1,initiator:"interval"},t={})=>{if(!this.options.includeStats)return;const B=this.parentContext.getStatistics(),F=Za("stats",O(S(S({},t),B),{isFinal:A,initiator:e,count:this.statsCount++}));this.unsentLines.push(F)});i(this,"addEvent",A=>{if(!this.options.includeEvents||this.eventCount>this.options.maxEvents)return;const e=this.parentContext.getStatistics(),t=Za("event",S(S({},e),A));this.eventCount++,this.unsentLines.push(t)});i(this,"getStatistics",()=>({errorCount:this.errorCount}));i(this,"send",A=>d(this,null,function*(){if(this.options.enabled&&!(this.retries>=this.options.maxRetries)&&!this.unsentLines.isEmpty()){this.logger.debug("Sending telemetry",{lines:this.unsentLines.items()});try{const e=this.unsentLines.items().map(t=>JSON.stringify(t)).reverse().join(`
|
|
50
|
+
`);switch(A){case"beacon":navigator.sendBeacon(this.options.url,e);break;case"fetch":default:this.parentContext.connectionState==="connected"?this.emitter.emit("send signal",{type:"telemetry",body:e}):yield Do(new URL(this.options.url),{body:e,headers:{"Content-Type":"text/plain"}});break}this.retries=0,this.unsentLines.clear()}catch(e){this.retries++}}}));i(this,"onVisibilityChange",A=>{A==="hidden"&&(this.addStats({isFinal:!0,initiator:"visibilitychange"}),this.send("beacon"))});i(this,"onPageHide",A=>{this.addStats({isFinal:!0,initiator:"pagehide"},{persisted:A.persisted}),this.send("beacon")});i(this,"onRejection",A=>this.addError(A.reason));i(this,"onError",A=>this.addError(A.error));i(this,"addError",A=>{const{includeErrors:e,maxErrorReports:t}=this.options;if(e&&A instanceof X){if(this.errorCount++,this.errorCount>t)return;const B=this.parentContext.getStatistics();this.unsentLines.push(Za("error",S(S({},B),A.toStringifiable())))}});this.logger=A,this.emitter=e,this.options=S(S({},rC),t),this.parentContext=B}};i(os,"create",(A,e,t,B)=>new os(A,e,t,B));let on=os;const ls=class ls{constructor(A,e,t){i(this,"logger");i(this,"element");i(this,"documentState");i(this,"timers",new pA);i(this,"unload",()=>{this.timers.unload()});i(this,"unpause",()=>{this.element.userHasProvidedInput&&this.element.isPaused&&this.documentState.isVisible&&this.documentState.isOnline&&(this.logger.debug("Unpause video"),this.element.tryPlay())});this.logger=A,this.element=e,this.documentState=t,this.timers.setInterval(this.unpause,100)}};i(ls,"create",(A,e,t)=>new ls(A,e,t));let ln=ls;const dC=6,EC=Q=>{let A=[Q],e=0,t=0,B=!1;const F=(s,a)=>{var T,L,Z;s.flags&&SB(s.flags)&&(e=(T=s.compositionTimeOffset)!=null?T:0),s.timestamp+=e,s.compositionTimeOffset=((L=s.compositionTimeOffset)!=null?L:0)-e;const r=s.timestamp/s.timescale,g=a.flags&&SB(a.flags)?(Z=a.compositionTimeOffset)!=null?Z:0:e,J=(a.timestamp+g)/a.timescale,u=Math.max(0,Math.round((J-r)*s.timescale));return u>0&&(t=u),O(S({},s),{duration:u>0?u:t})};return(s,a=!1)=>{if(s.flags&&SB(s.flags)&&a&&(B=!B),!(a&&A.length<dC&&B)&&A.length>0){B=!1;let E=s;for(let c=A.length-1;c>0;c--){const J=A[c];if(!J||!E)break;J.timestamp>=E.timestamp?A.splice(c,1):E=J}const g=A.map((c,J)=>F(c,A[J+1]||s));return A=[s],g}return A.push(s),[]}},gC=(Q,A,e)=>{if(Lt(A))return S(O(S({},Q),{type:"video",codec:A.codec,isSync:SB(Q.flags),data:Q.payload,duration:0,width:A.width,height:A.height}),e);if(A.codec==="webvtt")throw new Error("WebVTT is not supported");return O(S({},Q),{type:"audio",channels:A.channels,sampleRate:A.sampleRate,codec:A.codec,language:A.language,isSync:SB(Q.flags),data:Q.payload,duration:0})};class IC{constructor(){i(this,"highEntropyValues");var A;(A=self.navigator.userAgentData)==null||A.getHighEntropyValues(["architecture","model","platformVersion","fullVersionList"]).then(e=>{this.highEntropyValues=e})}getUserAgentInformation(){var F,n,s,a,r,E;const A=window.location.origin,t=!A||A=="null"?"":`${window.location.pathname}${window.location.search}`.substring(0,1e3),B={locationOrigin:window.location.origin,locationPath:t,ancestorOrigins:((F=window.location.ancestorOrigins)==null?void 0:F.length)>0?Array.from(window.location.ancestorOrigins):void 0,hardwareConcurrency:navigator.hardwareConcurrency,deviceMemory:navigator.deviceMemory};if(self.navigator.userAgentData&&this.highEntropyValues){const g="1",c=[...(n=this.highEntropyValues.brands)!=null?n:[]];c.sort((Z,M)=>Z.brand.localeCompare(M.brand));const J=[...(s=this.highEntropyValues.fullVersionList)!=null?s:[]];J.sort((Z,M)=>Z.brand.localeCompare(M.brand));const u=J.map(Z=>Z.version),D=c.map(Z=>Z.brand),T=c.map(Z=>Z.version),L=parseInt((r=(a=this.highEntropyValues.platformVersion)==null?void 0:a.split(".")[0])!=null?r:g);return S({userAgentLegacy:window.navigator.userAgent,ua:{browser:{brands:D,fullVersionBrands:u,majorVersions:T},device:this.highEntropyValues.model||"Other",os:{family:this.highEntropyValues.platform||"Other",version:(E=this.highEntropyValues.platformVersion)!=null?E:g,major_version:Number.isFinite(L)?L:0}}},B)}else return S({userAgent:window.navigator.userAgent},B)}}const cC=Q=>{if(typeof Q!="object"||Q===null)throw new Error("not an object");if(!("video"in Q))throw new Error("missing video in subscription");if(!("audio"in Q))throw new Error("missing audio in subscription");if(!("channelId"in Q))throw new Error("missing channelId");return!0},Ue=class Ue extends $A{constructor(e){super();i(this,"pictureInPicture");i(this,"drm");i(this,"browser",us());i(this,"options");i(this,"element");i(this,"playbackSource");i(this,"emitter",new $A);i(this,"logger");i(this,"modules");i(this,"clientIp");i(this,"sessionId");i(this,"clientId",ko());i(this,"_channels",[]);i(this,"createdAt",Date.now());i(this,"hasCalledConnect",!1);i(this,"latestEmittedLanguages",[]);i(this,"wakeLock");i(this,"pool",new k(Ue.MAX_POOL_SIZE));i(this,"userAgentInformation",new IC);i(this,"encryptedMediaExtensions");o(this,TQ,0);o(this,qA,[]);i(this,"sampleProcessingSesssions",new Map);i(this,"sizes",new Map);i(this,"isSuspended",!0);i(this,"disconnectTimeout");o(this,yQ);i(this,"attach",e=>{var t;(t=this.wakeLock)==null||t.attach(e),e.appendChild(this.element)});i(this,"getOptions",()=>this.options.getOptions());i(this,"getThumbnailUrl",()=>{let e=this.options.get("edgeUrl")||this.options.get("url");e=e.replace("wss://","https://"),e=e.replace("ws://","http://"),e=e.endsWith("/")?e.slice(0,-1):e;const t=window.devicePixelRatio||1,B=Math.round(window.innerWidth*t),F=Math.round(window.innerHeight*t),n=this.options.get("authenticationToken"),s=n?`&auth.token=${n}`:"";return`${e}/api/thumbnail?channelId=${this.channelId}${s}&width=${B}&height=${F}`});i(this,"updateAuthenticationToken",e=>{this.logger.debug("Got new auth token",{token:e}),this.options.set("authenticationToken",e),this.emitter.emit("send signal",{type:"refresh auth",token:e})});i(this,"connect",()=>{this.hasCalledConnect||(this.play(),this._connect())});i(this,"_connect",()=>{var e,t;this.hasCalledConnect||(this.hasCalledConnect=!0,Object.values(this.modules).forEach(B=>{B&&"load"in B&&B.load()}),this.unsuspend(),this.playbackSource instanceof Ys&&((t=(e=this.playbackSource).load)==null||t.call(e)),this.modules.connection.connect())});i(this,"getCastOptions",()=>({url:this.options.get("url"),channelId:this.options.get("channelId"),channelGroupId:this.options.get("channelGroupId"),authenticationToken:this.options.get("authenticationToken"),language:this.options.get("language"),logLevel:this.options.get("logLevel"),minBufferTime:this.options.get("minBufferTime"),tags:this.options.get("tags"),ownerSessionId:this.sessionId,edgeUrl:this.options.get("edgeUrl"),media:this.options.get("media"),drm:this.options.get("drm")}));i(this,"onConnectInfo",e=>d(this,null,function*(){var r;this.sessionId=ko();const t=this.modules.subscription.getTargetSubscription(),B=e.channels.find(E=>E.channelId===t.channelId);if(this.emitter.emit("connect info",e),this._channels=e.channels,this.updateTextTracks((r=B==null?void 0:B.renditions)!=null?r:[]),!this.textTrack&&this.options.get("textTrack")&&(this.textTrack=this.options.get("textTrack")),yield Promise.all(e.channels.map(E=>d(this,null,function*(){E.overrides&&this.options.addOverrides(E.channelId,E.overrides),E.renditions=yield this.filterRenditions(E.renditions),this.modules.renditions.setRenditions(E.channelId,E.renditions)}))),!B)throw Ko("external");const F=this.options.getOverride("sizeBasedResolutionCapEnabled",this.channelId);F!==void 0&&(this.modules.constraintCap.sizeBasedResolutionCapEnabled=F);const n=this.options.getOverride("minBufferTime",this.channelId),s=this.options.getOverride("maxBufferTime",this.channelId);if((n||s)&&(this.modules.bufferTime.updateConfig({minBufferTime:this.options.get("minBufferTime",this.channelId),maxBufferTime:this.options.get("maxBufferTime",this.channelId)}),this.targetBufferTime=this.options.get("minBufferTime",this.channelId)),this.options.get("burstEnabled",this.channelId)&&this.modules.subscription.enableBurst(this.targetBufferTime),this.emit("is live",B.isLive),!B.isLive)throw new Error("Waiting for channel to go live");this.patchSubscription(B,this.modules.connection.estimatedBandwidth),yield this.initializeDecodingModule(),this.resetModules(),this.emit("rendition levels",this.modules.renditions.getRenditionLevels()),this.emit("channels",this.channels),this.emitLanguagesIfChanged(),this.sampleProcessingSesssions.clear();const a=this.options.get("burstEnabled",this.channelId);return{video:this.targetSubscription.video,audio:this.targetSubscription.audio,burstMs:a?this.targetBufferTime:void 0,sessionId:this.sessionId,clientId:this.clientId,channelId:this.channelId,channelGroupId:this.options.get("channelGroupId"),authToken:this.options.get("authenticationToken"),textTrack:this.textTrack}}));i(this,"emitLanguagesIfChanged",()=>{const e=this.modules.renditions.getLanguages(),t=this.latestEmittedLanguages;e.length==t.length&&e.every(F=>t.includes(F))||(this.logger.debug("Emitting new languages",{currentLanguages:e}),this.latestEmittedLanguages=e,this.emit("languages",this.latestEmittedLanguages))});i(this,"updateTextTracks",e=>{const t=e.filter(B=>B.codec==="webvtt");t.forEach(B=>{if(!U(this,qA).find(n=>n.language===B.language)){if(this.modules.canvasModule){const n=this.modules.canvasModule.textTracks.addTextTrack(B.kind,B.label||B.language||"",B.language||"");U(this,qA).push(n)}else if(this.mediaElement instanceof HTMLVideoElement){const n=this.mediaElement.addTextTrack(B.kind,B.label||B.language,B.language);U(this,qA).push(n)}}});for(const B of U(this,qA))t.find(n=>n.language===B.language)?B.mode==="disabled"&&(B.mode="hidden"):B.mode="disabled";this.emit("text tracks",this.textTracks)});i(this,"cleanupTextTracks",(e=this.currentTime-2e4)=>{U(this,qA).forEach(t=>{if(t.cues)for(const B of t.cues)B.endTime*1e3<e-2e3&&t.removeCue(B)})});i(this,"filterRenditions",e=>d(this,null,function*(){const t=yield Promise.all(e.map(s=>d(this,null,function*(){var E,g,c;if(Ht(s))return!0;if(!Lt(s)||!this.isSupportedVideoCodecProfile(s.codec,s.codecString))return!1;if(!this.willUseMediaSource()){const J=this.options.get("advanced"),u=(E=J.wasmDecodingConstraint.bitRate)!=null?E:Number.MAX_SAFE_INTEGER,D=(g=J.wasmDecodingConstraint.width)!=null?g:Number.MAX_SAFE_INTEGER,T=(c=J.wasmDecodingConstraint.height)!=null?c:Number.MAX_SAFE_INTEGER;return s.bitRate<=u&&s.width<=D&&s.height<=T}const a=yield SI(s);if(!a.supported||s.codec=="av1"&&!a.smooth&&!a.powerEfficient)return!1;const r=this.options.getOverride("maxVideoBitRate",this.channelId);return r?r>=s.bitRate:!0})));let B=e.filter((s,a)=>t[a]);const F=B.filter(s=>s.codec==="h264").reverse()[0],n=B.filter(s=>s.codec==="av1").reverse()[0];return F&&n&&F.width>n.width&&F.height>n.height&&(B=B.filter(s=>s.codec!=="av1")),B}));i(this,"patchSubscription",(e,t)=>{const B=Math.min(this.options.get("maxVideoBitRate"),Ue.INITIAL_MAX_BIT_RATE,t,this.targetSubscription.video.bitRate),F=Math.min(this.options.get("maxAudioBitRate"),Ue.INITIAL_MAX_BIT_RATE,t,this.targetSubscription.audio.bitRate),n=this.options.get("media")==="audio"?[]:this.options.get("videoCodecs",this.channelId),s=this.supportedAudioCodecs(),a=e.renditions.filter(Ht),r=e.renditions.filter(Lt),E=s.find(u=>a.find(D=>D.codec===u)!==void 0),g=n.find(u=>r.find(D=>D.codec===u)!==void 0),c=a.map(u=>u.language);if(this.logger.debug("supported and selected codecs",{audioCodecs:s,videoCodecs:n,audioCodec:E,videoCodec:g}),g){const u=this.options.get("maxSize");this.modules.subscription.setVideoConstraint(S({codec:g,bitRate:this.abrEnabled?B:this.options.get("maxVideoBitRate")},u))}E&&(this.modules.subscription.setAudioConstraint({codec:E,bitRate:this.abrEnabled?F:this.options.get("maxAudioBitRate"),language:this.options.get("language")}),(!c.includes(this.options.get("language"))||this.language===void 0)&&this.modules.subscription.setLanguage(c[0])),this.alignSizeAndBitRate(this.targetSubscription);const J=this.modules.subscription.getTargetSubscription();this.emitter.emit("subscription changed",{to:J,from:this.modules.subscription.getCurrentSubscription()})});i(this,"isSupportedVideoCodecProfile",(e,t)=>{if(this.willUseMediaSource()){const B=ae();return B?B.isTypeSupported(Yt({codec:e,codecString:t})):!0}if(e==="h264"){const B=!!(t!=null&&t.startsWith("avc1.42")),F=!!(t!=null&&t.startsWith("avc1.66."));return B||F}return e!=="av1"});i(this,"supportedAudioCodecs",()=>{if(this.options.get("media")==="video")return[];const e=[];return(this.browser.supportsMp4Opus&&this.options.get("mseOpusEnabled")||!this.willUseMediaSource())&&e.push("opus"),this.willUseMediaSource()&&e.push("aac"),e});i(this,"initializeDecodingModule",()=>d(this,null,function*(){var B,F;const e=this.currentRenditionLevel,t=[];if(!e)throw new X("No currentRenditionLevel",{code:"no_current_rendition_level",isFatal:!1});if(e!=null&&e.video&&t.push({type:"video",mimeType:Yt(e.video),codec:e.video.codec}),e!=null&&e.audio&&t.push({type:"audio",codec:e.audio.codec,mimeType:Yt(e.audio)}),t.length===0)throw new X("Can't initialize decoding module without tracks",{code:"no_tracks",isFatal:!1});if(this.willUseMediaSource()&&this.element instanceof HTMLMediaElement)this.emitter.emit("flush buffers"),yield(B=this.modules.mseModule)==null?void 0:B.setSourceBuffers(t);else{const n=yield Ea.create(this.emitter,this.logger.createContext("DecoderModule"),t,this.playbackSource,this.pool);(F=this.modules.decoder)==null||F.unload(),this.modules.decoder=n,this.modules.decoder.load()}}));i(this,"unload",()=>d(this,null,function*(){var e,t,B;this.logger.debug("Unloading modules..."),yield Promise.all(Object.values(this.modules).map(F=>F==null?void 0:F.unload())),(e=this.wakeLock)==null||e.unload(),this.pool=new k(Ue.MAX_POOL_SIZE),(B=(t=this.playbackSource).unload)==null||B.call(t),this.element.remove(),this.emitter.reset(),this.encryptedMediaExtensions.unload(),this.reset(),this.logger.debug("Unloaded modules")}));i(this,"userInput",()=>{this.play()});i(this,"pause",()=>{this.options.get("pauseSupportEnabled")&&this.playbackState!=="paused"&&(this.playbackSource.pause(),this.hasCalledConnect&&this.suspend())});i(this,"registerDebugInstance",()=>{hI(this)});i(this,"play",()=>{var e;this.hasCalledConnect?this.unsuspend():this.playbackState!=="playing"&&(this._connect(),self.addEventListener("__vindral_register_debug__",this.registerDebugInstance),this.modules.timer.setInterval(()=>this.cleanupTextTracks(),Ue.REMOVE_CUE_THRESHOLD)),(e=this.wakeLock)==null||e.enable(),this.playbackState==="paused"&&(this.resetModules(),this.emitter.emit("flush buffers"),this.cleanupTextTracks(Number.MAX_SAFE_INTEGER)),this.playbackSource.play()});i(this,"getStatistics",()=>Object.values(this.modules).reduce((e,t)=>t&&"getStatistics"in t?S(S({},e),t.getStatistics()):e,this.getRuntimeInfo()));i(this,"resetModules",()=>{Object.values(this.modules).forEach(e=>{e&&"reset"in e&&e.reset()}),this.sampleProcessingSesssions.clear(),this.playbackSource.currentTime=0,this.playbackSource.isActivated=!1});i(this,"getRuntimeInfo",()=>{const e=this.modules.canvasModule?this.options.get("iosMediaElementEnabled"):void 0;return S({uptime:Date.now()-this.createdAt,version:"4.1.2",clientId:this.clientId,sessionId:this.sessionId,channelId:this.channelId,channelGroupId:this.options.get("channelGroupId"),ip:this.clientIp,url:this.options.get("url"),timeToFirstFrame:this.timeToFirstFrame(),iosMediaElementEnabled:e},this.userAgentInformation.getUserAgentInformation())});i(this,"onMediaElementState",e=>{this.logger.info("media element state",{state:e}),this.options.get("pauseSupportEnabled")&&(e==="paused"?this.modules.documentState.isVisible&&(this.suspend(),this.modules.connection.disconnect()):(this.unsuspend(),this.modules.connection.getState()==="disconnected"&&this.modules.connection.unsuspend()))});i(this,"onBufferEvent",e=>{var B,F,n,s;this.emit("buffer state event",e);const t=!this.playbackSource.isActivated||this.playbackSource.isPaused;if(e==="filled"&&t){const a=Math.max(this.currentTime,(F=(B=this.videoBufferedRanges[0])==null?void 0:B.start)!=null?F:0,(s=(n=this.audioBufferedRanges[0])==null?void 0:n.start)!=null?s:0);this.logger.info("Buffer filled - starting playback",{currentTime:a}),this.playbackSource.currentTime=a,this.modules.sync.activateSyncAdjustments(),this.playbackSource.isActivated=!0}else e==="drained"&&this.playbackSource.isPaused&&(this.playbackSource.isActivated=!1,this.modules.sync.deactivateSyncAdjustments())});i(this,"timeToFirstFrame",()=>{const e=this.modules.playback.getFirstFrameTime(),t=this.modules.connection.firstConnectionTime;if(t&&e)return e-t});this.options=new RI(S(S({},AE),RE(e)));const t=["localhost","127.0.0.1"];e.telemetryEnabled===void 0&&t.includes(location.hostname)&&this.options.set("telemetryEnabled",!1);const B={channelId:this.options.get("channelId"),audio:{language:this.options.get("language"),bitRate:this.options.get("maxAudioBitRate")},video:{bitRate:this.options.get("maxVideoBitRate"),width:this.options.get("maxSize").width,height:this.options.get("maxSize").height}},F=WA.get();F.setLevel(this.options.get("logLevel")),F.setDebug(!1),this.logger=F;const n=ua.create(this.emitter,this.logger.createContext("PictureInPictureModule")),s=pA.create(),a=la.create(this.emitter,this.logger.createContext("ConnectionModule"),{reconnectHandler:this.options.get("reconnectHandler"),options:this.options,onConnectInfo:this.onConnectInfo}),r=pa.create(this.logger.createContext("SubscriptionModule"),this.emitter,B),E=Wa.create(this.emitter,r),g=ma.create(this.emitter,this.logger.createContext("QualityOfServiceModule")),c=ka.create(this.emitter,this.logger.createContext("PlaybackModule"),this,this.options.get("minBufferTime"));this.encryptedMediaExtensions=new Ql(this.emitter,this.logger.createContext("EncryptedMediaExtensions"),e.drm),this.drm={setHeaders:R=>{this.encryptedMediaExtensions.headers=R},setQueryParams:R=>{this.encryptedMediaExtensions.queryParams=R}};const J=ga.create(this.emitter),u=this.options.get("poster"),D=u===!0?this.getThumbnailUrl():u||void 0;let T,L,Z;if(this.willUseMediaSource()){const R=new Ys({type:this.options.get("media")=="audio"?"audio":"video",autoplay:!1,muted:this.options.get("muted")||this.options.get("media")==="video",logger:this.logger.createContext("MediaElement"),poster:D});R.on("buffer state",W=>this.emitter.emit("buffer state",W)),R.on("needs user input",W=>this.emitter.emit("needs user input",W)),R.on("volume state",W=>this.emit("volume state",W)),R.on("media element state",W=>this.onMediaElementState(W)),this.element=R.element,this.playbackSource=R,Ql.isSupported()&&this.encryptedMediaExtensions.attach(R.element),T=Va.create(this.logger.createContext("MseModule"),this.emitter,this.element),this.options.get("pauseSupportEnabled")||(L=ln.create(this.logger.createContext("UnpauseModule"),R,J)),this.options.get("pictureInPictureEnabled")&&this.emitter.emit("add picture in picture listener",{element:R.element})}else if(this.browser.platform.iosVersion>=15&&this.options.get("iosMediaElementEnabled")){const R=Ja.create(this.emitter,this.logger.createContext("ModernCanvasModule"),this.pool,this,{type:this.options.get("media")=="audio"?"audio":"video",muted:this.options.get("muted")||this.options.get("media")==="video",poster:D}),W=R.element();this.element=W.element,this.playbackSource=R,Z=R,this.options.get("pictureInPictureEnabled")&&this.browser.platform.iosVersion>15&&this.emitter.emit("add picture in picture listener",{element:this.element}),this.options.get("pauseSupportEnabled")||(L=ln.create(this.logger.createContext("UnpauseModule"),W,J))}else{const R=Sa.create(this.emitter,this.logger.createContext("LegacyCanvasModule"),this.pool,this,this.options.get("muted")||this.options.get("media")==="video");this.element=R.element(),this.playbackSource=R,Z=R,this.options.get("iosWakeLockEnabled")&&(this.wakeLock=new gI)}this.emitter.on("channel reset",this.resetModules),this.emitter.on("no data timeout",this.resetModules),this.emitter.on("media element state",R=>this.onMediaElementState(R)),this.emitter.on("volume state",R=>this.emit("volume state",R)),this.options.get("pauseSupportEnabled")||this.emitter.on("exit picture in picture",()=>s.setTimeout(()=>this.play(),0)),this.emitter.on("constraint cap changed",R=>{this.logger.info("new cap set",{cap:R}),this.alignSizeAndBitRate(this.targetSubscription)}),this.pictureInPicture={enter:()=>n.requestPictureInPicture(),exit:()=>n.exitPictureInPicture(),isActive:()=>n.isPictureInPictureActive(),isSupported:()=>n.isPictureInPictureSupported()},this.emitter.on("error",R=>{if(R.type()==="external"&&this.emit("error",R),R.isFatal())return()=>void this.unload()});const M=this.browser.platform.isIOS&&!this.browser.platform.isIpadOS,H=Da.create(this.emitter,this.logger.createContext("SyncModule"),this.playbackSource,c,this.willUseMediaSource()&&!M),Y=(this.options.get("edgeUrl")||this.options.get("url")).replace("wss://","https://").replace("ws://","http://").replace("//lb.","//errors."),P=new URL("/telemetry",Y).toString(),VA=on.create(this.logger.createContext("TelemetryModule"),this.emitter,{url:P,enabled:this.options.get("telemetryEnabled"),includeStats:!1,interval:5e3},this);this.modules={telemetry:VA,bufferTime:Os.create(this.emitter,this.logger.createContext("BufferTimeModule"),g,this,{maxBufferTime:this.options.get("maxBufferTime"),minBufferTime:this.options.get("minBufferTime")}),incomingData:ca.create(this.emitter),adaptivity:Ks.create(this.emitter,this.logger.createContext("AdaptivityModule"),g,{cooldownTime:Math.max(this.options.get("minBufferTime"),2e3)}),constraintCap:da.create(this.emitter,this.element,E,this.options.get("abrEnabled")?this.options.get("sizeBasedResolutionCapEnabled"):!1),event:Ia.create(this.emitter,this.logger.createContext("EventModule"),H),sync:H,documentState:J,connection:a,playback:c,pictureInPicture:n,timer:s,subscription:r,renditions:E,qualityOfService:g,mseModule:T,unpause:L,canvasModule:Z},this.modules.adaptivity.isEnabled=this.options.get("abrEnabled"),this.emitter.on("page active",R=>{var W;R&&typeof this.disconnectTimeout=="number"&&(this.modules.timer.clearInterval(this.disconnectTimeout),this.disconnectTimeout=void 0),R?this.playbackSource.isPaused||(this.logger.debug("Unsuspending"),this.unsuspend()):(this.logger.debug("Suspending"),this.suspend(),this.modules.decoder?this.options.get("iosBackgroundPlayEnabled")?(this.modules.decoder.unsuspend(),(W=this.modules.canvasModule)==null||W.unsuspend()):this.modules.connection.disconnect():(this.disconnectTimeout&&this.modules.timer.clearInterval(this.disconnectTimeout),this.disconnectTimeout=this.modules.timer.setInterval(()=>{const x=this.playbackState==="paused"||this.muted;this.connectionState==="connected"&&x&&(this.emitter.emit("flush buffers"),this.modules.connection.disconnect("Page inactive timeout"))},Ue.DISCONNECT_TIMEOUT)))});let FA;this.emitter.on("context switch complete",()=>{FA||(FA=window.setTimeout(()=>{window.clearTimeout(FA),FA=void 0,this.emit("context switch","completed"),this.emitLanguagesIfChanged()},this.targetBufferTime))}),this.emitter.on("context switch started",()=>this.emit("context switch","started")),this.emitter.on("needs user input",R=>this.emit("needs user input",R)),this.emitter.on("event",R=>{switch(R.type){case"metadata":this.emit("metadata",R);break;case"channel switch":this.emit("channel switch",{channelId:R.channelId});break;case"language switch":this.emit("language switch",{language:R.language});break}}),this.emitter.on("buffer state event",this.onBufferEvent),this.emitter.on("playback state",R=>this.emit("playback state",R)),this.emitter.on("rendition level changed",({to:R})=>{R&&this.emit("rendition level",R)}),this.emitter.on("connection state",R=>{this.emit("connection state",R)}),this.emitter.on("recovered from media error",()=>{this.modules.adaptivity.reset(this.targetBufferTime*2)}),this.emitter.once("connect info",R=>{var tA,K,j;const x=((K=(tA=R.telemetry)==null?void 0:tA.probability)!=null?K:1)>=Math.random();R.telemetry&&((j=this.modules.telemetry)==null||j.unload(),this.modules.telemetry=on.create(this.logger.createContext("TelemetryModule"),this.emitter,O(S({},R.telemetry),{enabled:this.options.get("telemetryEnabled")&&x}),this),this.modules.telemetry.load())}),this.emitter.on("adapt level",R=>{var fA,N,v,AA,nA;this.logger.debug("adapt level",{direction:R});const W=this.modules.renditions.getRenditionLevels(),x=this.modules.renditions.getRenditionLevel(),tA=W.findIndex(f=>f===x),K=W.length-1;let j=tA;switch(R){case"upgrade":{const f=Math.min(tA+1,K),UA=W[f],oB=(fA=this.modules.connection.estimatedBandwidth)!=null?fA:st(),lB=((v=(N=UA==null?void 0:UA.audio)==null?void 0:N.bitRate)!=null?v:0)+((nA=(AA=UA==null?void 0:UA.video)==null?void 0:AA.bitRate)!=null?nA:0),EF=oB*2>lB;UA&&EF&&this.modules.adaptivity.isQoSOk(UA)&&(j=f)}break;case"downgrade":j=Math.max(tA-1,0);break;case"double downgrade":j=Math.max(tA-2,0);break;case"reconnect":if(tA===0||this.modules.qualityOfService.timeSpentBufferingLast(6e3)>5e3){if(!this.modules.connection.lastConnectionTime||Date.now()-this.modules.connection.lastConnectionTime<this.modules.qualityOfService.fatalQosGraceTime()||this.modules.connection.getState()!=="connected")return;this.modules.qualityOfService.incrementFatalQosCount(),this.logger.info("Reconnecting due to poor qos"),this.modules.connection.reconnect("Fatal QOS"),this.emitter.emit("adapted level");return}else j=0}if(j===tA)return;const aA=W[j];this.alignSizeAndBitRate(O(S({},this.targetSubscription),{video:S(S({},this.targetSubscription.video),aA==null?void 0:aA.video),audio:S(S({},this.targetSubscription.audio),aA==null?void 0:aA.audio)})),this.emitter.emit("adapted level")}),this.emitter.on("text track data",R=>{const W=U(this,qA).find(j=>j.language===R.language),tA=this.modules.sync.getTimeshiftOffset()/1e3,K=tA-U(this,TQ);if(l(this,TQ,tA),W){if(W.cues)for(const j of W.cues)j.startTime-=K,j.endTime-=K;for(const j of R.cues){const aA=new VTTCue(j.startTime-tA,j.endTime-tA,j.text);W.addCue(aA)}}}),this.emitter.on("received signal",R=>{var tA;const W=R,x=this.modules.subscription.getCurrentSubscription();switch(this.logger.debug("received",S({},W)),W.type){case"client ip":this.clientIp=W.ip;break;case"renditions":this.updateTextTracks(W.renditions),l(this,yQ,this.filterRenditions(W.renditions).then(K=>{this.emitter.emit("renditions",{renditions:K,channelId:this.currentSubscription.channelId}),this.emit("rendition levels",this.modules.renditions.getRenditionLevels()),this.emitLanguagesIfChanged()}).finally(()=>{l(this,yQ,void 0)}));break;case"subscription changed":try{cC(W.subscription)}catch(K){this.emitter.emit("error",new X("Subscription failed validation",{source:K instanceof Error?K:void 0,isFatal:!1,code:"subscription_failed_validation"}))}this.emitter.emit("subscription changed",{reset:W.reset,to:W.subscription,from:this.modules.subscription.getCurrentSubscription()}),W.reset&&x.channelId!==W.subscription.channelId&&(this.emit("error",Po(W.subscription.channelId)),this.emit("channel switch failed",{channelId:x.channelId})),this.modules.sync.timeshiftOnAudio=!((tA=W.subscription.video)!=null&&tA.codec),this.modules.adaptivity.reset();break;case"timing info":this.modules.sync.updateChannelSyncInfo(W.timingInfo.channelId,W.timingInfo),this.emit("server wallclock time",W.timingInfo.wallclockTime);break}}),this.emitter.on("channel switch timeout",R=>{this.emit("error",Po(R)),this.emit("channel switch failed",{channelId:this.currentSubscription.channelId})}),this.emitter.on("received data",R=>{const W=this.modules.subscription.getCurrentSubscription(),x=dI(R);if(!W){this.logger.warn("Received unwanted message",S({},x));return}Fe(O(S({},x),{channelId:W.channelId}))}),this.emitter.on("received moq data",R=>{var j,aA,fA;const W=R.payload.mediaType(),x=R.channelId,tA=R.renditionId,K=this.modules.sync.processFragment(x,R.payload);if(R.switchInfo.channelId&&(R.switchInfo.drmTransition&&this.emitter.emit("error",jo("Switching between DRM and non-DRM channels is not supported",!0)),this.encryptedMediaExtensions.onChannelSwitch(),this.emit("rendition levels",this.modules.renditions.getRenditionLevels()),this.modules.event.addEvent({type:"channel switch",channelId:R.switchInfo.channelId,timestamp:K.baseMediaDecodeTime()/K.timescale()*1e3})),R.switchInfo.language&&this.modules.event.addEvent({type:"language switch",language:R.switchInfo.language,timestamp:K.baseMediaDecodeTime()/K.timescale()*1e3}),this.modules.incomingData.add(W,R.payload.rawBytes().byteLength),K.fragment().emsgs.forEach(N=>{if(!N.presentationTime)return;const v=LE(N.data);v&&this.modules.event.addEvent({id:N.id,timestamp:N.presentationTime/N.timescale*1e3-this.modules.sync.getTimeshiftOffset(),content:v.txx.value,type:"metadata"})}),this.modules.decoder){const N=(j=K.header().init().moov.traks[0])==null?void 0:j.mdia.minf.stbl.stsd,v=(aA=N==null?void 0:N.avc1)==null?void 0:aA.avcC.bytes,AA=(fA=N==null?void 0:N.codec)!=null?fA:"h264";if(v){const nA=v.buffer.slice(v.byteOffset,v.byteOffset+v.byteLength);if(W==="text")throw new Error("Subtitles are not supported");this.emitter.emit("init segment",{initSegment:{channelId:x,renditionId:tA,data:nA,timescale:1e3,type:W,codec:AA},mimeType:W})}for(let nA=0;nA<K.samplesCount();nA++){const f=K.sample(nA);f&&this.emitter.emit("coded sample",O(S({},f),{renditionId:tA,channelId:x,data:f.data.buffer.slice(f.data.byteOffset,f.data.byteOffset+f.data.byteLength)}))}}else this.emitter.emit("fragment",{mimeType:R.mimeType,codec:R.codec,fragment:K,channelId:x,renditionId:tA})});const uA=this.options.get("container");uA&&this.attach(uA),this.logger.info("Created Vindral instance",{options:this.options});const Fe=R=>d(this,null,function*(){const W=R.channelId;U(this,yQ)&&(yield U(this,yQ));const x=this.modules.renditions.getRendition(R.renditionId,W);if(!oI(R.flags)){if(lI(R.flags)){const K=new TextDecoder().decode(R.payload),j=this.modules.sync.getTimeshiftOffset();if(R.renditionId!==0){const aA=uo(K);if(aA&&aA.language!==void 0){const N=new gl().parse(aA.content||""),v=j/1e3,AA=U(this,qA).find(f=>f.language===aA.language),nA=v-U(this,TQ);if(l(this,TQ,v),AA){if(AA.cues)for(const f of AA.cues)f.startTime-=nA,f.endTime-=nA;for(const f of N){const UA=new VTTCue(f.startTime-v,f.endTime-v,f.text);AA.addCue(UA)}}}}else this.modules.event.addEvent({timestamp:R.timestamp/R.timescale*1e3-this.modules.sync.getTimeshiftOffset(),content:K,type:"metadata"})}else if(x!=null&&x.codec){const tA=h(x.codec);if(tA==="text")throw new Error("Subtitles are not supported");if(this.modules.incomingData.add(tA,R.payload.byteLength),aI(R.flags)){const K=O(S({type:tA,data:R.payload,codec:x.codec},R),{channelId:W}),j=iI(K.codec,K.payload);j&&this.sizes.set(K.renditionId,j);const aA=Yt({codec:x.codec,codecString:x.codecString});this.emitter.emit("init segment",{initSegment:K,mimeType:aA}),this.emit("initialized media")}else{const K=gC(R,x,this.sizes.get(R.renditionId));let j=this.sampleProcessingSesssions.get(tA);if(!j)j=EC(this.modules.sync.processSample(K)),this.sampleProcessingSesssions.set(tA,j);else{const aA=j(this.modules.sync.processSample(K),this.isSwitchingRenditionLevel&&K.type==="video");let fA=K;aA.forEach(N=>{this.modules.event.extractEvent(N,fA),this.emitter.emit("coded sample",N),fA=N})}}}}});this.options.get("maxVideoBitRate")!==Number.MAX_SAFE_INTEGER&&(this.maxVideoBitRate=this.options.get("maxVideoBitRate")),this.options.get("maxAudioBitRate")!==Number.MAX_SAFE_INTEGER&&(this.maxAudioBitRate=this.options.get("maxAudioBitRate")),Gt(this.options.get("maxSize"),uF())||(this.maxSize=this.options.get("maxSize")),this.options.get("burstEnabled")&&r.enableBurst(this.targetBufferTime)}set volume(e){this.playbackSource.volume=e}get volume(){return this.playbackSource.volume}set muted(e){if(e===this.muted)return;const t=this.playbackSource.muted;this.playbackSource.muted=e,!e&&t&&!this.playbackSource.isPaused&&this.playbackSource.play()}get muted(){return this.playbackSource.muted}get media(){return this.options.get("media")}get videoBitRate(){return this.modules.incomingData.averageBitRate("video")}get audioBitRate(){return this.modules.incomingData.averageBitRate("audio")}get connectionState(){return this.modules.connection.getState()}get playbackState(){return this.modules.playback.getState()}get bufferFullness(){return this.modules.playback.getBufferFullness()}get sizeBasedResolutionCapEnabled(){return this.modules.constraintCap.sizeBasedResolutionCapEnabled}set sizeBasedResolutionCapEnabled(e){this.modules.constraintCap.sizeBasedResolutionCapEnabled=e}get abrEnabled(){return this.modules.adaptivity.isEnabled}set abrEnabled(e){this.modules.constraintCap.sizeBasedResolutionCapEnabled=e?this.options.get("sizeBasedResolutionCapEnabled"):!1,this.modules.adaptivity.isEnabled=e,this.alignSizeAndBitRate(this.targetSubscription)}get serverEdgeTime(){return this.modules.sync.getLiveEdgeTimeLatencyAdjusted(this.currentSubscription.channelId)}get serverWallclockTime(){return this.modules.sync.getWallclockTimeLatencyAdjusted(this.currentSubscription.channelId)}get currentTime(){return this.modules.sync.serverCurrentTime}get channelCurrentTime(){return this.modules.sync.channelCurrentTime}get targetBufferTime(){return this.modules.playback.getTargetBufferTime()}set targetBufferTime(e){this.modules.playback.getTargetBufferTime()!==e&&(this.modules.playback.setTargetBufferTime(e),this.playbackSource.currentTime=this.modules.sync.serverCurrentTime,this.options.get("burstEnabled",this.channelId)?this.modules.subscription.enableBurst(this.targetBufferTime):this.modules.subscription.enableBurst(0))}get playbackLatency(){var e;if(this.playbackSource.currentTime!==0)return this.targetBufferTime+((e=this.modules.sync.drift)!=null?e:0)+this.modules.connection.rtt/2}get playbackWallclockTime(){if(!(!this.serverWallclockTime||!this.playbackLatency))return this.serverWallclockTime-this.playbackLatency}get channels(){return this._channels}get languages(){return this.modules.renditions.getLanguages()}get language(){return this.modules.subscription.getTargetSubscription().audio.language}set language(e){this.modules.subscription.setLanguage(e)}set textTrack(e){U(this,qA).forEach(t=>{t.label===e?t.mode="showing":t.mode="hidden"}),this.emitter.emit("text track",e)}get textTracks(){return U(this,qA).filter(e=>e.mode!=="disabled").map(e=>e.label)}get textTrack(){var e;return(e=U(this,qA).find(t=>t.mode==="showing"))==null?void 0:e.label}get channelId(){var e,t;return(t=(e=this.modules)==null?void 0:e.subscription.getTargetSubscription().channelId)!=null?t:this.options.get("channelId")}set channelId(e){if(e===this.channelId)return;this.modules.subscription.setChannelId(e);const t=this.options.get("media")==="audio"?[]:this.options.get("videoCodecs"),B=this.modules.renditions.getAudioRenditions(e),F=this.modules.renditions.getVideoRenditions(e),n=this.targetSubscription.audio.language,s=B==null?void 0:B.some(r=>r.language===n),a=t.find(r=>(F==null?void 0:F.find(E=>E.codec===r))!==void 0);a&&this.modules.subscription.setVideoCodec(a),this.logger.debug("Channel switch - started",{audioRenditions:B,targetSubscriptionLanguage:n,targetHasCurrentLanguage:s}),this.alignSizeAndBitRate(this.targetSubscription)}get maxSize(){var B,F;const{width:e,height:t}=(F=(B=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:B.video)!=null?F:uF();return{width:e,height:t}}set maxSize(e){this.modules.constraintCap.setUserSpecifiedCap({video:{width:e.width,height:e.height}}),this.alignSizeAndBitRate(this.targetSubscription)}get maxVideoBitRate(){var e,t;return(t=(e=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:e.video.bitRate)!=null?t:st()}set maxVideoBitRate(e){this.modules.constraintCap.setUserSpecifiedCap({video:{bitRate:e}}),this.alignSizeAndBitRate(this.targetSubscription)}get maxAudioBitRate(){var e,t;return(t=(e=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:e.audio.bitRate)!=null?t:st()}set maxAudioBitRate(e){this.modules.constraintCap.setUserSpecifiedCap({audio:{bitRate:e}}),this.alignSizeAndBitRate(this.targetSubscription)}get renditionLevels(){return this.modules.renditions.getRenditionLevels()}get currentRenditionLevel(){return this.modules.renditions.getRenditionLevel()}get targetRenditionLevel(){return this.modules.renditions.getRenditionLevel(this.modules.subscription.getTargetSubscription())}get isSwitchingRenditionLevel(){return this.modules.subscription.isSwitchingSubscription()}get videoBufferedRanges(){var e,t,B,F;return(F=(B=(e=this.modules.mseModule)==null?void 0:e.getBuffer("video"))!=null?B:(t=this.modules.decoder)==null?void 0:t.getBuffer("video"))!=null?F:[]}get audioBufferedRanges(){var e,t,B,F;return(F=(B=(e=this.modules.mseModule)==null?void 0:e.getBuffer("audio"))!=null?B:(t=this.modules.decoder)==null?void 0:t.getBuffer("audio"))!=null?F:[]}getApiClient(){return this.modules.connection.apiClient}get lastBufferEvent(){return this.modules.playback.getLastBufferStateEvent()}get activeRatios(){return this.modules.qualityOfService.activeRatios()}get bufferingRatios(){return this.modules.qualityOfService.bufferingRatios()}get timeSpentBuffering(){return this.modules.qualityOfService.timeSpentBuffering()}get timeActive(){return this.modules.qualityOfService.timeActive()}get mediaElement(){return this.element}get audioNode(){var e;return(e=this.modules)!=null&&e.canvasModule?this.modules.canvasModule.audioNode:void 0}get drmStatistics(){var e;return(e=this.encryptedMediaExtensions)==null?void 0:e.getStatistics()}get uptime(){return Date.now()-this.createdAt}suspend(){this.isSuspended||(Object.values(this.modules).forEach(e=>{e&&"suspend"in e&&e.suspend()}),this.isSuspended=!0)}unsuspend(){this.isSuspended&&(Object.values(this.modules).forEach(e=>{e&&"unsuspend"in e&&e.unsuspend()}),this.isSuspended=!1)}alignSizeAndBitRate(e){const t=this.modules.constraintCap.constrainSubscription(O(S({},e),{video:S({},e.video),audio:S({},e.audio)})),B=this.modules.constraintCap.getUserSpecifiedCap();!this.abrEnabled&&B&&(t.audio.bitRate=B.audio.bitRate,t.video.bitRate=B.video.bitRate,t.video.width=B.video.width,t.video.height=B.video.height);const F=this.modules.renditions.getRenditionLevel(t);if(F){if(F.video&&(this.modules.subscription.setVideoBitRate(F.video.bitRate),this.modules.subscription.setSize(F.video)),F.audio)this.modules.subscription.setAudioBitRate(F.audio.bitRate),this.modules.subscription.setLanguage(F.audio.language);else if(t.audio.language){let n=this.modules.renditions.getAudioRenditions(t.channelId);!this.abrEnabled&&B&&(n=n==null?void 0:n.filter(g=>g.bitRate<B.audio.bitRate));const s=t.audio.language,a=n==null?void 0:n.some(g=>g.language===s),r=n==null?void 0:n.find(g=>g.language),E=(n==null?void 0:n.length)&&n[0]||void 0;a||(r?(this.logger.debug("Randomizing language since target did not have current language"),this.modules.subscription.setAudioBitRate(r.bitRate),this.modules.subscription.setLanguage(r.language)):(this.logger.debug("Randomizing audio rendition since target did not have current language"),E!=null&&E.bitRate&&this.modules.subscription.setAudioBitRate(E.bitRate),this.modules.subscription.setLanguage(E==null?void 0:E.language)))}}}get currentSubscription(){return this.modules.subscription.getCurrentSubscription()}get targetSubscription(){return this.modules.subscription.getTargetSubscription()}willUseMediaSource(){return this.browser.supportsMediaSource&&this.options.get("mseEnabled")}};TQ=new WeakMap,qA=new WeakMap,yQ=new WeakMap,i(Ue,"MAX_POOL_SIZE",10),i(Ue,"INITIAL_MAX_BIT_RATE",2.5*1e3*1e3),i(Ue,"DISCONNECT_TIMEOUT",15*1e3),i(Ue,"REMOVE_CUE_THRESHOLD",1e3*10);let rn=Ue;const dn={buffering:"_buffering_1ccif_1","buffering-fullscreen":"_buffering-fullscreen_1ccif_16",hidden:"_hidden_1ccif_25","buffering-indicator":"_buffering-indicator_1ccif_31"};class Ae{constructor(A){i(this,"attach",A=>{this.detach(),A.appendChild(this.element)});i(this,"attachBefore",(A,e)=>{this.detach(),A.insertBefore(this.element,e)});i(this,"detach",()=>this.element.remove());this.element=A}}const wa=dn.hidden,CC=dn.buffering,Br=dn["buffering-fullscreen"],RC=dn["buffering-indicator"];class Ur extends Ae{constructor(){super(document.createElement("div"));i(this,"indicator",document.createElement("div"));i(this,"isHidden",()=>this.element.classList.contains(wa));i(this,"setHidden",e=>e?this.hide():this.show());i(this,"hide",()=>this.element.classList.add(wa));i(this,"show",()=>this.element.classList.remove(wa));i(this,"fullscreen",e=>{e?this.element.classList.add(Br):this.element.classList.remove(Br)});this.element.className=CC,this.indicator.className=RC,this.element.appendChild(this.indicator)}}class Fr extends $A{constructor(e){super();i(this,"config");i(this,"hlsUrl");i(this,"element");i(this,"connectingTimeout");i(this,"castingAvailable",!1);i(this,"updateAuthenticationToken",e=>{this.config.authenticationToken=e,this.hlsUrl=this.getHlsUrl(),this.castingAvailable&&(this.element.src=this.hlsUrl)});i(this,"unload",()=>{this.element&&(this.element.removeEventListener("webkitplaybacktargetavailabilitychanged",this.onAirPlayAvailable),this.element.removeEventListener("webkitcurrentplaybacktargetiswirelesschanged",this.onAirPlayPlaybackChanged),this.element.remove())});i(this,"onAirPlayAvailable",e=>{switch(e.availability){case"available":{this.castingAvailable=!0,this.element.src!==this.hlsUrl&&this.checkHlsUrl(this.hlsUrl).then(B=>{B&&(this.element.src=this.hlsUrl,this.emit("available"))});break}case"not-available":this.castingAvailable=!1;break}});i(this,"onAirPlayPlaybackChanged",()=>{window.clearTimeout(this.connectingTimeout),this.element.webkitCurrentPlaybackTargetIsWireless?(this.emit("connected"),this.element.style.display="block",this.element.paused&&this.element.play()):(this.emit("disconnected"),this.element.pause(),this.element.src="",this.element.src=this.hlsUrl,this.element.style.display="none")});this.config=e,this.hlsUrl=this.getHlsUrl(),this.element=document.createElement("video"),this.element.style.position="absolute",this.element.style.top="0",this.element.style.bottom="0",this.element.style.left="0",this.element.style.right="0",this.element.style.width="100%",this.element.style.height="100%",this.element.style.zIndex="1001",this.element.style.display="none",this.element.id="vindral-airplay-element",this.element.slot="overlay",this.element.playsInline=!0,this.element.controls=!0,this.element.preload="metadata",this.element.addEventListener("webkitplaybacktargetavailabilitychanged",this.onAirPlayAvailable),this.element.addEventListener("webkitcurrentplaybacktargetiswirelesschanged",this.onAirPlayPlaybackChanged),this.config.container.appendChild(this.element)}get casting(){return this.element.webkitCurrentPlaybackTargetIsWireless}set channelId(e){}showPlaybackTargetPicker(){this.element.paused&&(this.element.play(),this.connectingTimeout=window.setTimeout(()=>{this.casting||(this.element.pause(),this.element.src="",this.element.src=this.hlsUrl)},3e4)),this.element.webkitShowPlaybackTargetPicker()}static isAirPlaySupported(){return!!window.WebKitPlaybackTargetAvailabilityEvent}getHlsUrl(){const e=new URL(`/api/hls?channelId=${this.config.channelId}`,this.config.url);return this.config.authenticationToken&&e.searchParams.set("authenticationToken",this.config.authenticationToken),e.toString()}checkHlsUrl(e){return d(this,null,function*(){try{return(yield fetch(e,{method:"HEAD"})).ok}catch(t){return!1}})}}const nr={bar:"_bar_zames_1",hidden:"_hidden_zames_45"},uB={"channel-selection-item":"_channel-selection-item_suenn_1","channel-selection-item-selected":"_channel-selection-item-selected_suenn_8","channel-selection-item-image":"_channel-selection-item-image_suenn_13",withThumbnails:"_withThumbnails_suenn_19","hide-on-small":"_hide-on-small_suenn_27"},hC={"icon-button":"_icon-button_5fg7v_1"},sr={enter:{viewBox:"-12 -12 38 38",content:`<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(-5.000000, -5.000000)">
|
|
51
51
|
<path d="M6,14 C5.45,14 5,14.45 5,15 L5,18 C5,18.55 5.45,19 6,19 L9,19 C9.55,19 10,18.55 10,18 C10,17.45 9.55,17 9,17 L7,17 L7,15 C7,14.45 6.55,14 6,14 Z M6,10 C6.55,10 7,9.55 7,9 L7,7 L9,7 C9.55,7 10,6.55 10,6 C10,5.45 9.55,5 9,5 L6,5 C5.45,5 5,5.45 5,6 L5,9 C5,9.55 5.45,10 6,10 Z M17,17 L15,17 C14.45,17 14,17.45 14,18 C14,18.55 14.45,19 15,19 L18,19 C18.55,19 19,18.55 19,18 L19,15 C19,14.45 18.55,14 18,14 C17.45,14 17,14.45 17,15 L17,17 Z M14,6 C14,6.55 14.45,7 15,7 L17,7 L17,9 C17,9.55 17.45,10 18,10 C18.55,10 19,9.55 19,9 L19,6 C19,5.45 18.55,5 18,5 L15,5 C14.45,5 14,5.45 14,6 Z" fill="white"></path>
|
|
52
52
|
</g>`},exit:{viewBox:"-12 -12 38 38",content:`<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(-5.000000, -5.000000)">
|
|
53
53
|
<path d="M6,16 L8,16 L8,18 C8,18.55 8.45,19 9,19 C9.55,19 10,18.55 10,18 L10,15 C10,14.45 9.55,14 9,14 L6,14 C5.45,14 5,14.45 5,15 C5,15.55 5.45,16 6,16 Z M8,8 L6,8 C5.45,8 5,8.45 5,9 C5,9.55 5.45,10 6,10 L9,10 C9.55,10 10,9.55 10,9 L10,6 C10,5.45 9.55,5 9,5 C8.45,5 8,5.45 8,6 L8,8 Z M15,19 C15.55,19 16,18.55 16,18 L16,16 L18,16 C18.55,16 19,15.55 19,15 C19,14.45 18.55,14 18,14 L15,14 C14.45,14 14,14.45 14,15 L14,18 C14,18.55 14.45,19 15,19 Z M16,8 L16,6 C16,5.45 15.55,5 15,5 C14.45,5 14,5.45 14,6 L14,9 C14,9.55 14.45,10 15,10 L18,10 C18.55,10 19,9.55 19,9 C19,8.45 18.55,8 18,8 L16,8 Z" fill="white"></path>
|
|
@@ -57,4 +57,4 @@ void main() {
|
|
|
57
57
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2" />
|
|
58
58
|
</g>`},unmute:{viewBox:"-10 -10 44 44",content:`<g fill="none" stroke="white">
|
|
59
59
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.536 8.464a5 5 0 010 7.072m2.828-9.9a9 9 0 010 12.728M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z" />
|
|
60
|
-
</svg>`},pause:{viewBox:"-160 -160 832 832",content:'<path fill="white" d="M208,432H160a16,16,0,0,1-16-16V96a16,16,0,0,1,16-16h48a16,16,0,0,1,16,16V416A16,16,0,0,1,208,432Z"/><path fill="white" d="M352,432H304a16,16,0,0,1-16-16V96a16,16,0,0,1,16-16h48a16,16,0,0,1,16,16V416A16,16,0,0,1,352,432Z"/>'},play:{viewBox:"-6 -6 36 36",content:'<path d="M7 17.259V6.74104C7 5.96925 7.83721 5.48837 8.50387 5.87726L18.2596 11.5681C18.5904 11.761 18.5904 12.2389 18.2596 12.4319L8.50387 18.1227C7.83721 18.5116 7 18.0308 7 17.259Z" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>'},airPlay:{viewBox:"-8 -8 40 40",content:'<path fill="white" d="M12.8 13.4c-.1-.1-.1-.2-.2-.2c-.5-.3-1.1-.2-1.5.2l-4 6c0 .2-.1.4-.1.6c0 .6.4 1 1 1h8c.2 0 .4-.1.6-.2c.5-.3.6-.9.3-1.4zM19 3H5C3.3 3 2 4.3 2 6v9c0 1.7 1.3 3 3 3h.8c.6 0 1-.4 1-1s-.4-1-1-1H5c-.6 0-1-.4-1-1V6c0-.6.4-1 1-1h14c.6 0 1 .4 1 1v9c0 .6-.4 1-1 1h-.8c-.6 0-1 .4-1 1s.4 1 1 1h.8c1.7 0 3-1.3 3-3V6c0-1.7-1.3-3-3-3"/>'}},aC=sC["icon-button"];class Kt extends te{constructor(e,t,B){super(document.createElement("div"));i(this,"iconElement");i(this,"setIcon",e=>{this.iconElement.setAttribute("viewBox",ir[e].viewBox),this.iconElement.innerHTML=ir[e].content});i(this,"isHidden",()=>this.element.style.display==="none");i(this,"setHidden",e=>e?this.hide():this.show());i(this,"show",()=>void(this.element.style.display="block"));i(this,"hide",()=>void(this.element.style.display="none"));this.element.style.cursor="pointer",this.element.setAttribute("role","button"),this.element.setAttribute("aria-label",e),this.iconElement=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.iconElement.setAttribute("width","40px"),this.iconElement.setAttribute("height","40px"),this.iconElement.setAttribute("class",aC),this.setIcon(t),this.element.addEventListener("click",B),this.element.appendChild(this.iconElement)}}const ln={list:"_list_pxz62_1","list-item":"_list-item_pxz62_10","list-item-disabled":"_list-item-disabled_pxz62_14",hidden:"_hidden_pxz62_18"},Br=ln.hidden,oC=ln.list,lC=ln["list-item"],rC=ln["list-item-disabled"];class dC extends te{constructor({items:e,onItemClick:t,classNames:B=[],maxHeight:F}){super(document.createElement("div"));i(this,"onItemClick");i(this,"updateItems",e=>{var t;for(;this.element.firstChild;)(t=this.element.lastChild)==null||t.remove();e.forEach(B=>{const F=document.createElement("div");B.disabled||F.addEventListener("click",()=>this.onItemClick(B)),F.className=[lC,B.disabled?rC:""].join(" "),F.appendChild(B.element()),this.element.appendChild(F)})});i(this,"hide",()=>this.element.classList.add(Br));i(this,"show",()=>this.element.classList.remove(Br));this.element.className=[oC,...B].join(" "),this.onItemClick=t,this.updateItems(e),F&&(this.element.style.maxHeight=F)}}const Da={container:"_container_13xnz_1",hidden:"_hidden_13xnz_6",list:"_list_13xnz_10"},EC=Da.list,Ur=Da.hidden,gC=Da.container;class rn extends te{constructor({label:e,items:t,onItemClick:B,iconButtonType:F,onToggle:n}){super(document.createElement("div"));i(this,"iconButton");i(this,"onItemClick");i(this,"onToggle");i(this,"maxHeight");i(this,"items");i(this,"list");i(this,"onButtonClick",()=>{this.toggleShowChannels(),this.onToggle(this)});i(this,"toggleShowChannels",()=>{this.list?this.hideList():this.showList()});i(this,"handleItemClick",e=>{this.toggleShowChannels(),this.onItemClick(e)});i(this,"showList",()=>{this.list=new dC({items:this.items,onItemClick:this.handleItemClick,classNames:[EC],maxHeight:this.maxHeight}),this.list.attach(this.element)});i(this,"hideList",()=>{var e;(e=this.list)==null||e.detach(),this.list=void 0});i(this,"updateItems",e=>{var t;this.items=e,(t=this.list)==null||t.updateItems(e)});i(this,"isListVisible",()=>this.list!==void 0);i(this,"hide",()=>{this.element.classList.add(Ur)});i(this,"show",()=>{this.element.classList.remove(Ur)});this.element.className=gC,this.onItemClick=B,this.onToggle=n,this.items=t,this.iconButton=new Kt(e,F,this.onButtonClick),this.iconButton.attach(this.element)}}const IC=uB["hide-on-small"],cC=uB["channel-selection-item"],CC=uB["channel-selection-item-selected"],RC=uB["channel-selection-item-image"],hC=uB.withThumbnails;class SC extends rn{constructor({vindral:A,enabled:e,thumbnailsEnabled:t,thumbnailModule:B}){const F=()=>{const s=A.channels.map(a=>({channel:a,disabled:!a.isLive,element:()=>{const d=document.createElement("div");if(d.className=[cC,a.channelId===A.channelId?CC:""].join(" "),B&&t){d.classList.add(hC);const E=document.createElement("p");E.innerHTML=a.name,d.appendChild(E);const g=B.getImageUrl(a),c=document.createElement("img");g&&(c.className=RC,c.src=g,d.style.backgroundImage=`url(${g})`)}else d.innerHTML=a.name;return d}}));this.maxHeight=`calc(${Math.max(110,A.mediaElement.clientHeight)}px - 46px)`,this.updateItems(s),s.length>1&&e!=!1?this.show():this.hide()};A.on("channels",F);const n=s=>A.channelId=s.channel.channelId;super({label:"Channel List",items:[],onItemClick:n,onToggle:V,iconButtonType:"channels"}),this.element.classList.add(IC),this.hide()}}const Fr={"language-button-item":"_language-button-item_1dov5_1","language-button-item-selected":"_language-button-item-selected_1dov5_6"},JC=Fr["language-button-item"],VC=Fr["language-button-item-selected"];class uC extends rn{constructor({vindral:A}){const e=()=>{const B=A.languages.map(F=>({language:F,disabled:!1,element:()=>{const n=document.createElement("div");return n.className=[JC,F===A.language?VC:""].join(" "),n.innerHTML=F,n}}));this.maxHeight=`calc(${Math.max(110,A.mediaElement.clientHeight)}px - 46px)`,this.updateItems(B),B.length>0?this.show():this.hide()};A.on("languages",e);const t=B=>A.language=B.language;super({label:"Language",items:[],onItemClick:t,onToggle:V,iconButtonType:"languages"}),this.hide()}}class kC extends te{constructor({vindral:e}){super(document.createElement("div"));i(this,"vindral");i(this,"playButton");i(this,"updateState",()=>{this.playButton.setIcon(this.playIcon())});i(this,"onPlayClick",()=>{this.vindral.playbackState!=="paused"?this.vindral.pause():this.vindral.play(),this.playButton.setIcon(this.playIcon())});i(this,"playIcon",()=>this.vindral.playbackState==="paused"?"play":"pause");this.element.style.cursor="pointer",this.vindral=e,this.playButton=new Kt("Play",this.playIcon(),this.onPlayClick),this.playButton.attach(this.element)}}const kB={item:"_item_5vhyo_1","item-selected":"_item-selected_5vhyo_6",title:"_title_5vhyo_10","sub-title":"_sub-title_5vhyo_14","hide-on-small":"_hide-on-small_5vhyo_21"},NC=kB["hide-on-small"],mC=kB.item,WC=kB["item-selected"],pC=kB.title,DC=kB["sub-title"];class ZC extends rn{constructor({vindral:A}){const e=()=>{const B=A.renditionLevels.map(F=>({rendition:F,disabled:!1,element:()=>{var k,p,w;const n=document.createElement("div");n.className=[mC,F===A.currentRenditionLevel?WC:""].join(" ");const s=document.createElement("span"),a=document.createElement("span"),{audio:d,video:E}=F,g=E?fd(E):void 0,c=d?Gd(d.sampleRate):void 0;let J=bd(((k=E==null?void 0:E.bitRate)!=null?k:0)+((p=d==null?void 0:d.bitRate)!=null?p:0));if(E){const M=E.frameRate[0]/E.frameRate[1],D=E.frameRate[0]%E.frameRate[1]===0?`${M}p`:`${M.toFixed(2)}p`;J+=`, ${D}`}return s.innerHTML=(w=g!=null?g:c)!=null?w:"",s.className=pC,a.innerHTML=J,a.className=DC,n.appendChild(s),n.appendChild(a),n}}));this.maxHeight=`calc(${Math.max(110,A.mediaElement.clientHeight)}px - 46px)`,this.updateItems(B)};A.on("rendition level",e),A.on("rendition levels",e);const t=({rendition:B})=>{B.audio&&(A.maxAudioBitRate=B.audio.bitRate),B.video&&(A.maxVideoBitRate=B.video.bitRate,A.maxSize=B.video)};super({label:"Rendition Levels",items:[],onItemClick:t,onToggle:V,iconButtonType:"levels"}),this.element.classList.add(NC)}}class wC extends te{constructor(){super(document.createElement("div")),this.element.style.flexGrow="1"}}const nr={"text-track-button-item":"_text-track-button-item_1ry10_1","text-track-button-item-selected":"_text-track-button-item-selected_1ry10_6"},sr=nr["text-track-button-item"],ar=nr["text-track-button-item-selected"];class TC extends rn{constructor({vindral:A}){const e=()=>{const B=A.textTracks.map(F=>({textTrack:F,disabled:!1,element:()=>{const n=document.createElement("div");return n.className=[sr,F===A.textTrack?ar:""].join(" "),n.innerHTML=F,n}}));B.length>0?(B.push({textTrack:void 0,disabled:!1,element:()=>{const F=document.createElement("div");return F.className=[sr,A.textTrack===void 0?ar:""].join(" "),F.innerHTML="Off",F}}),this.show()):this.hide(),this.maxHeight=`calc(${Math.max(110,A.mediaElement.clientHeight)}px - 46px)`,this.updateItems(B)};A.on("text tracks",e);const t=B=>A.textTrack=B.textTrack;super({label:"Text Tracks",items:[],onItemClick:t,onToggle:V,iconButtonType:"textTracks"}),this.hide()}}class yC extends te{constructor({vindral:e}){super(document.createElement("div"));i(this,"vindral");i(this,"muteButton");i(this,"updateState",()=>{this.muteButton.setIcon(this.muteIcon())});i(this,"onMuteClick",()=>{this.vindral.muted=!this.vindral.muted,this.muteButton.setIcon(this.muteIcon())});i(this,"muteIcon",()=>this.vindral.muted?"mute":"unmute");this.element.style.cursor="pointer",this.vindral=e,this.muteButton=new Kt("Mute",this.muteIcon(),this.onMuteClick),this.muteButton.attach(this.element)}}const dn=Qr.hidden,bC=Qr.bar;class fC extends te{constructor({vindral:e,onFullscreenClicked:t,onOneToOneClicked:B,onPipClicked:F,onAirPlayClicked:n,pauseButtonEnabled:s,fullscreenButtonEnabled:a,pipButtonEnabled:d,channelSelectionEnabled:E,channelSelectionThumbnails:g,renditionLevelsEnabled:c,languagesButtonEnabled:J,textTracksButtonEnabled:k,oneToOneButtonEnabled:p,thumbnailModule:w}){super(document.createElement("div"));i(this,"items",[]);i(this,"isMouseInElement",!1);i(this,"volumeControls");i(this,"playControls");i(this,"oneToOneButton");i(this,"fullscreenButton");i(this,"airPlayButton");i(this,"containerElement");i(this,"hideLists",()=>{this.items.forEach(e=>"hideList"in e&&e.hideList())});i(this,"listButtons",()=>this.items);i(this,"isAnyListOpen",()=>this.items.filter(e=>"isListVisible"in e&&e.isListVisible()).length>0);i(this,"hasFocus",()=>this.isMouseInElement||this.isAnyListOpen());i(this,"isHidden",()=>this.element.classList.contains(dn));i(this,"hide",()=>{this.containerElement.style.setProperty("--vindral-control-bar-offset","0px"),this.element.classList.add(dn)});i(this,"show",()=>{this.containerElement.style.setProperty("--vindral-control-bar-offset","-96px"),this.element.classList.remove(dn)});i(this,"addCastButton",()=>{const e=document.createElement("google-cast-launcher");this.element.insertBefore(e,this.element.lastChild)});i(this,"addAirPlayButton",()=>{this.airPlayButton.attachBefore(this.element,this.element.lastChild)});i(this,"updateState",()=>{this.playControls.updateState(),this.volumeControls.updateState()});i(this,"onToggle",e=>{this.listButtons().filter(t=>e!==t).forEach(t=>"hideList"in t&&t.hideList())});this.element.className=[bC,dn].join(" ");const M=new wC;this.oneToOneButton=new Kt("One to One","oneToOne",B),this.fullscreenButton=new Kt("Fullscreen","enter",t),this.airPlayButton=new Kt("AirPlay","airPlay",n);const D=new Kt("Picture in Picture","pip",F),G=new SC({vindral:e,enabled:E,thumbnailsEnabled:g,thumbnailModule:g?w:void 0}),v=new ZC({vindral:e});this.volumeControls=new yC({vindral:e}),this.playControls=new kC({vindral:e}),this.containerElement=e.mediaElement,s&&e.getOptions().pauseSupportEnabled&&this.playControls.attach(this.element),e.getOptions().media!=="video"&&this.volumeControls.attach(this.element),M.attach(this.element);const H=[];if(J){const j=new uC({vindral:e});j.attach(this.element),H.push(j)}if(k){const j=new TC({vindral:e});j.attach(this.element),H.push(j)}v.attach(this.element),G.attach(this.element),D.attach(this.element),this.oneToOneButton.attach(this.element),this.fullscreenButton.attach(this.element),this.items.push(M,...H,v,G,D,this.fullscreenButton),this.items.forEach(j=>"onToggle"in j&&(j.onToggle=this.onToggle)),p||this.oneToOneButton.hide(),a||this.fullscreenButton.hide(),d||D.hide(),E||G.hide(),c||v.hide(),navigator.maxTouchPoints<1&&(this.element.addEventListener("mouseenter",()=>this.isMouseInElement=!0),this.element.addEventListener("mouseleave",()=>this.isMouseInElement=!1))}}const or={castoverlay:"_castoverlay_1n91l_1",hidden:"_hidden_1n91l_20"},Za=or.hidden,GC=or.castoverlay;class MC extends te{constructor(){super(document.createElement("div"));i(this,"onClick");i(this,"setText",e=>{this.element.innerText=e});i(this,"hide",()=>this.element.classList.add(Za));i(this,"show",()=>this.element.classList.remove(Za));this.element.classList.add(GC),this.element.classList.add(Za),this.element.innerText="device"}}const NB={button:"_button_137xm_21",image:"_image_137xm_96",overlay:"_overlay_137xm_116",selected:"_selected_137xm_134",hidden:"_hidden_137xm_139"},vC=NB.button,wa=NB.hidden,LC=NB.overlay,lr=NB.image,rr=NB.selected;class HC extends te{constructor({title:e,onClick:t,imageUrl:B,selected:F}){super(document.createElement("button"));i(this,"overlay");i(this,"imageHolder1");i(this,"imageHolder2");i(this,"isImageHolder1Active",!1);i(this,"loadingOverlay");i(this,"transition",(e,t,B)=>{t.style.backgroundImage=`url(${B})`,t.style.opacity="1",e.style.opacity="0"});i(this,"setSelected",e=>{e?this.element.classList.add(rr):this.element.classList.remove(rr)});i(this,"setAnimationDelay",e=>{this.element.style.animationDelay=e});i(this,"hideLoading",()=>{this.loadingOverlay.hide()});i(this,"isHidden",()=>this.element.classList.contains(wa));i(this,"setHidden",e=>e?this.hide():this.show());i(this,"hide",()=>this.element.classList.add(wa));i(this,"show",()=>this.element.classList.remove(wa));this.element.className=vC,F&&this.setSelected(F),this.element.onclick=()=>{this.loadingOverlay.show(),t()},this.imageHolder1=document.createElement("div"),this.imageHolder1.className=lr,this.imageHolder1.style.animationFillMode="forwards",this.imageHolder2=document.createElement("div"),this.imageHolder2.className=lr,this.imageHolder2.style.animationFillMode="forwards",B&&(this.imageHolder1.style.backgroundImage=`url(${B})`,this.isImageHolder1Active=!0),this.loadingOverlay=new er,this.loadingOverlay.attach(this.element),this.loadingOverlay.hide(),this.element.appendChild(this.imageHolder1),this.element.appendChild(this.imageHolder2),this.overlay=document.createElement("div"),this.overlay.className=LC,this.element.appendChild(this.overlay);const n=document.createElement("span");n.innerHTML=e,this.element.appendChild(n),this.show()}setImageUrl(e){if(e){if(!this.imageHolder1.style.backgroundImage){this.imageHolder1.style.backgroundImage=`url(${e})`,this.isImageHolder1Active=!0;return}this.isImageHolder1Active?this.transition(this.imageHolder1,this.imageHolder2,e):this.transition(this.imageHolder2,this.imageHolder1,e),this.isImageHolder1Active=!this.isImageHolder1Active}}}const dr={container:"_container_btpgd_13",hidden:"_hidden_btpgd_37"},Ta=dr.hidden,YC=dr.container;class xC extends te{constructor({vindral:e,thumbnailModule:t}){var B;super(document.createElement("div"));i(this,"thumbnailModule");i(this,"list");i(this,"vindral");i(this,"setSelected",e=>{this.list.forEach((t,B)=>{t.setSelected(B.channelId===e.channelId)}),e.channelId!==this.vindral.channelId&&(this.vindral.channelId=e.channelId)});i(this,"isHidden",()=>this.element.classList.contains(Ta));i(this,"setHidden",e=>e?this.hide():this.show());i(this,"hide",()=>this.element.classList.add(Ta));i(this,"show",()=>this.element.classList.remove(Ta));this.thumbnailModule=t,this.list=new Map,this.vindral=e,this.vindral.on("context switch",F=>{if(F==="completed"){this.list.forEach(s=>s.hideLoading());const n=this.vindral.channelId;this.vindral.channels.forEach(s=>{var a;(a=this.list.get(s))==null||a.setSelected(s.channelId===n)})}}),this.vindral.on("channels",()=>{this.list.forEach(n=>n.detach()),this.list.clear();const F=this.vindral.channelId;this.vindral.channels.forEach((n,s)=>{var d;if(!n.isLive)return;const a=new HC({title:n.name,onClick:()=>{this.setSelected(n)},imageUrl:(d=this.thumbnailModule)==null?void 0:d.getImageUrl(n),selected:n.channelId===F});a.setAnimationDelay(`${s*.05}s`),this.list.set(n,a)}),this.list.forEach(n=>n.attach(this.element))}),(B=this.thumbnailModule)==null||B.on("updatedImages",()=>{this.list.forEach((F,n)=>{var s;F.setImageUrl((s=this.thumbnailModule)==null?void 0:s.getImageUrl(n))})}),this.element.className=YC,this.show()}}const ya={fullscreen:"_fullscreen_1v9d8_1"}.fullscreen,as=class as extends ee{constructor(e){super();o(this,lB);i(this,"container");i(this,"unload",()=>{document.removeEventListener("webkitfullscreenchange",this.onChange),document.removeEventListener("mozfullscreenchange",this.onChange),document.removeEventListener("fullscreenchange",this.onChange),this.container.removeEventListener("webkitendfullscreen",this.onChange)});i(this,"request",()=>I(this,lB,Nd).call(this).catch(e=>{throw this.onChange(),e}));i(this,"exit",()=>I(this,lB,md).call(this).catch(e=>{throw this.onChange(),e}));i(this,"onChange",()=>this.emit("on fullscreen change",this.isFullscreen()));i(this,"isFullscreen",()=>!!(document.fullscreenElement||document.fullscreen||document.mozFullScreen||document.webkitIsFullScreen||this.container.classList.contains(ya)));i(this,"isSupported",()=>as.isFullscreenApiSupported(this.container)||!this.isInIframe());i(this,"isInIframe",()=>window.location!==window.parent.location);this.container=e,document.addEventListener("webkitfullscreenchange",this.onChange),document.addEventListener("mozfullscreenchange",this.onChange),document.addEventListener("fullscreenchange",this.onChange),this.container.addEventListener("webkitendfullscreen",this.onChange)}};lB=new WeakSet,Nd=function(){return this.container.requestFullscreen?this.container.requestFullscreen():this.container.webkitRequestFullscreen?this.container.webkitRequestFullscreen():this.container.webkitEnterFullscreen?this.container.webkitEnterFullscreen():this.container.mozRequestFullScreen?this.container.mozRequestFullScreen():(this.container.classList.add(ya),Promise.resolve())},md=function(){return document.exitFullscreen?document.exitFullscreen():document.webkitFullscreenElement&&document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozFullscreenElement&&document.mozCancelFullScreen?document.mozCancelFullScreen():this.container.webkitExitFullscreen?this.container.webkitExitFullscreen():(this.container.classList.remove(ya),Promise.resolve())},i(as,"isFullscreenApiSupported",e=>(e.requestFullscreen||e.webkitRequestFullscreen||e.webkitEnterFullscreen||e.mozRequestFullScreen)!==void 0);let mB=as;const ba={player:"_player_j1uto_1","one-to-one":"_one-to-one_j1uto_19","audio-only":"_audio-only_j1uto_28"},fa={playoverlay:"_playoverlay_1niji_1",hidden:"_hidden_1niji_17","playoverlay-indicator":"_playoverlay-indicator_1niji_23"},En=fa.hidden,XC=fa.playoverlay,KC=fa["playoverlay-indicator"];class OC extends te{constructor(){super(document.createElement("div"));i(this,"onClick");i(this,"indicator",document.createElement("div"));i(this,"isHidden",()=>this.element.classList.contains(En));i(this,"setHidden",e=>e?this.hide():this.show());i(this,"hide",()=>this.element.classList.add(En));i(this,"show",()=>this.element.classList.remove(En));this.element.classList.add(XC),this.element.classList.add(En),this.indicator.className=KC,this.element.appendChild(this.indicator),this.element.onclick=()=>{this.onClick&&this.onClick()}}}class zC extends ee{constructor({vindral:e,refreshEveryMs:t}){super();i(this,"thumbnails",new Map);i(this,"interval");i(this,"channels");i(this,"refreshEveryMs");i(this,"isFetching",!1);i(this,"hasFetched",!1);this.channels=[...e.channels],this.refreshEveryMs=t||6e4,e.on("channels",()=>{this.channels=[...e.channels],this.hasFetched||this.refreshThumbnails()})}start(){this.interval||(this.interval=window.setInterval(()=>{this.refreshThumbnails()},this.refreshEveryMs))}stop(){window.clearInterval(this.interval)}getImageUrl(e){return this.thumbnails.get(e.channelId)}refreshThumbnails(){return r(this,null,function*(){if(!this.isFetching){this.isFetching=!0;try{const e=this.channels.map(t=>r(this,null,function*(){const B=t.thumbnailUrls.length<2?0:Math.ceil(t.thumbnailUrls.length/2),F=t.thumbnailUrls[B];if(F){const n=yield fetch(F);if(n.ok){const s=yield n.blob(),a=URL.createObjectURL(s),d=this.thumbnails.get(t.channelId);d&&d.startsWith("blob:")&&URL.revokeObjectURL(d),this.thumbnails.set(t.channelId,a)}}}));yield Promise.all(e),this.emit("updatedImages")}catch(e){console.warn("Error fetching thumbnails",e)}this.isFetching=!1,this.hasFetched=!0}})}}const PC=ba.player,Ga=ba["one-to-one"],jC=ba["audio-only"],qC={controlsEnabled:!0,castEnabled:!0,channelSelectionEnabled:!0,renditionLevelsEnabled:!1,languagesButtonEnabled:!0,textTracksButtonEnabled:!0,oneToOneButtonEnabled:!1,iosWakeLockEnabled:!0,hideTimeout:2e3,pauseButtonEnabled:!0,airPlayButtonEnabled:!1,playOverlayEnabled:!0,bufferingOverlayEnabled:!0},_C=Q=>!zo(Q);class $C{constructor(A,e){i(this,"core");i(this,"castSender");i(this,"airPlaySender");i(this,"options");i(this,"state");i(this,"playerElement",document.createElement("div"));i(this,"bufferingOverlay");i(this,"playOverlay");i(this,"castOverlay",new MC);i(this,"channelSelectionList");i(this,"bar");i(this,"stateInterval");i(this,"thumbnailModule");i(this,"browser",Ss());i(this,"unload",()=>{var A,e;this.stateInterval&&window.clearInterval(this.stateInterval),this.core.unload(),this.playerElement.remove(),(A=this.thumbnailModule)==null||A.stop(),(e=this.airPlaySender)==null||e.unload()});i(this,"attach",A=>{this.stateInterval&&window.clearInterval(this.stateInterval),this.stateInterval=window.setInterval(this.checkState,100),this.playerElement.remove(),A.appendChild(this.playerElement)});i(this,"setupCastSender",()=>r(this,null,function*(){if(this.options.castEnabled){try{yield this.castSender.init()}catch(A){return}this.castSender.on("connected",()=>{this.state.fullscreen.isFullscreen()&&this.exitFullscreen(),this.core.pause(),this.castOverlay.setText(`Casting to ${this.castSender.getReceiverName()||"device"}`),this.castOverlay.show()}),this.castSender.on("disconnected",()=>{document.hidden||this.core.play(),this.castOverlay.hide()}),this.bar.addCastButton()}}));i(this,"setupAirPlaySender",A=>{A.once("available",()=>{this.bar.addAirPlayButton()}),A.on("connected",()=>{this.core.mediaElement.style.display="hidden",this.core.pause()}),A.on("disconnected",()=>{this.core.mediaElement.style.display="block",document.hidden||this.core.play()})});i(this,"onMouseMove",()=>{this.options.controlsEnabled&&(this.bumpInteractTime(),this.bar.isHidden()&&this.bar.show())});i(this,"onClick",A=>{const e=A.detail===2&&(A.target instanceof HTMLVideoElement||A.target instanceof HTMLCanvasElement),t=this.options.fullscreenButtonEnabled!==!1&&this.options.controlsEnabled!==!1;e&&t&&this.toggleFullscreen().catch(B=>{console.error("error",B)})});i(this,"togglePip",()=>this.core.pictureInPicture.isActive()?this.core.pictureInPicture.exit():(this.triggerUserInput(),this.core.pictureInPicture.enter()));i(this,"toggleFullscreen",()=>r(this,null,function*(){return this.isInFullscreen()?this.exitFullscreen():this.enterFullscreen()}));i(this,"triggerUserInput",()=>{if(this.browser.platform.isIOS){const A=this.core.muted;this.core.muted=!A,this.core.muted=A}});i(this,"toggleOneToOne",()=>{this.playerElement.classList.contains(Ga)?this.playerElement.classList.remove(Ga):this.playerElement.classList.add(Ga)});i(this,"isInFullscreen",()=>this.state.fullscreen.isFullscreen());i(this,"enterFullscreen",()=>r(this,null,function*(){this.triggerUserInput(),this.iosHackResetSize(),this.bar.fullscreenButton.setIcon("exit"),yield this.state.fullscreen.request(),this.lockOrientation()}));i(this,"exitFullscreen",()=>(this.bar.fullscreenButton.setIcon("enter"),this.unlockOrientation(),this.state.fullscreen.exit()));i(this,"showAirPlayPicker",()=>{var A;(A=this.airPlaySender)==null||A.showPlaybackTargetPicker()});i(this,"lockOrientation",()=>{var e,t;if(!("orientation"in screen)||!screen.orientation.lock)return;const A=this.core.currentRenditionLevel;A!=null&&A.video&&screen.orientation.lock(((e=A==null?void 0:A.video)==null?void 0:e.width)>((t=A==null?void 0:A.video)==null?void 0:t.height)?"landscape-primary":"portrait-primary").catch(()=>{})});i(this,"unlockOrientation",()=>{!("orientation"in screen)||!screen.orientation.unlock||screen.orientation.unlock()});i(this,"checkState",()=>{this.bar.hasFocus()||this.state.lastInteractionTime&&this.state.lastInteractionTime<=Date.now()-this.options.hideTimeout&&this.core.media!=="audio"&&this.core.playbackState!=="paused"&&this.bar.hide()});i(this,"needsThumbnails",()=>{var A,e,t,B,F,n;return(e=(A=this.options.channelSelectionOptions)==null?void 0:A.barButton)!=null&&e.enabled&&((B=(t=this.options.channelSelectionOptions)==null?void 0:t.barButton)!=null&&B.thumbnails)?!0:!!((n=(F=this.options.channelSelectionOptions)==null?void 0:F.list)!=null&&n.enabled)});i(this,"bumpInteractTime",()=>void(this.state.lastInteractionTime=Date.now()));var a,d,E,g,c,J,k;const t=S(S({},qC),e);this.options=t,this.playerElement.className=PC,_C(A)?this.core=A:this.core=new an(A);const B=!mB.isFullscreenApiSupported(this.playerElement)&&mB.isFullscreenApiSupported(this.core.mediaElement)?this.core.mediaElement:this.playerElement;this.state={isBuffering:!1,fullscreen:new mB(B),lastInteractionTime:0},this.needsThumbnails()&&(this.thumbnailModule=new zC({vindral:this.core,refreshEveryMs:e==null?void 0:e.thumbnailUpdateInterval}),this.thumbnailModule.start()),(d=(a=this.options.channelSelectionOptions)==null?void 0:a.list)!=null&&d.enabled&&(this.channelSelectionList=new xC({vindral:this.core,thumbnailModule:this.thumbnailModule}));const F=(e==null?void 0:e.channelSelectionEnabled)||((g=(E=e==null?void 0:e.channelSelectionOptions)==null?void 0:E.barButton)==null?void 0:g.enabled),n=(J=(c=e==null?void 0:e.channelSelectionOptions)==null?void 0:c.barButton)==null?void 0:J.thumbnails;this.bar=new fC(O(S({vindral:this.core,thumbnailModule:this.thumbnailModule},t),{channelSelectionEnabled:F,channelSelectionThumbnails:n,fullscreenButtonEnabled:this.core.media!=="audio"&&(e==null?void 0:e.fullscreenButtonEnabled)&&this.state.fullscreen.isSupported(),oneToOneButtonEnabled:this.core.media!=="audio"&&(e==null?void 0:e.oneToOneButtonEnabled),pipButtonEnabled:(e==null?void 0:e.pipButtonEnabled)&&this.core.pictureInPicture.isSupported(),onFullscreenClicked:()=>void this.toggleFullscreen().catch(p=>console.error("error",p)),onOneToOneClicked:()=>this.toggleOneToOne(),onPipClicked:()=>void this.togglePip().catch(p=>console.error("error",p)),onAirPlayClicked:()=>this.showAirPlayPicker()})),this.core.media==="audio"&&(this.playerElement.classList.add(jC),this.options.controlsEnabled&&this.bar.show());const s=this.core.getCastOptions();this.castSender=new po({background:this.options.castBackground,receiverApplicationId:this.options.castReceiverApplicationId,options:s}),this.setupCastSender(),this.options.airPlayButtonEnabled&&tr.isAirPlaySupported()&&(this.airPlaySender=new tr({url:s.url,channelId:s.channelId,authenticationToken:s.authenticationToken,container:this.playerElement}),this.setupAirPlaySender(this.airPlaySender)),this.core.on("needs user input",p=>{var w;if(this.bar.updateState(),p.forVideo&&this.core.media!=="audio"||!this.options.controlsEnabled){(w=this.playOverlay)==null||w.show();return}p.forAudio&&this.options.controlsEnabled&&(this.state.lastInteractionTime=0,this.bar.show())}),this.core.on("volume state",()=>{this.bar.updateState()}),this.core.on("playback state",p=>{var w,M,D,G,v,H;switch(this.bar.updateState(),p){case"paused":this.bumpInteractTime(),(w=this.bufferingOverlay)==null||w.hide(),this.options.controlsEnabled&&this.bar.show(),(this.core.media!=="audio"||!this.options.controlsEnabled)&&((M=this.playOverlay)==null||M.show());break;case"playing":this.options.controlsEnabled&&((D=this.playOverlay)==null||D.hide()),(G=this.bufferingOverlay)==null||G.hide(),this.castOverlay.hide();break;case"buffering":{(v=this.bufferingOverlay)==null||v.show();const j=this.core.videoBufferedRanges[this.core.videoBufferedRanges.length-1],VA=!j||j.start>this.core.currentTime;(H=this.bufferingOverlay)==null||H.fullscreen(VA);break}}}),this.core.attach(this.playerElement),this.castOverlay.attach(this.playerElement),this.options.bufferingOverlayEnabled&&(this.bufferingOverlay=new er,this.bufferingOverlay.attach(this.playerElement)),this.options.playOverlayEnabled&&(this.playOverlay=new OC,this.playOverlay.attach(this.playerElement),this.playOverlay.onClick=()=>{var p;this.core.userInput(),(p=this.playOverlay)==null||p.hide()}),this.channelSelectionList&&this.channelSelectionList.attach(this.playerElement),this.bar.attach(this.playerElement),this.playerElement.addEventListener("click",this.onClick),this.playerElement.addEventListener("mousemove",this.onMouseMove),this.state.fullscreen.on("on fullscreen change",p=>{p?this.bar.fullscreenButton.setIcon("exit"):this.bar.fullscreenButton.setIcon("enter")}),(k=this.bufferingOverlay)==null||k.fullscreen(!0)}iosHackResetSize(){this.core.emitter.emit("ios-hack: reset size")}}var AR=function(){var Q=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(A){A=A||{};var e;e||(e=typeof A!="undefined"?A:{});var t,B;e.ready=new Promise(function(N,x){t=N,B=x});var F={},n;for(n in e)e.hasOwnProperty(n)&&(F[n]=e[n]);var s="";typeof document!="undefined"&&document.currentScript&&(s=document.currentScript.src),Q&&(s=Q),s.indexOf("blob:")!==0?s=s.substr(0,s.lastIndexOf("/")+1):s="";var a=e.print||console.log.bind(console),d=e.printErr||console.warn.bind(console);for(n in F)F.hasOwnProperty(n)&&(e[n]=F[n]);F=null;var E;e.wasmBinary&&(E=e.wasmBinary),e.noExitRuntime,typeof WebAssembly!="object"&&VA("no native wasm support detected");var g,c=!1,J=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,k,p,w,M=[],D=[],G=[];function v(){var N=e.preRun.shift();M.unshift(N)}var H=0,j=null;e.preloadedImages={},e.preloadedAudios={};function VA(N){throw e.onAbort&&e.onAbort(N),d(N),c=!0,N=new WebAssembly.RuntimeError("abort("+N+"). Build with -s ASSERTIONS=1 for more info."),B(N),N}function FA(N){return N.startsWith("data:application/octet-stream;base64,")}var uA="data:application/octet-stream;base64,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cSELA0AgUCAJQQJ0IgJqIgEgWCABKgIAkiJVIAIgEWoqAgAiVCBUIFVeGzgCACBQIAJBBHIiAmoiASBYIAEqAgCSIlUgAiARaioCACJUIFQgVV4bOAIAIAlBAmohCSALQQJrIgsNAAsLIARFDQAgUCAJQQJ0IgJqIgEgWCABKgIAkiJVIAIgEWoqAgAiVCBUIFVeGzgCAAsCQCAAQQFIDQAgAEEDcSEEQQAhCSAAQQFrQQNPBEAgAEF8cSEHA0AgESAJQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgAkEEciIBakEANgIAIAEgK2pBgICAj3w2AgAgASAlakGAgICPfDYCACARIAJBCHIiAWpBADYCACABICtqQYCAgI98NgIAIAEgJWpBgICAj3w2AgAgESACQQxyIgFqQQA2AgAgASArakGAgICPfDYCACABICVqQYCAgI98NgIAIAlBBGohCSAHQQRrIgcNAAsLIARFDQADQCARIAlBAnQiAWpBADYCACABICtqQYCAgI98NgIAIAEgJWpBgICAj3w2AgAgCUEBaiEJIARBAWsiBA0ACwsCQCAXIB1OIgENACAdIBciCWtBA3EiCwRAA0AgESAJQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIAlBAWohCSALQQFrIgsNAAsLIB0gF0F/c2pBA0kNAANAIBEgCUECdCIEakEANgIAIAQgK2pBgICAj3w2AgAgBCAlakGAgICPfDYCACARIARBBGoiAmpBADYCACACICtqQYCAgI98NgIAIAIgJWpBgICAj3w2AgAgESAEQQhqIgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgBEEMaiICakEANgIAIAIgK2pBgICAj3w2AgAgAiAlakGAgICPfDYCACAJQQRqIgkgHUcNAAsLAkAgAEEBSA0AQQAhCSAAQQFHBEAgAEF+cSELA0AgESAJIB1qQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgCUEBciAdakECdCICakEANgIAIAIgK2pBgICAj3w2AgAgAiAlakGAgICPfDYCACAJQQJqIQkgC0ECayILDQALCyAAQQFxRQ0AIBEgCSAdakECdCIAakEANgIAIAAgK2pBgICAj3w2AgAgACAlakGAgICPfDYCAAsCQCABDQAgF0EBaiEAIB0gF2tBAXEEQCARIBcgHWpBAnQiAWpBADYCACABICtqQYCAgI98NgIAIAEgJWpBgICAj3w2AgAgACEXCyAAIB1GDQADQCARIBcgHWpBAnQiAGpBADYCACAAICtqQYCAgI98NgIAIAAgJWpBgICAj3w2AgAgESAAQQRqIgBqQQA2AgAgACArakGAgICPfDYCACAAICVqQYCAgI98NgIAIBdBAmoiFyAdRw0ACwsgDyAiKAIcNgIoIBxBEGogAyAeID8gDygCECAaQRBqIA9B1ABqEC8gD0EANgI0QX0hBiAvICIoAhQgIigCHGdqQSBrTgRAICIoAiwEQCAPQQE2AiwLIB4gDygCEG0hBgsLIBxB0ABqJAAgBgv/BQIKfwZ9IAAoAhghCSAAKAIAIQcCQCAFQQFIDQAgBUEHcSEIIAVBAWtBB08EQCAFQXhxIQoDQCAJIAdBAXRBfHFqIAdBfHFqIAdBA3VBAnRqIAdBBHVBAnRqIAdBBXVBAnRqIAdBBnVBAnRqIAdBB3VBAnRqIAdBCHUiB0ECdGohCSAKQQhrIgoNAAsLIAhFDQADQCAJIAdBAXUiB0ECdGohCSAIQQFrIggNAAsLIAIgBEEBdEF8cWohCCAAIAVBAnRqKAIIIQwCQCAHQQNMBEAgDCAIEDAMAQtBACEKIAdBAnUiC0EBIAtBAUobIQ4gASAHQQF1Ig1BAWsgBmxBAnRqIQUgDCgCLCEAQQAgBkEBdCIGa0ECdCEPA0AgCCAALgEAQQN0IhBBBHJqIAUqAgAiEyAJIApBAnRqKgIAIhSUIAEqAgAiESAJIAogC2pBAnRqKgIAIhKUkjgCACAIIBBqIBQgEZQgEyASlJM4AgAgAEECaiEAIAUgD2ohBSABIAZBAnRqIQEgCkEBaiIKIA5HDQALIAwgCBAwIAdBBEgNACALQQFqQQF1IgBBASAAQQFKGyEAIAggDUECdGohCkEAIQcDQCAKQQRrIgEqAgAhEyAKQQhrIgoqAgAhFCAIIAgqAgQiESAJIAdBAnRqKgIAIhKUIAgqAgAiFSAJIAcgC2pBAnRqKgIAIhaUkjgCACABIBEgFpQgFSASlJM4AgAgCiATIAkgCyAHQX9zIgFqQQJ0aioCACIRlCAUIAkgASANakECdGoqAgAiEpSSOAIAIAggEyASlCAUIBGUkzgCBCAIQQhqIQggB0EBaiIHIABHDQALCyAEQQJtIQACQCAEQQJIDQAgAiAEQQJ0IgFqIQcgASADaiEIQQEhCQNAIAIgAioCACITIAhBBGsiCCoCACIUlCAHQQRrIgcqAgAiESADKgIAIhKUkzgCACAHIBEgFJQgEyASlJI4AgAgACAJRg0BIANBBGohAyACQQRqIQIgCUEBaiEJDAALAAsLwwICBn8BfSAAKAIsIAZsIQsgACgCICIMIAVBAXRqLgEAIAZsIQkgB0EBRwRAIAkgCyAHbSIAIAAgCUobIQkLQQAgBSAIGyEKIAxBACAEIAgbIgRBAXRqLgEAIg0gBmwiB0ECdCEAIAIhBSAHQQFOBEAgAkEAIAAQCSAAaiEFCyAEIApIBEAgACABaiEAIAQhAQNAIAMgAUECdCIHaioCACAHQcC+AWoqAgCSQwAAAEKWu0TvOfr+Qi7mP6IQGrYhDyAGIA1sIQcgDCABQQFqIgFBAXRqLgEAIg0gBmwhDgNAIAUgACoCACAPlDgCACAFQQRqIQUgAEEEaiEAIAdBAWoiByAOSA0ACyABIApHDQALCyAEIApKBEBBuIUCQdeFAkGHAhAGAAsgAkEAIAkgCBsiAEECdGpBACALIABrQQJ0EAkaC7EDAwJ8An8BfiAAvSIFQj+IpyEDAkACQAJ8AkAgAAJ/AkACQCAFQiCIp0H/////B3EiBEGrxpiEBE8EQCAAvUL///////////8Ag0KAgICAgICA+P8AVgRAIAAPCyAARO85+v5CLoZAZARAIABEAAAAAAAA4H+iDwsgAETSvHrdKyOGwGNFDQEgAERRMC3VEEmHwGNFDQEMBgsgBEHD3Nj+A0kNAyAEQbLFwv8DSQ0BCyAARP6CK2VHFfc/oiADQQN0QfDDAWorAwCgIgCZRAAAAAAAAOBBYwRAIACqDAILQYCAgIB4DAELIANFIANrCyIDtyIBRAAA4P5CLua/oqAiACABRHY8eTXvOeo9oiICoQwBCyAEQYCAwPEDTQ0CQQAhAyAACyEBIAAgASABIAEgAaIiACAAIAAgACAARNCkvnJpN2Y+okTxa9LFQb27vqCiRCzeJa9qVhE/oKJEk72+FmzBZr+gokQ+VVVVVVXFP6CioSIAokQAAAAAAAAAQCAAoaMgAqGgRAAAAAAAAPA/oCEBIANFDQAgASADEBUhAQsgAQ8LIABEAAAAAAAA8D+gC7ABAQR/IAAoAgwhBAJAIAAoAhAiBUEBaiICQSFJBEAgBSEDDAELA0AgACAAKAIEIgMgACgCCCICIAAoAhhqSwR/IAAgAkEBaiICNgIIIAAoAgAgAyACa2ogBDoAAEEABUF/CyAAKAIscjYCLCAEQQh2IQQgBUEPSiECIAVBCGsiAyEFIAINAAsgA0EBaiECCyAAIAI2AhAgACABIAN0IARyNgIMIAAgACgCFEEBajYCFAuSAwECfyAAKAIcIgQgA24hBSAAAn8gAQRAIAAgACgCICAFIAEgA2tsIARqajYCICAFIAIgAWtsDAELIAUgAiADa2wgBGoLIgM2AhwgA0GAgIAETQRAIAAoAiAhAQNAAkAgAUEXdiIFQf8BRwRAIAFBH3YhAiAAKAIoIgRBAE4EQEF/IQEgACAAKAIEIAAoAhgiAyAAKAIIaksEfyAAIANBAWo2AhggACgCACADaiACIARqOgAAQQAFQX8LIAAoAixyNgIsCyAAKAIkIgEEQCACQQFrIQQDQEF/IQMgACAAKAIEIAAoAhgiAiAAKAIIaksEfyAAIAJBAWo2AhggACgCACACaiAEOgAAQQAhAyAAKAIkBSABC0EBayIBNgIkIAAgACgCLCADcjYCLCABDQALCyAAIAVB/wFxNgIoIAAoAhwhAyAAKAIgIQEMAQsgACAAKAIkQQFqNgIkCyAAIANBCHQiAzYCHCAAIAFBCHRBgP7//wdxIgE2AiAgACAAKAIUQQhqNgIUIANBgYCABEkNAAsLC7EEAQh/QR8gA2ciCmshBiADIgQCfyAEQQJOBEAgA0ECa0EBdiIEQQFqIgVBAXEhCAJAIARFBEBBACEFIAMhBAwBCyAFQX5xIQlBACEFIAMhBANAIAIgBUEBdCIHQQZyai4BACILIAtsIAIgB0EEcmouAQAiCyALbGogBnYgBCACIAdBAnJqLgEAIgQgBGwgAiAHai4BACIEIARsaiAGdmpqIQQgBUEEaiEFIAlBAmsiCQ0ACwsgCARAIAQgAiAFQQF0IgRBAnJqLgEAIgUgBWwgAiAEai4BACIEIARsaiAGdmohBAsgA0F+cSEFCyAFC0oEQCAEIAIgBUEBdGouAQAiBCAEbCAGdmohBAtBACEFQSIgCiAEZ2prIgRBACAEQQBKGyEGQQAhBAJ/IANBAk4EQCADQQJrQQF2IgRBAWoiBUEBcSEKAkAgBEUEQEEAIQRBACEFDAELIAVBfnEhCUEAIQRBACEFA0AgAiAFQQF0IgdBBnJqLgEAIgggCGwgAiAHQQRyai4BACIIIAhsaiAGdiAEIAIgB0ECcmouAQAiBCAEbCACIAdqLgEAIgQgBGxqIAZ2amohBCAFQQRqIQUgCUECayIJDQALCyAKBEAgBCACIAVBAXQiBEECcmouAQAiBSAFbCACIARqLgEAIgQgBGxqIAZ2aiEECyADQX5xIQULIAMgBUoLBEAgAiAFQQF0ai4BACICIAJsIAZ2IARqIQQLIAEgBjYCACAAIAQ2AgALnRQCEH8CfiMAQdAAayIGJAAgBkGADDYCTCAGQTdqIRMgBkE4aiEQAkADQAJAIA1BAEgNAEH/////ByANayAESARAQeimAkE9NgIAQX8hDQwBCyAEIA1qIQ0LIAYoAkwiByEEAkACQAJAIActAAAiBQRAA0ACQAJAIAVB/wFxIgVFBEAgBCEFDAELIAVBJUcNASAEIQUDQCAELQABQSVHDQEgBiAEQQJqIgg2AkwgBUEBaiEFIAQtAAIhCyAIIQQgC0ElRg0ACwsgBSAHayEEIAAEQCAAIAcgBBATCyAEDQYgBigCTCEEIAYCfwJAIAYoAkwsAAFBMGtBCk8NACAELQACQSRHDQAgBCwAAUEwayEPQQEhESAEQQNqDAELQX8hDyAEQQFqCyIENgJMQQAhCAJAIAQsAAAiDkEgayIFQR9LDQBBASAFdCIFQYnRBHFFDQADQAJAIAYgBEEBaiIINgJMIAQsAAEiDkEgayIEQSBPDQBBASAEdCIEQYnRBHFFDQAgBCAFciEFIAghBAwBCwsgCCEEIAUhCAsCQCAOQSpGBEAgBgJ/AkAgBCwAAUEwa0EKTw0AIAYoAkwiBC0AAkEkRw0AIAQsAAFBAnQgA2pBwAFrQQo2AgAgBCwAAUEDdCACakGAA2soAgAhCkEBIREgBEEDagwBCyARDQZBACERQQAhCiAABEAgASABKAIAIgRBBGo2AgAgBCgCACEKCyAGKAJMQQFqCyIENgJMIApBf0oNAUEAIAprIQogCEGAwAByIQgMAQsgBkHMAGoQTSIKQQBIDQQgBigCTCEEC0F/IQkCQCAELQAAQS5HDQAgBC0AAUEqRgRAAkAgBCwAAkEwa0EKTw0AIAYoAkwiBC0AA0EkRw0AIAQsAAJBAnQgA2pBwAFrQQo2AgAgBCwAAkEDdCACakGAA2soAgAhCSAGIARBBGoiBDYCTAwCCyARDQUgAAR/IAEgASgCACIEQQRqNgIAIAQoAgAFQQALIQkgBiAGKAJMQQJqIgQ2AkwMAQsgBiAEQQFqNgJMIAZBzABqEE0hCSAGKAJMIQQLQQAhBQNAIAUhEkF/IQwgBCwAAEHBAGtBOUsNCCAGIARBAWoiDjYCTCAELAAAIQUgDiEEIAUgEkE6bGotAN8HIgVBAWtBCEkNAAsCQAJAIAVBE0cEQCAFRQ0KIA9BAE4EQCADIA9BAnRqIAU2AgAgBiACIA9BA3RqKQMANwNADAILIABFDQggBkFAayAFIAEQTCAGKAJMIQ4MAgsgD0F/Sg0JC0EAIQQgAEUNBwsgCEH//3txIgsgCCAIQYDAAHEbIQVBACEMQYQIIQ8gECEIAkACQAJAAn8CQAJAAkACQAJ/AkACQAJAAkACQAJAAkAgDkEBaywAACIEQV9xIAQgBEEPcUEDRhsgBCASGyIEQdgAaw4hBBQUFBQUFBQUDhQPBg4ODhQGFBQUFAIFAxQUCRQBFBQEAAsCQCAEQcEAaw4HDhQLFA4ODgALIARB0wBGDQkMEwsgBikDQCEUQYQIDAULQQAhBAJAAkACQAJAAkACQAJAIBJB/wFxDggAAQIDBBoFBhoLIAYoAkAgDTYCAAwZCyAGKAJAIA02AgAMGAsgBigCQCANrDcDAAwXCyAGKAJAIA07AQAMFgsgBigCQCANOgAADBULIAYoAkAgDTYCAAwUCyAGKAJAIA2sNwMADBMLIAlBCCAJQQhLGyEJIAVBCHIhBUH4ACEECyAQIQcgBEEgcSELIAYpA0AiFFBFBEADQCAHQQFrIgcgFKdBD3FB8AtqLQAAIAtyOgAAIBRCBIgiFEIAUg0ACwsgBUEIcUUNAyAGKQNAUA0DIARBBHZBhAhqIQ9BAiEMDAMLIBAhBCAGKQNAIhRQRQRAA0AgBEEBayIEIBSnQQdxQTByOgAAIBRCA4giFEIAUg0ACwsgBCEHIAVBCHFFDQIgCSAQIAdrIgRBAWogBCAJSBshCQwCCyAGKQNAIhRCf1cEQCAGQgAgFH0iFDcDQEEBIQxBhAgMAQsgBUGAEHEEQEEBIQxBhQgMAQtBhghBhAggBUEBcSIMGwshDyAQIQQCQCAUQoCAgIAQVARAIBQhFQwBCwNAIARBAWsiBCAUIBRCCoAiFUIKfn2nQTByOgAAIBRC/////58BViEHIBUhFCAHDQALCyAVpyIHBEADQCAEQQFrIgQgByAHQQpuIgtBCmxrQTByOgAAIAdBCUshDiALIQcgDg0ACwsgBCEHCyAFQf//e3EgBSAJQX9KGyEFIAYpA0AhFAJAIAkNACAUUEUNAEEAIQkgECEHDAwLIAkgFFAgECAHa2oiBCAEIAlIGyEJDAsLAn8gBigCQCIEQY4IIAQbIgchBSAJIgRBAEchCAJAAkACQCAERQ0AIAVBA3FFDQADQCAFLQAARQ0CIAVBAWohBSAEQQFrIgRBAEchCCAERQ0BIAVBA3ENAAsLIAhFDQELAkAgBS0AAEUNACAEQQRJDQADQCAFKAIAIghBf3MgCEGBgoQIa3FBgIGChHhxDQEgBUEEaiEFIARBBGsiBEEDSw0ACwsgBEUNAANAIAUgBS0AAEUNAhogBUEBaiEFIARBAWsiBA0ACwtBAAsiBCAHIAlqIAQbIQggCyEFIAQgB2sgCSAEGyEJDAoLIAkEQCAGKAJADAILQQAhBCAAQSAgCkEAIAUQEgwCCyAGQQA2AgwgBiAGKQNAPgIIIAYgBkEIajYCQEF/IQkgBkEIagshCEEAIQQCQANAIAgoAgAiB0UNAQJAIAZBBGogBxAsIgdBAEgiCw0AIAcgCSAEa0sNACAIQQRqIQggCSAEIAdqIgRLDQEMAgsLQX8hDCALDQsLIABBICAKIAQgBRASIARFBEBBACEEDAELQQAhCCAGKAJAIQ4DQCAOKAIAIgdFDQEgBkEEaiAHECwiByAIaiIIIARKDQEgACAGQQRqIAcQEyAOQQRqIQ4gBCAISw0ACwsgAEEgIAogBCAFQYDAAHMQEiAKIAQgBCAKSBshBAwICyAAIAYrA0AgCiAJIAUgBEEAERgAIQQMBwsgBiAGKQNAPAA3QQEhCSATIQcgCyEFDAQLIAYgBEEBaiIINgJMIAQtAAEhBSAIIQQMAAsACyANIQwgAA0EIBFFDQJBASEEA0AgAyAEQQJ0aigCACIABEAgAiAEQQN0aiAAIAEQTEEBIQwgBEEBaiIEQQpHDQEMBgsLQQEhDCAEQQpPDQQDQCADIARBAnRqKAIADQEgBEEBaiIEQQpHDQALDAQLQX8hDAwDCyAAQSAgDCAIIAdrIgsgCSAJIAtIGyIJaiIIIAogCCAKShsiBCAIIAUQEiAAIA8gDBATIABBMCAEIAggBUGAgARzEBIgAEEwIAkgC0EAEBIgACAHIAsQEyAAQSAgBCAIIAVBgMAAcxASDAELC0EAIQwLIAZB0ABqJAAgDAv7GwISfwZ9IwBB8ABrIgkkAAJAAkACQAJAAkACQAJAIAAoAggiB0EBa0ECSQRAAkAgACgCDCIIQf/8AEwEQCAIQcA+Rg0BIAhB4N0ARg0BDAkLIAhBgP0ARg0AIAhBwLsBRg0AIAhBgPcCRw0ICyAAKAIYIAhHDQECQCAAKAIcIg5B390ATARAIA5FDQEgDkHAPkYNAQwICyAOQeDdAEYNACAOQYD9AEcNBwsgACgCECAHRw0CIAAoAhRBA08NAyAAKAIgIgdBFEsNBEEBIAd0QYGIwABxRQ0EDAULQfWUAkGFlAJB1AAQBgALQZuWAkGFlAJB1gAQBgALQZeYAkGFlAJB2AAQBgALQdWYAkGFlAJB2QAQBgALIAdBKEYNACAHQTxGDQBB35kCQYWUAkHaABAGAAsCQAJAAkACQAJAIAAoAiwiB0F/SgRAIAcNAUF/IQcgACgCMEEBa0ECTw0CAkAgBUEBSw0AAkACQCABRQ0AIAJFDQAgBUUNAQsgBCAIQf//A3FBkANubw0BCyABQQAgAhtFBEAgAEEAQQAgAyAEQQAQECIFQQBIBEAgBSEHDAILIAUhAQNAIAQgBUoEQCABIABBAEEAIAMgACgCCCABbEECdGogBCABa0EAEBAiByABaiIBIAdBAEgiAhshBSACRQ0BDAMLCyAEIAVHDQUgACAENgJIIAEhBwwBCyACQQBIDQAgAS0AACIHQeAAcSEVAn8gB0GAAXEiDwRAIAdBBXZBA3EiB0HOCGpBzQggBxsMAQtB0QhB0AggB0EQcRsgFUHgAEYNABogB0EFdkEDcUHNCGoLIRYCfyAIIQcgAS0AACIIQYABcQRAIAcgCEEDdkEDcXRBkANtDAELIAhB4ABxQeAARgRAIAdBMm0gCEEIcQ0BGiAHQeQAbQwBCyAHQTxsQegHbSAIQQN2QQNxIghBA0YNABogByAIdEHkAG0LIRAgAS0AACEUAn8gASEHIAlB6wBqIRcgCUHsAGohGEF/IQoCQAJAIAJBAEgNACAJRQ0AQXwhCiACRQ0AAn8gBy0AACISQYABcQRAQYD3AiASQQN2QQNxdEGQA24MAQtBwAdB4AMgEkEIcRsgEkHgAHFB4ABGDQAaQcAWIBJBA3ZBA3EiAUEDRg0AGkGA9wIgAXRB5ABuCyEOQQEhCyAHQQFqIQggAkEBayIMIQECQAJAAkACQCASQQNxDgMDAAECCyAMQQFxDQMgCSAMQQF2IgE7AQBBAiELDAILIAJBAUwEQCAJQf//AzsBAEF8DAULIAgtAAAiDUH8AU8EQEECIQsgAkECTARAIAlB//8DOwEADAQLIActAAJBAnQgDWohDQsgCSANOwEAIAwgC2siASANSA0CIAEgDWshASAIIAtqIQhBAiELDAELIAJBAkgNASAHLQABIgxBP3EiC0UNASALIA5sQYAtSw0BIAdBAmohASACQQJrIQICQCAMQcAAcUUEQCABIQgMAQsDQCACQQFIDQMgDUF+IAEtAAAiCCAIQf8BRiIOG0H/AXEiCGohDSACIAhBf3NqIQIgAUEBaiIIIQEgDg0ACyACQQBIDQILIAxBgAFxBEAgC0ECSQRAIAIhAQwCCyALQQFrIQ4gAiIBIREDQCAJIBNBAXRqIQwgEUEATARAIAxB//8DOwEAQXwMBgtBASENIAgtAAAiAkH8AU8EQCARQQFMBEAgDEH//wM7AQBBfAwHC0ECIQ0gCC0AAUECdCACaiECCyAMIAI7AQAgESANayIRIAJIDQMgCCANaiEIIAEgAiANamshASATQQFqIhMgDkcNAAsgAUEASA0CDAELIAIgC20iASALbCACRw0BIAtBAkkNACALQQFrIgJBB3EhEUEAIQ0gC0ECa0EHTwRAIAJBeHEhEwNAIAkgDUEBdCICaiABOwEAIAkgAkECcmogATsBACAJIAJBBHJqIAE7AQAgCSACQQZyaiABOwEAIAkgAkEIcmogATsBACAJIAJBCnJqIAE7AQAgCSACQQxyaiABOwEAIAkgAkEOcmogATsBACANQQhqIQ0gE0EIayITDQALCyARBEADQCAJIA1BAXRqIAE7AQAgDUEBaiENIBFBAWsiEQ0ACwsLIAFB+wlKDQAgC0EBdCAJakECayABOwEADAELIAoMAQsgGARAIBggCCAHazYCAAsCQCALRQ0AIAtBAXEhDAJAIAtBAUYEQEEAIQIMAQsgC0E+cSEKQQAhAgNAIAJBAXIhDiAIIAkgAkEBdGouAQBqIQEgAkECaiECIAEgCSAOQQF0ai4BAGohCCAKQQJrIgoNAAsLIAxFDQAgCSACQQF0ai4BABoLIBcEQCAXIBI6AAALIAsLIghBAEgEQCAIIQcMAQtB6gdB6QdB6AcgFUHgAEYbIA8bIQxBAkEBIBRBBHEbIQ4gByAJKAJsaiEBIAUEQAJAAkAgDEHqB0YNACAEIBBIDQAgACgCOEHqB0cNAQsgAEEAQQAgAyAEQQAgBhAfIQcMAgsgBCAQayIFBEAgACgCSCECIABBAEEAIAMgBUEAIAYQHyIHQX9MBEAgACACNgJIDAMLIAUgB0cNBwsgACAQNgJAIAAgFjYCNCAAIAw2AjggACAONgIwIAAgASAJLgEAIAMgACgCCCAFbEECdGogEEEBEBAiB0EASA0BIAAgBDYCSCAEIQcMAQtBfiEHIAggEGwgBEoNACAAIBA2AkAgACAWNgI0IAAgDDYCOCAAIA42AjBBACEFAkAgCEEBSARAQQAhBwwBC0EAIQcDQCAAIAEgCSAFQQF0aiIOLgEAIAMgACgCCCAHbEECdGogBCAHa0EAEBAiAkEASARAIAIhBwwDCyACIBBHDQggByAQaiEHIAEgDi4BAGohASAFQQFqIgUgCEcNAAsLIAAgBzYCSCAGBEAgAyEGIAchAyAAKAIIIQpBACEBQQAhFAJAIABBzABqIg5FDQAgBkUNACADQQFIDQAgCkEBSA0AAkAgAyAKbCIIQQFIDQAgCEEBRwRAIAhBfnEhAANAIAYgAUECdCIFaiICQwAAAMBDAAAAQEMAAABAIAIqAgAiGiAaQwAAAEBeIgQbQwAAAMBdIgIbIhkgGSAaIAIbIAQbOAIAIAYgBUEEcmoiAkMAAADAQwAAAEBDAAAAQCACKgIAIhogGkMAAABAXiIEG0MAAADAXSICGyIZIBkgGiACGyAEGzgCACABQQJqIQEgAEECayIADQALCyAIQQFxRQ0AIAYgAUECdGoiAEMAAADAQwAAAEBDAAAAQCAAKgIAIhogGkMAAABAXiIBG0MAAADAXSIAGyIZIBkgGiAAGyABGzgCAAsDQCAGIBRBAnQiAGohDyAAIA5qIggqAgAhGkEAIQADQCAaIA8gACAKbEECdGoiASoCACIdlCIZQwAAAABgRQRAIAEgHSAdIBmUkjgCACAAQQFqIgAgA0cNAQsLIA8qAgAhHUEAIQEDQAJAAkAgASICIgQgA04NAANAIA8gBCAKbEECdGoqAgAiGUMAAIA/Xg0BIBlDAACAv10NASAEQQFqIgQgA0cNAAtDAAAAACEbDAELIAMgBEYEQEMAAAAAIRsMAQsgBEEfdSAEcSEFIA8gBCAKbEECdGoqAgAiGoshGyAEIQEDQAJAIAEiAEEBSARAIAUhAAwBCyAaIA8gAEEBayIBIApsQQJ0aioCAJRDAAAAAGANAQsLAkAgBCIBIANODQADQCAaIA8gASAKbEECdGoqAgAiGZRDAAAAAGBFDQEgASAEIBmLIhkgG14iBRshBCAZIBsgBRshGyABQQFqIgEgA0cNAAsgAyEBC0EAIQwgAEUEQCAaIA8qAgCUQwAAAABgIQwLIBtDAACAv5IgGyAblJUiGSAZQ1nZgDSUkiIZjCAZIBpDAAAAAF4bIRsCQCAAIAFODQAgAEEBaiEFIAEgAGtBAXEEQCAPIAAgCmxBAnRqIgAgACoCACIZIBkgGyAZlJSSOAIAIAUhAAsgASAFRg0AA0AgDyAAIApsQQJ0aiIFIAUqAgAiGSAZIBsgGZSUkjgCACAPIABBAWogCmxBAnRqIgUgBSoCACIZIBkgGyAZlJSSOAIAIABBAmoiACABRw0ACwsCQCAMRSAEQQJIcg0AIAIgBE4NACAdIA8qAgCTIhwgBLKVIR4gAkEBaiEAIAQgAmtBAXEEQCAPIAIgCmxBAnRqIgJDAACAv0MAAIA/QwAAgD8gHCAekyIcIAIqAgCSIhogGkMAAIA/XiIFG0MAAIC/XSICGyIZIBkgGiACGyAFGzgCACAAIQILIAAgBEYNAANAIA8gAiAKbEECdGoiAEMAAIC/QwAAgD9DAACAPyAcIB6TIhogACoCAJIiHCAcQwAAgD9eIgUbQwAAgL9dIgAbIhkgGSAcIAAbIAUbOAIAIA8gAkEBaiAKbEECdGoiAEMAAIC/QwAAgD9DAACAPyAaIB6TIhwgACoCAJIiGiAaQwAAgD9eIgUbQwAAgL9dIgAbIhkgGSAaIAAbIAUbOAIAIAJBAmoiAiAERw0ACwsgASADRw0BCwsgCCAbOAIAIBRBAWoiFCAKRw0ACwsMAQsgAEIANwJMCyAJQfAAaiQAIAcPC0GwmwJBhZQCQdwAEAYAC0HQmwJBhZQCQd0AEAYAC0H8mwJBhZQCQd8AEAYAC0HbkwJBhZQCQYwFEAYAC0GYlAJBhZQCQbEFEAYAC0HMlAJBhZQCQdQFEAYAC0HVlgJBhZQCQdcAEAYAC0GulQJBhZQCQdUAEAYAC8wMAQd/AkAgAEUNACAAQQhrIgMgAEEEaygCACIBQXhxIgBqIQUCQCABQQFxDQAgAUEDcUUNASADIAMoAgAiAWsiA0HEpwIoAgBJDQEgACABaiEAIANByKcCKAIARwRAIAFB/wFNBEAgAygCCCICIAFBA3YiBEEDdEHcpwJqRhogAiADKAIMIgFGBEBBtKcCQbSnAigCAEF+IAR3cTYCAAwDCyACIAE2AgwgASACNgIIDAILIAMoAhghBgJAIAMgAygCDCIBRwRAIAMoAggiAiABNgIMIAEgAjYCCAwBCwJAIANBFGoiAigCACIEDQAgA0EQaiICKAIAIgQNAEEAIQEMAQsDQCACIQcgBCIBQRRqIgIoAgAiBA0AIAFBEGohAiABKAIQIgQNAAsgB0EANgIACyAGRQ0BAkAgAyADKAIcIgJBAnRB5KkCaiIEKAIARgRAIAQgATYCACABDQFBuKcCQbinAigCAEF+IAJ3cTYCAAwDCyAGQRBBFCAGKAIQIANGG2ogATYCACABRQ0CCyABIAY2AhggAygCECICBEAgASACNgIQIAIgATYCGAsgAygCFCICRQ0BIAEgAjYCFCACIAE2AhgMAQsgBSgCBCIBQQNxQQNHDQBBvKcCIAA2AgAgBSABQX5xNgIEIAMgAEEBcjYCBCAAIANqIAA2AgAPCyADIAVPDQAgBSgCBCIBQQFxRQ0AAkAgAUECcUUEQCAFQcynAigCAEYEQEHMpwIgAzYCAEHApwJBwKcCKAIAIABqIgA2AgAgAyAAQQFyNgIEIANByKcCKAIARw0DQbynAkEANgIAQcinAkEANgIADwsgBUHIpwIoAgBGBEBByKcCIAM2AgBBvKcCQbynAigCACAAaiIANgIAIAMgAEEBcjYCBCAAIANqIAA2AgAPCyABQXhxIABqIQACQCABQf8BTQRAIAUoAggiAiABQQN2IgRBA3RB3KcCakYaIAIgBSgCDCIBRgRAQbSnAkG0pwIoAgBBfiAEd3E2AgAMAgsgAiABNgIMIAEgAjYCCAwBCyAFKAIYIQYCQCAFIAUoAgwiAUcEQCAFKAIIIgJBxKcCKAIASRogAiABNgIMIAEgAjYCCAwBCwJAIAVBFGoiAigCACIEDQAgBUEQaiICKAIAIgQNAEEAIQEMAQsDQCACIQcgBCIBQRRqIgIoAgAiBA0AIAFBEGohAiABKAIQIgQNAAsgB0EANgIACyAGRQ0AAkAgBSAFKAIcIgJBAnRB5KkCaiIEKAIARgRAIAQgATYCACABDQFBuKcCQbinAigCAEF+IAJ3cTYCAAwCCyAGQRBBFCAGKAIQIAVGG2ogATYCACABRQ0BCyABIAY2AhggBSgCECICBEAgASACNgIQIAIgATYCGAsgBSgCFCICRQ0AIAEgAjYCFCACIAE2AhgLIAMgAEEBcjYCBCAAIANqIAA2AgAgA0HIpwIoAgBHDQFBvKcCIAA2AgAPCyAFIAFBfnE2AgQgAyAAQQFyNgIEIAAgA2ogADYCAAsgAEH/AU0EQCAAQQN2IgFBA3RB3KcCaiEAAn9BtKcCKAIAIgJBASABdCIBcUUEQEG0pwIgASACcjYCACAADAELIAAoAggLIQIgACADNgIIIAIgAzYCDCADIAA2AgwgAyACNgIIDwtBHyECIANCADcCECAAQf///wdNBEAgAEEIdiIBIAFBgP4/akEQdkEIcSIBdCICIAJBgOAfakEQdkEEcSICdCIEIARBgIAPakEQdkECcSIEdEEPdiABIAJyIARyayIBQQF0IAAgAUEVanZBAXFyQRxqIQILIAMgAjYCHCACQQJ0QeSpAmohAQJAAkACQEG4pwIoAgAiBEEBIAJ0IgdxRQRAQbinAiAEIAdyNgIAIAEgAzYCACADIAE2AhgMAQsgAEEAQRkgAkEBdmsgAkEfRht0IQIgASgCACEBA0AgASIEKAIEQXhxIABGDQIgAkEddiEBIAJBAXQhAiAEIAFBBHFqIgdBEGooAgAiAQ0ACyAHIAM2AhAgAyAENgIYCyADIAM2AgwgAyADNgIIDAELIAQoAggiACADNgIMIAQgAzYCCCADQQA2AhggAyAENgIMIAMgADYCCAtB1KcCQdSnAigCAEEBayIAQX8gABs2AgALC98CAgF9BH8CQCABQQFIDQAgAUEDcSEFAkAgAUEBayIIQQNJBEBBACEDDAELIAFBfHEhB0EAIQMDQCAEIAAgA0ECdCIGaioCACIEIASUkiAAIAZBBHJqKgIAIgQgBJSSIAAgBkEIcmoqAgAiBCAElJIgACAGQQxyaioCACIEIASUkiEEIANBBGohAyAHQQRrIgcNAAsLIAUEQANAIAQgACADQQJ0aioCACIEIASUkiEEIANBAWohAyAFQQFrIgUNAAsLIAFBAUgNAEMAAIA/IARDfR2QJpKRlSAClCECIAFBA3EhAyAIQQNPBEAgAUF8cSEBA0AgACACIAAqAgCUOAIAIAAgAiAAKgIElDgCBCAAIAIgACoCCJQ4AgggACACIAAqAgyUOAIMIABBEGohACABQQRrIgENAAsLIANFDQADQCAAIAIgACoCAJQ4AgAgAEEEaiEAIANBAWsiAw0ACwsL6w4DBX0TfwJ8AkAgBEEBdCABTg0AIAVFDQAgAbIgBUECdEGkgwJqKAIAIARsIAFqspUiBiAGlEMAAAA/lCIGQ9sPyT+UuxA4IR5DAACAPyAGk0PbD8k/lLsQOCEfQQAhBSABIANBA3ROBEAgA0ECdSEMQQEhBANAIAQiBUEBaiEEIAUgBSAFbGogA2wgDGogAUgNAAsLIAEgA24hDiADQQFIDQAgHrYhBiAftiEHIA5BA2shDCAOQQRrIRQgDkEBcSEQIA5BAWsiEUF+cSEVIBFBAXEhFiARIAVBAXRrIg9BAWshFyAOIAVrIhJBfnEhGCASQQFxIRkgDkECayEaIA4gBUF/c2ohGyACQX9KIRwDQCAOIBNsIQsCQCAcRQRAAkAgBUUNACAAIAtBAnRqIQICQCASQQFIDQAgAiEEIBghASAbBEADQCAEIAVBAnQiDWoiHSAEKgIAIgggBpQgHSoCACIJIAeUkjgCACAEIAggB5QgCSAGlJM4AgAgBEEEaiANaiINIAQqAgQiCCAGlCANKgIAIgkgB5SSOAIAIAQgCCAHlCAJIAaUkzgCBCAEQQhqIQQgAUECayIBDQALCyAZRQ0AIAQgBUECdGoiASAEKgIAIgggBpQgASoCACIJIAeUkjgCACAEIAggB5QgCSAGlJM4AgALIA9BAEgNACACIA9BAnRqIQQgEAR/IAQgBUECdGoiASAEKgIAIgggBpQgASoCACIJIAeUkjgCACAEIAggB5QgCSAGlJM4AgAgBEEEayEEIBcFIA8LIQEgD0UNAANAIAQgBUECdCICaiINIAQqAgAiCCAGlCANKgIAIgkgB5SSOAIAIAQgCCAHlCAJIAaUkzgCACACIARBBGsiAmoiDSACKgIAIgggBpQgDSoCACIJIAeUkjgCACACIAggB5QgCSAGlJM4AgAgBEEIayEEIAFBAUohAiABQQJrIQEgAg0ACwsgACALQQJ0aiECAkAgEUEBSA0AIAIqAgAhCCACIQQgFSEBIBoEQANAIAQgCCAGlCAEKgIEIgkgB5STOAIAIAQgCCAHlCAJIAaUkiIJIAeUIAQqAggiCiAGlJIiCDgCCCAEIAkgBpQgCiAHlJM4AgQgBEEIaiEEIAFBAmsiAQ0ACwsgFkUNACAEIAggBpQgBCoCBCIJIAeUkzgCACAEIAggB5QgCSAGlJI4AgQLIAxBAEgNASACIAxBAnRqIQQgEAR/IAQgBCoCACIIIAeUIAQqAgQiCSAGlJI4AgQgBCAIIAaUIAkgB5STOAIAIARBBGshBCAUBSAMCyEBIAxFDQEDQCAEIAQqAgAiCCAHlCAEKgIEIgkgBpSSOAIEIAQgBEEEayICKgIAIgogB5QgCCAGlCAJIAeUkyIIIAaUkjgCACACIAogBpQgCCAHlJM4AgAgBEEIayEEIAFBAUohAiABQQJrIQEgAg0ACwwBCyAAIAtBAnRqIQICQCARQQFIDQAgAioCACEIIAIhBCAVIQEgGgRAA0AgBCAIIAaUIAQqAgQiCSAHlJI4AgAgBCAEKgIIIgogBpQgCSAGlCAIIAeUkyIJIAeUkyIIOAIIIAQgCSAGlCAKIAeUkjgCBCAEQQhqIQQgAUECayIBDQALCyAWRQ0AIAQgCCAGlCAEKgIEIgkgB5SSOAIAIAQgCSAGlCAIIAeUkzgCBAsCQCAMQQBIDQAgAiAMQQJ0aiEEIBAEfyAEIAQqAgQiCCAGlCAEKgIAIgkgB5STOAIEIAQgCSAGlCAIIAeUkjgCACAEQQRrIQQgFAUgDAshASAMRQ0AA0AgBCAEKgIEIgggBpQgBCoCACIJIAeUkzgCBCAEIAkgBpQgCCAHlJIiCCAGlCAEQQRrIgsqAgAiCSAHlJM4AgAgCyAJIAaUIAggB5SSOAIAIARBCGshBCABQQFKIQsgAUECayEBIAsNAAsLIAVFDQACQCASQQFIDQAgAiEEIBghASAbBEADQCAEIAVBAnQiC2oiDSANKgIAIgggB5QgBCoCACIJIAaUkzgCACAEIAkgB5QgCCAGlJI4AgAgBEEEaiALaiILIAsqAgAiCCAHlCAEKgIEIgkgBpSTOAIAIAQgCSAHlCAIIAaUkjgCBCAEQQhqIQQgAUECayIBDQALCyAZRQ0AIAQgBUECdGoiASABKgIAIgggB5QgBCoCACIJIAaUkzgCACAEIAkgB5QgCCAGlJI4AgALIA9BAEgNACACIA9BAnRqIQQgEAR/IAQgBUECdGoiASABKgIAIgggB5QgBCoCACIJIAaUkzgCACAEIAkgB5QgCCAGlJI4AgAgBEEEayEEIBcFIA8LIQEgD0UNAANAIAQgBUECdCICaiILIAsqAgAiCCAHlCAEKgIAIgkgBpSTOAIAIAQgCSAHlCAIIAaUkjgCACACIARBBGsiAmoiCyALKgIAIgggB5QgAioCACIJIAaUkzgCACACIAkgB5QgCCAGlJI4AgAgBEEIayEEIAFBAUohAiABQQJrIQEgAg0ACwsgE0EBaiITIANHDQALCwuSAQEDfEQAAAAAAADwPyAAIACiIgJEAAAAAAAA4D+iIgOhIgREAAAAAAAA8D8gBKEgA6EgAiACIAIgAkSQFcsZoAH6PqJEd1HBFmzBVr+gokRMVVVVVVWlP6CiIAIgAqIiAyADoiACIAJE1DiIvun6qL2iRMSxtL2e7iE+oKJErVKcgE9+kr6goqCiIAAgAaKhoKAL0wEBBX8gAEGANEEIEAchAiAAQc40QQgQByEDIABB1TRBCBAHIQQgASAAQc40QQgQByACIAJBBW0iBUF7bGpBA2xqQQF0QeAzaiICLgECIAIuAQAiAmsiBkH//wNxQZozbEEQdiAGQRB1QZozbGogAEHVNEEIEAdBEXRBEHVBAXJsIAJqIgA2AgQgASADIAVBA2xqQQF0QeAzaiIBLgECIAEuAQAiAWsiAkH//wNxQZozbEEQdiACQRB1QZozbGogBEERdEEQdUEBcmwgAWogAGs2AgAL6wEBBn8gACAAKAIgIAAoAiQiBCADIAJrbCIDayIGNgIgIAAgAQR/IAQgAiABa2wFIAAoAhwgA2sLIgI2AhwgAkGAgIAETQRAIAAoAhghAyAAKAIoIQQgACgCFCEHIAAoAgQhCANAIAAgAkEIdCIJNgIcIAAgB0EIaiIHNgIUQQAhASADIAhJBEAgACADQQFqIgU2AhggACgCACADai0AACEBIAUhAwsgACABNgIoIAAgBkEIdEGA/v//B3EgASAEQQh0ckEBdkH/AXFyQf8BcyIGNgIgIAJBgYACSSEFIAEhBCAJIQIgBQ0ACwsLxQIBB38gAEEEakEAQaQhEAkaIABBADYCyCAgAEGAgAQ2AgAgAEEBNgLIEkH//wEgACIDKAKkEiICQQFqbSEAAkAgAkEBSA0AIAJBA3EhBQJAIAJBAWtBA0kNACACQXxxIQcgA0HUH2ohAiAAIQEDQCACIARBAXQiBmogATsBACACIAZBAnJqIAAgAWoiATsBACACIAZBBHJqIAAgAWoiATsBACACIAZBBnJqIAAgAWoiATsBACAEQQRqIQQgB0EEayIHRQ0BIAAgAWohAQwACwALIAVFDQADQCADIARBAXRqQdQfaiAAIAFqIgE7AQAgBEEBaiEEIAVBAWsiBQ0ACwsgA0G0IGpCgICAgICQnhg3AgAgA0GUIWpCgICEgICAwAA3AgAgA0GgIWpCgoCAgMACNwIAIAMgAygCmBJBB3Q2AswgQQALigIBBn8gAUEBayEDAkAgAUECSA0AIAJBgIAEayEEIANBAXEhBwJAIAFBAkYEQEEAIQEMAQsgA0F+cSEGQQAhAQNAIAAgAUEBdCIFaiIIIAIgCC4BAGxBD3ZBAWpBAXY7AQAgACAFQQJyaiIFIAIgBGxBD3VBAWpBAXUgAmoiAiAFLgEAbEEPdkEBakEBdjsBACACIARsQQ91QQFqQQF1IAJqIQIgAUECaiEBIAZBAmsiBg0ACwsgB0UNACAAIAFBAXRqIgEgAiABLgEAbEEPdkEBakEBdjsBACACIARsQQ91QQFqQQF1IAJqIQILIAAgA0EBdGoiACACIAAuAQBsQQ92QQFqQQF2OwEAC94NAgp/AX4jAEHAAmsiBCQAAkACQCACQQprDgcBAAAAAAABAAtByg9B6w9B2QAQBgALQbAPQcAPIAJBEEYbIQVBACEDA0AgBEHgAWogAyAFai0AAEECdGogASADQQF0ai4BACIHQQh1QQF0QaANaiIGLgECIAYuAQAiBmsgB0H/AXFsIAZBCHRqQQN1QQFqQQF1NgIAIANBAWoiAyACRw0AC0GAgAQhBiAEQYCABDYCoAEgBEEAIAQoAuABayIFNgKkAUEBIQMgAkEBdSEJAkAgAkEESCIMDQAgBSEBA0AgBEGgAWogA0EBaiIHQQJ0aiINIAZBAXQgBEHgAWogA0EDdGooAgAiCqwiDiABrH5CD4hCAXxCAYinazYCACADQQJ0IgggBEGgAWpqIQsgBCADQQJPBH8gCyAEIAhqKAKYASIFIAFqIAasIA5+Qg+IQgF8QgGIp2s2AgAgA0ECRwRAA0AgBEGgAWogA0EBayIBQQJ0aiIIIANBAnQgBGooApQBIgYgCCgCAGogBawgDn5CD4hCAXxCAYinazYCACADQQNKIQggASEDIAYhBSAIDQALCyAEKAKkAQUgBQsgCmsiBTYCpAEgByAJRg0BIA0oAgAhASALKAIAIQYgByEDDAALAAtBgIAEIQYgBEGAgAQ2AmAgBEEAIAQoAuQBayIFNgJkAkAgDA0AIARB4AFqQQRyIQxBASEDIAUhAQNAIARB4ABqIANBAWoiB0ECdGoiDSAGQQF0IAwgA0EDdGooAgAiCqwiDiABrH5CD4hCAXxCAYinazYCACADQQJ0IgggBEHgAGpqIQsgBCADQQJPBH8gCyAEIAhqKAJYIgUgAWogBqwgDn5CD4hCAXxCAYinazYCACADQQJHBEADQCAEQeAAaiADQQFrIgFBAnRqIgggA0ECdCAEaigCVCIGIAgoAgBqIAWsIA5+Qg+IQgF8QgGIp2s2AgAgA0EDSiEIIAEhAyAGIQUgCA0ACwsgBCgCZAUgBQsgCmsiBTYCZCAHIAlGDQEgDSgCACEBIAsoAgAhBiAHIQMMAAsACyACQQJOBEAgCUEBIAlBAUobIQkgBCgCYCEGIAQoAqABIQFBACEDA0AgBCADQQJ0akEAIAEgA0EBaiIFQQJ0IgsgBEGgAWpqKAIAIgdqIgwgBEHgAGogC2ooAgAiASAGayIGams2AgAgBCADQX9zIAJqQQJ0aiAGIAxrNgIAIAEhBiAHIQEgBSIDIAlHDQALC0EAIQdBACEJIAJBfnEhAyACQQFxIQwgAkEBayELAkACQANAAkAgAkEBSARAQQAhBgwBC0EAIQVBACEGIAMhASALBEADQCAEIAVBAXIiDUECdGooAgAiCiAKQR91IgpqIApzIgogBCAFQQJ0aigCACIIIAhBH3UiCGogCHMiCCAGIAYgCEgiCBsiBiAGIApIIgobIQYgDSAFIAcgCBsgChshByAFQQJqIQUgAUECayIBDQALCyAMRQ0AIAQgBUECdGooAgAiASABQR91IgFqIAFzIgEgBiABIAZKIgEbIQYgBSAHIAEbIQcLIAZBBHVBAWpBAXUiAUGAgAJOBEAgBCACQb7/AyABQf7/CSABQf7/CUgbIgFBDnRBgID//wFrIAEgB0EBamxBAnVtaxBLIAlBAWoiCUEKRw0BDAILCyAJQQpGDQAgAkEBSA0BIAJBAXEhAQJAIAtFBEBBACEFDAELIAJBfnEhB0EAIQUDQCAAIAVBAXRqIAQgBUECdGooAgBBBHVBAWpBAXU7AQAgBCAFQQFyIgNBAnRqKAIAIQYgACADQQF0aiAGQQR1QQFqQQF1OwEAIAVBAmohBSAHQQJrIgcNAAsLIAFFDQEgACAFQQF0aiAEIAVBAnRqKAIAQQR1QQFqQQF1OwEADAELIAJBAUgNAEEAIQUDQCAAIAVBAXRqAn9B//8BIAQgBUECdGoiAygCAEEEdSIBQf7/A0oNABpBgIB+IAFB//97SA0AGiABQQFqQQF1CyIBOwEAIAMgAUEFdDYCACAFQQFqIgUgAkcNAAsLAkAgACACECkNACACQX5xIQcgAkEBcSEGQQAhAQNAIAQgAkF+IAF0QYCABGoQS0EAIQMgByEFIAJBAUcEQANAIAAgA0EBdGogBCADQQJ0aigCAEEEdkEBakEBdjsBACAAIANBAXIiCUEBdGogBCAJQQJ0aigCAEEEdkEBakEBdjsBACADQQJqIQMgBUECayIFDQALCyAGBEAgACADQQF0aiAEIANBAnRqKAIAQQR2QQFqQQF2OwEACyAAIAIQKSEDIAFBDksNASABQQFqIQEgA0UNAAsLIARBwAJqJAALsggCCn8EfiMAQeAAayEGAn8CQAJAAkAgAUEBTgRAIAFBA3EhCCABQQFrQQNPDQEMAgsgAUEBayEAQoCAgIAEIQwMAgsgAUF8cSELA0AgBiACQQJ0aiAAIAJBAXRqLgEAIglBDHQ2AgAgBiACQQFyIgVBAnRqIAAgBUEBdGouAQAiBEEMdDYCACAGIAJBAnIiBUECdGogACAFQQF0ai4BACIHQQx0NgIAIAYgAkEDciIFQQJ0aiAAIAVBAXRqLgEAIgVBDHQ2AgAgBSAHIAQgAyAJampqaiEDIAJBBGohAiALQQRrIgsNAAsLIAgEQANAIAYgAkECdGogACACQQF0ai4BACIFQQx0NgIAIAJBAWohAiADIAVqIQMgCEEBayIIDQALCyADQf8fSgRAQQAPCyABQQFrIQJCgICAgAQhDCABQQJIBEAgAiEADAELA0AgBiACIgVBAnRqKAIAIgBBnt//B2pBvL7/D0sEQEEADwtBACAMQYCAgIAEQQAgAEEHdGusIg0gDX5CIIinayIHrH5CHoinQXxxIgtB7sYGSA0CGkEAIQBBAEH/////ASAHIAcgB0EfdSICaiACc2ciCEEBa3QiCUEQdSIEbSIHQRB0IgJBEHUiAyAJQf//A3FsQRB1IAMgBGxqQQN0ayIEIAdBD3VBAWpBAXVsIAJqIARBEHUgA2xqIARB+P8DcSADbEEQdWqsIQ5BHyAIa60hDyABQQF2IQcDQCAGIABBAnRqIgkoAgAiAyAGIAUgAEF/c2pBAnRqIgIoAgAiCqwgDX5CHohCAXxCAYinIgRrIgFBgICAgHhB/////wcgAUF/SiIBGyAEIAMgARtBf3MgAyAEIAEbcUF/ShusIA5+IQwCfgJAAkAgCEEfRgRAIAxCAYMgDEIBh3wiDEKAgICACHxC/////w9YDQFBAA8LIAwgD4dCAXxCAYciDEKAgICACHxC/////w9YDQFBAA8LIAkgDD4CACAKIAOsIA1+Qh6IQgF8QgGIpyIEayIBQYCAgIB4Qf////8HIAFBf0oiARsgBCAKIAEbQX9zIAogBCABG3FBf0obrCAOfiIMQgGDIAxCAYd8DAELIAkgDD4CACAKIAOsIA1+Qh6IQgF8QgGIpyIEayIBQYCAgIB4Qf////8HIAFBf0oiARsgBCAKIAEbQX9zIAogBCABG3FBf0obrCAOfiAPh0IBfEIBhwsiDEKAgICACHxC/////w9WBEBBAA8LIAIgDD4CACAAQQFqIgAgB0cNAAsgBUEBayECIAusIQxBACEAIAUiAUEBSg0ACwtBACAGIABBAnRqKAIAQZ7f/wdqQby+/w9LDQAaQQAgDEKAgICAgICAgMAAQQAgBigCAEEHdGusIgwgDH5CgICAgPD/////AIN9QiCHfkIeiKdBfHEiACAAQe7GBkgbCwvABQIKfQZ/AkACQCAFQwAAAABcDQAgBkMAAAAAXA0AIAAgAUYNASAAIAEgBEECdBALGg8LQQAhC0ECIANBDyADQQ9KGyIWayEXQX4gFmshGCAWQX9zIRlBASAWayEaQQAgFmshGyAIQQxsIgNB2AxqKgIAIAaUIQ8gA0HUDGoqAgAgBpQhECADQdAMaioCACAGlCERQQAgCiAHIAhGGyAKIAUgBlsbIAogAkEPIAJBD0obIgggFkYbIgJBAU4EQCAHQQxsIgNB2AxqKgIAIAWUIRIgA0HUDGoqAgAgBZQhEyADQdAMaioCACAFlCEUIAEgGkECdGoqAgAhDCABIBtBAnRqKgIAIQ0gASAZQQJ0aioCACEOIAEgGEECdGoqAgAhBUEAIQMDQCAAIANBAnQiB2ogBSABIAMgF2pBAnRqKgIAIhWSIA8gByAJaioCACIFIAWUIgWUlCAMIA6SIBAgBZSUIA0gESAFlJQgASAHaioCACABIAMgCGtBAnRqIgcqAgAgFEMAAIA/IAWTIgWUlJIgEyAFlCAHKgIEIAdBBGsqAgCSlJIgEiAFlCAHKgIIIAdBCGsqAgCSlJKSkpI4AgAgDiEFIA0hDiAMIQ0gFSEMIANBAWoiAyACRw0ACyACIQsLIAZDAAAAAFsEQCAAIAFGDQEgACACQQJ0IgNqIAEgA2ogBCACa0ECdBALGg8LIAQgC2siBEEBSA0AIAAgC0ECdCIDaiECIAEgA2oiASAYQQJ0aioCACEOIAEgGUECdGoqAgAhBSABIBtBAnRqKgIAIQwgASAaQQJ0aioCACENQQAhAwNAIAIgA0ECdCIAaiAPIA4gASADIBdqQQJ0aioCACIGkpQgECAFIA2SlCARIAyUIAAgAWoqAgCSkpI4AgAgBSEOIAwhBSANIQwgBiENIANBAWoiAyAERw0ACwsLAwABC5sCACAARQRAQQAPCwJ/AkAgAAR/IAFB/wBNDQECQEGspgIoAgAoAgBFBEAgAUGAf3FBgL8DRg0DDAELIAFB/w9NBEAgACABQT9xQYABcjoAASAAIAFBBnZBwAFyOgAAQQIMBAsgAUGAsANPQQAgAUGAQHFBgMADRxtFBEAgACABQT9xQYABcjoAAiAAIAFBDHZB4AFyOgAAIAAgAUEGdkE/cUGAAXI6AAFBAwwECyABQYCABGtB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBAwECwtB6KYCQRk2AgBBfwVBAQsMAQsgACABOgAAQQELC5suAQx/IwBBEGsiDCQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB9AFNBEBBtKcCKAIAIgVBECAAQQtqQXhxIABBC0kbIghBA3YiAnYiAUEDcQRAIAFBf3NBAXEgAmoiA0EDdCIBQeSnAmooAgAiBEEIaiEAAkAgBCgCCCICIAFB3KcCaiIBRgRAQbSnAiAFQX4gA3dxNgIADAELIAIgATYCDCABIAI2AggLIAQgA0EDdCIBQQNyNgIEIAEgBGoiASABKAIEQQFyNgIEDA0LIAhBvKcCKAIAIgpNDQEgAQRAAkBBAiACdCIAQQAgAGtyIAEgAnRxIgBBACAAa3FBAWsiACAAQQx2QRBxIgJ2IgFBBXZBCHEiACACciABIAB2IgFBAnZBBHEiAHIgASAAdiIBQQF2QQJxIgByIAEgAHYiAUEBdkEBcSIAciABIAB2aiIDQQN0IgBB5KcCaigCACIEKAIIIgEgAEHcpwJqIgBGBEBBtKcCIAVBfiADd3EiBTYCAAwBCyABIAA2AgwgACABNgIICyAEQQhqIQAgBCAIQQNyNgIEIAQgCGoiAiADQQN0IgEgCGsiA0EBcjYCBCABIARqIAM2AgAgCgRAIApBA3YiAUEDdEHcpwJqIQdByKcCKAIAIQQCfyAFQQEgAXQiAXFFBEBBtKcCIAEgBXI2AgAgBwwBCyAHKAIICyEBIAcgBDYCCCABIAQ2AgwgBCAHNgIMIAQgATYCCAtByKcCIAI2AgBBvKcCIAM2AgAMDQtBuKcCKAIAIgZFDQEgBkEAIAZrcUEBayIAIABBDHZBEHEiAnYiAUEFdkEIcSIAIAJyIAEgAHYiAUECdkEEcSIAciABIAB2IgFBAXZBAnEiAHIgASAAdiIBQQF2QQFxIgByIAEgAHZqQQJ0QeSpAmooAgAiASgCBEF4cSAIayEDIAEhAgNAAkAgAigCECIARQRAIAIoAhQiAEUNAQsgACgCBEF4cSAIayICIAMgAiADSSICGyEDIAAgASACGyEBIAAhAgwBCwsgASAIaiIJIAFNDQIgASgCGCELIAEgASgCDCIERwRAIAEoAggiAEHEpwIoAgBJGiAAIAQ2AgwgBCAANgIIDAwLIAFBFGoiAigCACIARQRAIAEoAhAiAEUNBCABQRBqIQILA0AgAiEHIAAiBEEUaiICKAIAIgANACAEQRBqIQIgBCgCECIADQALIAdBADYCAAwLC0F/IQggAEG/f0sNACAAQQtqIgBBeHEhCEG4pwIoAgAiCUUNAEEfIQVBACAIayEDAkACQAJAAn8gCEH///8HTQRAIABBCHYiACAAQYD+P2pBEHZBCHEiAnQiACAAQYDgH2pBEHZBBHEiAXQiACAAQYCAD2pBEHZBAnEiAHRBD3YgASACciAAcmsiAEEBdCAIIABBFWp2QQFxckEcaiEFCyAFQQJ0QeSpAmooAgAiAkULBEBBACEADAELQQAhACAIQQBBGSAFQQF2ayAFQR9GG3QhAQNAAkAgAigCBEF4cSAIayIHIANPDQAgAiEEIAciAw0AQQAhAyACIQAMAwsgACACKAIUIgcgByACIAFBHXZBBHFqKAIQIgJGGyAAIAcbIQAgAUEBdCEBIAINAAsLIAAgBHJFBEBBAiAFdCIAQQAgAGtyIAlxIgBFDQMgAEEAIABrcUEBayIAIABBDHZBEHEiAnYiAUEFdkEIcSIAIAJyIAEgAHYiAUECdkEEcSIAciABIAB2IgFBAXZBAnEiAHIgASAAdiIBQQF2QQFxIgByIAEgAHZqQQJ0QeSpAmooAgAhAAsgAEUNAQsDQCAAKAIEQXhxIAhrIgEgA0khAiABIAMgAhshAyAAIAQgAhshBCAAKAIQIgEEfyABBSAAKAIUCyIADQALCyAERQ0AIANBvKcCKAIAIAhrTw0AIAQgCGoiBiAETQ0BIAQoAhghBSAEIAQoAgwiAUcEQCAEKAIIIgBBxKcCKAIASRogACABNgIMIAEgADYCCAwKCyAEQRRqIgIoAgAiAEUEQCAEKAIQIgBFDQQgBEEQaiECCwNAIAIhByAAIgFBFGoiAigCACIADQAgAUEQaiECIAEoAhAiAA0ACyAHQQA2AgAMCQsgCEG8pwIoAgAiAk0EQEHIpwIoAgAhAwJAIAIgCGsiAUEQTwRAQbynAiABNgIAQcinAiADIAhqIgA2AgAgACABQQFyNgIEIAIgA2ogATYCACADIAhBA3I2AgQMAQtByKcCQQA2AgBBvKcCQQA2AgAgAyACQQNyNgIEIAIgA2oiACAAKAIEQQFyNgIECyADQQhqIQAMCwsgCEHApwIoAgAiBkkEQEHApwIgBiAIayIBNgIAQcynAkHMpwIoAgAiAiAIaiIANgIAIAAgAUEBcjYCBCACIAhBA3I2AgQgAkEIaiEADAsLQQAhACAIQS9qIgkCf0GMqwIoAgAEQEGUqwIoAgAMAQtBmKsCQn83AgBBkKsCQoCggICAgAQ3AgBBjKsCIAxBDGpBcHFB2KrVqgVzNgIAQaCrAkEANgIAQfCqAkEANgIAQYAgCyIBaiIFQQAgAWsiB3EiAiAITQ0KQeyqAigCACIEBEBB5KoCKAIAIgMgAmoiASADTQ0LIAEgBEsNCwtB8KoCLQAAQQRxDQUCQAJAQcynAigCACIDBEBB9KoCIQADQCADIAAoAgAiAU8EQCABIAAoAgRqIANLDQMLIAAoAggiAA0ACwtBABARIgFBf0YNBiACIQVBkKsCKAIAIgNBAWsiACABcQRAIAIgAWsgACABakEAIANrcWohBQsgBSAITQ0GIAVB/v///wdLDQZB7KoCKAIAIgQEQEHkqgIoAgAiAyAFaiIAIANNDQcgACAESw0HCyAFEBEiACABRw0BDAgLIAUgBmsgB3EiBUH+////B0sNBSAFEBEiASAAKAIAIAAoAgRqRg0EIAEhAAsCQCAIQTBqIAVNDQAgAEF/Rg0AQZSrAigCACIBIAkgBWtqQQAgAWtxIgFB/v///wdLBEAgACEBDAgLIAEQEUF/RwRAIAEgBWohBSAAIQEMCAtBACAFaxARGgwFCyAAIgFBf0cNBgwECwALQQAhBAwHC0EAIQEMBQsgAUF/Rw0CC0HwqgJB8KoCKAIAQQRyNgIACyACQf7///8HSw0BIAIQESEBQQAQESEAIAFBf0YNASAAQX9GDQEgACABTQ0BIAAgAWsiBSAIQShqTQ0BC0HkqgJB5KoCKAIAIAVqIgA2AgBB6KoCKAIAIABJBEBB6KoCIAA2AgALAkACQAJAQcynAigCACIHBEBB9KoCIQADQCABIAAoAgAiAyAAKAIEIgJqRg0CIAAoAggiAA0ACwwCC0HEpwIoAgAiAEEAIAAgAU0bRQRAQcSnAiABNgIAC0EAIQBB+KoCIAU2AgBB9KoCIAE2AgBB1KcCQX82AgBB2KcCQYyrAigCADYCAEGAqwJBADYCAANAIABBA3QiA0HkpwJqIANB3KcCaiICNgIAIANB6KcCaiACNgIAIABBAWoiAEEgRw0AC0HApwIgBUEoayIDQXggAWtBB3FBACABQQhqQQdxGyIAayICNgIAQcynAiAAIAFqIgA2AgAgACACQQFyNgIEIAEgA2pBKDYCBEHQpwJBnKsCKAIANgIADAILIAEgB00NACAAKAIMQQhxDQAgAyAHSw0AIAAgAiAFajYCBEHMpwIgB0F4IAdrQQdxQQAgB0EIakEHcRsiAGoiAjYCAEHApwJBwKcCKAIAIAVqIgEgAGsiADYCACACIABBAXI2AgQgASAHakEoNgIEQdCnAkGcqwIoAgA2AgAMAQtBxKcCKAIAIAFLBEBBxKcCIAE2AgALIAEgBWohAkH0qgIhAAJAAkACQAJAAkACQANAIAIgACgCAEcEQCAAKAIIIgANAQwCCwsgAC0ADEEIcUUNAQtB9KoCIQADQCAHIAAoAgAiAk8EQCACIAAoAgRqIgQgB0sNAwsgACgCCCEADAALAAsgACABNgIAIAAgACgCBCAFajYCBCABQXggAWtBB3FBACABQQhqQQdxG2oiCSAIQQNyNgIEIAJBeCACa0EHcUEAIAJBCGpBB3EbaiIFIAggCWoiBmshAiAFIAdGBEBBzKcCIAY2AgBBwKcCQcCnAigCACACaiIANgIAIAYgAEEBcjYCBAwDCyAFQcinAigCAEYEQEHIpwIgBjYCAEG8pwJBvKcCKAIAIAJqIgA2AgAgBiAAQQFyNgIEIAAgBmogADYCAAwDCyAFKAIEIgBBA3FBAUYEQCAAQXhxIQcCQCAAQf8BTQRAIAUoAggiAyAAQQN2IgBBA3RB3KcCakYaIAMgBSgCDCIBRgRAQbSnAkG0pwIoAgBBfiAAd3E2AgAMAgsgAyABNgIMIAEgAzYCCAwBCyAFKAIYIQgCQCAFIAUoAgwiAUcEQCAFKAIIIgAgATYCDCABIAA2AggMAQsCQCAFQRRqIgAoAgAiAw0AIAVBEGoiACgCACIDDQBBACEBDAELA0AgACEEIAMiAUEUaiIAKAIAIgMNACABQRBqIQAgASgCECIDDQALIARBADYCAAsgCEUNAAJAIAUgBSgCHCIDQQJ0QeSpAmoiACgCAEYEQCAAIAE2AgAgAQ0BQbinAkG4pwIoAgBBfiADd3E2AgAMAgsgCEEQQRQgCCgCECAFRhtqIAE2AgAgAUUNAQsgASAINgIYIAUoAhAiAARAIAEgADYCECAAIAE2AhgLIAUoAhQiAEUNACABIAA2AhQgACABNgIYCyAFIAdqIQUgAiAHaiECCyAFIAUoAgRBfnE2AgQgBiACQQFyNgIEIAIgBmogAjYCACACQf8BTQRAIAJBA3YiAEEDdEHcpwJqIQICf0G0pwIoAgAiAUEBIAB0IgBxRQRAQbSnAiAAIAFyNgIAIAIMAQsgAigCCAshACACIAY2AgggACAGNgIMIAYgAjYCDCAGIAA2AggMAwtBHyEAIAJB////B00EQCACQQh2IgAgAEGA/j9qQRB2QQhxIgN0IgAgAEGA4B9qQRB2QQRxIgF0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAEgA3IgAHJrIgBBAXQgAiAAQRVqdkEBcXJBHGohAAsgBiAANgIcIAZCADcCECAAQQJ0QeSpAmohBAJAQbinAigCACIDQQEgAHQiAXFFBEBBuKcCIAEgA3I2AgAgBCAGNgIAIAYgBDYCGAwBCyACQQBBGSAAQQF2ayAAQR9GG3QhACAEKAIAIQEDQCABIgMoAgRBeHEgAkYNAyAAQR12IQEgAEEBdCEAIAMgAUEEcWoiBCgCECIBDQALIAQgBjYCECAGIAM2AhgLIAYgBjYCDCAGIAY2AggMAgtBwKcCIAVBKGsiA0F4IAFrQQdxQQAgAUEIakEHcRsiAGsiAjYCAEHMpwIgACABaiIANgIAIAAgAkEBcjYCBCABIANqQSg2AgRB0KcCQZyrAigCADYCACAHIARBJyAEa0EHcUEAIARBJ2tBB3EbakEvayIAIAAgB0EQakkbIgJBGzYCBCACQfyqAikCADcCECACQfSqAikCADcCCEH8qgIgAkEIajYCAEH4qgIgBTYCAEH0qgIgATYCAEGAqwJBADYCACACQRhqIQADQCAAQQc2AgQgAEEIaiEBIABBBGohACABIARJDQALIAIgB0YNAyACIAIoAgRBfnE2AgQgByACIAdrIgRBAXI2AgQgAiAENgIAIARB/wFNBEAgBEEDdiIAQQN0QdynAmohAgJ/QbSnAigCACIBQQEgAHQiAHFFBEBBtKcCIAAgAXI2AgAgAgwBCyACKAIICyEAIAIgBzYCCCAAIAc2AgwgByACNgIMIAcgADYCCAwEC0EfIQAgB0IANwIQIARB////B00EQCAEQQh2IgAgAEGA/j9qQRB2QQhxIgJ0IgAgAEGA4B9qQRB2QQRxIgF0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAEgAnIgAHJrIgBBAXQgBCAAQRVqdkEBcXJBHGohAAsgByAANgIcIABBAnRB5KkCaiEDAkBBuKcCKAIAIgJBASAAdCIBcUUEQEG4pwIgASACcjYCACADIAc2AgAgByADNgIYDAELIARBAEEZIABBAXZrIABBH0YbdCEAIAMoAgAhAQNAIAEiAigCBEF4cSAERg0EIABBHXYhASAAQQF0IQAgAiABQQRxaiIDKAIQIgENAAsgAyAHNgIQIAcgAjYCGAsgByAHNgIMIAcgBzYCCAwDCyADKAIIIgAgBjYCDCADIAY2AgggBkEANgIYIAYgAzYCDCAGIAA2AggLIAlBCGohAAwFCyACKAIIIgAgBzYCDCACIAc2AgggB0EANgIYIAcgAjYCDCAHIAA2AggLQcCnAigCACIAIAhNDQBBwKcCIAAgCGsiATYCAEHMpwJBzKcCKAIAIgIgCGoiADYCACAAIAFBAXI2AgQgAiAIQQNyNgIEIAJBCGohAAwDC0HopgJBMDYCAEEAIQAMAgsCQCAFRQ0AAkAgBCgCHCICQQJ0QeSpAmoiACgCACAERgRAIAAgATYCACABDQFBuKcCIAlBfiACd3EiCTYCAAwCCyAFQRBBFCAFKAIQIARGG2ogATYCACABRQ0BCyABIAU2AhggBCgCECIABEAgASAANgIQIAAgATYCGAsgBCgCFCIARQ0AIAEgADYCFCAAIAE2AhgLAkAgA0EPTQRAIAQgAyAIaiIAQQNyNgIEIAAgBGoiACAAKAIEQQFyNgIEDAELIAQgCEEDcjYCBCAGIANBAXI2AgQgAyAGaiADNgIAIANB/wFNBEAgA0EDdiIAQQN0QdynAmohAgJ/QbSnAigCACIBQQEgAHQiAHFFBEBBtKcCIAAgAXI2AgAgAgwBCyACKAIICyEAIAIgBjYCCCAAIAY2AgwgBiACNgIMIAYgADYCCAwBC0EfIQAgA0H///8HTQRAIANBCHYiACAAQYD+P2pBEHZBCHEiAnQiACAAQYDgH2pBEHZBBHEiAXQiACAAQYCAD2pBEHZBAnEiAHRBD3YgASACciAAcmsiAEEBdCADIABBFWp2QQFxckEcaiEACyAGIAA2AhwgBkIANwIQIABBAnRB5KkCaiECAkACQCAJQQEgAHQiAXFFBEBBuKcCIAEgCXI2AgAgAiAGNgIAIAYgAjYCGAwBCyADQQBBGSAAQQF2ayAAQR9GG3QhACACKAIAIQgDQCAIIgEoAgRBeHEgA0YNAiAAQR12IQIgAEEBdCEAIAEgAkEEcWoiAigCECIIDQALIAIgBjYCECAGIAE2AhgLIAYgBjYCDCAGIAY2AggMAQsgASgCCCIAIAY2AgwgASAGNgIIIAZBADYCGCAGIAE2AgwgBiAANgIICyAEQQhqIQAMAQsCQCALRQ0AAkAgASgCHCICQQJ0QeSpAmoiACgCACABRgRAIAAgBDYCACAEDQFBuKcCIAZBfiACd3E2AgAMAgsgC0EQQRQgCygCECABRhtqIAQ2AgAgBEUNAQsgBCALNgIYIAEoAhAiAARAIAQgADYCECAAIAQ2AhgLIAEoAhQiAEUNACAEIAA2AhQgACAENgIYCwJAIANBD00EQCABIAMgCGoiAEEDcjYCBCAAIAFqIgAgACgCBEEBcjYCBAwBCyABIAhBA3I2AgQgCSADQQFyNgIEIAMgCWogAzYCACAKBEAgCkEDdiIAQQN0QdynAmohBEHIpwIoAgAhAgJ/QQEgAHQiACAFcUUEQEG0pwIgACAFcjYCACAEDAELIAQoAggLIQAgBCACNgIIIAAgAjYCDCACIAQ2AgwgAiAANgIIC0HIpwIgCTYCAEG8pwIgAzYCAAsgAUEIaiEACyAMQRBqJAAgAAuOBgEKfyMAIg0hFSAAKAIIIRQgACgCBCEQIA0gACgCLCITIAl0Ig9BAnRBD2pBcHFrIg4kACAAKAIkQQAgCSAIG2shEUEBIAl0IhJBASAIGyENIBMgDyAIGyEIAkACQCAGQQFHDQAgB0ECRw0AIAAgASAOIAMgBCAFIBIgCiALEBkgAigCBCAQQQJtQQJ0aiAOIA9BAnQQCCEDQQAhCSANQQBMDQEgAEFAayEBA0AgASADIAlBAnRqIAIoAgAgCCAJbEECdGogACgCPCAQIBEgDRAYIAlBAWoiCSANRw0AC0EAIQkgDUEATA0BA0AgASAOIAlBAnRqIAIoAgQgCCAJbEECdGogACgCPCAQIBEgDRAYIAlBAWoiCSANRw0ACwwBCyAGQQJGQQAgB0EBRhtFBEAgB0EBIAdBAUobIQcgAEFAayETQQAhBgNAIAAgASAGIA9sQQJ0aiAOIAMgBiAUbEECdGogBCAFIBIgCiALEBkgDUEBTgRAIAIgBkECdGohFkEAIQkDQCATIA4gCUECdGogFigCACAIIAlsQQJ0aiAAKAI8IBAgESANEBggCUEBaiIJIA1HDQALCyAGQQFqIgYgB0cNAAsMAQsgAigCACEGIAAgASAOIAMgBCAFIBIgCiALEBkgACABIA9BAnRqIAYgEEECbUECdGoiASADIBRBAnRqIAQgBSASIAogCxAZAkAgD0EBSA0AQQAhCSAPQQFHBEAgD0F+cSEGA0AgDiAJQQJ0IgNqIgQgBCoCAEMAAAA/lCABIANqKgIAQwAAAD+UkjgCACAOIANBBHIiA2oiBCAEKgIAQwAAAD+UIAEgA2oqAgBDAAAAP5SSOAIAIAlBAmohCSAGQQJrIgYNAAsLIA9BAXFFDQAgDiAJQQJ0IgNqIgQgBCoCAEMAAAA/lCABIANqKgIAQwAAAD+UkjgCAAtBACEJIA1BAEwNACAAQUBrIQEDQCABIA4gCUECdGogAigCACAIIAlsQQJ0aiAAKAI8IBAgESANEBggCUEBaiIJIA1HDQALCyAVJAAL6AYCEH8EfSMAIgchDQJAIANBAkcNACAEQQFHDQAgBioCBCEXIAYqAgAhGCACQQFOBEAgACgCBCEDIAAoAgAhACAFKgIAIRlBACEHA0AgAyAHQQJ0IgRqKgIAIRogASAHQQN0IgVqIBggACAEaioCAENgQqINkpIiGEMAAAA4lDgCACABIAVBBHJqIBcgGkNgQqINkpIiF0MAAAA4lDgCACAZIBeUIRcgGSAYlCEYIAdBAWoiByACRw0ACwsgBiAXOAIEIAYgGDgCACANJAAPCyADQQEgA0EBShshEiACQX5xIQ4gAkEBcSEPIAJBAWshECACIARtIgxBfnEhEyAMQQFxIRQgByACQQJ0QQ9qQXBxayIJJAAgBSoCACEYA0AgASARQQJ0IgVqIQogACAFaigCACEIIAUgBmoiFSoCACEXAkAgBEEBTARAIAJBAUgNAUEAIQcgDiEFIBAEQANAIAogAyAHbEECdGogFyAIIAdBAnRqKgIAQ2BCog2SkiIXQwAAADiUOAIAIAogB0EBciILIANsQQJ0aiAYIBeUIAggC0ECdGoqAgBDYEKiDZKSIhdDAAAAOJQ4AgAgGCAXlCEXIAdBAmohByAFQQJrIgUNAAsLIA9FDQEgCiADIAdsQQJ0aiAXIAggB0ECdGoqAgBDYEKiDZKSIhdDAAAAOJQ4AgAgGCAXlCEXDAELQQEhFiACQQFIDQBBACEHIA4hBSAQBEADQCAJIAdBAnQiC2ogFyAIIAtqKgIAQ2BCog2SkiIXOAIAIAkgC0EEciILaiAYIBeUIAggC2oqAgBDYEKiDZKSIhc4AgAgGCAXlCEXIAdBAmohByAFQQJrIgUNAAsLIA9FDQAgCSAHQQJ0IgVqIBcgBSAIaioCAENgQqINkpIiFzgCACAYIBeUIRcLIBUgFzgCAAJAIBZFDQAgDEEBSA0AQQAhByATIQUgDEEBRwRAA0AgCiADIAdsQQJ0aiAJIAQgB2xBAnRqKgIAQwAAADiUOAIAIAogB0EBciIIIANsQQJ0aiAJIAQgCGxBAnRqKgIAQwAAADiUOAIAIAdBAmohByAFQQJrIgUNAAsLIBRFDQAgCiADIAdsQQJ0aiAJIAQgB2xBAnRqKgIAQwAAADiUOAIACyARQQFqIhEgEkcNAAsgDSQAC78SAhZ/HH0jAEEgayIOJAAgACgCCCEFIA5BATYCACAAQQxqIQRBASEGA0AgBCADIgJBAnQiB0ECcmovAQAhDCAOIAJBAWoiA0ECdGogBiAEIAdqLgEAbCIGNgIAIAxBAUcNAAsgBUEAIAVBAEobIRMgA0ECdCAAai4BCiESIABBDGohFgJAA0AgEiEFAn8gAiIMRQRAIBYhAkEBDAELIAAgDEECdGoiA0EMaiECIAMuAQoLIRICQAJAAkACQAJAIAIuAQBBAmsOBAACAQMECyAFQQRHDQUgDiAMQQJ0aigCACIFQQFIDQNBASEDIAEhAgNAIAIgAioCACIaIAIqAiAiGJM4AiAgAiAYIBqSOAIAIAIgAkEkaioCACIaIAIqAgQiGJI4AgQgAiAYIBqTOAIkIAIgAioCCCIaIAIqAigiGCACQSxqKgIAIhmSQ/MENT+UIhuTOAIoIAIgAkEMaioCACIcIBkgGJND8wQ1P5QiGJM4AiwgAiAaIBuSOAIIIAIgGCAckjgCDCACKgIwIRogAiACKgIQIhggAkE0aioCACIZkzgCMCACIBogAkEUaioCACIbkjgCNCACIBsgGpM4AhQgAiAZIBiSOAIQIAIgAioCGCIaIAJBPGoqAgAiGCACKgI4IhmTQ/MENT+UIhuTOAI4IAIgAkEcaioCACIcIBggGZJD8wQ1v5QiGJM4AjwgAiAYIBySOAIcIAIgGiAbkjgCGCADIAVGDQQgAkFAayECIANBAWohAwwACwALIA4gDEECdGooAgAhBiAFQQFGBEAgBkEBSA0DQQEhAyABIQIDQCACIAIqAgAiGiACKgIQIhiSIhkgAioCCCIbIAIqAhgiHJIiHZM4AhAgAiAZIB2SOAIAIAJBFGogAioCBCIZIAIqAhQiHZIiICACQQxqKgIAIiMgAkEcaioCACIekiIhkzgCACACIBkgHZMiGSAbIByTIhuSOAIcIAIgGiAYkyIaICMgHpMiGJM4AhggAiAZIBuTOAIMIAIgGiAYkjgCCCACICAgIZI4AgQgAyAGRg0EIAJBIGohAiADQQFqIQMMAAsACyAGQQFIDQIgBiATdCIRQQNsIRQgEUEBdCEVIAVBA2whDyAFQQF0IRcgACgCMCEDQQAhCgNAAkAgBUEBSA0AIAEgCiASbEEDdGohAkEBIQsgAyIEIQggBCEHA0AgAioCACEaIAIgF0EDdGoiCSAIKgIAIhggCSoCBCIZlCAJKgIAIhsgCCoCBCIclJIiHSACKgIEIiCSIiMgByoCACIeIAIgBUEDdGoiDSoCBCIhlCANKgIAIh8gByoCBCIilJIiJiAEKgIAIiQgAiAPQQN0aiIQKgIEIiWUIBAqAgAiJyAEKgIEIiiUkiIpkiIqkzgCBCAJIBogGyAYlCAZIByUkyIYkiIZIB8gHpQgISAilJMiGyAnICSUICUgKJSTIhySIh6TOAIAIAIgKiAjkjgCBCACIBkgHpI4AgAgDSAgIB2TIhkgGyAckyIbkzgCBCANIBogGJMiGiAmICmTIhiSOAIAIBAgGSAbkjgCBCAQIBogGJM4AgAgBSALRg0BIAJBCGohAiAEIBRBA3RqIQQgCCAVQQN0aiEIIAcgEUEDdGohByALQQFqIQsMAAsACyAKQQFqIgogBkcNAAsMAgsgDiAMQQJ0aigCACIJQQFIDQEgBUEBdCEQIAkgE3QiDUEBdCERIAAoAjAiAyAFIA1sQQN0aioCBCEaQQAhCwNAIAEgCyASbEEDdGohAiADIgchBiAFIQgDQCACIAVBA3RqIgQgAioCACAEKgIAIhggBioCACIZlCAEKgIEIhsgBioCBCIclJMiHSACIBBBA3RqIgoqAgAiICAHKgIAIiOUIAoqAgQiHiAHKgIEIiGUkyIfkiIiQwAAAD+UkzgCACAEIAIqAgQgGSAblCAYIByUkiIYICMgHpQgICAhlJIiGZIiG0MAAAA/lJM4AgQgAiAiIAIqAgCSOAIAIAIgGyACKgIEkjgCBCAKIBogGCAZk5QiGCAEKgIAkjgCACAKIAQqAgQgGiAdIB+TlCIZkzgCBCAEIAQqAgAgGJM4AgAgBCAZIAQqAgSSOAIEIAJBCGohAiAHIBFBA3RqIQcgBiANQQN0aiEGIAhBAWsiCA0ACyALQQFqIgsgCUcNAAsMAQsgDiAMQQJ0aigCACINQQFIDQAgBUECdCEQIAVBA2whESAFQQF0IRQgACgCMCIIIA0gE3QiFSAFbCICQQR0aiIDKgIEIRogAyoCACEYIAggAkEDdGoiAioCBCEZIAIqAgAhG0EAIQoDQCAFQQFOBEAgASAKIBJsQQN0aiICIAVBA3RqIQMgAiAUQQN0aiEHIAIgEUEDdGohBiACIBBBA3RqIQRBACELA0AgAioCACEcIAIgAioCBCIdIAggCyAVbCIJQQR0aiIPKgIAIh4gByoCBCIhlCAHKgIAIh8gDyoCBCIilJIiJiAIIAlBGGxqIg8qAgAiJCAGKgIEIiWUIAYqAgAiJyAPKgIEIiiUkiIpkiIgIAggCUEDdGoiDyoCACIqIAMqAgQiK5QgAyoCACIsIA8qAgQiLZSSIi4gCCAJQQV0aiIJKgIAIi8gBCoCBCIwlCAEKgIAIjEgCSoCBCIylJIiM5IiI5KSOAIEIAIgHCAfIB6UICEgIpSTIh8gJyAklCAlICiUkyIikiIeICwgKpQgKyAtlJMiJCAxIC+UIDAgMpSTIiWSIiGSkjgCACADIBogHyAikyIflCAZICQgJZMiIpSSIiQgHSAYICCUIBsgI5SSkiIlkjgCBCADIBwgGCAelCAbICGUkpIiJyAaICYgKZMiJpQgGSAuIDOTIiiUkiIpkzgCACAEICUgJJM4AgQgBCApICeSOAIAIAcgGiAilCAZIB+UkyIfIB0gGyAglCAYICOUkpIiHZI4AgQgByAZICaUIBogKJSTIiAgHCAbIB6UIBggIZSSkiIckjgCACAGIB0gH5M4AgQgBiAcICCTOAIAIARBCGohBCAGQQhqIQYgB0EIaiEHIANBCGohAyACQQhqIQIgC0EBaiILIAVHDQALCyAKQQFqIgogDUcNAAsLIAxBAWshAiAMQQBKDQALIA5BIGokAA8LQaiKAkGYigJBzAAQBgAL5gcCC38PfSAEQQFOBEACQCAEQQRIDQAgA0EDTgRAIANBA2shDCAEQQNrIQ0gA0EDRiEOIANBfHEiCEEBciADTiELIAhBAnIgA04hDwNAIAEgCUECdCIKaiIFQQxqIQYgBSoCCCEQIAUqAgQhGSAFKgIAIRpDAAAAACEVAkAgDgRAQwAAAAAhEkMAAAAAIRNDAAAAACEUIBkhFyAQIRhDAAAAACERIBohFiAAIQUMAQtDAAAAACEUQQQhB0MAAAAAIRNDAAAAACESIAAhBQNAIBQgBSoCACIbIAYqAgAiEZSSIAUqAgQiHCAGKgIEIhaUkiAFKgIIIh0gBioCCCIXlJIgBSoCDCIeIAYqAgwiGJSSIRQgEyAQIBuUkiARIByUkiAWIB2UkiAXIB6UkiETIBIgGSAblJIgECAclJIgESAdlJIgFiAelJIhEiAVIBogG5SSIBkgHJSSIBAgHZSSIBEgHpSSIRUgBkEQaiEGIAVBEGohBSAHIAxODQEgB0EEaiEHIBYhGiAYIRAgFyEZDAALAAsCfyADIAhMBEAgBSEHIAYMAQsgBUEEaiEHIBQgBSoCACIQIAYqAgAiEZSSIRQgEyAYIBCUkiETIBIgFyAQlJIhEiAVIBYgEJSSIRUgBkEEagshBQJ/IAsEQCAFIQYgBwwBCyAFQQRqIQYgFCAHKgIAIhAgBSoCACIWlJIhFCATIBEgEJSSIRMgEiAYIBCUkiESIBUgFyAQlJIhFSAHQQRqCyEFIAIgCmogDwR9IBUFIBQgBSoCACIQIAYqAgCUkiEUIBMgFiAQlJIhEyASIBEgEJSSIRIgFSAYIBCUkgs4AgAgAiAKQQRyaiASOAIAIAIgCkEIcmogEzgCACACIApBDHJqIBQ4AgAgCUEEaiIJIA1IDQALDAELQfCJAkGJigJBxQAQBgALIAQgCUoEQCADQXxxIQUgA0EDcSEKIANBAUghDSADQQFrQQNJIQ4DQCAJQQJ0IQwCQCANBEBDAAAAACERDAELIAEgDGohCEEAIQZDAAAAACERIAUhAyAORQRAA0AgESAAIAZBAnQiB2oqAgAgByAIaioCAJSSIAAgB0EEciILaioCACAIIAtqKgIAlJIgACAHQQhyIgtqKgIAIAggC2oqAgCUkiAAIAdBDHIiB2oqAgAgByAIaioCAJSSIREgBkEEaiEGIANBBGsiAw0ACwsgCiIHRQ0AA0AgESAAIAZBAnQiA2oqAgAgAyAIaioCAJSSIREgBkEBaiEGIAdBAWsiBw0ACwsgAiAMaiAROAIAIAlBAWoiCSAERw0ACwsPC0GtiQJBy4kCQfsBEAYAC4sDAgR/AX0jACIFIQggBUGAIGsiBSQAIANBf0oEQAJ/IAMEQCAFIABBgCAQCCEFA0AgBSAGQQJ0IgdqIAAgB2oqAgAgAiAHaioCACIKlDgCACAFIAZBf3NBgAhqQQJ0IgdqIAogACAHaioCAJQ4AgAgBkEBaiIGIANHDQALIAUhAAsgAAsgACABQYAIIARrIgMgBEEBahAxQQAhBiAEQQBOBEBBACAEayEFIAAgA0ECdGohBwNAQwAAAAAhCgJAIAYiAiADaiIGQYAITg0AIAQgAmtBAXEEQCAAIAZBAnRqKgIAIAcqAgCUQwAAAACSIQogBkEBaiEGCyACQX9zIAVGDQADQCAKIAAgBkECdGoqAgAgACAGIAJrQQJ0aioCAJSSIAAgBkEBaiIJQQJ0aioCACAAIAkgAmtBAnRqKgIAlJIhCiAGQQJqIgZBgAhHDQALCyABIAJBAnRqIgYgCiAGKgIAkjgCACACQQFqIQYgAiAERw0ACwsgCCQADwtB6IgCQaWIAkGRAhAGAAvQAwIJfQF/IAFBDGohDCABKgIIIQkgASoCBCEKIAEqAgAhBAJ/IAIqAgwhBSACKgIIIQYgAioCBCEHIAIqAgAhCEEEIQEDQCACIAAqAgAiAyAMKgIAIguUIAWSIgU4AgwgAiAJIAOUIAaSIgY4AgggAiAKIAOUIAeSIgc4AgQgAiAEIAOUIAiSIgg4AgAgAiAFIAAqAgQiAyAMKgIEIgSUkiIFOAIMIAIgBiALIAOUkiIGOAIIIAIgByAJIAOUkiIHOAIEIAIgCCAKIAOUkiIIOAIAIAIgBSAAKgIIIgMgDCoCCCIKlJIiBTgCDCACIAYgBCADlJIiBjgCCCACIAcgCyADlJIiBzgCBCACIAggCSADlJIiCDgCACACIAUgACoCDCIDIAwqAgwiCZSSIgU4AgwgAiAGIAogA5SSIgY4AgggAiAHIAQgA5SSIgc4AgQgAiAIIAsgA5SSIgg4AgAgDEEQaiEMIABBEGohACABQRVIBEAgAUEEaiEBDAELC0EACwRAIAwqAgAhCyACIAQgACoCACIElCACKgIAkjgCACACIAogBJQgAioCBJI4AgQgAiAJIASUIAIqAgiSOAIIIAIgBCALlCACKgIMkjgCDAsLrAQCBH0GfyABKgIAIQYgAEEAIAJBAnQQCSEHAkAgASoCAEMAAAAAWw0AIAJBACACQQBKGyEMA0AgCiIAIAxGDQEgAEEBaiEKAkAgAEUEQEMAAAAAIQMMAQsgAEEBcSEJAkAgAEEBRgRAQwAAAAAhA0EAIQIMAQsgAEF+cSEIQwAAAAAhA0EAIQIDQCADIAcgAkECdGoqAgAgASAAIAJrQQJ0aioCAJSSIAcgAkEBciILQQJ0aioCACABIAAgC2tBAnRqKgIAlJIhAyACQQJqIQIgCEECayIIDQALCyAJRQ0AIAMgByACQQJ0aioCACABIAAgAmtBAnRqKgIAlJIhAwsgByAAQQJ0aiADIAEgCkECdGoqAgCSjCAGlSIDOAIAAkAgAEUNAEEAIQIgCkEBdiIIQQFHBEAgCEH+////B3EhCANAIAcgAkECdCIJaiILIAsqAgAiBCADIAcgACACQX9zakECdGoiCyoCACIFlJI4AgAgCyAFIAMgBJSSOAIAIAcgCUEEcmoiCSAJKgIAIgQgAyAAIAJrQQJ0IAdqQQhrIgkqAgAiBZSSOAIAIAkgBSADIASUkjgCACACQQJqIQIgCEECayIIDQALCyAKQQJxRQ0AIAcgAkECdGoiCCAIKgIAIgQgAyAHIAAgAkF/c2pBAnRqIgAqAgAiBZSSOAIAIAAgBSADIASUkjgCAAsgBiAGIAMgA5SUkyIGIAEqAgBDbxKDOpRdRQ0ACwsLrh8CB30MfyAAKAIkIRkgACgCHCESIAAoAhAhFiAAKAIAIRtBASEVAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAUoAgAiEyAAKAIIIh0oAjggACgCDCIYQQF0ai4BACAIQQN0aiIIa0EgayIUIAhBAXVBcEF8IARBAkYgCUEAR3EiCBtqIARBAXRBfkF/IAgbaiIIbCATaiAIbSIIIAggFEobIghBwAAgCEHAAEgbIghBBE4EQCAIQQdxQQF0QeCHAmouAQBBDiAIQQN2a3VBAWpBfnEiFUGBAk4NAQsgFUEBIBYgGEobIBUgCRshFAJAAkACQCAbBEACfyAAKAIsGgJAAkAgCQRAIARBAUgNASAEQQFxIRMCQCAEQQFGBEBDfR2QJiEQQ30dkCYhDgwBCyAEQX5xIRVDfR2QJiEQQ30dkCYhDgNAIA4gAiAXQQJ0IghqKgIAIhEgAyAIaioCACIPkyILIAuUkiACIAhBBHIiCGoqAgAiDSADIAhqKgIAIgyTIgsgC5SSIQ4gECARIA+SIgsgC5SSIA0gDJIiCyALlJIhECAXQQJqIRcgFUECayIVDQALCyATRQ0CIBAgAiAXQQJ0IghqKgIAIg0gAyAIaioCACIMkiILIAuUkiEQIA4gDSAMkyILIAuUkiEODAILIARBAUgNACAEQQNxIRUCQCAEQQFrIghBA0kEQAwBCyAEQXxxIRMDQCAOIAIgF0ECdCIWaioCACILIAuUkiACIBZBBHJqKgIAIgsgC5SSIAIgFkEIcmoqAgAiCyALlJIgAiAWQQxyaioCACILIAuUkiEOIBdBBGohFyATQQRrIhMNAAsLIBUEQANAIA4gAiAXQQJ0aioCACILIAuUkiEOIBdBAWohFyAVQQFrIhUNAAsLIARBA3EhFwJAIAhBA0kEQEEAIRMMAQsgBEF8cSEVQQAhEwNAIAwgAyATQQJ0IghqKgIAIgsgC5SSIAMgCEEEcmoqAgAiCyALlJIgAyAIQQhyaioCACILIAuUkiADIAhBDHJqKgIAIgsgC5SSIQwgE0EEaiETIBVBBGsiFQ0ACwsgFwRAA0AgDCADIBNBAnRqKgIAIgsgC5SSIQwgE0EBaiETIBdBAWsiFw0ACwsgDkN9HZAmkiEQIAxDfR2QJpIhDgwBC0N9HZAmIQ5DfR2QJiEQCwJ9QwAAAAAgDpEiDCAMlCIPIBCRIgsgC5QiDZJD75KTIV0NABpD2w/JPyAMIAuUIA8gDUMF+Nw+lJKUIA8gDUMhsS0/lJIgDyANQ2UJsD2UkpSVkyANIA9dDQAaIAwgC5QgDSAPQwX43D6UkpQgDSAPQyGxLT+UkiANIA9DZQmwPZSSlJVD2w/JP5JD2w/Jv5ILQ4f5IkaUQwAAAD+SjiILi0MAAABPXQRAIAuoDAELQYCAgIB4CyEIIBIQDyEcIBRBAUYNAwJ/AkAgCQRAIAAoAjAiAA0BIAggFGxBgEBrQQ51DAILAkAgFCAIIBRsIhZBgEBrIhNBDnUiCEwEQCAIIQAMAQsgACgCOEUEQCAIIQAMAQsgFkGAwABIBEAgCCEADAELIBNBgIB/cSAUIgBuQRB0IhNBDXUgE0EQdWxBgIACakEQdSIWIBZBjntsQYCAAWpBD3VB1cAAamxBAXRBgICK7wFrQRB1IBZsQYCAAWpBD3YgFmtBEHRBgICAgHhrQRB1IhpnIhdBgICAgAQgE2siE0ENdSATQRB1bEGAgAJqQRB1IhMgE0GOe2xBgIABakEPdUHVwABqbEEBdEGAgIrvAWtBEHUgE2xBgIABakEPdiATa0EQdEGAgICAeGtBEHUiFWciFmtBC3QgGiAXQRFrdEEQdEEQdSITQdtrbEGAgAFqQQ91Qfw9aiATbEGAgAFqQQ92ayAVIBZBEWt0QRB0QRB1IhNB22tsQYCAAWpBD3VB/D1qIBNsQYCAAWpBD3ZqQRB0QRB1IARBF3RBgICABGtBEHVsQYCAAWpBD3UiFiAFKAIAIhNKDQBBACAIIBZBACATa0gbIQALIAdBAkgNAwwJCyAAQX9zQR92QQAgCCAUbEH//wFBgYB+IAhBgMAAShsgFG1qIgBBDnUgAEEASBsiACAUQQFrIAAgFEgbagshACAEQQJMDQcgEiAUQQJtIhZBA2xBA2oiEyAWQX9zaiAAaiAAQQNsIgggACAWSiIHGyATIBZrIABqIAhBA2ogBxsgEyAWahAcDAgLIBIQDyEcIBRBAUYNBAJAIARBA0gNACAJRQ0AIBICfyASIBRBAm0iFUEBaiIAQQNsIhYgFWoiExBCIgcgFkgEQCAHQQNtDAELIAcgAEEBdGsLIgAgFiAVQX9zamogAEEDbCIIIAAgFUoiBxsgFiAVayAAaiAIQQNqIAcbIBMQJQwIC0EAIAdBAUwgCRsNASASIBRBAWoQFiEADAcLIBQgAGsiF0EBaiIVIABBAWoiFiAAIBRBAXUiB0oiExshCCAHQQFqIgcgB2whGiASIBMEfyAaIBUgF0ECamxBAXVrBSAAIBZsQQF1CyIHIAcgCGogGhAcDAYLIBICfyASIBRBAXUiAEEBaiIDIANsIgcQQiICIAAgA2xBAXVIBEAgAkEDdEEBchA3QQFrQQF2IgBBAWoiCSAAbEEBdgwBCyAHIBRBAWoiACAAQQF0IAcgAkF/c2pBA3RBAXIQN2tBAXYiAGsiCSAUIABrQQJqbEEBdWsLIgIgAiAJaiAHECUgAEEOdCAUbiEIDAgLIAlFDQdBACEHAkAgCEGBwABIDQAgACgCNA0AQQEhByAEQQFIDQAgBEEDcSEIQQAhCSAEQQFrQQNPBEAgBEF8cSETA0AgAyAJQQJ0IhZqIhQgFCoCAIw4AgAgAyAWQQRyaiIUIBQqAgCMOAIAIAMgFkEIcmoiFCAUKgIAjDgCACADIBZBDHJqIhQgFCoCAIw4AgAgCUEEaiEJIBNBBGsiEw0ACwsgCEUNAANAIAMgCUECdGoiByAHKgIAjDgCAEEBIQcgCUEBaiEJIAhBAWsiCA0ACwsgBEEBSA0CIBkgHSgCCCAYakECdGoqAgAiCyAZIBhBAnRqKgIAIgwgDJRDfR2QJpIgCyALlJKRQ30dkCaSIguVIQ0gDCALlSELQQAhCSAEQQFHBEAgBEF+cSEVA0AgAiAJQQJ0IhRqIgggCyAIKgIAlCANIAMgFGoqAgCUkjgCACACIBRBBHIiFGoiCCALIAgqAgCUIA0gAyAUaioCAJSSOAIAIAlBAmohCSAVQQJrIhUNAAsLIARBAXFFDQIgAiAJQQJ0IgRqIgIgCyACKgIAlCANIAMgBGoqAgCUkjgCAAwCC0HwhwJB14UCQZ0FEAYAC0EAIQcgCUUNAwtBAAJ/QQAgBSgCAEERSA0AGkEAIAAoAiBBEUgNABogGwRAIBIoAhwiAiACQQJ2IgNrIQICQCAHRQRAIAIhAwwBCyASIBIoAiAgAmo2AiALIBIgAzYCHCADQYCAgARNBEAgEigCICEJA0ACQCAJQRd2IgRB/wFHBEAgCUEfdiEIIBIoAigiAkEATgRAIBIgEigCBCASKAIYIgMgEigCCGpLBH8gEiADQQFqNgIYIBIoAgAgA2ogAiAIajoAAEEABUF/CyASKAIscjYCLAsgEigCJCIJBEAgCEEBayECA0BBfyEDIBIgEigCBCASKAIYIgggEigCCGpLBH8gEiAIQQFqNgIYIBIoAgAgCGogAjoAAEEAIQMgEigCJAUgCQtBAWsiCTYCJCASIBIoAiwgA3I2AiwgCQ0ACwsgEiAEQf8BcTYCKCASKAIcIQMgEigCICEJDAELIBIgEigCJEEBajYCJAsgEiADQQh0IgM2AhwgEiAJQQh0QYD+//8HcSIJNgIgIBIgEigCFEEIajYCFCADQYGAgARJDQALCyAHDAELIBJBAhAKCyAAKAI0GyEHDAILIBIgACAUQQFqED4LIABBf0wNASAAQQ50IgAgFG4hCCAJRQ0CIBtFDQIgACAUSQRAIARBAUgEQEEAIQcMAgsgGSAdKAIIIBhqQQJ0aioCACILIBkgGEECdGoqAgAiDCAMlEN9HZAmkiALIAuUkpFDfR2QJpIiC5UhDSAMIAuVIQsgBEEBcSEUQQAhB0EAIQAgBEEBRwRAIARBfnEhBANAIAIgAEECdCIJaiIIIAsgCCoCAJQgDSADIAlqKgIAlJI4AgAgAiAJQQRyIglqIgggCyAIKgIAlCANIAMgCWoqAgCUkjgCACAAQQJqIQAgBEECayIEDQALCyAURQ0BIAIgAEECdCIEaiIAIAsgACoCAJQgDSADIARqKgIAlJI4AgAMAQsgBEEBSA0CQQAhACAEQQFHBEAgBEF+cSEVA0AgAiAAQQJ0IglqIgcgByoCAEPzBDU/lCIMIAMgCWoiByoCAEPzBDU/lCILkjgCACAHIAsgDJM4AgAgAiAJQQRyIglqIgcgByoCAEPzBDU/lCIMIAMgCWoiByoCAEPzBDU/lCILkjgCACAHIAsgDJM4AgAgAEECaiEAIBVBAmsiFQ0ACwsgBEEBcUUNAiACIABBAnQiB2oiACAAKgIAQ/MENT+UIgwgAyAHaiIAKgIAQ/MENT+UIguSOAIAIAAgCyAMkzgCAAwCCyASEA8hACAFIAUoAgAgACAcayIVazYCAAwCC0G4hwJB14UCQcYGEAYACyASEA8hACAFIAUoAgAgACAcayIVazYCAEGAgAEhAyAIQYCAAUYNASAIDQIgCCEHCyAKIAooAgBBfyAGdEF/c3E2AgBBgIB/IQlB//8BIQJBACEDQQAhAAwCCyAKIAooAgBBfyAGdEF/cyAGdHE2AgBB//8BIQBBACEHQQAhAkGAgAEhCQwBCyAIQRB0IgBBDXUgAEEQdWxBgIACakEQdSICIAJBjntsQYCAAWpBD3VB1cAAamxBAXRBgICK7wFrQRB1IAJsQYCAAWpBD3YgAmtBEHRBgICAgHhrQRB1IgJnIgNBgICAgAQgAGsiAEENdSAAQRB1bEGAgAJqQRB1IgAgAEGOe2xBgIABakEPdUHVwABqbEEBdEGAgIrvAWtBEHUgAGxBgIABakEPdiAAa0EQdEGAgICAeGtBEHUiAGciBWtBC3QgAiADQRFrdEEQdEEQdSIDQdtrbEGAgAFqQQ91Qfw9aiADbEGAgAFqQQ92ayAAIAVBEWt0QRB0QRB1IgNB22tsQYCAAWpBD3VB/D1qIANsQYCAAWpBD3ZqQRB0QRB1IARBF3RBgICABGtBEHVsQYCAAWpBD3UhCUEAIQcgCCEDCyABIBU2AhQgASADNgIQIAEgCTYCDCABIAA2AgggASACNgIEIAEgBzYCAAvgAwEKfyMAIgUhCyAFIAEgAmwiDEECdEEPakFwcWsiBiQAIAJBAEoEQAJAIANFBEAgAUF+cSEIIAFBAXEhCUEAIQMDQAJAIAFBAUgNACABIANsIQdBACEEIAghBSABQQFHBEADQCAGIAQgB2pBAnRqIAAgAiAEbCADakECdGoqAgA4AgAgBiAEQQFyIgogB2pBAnRqIAAgAiAKbCADakECdGoqAgA4AgAgBEECaiEEIAVBAmsiBQ0ACwsgCUUNACAGIAQgB2pBAnRqIAAgAiAEbCADakECdGoqAgA4AgALIANBAWoiAyACRw0ACwwBCyABQX5xIQggAUEBcSEJIAJBAnRBuIYCaiEKQQAhAwNAAkAgAUEBSA0AIAogA0ECdGooAgAgAWwhB0EAIQQgCCEFIAFBAUcEQANAIAYgBCAHakECdGogACACIARsIANqQQJ0aioCADgCACAGIAcgBEEBciINakECdGogACACIA1sIANqQQJ0aioCADgCACAEQQJqIQQgBUECayIFDQALCyAJRQ0AIAYgBCAHakECdGogACACIARsIANqQQJ0aioCADgCAAsgA0EBaiIDIAJHDQALCyAAIAYgDEECdBAIGiALJAAPC0GghgJB14UCQc8EEAYAC1oBBH9BAUEfIABna0EBdSICdCEDA0AgAEEAIARBAXQgA2ogAnQiASAAIAFJIgEbayEAQQAgAyABGyAEaiEEIAJBAEohASADQQF2IQMgAkEBayECIAENAAsgBAuFGQMUfwR8AX4jAEEQayIDJAACfCAAvUIgiKdB/////wdxIgJB+8Ok/wNNBEBEAAAAAAAA8D8gAkGewZryA0kNARogAEQAAAAAAAAAABAjDAELIAAgAKEgAkGAgMD/B08NABojAEEwayIIJAACQAJAAkAgAL0iGUIgiKciAkH/////B3EiBEH61L2ABE0EQCACQf//P3FB+8MkRg0BIARB/LKLgARNBEAgGUIAWQRAIAMgAEQAAEBU+yH5v6AiAEQxY2IaYbTQvaAiFTkDACADIAAgFaFEMWNiGmG00L2gOQMIQQEhAgwFCyADIABEAABAVPsh+T+gIgBEMWNiGmG00D2gIhU5AwAgAyAAIBWhRDFjYhphtNA9oDkDCEF/IQIMBAsgGUIAWQRAIAMgAEQAAEBU+yEJwKAiAEQxY2IaYbTgvaAiFTkDACADIAAgFaFEMWNiGmG04L2gOQMIQQIhAgwECyADIABEAABAVPshCUCgIgBEMWNiGmG04D2gIhU5AwAgAyAAIBWhRDFjYhphtOA9oDkDCEF+IQIMAwsgBEG7jPGABE0EQCAEQbz714AETQRAIARB/LLLgARGDQIgGUIAWQRAIAMgAEQAADB/fNkSwKAiAETKlJOnkQ7pvaAiFTkDACADIAAgFaFEypSTp5EO6b2gOQMIQQMhAgwFCyADIABEAAAwf3zZEkCgIgBEypSTp5EO6T2gIhU5AwAgAyAAIBWhRMqUk6eRDuk9oDkDCEF9IQIMBAsgBEH7w+SABEYNASAZQgBZBEAgAyAARAAAQFT7IRnAoCIARDFjYhphtPC9oCIVOQMAIAMgACAVoUQxY2IaYbTwvaA5AwhBBCECDAQLIAMgAEQAAEBU+yEZQKAiAEQxY2IaYbTwPaAiFTkDACADIAAgFaFEMWNiGmG08D2gOQMIQXwhAgwDCyAEQfrD5IkESw0BCyADIAAgAESDyMltMF/kP6JEAAAAAAAAOEOgRAAAAAAAADjDoCIXRAAAQFT7Ifm/oqAiACAXRDFjYhphtNA9oiIYoSIWOQMAIARBFHYiASAWvUI0iKdB/w9xa0ERSCEEAn8gF5lEAAAAAAAA4EFjBEAgF6oMAQtBgICAgHgLIQICQCAEDQAgAyAAIBdEAABgGmG00D2iIhahIhUgF0RzcAMuihmjO6IgACAVoSAWoaEiGKEiFjkDACABIBa9QjSIp0H/D3FrQTJIBEAgFSEADAELIAMgFSAXRAAAAC6KGaM7oiIWoSIAIBdEwUkgJZqDezmiIBUgAKEgFqGhIhihIhY5AwALIAMgACAWoSAYoTkDCAwBCyAEQYCAwP8HTwRAIAMgACAAoSIAOQMAIAMgADkDCEEAIQIMAQsgGUL/////////B4NCgICAgICAgLDBAIS/IRYgCEEQaiECIAhBEGpBCHIhAUEBIQcDQCACAn8gFplEAAAAAAAA4EFjBEAgFqoMAQtBgICAgHgLtyIAOQMAIBYgAKFEAAAAAAAAcEGiIRYgBwRAQQAhByABIQIMAQsLIAggFjkDICAIQRBqIQ4gBEEUdkGWCGshBAJ/IBZEAAAAAAAAAABhBEBBASECA0AgAiIBQQFrIQIgCEEQaiABQQN0aisDAEQAAAAAAAAAAGENAAsgAUEBagwBC0EDCyEMIwBBsARrIgYkACAEIARBA2tBGG0iAkEAIAJBAEobIg9BaGxqIQRBhMQBKAIAIgogDEEBayIJakEATgRAIAogDGohAiAPIAlrIQEDQCAGQcACaiAFQQN0aiABQQBIBHxEAAAAAAAAAAAFIAFBAnRBkMQBaigCALcLOQMAIAFBAWohASAFQQFqIgUgAkcNAAsLIARBGGshByAKQQAgCkEAShshBUEAIQIDQEQAAAAAAAAAACEAIAxBAEoEQCACIAlqIQtBACEBA0AgACAOIAFBA3RqKwMAIAZBwAJqIAsgAWtBA3RqKwMAoqAhACABQQFqIgEgDEcNAAsLIAYgAkEDdGogADkDACACIAVGIQEgAkEBaiECIAFFDQALQS8gBGshEUEwIARrIRAgBEEZayESIAohAgJAA0AgBiACQQN0aisDACEAQQAhASACIQUgAkEBSCINRQRAA0AgBkHgA2ogAUECdGoCfyAAAn8gAEQAAAAAAABwPqIiAJlEAAAAAAAA4EFjBEAgAKoMAQtBgICAgHgLtyIARAAAAAAAAHDBoqAiFZlEAAAAAAAA4EFjBEAgFaoMAQtBgICAgHgLNgIAIAYgBUEBayIFQQN0aisDACAAoCEAIAFBAWoiASACRw0ACwsCfyAAIAcQFSIAIABEAAAAAAAAwD+inEQAAAAAAAAgwKKgIgCZRAAAAAAAAOBBYwRAIACqDAELQYCAgIB4CyEJIAAgCbehIQACQAJAAkACfyAHQQFIIhNFBEAgAkECdCAGaiIBIAEoAtwDIgEgASAQdSIBIBB0ayIFNgLcAyABIAlqIQkgBSARdQwBCyAHDQEgAkECdCAGaigC3ANBF3ULIgtBAUgNAgwBC0ECIQsgAEQAAAAAAADgP2YNAEEAIQsMAQsCQCANBEBBACEFDAELQQAhAUEBIQ0DQCAGQeADaiABQQJ0aiIUKAIAIQUCfyAUIA0Ef0EAIAVFDQEaQYCAgAggBWsFQf///wcgBWsLNgIAQQELIQUgAUEBaiIBIAJGDQEgBUUhDQwACwALAkAgEw0AAkACQCASDgIAAQILIAJBAnQgBmoiASABKALcA0H///8DcTYC3AMMAQsgAkECdCAGaiIBIAEoAtwDQf///wFxNgLcAwsgCUEBaiEJIAtBAkcNAEQAAAAAAADwPyAAoSEAQQIhCyAFRQ0AIABEAAAAAAAA8D8gBxAVoSEACyAARAAAAAAAAAAAYQRAQQAhBQJAIAIiASAKTA0AA0AgBkHgA2ogAUEBayIBQQJ0aigCACAFciEFIAEgCkoNAAsgBUUNACAHIQQDQCAEQRhrIQQgBkHgA2ogAkEBayICQQJ0aigCAEUNAAsMAwtBASEBA0AgASIFQQFqIQEgBkHgA2ogCiAFa0ECdGooAgBFDQALIAIgBWohBQNAIAZBwAJqIAIgDGoiCUEDdGogAkEBaiICIA9qQQJ0QZDEAWooAgC3OQMAQQAhAUQAAAAAAAAAACEAIAxBAU4EQANAIAAgDiABQQN0aisDACAGQcACaiAJIAFrQQN0aisDAKKgIQAgAUEBaiIBIAxHDQALCyAGIAJBA3RqIAA5AwAgAiAFSA0ACyAFIQIMAQsLAkAgAEEYIARrEBUiAEQAAAAAAABwQWYEQCAGQeADaiACQQJ0agJ/IAACfyAARAAAAAAAAHA+oiIAmUQAAAAAAADgQWMEQCAAqgwBC0GAgICAeAsiAbdEAAAAAAAAcMGioCIAmUQAAAAAAADgQWMEQCAAqgwBC0GAgICAeAs2AgAgAkEBaiECDAELAn8gAJlEAAAAAAAA4EFjBEAgAKoMAQtBgICAgHgLIQEgByEECyAGQeADaiACQQJ0aiABNgIAC0QAAAAAAADwPyAEEBUhAAJAIAJBf0wNACACIQEDQCAGIAFBA3RqIAAgBkHgA2ogAUECdGooAgC3ojkDACAARAAAAAAAAHA+oiEAIAFBAEohBCABQQFrIQEgBA0ACyACQX9MDQAgAiEBA0AgAiABIgRrIQdEAAAAAAAAAAAhAEEAIQEDQAJAIAAgAUEDdEHg2QFqKwMAIAYgASAEakEDdGorAwCioCEAIAEgCk4NACABIAdJIQUgAUEBaiEBIAUNAQsLIAZBoAFqIAdBA3RqIAA5AwAgBEEBayEBIARBAEoNAAsLRAAAAAAAAAAAIQAgAkEATgRAIAIhAQNAIAAgBkGgAWogAUEDdGorAwCgIQAgAUEASiEEIAFBAWshASAEDQALCyAIIACaIAAgCxs5AwAgBisDoAEgAKEhAEEBIQEgAkEBTgRAA0AgACAGQaABaiABQQN0aisDAKAhACABIAJHIQQgAUEBaiEBIAQNAAsLIAggAJogACALGzkDCCAGQbAEaiQAIAlBB3EhAiAIKwMAIQAgGUJ/VwRAIAMgAJo5AwAgAyAIKwMImjkDCEEAIAJrIQIMAQsgAyAAOQMAIAMgCCsDCDkDCAsgCEEwaiQAAkACQAJAAkAgAkEDcQ4DAAECAwsgAysDACADKwMIECMMAwsgAysDACADKwMIEDmaDAILIAMrAwAgAysDCBAjmgwBCyADKwMAIAMrAwgQOQshACADQRBqJAAgAAt7AQJ8IAAgAKIiAiACIAKioiACRHzVz1o62eU9okTrnCuK5uVavqCiIAIgAkR9/rFX4x3HPqJE1WHBGaABKr+gokSm+BARERGBP6CgIQMgACACIAFEAAAAAAAA4D+iIAIgAKIiACADoqGiIAGhIABESVVVVVVVxT+ioKEL2gIBB38gCEEBIAhBAUobIQsCQCABIAJOIgwNACAGIAhIDQAgASEKA0ACQCAEIApBAnQiCWoiDSgCAEEHSg0AIAUgCWooAgANAEEAIQkDQCAHQQEQDSEOIAMgACgCCCAJbCAKakECdGoiDyAPKgIAIA6yQwAAAL+SQQFBDSANKAIAa3SylEMAAIA4lJI4AgAgCUEBaiIJIAtHDQALIAYgC2shBgsgCkEBaiIKIAJODQEgBiAITg0ACwsCQCAMDQAgBiAISA0AA0ACQCAEIAFBAnQiCmoiDCgCAEEHSg0AQQAhCSAFIApqKAIAQQFHDQADQCAHQQEQDSEKIAMgACgCCCAJbCABakECdGoiDSANKgIAIAqyQwAAAL+SQQFBDSAMKAIAa3SylEMAAIA4lJI4AgAgCUEBaiIJIAtHDQALIAYgC2shBgsgAUEBaiIBIAJODQEgBiAITg0ACwsLMQEBfyAAECYaIABBqCFqECYhASAAQdjCAGpBADYCACAAQgA3AtBCIABBADYC5EIgAQu1TQErfyMAQZABayINJAAgACgCmBIhGSANQQA2AogBAkACQCAZQQFrQcACSQRAAkACQAJAAkAgBA4DAQIAAgsgACAAKALUEkECdGpB9BJqKAIAQQFHDQELIA0gGUEPakHw////B3FBAXRrIh0kACAAIAEgACgC1BIgBCAFED8gASAdIABBzRVqIiYsAAAgAEHOFWosAAAgACgCmBIQPUEAIQQjAEFAaiIaJAAgDUEQaiEKIABBsBVqIQggAEGIEmohEyAFQQJGIQsgACgClBIiB0EBTgRAA0AgEwJ/IAQgC3JFBEAgCCwAACIFIBMsAABBEGsiASABIAVIGwwBCyAEIAhqLAAAQQRrIgYgEywAACIFQQhqIgFKBEAgBSAGQQF0IAFragwBCyAFIAZqCyIBQQAgAUEYdEEYdUEAShsiAUE/IAFBGHRBGHVBP0gbIgE6AAAgCiAEQQJ0agJ/QQAgAUH/AXEiAUEdbCABQfE4bEEQdmpBqhBqIgZBAEkNABpB/////wcgBkH+HksNABogBkH/AHEhFEEBIAZBB3YiAXQhBSAGQf8PTQR/IBRBgAEgFGtsQdJ+bEEQdSAUaiABdEEHdQUgFEGAASAUa2xB0n5sQRB1IBRqIAVBB3ZsCyAFags2AgAgBEEBaiIEIAdHDQALCyAaQSBqIQcgACgCrBUhEyMAQdAAayIfJAAgH0EgaiAfQUBrIBMgAEG4FWoiCCwAABBAAkAgEy8BAiIBQRB0QRB1IhBBAUgiCw0AIBMuAQQhBgNAIB8gAUEBayIEQQF0aiABIAhqLAAAIgpBCnQiBUHmAGsgBUHmAHIgCkEfdXEgCkEAShsiBUEQdSAGbCAfQUBrIARqLQAAIAlBEHVsQQh1aiAFQf7/A3EgBmxBEHVqIgU7AQAgAUECSA0BIAVBEHQhCSAEIQEMAAsACyALRQRAIAgsAAAgEGwiASATKAIIaiELIBMoAgwgAUEBdGohBUEAIQEDQCAHIAFBAXQiBGogBCAfai4BAEEOdCAEIAVqLgEAbSABIAtqLQAAQQd0aiIEQQAgBEEAShsiBEH//wEgBEH//wFIGzsBACABQQFqIgEgEy4BAiIQSA0ACwsgEEECayEkIBBBAWsiCkF+cSEFIApBAXEhJSATKAIkIhggEEEBdGohESAHIgQgCkEBdGohISAQQQJIIRwCQANAIAQuAQAiDyAYLgEAIh5rIQECQCAcBEBBACEVDAELQQAhFUEBIQYgBSEHICQEQANAIA9BEHQhCSAEIAZBAWoiFEEBdCITai4BACIPIAQgBkEBdCIIai4BACILIBMgGGouAQBqayITIAsgCCAYai4BACAJQRB1amsiCyABIAEgC0oiCBsiASABIBNKIgsbIQEgFCAGIBUgCBsgCxshFSAGQQJqIQYgB0ECayIHDQALCyAlRQ0AIAQgBkEBdCIHai4BACAPIAcgGGouAQBqayIHIAEgASAHSiIHGyEBIAYgFSAHGyEVC0GAgAIgES4BACIIICEuAQBqayIHIAEgASAHSiIBG0F/Sg0BAkAgECAVIAEbIglFBEAgBCAeOwEADAELIAkgEEcEQAJAIAlBAUgEQEEAIR4MAQsgCUEBRg0AIAlBAWsiAUEDcSEVQQEhBiAJQQJrQQNPBEAgAUF8cSEHA0AgHiAYIAZBAXRqIgEuAQBqIAEuAQJqIAEuAQRqIAEuAQZqIR4gBkEEaiEGIAdBBGsiBw0ACwsgFUUNAANAIB4gGCAGQQF0ai4BAGohHiAGQQFqIQYgFUEBayIVDQALCyAeIBggCUEBdCIHaiITLgEAQQF1IhRqIQtBgIACIQECQCAJIBBODQBBgIACIAhrIQEgCSAKTg0AIAohBiAJQX9zIBBqQQNxIhUEQANAIAEgGCAGQQF0ai4BAGshASAGQQFrIQYgFUEBayIVDQALCyAkIAlrQQNJDQADQCABIBggBkEBdGoiAS4BACABQQJrLgEAaiABQQRrLgEAaiABQQZrLgEAamshASAGQQRrIgYgCUoNAAsLIAQgB2oiCC4BACAEIAlBAWtBAXRqIgYuAQBqIgdBAXUgB0EBcWohCQJAIAEgFGsiByALSARAIAkgCyIBSg0BIAcgCSAHIAlKGyEBDAELIAciASAJSA0AIAsgCSAJIAtIGyEBCyAGIAEgFGsiATsBACAIIAEgEy8BAGo7AQAMAQsgIUGAgH4gCGs7AQALIBJBAWoiEkEURw0ACyAEIQdBASEBAkAgEEEBTgRAIBBBAUcEQANAIAcgAUEBdGouAQAhBiABIQQCfwNAIAcgBEEBdGogByAEQQFrIgVBAXRqLgEAIgsgBkwNARogByAEQQF0aiALOwEAIARBAUohCyAFIQQgCw0ACyAHCyAGOwEAIAFBAWoiASAQRw0ACwsMAQtBtcMAQanDAEGQARAGAAsgByAHLgEAIgQgGC4BACIBIAEgBEgbIgE7AQAgEEECSCILRQRAQQEhBgNAIAcgBkEBdCIFaiIEIAQuAQAiBCAFIBhqLgEAIAFBEHRBEHVqIgFB//8BIAFB//8BSBsiAUGAgH4gAUGAgH5KGyIBIAEgBEgbIgE7AQAgBkEBaiIGIBBHDQALCyAhICEuAQAiBEGAgAIgES4BAGsiASABIARKGyIVOwEAIAsNACAQQQJrIQYgCkEBcQRAIAcgBkEBdGoiASABLgEAIgQgFUEQdEEQdSAQQQF0IBhqQQJrLgEAayIBIAEgBEobIhU7AQAgEEEDayEGCyAkRQ0AA0AgByAGQQF0IgFqIgogCi4BACIEIBVBEHRBEHUgASAYaiILLgECayIBIAEgBEobIgU7AQAgCkECayIBIAEuAQAiBCAFQRB0QRB1IAsuAQBrIgEgASAEShsiFTsBACAGQQFKIQEgBkECayEGIAENAAsLIB9B0ABqJAAgDUFAayILIBpBIGogACgCpBIgACgCyCAQKCANQSBqIQYCQAJAIAAoAsgSQQFGBEAgAEEEOgDPFQwBCyAALADPFSIKQQNKDQACQCAAKAKkEiIIQQFIDQBBACEBIAhBAUcEQCAIQX5xIQkgAEGoEmohBwNAIBogAUEBdCIFaiAFIAdqLgEAIgQgGkEgaiAFai4BACAEayAKbEECdmo7AQAgGiAFQQJyIgVqIAUgB2ouAQAiBCAaQSBqIAVqLgEAIARrIApsQQJ2ajsBACABQQJqIQEgCUECayIJDQALCyAIQQFxRQ0AIBogAUEBdCIEaiAAIARqQagSai4BACIBIBpBIGogBGouAQAgAWsgCmxBAnZqOwEACyAGIBogCCAAKALIIBAoDAELIAYgCyAAKAKkEkEBdBAIGgsgAEGoEmogGkEgaiAAKAKkEiIBQQF0EAgaIAAoAsAgBEAgBiABQdLwAxAnIAsgACgCpBJB0vADECcLIA0CfyAAQc0Vai0AAEECRgRAIABByhVqLgEAIQQgAEHMFWosAAAhBSAAKAKUEiELAkAgACgCjBIiAUEIRgRAQYDEACEHQQshEAJAAkAgC0ECaw4DAQADAAtBuMUAQevFAEE2EAYAC0HNwwAhB0EDIRAMAQtBsMQAIQdBIiEQAkACQCALQQJrDgMBAAIAC0G4xQBB68UAQT8QBgALQeDDACEHQQwhEAsgBCABQRB0IgFBD3UiBmohBCABQRB1QRJsIQpBACEJA0AgDSAJQQJ0aiIBIAQgByAJIBBsIAVqaiwAAGoiCDYCACABAn8gBiAKSgRAIAYgBiAISA0BGiAKIAggCCAKSBsMAQsgCiAIIApKDQAaIAYgCCAGIAhKGws2AgAgCUEBaiIJIAtHDQALIAAoApQSIgVBAU4EQCAAQdAVaiwAAEECdEGgOmooAgAhBEEAIQEDQCANIAFBCmxqIgsgBCAAIAFqQbQVaiwAAEEFbGoiBywAAEEHdDsBYCALIAcsAAFBB3Q7AWIgCyAHLAACQQd0OwFkIAsgBywAA0EHdDsBZiALIAcsAARBB3Q7AWggAUEBaiIBIAVHDQALCyAAQdEVaiwAAEEBdEHINGouAQAMAQsgDUEAIAAoApQSQQJ0EAlB4ABqQQAgACgClBJBCmwQCRogAEHQFWpBADoAAEEACzYCiAEgGkFAayQAIwBBIGsiASEuIAEkACABIAAoAqASQQF0QQ9qQXBxayIsIgEkACABIAAoApgSIgcgACgCoBIiImpBAnRBD2pBcHFrIiciASQAIAEgACgCnBJBAnQiBEEPakFwcWsiLyIBJAAgASAEQc8AakFwcWsiDiQAIABBzRVqLAAAIQ8gAEHPFWosAAAhBSAHQQFOBEAgD0EBdEF8cUHANGogAEHOFWosAABBAXRqLgEAQQR0IQQgAEHSFWosAAAhAQNAIAAgG0ECdGoiCyAdIBtBAXRqLgEAIgpBDnQiDDYCBCABQbWIzt0AbEHrxuWwA2ohBwJAIAsgCkEBTgR/IAxBgAprBSAKQX9KDQEgDEGACnILIgw2AgQLIAtBACAEIAxqIgFrIAEgB0EASBs2AgQgByAKaiEBIBtBAWoiGyAAKAKYEkgNAAsgACgCoBIhIgsgAiELIA4gACkChAo3AgAgDiAAQbwKaikCADcCOCAOIABBtApqKQIANwIwIA4gAEGsCmopAgA3AiggDiAAQaQKaikCADcCICAOIABBnApqKQIANwIYIA4gAEGUCmopAgA3AhAgDiAAQYwKaikCADcCCAJAAkACQAJAIAAoApQSQQFIDQAgAEEEaiEtIAVBA0ohJSACIQcDQCAuIA0gI0EEdEFgcWpBIGoiEyAAKAKkEkEBdBAIIRJBACANICNBAnRqIhQoAhAiESARIBFBH3UiAWogAXMiCmciCEEBa3QiBkH//wNxQf////8BIAZBEHUiBW0iBEEQdCIBQRB1IhxsQRB1IAUgHGxqQQN0ayIFIARBD3VBAWpBAXVsIAFqIAVBEHUgHGxqIAVB+P8DcSAcbEEQdWohCQJ/IApB//8HTQRAQf////8HIAhBD2siBXYiBEGAgICAeCAFdSIBIAkgASAJShsgBCAJSBsgBXQMAQsgCUEPIAhrdQshBEGAgAQhASAAKAIAIgUgEUcEQCAFIAUgBUEfdSIBaiABc2ciCkEBa3QiASABQRB1IBxsIAFB//8DcSAcbEEQdWoiBawgBqx+Qh2Ip0F4cWsiAUEQdSAcbCAFaiABQf//A3EgHGxBEHVqIQYCfyAKIAhrQR1qIgFBD0wEQEH/////B0EQIAFrIgp2IgVBgICAgHggCnUiASAGIAEgBkobIAUgBkgbIAp0DAELIAYgAUEQa3VBACABQTBIGwsiAUH//wNxIQggAUEQdSEGQQAhDANAIA4gDEECdGoiBSAFKAIAIgpBEHRBEHUiBSAIbEEQdSAFIAZsaiAKQQ91QQFqQQF1IAFsajYCACAMQQFqIgxBEEcNAAsLICNBCmwgDWohCSAAIBE2AgACfwJAAkAgACgCwCBFDQAgACgCxCBBAkcNACAjQQFLDQAgD0H/AXFBAkYNACAJQgA3AWAgCUEAOwFoIAlBgCA7AWQgFCAAKAKEEiIPNgIADAELIA9B/wFxQQJHBEAgACgCnBIhKCAtDAILIBQoAgAhDwsCQAJAICMEQCAjQQJHDQEgJQ0BCyAAKAKgEiIbIA8gACgCpBIiBWprIgFBAkwNBSAjQQJGBEAgACAbQQF0akHECmogCyAAKAKcEkECdBAIGiAAKAKgEiEbIAAoAqQSIQULICwgAUECayIBQQF0aiAAIAAoApwSICNsIAFqQQF0akHECmogEyAbIAFrIAUQSiAjRQRAIA0uAYgBIgEgBEH//wNxbEEQdSABIARBEHVsakECdCEECyAPQX9IDQEgBEH//wNxIQggBEEQdSEGIA9BAXEhBSAAKAKgEiEKAkAgD0F/RgRAQQAhDAwBCyAPQQJqQX5xIQRBACEMA0AgJyAiIAxBf3MiAWpBAnRqIAggLCABIApqQQF0ai4BACIBbEEQdSABIAZsajYCACAnICJBfiAMayIBakECdGogCCAsIAEgCmpBAXRqLgEAIgFsQRB1IAEgBmxqNgIAIAxBAmohDCAEQQJrIgQNAAsLIAVFDQEgJyAiIAxBf3MiAWpBAnRqIAggLCABIApqQQF0ai4BACIBbEEQdSABIAZsajYCAAwBCyABQYCABEYNACAPQX9IDQAgAUH//wNxIQggAUEQdSEGIA9BAWohCkEAIQwDQCAnICIgDEF/c2pBAnRqIgQgBCgCACIFQRB0QRB1IgQgCGxBEHUgBCAGbGogBUEPdUEBakEBdSABbGo2AgAgCiAMRiEEIAxBAWohDCAERQ0ACwsgACgCnBIiKEEBTgRAICIgD2tBAnQgJ2pBCGohDCAJLgFoIQggCS4BZiEGIAkuAWQhCiAJLgFiIQUgCS4BYCEEQQAhGwNAIC8gG0ECdCIBaiABIC1qKAIAIAwoAgAiAUEQdSAEbCABQf//A3EgBGxBEHVqIAxBBGsoAgAiAUEQdSAFbGogAUH//wNxIAVsQRB1aiAMQQhrKAIAIgFBEHUgCmxqIAFB//8DcSAKbEEQdWogDEEMaygCACIBQRB1IAZsaiABQf//A3EgBmxBEHVqIAxBEGsoAgAiAUEQdSAIbGogAUH//wNxIAhsQRB1akEBdGpBBGoiATYCACAnICJBAnRqIAFBAXQ2AgAgIkEBaiEiIAxBBGohDCAbQQFqIhsgKEcNAAsLIC8LIRwgKEEBTgRAAkAgACgCpBIiMEEKaw4HAAUFBQUFAAULIBFBCnRBEHUhFiARQRV1QQFqQQF1IQkgEi4BHiEXIBIuARwhICASLgEaISkgEi4BGCEqIBIuARYhKyASLgEUIRAgEi4BEiEVIBIuARAhGCASLgEOIRogEi4BDCEeIBIuAQohHyASLgEIISEgEi4BBiEkIBIuAQQhDyASLgECIR0gEi4BACESIDBBAXYhFCAOKAIcIQUgDigCJCEBIA4oAiwhBCAOKAI0IQogDigCPCEMQQAhGwNAIAxBEHUgEmwgFGogDEH//wNxIBJsQRB1aiAbQQJ0IhMgDmoiESgCOCIGQRB1IB1saiAGQf//A3EgHWxBEHVqIApBEHUgD2xqIApB//8DcSAPbEEQdWogESgCMCIKQRB1ICRsaiAKQf//A3EgJGxBEHVqIARBEHUgIWxqIARB//8DcSAhbEEQdWogESgCKCIEQRB1IB9saiAEQf//A3EgH2xBEHVqIAFBEHUgHmxqIAFB//8DcSAebEEQdWogESgCICIBQRB1IBpsaiABQf//A3EgGmxBEHVqIAVBEHUgGGxqIAVB//8DcSAYbEEQdWogESgCGCIFQRB1IBVsaiAFQf//A3EgFWxBEHVqIQUgDiAbQRBqQQJ0agJ/An8gMEEQRgRAIAUgESgCFCIIQRB1IBBsaiAIQf//A3EgEGxBEHVqIBEoAhAiBUEQdSArbGogBUH//wNxICtsQRB1aiARKAIMIgVBEHUgKmxqIAVB//8DcSAqbEEQdWogESgCCCIFQRB1IClsaiAFQf//A3EgKWxBEHVqIBEoAgQiBUEQdSAgbGogBUH//wNxICBsQRB1aiARKAIAIgVBEHUgF2xqIAVB//8DcSAXbEEQdWohBQsgBQtBgICAQCAFQYCAgEBKGyIFQf///z8gBUH///8/SBtBBHQiESATIBxqKAIAIghqIgVBAE4EQCAFQYCAgIB4IAggEXFBf0obDAELQf////8HIAUgCCARckF/ShsLIgw2AgAgByAbQQF0akH//wFBgIB+IAxBEHUgFmwgCSAMbGogDEH//wNxIBZsQRB1aiIFQQd2QQFqQQF2IAVBgP//e0gbIAVB//7/A0obOwEAIAEhBSAEIQEgCiEEIAYhCiAbQQFqIhsgKEcNAAsLIA4gDiAoQQJ0IgFqIgQpAgA3AgAgDiAEKQI4NwI4IA4gBCkCMDcCMCAOIAQpAig3AiggDiAEKQIgNwIgIA4gBCkCGDcCGCAOIAQpAhA3AhAgDiAEKQIINwIIICNBAWoiIyAAKAKUEk4NASABIC1qIS0gByAoQQF0aiEHIAAtAM0VIQ8MAAsACyAAQYQKaiIBIA4pAgA3AgAgASAOKQI4NwI4IAEgDikCMDcCMCABIA4pAig3AiggASAOKQIgNwIgIAEgDikCGDcCGCABIA4pAhA3AhAgASAOKQIINwIIIC5BIGokAAwCC0H/xQBBn8YAQZABEAYAC0GyxgBBn8YAQccBEAYACyAAIA0gAkEAEEkgAEEANgLAICAAICYsAAAiATYCxCAgAUEDTw0DIABBADYCyBIMAQsgACANIAJBARBJCyAAKAKgEiIEIAAoApgSIgVIDQIgAEHECmoiASABIAVBAXRqIAQgBWtBAXQiARALIAFqIAIgACgCmBJBAXQQCBpBACEFQQAhBiMAQSBrIhIhFiASJAAgACgCjBIiCyAAQbwgaigCAEcEQEH//wEgACgCpBIiAUEBam0hBAJAIAFBAUgNACABQQNxIQcCQCABQQFrQQNJDQAgAUF8cSEPIABB1B9qIQggBCEBA0AgCCAFQQF0IgpqIAE7AQAgCCAKQQJyaiABIARqIgE7AQAgCCAKQQRyaiABIARqIgE7AQAgCCAKQQZyaiABIARqIgY7AQAgBUEEaiEFIA9BBGsiD0UNASAEIAZqIQEMAAsACyAHRQ0AA0AgACAFQQF0akHUH2ogBCAGaiIGOwEAIAVBAWohBSAHQQFrIgcNAAsLIAAgCzYCvCAgAEG0IGpCgICAgICQnhg3AgALIA0hCiACIQsCQAJAIAAoAsAgRQRAAkAgACgCxCANAAJAIAAoAqQSIgdBAUgNAEEAIQUgB0EBRwRAIAdBfnEhBiAAQdQfaiENIABBqBJqIQQDQCANIAVBAXQiAmoiASABLgEAIgEgAiAEai4BACABayIBQf//A3FB3P8AbEEQdiABQRB2Qdz/AGxqajsBACANIAJBAnIiAmoiASABLgEAIgEgAiAEai4BACABayIBQf//A3FB3P8AbEEQdiABQRB2Qdz/AGxqajsBACAFQQJqIQUgBkECayIGDQALCyAHQQFxRQ0AIAAgBUEBdGoiAkHUH2oiASABLgEAIgEgAkGoEmouAQAgAWsiAUH//wNxQdz/AGxBEHYgAUEQdkHc/wBsamo7AQALIABB1BVqIRECQCAAKAKUEiIPQQFIBEBBACEGDAELIA9BA3EhAQJAIA9BAWtBA0kEQEEAIQVBACEGQQAhCAwBCyAPQXxxIQdBACEFIApBEGohHUEAIQZBACEIA0AgHSAFQQNyIiZBAnRqKAIAIiUgHSAFQQJyIhxBAnRqKAIAIgkgHSAFQQFyIhRBAnRqKAIAIgQgHSAFQQJ0aigCACICIAggAiAISiITGyICIAIgBEgiDRsiAiACIAlIIgQbIgIgAiAlSCICGyEIICYgHCAUIAUgBiATGyANGyAEGyACGyEGIAVBBGohBSAHQQRrIgcNAAsLIAFFDQADQCAKIAVBAnRqKAIQIgIgCCACIAhKIgIbIQggBSAGIAIbIQYgBUEBaiEFIAFBAWsiAQ0ACwsgACAAKAKcEiIBQQJ0akHUFWogESAPQQJ0QQRrIAFsEAsaIBEgACAAKAKcEiIBIAZsQQJ0akEEaiABQQJ0EAgaIAAoApQSIgRBAUgNACAAKAK0ICEFQQAhCANAIAAgBSAKIAhBAnRqIgIoAhAgBWsiAUEQdUGaJGxqIAFB//8DcUGaJGxBEHZqIgU2ArQgIAIoAhAiASAFQRB1QbzqfmwgBWogBUH//wNxQbzqfmxBEHVqSARAIAAgATYCtCAgASEFCyAIQQFqIgggBEcNAAsLIAAoAsAgRQ0BCyASIBlBAnRBzwBqQXBxayIXJAAgAEGYIWooAgAiBEEQdEEQdSICIABBhCFqLwEAIgFsQRB1IAIgAUEQdCIBQR91bGogBEEPdUEBakEBdSABQRB1bGoiBUEQdSEEAn8gBUH///8ATEEAIABBtCBqKAIAIg1BgYCABEgbRQRAQQAgDUEQdSIBIAFsIAQgBGxBBXRrIgVBAUgNARoCQEEYIAVnIgJrIgFFDQAgBUH/AE0EQCAFIAJBGGt0IAVBOCACa3ZyIQUMAQsgBSACQQhqdCAFIAF2ciEFCyAFQf8AcUGAgNQGbEEQdkGAgARyQYCAAkGG6QIgAkEBcRsgAkEBdnZsQYCAfHEMAQtBACANQRB0QRB1IgIgDUEQdWwgBUEQdEEQdSIBIAVB//8DcWxBEHUgASAEbGogBUEPdUEBakEBdiAFbGpBBXRrIAIgDUH//wNxbEEQdWogDUEPdUEBakEBdSANbGoiBUEBSA0AGgJAQRggBWciAmsiAUUNACAFQf8ATQRAIAUgAkEYa3QgBUE4IAJrdnIhBQwBCyAFIAJBCGp0IAUgAXZyIQULQYCAAkGG6QIgAkEBcRsgAkEBdnYiASAFQf8AcUGAgNQGbEEQdmxBEHYgAWpBCHQLIRMgF0FAayEUQf8BIQgDQCAIIgJBAXYhCCACIBlKDQALIABBuCBqKAIAIQYCQCAZQQFIDQAgGUEBcSENAkAgGUEBRgRAQQAhCAwBCyAZQX5xIQFBACEIIABB1BVqIQcDQCAUIAhBAnQiBWogByAGQbWIzt0AbEHrxuWwA2oiBEEYdiACcUECdGooAgA2AgAgFCAFQQRyaiAHIARBtYjO3QBsQevG5bADaiIGQRh2IAJxQQJ0aigCADYCACAIQQJqIQggAUECayIBDQALCyANRQ0AIBQgCEECdGogACAGQbWIzt0AbEHrxuWwA2oiBkEYdiACcUECdGpB1BVqKAIANgIACyAAIAY2ArggIBYgAEHUH2ogACgCpBIgACgCyCAQKCAXIABBrCBqKQIANwI4IBcgAEGkIGopAgA3AjAgFyAAQZwgaikCADcCKCAXIABBlCBqKQIANwIgIBcgAEGMIGopAgA3AhggFyAAQYQgaikCADcCECAXIABB/B9qKQIANwIIIBcgAEH0H2oiICkCADcCAAJAAkAgACgCpBIiKUEKaw4HAQAAAAAAAQALQfkPQbwQQZkBEAYACyAZQQFOBEAgKUEBdiEUIBNBCnRBEHUhKiATQRV1QQFqQQF1IRMgFi4BHiErIBYuARwhECAWLgEaIRUgFi4BGCEYIBYuARYhGiAWLgEUIR4gFi4BEiEfIBYuARAhISAWLgEOISQgFi4BDCEPIBYuAQohHSAWLgEIIRIgFi4BBiERIBYuAQQhJiAWLgECISUgFi4BACEcIBcoAhwhByAXKAIkIQYgFygCLCECIBcoAjQhASAXKAI8IQVBACEIA0AgBUEQdSAcbCAUaiAFQf//A3EgHGxBEHVqIAhBAnQgF2oiCSgCOCINQRB1ICVsaiANQf//A3EgJWxBEHVqIAFBEHUgJmxqIAFB//8DcSAmbEEQdWogCSgCMCIEQRB1IBFsaiAEQf//A3EgEWxBEHVqIAJBEHUgEmxqIAJB//8DcSASbEEQdWogCSgCKCICQRB1IB1saiACQf//A3EgHWxBEHVqIAZBEHUgD2xqIAZB//8DcSAPbEEQdWogCSgCICIBQRB1ICRsaiABQf//A3EgJGxBEHVqIAdBEHUgIWxqIAdB//8DcSAhbEEQdWogCSgCGCIFQRB1IB9saiAFQf//A3EgH2xBEHVqIQcCfwJ/IClBEEYEQCAHIAkoAhQiBUEQdSAebGogBUH//wNxIB5sQRB1aiAJKAIQIgVBEHUgGmxqIAVB//8DcSAabEEQdWogCSgCDCIFQRB1IBhsaiAFQf//A3EgGGxBEHVqIAkoAggiBUEQdSAVbGogBUH//wNxIBVsQRB1aiAJKAIEIgVBEHUgEGxqIAVB//8DcSAQbEEQdWogCSgCACIFQRB1ICtsaiAFQf//A3EgK2xBEHVqIQcLIAcLQYCAgEAgB0GAgIBAShsiBUH///8/IAVB////P0gbQQR0IgkgFyAIQRBqQQJ0aiIHKAIAIgZqIgVBAE4EQCAFQYCAgIB4IAYgCXFBf0obDAELQf////8HIAUgBiAJckF/ShsLIQUgByAFNgIAIAsgCEEBdGoiByAHLgEAQf//AUGAgH4gBUEQdSAqbCAFIBNsaiAFQf//A3EgKmxBEHVqIgdBB3VBAWpBAXUgB0GA//97SBsgB0H//v8DShtqIgdBgIB+IAdBgIB+ShsiB0H//wEgB0H//wFIGzsBACABIQcgAiEGIAQhAiANIQEgCEEBaiIIIBlHDQALCyAgIBcgGUECdGoiASkCADcCACAgIAEpAjg3AjggICABKQIwNwIwICAgASkCKDcCKCAgIAEpAiA3AiAgICABKQIYNwIYICAgASkCEDcCECAgIAEpAgg3AggMAQsgAEH0H2pBACAAKAKkEkECdBAJGgsgFkEgaiQAIwBBEGsiBSQAAkAgACgCwCAEQCAAQYghaiAAQYwhaiALIBkQHSAAQfwgakEBNgIADAELAkAgAEH8IGooAgBFDQAgBUEIaiAFQQxqIAsgGRAdAkAgBSgCDCIEIABBjCFqKAIAIgJKBEAgAEGIIWoiASABKAIAIAQgAmt1NgIADAELIAIgBEwNACAFIAUoAgggAiAEa3U2AggLIAUoAggiBCAAQYghaigCACIBTA0AIAAgASABZyICQQFrdCIBNgKIIUEAIQZBACEIIAEgBEEZIAJrIgFBACABQQBKG3UiAUEBIAFBAUobbSIBQQFOBEACQEEYIAFnIgRrIgJFDQAgAUH/AE0EQCABIARBGGt0IAFBOCAEa3ZyIQEMAQsgASAEQQhqdCABIAJ2ciEBC0GAgAJBhukCIARBAXEbIARBAXZ2IgIgAUH/AHFBgIDUBmxBEHZsQRB2IAJqQQR0IQgLQYCABCAIayAZbSEBIBlBAUgNACABQQJ0IQIDQCALIAZBAXRqIgEgAS4BACIBIAhB/P8DcWxBEHYgCEEQdiABbGo7AQAgAiAIaiIIQYCABEoNASAGQQFqIgYgGUgNAAsLIABBADYC/CALIAVBEGokACAAIAAoApQSQQJ0IApqQQRrKAIANgKEEiADIBk2AgAgCkGQAWokAEEADwtB9cYAQabHAEE6EAYAC0G6xwBBpscAQd4AEAYAC0GFyABBpscAQeoAEAYAC8IMAQp/IwBBoAFrIgskAEEIIQwgACACQQF1QQlsQcA8akEIEAchBQJAAkAgBCAEQXBxSgRAIARB+ABGDQFB6sIAQZTDAEE7EAYACyAEQRBIDQEgBEEEdSEMCyAFQRJsQYA7aiEHA0AgCyAGQQJ0IghqIgpBADYCACAAIAdBCBAHIgVBEUYEQEEBIQkDQCAAIAlBCkZBojxqQQgQByIFQRFGBEAgCUEBaiEJDAELCyAKIAk2AgALIAtB0ABqIAhqIAU2AgAgBkEBaiIGIAxHDQALQQAhCQNAIAEgCUEQdEELdWohBgJAIAtB0ABqIAlBAnRqKAIAIgVBAU4EQEEAIQhBACEHQQAhCiAGAn8CQCAFQQFIDQAgBSAAIAVB4MEAai0AAEHAwABqQQgQByIFayEKIAVBEHQiBUEBSA0AIAVBEHUiBSAAIAVB4MEAai0AAEGgP2pBCBAHIgVrIQggBUEQdCIFQQBMDQAgBUEQdSIFIAAgBUHgwQBqLQAAQYA+akEIEAciBWshByAFQRB0QQFIDQAgBiAAIAVB//8DcUHgwQBqLQAAQeA8akEIEAciDTsBACAFIA1rDAELIAZBADsBAEEACzsBAiAGAn8gB0EQdEEBTgRAIAYgACAHQf//A3FB4MEAai0AAEHgPGpBCBAHIgU7AQQgByAFawwBCyAGQQA7AQRBAAs7AQZBACEHIAYCfwJAIAhBEHQiBUEATARAIAZBCGohCAwBCyAGQQhqIQggBUEQdSIFIAAgBUHgwQBqLQAAQYA+akEIEAciBWshByAFQRB0QQFIDQAgBiAAIAVB//8DcUHgwQBqLQAAQeA8akEIEAciCDsBCCAFIAhrDAELIAhBADsBAEEACzsBCiAGAn8gB0EQdEEBTgRAIAYgACAHQf//A3FB4MEAai0AAEHgPGpBCBAHIgU7AQwgByAFawwBCyAGQQA7AQxBAAs7AQ5BACEHQQAhCCAGAn8CQAJAIApBEHQiBUEBTgRAIAVBEHUiBSAAIAVB4MEAai0AAEGgP2pBCBAHIgVrIQggBUEQdCIFQQBKDQELIAZBEGohCgwBCyAGQRBqIQogBUEQdSIFIAAgBUHgwQBqLQAAQYA+akEIEAciBWshByAFQRB0QQFIDQAgBiAAIAVB//8DcUHgwQBqLQAAQeA8akEIEAciCjsBECAFIAprDAELIApBADsBAEEACzsBEiAGAn8gB0EQdEEBTgRAIAYgACAHQf//A3FB4MEAai0AAEHgPGpBCBAHIgU7ARQgByAFawwBCyAGQQA7ARRBAAs7ARZBACEHIAYCfwJAIAhBEHQiBUEATARAIAZBGGohCAwBCyAGQRhqIQggBUEQdSIFIAAgBUHgwQBqLQAAQYA+akEIEAciBWshByAFQRB0QQFIDQAgBiAAIAVB//8DcUHgwQBqLQAAQeA8akEIEAciCDsBGCAFIAhrDAELIAhBADsBAEEACzsBGiAHQRB0QQFOBEAgBiAAIAdB//8DcUHgwQBqLQAAQeA8akEIEAciBTsBHCAGIAcgBWs7AR4MAgsgBkEAOwEcIAZBADsBHgwBCyAGQgA3AQAgBkIANwEYIAZCADcBECAGQgA3AQgLIAlBAWoiCSAMRw0AC0EAIQYDQCALIAZBAnQiCmooAgAiCEEBTgRAIAEgBkEQdEELdWohDUEAIQcDQEEBIQkgDSAHQQF0aiIOLwEAIQUDQCAAQbA0QQgQByAFQQF0aiEFIAggCUcEQCAJQQFqIQkMAQsLIA4gBTsBACAHQQFqIgdBEEcNAAsgC0HQAGogCmoiBSAFKAIAIAhBBXRyNgIACyAGQQFqIgYgDEcNAAsLIAtB0ABqIQdBACEFIwBBEGsiBiQAIAZBADoADyAEQQhOBEAgAkEBdCADakEQdEEQdUEHbEGAwgBqIQkgBEEIakEEdiEEA0AgByAFQQJ0aigCACICQQFOBEAgBiAJIAJBH3EiAkEGIAJBBkkbai0AADoADkEAIQIDQCABIAJBAXRqIgMuAQBBAU4EQCADIAAgBkEOakEIEAdBAXRBAWsgAy8BAGw7AQALIAJBAWoiAkEQRw0ACwsgAUEgaiEBIAVBAWoiBSAERw0ACwsgBkEQaiQAIAtBoAFqJAALqAIBBX8CQCACQQFLBEAgAkEBayIDQYACTwRAIAAgAUEYIANnayIFdiICIAJBAWogAyAFdkEBahAcIAVFDQJBfyAFdEF/cyABcSEGIAAoAgwhAQJAIAAoAhAiAiAFaiIEQSFJBEAgAiEDDAELA0BBfyEEIAAgACgCBCIDIAAoAggiByAAKAIYaksEfyAAIAdBAWoiBDYCCCAAKAIAIAMgBGtqIAE6AABBAAVBfwsgACgCLHI2AiwgAUEIdiEBIAJBD0ohBCACQQhrIgMhAiAEDQALIAMgBWohBAsgACAENgIQIAAgBiADdCABcjYCDCAAIAAoAhQgBWo2AhQPCyAAIAEgAUEBaiACEBwPC0GqwgBBwsIAQbQBEAYAC0HQwgBBwsIAQcYBEAYAC+AGAQJ/IwBBMGsiBSQAIABBzhVqAn8CQCADRQRAIAAgAkECdGpB5BJqKAIARQ0BCyABQbU0QQgQB0ECagwBCyABQbk0QQgQBwsiA0EBcToAACAAQc0VaiADQQF2IgI6AAACQCAEQQJGBEAgACABQYA3QQgQBzoAsBUMAQsgACABIAJBGHRBFXVB4DZqQQgQB0EDdDoAsBUgACABQeA0QQgQByAALQCwFWo6ALAVCyAAKAKUEkECTgRAQQEhAwNAIAAgA2pBsBVqIAFBgDdBCBAHOgAAIANBAWoiAyAAKAKUEkgNAAsLIABBuBVqIAEgACgCrBUiAigCECACLgEAIAAsAM0VQQF1bGpBCBAHIgI6AAAgBUEQaiAFIAAoAqwVIAJBGHRBGHUQQCAAKAKsFSICLgECIgYgACgCpBJGBEBBACEDIAZBAEoEQANAAkACQAJAIAEgAigCHCAFQRBqIANBAXRqLgEAakEIEAciAg4JAAICAgICAgIBAgtBACABQeg0QQgQB2shAgwBCyABQeg0QQgQB0EIaiECCyAAIANBAWoiA2pBuBVqIAJBBGs6AAAgAyAAKAKsFSICLgECSA0ACwtBBCEDIABBzxVqIAAoApQSQQRGBH8gAUG7NEEIEAcFQQQLOgAAIAAtAM0VQQJGBEACQAJAIARBAkcNACAAKALcEkECRw0AIAFBkBdBCBAHIgJBEHRBAUgNACAAQcoVaiACIAAvAeASakEJayICOwEADAELIABByhVqIgIgAUHwFkEIEAcgACgCjBJBAXZsOwEAIAIgASAAKALMEkEIEAcgAi8BAGoiAjsBAAsgACACOwHgEiAAQcwVaiABIAAoAtASQQgQBzoAACAAQdAVaiABQak3QQgQByICOgAAQQEhAwJAIAAoApQSQQFIDQAgAEG0FWogASACQRh0QRZ1QfA3aigCAEEIEAc6AAAgACgClBJBAkgNAANAIAAgA2pBtBVqIAEgACwA0BVBAnRB8DdqKAIAQQgQBzoAACADQQFqIgMgACgClBJIDQALC0EAIQMgAEHRFWogBAR/QQAFIAFBsjRBCBAHCzoAAAsgACAALADNFTYC3BIgAEHSFWogAUHRNEEIEAc6AAAgBUEwaiQADwtBrDpB6jpB0gAQBgALvQEBA38gAi4BAiIEQQFOBEAgAigCGCAEQf//A3EgA2xBAm1qIQRBACEDA0AgACADQQF0aiAELQAAIgVBAXZBB3FBCWw7AQAgASADaiACKAIUIAIuAQJBAWsgBUEBcWwgA2pqLQAAOgAAIAAgA0EBciIGQQF0aiAFQQV2QQlsOwEAIAEgBmogAigCFCAGIAIuAQJBAWsgBUEEdkEBcWxqai0AADoAACAEQQFqIQQgA0ECaiIDIAIuAQJIDQALCwsQACABIABBmTRBCBAHNgIACysBAX8gACAAKAIcIAFuIgI2AiRBACAAKAIgIAJuQX9zIAFqIgAgACABSxsL+gIBBn8gAEKAgICAgBA3AhggAEKAgICAkAE3AhAgAEIANwIIIAAgAjYCBCAAIAE2AgAgAgRAIABBATYCGCABLQAAIQRBASEDCyAAQQA2AiwgACAENgIoIABBgIACNgIcIABBETYCFCAAIARBAXZB/wBzIgY2AiACQCACIANNBEAgAyEFDAELIAAgA0EBaiIFNgIYIAEgA2otAAAhBwsgACAHNgIoIABBgICABDYCHCAAQRk2AhQgACAHIARBCHRyQQF2Qf8BcSAGQQh0ckH/AXMiCDYCIEEAIQMgAAJ/IAIgBU0EQCAFIQZBAAwBCyAAIAVBAWoiBjYCGCABIAVqLQAACyIENgIoIABBgICAgHg2AhwgAEEhNgIUIAAgBCAHQQh0ckEBdkH/AXEgCEEIdHJB/wFzIgU2AiAgAiAGSwRAIAAgBkEBajYCGCABIAZqLQAAIQMLIAAgAzYCKCAAIAMgBEEIdHJBAXZB/wFxIAVBCHRyQf8BczYCIAvKAgEDfwJAIAMgACgCnAIiBE4EQCAEIAAoAqQCIgZIDQEgAEGoAWoiBSAGQQF0aiACIAQgBmtBAXQiBBAIGgJAAkACQAJAAkAgACgCiAJBAWsOAwABAgMLIAAgASAFIAAoApwCEEcgACABIAAoAqACQQF0aiACIARqIAMgACgCnAJrEEcMAwsgACABIAUgACgCnAIQRiAAIAEgACgCoAJBAXRqIAIgBGogAyAAKAKcAmsQRgwCCyAAIAEgBSAAKAKcAhBFIAAgASAAKAKgAkEBdGogAiAEaiADIAAoApwCaxBFDAELIAEgBSAAKAKcAkEBdBAIIAAoAqACQQF0aiACIARqIAMgACgCnAJrQQF0EAgaCyAFIAIgAyAAKAKkAiIAa0EBdGogAEEBdBAIGkEADwtBiRZB2hVBuAEQBgALQbEWQdoVQboBEAYAC70TARF/IwAiBSETIAUgACgClAIiByAAKAKMAiIEakECdEEPakFwcWsiBSQAIAUgAEEYaiIUIAdBAnQQCCENIAAoAqgCIglBBGohEiAAKAKQAiEQIAkhBQNAIA0gB0ECdGohDyADIAQgAyAESBsiDiIGQQFOBEAgACgCACEHIAUuAQIhBCAFLgEAIQxBACEFA0AgDyAFQQJ0aiACIAVBAXRqLgEAQQh0IAdqIgc2AgAgACgCBCERIAAgB0ECdCIHQfz/A3EiCiAEbEEQdSAHQRB1IgcgBGxqNgIEIAAgESAHIAxsaiAKIAxsQRB1aiIHNgIAIAVBAWoiBSAGRw0ACwsgDkEQdCEMAkACQAJAAkACQCAAKAKUAiIPQRJrDhMAAgICAgIBAgICAgICAgICAgIDAgsgDEEBSA0DIAAoApgCIgZBEHRBEHUhEUEAIQUDQCABQf//ASASIAVB//8DcSARbEEQdSIKQRJsaiIELgEAIgggDSAFQRB1QQJ0aiIHKAIAIgtB//8DcWxBEHUgC0EQdSAIbGogBC4BAiIIIAcoAgQiC0EQdWxqIAtB//8DcSAIbEEQdWogBC4BBCIIIAcoAggiC0EQdWxqIAtB//8DcSAIbEEQdWogBC4BBiIIIAcoAgwiC0EQdWxqIAtB//8DcSAIbEEQdWogBC4BCCIIIAcoAhAiC0EQdWxqIAtB//8DcSAIbEEQdWogBC4BCiIIIAcoAhQiC0EQdWxqIAtB//8DcSAIbEEQdWogBC4BDCIIIAcoAhgiC0EQdWxqIAtB//8DcSAIbEEQdWogBC4BDiIIIAcoAhwiC0EQdWxqIAtB//8DcSAIbEEQdWogBC4BECIEIAcoAiAiCEEQdWxqIAhB//8DcSAEbEEQdWogEiAGIApBf3NqQRJsaiIELgEAIgogBygCRCIIQRB1bGogCEH//wNxIApsQRB1aiAELgECIgogBygCQCIIQRB1bGogCEH//wNxIApsQRB1aiAELgEEIgogBygCPCIIQRB1bGogCEH//wNxIApsQRB1aiAELgEGIgogBygCOCIIQRB1bGogCEH//wNxIApsQRB1aiAELgEIIgogBygCNCIIQRB1bGogCEH//wNxIApsQRB1aiAELgEKIgogBygCMCIIQRB1bGogCEH//wNxIApsQRB1aiAELgEMIgogBygCLCIIQRB1bGogCEH//wNxIApsQRB1aiAELgEOIgogBygCKCIIQRB1bGogCEH//wNxIApsQRB1aiAELgEQIgQgBygCJCIHQRB1bGogB0H//wNxIARsQRB1aiIHQQV1QQFqQQF1IgRBgIB+IARBgIB+ShsgB0Hf//8AShs7AQAgAUECaiEBIAUgEGoiBSAMSA0ACwwDC0EAIQcgDEEATA0CA0AgAUH//wEgCS4BBCIEIA0gB0EQdUECdGoiBSgCXCAFKAIAaiIGQf//A3FsQRB1IAZBEHUgBGxqIAkuAQYiBCAFKAJYIAUoAgRqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuAQgiBCAFKAJUIAUoAghqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuAQoiBCAFKAJQIAUoAgxqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuAQwiBCAFKAJMIAUoAhBqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuAQ4iBCAFKAJIIAUoAhRqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuARAiBCAFKAJEIAUoAhhqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuARIiBCAFKAJAIAUoAhxqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuARQiBCAFKAI8IAUoAiBqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuARYiBCAFKAI4IAUoAiRqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuARgiBCAFKAI0IAUoAihqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuARoiBCAFKAIwIAUoAixqIgVBEHVsaiAFQf//A3EgBGxBEHVqIgVBBXVBAWpBAXUiBEGAgH4gBEGAgH5KGyAFQd///wBKGzsBACABQQJqIQEgByAQaiIHIAxIDQALDAILQZAVQaQVQYsBEAYAC0EAIQcgDEEATA0AA0AgAUH//wEgCS4BBCIEIA0gB0EQdUECdGoiBSgCjAEgBSgCAGoiBkH//wNxbEEQdSAGQRB1IARsaiAJLgEGIgQgBSgCiAEgBSgCBGoiBkEQdWxqIAZB//8DcSAEbEEQdWogCS4BCCIEIAUoAoQBIAUoAghqIgZBEHVsaiAGQf//A3EgBGxBEHVqIAkuAQoiBCAFKAKAASAFKAIMaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEMIgQgBSgCfCAFKAIQaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEOIgQgBSgCeCAFKAIUaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEQIgQgBSgCdCAFKAIYaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgESIgQgBSgCcCAFKAIcaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEUIgQgBSgCbCAFKAIgaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEWIgQgBSgCaCAFKAIkaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEYIgQgBSgCZCAFKAIoaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEaIgQgBSgCYCAFKAIsaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEcIgQgBSgCXCAFKAIwaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEeIgQgBSgCWCAFKAI0aiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEgIgQgBSgCVCAFKAI4aiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEiIgQgBSgCUCAFKAI8aiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEkIgQgBSgCTCAFKAJAaiIGQRB1bGogBkH//wNxIARsQRB1aiAJLgEmIgQgBSgCSCAFKAJEaiIFQRB1bGogBUH//wNxIARsQRB1aiIFQQV1QQFqQQF1IgRBgIB+IARBgIB+ShsgBUHf//8AShs7AQAgAUECaiEBIAcgEGoiByAMSA0ACwsgAyAOayIDQQJOBEAgDSANIA5BAnRqIA9BAnQQCBogAiAOQQF0aiECIAAoAqgCIQUgACgClAIhByAAKAKMAiEEDAELCyAUIA0gDkECdGogD0ECdBAIGiATJAALmAMBCn8jACIFIQkgBSAAKAKMAiIEQQJ0QR9qQXBxayIFJAAgBSAAKQIgNwIIIAUgACkCGDcCACAFQRBqIQogACgCkAIhCwNAIAAgCiACIAMgBCADIARIGyIHEEhBACEIIAdBEXQiDEEBTgRAA0AgAUH//wEgCEH//wNxQQxsQRB2Ig1BA3RBsBRqIgYuAQIgBSAIQRB1QQF0aiIELgECbCAGLgEAIAQuAQBsaiAGLgEEIAQuAQRsaiAGLgEGIAQuAQZsakEAIA1rQQN0QYgVaiIGLgEGIAQuAQhsaiAGLgEEIAQuAQpsaiAGLgECIAQuAQxsaiAGLgEAIAQuAQ5saiIEQQ51QQFqQQF1IgZBgIB+IAZBgIB+ShsgBEH///7/A0obOwEAIAFBAmohASAIIAtqIgggDEgNAAsLIAMgB2siA0EBTgRAIAUgBSAHQQJ0aiIEKQIANwIAIAUgBCkCCDcCCCACIAdBAXRqIQIgACgCjAIhBAwBCwsgACAFIAdBAnRqIgEpAgA3AhggACABKQIINwIgIAkkAAsMACAAIAEgAiADEEgL2wMBDn8gA0EBTgRAIAAoAhQhCCAAKAIQIQYgACgCDCEEIAAoAgghCSAAKAIEIQcgACgCACEFA0AgASAKQQJ0IgtqQf//ASAHIAUgAiAKQQF0ai4BAEEKdCIMIAVrIgVB//8DcUHSDWxBEHYgBUEQdUHSDWxqIg1qIg4gB2siB0H//wNxQYr1AGxBEHYgB0EQdUGK9QBsaiIPaiIFIAlrIgdB//8DcUGrsX5sQRB1IAdBEHVBq7F+bGogBWoiBUEJdUEBakEBdSIJQYCAfiAJQYCAfkobIAVB//v/D0obOwEAIAEgC0ECcmpB//8BIAYgBCAMIARrIgRB//8DcUHGNWxBEHYgBEEQdUHGNWxqIgtqIhAgBmsiBkH//wNxQanJAWxBEHYgBkEQdUGpyQFsaiIRaiIEIAhrIgZB//8DcUH2sX9sQRB1IAZBEHVB9rF/bGogBGoiBEEJdUEBakEBdSIIQYCAfiAIQYCAfkobIARB//v/D0obOwEAIAQgBmohCCAFIAdqIQkgECARaiEGIA4gD2ohByALIAxqIQQgDCANaiEFIApBAWoiCiADRw0ACyAAIAg2AhQgACAGNgIQIAAgBDYCDCAAIAk2AgggACAHNgIEIAAgBTYCAAsLjR4CIn8BfiAAKAKMEiIEIABBnCFqKAIARwRAIAAgBDYCnCEgAEGUIWpCgICEgICAwAA3AgAgAEGgIWpCgoCAgMACNwIAIAAgACgCmBJBB3Q2AswgCyADBEAjAEFAaiIGJAAgBiAAIgQoApgSIAAoAqASakECdEEPakFwcWsiDyIAJAAgACAEKAKgEkEBdEEPakFwcWsiCSQAIAYgBEGUIWooAgBBBnU2AgggBiAEQZghaigCACIUQQZ1IhU2AgwgBCgCyBIEQCAEQfIgakIANwEAIARB6iBqQgA3AQAgBEHiIGpCADcBACAEQdogakIANwEACyABIREgAiEWIAZBNGohByAGQTxqIQsgBkEwaiEQIAZBOGohDCAEQQRqIQogBCgClBIhCEEAIQEjACIAIRMgACAEKAKcEiIAQQJ0QQ9qQXBxayICJAACQCAAQQBMBEAgAiAAQQF0aiEDDAELIAhBAmsgAGwhDSAGKAIIIgVBEHRBEHUhAyAFQQ91QQFqQQF1IQ4DQCACIAFBAXRqQf//AUGAgH4gAyAKIAEgDWpBAnRqKAIAIgVB//8DcWxBEHUgAyAFQRB1bGogBSAObGoiBUEIdiAFQYCAgHxIGyAFQf///wNKGzsBACABQQFqIgEgAEcNAAsgAiAAQQF0aiEDIABBAUgNACAIQQFrIABsIQ0gBigCDCIBQRB0QRB1IQggAUEPdUEBakEBdSEOQQAhAQNAIAMgAUEBdGpB//8BQYCAfiAIIAogASANakECdGooAgAiBUH//wNxbEEQdSAIIAVBEHVsaiAFIA5saiIFQQh2IAVBgICAfEgbIAVB////A0obOwEAIAFBAWoiASAARw0ACwsgByALIAIgABAdIBAgDCADIAAQHSATJAAgBEGgIWooAgAhCgJAIAYoAjQgBigCOHUgBigCMCAGKAI8dUgEQCAKQQFrIQggBEGkIWooAgAhCgwBCyAEQaQhaigCACEICyAEQYQhai8BACEQIAQoAsAgIQAgBCgCxCAhAiAEQdogaiIBIAQoAqQSQfH6AxAnIAZBEGogASAEKAKkEiIFQQF0EAgaIABBASAAQQFIG0EBdCIHQboRaiAHQb4RaiACQQJGGy4BACECAkAgBCgCwCANACAEKALEIEECRgRAIARBkCFqLgEAQYCAASAEQdggai8BACAEQdYgai8BACAEQdQgai8BACAELwHQICAEQdIgai8BAGpqamprIgBBzRkgAEEQdEEQdUHNGUobQf//A3FsQQ52IRAMAQsgASAFECkiAEGAgIDAACAAQYCAgMAASBsiAEGAgIACIABBgICAAkobIgBBA3RB+P8DcSACbEEQdSAAQQ12IAJsakEOdSECIAQoAqQSIQVBgIABIRALAkAgBCgCoBIiAyAFIAQoAswgQQd1QQFqQQF1IgtqayIAQQJKBEAgBEGAIWooAgAhEyAJIABBAmsiAUEBdCIAaiAAIARqQcQKaiAGQRBqIAMgAWsgBRBKQQAgBCgCmCEiACAAIABBH3UiBWogBXMiDWciBUEBa3QiAEH//wNxQf////8BIABBEHUiDG0iDkEQdCISQRB1IgBsQRB1IAAgDGxqQQN0ayIMIA5BD3VBAWpBAXVsIBJqIAxBEHUgAGxqIAxB+P8DcSAAbEEQdWohAAJ/IA1B//8DTQRAQf////8HIAVBEGsiBXYiDEGAgICAeCAFdSINIAAgACANSBsgACAMShsgBXQMAQsgAEEQIAVrdQshACAEKAKkEiIMIAFqIgUgBCgCoBIiDUgEQCAAQf////8DIABB/////wNIGyIAQf//A3EhASAAQRB1IQADQCAPIAVBAnRqIAEgCSAFQQF0ai4BACIObEEQdSAAIA5sajYCACAFQQFqIgUgDUgNAAsLIAQoApQSIhdBAU4EQCAIIApsIgBBgAEgAEGAAUobQQJ0IARqQfwDayEYIAdBthFqLgEAIQcgAkEQdEEQdSEZIAQuAYwSQYAkbCEOIAQvAdggIQUgBC8B1iAhCSAELwHUICEKIAQvAdIgIQggBC8B0CAhAiAEKAKcEiESA0AgEEEQdEEQdSEQAkAgEkEATARAIAVBEHRBEHUhACAJQRB0QRB1IQEgCkEQdEEQdSEKIAhBEHRBEHUhCCACQRB0QRB1IQIMAQsgBUEQdEEQdSEAIAlBEHRBEHUhASAKQRB0QRB1IQogCEEQdEEQdSEIIAJBEHRBEHUhAiADIAtrQQJ0IA9qQQhqIQVBASEJA0AgDyADQQJ0aiAFKAIAIgtBEHUgAmwgC0H//wNxIAJsQRB1aiAFQQRrKAIAIgtBEHUgCGxqIAtB//8DcSAIbEEQdWogBUEIaygCACILQRB1IApsaiALQf//A3EgCmxBEHVqIAVBDGsoAgAiC0EQdSABbGogC0H//wNxIAFsQRB1aiAFQRBrKAIAIgtBEHUgAGxqIAtB//8DcSAAbEEQdWogGCATQbWIzt0AbEHrxuWwA2oiE0EXdkH8A3FqKAIAIgtBEHUgEGxqIAtB//8DcSAQbEEQdWpBAnRBCGo2AgAgA0EBaiEDIAkgEkYNASAFQQRqIQUgCUEBaiEJDAALAAsgBCAEKALMICIJQRB1QY8FbCAJaiAJQf//A3FBjwVsQRB2aiIJIA4gCSAOSBsiCTYCzCAgCUEHdUEBakEBdSELIBAgGWxBD3YhECAAIAdsQQ92IQUgASAHbEEPdiEJIAcgCmxBD3YhCiAHIAhsQQ92IQggAiAHbEEPdiECIBpBAWoiGiAXRw0ACyAEIAU7AdggIAQgCTsB1iAgBCAKOwHUICAEIAg7AdIgIAQgAjsB0CALIA1BAnQgD2pBQGoiByAEKQKECjcCACAHIARBvApqKQIANwI4IAcgBEG0CmopAgA3AjAgByAEQawKaikCADcCKCAHIARBpApqKQIANwIgIAcgBEGcCmopAgA3AhggByAEQZQKaikCADcCECAHIARBjApqKQIANwIIIAxBCk4EQCAEKAKYEiINQQFOBEAgDEEBdiEgIBVBEHRBEHUhDiAUQRV1QQFqQQF1ISEgBi4BIiESIAYuASAhFCAGLgEeIRUgBi4BHCEXIAYuARohGCAGLgEYIRkgBi4BFiEaIAYuARQhHSAGLgESIR4gBi4BECEfIAxBAXEhIiAMQQprIgxBfnEhCSAHKAIcIQMgBygCJCECIAcoAiwhACAHKAI0IQEgBygCPCEFA0AgBUEQdSAfbCAgaiAFQf//A3EgH2xBEHVqIBtBAnQgB2oiBSgCOCIKQRB1IB5saiAKQf//A3EgHmxBEHVqIAFBEHUgHWxqIAFB//8DcSAdbEEQdWogBSgCMCIBQRB1IBpsaiABQf//A3EgGmxBEHVqIABBEHUgGWxqIABB//8DcSAZbEEQdWogBSgCKCIIQRB1IBhsaiAIQf//A3EgGGxBEHVqIAJBEHUgF2xqIAJB//8DcSAXbEEQdWogBSgCICICQRB1IBVsaiACQf//A3EgFWxBEHVqIANBEHUgFGxqIANB//8DcSAUbEEQdWogBSgCGCIAQRB1IBJsaiAAQf//A3EgEmxBEHVqIQMgG0EQaiEPQQohBSAJIQACQAJAAkAgDA4CAgEACwNAIAZBEGogBUEBdCIcQQJyai4BACIjIA8gBWtBAnQgB2pBCGsoAgAiJEEQdWwgAyAGQRBqIBxqLgEAIhwgByAPIAVBf3NqQQJ0aigCACIlQRB1bGogJUH//wNxIBxsQRB1amogJEH//wNxICNsQRB1aiEDIAVBAmohBSAAQQJrIgANAAsLICJFDQAgAyAGQRBqIAVBAXRqLgEAIgAgByAPIAVBf3NqQQJ0aigCACIFQRB1bGogBUH//wNxIABsQRB1aiEDCwJ/IAcgD0ECdGoiDygCACIAIANBgICAQCADQYCAgEBKGyIDQf///z8gA0H///8/SBtBBHQiA2oiBUEATgRAIAVBgICAgHggACADcUF/ShsMAQtB/////wcgBSAAIANyQX9KGwshBSAPIAU2AgAgFiAbQQF0akH//wFBgIB+IAVBEHUgDmwgBSAhbGogBUH//wNxIA5sQRB1aiIAQQd2QQFqQQF2IABBgP//e0gbIABB//7/A0obOwEAIAIhAyAIIQIgASEAIAohASAbQQFqIhsgDUcNAAsLIARBhApqIgAgByANQQJ0aiIBKQIANwIAIAAgASkCODcCOCAAIAEpAjA3AjAgACABKQIoNwIoIAAgASkCIDcCICAAIAEpAhg3AhggACABKQIQNwIQIAAgASkCCDcCCCAEIBA7AYQhIAQgEzYCgCEgESALNgIMIBEgCzYCCCARIAs2AgQgESALNgIAIAZBQGskAAwCC0HnEUHcEUHcAhAGAAtBwhFB3BFBpgIQBgALIAQgBCgCwCBBAWo2AsAgDwsgACAAQc0VaiwAACICNgLEIAJAIAJBAkYEQCAAQdAgaiERIAAoApwSIQpBACEDAkAgACgClBIiAkECdCABakEEayIFKAIAIhZBAUgNACACRQ0AA0AgAyABIAIgCEF/c2oiCUEKbGoiBC4BYiAELgFgaiAELgFkaiAELgFmaiAELgFoaiIESARAIBEgASAJQRB0QRB1QQpsaiIDLwFoOwEIIBEgAykBYDcBACAAIAEgCUECdGooAgBBCHQ2AswgIAUoAgAhFiAEIQMLIAhBAWoiCCAKbCAWTg0BIAIgCEcNAAsLIBFCADcCACAAQdggakEAOwEAIABB1CBqIAM7AQAgA0HM2QBMBEAgAEEANgHQICAAQdYgakEANgEAIABBgOjMBSADQQEgA0EBShtuQRB0QRB1IANBEHRBEHVsQQp2OwHUIAwCCyADQc75AEgNASAAQQA2AdAgIABB1iBqQQA2AQAgAEGAgM35ACADbiADQRB0QRB1bEEOdjsB1CAMAQsgAEHQIGpCADcCACAAQdggakEAOwEAIAAgBEEQdEEQdUGAJGw2AswgIAAoApwSIQogACgClBIhAgsgAEHaIGogAUFAayAAKAKkEkEBdBAIGiAAQZAhaiABKAKIATsBACACQQJ0IAFqKQIIISYgAEGkIWogCjYCACAAQZQhaiAmNwIAIABBoCFqIAI2AgAL4QIBCH8CQAJAIARBBUoEQCAEQQFxDQEgAyAESA0CIAMgBEoEQCAEQQdIIQsgBCEHA0AgAi4BAiAHQQF0IgwgAWoiBUEEay4BAGwgAi4BACAFQQJrIgkuAQBsaiACLgEEIAVBBmsuAQBsaiACLgEGIAVBCGsuAQBsaiACLgEIIAVBCmsuAQBsaiACLgEKIAVBDGsuAQBsaiEIQQYhBiALRQRAA0AgCCACIAZBAXQiCmouAQAgCSAKay4BAGxqIAIgCkECcmouAQAgCSAGQX9zQQF0ai4BAGxqIQggBkECaiIGIARIDQALCyAAIAxqIAUuAQBBDHQgCGtBC3VBAWpBAXUiBUGAgH4gBUGAgH5KGyIFQf//ASAFQf//AUgbOwEAIAdBAWoiByADRw0ACwsgAEEAIARBAXQQCRoPC0HHEEHgEEHDABAGAAtB+xBB4BBBxAAQBgALQZoRQeAQQcUAEAYAC8ABAQR/IAFBAWshBCABQQJOBEAgAkGAgARrIQVBACEBA0AgACABQQJ0aiIDIAMoAgAiA0EQdEEQdSIGIAJB//8DcWxBEHUgBiACQRB1bGogA0EPdUEBakEBdSACbGo2AgAgAiAFbEEPdUEBakEBdSACaiECIAFBAWoiASAERw0ACwsgACAEQQJ0aiIAIAAoAgAiAEEQdEEQdSIBIAJB//8DcWxBEHUgASACQRB1bGogAEEPdUEBakEBdSACbGo2AgALuwIAAkAgAUEUSw0AAkACQAJAAkACQAJAAkACQAJAAkAgAUEJaw4KAAECAwQFBgcICQoLIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAkEAEQUACwtTAQN/AkAgACgCACwAAEEwa0EKTw0AA0AgACgCACICLAAAIQMgACACQQFqNgIAIAEgA2pBMGshASACLAABQTBrQQpPDQEgAUEKbCEBDAALAAsgAQsGACAAECALHQAgBEEBSARAQX8PCyAAIAEgAiADIAQgBUEAEB8LzQYBCH8jAEEQayIGJAACQAJAAkACQCAAQf/8AEwEQCAAQcA+Rg0BIABB4N0ARg0BDAILIABBgP0ARg0AIABBgPcCRg0AIABBwLsBRw0BCyABQQFrQQJJDQELIAJFDQEgAkF/NgIADAELAn8gBkHowgA2AgxBAAsEf0EABSAGIAYoAgxBA2pBfHE2AgwgBigCDEHUyQAoAgBBAnRB4MAAaiABbEHYyQAoAgBBBXRqakG0AWoLEC0iB0UEQEEAIQcgAkUNASACQXk2AgAMAQsjAEEQayIFJABBfyEIAkACQCAAQf/8AEwEQCAAQcA+Rg0BIABB4N0ARg0BDAILIABBgP0ARg0AIABBgPcCRg0AIABBwLsBRw0BCyABQQFrQQFLDQAgB0EAAn8gBUHowgA2AgxBAAsEf0EABSAFIAUoAgxBA2pBfHE2AgwgBSgCDEHUyQAoAgBBAnRB4MAAaiABbEHYyQAoAgBBBXRqakG0AWoLEAkhBEF9IQggBUHowgA2AgggBSAFKAIIQQNqQXxxIgM2AgggBCABNgIwIAQgATYCCCAEQdgANgIEIAQgADYCGCAEIAA2AgwgBCABNgIQIAQgA0HYAGoiAzYCACAEQdgAahA7DQACfyADIARqIgohAyABQQJNBH9BeSADRQ0BGiADQQBB1MkAKAIAQQJ0QeDAAGogAWxB2MkAKAIAQQV0akHcAGoQCSIDQdDJADYCAEHUyQAoAgAhCSADQgE3AhAgAyABNgIMIAMgATYCCCADIAk2AgRB3MkAKAIAIQkgA0EBNgIcIAMgAUEBRjYCICADQQA2AiQgAyAJNgIYIANBvB9BABAMGiADAn8CQAJAAkAgAEH//ABMBEAgAEHAPkYNASAAQeDdAEcNAkEEDAQLIABBgP0ARg0CQQEgAEGA9wJGDQMaIABBwLsBRw0BQQIMAwtBBgwCC0GrDEG/DEHUABAGAAtBAwsiATYCEEEAQX8gARsFQX8LCw0AQQAhCCAFQQA2AgAgCkGgzgAgBRAMGiAEIABB//8DcUGQA242AkAgBEEANgI8IARBADYCLAsgBUEQaiQAIAghACACBEAgAiAANgIACyAARQ0AIAcQIEEAIQcLIAZBEGokACAHC1IBAX8jAEEQayIDJAAgACgCPCABpyABQiCIpyACQf8BcSADQQhqEAEiAAR/QeimAiAANgIAQX8FQQALIQAgAykDCCEBIANBEGokAEJ/IAEgABsL9AIBB38jAEEgayIDJAAgAyAAKAIcIgU2AhAgACgCFCEEIAMgAjYCHCADIAE2AhggAyAEIAVrIgE2AhQgASACaiEFQQIhByADQRBqIQECfwJAAkAgACgCPCADQRBqQQIgA0EMahAAIgQEf0HopgIgBDYCAEF/BUEAC0UEQANAIAUgAygCDCIERg0CIARBf0wNAyABIAQgASgCBCIISyIGQQN0aiIJIAQgCEEAIAYbayIIIAkoAgBqNgIAIAFBDEEEIAYbaiIJIAkoAgAgCGs2AgAgBSAEayEFIAAoAjwgAUEIaiABIAYbIgEgByAGayIHIANBDGoQACIEBH9B6KYCIAQ2AgBBfwVBAAtFDQALCyAFQX9HDQELIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhAgAgwBCyAAQQA2AhwgAEIANwMQIAAgACgCAEEgcjYCAEEAIAdBAkYNABogAiABKAIEawshACADQSBqJAAgAAsJACAAKAI8EAQLC9iTAj4AQYAICxTwkQAALSsgICAwWDB4AChudWxsKQBBoAgLQREACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABAAkLCwAACQYLAAALAAYRAAAAERERAEHxCAshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEGrCQsBDABBtwkLFQwAAAAADAAAAAAJDAAAAAAADAAADABB5QkLAQ4AQfEJCxUNAAAABA0AAAAACQ4AAAAAAA4AAA4AQZ8KCwEQAEGrCgseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHiCgsOEgAAABISEgAAAAAAAAkAQZMLCwELAEGfCwsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHNCwsBDABB2QsLlwEMAAAAAAwAAAAACQwAAAAAAAwAAAwAADAxMjM0NTY3ODlBQkNERUZGYXRhbCAoaW50ZXJuYWwpIGVycm9yIGluICVzLCBsaW5lICVkOiAlcwoAYXNzZXJ0aW9uIGZhaWxlZDogMABjZWx0L2NlbHQuYwAAAAAAAAAAnT4AQF4+AMAEPgCA7T4AQIk+AAAAAADATD8AAM09AEGBDQuhAv8A/wD/AP8A/wD+AQAB/wD+AP0CAAH/AP4A/QMAAf8AIP4f9h/qH9gfwh+oH4gfYh86Hwof2B6gHmIeIh7cHZAdQh3uHJYcOhzYG3IbChucGioatBk6GbwYPBi2Fy4XoBYQFn4V6BROFLATEBNuEsgRHhF0EMYPFg9kDq4N+AxADIQLyAoKCkoJigjGBwIHPgZ4BbIE6gMiA1oCkgHKAAAANv9u/qb93vwW/E77iPrC+f74Ovh297b29vU49Xz0wPMI81LynPHq8DrwjO/i7jjuku3w7FDssusY64Lq8Olg6dLoSujE50TnxuZM5tblZOX25I7kKOTG42rjEuO+4nDiJOLe4Z7hYOEo4fbgxuCe4HjgWOA+4CjgFuAK4ALgAOAAQbEPC68HDwgHBAsMAwINCgUGCQ4BAAkGAwQFCAECB2Fzc2VydGlvbiBmYWlsZWQ6IGQ9PTEwIHx8IGQ9PTE2AHNpbGsvTkxTRjJBLmMAYXNzZXJ0aW9uIGZhaWxlZDogcHNEZWMtPkxQQ19vcmRlciA9PSAxMCB8fCBwc0RlYy0+TFBDX29yZGVyID09IDE2AHNpbGsvQ05HLmMAYXNzZXJ0aW9uIGZhaWxlZDogZCA+PSA2AHNpbGsvTFBDX2FuYWx5c2lzX2ZpbHRlci5jAGFzc2VydGlvbiBmYWlsZWQ6IChkICYgMSkgPT0gMABhc3NlcnRpb24gZmFpbGVkOiBkIDw9IGxlbgAAuH6aeZp5Zma4fjNzYXNzZXJ0aW9uIGZhaWxlZDogaWR4ID4gMABzaWxrL1BMQy5jAGFzc2VydGlvbiBmYWlsZWQ6IHBzRGVjLT5MUENfb3JkZXIgPj0gMTAAKq/Vyc//QAARAGP/YQEQ/qMAJyu9Vtn/BgBbAFb/ugAXAID8wBjYTe3/3P9mAKf/6P9IAUn8CAolPgAAAAAAAIfHPclAAIAAhv8kADYBAP1IAjMkRUUMAIAAEgBy/yABi/+f/BsQezgAAAAAAAAAAGgCDcj2/ycAOgDS/6z/eAC4AMX+4/0EBQQVQCMAAAAA5j7GxPP/AAAUABoABQDh/9X//P9BAFoABwBj/wj/1P9RAi8GNArHDAAAAAAAAAAA5FcFxQMA8v/s//H/AgAZACUAGQDw/7n/lf+x/zIAJAFvAtYDCAW4BQAAAAAAAAAAlGtnxBEADAAIAAEA9v/q/+L/4P/q/wMALABkAKgA8wA9AX0BrQHHAQAAAAAAAAAAvQCo/WkCZ3d1AGH/0vsIdDQA3QCo9nRu/P8RAury5WbQ//YCjPClXbD/iQN17wZTnf/MA4LvZkeV/8cDi/AnO5n/gANh8q4upf8FA8/0XiK5/2MCofeYFtL/qQGh+rQLYXNzZXJ0aW9uIGZhaWxlZDogMABzaWxrL3Jlc2FtcGxlcl9wcml2YXRlX2Rvd25fRklSLmMAYXNzZXJ0aW9uIGZhaWxlZDogMABzaWxrL3Jlc2FtcGxlci5jAAYAAwAHAwABCgACBhIKDAQAAgAAAAkEBwQAAwwHB2Fzc2VydGlvbiBmYWlsZWQ6IGluTGVuID49IFMtPkZzX2luX2tIegBhc3NlcnRpb24gZmFpbGVkOiBTLT5pbnB1dERlbGF5IDw9IFMtPkZzX2luX2tIegBB8BYLNP369OnUtpaDeG5iVUg8MSggGRMPDQsJCAcGBQQDAgEA0tDOy8fBt6iOaEo0JRsUDgoGBAIAQbAXC9II38m3p5iKfG9iWE9GPjgyLCcjHxsYFRIQDgwKCAYEAwIBALywm4p3YUMrGgoApXdQPS8jGxQOCQQAcT8AAAAAAAwjPFNshJ20zuQPIDdNZX2Xr8nhEypCWXKJorjR5gwZMkhheJOsyN8aLEVacoeftM3hDRY1UGqCnLTN5A8ZLEBac46oxN4TGD5SZHiRqL7WFh8yT2d4l6rL4xUdLUFqfJarxOAeMUtheY6lutHlExk0Rl10j6bA2xoiPkthdpGnwtkZIThGW3GPpcTfFSIzSGF1kavE3hQdMkNadZCoxd0WHzBCX3WSqMTeGCEzTXSGnrTI4BUcRldqfJWqwtkaITVAU3WYrczhGyJBX2yBm67S4RQaSGNxg5qwyNsiKz1OXXKbsc3lFx02YXyKo7PR5R4mOFl2gZ6yyOcVHTE/VW+Oo8HeGzBNZ4Wes8TX6B0vSmN8l7DG3O0hKj1MXXmbrs/hHTVXcIiaqrzQ4xgeNFSDlqa6y+UlMEBUaHacscnmUQsKCQoJCgnvCO8ICgn8CBcJ7whICxQKWgk/CQoJ4gjiCOII4giSCLcJJAkkCQoJCgkKCSQJJAk/CTIJkAzOCiQJJAkKCeIIrQifCNUIkgicCaoJPwlaCVoJWglaCT8JZwkKCZcN8AtPCJ8I4gjiCOII7wgKCdUI0gxFDBQKWgnHCK0InwiSCJIIQggAEAUPrQg8CjwKZwkKCVoJPwkaCGoMrAw/Ca0I+QmCCSQJCgl3CK0ICg2gDaYKkgjVCJwJMgk/CZ8INQgyCXQJFwk/CVoJdAl0CXQJnAk/CcMOLQ6CCd8JPwniCOII/AifCAAItgyZDJkKHguPCRcJ/Aj8COIITwi/DOQMwQr2Co8J1QjVCMcITwg1CDkLpQtJCj8JZwkyCZIIxwjHCEIImQx9DEkKFAriCIUIxwitCK0IXQhqDO4MtApnCeII4gjiCO8IkghCCEUMyAycCQ0I7wjECT8JtwmCCYUIsw3SDAoJjApXCqoJPwlaCSQJTwhfDc8N3gvwC/wIngetCOII4gjiCEwNJg0nCH8KOQsyCXQJ4giqCewJsA6gDZ4HZApRC98JWgk/CZwJ1QjUC8gMtApIC7QKaghPCO8IugjHCG8OSQ7pB7EHZAqMChQKxAkXCT8JhwxVDTIJGghIC0gLJAm3CccIdwgKDSYNHgvcChcJagjiCO8IQggNCBcJ/AiFCHcIhQg/CUkKjAqMCvkJZwmCCa0I1QitCK0IJAl0CS8KjAreC6wM9gpIC6oJGgj8CAoJMglMCa0IaghPCO8IxAnpCukKPAoUCj8JXA6BDroILgeFCMEKpgpxCtEJnwjpClgMpgr5CR4L0QmFCFoJrQiFCNSylIFsYFVST009Ozk4MzEwLSopKCYkIh8eFQwKAwEA//X07Onh2cu+sK+hlYh9cmZbUUc8NCsjHBQTEgwLBQCzioyUl5WZl6N0Q1I7XEhkWVwAQZAgC+cBEAAAAABjQiQkIiQiIiIiU0UkNCJ0ZkZERLBmREQiQVVEVCR0jZiLqoS7uNiJhPmouYtoZmRERLLaubmq9Ni7u6r0u7vbimebuLmJdLebmIiE2bi4qqTZq5uL9Km4uaqk2N/aitaPvNqo9I2Im6qoitzbi6TbytiJqLr2uYt0udu5imRkhmRmIkREZESoy93aqKeaiGhGpPariYuJm9rbi//+/e4OAwIBAP/+/NojAwIBAP/++tA7BAIBAP/+9sJHCgIBAP/87LdSCAIBAP/867RaEQIBAP/44KthHgQBAP/+7K1fJQcBAEGAIgvuDf///4MGkf//////7F0PYP//////wlMZR93/////okkiQqL////SfkkrOa3////JfUcwOoL///+mbkk5PmjS///7e0E3RGSr/wAAAAAAAAAA+gADAAYAAwADAAMABAADAAMAAwDNAQAAIAAKABQuZAHwCwAAMA0AALAPAADwDwAAEBAAALAQAAAAEQAAUBEAAAcXJjZFVWR0g5OissHQ3+8NGSk3RVNicH+Onau7y9zsDxUiMz1OXGp+iJinuc3h8AoVJDI/T19ufo2drb3N3e0RFCUzO05Za3uGlqS4zeDwCg8gM0NRYHCBjp6tvczc7AgVJTNBT2JxfoqbqLPA0doMDyI3P05XbHaDlKe5y9vsEBMgJDhPW2x2iJqruszc7QscKzpKWWl4h5altMTT4vEGECEuPEtca3uJnKm5x9bhCxMeLDlKWWl5h5ipusra6gwTHS45R1hkeISUpbbH2OkRFyMuOE1canuGmKe5zN7tDhEtNT9LWWtzhJervM7d8AkQHSg4R1hnd4maq73N3u0QEyQwOUxXaXaElqe5ytrsDBEdNkdRXmh+iJWktsnd7Q8cLz5PYXOBjpuotMLQ3+4IDh4tPk5eb3+Pn6/Az9/vER4xPk9ca3eEkaCuvszc6w4TJC09TFtseYqarL3N3u4MEh8tPExba3uKmqu7zN3sDREfKzVGU2dyg5Wnucvc7REWIyo6Tl1ufYubqrzO4PAIDyIyQ1Njc4OSorLB0eDvDRApQklWX2+AiZajt87h8REZJTQ/S1xmd4SQoK+/1OcTHzFBU2R1hZOhrrvI1ePyEh80RFhndX6KlaOxwM/f7xAdLz1MWmp3hZOhsMHR4PAPFSMyPUlWYW53gY2vxtrtSQ5tC20LbQttC20LbQttC20LbQttC20LkwuTC20LHguQDA0MnAvwC/ALwgvCC8ILkwuTC8ILnAtICx4LHgumClAPrg+lC4cMhwx2C/ALHgsyDKwMbQseCzwK+QncCm0LvA19DMILHwzLC0gLbQttC20LbQtIC0gLSAtIC0gLwQq+E74Tdgv1DTkN8AsNDOkKWAxYDJwLHgvRCewJwQpIC0wRNRCMCsEKnAvCC20LHgulC8sLbQttC20LbQtIC6YKJA7LC5wL8AvwCzkL9grwC5AM5wulC9sM2wylC+4MrwtrFJYT7AkKDcYNOQ19DBYMMA2lC4wKVwp/CukKHgtxCtkTNhQHEkwRnAlRC+cLhwxhDH8KtApICx4L6QoeC4wKMgxIC5MLbQttC20LbQuTC5MLkwuTC20LbQuTC5MLkwtqEIcMpQsfDMILSAtIC20LnAs5C2QLywucC8ILfQw5C7AOsA6sDB8MpQtIC20LSAucC3YL6QrpCh4LSAtIC2QKDg+uD4cMMgysDHYL5wuTC5MLDQweC+kK6QrpCukKFAoFD/APHQ28DRYMtArCC3YLMgwNDB4LHgtXClcKHgv2ChsUHhOZDAUPcQ1hDFELVQ17DYwKFApxCrQKHgv2CsEKDRDNDtsMWAxtC0gLSAttC+kKtArpCrQK6QoeC0gL9grZE74T5wvZDawM8AsNDIALHwxRC7QKtAq0Ch4L6Qo8CtUQ1RAsC98JhwwwDTANAwwDDDAN8AseC1cKFAqmCsEK8AtkC/YKSAu0Cn8KUQsfDE4MTgyQDGEM8AvCC5MLHgsXESoPbQtICx4LSAseCx4LSAtIC0gLHgtIC20LSAseC6ULZAtkC6ULpQvwCzIMkAxODPALwgucC5wLnAttC7QKhRA1EO4MEw1tC5MLSAulC6ULHgvpCrQKHgseCx4L6QrwD64PHwzCC20LbQttC0gLbQttCx4LHgseC+kKSAvcCgcS3xFhDHENhwylC1EL3gsyDLQKfwp/Cn8KtArpCowKNRCtEM0OSQ6mCtwKSAtIC8ILnAttCx4Lfwp/CukKSAt3EOINwQoeCx4LSAtIC0gLbQttC0gLbQttC20LkwtICzYUORPVCGgNzQ6XDRMNHgvuDJcNTgxRC5wJtwnBCm0Lew1l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OiBxbiA8PSAyNTYAYXNzZXJ0aW9uIGZhaWxlZDogeCAhPSB5AGNlbHQvY2VsdF9scGMuYwBhc3NlcnRpb24gZmFpbGVkOiAob3JkJjMpPT0wAGFzc2VydGlvbiBmYWlsZWQ6IG4+MABhc3NlcnRpb24gZmFpbGVkOiBvdmVybGFwPj0wAGFzc2VydGlvbiBmYWlsZWQ6IGxlbj49MwAuL2NlbHQvcGl0Y2guaABhc3NlcnRpb24gZmFpbGVkOiBtYXhfcGl0Y2g+MABjZWx0L3BpdGNoLmMAYXNzZXJ0aW9uIGZhaWxlZDogbGVuPjAAYXNzZXJ0aW9uIGZhaWxlZDogbGVuPj0zAC4vY2VsdC9waXRjaC5oAGNlbHQva2lzc19mZnQuYwBhc3NlcnRpb24gZmFpbGVkOiBtPT00AGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5tb2RlID09IG9wdXNfY3VzdG9tX21vZGVfY3JlYXRlKDQ4MDAwLCA5NjAsIE5VTEwpAGNlbHQvY2VsdF9kZWNvZGVyLmMAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPm92ZXJsYXAgPT0gMTIwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5lbmQgPD0gMjEAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPmNoYW5uZWxzID09IDEgfHwgc3QtPmNoYW5uZWxzID09IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0cmVhbV9jaGFubmVscyA9PSAxIHx8IHN0LT5zdHJlYW1fY2hhbm5lbHMgPT0gMgBhc3NlcnRpb24gZmFpbGVkOiBzdC0+ZG93bnNhbXBsZSA+IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0YXJ0ID09IDAgfHwgc3QtPnN0YXJ0ID09IDE3AGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5zdGFydCA8IHN0LT5lbmQAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPmFyY2ggPj0gMABhc3NlcnRpb24gZmFpbGVkOiBzdC0+YXJjaCA8PSBPUFVTX0FSQ0hNQVNLAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5sYXN0X3BpdGNoX2luZGV4IDw9IFBMQ19QSVRDSF9MQUdfTUFYAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5sYXN0X3BpdGNoX2luZGV4ID49IFBMQ19QSVRDSF9MQUdfTUlOIHx8IHN0LT5sYXN0X3BpdGNoX2luZGV4ID09IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfcGVyaW9kIDwgTUFYX1BFUklPRABhc3NlcnRpb24gZmFpbGVkOiBzdC0+cG9zdGZpbHRlcl9wZXJpb2QgPj0gQ09NQkZJTFRFUl9NSU5QRVJJT0QgfHwgc3QtPnBvc3RmaWx0ZXJfcGVyaW9kID09IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfcGVyaW9kX29sZCA8IE1BWF9QRVJJT0QAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfcGVyaW9kX29sZCA+PSBDT01CRklMVEVSX01JTlBFUklPRCB8fCBzdC0+cG9zdGZpbHRlcl9wZXJpb2Rfb2xkID09IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0IDw9IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0ID49IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0X29sZCA8PSAyAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5wb3N0ZmlsdGVyX3RhcHNldF9vbGQgPj0gMAACAQAZFwIAfnx3bVcpEwkEAgBhc3NlcnRpb24gZmFpbGVkOiBhY2N1bT09MABhc3NlcnRpb24gZmFpbGVkOiBwY21fY291bnQgPT0gZnJhbWVfc2l6ZQBzcmMvb3B1c19kZWNvZGVyLmMAYXNzZXJ0aW9uIGZhaWxlZDogcmV0PT1mcmFtZV9zaXplLXBhY2tldF9mcmFtZV9zaXplAGFzc2VydGlvbiBmYWlsZWQ6IHJldD09cGFja2V0X2ZyYW1lX3NpemUAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPmNoYW5uZWxzID09IDEgfHwgc3QtPmNoYW5uZWxzID09IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkZzID09IDQ4MDAwIHx8IHN0LT5GcyA9PSAyNDAwMCB8fCBzdC0+RnMgPT0gMTYwMDAgfHwgc3QtPkZzID09IDEyMDAwIHx8IHN0LT5GcyA9PSA4MDAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5EZWNDb250cm9sLkFQSV9zYW1wbGVSYXRlID09IHN0LT5GcwBhc3NlcnRpb24gZmFpbGVkOiBzdC0+RGVjQ29udHJvbC5pbnRlcm5hbFNhbXBsZVJhdGUgPT0gMCB8fCBzdC0+RGVjQ29udHJvbC5pbnRlcm5hbFNhbXBsZVJhdGUgPT0gMTYwMDAgfHwgc3QtPkRlY0NvbnRyb2wuaW50ZXJuYWxTYW1wbGVSYXRlID09IDEyMDAwIHx8IHN0LT5EZWNDb250cm9sLmludGVybmFsU2FtcGxlUmF0ZSA9PSA4MDAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5EZWNDb250cm9sLm5DaGFubmVsc0FQSSA9PSBzdC0+Y2hhbm5lbHMAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkRlY0NvbnRyb2wubkNoYW5uZWxzSW50ZXJuYWwgPT0gMCB8fCBzdC0+RGVjQ29udHJvbC5uQ2hhbm5lbHNJbnRlcm5hbCA9PSAxIHx8IHN0LT5EZWNDb250cm9sLm5DaGFubmVsc0ludGVybmFsID09IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkRlY0NvbnRyb2wucGF5bG9hZFNpemVfbXMgPT0gMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSAxMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSAyMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSA0MCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSA2MABhc3NlcnRpb24gZmFpbGVkOiBzdC0+YXJjaCA+PSAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5hcmNoIDw9IE9QVVNfQVJDSE1BU0sAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0cmVhbV9jaGFubmVscyA9PSAxIHx8IHN0LT5zdHJlYW1fY2hhbm5lbHMgPT0gMgBhc3NlcnRpb24gZmFpbGVkOiAwAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMTIsICgoKHZvaWQpKChlbmRiYW5kKSA9PSAob3B1c19pbnQzMikwKSksIChvcHVzX2ludDMyKShlbmRiYW5kKSkpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMDgsICgoKHZvaWQpKChzdC0+c3RyZWFtX2NoYW5uZWxzKSA9PSAob3B1c19pbnQzMikwKSksIChvcHVzX2ludDMyKShzdC0+c3RyZWFtX2NoYW5uZWxzKSkpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMTAsICgoKHZvaWQpKCgwKSA9PSAob3B1c19pbnQzMikwKSksIChvcHVzX2ludDMyKSgwKSkpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgNDAzMSwgKCgmcmVkdW5kYW50X3JuZykgKyAoKCZyZWR1bmRhbnRfcm5nKSAtIChvcHVzX3VpbnQzMiopKCZyZWR1bmRhbnRfcm5nKSkpKSkgPT0gT1BVU19PSwBhc3NlcnRpb24gZmFpbGVkOiAob3B1c19jdXN0b21fZGVjb2Rlcl9jdGwoY2VsdF9kZWMsIDEwMDEwLCAoKCh2b2lkKSgoc3RhcnRfYmFuZCkgPT0gKG9wdXNfaW50MzIpMCkpLCAob3B1c19pbnQzMikoc3RhcnRfYmFuZCkpKSkgPT0gT1BVU19PSwBhc3NlcnRpb24gZmFpbGVkOiAob3B1c19jdXN0b21fZGVjb2Rlcl9jdGwoY2VsdF9kZWMsIDQwMjgpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMTUsICgoJmNlbHRfbW9kZSkgKyAoKCZjZWx0X21vZGUpIC0gKGNvbnN0IE9wdXNDdXN0b21Nb2RlKiopKCZjZWx0X21vZGUpKSkpKSA9PSBPUFVTX09LAEHwowILAQUAQfyjAgsBAQBBlKQCCwoCAAAAAwAAAHSTAEGspAILAQIAQbukAgsF//////8AQaymAgsCnJMAQeSmAgsDsJVQ";if(!FA(uA)){var se=uA;uA=e.locateFile?e.locateFile(se,s):s+se}function WA(){var N=uA;try{if(N==uA&&E)return new Uint8Array(E);if(FA(N))try{var x=BA(N.slice(37)),L=new Uint8Array(x.length);for(N=0;N<x.length;++N)L[N]=x.charCodeAt(N);var tA=L}catch(UA){throw Error("Converting base64 string to bytes failed.")}else tA=void 0;var X=tA;if(X)return X;throw"both async and sync fetching of the wasm failed"}catch(UA){VA(UA)}}function yA(){return E||typeof fetch!="function"?Promise.resolve().then(function(){return WA()}):fetch(uA,{credentials:"same-origin"}).then(function(N){if(!N.ok)throw"failed to load wasm binary file at '"+uA+"'";return N.arrayBuffer()}).catch(function(){return WA()})}function C(N){for(;0<N.length;){var x=N.shift();if(typeof x=="function")x(e);else{var L=x.s;typeof L=="number"?x.o===void 0?w.get(L)():w.get(L)(x.o):L(x.o===void 0?null:x.o)}}}var T=[null,[],[]],BA=typeof atob=="function"?atob:function(N){var x="",L=0;N=N.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var tA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(L++)),X="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(L++)),UA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(L++)),aA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(L++));tA=tA<<2|X>>4,X=(X&15)<<4|UA>>2;var xA=(UA&3)<<6|aA;x+=String.fromCharCode(tA),UA!==64&&(x+=String.fromCharCode(X)),aA!==64&&(x+=String.fromCharCode(xA))}while(L<N.length);return x},eA={d:function(){VA()},f:function(N,x,L){k.copyWithin(N,x,x+L)},c:function(){return!1},e:function(){return 0},b:function(){},a:function(N,x,L,tA){for(var X=0,UA=0;UA<L;UA++){for(var aA=p[x+8*UA>>2],xA=p[x+(8*UA+4)>>2],rF=0;rF<xA;rF++){var TQ=k[aA+rF],dF=T[N];if(TQ===0||TQ===10){TQ=N===1?a:d;for(var Me=dF,tt=0,yQ=tt+NaN,rB=tt;Me[rB]&&!(rB>=yQ);)++rB;if(16<rB-tt&&Me.subarray&&J)Me=J.decode(Me.subarray(tt,rB));else{for(yQ="";tt<rB;){var Ae=Me[tt++];if(Ae&128){var $a=Me[tt++]&63;if((Ae&224)==192)yQ+=String.fromCharCode((Ae&31)<<6|$a);else{var Zr=Me[tt++]&63;Ae=(Ae&240)==224?(Ae&15)<<12|$a<<6|Zr:(Ae&7)<<18|$a<<12|Zr<<6|Me[tt++]&63,65536>Ae?yQ+=String.fromCharCode(Ae):(Ae-=65536,yQ+=String.fromCharCode(55296|Ae>>10,56320|Ae&1023))}}else yQ+=String.fromCharCode(Ae)}Me=yQ}TQ(Me),dF.length=0}else dF.push(TQ)}X+=xA}return p[tA>>2]=X,0}};(function(){function N(X){e.asm=X.exports,g=e.asm.g,X=g.buffer,e.HEAP8=new Int8Array(X),e.HEAP16=new Int16Array(X),e.HEAP32=p=new Int32Array(X),e.HEAPU8=k=new Uint8Array(X),e.HEAPU16=new Uint16Array(X),e.HEAPU32=new Uint32Array(X),e.HEAPF32=new Float32Array(X),e.HEAPF64=new Float64Array(X),w=e.asm.n,D.unshift(e.asm.h),H--,e.monitorRunDependencies&&e.monitorRunDependencies(H),H==0&&j&&(X=j,j=null,X())}function x(X){N(X.instance)}function L(X){return yA().then(function(UA){return WebAssembly.instantiate(UA,tA)}).then(X,function(UA){d("failed to asynchronously prepare wasm: "+UA),VA(UA)})}var tA={a:eA};if(H++,e.monitorRunDependencies&&e.monitorRunDependencies(H),e.instantiateWasm)try{return e.instantiateWasm(tA,N)}catch(X){return d("Module.instantiateWasm callback failed with error: "+X),!1}return function(){return E||typeof WebAssembly.instantiateStreaming!="function"||FA(uA)||typeof fetch!="function"?L(x):fetch(uA,{credentials:"same-origin"}).then(function(X){return WebAssembly.instantiateStreaming(X,tA).then(x,function(UA){return d("wasm streaming compile failed: "+UA),d("falling back to ArrayBuffer instantiation"),L(x)})})}().catch(B),{}})(),e.___wasm_call_ctors=function(){return(e.___wasm_call_ctors=e.asm.h).apply(null,arguments)},e._opus_decoder_create=function(){return(e._opus_decoder_create=e.asm.i).apply(null,arguments)},e._opus_decode_float=function(){return(e._opus_decode_float=e.asm.j).apply(null,arguments)},e._opus_decoder_destroy=function(){return(e._opus_decoder_destroy=e.asm.k).apply(null,arguments)},e._malloc=function(){return(e._malloc=e.asm.l).apply(null,arguments)},e._free=function(){return(e._free=e.asm.m).apply(null,arguments)};var K;j=function N(){K||z(),K||(j=N)};function z(){function N(){if(!K&&(K=!0,e.calledRun=!0,!c)){if(C(D),t(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;){var x=e.postRun.shift();G.unshift(x)}C(G)}}if(!(0<H)){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)v();C(M),0<H||(e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),N()},1)):N())}}if(e.run=z,e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.pop()();return z(),A.ready}}(),Er=(Q=>(Q[Q.OK=0]="OK",Q[Q["Bad argument"]=-1]="Bad argument",Q[Q["Buffer too small"]=-2]="Buffer too small",Q[Q["Internal error"]=-3]="Internal error",Q[Q["Invalid packet"]=-4]="Invalid packet",Q[Q.Unimplemented=-5]="Unimplemented",Q[Q["Invalid state"]=-6]="Invalid state",Q[Q["Memory allocation fail"]=-7]="Memory allocation fail",Q))(Er||{});const ue=class ue{constructor(A,e,t){i(this,"opusModule");i(this,"decoderInstance");i(this,"opusBufferPointer");i(this,"pcmBufferPointer");i(this,"opus");i(this,"pcm");i(this,"channels");i(this,"sampleRate");i(this,"pcmBufferByteSize",()=>ue.MAX_SAMPLES*this.channels*Float32Array.BYTES_PER_ELEMENT);i(this,"unload",()=>{this.opusModule._free(this.opusBufferPointer),this.opusModule._free(this.pcmBufferPointer),this.opusModule._opus_decoder_destroy(this.decoderInstance)});i(this,"decode",A=>{this.opusModule.HEAPU8.set(new Uint8Array(A),this.opusBufferPointer);const e=this.opusModule._opus_decode_float(this.decoderInstance,this.opusBufferPointer,A.byteLength,this.pcmBufferPointer,ue.MAX_SAMPLES,0);if(e<0)throw new Error(Er[e]);return this.pcm.subarray(0,e*this.channels)});this.opusModule=A,this.channels=t,this.sampleRate=e,this.decoderInstance=this.opusModule._opus_decoder_create(e,t,0),this.opusBufferPointer=this.opusModule._malloc(ue.MAX_OPUS_BUFFER),this.opus=this.opusModule.HEAPU8.subarray(this.opusBufferPointer,this.opusBufferPointer+ue.MAX_OPUS_BUFFER),this.pcmBufferPointer=this.opusModule._malloc(this.pcmBufferByteSize());const B=this.pcmBufferPointer/Float32Array.BYTES_PER_ELEMENT;this.pcm=this.opusModule.HEAPF32.subarray(B,B+this.pcmBufferByteSize()/Float32Array.BYTES_PER_ELEMENT)}};i(ue,"MAX_OPUS_BUFFER",1e3*1e3),i(ue,"MAX_SAMPLES",6*960),i(ue,"create",(A,e)=>r(ue,null,function*(){return new ue(yield AR(),A,e)}));let Ma=ue;const oF=class oF{constructor(A){i(this,"decodedSamples",[]);i(this,"decoder");i(this,"errors",new Z(10));i(this,"unload",()=>{this.decoder.unload()});i(this,"enqueue",A=>{try{const e=Date.now(),t=this.decoder.decode(A.data);this.decodedSamples.push(O(S({},A),{type:"audio",format:"f32",data:t,statistics:{decodeTime:Date.now()-e,transportTimeFromWorker:0,transportTimeToWorker:0,samplesInBatch:1}}))}catch(e){e instanceof Error&&this.errors.push(Mo(!1,e))}});i(this,"initSegment",V);i(this,"take",()=>this.decodedSamples.shift());this.decoder=A}error(){return this.errors.pop()}};i(oF,"create",(A,e)=>r(oF,null,function*(){return new oF(yield Ma.create(A,e))}));let va=oF;const eR=Object.freeze(Object.defineProperty({__proto__:null,OpusDecoderContext:va},Symbol.toStringTag,{value:"Module"})),gr="dmFyIE1BPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxjQT1PYmplY3QuZGVmaW5lUHJvcGVydGllczt2YXIgcUE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM7dmFyIFNBPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIFlBPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksS0E9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTt2YXIgQUE9KHQsaCxOKT0+aCBpbiB0P01BKHQsaCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Tn0pOnRbaF09TixJQT0odCxoKT0+e2Zvcih2YXIgTiBpbiBofHwoaD17fSkpWUEuY2FsbChoLE4pJiZBQSh0LE4saFtOXSk7aWYoU0EpZm9yKHZhciBOIG9mIFNBKGgpKUtBLmNhbGwoaCxOKSYmQUEodCxOLGhbTl0pO3JldHVybiB0fSxnQT0odCxoKT0+Y0EodCxxQShoKSk7dmFyIEQ9KHQsaCxOKT0+QUEodCx0eXBlb2YgaCE9InN5bWJvbCI/aCsiIjpoLE4pO3ZhciBUPSh0LGgsTik9Pm5ldyBQcm9taXNlKChaLHUpPT57dmFyIFg9az0+e3RyeXtLKE4ubmV4dChrKSl9Y2F0Y2goZSl7dShlKX19LFA9az0+e3RyeXtLKE4udGhyb3coaykpfWNhdGNoKGUpe3UoZSl9fSxLPWs9PmsuZG9uZT9aKGsudmFsdWUpOlByb21pc2UucmVzb2x2ZShrLnZhbHVlKS50aGVuKFgsUCk7SygoTj1OLmFwcGx5KHQsaCkpLm5leHQoKSl9KTsoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7Y29uc3QgdD0ibWlzc2luZ19pbml0X3NlZ21lbnQiO2NsYXNzIGggZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihBLEMsRT17fSl7c3VwZXIoQSk7RCh0aGlzLCJwcm9wcyIpO0QodGhpcywiZXh0cmEiLHt9KTtEKHRoaXMsImNvZGUiLCgpPT50aGlzLnByb3BzLmNvZGUpO0QodGhpcywiaXNGYXRhbCIsKCk9PnRoaXMucHJvcHMuaXNGYXRhbCk7RCh0aGlzLCJzb3VyY2UiLCgpPT50aGlzLnByb3BzLnNvdXJjZSk7RCh0aGlzLCJ0eXBlIiwoKT0+e3ZhciBBO3JldHVybihBPXRoaXMucHJvcHMudHlwZSkhPW51bGw/QToiZXh0ZXJuYWwifSk7RCh0aGlzLCJ0b1N0cmluZ2lmaWFibGUiLCgpPT57dmFyIEU7Y29uc3QgQT10aGlzLnNvdXJjZSgpLEM9QSBpbnN0YW5jZW9mIEVycm9yP0Euc3RhY2s6dGhpcy5zdGFjaztyZXR1cm4gZ0EoSUEoe30sdGhpcy5leHRyYSkse2NvZGU6dGhpcy5wcm9wcy5jb2RlLGlzRmF0YWw6dGhpcy5wcm9wcy5pc0ZhdGFsLHR5cGU6dGhpcy5wcm9wcy50eXBlLG1lc3NhZ2U6dGhpcy5tZXNzYWdlLHNvdXJjZU1lc3NhZ2U6KEU9dGhpcy5zb3VyY2UoKSk9PW51bGw/dm9pZCAwOkUubWVzc2FnZSxzdGFjazpDfSl9KTt0aGlzLnByb3BzPUMsdGhpcy5leHRyYT1FLE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLG5ldy50YXJnZXQucHJvdG90eXBlKX19Y29uc3QgTj0oUSxnKT0+bmV3IGgoYE5vIGluaXQgc2VnbWVudCBmb3IgcmVuZGl0aW9uIGlkICR7UX0gZm9yIGNoYW5uZWwgJHtnfWAse2lzRmF0YWw6ITEsY29kZTp0LHR5cGU6ImludGVybmFsIn0pLFo9Nyx1PTgsWD1RPT57Y29uc3QgZz1RLmdldFVpbnQzMigwLCExKSxBPVEuZ2V0VWludDgoMCk8PDE2fFEuZ2V0VWludDE2KDEsITEpO2xldCBDPTA7cmV0dXJuIEE9PT0xP0MrPTM6Zz09PTEmJihDKz00KSxDfSxQPVE9PlgobmV3IERhdGFWaWV3KFEsMCkpIT09MCxLPShRLGc9MCk9Pntmb3IobGV0IEE9ZztBPFEuYnl0ZUxlbmd0aC00O0ErKyl7Y29uc3QgQz1RLmdldFVpbnQzMihBKT09PTEsRT0oUS5nZXRVaW50OChBKTw8MTZ8US5nZXRVaW50MTYoQSsxKSk9PT0xO2lmKEN8fEUpcmV0dXJue3Bvc2l0aW9uOkEsbmFsUHJlZml4U2l6ZTpDPzQ6M319fSxrPVE9PlEmMzEsZT0oUSxnKT0+e2NvbnN0IEE9bmV3IERhdGFWaWV3KFEsMCk7bGV0IEM9SyhBKTtmb3IoO0M7KXtjb25zdHtwb3NpdGlvbjpFLG5hbFByZWZpeFNpemU6aX09QyxhPUsoQSxFKzQpLHM9YT9hLnBvc2l0aW9uLUUtaTp2b2lkIDA7aWYoIWcobmV3IERhdGFWaWV3KFEsRStpLHMpLGkpKXJldHVybjtDPWF9fSxoQT0oUSxnKT0+e2NvbnN0IEE9bmV3IERhdGFWaWV3KFEsMCksQz00O2xldCBFPTA7Zm9yKDtFPFEuYnl0ZUxlbmd0aDspe2NvbnN0IGk9QS5nZXRVaW50MzIoRSk7aWYoIWcobmV3IERhdGFWaWV3KFEsRStDLGkpKSlyZXR1cm47RSs9aStDfX0sR0E9UT0+e2NvbnN0IGc9W10sQT1bXTtpZighUChRKSl7Y29uc3QgQz1uZXcgRGF0YVZpZXcoUSwwKSxFPUMuZ2V0VWludDgoNSkmMzE7bGV0IGk9Njtmb3IobGV0IHM9MDtzPEU7cysrKXtjb25zdCBHPUMuZ2V0VWludDE2KGkpO2cucHVzaChRLnNsaWNlKGkrMixpKzIrRykpLGkrPUcrMn1jb25zdCBhPUMuZ2V0VWludDgoaSk7aSs9MTtmb3IobGV0IHM9MDtzPGE7cysrKXtjb25zdCBHPUMuZ2V0VWludDE2KGkpO0EucHVzaChRLnNsaWNlKGkrMixpKzIrRykpLGkrPUcrMn1yZXR1cm57c2VxdWVuY2VQYXJhbWV0ZXJTZXRzOmcscGljdHVyZVBhcmFtZXRlclNldHM6QX19cmV0dXJuIGUoUSxDPT57Y29uc3QgRT1DLmJ5dGVPZmZzZXQrQy5ieXRlTGVuZ3RoO3N3aXRjaChrKEMuZ2V0VWludDgoMCkpKXtjYXNlIHU6QS5wdXNoKEMuYnVmZmVyLnNsaWNlKEMuYnl0ZU9mZnNldCxFKSk7YnJlYWs7Y2FzZSBaOmcucHVzaChDLmJ1ZmZlci5zbGljZShDLmJ5dGVPZmZzZXQsRSkpO2JyZWFrfXJldHVybiEwfSkse3NlcXVlbmNlUGFyYW1ldGVyU2V0czpnLHBpY3R1cmVQYXJhbWV0ZXJTZXRzOkF9fTt2YXIgTkE9ZnVuY3Rpb24oKXt2YXIgUT10eXBlb2YgZG9jdW1lbnQhPSJ1bmRlZmluZWQiJiZkb2N1bWVudC5jdXJyZW50U2NyaXB0P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjOnZvaWQgMDtyZXR1cm4gZnVuY3Rpb24oZyl7Zz1nfHx7fTt2YXIgQTtBfHwoQT10eXBlb2YgZyE9InVuZGVmaW5lZCI/Zzp7fSk7dmFyIEMsRTtBLnJlYWR5PW5ldyBQcm9taXNlKGZ1bmN0aW9uKEksQil7Qz1JLEU9Qn0pO3ZhciBpPXt9LGE7Zm9yKGEgaW4gQSlBLmhhc093blByb3BlcnR5KGEpJiYoaVthXT1BW2FdKTt2YXIgcz0iIixHO3M9c2VsZi5sb2NhdGlvbi5ocmVmLFEmJihzPVEpLHMuaW5kZXhPZigiYmxvYjoiKSE9PTA/cz1zLnN1YnN0cigwLHMubGFzdEluZGV4T2YoIi8iKSsxKTpzPSIiLEc9ZnVuY3Rpb24oSSl7dHJ5e3ZhciBCPW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4gQi5vcGVuKCJHRVQiLEksITEpLEIucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciIsQi5zZW5kKG51bGwpLG5ldyBVaW50OEFycmF5KEIucmVzcG9uc2UpfWNhdGNoKG8pe2lmKEk9YUEoSSkpcmV0dXJuIEk7dGhyb3cgb319O3ZhciBSPUEucHJpbnRFcnJ8fGNvbnNvbGUud2Fybi5iaW5kKGNvbnNvbGUpO2ZvcihhIGluIGkpaS5oYXNPd25Qcm9wZXJ0eShhKSYmKEFbYV09aVthXSk7aT1udWxsO3ZhciBjO0Eud2FzbUJpbmFyeSYmKGM9QS53YXNtQmluYXJ5KSxBLm5vRXhpdFJ1bnRpbWUsdHlwZW9mIFdlYkFzc2VtYmx5IT0ib2JqZWN0IiYmbCgibm8gbmF0aXZlIHdhc20gc3VwcG9ydCBkZXRlY3RlZCIpO3ZhciB3LGI9ITEsbSxxLHIsZCxKLFMsZjtmdW5jdGlvbiBRQSgpe3ZhciBJPXcuYnVmZmVyO209SSxBLkhFQVA4PXE9bmV3IEludDhBcnJheShJKSxBLkhFQVAxNj1kPW5ldyBJbnQxNkFycmF5KEkpLEEuSEVBUDMyPUo9bmV3IEludDMyQXJyYXkoSSksQS5IRUFQVTg9cj1uZXcgVWludDhBcnJheShJKSxBLkhFQVBVMTY9bmV3IFVpbnQxNkFycmF5KEkpLEEuSEVBUFUzMj1uZXcgVWludDMyQXJyYXkoSSksQS5IRUFQRjMyPVM9bmV3IEZsb2F0MzJBcnJheShJKSxBLkhFQVBGNjQ9Zj1uZXcgRmxvYXQ2NEFycmF5KEkpfXZhciB6LENBPVtdLEVBPVtdLGlBPVtdO2Z1bmN0aW9uIFJBKCl7dmFyIEk9QS5wcmVSdW4uc2hpZnQoKTtDQS51bnNoaWZ0KEkpfXZhciBZPTAsVz1udWxsO0EucHJlbG9hZGVkSW1hZ2VzPXt9LEEucHJlbG9hZGVkQXVkaW9zPXt9O2Z1bmN0aW9uIGwoSSl7dGhyb3cgQS5vbkFib3J0JiZBLm9uQWJvcnQoSSksUihJKSxiPSEwLEk9bmV3IFdlYkFzc2VtYmx5LlJ1bnRpbWVFcnJvcigiYWJvcnQoIitJKyIpLiBCdWlsZCB3aXRoIC1zIEFTU0VSVElPTlM9MSBmb3IgbW9yZSBpbmZvLiIpLEUoSSksSX12YXIgeD0iZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LCIsTT0iZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LEFHRnpiUUVBQUFBQllRNWdBbjkvQVg5Z0NYOS9mMzkvZjM5L2Z3QmdBWDhBWUFGL0FYOWdBMzkvZndGL1lBUi9mMzkvQVg5Z0FuOS9BR0FEZjM5L0FHQUVmMzkvZndCZ0JuOS9mMzkvZndCZ0FBQmdDSDkvZjM5L2YzOS9BR0FBQVg5Z0JYOS9mMzkvQVg4Q0RRSUJZUUZoQUFRQllRRmlBQU1ETWpFQUFBUUNBQVVFQlFNQUFRUUhBUU1BQXdBRUNRZ0JCZ29JQUFZRUFnQUJBUUVCQWdjR0Fnc0ZBZzBBQWd3SkF3TUZCQVVCY0FFQkFRVUhBUUdBQW9DQUFnWUpBWDhCUWJERXdBSUxCMEVRQVdNQ0FBRmtBQmtCWlFBSUFXWUFMQUZuQUFvQmFBQXJBV2tBQlFGcUFDb0Jhd0FwQVd3QU1nRnRBREVCYmdBd0FXOEFMd0Z3QUM0QmNRQXRBWElCQUFxT2lnWXg4UUlCQTM4Z0FCQVFJZ0pCZjB3RVFDQUFRUUVRQ3hvZ0FVRUFOZ0lBUVFBUEN3SkFBa0FnQWtHQWdJQ0FCRThFUUNBQVFRTVFDMEYvUmdSQVFRRVBDeUFCSUFKQkhYWkJBWEZCQVdvMkFnQU1BUXNnQWtHQWdJQ0FBazhFUUNBQVFRVVFDMEYvUmdSQVFRRVBDeUFCSUFKQkczWkJBM0ZCQTJvMkFnQU1BUXNnQWtHQWdJQ0FBVThFUUNBQVFRY1FDMEYvUmdSQVFRRVBDeUFCSUFKQkdYWkJCM0ZCQjJvMkFnQU1BUXNDZndKQVFZQ0FnTUFBSWdNZ0FuRU5BRUVCSVFRRFFDQURRUUYySWdORkRRRWdBaUFEY1EwQklBUkJBV29oQkF3QUN3QUxJQVFpQWtFRWFpSURRU0JHQ3dSQUlBRkJBRFlDQUNBQVFTQVFDeHBCQVNFRElBQkJBUkFEUVFGSERRSWdBQkFRSVFJZ0FFRWdFQXRCZjBZTkFnSkFBa0FnQWc0Q0FBRUVDeUFCUVg4MkFnQU1BZ3NnQVVGL05nSUFRUUVQQ3lBQUlBSkJCV29RQ3hvZ0FDQURFQU1pQUVGL1JnUkFRUUVQQ3lBQklBQkJmeUFEZEVGL2MybzJBZ0FMUVFBaEF3c2dBd3VJQWdFSGZ5QUFLQUlFSVFRQ1FDQUFLQUlNUVFOMElnY2dBQ2dDRUNJSWF5SUNRU0JPQkVBZ0JDZ0FBQ0lEUVJoMElBTkJDSFJCZ0lEOEIzRnlJQU5CQ0haQmdQNERjU0FEUVJoMmNuSWhBeUFBS0FJSUlnSkZEUUVnQXlBQ2RDQUVMUUFFUVFnZ0FtdDJjaUVEREFFTElBSkJBVWdFUUF3QkN5QUVMUUFBSUFBb0FnZ2lCVUVZYWlJR2RDRURJQUlnQldwQkNHc2lBa0VCU0EwQUEwQWdCQzBBQVNBR1FRaHJJZ1owSUFOeUlRTWdBa0VJU2lFRklBUkJBV29oQkNBQ1FRaHJJUUlnQlEwQUN3c2dBQ0FCSUFocUlnUTJBaEFnQUNBRVFRZHhOZ0lJUVg4aEFpQUVJQWROQkg4Z0FDQUFLQUlBSUFSQkEzWnFOZ0lFSUFOQklDQUJhM1lGUVg4TEMvSUNBZ0ovQVg0Q1FDQUNSUTBBSUFBZ0Ftb2lBMEVCYXlBQk9nQUFJQUFnQVRvQUFDQUNRUU5KRFFBZ0EwRUNheUFCT2dBQUlBQWdBVG9BQVNBRFFRTnJJQUU2QUFBZ0FDQUJPZ0FDSUFKQkIwa05BQ0FEUVFScklBRTZBQUFnQUNBQk9nQURJQUpCQ1VrTkFDQUFRUUFnQUd0QkEzRWlCR29pQXlBQlFmOEJjVUdCZ29RSWJDSUJOZ0lBSUFNZ0FpQUVhMEY4Y1NJRWFpSUNRUVJySUFFMkFnQWdCRUVKU1EwQUlBTWdBVFlDQ0NBRElBRTJBZ1FnQWtFSWF5QUJOZ0lBSUFKQkRHc2dBVFlDQUNBRVFSbEpEUUFnQXlBQk5nSVlJQU1nQVRZQ0ZDQURJQUUyQWhBZ0F5QUJOZ0lNSUFKQkVHc2dBVFlDQUNBQ1FSUnJJQUUyQWdBZ0FrRVlheUFCTmdJQUlBSkJIR3NnQVRZQ0FDQUVJQU5CQkhGQkdISWlCR3NpQWtFZ1NRMEFJQUd0UW9HQWdJQVFmaUVGSUFNZ0JHb2hBUU5BSUFFZ0JUY0RHQ0FCSUFVM0F4QWdBU0FGTndNSUlBRWdCVGNEQUNBQlFTQnFJUUVnQWtFZ2F5SUNRUjlMRFFBTEN5QUFDOHdNQVFkL0FrQWdBRVVOQUNBQVFRaHJJZ01nQUVFRWF5Z0NBQ0lCUVhoeElnQnFJUVVDUUNBQlFRRnhEUUFnQVVFRGNVVU5BU0FESUFNb0FnQWlBV3NpQTBISXdBQW9BZ0JKRFFFZ0FDQUJhaUVBSUFOQnpNQUFLQUlBUndSQUlBRkIvd0ZOQkVBZ0F5Z0NDQ0lDSUFGQkEzWWlCRUVEZEVIZ3dBQnFSaG9nQWlBREtBSU1JZ0ZHQkVCQnVNQUFRYmpBQUNnQ0FFRitJQVIzY1RZQ0FBd0RDeUFDSUFFMkFnd2dBU0FDTmdJSURBSUxJQU1vQWhnaEJnSkFJQU1nQXlnQ0RDSUJSd1JBSUFNb0FnZ2lBaUFCTmdJTUlBRWdBallDQ0F3QkN3SkFJQU5CRkdvaUFpZ0NBQ0lFRFFBZ0EwRVFhaUlDS0FJQUlnUU5BRUVBSVFFTUFRc0RRQ0FDSVFjZ0JDSUJRUlJxSWdJb0FnQWlCQTBBSUFGQkVHb2hBaUFCS0FJUUlnUU5BQXNnQjBFQU5nSUFDeUFHUlEwQkFrQWdBeUFES0FJY0lnSkJBblJCNk1JQWFpSUVLQUlBUmdSQUlBUWdBVFlDQUNBQkRRRkJ2TUFBUWJ6QUFDZ0NBRUYrSUFKM2NUWUNBQXdEQ3lBR1FSQkJGQ0FHS0FJUUlBTkdHMm9nQVRZQ0FDQUJSUTBDQ3lBQklBWTJBaGdnQXlnQ0VDSUNCRUFnQVNBQ05nSVFJQUlnQVRZQ0dBc2dBeWdDRkNJQ1JRMEJJQUVnQWpZQ0ZDQUNJQUUyQWhnTUFRc2dCU2dDQkNJQlFRTnhRUU5IRFFCQndNQUFJQUEyQWdBZ0JTQUJRWDV4TmdJRUlBTWdBRUVCY2pZQ0JDQUFJQU5xSUFBMkFnQVBDeUFESUFWUERRQWdCU2dDQkNJQlFRRnhSUTBBQWtBZ0FVRUNjVVVFUUNBRlFkREFBQ2dDQUVZRVFFSFF3QUFnQXpZQ0FFSEV3QUJCeE1BQUtBSUFJQUJxSWdBMkFnQWdBeUFBUVFGeU5nSUVJQU5Cek1BQUtBSUFSdzBEUWNEQUFFRUFOZ0lBUWN6QUFFRUFOZ0lBRHdzZ0JVSE13QUFvQWdCR0JFQkJ6TUFBSUFNMkFnQkJ3TUFBUWNEQUFDZ0NBQ0FBYWlJQU5nSUFJQU1nQUVFQmNqWUNCQ0FBSUFOcUlBQTJBZ0FQQ3lBQlFYaHhJQUJxSVFBQ1FDQUJRZjhCVFFSQUlBVW9BZ2dpQWlBQlFRTjJJZ1JCQTNSQjRNQUFha1lhSUFJZ0JTZ0NEQ0lCUmdSQVFiakFBRUc0d0FBb0FnQkJmaUFFZDNFMkFnQU1BZ3NnQWlBQk5nSU1JQUVnQWpZQ0NBd0JDeUFGS0FJWUlRWUNRQ0FGSUFVb0Fnd2lBVWNFUUNBRktBSUlJZ0pCeU1BQUtBSUFTUm9nQWlBQk5nSU1JQUVnQWpZQ0NBd0JDd0pBSUFWQkZHb2lBaWdDQUNJRURRQWdCVUVRYWlJQ0tBSUFJZ1FOQUVFQUlRRU1BUXNEUUNBQ0lRY2dCQ0lCUVJScUlnSW9BZ0FpQkEwQUlBRkJFR29oQWlBQktBSVFJZ1FOQUFzZ0IwRUFOZ0lBQ3lBR1JRMEFBa0FnQlNBRktBSWNJZ0pCQW5SQjZNSUFhaUlFS0FJQVJnUkFJQVFnQVRZQ0FDQUJEUUZCdk1BQVFiekFBQ2dDQUVGK0lBSjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQVZHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0JTZ0NFQ0lDQkVBZ0FTQUNOZ0lRSUFJZ0FUWUNHQXNnQlNnQ0ZDSUNSUTBBSUFFZ0FqWUNGQ0FDSUFFMkFoZ0xJQU1nQUVFQmNqWUNCQ0FBSUFOcUlBQTJBZ0FnQTBITXdBQW9BZ0JIRFFGQndNQUFJQUEyQWdBUEN5QUZJQUZCZm5FMkFnUWdBeUFBUVFGeU5nSUVJQUFnQTJvZ0FEWUNBQXNnQUVIL0FVMEVRQ0FBUVFOMklnRkJBM1JCNE1BQWFpRUFBbjlCdU1BQUtBSUFJZ0pCQVNBQmRDSUJjVVVFUUVHNHdBQWdBU0FDY2pZQ0FDQUFEQUVMSUFBb0FnZ0xJUUlnQUNBRE5nSUlJQUlnQXpZQ0RDQURJQUEyQWd3Z0F5QUNOZ0lJRHd0Qkh5RUNJQU5DQURjQ0VDQUFRZi8vL3dkTkJFQWdBRUVJZGlJQklBRkJnUDQvYWtFUWRrRUljU0lCZENJQ0lBSkJnT0FmYWtFUWRrRUVjU0lDZENJRUlBUkJnSUFQYWtFUWRrRUNjU0lFZEVFUGRpQUJJQUp5SUFSeWF5SUJRUUYwSUFBZ0FVRVZhblpCQVhGeVFSeHFJUUlMSUFNZ0FqWUNIQ0FDUVFKMFFlakNBR29oQVFKQUFrQUNRRUc4d0FBb0FnQWlCRUVCSUFKMElnZHhSUVJBUWJ6QUFDQUVJQWR5TmdJQUlBRWdBellDQUNBRElBRTJBaGdNQVFzZ0FFRUFRUmtnQWtFQmRtc2dBa0VmUmh0MElRSWdBU2dDQUNFQkEwQWdBU0lFS0FJRVFYaHhJQUJHRFFJZ0FrRWRkaUVCSUFKQkFYUWhBaUFFSUFGQkJIRnFJZ2RCRUdvb0FnQWlBUTBBQ3lBSElBTTJBaEFnQXlBRU5nSVlDeUFESUFNMkFnd2dBeUFETmdJSURBRUxJQVFvQWdnaUFDQUROZ0lNSUFRZ0F6WUNDQ0FEUVFBMkFoZ2dBeUFFTmdJTUlBTWdBRFlDQ0F0QjJNQUFRZGpBQUNnQ0FFRUJheUlBUVg4Z0FCczJBZ0FMQzNRQkFuOGpBRUVRYXlJQ0pBQWdBa0VBTmdJTUlBQWdBa0VNYWhBQ0lRQUNmeUFDS0FJTUlnTkJmMFlFUUVFQklBQkZEUUVhSUFGQmdJQ0FnSGcyQWdCQkFBd0JDMEVCSUFBTkFCb2dBU0FEUVFGcVFRRjJJZ0ZCQUNBQmF5QURRUUZ4R3pZQ0FFRUFDeUVBSUFKQkVHb2tBQ0FBQy9BTEFSUi9JQUZCb0QxcUxRQUFRUXhzSWdaQjFEeHFLQUlBSVFRZ0JrSFFQR29vQWdBZ0FVR1FQR290QUFBaUIzUWhCU0FDUlFSQUlBQWdBQ2dDQUNBRmJEWUNBQXNnQkNBSGRDRUJBa0FDUUNBRFFaei9BM0VFUUNBQUlBWkIyRHhxS0FJQUlBZDBJZ01nQUNnQ1BHdzJBandnQUNBQUtBSTRJQUZzTmdJNFFRRWhBaUFBSUFBb0Fpd2dCV3dpQnlBQUtBSU1JQVZzSWdScUlnd2dBQ2dDSUNBQmJDSU5JQUFvQWpRZ0FXd2lEa0VCZFdvaUVHc2lCallDTENBQUtBSW9JUkVnQUNBRUlBZHJJZ1FnRFVFQmRTQU9heUlOYXlJSE5nSW9JQUFvQWlRaENDQUFJQVFnRFdvaUJEWUNKQ0FBSUFBb0Fod2dBV3dpRGlBQUtBSUlJQUZzSWdwcUloSWdBQ2dDRUNBRGJDSVBJQUFvQWpBZ0Eyd2lDMEVCZFdvaUUyc2lEVFlDSENBQUtBSVlJUWtnQUNBS0lBNXJJZ29nRDBFQmRTQUxheUlQYXlJT05nSVlJQUFvQWhRaEN5QUFJQW9nRDJvaUNqWUNGQ0FBSUFVZ0Myd2lEeUFBS0FJQUlndHFJaFFnQUNnQ0JDQUJiQ0lWSUFFZ0NXd2lDVUVCZFdvaUZtc2lCVFlDRENBQUlBc2dEMnNpQ3lBVlFRRjFJQWxySWdscklnODJBZ2dnQUNBSklBdHFJZ3MyQWdRZ0FDQUJJQWhzSWdnZ0FDZ0NPQ0lKYXlJVklBTWdFV3dpRVVFQmRTQUFLQUk4SWhkcklnTnJJZ0UyQWpnZ0FDQURJQlZxSWdNMkFqUWdBQ0FJSUFscUlnZ2dGMEVCZFNBUmFpSUpheUlSTmdJOElBQWdGQ0FXYWlJVUlBd2dFR29pREd0QklHb2lFQ0FTSUJOcUloSkJBWFVnQ0NBSmFpSUlheUlUYTBFR2RTSUpOZ0lnSUFBZ0VDQVRha0VHZFNJUU5nSVFJQUFnRENBVWFrRWdhaUlNSUFoQkFYVWdFbW9pQ0d0QkJuVWlFallDTUNBQUlBZ2dER3BCQm5VaUREWUNBQ0FNUVlBRWFrSC9CMHNOQWlBUVFZQUVha0gvQjBzTkFpQUpRWUFFYWtIL0Iwc05BaUFTUVlBRWFrSC9CMHNOQWlBQUlBUWdDMnBCSUdvaURDQURRUUYxSUFwcUloQnJRUVoxSWdnMkFqUWdBQ0FMSUFSclFTQnFJZ1FnQ2tFQmRTQURheUlEYTBFR2RTSUtOZ0lrSUFBZ0F5QUVha0VHZFNJRE5nSVVJQUFnRENBUWFrRUdkU0lFTmdJRUlBUkJnQVJxUWY4SFN3MENJQU5CZ0FScVFmOEhTdzBDSUFwQmdBUnFRZjhIU3cwQ0lBaEJnQVJxUWY4SFN3MENJQUFnQnlBUGFrRWdhaUlESUFGQkFYVWdEbW9pQkd0QkJuVWlDallDT0NBQUlBOGdCMnRCSUdvaUJ5QU9RUUYxSUFGcklnRnJRUVoxSWc0MkFpZ2dBQ0FCSUFkcVFRWjFJZ0UyQWhnZ0FDQURJQVJxUVFaMUlnTTJBZ2dnQTBHQUJHcEIvd2RMRFFJZ0FVR0FCR3BCL3dkTERRSWdEa0dBQkdwQi93ZExEUUlnQ2tHQUJHcEIvd2RMRFFJZ0FDQUZJQVpxUVNCcUlnRWdFVUVCZFNBTmFpSURhMEVHZFNJSE5nSThJQUFnQlNBR2EwRWdhaUlGSUExQkFYVWdFV3NpQm10QkJuVWlCRFlDTENBQUlBVWdCbXBCQm5VaUJUWUNIQ0FBSUFFZ0EycEJCblVpQURZQ0RDQUFRWUFFYWtIL0Iwc05BaUFGUVlBRWFrSC9CMHNOQWlBRVFZQUVha0gvQjBzTkFpQUhRWUFFYWtIL0IwME5BUXdDQ3lBRFFlSUFjVVVFUUVFQklRSWdBQ2dDQUVFZ2FrRUdkU0lCUVlBRWFrSC9CMHNOQWlBQUlBRTJBamdnQUNBQk5nSThJQUFnQVRZQ05DQUFJQUUyQWpBZ0FDQUJOZ0lzSUFBZ0FUWUNLQ0FBSUFFMkFpUWdBQ0FCTmdJZ0lBQWdBVFlDSENBQUlBRTJBaGdnQUNBQk5nSVVJQUFnQVRZQ0VDQUFJQUUyQWd3Z0FDQUJOZ0lJSUFBZ0FUWUNCQ0FBSUFFMkFnQU1BUXRCQVNFQ0lBQWdBQ2dDQkNBQmJDSUVJQUFvQWhnZ0FXd2lEVUVCZFdvaUF5QUFLQUlBSWdZZ0FDZ0NGQ0FGYkNJSGFpSUZha0VnYWtFR2RTSUJOZ0l3SUFBZ0JTQURhMEVnYWtFR2RTSUROZ0lNSUFBZ0JFRUJkU0FOYXlJRUlBWWdCMnRxUVNCcVFRWjFJZ1UyQWdRZ0FDQUJOZ0lBSUFBZ0FUWUNJQ0FBSUFVMkFqUWdBQ0FCTmdJUUlBQWdCVFlDSkNBQUlBVTJBaFFnQUNBRE5nSThJQUFnQmlBRUlBZHFhMEVnYWtFR2RTSUdOZ0lJSUFBZ0JqWUNPQ0FBSUFZMkFpZ2dBQ0FHTmdJWUlBQWdBellDTENBQUlBTTJBaHdnQVVHQUJHcEIvd2RMRFFFZ0JVR0FCR3BCL3dkTERRRWdCa0dBQkdwQi93ZExEUUVnQTBHQUJHcEIvd2RMRFFFTFFRQWhBZ3NnQWd1REJBRURmeUFDUVlBRVR3UkFJQUFnQVNBQ0VBQWFJQUFQQ3lBQUlBSnFJUU1DUUNBQUlBRnpRUU54UlFSQUFrQWdBRUVEY1VVRVFDQUFJUUlNQVFzZ0FrRUJTQVJBSUFBaEFnd0JDeUFBSVFJRFFDQUNJQUV0QUFBNkFBQWdBVUVCYWlFQklBSkJBV29pQWtFRGNVVU5BU0FDSUFOSkRRQUxDd0pBSUFOQmZIRWlCRUhBQUVrTkFDQUNJQVJCUUdvaUJVc05BQU5BSUFJZ0FTZ0NBRFlDQUNBQ0lBRW9BZ1EyQWdRZ0FpQUJLQUlJTmdJSUlBSWdBU2dDRERZQ0RDQUNJQUVvQWhBMkFoQWdBaUFCS0FJVU5nSVVJQUlnQVNnQ0dEWUNHQ0FDSUFFb0FodzJBaHdnQWlBQktBSWdOZ0lnSUFJZ0FTZ0NKRFlDSkNBQ0lBRW9BaWcyQWlnZ0FpQUJLQUlzTmdJc0lBSWdBU2dDTURZQ01DQUNJQUVvQWpRMkFqUWdBaUFCS0FJNE5nSTRJQUlnQVNnQ1BEWUNQQ0FCUVVCcklRRWdBa0ZBYXlJQ0lBVk5EUUFMQ3lBQ0lBUlBEUUVEUUNBQ0lBRW9BZ0EyQWdBZ0FVRUVhaUVCSUFKQkJHb2lBaUFFU1EwQUN3d0JDeUFEUVFSSkJFQWdBQ0VDREFFTElBQWdBMEVFYXlJRVN3UkFJQUFoQWd3QkN5QUFJUUlEUUNBQ0lBRXRBQUE2QUFBZ0FpQUJMUUFCT2dBQklBSWdBUzBBQWpvQUFpQUNJQUV0QUFNNkFBTWdBVUVFYWlFQklBSkJCR29pQWlBRVRRMEFDd3NnQWlBRFNRUkFBMEFnQWlBQkxRQUFPZ0FBSUFGQkFXb2hBU0FDUVFGcUlnSWdBMGNOQUFzTElBQUx1UkVCREg4akFFR0FBV3NpQ1NRQUlBQVFFQ0VFUVFFaEJnSkFBa0FDZnlBQ1FRRk5CRUFnQkVFQVNBMENJQVJCR1haQi9nQnhRWUFJYWlBRVFZQ0FnT0FBVHcwQkdpQUVRUlYyUWY0UGNVSEFDR29nQkVHQWdJQUlUdzBCR2lBRVFSRjJRZjcvQVhGQmtBbHFJQVJCZ0lDQUFVOE5BUm9nQkVFUWRrRUJkRUdRQ21vTUFRc2dBa0VEVFFSQUlBUkJmMHdFUUVFQ1FhSVFJQVJCZ0lDQWdBUnhHeUVHREFNTElBUkJHWFpCL2dCeFFkQUthaUFFUVlDQWdJQUJUdzBCR2lBRVFSWjJRZjRIY1VHUUMyb2dCRUdBZ0lBUVR3MEJHaUFFUVJGMlFmNy9BWEZCMEF0cURBRUxJQUpCQjAwRVFDQUVRUmwyUWY0QWNVSFFEV29nQkVILy8vLy9BVXNOQVJvZ0JFRVZka0grRDNGQjBBNXFEQUVMSUFSQkdYWkIvZ0J4UWRBUWFpQUNRUkJORFFBYUlBUkJIWFlpQWdSQUlBSkJBWFJCMEJGcURBRUxJQVJCRjNaQi9nTnhRZUFSYWdzdkFRQWlCZzBBUVFFaEN3d0JDMEVCSVFzZ0JrRUxkaUlLSUFOTERRQkJJQ0FHUVI5eElnVnJJUUlDUUNBS1JRUkFRUUFoQmd3QkN5QUVJQVYwSVFRQ1FDQUdRUVYyUVQ5eElnMUZCRUFNQVFzZ0FpQU5TUVJBSUFBZ0JSQUxRWDlHRFFNZ0FCQVFJUVJCSUNFQ0N5QUVJQTEwSVFWQkFTQU5RUUZyZENFSUlBUkJJQ0FOYTNZaEJBTkFJQWxCUUdzZ0IwRUNkR3BCZjBFQklBUWdDSEViTmdJQUlBZEJBV29oQnlBSVFRRjJJZ2dOQUFzZ0FpQU5heUVDSUFVaEJBc2dCeUFLU1FSQUlBMUJBMGtpRHlBR1FmK3ZBVXR4SVFZRFFDQUNRUTlOQkVBZ0FFRWdJQUpyRUF0QmYwWUVRQXdGQ3lBQUVCQWhCRUVnSVFJTFFRQWhEa0VBSVFVQ2Z3SkFBbjhDUUFKQUlBUkJBRWdOQUVFQklRVWdCRUgvLy8vL0Ewc05BRUVDSVFVZ0JFSC8vLy8vQVVzTkFFRURJUVVnQkVILy8vLy9BRXNOQUVFRUlRVWdCRUgvLy84L1N3MEFRUVVoQlNBRVFmLy8veDlMRFFCQkJpRUZJQVJCLy8vL0Qwc05BRUVISVFVZ0JFSC8vLzhIU3cwQVFRZ2hCU0FFUWYvLy93TkxEUUJCQ1NFRklBUkIvLy8vQVVzTkFFRUtJUVVnQkVILy8vOEFTdzBBUVFzaEJTQUVRZi8vUDBzTkFFRU1JUVVnQkVILy94OUxEUUJCRFNFRklBUkIvLzhQU3cwQUlBUkIvLzhIU3cwQklBUkJnSUI4Y1VHQWdBUkhCRUFNQ1FzZ0JFRVFkQ0VNUVE4Z0JrRUJJQVliSWdaMElRaEJEQ0VGSUFKQkVHc01BZ3NnQlNBR2RDRUlJQUlnQlVFQmFpSUZheUVDSUFRZ0JYUWhCQ0FHQkVBZ0JpRUZJQVFoREF3REMwRUJEQU1MUVE0Z0JuUWhDQ0FHUVFRZ0Joc2hCU0FFUVE5MElRd2dBa0VQYXdzaEFpQUdSU0VPQ3lBQ0lBVlBCSDhnQWlBRmF3VWdBRUVnSUFKckVBdEJmMFlFUUF3R0N5QUFFQkFoREVFZ0lBVnJDeUVDSUF3Z0JYUWhCQ0FNUVNBZ0JXdDJJQWhxSVFoQkFTQUdJQTRiQ3lFR0lBbEJRR3NnQjBFQ2RHcEJBQ0FJUVFKcUlBZ2dCeUFOUmhzZ0NDQVBHeUlNUVFKcVFRRjJJZ1ZySUFVZ0RFRUJjUnMyQWdBZ0JpQUdRUVpKSUFWQkF5QUdRUUZyZEVweGFpRUdJQWRCQVdvaUJ5QUtSdzBBQ3d0QkFDRUlBa0FnQXlBS1RRUkFRUUFoQnd3QkN3SkFJQUpCQ0VzRVFDQUNJUVlNQVF0QklDRUdJQUJCSUNBQ2F4QUxRWDlHRFFNZ0FCQVFJUVFMQWtBQ1FBSi9Ba0FnQTBFRVJ3UkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdDa0VCYXc0T0RnQUJBZ01FQlFZSENBa0tDd3dRQ3lBRVFScDJRZUFTYWd3T0N5QUVRUnAyUWFBVGFnd05DeUFFUVJ0MlFlQVRhZ3dNQ3lBRVFSdDJRWUFVYWd3TEN5QUVRUnAyUWFBVWFnd0tDeUFFUVJwMlFlQVVhZ3dKQ3lBRVFScDJRYUFWYWd3SUN5QUVRUnAyUWVBVmFnd0hDeUFFUVJ0MlFhQVdhZ3dHQ3lBRVFSeDJRY0FXYWd3RkN5QUVRUngyUWRBV2Fnd0VDeUFFUVIxMlFlQVdhZ3dEQ3lBRVFSNTJRZWdXYWd3Q0N5QUVRUUJJQkVCQkFTRUNEQVFMUVJFaEFpQUtRUU5HRFFOQkVpRUNJQVJCLy8vLy93TkxEUU5CSWlFQ0lBcEJBa1lOQTBFelFTTWdCRUdBZ0lDQUFra2JJUUlNQXdzZ0JFRVhka0hBRW1vZ0JFRWJka0dnRW1vZ0JFR0FnSUNBQVVrYkN5MEFBQ0lDRFFFTUJBdEJBVUVSSUFSQmYwb2JJUUlMSUFKQkJIWWhCeUFHSUFKQkQzRWlBMnNoQWlBRUlBTjBJUVFMSUFwQkFXc2lCUVJBQTBBQ1FDQUhCRUFnQWtFS1RRUkFJQUJCSUNBQ2F4QUxRWDlHQkVBTUJ3c2dBQkFRSVFSQklDRUNDd0pBQW44Q1FBSkFBa0FDUUFKQUFrQUNRQ0FIUVFGckRnWUdBQUVDQXdRRkN5QUVRUjUyUWU0V2Fnd0dDeUFFUVI1MlFmSVdhZ3dGQ3lBRVFSMTJRZllXYWd3RUN5QUVRUjEyUWY0V2Fnd0RDeUFFUVIxMlFZWVhhZ3dDQ3dKL1FmTUFJQVJCR1haQjhBQnhheUFFUVlDQWdJQUNUdzBBR2tIMEFDQUVRZi8vLy84QVN3MEFHa0dGQVNBRVFmLy8vejlMRFFBYVFaWUJJQVJCLy8vL0gwc05BQnBCcHdFZ0JFSC8vLzhQU3cwQUdrRzRBU0FFUWYvLy93ZExEUUFhUWNrQklBUkIvLy8vQTBzTkFCcEIyZ0VnQkVILy8vOEJTdzBBR2tFQVFlc0JJQVJCZ0lDQUFVa2JDeUlHUVFSMklBZE5EUUlNQ0FzZ0JFRWZka0hzRm1vTExRQUFJUVlMSUFaRkJFQU1CZ3NnQ1NBSVFRSjBhaUFHUVFSMklnTkJBV28yQWdBZ0J5QURheUVISUFJZ0JrRVBjU0lEYXlFQ0lBUWdBM1FoQkF3QkN5QUpJQWhCQW5ScVFRRTJBZ0JCQUNFSEN5QUlRUUZxSWdnZ0JVY05BQXNnQVNBSFFRSjBhaUFKUVVCcklBVkJBblJxS0FJQU5nSUFRUUVnQjNRaEJpQUZSUTBCSUFwQkFtc2hBeUFGUVFGeEJIOGdBU0FKSUFOQkFuUWlCR29vQWdBZ0Iyb2lCMEVDZEdvZ0NVRkFheUFFYWlnQ0FEWUNBRUVCSUFkMElBWnlJUVlnQ2tFRGF3VWdBd3NoQkNBRFJRMEJBMEFnQVNBSklBUkJBblFpQldvb0FnQWdCMm9pQTBFQ2RHb2dDVUZBYXlBRmFpZ0NBRFlDQUNBQklBa2dCRUVCYXlJRlFRSjBJZ3hxS0FJQUlBTnFJZ2RCQW5ScUlBbEJRR3NnREdvb0FnQTJBZ0JCQVNBRGRDQUdja0VCSUFkMGNpRUdJQVJCQW1zaEJDQUZEUUFMREFFTElBRWdCMEVDZEdvZ0NVRkFheUFGUVFKMGFpZ0NBRFlDQUVFQklBZDBJUVlMSUFCQklDQUNheEFMRFFBZ0JrRVFkQ0FLUVFSMGNpRUxDeUFKUVlBQmFpUUFJQXNMbXk0QkRIOGpBRUVRYXlJTUpBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBZ0FFSDBBVTBFUUVHNHdBQW9BZ0FpQlVFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQ0VFRGRpSUNkaUlCUVFOeEJFQWdBVUYvYzBFQmNTQUNhaUlEUVFOMElnRkI2TUFBYWlnQ0FDSUVRUWhxSVFBQ1FDQUVLQUlJSWdJZ0FVSGd3QUJxSWdGR0JFQkJ1TUFBSUFWQmZpQURkM0UyQWdBTUFRc2dBaUFCTmdJTUlBRWdBallDQ0FzZ0JDQURRUU4wSWdGQkEzSTJBZ1FnQVNBRWFpSUJJQUVvQWdSQkFYSTJBZ1FNRFFzZ0NFSEF3QUFvQWdBaUNrME5BU0FCQkVBQ1FFRUNJQUowSWdCQkFDQUFhM0lnQVNBQ2RIRWlBRUVBSUFCcmNVRUJheUlBSUFCQkRIWkJFSEVpQW5ZaUFVRUZka0VJY1NJQUlBSnlJQUVnQUhZaUFVRUNka0VFY1NJQWNpQUJJQUIySWdGQkFYWkJBbkVpQUhJZ0FTQUFkaUlCUVFGMlFRRnhJZ0J5SUFFZ0FIWnFJZ05CQTNRaUFFSG93QUJxS0FJQUlnUW9BZ2dpQVNBQVFlREFBR29pQUVZRVFFRzR3QUFnQlVGK0lBTjNjU0lGTmdJQURBRUxJQUVnQURZQ0RDQUFJQUUyQWdnTElBUkJDR29oQUNBRUlBaEJBM0kyQWdRZ0JDQUlhaUlDSUFOQkEzUWlBU0FJYXlJRFFRRnlOZ0lFSUFFZ0JHb2dBellDQUNBS0JFQWdDa0VEZGlJQlFRTjBRZURBQUdvaEIwSE13QUFvQWdBaEJBSi9JQVZCQVNBQmRDSUJjVVVFUUVHNHdBQWdBU0FGY2pZQ0FDQUhEQUVMSUFjb0FnZ0xJUUVnQnlBRU5nSUlJQUVnQkRZQ0RDQUVJQWMyQWd3Z0JDQUJOZ0lJQzBITXdBQWdBallDQUVIQXdBQWdBellDQUF3TkMwRzh3QUFvQWdBaUJrVU5BU0FHUVFBZ0JtdHhRUUZySWdBZ0FFRU1ka0VRY1NJQ2RpSUJRUVYyUVFoeElnQWdBbklnQVNBQWRpSUJRUUoyUVFSeElnQnlJQUVnQUhZaUFVRUJka0VDY1NJQWNpQUJJQUIySWdGQkFYWkJBWEVpQUhJZ0FTQUFkbXBCQW5SQjZNSUFhaWdDQUNJQktBSUVRWGh4SUFocklRTWdBU0VDQTBBQ1FDQUNLQUlRSWdCRkJFQWdBaWdDRkNJQVJRMEJDeUFBS0FJRVFYaHhJQWhySWdJZ0F5QUNJQU5KSWdJYklRTWdBQ0FCSUFJYklRRWdBQ0VDREFFTEN5QUJJQWhxSWdrZ0FVME5BaUFCS0FJWUlRc2dBU0FCS0FJTUlnUkhCRUFnQVNnQ0NDSUFRY2pBQUNnQ0FFa2FJQUFnQkRZQ0RDQUVJQUEyQWdnTURBc2dBVUVVYWlJQ0tBSUFJZ0JGQkVBZ0FTZ0NFQ0lBUlEwRUlBRkJFR29oQWdzRFFDQUNJUWNnQUNJRVFSUnFJZ0lvQWdBaUFBMEFJQVJCRUdvaEFpQUVLQUlRSWdBTkFBc2dCMEVBTmdJQURBc0xRWDhoQ0NBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFSVFiekFBQ2dDQUNJSlJRMEFRUjhoQlVFQUlBaHJJUU1DUUFKQUFrQUNmeUFJUWYvLy93ZE5CRUFnQUVFSWRpSUFJQUJCZ1A0L2FrRVFka0VJY1NJQ2RDSUFJQUJCZ09BZmFrRVFka0VFY1NJQmRDSUFJQUJCZ0lBUGFrRVFka0VDY1NJQWRFRVBkaUFCSUFKeUlBQnlheUlBUVFGMElBZ2dBRUVWYW5aQkFYRnlRUnhxSVFVTElBVkJBblJCNk1JQWFpZ0NBQ0lDUlFzRVFFRUFJUUFNQVF0QkFDRUFJQWhCQUVFWklBVkJBWFpySUFWQkgwWWJkQ0VCQTBBQ1FDQUNLQUlFUVhoeElBaHJJZ2NnQTA4TkFDQUNJUVFnQnlJRERRQkJBQ0VESUFJaEFBd0RDeUFBSUFJb0FoUWlCeUFISUFJZ0FVRWRka0VFY1dvb0FoQWlBa1liSUFBZ0J4c2hBQ0FCUVFGMElRRWdBZzBBQ3dzZ0FDQUVja1VFUUVFQ0lBVjBJZ0JCQUNBQWEzSWdDWEVpQUVVTkF5QUFRUUFnQUd0eFFRRnJJZ0FnQUVFTWRrRVFjU0lDZGlJQlFRVjJRUWh4SWdBZ0FuSWdBU0FBZGlJQlFRSjJRUVJ4SWdCeUlBRWdBSFlpQVVFQmRrRUNjU0lBY2lBQklBQjJJZ0ZCQVhaQkFYRWlBSElnQVNBQWRtcEJBblJCNk1JQWFpZ0NBQ0VBQ3lBQVJRMEJDd05BSUFBb0FnUkJlSEVnQ0dzaUFTQURTU0VDSUFFZ0F5QUNHeUVESUFBZ0JDQUNHeUVFSUFBb0FoQWlBUVIvSUFFRklBQW9BaFFMSWdBTkFBc0xJQVJGRFFBZ0EwSEF3QUFvQWdBZ0NHdFBEUUFnQkNBSWFpSUdJQVJORFFFZ0JDZ0NHQ0VGSUFRZ0JDZ0NEQ0lCUndSQUlBUW9BZ2dpQUVISXdBQW9BZ0JKR2lBQUlBRTJBZ3dnQVNBQU5nSUlEQW9MSUFSQkZHb2lBaWdDQUNJQVJRUkFJQVFvQWhBaUFFVU5CQ0FFUVJCcUlRSUxBMEFnQWlFSElBQWlBVUVVYWlJQ0tBSUFJZ0FOQUNBQlFSQnFJUUlnQVNnQ0VDSUFEUUFMSUFkQkFEWUNBQXdKQ3lBSVFjREFBQ2dDQUNJQ1RRUkFRY3pBQUNnQ0FDRURBa0FnQWlBSWF5SUJRUkJQQkVCQndNQUFJQUUyQWdCQnpNQUFJQU1nQ0dvaUFEWUNBQ0FBSUFGQkFYSTJBZ1FnQWlBRGFpQUJOZ0lBSUFNZ0NFRURjallDQkF3QkMwSE13QUJCQURZQ0FFSEF3QUJCQURZQ0FDQURJQUpCQTNJMkFnUWdBaUFEYWlJQUlBQW9BZ1JCQVhJMkFnUUxJQU5CQ0dvaEFBd0xDeUFJUWNUQUFDZ0NBQ0lHU1FSQVFjVEFBQ0FHSUFocklnRTJBZ0JCME1BQVFkREFBQ2dDQUNJQ0lBaHFJZ0EyQWdBZ0FDQUJRUUZ5TmdJRUlBSWdDRUVEY2pZQ0JDQUNRUWhxSVFBTUN3dEJBQ0VBSUFoQkwyb2lDUUovUVpERUFDZ0NBQVJBUVpqRUFDZ0NBQXdCQzBHY3hBQkNmemNDQUVHVXhBQkNnS0NBZ0lDQUJEY0NBRUdReEFBZ0RFRU1ha0Z3Y1VIWXF0V3FCWE0yQWdCQnBNUUFRUUEyQWdCQjlNTUFRUUEyQWdCQmdDQUxJZ0ZxSWdWQkFDQUJheUlIY1NJQ0lBaE5EUXBCOE1NQUtBSUFJZ1FFUUVIb3d3QW9BZ0FpQXlBQ2FpSUJJQU5ORFFzZ0FTQUVTdzBMQzBIMHd3QXRBQUJCQkhFTkJRSkFBa0JCME1BQUtBSUFJZ01FUUVINHd3QWhBQU5BSUFNZ0FDZ0NBQ0lCVHdSQUlBRWdBQ2dDQkdvZ0Ewc05Bd3NnQUNnQ0NDSUFEUUFMQzBFQUVCSWlBVUYvUmcwR0lBSWhCVUdVeEFBb0FnQWlBMEVCYXlJQUlBRnhCRUFnQWlBQmF5QUFJQUZxUVFBZ0EydHhhaUVGQ3lBRklBaE5EUVlnQlVIKy8vLy9CMHNOQmtId3d3QW9BZ0FpQkFSQVFlakRBQ2dDQUNJRElBVnFJZ0FnQTAwTkJ5QUFJQVJMRFFjTElBVVFFaUlBSUFGSERRRU1DQXNnQlNBR2F5QUhjU0lGUWY3Ly8vOEhTdzBGSUFVUUVpSUJJQUFvQWdBZ0FDZ0NCR3BHRFFRZ0FTRUFDd0pBSUFoQk1Hb2dCVTBOQUNBQVFYOUdEUUJCbU1RQUtBSUFJZ0VnQ1NBRmEycEJBQ0FCYTNFaUFVSCsvLy8vQjBzRVFDQUFJUUVNQ0FzZ0FSQVNRWDlIQkVBZ0FTQUZhaUVGSUFBaEFRd0lDMEVBSUFWckVCSWFEQVVMSUFBaUFVRi9SdzBHREFRTEFBdEJBQ0VFREFjTFFRQWhBUXdGQ3lBQlFYOUhEUUlMUWZUREFFSDB3d0FvQWdCQkJISTJBZ0FMSUFKQi92Ly8vd2RMRFFFZ0FoQVNJUUZCQUJBU0lRQWdBVUYvUmcwQklBQkJmMFlOQVNBQUlBRk5EUUVnQUNBQmF5SUZJQWhCS0dwTkRRRUxRZWpEQUVIb3d3QW9BZ0FnQldvaUFEWUNBRUhzd3dBb0FnQWdBRWtFUUVIc3d3QWdBRFlDQUFzQ1FBSkFBa0JCME1BQUtBSUFJZ2NFUUVINHd3QWhBQU5BSUFFZ0FDZ0NBQ0lESUFBb0FnUWlBbXBHRFFJZ0FDZ0NDQ0lBRFFBTERBSUxRY2pBQUNnQ0FDSUFRUUFnQUNBQlRSdEZCRUJCeU1BQUlBRTJBZ0FMUVFBaEFFSDh3d0FnQlRZQ0FFSDR3d0FnQVRZQ0FFSFl3QUJCZnpZQ0FFSGN3QUJCa01RQUtBSUFOZ0lBUVlURUFFRUFOZ0lBQTBBZ0FFRURkQ0lEUWVqQUFHb2dBMEhnd0FCcUlnSTJBZ0FnQTBIc3dBQnFJQUkyQWdBZ0FFRUJhaUlBUVNCSERRQUxRY1RBQUNBRlFTaHJJZ05CZUNBQmEwRUhjVUVBSUFGQkNHcEJCM0ViSWdCcklnSTJBZ0JCME1BQUlBQWdBV29pQURZQ0FDQUFJQUpCQVhJMkFnUWdBU0FEYWtFb05nSUVRZFRBQUVHZ3hBQW9BZ0EyQWdBTUFnc2dBU0FIVFEwQUlBQW9BZ3hCQ0hFTkFDQURJQWRMRFFBZ0FDQUNJQVZxTmdJRVFkREFBQ0FIUVhnZ0IydEJCM0ZCQUNBSFFRaHFRUWR4R3lJQWFpSUNOZ0lBUWNUQUFFSEV3QUFvQWdBZ0JXb2lBU0FBYXlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FCSUFkcVFTZzJBZ1JCMU1BQVFhREVBQ2dDQURZQ0FBd0JDMEhJd0FBb0FnQWdBVXNFUUVISXdBQWdBVFlDQUFzZ0FTQUZhaUVDUWZqREFDRUFBa0FDUUFKQUFrQUNRQUpBQTBBZ0FpQUFLQUlBUndSQUlBQW9BZ2dpQUEwQkRBSUxDeUFBTFFBTVFRaHhSUTBCQzBINHd3QWhBQU5BSUFjZ0FDZ0NBQ0lDVHdSQUlBSWdBQ2dDQkdvaUJDQUhTdzBEQ3lBQUtBSUlJUUFNQUFzQUN5QUFJQUUyQWdBZ0FDQUFLQUlFSUFWcU5nSUVJQUZCZUNBQmEwRUhjVUVBSUFGQkNHcEJCM0ViYWlJSklBaEJBM0kyQWdRZ0FrRjRJQUpyUVFkeFFRQWdBa0VJYWtFSGNSdHFJZ1VnQ0NBSmFpSUdheUVDSUFVZ0IwWUVRRUhRd0FBZ0JqWUNBRUhFd0FCQnhNQUFLQUlBSUFKcUlnQTJBZ0FnQmlBQVFRRnlOZ0lFREFNTElBVkJ6TUFBS0FJQVJnUkFRY3pBQUNBR05nSUFRY0RBQUVIQXdBQW9BZ0FnQW1vaUFEWUNBQ0FHSUFCQkFYSTJBZ1FnQUNBR2FpQUFOZ0lBREFNTElBVW9BZ1FpQUVFRGNVRUJSZ1JBSUFCQmVIRWhCd0pBSUFCQi93Rk5CRUFnQlNnQ0NDSURJQUJCQTNZaUFFRURkRUhnd0FCcVJob2dBeUFGS0FJTUlnRkdCRUJCdU1BQVFiakFBQ2dDQUVGK0lBQjNjVFlDQUF3Q0N5QURJQUUyQWd3Z0FTQUROZ0lJREFFTElBVW9BaGdoQ0FKQUlBVWdCU2dDRENJQlJ3UkFJQVVvQWdnaUFDQUJOZ0lNSUFFZ0FEWUNDQXdCQ3dKQUlBVkJGR29pQUNnQ0FDSUREUUFnQlVFUWFpSUFLQUlBSWdNTkFFRUFJUUVNQVFzRFFDQUFJUVFnQXlJQlFSUnFJZ0FvQWdBaUF3MEFJQUZCRUdvaEFDQUJLQUlRSWdNTkFBc2dCRUVBTmdJQUN5QUlSUTBBQWtBZ0JTQUZLQUljSWdOQkFuUkI2TUlBYWlJQUtBSUFSZ1JBSUFBZ0FUWUNBQ0FCRFFGQnZNQUFRYnpBQUNnQ0FFRitJQU4zY1RZQ0FBd0NDeUFJUVJCQkZDQUlLQUlRSUFWR0cyb2dBVFlDQUNBQlJRMEJDeUFCSUFnMkFoZ2dCU2dDRUNJQUJFQWdBU0FBTmdJUUlBQWdBVFlDR0FzZ0JTZ0NGQ0lBUlEwQUlBRWdBRFlDRkNBQUlBRTJBaGdMSUFVZ0Iyb2hCU0FDSUFkcUlRSUxJQVVnQlNnQ0JFRitjVFlDQkNBR0lBSkJBWEkyQWdRZ0FpQUdhaUFDTmdJQUlBSkIvd0ZOQkVBZ0FrRURkaUlBUVFOMFFlREFBR29oQWdKL1FiakFBQ2dDQUNJQlFRRWdBSFFpQUhGRkJFQkJ1TUFBSUFBZ0FYSTJBZ0FnQWd3QkN5QUNLQUlJQ3lFQUlBSWdCallDQ0NBQUlBWTJBZ3dnQmlBQ05nSU1JQVlnQURZQ0NBd0RDMEVmSVFBZ0FrSC8vLzhIVFFSQUlBSkJDSFlpQUNBQVFZRCtQMnBCRUhaQkNIRWlBM1FpQUNBQVFZRGdIMnBCRUhaQkJIRWlBWFFpQUNBQVFZQ0FEMnBCRUhaQkFuRWlBSFJCRDNZZ0FTQURjaUFBY21zaUFFRUJkQ0FDSUFCQkZXcDJRUUZ4Y2tFY2FpRUFDeUFHSUFBMkFod2dCa0lBTndJUUlBQkJBblJCNk1JQWFpRUVBa0JCdk1BQUtBSUFJZ05CQVNBQWRDSUJjVVVFUUVHOHdBQWdBU0FEY2pZQ0FDQUVJQVkyQWdBZ0JpQUVOZ0lZREFFTElBSkJBRUVaSUFCQkFYWnJJQUJCSDBZYmRDRUFJQVFvQWdBaEFRTkFJQUVpQXlnQ0JFRjRjU0FDUmcwRElBQkJIWFloQVNBQVFRRjBJUUFnQXlBQlFRUnhhaUlFS0FJUUlnRU5BQXNnQkNBR05nSVFJQVlnQXpZQ0dBc2dCaUFHTmdJTUlBWWdCallDQ0F3Q0MwSEV3QUFnQlVFb2F5SURRWGdnQVd0QkIzRkJBQ0FCUVFocVFRZHhHeUlBYXlJQ05nSUFRZERBQUNBQUlBRnFJZ0EyQWdBZ0FDQUNRUUZ5TmdJRUlBRWdBMnBCS0RZQ0JFSFV3QUJCb01RQUtBSUFOZ0lBSUFjZ0JFRW5JQVJyUVFkeFFRQWdCRUVuYTBFSGNSdHFRUzlySWdBZ0FDQUhRUkJxU1JzaUFrRWJOZ0lFSUFKQmdNUUFLUUlBTndJUUlBSkIrTU1BS1FJQU53SUlRWURFQUNBQ1FRaHFOZ0lBUWZ6REFDQUZOZ0lBUWZqREFDQUJOZ0lBUVlURUFFRUFOZ0lBSUFKQkdHb2hBQU5BSUFCQkJ6WUNCQ0FBUVFocUlRRWdBRUVFYWlFQUlBRWdCRWtOQUFzZ0FpQUhSZzBESUFJZ0FpZ0NCRUYrY1RZQ0JDQUhJQUlnQjJzaUJFRUJjallDQkNBQ0lBUTJBZ0FnQkVIL0FVMEVRQ0FFUVFOMklnQkJBM1JCNE1BQWFpRUNBbjlCdU1BQUtBSUFJZ0ZCQVNBQWRDSUFjVVVFUUVHNHdBQWdBQ0FCY2pZQ0FDQUNEQUVMSUFJb0FnZ0xJUUFnQWlBSE5nSUlJQUFnQnpZQ0RDQUhJQUkyQWd3Z0J5QUFOZ0lJREFRTFFSOGhBQ0FIUWdBM0FoQWdCRUgvLy84SFRRUkFJQVJCQ0hZaUFDQUFRWUQrUDJwQkVIWkJDSEVpQW5RaUFDQUFRWURnSDJwQkVIWkJCSEVpQVhRaUFDQUFRWUNBRDJwQkVIWkJBbkVpQUhSQkQzWWdBU0FDY2lBQWNtc2lBRUVCZENBRUlBQkJGV3AyUVFGeGNrRWNhaUVBQ3lBSElBQTJBaHdnQUVFQ2RFSG93Z0JxSVFNQ1FFRzh3QUFvQWdBaUFrRUJJQUIwSWdGeFJRUkFRYnpBQUNBQklBSnlOZ0lBSUFNZ0J6WUNBQ0FISUFNMkFoZ01BUXNnQkVFQVFSa2dBRUVCZG1zZ0FFRWZSaHQwSVFBZ0F5Z0NBQ0VCQTBBZ0FTSUNLQUlFUVhoeElBUkdEUVFnQUVFZGRpRUJJQUJCQVhRaEFDQUNJQUZCQkhGcUlnTW9BaEFpQVEwQUN5QURJQWMyQWhBZ0J5QUNOZ0lZQ3lBSElBYzJBZ3dnQnlBSE5nSUlEQU1MSUFNb0FnZ2lBQ0FHTmdJTUlBTWdCallDQ0NBR1FRQTJBaGdnQmlBRE5nSU1JQVlnQURZQ0NBc2dDVUVJYWlFQURBVUxJQUlvQWdnaUFDQUhOZ0lNSUFJZ0J6WUNDQ0FIUVFBMkFoZ2dCeUFDTmdJTUlBY2dBRFlDQ0F0QnhNQUFLQUlBSWdBZ0NFME5BRUhFd0FBZ0FDQUlheUlCTmdJQVFkREFBRUhRd0FBb0FnQWlBaUFJYWlJQU5nSUFJQUFnQVVFQmNqWUNCQ0FDSUFoQkEzSTJBZ1FnQWtFSWFpRUFEQU1MUWJUQUFFRXdOZ0lBUVFBaEFBd0NDd0pBSUFWRkRRQUNRQ0FFS0FJY0lnSkJBblJCNk1JQWFpSUFLQUlBSUFSR0JFQWdBQ0FCTmdJQUlBRU5BVUc4d0FBZ0NVRitJQUozY1NJSk5nSUFEQUlMSUFWQkVFRVVJQVVvQWhBZ0JFWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JUWUNHQ0FFS0FJUUlnQUVRQ0FCSUFBMkFoQWdBQ0FCTmdJWUN5QUVLQUlVSWdCRkRRQWdBU0FBTmdJVUlBQWdBVFlDR0FzQ1FDQURRUTlOQkVBZ0JDQURJQWhxSWdCQkEzSTJBZ1FnQUNBRWFpSUFJQUFvQWdSQkFYSTJBZ1FNQVFzZ0JDQUlRUU55TmdJRUlBWWdBMEVCY2pZQ0JDQURJQVpxSUFNMkFnQWdBMEgvQVUwRVFDQURRUU4ySWdCQkEzUkI0TUFBYWlFQ0FuOUJ1TUFBS0FJQUlnRkJBU0FBZENJQWNVVUVRRUc0d0FBZ0FDQUJjallDQUNBQ0RBRUxJQUlvQWdnTElRQWdBaUFHTmdJSUlBQWdCallDRENBR0lBSTJBZ3dnQmlBQU5nSUlEQUVMUVI4aEFDQURRZi8vL3dkTkJFQWdBMEVJZGlJQUlBQkJnUDQvYWtFUWRrRUljU0lDZENJQUlBQkJnT0FmYWtFUWRrRUVjU0lCZENJQUlBQkJnSUFQYWtFUWRrRUNjU0lBZEVFUGRpQUJJQUp5SUFCeWF5SUFRUUYwSUFNZ0FFRVZhblpCQVhGeVFSeHFJUUFMSUFZZ0FEWUNIQ0FHUWdBM0FoQWdBRUVDZEVIb3dnQnFJUUlDUUFKQUlBbEJBU0FBZENJQmNVVUVRRUc4d0FBZ0FTQUpjallDQUNBQ0lBWTJBZ0FnQmlBQ05nSVlEQUVMSUFOQkFFRVpJQUJCQVhacklBQkJIMFliZENFQUlBSW9BZ0FoQ0FOQUlBZ2lBU2dDQkVGNGNTQURSZzBDSUFCQkhYWWhBaUFBUVFGMElRQWdBU0FDUVFSeGFpSUNLQUlRSWdnTkFBc2dBaUFHTmdJUUlBWWdBVFlDR0FzZ0JpQUdOZ0lNSUFZZ0JqWUNDQXdCQ3lBQktBSUlJZ0FnQmpZQ0RDQUJJQVkyQWdnZ0JrRUFOZ0lZSUFZZ0FUWUNEQ0FHSUFBMkFnZ0xJQVJCQ0dvaEFBd0JDd0pBSUF0RkRRQUNRQ0FCS0FJY0lnSkJBblJCNk1JQWFpSUFLQUlBSUFGR0JFQWdBQ0FFTmdJQUlBUU5BVUc4d0FBZ0JrRitJQUozY1RZQ0FBd0NDeUFMUVJCQkZDQUxLQUlRSUFGR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFzMkFoZ2dBU2dDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FTZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFFZ0F5QUlhaUlBUVFOeU5nSUVJQUFnQVdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFFZ0NFRURjallDQkNBSklBTkJBWEkyQWdRZ0F5QUphaUFETmdJQUlBb0VRQ0FLUVFOMklnQkJBM1JCNE1BQWFpRUVRY3pBQUNnQ0FDRUNBbjlCQVNBQWRDSUFJQVZ4UlFSQVFiakFBQ0FBSUFWeU5nSUFJQVFNQVFzZ0JDZ0NDQXNoQUNBRUlBSTJBZ2dnQUNBQ05nSU1JQUlnQkRZQ0RDQUNJQUEyQWdnTFFjekFBQ0FKTmdJQVFjREFBQ0FETmdJQUN5QUJRUWhxSVFBTElBeEJFR29rQUNBQUMwUUJBWDhnQUNBQUtBSVFJQUZxSWdFMkFoQWdBQ0FCUVFkeE5nSUlRWDhoQWlBQUtBSU1RUU4wSUFGUEJIOGdBQ0FBS0FJQUlBRkJBM1pxTmdJRVFRQUZRWDhMQyswVkFROS9JQUFnQkVFQUlBWnJJQUlnQWlBR2FrRUFTQnNpQWlBQ0lBUktHeUlOYWlBQUlBMUJBRW9iSWdJZ0JVRUFJQWRySUFNZ0F5QUhha0VBU0JzaUFDQUFJQVZLR3lJQUlBUnNhaUFDSUFCQkFFb2JJUWtnQjBFQUlBQnJJQUJCSDNWeElnb2dBQ0FIYWlJVUlBVnJJaE5CQUNBRklCUklHeUlXYW1zaEVpQUdRUUFnRFdzZ0RVRWZkWEVpRENBR0lBMXFJZzhnQkd0QkFDQUVJQTlJSWdJYklnNXFheUVMQWtBZ0RVRUFTQ0FDY2lJWFJRUkFBa0FnQ2tVTkFDQUtRUU54SWdNRVFBTkFJQXBCQVdzaENpQUJJQWtnQ3hBSUlBaHFJUUVnQTBFQmF5SUREUUFMQ3lBQVFYOXpJQUJCQUNBQVFRQktHMnBCQTBrTkFBTkFJQUVnQ1NBTEVBZ2dDR29nQ1NBTEVBZ2dDR29nQ1NBTEVBZ2dDR29nQ1NBTEVBZ2dDR29oQVNBS1FRUnJJZ29OQUFzTElCSkZEUUVnRWtFRGNTSURCRUFEUUNBU1FRRnJJUklnQVNBSklBc1FDQ0FJYWlFQklBUWdDV29oQ1NBRFFRRnJJZ01OQUFzTElBVWdCMm9nQUdvZ0JTQVVJQVVnRkVvYlFYOXphaUFBUVFBZ0FFRUFTaHRyUVFOSkRRRURRQ0FCSUFrZ0N4QUlJQWhxSUFRZ0NXb2lBQ0FMRUFnZ0NHb2dBQ0FFYWlJQUlBc1FDQ0FJYWlBQUlBUnFJZ0FnQ3hBSUlBaHFJUUVnQUNBRWFpRUpJQkpCQkdzaUVnMEFDd3dCQ3dKQUlBcEZEUUFDUUNBTFJRUkFJQWxCQVdzaEFpQU1SUVJBSUE1RkRRSWdBRUYvY3lBQVFRQWdBRUVBU2h0cUlRTWdDa0VEY1NJQUJFQURRQ0FLUVFGcklRb2dBU0FDTFFBQUlBNFFCQ0FJYWlFQklBQkJBV3NpQUEwQUN3c2dBMEVEU1EwREEwQWdBU0FDTFFBQUlBNFFCQ0FJYWlBQ0xRQUFJQTRRQkNBSWFpQUNMUUFBSUE0UUJDQUlhaUFDTFFBQUlBNFFCQ0FJYWlFQklBcEJCR3NpQ2cwQUN3d0RDeUFPQkVBZ0FFRi9jeUFBUVFBZ0FFRUFTaHRxSVFNZ0NrRURjU0lBQkVBRFFDQUJJQWt0QUFBZ0RCQUVJZ0VnREdvZ0FpMEFBQ0FPRUFRYUlBcEJBV3NoQ2lBQklBaHFJUUVnQUVFQmF5SUFEUUFMQ3lBRFFRTkpEUU1EUUNBQklBa3RBQUFnREJBRUlnQWdER29nQWkwQUFDQU9FQVFhSUFBZ0NHb2dDUzBBQUNBTUVBUWlBQ0FNYWlBQ0xRQUFJQTRRQkJvZ0FDQUlhaUFKTFFBQUlBd1FCQ0lBSUF4cUlBSXRBQUFnRGhBRUdpQUFJQWhxSUFrdEFBQWdEQkFFSWdBZ0RHb2dBaTBBQUNBT0VBUWFJQUFnQ0dvaEFTQUtRUVJySWdvTkFBc01Bd3NnQ2tFRGNTSURCRUFEUUNBS1FRRnJJUW9nQVNBSkxRQUFJQXdRQkNBSWFpRUJJQU5CQVdzaUF3MEFDd3NnQUVGL2N5QUFRUUFnQUVFQVNodHFRUU5KRFFJRFFDQUJJQWt0QUFBZ0RCQUVJQWhxSUFrdEFBQWdEQkFFSUFocUlBa3RBQUFnREJBRUlBaHFJQWt0QUFBZ0RCQUVJQWhxSVFFZ0NrRUVheUlLRFFBTERBSUxJQXhGQkVBZ0RnUkFJQXRCQjNFaEVDQUVJQVpxSUExcUlBUWdEeUFFSUE5S0cwRi9jMm9nRFVFQUlBMUJBRW9iYTBFSFNTRVZBMEFnQ3lFSElBRWhBeUFKSVFJZ0VDRVJJQkFFUUFOQUlBTWdBaUlBTFFBQU9nQUFJQWRCQVdzaEJ5QURRUUZxSVFNZ0FFRUJhaUVDSUJGQkFXc2lFUTBBQ3dzZ0ZVVUVRQU5BSUFNZ0FpSUFMUUFBT2dBQUlBTWdBQzBBQVRvQUFTQURJQUF0QUFJNkFBSWdBeUFBTFFBRE9nQURJQU1nQUMwQUJEb0FCQ0FESUFBdEFBVTZBQVVnQXlBQUxRQUdPZ0FHSUFNZ0FDMEFCem9BQnlBRFFRaHFJUU1nQUVFSWFpRUNJQWRCQ0dzaUJ3MEFDeUFBUVFkcUlRQUxJQU1nQUMwQUFDQU9FQVFhSUFFZ0NHb2hBU0FLUVFGcklnb05BQXNNQXdzZ0MwRUhjU0VRSUFRZ0Jtb2dEV29nQkNBUElBUWdEMG9iUVg5emFpQU5RUUFnRFVFQVNodHJRUWRKSVJFRFFDQUxJUWNnQVNFRElBa2hBQ0FRSWdJRVFBTkFJQU1nQUMwQUFEb0FBQ0FIUVFGcklRY2dBMEVCYWlFRElBQkJBV29oQUNBQ1FRRnJJZ0lOQUFzTElCRkZCRUFEUUNBRElBQXRBQUE2QUFBZ0F5QUFMUUFCT2dBQklBTWdBQzBBQWpvQUFpQURJQUF0QUFNNkFBTWdBeUFBTFFBRU9nQUVJQU1nQUMwQUJUb0FCU0FESUFBdEFBWTZBQVlnQXlBQUxRQUhPZ0FISUFOQkNHb2hBeUFBUVFocUlRQWdCMEVJYXlJSERRQUxDeUFCSUFocUlRRWdDa0VCYXlJS0RRQUxEQUlMSUE0RVFDQUxRUWR4SVJBZ0JDQUdhaUFOYWlBRUlBOGdCQ0FQU2h0QmYzTnFJQTFCQUNBTlFRQktHMnRCQjBraEVRTkFJQUVnQ1MwQUFDQU1FQVFpRlNBTWFpRURJQXNoQnlBSklRSWdFQ0lCQkVBRFFDQURJQUlpQUMwQUFEb0FBQ0FIUVFGcklRY2dBMEVCYWlFRElBQkJBV29oQWlBQlFRRnJJZ0VOQUFzTElCRkZCRUFEUUNBRElBSWlBQzBBQURvQUFDQURJQUF0QUFFNkFBRWdBeUFBTFFBQ09nQUNJQU1nQUMwQUF6b0FBeUFESUFBdEFBUTZBQVFnQXlBQUxRQUZPZ0FGSUFNZ0FDMEFCam9BQmlBRElBQXRBQWM2QUFjZ0EwRUlhaUVESUFCQkNHb2hBaUFIUVFocklnY05BQXNnQUVFSGFpRUFDeUFESUFBdEFBQWdEaEFFR2lBSUlCVnFJUUVnQ2tFQmF5SUtEUUFMREFJTElBdEJCM0VoRUNBRUlBWnFJQTFxSUFRZ0R5QUVJQTlLRzBGL2Myb2dEVUVBSUExQkFFb2JhMEVIU1NFUkEwQWdBU0FKTFFBQUlBd1FCQ0lCSUF4cUlRTWdDeUVISUFraEFDQVFJZ0lFUUFOQUlBTWdBQzBBQURvQUFDQUhRUUZySVFjZ0EwRUJhaUVESUFCQkFXb2hBQ0FDUVFGcklnSU5BQXNMSUJGRkJFQURRQ0FESUFBdEFBQTZBQUFnQXlBQUxRQUJPZ0FCSUFNZ0FDMEFBam9BQWlBRElBQXRBQU02QUFNZ0F5QUFMUUFFT2dBRUlBTWdBQzBBQlRvQUJTQURJQUF0QUFZNkFBWWdBeUFBTFFBSE9nQUhJQU5CQ0dvaEF5QUFRUWhxSVFBZ0IwRUlheUlIRFFBTEN5QUJJQWhxSVFFZ0NrRUJheUlLRFFBTERBRUxJQUVnQ0NBS2JHb2hBUXNnRWtVTkFDQUxRUWR4SVJBZ0JDQUdhaUFOYWlBRUlBOGdCQ0FQU2h0QmYzTnFJQTFCQUNBTlFRQktHMnRCQjBraEVRTkFJQUVoQXlBTUJFQWdBU0FKTFFBQUlBd1FCQ0FNYWlFREN3SkFJQXRGQkVBZ0NTRUFEQUVMSUFzaEJ5QUpJUUFnRUNJQ0JFQURRQ0FESUFBdEFBQTZBQUFnQjBFQmF5RUhJQU5CQVdvaEF5QUFRUUZxSVFBZ0FrRUJheUlDRFFBTEN5QVJEUUFEUUNBRElBQXRBQUE2QUFBZ0F5QUFMUUFCT2dBQklBTWdBQzBBQWpvQUFpQURJQUF0QUFNNkFBTWdBeUFBTFFBRU9nQUVJQU1nQUMwQUJUb0FCU0FESUFBdEFBWTZBQVlnQXlBQUxRQUhPZ0FISUFOQkNHb2hBeUFBUVFocUlRQWdCMEVJYXlJSERRQUxDeUFPQkVBZ0F5QUFRUUZyTFFBQUlBNFFCQm9MSUFFZ0NHb2hBU0FFSUFscUlRa2dFa0VCYXlJU0RRQUxDd0pBSUJaRkRRQWdDU0FFYXlFSklCZEZCRUFnRkNBRmEwRURjU0lEQkVBRFFDQVRRUUZySVJNZ0FTQUpJQXNRQ0NBSWFpRUJJQU5CQVdzaUF3MEFDd3NnRkNBRlFYOXpha0VEU1EwQkEwQWdBU0FKSUFzUUNDQUlhaUFKSUFzUUNDQUlhaUFKSUFzUUNDQUlhaUFKSUFzUUNDQUlhaUVCSUJOQkJHc2lFdzBBQ3d3QkN5QUxRUWR4SVFVZ0JDQUdhaUFOYWlBRUlBOGdCQ0FQU2h0QmYzTnFJQTFCQUNBTlFRQktHMnRCQjBraEJBTkFJQUVoQXlBTUJFQWdBU0FKTFFBQUlBd1FCQ0FNYWlFREN3SkFJQXRGQkVBZ0NTRUFEQUVMSUFzaEJ5QUpJUUFnQlNJQ0JFQURRQ0FESUFBdEFBQTZBQUFnQjBFQmF5RUhJQU5CQVdvaEF5QUFRUUZxSVFBZ0FrRUJheUlDRFFBTEN5QUVEUUFEUUNBRElBQXRBQUE2QUFBZ0F5QUFMUUFCT2dBQklBTWdBQzBBQWpvQUFpQURJQUF0QUFNNkFBTWdBeUFBTFFBRU9nQUVJQU1nQUMwQUJUb0FCU0FESUFBdEFBWTZBQVlnQXlBQUxRQUhPZ0FISUFOQkNHb2hBeUFBUVFocUlRQWdCMEVJYXlJSERRQUxDeUFPQkVBZ0F5QUFRUUZyTFFBQUlBNFFCQm9MSUFFZ0NHb2hBU0FUUVFGckloTU5BQXNMQytrQ0FRTi9JQUZCQTNSQjhEWnFJZ01vQWdBaEJTQURMUUFFSVFNZ0FVRURkRUd3TldvaUFTMEFCQ0VFQWtBZ0FTZ0NBRUVFUmdSQUlBSWdCRUVCZEdvdUFRQWhBU0FGUVFSR0JFQWdBU0FDSUFOQkFYUnFMZ0VBYWtFQmFrRUJkUThMQW44Z0FDZ0N6QUVpQWdSQUlBQW9BZ1FnQWlnQ0JFWU1BUXRCQUF0RkRRRWdBU0FBS0FMTUFTQURRUUYwYWk0QkhHcEJBV3BCQVhVUEN5QUZRUVJHQkVBZ0FpQURRUUYwYWk0QkFDRUJBbjhnQUNnQ3lBRWlBZ1JBSUFBb0FnUWdBaWdDQkVZTUFRdEJBQXRGRFFFZ0FTQUFLQUxJQVNBRVFRRjBhaTRCSEdwQkFXcEJBWFVQQ3dKL0lBQW9Bc2dCSWdFRVFDQUFLQUlFSUFFb0FnUkdEQUVMUVFBTElnSUVmeUFBS0FMSUFTQUVRUUYwYWk0QkhBVkJBQXNoQVFKL0lBQW9Bc3dCSWdRRVFDQUFLQUlFSUFRb0FnUkdEQUVMUVFBTFJRMEFJQUFvQXN3QklBTkJBWFJxTGdFY0lRQWdBa1VFUUNBQUR3c2dBQ0FCYWtFQmFrRUJkU0VCQ3lBQkMvSURBUU4vSUFFb0FnQWlBMEgvLy84SFJ3UkFJQUVvQWdRaEJDQUFJQUlnQWtFRGNTQUNRUkJKSWdJYlFRSjBJZ1ZCOENscUtBSUFRUkJCQ0NBQ0d5SUNiR29nQlVHd0tXb29BZ0JxSWdBZ0F5QUFMUUFBYWtHd0xtb3RBQUE2QUFBZ0FTZ0NDQ0VESUFBZ0JDQUFMUUFCYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VFSUFBZ0F5QUFMUUFDYWtHd0xtb3RBQUE2QUFJZ0FDQUVJQUF0QUFOcVFiQXVhaTBBQURvQUF5QUJLQUlVSVFNZ0FDQUNhaUlBSUFFb0FoQWdBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BaGdoQkNBQUlBTWdBQzBBQVdwQnNDNXFMUUFBT2dBQklBRW9BaHdoQXlBQUlBUWdBQzBBQW1wQnNDNXFMUUFBT2dBQ0lBQWdBeUFBTFFBRGFrR3dMbW90QUFBNkFBTWdBU2dDSkNFRElBQWdBbW9pQUNBQktBSWdJQUF0QUFCcVFiQXVhaTBBQURvQUFDQUJLQUlvSVFRZ0FDQURJQUF0QUFGcVFiQXVhaTBBQURvQUFTQUJLQUlzSVFNZ0FDQUVJQUF0QUFKcVFiQXVhaTBBQURvQUFpQUFJQU1nQUMwQUEycEJzQzVxTFFBQU9nQURJQUVvQWpRaEF5QUFJQUpxSWdBZ0FTZ0NNQ0FBTFFBQWFrR3dMbW90QUFBNkFBQWdBU2dDT0NFQ0lBQWdBeUFBTFFBQmFrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQWdBaUFBTFFBQ2FrR3dMbW90QUFBNkFBSWdBQ0FCSUFBdEFBTnFRYkF1YWkwQUFEb0FBd3NMOENVQkZIOGdBeUFGYWlJYklBRXVBUUFpRGtFQ2RXb2hEU0FFSUFacUlod2dBUzRCQWlJS1FRSjFhaUVMSUFJb0FnaEJCSFFoQXlBQ0tBSUVRUVIwSVFRZ0FDQUdRUVIwYWlBRmFpRUpBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQU9RUU54UVFSMElBcEJBM0ZCQW5SeVFkQTdhaWdDQUE0UEFBRUNBd1FGQmdjSUNRb0xEQTBPRHdzZ0FpZ0NBQ0FKSUEwZ0N5QUVJQU1nQnlBSVFSQVFEQXdQQ3lBQ0tBSUFJQWtnRFNBTFFRSnJJQVFnQXlBSElBaEJBQkFqREE0TElBSW9BZ0FoRGlBTFFRSnJJUXdnQXlFS0lBY2hBeU1BUWNBRGF5SUxKQUFDUUFKQUlBMUJBRWdOQUNBTVFRQklEUUFnQXlBTmFpQUVTdzBBSUFnZ0RHcEJCV29nQ2tzTkFDQUVJQXhzSUExcUlROE1BUXNnRGlBTElBMGdEQ0FFSUFvZ0F5QUlRUVZxSUFNUURDQUxJUTRnQXlFRUN3SkFJQWhCQW5ZaUZFVU5BQ0FEUlEwQVFjQUFJQU5ySVJZZ0JFRUJkQ0VTSUFSQkFuUWdBMnNoRlVFQUlBUnJJaGRCQVhRaEdDQU9JQTlxSUFScUlnNGdCRUVGYkdvaENnTkFJQU1oRFFOQUlBa2dEaUFTYWkwQUFDSU1JQW9nRW1vdEFBQWdCQ0FLYWkwQUFDSVpJQW9nR0dvdEFBQWlEMm9pRUdzZ0VFRUNkR3RxSUFvdEFBQWlFeUFLSUJkcUxRQUFJaEJxUVJSc2FrRVFha0VGZFVHd0xtb3RBQUE2QURBZ0NTQUVJQTVxTFFBQUloRWdHU0FQSUJCcUlocEJCSFJxSUF3Z0Uyb2lHV3RxSUJvZ0dXdEJBblJxUVJCcVFRVjFRYkF1YWkwQUFEb0FJQ0FKSUE0dEFBQWlHU0FUSUF3Z0Qyb2lHa0VFZEdvZ0VDQVJhaUlUYTJvZ0dpQVRhMEVDZEdwQkVHcEJCWFZCc0M1cUxRQUFPZ0FRSUFrZ0RpQVhhaTBBQUNBUUlBd2dFV29pREVFRWRHb2dEeUFaYWlJUGEyb2dEQ0FQYTBFQ2RHcEJFR3BCQlhWQnNDNXFMUUFBT2dBQUlBNUJBV29oRGlBSlFRRnFJUWtnQ2tFQmFpRUtJQTFCQVdzaURRMEFDeUFKSUJacUlRa2dDaUFWYWlFS0lBNGdGV29oRGlBVVFRRnJJaFFOQUFzTElBdEJ3QU5xSkFBTURRc2dBaWdDQUNBSklBMGdDMEVDYXlBRUlBTWdCeUFJUVFFUUl3d01DeUFDS0FJQUlBa2dEVUVDYXlBTElBUWdBeUFISUFoQkFCQWlEQXNMSUFJb0FnQWdDU0FOUVFKcklBdEJBbXNnQkNBRElBY2dDRUVBRUJjTUNnc2dBaWdDQUNBSklBMUJBbXNnQzBFQ2F5QUVJQU1nQnlBSVFRQVFJQXdKQ3lBQ0tBSUFJQWtnRFVFQ2F5QUxRUUpySUFRZ0F5QUhJQWhCQWhBWERBZ0xJQUlvQWdBaERpQUpJUW9nQ3lFSklBUWhDeUFESVJBZ0NDRU1RUUFoQkNNQVFjQURheUlQSkFBZ0IwRUZhaUVEQWtBQ1FDQU5RUUpySWhOQkFFZ05BQ0FKSUF4cUlCQkxEUUFnQ1VFQVNBMEFJQU1nRTJvZ0Mwc05BQ0FMSVFNZ0NTRUVEQUVMSUE0Z0R5QVRJQWtnQ3lBUUlBTWdEQ0FERUF3Z0R5RU9RUUFoRXdzQ1FDQU1SUTBBSUFkQkFuWWlGVVVOQUVFUUlBZHJJUkVnQXlBSGF5RVdJQTRnQXlBRWJDQVRhbXBCQldvaEV3TkFJQk5CQVdzdEFBQWhBeUFUUVFKckxRQUFJUWtnRTBFRGF5MEFBQ0VPSUJOQkJHc3RBQUFoQkNBVFFRVnJMUUFBSVJBZ0ZTRVVBMEFnQ2lBVExRQUFJZ3NnRUNBSklBNXFJZzFCQkhScUlBTWdCR29pRUdzZ0RTQVFhMEVDZEdwcVFSQnFRUVYxUWJBdWFpMEFBRG9BQUNBS0lCTXRBQUVpRFNBRUlBTWdDV29pRUVFRWRHb2dDeUFPYWlJRWEyb2dFQ0FFYTBFQ2RHcEJFR3BCQlhWQnNDNXFMUUFBT2dBQklBb2dFeTBBQWlJU0lBNGdBeUFMYWlJRVFRUjBhaUFKSUExcUlnNXJhaUFFSUE1clFRSjBha0VRYWtFRmRVR3dMbW90QUFBNkFBSWdDaUFUTFFBREloY2dDU0FMSUExcUlnUkJCSFJxSUFNZ0Vtb2lDV3RxSUFRZ0NXdEJBblJxUVJCcVFRVjFRYkF1YWkwQUFEb0FBeUFLUVFScUlRb2dFMEVFYWlFVElBTWhFQ0FMSVFRZ0RTRU9JQkloQ1NBWElRTWdGRUVCYXlJVURRQUxJQW9nRVdvaENpQVRJQlpxSVJNZ0RFRUJheUlNRFFBTEN5QVBRY0FEYWlRQURBY0xJQUlvQWdBZ0NTQU5RUUpySUF0QkFtc2dCQ0FESUFjZ0NFRUFFQ0VNQmdzZ0FpZ0NBQ0VPSUFraENpQUxRUUpySVE4Z0JDRUxJQU1oRUVFQUlRa2pBRUdBRG1zaURDUUFJQWNpQkVFRmFpRURBa0FDUUNBTlFRSnJJaEZCQUVnTkFDQVBRUUJJRFFBZ0F5QVJhaUFMU3cwQUlBaEJCV29pRmlBUGFpQVFTdzBBSUFzaEF5QVBJUWtNQVFzZ0RpQU1RY0FLYWlBUklBOGdDeUFRSUFNZ0NFRUZhaUlXSUFNUURDQU1RY0FLYWlFT1FRQWhFUXNDUUNBV1JRMEFJQVJCQW5ZaUYwVU5BQ0FESUFScklSZ2dEaUFESUFsc0lCRnFha0VGYWlFUklBd2hEZ05BSUJGQkFXc3RBQUFoQXlBUlFRSnJMUUFBSVFzZ0VVRURheTBBQUNFTklCRkJCR3N0QUFBaENTQVJRUVZyTFFBQUlSUWdGeUVTQTBBZ0RpQVJMUUFBSWc4Z0ZDQUxJQTFxSWhCQkJIUnFJQU1nQ1dvaUZHc2dFQ0FVYTBFQ2RHcHFOZ0lBSUE0Z0VTMEFBU0lRSUFrZ0F5QUxhaUlVUVFSMGFpQU5JQTlxSWdscmFpQVVJQWxyUVFKMGFqWUNCQ0FPSUJFdEFBSWlGU0FOSUFNZ0Qyb2lDVUVFZEdvZ0N5QVFhaUlOYTJvZ0NTQU5hMEVDZEdvMkFnZ2dEaUFSTFFBREloTWdDeUFQSUJCcUlnbEJCSFJxSUFNZ0ZXb2lDMnRxSUFrZ0MydEJBblJxTmdJTUlBNUJFR29oRGlBUlFRUnFJUkVnQXlFVUlBOGhDU0FRSVEwZ0ZTRUxJQk1oQXlBU1FRRnJJaElOQUFzZ0VTQVlhaUVSSUJaQkFXc2lGZzBBQ3dzQ1FDQUlRUUoySWc5RkRRQWdCRVVOQUVIQUFDQUVheUVYSUF3Z0JFRUNkR29pQXlBRVFSUnNhaUVSUVFBZ0JHc2lFMEVEZENFV0lBUkJBM1FoRUNBRVFRTnNRUUowSVJRRFFDQUVJUTREUUNBS0lBTWdFR29vQWdBaUNTQVFJQkZxS0FJQUlCRWdCRUVDZENJVmFpZ0NBQ0lZSUJFZ0Ztb29BZ0FpQzJvaURXc2dEVUVDZEd0cUlCRW9BZ0FpRWlBUklCTkJBblFpR1dvb0FnQWlEV3BCRkd4cVFZQUVha0VLZFVHd0xtb3RBQUE2QURBZ0NpQURJQlZxS0FJQUloVWdHQ0FMSUExcUlocEJCSFJxSUFrZ0Vtb2lHR3RxSUJvZ0dHdEJBblJxUVlBRWFrRUtkVUd3TG1vdEFBQTZBQ0FnQ2lBREtBSUFJaGdnRWlBSklBdHFJaHBCQkhScUlBMGdGV29pRW10cUlCb2dFbXRCQW5ScVFZQUVha0VLZFVHd0xtb3RBQUE2QUJBZ0NpQURJQmxxS0FJQUlBMGdDU0FWYWlJSlFRUjBhaUFMSUJocUlndHJhaUFKSUF0clFRSjBha0dBQkdwQkNuVkJzQzVxTFFBQU9nQUFJQU5CQkdvaEF5QUtRUUZxSVFvZ0VVRUVhaUVSSUE1QkFXc2lEZzBBQ3lBS0lCZHFJUW9nRVNBVWFpRVJJQU1nRkdvaEF5QVBRUUZySWc4TkFBc0xJQXhCZ0E1cUpBQU1CUXNnQWlnQ0FDQUpJQTFCQW1zZ0MwRUNheUFFSUFNZ0J5QUlRUUVRSVF3RUN5QUNLQUlBSUFrZ0RVRUNheUFMSUFRZ0F5QUhJQWhCQVJBaURBTUxJQUlvQWdBZ0NTQU5RUUpySUF0QkFtc2dCQ0FESUFjZ0NFRUJFQmNNQWdzZ0FpZ0NBQ0FKSUExQkFtc2dDMEVDYXlBRUlBTWdCeUFJUVFFUUlBd0JDeUFDS0FJQUlBa2dEVUVDYXlBTFFRSnJJQVFnQXlBSElBaEJBeEFYQ3lBQkxnRUFJZ2xCQTNVZ0cwRUJkbW9oQXlBQkxnRUNJZ0ZCQTNVZ0hFRUJkbW9oQkNBQ0tBSUFJQUlvQWdRaURpQUNLQUlJSWd0c1FRaDBhaUVDSUFBZ0JrRUNkRUY0Y1dvZ0JVRUJkbXBCZ0FKcUlRVWdDRUVCZGlFR0lBZEJBWFloQnlBQlFRZHhJUWdnQzBFRGRDRUFJQTVCQTNRaEFRSkFJQWxCQjNFaUNVVU5BQ0FJUlEwQUlBWWhEVUVBSVFvakFFR3dBV3NpRGlRQUlBY2lERUVCYWlFR0FrQUNRQ0FESWdkQkFFZ05BQ0FFUVFCSURRQWdCaUFIYWlBQlN3MEFJQVFnRFdwQkFXb2dBRXNOQUNBQUlRc2dBU0VHSUFRaENnd0JDeUFDSUE0Z0J5QUVJQUVnQUNBR0lBMUJBV29pQ3lBR0VBd2dBaUFBSUFGc2FpQU9JQVlnQzJ4cUlBY2dCQ0FCSUFBZ0JpQUxJQVlRRENBT0lRSkJBQ0VIQ3dKQUlBMUJBWFlpQkVVTkFDQU1RUUYySWdGRkRRQkJFQ0FNYXlFWFFRZ2dDR3NoRDBFSUlBbHJJUkFnQmtFQmRDSVVJQXhySVJNZ0FpQUdJQXBzYWlBSGFpRU1JQVVoQXlBRUlRMERRQ0FNSUJScUxRQUFJQWhzSUE4Z0JpQU1haTBBQUNJQWJHb2hFaUFBSUFoc0lBOGdEQzBBQUd4cUlSVWdBU0VBQTBBZ0RFRUJhaUlSSUJScUxRQUFJUllnQXlBUUlCVnNJQVlnRVdvdEFBQWlGU0FJYkNBUElBd3RBQUZzYWlJUklBbHNha0VnYWtFR2Rqb0FBQ0FESUJBZ0Vtd2dDQ0FXYkNBUElCVnNhaUlTSUFsc2FrRWdha0VHZGpvQUNDQU1MUUFDSVJVZ0RFRUNhaUlNSUJScUxRQUFJUllnQXlBUUlCRnNJQVlnREdvdEFBQWlFU0FJYkNBUElCVnNhaUlWSUFsc2FrRWdha0VHZGpvQUFTQURJQkFnRW13Z0NDQVdiQ0FQSUJGc2FpSVNJQWxzYWtFZ2FrRUdkam9BQ1NBRFFRSnFJUU1nQUVFQmF5SUFEUUFMSUF3Z0Uyb2hEQ0FESUJkcUlRTWdEVUVCYXlJTkRRQUxJQVZCUUdzaEF5QUNJQW9nQzJvZ0JteHFJQWRxSVF3RFFDQU1JQlJxTFFBQUlBaHNJQThnQmlBTWFpMEFBQ0lBYkdvaEVpQUFJQWhzSUE4Z0RDMEFBR3hxSVJVZ0FTRUFBMEFnREVFQmFpSUNJQlJxTFFBQUlRVWdBeUFRSUJWc0lBSWdCbW90QUFBaUFpQUliQ0FQSUF3dEFBRnNhaUlISUFsc2FrRWdha0VHZGpvQUFDQURJQkFnRW13Z0JTQUliQ0FDSUE5c2FpSUNJQWxzYWtFZ2FrRUdkam9BQ0NBTUxRQUNJUVVnREVFQ2FpSU1JQlJxTFFBQUlRc2dBeUFISUJCc0lBWWdER290QUFBaUJ5QUliQ0FGSUE5c2FpSVZJQWxzYWtFZ2FrRUdkam9BQVNBRElBSWdFR3dnQ0NBTGJDQUhJQTlzYWlJU0lBbHNha0VnYWtFR2Rqb0FDU0FEUVFKcUlRTWdBRUVCYXlJQURRQUxJQXdnRTJvaERDQURJQmRxSVFNZ0JFRUJheUlFRFFBTEN5QU9RYkFCYWlRQUR3c2dDUVJBUVFBaEN5TUFRWkFCYXlJT0pBQWdCeUlOUVFGcUlRY0NRQUpBSUFNaUNFRUFTQTBBSUFRZ0Jtb2dBRXNOQUNBRVFRQklEUUFnQnlBSWFpQUJTdzBBSUFFaEJ5QUVJUXNNQVFzZ0FpQU9JQWdnQkNBQklBQWdCeUFHSUFjUURDQUNJQUFnQVd4cUlBNGdCaUFIYkdvZ0NDQUVJQUVnQUNBSElBWWdCeEFNSUE0aEFpQUdJUUJCQUNFSUN3SkFJQVpCQVhZaUJrVU5BQ0FOUVFGMklnTkZEUUJCRUNBTmF5RVBRUWdnQ1dzaERDQUhRUUYwSUExcklSQWdBaUFISUF0c2FpQUlhaUVLSUFVaEJDQUdJUTBEUUNBRElRRURRQ0FLUVFGcUlBZHFMUUFBSVJRZ0J5QUthaTBBQUNFU0lBUWdDaTBBQVNJVklBbHNJQXdnQ2kwQUFHeHFRUU4wUVNCcVFRWjJPZ0FBSUFRZ0NTQVViQ0FNSUJKc2FrRURkRUVnYWtFR2Rqb0FDQ0FLTFFBQ0lSSWdDa0VDYWlJS0lBZHFMUUFBSVJjZ0JDQUpJQkpzSUF3Z0ZXeHFRUU4wUVNCcVFRWjJPZ0FCSUFRZ0NTQVhiQ0FNSUJSc2FrRURkRUVnYWtFR2Rqb0FDU0FFUVFKcUlRUWdBVUVCYXlJQkRRQUxJQW9nRUdvaENpQUVJQTlxSVFRZ0RVRUJheUlORFFBTElBVkJRR3NoQkNBQ0lBQWdDMm9nQjJ4cUlBaHFJUW9EUUNBRElRRURRQ0FLUVFGcUlBZHFMUUFBSVFBZ0J5QUthaTBBQUNFQ0lBUWdDaTBBQVNJRklBbHNJQXdnQ2kwQUFHeHFRUU4wUVNCcVFRWjJPZ0FBSUFRZ0FDQUpiQ0FDSUF4c2FrRURkRUVnYWtFR2Rqb0FDQ0FLTFFBQ0lRSWdDa0VDYWlJS0lBZHFMUUFBSVFnZ0JDQUNJQWxzSUFVZ0RHeHFRUU4wUVNCcVFRWjJPZ0FCSUFRZ0NDQUpiQ0FBSUF4c2FrRURkRUVnYWtFR2Rqb0FDU0FFUVFKcUlRUWdBVUVCYXlJQkRRQUxJQW9nRUdvaENpQUVJQTlxSVFRZ0JrRUJheUlHRFFBTEN5QU9RWkFCYWlRQUR3c2dDQVJBSUFZaEMwRUFJUTBqQUVHUUFXc2lDU1FBQWtBQ1FDQURJZ1pCQUVnTkFDQUVRUUJJRFFBZ0JpQUhhaUFCU3cwQUlBUWdDMnBCQVdvZ0FFc05BQ0FBSVE0Z0JDRU5EQUVMSUFJZ0NTQUdJQVFnQVNBQUlBY2dDMEVCYWlJT0lBY1FEQ0FDSUFBZ0FXeHFJQWtnQnlBT2JHb2dCaUFFSUFFZ0FDQUhJQTRnQnhBTUlBa2hBaUFISVFGQkFDRUdDd0pBSUF0QkFYWWlDMFVOQUNBSFFRRjJJZ05GRFFCQkVDQUhheUVRUVFnZ0NHc2hEQ0FCUVFGMElnOGdCMnNoRkNBQ0lBRWdEV3hxSUFacUlRb2dCU0VFSUFzaEJ3TkFJQU1oQUFOQUlBb2dEMm90QUFBaEVpQUVJQXdnQ2kwQUFHd2dBU0FLYWkwQUFDSVZJQWhzYWtFRGRFRWdha0VHZGpvQUFDQUVJQXdnRld3Z0NDQVNiR3BCQTNSQklHcEJCblk2QUFnZ0NrRUJhaUlTSUE5cUxRQUFJUlVnQkNBTUlBb3RBQUZzSUFFZ0Vtb3RBQUFpRWlBSWJHcEJBM1JCSUdwQkJuWTZBQUVnQkNBTUlCSnNJQWdnRld4cVFRTjBRU0JxUVFaMk9nQUpJQVJCQW1vaEJDQUtRUUpxSVFvZ0FFRUJheUlBRFFBTElBb2dGR29oQ2lBRUlCQnFJUVFnQjBFQmF5SUhEUUFMSUFWQlFHc2hCQ0FDSUEwZ0Rtb2dBV3hxSUFacUlRb0RRQ0FESVFBRFFDQUtJQTlxTFFBQUlRSWdCQ0FNSUFvdEFBQnNJQUVnQ21vdEFBQWlCU0FJYkdwQkEzUkJJR3BCQm5ZNkFBQWdCQ0FGSUF4c0lBSWdDR3hxUVFOMFFTQnFRUVoyT2dBSUlBcEJBV29pQWlBUGFpMEFBQ0VGSUFRZ0RDQUtMUUFCYkNBQklBSnFMUUFBSWdJZ0NHeHFRUU4wUVNCcVFRWjJPZ0FCSUFRZ0FpQU1iQ0FGSUFoc2FrRURkRUVnYWtFR2Rqb0FDU0FFUVFKcUlRUWdDa0VDYWlFS0lBQkJBV3NpQUEwQUN5QUtJQlJxSVFvZ0JDQVFhaUVFSUF0QkFXc2lDdzBBQ3dzZ0NVR1FBV29rQUE4TElBSWdCU0FESUFRZ0FTQUFJQWNnQmtFSUVBd2dBaUFBSUFGc2FpQUZRVUJySUFNZ0JDQUJJQUFnQnlBR1FRZ1FEQXZIQVFFRWZ5QUFLQUlFSVFJQ1FDQUFLQUlNUVFOMElBQW9BaEJySWdOQklFNEVRQ0FDS0FBQUlnRkJHSFFnQVVFSWRFR0FnUHdIY1hJZ0FVRUlka0dBL2dOeElBRkJHSFp5Y2lFQklBQW9BZ2dpQUVVTkFTQUJJQUIwSUFJdEFBUkJDQ0FBYTNaeUR3c2dBMEVCU0FSQVFRQVBDeUFDTFFBQUlBQW9BZ2dpQUVFWWFpSUVkQ0VCSUFBZ0EycEJDR3NpQUVFQlNBMEFBMEFnQWkwQUFTQUVRUWhySWdSMElBRnlJUUVnQUVFSVNpRURJQUpCQVdvaEFpQUFRUWhySVFBZ0F3MEFDd3NnQVF0QUFBSkFBa0FDUUFKQUFrQUNRQ0FCRGdVQUFRSURCUVFMSUFBb0FzZ0JEd3NnQUNnQ3pBRVBDeUFBS0FMUUFROExJQUFvQXRRQkR3dEJBQ0VBQ3lBQUMxSUJBbjlCc01BQUtBSUFJZ0VnQUVFRGFrRjhjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBUUFVVU5BUXRCc01BQUlBQTJBZ0FnQVE4TFFiVEFBRUV3TmdJQVFYOExOQUVCZndKQUlBRkJFRXNOQUNBQUtBSUVJQUZCQW5ScUtBSUFJZ0JGRFFBZ0FDZ0NGRUVDU1EwQUlBQW9BZ0FoQWdzZ0FnczJBQ0FDQkVBZ0FDQUJFQUlQQzBFQklRSWdBU0FBUVFFUUF5SUFOZ0lBSUFCQmYwY0VmeUFCSUFCQkFYTTJBZ0JCQUFWQkFRc0wwQmNCSDM4akFFSFFBMnNpQmlRQUlBRW9BZ2doRFNBQklBRW9BZ1FpQ0NBQ2JDSVVJQU5xRUJ3Z0FTZ0NBQ0VWSUFCQkFEWUNDQ0FBUWlnM0FoUWdBRUlBTndJTUlBQkJCallDQUNBRFFRUjBJUWtDUUFKQUFrQWdCRUVDYXc0R0FRQUFBQUFCQUFzZ0JrRUFOZ0lNSUFZZ0RUWUNHQ0FHSUFnMkFoUWdCaUFGTmdJUUlBVkZCRUFNQVFzZ0JrSFFBR29nQmtFTWFpQUdRUkJxSUFrZ0FrRUVkRUVBUVFCQkVFRVFFQThNQVFzZ0JrSFFBR3BCQUVHQUF4QUVHaUFWSUJSQkNIUnFJQWxxSVFzZ0JrSUFOd05JSUFaQlFHdENBRGNEQUNBR1FnQTNBemdnQmtJQU53TXdJQVpDQURjREtDQUdRZ0EzQXlBZ0JrSUFOd01ZSUFaQ0FEY0RFQUovQWtBZ0FnUkFJQUJCQUNBSWEwSFlBV3hxS0FMRUFRMEJDMEVBREFFTElBWWdDeUFJUVFSMGF5SUVMUUFGSUFRdEFBUnFJQVF0QUFacUlBUXRBQWRxSWhnZ0JDMEFBeUFFTFFBQ0lBUXRBQUVnQkMwQUFHcHFhaUlYYWlJRklBUXRBQThnQkMwQURpQUVMUUFOSUFRdEFBeHFhbW9pR2lBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSWFtcHFJaGxxSWdScklnYzJBaFFnQmlBRUlBVnFJZ28yQWhCQkFTRWJRUUVMSVFVQ1FDQU5RUUZySUFKR0RRQWdBQ0FJUWRnQmJHb29Bc1FCUlFSQURBRUxJQVlnQ3lBSVFRaDBhaUlDTFFBRklBSXRBQVJxSUFJdEFBWnFJQUl0QUFkcUloNGdBaTBBQXlBQ0xRQUNJQUl0QUFFZ0FpMEFBR3BxYWlJZmFpSUVJQUl0QUE4Z0FpMEFEaUFDTFFBTklBSXRBQXhxYW1vaUlDQUNMUUFMSUFJdEFBb2dBaTBBQ1NBQ0xRQUlhbXBxSWlGcUlnSnJJQWRxSWdjMkFoUWdCaUFDSUFScUlBcHFJZ28yQWhCQkFTRVdJQVZCQVdvaEJRc0Nmd0pBSUFORkRRQWdBRUVVYXlnQ0FFVU5BQ0FHSUF0QkFXc2lBaUFJUVFaMEloQnFJZ1FnQ0VFRWRDSUphaTBBQUNBRUxRQUFhaUFFSUFoQkJYUWlEbW90QUFCcUlBUWdDRUV3YkNJUGFpMEFBR29pSENBQ0lBOXFMUUFBSUFJZ0Rtb3RBQUFnQWlBSmFpMEFBQ0FDTFFBQWFtcHFJaDFxSWd3Z0JDQVFhaUlDSUJCcUlnUWdDV290QUFBZ0JDMEFBR29nQkNBT2FpMEFBR29nQkNBUGFpMEFBR29pRUNBQ0lBOXFMUUFBSUFJZ0Rtb3RBQUFnQWlBSmFpMEFBQ0FDTFFBQWFtcHFJZzVxSWdKcklnUTJBaUFnQmlBQ0lBeHFJQXBxSWdvMkFoQkJBU0VQSUFWQkFXb2hDVUVCREFFTFFRQWhCQ0FGSVFsQkFBc2hBZ0pBQWtBQ1FBSkFBa0FnQXlBSVFRRnJSd1JBSUFBb0Fwd0REUUVMUVFBaERDQUZEUUVNQWdzZ0JDQUxRUkJxSWdRZ0NFRUdkQ0lSYWlJQUlBaEJCSFFpREdvdEFBQWdBQzBBQUdvZ0FDQUlRUVYwSWhKcUxRQUFhaUFBSUFoQk1Hd2lFMm90QUFCcUlBUWdFMm90QUFBZ0JDQVNhaTBBQUNBRUlBeHFMUUFBSUFzdEFCQnFhbXBxSWdzZ0FDQVJhaUlBSUJGcUlnUWdER290QUFBZ0JDMEFBR29nQkNBU2FpMEFBR29nQkNBVGFpMEFBR29pRVNBQUlCTnFMUUFBSUFBZ0Vtb3RBQUFnQUNBTWFpMEFBQ0FBTFFBQWFtcHFJZ0JxSWd4cmFpRUVJQXNnREdvZ0Ntb2hDa0VCSVF3Z0FrRUJhaUVDSUFsQkFXb2hDU0FQUlNBRlFRQkhja1VFUUNBY0lCMXFJQTVxSUJCcUlBQWdDMm9nRVdwclFRVjFJUWNNQXdzZ0JVVU5BZ3NnQnlBRlFRTnFkU0VIQ3lBYklBSkZjU0FXY1FSQUlCY2dHR29nR1dvZ0dtb2dJQ0FoYWlBZWFpQWZhbXRCQlhVaEJBd0NDeUFDUlEwQkN5QUVJQUpCQTJwMUlRUUxJQVlDZndKQUFrQUNRQUpBSUFsQkFXc09Bd0FCQWdNTElBcEJCSFlNQXdzZ0NrRUZkZ3dDQ3lBS1FSVnNRUXAyREFFTElBcEJCbllMSWdBMkFoQUNRQ0FFSUFkeVJRUkFJQVlnQURZQ1NDQUdJQUEyQWt3Z0JpQUFOZ0pFSUFZZ0FEWUNRQ0FHSUFBMkFqd2dCaUFBTmdJNElBWWdBRFlDTkNBR0lBQTJBakFnQmlBQU5nSXNJQVlnQURZQ0tDQUdJQUEyQWlRZ0JpQUFOZ0lnSUFZZ0FEWUNIQ0FHSUFBMkFoZ2dCaUFBTmdJVURBRUxJQVlnQUNBSGFpSUZJQVJyTmdKQUlBWWdCU0FFUVFGMUlnSnJOZ0l3SUFZZ0FpQUZhallDSUNBR0lBUWdCV28yQWhBZ0JpQUFJQWRySWdVZ0JHczJBa3dnQmlBRklBSnJOZ0k4SUFZZ0FpQUZhallDTENBR0lBUWdCV28yQWh3Z0JpQUFJQWRCQVhVaUNXb2lCU0FFYXpZQ1JDQUdJQVVnQW1zMkFqUWdCaUFDSUFWcU5nSWtJQVlnQkNBRmFqWUNGQ0FHSUFBZ0NXc2lBQ0FFYXpZQ1NDQUdJQUFnQW1zMkFqZ2dCaUFBSUFKcU5nSW9JQVlnQUNBRWFqWUNHQXNnQmtIUUFHb2hBQ0FHUVJCcUlRUkJBQ0VIQTBBZ0FDQUVJQWRCREhGcUlnSW9BZ0FpQlVIL0FTQUZRZjhCU0JzaUJVRUFJQVZCQUVvYk9nQUFJQUFnQWlnQ0FDSUNRZjhCSUFKQi93RklHeUlDUVFBZ0FrRUFTaHM2QUFFZ0JDQUVRUkJxSUFkQkFtb2lCMEUrY1JzaEJDQUFRUUpxSVFBZ0IwR0FBa2NOQUFzZ0ZTQUlJQTFzSWdCQkNIUnFJQlJCQm5ScUlBTkJBM1JxSVFNZ0NFRUVkQ0VLSUFoQkJuUWhFaUFBUVFaMElSTkJBQ0FJUVFOMElnaHJJUlFnQmtIUUFtb2hGU0FHUVVCcklSRkJBQ0VMQTBBZ0JrSUFOd05JSUJGQ0FEY0RBQ0FHUWdBM0F6Z2dCa0lBTndNd0lBWkNBRGNES0NBR1FnQTNBeUFnQmtJQU53TVlJQVpDQURjREVFRUFJUWRCQUNFRVFRQWhBaUFiQkVBZ0JpQURJQlJxSWdBdEFBTWdBQzBBQW1vaUdDQUFMUUFCSUFBdEFBQnFJaGRxSWdJZ0FDMEFCeUFBTFFBR2FpSWFJQUF0QUFVZ0FDMEFCR29pR1dvaUFHc2lCellDRkNBR0lBQWdBbW9pQkRZQ0VFRUJJUUlMSUJZRVFDQUdJQU1nRW1vaUFDMEFBeUFBTFFBQ2FpSWVJQUF0QUFFZ0FDMEFBR29pSDJvaUJTQUFMUUFISUFBdEFBWnFJaUFnQUMwQUJTQUFMUUFFYWlJaGFpSUFheUFIYWlJSE5nSVVJQVlnQUNBRmFpQUVhaUlFTmdJUUlBSkJBV29oQWd0QkFDRUFBbjhnRDBVRVFDQUNJUWxCQUF3QkN5QUdJQU5CQVdzaUFDQUthaUlGSUFocUxRQUFJQVV0QUFCcUlod2dBQ0FJYWkwQUFDQUFMUUFBYWlJZGFpSUpJQVVnQ21vaUFDQUthaUlGSUFocUxRQUFJQVV0QUFCcUloQWdBQ0FJYWkwQUFDQUFMUUFBYWlJT2FpSUZheUlBTmdJZ0lBWWdCU0FKYWlBRWFpSUVOZ0lRSUFKQkFXb2hDVUVCQ3lFRkFrQUNRQUpBQWtBZ0RFVUVRQ0FDRFFFTUFnc2dBQ0FEUVFocUlnMGdDbW9pQUNBSWFpMEFBQ0FBTFFBQWFpQUlJQTFxTFFBQUlBTXRBQWhxYWlJTklBQWdDbW9pQUNBS2FpSWlJQWhxTFFBQUlDSXRBQUJxSWlJZ0FDQUlhaTBBQUNBQUxRQUFhaUlqYWlJa2Eyb2hBQ0FOSUNScUlBUnFJUVFnQlVFQmFpRUZJQWxCQVdvaENTQVBSU0FDUVFCSGNrVUVRQ0FjSUIxcUlBNXFJQkJxSUEwZ0kyb2dJbXByUVFSMUlRY01Bd3NnQWtVTkFnc2dCeUFDUVFKcWRTRUhDeUFiSUFWRmNTQVdjUVJBSUJjZ0dHb2dHV29nR21vZ0lDQWhhaUFlYWlBZmFtdEJCSFVoQUF3Q0N5QUZSUTBCQ3lBQUlBVkJBbXAxSVFBTElBWUNmd0pBQWtBQ1FBSkFJQWxCQVdzT0F3QUJBZ01MSUFSQkEzWU1Bd3NnQkVFRWRnd0NDeUFFUVJWc1FRbDJEQUVMSUFSQkJYWUxJZ1EyQWhBQ1FDQUFJQWR5UlFSQUlBWWdCRFlDU0NBR0lBUTJBa3dnQmlBRU5nSkVJQVlnQkRZQ1FDQUdJQVEyQWp3Z0JpQUVOZ0k0SUFZZ0JEWUNOQ0FHSUFRMkFqQWdCaUFFTmdJc0lBWWdCRFlDS0NBR0lBUTJBaVFnQmlBRU5nSWdJQVlnQkRZQ0hDQUdJQVEyQWhnZ0JpQUVOZ0lVREFFTElBWWdCQ0FIYWlJRklBQnJOZ0pBSUFZZ0JTQUFRUUYxSWdKck5nSXdJQVlnQWlBRmFqWUNJQ0FHSUFBZ0JXbzJBaEFnQmlBRUlBZHJJZ1VnQUdzMkFrd2dCaUFGSUFKck5nSThJQVlnQWlBRmFqWUNMQ0FHSUFBZ0JXbzJBaHdnQmlBRUlBZEJBWFVpQ1dvaUJTQUFhellDUkNBR0lBVWdBbXMyQWpRZ0JpQUNJQVZxTmdJa0lBWWdBQ0FGYWpZQ0ZDQUdJQVFnQ1dzaUJDQUFhellDU0NBR0lBUWdBbXMyQWpnZ0JpQUNJQVJxTmdJb0lBWWdBQ0FFYWpZQ0dBc2dGU0FMUVFaMGFpRUFRUUFoQkNBR1FSQnFJUWNEUUNBQUlBY2dCRUVCZEVFTWNXb2lBaWdDQUNJRlFmOEJJQVZCL3dGSUd5SUZRUUFnQlVFQVNoczZBQUFnQUNBQ0tBSUFJZ0pCL3dFZ0FrSC9BVWdiSWdKQkFDQUNRUUJLR3pvQUFTQUhJQWRCRUdvZ0JFRUNhaUlFUVE1eEd5RUhJQUJCQW1vaEFDQUVRY0FBUncwQUN5QURJQk5xSVFNZ0MwRUJhaUlMUVFKSERRQUxDeUFCSUFaQjBBQnFFQmdnQmtIUUEyb2tBQXYyQmdFT2Z5QUNLQUlJSVFvZ0FpZ0NCQ0VQQWtBZ0FVRUVUd1JBSUE5QkFuWkJBbW9oREVFRUlRSURRQUpBSUFCQkFXc2lCUzBBQUNJSElBQXRBQUFpQ0dzaUFTQUJRUjkxSWdGcUlBRnpJZzBnRDA4TkFDQUFRUUpySWc0dEFBQWlBU0FIYXlJRUlBUkJIM1VpQkdvZ0JITWdDazhOQUNBQUxRQUJJZ2tnQ0dzaUJDQUVRUjkxSWdScUlBUnpJQXBQRFFBQ1FDQU1JQTFMQkVBZ0FDMEFBaUVMQW44Z0NpQUFRUU5ySWcwdEFBQWlCQ0FIYXlJR0lBWkJIM1VpQm1vZ0JuTkxCRUJCQXlFR0lBVWdDU0FISUFocUlBRnFJZ1ZCQVhScUlBUnFRUVJxUVFOMk9nQUFJQTRnQkNBRmFrRUNha0VDZGpvQUFDQUZRUVJxSUFSQkEyeHFJUTRnQUVFRWF5MEFBQXdCQzBFQ0lRWWdCeUFKYWtFQ2FpRU9JQVVoRFNBQkN5RUVJQTBnRGlBRVFRRjBhaUFHZGpvQUFDQUxJQWhySWdVZ0JVRWZkU0lGYWlBRmN5QUtUdzBCSUFBZ0J5QUphaUFJYWlJRklBdHFRUUpxUVFKMk9nQUJJQUFnQlNBTFFRTnNhaUFBTFFBRFFRRjBha0VFYWtFRGRqb0FBaUFBSUFFZ0JVRUJkR29nQzJwQkJHcEJBM1k2QUFBTUFnc2dCU0FISUFscUlBRkJBWFJxUVFKcVFRSjJPZ0FBQ3lBQUlBRWdDR29nQ1VFQmRHcEJBbXBCQW5ZNkFBQUxJQUFnQTJvaEFDQUNRUUZySWdJTkFBc01BUXNnQVNBQ0tBSUFha0VCYXkwQUFDSUZRUUZxSVExQkFDQUZheUVJUVFRaEFnTkFBa0FnQUVFQmF5SU9MUUFBSWdRZ0FDMEFBQ0lIYXlJQklBRkJIM1VpQVdvZ0FYTWdEMDhOQUNBQVFRSnJJZ3d0QUFBaUNTQUVheUlCSUFGQkgzVWlBV29nQVhNZ0NrOE5BQ0FBTFFBQklnc2dCMnNpQVNBQlFSOTFJZ0ZxSUFGeklBcFBEUUFnQUMwQUFpRUdJQVVoQVNBS0lBQkJBMnN0QUFBaUVTQUVheUlRSUJCQkgzVWlFR29nRUhOTEJFQWdEQ0FKSUFnZ0JTQUVJQWRxUVFGcVFRRjJJQWxCQVhScklCRnFRUUYxSWdFZ0FTQUZTaHNnQVNBSVNCdHFPZ0FBSUEwaEFRc2dEaUFFQW44Z0NpQUdJQWRySWd3Z0RFRWZkU0lNYWlBTWMwc0VRQ0FBSUFzZ0NDQUZJQVFnQjJwQkFXcEJBWFlnQzBFQmRHc2dCbXBCQVhVaUJpQUZJQVpJR3lBR0lBaElHMm82QUFFZ0FVRUJhaUVCQzBFQUlBRnJJZ1lMSUFFZ0NTQUxheUFISUFSclFRSjBha0VFYWtFRGRTSUVJQUVnQkVnYklBUWdCa2diSWdGcVFiQXVhaTBBQURvQUFDQUFJQWNnQVd0QnNDNXFMUUFBT2dBQUN5QUFJQU5xSVFBZ0FrRUJheUlDRFFBTEN3djdCd0VOZnlNQVFjQURheUlTSkFBZ0JrRUZhaUVKQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0NXb2dCRXNOQUNBRElBZHFRUVZxSUFWTERRQWdBeUFFYkNBQ2FpRUtJQVFoQ1F3QkN5QUFJQklnQWlBRElBUWdCU0FKSUFkQkJXb2dDUkFNSUJJaEFBc2dBQ0FLYWlFT0FrQWdCMFVOQUVFUUlBWnJJUlFnQmtFQ2RpSVRCRUFnQ1NBR2F5RVZJQTRnQ1NBSVFRRjJRUUZ4UVFKeWJHcEJCV29oQUNBSElROERRQ0FBUVFGckxRQUFJUUlnQUVFQ2F5MEFBQ0VESUFCQkEyc3RBQUFoQlNBQVFRUnJMUUFBSVFvZ0FFRUZheTBBQUNFTElCTWhFQU5BSUFFZ0FDMEFBQ0lFSUFzZ0F5QUZhaUlNUVFSMGFpQUNJQXBxSWd0cklBd2dDMnRCQW5ScWFrRVFha0VGZFVHd0xtb3RBQUE2QUFBZ0FTQUFMUUFCSWd3Z0NpQUNJQU5xSWd0QkJIUnFJQVFnQldvaUNtdHFJQXNnQ210QkFuUnFRUkJxUVFWMVFiQXVhaTBBQURvQUFTQUJJQUF0QUFJaUVTQUZJQUlnQkdvaUNrRUVkR29nQXlBTWFpSUZhMm9nQ2lBRmEwRUNkR3BCRUdwQkJYVkJzQzVxTFFBQU9nQUNJQUVnQUMwQUF5SU5JQU1nQkNBTWFpSUZRUVIwYWlBQ0lCRnFJZ05yYWlBRklBTnJRUUowYWtFUWFrRUZkVUd3TG1vdEFBQTZBQU1nQVVFRWFpRUJJQUJCQkdvaEFDQUNJUXNnQkNFS0lBd2hCU0FSSVFNZ0RTRUNJQkJCQVdzaUVBMEFDeUFCSUJScUlRRWdBQ0FWYWlFQUlBOUJBV3NpRHcwQUN3d0JDeUFIUVFGcklCUnNJQVpySUFGcVFSQnFJUUVMQWtBZ0IwRUNkaUlLUlEwQUlBWkZEUUJCd0FBZ0Jtc2hFU0FKUVFGMElRd2dDVUVDZENBR2F5RVBRUUFnQ1dzaUMwRUJkQ0VUSUFFZ0IwRUVkR3NoQUNBSklBNXFJQWhCQVhGcVFRSnFJZ0lnQ1VFRmJHb2hBUU5BSUFZaEF3TkFJQUFnQWlBTWFpMEFBQ0lFSUFFZ0RHb3RBQUFnQVNBSmFpMEFBQ0lOSUFFZ0Uyb3RBQUFpQldvaUIyc2dCMEVDZEd0cUlBRXRBQUFpQ0NBQklBdHFMUUFBSWdkcVFSUnNha0VRYWtFRmRVR3dMbW90QUFBZ0FDMEFNR3BCQVdwQkFYWTZBREFnQUNBQ0lBbHFMUUFBSWhBZ0RTQUZJQWRxSWc1QkJIUnFJQVFnQ0dvaURXc2dEaUFOYTBFQ2RHcHFRUkJxUVFWMVFiQXVhaTBBQUNBQUxRQWdha0VCYWtFQmRqb0FJQ0FBSUFJdEFBQWlEU0FJSUFRZ0JXb2lEa0VFZEdvZ0J5QVFhaUlJYXlBT0lBaHJRUUowYW1wQkVHcEJCWFZCc0M1cUxRQUFJQUF0QUJCcVFRRnFRUUYyT2dBUUlBQWdBaUFMYWkwQUFDQUhJQVFnRUdvaUJFRUVkR29nQlNBTmFpSUZheUFFSUFWclFRSjBhbXBCRUdwQkJYVkJzQzVxTFFBQUlBQXRBQUJxUVFGcVFRRjJPZ0FBSUFKQkFXb2hBaUFBUVFGcUlRQWdBVUVCYWlFQklBTkJBV3NpQXcwQUN5QUFJQkZxSVFBZ0FTQVBhaUVCSUFJZ0Qyb2hBaUFLUVFGcklnb05BQXNMSUJKQndBTnFKQUFMdFFVQkJIOGdBQ2dDRkNFRElBQW9BaEFoQkNBQUtBSUVJUVVnQUNnQ0RDSUNJQUVwQWdBM0FnQWdBaUFCS1FJSU53SUlJQUlnQlVFRWRDSUFhaUlDSUFFcEFoQTNBZ0FnQWlBQktRSVlOd0lJSUFBZ0Ftb2lBaUFCS1FJZ053SUFJQUlnQVNrQ0tEY0NDQ0FBSUFKcUlnSWdBU2tDTURjQ0FDQUNJQUVwQWpnM0FnZ2dBQ0FDYWlJQ0lBRXBBa0EzQWdBZ0FpQUJLUUpJTndJSUlBQWdBbW9pQWlBQktRSlFOd0lBSUFJZ0FTa0NXRGNDQ0NBQUlBSnFJZ0lnQVNrQ1lEY0NBQ0FDSUFFcEFtZzNBZ2dnQUNBQ2FpSUNJQUVwQW5BM0FnQWdBaUFCS1FKNE53SUlJQUFnQW1vaUFpQUJLUUtBQVRjQ0FDQUNJQUVwQW9nQk53SUlJQUFnQW1vaUFpQUJLUUtRQVRjQ0FDQUNJQUVwQXBnQk53SUlJQUFnQW1vaUFpQUJLUUtnQVRjQ0FDQUNJQUVwQXFnQk53SUlJQUFnQW1vaUFpQUJLUUt3QVRjQ0FDQUNJQUVwQXJnQk53SUlJQUFnQW1vaUFpQUJLUUxBQVRjQ0FDQUNJQUVwQXNnQk53SUlJQUFnQW1vaUFpQUJLUUxRQVRjQ0FDQUNJQUVwQXRnQk53SUlJQUFnQW1vaUFpQUJLUUxnQVRjQ0FDQUNJQUVwQXVnQk53SUlJQUFnQW1vaUFDQUJLUUx3QVRjQ0FDQUFJQUVwQXZnQk53SUlJQVFnQVNrQ2dBSTNBZ0FnQkNBRlFRTjBJZ0JxSWdRZ0FTa0NpQUkzQWdBZ0FDQUVhaUlFSUFFcEFwQUNOd0lBSUFBZ0JHb2lCQ0FCS1FLWUFqY0NBQ0FBSUFScUlnUWdBU2tDb0FJM0FnQWdBQ0FFYWlJRUlBRXBBcWdDTndJQUlBQWdCR29pQkNBQktRS3dBamNDQUNBQUlBUnFJQUVwQXJnQ053SUFJQU1nQVNrQ3dBSTNBZ0FnQUNBRGFpSURJQUVwQXNnQ053SUFJQUFnQTJvaUF5QUJLUUxRQWpjQ0FDQUFJQU5xSWdNZ0FTa0MyQUkzQWdBZ0FDQURhaUlESUFFcEF1QUNOd0lBSUFBZ0Eyb2lBeUFCS1FMb0FqY0NBQ0FBSUFOcUlnTWdBU2tDOEFJM0FnQWdBQ0FEYWlBQktRTDRBamNDQUFzREFBRUxxQXdCQ244Q1FDQUJRUVJQQkVCQkFDQURheUlNUVFGMElRc0NRQ0FDS0FJRUlnRWdBQ0FEYXlJR0xRQUFJZ2NnQUMwQUFDSUlheUlLSUFwQkgzVWlDbW9nQ25OTkRRQWdBaWdDQ0NJRklBQWdDMm90QUFBaUNpQUhheUlKSUFsQkgzVWlDV29nQ1hOTkRRQWdCU0FBSUFOcUxRQUFJZ1VnQ0dzaUNTQUpRUjkxSWdscUlBbHpUUTBBSUFZZ0JTQUhhaUFLUVFGMGFrRUNha0VDZGpvQUFDQUFJQWdnQlVFQmRHb2dDbXBCQW1wQkFuWTZBQUFnQWlnQ0JDRUJDd0pBSUFCQkFXb2lCeUFNYWlJSkxRQUFJZ2dnQUMwQUFTSUtheUlGSUFWQkgzVWlCV29nQlhNZ0FVOE5BQ0FDS0FJSUlnWWdCeUFMYWkwQUFDSUZJQWhySWdRZ0JFRWZkU0lFYWlBRWMwME5BQ0FHSUFNZ0Iyb3RBQUFpQmlBS2F5SUVJQVJCSDNVaUJHb2dCSE5ORFFBZ0NTQUdJQWhxSUFWQkFYUnFRUUpxUVFKMk9nQUFJQWNnQ2lBR1FRRjBhaUFGYWtFQ2FrRUNkam9BQUNBQ0tBSUVJUUVMQWtBZ0FFRUNhaUlISUF4cUlna3RBQUFpQ0NBQUxRQUNJZ3BySWdVZ0JVRWZkU0lGYWlBRmN5QUJUdzBBSUFJb0FnZ2lCaUFISUF0cUxRQUFJZ1VnQ0dzaUJDQUVRUjkxSWdScUlBUnpUUTBBSUFZZ0F5QUhhaTBBQUNJR0lBcHJJZ1FnQkVFZmRTSUVhaUFFYzAwTkFDQUpJQVlnQ0dvZ0JVRUJkR3BCQW1wQkFuWTZBQUFnQnlBS0lBWkJBWFJxSUFWcVFRSnFRUUoyT2dBQUlBSW9BZ1FoQVFzQ1FDQUFRUU5xSWdjZ0RHb2lDUzBBQUNJSUlBQXRBQU1pQ21zaUJTQUZRUjkxSWdWcUlBVnpJQUZQRFFBZ0FpZ0NDQ0lHSUFjZ0Myb3RBQUFpQlNBSWF5SUVJQVJCSDNVaUJHb2dCSE5ORFFBZ0JpQURJQWRxTFFBQUlnWWdDbXNpQkNBRVFSOTFJZ1JxSUFSelRRMEFJQWtnQmlBSWFpQUZRUUYwYWtFQ2FrRUNkam9BQUNBSElBb2dCa0VCZEdvZ0JXcEJBbXBCQW5ZNkFBQWdBaWdDQkNFQkN3SkFJQUJCQkdvaUJ5QU1haUlKTFFBQUlnZ2dBQzBBQkNJS2F5SUZJQVZCSDNVaUJXb2dCWE1nQVU4TkFDQUNLQUlJSWdZZ0J5QUxhaTBBQUNJRklBaHJJZ1FnQkVFZmRTSUVhaUFFYzAwTkFDQUdJQU1nQjJvdEFBQWlCaUFLYXlJRUlBUkJIM1VpQkdvZ0JITk5EUUFnQ1NBR0lBaHFJQVZCQVhScVFRSnFRUUoyT2dBQUlBY2dDaUFHUVFGMGFpQUZha0VDYWtFQ2Rqb0FBQ0FDS0FJRUlRRUxBa0FnQUVFRmFpSUhJQXhxSWdrdEFBQWlDQ0FBTFFBRklncHJJZ1VnQlVFZmRTSUZhaUFGY3lBQlR3MEFJQUlvQWdnaUJpQUhJQXRxTFFBQUlnVWdDR3NpQkNBRVFSOTFJZ1JxSUFSelRRMEFJQVlnQXlBSGFpMEFBQ0lHSUFwcklnUWdCRUVmZFNJRWFpQUVjMDBOQUNBSklBWWdDR29nQlVFQmRHcEJBbXBCQW5ZNkFBQWdCeUFLSUFaQkFYUnFJQVZxUVFKcVFRSjJPZ0FBSUFJb0FnUWhBUXNDUUNBQVFRWnFJZ2NnREdvaUNTMEFBQ0lJSUFBdEFBWWlDbXNpQlNBRlFSOTFJZ1ZxSUFWeklBRlBEUUFnQWlnQ0NDSUdJQWNnQzJvdEFBQWlCU0FJYXlJRUlBUkJIM1VpQkdvZ0JITk5EUUFnQmlBRElBZHFMUUFBSWdZZ0Ntc2lCQ0FFUVI5MUlnUnFJQVJ6VFEwQUlBa2dCaUFJYWlBRlFRRjBha0VDYWtFQ2Rqb0FBQ0FISUFvZ0JrRUJkR29nQldwQkFtcEJBblk2QUFBZ0FpZ0NCQ0VCQ3lBQklBQkJCMm9pQVNBTWFpSUhMUUFBSWd3Z0FDMEFCeUlBYXlJSUlBaEJIM1VpQ0dvZ0NITk5EUUVnQWlnQ0NDSUlJQUVnQzJvdEFBQWlBaUFNYXlJTElBdEJIM1VpQzJvZ0MzTk5EUUVnQVNBRGFpMEFBQ0lESUFCcklnc2dDMEVmZFNJTGFpQUxjeUFJVHcwQklBY2dBeUFNYWlBQ1FRRjBha0VDYWtFQ2Rqb0FBQ0FCSUFBZ0EwRUJkR29nQW1wQkFtcEJBblk2QUFBUEMwRUFJQU5ySWdwQkFYUWhCU0FCSUFJb0FnQnFRUUZyTFFBQUlnRkJmM01oQnlBQlFRRnFJUWhCQ0NFQkEwQUNRQ0FDS0FJRUlBQWdDbW9pQmkwQUFDSUxJQUF0QUFBaURHc2lDU0FKUVI5MUlnbHFJQWx6VFEwQUlBSW9BZ2dpQ1NBQUlBVnFMUUFBSWdRZ0Myc2lEU0FOUVI5MUlnMXFJQTF6VFEwQUlBa2dBQ0FEYWkwQUFDSUpJQXhySWcwZ0RVRWZkU0lOYWlBTmMwME5BQ0FHSUFzZ0J5QUlJQXdnQzJ0QkFuUWdDV3NnQkdwQkJHcEJBM1VpQ3lBSUlBdElHeUFISUF0S0d5SUxha0d3TG1vdEFBQTZBQUFnQUNBTUlBdHJRYkF1YWkwQUFEb0FBQXNnQUVFQmFpRUFJQUZCQVdzaUFRMEFDd3NMNkFJQkJYOENRQ0FBSUFFUUFpSUREUUJCQVNFRElBRWdBU2dDQUVFQmFpSUNOZ0lBSUFKQklFc05BQ0FBUVFRUUF5SUNRWDlHRFFBZ0FTQUNOZ0lFSUFCQkJCQURJZ0pCZjBZTkFDQUJJQUkyQWdnZ0FTZ0NBQVJBQTBBZ0FDQUJJQVZCQW5ScUlnSWlCRUVNYWhBQ0lnTU5Ba0VCSVFNZ0JDZ0NEQ0lHUVg5R0RRSWdCQ0FHUVFGcUlnTTJBZ3dnQkNBRElBRW9BZ1JCQm1wME5nSU1JQUFnQWtHTUFXb1FBaUlERFFKQkFTRURJQUlvQW93QklnUkJmMFlOQWlBQ0lBUkJBV29pQkRZQ2pBRWdBaUFFSUFFb0FnaEJCR3AwTmdLTUFTQUFRUUVRQXlJRVFYOUdEUUlnQWlBRVFRRkdOZ0tNQWlBRlFRRnFJZ1VnQVNnQ0FFa05BQXNMSUFCQkJSQURJZ0pCZjBZTkFDQUJJQUpCQVdvMkFvd0RJQUJCQlJBRElnSkJmMFlOQUNBQklBSkJBV28yQXBBRElBQkJCUkFESWdKQmYwWU5BQ0FCSUFKQkFXbzJBcFFESUFCQkJSQURJZ0JCZjBZTkFDQUJJQUEyQXBnRFFRQWhBd3NnQXd0YkFRTi9JQUFnQUNnQ0FDSUVJQUVnQUNnQ0JDSUNjQ0lEUVFSMGFpQUJJQU5ySWdGQkNIUnFOZ0lNSUFBZ0JDQUNJQUFvQWdoc0lnSkJDSFJxSUFGQkJuUnFJQU5CQTNScUlnRTJBaEFnQUNBQklBSkJCblJxTmdJVUMxVUJBbjhnQVNBQ1FRRnFJZ01nQVNBRFN4c2hBeUFBSUFKQkFuUnFLQUlBSVFRRFFBSkFJQUVnQWtFQmFpSUNUUVJBSUFNaEFnd0JDeUFBSUFKQkFuUnFLQUlBSUFSSERRRUxDMEVBSUFJZ0FTQUNSaHNMSndBZ0FFRUlJQUFvQWdnaUFHc1FBMEYvUmdSQUR3dEJBQ0FBYTBFQ2RFSE1QMm9vQWdBYUMzb0JBbjhqQUVFZ2F5SUNKQUFnQWlBQUtBSVFOZ0lRSUFJZ0FDa0NDRGNEQ0NBQ0lBQXBBZ0EzQXdBQ1FDQUNJQUpCSEdvUUFpSUFEUUFnQWlBQ1FSeHFFQUlpQUEwQUlBSWdBa0VjYWhBQ0lnQU5BRUVCSVFBZ0FpZ0NIQ0lEUWY4QlN3MEFJQUVnQXpZQ0FFRUFJUUFMSUFKQklHb2tBQ0FBQzRzSUFSSi9Jd0JCZ0E1cklnNGtBQ0FHUVFWcUlRa0NRQUpBSUFKQkFFZ05BQ0FEUVFCSURRQWdBaUFKYWlBRVN3MEFJQU1nQjJwQkJXb2dCVXNOQUNBRElBUnNJQUpxSVFvTUFRc2dBQ0FPUWNBS2FpQUNJQU1nQkNBRklBa2dCMEVGYWlBSkVBd2dEa0hBQ21vaEFDQUpJUVFMQWtBZ0IwRUNkaUlRUlEwQUlBbEZEUUFnQkVFQmRDRVNRUUFnQkdzaUMwRUJkQ0VXSUFSQkFuUWdCbXRCQldzaEV5QUFJQXBxSUFScUlnQWdCRUVGYkdvaEFpQU9JQWxCQW5RaUYyb2hBeUFKUVFOMElSaEJleUFHYTBFQ2RDRVpJQWxCQTJ4QkFuUWhHZ05BSUFraEJRTkFJQU1nR0dvZ0FDQVNhaTBBQUNJS0lBSWdFbW90QUFBZ0FpQUVhaTBBQUNJUklBSWdGbW90QUFBaURHb2lEV3NnRFVFQ2RHdHFJQUl0QUFBaUR5QUNJQXRxTFFBQUlnMXFRUlJzYWpZQ0FDQURJQmRxSUFBZ0JHb3RBQUFpRlNBUklBd2dEV29pRkVFRWRHb2dDaUFQYWlJUmEyb2dGQ0FSYTBFQ2RHbzJBZ0FnQXlBQUxRQUFJaEVnRHlBS0lBeHFJaFJCQkhScUlBMGdGV29pRDJ0cUlCUWdEMnRCQW5ScU5nSUFJQU1nR1dvZ0FDQUxhaTBBQUNBTklBb2dGV29pQ2tFRWRHb2dEQ0FSYWlJTWEyb2dDaUFNYTBFQ2RHbzJBZ0FnQUVFQmFpRUFJQU5CQkdvaEF5QUNRUUZxSVFJZ0JVRUJheUlGRFFBTElBSWdFMm9oQWlBQUlCTnFJUUFnQXlBYWFpRURJQkJCQVdzaUVBMEFDd3NDUUNBSFJRMEFJQVpCQW5ZaUVrVU5BRUVRSUFacklROGdEaUFJUVFKMGFrRUlhaUVKSUE1QkZHb2hBZ05BSUFKQkJHc29BZ0FoQUNBQ1FRaHJLQUlBSVFNZ0FrRU1heWdDQUNFR0lBSkJFR3NvQWdBaEJTQUNRUlJyS0FJQUlRd2dFaUVOQTBBZ0FTQUNJZ3NvQWdBaUNDQU1JQU1nQm1vaUFrRUVkR29nQUNBRmFpSUVheUFDSUFSclFRSjBhbXBCZ0FScVFRcDFRYkF1YWkwQUFDQUpJZ1FvQWdCQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBQ0FCSUFzb0FnUWlDaUFGSUFBZ0Eyb2lBa0VFZEdvZ0JpQUlhaUlGYXlBQ0lBVnJRUUowYW1wQmdBUnFRUXAxUWJBdWFpMEFBQ0FFS0FJRVFSQnFRUVYxUWJBdWFpMEFBR3BCQVdwQkFYWTZBQUVnQVNBTEtBSUlJaEFnQmlBQUlBaHFJZ0pCQkhScUlBTWdDbW9pQldzZ0FpQUZhMEVDZEdwcVFZQUVha0VLZFVHd0xtb3RBQUFnQkNnQ0NFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FDSUFFZ0N5Z0NEQ0lUSUFNZ0NDQUthaUlDUVFSMGFpQUFJQkJxSWdOcklBSWdBMnRCQW5ScWFrR0FCR3BCQ25WQnNDNXFMUUFBSUFRb0FneEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQXlBQlFRUnFJUUVnQkVFUWFpRUpJQXRCRUdvaEFpQUFJUXdnQ0NFRklBb2hCaUFRSVFNZ0V5RUFJQTFCQVdzaURRMEFDeUFCSUE5cUlRRWdCRUVrYWlFSklBdEJKR29oQWlBSFFRRnJJZ2NOQUFzTElBNUJnQTVxSkFBTCtnY0JEWDhqQUVHQURtc2lEaVFBSUFaQkJXb2hDUUpBQWtBZ0FrRUFTQTBBSUFOQkFFZ05BQ0FDSUFscUlBUkxEUUFnQjBFRmFpSU5JQU5xSUFWTERRQWdCQ0VKSUFNaENnd0JDeUFBSUE1QndBcHFJQUlnQXlBRUlBVWdDU0FIUVFWcUlnMGdDUkFNSUE1QndBcHFJUUJCQUNFQ0N3SkFJQTFGRFFBZ0JrRUNkaUlTUlEwQUlBa2dCbXNoRXlBQUlBa2dDbXdnQW1wcVFRVnFJUUlnRGlFQUEwQWdBa0VCYXkwQUFDRUpJQUpCQW1zdEFBQWhBeUFDUVFOckxRQUFJUVVnQWtFRWF5MEFBQ0VLSUFKQkJXc3RBQUFoQ3lBU0lROERRQ0FBSUFJdEFBQWlCQ0FMSUFNZ0JXb2lERUVFZEdvZ0NTQUthaUlMYXlBTUlBdHJRUUowYW1vMkFnQWdBQ0FDTFFBQklnd2dDaUFESUFscUlndEJCSFJxSUFRZ0JXb2lDbXRxSUFzZ0NtdEJBblJxTmdJRUlBQWdBaTBBQWlJUUlBVWdCQ0FKYWlJRlFRUjBhaUFESUF4cUlncHJhaUFGSUFwclFRSjBhallDQ0NBQUlBSXRBQU1pRkNBRElBUWdER29pQTBFRWRHb2dDU0FRYWlJRmEyb2dBeUFGYTBFQ2RHbzJBZ3dnQUVFUWFpRUFJQUpCQkdvaEFpQUpJUXNnQkNFS0lBd2hCU0FRSVFNZ0ZDRUpJQTlCQVdzaUR3MEFDeUFDSUJOcUlRSWdEVUVCYXlJTkRRQUxDd0pBSUFkQkFuWWlDa1VOQUNBR1JRMEFRY0FBSUFacklSSWdEaUFHUVFKMGFpSUFJQVpCRkd4cUlRa2dBQ0FJUVFKcUlBWnNRUUowYWlFRFFRQWdCbXNpRkVFRGRDRVRJQVpCQTNRaEFpQUdRUU5zUVFKMElRUURRQ0FHSVEwRFFDQUJJQUFnQW1vb0FnQWlCU0FDSUFscUtBSUFJQWtnQmtFQ2RDSU1haWdDQUNJUklBa2dFMm9vQWdBaUIyb2lDR3NnQ0VFQ2RHdHFJQWtvQWdBaUN5QUpJQlJCQW5RaUQyb29BZ0FpQ0dwQkZHeHFRWUFFYWtFS2RVR3dMbW90QUFBZ0FpQURhaWdDQUVFUWFrRUZkVUd3TG1vdEFBQnFRUUZxUVFGMk9nQXdJQUVnQUNBTWFpZ0NBQ0lRSUJFZ0J5QUlhaUlWUVFSMGFpQUZJQXRxSWhGcklCVWdFV3RCQW5ScWFrR0FCR3BCQ25WQnNDNXFMUUFBSUFNZ0RHb29BZ0JCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUlDQUJJQUFvQWdBaURDQUxJQVVnQjJvaUVVRUVkR29nQ0NBUWFpSUxheUFSSUF0clFRSjBhbXBCZ0FScVFRcDFRYkF1YWkwQUFDQURLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFCQWdBU0FBSUE5cUtBSUFJQWdnQlNBUWFpSUZRUVIwYWlBSElBeHFJZ2RySUFVZ0IydEJBblJxYWtHQUJHcEJDblZCc0M1cUxRQUFJQU1nRDJvb0FnQkJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQUNBRFFRUnFJUU1nQUVFRWFpRUFJQUZCQVdvaEFTQUpRUVJxSVFrZ0RVRUJheUlORFFBTElBRWdFbW9oQVNBRElBUnFJUU1nQkNBSmFpRUpJQUFnQkdvaEFDQUtRUUZySWdvTkFBc0xJQTVCZ0E1cUpBQUxzUVFCQ1g4akFFSEFBMnNpQ3lRQUlBWkJCV29oQ1FKQUFrQWdBa0VBU0EwQUlBTWdCMm9nQlVzTkFDQURRUUJJRFFBZ0FpQUphaUFFU3cwQUlBUWhDU0FESVFvTUFRc2dBQ0FMSUFJZ0F5QUVJQVVnQ1NBSElBa1FEQ0FMSVFCQkFDRUNDd0pBSUFkRkRRQWdCa0VDZGlJT1JRMEFRUkFnQm1zaER5QUpJQVpySVJBZ0FDQUpJQXBzSUFKcWFrRUZhaUVEQTBBZ0EwRUJheTBBQUNFQ0lBTkJBbXN0QUFBaENTQURRUU5yTFFBQUlRQWdBMEVFYXkwQUFDRUtJQU5CQldzdEFBQWhCaUFPSVF3RFFDQUJJQU10QUFBaUJDQUdJQUFnQ1dvaUJVRUVkR29nQWlBS2FpSUdheUFGSUFaclFRSjBhbXBCRUdwQkJYVkJzQzVxTFFBQUlBa2dBQ0FJRzJwQkFXcEJBWFk2QUFBZ0FTQURMUUFCSWdVZ0NpQUNJQWxxSWdaQkJIUnFJQUFnQkdvaUNtdHFJQVlnQ210QkFuUnFRUkJxUVFWMVFiQXVhaTBBQUNBQ0lBa2dDQnRxUVFGcVFRRjJPZ0FCSUFFZ0F5MEFBaUlOSUFBZ0FpQUVhaUlHUVFSMGFpQUZJQWxxSWdCcmFpQUdJQUJyUVFKMGFrRVFha0VGZFVHd0xtb3RBQUFnQkNBQ0lBZ2Jha0VCYWtFQmRqb0FBaUFCSUFNdEFBTWlFU0FKSUFRZ0JXb2lBRUVFZEdvZ0FpQU5haUlHYTJvZ0FDQUdhMEVDZEdwQkVHcEJCWFZCc0M1cUxRQUFJQVVnQkNBSUcycEJBV3BCQVhZNkFBTWdBVUVFYWlFQklBTkJCR29oQXlBQ0lRWWdCQ0VLSUFVaEFDQU5JUWtnRVNFQ0lBeEJBV3NpREEwQUN5QUJJQTlxSVFFZ0F5QVFhaUVESUFkQkFXc2lCdzBBQ3dzZ0MwSEFBMm9rQUF2VUJBRU1meU1BUWNBRGF5SU5KQUFDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBR2FpQUVTdzBBSUFNZ0IycEJCV29nQlVzTkFDQURJQVJzSUFKcUlRa01BUXNnQUNBTklBSWdBeUFFSUFVZ0JpQUhRUVZxSUFZUURDQU5JUUFnQmlFRUN3SkFJQWRCQW5ZaUVVVU5BQ0FHUlEwQVFjQUFJQVpySVJNZ0JFRUJkQ0VGSUFSQkFuUWdCbXNoRGtFQUlBUnJJZzlCQVhRaEZDQUFJQWxxSUFScUlnQWdCRUVGYkdvaEFpQUFJQVFnQ0VFQ2FteHFJUWNEUUNBR0lRTURRQ0FCSUFBZ0JXb3RBQUFpQ0NBQ0lBVnFMUUFBSUFJZ0JHb3RBQUFpQ2lBQ0lCUnFMUUFBSWdscUlndHJJQXRCQW5ScmFpQUNMUUFBSWd3Z0FpQVBhaTBBQUNJTGFrRVViR3BCRUdwQkJYVkJzQzVxTFFBQUlBVWdCMm90QUFCcVFRRnFRUUYyT2dBd0lBRWdBQ0FFYWkwQUFDSVNJQW9nQ1NBTGFpSVFRUVIwYWlBSUlBeHFJZ3BySUJBZ0NtdEJBblJxYWtFUWFrRUZkVUd3TG1vdEFBQWdCQ0FIYWkwQUFHcEJBV3BCQVhZNkFDQWdBU0FBTFFBQUlnb2dEQ0FJSUFscUloQkJCSFJxSUFzZ0Vtb2lER3NnRUNBTWEwRUNkR3BxUVJCcVFRVjFRYkF1YWkwQUFDQUhMUUFBYWtFQmFrRUJkam9BRUNBQklBQWdEMm90QUFBZ0N5QUlJQkpxSWdoQkJIUnFJQWtnQ21vaUNXc2dDQ0FKYTBFQ2RHcHFRUkJxUVFWMVFiQXVhaTBBQUNBSElBOXFMUUFBYWtFQmFrRUJkam9BQUNBSFFRRnFJUWNnQUVFQmFpRUFJQUZCQVdvaEFTQUNRUUZxSVFJZ0EwRUJheUlERFFBTElBRWdFMm9oQVNBSElBNXFJUWNnQWlBT2FpRUNJQUFnRG1vaEFDQVJRUUZySWhFTkFBc0xJQTFCd0FOcUpBQUw0UUVCQkg4Q1FDQUFLQUlvSWdKRkRRQWdBa0VEY1NFRUlBSkJBV3RCQTA4RVFDQUNRWHh4SVFJRFFDQUFLQUlFSUFGQkFuUnFJQUFvQWdBZ0FVRW9iR28yQWdBZ0FDZ0NCQ0FCUVFGeUlnTkJBblJxSUFBb0FnQWdBMEVvYkdvMkFnQWdBQ2dDQkNBQlFRSnlJZ05CQW5ScUlBQW9BZ0FnQTBFb2JHbzJBZ0FnQUNnQ0JDQUJRUU55SWdOQkFuUnFJQUFvQWdBZ0EwRW9iR28yQWdBZ0FVRUVhaUVCSUFKQkJHc2lBZzBBQ3dzZ0JFVU5BQU5BSUFBb0FnUWdBVUVDZEdvZ0FDZ0NBQ0FCUVNoc2FqWUNBQ0FCUVFGcUlRRWdCRUVCYXlJRURRQUxDd3VCQ0FFTWZ5QUJLQUlJSVFzZ0FTZ0NCQ0VGQWtBQ1FBSkFJQUlPQmdFQUFBQUFBUUFMSUFBb0FyZ2FEUUFNQVFzZ0FFSEVDV29oQkFOQUlBUWdBeEFUSVFZZ0EwRU9TdzBCSUFOQkFXb2hBeUFHUlEwQUN3c0NRQUpBQWtBQ1FBSkFBa0FnQUNnQ21Ba2lDRVVFUUNBSVJTRURRUUFoQkF3QkN5QUFLQUs4Q1NFS1FRQWhBMEVBSVFRRFFDQUtJQU5CMkFGc2FpZ0N4QUVFUUNBRElBaEdJUU1NQWd0QkFDQUVRUUZxSWdRZ0JDQUZSaUlIR3lFRUlBY2dDV29oQ1NBRFFRRnFJZ01nQ0VjTkFBc01BUXNnQTBVTkFRc0NRQUpBQWtBZ0FrRUNhdzRHQUFFQkFRRUFBUXNnQmtVTkFTQUFLQUs0R2tVTkFRd0RDeUFHRFFJTElBRW9BZ0JCZ0FFZ0JTQUxiRUdBQTJ3UUJCb01BZ3NnQUNnQ3ZBa2dCU0FKYkVIWUFXeHFJUWdnQkFSQUlBUWhBd05BSUFnZ0EwRUJheUlEUWRnQmJHb2lDaUFCSUFrZ0F5QUNJQVlRRlNBS1FRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpJQU1OQUFzTElBVWdCRUVCYWlJRFN3UkFBMEFnQ0NBRFFkZ0JiR29pQkNnQ3hBRkZCRUFnQkNBQklBa2dBeUFDSUFZUUZTQUVRUUUyQXNRQklBQWdBQ2dDdEFsQkFXbzJBclFKQ3lBRFFRRnFJZ01nQlVjTkFBc0xJQWtFUUNBRlJRMERJQWxCQW1zaENFRUFJUWNnQ1VFQmF5SU1JQVZzUWRnQmJDRU5RUUFnQld0QjJBRnNJUTREUUNBQUtBSzhDU0FOYWlBSFFkZ0JiR29pQXlBQklBd2dCeUFDSUFZUUZTQURRUUUyQXNRQklBQWdBQ2dDdEFsQkFXbzJBclFKSUFnaEJDQU1CRUFEUUNBRElBNXFJZ01nQVNBRUlnb2dCeUFDSUFZUUZTQURRUUUyQXNRQklBQWdBQ2dDdEFsQkFXbzJBclFKSUFSQkFXc2hCQ0FLRFFBTEN5QUhRUUZxSWdjZ0JVY05BQXNMSUFsQkFXb2lCeUFMVHcwQ0lBVkZEUUlEUUNBQUtBSzhDU0FGSUFkc1FkZ0JiR29oQ0VFQUlRTURRQ0FJSUFOQjJBRnNhaUlFS0FMRUFVVUVRQ0FFSUFFZ0J5QURJQUlnQmhBVklBUkJBVFlDeEFFZ0FDQUFLQUswQ1VFQmFqWUN0QWtMSUFOQkFXb2lBeUFGUncwQUN5QUhRUUZxSWdjZ0MwY05BQXNNQWdzZ0FTZ0NBQ0FHSUFVZ0MyeEJnQU5zRUFnYUN5QUFJQUFvQXBnSklnRTJBclFKSUFGRkRRQWdBVUVIY1NFRUlBQW9BcndKSVFCQkFDRURJQUZCQVd0QkIwOEVRQ0FCUVhoeElRWURRQ0FBSUFOQjJBRnNha0VCTmdJSUlBQWdBMEVCY2tIWUFXeHFRUUUyQWdnZ0FDQURRUUp5UWRnQmJHcEJBVFlDQ0NBQUlBTkJBM0pCMkFGc2FrRUJOZ0lJSUFBZ0EwRUVja0hZQVd4cVFRRTJBZ2dnQUNBRFFRVnlRZGdCYkdwQkFUWUNDQ0FBSUFOQkJuSkIyQUZzYWtFQk5nSUlJQUFnQTBFSGNrSFlBV3hxUVFFMkFnZ2dBMEVJYWlFRElBWkJDR3NpQmcwQUN3c2dCRVVOQUFOQUlBQWdBMEhZQVd4cVFRRTJBZ2dnQTBFQmFpRURJQVJCQVdzaUJBMEFDd3NMcndvQ0NuOENmaU1BUVJCcklRY2dBVUVJVHdSQVFRY2hCZ05BSUFBZ0JrRW9iR29pQWlnQ0dDRUtJQUlwQWd3aERDQUNLQUlJSVFnZ0Fpa0NBQ0VOSUFJb0FoUWhDU0FISUFJb0FpUTJBZ2dnQnlBQ0tRSWNOd01BQWtBZ0NRUkFJQWxCQVdzaEN5QUdJUUlEUUFKQUlBQWdBa0VvYkdvaUJVR0VBbXNvQWdBaUEwVU5BQ0FGUVpnQ2F5RUVJQU5CQVd0QkFVMEVRQ0FMUVFGTERRUWdCQ2dDQ0NBSVNBMEJEQVFMSUF0QkFra05BQ0FFS0FJSUlBaE1EUU1MSUFVZ0FDQUNRUWRySWdKQktHeHFJZ01wQWdBM0FnQWdCU0FES1FJZ053SWdJQVVnQXlrQ0dEY0NHQ0FGSUFNcEFoQTNBaEFnQlNBREtRSUlOd0lJSUFKQkJrc05BQXNNQVFzZ0JpRUNJQXBGRFFBRFFDQUFJQUpCS0d4cUlnUkJoQUpyS0FJQURRRWdCRUdZQW1zb0FoZ05BU0FFSUFBZ0FrRUhheUlDUVNoc2FpSURLUUlBTndJQUlBUWdBeWtDSURjQ0lDQUVJQU1wQWhnM0FoZ2dCQ0FES1FJUU53SVFJQVFnQXlrQ0NEY0NDQ0FDUVFkUERRQUxDeUFBSUFKQktHeHFJZ0lnQ2pZQ0dDQUNJQWsyQWhRZ0FpQU1Od0lNSUFJZ0NEWUNDQ0FDSUEwM0FnQWdBaUFIS1FNQU53SWNJQUlnQnlnQ0NEWUNKQ0FHUVFGcUlnWWdBVWNOQUFzTElBRkJCRThFUUVFRElRWURRQ0FBSUFaQktHeHFJZ0lvQWhnaENpQUNLUUlNSVF3Z0FpZ0NDQ0VJSUFJcEFnQWhEU0FDS0FJVUlRa2dCeUFDS0FJa05nSUlJQWNnQWlrQ0hEY0RBQUpBSUFrRVFDQUpRUUZySVFzZ0JpRUNBMEFDUUNBQUlBSkJLR3hxSWdWQjVBQnJLQUlBSWdORkRRQWdCVUg0QUdzaEJDQURRUUZyUVFKUEJFQWdDMEVDU1EwQklBUW9BZ2dnQ0VvTkFRd0VDeUFMUVFGTERRTWdCQ2dDQ0NBSVRnMERDeUFGSUFBZ0FrRURheUlDUVNoc2FpSURLUUlBTndJQUlBVWdBeWtDSURjQ0lDQUZJQU1wQWhnM0FoZ2dCU0FES1FJUU53SVFJQVVnQXlrQ0NEY0NDQ0FDUVFOUERRQUxEQUVMSUFZaEFpQUtSUTBBQTBBZ0FDQUNRU2hzYWlJRVFlUUFheWdDQUEwQklBUkIrQUJyS0FJWURRRWdCQ0FBSUFKQkEyc2lBa0VvYkdvaUF5a0NBRGNDQUNBRUlBTXBBaUEzQWlBZ0JDQURLUUlZTndJWUlBUWdBeWtDRURjQ0VDQUVJQU1wQWdnM0FnZ2dBa0VDU3cwQUN3c2dBQ0FDUVNoc2FpSUNJQW8yQWhnZ0FpQUpOZ0lVSUFJZ0REY0NEQ0FDSUFnMkFnZ2dBaUFOTndJQUlBSWdCeWtEQURjQ0hDQUNJQWNvQWdnMkFpUWdCa0VCYWlJR0lBRkhEUUFMQ3lBQlFRSlBCRUJCQVNFR0EwQWdBQ0FHUVNoc2FpSUNLQUlZSVFvZ0Fpa0NEQ0VNSUFJb0FnZ2hDQ0FDS1FJQUlRMGdBaWdDRkNFSklBY2dBaWdDSkRZQ0NDQUhJQUlwQWh3M0F3QUNRQUpBSUFrRVFDQUpRUUZySVFzZ0JpRUNBMEFDUUNBQUlBSkJLR3hxSWdWQkZHc29BZ0FpQTBVTkFDQUZRU2hySVFRZ0EwRUJhMEVDVHdSQUlBdEJBa2tOQVNBRUtBSUlJQWhLRFFFTUJRc2dDMEVCU3cwRUlBUW9BZ2dnQ0U0TkJBc2dCU0FBSUFKQkFXc2lBa0VvYkdvaUF5a0NBRGNDQUNBRklBTXBBaUEzQWlBZ0JTQURLUUlZTndJWUlBVWdBeWtDRURjQ0VDQUZJQU1wQWdnM0FnZ2dBZzBBQ3d3QkN5QUdJUUlnQ2tVTkFRTkFJQUFnQWtFb2JHb2lCRUVVYXlnQ0FBMENJQVJCS0dzb0FoZ05BaUFFSUFBZ0FrRUJheUlDUVNoc2FpSURLUUlBTndJQUlBUWdBeWtDSURjQ0lDQUVJQU1wQWhnM0FoZ2dCQ0FES1FJUU53SVFJQVFnQXlrQ0NEY0NDQ0FDRFFBTEMwRUFJUUlMSUFBZ0FrRW9iR29pQWlBS05nSVlJQUlnQ1RZQ0ZDQUNJQXczQWd3Z0FpQUlOZ0lJSUFJZ0RUY0NBQ0FDSUFjcEF3QTNBaHdnQWlBSEtBSUlOZ0lrSUFaQkFXb2lCaUFCUncwQUN3c0wvZ1lCQjM4Q1FDQUFLQUlBSWdFb0FoUkZEUUFnQVVFQU5nSVVJQUVvQWhnTkFDQUFJQUFvQWl4QkFXczJBaXdMQWtBZ0FTZ0NQRVVOQUNBQlFRQTJBandnQVVGQWF5Z0NBQTBBSUFBZ0FDZ0NMRUVCYXpZQ0xBc0NRQ0FCS0FKa1JRMEFJQUZCQURZQ1pDQUJLQUpvRFFBZ0FDQUFLQUlzUVFGck5nSXNDd0pBSUFFb0Fvd0JSUTBBSUFGQkFEWUNqQUVnQVNnQ2tBRU5BQ0FBSUFBb0FpeEJBV3MyQWl3TEFrQWdBU2dDdEFGRkRRQWdBVUVBTmdLMEFTQUJLQUs0QVEwQUlBQWdBQ2dDTEVFQmF6WUNMQXNDUUNBQktBTGNBVVVOQUNBQlFRQTJBdHdCSUFFb0F1QUJEUUFnQUNBQUtBSXNRUUZyTmdJc0N3SkFJQUVvQW9RQ1JRMEFJQUZCQURZQ2hBSWdBU2dDaUFJTkFDQUFJQUFvQWl4QkFXczJBaXdMQWtBZ0FTZ0NyQUpGRFFBZ0FVRUFOZ0tzQWlBQktBS3dBZzBBSUFBZ0FDZ0NMRUVCYXpZQ0xBc0NRQ0FCS0FMVUFrVU5BQ0FCUVFBMkF0UUNJQUVvQXRnQ0RRQWdBQ0FBS0FJc1FRRnJOZ0lzQ3dKQUlBRW9BdndDUlEwQUlBRkJBRFlDL0FJZ0FTZ0NnQU1OQUNBQUlBQW9BaXhCQVdzMkFpd0xBa0FnQVNnQ3BBTkZEUUFnQVVFQU5nS2tBeUFCS0FLb0F3MEFJQUFnQUNnQ0xFRUJhellDTEFzQ1FDQUJLQUxNQTBVTkFDQUJRUUEyQXN3RElBRW9BdEFERFFBZ0FDQUFLQUlzUVFGck5nSXNDd0pBSUFFb0F2UURSUTBBSUFGQkFEWUM5QU1nQVNnQytBTU5BQ0FBSUFBb0FpeEJBV3MyQWl3TEFrQWdBU2dDbkFSRkRRQWdBVUVBTmdLY0JDQUJLQUtnQkEwQUlBQWdBQ2dDTEVFQmF6WUNMQXNDUUNBQktBTEVCRVVOQUNBQlFRQTJBc1FFSUFFb0FzZ0VEUUFnQUNBQUtBSXNRUUZyTmdJc0N3SkFJQUVvQXV3RVJRMEFJQUZCQURZQzdBUWdBU2dDOEFRTkFDQUFJQUFvQWl4QkFXczJBaXdMQTBBQ2YwRUFJUUZCQVNFQ0FrQWdBQ2dDT0EwQUlBQW9BZ0FoQlNBQUtBSWNJUVpCLy8vLy93Y2hBMEVBSVFJRFFDQUZJQUpCS0d4cUlnUW9BaGdFUUNBRUlBRWdCQ2dDRUNJRUlBTklJZ2NiSVFFZ0JDQURJQWNiSVFNTElBSkJBV29pQWlBR1RRMEFDMEVCSUFGRkRRRWFJQUFvQWd3Z0FDZ0NFQ0lEUVFSMGFpSUNJQUVvQWdBMkFnQWdBaUFCS0FJa05nSU1JQUlnQVNnQ0hEWUNCQ0FDSUFFb0FpQTJBZ2dnQUNBRFFRRnFOZ0lRUVFBaEFpQUJRUUEyQWhnZ0FTZ0NGQTBBSUFBZ0FDZ0NMRUVCYXpZQ0xBc2dBZ3RGRFFBTElBQkJBRFlDTUNBQVF2Ly9BemNDSkF2Z0R3RUpmeUFDS0FJQUlBQW9BZ2dpQWlnQ0FFWUVRQ0FBUVFBMkFqUWdBQ2dDT0NJSlJTRVFBa0FnQVVVRVFDQUNJQU0yQWd3Z0FrRUFOZ0lVSUFJZ0VEWUNHQ0FDSUFRMkFoQWdBaUFETmdJSUlBa05BU0FBSUFBb0FpeEJBV28yQWl3TUFRc2dCUVJBSUFCQ0FEY0NFQ0FBRUNjQ1FDQUJLQUlBUlFSQUlBQW9BamhGRFFFTElBQkNBRGNDRUFzZ0FDZ0NDQ0lDUVFOQkFpQUJLQUlFSWdFYk5nSVVJQUJCQUVILy93TWdBUnMyQWlRZ0FpQVFOZ0lZSUFKQkFEWUNFQ0FDUWdBM0FnZ2dBRUtCZ0lDQUVEY0NLQXdCQ3dKQUFrQUNRQUpBSUFFb0FnZ0VRQU5BQWtBQ1FBSkFBa0FDUUFKQUFrQWdBU0FLUVJSc2FpSUlLQUlNSWdrT0J3a0FBUUlEQkFVSkN5QUFLQUlZSWdsRkRRZ2dBeUFJS0FJUWF5RUxJQUFvQWdBaERFRUFJUWdEUUFKQUlBd2dDRUVvYkdvaUFpZ0NGRUVCYTBFQlRRUkFJQUlvQWdnZ0MwWU5BUXNnQ0VFQmFpSUlJQWxIRFFFTUNnc0xJQWhCQUVnTkNDQUNRUUEyQWhRZ0FDQUFLQUlvUVFGck5nSW9JQUlvQWhnTkJTQUFJQUFvQWl4QkFXczJBaXdnQ2tFQmFpRUtEQVlMSUFBb0FoZ2lDVVVOQnlBSUtBSVVJUXNnQUNnQ0FDRU1RUUFoQ0FOQUFrQWdEQ0FJUVNoc2FpSUNLQUlVUVFOR0JFQWdBaWdDQ0NBTFJnMEJDeUFJUVFGcUlnZ2dDVWNOQVF3SkN3c2dDRUVBU0EwSElBSkJBRFlDRkNBQUlBQW9BaWhCQVdzMkFpZ2dBaWdDR0EwRUlBQWdBQ2dDTEVFQmF6WUNMQ0FLUVFGcUlRb01CUXNnQUNnQ0pDSUNRZi8vQTBZTkJpQUlLQUlZSWdzZ0Frc05CaUFBS0FJWUlnbEZEUVlnQ0NnQ0VDRVBJQUFvQWdBaERFRUFJUUlEUUFKQUFrQWdEQ0FDUVNoc2FpSUlLQUlVUVFOSERRQWdDQ2dDQ0NBTFJ3MEFJQWhCQURZQ0ZDQUFJQUFvQWloQkFXczJBaWdnQ0NnQ0dBMEJJQUFnQUNnQ0xFRUJhellDTEF3QkN5QUNRUUZxSWdJZ0NVY05BUXNMSUFsQkFTQUpRUUZMR3lFSklBTWdEMnNoRDBFQUlRZ0RRQUpBSUF3Z0NFRW9iR29pQWlnQ0ZDSU5RUUZyUVFGTkJFQWdBaWdDQ0NBUFJnMEJDeUFJUVFGcUlnZ2dDVWNOQVF3SUN3c2dDRUVBU0EwR0lBMUJBa2tOQmlBQ1FRTTJBaFFnQWlBTE5nSUlJQXBCQVdvaENnd0VDeUFBSUFnb0Fod2lDRFlDSkNBQUtBSVlJZ3RGRFFJZ0FDZ0NBQ0VNUVFBaEFpQUlRZi8vQTBZRVFBTkFBa0FnRENBQ1FTaHNhaUlKS0FJVVFRTkhEUUFnQ1VFQU5nSVVJQUFnQUNnQ0tFRUJhellDS0NBSktBSVlEUUFnQUNBQUtBSXNRUUZyTmdJc0N5QUNRUUZxSWdJZ0MwY05BQXdFQ3dBTEEwQUNRQ0FNSUFKQktHeHFJZ2tvQWhSQkEwY05BQ0FKS0FJSUlBaE5EUUFnQ1VFQU5nSVVJQUFnQUNnQ0tFRUJhellDS0NBSktBSVlEUUFnQUNBQUtBSXNRUUZyTmdJc0N5QUNRUUZxSWdJZ0MwY05BQXNNQWdzZ0FCQW5JQUJCQVRZQ05FRUFJUU1nQ2tFQmFpRUtEQUlMSUFBb0FpUWlBa0gvL3dOR0RRTWdDQ2dDR0NJSUlBSkxEUU1DUUNBQUtBSVlJZ3RGRFFBZ0FDZ0NBQ0VNUVFBaEFnTkFBa0FnRENBQ1FTaHNhaUlKS0FJVVFRTkhEUUFnQ1NnQ0NDQUlSdzBBSUFsQkFEWUNGQ0FBSUFBb0FpaEJBV3MyQWlnZ0NTZ0NHQTBDSUFBZ0FDZ0NMRUVCYXpZQ0xBd0NDeUFDUVFGcUlnSWdDMGNOQUFzTElBc2dBQ2dDS0NJSlRRMERJQUFvQWdnaUFrRUROZ0lVSUFJZ0JEWUNFQ0FDSUFnMkFnZ2dBaUFETmdJTUlBSWdBQ2dDT0VVMkFoaEJBU0VPSUFBZ0NVRUJhallDS0NBQUlBQW9BaXhCQVdvMkFpd0xJQXBCQVdvaENnd0FDd0FMUVFBaEFpQUFLQUlvSWdvZ0FDZ0NHQ0lNU1EwQ0lBcEZCRUJCQUNFS0RBTUxJQXBCQVhFaER5QUFLQUlBSVFzZ0NrRUJSZ1JBUVg4aEFRd0NDeUFLUVg1eElRbEJmeUVCQTBBZ0N5QUNRU2hzYWlJTktBSVVRUUZyUVFGTkJFQWdEU2dDQ0NJTklBZ2dBVUYvUmlBSUlBMUtjaUlOR3lFSUlBSWdBU0FOR3lFQkN5QUxJQUpCQVhJaURVRW9iR29pRGlnQ0ZFRUJhMEVDU1FSQUlBNG9BZ2dpRGlBSUlBRkJmMFlnQ0NBT1NuSWlEaHNoQ0NBTklBRWdEaHNoQVFzZ0FrRUNhaUVDSUFsQkFtc2lDUTBBQ3d3QkN5QU9EUUlnQUNnQ0dDRU1JQUFvQWlnaENnd0JDd0pBSUE5RkRRQWdDeUFDUVNoc2FpSUpLQUlVUVFGclFRRkxEUUFnQWlBQ0lBRWdDU2dDQ0NBSVNCc2dBVUYvUmhzaEFRc2dBVUVBU0EwQUlBc2dBVUVvYkdvaUFVRUFOZ0lVSUFBZ0NrRUJheUlLTmdJb0lBRW9BaGdOQUNBQUlBQW9BaXhCQVdzMkFpd0xJQW9nREU4TkFTQUFLQUlJSWdFZ0VEWUNHQ0FCUVFJMkFoUWdBU0FFTmdJUUlBRWdBellDQ0NBQklBTTJBZ3dnQUNBS1FRRnFOZ0lvSUFBZ0FDZ0NMRUVCYWpZQ0xBc0xJQUFvQWdnaUFTQUhOZ0lnSUFFZ0JqWUNIQ0FCSUFVMkFpUUNRQ0FBS0FJNFJRUkFJQUFvQWl3aUFTQUFLQUljSWdOTkRRRWdBQ2dDQUNFSEEwQkIvLy8vL3djaEJVRUFJUVpCQUNFQ0EwQWdCeUFDUVNoc2FpSUVLQUlZQkVBZ0JDQUdJQVFvQWhBaUJDQUZTQ0lKR3lFR0lBUWdCU0FKR3lFRkN5QUNRUUZxSWdJZ0EwME5BQXNDUUNBR1JRMEFJQUFvQWd3Z0FDZ0NFQ0lFUVFSMGFpSUNJQVlvQWdBMkFnQWdBaUFHS0FJa05nSU1JQUlnQmlnQ0hEWUNCQ0FDSUFZb0FpQTJBZ2dnQUNBRVFRRnFOZ0lRSUFaQkFEWUNHQ0FHS0FJVURRQWdBQ0FCUVFGcklnRTJBaXdMSUFFZ0Ewc05BQXNNQVFzZ0FTZ0NBQ0VDSUFBb0Fnd2dBQ2dDRUNJRFFRUjBhaUlCSUFVMkFnd2dBU0FDTmdJQUlBRWdCellDQ0NBQklBWTJBZ1FnQUNBRFFRRnFOZ0lRSUFBb0Fod2hBd3NnQUNnQ0FDQURRUUZxRUNZTEMxNEJBWDhnQUVIRUNXb2lBQ2dDRkNJRUlBQW9BaEJKQkg4Z0FDQUVRUUZxTmdJVUlBQW9BZ3dnQkVFRWRHb0ZRUUFMSWdCRkJFQkJBQThMSUFFZ0FDZ0NCRFlDQUNBQ0lBQW9BZ3cyQWdBZ0F5QUFLQUlJTmdJQUlBQW9BZ0FMdEFNQkEzOERRQ0FBSUFKQkFuUnFJZ0VvQWhRaUF3UkFJQU1vQWlnUUJTQUJLQUlVUVFBMkFpZ2dBU2dDRkNnQ1ZCQUZJQUVvQWhSQkFEWUNWQ0FCS0FJVUVBVWdBVUVBTmdJVUN5QUNRUUZxSWdKQklFY05BQXRCQUNFQ0EwQWdBQ0FDUVFKMGFpSUJLQUtVQVNJREJFQWdBeWdDRkJBRklBRW9BcFFCUVFBMkFoUWdBU2dDbEFFb0FoZ1FCU0FCS0FLVUFVRUFOZ0lZSUFFb0FwUUJLQUljRUFVZ0FTZ0NsQUZCQURZQ0hDQUJLQUtVQVNnQ0xCQUZJQUVvQXBRQlFRQTJBaXdnQVNnQ2xBRVFCU0FCUVFBMkFwUUJDeUFDUVFGcUlnSkJnQUpIRFFBTElBQW9BckFhRUFVZ0FFRUFOZ0t3R2lBQUtBSzhDUkFGSUFCQkFEWUN2QWtnQUNnQ2xBa1FCU0FBUVFBMkFwUUpJQUFvQXJ3YUlnRUVRQ0FCRUFVZ0FFRUFOZ0s4R2d0QkFDRUJRUUFoQXdKQUlBQkJ4QWxxSWdJb0FnQWlBRVVOQUNBQ0tBSWNRWDlHQkVBZ0FDRUJEQUVMSUFBaEFRTkFJQUVnQTBFb2JDSUFhaWdDQkJBRklBSW9BZ0FpQVNBQWFrRUFOZ0lFSUFOQkFXb2lBeUFDS0FJY1FRRnFTUTBBQ3dzZ0FSQUZJQUpCQURZQ0FDQUNLQUlFRUFVZ0FrRUFOZ0lFSUFJb0Fnd1FCU0FDUVFBMkFnd0wvdEVEQWtOL0FuNGpBRUdRQVdzaUdDUUFJQmhCQURZQ0RBSkFBa0FDUUNBQUtBS1FHa1VOQUNBQUtBS1VHaUFCUncwQUlCZ2dBRUdzR21vb0FnQTJBaUFnR0NBQVFhUWFhaWtDQURjREdDQUFLUUtjR2lGSUlCaEJBRFlDSUNBWVFRQTJBaGdnR0NCSU53TVFJQmdnU0Q0Q0ZDQUVJQUFvQXBnYU5nSUFEQUVMUVFZaElnSi9JQUVoQ0FKQUFrQWdBa0VFU1EwQUlBZ3RBQUFOQUNBSUxRQUJEUUFnQ0MwQUFpSU5RUUZMRFFCQkF5RUdJQWhCQTJvaEJVRUNJUWNDUUFOQUlBVWhDU0FOUWY4QmNTSUJCSDlCQUNFTklBRkJBVVpCQUNBSFFRRkxHdzBDUVFBRklBZEJBV29MSVFjZ0NVRUJhaUVGSUFrdEFBQWhEU0FHUVFGcUlnWWdBa2NOQUFzZ0JDQUNOZ0lBUVFFTUF3c2dCaUVCUVFBaEIwRUFJUVVEUUVFQklBY2dEU0FKTFFBQUlncEZhaUlMUVFKR0d5QUhJQXBCQTBZYklRY0NRQ0FLUVFGSERRQWdDMEVDU1EwQUlCZ2dBU0FHSUF0cWF5SUNOZ0ljUVFBZ0MwRURheUlCSUFFZ0Mwc2JJUTBNQXd0QkFDQUxJQW9iSVExQkFTQUZJQXRCQWtzYklBVWdDaHNoQlNBSlFRRnFJUWtnQVVFQmFpSUJJQUpIRFFBTElCZ2dBaUFHSUExcWF5SUNOZ0ljREFFTElCZ2dBallDSEVFQklRZEJBQ0VOQ3lBWVFRQTJBaUFnR0VFQU5nSVlJQmdnQmlBSWFpSUJOZ0lVSUJnZ0FUWUNFQ0FFSUFZZ0RXb2dBbW8yQWdCQkFTRU5Ba0FnQlEwQVFRQWhEU0FIUlEwQUlCZ0NmeUFZS0FJY0lnWkZCRUFnQVNFQ1FRQU1BUXNnQVNFQ1FRQWhDUU5BSUFaQkFXc2hCaUFDTFFBQUlRVUNmd0pBSUFsQkFrY05BQ0FGUVFOR0JFQkJBU0FHUlEwR0drRUJJQUl0QUFGQkEwc05CaHBCQUNFSklBSkJBV29NQWdzZ0JVRURUdzBBUVFFTUJRc2dBU0FGT2dBQVFRQWdDVUVCYWlBRkd5RUpJQUZCQVdvaEFTQUNRUUZxQ3lFQ0lBWU5BQXNnR0NnQ0hBc2dBU0FDYTJvMkFod0xJQTBMRFFFZ0FDQVlLUU1RTndLY0dpQUFRYXdhYWlBWUtBSWdOZ0lBSUFCQnBCcHFJQmdwQXhnM0FnQWdCQ2dDQUNFQklBQWdDRFlDbEJvZ0FDQUJOZ0tZR2dzZ0FFRUFOZ0tRR2tFSElTSkJBU0VDQWtBZ0dFRVFhaUlCUVFFUUEwRi9SZzBBSUJnZ0FVRUNFQU0yQW93QklCZ2dBVUVGRUFNaUFUWUNpQUVnQVVFQ2EwRURTUTBBQWtBZ0FVRU1TdzBBUVFFZ0FYUWlDVUhBUEhGRkJFQWdDVUdnQTNGRkRRRWdHQ2dDakFGRkRRSWdBVUVHUncwQkRBSUxJQmdvQW93QkRRRUxRUUFoQWdzZ0FnMEFJQmdvQW9nQlFRRnJRUXRMQkVCQkFDRWlEQUVMQW44Z0dFRVFhaUVHUVFBaENTTUFRU0JySWdVa0FDQVlRUUEyQWd3Q1FDQVlLQUtJQVNJQlFSSkxEUUJCQVNBQmRDSUJRY0RmSDNGRkJFQWdBVUVpY1VVTkFTQUFRYlFLYWlnQ0FBUkFJQmhCQVRZQ0RDQUFRUUEyQXJRS0N5QUdJQVZCSEdvUUh5SUpEUUZCOFA4RElRa2dBQ0FGS0FJY1FRSjBhaWdDbEFFaURVVU5BU0FBSUEwb0FnUWlBVUVDZEdvb0FoUWlDRVVOQVFKQUlBQW9BZ2dpQWtFZ1JnMEFJQUVnQWtZTkFDQVlLQUtJQVVFRlJ3MENDd0pBSUFCQm1BcHFLQUlBSWdFZ0dDZ0NqQUVpQWtZTkFDQUJRUUFnQWhzTkFDQVlRUUUyQWd3TElCZ29Bb2dCSVFFQ1FBSkFJQUFvQXBRS1FRVkdCRUFnQVVFRlJ3MEJEQUlMSUFGQkJVY05BUXNnR0VFQk5nSU1DMEVCSVFrZ0NDZ0NEQ0VMSXdCQklHc2lCeVFBSUFjZ0JpZ0NFRFlDRUNBSElBWXBBZ2czQXdnZ0J5QUdLUUlBTndNQUFrQWdCeUFIUVJ4cUVBSWlBUTBBSUFjZ0IwRWNhaEFDSWdFTkFDQUhJQWRCSEdvUUFpSUJEUUJCQUNFQkEwQWdBU0lDUVFGcUlRRWdDeUFDZGcwQUN5QUhJQUpCQVdzUUF5SUJRWDlHQkVCQkFTRUJEQUVMSUFVZ0FUWUNHRUVBSVFFTElBZEJJR29rQUNBQkRRRWdCU2dDR0NJQklBQkJuQXBxS0FJQVJ3UkFJQUFnQVRZQ25Bb2dHRUVCTmdJTUN5QVlLQUtJQVVFRlJnUkFJQWdvQWd3aEN5QUZRUlJxSVFvakFFRWdheUlISkFBZ0J5QUdLQUlRTmdJUUlBY2dCaWtDQURjREFDQUhJQVlwQWdnM0F3Z0NRQ0FISUFkQkhHb1FBaUlCRFFBZ0J5QUhRUnhxRUFJaUFRMEFJQWNnQjBFY2FoQUNJZ0VOQUVFQUlRRURRQ0FCSWdKQkFXb2hBU0FMSUFKMkRRQUxJQWNnQWtFQmF4QURRWDlHQkVCQkFTRUJEQUVMSUFjZ0NoQUNJUUVMSUFkQklHb2tBQ0FCRFFJQ1FDQUFLQUtVQ2tFRlJ3UkFJQVVvQWhRaEFRd0JDeUFBUWFBS2FpZ0NBQ0lCSUFVb0FoUWlBa1lOQUNBWVFRRTJBZ3dnQWlFQkN5QUFRYUFLYWlBQk5nSUFDd0pBQWtBQ1FDQUlLQUlRRGdJQUFRSUxJQmdvQW9nQklRc2pBRUVnYXlJSEpBQWdCeUFHS0FJUU5nSVFJQWNnQmlrQ0NEY0RDQ0FISUFZcEFnQTNBd0FDUUNBSElBZEJIR29RQWlJQkRRQWdCeUFIUVJ4cUVBSWlBUTBBSUFjZ0IwRWNhaEFDSWdFTkFDQUlLQUlNSVFwQkFDRUJBMEFnQVNJQ1FRRnFJUUVnQ2lBQ2RnMEFDeUFISUFKQkFXc1FBMEYvUmdSQVFRRWhBUXdCQ3lBTFFRVkdCRUFnQnlBSFFSeHFFQUlpQVEwQkN5QUlLQUlVSVF0QkFDRUJBMEFnQVNJQ1FRRnFJUUVnQ3lBQ2RnMEFDeUFISUFKQkFXc1FBeUlCUVg5R0JFQkJBU0VCREFFTElBVWdBVFlDQ0VFQUlRRUxJQWRCSUdva0FDQUJEUU1nQlNnQ0NDSUJJQUJCcEFwcUtBSUFSd1JBSUFBZ0FUWUNwQW9nR0VFQk5nSU1DeUFOS0FJSVJRMEJJQmdvQW9nQklRY2dCVUVRYWlFTkl3QkJJR3NpQ1NRQUlBa2dCaWdDRURZQ0VDQUpJQVlwQWdnM0F3Z2dDU0FHS1FJQU53TUFBa0FnQ1NBSlFSeHFFQUlpQVEwQUlBa2dDVUVjYWhBQ0lnRU5BQ0FKSUFsQkhHb1FBaUlCRFFBZ0NDZ0NEQ0VHUVFBaEFRTkFJQUVpQWtFQmFpRUJJQVlnQW5ZTkFBc2dDU0FDUVFGckVBTkJmMFlFUUVFQklRRU1BUXNnQjBFRlJnUkFJQWtnQ1VFY2FoQUNJZ0VOQVFzZ0NDZ0NGQ0VHUVFBaEFRTkFJQUVpQWtFQmFpRUJJQVlnQW5ZTkFBc2dDU0FDUVFGckVBTkJmMFlFUUVFQklRRU1BUXNnQ1NBTkVBWWhBUXNnQ1VFZ2FpUUFJQUVpQ1EwRElBVW9BaEFpQVNBQVFhZ0thaWdDQUVZTkFTQUFJQUUyQXFnS0lCaEJBVFlDREF3QkN5QUlLQUlZRFFBZ0dDZ0NpQUVoQ3lBTktBSUlJUW9nQlVFSWFpRUhJd0JCSUdzaUNTUUFJQWtnQmlnQ0VEWUNFQ0FKSUFZcEFnZzNBd2dnQ1NBR0tRSUFOd01BQWtBZ0NTQUpRUnhxRUFJaUFRMEFJQWtnQ1VFY2FoQUNJZ0VOQUNBSklBbEJIR29RQWlJQkRRQWdDQ2dDRENFR1FRQWhBUU5BSUFFaUFrRUJhaUVCSUFZZ0FuWU5BQXNnQ1NBQ1FRRnJFQU5CZjBZRVFFRUJJUUVNQVFzZ0MwRUZSZ1JBSUFrZ0NVRWNhaEFDSWdFTkFRc2dDU0FIRUFZaUFRMEFJQW9FUUNBSklBZEJCR29RQmlJQkRRRUxRUUFoQVFzZ0NVRWdhaVFBSUFFaUNRMENJQVVvQWdnaUFTQUFRYXdLYWlnQ0FFY0VRQ0FBSUFFMkFxd0tJQmhCQVRZQ0RBc2dEU2dDQ0VVTkFDQUZLQUlNSWdFZ0FFR3dDbW9vQWdCR0RRQWdBQ0FCTmdLd0NpQVlRUUUyQWd3TElBQWdHQ2tDaUFFM0FwUUtRUUFoQ1F3QkN5QVlRUUUyQWd3TElBVkJJR29rQUNBSkN3UkFRUVFoSWlBSlFmRC9BMFlOQVVFSUlTSU1BUXNDUUNBWUtBSU1CRUFDUUNBQUtBS2dDVVVOQUNBQUtBSVFSUTBBUVFraElpQUFLQUswR2cwREFrQWdBQ2dDcEFsRkJFQWdBRUhFQ1dvaUFpSUJJQUVvQWdBZ0FTZ0NIRUVvYkdvaUFUWUNDQ0FBSUFFb0FnQTJBcmdLSUFJUUpDQUFJQUJCdUFwcVFRQVFKUXdCQ3lBQUlBQkJ1QXBxSUFCQjNBcHFLQUlBRUNVTElBUkJBRFlDQUNBQVFRQTJBcHdKSUFCQkFUWUNrQm9NQWdzZ0FFRUFOZ0tjQ1NBQVFRQTJBcVFKQzBFQUlTSUNRQUpBQWtBZ0dDZ0NpQUZCQVdzT0NBSUVCQVFDQkFBQkJBc0NmeU1BUVJCcklnVWtBQ0FZUVNocVFRQkIzQUFRQkNFREFrQWdHRUVRYWlJQlFRZ1FBeUlDUVg5R0JFQkJBU0VDREFFTElBTWdBallDQUNBQlFRRVFBeG9nQVVFQkVBTWFJQUZCQVJBRFFYOUdCRUJCQVNFQ0RBRUxJQUZCQlJBRFFYOUdCRUJCQVNFQ0RBRUxJQUZCQ0JBRElnSkJmMFlFUUVFQklRSU1BUXNnQXlBQ05nSUVJQUVnQTBFSWFoQUNJZ0lOQUNBREtBSUlRUjlMQkVCQkFTRUNEQUVMSUFFZ0JVRU1haEFDSWdJTkFFRUJJUUlnQlNnQ0RDSUVRUXhMRFFBZ0EwRUJJQVJCQkdwME5nSU1JQUVnQlVFTWFoQUNJZ0lOQUNBRktBSU1JZ0pCQWtzRVFFRUJJUUlNQVFzZ0F5QUNOZ0lRQWtBQ1FBSkFJQUlPQWdBQkFnc2dBU0FGUVF4cUVBSWlBZzBDSUFVb0Fnd2lBa0VNU3dSQVFRRWhBZ3dEQ3lBRFFRRWdBa0VFYW5RMkFoUU1BUXRCQVNFQ0lBRkJBUkFESWdSQmYwWU5BU0FESUFSQkFVWTJBaGdnQVNBRFFSeHFFQVlpQWcwQklBRWdBMEVnYWhBR0lnSU5BU0FCSUFOQkpHb1FBaUlDRFFGQkFTRUNJQU1vQWlRaUJFSC9BVXNOQVNBRUJFQWdBeUFFUVFKMEVBb2lBallDS0NBQ1JRUkFRZi8vQXlFQ0RBTUxJQUVnQWhBR0lnSU5Ba0VCSVFZRFFDQUdJQU1vQWlSUERRSWdCa0VDZENFQ0lBWkJBV29oQmlBQklBSWdBeWdDS0dvUUJpSUNSUTBBQ3d3Q0N5QURRUUEyQWlnTElBRWdBMEVzYWhBQ0lnSU5BRUVCSVFJZ0F5Z0NMRUVRU3cwQUlBRkJBUkFESWdSQmYwWU5BQ0FESUFSQkFVWTJBakFnQVNBRlFReHFFQUlpQWcwQUlBTWdCU2dDREVFQmFqWUNOQ0FCSUFWQkRHb1FBaUlDRFFCQkFTRUNJQU1nQlNnQ0RFRUJhallDT0NBQlFRRVFBMEVCYWtFQ1NRMEFJQUZCQVJBRFFYOUdEUUFnQVVFQkVBTWlCRUYvUmcwQUlBTWdCRUVCUmlJQ05nSThBa0FnQWtVRVFDQURLQUk0SVFrZ0F5Z0NOQ0VHREFFTElBRWdBMEZBYXhBQ0lnSU5BU0FCSUFOQnhBQnFFQUlpQWcwQklBRWdBMEhJQUdvUUFpSUNEUUVnQVNBRFFjd0FhaEFDSWdJTkFVRUJJUUlnQXlnQ1FDQURLQUpFUVg5eklBTW9BalFpQmtFRGRHcEtEUUVnQXlnQ1NDQURLQUpNUVg5eklBTW9BamdpQ1VFRGRHcEtEUUVMSUFZZ0NXd2hBa0gvLy8vL0J5RUdBa0FDZndKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQURLQUlFUVFwckRpb0FBUUlERUJBUUVCQVFCQVVHRUJBUUVCQVFFQWNJQ1JBUUVCQVFFQkFLQ3d3UUVCQVFFQkFRRFE0UUMwR0FwQWtoQkNBQ1FlTUFTd3dPQzBHQWpCVWhCQ0FDUVl3RFN3d05DMEdBMkRjaEJDQUNRWXdEU3d3TUMwR0EyRGNoQkNBQ1FZd0RTd3dMQzBHQTJEY2hCQ0FDUVl3RFN3d0tDMEdBc084QUlRUWdBa0dZQmtzTUNRdEJnT3k5QVNFRUlBSkIxQXhMREFnTFFZRHN2UUVoQkNBQ1FkUU1Td3dIQzBHQThLVURJUVFnQWtHUUhFc01CZ3RCZ0lEZ0F5RUVJQUpCZ0NoTERBVUxRWUNBZ0FZaEJDQUNRWURBQUVzTUJBdEJnSUNBQmlFRUlBSkJnTUFBU3d3REMwR0FnTEFHSVFRZ0FrR0F4QUJMREFJTFFZREFteFFoQkNBQ1FjQ3NBVXNNQVF0QmdJRGdJU0VFSUFKQmdLQUNTd3NOQUNBRUlBSkJnQU5zYmlJQ1FSQWdBa0VRU1JzaEJnc2dCU0FHTmdJTUlBVWdBeWdDTENJQ0lBSWdCaUFDSUFaTEd5QUdRZi8vLy84SFJoc2lBallDRENBRElBSTJBbGhCQVNFQ0lBRkJBUkFESWdSQmYwWU5BQ0FESUFSQkFVWTJBbEFDUUNBRVFRRkhEUUFnQTBHNEJ4QUtJZ0kyQWxRZ0FrVUVRRUgvL3dNaEFnd0NDd0ovSUFKQkFFRzRCeEFFSVFKQkFTRUVBa0FDUUNBQlFRRVFBeUlKUVg5R0RRQWdBaUFKUVFGR05nSUFBa0FnQ1VFQlJ3MEFJQUZCQ0JBRElnbEJmMFlOQVNBQ0lBazJBZ1FnQ1VIL0FVY05BQ0FCUVJBUUF5SUpRWDlHRFFFZ0FpQUpOZ0lJSUFGQkVCQURJZ2xCZjBZTkFTQUNJQWsyQWd3TElBRkJBUkFESWdsQmYwWU5BQ0FDSUFsQkFVWTJBaEFnQ1VFQlJnUkFJQUZCQVJBRElnbEJmMFlOQVNBQ0lBbEJBVVkyQWhRTElBRkJBUkFESWdsQmYwWU5BQ0FDSUFsQkFVWTJBaGdDUUFKQUlBbEJBVVlFUUNBQlFRTVFBeUlKUVg5R0RRTWdBaUFKTmdJY0lBRkJBUkFESWdsQmYwWU5BeUFDSUFsQkFVWTJBaUFnQVVFQkVBTWlDVUYvUmcwRElBSWdDVUVCUmpZQ0pDQUpRUUZIRFFFZ0FVRUlFQU1pQ1VGL1JnMERJQUlnQ1RZQ0tDQUJRUWdRQXlJSlFYOUdEUU1nQWlBSk5nSXNJQUZCQ0JBRElnWkJmMGNOQWd3REN5QUNRUVUyQWh3TElBSkNnb0NBZ0NBM0FpaEJBaUVHQ3lBQ0lBWTJBakFnQVVFQkVBTWlDVUYvUmcwQUlBSWdDVUVCUmpZQ05BSkFJQWxCQVVjTkFDQUJJQUpCT0dvUUFpSUVEUUVnQWlnQ09FRUZTdzBDSUFFZ0FrRThhaEFDSWdRTkFTQUNLQUk4UVFWTkRRQU1BZ3RCQVNFRUlBRkJBUkFESWdsQmYwWU5BQ0FDSUFsQkFVWTJBa0FnQ1VFQlJnUkFJQUVRRUNFRUlBRkJJQkFMUVg5R0RRSWdCRVVOQWlBQ0lBUTJBa1FnQVJBUUlRUWdBVUVnRUF0QmYwWU5BaUFFUlEwQ0lBSWdCRFlDU0VFQklRUWdBVUVCRUFNaUNVRi9SZzBCSUFJZ0NVRUJSallDVEFzZ0FVRUJFQU1pQ1VGL1JnMEFJQUlnQ1VFQlJqWUNVQUpBSUFsQkFVWUVRQ0FCSUFKQjFBQnFFQnNpQkVVTkFRd0NDeUFDUVFFMkFsUWdBa0tZZ0lDQWdBTTNBdWdESUFKQ21JQ0FnSUFETndMZ0F5QUNRWUdRcW9rQk5nTGdBU0FDUVlHUXFva0JOZ0pnQzBFQklRUWdBVUVCRUFNaUNVRi9SZzBBSUFJZ0NVRUJSallDOEFNQ1FDQUpRUUZHQkVBZ0FTQUNRZlFEYWhBYklnUkZEUUVNQWdzZ0FrRUJOZ0wwQXlBQ1FwaUFnSUNBQXpjQ2lBY2dBa0tZZ0lDQWdBTTNBb0FISUFKQmdiaTQ4Z0EyQW9BRklBSkJnYmk0OGdBMkFvQUVDd0pBSUFJb0FsQkZCRUFnQWlnQzhBTkZEUUVMUVFFaEJDQUJRUUVRQXlJSlFYOUdEUUVnQWlBSlFRRkdOZ0tRQnd0QkFTRUVJQUZCQVJBRElnbEJmMFlOQUNBQ0lBbEJBVVkyQXBRSElBRkJBUkFESWdsQmYwWU5BQ0FDSUFsQkFVWTJBcGdIQWtBZ0NVRUJSZ1JBSUFGQkFSQURJZ2xCZjBZTkFpQUNJQWxCQVVZMkFwd0hJQUVnQWtHZ0Iyb1FBaUlFRFFJZ0FpZ0NvQWRCRUVzTkF5QUJJQUpCcEFkcUVBSWlCQTBDSUFJb0FxUUhRUkJMRFFNZ0FTQUNRYWdIYWhBQ0lnUU5BaUFDS0FLb0IwRVFTdzBESUFFZ0FrR3NCMm9RQWlJRURRSkJBU0VFSUFJb0Fxd0hRUkJMRFFJZ0FTQUNRYkFIYWhBQ0lnUU5BaUFCSUFKQnRBZHFFQUlpQkVVTkFRd0NDeUFDUVJBMkFyUUhJQUpDa0lDQWdJQUNOd0tzQnlBQ1FvR0FnSUNBQWpjQ3BBY2dBa0tCZ0lDQUlEY0NuQWNMUVFBaEJBc2dCQXdCQzBFQkN5SUNEUUVnQXlnQ1ZDSUpLQUtZQjBVTkFFRUJJUUlnQ1NnQ3RBY2lCQ0FKS0FLd0Iwa05BU0FFSUFNb0FpeEpEUUVnQkNBREtBSllTdzBCSUFNZ0JFRUJJQVFiTmdKWUN5QUJFQjVCQUNFQ0N5QUZRUkJxSkFBZ0Fnc0VRQ0FZS0FKUUVBVWdHRUVBTmdKUUlCZ29BbndRQlVFS0lTSU1CQXNDUUFKQUlBQWdHRUVvYWlJQktBSUlJZ0pCQW5ScUlnTW9BaFFpQkVVRVFDQURRZHdBRUFvaUFEWUNGQ0FBRFFFTUFnc2dBQ2dDQ0NBQ1JnUkFBbjhDUUNBQktBSUFJQUFvQWhBaUFpZ0NBRWNOQUNBQktBSUVJQUlvQWdSSERRQWdBU2dDRENBQ0tBSU1SdzBBSUFFb0FoQWlCQ0FDS0FJUVJ3MEFJQUVvQWl3Z0FpZ0NMRWNOQUNBQktBSXdJQUlvQWpCSERRQWdBU2dDTkNBQ0tBSTBSdzBBSUFFb0FqZ2dBaWdDT0VjTkFDQUJLQUk4SWdZZ0FpZ0NQRWNOQUNBQktBSlFJQUlvQWxCSERRQUNRQUpBQWtBZ0JBNENBQUVDQ3lBQktBSVVJQUlvQWhSSERRSU1BUXNnQVNnQ0dDQUNLQUlZUncwQklBRW9BaHdnQWlnQ0hFY05BU0FCS0FJZ0lBSW9BaUJIRFFFZ0FTZ0NKQ0lKSUFJb0FpUkhEUUVnQ1VVTkFDQUNLQUlvSVFVZ0FTZ0NLQ0VIUVFBaEJBTkFJQWNnQkVFQ2RDSUlhaWdDQUNBRklBaHFLQUlBUmdSQUlBa2dCRUVCYWlJRVJ3MEJEQUlMQ3d3QkN5QUdCRUFnQVNnQ1FDQUNLQUpBUncwQklBRW9Ba1FnQWlnQ1JFY05BU0FCS0FKSUlBSW9Ba2hIRFFFZ0FTZ0NUQ0FDS0FKTVJ3MEJDMEVBREFFTFFRRUxCRUFnQXlnQ0ZDZ0NLQkFGSUFNb0FoUkJBRFlDS0NBREtBSVVLQUpVRUFVZ0F5Z0NGRUVBTmdKVUlBQkJBRFlDRUNBQVFZRUNOZ0lFSUFCQ0lUY0NDQXdDQ3lBQktBSW9FQVVnQVVFQU5nSW9JQUVvQWxRUUJTQUJRUUEyQWxRTUFnc2dCQ2dDS0JBRklBTW9BaFJCQURZQ0tDQURLQUlVS0FKVUVBVWdBeWdDRkVFQU5nSlVDeUFES0FJVUlBRkIzQUFRQ0JvTERBTUxBbjhqQUVFUWF5SURKQUFDUUNBWVFSQnFJZ1FnR0VFb2FrRUFRY2dBRUFRaUFSQUNJZ0lOQUVFQklRSWdBU2dDQUVIL0FVc05BQ0FFSUFGQkJHb1FBaUlDRFFCQkFTRUNJQUVvQWdSQkgwc05BQ0FFUVFFUUF3MEFJQVJCQVJBRElnbEJmMFlOQUNBQklBbEJBVVkyQWdnZ0JDQURRUXhxRUFJaUFnMEFJQUVnQXlnQ0RFRUJhaUlDTmdJTUlBSkJDRXNFUUVFQklRSU1BUXNDUUNBQ1FRSkpEUUFnQkNBQlFSQnFFQUlpQWcwQklBRW9BaEFpQWtFR1N3UkFRUUVoQWd3Q0N3SkFBa0FDUUFKQUlBSU9Cd0FFQVFJQ0FnTUVDeUFCSUFFb0Fnd2lBa0VDZEJBS0lnazJBaFFnQ1VVRVFFSC8vd01oQWd3RkN5QUNSUTBEUVFBaEJnTkFJQVFnQTBFTWFoQUNJZ0lOQlNBQktBSVVJQVpCQW5ScUlBTW9BZ3hCQVdvMkFnQWdCa0VCYWlJR0lBRW9BZ3hKRFFBTERBTUxJQUVnQVNnQ0RDSUpRUUowUVFScklnSVFDaUlHTmdJWUlBRWdBaEFLSWdVMkFoeEIvLzhESVFJZ0JrVU5BeUFGUlEwRElBbEJBVVlOQWtFQUlRWURRQ0FFSUFOQkRHb1FBaUlDRFFRZ0JrRUNkQ0lKSUFFb0FoaHFJQU1vQWd3MkFnQWdCQ0FEUVF4cUVBSWlBZzBFSUFFb0Fod2dDV29nQXlnQ0REWUNBQ0FHUVFGcUlnWWdBU2dDREVFQmEwa05BQXNNQWd0QkFTRUNJQVJCQVJBRElnbEJmMFlOQWlBQklBbEJBVVkyQWlBZ0JDQURRUXhxRUFJaUFnMENJQUVnQXlnQ0RFRUJhallDSkF3QkN5QUVJQU5CREdvUUFpSUNEUUVnQVNBREtBSU1RUUZxSWdJMkFpZ2dBU0FDUVFKMEVBb2lDVFlDTENBSlJRUkFRZi8vQXlFQ0RBSUxJQUpGRFFBZ0FTZ0NERUVDZEVHc08yb29BZ0FoQlVFQUlRWURRQ0FFSUFVUUF5RUpJQUVvQWl3Z0JrRUNkR29nQ1RZQ0FFRUJJUUlnQ1NBQktBSU1UdzBDSUFaQkFXb2lCaUFCS0FJb1NRMEFDd3NnQkNBRFFReHFFQUlpQWcwQVFRRWhBaUFES0FJTUlnbEJIMHNOQUNBQklBbEJBV28yQWpBZ0JDQURRUXhxRUFJaUFnMEFRUUVoQWlBREtBSU1RUjlMRFFBZ0JFRUJFQU1OQUNBRVFRSVFBMEVDU3cwQUlBUWdBMEVJYWhBR0lnSU5BQ0FES0FJSVFScHFJZ0pCTTBzRVFFRUJJUUlNQVFzZ0FTQUNOZ0kwSUFRZ0EwRUlhaEFHSWdJTkFDQURLQUlJUVJwcVFUTkxCRUJCQVNFQ0RBRUxJQVFnQTBFSWFoQUdJZ0lOQUVFQklRSWdBeWdDQ0NJSlFReHFRUmhMRFFBZ0FTQUpOZ0k0SUFSQkFSQURJZ2xCZjBZTkFDQUJJQWxCQVVZMkFqd2dCRUVCRUFNaUNVRi9SZzBBSUFFZ0NVRUJSallDUUNBRVFRRVFBeUlKUVg5R0RRQWdBU0FKUVFGR05nSkVJQVFRSGtFQUlRSUxJQU5CRUdva0FDQUNDd1JBSUJnb0Fqd1FCU0FZUVFBMkFqd2dHQ2dDUUJBRklCaEJBRFlDUUNBWUtBSkVFQVVnR0VFQU5nSkVJQmdvQWxRUUJVRUxJU0lNQXdzQ1FBSkFJQUFnR0VFb2FpSUNLQUlBSWdOQkFuUnFJZ0VvQXBRQklnUkZCRUFnQVVISUFCQUtJZ0EyQXBRQklBQU5BUXdDQ3dKQUlBTWdBQ2dDQkVjTkFDQUNLQUlFSUFBb0FnaEdEUUFnQUVHQkFqWUNCQXNnQkNnQ0ZCQUZJQUVvQXBRQlFRQTJBaFFnQVNnQ2xBRW9BaGdRQlNBQktBS1VBVUVBTmdJWUlBRW9BcFFCS0FJY0VBVWdBU2dDbEFGQkFEWUNIQ0FCS0FLVUFTZ0NMQkFGSUFFb0FwUUJRUUEyQWl3TElBRW9BcFFCSUFKQnlBQVFDQm9MREFJTElBQW9BcHdKRFFFZ0FFRUJOZ0tnQ1FKQUlBQW9BcVFKRFFBZ0FDQUROZ0s0Q1NBQVFRQTJBclFKSUJoQkVHb2dHRUVvYWhBZkdpQUFLQUlJSVFzQ2Z5QVlLQUtJQVVFRlJpRUtRUUVoQXdKQUlBQWdHQ2dDS0NJSlFRSjBhaWdDbEFFaUFVVU5BQ0FBSUFFb0FnUWlCVUVDZEdvaUJ5Z0NGQ0lDUlEwQUFrQWdBU2dDRENJSVFRSkpEUUFnQWlnQ05DSU5JQUlvQWpoc0lRWUNRQUpBQWtBQ1FDQUJLQUlRSWdJT0F3RURBQU1MSUFoQkFXc2hFQ0FCS0FJY0lROGdBU2dDR0NFTVFRQWhBZ3dCQ3lBQktBSVVJUTFCQUNFQ0EwQWdCaUFOSUFKQkFuUnFLQUlBVHdSQUlBZ2dBa0VCYWlJQ1J3MEJEQVFMQzBFQkRBUUxBMEFnRENBQ1FRSjBJZ2hxS0FJQUloMGdDQ0FQYWlnQ0FDSUlTdzBESUFZZ0NFME5BeUFkSUExd0lBZ2dEWEJOQkVBZ0FrRUJhaUlDSUJCR0RRTU1BUXNMUVFFTUF3c2dBa0VEYTBFQ1RRUkFJQUVvQWlRZ0JrME5BUXdDQ3lBQ1FRWkhEUUFnQVNnQ0tDQUdTUTBCQ3dKQUlBQW9BZ1FpQWtHQUFrWUVRQ0FBSUFFMkFnd2dBQ0FKTmdJRUlBQWdCVFlDQ0NBQUlBY29BaFFpQVRZQ0VDQUJLQUkwSVFJZ0FTZ0NPQ0VCSUFCQkFUWUN0Qm9nQUVIQUNtb2dBVFlDQUNBQVFid0thaUFDTmdJQUlBQWdBU0FDYkRZQ21Ba01BUXNnQUNnQ3RCb0VRQ0FBUVFBMkFyUWFJQUFvQXJ3SkVBVWdBRUVBTmdLOENTQUFLQUtVQ1JBRklBQWdBQ2dDbUFraUJVSFlBV3dpQWhBS0lnRTJBcndKSUFBZ0JVRUNkQkFLSWdrMkFwUUpRZi8vQXlFRElBRkZEUUlnQ1VVTkFpQUJRUUFnQWhBRUlRTWdBQ2dDRUNnQ05DRUNRUUFoQmtFQUlRbEJBQ0VJSUFVRVFDQUNRUUZySVEwZ0EwSFlBV3NoQ2lBRElBSkJmM05CMkFGc2FpRVFRUUFnQW10QjJBRnNJUTlCQVNBQ2EwSFlBV3doREFOQUlBTWdDRUhZQVd3aUIyb2lBU0FISUFwcVFRQWdCaHMyQXNnQklBRUNmeUFKUlFSQUlBRkJBRFlDekFGQkFBd0JDeUFCSUFFZ0QybzJBc3dCSUFFZ0RHcEJBQ0FHSUExSkd3czJBdEFCSUFFZ0J5QVFha0VBSUFZYlFRQWdDUnMyQXRRQlFRQWdCa0VCYWlJQklBRWdBa1lpQVJzaEJpQUJJQWxxSVFrZ0NFRUJhaUlJSUFWSERRQUxDeUFBS0FJUUlRRkJBU0VDQWtBZ0FDZ0N3QWtOQUNBQktBSVFRUUpHRFFBQ1FDQUJLQUpRUlEwQUlBRW9BbFFpQXlnQ21BZEZEUUFnQXlnQ3NBZEZEUUVMUVFBaEFnc2dBU2dDT0NBQktBSTBiQ0VISUFFb0FsZ2hDQ0FCS0FJc0lRVWdBU2dDRENFTklBSWhBMEVBSVFGQkFDRUpBa0FnQUVIRUNXb2lCaWdDQUNJQ1JRMEFJQVlvQWh4QmYwWUVRQ0FDSVFFTUFRc2dBaUVCQTBBZ0FTQUpRU2hzSWdKcUtBSUVFQVVnQmlnQ0FDSUJJQUpxUVFBMkFnUWdDVUVCYWlJSklBWW9BaHhCQVdwSkRRQUxDeUFCRUFVZ0JrRUFOZ0lBSUFZb0FnUVFCU0FHUVFBMkFnUWdCaWdDREJBRklBWkJBRFlDRENBR0lBTTJBamdnQmlBTk5nSWdJQVpDLy84RE53SWtJQVpDQURjQ0xDQUdJQVZCQVNBRlFRRkxHeUlCTmdJWUlBWWdBU0FJSUFNYklnSTJBaHdnQmtHb0JSQUtJZ00yQWdCQi8vOERJUWtDUUNBRFJRMEFRUUFoQVNBRFFRQkJxQVVRQkNFRklBSkJmMGNFUUNBSFFZQURiRUV2Y2lFSEEwQWdCU0FCUVNoc2FpSUlJQWNRQ2lJRE5nSUVJQU5GRFFJZ0NDQUROZ0lBSUFFZ0FrY2hBeUFCUVFGcUlRRWdBdzBBQ3dzZ0JrSEVBQkFLSWdFMkFnUWdCaUFDUVFSMFFSQnFFQW9pQWpZQ0RDQUNSUTBBSUFGRkRRQkJBQ0VKSUFGQkFFSEVBQkFFR2lBR1FnQTNBaEFMSUFraUEwVU5BUXdDQ3lBQ0lBbEdEUUFnQUNnQ0NDQUZSd1JBSUFwRkRRSWdBQ0FCTmdJTUlBQWdDVFlDQkNBQUlBVTJBZ2dnQUNBSEtBSVVJZ0UyQWhBZ0FTZ0NOQ0VDSUFFb0FqZ2hBU0FBUVFFMkFyUWFJQUJCd0FwcUlBRTJBZ0FnQUVHOENtb2dBallDQUNBQUlBRWdBbXcyQXBnSkRBRUxJQUFnQVRZQ0RDQUFJQWsyQWdRTFFRQWhBd3NnQXdzaUFRUkFJQUJDZ0lLQWdJQUVOd0lFSUFCQkFEWUN0Qm9nQUVJQU53SU1RUVZCQkNBQlFmLy9BMFliSVNJTUF3c2dDeUFBS0FJSVJnMEFJQUFvQWhBaENTQVlRUUUyQWdoQkFDRUJJQUFvQWdBaUFrRWZUUVJBSUFBZ0FrRUNkR29vQWhRaEFRc2dCRUVBTmdJQUlBQkJBVFlDa0JvQ1FBSkFBa0FnR0NnQ2lBRkJCVWNOQUNBQUtBSU1JUVlqQUVFZ2F5SUVKQUFnQkNBWUtBSWdOZ0lRSUFRZ0dDa0NHRGNEQ0NBRUlCZ3BBaEEzQXdBQ1FDQUVJQVJCSEdvUUFpSUNEUUFnQkNBRVFSeHFFQUlpQWcwQUlBUWdCRUVjYWhBQ0lnSU5BQ0FKS0FJTUlRVkJBQ0VDQTBBZ0FpSURRUUZxSVFJZ0JTQURkZzBBQ3lBRUlBTkJBV3NRQTBGL1JnUkFRUUVoQWd3QkN5QUVJQVJCSEdvUUFpSUNEUUFDUUNBSktBSVFJZ0lFZnlBQ0JTQUpLQUlVSVFWQkFDRUNBMEFnQWlJRFFRRnFJUUlnQlNBRGRnMEFDeUFFSUFOQkFXc1FBMEYvUmdSQVFRRWhBZ3dEQ3lBR0tBSUlCRUFnQkNBRVFSaHFFQVlpQWcwREN5QUpLQUlRQzBFQlJ3MEFJQWtvQWhnTkFDQUVJQVJCR0dvUUJpSUNEUUVnQmlnQ0NFVU5BQ0FFSUFSQkdHb1FCaUlDRFFFTElBWW9Ba1FFUUNBRUlBUkJIR29RQWlJQ0RRRUxJQmdnQkVFQkVBTWlBallDQ0NBQ1FYOUdJUUlMSUFSQklHb2tBQ0FZS0FJSUlBSnlEUUFnQVVVTkFDQUFRZndKYWlnQ0FBMEFJQUVvQWpRZ0NTZ0NORWNOQUNBQktBSTRJQWtvQWpoSERRQWdBU2dDV0NBSktBSllSZzBCQ3lBQVFZQUtha0VBTmdJQURBRUxRUUFoQVVFQUlRTUNRQ0FBUWNRSmFpSUNLQUlBSWdaRkRRQWdBa0VCTmdJOElBSW9BamdOQUNBQ0tBSWNJUVZCLy8vLy93Y2hCQU5BQTBBZ0JpQURRU2hzYWlJSktBSVlCRUFnQ1NBQklBa29BaEFpQ1NBRVNDSUhHeUVCSUFrZ0JDQUhHeUVFQ3lBRFFRRnFJZ01nQlUwTkFDQUJSUTBDSUFJb0Fnd2dBaWdDRUNJRVFRUjBhaUlESUFFb0FnQTJBZ0FnQXlBQktBSWtOZ0lNSUFNZ0FTZ0NIRFlDQkNBRElBRW9BaUEyQWdnZ0FpQUVRUUZxTmdJUVFRQWhBeUFCUVFBMkFoZ2dBU2dDRkNFSlFRQWhBVUgvLy8vL0J5RUVJQWtOQUFzZ0FpQUNLQUlzUVFGck5nSXNEQUFMQUFzTElBQWdBQ2dDQ0RZQ0FFRUNJU0lNQWd0QkNTRWlJQUFvQXJRYURRRkJEQ0VpSUFBb0FoQWhDU0FBS0FJTUlRZ2pBRUVRYXlJREpBQWdBRUcwRW1vaUhVRUFRZHdIRUFRaEJpQUpLQUkwSVFJZ0NTZ0NPQ0VGQWtBZ0dFRVFhaUlFSUFOQkRHb1FBaUlCRFFBZ0JpQURLQUlNSWdFMkFnQWdBaUFGYkNJUUlBRk5CRUJCQVNFQkRBRUxJQVFnQTBFTWFoQUNJZ0VOQUNBR0lBTW9BZ3dpQWpZQ0JFRUJJUUVDUUFKQUlBSU9DQUFDQVFJQ0FBSUJBZ3NnR0NnQ2lBRkJCVVlOQVNBSktBSXNEUUFNQVFzZ0JDQURRUXhxRUFJaUFRMEFJQVlnQXlnQ0RDSUNOZ0lJUVFFaEFTQUNJQWdvQWdCSERRQWdDU2dDRENFRlFRQWhBUU5BSUFFaUFrRUJhaUVCSUFVZ0FuWU5BQXRCQVNFQklBUWdBa0VCYXhBRElnSkJmMFlOQUNBWUtBS0lBVUVGUnlJRlFRRWdBaHRGRFFBZ0JpQUNOZ0lNSUFWRkJFQWdCQ0FEUVF4cUVBSWlBUTBCSUFZZ0F5Z0NEQ0lDTmdJUVFRRWhBU0FDUWYvL0Ewc05BUXNDUUNBSktBSVFJZ0VFZnlBQkJTQUpLQUlVSVFWQkFDRUJBMEFnQVNJQ1FRRnFJUUVnQlNBQ2RnMEFDeUFFSUFKQkFXc1FBeUlCUVg5R0JFQkJBU0VCREFNTElBWWdBVFlDRkNBSUtBSUlCRUFnQkNBRFFRaHFFQVlpQVEwRElBWWdBeWdDQ0RZQ0dBc2dHQ2dDaUFGQkJVWUVRRUVCSVFFZ0JpZ0NGQ0lDSUFrb0FoUkJBWFpMRFFNZ0FrRUFJQVlvQWhnaUJVRWZkU0FGY1d0SERRTUxJQWtvQWhBTFFRRkhEUUFnQ1NnQ0dBMEFJQVFnQTBFSWFoQUdJZ0VOQVNBR0lBTW9BZ2cyQWh3Z0NDZ0NDQVJBSUFRZ0EwRUlhaEFHSWdFTkFpQUdJQU1vQWdnMkFpQUxJQmdvQW9nQlFRVkhEUUJCQVNFQklBWW9BaHdpQWlBR0tBSWdJQUlnQ1NnQ0lHcHFJZ1VnQWlBRlNCc05BUXNnQ0NnQ1JBUkFJQVFnQTBFTWFoQUNJZ0VOQVNBR0lBTW9BZ3dpQWpZQ0pFRUJJUUVnQWtIL0FFc05BUXNDUUFKQUlBWW9BZ1FpQVE0R0FBRUJBUUVBQVF0QkFTRUJJQVJCQVJBRElnSkJmMFlOQVNBR0lBSTJBaWdDUUNBQ0JFQWdCQ0FEUVF4cUVBSWlBUTBEUVFFaEFTQURLQUlNSWdKQkQwc05BeUFDUVFGcUlRSU1BUXNnQ0NnQ01DSUNRUkJMRFFJTElBWWdBallDTENBR0tBSUVJUUVMQWtBQ1FDQUJEZ1lBQVFFQkFRQUJDeUFHUWNRQWFpRUhJQVlvQWl3aEN5QUpLQUlNSVFvakFFRVFheUlGSkFCQkFTRUJBa0FnQkVFQkVBTWlBa0YvUmcwQUlBY2dBallDQUNBQ0JFQkJBQ0VCQTBBZ0N5QUJJZ0pKQkVCQkFTRUJEQU1MSUFRZ0JVRUlhaEFDSWdFTkFpQUZLQUlJSWdGQkEwc0VRRUVCSVFFTUF3c2dCeUFDUVF4c2FpSU5JQUUyQWdRQ1FDQUJRUUZOQkVBZ0JDQUZRUXhxRUFJaUFRMEVJQW9nQlNnQ0RDSUJUUVJBUVFFaEFRd0ZDeUFOSUFGQkFXbzJBZ2dNQVFzZ0FVRUNSdzBBSUFRZ0JVRU1haEFDSWdFTkF5QU5JQVVvQWd3MkFnd0xJQUpCQVdvaEFTQUZLQUlJUVFOSERRQUxRUUVoQVNBQ1JRMEJDMEVBSVFFTElBVkJFR29rQUNBQkRRRUxJQmdvQW93QkJFQWdCa0dVQW1vaERTQVlLQUtJQVNFSElBa29BaXdoREVFQUlRVkJBQ0VQUVFBaEN5TUFRUkJySWdJa0FFRUJJUUVnQkVFQkVBTWhDUUpBQWtBZ0IwRUZSZ1JBSUFsQmYwWU5BaUFOSUFrMkFnQWdCRUVCRUFNaUNVRi9SZzBDSUEwZ0NUWUNCQ0FNRFFFZ0NVVU5BUXdDQ3lBSlFYOUdEUUVnRFNBSk5nSUlJQWxGRFFBZ0RFRUJkRUVEYWlFUlFRQWhDVUVBSVFjRFFDQUpJQkZHQkVCQkFTRUJEQU1MSUFRZ0FrRUlhaEFDSWdFTkFpQUNLQUlJSWdGQkJrc0VRRUVCSVFFTUF3c2dEU0FKUVJSc2FpSUtJQUUyQWd3Q2Z5QUJRWDF4UVFGR0JFQWdCQ0FDUVF4cUVBSWlBUTBFSUFvZ0FpZ0NERUVCYWpZQ0VDQUNLQUlJSVFFTElBRkJBa1lMQkVBZ0JDQUNRUXhxRUFJaUFRMERJQW9nQWlnQ0REWUNGQ0FDS0FJSUlRRUxBa0FDUUNBQlFRTnJEZ1FBQVFFQUFRc2dCQ0FDUVF4cUVBSWlBUTBESUFvZ0FpZ0NERFlDR0NBQ0tBSUlJUUVMSUFGQkJFWUVRQ0FFSUFKQkRHb1FBaUlCRFFNZ0RDQUNLQUlNSWdGSkJFQkJBU0VCREFRTElBb2dBVUVCYTBILy93TWdBUnMyQWh3Z0JVRUJhaUVGSUFJb0FnZ2hBUXNnQ1VFQmFpRUpJQThnQVVFR1Jtb2hEeUFISUFGQkJVWnFJUWNnQ3lBQlFRRnJRUU5KYWlFTElBRU5BQXRCQVNFQklBVWdCM0lnRDNKQkFVc05BU0FIUlEwQUlBc05BUXRCQUNFQkN5QUNRUkJxSkFBZ0FRMEJDeUFFSUFOQkNHb1FCaUlCRFFBZ0JpQURLQUlJSWdFMkFqQWdBeUFCSUFnb0FqUnFJZ0UyQWdnZ0FVRXpTd1JBUVFFaEFRd0JDd0pBSUFnb0FqeEZEUUFnQkNBRFFReHFFQUlpQVEwQklBWWdBeWdDRENJQk5nSTBJQUZCQWtzRVFFRUJJUUVNQWdzZ0FVRUJSZzBBSUFRZ0EwRUlhaEFHSWdFTkFVRUJJUUVnQXlnQ0NDSUNRUVpxUVF4TERRRWdCaUFDUVFGME5nSTRJQVFnQTBFSWFoQUdJZ0VOQVVFQklRRWdBeWdDQ0NJQ1FRWnFRUXhMRFFFZ0JpQUNRUUYwTmdJOEN3SkFJQWdvQWd4QkFra05BQ0FJS0FJUVFRTnJRUUpMRFFBZ0F5QUVBbjhnRUNBSUtBSWtJZ0Z1SWdKQkFrRUJJQkFnQVNBQ2JHc2JhaUVFUVFBaEFRTkFJQVFnQVNJQ1FRRnFJZ0YyRFFBTElBRWdBaUFFUVg4Z0FuUkJmM054R3dzUUF5SUNOZ0lNSUFKQmYwWUVRRUVCSVFFTUFnc2dCaUFDTmdKQVFRRWhBU0FDSUJBZ0NDZ0NKQ0lFYWtFQmF5QUVia3NOQVF0QkFDRUJDeUFEUVJCcUpBQWdBUTBCSUFBb0FxUUpSUVJBSUJnb0FvZ0JRUVZIQkVCQkRpRWlBbjhnQUVIQUVtb29BZ0FoQ0NBWUtBS01BVUVBUnlFTklBQW9BaEFvQWpBaEFpQUFRY1FKYWlJQlFnQTNBaEFDUUFKQUFrQWdBa1VOQUNBQktBSXdJZ0lnQ0VZTkFnSkFJQWdnQWtFQmFpQUJLQUlnSWdad0lnVkhCRUFnQVNnQ0FDQUJLQUljUVNoc2FpZ0NBQ0VMQWtBRFFBSkFBa0FDUUNBQktBSW9JZ2tFUUNBSlFRRnhJUW9nQVNnQ0FDRUhRUUFoQWlBSlFRRkdJaEJGQkVBZ0NVRitjU0VEQTBBZ0J5QUNRU2hzYWlJRUtBSVVRUUZyUVFGTkJFQWdCQ0FFS0FJTUlnUWdCa0VBSUFRZ0JVc2JhellDQ0FzZ0J5QUNRUUZ5UVNoc2FpSUVLQUlVUVFGclFRSkpCRUFnQkNBRUtBSU1JZ1FnQmtFQUlBUWdCVXNiYXpZQ0NBc2dBa0VDYWlFQ0lBTkJBbXNpQXcwQUN3c0NRQ0FLUlEwQUlBY2dBa0VvYkdvaUFpZ0NGRUVCYTBFQlN3MEFJQUlnQWlnQ0RDSUNJQVpCQUNBQ0lBVkxHMnMyQWdnTElBa2dBU2dDR0VrTkF5QVFSUTBCUVg4aEEwRUFJUUpCQUNFRURBSUxRUUFoQ1NBQktBSVlEUUpCQVF3S0N5QUpRWDV4SVFaQmZ5RURRUUFoQWtFQUlRUURRQ0FISUFKQktHeHFJaEFvQWhSQkFXdEJBVTBFUUNBUUtBSUlJaEFnQkNBRFFYOUdJQVFnRUVweUloQWJJUVFnQWlBRElCQWJJUU1MSUFjZ0FrRUJjaUlRUVNoc2FpSVBLQUlVUVFGclFRSkpCRUFnRHlnQ0NDSVBJQVFnQTBGL1JpQUVJQTlLY2lJUEd5RUVJQkFnQXlBUEd5RURDeUFDUVFKcUlRSWdCa0VDYXlJR0RRQUxDd0pBSUFwRkRRQWdCeUFDUVNoc2FpSUdLQUlVUVFGclFRRkxEUUFnQWlBQ0lBTWdCaWdDQ0NBRVNCc2dBMEYvUmhzaEF3dEJBU0FEUVFCSURRZ2FJQWNnQTBFb2JHb2lBa0VBTmdJVUlBRWdDVUVCYXlJSk5nSW9JQUlvQWhnTkFDQUJJQUVvQWl4QkFXczJBaXdMSUFFb0Fpd2lCaUFCS0FJY0lnZFBCRUFnQVNnQ09BMENJQUVvQWdBaEVBTkFRUUFoQkVILy8vLy9CeUVEUVFBaEFnTkFJQkFnQWtFb2JHb2lDaWdDR0FSQUlBb2dCQ0FLS0FJUUlnb2dBMGdpRHhzaEJDQUtJQU1nRHhzaEF3c2dBa0VCYWlJQ0lBZE5EUUFMQWtBZ0JFVU5BQ0FCS0FJTUlBRW9BaEFpQTBFRWRHb2lBaUFFS0FJQU5nSUFJQUlnQkNnQ0pEWUNEQ0FDSUFRb0FodzJBZ1FnQWlBRUtBSWdOZ0lJSUFFZ0EwRUJhallDRUNBRVFRQTJBaGdnQkNnQ0ZBMEFJQUVnQmtFQmF5SUdOZ0lzQ3lBR0lBZFBEUUFMQ3lBQktBSUFJZ01nQjBFb2JHb2lBaUFGTmdJTUlBSkNnSUNBZ0JBM0FoQWdBa0VBTmdJWUlBSWdCVFlDQ0NBQklBbEJBV28yQWlnZ0FTQUdRUUZxTmdJc0lBTWdCMEVCYWhBbUlBVkJBV29nQVNnQ0lDSUdjQ0lGSUFoSERRQUxBa0FnQVNnQ0VDSUpSUTBBSUFFb0FnQWlCaUFCS0FJY0lnTkJLR3hxSWdVb0FnQWhCQ0FCS0FJTUlRZEJBQ0VDQTBBZ0JDQUhJQUpCQkhScUtBSUFSd1JBSUFrZ0FrRUJhaUlDUncwQkRBSUxDeUFEUlEwQVFRQWhBZ05BSUFzZ0JpQUNRU2hzYWlJSktBSUFSd1JBSUFNZ0FrRUJhaUlDUncwQkRBSUxDeUFKSUFRMkFnQWdCU0FMTmdJQUN5QU5EUVFnQVNnQ01DRUNEQUlMQTBBTUFBc0FDeUFORFFJTElBSWdDRVlOQUNBQklBZ2dBU2dDSUNJQmFrRUJheUFCY0RZQ01BdEJBQXdDQ3lBQklBZzJBakJCQUF3QkN5QU5DdzBEQ3lBQVFjUUphaUlCSUFFb0FnQWdBU2dDSEVFb2JHb2lBVFlDQ0NBQUlBRW9BZ0EyQXJnS0N5QUFRZGdLYWlBZFFkd0hFQWdoRkNBQVFRRTJBcVFKSUFBZ0dDa0RpQUUzQXRBS0lBQW9BcFFKSVEwZ0FFR1lDMm9vQWdBaEEwRUFJUWxCQUNFUUlBQW9BaEFpQVNnQ05DSUtJQUVvQWpnaUJXd2hCZ0pBSUFBb0Fnd2lBU2dDRENJSFFRRkdCRUFnRFVFQUlBWkJBblFRQkJvTUFRc0NRQUpBQWtBZ0FTZ0NFQ0lDUVFOclFRSk5CRUFnQVNnQ0pDQURiQ0lESUFZZ0F5QUdTUnNoRHlBQktBSWdJUU1nQWtGK2NVRUVSdzBCSUFZZ0Qyc2dEeUFER3lFSkN3SkFBa0FDUUFKQUFrQUNRQ0FDRGdZQkFnTUFCUVFBQ3lBR1JRMEhJQVpCQTNFaEVDQUJLQUlzSVFKQkFDRUJJQVpCQVd0QkEwOEVRQ0FHUVh4eElRUURRQ0FOSUFGQkFuUWlBMm9nQWlBRGFpZ0NBRFlDQUNBTklBTkJCSElpQ1dvZ0FpQUphaWdDQURZQ0FDQU5JQU5CQ0hJaUNXb2dBaUFKYWlnQ0FEWUNBQ0FOSUFOQkRISWlBMm9nQWlBRGFpZ0NBRFlDQUNBQlFRUnFJUUVnQkVFRWF5SUVEUUFMQ3lBUVJRMEhBMEFnRFNBQlFRSjBJZ05xSUFJZ0Eyb29BZ0EyQWdBZ0FVRUJhaUVCSUJCQkFXc2lFQTBBQ3d3SEN5QUhSUTBGSUFFb0FoUWhBMEVBSVFrRFFFRUFJUkFnQmlBSlRRMEhBMEFnQXlBUVFRSjBhaUlGS0FJQUlRUUNRQ0FHSUFsTkRRQWdCRVVOQUVFQklRRWdDU0VDQTBBZ0RTQUNRUUowYWlBUU5nSUFJQUVnQlNnQ0FDSUVUdzBCSUFFZ0NXb2lBaUFHVHcwQklBRkJBV29oQVF3QUN3QUxJQWNnRUVFQmFpSVFTMEVBSUFZZ0JDQUphaUlKU3hzTkFBc2dCaUFKU3cwQUN3d0dDeUFHUlEwRlFRQWhBUU5BSUEwZ0FVRUNkR29nQVNBS2JpSUNJQWRzUVFGMklBRWdBaUFLYkd0cUlBZHdOZ0lBSUFGQkFXb2lBU0FHUncwQUN3d0ZDeUFCS0FJY0lRVWdBU2dDR0NFSUFrQWdCa1VOQUNBSFFRRnJJUUVnQmtFSGNTRVFRUUFoQ1NBR1FRRnJRUWRQQkVBZ0JrRjRjU0VFQTBBZ0RTQUpRUUowSWdKcUlBRTJBZ0FnRFNBQ1FRUnlhaUFCTmdJQUlBMGdBa0VJY21vZ0FUWUNBQ0FOSUFKQkRISnFJQUUyQWdBZ0RTQUNRUkJ5YWlBQk5nSUFJQTBnQWtFVWNtb2dBVFlDQUNBTklBSkJHSEpxSUFFMkFnQWdEU0FDUVJ4eWFpQUJOZ0lBSUFsQkNHb2hDU0FFUVFocklnUU5BQXNMSUJCRkRRQURRQ0FOSUFsQkFuUnFJQUUyQWdBZ0NVRUJhaUVKSUJCQkFXc2lFQTBBQ3dzZ0IwRUNheUVCQTBBQ1FDQUlJQUVpQWtFQ2RDSUJhaWdDQUNJRElBcHVJZ1FnQVNBRmFpZ0NBQ0lCSUFwdUlnbExEUUFnQXlBRUlBcHNheUlESUFFZ0NTQUtiR3NpQmtzTkFBTkFJQVFnQ213aEJ5QURJUUVEUUNBTklBRWdCMnBCQW5ScUlBSTJBZ0FnQVVFQmFpSUJJQVpORFFBTElBUkJBV29pQkNBSlRRMEFDd3NnQWtFQmF5RUJJQUlOQUFzTUJBc2dDa1VOQXlBRlJRMERRUUVnQVNnQ0lDSUhheUVJSUFWQmZuRWhCaUFGUVFGeElRdEJBQ0VEQTBBZ0F5RUJRUUFoQWlBR0lRUWdCVUVCUndSQUEwQWdEU0FDSUFwc0lCQnFRUUowYWlBSElBZ2dBU0FKU1JzMkFnQWdEU0FDUVFGeUlBcHNJQkJxUVFKMGFpQUhJQWdnQVVFQmFpQUpTUnMyQWdBZ0FrRUNhaUVDSUFGQkFtb2hBU0FFUVFKcklnUU5BQXNMSUFzRVFDQU5JQUlnQ213Z0VHcEJBblJxSUFjZ0NDQUJJQWxKR3pZQ0FBc2dBeUFGYWlFRElCQkJBV29pRUNBS1J3MEFDd3dEQ3lBR1JRMENRUUVnQVNnQ0lDSUNheUVESUFaQkEzRWhCRUVBSVFFZ0JrRUJhMEVEVHdSQUlBWkJmSEVoQlFOQUlBMGdBVUVDZEdvZ0FpQURJQUVnQ1VrYk5nSUFJQTBnQVVFQmNpSUdRUUowYWlBQ0lBTWdCaUFKU1JzMkFnQWdEU0FCUVFKeUlnWkJBblJxSUFJZ0F5QUdJQWxKR3pZQ0FDQU5JQUZCQTNJaUJrRUNkR29nQWlBRElBWWdDVWtiTmdJQUlBRkJCR29oQVNBRlFRUnJJZ1VOQUFzTElBUkZEUUlEUUNBTklBRkJBblJxSUFJZ0F5QUJJQWxKR3pZQ0FDQUJRUUZxSVFFZ0JFRUJheUlFRFFBTERBSUxBa0FnQmtVTkFDQUdRUWR4SVFsQkFDRUNJQVpCQVd0QkIwOEVRQ0FHUVhoeElSQURRQ0FOSUFKQkFuUWlBV3BCQVRZQ0FDQU5JQUZCQkhKcVFRRTJBZ0FnRFNBQlFRaHlha0VCTmdJQUlBMGdBVUVNY21wQkFUWUNBQ0FOSUFGQkVISnFRUUUyQWdBZ0RTQUJRUlJ5YWtFQk5nSUFJQTBnQVVFWWNtcEJBVFlDQUNBTklBRkJISEpxUVFFMkFnQWdBa0VJYWlFQ0lCQkJDR3NpRUEwQUN3c2dDVVVOQUFOQUlBMGdBa0VDZEdwQkFUWUNBQ0FDUVFGcUlRSWdDVUVCYXlJSkRRQUxDeUFQUlEwQklBcEJBV3NoRENBRlFRRnJJUjFCQVNBRFFRRjBJZ0ZySVFRZ0FVRUJheUVHSUFOQkFXc2hBaUFGSUFOclFRRjJJZ2doQ3lBS0lBTnJRUUYySWdjaENTQUlJUVVnQnlFQlFRQWhFQU5BSUEwZ0JTQUtiQ0FCYWtFQ2RHb2lFU2dDQUNJYlFRRkdCRUFnRVVFQU5nSUFDeUFiUVFGR0lSRUNRQUpBSUFKQmYwY05BQ0FCSUFsSERRQkJBQ0VDSUFZaEF5QUpRUUVnQ1VFQlNodEJBV3NpQVNFSkRBRUxBa0FnQWtFQlJ3MEFJQUVnQjBjTkFFRUFJUUlnQkNFRElBZEJBV29pQVNBTUlBRWdERWdiSWdFaEJ3d0JDd0pBSUFOQmYwY05BQ0FGSUF0SERRQkJBQ0VESUFRaEFpQUxRUUVnQzBFQlNodEJBV3NpQlNFTERBRUxBa0FnQTBFQlJ3MEFJQVVnQ0VjTkFFRUFJUU1nQmlFQ0lBaEJBV29pQlNBZElBVWdIVWdiSWdVaENBd0JDeUFESUFWcUlRVWdBU0FDYWlFQkN5QVFJQkZxSWhBZ0Qwa05BQXNNQVFzZ0JrVU5BQU5BREFBTEFBc0xJQUJCeEFscUlnZ1FKRUVQSVNJQ2Z5QUFRZVFLYWlnQ0FDRUZJQUJCaEF0cUtBSUFJUWxCQUNFQ0lBZ29BaWdpQXdSQUlBZ29BZ0FoQkFOQUlBUWdBa0VvYkdvaUFTZ0NGRUVCYTBFQlRRUkFJQUVnQlNBQktBSU1JZ0ZKQkg4Z0FTQUlLQUlnYXdVZ0FRczJBZ2dMSUFKQkFXb2lBaUFEUncwQUN3dEJBQ0FBUVp3TGFpSU5LQUlBUlEwQUdrRUFJUVpCQUNBTktBSUVJZ0pCQWtzTkFCb2dCU0VCQTBBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFJT0F3QUJBd0VMSUFFZ0RTQUdRUXhzYWlnQ0NHc2lBVUYvU2cwQklBZ29BaUFnQVdvaEFRd0JDeUFOSUFaQkRHeHFLQUlJSUFGcUlnRkJBQ0FJS0FJZ0lnSWdBU0FDU0J0cklRRUxJQUVpQXlBRlN3UkFJQUVnQ0NnQ0lHc2hBd3RCQVNBSUtBSVlJZ3RGRFFZYUlBZ29BZ0FoQkVFQUlRSURRQ0FFSUFKQktHeHFJZ2NvQWhRaUNrRUJhMEVCVFFSQUlBY29BZ2dnQTBZTkF3dEJBU0VISUFKQkFXb2lBaUFMUncwQUN3d0VDMEVCSVFjZ0NDZ0NHQ0lEUlEwRElBMGdCa0VNYkdvb0Fnd2hDeUFJS0FJQUlRUkJBQ0VDQTBBZ0JDQUNRU2hzYWlJSEtBSVVRUU5HQkVBZ0J5Z0NDQ0FMUmcwREMwRUJJUWNnQWtFQmFpSUNJQU5IRFFBTERBTUxRUUVnQWtFQVNBMEVHa0VCSVFjZ0NrRUJTdzBCREFJTFFRRWhCeUFDUVFCSURRRUxJQVlnQ1VrRVFDQUpJZ1FnQm10QkEzRWlCd1JBQTBBZ0NDZ0NCQ0lESUFSQkFuUnFJQU1nQkVFQmF5SUVRUUowYWlnQ0FEWUNBQ0FIUVFGcklnY05BQXNMSUFaQmYzTWdDV3BCQTA4RVFBTkFJQWdvQWdRaUJ5QUVRUUowSWdOcUlBY2dBMEVFYXlJTGFpZ0NBRFlDQUNBSUtBSUVJZ2NnQzJvZ0J5QURRUWhySWd0cUtBSUFOZ0lBSUFnb0FnUWlCeUFMYWlBSElBTkJER3NpQTJvb0FnQTJBZ0FnQXlBSUtBSUVJZ2RxSUFjZ0JFRUVheUlFUVFKMGFpZ0NBRFlDQUNBRUlBWkxEUUFMQ3lBSUtBSUFJUVFMSUFnb0FnUWdCa0VDZEdvZ0JDQUNRU2hzSWdOcU5nSUFJQVpCQVdvaUJpRUVJQVlpQWlBSlRRUkFBMEFnQ0NnQ0JDSUhJQUpCQW5ScUtBSUFJZ3NnQ0NnQ0FDQURha2NFUUNBSElBUkJBblJxSUFzMkFnQWdCRUVCYWlFRUN5QUNRUUZxSWdJZ0NVME5BQXNMUVFBaEJ5QU5JQVpCREd4cUtBSUVJZ0pCQTBrTkFRc0xJQWNMRFFFQ2Z5QVlRUkJxSVJzZ0FFRzRDbW9oSFVFQUlRbEJBQ0VpSXdCQndBTnJJaU1rQUNBVUtBSUFJUVFnQUNJZ0tBS3dHaUVOSUNOQkFEWUNEQ0FBUWJBSmFrRUFOZ0lBSUFBZ0FDZ0NxQWxCQVdvMkFxZ0pJQ01nRkNnQ01DQUFLQUlNS0FJMGFqWUNDQ0FBUWNRSmFpRW9JQTFCREdvaE1BSkFBMEFnSUNnQ3ZBa2hBUUpBSUJRb0FpUU5BQ0FCSUFSQjJBRnNhaWdDeEFGRkRRQkJBU0VHREFJTElCUXBBalFoU0NBVUtBSThJUUlnSUNnQ3FBa2hBeUFCSUFSQjJBRnNJaWxxSWdFZ0lDZ0NEQ2dDT0RZQ0dDQUJJQUkyQWhBZ0FTQklOd0lJSUFFZ0F6WUNCQUpBSUJRb0FnUWlBVUVDUmcwQUlBa05BQ0FCUVFkR0RRQWdHeUFqUVF4cUVBSWlCZzBDSUNNb0Fnd2lBU0FnS0FLWUNTQUVhMHNFUUVFQklRWU1Bd3NnQVVVRVFFRUFJUWtNQVFzZ01FRUFRYVFCRUFRYUlBMUJBRFlDQUVFQklRa0xBa0FnSXlnQ0RDSUJCRUFnSXlBQlFRRnJOZ0lNREFFTFFRQWhDU0FnS0FLOENTQXBhaUVISUJRb0FnUWhBaUFVS0FJc0lRaEJBQ0VLSXdCQkVHc2lCaVFBSUExQkFFR29FQkFFSVFVZ0d5QUdRUVJxRUFJaEFRSkFBa0FDUUFKQUlBSkJBbXNPQmdBQkFRRUJBQUVMUVFFaEFpQUdLQUlFUVFacUlndEJIMHNOQWlBQlJRMEJEQUlMUVFFaEFpQUdLQUlFUVFGcUlndEJIMHNOQVNBQkRRRUxJQVVnQ3pZQ0FBSkFJQXRCSDBZRVFBTkFJQnNvQWdnRVFDQWJRUUVRQTBVTkFRd0VDd3NnQlVISUFtb2hDd05BSUFZZ0cwRUlFQU1pQVRZQ0JDQUJRWDlHRFFNZ0N5QUJOZ0lBSUF0QkJHb2hDeUFLUVFGcUlncEJnQU5IRFFBTERBRUxRUUlnQzBFR1J5QUxRUVpKR3lFUUFrQWdDMEYrY1VFRVJnUkFJQnNnQmtFTWFoQUNEUUVnQmlnQ0RDSUJRUU5MRFFFZ0JTQUJOZ0t3QVNBYklBWkJER29RQWcwQklBWW9BZ3dpQVVFRFN3MEJJQVVnQVRZQ3RBRWdHeUFHUVF4cUVBSU5BU0FHS0FJTUlnRkJBMHNOQVNBRklBRTJBcmdCSUJzZ0JrRU1haEFDRFFFZ0JpZ0NEQ0lCUVFOTERRRWdCU0FCTmdLOEFRSkFJQWhCQWtrTkFDQUxRUVZHRFFBZ0d5QUdRUXhxSUFoQkFrc2lBUkFVRFFJZ0JpZ0NEQ0lESUFoUERRSWdCU0FETmdMQUFTQWJJQVpCREdvZ0FSQVVEUUlnQmlnQ0RDSURJQWhQRFFJZ0JTQUROZ0xFQVNBYklBWkJER29nQVJBVURRSWdCaWdDRENJRElBaFBEUUlnQlNBRE5nTElBU0FiSUFaQkRHb2dBUkFVRFFJZ0JpZ0NEQ0lCSUFoUERRSWdCU0FCTmdMTUFRc2dCaUFGS0FLd0FTSUJRUUpOQkg4Z0FVRUNkRUh3Tkdvb0FnQUZRUU1MTmdJTVFRQWhDd05BSUJzZ0JrRUlhaEFHSWdJTkFpQUZJQXRCQW5ScUlnRWdCaWdDQ0RzQjBBRWdHeUFHUVFocUVBWWlBZzBDSUFFZ0JpZ0NDRHNCMGdFZ0JpQUdLQUlNSWdGQkFXczJBZ3dnQzBFQmFpRUxJQUVOQUFzZ0JpQUZLQUswQVNJQlFRTkpCSDhnQVVFQ2RFSHdOR29vQWdBRlFRTUxOZ0lNUVFBaEN3TkFJQnNnQmtFSWFoQUdJZ0lOQWlBRklBdEJBblJxSWdFZ0JpZ0NDRHNCNEFFZ0d5QUdRUWhxRUFZaUFnMENJQUVnQmlnQ0NEc0I0Z0VnQmlBR0tBSU1JZ0ZCQVdzMkFnd2dDMEVCYWlFTElBRU5BQXNnQmlBRktBSzRBU0lCUVFKTkJIOGdBVUVDZEVId05Hb29BZ0FGUVFNTE5nSU1RUUFoQ3dOQUlCc2dCa0VJYWhBR0lnSU5BaUFGSUF0QkFuUnFJZ0VnQmlnQ0NEc0I4QUVnR3lBR1FRaHFFQVlpQWcwQ0lBRWdCaWdDQ0RzQjhnRWdCaUFHS0FJTUlnRkJBV3MyQWd3Z0MwRUJhaUVMSUFFTkFBc2dCaUFGS0FLOEFTSUJRUUpOQkg4Z0FVRUNkRUh3Tkdvb0FnQUZRUU1MTmdJTVFRQWhDd05BSUJzZ0JrRUlhaEFHSWdJTkFpQUZJQXRCQW5ScUlnRWdCaWdDQ0RzQmdBSWdHeUFHUVFocUVBWWlBZzBDSUFFZ0JpZ0NDRHNCZ2dJZ0JpQUdLQUlNSWdGQkFXczJBZ3dnQzBFQmFpRUxRUUFoQWlBQkRRQUxEQUVMUVFBaEFnSkFBbjhDUUFKQUFrQWdFQTREQUFRQkJRc2dCU0FiRUJBaUFVRWZkallDRENBQlFYOUtEUUVnQVVFQmRDRUxRUUFNQWdzZ0NFRUNUd1JBUVFNaEF5QUxRUU5OQkVBZ0MwRUNkRUg4Tkdvb0FnQWhBd3NnQ0VFQ1N5RVBRUUVoQWdOQUlCc2dCa0VNYWlBUEVCUU5CU0FHS0FJTUlnRWdDRThOQlNBRklBcEJBblJxSUFFMkFwQUJJQU1pQVVFQmF5RURJQXBCQVdvaENpQUJEUUFMQzBFRElRSWdDMEVEVFFSQUlBdEJBblJCL0RScUtBSUFJUUlMUVFBaEN3TkFJQUloQVNBYklBWkJDR29RQmlJQ0RRUWdCU0FMUVFKMGFpSURJQVlvQWdnN0FhQUJJQnNnQmtFSWFoQUdJZ0lOQkNBRElBWW9BZ2c3QWFJQklBRkJBV3NoQWlBTFFRRnFJUXNnQVEwQUMwRUFJUUlNQXdzZ0JTQUJRUngyTmdKTUlBRkJCSFFoQzBFQkN5RUNJQVVnQzBFZmRqWUNFQ0FGSUF0QmYwd0VmeUFMUVFGMEJTQUZJQXRCSEhZMkFsQWdBa0VCYWlFQ0lBdEJCSFFMSWdGQkgzWTJBaFFnQlNBQlFRQklCSDhnQVVFQmRBVWdCU0FCUVJ4Mk5nSlVJQUpCQVdvaEFpQUJRUVIwQ3lJQlFSOTJOZ0lZSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNXQ0FDUVFGcUlRSWdBVUVFZEFzaUFVRWZkallDSENBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBbHdnQWtFQmFpRUNJQUZCQkhRTElnRkJIM1kyQWlBZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pnSUFKQkFXb2hBaUFCUVFSMEN5SUJRUjkyTmdJa0lBVWdBVUVBU0FSL0lBRkJBWFFGSUFVZ0FVRWNkallDWkNBQ1FRRnFJUUlnQVVFRWRBc2lBVUVmZGpZQ0tBSkFJQnNnQVVFQVRnUi9JQVVnQVVFY2RqWUNhQ0FDUVFGcUJTQUNDMEVEYkVFSWFoQUxRWDlIQkVBZ0JTQWJFQkFpQVVFZmRqWUNMQUovSUFGQmYwd0VRQ0FCUVFGMElRdEJBQXdCQ3lBRklBRkJISFkyQW13Z0FVRUVkQ0VMUVFFTElRSWdCU0FMUVI5Mk5nSXdJQVVnQzBFQVNBUi9JQXRCQVhRRklBVWdDMEVjZGpZQ2NDQUNRUUZxSVFJZ0MwRUVkQXNpQVVFZmRqWUNOQ0FGSUFGQkFFZ0VmeUFCUVFGMEJTQUZJQUZCSEhZMkFuUWdBa0VCYWlFQ0lBRkJCSFFMSWdGQkgzWTJBamdnQlNBQlFRQklCSDhnQVVFQmRBVWdCU0FCUVJ4Mk5nSjRJQUpCQVdvaEFpQUJRUVIwQ3lJQlFSOTJOZ0k4SUFWQlFHc2dBVUVBU0FSL0lBRkJBWFFGSUFVZ0FVRWNkallDZkNBQ1FRRnFJUUlnQVVFRWRBc2lBVUVmZGpZQ0FDQUZJQUZCQUVnRWZ5QUJRUUYwQlNBRklBRkJISFkyQW9BQklBSkJBV29oQWlBQlFRUjBDeUlCUVI5Mk5nSkVJQVVnQVVFQVNBUi9JQUZCQVhRRklBVWdBVUVjZGpZQ2hBRWdBa0VCYWlFQ0lBRkJCSFFMSWdGQkgzWTJBa2dnQVVFQVNBUi9JQUZCQVhRRklBVWdBVUVjZGpZQ2lBRWdBa0VCYWlFQ0lBRkJCSFFMSVFFZ0d5QUNRUU5zUVFocUVBdEJmMGNOQVF0QkFTRUNEQUlMSUFaQkFqWUNDQ0FHSUFFMkFnd0xRUUVoQWlBYklBWkJER29RQWcwQUlBWW9BZ3dpQVVFRFN3MEFJQVVnQVRZQ2pBRkJBQ0VDQ3lBQ0RRRUNRQ0FRUVFGSEJFQWdFRVVoQXlNQVFSQnJJZ0VrQUVFQklRSUNRQ0FiSUFGQkRHb1FBZzBBSUFFb0Fnd2lDRUV2U3cwQUlBWkIwRDlCZ01BQUlBTWJJQWhxTFFBQU5nSUVRUUFoQWdzZ0FVRVFhaVFBSUFJTkF5QUZJQVlvQWdRaUFUWUNCQ0FCUlEwQ0RBRUxJQVVnQlNnQ0FDSUJRUWRySWdKQkFuUkJjSEVpQTBFd2F5QURJQUpCQzBzYlFROUJBQ0FCUVJKTEczSTJBZ1FMUVFFaEFpQWJJQVpCREdvUUJnMEJJQVlvQWd3aUFVRm1TQTBCSUFGQkdVb05BU0FGSUFFMkFnZ0NmeUFGUVpBQ2FpRURJQVVvQWdRaEMwRUFJUW9DUUFKQUFrQWdCU2dDQUVFSFNRUkFRUU1oQWdOQUlBSWhBU0FMUVFGeEJFQWdBeUFLUVFKMGFrRzREV29nR3lBRElBcEJCblJxUVRocUlBY2dDaUFERUExQkVCQUpJZ0pCRUhZMkFnQWdBa0VQY1EwRUlBTWdDa0VCZEdvZ0FrRUVka0gvQVhFN0FRQWdBeUFLUVFGeUlnVkJBblJxUWJnTmFpQWJJQU1nQlVFR2RHcEJPR29nQnlBRklBTVFEVUVRRUFraUFrRVFkallDQUNBQ1FROXhEUVFnQXlBRlFRRjBhaUFDUVFSMlFmOEJjVHNCQUNBRElBcEJBbklpQlVFQ2RHcEJ1QTFxSUJzZ0F5QUZRUVowYWtFNGFpQUhJQVVnQXhBTlFSQVFDU0lDUVJCMk5nSUFJQUpCRDNFTkJDQURJQVZCQVhScUlBSkJCSFpCL3dGeE93RUFJQU1nQ2tFRGNpSUZRUUowYWtHNERXb2dHeUFESUFWQkJuUnFRVGhxSUFjZ0JTQURFQTFCRUJBSklnSkJFSFkyQWdBZ0FrRVBjUTBFSUFNZ0JVRUJkR29nQWtFRWRrSC9BWEU3QVFBTElBdEJBWFloQ3lBQlFRRnJJUUlnQ2tFRWFpRUtJQUVOQUFzTUFRc2dHeUFEUWJnTWFpQUhRUUFnQXhBTlFSQVFDU0lDUVE5eERRRWdBeUFDUVFSMlFmOEJjVHNCTUVFRElRSURRQ0FDSVFFZ0MwRUJjUVJBSUFNZ0NrRUNkR3BCdUExcUlCc2dBeUFLUVFaMGFrRThhaUFISUFvZ0F4QU5RUThRQ1NJQ1FROTJOZ0lBSUFKQkQzRU5BeUFESUFwQkFYUnFJQUpCQkhaQi93RnhPd0VBSUFNZ0NrRUJjaUlGUVFKMGFrRzREV29nR3lBRElBVkJCblJxUVR4cUlBY2dCU0FERUExQkR4QUpJZ0pCRDNZMkFnQWdBa0VQY1EwRElBTWdCVUVCZEdvZ0FrRUVka0gvQVhFN0FRQWdBeUFLUVFKeUlnVkJBblJxUWJnTmFpQWJJQU1nQlVFR2RHcEJQR29nQnlBRklBTVFEVUVQRUFraUFrRVBkallDQUNBQ1FROXhEUU1nQXlBRlFRRjBhaUFDUVFSMlFmOEJjVHNCQUNBRElBcEJBM0lpQlVFQ2RHcEJ1QTFxSUJzZ0F5QUZRUVowYWtFOGFpQUhJQVVnQXhBTlFROFFDU0lDUVE5Mk5nSUFJQUpCRDNFTkF5QURJQVZCQVhScUlBSkJCSFpCL3dGeE93RUFDeUFMUVFGMklRc2dBVUVCYXlFQ0lBcEJCR29oQ2lBQkRRQUxDeUFMUVFOeEJFQWdHeUFEUWZnTWFrRi9RUVFRQ1NJQ1FROXhEUUVnQXlBQ1FRUjJRZjhCY1RzQk1pQWJJQU5CaUExcVFYOUJCQkFKSWdKQkQzRU5BU0FESUFKQkJIWkIvd0Z4T3dFMEMwRUFJUUlnQzBFQ2NVVU5BQ0FiSUFNZ0NrRUdkR3BCUEdvZ0J5QUtJQU1RRFVFUEVBa2lBVUVQY1FSQUlBRU1Bd3NnQXlBS1FRRjBhaUFCUVFSMlFmOEJjVHNCQUNBRElBcEJBblJxUWJnTmFpQUJRUTkyTmdJQUlCc2dBeUFLUVFGcUlnRkJCblJxUVR4cUlBY2dBU0FERUExQkR4QUpJZ0pCRDNGRkRRRUxJQUlNQVFzZ0F5QUJRUUYwYWlBQ1FRUjJRZjhCY1RzQkFDQURJQUZCQW5ScVFiZ05haUFDUVE5Mk5nSUFJQnNnQXlBS1FRSnFJZ0ZCQm5ScVFUeHFJQWNnQVNBREVBMUJEeEFKSWdKQkQzRUVRQ0FDREFFTElBTWdBVUVCZEdvZ0FrRUVka0gvQVhFN0FRQWdBeUFCUVFKMGFrRzREV29nQWtFUGRqWUNBQ0FiSUFNZ0NrRURhaUlCUVFaMGFrRThhaUFISUFFZ0F4QU5RUThRQ1NJQ1FROXhCRUFnQWd3QkN5QURJQUZCQVhScUlBSkJCSFpCL3dGeE93RUFJQU1nQVVFQ2RHcEJ1QTFxSUFKQkQzWTJBZ0FnR3lBRElBcEJCR29pQVVFR2RHcEJQR29nQnlBQklBTVFEVUVQRUFraUFrRVBjUVJBSUFJTUFRc2dBeUFCUVFGMGFpQUNRUVIyUWY4QmNUc0JBQ0FESUFGQkFuUnFRYmdOYWlBQ1FROTJOZ0lBSUJzZ0F5QUtRUVZxSWdGQkJuUnFRVHhxSUFjZ0FTQURFQTFCRHhBSklnSkJEM0VFUUNBQ0RBRUxJQU1nQVVFQmRHb2dBa0VFZGtIL0FYRTdBUUFnQXlBQlFRSjBha0c0RFdvZ0FrRVBkallDQUNBYklBTWdDa0VHYWlJQlFRWjBha0U4YWlBSElBRWdBeEFOUVE4UUNTSUNRUTl4QkVBZ0Fnd0JDeUFESUFGQkFYUnFJQUpCQkhaQi93RnhPd0VBSUFNZ0FVRUNkR3BCdUExcUlBSkJEM1kyQWdBZ0d5QURJQXBCQjJvaUFVRUdkR3BCUEdvZ0J5QUJJQU1RRFVFUEVBa2lBa0VQY1FSQUlBSU1BUXNnQXlBQlFRRjBhaUFDUVFSMlFmOEJjVHNCQUNBRElBRkJBblJxUWJnTmFpQUNRUTkyTmdJQVFRQUxJUUlnR3lBYktBSUlJQnNvQWdRZ0d5Z0NBR3RCQTNScU5nSVFJQUlOQVF0QkFDRUNDeUFHUVJCcUpBQWdBaUlHRFFJTEFuOGdJQ2dDRENnQ1FDRVRJQ05CRUdvaEFTQWdLQUs4Q1NBcGFpSUdJQTBvQWdBaUtqWUNBQ0FHSUFZb0FzUUJRUUZxTmdMRUFTQWRJQVFRSEFKQUFrQUNRQUpBSUNvRVFDQXFRUjlHQkVBZ0JrRUFOZ0lVSUFZb0FzUUJRUUpQQkVBZ0JrS1FnTUNBZ0lLQUNEY0JIQ0FHUXBDQXdJQ0Fnb0FJTndGRUlBWkNrSURBZ0lDQ2dBZzNBVHdnQmtLUWdNQ0FnSUtBQ0RjQk5DQUdRcENBd0lDQWdvQUlOd0VzSUFaQ2tJREFnSUNDZ0FnM0FTUkJBQXdIQ3lBR1FSeHFJUThnRFVISUFtb2hCVUVYSVFNZ0FTRUNBMEFnRDBFUU93RUFJQUlnQlNnQ0FEb0FBQ0FDSUFVb0FnUTZBQUVnQWlBRktBSUlPZ0FDSUFJZ0JTZ0NERG9BQXlBQ0lBVW9BaEE2QUFRZ0FpQUZLQUlVT2dBRklBSWdCU2dDR0RvQUJpQUNJQVVvQWh3NkFBY2dBaUFGS0FJZ09nQUlJQUlnQlNnQ0pEb0FDU0FDSUFVb0FpZzZBQW9nQWlBRktBSXNPZ0FMSUFJZ0JTZ0NNRG9BRENBQ0lBVW9BalE2QUEwZ0FpQUZLQUk0T2dBT0lBSWdCU2dDUERvQUR5QURJZ1pCQVdzaEF5QVBRUUpxSVE4Z0FrRVFhaUVDSUFWQlFHc2hCU0FHRFFBTElCMGdBUkFZREFRTElBWWdEU2tDa0FJM0Fod2dCaUFOS1FHK0FqY0JTaUFHSUEwcEFyZ0NOd0pFSUFZZ0RTa0NzQUkzQWp3Z0JpQU5LUUtvQWpjQ05DQUdJQTBwQXFBQ053SXNJQVlnRFNrQ21BSTNBaVFnSXlnQ0NDRUxBa0FnRFNnQ0NDSUNSUTBBSUNNZ0FpQUxhaUlMTmdJSUlDTWdDMEYvVEFSL0lBdEJOR29GSUF0Qk5FZ05BU0FMUVRSckN5SUxOZ0lJQ3lBR1FSeHFJUW9nQmlBTE5nSVVJQTFCeUE5cUlROGdEVUhJQW1vaEFnSkFBa0FnQmlnQ0FFRUdUUVJBSUFvdkFRQkZEUUZCQVNFRElBSWdDMEVBSUE4b0FnQVFCMFVOQWd3SEN5QUdMd0ZNQkVBQ1FDQU5RY2dPYWlJREtBSTRJZ1VnQXlnQ0pDSUhhaUlJSUFNb0Fqd2lEQ0FES0FJb0loRnFJZzVySVJBZ0J5QUZheUlGSUJFZ0RHc2lCMnNoRENBRklBZHFJUkVnQ0NBT2FpRU9JQU1vQWl3aUJTQURLQUlNSWdkcUlnZ2dBeWdDTkNJWklBTW9BaUFpRm1vaUZXc2hFaUFISUFWcklnVWdGaUFaYXlJSGF5RVpJQVVnQjJvaEZpQUlJQlZxSVJVZ0F5Z0NIQ0lGSUFNb0FnZ2lCMm9pQ0NBREtBSXdJaHdnQXlnQ0VDSWVhaUlrYXlFWElBY2dCV3NpQlNBZUlCeHJJZ2RySVJ3Z0JTQUhhaUVlSUFnZ0pHb2hKQ0FES0FJVUlnVWdBeWdDQUNJSGFpSUlJQU1vQWhnaUpTQURLQUlFSWhwcUlpRnJJU1lnQnlBRmF5SUZJQm9nSldzaUIyc2hKU0FGSUFkcUlSb2dDQ0FoYWlFaElBdEJrRHhxTFFBQUlRZ2dDMEdnUFdvdEFBQkJER3hCMER4cUtBSUFJUVVnQzBFTVR3UkFJQU1nQlNBSVFRSnJkQ0lGSUJVZ0lXb2lCeUFPSUNScUlnaHJiRFlDTUNBRElDRWdGV3NpQ3lBa0lBNXJJZzVySUFWc05nSWdJQU1nQ3lBT2FpQUZiRFlDRUNBRElBY2dDR29nQld3MkFnQWdBeUFXSUJwcUlnY2dFU0FlYWlJSWF5QUZiRFlDTkNBRElCb2dGbXNpQ3lBZUlCRnJJaEZySUFWc05nSWtJQU1nQ3lBUmFpQUZiRFlDRkNBRElBY2dDR29nQld3MkFnUWdBeUFaSUNWcUlnY2dEQ0FjYWlJSWF5QUZiRFlDT0NBRElDVWdHV3NpQ3lBY0lBeHJJZ3hySUFWc05nSW9JQU1nQ3lBTWFpQUZiRFlDR0NBRElBY2dDR29nQld3MkFnZ2dBeUFTSUNacUlnY2dFQ0FYYWlJSWF5QUZiRFlDUENBRElDWWdFbXNpQ3lBWElCQnJJaEJySUFWc05nSXNJQU1nQ3lBUWFpQUZiRFlDSENBRElBY2dDR29nQld3MkFnd01BUXNnQTBFQlFRSWdDMEVHYTBFR1NSc2lCeUFWSUNGcUlnc2dEaUFrYWlJdWF5QUZiR3BCQWlBSWF5SUlkVFlDTUNBRElDRWdGV3NpRlNBa0lBNXJJZzVySUFWc0lBZHFJQWgxTmdJZ0lBTWdEaUFWYWlBRmJDQUhhaUFJZFRZQ0VDQURJQXNnTG1vZ0JXd2dCMm9nQ0hVMkFnQWdBeUFXSUJwcUlnc2dFU0FlYWlJT2F5QUZiQ0FIYWlBSWRUWUNOQ0FESUJvZ0Ztc2lGaUFlSUJGckloRnJJQVZzSUFkcUlBaDFOZ0lrSUFNZ0VTQVdhaUFGYkNBSGFpQUlkVFlDRkNBRElBc2dEbW9nQld3Z0Iyb2dDSFUyQWdRZ0F5QVpJQ1ZxSWdzZ0RDQWNhaUlSYXlBRmJDQUhhaUFJZFRZQ09DQURJQ1VnR1dzaURpQWNJQXhySWd4cklBVnNJQWRxSUFoMU5nSW9JQU1nRENBT2FpQUZiQ0FIYWlBSWRUWUNHQ0FESUFzZ0VXb2dCV3dnQjJvZ0NIVTJBZ2dnQXlBU0lDWnFJZ3NnRUNBWGFpSU1heUFGYkNBSGFpQUlkVFlDUENBRElDWWdFbXNpRVNBWElCQnJJaEJySUFWc0lBZHFJQWgxTmdJc0lBTWdFQ0FSYWlBRmJDQUhhaUFJZFRZQ0hDQURJQXNnREdvZ0JXd2dCMm9nQ0hVMkFnd0xDMEd3TkNFTFFROGhBd05BSUFNaEJTQUNJQTBnQ3lnQ0FFRUNkR3BCeUE1cUtBSUFJZ00yQWdBQ1FBSkFJQU5GQkVBZ0NpOEJBRVVOQVF0QkFTRURJQUlnQmlnQ0ZFRUJJQThvQWdBUUIwVU5BUXdKQ3lBQ1FmLy8vd2MyQWdBTElBdEJCR29oQ3lBRlFRRnJJUU1nRDBFRWFpRVBJQXBCQW1vaENpQUNRVUJySVFJZ0JRMEFDd3dEQ3lBQ1FmLy8vd2MyQWdBTElBMUJpQU5xSVFJQ1FDQUdMd0VlQkVCQkFTRURJQUlnQmlnQ0ZFRUFJQTFCekE5cUtBSUFFQWRGRFFFTUJnc2dBa0gvLy84SE5nSUFDeUFOUWNnRGFpRUNBa0FnQmk4QklBUkFRUUVoQXlBQ0lBWW9BaFJCQUNBTlFkQVBhaWdDQUJBSFJRMEJEQVlMSUFKQi8vLy9CellDQUFzZ0RVR0lCR29oQWdKQUlBWXZBU0lFUUVFQklRTWdBaUFHS0FJVVFRQWdEVUhVRDJvb0FnQVFCMFVOQVF3R0N5QUNRZi8vL3djMkFnQUxJQTFCeUFScUlRSUNRQ0FHTHdFa0JFQkJBU0VESUFJZ0JpZ0NGRUVBSUExQjJBOXFLQUlBRUFkRkRRRU1CZ3NnQWtILy8vOEhOZ0lBQ3lBTlFZZ0ZhaUVDQWtBZ0JpOEJKZ1JBUVFFaEF5QUNJQVlvQWhSQkFDQU5RZHdQYWlnQ0FCQUhSUTBCREFZTElBSkIvLy8vQnpZQ0FBc2dEVUhJQldvaEFnSkFJQVl2QVNnRVFFRUJJUU1nQWlBR0tBSVVRUUFnRFVIZ0Qyb29BZ0FRQjBVTkFRd0dDeUFDUWYvLy93YzJBZ0FMSUExQmlBWnFJUUlDUUNBR0x3RXFCRUJCQVNFRElBSWdCaWdDRkVFQUlBMUI1QTlxS0FJQUVBZEZEUUVNQmdzZ0FrSC8vLzhITmdJQUN5QU5RY2dHYWlFQ0FrQWdCaThCTEFSQVFRRWhBeUFDSUFZb0FoUkJBQ0FOUWVnUGFpZ0NBQkFIUlEwQkRBWUxJQUpCLy8vL0J6WUNBQXNnRFVHSUIyb2hBZ0pBSUFZdkFTNEVRRUVCSVFNZ0FpQUdLQUlVUVFBZ0RVSHNEMm9vQWdBUUIwVU5BUXdHQ3lBQ1FmLy8vd2MyQWdBTElBMUJ5QWRxSVFJQ1FDQUdMd0V3QkVCQkFTRURJQUlnQmlnQ0ZFRUFJQTFCOEE5cUtBSUFFQWRGRFFFTUJnc2dBa0gvLy84SE5nSUFDeUFOUVlnSWFpRUNBa0FnQmk4Qk1nUkFRUUVoQXlBQ0lBWW9BaFJCQUNBTlFmUVBhaWdDQUJBSFJRMEJEQVlMSUFKQi8vLy9CellDQUFzZ0RVSElDR29oQWdKQUlBWXZBVFFFUUVFQklRTWdBaUFHS0FJVVFRQWdEVUg0RDJvb0FnQVFCMFVOQVF3R0N5QUNRZi8vL3djMkFnQUxJQTFCaUFscUlRSUNRQ0FHTHdFMkJFQkJBU0VESUFJZ0JpZ0NGRUVBSUExQi9BOXFLQUlBRUFkRkRRRU1CZ3NnQWtILy8vOEhOZ0lBQ3lBTlFjZ0phaUVDQWtBZ0JpOEJPQVJBUVFFaEF5QUNJQVlvQWhSQkFDQU5RWUFRYWlnQ0FCQUhSUTBCREFZTElBSkIvLy8vQnpZQ0FBc2dEVUdJQ21vaEFnSkFJQVl2QVRvRVFFRUJJUU1nQWlBR0tBSVVRUUFnRFVHRUVHb29BZ0FRQjBVTkFRd0dDeUFDUWYvLy93YzJBZ0FMSUExQmlCQnFJUThnRFVISUNtb2hBZ3dCQ3lBR1FnQTNBaHdnQmtJQU53RktJQVpDQURjQ1JDQUdRZ0EzQWp3Z0JrSUFOd0kwSUFaQ0FEY0NMQ0FHUWdBM0FpUWdCaUFqS0FJSU5nSVVEQUVMSUFZb0FoZ2dCaWdDRkdvaUEwRXpJQU5CTTBnYklnTkJBQ0FEUVFCS0cwRUNkRUhnUFdvb0FnQWhCUUpBSUFZdkFVNUZCRUFnQmk4QlVFVU5BUXNnQlVHZ1BXb3RBQUJCREd4QjBEeHFLQUlBSVF0QkFTRUtJQTFCaUE5cUlnTUNmeUFGUVFaUEJFQkJBQ0VLSUFzZ0JVR1FQR290QUFCQkFXdDBJUXNMSUFNb0FnQWlCeUFES0FJSUlnaHJJaEFnQXlnQ0JDSU1JQU1vQWd3aUVXc2lEbXNnQzJ3Z0NuVUxOZ0lNSUFNZ0RpQVFhaUFMYkNBS2RUWUNDQ0FESUFjZ0NHb2lCeUFNSUJGcUlnaHJJQXRzSUFwMU5nSUVJQU1nQnlBSWFpQUxiQ0FLZFRZQ0FDQURJQU1vQWh3aUJ5QURLQUlVSWdocUloQWdBeWdDR0NJTUlBTW9BaEFpRVdvaURtb2dDMndnQ25VMkFoQWdBeUFJSUFkcklnY2dFU0FNYXlJSWFpQUxiQ0FLZFRZQ0dDQURJQTRnRUdzZ0Myd2dDblUyQWhRZ0F5QUlJQWRySUF0c0lBcDFOZ0ljQ3lBQ0lBMUJpQTlxS0FJQUlnTTJBZ0FDUUFKQUlBTkZCRUFnQmk4QlBFVU5BUXRCQVNFRElBSWdCVUVCSUE4b0FnQVFCMFVOQVF3RUN5QUNRZi8vL3djMkFnQUxJQUlnRFNnQ2pBOGlBellDUUNBQ1FVQnJJUWNDUUFKQUlBTkZCRUFnQmk4QlBrVU5BUXRCQVNFRElBY2dCVUVCSUE4b0FnUVFCMFVOQVF3RUN5QUhRZi8vL3djMkFnQUxJQUlnRFNnQ2tBOGlBellDZ0FFZ0FrR0FBV29oQndKQUFrQWdBMFVFUUNBR1FVQnJMd0VBUlEwQkMwRUJJUU1nQnlBRlFRRWdEeWdDQ0JBSFJRMEJEQVFMSUFkQi8vLy9CellDQUFzZ0FpQU5LQUtVRHlJRE5nTEFBU0FDUWNBQmFpRUhBa0FDUUNBRFJRUkFJQVl2QVVKRkRRRUxRUUVoQXlBSElBVkJBU0FQS0FJTUVBZEZEUUVNQkFzZ0IwSC8vLzhITmdJQUN5QUNJQTBvQXBnUElnTTJBb0FDSUFKQmdBSnFJUWNDUUFKQUlBTkZCRUFnQmk4QlJFVU5BUXRCQVNFRElBY2dCVUVCSUE4b0FoQVFCMFVOQVF3RUN5QUhRZi8vL3djMkFnQUxJQUlnRFNnQ25BOGlBellDd0FJZ0FrSEFBbW9oQndKQUFrQWdBMFVFUUNBR0x3RkdSUTBCQzBFQklRTWdCeUFGUVFFZ0R5Z0NGQkFIUlEwQkRBUUxJQWRCLy8vL0J6WUNBQXNnQWlBTktBS2dEeUlETmdLQUF5QUNRWUFEYWlFSEFrQUNRQ0FEUlFSQUlBWXZBVWhGRFFFTFFRRWhBeUFISUFWQkFTQVBLQUlZRUFkRkRRRU1CQXNnQjBILy8vOEhOZ0lBQ3lBQ0lBMG9BcVFQSWdNMkFzQURJQUpCd0FOcUlRSUNRQUpBSUFORkJFQWdCaThCU2tVTkFRdEJBU0VESUFJZ0JVRUJJQThvQWh3UUIwVU5BUXdFQ3lBQ1FmLy8vd2MyQWdBTElDcEJCa2tOQUNBQklReEJBQ0VIUVFBaEhpTUFRZEFBYXlJUkpBQWdFVUVnYWlFSUlCRWhBd0pBSUFSRkRRQWdIU2dDQUNBRUlCMG9BZ1FpQlc0aUR5QUZiQ0lCUVFoMGFpQUVJQUZySWd0QkJIUnFJUW9nQlVFRWRDRUNJQjBvQWdnaEVDQUVJQVZKSWc1RkJFQWdDQ0FLSUFKQmYzTnFJZ0V0QUFBNkFBQWdDQ0FLSUFKckxRQUFPZ0FCSUFnZ0FTMEFBam9BQWlBSUlBRXRBQU02QUFNZ0NDQUJMUUFFT2dBRUlBZ2dBUzBBQlRvQUJTQUlJQUV0QUFZNkFBWWdDQ0FCTFFBSE9nQUhJQWdnQVMwQUNEb0FDQ0FJSUFFdEFBazZBQWtnQ0NBQkxRQUtPZ0FLSUFnZ0FTMEFDem9BQ3lBSUlBRXRBQXc2QUF3Z0NDQUJMUUFOT2dBTklBZ2dBUzBBRGpvQURpQUlJQUV0QUE4NkFBOGdDQ0FCTFFBUU9nQVFJQWdnQVMwQUVUb0FFU0FJSUFFdEFCSTZBQklnQ0NBQkxRQVRPZ0FUSUFnZ0FTMEFGRG9BRkNBSVFSVnFJUWdMSUFzRVFDQURJQXBCQVdzaUFTMEFBRG9BQUNBRElBRWdBbW9pQVMwQUFEb0FBU0FESUFFZ0Ftb2lBUzBBQURvQUFpQURJQUVnQW1vaUFTMEFBRG9BQXlBRElBRWdBbW9pQVMwQUFEb0FCQ0FESUFFZ0Ftb2lBUzBBQURvQUJTQURJQUVnQW1vaUFTMEFBRG9BQmlBRElBRWdBbW9pQVMwQUFEb0FCeUFESUFFZ0Ftb2lBUzBBQURvQUNDQURJQUVnQW1vaUFTMEFBRG9BQ1NBRElBRWdBbW9pQVMwQUFEb0FDaUFESUFFZ0Ftb2lBUzBBQURvQUN5QURJQUVnQW1vaUFTMEFBRG9BRENBRElBRWdBbW9pQVMwQUFEb0FEU0FESUFFZ0Ftb2lBUzBBQURvQURpQURJQUVnQW1vdEFBQTZBQThnQTBFUWFpRURDeUFkS0FJQUlBVWdFR3dpRUVFSWRHb2dEeUFGUVFOMElnRnNRUU4wYWlBTFFRTjBhaUVLSUFGQitQLy8vd2R4SVFFZ0RrVUVRQ0FJSUFvZ0FVRi9jMm9pQWkwQUFEb0FBQ0FJSUFvZ0FXc3RBQUE2QUFFZ0NDQUNMUUFDT2dBQ0lBZ2dBaTBBQXpvQUF5QUlJQUl0QUFRNkFBUWdDQ0FDTFFBRk9nQUZJQWdnQWkwQUJqb0FCaUFJSUFJdEFBYzZBQWNnQ0NBQ1FRaHFJZ0l0QUFBNkFBZ2dDQ0FRUVFaMElBSnFJZ0pCQ0dzdEFBQTZBQWtnQ0NBQ1FRZHJMUUFBT2dBS0lBZ2dBa0VHYXkwQUFEb0FDeUFJSUFKQkJXc3RBQUE2QUF3Z0NDQUNRUVJyTFFBQU9nQU5JQWdnQWtFRGF5MEFBRG9BRGlBSUlBSkJBbXN0QUFBNkFBOGdDQ0FDUVFGckxRQUFPZ0FRSUFnZ0FpMEFBRG9BRVFzZ0MwVU5BQ0FESUFwQkFXc2lBaTBBQURvQUFDQURJQUVnQW1vaUFpMEFBRG9BQVNBRElBRWdBbW9pQWkwQUFEb0FBaUFESUFFZ0Ftb2lBaTBBQURvQUF5QURJQUVnQW1vaUFpMEFBRG9BQkNBRElBRWdBbW9pQWkwQUFEb0FCU0FESUFFZ0Ftb2lBaTBBQURvQUJpQURJQUVnQW1vaUFpMEFBRG9BQnlBRElBRWdBbW9nRUNBRmEwRUdkR29pQWkwQUFEb0FDQ0FESUFFZ0Ftb2lBaTBBQURvQUNTQURJQUVnQW1vaUFpMEFBRG9BQ2lBRElBRWdBbW9pQWkwQUFEb0FDeUFESUFFZ0Ftb2lBaTBBQURvQURDQURJQUVnQW1vaUFpMEFBRG9BRFNBRElBRWdBbW9pQWkwQUFEb0FEaUFESUFFZ0Ftb3RBQUE2QUE4TEFrQUNRRUVDSUFZb0FnQWlBVUVHUnlBQlFRWkpHMEVCUmdSQUFuOGdEQ0VESUExQnlBSnFJUWdDZnlBR0tBTElBU0lCQkVBZ0JpZ0NCQ0FCS0FJRVJnd0JDMEVBQ3lFTEFrQWdFMFVOQUNBTFJRMEFRUUFnQzBFQ0lBWW9Bc2dCS0FJQUlnRkJCa2NnQVVFR1NSdEJBa1liSVFzTEFuOGdCaWdDekFFaUFRUkFJQVlvQWdRZ0FTZ0NCRVlNQVF0QkFBc2hCUUpBSUJORkRRQWdCVVVOQUVFQUlBVkJBaUFHS0FMTUFTZ0NBQ0lCUVFaSElBRkJCa2tiUVFKR0d5RUZDd0ovSUFZb0F0UUJJZ0VFUUNBR0tBSUVJQUVvQWdSR0RBRUxRUUFMSVFJQ1FDQVRSUTBBSUFKRkRRQkJBaUFHS0FMVUFTZ0NBQ0lCUVFaSElBRkJCa2tiUVFKSElRSUxBa0FDUUFKQUFrQUNRQUpBSUFZb0FnQkJBV3BCQTNFT0F3QUJBZ01MUVFFZ0JVVU5CUnBCQVNFSElBTWhBUU5BSUFFZ0VTMEFJVG9BQUNBQklCRXRBQ0k2QUFFZ0FTQVJMUUFqT2dBQ0lBRWdFUzBBSkRvQUF5QUJJQkV0QUNVNkFBUWdBU0FSTFFBbU9nQUZJQUVnRVMwQUp6b0FCaUFCSUJFdEFDZzZBQWNnQVNBUkxRQXBPZ0FJSUFFZ0VTMEFLam9BQ1NBQklCRXRBQ3M2QUFvZ0FTQVJMUUFzT2dBTElBRWdFUzBBTFRvQURDQUJJQkV0QUM0NkFBMGdBU0FSTFFBdk9nQU9JQUVnRVMwQU1Eb0FEeUFIUVJCR0RRUWdBVUVRYWlFQklBZEJBV29oQnd3QUN3QUxRUUVnQzBVTkJCb2dBeUVCQTBBZ0FTQUhJQkZxSWdJdEFBQTZBQUFnQVNBQ0xRQUFPZ0FCSUFFZ0FpMEFBRG9BQWlBQklBSXRBQUE2QUFNZ0FTQUNMUUFBT2dBRUlBRWdBaTBBQURvQUJTQUJJQUl0QUFBNkFBWWdBU0FDTFFBQU9nQUhJQUVnQWkwQUFEb0FDQ0FCSUFJdEFBQTZBQWtnQVNBQ0xRQUFPZ0FLSUFFZ0FpMEFBRG9BQ3lBQklBSXRBQUE2QUF3Z0FTQUNMUUFBT2dBTklBRWdBaTBBQURvQURpQUJJQUl0QUFBNkFBOGdBVUVRYWlFQklBZEJBV29pQjBFUVJ3MEFDd3dDQ3lBREFuOENRQ0FMUlEwQUlBVkZEUUFnRVMwQUR5QVJMUUF3SUJFdEFBNGdFUzBBTHlBUkxRQU5JQkV0QUM0Z0VTMEFEQ0FSTFFBdElCRXRBQXNnRVMwQUxDQVJMUUFLSUJFdEFDc2dFUzBBQ1NBUkxRQXFJQkV0QUFnZ0VTMEFLU0FSTFFBSElCRXRBQ2dnRVMwQUJpQVJMUUFuSUJFdEFBVWdFUzBBSmlBUkxRQUVJQkV0QUNVZ0VTMEFBeUFSTFFBa0lCRXRBQUlnRVMwQUl5QVJMUUFCSUJFdEFDSWdFUzBBSVNBUkxRQUFhbXBxYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYWtFUWFrRUZkZ3dCQ3lBTEJFQWdFUzBBRHlBUkxRQU9JQkV0QUEwZ0VTMEFEQ0FSTFFBTElCRXRBQW9nRVMwQUNTQVJMUUFJSUJFdEFBY2dFUzBBQmlBUkxRQUZJQkV0QUFRZ0VTMEFBeUFSTFFBQ0lCRXRBQUFnRVMwQUFXcHFhbXBxYW1wcWFtcHFhbXBxYWtFSWFrRUVkZ3dCQzBHQUFTQUZSUTBBR2lBUkxRQXdJQkV0QUM4Z0VTMEFMaUFSTFFBdElCRXRBQ3dnRVMwQUt5QVJMUUFxSUJFdEFDa2dFUzBBS0NBUkxRQW5JQkV0QUNZZ0VTMEFKU0FSTFFBa0lCRXRBQ01nRVMwQUlTQVJMUUFpYW1wcWFtcHFhbXBxYW1wcWFtcHFRUWhxUVFSMkMwR0FBaEFFR2d3QkMwRUJJUUVnQzBVTkFTQUZSUTBCSUFKRkRRRWdFUzBBQ0NBUkxRQUdheUFSTFFBUElnRWdFUzBBSUNJQ2EwRURkR29nRVMwQUNTQVJMUUFGYTBFQmRHb2dFUzBBQ2lBUkxRQUVhMEVEYkdvZ0VTMEFDeUFSTFFBRGEwRUNkR29nRVMwQURDQVJMUUFDYTBFRmJHb2dFUzBBRFNBUkxRQUJhMEVHYkdvZ0VTMEFEaUFSTFFBQWEwRUhiR3BCQld4QklHcEJCblVoQ3lBUkxRQXBJQkV0QUNkcklCRXRBQ29nRVMwQUptdEJBWFJxSUJFdEFDc2dFUzBBSld0QkEyeHFJQkV0QUN3Z0VTMEFKR3RCQW5ScUlCRXRBQzBnRVMwQUkydEJCV3hxSUJFdEFDNGdFUzBBSW10QkJteHFJQkV0QUM4Z0VTMEFJV3RCQjJ4cUlCRXRBREFpQ2lBQ2EwRURkR3BCQld4QklHcEJCblVpQlVFRGRDRVFJQVZCQjJ3aER5QUZRUVpzSVE0Z0JVRUZiQ0VTSUFWQkEyd2hHU0FGUVgxc0lSWWdCVUY3YkNFVklBVkJlbXdoRnlBRlFYbHNJUnhCQUNBRlFRRjBJaDVySVNSQkFDQUZRUUowSWlacklTVWdBU0FLYWtFRWRFRVFhaUVLQTBBZ0F5QUhRUVIwSWdGcUlBb2dCMEVIYXlBTGJHb2lBaUFjYWtFRmRTSWFRZjhCSUJwQi93RklHeUlhUVFBZ0drRUFTaHM2QUFBZ0F5QUJRUUZ5YWlBQ0lCZHFRUVYxSWhwQi93RWdHa0gvQVVnYklocEJBQ0FhUVFCS0d6b0FBQ0FESUFGQkFuSnFJQUlnRldwQkJYVWlHa0gvQVNBYVFmOEJTQnNpR2tFQUlCcEJBRW9iT2dBQUlBTWdBVUVEY21vZ0FpQWxha0VGZFNJYVFmOEJJQnBCL3dGSUd5SWFRUUFnR2tFQVNoczZBQUFnQXlBQlFRUnlhaUFDSUJacVFRVjFJaHBCL3dFZ0drSC9BVWdiSWhwQkFDQWFRUUJLR3pvQUFDQURJQUZCQlhKcUlBSWdKR3BCQlhVaUdrSC9BU0FhUWY4QlNCc2lHa0VBSUJwQkFFb2JPZ0FBSUFNZ0FVRUdjbW9nQWlBRmEwRUZkU0lhUWY4QklCcEIvd0ZJR3lJYVFRQWdHa0VBU2hzNkFBQWdBeUFCUVFkeWFpQUNRUVYxSWhwQi93RWdHa0gvQVVnYklocEJBQ0FhUVFCS0d6b0FBQ0FESUFGQkNISnFJQUlnQldwQkJYVWlHa0gvQVNBYVFmOEJTQnNpR2tFQUlCcEJBRW9iT2dBQUlBTWdBVUVKY21vZ0FpQWVha0VGZFNJYVFmOEJJQnBCL3dGSUd5SWFRUUFnR2tFQVNoczZBQUFnQXlBQlFRcHlhaUFDSUJscVFRVjFJaHBCL3dFZ0drSC9BVWdiSWhwQkFDQWFRUUJLR3pvQUFDQURJQUZCQzNKcUlBSWdKbXBCQlhVaUdrSC9BU0FhUWY4QlNCc2lHa0VBSUJwQkFFb2JPZ0FBSUFNZ0FVRU1jbW9nQWlBU2FrRUZkU0lhUWY4QklCcEIvd0ZJR3lJYVFRQWdHa0VBU2hzNkFBQWdBeUFCUVExeWFpQUNJQTVxUVFWMUlocEIvd0VnR2tIL0FVZ2JJaHBCQUNBYVFRQktHem9BQUNBRElBRkJEbkpxSUFJZ0QycEJCWFVpR2tIL0FTQWFRZjhCU0JzaUdrRUFJQnBCQUVvYk9nQUFJQU1nQVVFUGNtb2dBaUFRYWtFRmRTSUJRZjhCSUFGQi93RklHeUlCUVFBZ0FVRUFTaHM2QUFBZ0IwRUJhaUlIUVJCSERRQUxDMEVBSVFFZ0F5QUlRUUFRRGlBRElBaEJRR3RCQVJBT0lBTWdDRUdBQVdwQkFoQU9JQU1nQ0VIQUFXcEJBeEFPSUFNZ0NFR0FBbXBCQkJBT0lBTWdDRUhBQW1wQkJSQU9JQU1nQ0VHQUEycEJCaEFPSUFNZ0NFSEFBMnBCQnhBT0lBTWdDRUdBQkdwQkNCQU9JQU1nQ0VIQUJHcEJDUkFPSUFNZ0NFR0FCV3BCQ2hBT0lBTWdDRUhBQldwQkN4QU9JQU1nQ0VHQUJtcEJEQkFPSUFNZ0NFSEFCbXBCRFJBT0lBTWdDRUdBQjJwQkRoQU9JQU1nQ0VIQUIycEJEeEFPQ3lBQkN5SUJSUTBCREFJTEFuOGdFVUVnYWlFaEFuOERRQUovSUFZZ0hrRURkRUd3TldvcEFnQWlTS2NRRVNJQklnSUVRQ0FHS0FJRUlBSW9BZ1JHREFFTFFRQUxJUWNDUUNBVFJRMEFJQWRGRFFCQkFDQUhRUUlnQVNnQ0FDSUNRUVpISUFKQkJra2JRUUpHR3lFSEN3Si9JQVlnSGtFRGRFSHdObW9wQWdBaVNhY1FFU0lDSWdNRVFDQUdLQUlFSUFNb0FnUkdEQUVMUVFBTElSSUNRQ0FUUlEwQUlCSkZEUUJCQUNBU1FRSWdBaWdDQUNJRFFRWkhJQU5CQmtrYlFRSkdHeUVTQzBFQ0lROGdCMEVBUnlBU1FRQkhjU0ltQkVCQkFpRUZBbjlCQWlBQktBSUFJZ05CQmtjZ0EwRUdTUnRGQkVBZ0FTQklRaUNJcDBIL0FYRnFMUUJTSVE4TElBOExBbjlCQWlBQ0tBSUFJZ0ZCQmtjZ0FVRUdTUnRGQkVBZ0FpQkpRaUNJcDBIL0FYRnFMUUJTSVFVTElBVUxJQVVnRDBzYklROExJQTBnSGtFQ2RDSUJhaUlDS0FJTVJRUkFJQUlvQWt3aUFpQUNJQTlQYWlFUEN5QUdJQjVxSUE4NkFGSUNmeUFHSUI1QkEzUkJzRGhxS0FJQUVCRWlBaUlEQkVBZ0JpZ0NCQ0FES0FJRVJnd0JDMEVBQ3lFV0FrQWdFMFVOQUNBV1JRMEFRUUFnRmtFQ0lBSW9BZ0FpQWtFR1J5QUNRUVpKRzBFQ1Joc2hGZ3NDZnlBR0lCNUJBM1JCOERscUtBSUFFQkVpQWlJREJFQWdCaWdDQkNBREtBSUVSZ3dCQzBFQUN5RVFBa0FnRTBVTkFDQVFSUTBBUVFBZ0VFRUNJQUlvQWdBaUFrRUdSeUFDUVFaSkcwRUNSaHNoRUFzZ0FVSHdLV29vQWdBaEpDQUJRYkFwYWlnQ0FDRWxBbjlCaFFvZ0huWkJBWEVpS2dSQUlDUkJBMm9oR1NBUklDUnFJZ0pCQW1vaEJTQUNRUUZxSVFnZ0VRd0JDeUFrUVFSMElDVnFJZ0ZCTDJvaEdTQUJJQXhxSWdGQkgyb2hCU0FCUVE5cUlRZ2dBVUVCYXlFQ0lBd0xJUUVnQVNBWmFpMEFBQ0VLSUFVdEFBQWhGU0FJTFFBQUlSY2dBaTBBQUNFY0FrQkJNeUFlZGtFQmNRUkFJQ0VnSldvaUdTMEFDQ0VESUJrdEFBY2hDeUFaTFFBR0lRNGdHUzBBQlNFYUlCa3RBQVFoQlNBWkxRQURJUWdnR1MwQUFpRUJJQmt0QUFFaEFnd0JDeUFNSUNSQkFXc2lMa0VFZENBbGFtb2lHUzBBQUNFQ0lCa3RBQWNoQXlBWkxRQUdJUXNnR1MwQUJTRU9JQmt0QUFRaEdpQVpMUUFESVFVZ0dTMEFBaUVJSUJrdEFBRWhBU0FxQkVBZ0VTQXVhaUVaREFFTElCbEJBV3NoR1FzZ0dTMEFBQ0VaQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBZ0R3NElBQUVDQXdRRkJnY0lDMEVCSUJKRkRRc2FJQUpCL3dGeElBRkIvd0Z4UVFoMGNpQUlRZjhCY1VFUWRISWdCVUVZZEhJaEZpQUNJZzhoRWlBQkloQWhEaUFJSWdNaENpQUZJZ2NoQ3d3SUMwRUJJQWRGRFFvYUlBcEJnWUtFQ0d3aEZpQVZRWUdDaEFoc0loSkJHSFloQ3lBU1FSQjJJUW9nRWtFSWRpRU9JQmRCZ1lLRUNHd2lEMEVZZGlFSElBOUJFSFloQXlBUFFRaDJJUkFnSEVHQmdvUUliQ0lDUVJoMklRVWdBa0VRZGlFSUlBSkJDSFloQVF3SEN3Si9JQmNnSEdvZ0Ntb2dGV29nQlVIL0FYRnFJQWhCL3dGeGFpQUJRZjhCY1dvZ0FrSC9BWEZxUVFScVFmai9BM0ZCQTNZZ0pnMEFHaUFYSUJ4cUlBcHFJQlZxUVFKcVFRSjJJQWNOQUJwQmdBRWdFa1VOQUJvZ0JVSC9BWEVnQ0VIL0FYRnFJQUZCL3dGeGFpQUNRZjhCY1dwQkFtcEJBbllMSWdKQi93RnhRWUdDaEFoc0lSWWdBaUlCSWdnaUJTSVBJaEFpQXlJSEloSWlEaUlLSVFzTUJndEJBU0FTUlEwSUdpQVdSUVJBSUFVaUF5SUxJZzRoR2dzZ0RrSC9BWEVpQnlBRFFmOEJjU0lLYWlBTFFmOEJjU0lMUVFGMGFrRUNhaUlRUVE1MFFZQ0EvQWR4SUFWQi93RnhJZzVCQW1vaUR5QUhhaUFhUWY4QmNTSURRUUYwYWtFQ2RpSUZJQXRCQW1vaUN5QURhaUFIUVFGMGFrRUNkaUlIUVFoMGNrSC8vd054Y2lBTElBcEJBMnhxUVJaMFFZQ0FnSGh4Y2lFV0lCQkJBblloQ3lBSVFmOEJjU0lJUVFKcUlnb2dBa0gvQVhGcUlBRkIvd0Z4SWdGQkFYUnFRUUoySVFJZ0FTQVBhaUFJUVFGMGFrRUNkaUlCSVE4Z0NpQU9RUUYwYWlBRGFrRUNkaUlJSVJBZ0NDRVNJQVVpQXlFT0lBY2hDZ3dGQzBFQklDWkZJQkJGY2cwR0dpQWNJQmRCQVhScUlCVnFRUUpxSWdOQkJuUkJnUDREY1NBQ1FmOEJjU0lIUVFKcUlnc2dIR29nR1VFQmRHcEJBbllpQWtFWWRDQVhRUUpxSWhBZ0hFRUJkR29nR1dwQkFuWWlEMEVRZEhKeUlBb2dFR29nRlVFQmRHcEJBblp5SVJZZ0FVSC9BWEVpQ2tFQ2FpSUJJQVZCL3dGeGFpQUlRZjhCY1NJSVFRRjBha0VDZGlFRklBTkJBblloRWlBQklBZEJBWFJxSUJscVFRSjJJZ0VoQXlBS1FRRjBJQWhxSUF0cVFRSjJJZ2doQnlBUElRNGdBaUlRSVFvZ0FTRUxEQVFMUVFFZ0prVWdFRVZ5RFFVYUlBRkIvd0Z4SWd0QkFtb2lCeUFDUWY4QmNTSUJRUUYwYWlBWmFrRUNkaUlRUVJCMElBRkJBbW9pQWlBY2FpQVpRUUYwYWlJS1FRWjBRWUQrQTNGeUlBSWdDRUgvQVhFaUFpQUxRUUYwYW1wQkFuWWlBMEVZZEhJZ0hDQVhRUUYwYWlBVmFrRUNha0VDZG5JaEZpQUNRUUZxSWdnZ0JVSC9BWEVpRDJwQkFYWWhCU0FYSUJ4QkFYUnFJQmxxUVFKcVFRSjJJUklnQnlBUGFpQUNRUUYwYWtFQ2RpRUhJQXBCQW5ZaER5QUJJQmxxUVFGcVFRRjJJZ0loRGlBQklBdHFRUUZxUVFGMklnRWhDaUFJSUF0cVFRRjJJZ2doQ3d3REMwRUJJQ1pGSUJCRmNnMEVHaUFYUVFKcUlnc2dDbW9nRlVFQmRHcEJCblJCZ1A0RGNTQWNRUUpxSWhBZ0YwRUJkR29nRldwQkFuWWlEa0VZZENBVklCZHFRUUZxUVFGMkloSkJFSFJ5Y2lBS0lCVnFRUUZxUVFGMmNpRVdJQUpCL3dGeElnY2dDRUgvQVhGcUlBRkIvd0Z4SWdGQkFYUnFRUUpxUVFKMklRVWdBU0FIUVFGMGFpQVpha0VDYWtFQ2RpRUlJQnhCQVdvaUNpQVpha0VCZGlJRElRSWdCeUFRYWlBWlFRRjBha0VDZGlJSElRRWdDaUFYYWtFQmRpSVBJUW9nQ3lBY1FRRjBhaUFaYWtFQ2RpSVFJUXNNQWd0QkFTQVNSUTBFR2lBRlFmOEJjU0laUVFKcUlnTWdEaUFGSUJZYlFmOEJjU0lIYWlBYUlBVWdGaHRCL3dGeElncEJBWFJxSWc5QkRuUkJnSUQ4QjNFZ0F5QUJRZjhCY1NJQmFpQUlRZjhCY1NJSVFRRjBha0VDZGlJUUlBaEJBbW9pRGlBS2FpQVpRUUYwYWtFQ2RpSURRUWgwY2tILy93TnhjaUFLSUFzZ0JTQVdHMEgvQVhGcUlBZEJBWFJxUVJaMFFZQ0FnQVJxUVlDQWdIaHhjaUVXSUFjZ0NtcEJBV3BCQVhZaEN5QVBRUUoySVFjZ0FTQUNRZjhCY1NJRmFrRUJha0VCZGlFQ0lBVWdEbW9nQVVFQmRHcEJBblloRHlBQklBaHFRUUZxUVFGMklnRWhFaUFaUVFGcUlnVWdDR3BCQVhZaUNDRU9JQVVnQ21wQkFYWWlCU0VLREFFTFFRRWdCMFVOQXhvZ0NrRUlkQ0FLY2lBS1FSQjBjaUFLUVJoMGNpRVdJQlZCQW1vaUJ5QWNhaUFYUVFGMGFrRUNkaUVCSUJkQkFXb2lBeUFjYWtFQmRpRUNJQU1nRldwQkFYWWlDQ0VQSUFvZ0Yyb2dGVUVCZEdwQkFtcEJBbllpQlNFUUlBb2dGV3BCQVdwQkFYWWlBeUVTSUFjZ0NrRURiR3BCQW5ZaUJ5RU9JQW9oQ3dzZ0RDQWtRUVIwSUNWcWFpSVpJQlkyQWpBZ0dTQVNRZjhCY1NBTFFSaDBJQXBCL3dGeFFSQjBjaUFPUWY4QmNVRUlkSEp5TmdJZ0lCa2dEMEgvQVhFZ0IwRVlkQ0FEUWY4QmNVRVFkSElnRUVIL0FYRkJDSFJ5Y2pZQ0VDQVpJQUpCL3dGeElBVkJHSFFnQ0VIL0FYRkJFSFJ5SUFGQi93RnhRUWgwY25JMkFnQWdEQ0FOSUI1QkJuUnFRY2dDYWlBZUVBNGdIa0VCYWlJZVFSQkhEUUFMUVFBTEN5SUJEUUVMUVFFaEFRSi9JQXhCZ0FKcUlRSWdEVUhJQ21vaENDQVJRVFZxSVFjZ0VVRVFhaUVGSUEwb0Fvd0JJUlpCQUNFUEFuOGdCaWdDeUFFaUF3UkFJQVlvQWdRZ0F5Z0NCRVlNQVF0QkFBc2hHUUpBSUJORkRRQWdHVVVOQUVFQUlCbEJBaUFHS0FMSUFTZ0NBQ0lEUVFaSElBTkJCa2tiUVFKR0d5RVpDd0ovSUFZb0Fzd0JJZ01FUUNBR0tBSUVJQU1vQWdSR0RBRUxRUUFMSVJBQ1FDQVRSUTBBSUJCRkRRQkJBQ0FRUVFJZ0JpZ0N6QUVvQWdBaUEwRUdSeUFEUVFaSkcwRUNSaHNoRUFzQ2Z5QUdJaElvQXRRQklnTUVRQ0FTS0FJRUlBTW9BZ1JHREFFTFFRQUxJUXNDUUNBVFJRMEFJQXRGRFFCQkFpQVNLQUxVQVNnQ0FDSURRUVpISUFOQkJra2JRUUpISVFzTElCbEJBRWNnRUVFQVIzRWlFeUFMUVFCSGNTRVZRUkFoQ3dOQUFrQUNRQUpBQWtBQ1FBSkFJQllPQXdBQkFnTUxBbjhnRXdSQUlBY3RBQWdnQnkwQUJ5QUhMUUFGSUFjdEFBWnFhbXBCQW1wQkFuWWhBeUFGTFFBRElBVXRBQUlnQlMwQUFTQUZMUUFBSUFjdEFBUWdCeTBBQXlBSExRQUJJQWN0QUFKcWFtcHFhbXBxUVFScVFRTjJEQUVMSUJBRVFDQUhMUUFJSUFjdEFBY2dCeTBBQlNBSExRQUdhbXBxUVFKcVFRSjJJUU1nQnkwQUJDQUhMUUFESUFjdEFBRWdCeTBBQW1wcWFrRUNha0VDZGd3QkN5QVpSUVJBUVlBQklRTkJnQUVNQVFzZ0JTMEFBeUFGTFFBQ0lBVXRBQUFnQlMwQUFXcHFha0VDYWtFQ2RpSURDeUVHSUFJZ0EwSC9BWEZCZ1lLRUNHd2lBellBSENBQ0lBWkIvd0Z4UVlHQ2hBaHNJZ1kyQUJnZ0FpQUROZ0FVSUFJZ0JqWUFFQ0FDSUFNMkFBd2dBaUFHTmdBSUlBSWdBellBQkNBQ0lBWTJBQUFDUUNBWkJFQWdCUzBBQnlBRkxRQUdJQVV0QUFVZ0JTMEFCR3BxYWlJS1FRSnFRUUoySVFNZ0VFVUVRQ0FESVFZTUFnc2dBeUVHSUFjdEFBZ2dCeTBBQnlBSExRQUdJQW9nQnkwQUJXcHFhbXBCQkdwQkEzWWhBd3dCQ3lBUVJRUkFRWUFCSVFOQmdBRWhCZ3dCQ3lBSExRQUlJQWN0QUFjZ0J5MEFCU0FITFFBR2FtcHFRUUpxUVFKMklRTWdCeTBBQkNBSExRQURJQWN0QUFFZ0J5MEFBbXBxYWtFQ2FrRUNkaUVHQ3lBQ0lBTkIvd0Z4UVlHQ2hBaHNJZ00yQUR3Z0FpQUdRZjhCY1VHQmdvUUliQ0lHTmdBNElBSWdBellBTkNBQ0lBWTJBREFnQWlBRE5nQXNJQUlnQmpZQUtDQUNJQU0yQUNRZ0FpQUdOZ0FnREFRTElCa05Ba0VCREFVTFFRRWdFRVVOQkJvZ0FpQUhMUUFCT2dBQUlBSWdCeTBBQVRvQUNDQUNJQWN0QUFFNkFCQWdBaUFITFFBQk9nQVlJQUlnQnkwQUFUb0FJQ0FDSUFjdEFBRTZBQ2dnQWlBSExRQUJPZ0F3SUFJZ0J5MEFBVG9BT0NBQ0lBY3RBQUk2QUFFZ0FpQUhMUUFDT2dBSklBSWdCeTBBQWpvQUVTQUNJQWN0QUFJNkFCa2dBaUFITFFBQ09nQWhJQUlnQnkwQUFqb0FLU0FDSUFjdEFBSTZBREVnQWlBSExRQUNPZ0E1SUFJZ0J5MEFBem9BQWlBQ0lBY3RBQU02QUFvZ0FpQUhMUUFET2dBU0lBSWdCeTBBQXpvQUdpQUNJQWN0QUFNNkFDSWdBaUFITFFBRE9nQXFJQUlnQnkwQUF6b0FNaUFDSUFjdEFBTTZBRG9nQWlBSExRQUVPZ0FESUFJZ0J5MEFCRG9BQ3lBQ0lBY3RBQVE2QUJNZ0FpQUhMUUFFT2dBYklBSWdCeTBBQkRvQUl5QUNJQWN0QUFRNkFDc2dBaUFITFFBRU9nQXpJQUlnQnkwQUJEb0FPeUFDSUFjdEFBVTZBQVFnQWlBSExRQUZPZ0FNSUFJZ0J5MEFCVG9BRkNBQ0lBY3RBQVU2QUJ3Z0FpQUhMUUFGT2dBa0lBSWdCeTBBQlRvQUxDQUNJQWN0QUFVNkFEUWdBaUFITFFBRk9nQThJQUlnQnkwQUJqb0FCU0FDSUFjdEFBWTZBQTBnQWlBSExRQUdPZ0FWSUFJZ0J5MEFCam9BSFNBQ0lBY3RBQVk2QUNVZ0FpQUhMUUFHT2dBdElBSWdCeTBBQmpvQU5TQUNJQWN0QUFZNkFEMGdBaUFITFFBSE9nQUdJQUlnQnkwQUJ6b0FEaUFDSUFjdEFBYzZBQllnQWlBSExRQUhPZ0FlSUFJZ0J5MEFCem9BSmlBQ0lBY3RBQWM2QUM0Z0FpQUhMUUFIT2dBMklBSWdCeTBBQnpvQVBpQUNJQWN0QUFnNkFBY2dBaUFITFFBSU9nQVBJQUlnQnkwQUNEb0FGeUFDSUFjdEFBZzZBQjhnQWlBSExRQUlPZ0FuSUFJZ0J5MEFDRG9BTHlBQ0lBY3RBQWc2QURjZ0FpQUhMUUFJT2dBL0RBSUxRUUVnRlVVTkF4b2dCeTBBQlNBSExRQURheUFITFFBR0lBY3RBQUpyUVFGMGFpQUhMUUFISUFjdEFBRnJRUU5zYWlBSExRQUlJZ01nQnkwQUFDSUthMEVDZEdwQkVXeEJFR3BCQlhVaUJrRjliQ0VYSUFNZ0JTMEFCeUlPYWtFRWRDQUZMUUFFSUFVdEFBSnJJQTRnQ210QkFuUnFJQVV0QUFVZ0JTMEFBV3RCQVhScUlBVXRBQVlnQlMwQUFHdEJBMnhxUVJGc1FSQnFRUVYxSWh4QmZXeHFRUkJxSVE1QkJ5RUtJQUloQXdOQUlBTWdEaUFYYWlJZVFRVjFRYkF1YWkwQUFEb0FBQ0FESUFZZ0htb2lIa0VGZFVHd0xtb3RBQUE2QUFFZ0F5QUdJQjVxSWg1QkJYVkJzQzVxTFFBQU9nQUNJQU1nQmlBZWFpSWVRUVYxUWJBdWFpMEFBRG9BQXlBRElBWWdIbW9pSGtFRmRVR3dMbW90QUFBNkFBUWdBeUFHSUI1cUloNUJCWFZCc0M1cUxRQUFPZ0FGSUFNZ0JpQWVhaUllUVFWMVFiQXVhaTBBQURvQUJpQURJQVlnSG1wQkJYVkJzQzVxTFFBQU9nQUhJQXBGRFFJZ0RpQWNhaUVPSUFOQkNHb2hBeUFLUVFGcklRb01BQXNBQ3lBQ0lBVXRBQUE2QUFBZ0FpQUZMUUFBT2dBQklBSWdCUzBBQURvQUFpQUNJQVV0QUFBNkFBTWdBaUFGTFFBQU9nQUVJQUlnQlMwQUFEb0FCU0FDSUFVdEFBQTZBQVlnQWlBRkxRQUFPZ0FISUFJZ0JTMEFBVG9BQ0NBQ0lBVXRBQUU2QUFrZ0FpQUZMUUFCT2dBS0lBSWdCUzBBQVRvQUN5QUNJQVV0QUFFNkFBd2dBaUFGTFFBQk9nQU5JQUlnQlMwQUFUb0FEaUFDSUFVdEFBRTZBQThnQWlBRkxRQUNPZ0FRSUFJZ0JTMEFBam9BRVNBQ0lBVXRBQUk2QUJJZ0FpQUZMUUFDT2dBVElBSWdCUzBBQWpvQUZDQUNJQVV0QUFJNkFCVWdBaUFGTFFBQ09nQVdJQUlnQlMwQUFqb0FGeUFDSUFVdEFBTTZBQmdnQWlBRkxRQURPZ0FaSUFJZ0JTMEFBem9BR2lBQ0lBVXRBQU02QUJzZ0FpQUZMUUFET2dBY0lBSWdCUzBBQXpvQUhTQUNJQVV0QUFNNkFCNGdBaUFGTFFBRE9nQWZJQUlnQlMwQUJEb0FJQ0FDSUFVdEFBUTZBQ0VnQWlBRkxRQUVPZ0FpSUFJZ0JTMEFCRG9BSXlBQ0lBVXRBQVE2QUNRZ0FpQUZMUUFFT2dBbElBSWdCUzBBQkRvQUppQUNJQVV0QUFRNkFDY2dBaUFGTFFBRk9nQW9JQUlnQlMwQUJUb0FLU0FDSUFVdEFBVTZBQ29nQWlBRkxRQUZPZ0FySUFJZ0JTMEFCVG9BTENBQ0lBVXRBQVU2QUMwZ0FpQUZMUUFGT2dBdUlBSWdCUzBBQlRvQUx5QUNJQVV0QUFZNkFEQWdBaUFGTFFBR09nQXhJQUlnQlMwQUJqb0FNaUFDSUFVdEFBWTZBRE1nQWlBRkxRQUdPZ0EwSUFJZ0JTMEFCam9BTlNBQ0lBVXRBQVk2QURZZ0FpQUZMUUFHT2dBM0lBSWdCUzBBQnpvQU9DQUNJQVV0QUFjNkFEa2dBaUFGTFFBSE9nQTZJQUlnQlMwQUJ6b0FPeUFDSUFVdEFBYzZBRHdnQWlBRkxRQUhPZ0E5SUFJZ0JTMEFCem9BUGlBQ0lBVXRBQWM2QUQ4TFFRQWhEZ05BSUFnZ0RrRUdkR29pQXlnQ0FDSVhRZi8vL3dkSEJFQWdBeWdDQkNFY0lBSWdDeUFMUVFOeElBdEJFRWtpQmh0QkFuUWlIa0h3S1dvb0FnQkJFRUVJSUFZYklncHNhaUFlUWJBcGFpZ0NBR29pQmlBWElBWXRBQUJxUWJBdWFpMEFBRG9BQUNBREtBSUlJUmNnQmlBY0lBWXRBQUZxUWJBdWFpMEFBRG9BQVNBREtBSU1JUndnQmlBWElBWXRBQUpxUWJBdWFpMEFBRG9BQWlBR0lCd2dCaTBBQTJwQnNDNXFMUUFBT2dBRElBTW9BaFFoRnlBR0lBcHFJZ1lnQXlnQ0VDQUdMUUFBYWtHd0xtb3RBQUE2QUFBZ0F5Z0NHQ0VjSUFZZ0Z5QUdMUUFCYWtHd0xtb3RBQUE2QUFFZ0F5Z0NIQ0VYSUFZZ0hDQUdMUUFDYWtHd0xtb3RBQUE2QUFJZ0JpQVhJQVl0QUFOcVFiQXVhaTBBQURvQUF5QURLQUlrSVJjZ0JpQUthaUlHSUFNb0FpQWdCaTBBQUdwQnNDNXFMUUFBT2dBQUlBTW9BaWdoSENBR0lCY2dCaTBBQVdwQnNDNXFMUUFBT2dBQklBTW9BaXdoRnlBR0lCd2dCaTBBQW1wQnNDNXFMUUFBT2dBQ0lBWWdGeUFHTFFBRGFrR3dMbW90QUFBNkFBTWdBeWdDTkNFWElBWWdDbW9pQmlBREtBSXdJQVl0QUFCcVFiQXVhaTBBQURvQUFDQURLQUk0SVFvZ0JpQVhJQVl0QUFGcVFiQXVhaTBBQURvQUFTQURLQUk4SVFNZ0JpQUtJQVl0QUFKcVFiQXVhaTBBQURvQUFpQUdJQU1nQmkwQUEycEJzQzVxTFFBQU9nQURDeUFMUVFGcUlRc2dEa0VCYWlJT1FRUkhEUUFMSUFoQmdBSnFJUWdnQlVFSWFpRUZJQWRCQ1dvaEJ5QUNRVUJySVFJZ0QwRUJhaUlQUVFKSERRQUxRUUFMRFFCQkFDRUJJQklvQXNRQlFRRkxEUUFnSFNBTUVCZ0xJQkZCMEFCcUpBQWdBU0lEUlEwQkRBSUxJQUVoQzBFQUlRTkJBQ0VDUVFBaENrRUFJUk5CQUNFUFFRQWhFa0VBSVJrakFFRWdheUlRSkFBZ0VDQWRLQUlFSWdFMkFnd2dFQ0FkS0FJSU5nSVFJQVFnQVc0aUJVRUVkQ0VSSUFRZ0FTQUZiR3RCQkhRaERnSkFBa0FDZndKQUFuOENRQUpBQWtBQ1FBSkFJQVlpQlNnQ0FDSVdEZ1FBQUFFQ0F3c2dCU2dDQkNFQlFRRWhDa0YvSVFoQkFDRUdRWDhoREVFQklRTUNmMEVBSUFVb0FzZ0JJZ2RGRFFBYVFRQWdCeWdDQkNBQlJ3MEFHa0VBSVFOQkFDQUhLQUlBUVFWTERRQWFJQWNvQW1naERDQUhLQUtZQVNJQ1FSQjJDeUVIQWtBZ0JTZ0N6QUVpRTBVTkFDQUJJQk1vQWdSSERRQkJBQ0VLSUJNb0FnQkJCVXNOQUNBVEtBS3NBU0lTUVJCMklRWWdFeWdDYkNFSUN5QU5LQUtRQVNFVEFrQWdGa1VFUUNBRElBcHlEUUVnQWtILy93TnhJQWRCRUhSeUlBeHlSUTBCSUJKQi8vOERjU0FHUVJCMGNpQUlja1VOQVFzZ0RTOEJvQUVoR1FKQUFuOENRQUpBSUFVb0F0QUJJZzlGRFFBZ0R5Z0NCQ0FCUncwQUlBOG9BZ0JCQlVzTkFTQVBLQUpzSVFNZ0R5Z0NyQUVNQWdzQ1FDQUZLQUxVQVNJUFJRMEFJQThvQWdRZ0FVY05BQ0FQS0FJQVFRVkxEUUVnRHlnQ2NDRURJQThvQXNBQkRBSUxJQU1nQ2tFQmMzSkJBVWNOQWd0QmZ5RURRUUFMSVFFZ0NDQVRSaUlLSUF3Z0UwWWlDR29nQXlBVFJtcEJBVWNFUUNBR0lBY2dCa0VRZEVFUWRTSUdJQWRCRUhSQkVIVWlBMG9pQnhzaUNDQURJQVlnQXlBRElBWktHeUFIR3lJR0lBRkJFSFVpQXlBRElBWklHeUFJUVJCMFFSQjFJQU5JR3lFSElCSWdBaUFTUVJCMFFSQjFJZ01nQWtFUWRFRVFkU0lDU2lJR0d5SUlRZi8vQTNFZ0FpQURJQUlnQWlBRFNoc2dCaHNpQWlBQlFSQjBRUkIxSWdFZ0FTQUNTQnNnQ0VFUWRFRVFkU0FCU0JzaEFnd0JDeUFDSUJJZ0NCc2hBaUFISUFZZ0NCc2hCeUFJRFFBZ0NnMEFJQUZCRUhZaEJ5QUJJUUlMUVFFaENDQUNJQmxxSWc5QkVIUkJFSFZCZ0VCclFmLy9BRXNOQ1NBSElBMHZBYUlCYWlJWlFSQjBRUkIxUVlBUWFrSC9IMHNOQ1FzZ0tDQVRFQk1pQWtVRVFFRUJJUWdNQ1FzZ0JTQVpPd0hDQVNBRklBODdBY0FCSUFVZ0FqWUNkQ0FGSUJNMkFtUWdCU0FDTmdLQUFTQUZJQUkyQW53Z0JTQUNOZ0o0SUFVZ0V6WUNjQ0FGSUJNMkFtd2dCU0FUTmdKb0lBVWdCU2dDd0FFaUFUWUN2QUVnQlNBQk5nSzRBU0FGSUFFMkFyUUJJQVVnQVRZQ3NBRWdCU0FCTmdLc0FTQUZJQUUyQXFnQklBVWdBVFlDcEFFZ0JTQUJOZ0tnQVNBRklBRTJBcHdCSUFVZ0FUWUNtQUVnQlNBQk5nS1VBU0FGSUFFMkFwQUJJQVVnQVRZQ2pBRWdCU0FCTmdLSUFTQUZJQUUyQW9RQklCQWdBallDQ0NBTElBVkJoQUZxSUJCQkNHb2dEaUFSUVFCQkFFRVFRUkFRRHd3SEN5QU5LQUtRQVNFTUlBVW9BZ1FoQXlBRktBTE1BU0lCUlEwRUlBTWdBU2dDQkVjTkJDQUJLQUlBUVFaUEJFQWdERUYvUmlFQ1FRRWhDa0VBSVFaQkFBd0dDeUFCS0FKc0lBeEdJUUpCQVNFS0lBRW9BcXdCSWdaQkVIWU1CUXNnRFNnQ2tBRWhFaUFGS0FJRUlRSWdCU2dDeUFFaUFVVU5BU0FDSUFFb0FnUkhEUUVDZnlBQktBSUFRUVpQQkVBZ0VrRi9SaUVNUVFBaEJrRUFEQUVMSUFFb0FtZ2dFa1loRENBQktBS1lBU0lHUVJCMkN5RURRUUFNQWdzZ0JVR0VBV29oREFOQUFuOGdEU0FUUVFKMEloSnFJaGNpSkNnQ3NBRWlBVUVDVFFSQUlBRkJBblJCbkRWcUtBSUFEQUVMUVFRTElSNGdCU0FTYWlJQklCY29Bc0FCTmdKa0lBRWdLQ0FYS0FMQUFSQVRJZ0UyQW5RZ0FVVUVRRUVCSVFnTUJ3c2dIZ1JBSUF3Z0UwRUVkQ0lXYWlJbUlTVWdEQ0FXUVF4eWFpSWFRUUpxSVNFZ0RDQVdRUWh5YWlJcUlTNGdEQ0FXUVFSeWFpSWZJU3RCQUNFQ0EwQWdEU0FXYWlBQ1FRSjBhaUlCTHdIU0FTRXNJQUV2QWRBQklTMGdGeWdDd0FFaEhFRUJJUTlCZnlFWkFuOENRQ0FGSUJOQkIzUWdKQ2dDc0FFaUowRUZkR29nQWtFRGRHb2lCa0d3R1dvb0FnQVFFU0lEUlEwQVFRQWhCMEVBSVFGQmZ5QURLQUlFSUFVb0FnUkhEUUVhUVFBaER5QURLQUlBUVFWTERRQWdBeUFHUWJRWmFpMEFBQ0lJUVFKMGFpZ0NoQUVpQVVFUWRpRUhJQU1nQ0VIOEFYRnFLQUprREFFTFFRQWhCMEVBSVFGQmZ3c2hMd0pBQWtBQ1FDQUZJQVpCc0IxcUtBSUFFQkVpRlVVRVFFRUFJUU1NQVF0QkFDRURJQlVvQWdRZ0JTZ0NCRVlOQVF0QkFDRUtRUUFoQ0F3QkMwRUJJUWdnRlNnQ0FFRUZTd1JBUVFBaENnd0JDeUFWSUFaQnRCMXFMUUFBSWhsQkFuUnFLQUtFQVNJS1FSQjJJUU1nRlNBWlFmd0JjV29vQW1RaEdRc0NRQUovQWtBQ1FDQUZJQVpCc0NGcUtBSUFFQkVpRlVVTkFDQVZLQUlFSUFVb0FnUkhEUUFnRlNnQ0FFRUZTdzBCSUJVZ0JrRzBJV290QUFBaUJrSDhBWEZxS0FKa0lROGdGU0FHUVFKMGFpZ0NoQUVNQWdzQ1FDQUZJQVpCc0NWcUtBSUFFQkVpRlVVTkFDQVZLQUlFSUFVb0FnUkhEUUFnRlNnQ0FFRUZTdzBCSUJVZ0JrRzBKV290QUFBaUJrSDhBWEZxS0FKa0lROGdGU0FHUVFKMGFpZ0NoQUVNQWdzZ0NDQVBja0VCUncwQ0MwRi9JUTlCQUFzaEJpQVpJQnhHSWhrZ0hDQXZSaUlJYWlBUElCeEdha0VCUndSQUlBTWdCeUFEUVJCMFFSQjFJZ2dnQjBFUWRFRVFkU0lEU2lJSEd5SVBJQU1nQ0NBRElBTWdDRW9iSUFjYklnY2dCa0VRZFNJRElBTWdCMGdiSUE5QkVIUkJFSFVnQTBnYklRY2dDaUFCSUFwQkVIUkJFSFVpQXlBQlFSQjBRUkIxSWdGS0lnZ2JJZ3BCLy84RGNTQUJJQU1nQVNBQklBTktHeUFJR3lJRElBWkJFSFJCRUhVaUFTQUJJQU5JR3lBS1FSQjBRUkIxSUFGSUd5RUJEQUVMSUFFZ0NpQUlHeUVCSUFjZ0F5QUlHeUVISUFnTkFDQVpEUUFnQmtFUWRpRUhJQVloQVF0QkFTRUlJQUVnTFdvaUFVRVFkRUVRZFVHQVFHdEIvLzhBU3cwSUlBY2dMR29pQTBFUWRFRVFkVUdBRUdwQi94OUxEUWdDUUFKL0FrQUNRQUpBQWtBZ0p3NEVBQUVDQXdVTElDWWdBVHNCQUNBbElBTTdBUUlnSHlBQk93RUFJQ3NnQXpzQkFpQXFJQUU3QVFBZ0xpQURPd0VDSUJvZ0FUc0JBQ0FoREFNTElBd2dBa0VCZENBU2FrRUNkQ0lHYWlJSElBTTdBUUlnQnlBQk93RUFJQXdnQmtFRWNtb2lCaUFCT3dFQUlBWkJBbW9NQWdzZ0JTQUNJQkpxUVFKMGFpSUdJQUU3QVl3QklBWWdBenNCaGdFZ0JpQUJPd0dFQVNBR1FZNEJhZ3dCQ3lBRklBSWdFbXBCQW5ScUlnWWdBVHNCaEFFZ0JrR0dBV29MSUFNN0FRQUxJQUpCQVdvaUFpQWVSdzBBQ3dzZ0UwRUJhaUlUUVFSSERRQUxRUUFoQWdOQUlCQWdCU0FDUVFKMElnWnFLQUowTmdJSUlBSkJBVXRCQTNRaEFTQUNRUU4wUVFoeElRTUNRQUpBQWtBQ1FBSkFJQVlnRFdvb0FyQUJEZ01BQVFJREN5QUxJQVVnQWtFRWRHcEJoQUZxSUJCQkNHb2dEaUFSSUFNZ0FVRUlRUWdRRHd3REN5QUxJQVVnQWtFRWRHb2lCa0dFQVdvZ0VFRUlhaUFPSUJFZ0F5QUJRUWhCQkJBUElBc2dCa0dNQVdvZ0VFRUlhaUFPSUJFZ0F5QUJRUVJ5UVFoQkJCQVBEQUlMSUFzZ0JTQUNRUVIwYWlJR1FZUUJhaUFRUVFocUlBNGdFU0FESUFGQkJFRUlFQThnQ3lBR1FZZ0JhaUFRUVFocUlBNGdFU0FEUVFSeUlBRkJCRUVJRUE4TUFRc2dDeUFGSUFKQkJIUnFJZ1pCaEFGcUlCQkJDR29nRGlBUklBTWdBVUVFUVFRUUR5QUxJQVpCaUFGcUlCQkJDR29nRGlBUklBTkJCSElpQnlBQlFRUkJCQkFQSUFzZ0JrR01BV29nRUVFSWFpQU9JQkVnQXlBQlFRUnlJZ0ZCQkVFRUVBOGdDeUFHUVpBQmFpQVFRUWhxSUE0Z0VTQUhJQUZCQkVFRUVBOExJQUpCQVdvaUFrRUVSdzBBQ3d3RUN5QVNRWDlHSVF4QkFDRUdRUUVMSVFjZ0RTOEJvQUVoRXdKQUFrQWdEQTBBQW44Q2Z3SkFBa0FnQlNnQ3pBRWlBVVVOQUNBQktBSUVJQUpIRFFBZ0FTZ0NBRUVHVHcwQklBRW9BbXdnRWtZaERDQUJLQUp3SVFvZ0FTZ0N2QUVoQ0NBQktBS3NBU0lCUVJCMkRBTUxBa0FnQlNnQzFBRWlBVVVOQUNBQktBSUVJQUpIRFFBZ0FTZ0NBRUVHVHcwQklCSkJmMFloRENBQktBSndJUW9nQVNnQ3dBRU1BZ3NnQjBVTkF3dEJmeUVLSUJKQmYwWWhERUVBQ3lFSVFRQWhBVUVBQ3lFSElBd2dDaUFTUm1wQkFVY0VRQ0FISUFNZ0IwRVFkRUVRZFNJSElBTkJFSFJCRUhVaUFrb2lBeHNpQ2lBQ0lBY2dBaUFDSUFkS0d5QURHeUlESUFoQkVIVWlBaUFDSUFOSUd5QUtRUkIwUVJCMUlBSklHeUVISUFFZ0JpQUJRUkIwUVJCMUlnSWdCa0VRZEVFUWRTSUJTaUlER3lJR1FmLy9BM0VnQVNBQ0lBRWdBU0FDU2hzZ0F4c2lBaUFJUVJCMFFSQjFJZ0VnQVNBQ1NCc2dCa0VRZEVFUWRTQUJTQnNoQVF3Q0N5QU1EUUVnQ0VFUWRpRUhJQWdoQVF3QkN5QURJUWNnQmlFQkMwRUJJUWdnQVNBVGFpSUNRUkIwUVJCMVFZQkFhMEgvL3dCTERRTWdCeUFOTHdHaUFXb2lBMEVRZEVFUWRVR0FFR3BCL3g5TERRTWdLQ0FTRUJNaUFVVU5BeUFGSUFNN0FiSUJJQVVnQWpzQnNBRWdCU0FCTmdKMElBVWdFallDWkNBRklBRTJBbndnQlNBU05nSnNJQVVnQlNnQ3NBRWlBVFlDckFFZ0JTQUJOZ0tvQVNBRklBRTJBcVFCSUFVZ0FUWUNrQUVnQlNBQk5nS01BU0FGSUFFMkFvZ0JJQVVnQVRZQ2hBRWdEU2dDbEFFaEJ5QUZLQUlFSVF3Q1FBSkFJQVVvQXRBQklnSkZEUUFnQWlnQ0JDQU1SdzBBUVFBaENpQUNLQUlBUVFWTEJFQkJmeUVEUVFBaEFnd0NDeUFDS0FKc0lRTWdBaWdDckFFaEFnd0JDMEVCSVFwQmZ5RURRUUFoQWlBRktBTE1BU0lHUlEwQUlBWW9BZ1FnREVjTkFFRUFJUW9nQmlnQ0FFRUZTdzBBSUFZb0Ftd2hBeUFHS0FLd0FTRUNDeUFOTHdHa0FTRVRBa0FnQXlBSFJ3UkFJQUZCRUhZaEF3Si9BbjhDUUNBRktBTE1BU0lHUlEwQUlBWW9BZ1FnREVjTkFDQUhRWDlHSUFZb0FnQkJCazhOQVJvZ0JpZ0NjQ0FIUmlFTUlBWW9BcndCSWc5QkVIWU1BZ3NnQ2cwRElBZEJmMFlMSVF4QkFBc2hCaUFNSUFjZ0VrWWlDbXBCQVVjRVFDQUdJQU1nQmtFUWRFRVFkU0lHSUFOQkVIUkJFSFZLSWdvYklnd2dBVUVRZFNJRElBWWdBeUFESUFaS0d5QUtHeUlHSUFKQkVIVWlBeUFESUFaSUd5QU1RUkIwUVJCMUlBTklHeUVESUE4Z0FTQVBRUkIwUVJCMUlnWWdBVUVRZEVFUWRTSUJTaUlLR3lJUFFmLy9BM0VnQVNBR0lBRWdBU0FHU2hzZ0Noc2lCaUFDUVJCMFFSQjFJZ0VnQVNBR1NCc2dEMEVRZEVFUWRTQUJTQnNoQVF3Q0N5QUtEUUVnREFSQUlBOUIvLzhEY1NBR1FSQjBjaUVCSUFZaEF3d0NDd3NnQWtFUWRpRURJQUloQVFzZ0FTQVRhaUlDUVJCMFFSQjFRWUJBYTBILy93QkxEUU1nRFM4QnBnRWdBMm9pQTBFUWRFRVFkVUdBRUdwQi94OUxEUU1nS0NBSEVCTWlBVVVOQXlBRklBTTdBY0lCSUFVZ0Fqc0J3QUVnQlNBQk5nS0FBU0FGSUFFMkFuZ2dCU0FITmdKd0lBVWdCellDYUNBRklBVW9Bc0FCSWdFMkFyd0JJQVVnQVRZQ3VBRWdCU0FCTmdLMEFTQUZJQUUyQXFBQklBVWdBVFlDbkFFZ0JTQUJOZ0tZQVNBRlFaUUJhaUlDSUFFMkFnQWdFQ0FGS0FKME5nSUlJQXNnQlVHRUFXb2dFRUVJYWlBT0lCRkJBRUVBUVFoQkVCQVBJQkFnQlNnQ2VEWUNDQ0FMSUFJZ0VFRUlhaUFPSUJGQkNFRUFRUWhCRUJBUERBSUxJQXhCZjBZaEFrRUFJUVpCQUFzaEJ5QU5Md0dnQVNFVEFrQWdBZ1JBSUFjaEFpQUdJUUVNQVF0QkFTRVNRWDhoRDBFQUlRSUNRQ0FGS0FMSUFTSUlSUVJBUVFBaEFRd0JDeUFESUFnb0FnUkhCRUJCQUNFQkRBRUxRUUFoRWlBSUtBSUFRUVZMQkVCQkFDRUJEQUVMSUFnb0FwZ0JJZ0ZCRUhZaEFpQUlLQUpvSVE4TEFuOENRQUpBSUFVb0F0QUJJZ2hGRFFBZ0NDZ0NCQ0FEUncwQUlBZ29BZ0JCQlVzTkFTQUlLQUpzSVFvZ0NDZ0NyQUVNQWdzQ1FDQUZLQUxVQVNJSVJRMEFJQWdvQWdRZ0EwY05BQ0FJS0FJQVFRVkxEUUVnQ0NnQ2NDRUtJQWdvQXNBQkRBSUxJQW9nRW5KQkFVY05BZ3RCZnlFS1FRQUxJUU1nRENBUFJpSUlJQW9nREVacVFRRkhCRUFnQnlBQ0lBZEJFSFJCRUhVaUJ5QUNRUkIwUVJCMUlnSktJZ2diSWdvZ0FpQUhJQUlnQWlBSFNoc2dDQnNpQnlBRFFSQjFJZ0lnQWlBSFNCc2dDa0VRZEVFUWRTQUNTQnNoQWlBR0lBRWdCa0VRZEVFUWRTSUdJQUZCRUhSQkVIVWlBVW9pQnhzaUNFSC8vd054SUFFZ0JpQUJJQUVnQmtvYklBY2JJZ1lnQTBFUWRFRVFkU0lCSUFFZ0JrZ2JJQWhCRUhSQkVIVWdBVWdiSVFFTUFRc2dDQTBBSUFOQkVIWWhBaUFESVFFTFFRRWhDQ0FCSUJOcUlnTkJFSFJCRUhWQmdFQnJRZi8vQUVzTkFTQUNJQTB2QWFJQmFpSUNRUkIwUVJCMVFZQVFha0gvSDBzTkFTQW9JQXdRRXlJQlJRMEJJQVVnQWpzQm9nRWdCU0FET3dHZ0FTQUZJQUUyQW5RZ0JTQU1OZ0prSUFVZ0FUWUNlQ0FGSUF3MkFtZ2dCU0FGS0FLZ0FTSUJOZ0tjQVNBRklBRTJBcGdCSUFVZ0FUWUNsQUVnQlNBQk5nS1FBU0FGSUFFMkFvd0JJQVVnQVRZQ2lBRWdCU0FCTmdLRUFTQU5LQUtVQVNFRElBMHZBYVFCSVJJQ2Z3Si9Ba0FDZndKQUFrQWdCU2dDeUFFaUJnUkFJQVlvQWdRZ0JTZ0NCRVlFUUNBR0tBSUFRUVZOQkVBZ0JpZ0N1QUVpQ2tFUWRpRUNJQVlvQW5BZ0EwY05BeUFLUWYvL0EzRU1Cd3NNQXdzTUFnc01BUXNnQmlnQ2FDQURSaUVQSUFZb0FxQUJEQUVMSUFOQmYwWU5BU0FEUVg5R0lROUJBQ0VDUVFBaENrRUFDeUVHSUFGQkVIWWhCeUFQSUFNZ0RFWWlER3BCQVVjRVFDQUhJQUlnQWtFUWRFRVFkU0lDSUFkQkVIUkJFSFZJSWdjYklnOGdBaUFCUVJCMUlnd2dBaUFDSUF4S0d5QUhHeUlISUFaQkVIVWlBaUFDSUFkSUd5QVBRUkIwUVJCMUlBSklHeUVDSUFFZ0NpQUtRUkIwUVJCMUlnY2dBVUVRZEVFUWRTSUJTQ0lLR3lJUFFmLy9BM0VnQnlBQklBY2dBU0FIU0JzZ0Noc2lCeUFHUVJCMFFSQjFJZ0VnQVNBSFNCc2dEMEVRZEVFUWRTQUJTQnNNQXdzZ0J5QUdRUkIySUF3YklRSWdBU0FHSUF3YkRBSUxRUUFoQWtFQUN5QUNRUkIwY2dzZ0Vtb2lCa0VRZEVFUWRVR0FRR3RCLy84QVN3MEJJQTB2QWFZQklBSnFJZ0pCRUhSQkVIVkJnQkJxUWY4ZlN3MEJJQ2dnQXhBVElnRkZEUUVnQlNBQ093SENBU0FGSUFZN0FjQUJJQVVnQVRZQ2dBRWdCU0FCTmdKOElBVWdBellDY0NBRklBTTJBbXdnQlNBRktBTEFBU0lCTmdLOEFTQUZJQUUyQXJnQklBVWdBVFlDdEFFZ0JTQUJOZ0t3QVNBRklBRTJBcXdCSUFVZ0FUWUNxQUVnQlVHa0FXb2lBaUFCTmdJQUlCQWdCU2dDZERZQ0NDQUxJQVZCaEFGcUlCQkJDR29nRGlBUlFRQkJBRUVRUVFnUUR5QVFJQVVvQW53MkFnZ2dDeUFDSUJCQkNHb2dEaUFSUVFCQkNFRVFRUWdRRHd0QkFDRUlJQVVvQXNRQlFRRkxEUUFnQlNnQ0FBUkFJQTFCeUFKcUlROUJBQ0VCSUIwb0FnQWlEQ0FFSUFRZ0hTZ0NCQ0lGY0NJQ2F5SURRUWgwYWlBQ1FRUjBhaUVSSUFWQkJIUWhCeUFkS0FJSUlBVnNJZ1pCQm5RaERpQUNRUU4wSVJJZ0JrRUlkQ0VUSUFOQkJuUWhHU0FGUVFKMFFmei8vLzhEY1VFQ2RDRUtBMEFnRVNBQlFRSjBJZ0pCOENscUtBSUFJZ01nQjJ4cUlBSkJzQ2xxS0FJQUlnSnFJUVlnQ3lBRFFRUjBhaUFDYWlFQ0FrQWdEeUFCUVFaMGFpSURLQUlBSWhaQi8vLy9CMGNFUUNBREtBSUVJUlVnQWkwQUFTRVhJQVlnRmlBQ0xRQUFha0d3TG1vdEFBQTZBQUFnQXlnQ0NDRVdJQUl0QUFJaEhDQUdJQlVnRjJwQnNDNXFMUUFBT2dBQklBTW9BZ3doRlNBQ0xRQURJUmNnQmlBV0lCeHFRYkF1YWkwQUFEb0FBaUFHSUJVZ0YycEJzQzVxTFFBQU9nQURJQU1vQWhRaEZpQUNMUUFSSVJVZ0JpQUhhaUlHSUFNb0FoQWdBaTBBRUdwQnNDNXFMUUFBT2dBQUlBTW9BaGdoRnlBQ0xRQVNJUndnQmlBVklCWnFRYkF1YWkwQUFEb0FBU0FES0FJY0lSWWdBaTBBRXlFVklBWWdGeUFjYWtHd0xtb3RBQUE2QUFJZ0JpQVZJQlpxUWJBdWFpMEFBRG9BQXlBREtBSWtJUllnQWkwQUlTRVZJQVlnQjJvaUJpQURLQUlnSUFJdEFDQnFRYkF1YWkwQUFEb0FBQ0FES0FJb0lSY2dBaTBBSWlFY0lBWWdGU0FXYWtHd0xtb3RBQUE2QUFFZ0F5Z0NMQ0VXSUFJdEFDTWhGU0FHSUJjZ0hHcEJzQzVxTFFBQU9nQUNJQVlnRlNBV2FrR3dMbW90QUFBNkFBTWdBeWdDTkNFV0lBSXRBREVoRlNBR0lBZHFJZ1lnQXlnQ01DQUNMUUF3YWtHd0xtb3RBQUE2QUFBZ0F5Z0NPQ0VYSUFJdEFESWhIQ0FHSUJVZ0ZtcEJzQzVxTFFBQU9nQUJJQU1vQWp3aEF5QUNMUUF6SVFJZ0JpQVhJQnhxUWJBdWFpMEFBRG9BQWlBR0lBSWdBMnBCc0M1cUxRQUFPZ0FEREFFTElBSW9BaEFoQXlBR0lBSW9BZ0EyQWdBZ0JpQUthaUlHSUFNMkFnQWdBaWdDTUNFRElBWWdDbW9pQmlBQ0tBSWdOZ0lBSUFZZ0Ntb2dBellDQUFzZ0FVRUJhaUlCUVJCSERRQUxJQXdnRTJvZ0dXb2dFbW9pQ2lBT2FpRU1JQVZCQTNSQitQLy8vd2R4SWdWQkFuWkJBblFoQjBFUUlRWURRQ0FHUVFKMFFReHhJZ0ZCOENscUtBSUFJZ0lnQld3Z0FVR3dLV29vQWdBaUFXb2dEQ0FLSUFaQkUwc2lFUnRxSVFNZ0MwSEFBa0dBQWlBUkcyb2dBa0VEZENBQmFtb2hBUUpBSUE4Z0JrRUdkR29pQWlnQ0FDSVJRZi8vL3dkSEJFQWdBaWdDQkNFT0lBRXRBQUVoRWlBRElCRWdBUzBBQUdwQnNDNXFMUUFBT2dBQUlBSW9BZ2doRVNBQkxRQUNJUk1nQXlBT0lCSnFRYkF1YWkwQUFEb0FBU0FDS0FJTUlRNGdBUzBBQXlFU0lBTWdFU0FUYWtHd0xtb3RBQUE2QUFJZ0F5QU9JQkpxUWJBdWFpMEFBRG9BQXlBQ0tBSVVJUkVnQVMwQUNTRU9JQU1nQldvaUF5QUNLQUlRSUFFdEFBaHFRYkF1YWkwQUFEb0FBQ0FDS0FJWUlSSWdBUzBBQ2lFVElBTWdEaUFSYWtHd0xtb3RBQUE2QUFFZ0FpZ0NIQ0VSSUFFdEFBc2hEaUFESUJJZ0UycEJzQzVxTFFBQU9nQUNJQU1nRGlBUmFrR3dMbW90QUFBNkFBTWdBaWdDSkNFUklBRXRBQkVoRGlBRElBVnFJZ01nQWlnQ0lDQUJMUUFRYWtHd0xtb3RBQUE2QUFBZ0FpZ0NLQ0VTSUFFdEFCSWhFeUFESUE0Z0VXcEJzQzVxTFFBQU9nQUJJQUlvQWl3aEVTQUJMUUFUSVE0Z0F5QVNJQk5xUWJBdWFpMEFBRG9BQWlBRElBNGdFV3BCc0M1cUxRQUFPZ0FESUFJb0FqUWhFU0FCTFFBWklRNGdBeUFGYWlJRElBSW9BakFnQVMwQUdHcEJzQzVxTFFBQU9nQUFJQUlvQWpnaEVpQUJMUUFhSVJNZ0F5QU9JQkZxUWJBdWFpMEFBRG9BQVNBQ0tBSThJUUlnQVMwQUd5RUJJQU1nRWlBVGFrR3dMbW90QUFBNkFBSWdBeUFCSUFKcVFiQXVhaTBBQURvQUF3d0JDeUFCS0FJSUlRSWdBeUFCS0FJQU5nSUFJQU1nQjJvaUF5QUNOZ0lBSUFFb0FoZ2hBaUFESUFkcUlnTWdBU2dDRURZQ0FDQURJQWRxSUFJMkFnQUxJQVpCQVdvaUJrRVlSdzBBQ3d3QkN5QWRJQXNRR0FzZ0VFRWdhaVFBSUFnaUF3MEJDMEVBSVFNTElBTUxJZ1lOQVNBZ0tBSzhDU0FwYWlnQ3hBRWhBZ0ovUVFBaEF3SkFJQnNvQWd4QkEzUWdHeWdDRUdzaUFVVU5BRUVCSVFNZ0FVRUlTdzBBUVFFZ0FVRUJhM1FnR3hBUVFTQWdBV3QyUnd3QkN5QURDeUFqS0FJTWNrRUFSeUVCQWtBQ1FDQVVLQUlFUVFKckRnWUFBUUVCQVFBQkN5QWdJQVEyQXJBSkMwRUJJUVpCQUNBQklDQW9BcFFKSUNBb0FwZ0pJQVFRSFNJRUd3MEJJQ0lnQWtFQlJtb2hJaUFCRFFBTElDQkJyQWxxS0FJQUlDSnFJZ0VnSUNnQ21BbExEUUFnSUNBQk5nS3NDVUVBSVFZTElDTkJ3QU5xSkFBZ0Jnc0VRQ0FnS0FMWUNpRUFRUUFoQXlBZ0tBS29DU0VDQWtBZ0lFR3dDV29vQWdBaUFVVU5BQ0FBSUFGQkFXc2lBVThFUUNBQklRQU1BUXNnSUNnQ3ZBa2hCQU5BQWtBZ0JDQUJRZGdCYkdvb0FnUWdBa2NOQUNBRFFRRnFJZ01nSUNnQ0VDZ0NOQ0lKUVFvZ0NVRUtTeHRKRFFBZ0FTRUFEQUlMSUFGQkFXc2lBU0FBU3cwQUN3c0RRQUpBSUNBb0Fyd0pJQUJCMkFGc2FpSUJLQUlFSUFKSERRQWdBU2dDeEFFaUEwVU5BQ0FCSUFOQkFXczJBc1FCSUNBb0FwUUpJQ0FvQXBnSklBQVFIU0lBRFFFTEMwRU5JU0lNQWd0QkFDRWlRUUFoQWdKQUFrQUNRQUpBQWtBZ0lFSDhDbW9vQWdBRVFDQUFLQUtZQ1NJRVJRMERJQVJCQTNFaEJpQUFLQUs4Q1NFRElBUkJBV3RCQTA4TkFVRUFJUUVNQWd0QkFTRUJJQUJCckFscUtBSUFJQUFvQXBnSlJ3MEREQVFMSUFSQmZIRWhDVUVBSVFFRFFDQUNJQU1nQVVIWUFXeHFLQUxFQVVFQVIyb2dBeUFCUVFGeVFkZ0JiR29vQXNRQlFRQkhhaUFESUFGQkFuSkIyQUZzYWlnQ3hBRkJBRWRxSUFNZ0FVRURja0hZQVd4cUtBTEVBVUVBUjJvaEFpQUJRUVJxSVFFZ0NVRUVheUlKRFFBTEN5QUdSUTBBQTBBZ0FpQURJQUZCMkFGc2FpZ0N4QUZCQUVkcUlRSWdBVUVCYWlFQklBWkJBV3NpQmcwQUN3dEJBU0VCSUFJZ0JFWU5BUXRCQUNFQkN5QUJSUTBCSUFCQkFUWUNuQWtMSUFBb0Fyd0pJUVZCQUNFbVFRQWhNQ01BUWJBQmF5SUlKQUFnQUVHNENtb2lNaUlsS0FJSUlnRUVRQ0FsS0FJRUlpaEJCblFoUHlBb1FUQnNJVUFnS0VFRmRDRWlJQ2hCVUd3aEhpQUJJQ2hzSWdGQkJuUWhRU0FCUVFoMElVSkJBQ0FvUVFOMEloMXJJaEZCQVhRaEcwRUFJQ2hCQkhRaUlHc2lHVUVDZENGRElCbEJBWFFoSkNBSVFSaHFJUzRnQ0VFTWNpRkVBMEFDUUNBRktBSUlJZ05CQVVZTkFBSi9Ba0FDUUFKQUFrQUNRQ0FGS0FMSUFTSUJSUVJBUVFFaEFnd0JDMEVGSVFJZ0EwRUNSdzBBUVFWQkFTQUZLQUlFSWcwZ0FTZ0NCRVliSVFJZ0JTZ0N6QUVpQncwQkRBUUxJQVVvQXN3QklnZEZCRUJCQUNFSERBTUxJQU5CQWtjTkFTQUZLQUlFSVEwTElBMGdCeWdDQkVjTkFRc2dBa0VDY2lFQ0N5QUNRUUp4UlEwQUFrQWdCU2dDQUVFRlRRUkFJQWNvQWdCQkJra05BUXNnQ0VFRU5nSkFJQWhCQkRZQ1NDQUlRUVEyQWpnZ0NFRUVOZ0l3UVFFaERVRUFJUnBCQUF3Q0MwRUNJUXhCQWlFTkFrQWdCUzhCSEEwQUlBY3ZBVEFOQUVFQklRMGdCU2dDZENBSEtBSjhSdzBBSUFVdUFZUUJJQWN1QWF3QmF5SURJQU5CSDNVaUEyb2dBM05CQTBzTkFDQUZMZ0dHQVNBSExnR3VBV3NpQXlBRFFSOTFJZ05xSUFOelFRTkxJUTBMSUFnZ0RUWUNNQUpBSUFVdkFSNE5BQ0FITHdFeURRQkJBU0VNSUFVb0FuUWdCeWdDZkVjTkFDQUZMZ0dJQVNBSExnR3dBV3NpQXlBRFFSOTFJZ05xSUFOelFRTkxEUUFnQlM0QmlnRWdCeTRCc2dGcklnTWdBMEVmZFNJRGFpQURjMEVEU3lFTUN5QUlJQXcyQWpoQkFpRVBRUUloRUFKQUlBVXZBU1FOQUNBSEx3RTREUUJCQVNFUUlBVW9BbmdnQnlnQ2dBRkhEUUFnQlM0QmxBRWdCeTRCdkFGcklnTWdBMEVmZFNJRGFpQURjMEVEU3cwQUlBVXVBWllCSUFjdUFiNEJheUlESUFOQkgzVWlBMm9nQTNOQkEwc2hFQXNnQ0NBUU5nSkFBa0FnQlM4QkpnMEFJQWN2QVRvTkFFRUJJUThnQlNnQ2VDQUhLQUtBQVVjTkFDQUZMZ0dZQVNBSExnSEFBV3NpQXlBRFFSOTFJZ05xSUFOelFRTkxEUUFnQlM0Qm1nRWdCeTRCd2dGcklnTWdBMEVmZFNJRGFpQURjMEVEU3lFUEN5QUlJQTgyQWtoQkFDRWFJQXdnRFhJZ0VISWdEM0lpQTBFQVJ5RU5JQU5GREFFTFFRQWhEU0FJUVFBMkFrQWdDRUVBTmdKSUlBaEJBRFlDT0NBSVFRQTJBakJCQVNFYVFRRUxJUU1DUUFKQUFrQWdBa0VFY1NJekJFQUNRQ0FGS0FJQUlnSkJCVTBFUUNBQktBSUFRUVpKRFFFTElBaEJCRFlDZENBSVFRUTJBcFFCSUFoQkJEWUNWQ0FJUVFRMkFqUkJBU0VOREFJTFFRSWhEMEVDSVJBQ1FDQUZMd0VjRFFBZ0FTOEJKZzBBUVFFaEVDQUZLQUowSUFFb0FuaEhEUUFnQlM0QmhBRWdBUzRCbUFGcklnUWdCRUVmZFNJRWFpQUVjMEVEU3cwQUlBVXVBWVlCSUFFdUFab0JheUlFSUFSQkgzVWlCR29nQkhOQkEwc2hFQXNnQ0NBUU5nSTBBa0FnQlM4QklBMEFJQUV2QVNvTkFFRUJJUThnQlNnQ2RDQUJLQUo0UncwQUlBVXVBWXdCSUFFdUFhQUJheUlFSUFSQkgzVWlCR29nQkhOQkEwc05BQ0FGTGdHT0FTQUJMZ0dpQVdzaUJDQUVRUjkxSWdScUlBUnpRUU5MSVE4TElBZ2dEellDVkVFQ0lRcEJBaUVNQWtBZ0JTOEJMQTBBSUFFdkFUWU5BRUVCSVF3Z0JTZ0NmQ0FCS0FLQUFVY05BQ0FGTGdHa0FTQUJMZ0c0QVdzaUJDQUVRUjkxSWdScUlBUnpRUU5MRFFBZ0JTNEJwZ0VnQVM0QnVnRnJJZ1FnQkVFZmRTSUVhaUFFYzBFRFN5RU1DeUFJSUF3MkFuUUNRQ0FGTHdFd0RRQWdBUzhCT2cwQVFRRWhDaUFGS0FKOElBRW9Bb0FCUncwQUlBVXVBYXdCSUFFdUFjQUJheUlFSUFSQkgzVWlCR29nQkhOQkEwc05BQ0FGTGdHdUFTQUJMZ0hDQVdzaUFTQUJRUjkxSWdGcUlBRnpRUU5MSVFvTElBZ2dDallDbEFGQkFTRU5JQU5GRFFJZ0R5QVFjaUFNY2lBS2NrRUFSeUVOREFJTElBaEJBRFlDZENBSVFRQTJBcFFCSUFoQkFEWUNWQ0FJUVFBMkFqUWdCU2dDQUNFQ0N5QUNRUVpKRFFBZ0NFRUROZ0tnQVNBSVFvT0FnSUF3TndLa0FTQUlRUU0yQXBBQklBaEJBellDY0NBSVFRTTJBcXdCSUFoQ2c0Q0FnREEzQTVnQklBaENnNENBZ0RBM0E0Z0JJQWhDZzRDQWdEQTNBNEFCSUFoQ2c0Q0FnREEzQTNnZ0NFS0RnSUNBTURjRGFDQUlRb09BZ0lBd053TmdJQWhDZzRDQWdEQTNBMWdnQ0VLRGdJQ0FNRGNDVENBSVFRTTJBa1FnQ0VFRE5nSThEQUVMQWtBQ2Z5QUNRUU5OQkVBZ0FrRUNkRUdNTldvb0FnQU1BUXRCQkF0QkFVWUVRQ0FJQW44Q1FDQUZMd0VnSWdrTkFDQUZMd0VjRFFCQkFBd0JDMEVDQ3pZQ1VDQUlBbjhDUUNBRkx3RWlJZ0VOQUNBRkx3RWVEUUJCQUF3QkMwRUNDellDV0NBSUFuOENRQ0FGTHdFb0lnSU5BQ0FGTHdFa0RRQkJBQXdCQzBFQ0N6WUNZQ0FJQW44Q1FDQUZMd0VxSWdZTkFDQUZMd0VtRFFCQkFBd0JDMEVDQ3pZQ2FDQUlRUUlnQ1VFQVIwRUJkQ0FGTHdFc0lnY2JOZ0p3SUFoQkFpQUJRUUJIUVFGMElBVXZBUzRpQXhzMkFuZ2dDRUVDSUFKQkFFZEJBWFFnQlM4Qk5DSUVHellDZ0FFZ0NFRUNJQVpCQUVkQkFYUWdCUzhCTmlJTEd6WUNpQUVnQ0NBRkx3RXdJZzRnQjNKQkFFZEJBWFEyQXBBQklBZ2dCUzhCTWlJUUlBTnlRUUJIUVFGME5nS1lBU0FJSUFVdkFUZ2lEQ0FFY2tFQVIwRUJkRFlDb0FFZ0NDQUZMd0U2SWhJZ0MzSkJBRWRCQVhRMkFxZ0JRUUloRDBFQ0lRb2dDQ0FGTHdFZUJIOUJBZ1ZCQUNFUElBVXZBUnhCQUVkQkFYUUxOZ0k4SUFoQkFpQVBJQVV2QVNRaUNoczJBa1FnQlM4QkppRVBJQWdnRENBU2NrRUFSMEVCZERZQ3JBRWdDQ0FNSUJCeVFRQkhRUUYwTmdLa0FTQUlJQTRnRUhKQkFFZEJBWFEyQXB3QklBZ2dCQ0FMY2tFQVIwRUJkRFlDakFFZ0NDQURJQVJ5UVFCSFFRRjBOZ0tFQVNBSUlBTWdCM0pCQUVkQkFYUTJBbndnQ0NBQ0lBWnlRUUJIUVFGME5nSnNJQWdnQVNBQ2NrRUFSMEVCZERZQ1pDQUlJQUVnQ1hKQkFFZEJBWFEyQWx3Z0NDQUtJQTl5UVFCSFFRRjBOZ0pNSUFnb0Fxd0JJUllnQ0NnQ3BBRWhEeUFJS0FLY0FTRVZJQWdvQW93QklTRWdDQ2dDaEFFaENpQUlLQUo4SVNrZ0NDZ0NiQ0VYSUFnb0FtUWhBU0FJS0FKY0lRWWdDQ2dDVENFSklBZ29Ba1FoQWlBSUtBSThJUTRnQ0NnQ3FBRWhBeUFJS0FLZ0FTRXFJQWdvQXBnQklSd2dDQ2dDa0FFaEl5QUlLQUtJQVNFTElBZ29Bb0FCSVJNZ0NDZ0NlQ0VTSUFnb0FuQWhGQ0FJS0FKb0lRY2dDQ2dDWUNFRUlBZ29BbGdoRUNBSUtBSlFJUXdNQVFzZ0NBSi9Ba0FnQ0FKL0FrQUNRQUpBQWtBQ1FDQUZLQUlBUVFKckRnSUFBUUlMSUFnQ2Z3SkFJQVV2QVNBaUlRMEFJQVV2QVJ3TkFFRUFEQUVMUVFJTElndzJBbEFnQ0FKL0FrQWdCUzhCSWlJS0RRQWdCUzhCSGcwQVFRQU1BUXRCQWdzaUVEWUNXQ0FJQW44Q1FDQUZMd0VvSWdFTkFDQUZMd0VrRFFCQkFBd0JDMEVDQ3lJRU5nSmdJQWdDZndKQUlBVXZBU29pRncwQUlBVXZBU1lOQUVFQURBRUxRUUlMSWdjMkFtZ2dDQUovQWtBZ0JTOEJNQ0lyRFFBZ0JTOEJMQTBBUVFBTUFRdEJBZ3NpSXpZQ2tBRWdDQUovQWtBZ0JTOEJNaUlWRFFBZ0JTOEJMZzBBUVFBTUFRdEJBZ3NpSERZQ21BRWdDQUovQWtBZ0JTOEJPQ0lQRFFBZ0JTOEJOQTBBUVFBTUFRdEJBZ3NpS2pZQ29BRWdDQUovQWtBZ0JTOEJPaUlXRFFBZ0JTOEJOZzBBUVFBTUFRdEJBZ3NpQXpZQ3FBRkJBaUVTUVFJaEZBSkFJQ0VnQlM4QkxDSXNjZzBBUVFFaEZDQUZMZ0drQVNBRkxnR01BV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQlM0QnBnRWdCUzRCamdGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBVW9BbndnQlNnQ2RFY2hGQXNnQ0NBVU5nSndBa0FnQ2lBRkx3RXVJaWx5RFFCQkFTRVNJQVV1QWFnQklBVXVBWkFCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBRkxnR3FBU0FGTGdHU0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdCU2dDZkNBRktBSjBSeUVTQ3lBSUlCSTJBbmhCQWlFTFFRSWhFd0pBSUFFZ0JTOEJOQ0lmY2cwQVFRRWhFeUFGTGdHMEFTQUZMZ0djQVdzaUFpQUNRUjkxSWdKcUlBSnpRUU5MRFFBZ0JTNEJ0Z0VnQlM0Qm5nRnJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN3MEFJQVVvQW9BQklBVW9BbmhISVJNTElBZ2dFellDZ0FFQ1FDQVhJQVV2QVRZaUxYSU5BRUVCSVFzZ0JTNEJ1QUVnQlM0Qm9BRnJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN3MEFJQVV1QWJvQklBVXVBYUlCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBRktBS0FBU0FGS0FKNFJ5RUxDeUFJSUFzMkFvZ0JJQVV2QVI0TkFpQUZMd0VjQkVCQkFpRU9JQWhCQWpZQ1BDQUZMd0VrSWdZTkJrRUFJUWxCQUF3SEMwRUFJUTRnQ0VFQU5nSThRUUFoQ1VFQUlBVXZBU1FpQmtVTkJob01CUXNnQ0FKL0FrQWdCUzhCSUNJQ0RRQWdCUzhCSEEwQVFRQU1BUXRCQWdzaUREWUNVQ0FJQW44Q1FDQUZMd0VpSWdvTkFDQUZMd0VlRFFCQkFBd0JDMEVDQ3lJUU5nSllJQWdDZndKQUlBVXZBU2dpRHcwQUlBVXZBU1FOQUVFQURBRUxRUUlMSWdRMkFtQWdDQUovQWtBZ0JTOEJLaUlHRFFBZ0JTOEJKZzBBUVFBTUFRdEJBZ3NpQnpZQ2FDQUlJQVV2QVN3aUFTQUNja0VBUjBFQmRDSVVOZ0p3SUFnZ0JTOEJMaUlmSUFweVFRQkhRUUYwSWhJMkFuZ2dDQ0FGTHdFMElpc2dEM0pCQUVkQkFYUWlFellDZ0FFZ0NDQUZMd0UySWhjZ0JuSkJBRWRCQVhRaUN6WUNpQUVnQ0VFQ0lBRkJBRWRCQVhRZ0JTOEJNQ0lWR3lJak5nS1FBU0FJUVFJZ0gwRUFSMEVCZENBRkx3RXlJaXdiSWh3MkFwZ0JJQWhCQWlBclFRQkhRUUYwSUFVdkFUZ2lMUnNpS2pZQ29BRWdDRUVDSUJkQkFFZEJBWFFnQlM4Qk9pSVdHeUlETmdLb0FTQUlBbjhDUUNBRkx3RWVJaThOQUNBRkx3RWNEUUJCQUF3QkMwRUNDeUlPTmdJOElBVXZBU1lFUUNBRkx3RWtJUWtNQXdzZ0JTOEJKQ0lKRFFKQkFDRW5RUUFNQXdzZ0JTNEJoZ0VoQmlBRkxnR09BU0VCUVFJaEVDQUlBbjlCQWlBRkx3RWdJalFnQlM4QkhDSU9jZzBBR2tFQklBVXVBWXdCSUFVdUFZUUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQm9nQVNBR2F5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTElndzJBbEFnQlM0QmlnRWhDU0FGTGdHU0FTRUtBa0FnQlM4QklpSVZJQVV2QVI0aU5YSU5BRUVCSVJBZ0JTNEJrQUVnQlM0QmlBRnJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN3MEFJQW9nQ1dzaUFpQUNRUjkxSWdKcUlBSnpRUU5MSVJBTElBZ2dFRFlDV0NBRkxnR1dBU0VYSUFVdUFaNEJJUTlCQWlFSElBZ0NmMEVDSUFVdkFTZ2lLU0FGTHdFa0lqWnlEUUFhUVFFZ0JTNEJuQUVnQlM0QmxBRnJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN3MEFHaUFQSUJkcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3dzaUJEWUNZQ0FGTGdHYUFTRTNJQVV1QWFJQklSOENRQ0FGTHdFcUlqZ2dCUzhCSmlKRmNnMEFRUUVoQnlBRkxnR2dBU0FGTGdHWUFXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdIeUEzYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNoQndzZ0NDQUhOZ0pvSUFVdUFhWUJJU3RCQWlFU1FRSWhGQUpBSURRZ0JTOEJMQ0k1Y2cwQVFRRWhGQ0FGTGdHa0FTQUZMZ0dNQVdzaUFpQUNRUjkxSWdKcUlBSnpRUU5MRFFBZ0t5QUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FGS0FKOElBVW9BblJISVJRTElBZ2dGRFlDY0NBRkxnR3FBU0VXQWtBZ0ZTQUZMd0V1SWl4eURRQkJBU0VTSUFVdUFhZ0JJQVV1QVpBQmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQVdJQXBySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBSUFVb0Fud2dCU2dDZEVjaEVnc2dDQ0FTTmdKNElBVXVBYllCSVNGQkFpRUxRUUloRXdKQUlDa2dCUzhCTkNJdGNnMEFRUUVoRXlBRkxnRzBBU0FGTGdHY0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdJU0FQYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBRktBS0FBU0FGS0FKNFJ5RVRDeUFJSUJNMkFvQUJJQVV1QWJvQklTY0NRQ0E0SUFVdkFUWWlPbklOQUVFQklRc2dCUzRCdUFFZ0JTNEJvQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBSUNjZ0gyc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdCU2dDZ0FFZ0JTZ0NlRWNoQ3dzZ0NDQUxOZ0tJQVNBRkxnR3VBU0U3UVFJaEhDQUlBbjlCQWlBNUlBVXZBVEFpUm5JTkFCcEJBU0FGTGdHc0FTQUZMZ0drQVdzaUFpQUNRUjkxSWdKcUlBSnpRUU5MRFFBYUlEc2dLMnNpQWlBQ1FSOTFJZ0pxSUFKelFRTkxDeUlqTmdLUUFTQUZMZ0d5QVNFdkFrQWdMQ0FGTHdFeUlqeHlEUUJCQVNFY0lBVXVBYkFCSUFVdUFhZ0JheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0F2SUJacklnSWdBa0VmZFNJQ2FpQUNjMEVEU3lFY0N5QUlJQncyQXBnQklBVXVBYjRCSVRGQkFpRURJQWdDZjBFQ0lDMGdCUzhCT0NJOWNnMEFHa0VCSUFVdUFid0JJQVV1QWJRQmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFCb2dNU0FoYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNMSWlvMkFxQUJJQVV1QWNJQklUNENRQ0E2SUFVdkFUb2lSM0lOQUVFQklRTWdCUzRCd0FFZ0JTNEJ1QUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBSUQ0Z0oyc2lBaUFDUVI5MUlnSnFJQUp6UVFOTElRTUxJQWdnQXpZQ3FBRkJBaUVDSUFnQ2YwRUNJQTRnTlhJTkFCcEJBU0FGTGdHSUFTQUZMZ0dFQVdzaURpQU9RUjkxSWc1cUlBNXpRUU5MRFFBYUlBa2dCbXNpQmlBR1FSOTFJZ1pxSUFaelFRTkxDeUlPTmdJOEFrQWdOU0EyY2cwQVFRRWhBaUFGTGdHVUFTQUZMZ0dJQVdzaUJpQUdRUjkxSWdacUlBWnpRUU5MRFFBZ0Z5QUpheUlKSUFsQkgzVWlDV29nQ1hOQkEwc05BQ0FGS0FKNElBVW9BblJISVFJTElBZ2dBallDUkVFQ0lRWWdDQUovUVFJZ05pQkZjZzBBR2tFQklBVXVBWmdCSUFVdUFaUUJheUlKSUFsQkgzVWlDV29nQ1hOQkEwc05BQm9nTnlBWGF5SUpJQWxCSDNVaUNXb2dDWE5CQTBzTElnazJBa3dDUUNBVklEUnlEUUJCQVNFR0lBVXVBWkFCSUFVdUFZd0JheUlYSUJkQkgzVWlGMm9nRjNOQkEwc05BQ0FLSUFGcklnRWdBVUVmZFNJQmFpQUJjMEVEU3lFR0N5QUlJQVkyQWx4QkFpRVhRUUloQVFKQUlCVWdLWElOQUVFQklRRWdCUzRCbkFFZ0JTNEJrQUZySWhVZ0ZVRWZkU0lWYWlBVmMwRURTdzBBSUE4Z0Ntc2lDaUFLUVI5MUlncHFJQXB6UVFOTERRQWdCU2dDZUNBRktBSjBSeUVCQ3lBSUlBRTJBbVFDUUNBcElEaHlEUUJCQVNFWElBVXVBYUFCSUFVdUFad0JheUlLSUFwQkgzVWlDbW9nQ25OQkEwc05BQ0FmSUE5cklnb2dDa0VmZFNJS2FpQUtjMEVEU3lFWEN5QUlJQmMyQW14QkFpRUtJQWdDZjBFQ0lDd2dPWElOQUJwQkFTQUZMZ0dvQVNBRkxnR2tBV3NpRHlBUFFSOTFJZzlxSUE5elFRTkxEUUFhSUJZZ0syc2lEeUFQUVI5MUlnOXFJQTl6UVFOTEN5SXBOZ0o4QWtBZ0xDQXRjZzBBUVFFaENpQUZMZ0cwQVNBRkxnR29BV3NpRHlBUFFSOTFJZzlxSUE5elFRTkxEUUFnSVNBV2F5SVBJQTlCSDNVaUQyb2dEM05CQTBzTkFDQUZLQUtBQVNBRktBSjhSeUVLQ3lBSUlBbzJBb1FCUVFJaEZTQUlBbjlCQWlBdElEcHlEUUFhUVFFZ0JTNEJ1QUVnQlM0QnRBRnJJZzhnRDBFZmRTSVBhaUFQYzBFRFN3MEFHaUFuSUNGcklnOGdEMEVmZFNJUGFpQVBjMEVEU3dzaUlUWUNqQUVDUUNBOElFWnlEUUJCQVNFVklBVXVBYkFCSUFVdUFhd0JheUlQSUE5QkgzVWlEMm9nRDNOQkEwc05BQ0F2SUR0cklnOGdEMEVmZFNJUGFpQVBjMEVEU3lFVkN5QUlJQlUyQXB3QlFRSWhGa0VDSVE4Q1FDQThJRDF5RFFCQkFTRVBJQVV1QWJ3QklBVXVBYkFCYXlJZklCOUJIM1VpSDJvZ0gzTkJBMHNOQUNBeElDOXJJaDhnSDBFZmRTSWZhaUFmYzBFRFN3MEFJQVVvQW9BQklBVW9BbnhISVE4TElBZ2dEellDcEFFQ1FDQTlJRWR5RFFCQkFTRVdJQVV1QWNBQklBVXVBYndCYXlJZklCOUJIM1VpSDJvZ0gzTkJBMHNOQUNBK0lERnJJaFlnRmtFZmRTSVdhaUFXYzBFRFN5RVdDeUFJSUJZMkFxd0JEQVVMUVFJaERpQUlRUUkyQWp3Z0JTOEJKQ0VHREFJTElBbEIvLzhEY1VFQVJ5RW5RUUlMSWdrMkFrd2dDQ0FXSUMxeVFRQkhRUUYwSWhZMkFxd0JJQWdnRlNBc2NrRUFSMEVCZENJVk5nS2NBU0FJSUJjZ0szSkJBRWRCQVhRaUlUWUNqQUVnQ0NBQklCOXlRUUJIUVFGMElpazJBbnhCQWlFQklBaEJBaUFQUVFCSFFRRjBJQVliSWhjMkFtd2dDRUVDSUFKQkFFZEJBWFFnQ2hzaUJqWUNYRUVDSVFJQ1FDQW5EUUFnTHcwQVFRRWhBaUFGTGdHVUFTQUZMZ0dJQVdzaUp5QW5RUjkxSWlkcUlDZHpRUU5MRFFBZ0JTNEJsZ0VnQlM0QmlnRnJJaWNnSjBFZmRTSW5haUFuYzBFRFN3MEFJQVVvQW5nZ0JTZ0NkRWNoQWdzZ0NDQUNOZ0pFQWtBZ0NpQVBjZzBBUVFFaEFTQUZMZ0djQVNBRkxnR1FBV3NpQ2lBS1FSOTFJZ3BxSUFwelFRTkxEUUFnQlM0Qm5nRWdCUzRCa2dGcklnb2dDa0VmZFNJS2FpQUtjMEVEU3cwQUlBVW9BbmdnQlNnQ2RFY2hBUXNnQ0NBQk5nSmtRUUloRDBFQ0lRb0NRQ0FmSUN0eURRQkJBU0VLSUFVdUFiUUJJQVV1QWFnQmF5SWZJQjlCSDNVaUgyb2dIM05CQTBzTkFDQUZMZ0cyQVNBRkxnR3FBV3NpSHlBZlFSOTFJaDlxSUI5elFRTkxEUUFnQlNnQ2dBRWdCU2dDZkVjaENnc2dDQ0FLTmdLRUFRSkFJQ3dnTFhJTkFFRUJJUThnQlM0QnZBRWdCUzRCc0FGckloOGdIMEVmZFNJZmFpQWZjMEVEU3cwQUlBVXVBYjRCSUFVdUFiSUJheUlmSUI5QkgzVWlIMm9nSDNOQkEwc05BQ0FGS0FLQUFTQUZLQUo4UnlFUEN5QUlJQTgyQXFRQkRBSUxJQVloQ1VFQ0N5SUNOZ0pFSUFVdkFTWWhKeUFJSUE4Z0ZuSkJBRWRCQVhRaUZqWUNyQUVnQ0NBUElCVnlRUUJIUVFGMElnODJBcVFCSUFoQkFpQXJRUUJIUVFGMElCVWJJaFUyQXB3QklBaEJBaUFYUVFCSFFRRjBJQUViSWhjMkFtd2dDRUVDSUFGQkFFZEJBWFFnQ2hzaUFUWUNaQ0FJUVFJZ0NrRUFSMEVCZENBaEd5SUdOZ0pjSUFnZ0h5QXRja0VBUjBFQmRDSWhOZ0tNQVNBSUlCOGdLWEpCQUVkQkFYUWlDallDaEFFZ0NDQXBJQ3h5UVFCSFFRRjBJaWsyQW53Z0NDQW5JQWxCLy84RGNYSkJBRWRCQVhRaUNUWUNUQXNnRENBTmNpQVFjaUFFY2lBSGNpQVVjaUFTY2lBVGNpQUxjaUFqY2lBY2NpQXFjaUFEY2lBT2NpQUNjaUFKY2lBR2NpQUJjaUFYY2lBcGNpQUtjaUFoY2lBVmNpQVBjaUFXY2tVTkFRc2dCU2dDRENFQ0lBZ2dCU2dDRUNJRElBVW9BaFFpQVdvaUJFRXpJQVJCTTBnYklnUkJBQ0FFUVFCS0cwSFFGMm90QUFBaUJEWUNJQ0FJSUFFZ0Ftb2lDVUV6SUFsQk0wZ2JJZ2xCQUNBSlFRQktHeUlHUVpBWGFpMEFBQ0lKTmdJY0lBZ2dCa0VEYkVHUUdHb2lCellDR0FKQUlCb05BQ0FCSUFVb0Fzd0JLQUlVSWdaSEJFQWdDQ0FCSUFacVFRRnFRUUYySWdZZ0Eyb2lEVUV6SUExQk0wZ2JJZzFCQUNBTlFRQktHMEhRRjJvdEFBQTJBZ2dnQ0NBQ0lBWnFJZ1pCTXlBR1FUTklHeUlHUVFBZ0JrRUFTaHNpQmtHUUYyb3RBQUEyQWdRZ0NDQUdRUU5zUVpBWWFqWUNBQXdCQ3lBSUlBUTJBZ2dnQ0NBSk5nSUVJQWdnQnpZQ0FBc2dNd1JBQWtBZ0FTQUZLQUxJQVNnQ0ZDSUdSd1JBSUFnZ0FTQUdha0VCYWtFQmRpSUJJQU5xSWdOQk15QURRVE5JR3lJRFFRQWdBMEVBU2h0QjBCZHFMUUFBTmdJVUlBZ2dBU0FDYWlJQlFUTWdBVUV6U0JzaUFVRUFJQUZCQUVvYklnRkJrQmRxTFFBQU5nSVFJQUZCQTJ4QmtCaHFJUWNNQVFzZ0NDQUVOZ0lVSUFnZ0NUWUNFQXNnQ0NBSE5nSU1DeUFsS0FJQUlDZ2dNR3dpRmtFSWRHb2dKa0VFZEdvaEEwRUFJUTVCQXlFQ0lBaEJNR29oQ3dOQUlBc29BZ1FpQVFSQUlBTWdBU0JFSUNBUUZnc2dDeWdDRENJQkJFQWdBMEVFYWlBQklDNGdJQkFXQ3lBTEtBSVVJZ0VFUUNBRFFRaHFJQUVnTGlBZ0VCWUxJQXNvQWh3aUFRUkFJQU5CREdvZ0FTQXVJQ0FRRmdzZ0FpRUpBa0FDUUFKQUlBc29BZ0FpQVNBTEtBSUlJZ2RIRFFBZ0FTQUxLQUlRUncwQUlBRWdDeWdDR0VjTkFDQUJSUTBDSUFnZ0RrRU1iR29pQWlnQ0NDRU5JQUlvQWdRaERpQUJRUVJKRFFFZ0RrRUNka0VDYWlFVFFSQWhCeUFESVFJRFFBSkFJQUlnR1dvaUJDMEFBQ0lHSUFJdEFBQWlDbXNpQVNBQlFSOTFJZ0ZxSUFGeklnRWdEazhOQUNBQ0lDUnFJaFF0QUFBaUVDQUdheUlQSUE5QkgzVWlEMm9nRDNNZ0RVOE5BQ0FDSUNCcUloVXRBQUFpRHlBS2F5SU1JQXhCSDNVaURHb2dESE1nRFU4TkFBSkFJQUVnRTBrRVFDQUNJQ0pxSWhjdEFBQWhEQUovSUEwZ0FpQWVhaUlCTFFBQUloSWdCbXNpSENBY1FSOTFJaHhxSUJ4elN3UkFRUU1oSXlBRUlBOGdCaUFLYWlBUWFpSUVRUUYwYWlBU2FrRUVha0VEZGpvQUFDQVVJQVFnRW1wQkFtcEJBblk2QUFBZ0JFRUVhaUFTUVFOc2FpRVNJQUlnUTJvdEFBQU1BUXRCQWlFaklBWWdEMnBCQW1vaEVpQUVJUUVnRUFzaEJDQUJJQklnQkVFQmRHb2dJM1k2QUFBZ0RDQUtheUlCSUFGQkgzVWlBV29nQVhNZ0RVOE5BU0FDSUJBZ0JpQVBhaUFLYWlJQlFRRjBhaUFNYWtFRWFrRURkam9BQUNBVklBRWdER3BCQW1wQkFuWTZBQUFnRnlBQklBeEJBMnhxSUFJZ1FHb3RBQUJCQVhScVFRUnFRUU4yT2dBQURBSUxJQVFnQmlBUGFpQVFRUUYwYWtFQ2FrRUNkam9BQUFzZ0FpQUtJQkJxSUE5QkFYUnFRUUpxUVFKMk9nQUFDeUFDUVFGcUlRSWdCMEVCYXlJSERRQUxEQUlMQW44Z0FRUkFJQWdnRGtFTWJHb2lFeUVVUVFRaERTQUJJQk1vQWdCcVFRRnJMUUFBSWdSQkFXb2hCa0VBSUFScklROGdBeUVDQTBBQ1FDQVRLQUlFSUFJZ0dXb2lGUzBBQUNJS0lBSXRBQUFpRUdzaUFTQUJRUjkxSWdGcUlBRnpUUTBBSUJRb0FnZ2lCeUFDSUNScUloY3RBQUFpRENBS2F5SUJJQUZCSDNVaUFXb2dBWE5ORFFBZ0FpQWdhaUljTFFBQUloSWdFR3NpQVNBQlFSOTFJZ0ZxSUFGeklBZFBEUUFnQkNFQklBY2dBaUFlYWkwQUFDSWpJQXBySWlFZ0lVRWZkU0loYWlBaGMwc0VRQ0FYSUF3Z0R5QUVJQW9nRUdwQkFXcEJBWFlnREVFQmRHc2dJMnBCQVhVaUFTQUJJQVJLR3lBQklBOUlHMm82QUFBZ0ZDZ0NDQ0VISUFZaEFRc2dGU0FLQW44Z0J5QUNJQ0pxTFFBQUloVWdFR3NpRnlBWFFSOTFJaGRxSUJkelN3UkFJQndnRWlBUElBUWdDaUFRYWtFQmFrRUJkaUFTUVFGMGF5QVZha0VCZFNJSElBUWdCMGdiSUFjZ0QwZ2Jham9BQUNBQlFRRnFJUUVMUVFBZ0FXc2lGUXNnQVNBTUlCSnJJQkFnQ210QkFuUnFRUVJxUVFOMUlnY2dBU0FIU0JzZ0J5QVZTQnNpQVdwQnNDNXFMUUFBT2dBQUlBSWdFQ0FCYTBHd0xtb3RBQUE2QUFBTElBSkJBV29oQWlBTlFRRnJJZzBOQUFzZ0N5Z0NDQ0VIQ3lBSEN3UkFRUVFoRFNBRFFRUnFJUUlnQ0NBT1FReHNhaUlUSVJRZ0J5QVRLQUlBYWtFQmF5MEFBQ0lFUVFGcUlRWkJBQ0FFYXlFUEEwQUNRQ0FUS0FJRUlBSWdHV29pRlMwQUFDSUtJQUl0QUFBaUVHc2lBU0FCUVI5MUlnRnFJQUZ6VFEwQUlCUW9BZ2dpQnlBQ0lDUnFJaGN0QUFBaURDQUtheUlCSUFGQkgzVWlBV29nQVhOTkRRQWdBaUFnYWlJY0xRQUFJaElnRUdzaUFTQUJRUjkxSWdGcUlBRnpJQWRQRFFBZ0JDRUJJQWNnQWlBZWFpMEFBQ0lqSUFwcklpRWdJVUVmZFNJaGFpQWhjMHNFUUNBWElBd2dEeUFFSUFvZ0VHcEJBV3BCQVhZZ0RFRUJkR3NnSTJwQkFYVWlBU0FCSUFSS0d5QUJJQTlJRzJvNkFBQWdGQ2dDQ0NFSElBWWhBUXNnRlNBS0FuOGdCeUFDSUNKcUxRQUFJaFVnRUdzaUZ5QVhRUjkxSWhkcUlCZHpTd1JBSUJ3Z0VpQVBJQVFnQ2lBUWFrRUJha0VCZGlBU1FRRjBheUFWYWtFQmRTSUhJQVFnQjBnYklBY2dEMGdiYWpvQUFDQUJRUUZxSVFFTFFRQWdBV3NpRlFzZ0FTQU1JQkpySUJBZ0NtdEJBblJxUVFScVFRTjFJZ2NnQVNBSFNCc2dCeUFWU0JzaUFXcEJzQzVxTFFBQU9nQUFJQUlnRUNBQmEwR3dMbW90QUFBNkFBQUxJQUpCQVdvaEFpQU5RUUZySWcwTkFBc0xJQXNvQWhBaUFRUkFJQU5CQ0dvaEFpQUlJQTVCREd4cUloTWhGRUVFSVEwZ0FTQVRLQUlBYWtFQmF5MEFBQ0lFUVFGcUlRWkJBQ0FFYXlFUEEwQUNRQ0FUS0FJRUlBSWdHV29pRlMwQUFDSUtJQUl0QUFBaUVHc2lBU0FCUVI5MUlnRnFJQUZ6VFEwQUlCUW9BZ2dpQnlBQ0lDUnFJaGN0QUFBaURDQUtheUlCSUFGQkgzVWlBV29nQVhOTkRRQWdBaUFnYWlJY0xRQUFJaElnRUdzaUFTQUJRUjkxSWdGcUlBRnpJQWRQRFFBZ0JDRUJJQWNnQWlBZWFpMEFBQ0lqSUFwcklpRWdJVUVmZFNJaGFpQWhjMHNFUUNBWElBd2dEeUFFSUFvZ0VHcEJBV3BCQVhZZ0RFRUJkR3NnSTJwQkFYVWlBU0FCSUFSS0d5QUJJQTlJRzJvNkFBQWdGQ2dDQ0NFSElBWWhBUXNnRlNBS0FuOGdCeUFDSUNKcUxRQUFJaFVnRUdzaUZ5QVhRUjkxSWhkcUlCZHpTd1JBSUJ3Z0VpQVBJQVFnQ2lBUWFrRUJha0VCZGlBU1FRRjBheUFWYWtFQmRTSUhJQVFnQjBnYklBY2dEMGdiYWpvQUFDQUJRUUZxSVFFTFFRQWdBV3NpRlFzZ0FTQU1JQkpySUJBZ0NtdEJBblJxUVFScVFRTjFJZ2NnQVNBSFNCc2dCeUFWU0JzaUFXcEJzQzVxTFFBQU9nQUFJQUlnRUNBQmEwR3dMbW90QUFBNkFBQUxJQUpCQVdvaEFpQU5RUUZySWcwTkFBc0xJQXNvQWhnaUFVVU5BU0FEUVF4cUlRSWdDQ0FPUVF4c2FpSVNJUk5CQkNFTklBRWdFaWdDQUdwQkFXc3RBQUFpQkVFQmFpRUdRUUFnQkdzaER3TkFBa0FnRWlnQ0JDQUNJQmxxSWhRdEFBQWlDaUFDTFFBQUloQnJJZ0VnQVVFZmRTSUJhaUFCYzAwTkFDQVRLQUlJSWdjZ0FpQWthaUlWTFFBQUlnd2dDbXNpQVNBQlFSOTFJZ0ZxSUFGelRRMEFJQUlnSUdvaUZ5MEFBQ0lPSUJCcklnRWdBVUVmZFNJQmFpQUJjeUFIVHcwQUlBUWhBU0FISUFJZ0htb3RBQUFpSENBS2F5SWpJQ05CSDNVaUkyb2dJM05MQkVBZ0ZTQU1JQThnQkNBS0lCQnFRUUZxUVFGMklBeEJBWFJySUJ4cVFRRjFJZ0VnQVNBRVNoc2dBU0FQU0J0cU9nQUFJQk1vQWdnaEJ5QUdJUUVMSUJRZ0NnSi9JQWNnQWlBaWFpMEFBQ0lVSUJCckloVWdGVUVmZFNJVmFpQVZjMHNFUUNBWElBNGdEeUFFSUFvZ0VHcEJBV3BCQVhZZ0RrRUJkR3NnRkdwQkFYVWlCeUFFSUFkSUd5QUhJQTlJRzJvNkFBQWdBVUVCYWlFQkMwRUFJQUZySWhRTElBRWdEQ0FPYXlBUUlBcHJRUUowYWtFRWFrRURkU0lISUFFZ0IwZ2JJQWNnRkVnYklnRnFRYkF1YWkwQUFEb0FBQ0FDSUJBZ0FXdEJzQzVxTFFBQU9nQUFDeUFDUVFGcUlRSWdEVUVCYXlJTkRRQUxEQUVMSUFFZ0FpZ0NBR3BCQVdzdEFBQWlBVUVCYWlFR1FRQWdBV3NoRDBFUUlRY2dBeUVDQTBBQ1FDQUNJQmxxSWhNdEFBQWlDaUFDTFFBQUloQnJJZ1FnQkVFZmRTSUVhaUFFY3lBT1R3MEFJQUlnSkdvaUZDMEFBQ0lNSUFwcklnUWdCRUVmZFNJRWFpQUVjeUFOVHcwQUlBSWdJR29pRlMwQUFDSVNJQkJySWdRZ0JFRWZkU0lFYWlBRWN5QU5UdzBBSUFFaEJDQU5JQUlnSG1vdEFBQWlGeUFLYXlJY0lCeEJIM1VpSEdvZ0hITkxCRUFnRkNBTUlBOGdBU0FLSUJCcVFRRnFRUUYySUF4QkFYUnJJQmRxUVFGMUlnUWdBU0FFU0JzZ0JDQVBTQnRxT2dBQUlBWWhCQXNnRXlBS0FuOGdEU0FDSUNKcUxRQUFJaE1nRUdzaUZDQVVRUjkxSWhScUlCUnpTd1JBSUJVZ0VpQVBJQUVnQ2lBUWFrRUJha0VCZGlBU1FRRjBheUFUYWtFQmRTSVRJQUVnRTBnYklBOGdFMG9iYWpvQUFDQUVRUUZxSVFRTFFRQWdCR3NpRXdzZ0JDQU1JQkpySUJBZ0NtdEJBblJxUVFScVFRTjFJZ3dnQkNBTVNCc2dEQ0FUU0JzaUJHcEJzQzVxTFFBQU9nQUFJQUlnRUNBRWEwR3dMbW90QUFBNkFBQUxJQUpCQVdvaEFpQUhRUUZySWdjTkFBc0xJQWxCQVdzaEFpQUxRU0JxSVFzZ0F5QS9haUVEUVFJaERpQUpEUUFMSUFVb0Fnd2hBU0FJSUFVb0FoQWlBeUFGS0FJVUlnUWdCU2dDR0NJSmFpSUNRVE1nQWtFelNCc2lBa0VBSUFKQkFFb2JRUUowUWVBOWFpZ0NBQ0lDYWlJR1FUTWdCa0V6U0JzaUJrRUFJQVpCQUVvYlFkQVhhaTBBQUNJR05nSWdJQWdnQVNBQ2FpSUhRVE1nQjBFelNCc2lCMEVBSUFkQkFFb2JJZ2RCa0JkcUxRQUFJZzAyQWh3Z0NDQUhRUU5zUVpBWWFpSUhOZ0lZQWtBZ0dnMEFJQVFnQlNnQ3pBRW9BaFFpQzBjRVFDQUlJQUlnQ1NBTGFpSUxRVE1nQzBFelNCc2lDMEVBSUF0QkFFb2JRUUowUWVBOWFpZ0NBR3BCQVdwQkFYWWlDeUFEYWlJS1FUTWdDa0V6U0JzaUNrRUFJQXBCQUVvYlFkQVhhaTBBQURZQ0NDQUlJQUVnQzJvaUMwRXpJQXRCTTBnYklndEJBQ0FMUVFCS0d5SUxRWkFYYWkwQUFEWUNCQ0FJSUF0QkEyeEJrQmhxTmdJQURBRUxJQWdnQmpZQ0NDQUlJQTAyQWdRZ0NDQUhOZ0lBQ3lBekJFQUNRQ0FFSUFVb0FzZ0JLQUlVSWd0SEJFQWdDQ0FESUFJZ0NTQUxhaUlFUVRNZ0JFRXpTQnNpQkVFQUlBUkJBRW9iUVFKMFFlQTlhaWdDQUdwQkFXcEJBWFlpQW1vaUEwRXpJQU5CTTBnYklnTkJBQ0FEUVFCS0cwSFFGMm90QUFBMkFoUWdDQ0FCSUFKcUlnRkJNeUFCUVROSUd5SUJRUUFnQVVFQVNoc2lBVUdRRjJvdEFBQTJBaEFnQVVFRGJFR1FHR29oQnd3QkN5QUlJQVkyQWhRZ0NDQU5OZ0lRQ3lBSUlBYzJBZ3dMSUNVb0FnQWdRbW9nRmtFR2RHb2dKa0VEZEdvaUFpQkJhaUVOUVFFaEQwRUFJUkFnQ0VFd2FpRUhBMEFDUUNBSEtBSUVJZ05GRFFBQ1FDQUlLQUlRSUFKQkFXc2lDeTBBQUNJQklBSXRBQUFpQkdzaUNTQUpRUjkxSWdscUlBbHpUUTBBSUFnb0FoUWlDaUFDUVFKckxRQUFJZ2tnQVdzaUJpQUdRUjkxSWdacUlBWnpUUTBBSUFvZ0FpMEFBU0lHSUFScklnd2dERUVmZFNJTWFpQU1jMDBOQUNBRFFRTk5CRUFnQ3lBQklBTWdDQ2dDREdwQkFXc3RBQUFpQzBGL2N5SUtJQXRCQVdvaUN5QUVJQUZyUVFKMElBWnJJQWxxUVFScVFRTjFJZ2tnQ1NBTFNoc2dDU0FLU0JzaUNXcEJzQzVxTFFBQU9nQUFJQUlnQkNBSmEwR3dMbW90QUFBNkFBQU1BUXNnQ3lBQklBWnFJQWxCQVhScVFRSnFRUUoyT2dBQUlBSWdCQ0FHUVFGMGFpQUpha0VDYWtFQ2Rqb0FBQXNDUUNBSUtBSVFJQUlnSFdvaUFVRUJheUlLTFFBQUlnUWdBUzBBQUNJSmF5SUdJQVpCSDNVaUJtb2dCbk5ORFFBZ0NDZ0NGQ0lNSUFGQkFtc3RBQUFpQmlBRWF5SUxJQXRCSDNVaUMyb2dDM05ORFFBZ0RDQUJMUUFCSWdzZ0NXc2lEaUFPUVI5MUlnNXFJQTV6VFEwQUlBTkJBMDBFUUNBS0lBTWdDQ2dDREdwQkFXc3RBQUFpQTBGL2N5SUtJQU5CQVdvaURDQUpJQVJyUVFKMElBdHJJQVpxUVFScVFRTjFJZ01nQXlBTVNoc2dBeUFLU0JzaUF5QUVha0d3TG1vdEFBQTZBQUFnQVNBSklBTnJRYkF1YWkwQUFEb0FBQXdCQ3lBS0lBUWdDMm9nQmtFQmRHcEJBbXBCQW5ZNkFBQWdBU0FKSUF0QkFYUnFJQVpxUVFKcVFRSjJPZ0FBQ3lBSEtBSUVJUU1DUUNBSUtBSVFJQTFCQVdzaUN5MEFBQ0lCSUEwdEFBQWlCR3NpQ1NBSlFSOTFJZ2xxSUFselRRMEFJQWdvQWhRaUNpQU5RUUpyTFFBQUlna2dBV3NpQmlBR1FSOTFJZ1pxSUFaelRRMEFJQW9nRFMwQUFTSUdJQVJySWd3Z0RFRWZkU0lNYWlBTWMwME5BQ0FEUVFOTkJFQWdDeUFCSUFNZ0NDZ0NER3BCQVdzdEFBQWlDMEYvY3lJS0lBdEJBV29pQ3lBRUlBRnJRUUowSUFacklBbHFRUVJxUVFOMUlna2dDU0FMU2hzZ0NTQUtTQnNpQ1dwQnNDNXFMUUFBT2dBQUlBMGdCQ0FKYTBHd0xtb3RBQUE2QUFBTUFRc2dDeUFCSUFacUlBbEJBWFJxUVFKcVFRSjJPZ0FBSUEwZ0JDQUdRUUYwYWlBSmFrRUNha0VDZGpvQUFBc2dDQ2dDRUNBTklCMXFJZ0ZCQVdzaUNpMEFBQ0lFSUFFdEFBQWlDV3NpQmlBR1FSOTFJZ1pxSUFaelRRMEFJQWdvQWhRaURDQUJRUUpyTFFBQUlnWWdCR3NpQ3lBTFFSOTFJZ3RxSUF0elRRMEFJQXdnQVMwQUFTSUxJQWxySWc0Z0RrRWZkU0lPYWlBT2MwME5BQ0FEUVFOTkJFQWdDaUFESUFnb0FneHFRUUZyTFFBQUlnTkJmM01pQ2lBRFFRRnFJZ3dnQ1NBRWEwRUNkQ0FMYXlBR2FrRUVha0VEZFNJRElBTWdERW9iSUFNZ0NrZ2JJZ01nQkdwQnNDNXFMUUFBT2dBQUlBRWdDU0FEYTBHd0xtb3RBQUE2QUFBTUFRc2dDaUFFSUF0cUlBWkJBWFJxUVFKcVFRSjJPZ0FBSUFFZ0NTQUxRUUYwYWlBR2FrRUNha0VDZGpvQUFBc0NRQ0FIS0FJa0lnTkZEUUFDUUNBSUtBSVFJQUlnSUdvaUFVRUJheUlLTFFBQUlnUWdBUzBBQUNJSmF5SUdJQVpCSDNVaUJtb2dCbk5ORFFBZ0NDZ0NGQ0lNSUFGQkFtc3RBQUFpQmlBRWF5SUxJQXRCSDNVaUMyb2dDM05ORFFBZ0RDQUJMUUFCSWdzZ0NXc2lEaUFPUVI5MUlnNXFJQTV6VFEwQUlBTkJBMDBFUUNBS0lBUWdBeUFJS0FJTWFrRUJheTBBQUNJS1FYOXpJZ3dnQ2tFQmFpSUtJQWtnQkd0QkFuUWdDMnNnQm1wQkJHcEJBM1VpQmlBR0lBcEtHeUFHSUF4SUd5SUdha0d3TG1vdEFBQTZBQUFnQVNBSklBWnJRYkF1YWkwQUFEb0FBQXdCQ3lBS0lBUWdDMm9nQmtFQmRHcEJBbXBCQW5ZNkFBQWdBU0FKSUF0QkFYUnFJQVpxUVFKcVFRSjJPZ0FBQ3dKQUlBZ29BaEFnQVNBZGFpSUJRUUZySWdvdEFBQWlCQ0FCTFFBQUlnbHJJZ1lnQmtFZmRTSUdhaUFHYzAwTkFDQUlLQUlVSWd3Z0FVRUNheTBBQUNJR0lBUnJJZ3NnQzBFZmRTSUxhaUFMYzAwTkFDQU1JQUV0QUFFaUN5QUpheUlPSUE1QkgzVWlEbW9nRG5OTkRRQWdBMEVEVFFSQUlBb2dBeUFJS0FJTWFrRUJheTBBQUNJRFFYOXpJZ29nQTBFQmFpSU1JQWtnQkd0QkFuUWdDMnNnQm1wQkJHcEJBM1VpQXlBRElBeEtHeUFESUFwSUd5SURJQVJxUWJBdWFpMEFBRG9BQUNBQklBa2dBMnRCc0M1cUxRQUFPZ0FBREFFTElBb2dCQ0FMYWlBR1FRRjBha0VDYWtFQ2Rqb0FBQ0FCSUFrZ0MwRUJkR29nQm1wQkFtcEJBblk2QUFBTElBY29BaVFoQXdKQUlBZ29BaEFnRFNBZ2FpSUJRUUZySWdvdEFBQWlCQ0FCTFFBQUlnbHJJZ1lnQmtFZmRTSUdhaUFHYzAwTkFDQUlLQUlVSWd3Z0FVRUNheTBBQUNJR0lBUnJJZ3NnQzBFZmRTSUxhaUFMYzAwTkFDQU1JQUV0QUFFaUN5QUpheUlPSUE1QkgzVWlEbW9nRG5OTkRRQWdBMEVEVFFSQUlBb2dCQ0FESUFnb0FneHFRUUZyTFFBQUlncEJmM01pRENBS1FRRnFJZ29nQ1NBRWEwRUNkQ0FMYXlBR2FrRUVha0VEZFNJR0lBWWdDa29iSUFZZ0RFZ2JJZ1pxUWJBdWFpMEFBRG9BQUNBQklBa2dCbXRCc0M1cUxRQUFPZ0FBREFFTElBb2dCQ0FMYWlBR1FRRjBha0VDYWtFQ2Rqb0FBQ0FCSUFrZ0MwRUJkR29nQm1wQkFtcEJBblk2QUFBTElBZ29BaEFnQVNBZGFpSUJRUUZySWdvdEFBQWlCQ0FCTFFBQUlnbHJJZ1lnQmtFZmRTSUdhaUFHYzAwTkFDQUlLQUlVSWd3Z0FVRUNheTBBQUNJR0lBUnJJZ3NnQzBFZmRTSUxhaUFMYzAwTkFDQU1JQUV0QUFFaUN5QUpheUlPSUE1QkgzVWlEbW9nRG5OTkRRQWdBMEVEVFFSQUlBb2dBeUFJS0FJTWFrRUJheTBBQUNJRFFYOXpJZ29nQTBFQmFpSU1JQWtnQkd0QkFuUWdDMnNnQm1wQkJHcEJBM1VpQXlBRElBeEtHeUFESUFwSUd5SURJQVJxUWJBdWFpMEFBRG9BQUNBQklBa2dBMnRCc0M1cUxRQUFPZ0FBREFFTElBb2dCQ0FMYWlBR1FRRjBha0VDYWtFQ2Rqb0FBQ0FCSUFrZ0MwRUJkR29nQm1wQkFtcEJBblk2QUFBTEFrQWdCeWdDRkNJRFJRMEFJQUpCQkdvaEN3SkFJQWdvQWh3Z0FpMEFBeUlCSUFJdEFBUWlCR3NpQ1NBSlFSOTFJZ2xxSUFselRRMEFJQWdvQWlBaUNpQUNMUUFDSWdrZ0FXc2lCaUFHUVI5MUlnWnFJQVp6VFEwQUlBb2dBaTBBQlNJR0lBUnJJZ3dnREVFZmRTSU1haUFNYzAwTkFDQURRUU5OQkVBZ0FpQUVJQU1nQ0NnQ0dHcEJBV3N0QUFBaUNrRi9jeUlNSUFwQkFXb2lDaUFFSUFGclFRSjBJQVpySUFscVFRUnFRUU4xSWdRZ0JDQUtTaHNnQkNBTVNCc2lCR3RCc0M1cUxRQUFPZ0FFSUFJZ0FTQUVha0d3TG1vdEFBQTZBQU1NQVFzZ0FpQUJJQVpxSUFsQkFYUnFRUUpxUVFKMk9nQURJQUlnQkNBR1FRRjBhaUFKYWtFQ2FrRUNkam9BQkFzQ1FDQUlLQUljSUFzZ0hXb2lBVUVCYXlJS0xRQUFJZ1FnQVMwQUFDSUpheUlHSUFaQkgzVWlCbW9nQm5OTkRRQWdDQ2dDSUNJTUlBRkJBbXN0QUFBaUJpQUVheUlMSUF0QkgzVWlDMm9nQzNOTkRRQWdEQ0FCTFFBQklnc2dDV3NpRGlBT1FSOTFJZzVxSUE1elRRMEFJQU5CQTAwRVFDQUtJQU1nQ0NnQ0dHcEJBV3N0QUFBaUEwRi9jeUlLSUFOQkFXb2lEQ0FKSUFSclFRSjBJQXRySUFacVFRUnFRUU4xSWdNZ0F5QU1TaHNnQXlBS1NCc2lBeUFFYWtHd0xtb3RBQUE2QUFBZ0FTQUpJQU5yUWJBdWFpMEFBRG9BQUF3QkN5QUtJQVFnQzJvZ0JrRUJkR3BCQW1wQkFuWTZBQUFnQVNBSklBdEJBWFJxSUFacVFRSnFRUUoyT2dBQUN5QU5RUVJxSVFzZ0J5Z0NGQ0VEQWtBZ0NDZ0NIQ0FOTFFBRElnRWdEUzBBQkNJRWF5SUpJQWxCSDNVaUNXb2dDWE5ORFFBZ0NDZ0NJQ0lLSUEwdEFBSWlDU0FCYXlJR0lBWkJIM1VpQm1vZ0JuTk5EUUFnQ2lBTkxRQUZJZ1lnQkdzaURDQU1RUjkxSWd4cUlBeHpUUTBBSUFOQkEwMEVRQ0FOSUFRZ0F5QUlLQUlZYWtFQmF5MEFBQ0lLUVg5eklnd2dDa0VCYWlJS0lBUWdBV3RCQW5RZ0Jtc2dDV3BCQkdwQkEzVWlCQ0FFSUFwS0d5QUVJQXhJR3lJRWEwR3dMbW90QUFBNkFBUWdEU0FCSUFScVFiQXVhaTBBQURvQUF3d0JDeUFOSUFFZ0Jtb2dDVUVCZEdwQkFtcEJBblk2QUFNZ0RTQUVJQVpCQVhScUlBbHFRUUpxUVFKMk9nQUVDeUFJS0FJY0lBc2dIV29pQVVFQmF5SUtMUUFBSWdRZ0FTMEFBQ0lKYXlJR0lBWkJIM1VpQm1vZ0JuTk5EUUFnQ0NnQ0lDSU1JQUZCQW1zdEFBQWlCaUFFYXlJTElBdEJIM1VpQzJvZ0MzTk5EUUFnRENBQkxRQUJJZ3NnQ1dzaURpQU9RUjkxSWc1cUlBNXpUUTBBSUFOQkEwMEVRQ0FLSUFNZ0NDZ0NHR3BCQVdzdEFBQWlBMEYvY3lJS0lBTkJBV29pRENBSklBUnJRUUowSUF0cklBWnFRUVJxUVFOMUlnTWdBeUFNU2hzZ0F5QUtTQnNpQXlBRWFrR3dMbW90QUFBNkFBQWdBU0FKSUFOclFiQXVhaTBBQURvQUFBd0JDeUFLSUFRZ0Myb2dCa0VCZEdwQkFtcEJBblk2QUFBZ0FTQUpJQXRCQVhScUlBWnFRUUpxUVFKMk9nQUFDd0pBSUFjb0FqUWlBMFVOQUNBQ0lDQnFJZ0ZCQkdvaEJBSkFJQWdvQWh3Z0FTMEFBeUlKSUFFdEFBUWlCbXNpQ3lBTFFSOTFJZ3RxSUF0elRRMEFJQWdvQWlBaURDQUVRUUpyTFFBQUlnc2dDV3NpQ2lBS1FSOTFJZ3BxSUFwelRRMEFJQXdnQVMwQUJTSUtJQVpySWc0Z0RrRWZkU0lPYWlBT2MwME5BQ0FEUVFOTkJFQWdBU0FESUFnb0FoaHFRUUZyTFFBQUlnRkJmM01pRENBQlFRRnFJZzRnQmlBSmEwRUNkQ0FLYXlBTGFrRUVha0VEZFNJQklBRWdEa29iSUFFZ0RFZ2JJZ0VnQ1dwQnNDNXFMUUFBT2dBRElBUWdCaUFCYTBHd0xtb3RBQUE2QUFBTUFRc2dBU0FKSUFwcUlBdEJBWFJxUVFKcVFRSjJPZ0FESUFRZ0JpQUtRUUYwYWlBTGFrRUNha0VDZGpvQUFBc0NRQ0FJS0FJY0lBUWdIV29pQVVFQmF5SUtMUUFBSWdRZ0FTMEFBQ0lKYXlJR0lBWkJIM1VpQm1vZ0JuTk5EUUFnQ0NnQ0lDSU1JQUZCQW1zdEFBQWlCaUFFYXlJTElBdEJIM1VpQzJvZ0MzTk5EUUFnRENBQkxRQUJJZ3NnQ1dzaURpQU9RUjkxSWc1cUlBNXpUUTBBSUFOQkEwMEVRQ0FLSUFNZ0NDZ0NHR3BCQVdzdEFBQWlBMEYvY3lJS0lBTkJBV29pRENBSklBUnJRUUowSUF0cklBWnFRUVJxUVFOMUlnTWdBeUFNU2hzZ0F5QUtTQnNpQXlBRWFrR3dMbW90QUFBNkFBQWdBU0FKSUFOclFiQXVhaTBBQURvQUFBd0JDeUFLSUFRZ0Myb2dCa0VCZEdwQkFtcEJBblk2QUFBZ0FTQUpJQXRCQVhScUlBWnFRUUpxUVFKMk9nQUFDeUFOSUNCcUlnRkJCR29oQXlBSEtBSTBJUVFDUUNBSUtBSWNJQUV0QUFNaUNTQUJMUUFFSWdacklnc2dDMEVmZFNJTGFpQUxjMDBOQUNBSUtBSWdJZ3dnQTBFQ2F5MEFBQ0lMSUFscklnb2dDa0VmZFNJS2FpQUtjMDBOQUNBTUlBRXRBQVVpQ2lBR2F5SU9JQTVCSDNVaURtb2dEbk5ORFFBZ0JFRURUUVJBSUFFZ0JDQUlLQUlZYWtFQmF5MEFBQ0lCUVg5eklnd2dBVUVCYWlJT0lBWWdDV3RCQW5RZ0Ntc2dDMnBCQkdwQkEzVWlBU0FCSUE1S0d5QUJJQXhJR3lJQklBbHFRYkF1YWkwQUFEb0FBeUFESUFZZ0FXdEJzQzVxTFFBQU9nQUFEQUVMSUFFZ0NTQUthaUFMUVFGMGFrRUNha0VDZGpvQUF5QURJQVlnQ2tFQmRHb2dDMnBCQW1wQkFuWTZBQUFMSUFnb0Fod2dBeUFkYWlJQlFRRnJJZ290QUFBaUF5QUJMUUFBSWdscklnWWdCa0VmZFNJR2FpQUdjMDBOQUNBSUtBSWdJZ3dnQVVFQ2F5MEFBQ0lHSUFOcklnc2dDMEVmZFNJTGFpQUxjMDBOQUNBTUlBRXRBQUVpQ3lBSmF5SU9JQTVCSDNVaURtb2dEbk5ORFFBZ0JFRURUUVJBSUFvZ0F5QUVJQWdvQWhocVFRRnJMUUFBSWdSQmYzTWlDaUFFUVFGcUlnd2dDU0FEYTBFQ2RDQUxheUFHYWtFRWFrRURkU0lFSUFRZ0RFb2JJQVFnQ2tnYklnUnFRYkF1YWkwQUFEb0FBQ0FCSUFrZ0JHdEJzQzVxTFFBQU9nQUFEQUVMSUFvZ0F5QUxhaUFHUVFGMGFrRUNha0VDZGpvQUFDQUJJQWtnQzBFQmRHb2dCbXBCQW1wQkFuWTZBQUFMQWtBQ1FDQUhLQUlBSWdFZ0J5Z0NDQ0lNUncwQUlBRWdCeWdDRUVjTkFDQUJJQWNvQWhoSERRQWdBVVVOQVNBQ0lBRWdDQ0FRUVF4c2FpSUJJQjBRR2lBTklBY29BZ0FnQVNBZEVCb01BUXNnQVFSQUlBZ2dFRUVNYkdvaUF5RUpJQUVnQXlnQ0FHcEJBV3N0QUFBaUJFRi9jeUVCSUFSQkFXb2hCZ0pBSUFNb0FnUWlCQ0FDSUJGcUlnd3RBQUFpQ3lBQ0xRQUFJZ3BySWc0Z0RrRWZkU0lPYWlBT2MwME5BQ0FKS0FJSUlnNGdBaUFiYWkwQUFDSVNJQXRySWhNZ0UwRWZkU0lUYWlBVGMwME5BQ0FPSUFJZ0hXb3RBQUFpRXlBS2F5SVVJQlJCSDNVaUZHb2dGSE5ORFFBZ0RDQUJJQVlnQ2lBTGEwRUNkQ0FUYXlBU2FrRUVha0VEZFNJRUlBUWdCa29iSUFFZ0JFb2JJZ1FnQzJwQnNDNXFMUUFBT2dBQUlBSWdDaUFFYTBHd0xtb3RBQUE2QUFBZ0F5Z0NCQ0VFQ3dKQUlBSkJBV29pQ3lBUmFpSU9MUUFBSWdvZ0FpMEFBU0lNYXlJU0lCSkJIM1VpRW1vZ0VuTWdCRThOQUNBSktBSUlJaElnQ3lBYmFpMEFBQ0lUSUFwckloUWdGRUVmZFNJVWFpQVVjMDBOQUNBU0lBc2dIV290QUFBaUZDQU1heUlXSUJaQkgzVWlGbW9nRm5OTkRRQWdEaUFCSUFZZ0RDQUthMEVDZENBVWF5QVRha0VFYWtFRGRTSUVJQVFnQmtvYklBRWdCRW9iSWdFZ0NtcEJzQzVxTFFBQU9nQUFJQXNnRENBQmEwR3dMbW90QUFBNkFBQWdBeWdDQkNFRUN5QUhLQUlBSUFNb0FnQnFRUUZyTFFBQUlnWkJmM01oQVNBR1FRRnFJUVlDUUNBTklCRnFJZ3d0QUFBaUN5QU5MUUFBSWdwcklnNGdEa0VmZFNJT2FpQU9jeUFFVHcwQUlBa29BZ2dpRGlBTklCdHFMUUFBSWhJZ0Myc2lFeUFUUVI5MUloTnFJQk56VFEwQUlBNGdEU0FkYWkwQUFDSVRJQXBySWhRZ0ZFRWZkU0lVYWlBVWMwME5BQ0FNSUFFZ0JpQUtJQXRyUVFKMElCTnJJQkpxUVFScVFRTjFJZ1FnQkNBR1Noc2dBU0FFU2hzaUJDQUxha0d3TG1vdEFBQTZBQUFnRFNBS0lBUnJRYkF1YWkwQUFEb0FBQ0FES0FJRUlRUUxBa0FnQkNBTlFRRnFJZ01nRVdvaURDMEFBQ0lMSUEwdEFBRWlDbXNpRGlBT1FSOTFJZzVxSUE1elRRMEFJQWtvQWdnaUJDQURJQnRxTFFBQUlna2dDMnNpRGlBT1FSOTFJZzVxSUE1elRRMEFJQVFnQXlBZGFpMEFBQ0lPSUFwckloSWdFa0VmZFNJU2FpQVNjMDBOQUNBTUlBc2dBU0FHSUFvZ0MydEJBblFnRG1zZ0NXcEJCR3BCQTNVaUJDQUVJQVpLR3lBQklBUktHeUlCYWtHd0xtb3RBQUE2QUFBZ0F5QUtJQUZyUWJBdWFpMEFBRG9BQUFzZ0J5Z0NDQ0VNQ3dKQUlBeEZEUUFnQ0NBUVFReHNhaUlCSVFNZ0RDQUJLQUlBYWtFQmF5MEFBQ0lKUVg5eklRUWdDVUVCYWlFSkFrQWdBU2dDQkNJTUlBSkJBbW9pQmlBUmFpSU9MUUFBSWdzZ0FpMEFBaUlLYXlJU0lCSkJIM1VpRW1vZ0VuTk5EUUFnQXlnQ0NDSVNJQVlnRzJvdEFBQWlFeUFMYXlJVUlCUkJIM1VpRkdvZ0ZITk5EUUFnRWlBR0lCMXFMUUFBSWhRZ0Ntc2lGaUFXUVI5MUloWnFJQlp6VFEwQUlBNGdDeUFFSUFrZ0NpQUxhMEVDZENBVWF5QVRha0VFYWtFRGRTSU1JQWtnREVnYklBUWdERW9iSWd4cVFiQXVhaTBBQURvQUFDQUdJQW9nREd0QnNDNXFMUUFBT2dBQUlBRW9BZ1FoREFzQ1FDQUNRUU5xSWdZZ0VXb2lEaTBBQUNJTElBSXRBQU1pQ21zaUVpQVNRUjkxSWhKcUlCSnpJQXhQRFFBZ0F5Z0NDQ0lTSUFZZ0cyb3RBQUFpRXlBTGF5SVVJQlJCSDNVaUZHb2dGSE5ORFFBZ0VpQUdJQjFxTFFBQUloUWdDbXNpRmlBV1FSOTFJaFpxSUJaelRRMEFJQTRnQ3lBRUlBa2dDaUFMYTBFQ2RDQVVheUFUYWtFRWFrRURkU0lNSUFrZ0RFZ2JJQVFnREVvYklnUnFRYkF1YWkwQUFEb0FBQ0FHSUFvZ0JHdEJzQzVxTFFBQU9nQUFJQUVvQWdRaERBc2dCeWdDQ0NBQktBSUFha0VCYXkwQUFDSUpRWDl6SVFRZ0NVRUJhaUVKQWtBZ0RVRUNhaUlHSUJGcUlnNHRBQUFpQ3lBTkxRQUNJZ3BySWhJZ0VrRWZkU0lTYWlBU2N5QU1UdzBBSUFNb0FnZ2lFaUFHSUJ0cUxRQUFJaE1nQzJzaUZDQVVRUjkxSWhScUlCUnpUUTBBSUJJZ0JpQWRhaTBBQUNJVUlBcHJJaFlnRmtFZmRTSVdhaUFXYzAwTkFDQU9JQXNnQkNBSklBb2dDMnRCQW5RZ0ZHc2dFMnBCQkdwQkEzVWlEQ0FKSUF4SUd5QUVJQXhLR3lJTWFrR3dMbW90QUFBNkFBQWdCaUFLSUF4clFiQXVhaTBBQURvQUFDQUJLQUlFSVF3TElBd2dEVUVEYWlJQklCRnFJZ290QUFBaUJpQU5MUUFESWd0cklnNGdEa0VmZFNJT2FpQU9jMDBOQUNBREtBSUlJZ01nQVNBYmFpMEFBQ0lNSUFacklnNGdEa0VmZFNJT2FpQU9jMDBOQUNBRElBRWdIV290QUFBaURpQUxheUlTSUJKQkgzVWlFbW9nRW5OTkRRQWdDaUFFSUFrZ0N5QUdhMEVDZENBT2F5QU1ha0VFYWtFRGRTSURJQU1nQ1VvYklBTWdCRWdiSWdNZ0JtcEJzQzVxTFFBQU9nQUFJQUVnQ3lBRGEwR3dMbW90QUFBNkFBQUxBa0FnQnlnQ0VDSUVSUTBBSUFnZ0VFRU1iR29pQVNFRElBUWdBU2dDQUdwQkFXc3RBQUFpQ1VGL2N5RUVJQWxCQVdvaENRSkFJQUVvQWdRaURDQUNRUVJxSWdZZ0VXb2lEaTBBQUNJTElBSXRBQVFpQ21zaUVpQVNRUjkxSWhKcUlCSnpUUTBBSUFNb0FnZ2lFaUFHSUJ0cUxRQUFJaE1nQzJzaUZDQVVRUjkxSWhScUlCUnpUUTBBSUJJZ0JpQWRhaTBBQUNJVUlBcHJJaFlnRmtFZmRTSVdhaUFXYzAwTkFDQU9JQXNnQkNBSklBb2dDMnRCQW5RZ0ZHc2dFMnBCQkdwQkEzVWlEQ0FKSUF4SUd5QUVJQXhLR3lJTWFrR3dMbW90QUFBNkFBQWdCaUFLSUF4clFiQXVhaTBBQURvQUFDQUJLQUlFSVF3TEFrQWdBa0VGYWlJR0lCRnFJZzR0QUFBaUN5QUNMUUFGSWdwckloSWdFa0VmZFNJU2FpQVNjeUFNVHcwQUlBTW9BZ2dpRWlBR0lCdHFMUUFBSWhNZ0Myc2lGQ0FVUVI5MUloUnFJQlJ6VFEwQUlCSWdCaUFkYWkwQUFDSVVJQXBySWhZZ0ZrRWZkU0lXYWlBV2MwME5BQ0FPSUFzZ0JDQUpJQW9nQzJ0QkFuUWdGR3NnRTJwQkJHcEJBM1VpRENBSklBeElHeUFFSUF4S0d5SUVha0d3TG1vdEFBQTZBQUFnQmlBS0lBUnJRYkF1YWkwQUFEb0FBQ0FCS0FJRUlRd0xJQWNvQWhBZ0FTZ0NBR3BCQVdzdEFBQWlDVUYvY3lFRUlBbEJBV29oQ1FKQUlBMUJCR29pQmlBUmFpSU9MUUFBSWdzZ0RTMEFCQ0lLYXlJU0lCSkJIM1VpRW1vZ0VuTWdERThOQUNBREtBSUlJaElnQmlBYmFpMEFBQ0lUSUF0ckloUWdGRUVmZFNJVWFpQVVjMDBOQUNBU0lBWWdIV290QUFBaUZDQUtheUlXSUJaQkgzVWlGbW9nRm5OTkRRQWdEaUFMSUFRZ0NTQUtJQXRyUVFKMElCUnJJQk5xUVFScVFRTjFJZ3dnQ1NBTVNCc2dCQ0FNU2hzaURHcEJzQzVxTFFBQU9nQUFJQVlnQ2lBTWEwR3dMbW90QUFBNkFBQWdBU2dDQkNFTUN5QU1JQTFCQldvaUFTQVJhaUlLTFFBQUlnWWdEUzBBQlNJTGF5SU9JQTVCSDNVaURtb2dEbk5ORFFBZ0F5Z0NDQ0lESUFFZ0cyb3RBQUFpRENBR2F5SU9JQTVCSDNVaURtb2dEbk5ORFFBZ0F5QUJJQjFxTFFBQUlnNGdDMnNpRWlBU1FSOTFJaEpxSUJKelRRMEFJQW9nQkNBSklBc2dCbXRCQW5RZ0Rtc2dER3BCQkdwQkEzVWlBeUFESUFsS0d5QURJQVJJR3lJRElBWnFRYkF1YWkwQUFEb0FBQ0FCSUFzZ0EydEJzQzVxTFFBQU9nQUFDeUFIS0FJWUlnUkZEUUFnQ0NBUVFReHNhaUlCSVFNZ0JDQUJLQUlBYWtFQmF5MEFBQ0lKUVg5eklRUWdDVUVCYWlFSkFrQWdBU2dDQkNJUUlBSkJCbW9pQmlBUmFpSU1MUUFBSWdzZ0FpMEFCaUlLYXlJT0lBNUJIM1VpRG1vZ0RuTk5EUUFnQXlnQ0NDSU9JQVlnRzJvdEFBQWlFaUFMYXlJVElCTkJIM1VpRTJvZ0UzTk5EUUFnRGlBR0lCMXFMUUFBSWhNZ0Ntc2lGQ0FVUVI5MUloUnFJQlJ6VFEwQUlBd2dDeUFFSUFrZ0NpQUxhMEVDZENBVGF5QVNha0VFYWtFRGRTSVFJQWtnRUVnYklBUWdFRW9iSWhCcVFiQXVhaTBBQURvQUFDQUdJQW9nRUd0QnNDNXFMUUFBT2dBQUlBRW9BZ1FoRUFzQ1FDQUNRUWRxSWdZZ0VXb2lEQzBBQUNJTElBSXRBQWNpQ21zaURpQU9RUjkxSWc1cUlBNXpJQkJQRFFBZ0F5Z0NDQ0lPSUFZZ0cyb3RBQUFpRWlBTGF5SVRJQk5CSDNVaUUyb2dFM05ORFFBZ0RpQUdJQjFxTFFBQUloTWdDbXNpRkNBVVFSOTFJaFJxSUJSelRRMEFJQXdnQ3lBRUlBa2dDaUFMYTBFQ2RDQVRheUFTYWtFRWFrRURkU0lRSUFrZ0VFZ2JJQVFnRUVvYklnUnFRYkF1YWkwQUFEb0FBQ0FHSUFvZ0JHdEJzQzVxTFFBQU9nQUFJQUVvQWdRaEVBc2dCeWdDR0NBQktBSUFha0VCYXkwQUFDSUpRWDl6SVFRZ0NVRUJhaUVKQWtBZ0RVRUdhaUlHSUJGcUlnd3RBQUFpQ3lBTkxRQUdJZ3BySWc0Z0RrRWZkU0lPYWlBT2N5QVFUdzBBSUFNb0FnZ2lEaUFHSUJ0cUxRQUFJaElnQzJzaUV5QVRRUjkxSWhOcUlCTnpUUTBBSUE0Z0JpQWRhaTBBQUNJVElBcHJJaFFnRkVFZmRTSVVhaUFVYzAwTkFDQU1JQXNnQkNBSklBb2dDMnRCQW5RZ0Uyc2dFbXBCQkdwQkEzVWlFQ0FKSUJCSUd5QUVJQkJLR3lJUWFrR3dMbW90QUFBNkFBQWdCaUFLSUJCclFiQXVhaTBBQURvQUFDQUJLQUlFSVJBTElCQWdEVUVIYWlJQklCRnFJZ290QUFBaUJpQU5MUUFISWd0cklnd2dERUVmZFNJTWFpQU1jMDBOQUNBREtBSUlJZ01nQVNBYmFpMEFBQ0lRSUFacklnd2dERUVmZFNJTWFpQU1jMDBOQUNBRElBRWdIV290QUFBaURDQUxheUlPSUE1QkgzVWlEbW9nRG5OTkRRQWdDaUFFSUFrZ0N5QUdhMEVDZENBTWF5QVFha0VFYWtFRGRTSURJQU1nQ1VvYklBTWdCRWdiSWdNZ0JtcEJzQzVxTFFBQU9nQUFJQUVnQ3lBRGEwR3dMbW90QUFBNkFBQUxJQTBnSW1vaERTQUNJQ0pxSVFJZ0IwRkFheUVISUE5QkFYRWhBVUVBSVE5QkFpRVFJQUVOQUFzTFFRQWdKa0VCYWlJQklBRWdLRVlpQVJzaEppQUZRZGdCYWlFRklBRWdNR29pTUNBbEtBSUlTUTBBQ3dzZ0NFR3dBV29rQUNBQVFnQTNBcWdKQWtBZ0FDZ0NtQWtpQTBVTkFDQURRUU54SVFRZ0FDZ0N2QWtoQWtFQUlRRWdBMEVCYTBFRFR3UkFJQU5CZkhFaEF3TkFJQUlnQVVIWUFXeHFJZ2xCQURZQ3hBRWdDVUVBTmdJRUlBSWdBVUVCY2tIWUFXeHFJZ2xCQURZQ3hBRWdDVUVBTmdJRUlBSWdBVUVDY2tIWUFXeHFJZ2xCQURZQ3hBRWdDVUVBTmdJRUlBSWdBVUVEY2tIWUFXeHFJZ2xCQURZQ3hBRWdDVUVBTmdJRUlBRkJCR29oQVNBRFFRUnJJZ01OQUFzTElBUkZEUUFEUUNBQ0lBRkIyQUZzYWlJRFFRQTJBc1FCSUFOQkFEWUNCQ0FCUVFGcUlRRWdCRUVCYXlJRURRQUxDd0ovSUFCQmhBcHFJUUlnQUNnQ0VDRUZJQUJCMEFwcUlRaEJBQ0VCUVFBaEJFRUFJUWxCQUNFRFFRQWhCMEVBSVF3Q1FBSkFJQUJCMkFwcUlnWW9BcHdDUlEwQUEwQUNRQ0FHSUFGQkZHeHFLQUtnQWc0R0FnQUFBQUFEQUFzZ0FVRUJhaUVCREFBTEFBdEJBU0VEQ3dKL0FrQUNRQUpBQWtBZ0JTZ0NFQTRDQUFFQ0N5QUlLQUlBUVFWR0JFQWdBa0lBTndJQUlBWW9BaFFoQVF3REN5QUNLQUlBSWdRZ0JpZ0NGQ0lCVFEwQ0lBUWdBV3NnQlNnQ0ZDSUpRUUYyU1EwQ0lBSW9BZ1FnQ1dvTUF3c0NmMEVBSUFnb0FnQkJCVVlOQUJvZ0FpZ0NEQ0lCSUFJb0FnZ2dCaWdDREUwTkFCb2dCU2dDRENBQmFnc2hDd0ovSUFVb0FpUWlBUVJBSUFZb0Fnd2dDMm9oQ1FzZ0NTQUlLQUlFSWhCRklBbEJBRWR4YXlJS0N3UkFJQXBCQVdzaUNTQUpJQUZ1SWd3Z0FXeHJJUWNMQWtBZ0FVVU5BQ0FCUVFOeElRa2dCU2dDS0NFSUFrQWdBVUVCYTBFRFNRUkFRUUFoQVF3QkN5QUJRWHh4SVE5QkFDRUJBMEFnQ0NBQlFRSjBJZzFCREhKcUtBSUFJQWdnRFVFSWNtb29BZ0FnQ0NBTlFRUnlhaWdDQUNBSUlBMXFLQUlBSUFScWFtcHFJUVFnQVVFRWFpRUJJQTlCQkdzaUR3MEFDd3NnQ1VVTkFBTkFJQWdnQVVFQ2RHb29BZ0FnQkdvaEJDQUJRUUZxSVFFZ0NVRUJheUlKRFFBTEN3SkFJQXBGQkVCQkFDRUVEQUVMSUFRZ0RHd2hCQ0FGS0FJb0lRbEJBQ0VCQTBBZ0NTQUJRUUowYWlnQ0FDQUVhaUVFSUFGQkFXb2lBU0FIVFEwQUN3c2dFRVVFUUNBRktBSWNJQVJxSVFRTElBTUVRQ0FHS0FJZ0lRRWdCU2dDSUNFRElBWW9BaHdoQ1NBQ0lBczJBZ3dnQWlBR0tBSU1OZ0lJSUFrZ0FTQURhaUlCUVI5MUlBRnhJQVJxYWd3RUN5QUNRZ0EzQWdoQkFBd0RDMEVBSVFFZ0NDZ0NBRUVGUndSQUlBSW9BZ3doQVNBR0tBSU1JZ1FnQWlnQ0NFa0VRQ0FGS0FJTUlBRnFJUUVMSUFFZ0JHcEJBWFFnQ0NnQ0JFVnJJUVFMSUFNRVFDQUNJQUUyQWd3Z0FpQUdLQUlNTmdJSUlBUU1Bd3NnQWtJQU53SUlRUUFNQWdzQ1FDQUJJQVJORFFBZ0FTQUVheUFGS0FJVUlnUkJBWFpORFFBZ0FpZ0NCQ0FFYXd3QkN5QUNLQUlFQ3lFSklBZ29BZ1JGQkVBZ0FTQUphaUFHS0FJWUlnRkJIM1VnQVhGcURBRUxJQUlnQ1RZQ0JDQUdLQUlZSVFRZ0EwVUVRQ0FDUVFBMkFnUWdBa0VBSUFScklBUkJIM1Z4TmdJQVFRQU1BUXNnQWlBQk5nSUFJQUVnQ1dvZ0JFRWZkU0FFY1dvTElRRUNRQ0FBS0FLa0NVVU5BQ0FBUWNRSmFpRUNJQUJCMUFwcUtBSUFCRUFnQWlBQVFld01haUF5SUFCQjVBcHFLQUlBSUFFZ0FDZ0MwQXBCQlVZZ0FDZ0N1QWtnQUNnQ3RBa1FLQXdCQ3lBQ1FRQWdNaUFBUWVRS2FpZ0NBQ0FCSUFBb0F0QUtRUVZHSUFBb0FyZ0pJQUFvQXJRSkVDZ0xJQUJDQURjQ29BbEJBU0VpQ3lBWVFaQUJhaVFBSUNJTFNRRUJmeUFBUVFCQnhCb1FCQ0lDUWJRS2FrRUJOZ0lBSUFKQ2dJS0FnSUFFTndJRUlBQkJ3QkFRQ2lJQ05nS3dHaUFDUlFSQVFRRVBDeUFCQkVBZ0FFRUJOZ0xBQ1F0QkFBc0dBQ0FBRUFVTEJ3QkJ4Qm9RQ2d1VUFRQUNRQ0FBS0FJUUlnQkZEUUFnQUNnQ1BFVU5BQ0FCUVFFMkFnQWdBaUFBS0FKQVFRRjBOZ0lBSUFNZ0FDZ0NORUVFZENBQUtBSkVJQUFvQWtCcVFRRjBhellDQUNBRUlBQW9Ba2hCQVhRMkFnQWdCU0FBS0FJNFFRUjBJQUFvQWt3Z0FDZ0NTR3BCQVhSck5nSUFEd3NnQVVFQU5nSUFJQUpCQURZQ0FDQURRUUEyQWdBZ0JFRUFOZ0lBSUFWQkFEWUNBQXNWQUNBQUtBSVFJZ0JGQkVCQkFBOExJQUFvQWpnTEZRQWdBQ2dDRUNJQVJRUkFRUUFQQ3lBQUtBSTBDNU1FQVFwL0lBQW9BaEFpQkFSQUlBUW9BalFpQjBFR2RDRU1JQVFvQWpoQkJIUWhDeUFIUVFSMElRY0xBa0FnQUVIRUNXb2lDQ2dDRkNJRUlBZ29BaEJKQkg4Z0NDQUVRUUZxTmdJVUlBZ29BZ3dnQkVFRWRHb0ZRUUFMSWdSRkRRQWdBU0FFS0FJRU5nSUFJQUlnQkNnQ0REWUNBQ0FESUFRb0FnZzJBZ0FnQkNnQ0FDSUNSUTBBSUFBb0Fyd2FJUUVnQ3lBTWJDSURJQUFvQXNBYVN3UkFJQUVFUUNBQkVBVUxJQUFnQXpZQ3dCb2dBQ0FERUFvaUFUWUN2Qm9MSUFkQkFtMGhBd0pBSUF0QkFVZ05BRUVBSUFOcklRZ2dBaUFISUF0c2FpSUZJQU1nQzJ4QkFtMXFJUVpCQVNFSkEwQWdBVUVBUWY4QklBSXRBQUJCcWdKc1FhQWxheUlFSUFVdEFBQkJnQUZySWdwQm5IOXNhaUFHTFFBQVFZQUJheUlEUWJCK2JHb2lERUdBQVdwQkNIWWdERUgvL2dOS0d5QU1RWUIvU0J0QmdJRDhCMEdBL3Y4SElBcEJoQVJzSUFScUlncEJnSUg4QjJwQmdQNy9CM0VnQ2tILy9nTktHeUFLUVlCL1NCdHFRUWgwUVFCQi93RWdBMEdaQTJ3Z0JHb2lBMEdBQVdwQkNIVWdBMEgvL2dOS0d5QURRWUIvU0J0cU5nSUFJQVVnQlVFQmFpQUpRUUZ4SWdNYklRVWdCaUFHUVFGcUlBTWJJUVlnQnlBSlRBUkFJQVVnQ0dvZ0JTQU5RUUZxSWcxQkFYRWlBeHNoQlNBR0lBaHFJQVlnQXhzaEJrRUFJUWtMSUFzZ0RVd05BU0FDUVFGcUlRSWdBVUVFYWlFQklBbEJBV29oQ1F3QUN3QUxJQUFvQXJ3YUlRb0xJQW9MQy9jeUdnQkJoZ2dMeWdWbUlDWVFCZ2hsR0dVWVF4QkRFRU1RUXhCREVFTVFReEJERUNJSUlnZ2lDQ0lJSWdnaUNDSUlJZ2dpQ0NJSUlnZ2lDQ0lJSWdnaUNDSUlBQUFBQUFBQUFBQnFRRW93S2lnS0lHazRhVGhKS0Vrb0tTQXBJQWtZQ1Job01HZ3dhREJvTUVnZ1NDQklJRWdnS0Jnb0dDZ1lLQmdJRUFnUUNCQUlFR2NvWnlobktHY29aeWhuS0djb1p5aEhHRWNZUnhoSEdFY1lSeGhIR0VjWWJtQk9XQzVRRGxCdVdFNVFMa2dPU0ExQURVQk5TRTFJTFVBdFFBMDREVGh0VUcxUVRVQk5RQzA0TFRnTk1BMHdhMGhyU0d0SWEwaHJTR3RJYTBoclNFczRTemhMT0VzNFN6aExPRXM0U3pnck1Dc3dLekFyTUNzd0t6QXJNQ3N3Q3lnTEtBc29DeWdMS0Fzb0N5Z0xLQUFBQUFBdmFDOW9FSUJRZ0RDQUVIaHdnRkI0TUhnUWNIQjRVSEF3Y0JCb2IzQnZjRTlvVDJndllDOWdEMkFQWUc5b2IyaFBZRTlnTDFndldBOVlEMWdBQUFBQUFBQUFBR1k0UmlBbUlBWVFaakJHR0NZWUJnaGxLR1VvSlJBbEVHUWdaQ0JrSUdRZ1pCaGtHR1FZWkJoREVFTVFReEJERUVNUVF4QkRFRU1RQUFBQUFBQUFBQUJwU0VrNEtUZ0pNQWdvQ0NoSU1FZ3dLREFvTUFnZ0NDQm5RR2RBWjBCblFFY29SeWhIS0Vjb0p5Z25LQ2NvSnlnSEdBY1lCeGdIR0FBQUFBQnRlRzE0Ym9CT2dDNkFEb0F1ZUE1NFRuZ3VjRTF3VFhBTmNBMXdiWEJ0Y0Uxb1RXZ3RhQzFvRFdnTmFHMW9iV2hOWUUxZ0xXQXRZQTFnRFdBTVdBeFlERmdNV0V4WVRGaE1XRXhZTEZnc1dDeFlMRmdNVUF4UURGQU1VR3hnYkdCc1lHeGdURkJNVUV4UVRGQXNVQ3hRTEZBc1VBeElERWdNU0F4SWExaHJXR3RZYTFocldHdFlhMWhyV0V0SVMwaExTRXRJUzBoTFNFdElTMGdyU0N0SUswZ3JTQ3RJSzBnclNDdElDMEFMUUF0QUMwQUxRQXRBQzBBTFFHdFFhMUJyVUd0UWExQnJVR3RRYTFCTFFFdEFTMEJMUUV0QVMwQkxRRXRBSzBBclFDdEFLMEFyUUN0QUswQXJRQXM0Q3pnTE9BczRDemdMT0FzNEN6Z0FRZUFOQzY0SkJoaEdPQ1k0QmhCbVNFWXdKakFHQ0NVb0pTaEZLRVVvSlNBbElFVWdSU0FsR0NVWVpVQmxRRVVZUlJnbEVDVVFaRGhrT0dRNFpEaGtNR1F3WkRCa01HUW9aQ2hrS0dRb1pDQmtJR1FnWkNCa0dHUVlaQmhrR0VRUVJCQkVFRVFRSkFna0NDUUlKQWdFQUFRQUJBQUVBQUFBQ29CcWdFcUFLb0FLZUdwNFNuZ3FlQXB3YW5CS2NDcHdDbWdwYUNsb0NXQUpZRWxvU1dncFlDbGdDVmdKV0dsb2FXaEpZRWxnS1ZncFdBbFFDVkJvWUdoZ2FHQm9ZRWhZU0ZoSVdFaFlLRkFvVUNoUUtGQUlTQWhJQ0VnSVNHaFlhRmhvV0doWVNGQklVRWhRU0ZBb1NDaElLRWdvU0FoQUNFQUlRQWhBQnpnSE9BYzRCemdIT0FjNEJ6Z0hPQWN3QnpBSE1BY3dCekFITUFjd0J6QkhTRWRJUjBoSFNFZElSMGhIU0VkSUJ5Z0hLQWNvQnlnSEtBY29CeWdIS0dkUVoxQm5VR2RRWjFCblVHZFFaMUJIUUVkQVIwQkhRRWRBUjBCSFFFZEFKMEFuUUNkQUowQW5RQ2RBSjBBblFBY2dCeUFISUFjZ0J5QUhJQWNnQnlBR0NDWUlBQUFHQUFZUUpoQkdFQUFBQmhnbUdFWVlaaGdHSUNZZ1JpQm1JQVlvSmloR0tHWW9CakFtTUVZd1pqQUdPQ1k0UmpobU9BWkFKa0JHUUdaQUJrZ21TRVpJWmtnR1VDWlFSbEJtVUFaWUpsaEdXR1pZQm1BbVlFWmdabUFHYUNab1JtaG1hQVp3Sm5CR2NHWndCbmdtZUVaNFpuZ0dnQ2FBUm9CbWdBQUFReEFDQUFJQUlRZ2hDQ0VJSVFobklHY2dTQ0FvSUVjWVJ4Z25HQ2NZQmlBR0lBWWdCaUFHR0FZWUJoZ0dHQVlRQmhBR0VBWVFaaGhtR0dZWVpoZ21FQ1lRSmhBbUVBWUlCZ2dHQ0FZSUFBQmxWVVJFTkRRakl5TWpFeE1URXdFQkFRRUJBUUVCQVFFQkFRRUJBUUVBK2VuWnlNaTR1S2VucDZlWGw1ZVhob2FHaG9hR2hvWjJkbloyZG5aMmR1Yld4cmFscFpXVmhJU0VoSFIwZEhSa1pHUmtWRlJVVkVORFEwTkRRME5ETXpNek16TXpNek1qSXlNakl5TWpJeE1URXhNVEV4TVRBd01EQXdNREF3UFd0c1hGcGFXVmxZU0VoSVJVVkZSVVJFUkVSQVFFQkFSemMzTnpjM056YzJOalkyTmpZMk5qTXpNek16TXpNek1qSXlNakl5TWpJeE1URXhNVEV4TVR4YldsQlpTVWRIUTBOQ1FrZzRPRGcyTmpZMk5UVTFOVFEwTkRReE1URXhPMWxhU2toSVFrSkJRVUJBUnpjM056WTJOalkxTlRVMU5EUTBORE16TXpNNllHRlJXRWhJU0VrNU9UazVPVGs1TnpjM056YzNOemMyTmpZMk5qWTJOalUxTlRVMU5UVTFORFEwTkRRME5EUXpNek16TXpNek16SXlNakl5TWpJeU9XQmhVVmRIUjBkSU9EZzRPRGc0T0RZMk5qWTJOalkyTkRRME5EUTBORFF6TXpNek16TXpNekl5TWpJeU1qSXlOU1VsSlNVbEpTVWxKU1VsSlNVbEpTaGdZbEpSUVVGQlJ6YzNOemMzTnpjMk5qWTJOalkyTmpNek16TXpNek16TlNVbEpTVWxKU1VsSlNVbEpTVWxKU1FrSkNRa0pDUWtKQ1FrSkNRa0pDUWhZR2RYVWtKQ1FrVTFOVFUxTlRVMU5pWW1KaVltSmlZbUppWW1KaVltSmlRa0pDUWtKQ1FrSkNRa0pDUWtKQ1FqSXlNakl5TWpJeU1qSXlNakl5TWpJVkJXUmtJeU1qSTFKU1VsSlNVbEpTUWtKQ1FrSkNRa0l5TWpJeU1qSXlNZ1FVSXlNek0xTlRRVUZCUVVGQlFVRUVGRU5ESWlJaUlqRXhNVEV4TVRFeEF4TXlNaUVoSVNFQ0VpRWhFUUVpRWdFQk1pSVNBa016SWlJU0VnSUNVME16SXhJU0FnSVRJME16WTFNQ0FnQkJvQmNMSkFRRUJRWUhDQWtLREEwUEVSUVdHUndnSkNndE1qZy9SMUJhWlhGL2tLSzJ5K0wvL3dCQjRCY0xKQUlDQWdNREF3TUVCQVFHQmdjSENBZ0pDUW9LQ3dzTURBME5EZzRQRHhBUUVSRVNFZ0JCeFJnTGhBRUJBQUFCQUFBQkFBQUJBQUVCQUFFQkFRRUJBUUVCQVFFQkFRRUJBUUVDQVFFQ0FRRUNBUUVDQVFJREFRSURBZ0lEQWdJRUFnTUVBZ01FQXdNRkF3UUdBd1FHQkFVSEJBVUlCQVlKQlFjS0JnZ0xCZ2dOQndvT0NBc1FDUXdTQ2cwVUN3OFhEUkVaQUFBQUFBQUFBQUFGQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QVFkUVpDeFVGQUFBQUFBQUFBQWNBQUFEL0FBQUFBQUFBQVA4QVFmUVpDeFVGQUFBQUJBQUFBQUFBQUFEL0FBQUFBQUFBQVA4QVFaUWFDd1VGQUFBQUJBQkJwQm9McFFFSEFBQUFCQUFBQUFJQUFBQUVBQUFBQVFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFRQUFBQUJBQUFBQkFBQUFBTUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFFQUFBQUVBQUFBQkFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBRUFBQUFBUUFBQUFRQUFBQUVBQUFBQkFBQUFBTUFBQUFFQUFBQUJnQUFBQUFBQUFBTkFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFQOEFRZFFiQ3hVTkFBQUFBQUFBQUE4QUFBRC9BQUFBQUFBQUFQOEFRZlFiQ3hVTkFBQUFCQUFBQUFnQUFBRC9BQUFBQUFBQUFQOEFRWlFjQzdVTERRQUFBQVFBQUFBSUFBQUFBQUFBQUE4QUFBQUVBQUFBQ2dBQUFBUUFBQUFKQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBa0FBQUFFQUFBQUN3QUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUVBQUFBQ1FBQUFBUUFBQUFNQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFRQUFBQUpBQUFBQkFBQUFBd0FBQUFFQUFBQUN3QUFBQVFBQUFBT0FBQUFBUUFBQUFvQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFDZ0FBQUFRQUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQUVBQUFBS0FBQUFBUUFBQUFzQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUFRQUFBQW9BQUFBQkFBQUFDd0FBQUFRQUFBQUFBQUFBQkFBQUFBRUFBQUFCQUFBQURnQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBRUFBQUFPQUFBQUJBQUFBQVFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBNEFBQUFCQUFBQUR3QUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBRGdBQUFBRUFBQUFQQUFBQUJBQUFBQVFBQUFBRUFBQUFCUUFBQUFRQUFBQUNBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFJQUFBQUVBQUFBQ0FBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBRUFBQUFBZ0FBQUFRQUFBQURBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBQ0FBQUFCQUFBQUFNQUFBQUVBQUFBQ0FBQUFBUUFBQUFKQUFBQUJBQUFBQVlBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUJnQUFBQVFBQUFBTUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFHQUFBQUJBQUFBQWNBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBWUFBQUFFQUFBQUJ3QUFBQVFBQUFBTUFBQUFCQUFBQUEwQUFBQUJBQUFBRGdBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQU9BQUFBL3dBQUFBUUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFBUUFBQUFzQUFBQUJBQUFBRGdBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFDd0FBQUFFQUFBQU9BQUFBQkFBQUFBRUFBQUQvQUFBQUJBQUFBQUlBQUFBS0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUFnQUFBQW9BQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFCQUFBQUR3QUFBQUlBQUFBS0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBRUFBQUFQQUFBQUFnQUFBQW9BQUFBRUFBQUFCUUFBQVA4QUFBQUFBQUFBQkFBQUFBWUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUVBQUFBQmdBQUFQOEFBQUFNQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFRQUFBQURBQUFBQkFBQUFBWUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFNQUFBQUVBQUFBQmdBQUFBUUFBQUFKQUFBQS93QUFBQXdBQUFEL0FBQUFBZ0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQ0FBQUEvd0FBQUFnQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQWNBQUFEL0FBQUFBZ0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUJ3QUFBUDhBQUFBQ0FBQUFCQUFBQUEwQUFBRC9BQUFBQ0FBQUFBTUFBQUFQQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQXdBQUFBOEFBQUFBQUFBQUJRQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQURBQUFBRHdBQUFBRUFBQUFLQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFNQUFBQVBBQUFBQVFBQUFBb0FBQUFBQUFBQUJRQUFBQVFBQUFBQUFBQUFBUUFBQUFzQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFDd0FBQUFRQUFBQUJBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQUVBQUFBTEFBQUFBUUFBQUE0QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUFRQUFBQXNBQUFBQkFBQUFEZ0FBQUFRQUFBQUJBQUFBQkFBQUFBUUFBQUFBQUFBQUJ3QUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BRUhVSndzVkJ3QUFBQUFBQUFBTkFBQUEvd0FBQUFBQUFBRC9BRUgwSndzVkJ3QUFBQVFBQUFBQ0FBQUEvd0FBQUFBQUFBRC9BRUdVS0F2WkFRY0FBQUFFQUFBQUFnQUFBQUFBQUFBTkFBQUFCQUFBQUFnQUFBQUVBQUFBQXdBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFRQUFBQURBQUFBQkFBQUFBa0FBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFNQUFBQUVBQUFBQmdBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBRUFBQUFBd0FBQUFRQUFBQUdBQUFBQkFBQUFBa0FBQUFFQUFBQURBQUFBQUFBQUFBRUFBQUFBQUFBQUFRQUFBQUlBQUFBREFBQUFBZ0FBQUFNQUFBQUFBQUFBQVFBQUFBQUFBQUFCQUFBQUFnQUFBQU1BQUFBQ0FBQUFBd0FRZmdwQ3dVRUFBQUFCQUJCaUNvTEpRUUFBQUFFQUFBQUNBQUFBQWdBQUFBTUFBQUFEQUFBQUFnQUFBQUlBQUFBREFBQUFBd0FRYkV1QzhnR0FRSURCQVVHQndnSkNnc01EUTRQRUJFU0V4UVZGaGNZR1JvYkhCMGVIeUFoSWlNa0pTWW5LQ2txS3l3dExpOHdNVEl6TkRVMk56ZzVPanM4UFQ0L1FFRkNRMFJGUmtkSVNVcExURTFPVDFCUlVsTlVWVlpYV0ZsYVcxeGRYbDlnWVdKalpHVm1aMmhwYW10c2JXNXZjSEZ5YzNSMWRuZDRlWHA3ZkgxK2Y0Q0Jnb09FaFlhSGlJbUtpNHlOam8rUWtaS1RsSldXbDVpWm1wdWNuWjZmb0tHaW82U2xwcWVvcWFxcnJLMnVyN0N4c3JPMHRiYTN1TG02dTd5OXZyL0F3Y0xEeE1YR3g4akp5c3ZNemM3UDBOSFMwOVRWMXRmWTJkcmIzTjNlMytEaDR1UGs1ZWJuNk9ucTYrenQ3dS93OGZMejlQWDI5L2o1K3Z2OC9mNy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vOEFBQUFBQVFBQUFBUUFBQUFGQUFBQUFnQUFBQU1BQUFBR0FBQUFCd0FBQUFnQUFBQUpBQUFBREFBQUFBMEFBQUFLQUFBQUN3QUFBQTRBQUFBUEFBQUFBQUFBQUFFQUFBQUJBRUdFTlFzaEFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQVFBQUFBSUFBQUFDQUVHME5Rc0ZCUUFBQUFRQVFjUTFDOGtHQndBQUFBUUFBQUFDQUFBQUJBQUFBQUVBQUFBRUFBQUFCQUFBQUFRQUFBQURBQUFBQkFBQUFBWUFBQUFBQUFBQURRQUFBQVFBQUFBSUFBQUFBQUFBQUE4QUFBQUVBQUFBQ2dBQUFBUUFBQUFKQUFBQUJBQUFBQXdBQUFBRUFBQUFDd0FBQUFRQUFBQU9BQUFBQUFBQUFCRUFBQUFFQUFBQUVBQUFBQUFBQUFBVEFBQUFCQUFBQUJJQUFBQUFBQUFBRlFBQUFBUUFBQUFVQUFBQUFBQUFBQmNBQUFBRUFBQUFGZ0FBQUFFQUFBQUtBQUFBQVFBQUFBc0FBQUFFQUFBQUFBQUFBQVFBQUFBQkFBQUFBUUFBQUE0QUFBQUJBQUFBRHdBQUFBUUFBQUFFQUFBQUJBQUFBQVVBQUFBRUFBQUFBZ0FBQUFRQUFBQURBQUFBQkFBQUFBZ0FBQUFFQUFBQUNRQUFBQVFBQUFBR0FBQUFCQUFBQUFjQUFBQUVBQUFBREFBQUFBUUFBQUFOQUFBQUFRQUFBQklBQUFBQkFBQUFFd0FBQUFRQUFBQVFBQUFBQkFBQUFCRUFBQUFCQUFBQUZnQUFBQUVBQUFBWEFBQUFCQUFBQUJRQUFBQUVBQUFBRlFBQUFBRUFBQUFMQUFBQUFRQUFBQTRBQUFBRUFBQUFBUUFBQVA4QUFBQUVBQUFBQVFBQUFBOEFBQUFDQUFBQUNnQUFBQVFBQUFBRkFBQUEvd0FBQUFBQUFBQUVBQUFBQXdBQUFBUUFBQUFHQUFBQUJBQUFBQWtBQUFEL0FBQUFEQUFBQUFRQUFBQUhBQUFBL3dBQUFBSUFBQUFFQUFBQURRQUFBUDhBQUFBSUFBQUFBUUFBQUJNQUFBQUNBQUFBRWdBQUFBUUFBQUFSQUFBQS93QUFBQkFBQUFBQkFBQUFGd0FBQUFJQUFBQVdBQUFBQkFBQUFCVUFBQUQvQUFBQUZBQUFBQU1BQUFBUEFBQUFBUUFBQUFvQUFBQUFBQUFBQlFBQUFBUUFBQUFBQUFBQUFRQUFBQXNBQUFBQkFBQUFEZ0FBQUFRQUFBQUJBQUFBQkFBQUFBUUFBQUFBQUFBQUJ3QUFBQVFBQUFBQ0FBQUFBQUFBQUEwQUFBQUVBQUFBQ0FBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFBRUFBQUFDUUFBQUFRQUFBQU1BQUFBQXdBQUFCTUFBQUFCQUFBQUVnQUFBQUFBQUFBUkFBQUFCQUFBQUJBQUFBQURBQUFBRndBQUFBRUFBQUFXQUFBQUFBQUFBQlVBQUFBRUFBQUFGQUFBQUFFQUFBQUJBQUFBQWdBQUFBSUFBQUFEQUFBQUF3QUFBQU1BQUFBREFBQUFBQUFBQUFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QkJsandMTGdFQkFRRUJBUUlDQWdJQ0FnTURBd01EQXdRRUJBUUVCQVVGQlFVRkJRWUdCZ1lHQmdjSEJ3Y0hCd2dJQ0FnQVFkQThDMFVLQUFBQURRQUFBQkFBQUFBTEFBQUFEZ0FBQUJJQUFBQU5BQUFBRUFBQUFCUUFBQUFPQUFBQUVnQUFBQmNBQUFBUUFBQUFGQUFBQUJrQUFBQVNBQUFBRndBQUFCMEFRYUU5Q3pNQkFnTUVCUUFCQWdNRUJRQUJBZ01FQlFBQkFnTUVCUUFCQWdNRUJRQUJBZ01FQlFBQkFnTUVCUUFCQWdNRUJRQUJBZ01BUWVROUM4d0NBUUFBQUFJQUFBQURBQUFBQkFBQUFBVUFBQUFHQUFBQUJ3QUFBQWdBQUFBSkFBQUFDZ0FBQUFzQUFBQU1BQUFBRFFBQUFBNEFBQUFQQUFBQUVBQUFBQkVBQUFBU0FBQUFFd0FBQUJRQUFBQVZBQUFBRmdBQUFCY0FBQUFZQUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWRBQUFBSGdBQUFCOEFBQUFnQUFBQUlBQUFBQ0VBQUFBaUFBQUFJZ0FBQUNNQUFBQWpBQUFBSkFBQUFDUUFBQUFsQUFBQUpRQUFBQ1VBQUFBbUFBQUFKZ0FBQUNZQUFBQW5BQUFBSndBQUFDY0FBQUFuQUFBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUJBQUFBQWdBQUFBUUFBQUFJQUFBQUF2SHc4QUZ4c2RIZ2NMRFE0bkt5MHVFQU1GQ2d3VEZSb2NJeVVxTEFFQ0JBZ1JFaFFZQmdrV0dTQWhJaVFvSmlrQUVBRUNCQWdnQXdVS0RBOHZCd3NORGdZSkh5TWxLaXdoSWlRb0p5c3RMaEVTRkJnVEZSb2NGeHNkSGhZWkppa0FRYkRBQUFzRE1DSlEiO2lmKCFNLnN0YXJ0c1dpdGgoeCkpe3ZhciBEQT1NO009QS5sb2NhdGVGaWxlP0EubG9jYXRlRmlsZShEQSxzKTpzK0RBfWZ1bmN0aW9uIG9BKCl7dmFyIEk9TTt0cnl7aWYoST09TSYmYylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYyk7dmFyIEI9YUEoSSk7aWYoQilyZXR1cm4gQjtpZihHKXJldHVybiBHKEkpO3Rocm93ImJvdGggYXN5bmMgYW5kIHN5bmMgZmV0Y2hpbmcgb2YgdGhlIHdhc20gZmFpbGVkIn1jYXRjaChvKXtsKG8pfX1mdW5jdGlvbiBMQSgpe3JldHVybiBjfHx0eXBlb2YgZmV0Y2ghPSJmdW5jdGlvbiI/UHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBvQSgpfSk6ZmV0Y2goTSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oSSl7aWYoIUkub2spdGhyb3ciZmFpbGVkIHRvIGxvYWQgd2FzbSBiaW5hcnkgZmlsZSBhdCAnIitNKyInIjtyZXR1cm4gSS5hcnJheUJ1ZmZlcigpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gb0EoKX0pfXZhciBILHY7ZnVuY3Rpb24gXyhJKXtmb3IoOzA8SS5sZW5ndGg7KXt2YXIgQj1JLnNoaWZ0KCk7aWYodHlwZW9mIEI9PSJmdW5jdGlvbiIpQihBKTtlbHNle3ZhciBvPUIudTt0eXBlb2Ygbz09Im51bWJlciI/Qi5zPT09dm9pZCAwP3ouZ2V0KG8pKCk6ei5nZXQobykoQi5zKTpvKEIucz09PXZvaWQgMD9udWxsOkIucyl9fX12YXIgVUE9dHlwZW9mIGF0b2I9PSJmdW5jdGlvbiI/YXRvYjpmdW5jdGlvbihJKXt2YXIgQj0iIixvPTA7ST1JLnJlcGxhY2UoL1teQS1aYS16MC05XCtcLz1dL2csIiIpO2Rve3ZhciB5PSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSIuaW5kZXhPZihJLmNoYXJBdChvKyspKSxGPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSIuaW5kZXhPZihJLmNoYXJBdChvKyspKSxVPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSIuaW5kZXhPZihJLmNoYXJBdChvKyspKSxzQT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLmluZGV4T2YoSS5jaGFyQXQobysrKSk7eT15PDwyfEY+PjQsRj0oRiYxNSk8PDR8VT4+Mjt2YXIgSkE9KFUmMyk8PDZ8c0E7Qis9U3RyaW5nLmZyb21DaGFyQ29kZSh5KSxVIT09NjQmJihCKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEYpKSxzQSE9PTY0JiYoQis9U3RyaW5nLmZyb21DaGFyQ29kZShKQSkpfXdoaWxlKG88SS5sZW5ndGgpO3JldHVybiBCfTtmdW5jdGlvbiBhQShJKXtpZihJLnN0YXJ0c1dpdGgoeCkpe3RyeXt2YXIgQj1VQShJLnNsaWNlKHgubGVuZ3RoKSksbz1uZXcgVWludDhBcnJheShCLmxlbmd0aCk7Zm9yKEk9MDtJPEIubGVuZ3RoOysrSSlvW0ldPUIuY2hhckNvZGVBdChJKX1jYXRjaCh5KXt0aHJvdyBFcnJvcigiQ29udmVydGluZyBiYXNlNjQgc3RyaW5nIHRvIGJ5dGVzIGZhaWxlZC4iKX1yZXR1cm4gb319dmFyIGtBPXthOmZ1bmN0aW9uKEksQixvKXtyLmNvcHlXaXRoaW4oSSxCLEIrbyl9LGI6ZnVuY3Rpb24oSSl7dmFyIEI9ci5sZW5ndGg7aWYoST4+Pj0wLDIxNDc0ODM2NDg8SSlyZXR1cm4hMTtmb3IodmFyIG89MTs0Pj1vO28qPTIpe3ZhciB5PUIqKDErLjIvbyk7eT1NYXRoLm1pbih5LEkrMTAwNjYzMjk2KSx5PU1hdGgubWF4KEkseSksMDx5JTY1NTM2JiYoeSs9NjU1MzYteSU2NTUzNik7QTp7dHJ5e3cuZ3JvdyhNYXRoLm1pbigyMTQ3NDgzNjQ4LHkpLW0uYnl0ZUxlbmd0aCs2NTUzNT4+PjE2KSxRQSgpO3ZhciBGPTE7YnJlYWsgQX1jYXRjaChVKXt9Rj12b2lkIDB9aWYoRilyZXR1cm4hMH1yZXR1cm4hMX19OyhmdW5jdGlvbigpe2Z1bmN0aW9uIEkoRil7QS5hc209Ri5leHBvcnRzLHc9QS5hc20uYyxRQSgpLHo9QS5hc20ucixFQS51bnNoaWZ0KEEuYXNtLmQpLFktLSxBLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJkEubW9uaXRvclJ1bkRlcGVuZGVuY2llcyhZKSxZPT0wJiZXJiYoRj1XLFc9bnVsbCxGKCkpfWZ1bmN0aW9uIEIoRil7SShGLmluc3RhbmNlKX1mdW5jdGlvbiBvKEYpe3JldHVybiBMQSgpLnRoZW4oZnVuY3Rpb24oVSl7cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKFUseSl9KS50aGVuKEYsZnVuY3Rpb24oVSl7UigiZmFpbGVkIHRvIGFzeW5jaHJvbm91c2x5IHByZXBhcmUgd2FzbTogIitVKSxsKFUpfSl9dmFyIHk9e2E6a0F9O2lmKFkrKyxBLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJkEubW9uaXRvclJ1bkRlcGVuZGVuY2llcyhZKSxBLmluc3RhbnRpYXRlV2FzbSl0cnl7cmV0dXJuIEEuaW5zdGFudGlhdGVXYXNtKHksSSl9Y2F0Y2goRil7cmV0dXJuIFIoIk1vZHVsZS5pbnN0YW50aWF0ZVdhc20gY2FsbGJhY2sgZmFpbGVkIHdpdGggZXJyb3I6ICIrRiksITF9cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGN8fHR5cGVvZiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZyE9ImZ1bmN0aW9uInx8TS5zdGFydHNXaXRoKHgpfHx0eXBlb2YgZmV0Y2ghPSJmdW5jdGlvbiI/byhCKTpmZXRjaChNLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihGKXtyZXR1cm4gV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcoRix5KS50aGVuKEIsZnVuY3Rpb24oVSl7cmV0dXJuIFIoIndhc20gc3RyZWFtaW5nIGNvbXBpbGUgZmFpbGVkOiAiK1UpLFIoImZhbGxpbmcgYmFjayB0byBBcnJheUJ1ZmZlciBpbnN0YW50aWF0aW9uIiksbyhCKX0pfSl9KCkuY2F0Y2goRSkse319KSgpLEEuX19fd2FzbV9jYWxsX2N0b3JzPWZ1bmN0aW9uKCl7cmV0dXJuKEEuX19fd2FzbV9jYWxsX2N0b3JzPUEuYXNtLmQpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQS5fbWVtY3B5PWZ1bmN0aW9uKCl7cmV0dXJuKEEuX21lbWNweT1BLmFzbS5lKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEEuX2gyNjRic2RJbml0PWZ1bmN0aW9uKCl7cmV0dXJuKEEuX2gyNjRic2RJbml0PUEuYXNtLmYpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQS5fbWFsbG9jPWZ1bmN0aW9uKCl7cmV0dXJuKEEuX21hbGxvYz1BLmFzbS5nKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEEuX2gyNjRic2REZWNvZGU9ZnVuY3Rpb24oKXtyZXR1cm4oQS5faDI2NGJzZERlY29kZT1BLmFzbS5oKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEEuX2ZyZWU9ZnVuY3Rpb24oKXtyZXR1cm4oQS5fZnJlZT1BLmFzbS5pKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEEuX2gyNjRic2RTaHV0ZG93bj1mdW5jdGlvbigpe3JldHVybihBLl9oMjY0YnNkU2h1dGRvd249QS5hc20uaikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxBLl9oMjY0YnNkTmV4dE91dHB1dFBpY3R1cmU9ZnVuY3Rpb24oKXtyZXR1cm4oQS5faDI2NGJzZE5leHRPdXRwdXRQaWN0dXJlPUEuYXNtLmspLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQS5faDI2NGJzZE5leHRPdXRwdXRQaWN0dXJlUkdCQT1mdW5jdGlvbigpe3JldHVybihBLl9oMjY0YnNkTmV4dE91dHB1dFBpY3R1cmVSR0JBPUEuYXNtLmwpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQS5faDI2NGJzZFBpY1dpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuKEEuX2gyNjRic2RQaWNXaWR0aD1BLmFzbS5tKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEEuX2gyNjRic2RQaWNIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4oQS5faDI2NGJzZFBpY0hlaWdodD1BLmFzbS5uKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEEuX2gyNjRic2RDcm9wcGluZ1BhcmFtcz1mdW5jdGlvbigpe3JldHVybihBLl9oMjY0YnNkQ3JvcHBpbmdQYXJhbXM9QS5hc20ubykuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxBLl9oMjY0YnNkQWxsb2M9ZnVuY3Rpb24oKXtyZXR1cm4oQS5faDI2NGJzZEFsbG9jPUEuYXNtLnApLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQS5faDI2NGJzZEZyZWU9ZnVuY3Rpb24oKXtyZXR1cm4oQS5faDI2NGJzZEZyZWU9QS5hc20ucSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxBLnNldFZhbHVlPWZ1bmN0aW9uKEksQixvKXtzd2l0Y2gobz1vfHwiaTgiLG8uY2hhckF0KG8ubGVuZ3RoLTEpPT09IioiJiYobz0iaTMyIiksbyl7Y2FzZSJpMSI6cVtJPj4wXT1CO2JyZWFrO2Nhc2UiaTgiOnFbST4+MF09QjticmVhaztjYXNlImkxNiI6ZFtJPj4xXT1CO2JyZWFrO2Nhc2UiaTMyIjpKW0k+PjJdPUI7YnJlYWs7Y2FzZSJpNjQiOnY9W0I+Pj4wLChIPUIsMTw9K01hdGguYWJzKEgpPzA8SD8oTWF0aC5taW4oK01hdGguZmxvb3IoSC80Mjk0OTY3Mjk2KSw0Mjk0OTY3Mjk1KXwwKT4+PjA6fn4rTWF0aC5jZWlsKChILSsofn5IPj4+MCkpLzQyOTQ5NjcyOTYpPj4+MDowKV0sSltJPj4yXT12WzBdLEpbSSs0Pj4yXT12WzFdO2JyZWFrO2Nhc2UiZmxvYXQiOlNbST4+Ml09QjticmVhaztjYXNlImRvdWJsZSI6ZltJPj4zXT1CO2JyZWFrO2RlZmF1bHQ6bCgiaW52YWxpZCB0eXBlIGZvciBzZXRWYWx1ZTogIitvKX19LEEuZ2V0VmFsdWU9ZnVuY3Rpb24oSSxCKXtzd2l0Y2goQj1CfHwiaTgiLEIuY2hhckF0KEIubGVuZ3RoLTEpPT09IioiJiYoQj0iaTMyIiksQil7Y2FzZSJpMSI6cmV0dXJuIHFbST4+MF07Y2FzZSJpOCI6cmV0dXJuIHFbST4+MF07Y2FzZSJpMTYiOnJldHVybiBkW0k+PjFdO2Nhc2UiaTMyIjpyZXR1cm4gSltJPj4yXTtjYXNlImk2NCI6cmV0dXJuIEpbST4+Ml07Y2FzZSJmbG9hdCI6cmV0dXJuIFNbST4+Ml07Y2FzZSJkb3VibGUiOnJldHVybiBmW0k+PjNdO2RlZmF1bHQ6bCgiaW52YWxpZCB0eXBlIGZvciBnZXRWYWx1ZTogIitCKX1yZXR1cm4gbnVsbH07dmFyIE87Vz1mdW5jdGlvbiBJKCl7T3x8JCgpLE98fChXPUkpfTtmdW5jdGlvbiAkKCl7ZnVuY3Rpb24gSSgpe2lmKCFPJiYoTz0hMCxBLmNhbGxlZFJ1bj0hMCwhYikpe2lmKF8oRUEpLEMoQSksQS5vblJ1bnRpbWVJbml0aWFsaXplZCYmQS5vblJ1bnRpbWVJbml0aWFsaXplZCgpLEEucG9zdFJ1bilmb3IodHlwZW9mIEEucG9zdFJ1bj09ImZ1bmN0aW9uIiYmKEEucG9zdFJ1bj1bQS5wb3N0UnVuXSk7QS5wb3N0UnVuLmxlbmd0aDspe3ZhciBCPUEucG9zdFJ1bi5zaGlmdCgpO2lBLnVuc2hpZnQoQil9XyhpQSl9fWlmKCEoMDxZKSl7aWYoQS5wcmVSdW4pZm9yKHR5cGVvZiBBLnByZVJ1bj09ImZ1bmN0aW9uIiYmKEEucHJlUnVuPVtBLnByZVJ1bl0pO0EucHJlUnVuLmxlbmd0aDspUkEoKTtfKENBKSwwPFl8fChBLnNldFN0YXR1cz8oQS5zZXRTdGF0dXMoIlJ1bm5pbmcuLi4iKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe0Euc2V0U3RhdHVzKCIiKX0sMSksSSgpfSwxKSk6SSgpKX19aWYoQS5ydW49JCxBLnByZUluaXQpZm9yKHR5cGVvZiBBLnByZUluaXQ9PSJmdW5jdGlvbiImJihBLnByZUluaXQ9W0EucHJlSW5pdF0pOzA8QS5wcmVJbml0Lmxlbmd0aDspQS5wcmVJbml0LnBvcCgpKCk7cmV0dXJuICQoKSxnLnJlYWR5fX0oKTtjb25zdCBGQT1RPT5RPj0zJiZRPD0xNSx5QT1RPT57c3dpdGNoKFEpe2Nhc2UgNTpyZXR1cm4iTWVtb3J5IGFsbG9jYXRpb24gZXJyb3IiO2Nhc2UgNDpyZXR1cm4iRmFpbGVkIHRvIGFjdGl2YXRlIHBhcmFtIHNldCI7Y2FzZSA2OnJldHVybiJCeXRlIHN0cmVhbSBlcnJvciI7Y2FzZSA3OnJldHVybiJOQUwgdW5pdCBlcnJvciI7Y2FzZSA4OnJldHVybiJBY2Nlc3MgdW5pdCBib3VuZGFyeSBjaGVjayBlcnJvciI7Y2FzZSA5OnJldHVybiJQZW5kaW5nIGFjdGl2YXRpb24gZXJyb3IiO2Nhc2UgMTA6cmV0dXJuIlNlcXVlbmNlIHBhcmFtZXRlciBzZXQgZXJyb3IiO2Nhc2UgMTE6cmV0dXJuIlBpY3R1cmUgcGFyYW1ldGVyIHNldCBlcnJvciI7Y2FzZSAxMjpyZXR1cm4iU2xpY2UgaGVhZGVyIGVycm9yIjtjYXNlIDEzOnJldHVybiJTbGljZSBkYXRhIGVycm9yIjtjYXNlIDE0OnJldHVybiJHYXBzIGluIGZyYW1lIG51bSBlcnJvciI7Y2FzZSAxNTpyZXR1cm4iUmVvcmRlcmluZyBlcnJvciI7Y2FzZSAzOmRlZmF1bHQ6cmV0dXJuIkRlY29kZSBlcnJvciJ9fSxuPWNsYXNzIG57Y29uc3RydWN0b3IoZyl7RCh0aGlzLCJoMjY0TW9kdWxlIik7RCh0aGlzLCJkZWNvZGVySW5zdGFuY2VQb2ludGVyIiwwKTtEKHRoaXMsImlucHV0QnVmZmVyUG9pbnRlciIsMCk7RCh0aGlzLCJpbnB1dEJ1ZmZlckxlbmd0aCIsMTAyNCoxMDI0KTtEKHRoaXMsImJ5dGVzUmVhZCIsMCk7RCh0aGlzLCJpc0lkclBvaW50ZXIiLDApO0QodGhpcywicGljSWRQb2ludGVyIiwwKTtEKHRoaXMsIm51bUVyck1icyIsMCk7RCh0aGlzLCJjcm9wcGluZ1BvaW50ZXJzIix7Y3JvcHBpbmdGbGFnOjAsbGVmdE9mZnNldDowLHdpZHRoOjAsdG9wT2Zmc2V0OjAsaGVpZ2h0OjB9KTtEKHRoaXMsInBhcmFtZXRlcnMiKTtEKHRoaXMsImdldFBhcmFtZXRlcnMiLCgpPT50aGlzLnBhcmFtZXRlcnMpO0QodGhpcywidW5sb2FkIiwoKT0+e3RoaXMuc2h1dGRvd25EZWNvZGVyKCksdGhpcy5oMjY0TW9kdWxlLl9mcmVlKHRoaXMuaW5wdXRCdWZmZXJQb2ludGVyKSx0aGlzLmgyNjRNb2R1bGUuX2ZyZWUodGhpcy5ieXRlc1JlYWQpLHRoaXMuaDI2NE1vZHVsZS5fZnJlZSh0aGlzLmlzSWRyUG9pbnRlciksdGhpcy5oMjY0TW9kdWxlLl9mcmVlKHRoaXMucGljSWRQb2ludGVyKSx0aGlzLmgyNjRNb2R1bGUuX2ZyZWUodGhpcy5udW1FcnJNYnMpLHRoaXMuaDI2NE1vZHVsZS5fZnJlZSh0aGlzLmNyb3BwaW5nUG9pbnRlcnMuY3JvcHBpbmdGbGFnKSx0aGlzLmgyNjRNb2R1bGUuX2ZyZWUodGhpcy5jcm9wcGluZ1BvaW50ZXJzLmxlZnRPZmZzZXQpLHRoaXMuaDI2NE1vZHVsZS5fZnJlZSh0aGlzLmNyb3BwaW5nUG9pbnRlcnMud2lkdGgpLHRoaXMuaDI2NE1vZHVsZS5fZnJlZSh0aGlzLmNyb3BwaW5nUG9pbnRlcnMudG9wT2Zmc2V0KSx0aGlzLmgyNjRNb2R1bGUuX2ZyZWUodGhpcy5jcm9wcGluZ1BvaW50ZXJzLmhlaWdodCksdGhpcy5pbnB1dEJ1ZmZlclBvaW50ZXI9MCx0aGlzLmJ5dGVzUmVhZD0wLHRoaXMuaXNJZHJQb2ludGVyPTAsdGhpcy5waWNJZFBvaW50ZXI9MCx0aGlzLm51bUVyck1icz0wLHRoaXMuZGVjb2Rlckluc3RhbmNlUG9pbnRlcj0wLHRoaXMuY3JvcHBpbmdQb2ludGVycz17Y3JvcHBpbmdGbGFnOjAsbGVmdE9mZnNldDowLHdpZHRoOjAsdG9wT2Zmc2V0OjAsaGVpZ2h0OjB9fSk7RCh0aGlzLCJzaHV0ZG93bkRlY29kZXIiLCgpPT57dGhpcy5kZWNvZGVySW5zdGFuY2VQb2ludGVyIT0wJiYodGhpcy5oMjY0TW9kdWxlLl9oMjY0YnNkU2h1dGRvd24odGhpcy5kZWNvZGVySW5zdGFuY2VQb2ludGVyKSx0aGlzLmgyNjRNb2R1bGUuX2gyNjRic2RGcmVlKHRoaXMuZGVjb2Rlckluc3RhbmNlUG9pbnRlcikpLHRoaXMucGFyYW1ldGVycz12b2lkIDB9KTtEKHRoaXMsImluaXREZWNvZGVyIiwoKT0+e3RoaXMuZGVjb2Rlckluc3RhbmNlUG9pbnRlcj10aGlzLmgyNjRNb2R1bGUuX2gyNjRic2RBbGxvYygpLHRoaXMuaDI2NE1vZHVsZS5faDI2NGJzZEluaXQodGhpcy5kZWNvZGVySW5zdGFuY2VQb2ludGVyLDApfSk7RCh0aGlzLCJkZWNvZGUiLGc9PntpZihnLmJ5dGVMZW5ndGg+dGhpcy5pbnB1dEJ1ZmZlckxlbmd0aCl7Y29uc3QgaT10aGlzLmgyNjRNb2R1bGUuX21hbGxvYyhnLmJ5dGVMZW5ndGgpO3RoaXMuaDI2NE1vZHVsZS5fZnJlZSh0aGlzLmlucHV0QnVmZmVyUG9pbnRlciksdGhpcy5pbnB1dEJ1ZmZlclBvaW50ZXI9aX10aGlzLmgyNjRNb2R1bGUuSEVBUFU4LnNldChnLHRoaXMuaW5wdXRCdWZmZXJQb2ludGVyKTtsZXQgQT1nLmJ5dGVMZW5ndGgsQz0wLEU9MDtkbyBFPXRoaXMuaDI2NE1vZHVsZS5faDI2NGJzZERlY29kZSh0aGlzLmRlY29kZXJJbnN0YW5jZVBvaW50ZXIsdGhpcy5pbnB1dEJ1ZmZlclBvaW50ZXIrQyxBLDAsdGhpcy5ieXRlc1JlYWQpLEM9dGhpcy5oMjY0TW9kdWxlLmdldFZhbHVlKHRoaXMuYnl0ZXNSZWFkLCJpMzIiKSxBLT1DO3doaWxlKEE+MCYmIUZBKEUpKTtzd2l0Y2goRSl7Y2FzZSAwOmNhc2UgMTpjYXNlIDI6e2lmKEU9PT0xKXJldHVybiB0aGlzLnJlY2VpdmVGcmFtZSgpO2lmKEU9PT0yKXJldHVybiB0aGlzLnJlY2VpdmVIZWFkZXIoKX1icmVhaztjYXNlIDEwMjQ6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoeUEoRSkpfX0pO0QodGhpcywicmVjZWl2ZUZyYW1lIiwoKT0+e2NvbnN0IGc9dGhpcy5oMjY0TW9kdWxlLl9oMjY0YnNkTmV4dE91dHB1dFBpY3R1cmUodGhpcy5kZWNvZGVySW5zdGFuY2VQb2ludGVyLHRoaXMucGljSWRQb2ludGVyLHRoaXMuaXNJZHJQb2ludGVyLHRoaXMubnVtRXJyTWJzKTtpZighZylyZXR1cm47aWYoIXRoaXMucGFyYW1ldGVycyl7Y29uc3QgQz10aGlzLmgyNjRNb2R1bGUuX2gyNjRic2RQaWNXaWR0aCh0aGlzLmRlY29kZXJJbnN0YW5jZVBvaW50ZXIpKjE2LEU9dGhpcy5oMjY0TW9kdWxlLl9oMjY0YnNkUGljSGVpZ2h0KHRoaXMuZGVjb2Rlckluc3RhbmNlUG9pbnRlcikqMTY7dGhpcy5oMjY0TW9kdWxlLl9oMjY0YnNkQ3JvcHBpbmdQYXJhbXModGhpcy5kZWNvZGVySW5zdGFuY2VQb2ludGVyLHRoaXMuY3JvcHBpbmdQb2ludGVycy5jcm9wcGluZ0ZsYWcsdGhpcy5jcm9wcGluZ1BvaW50ZXJzLmxlZnRPZmZzZXQsdGhpcy5jcm9wcGluZ1BvaW50ZXJzLndpZHRoLHRoaXMuY3JvcHBpbmdQb2ludGVycy50b3BPZmZzZXQsdGhpcy5jcm9wcGluZ1BvaW50ZXJzLmhlaWdodCk7Y29uc3QgaT10aGlzLmgyNjRNb2R1bGUuZ2V0VmFsdWUodGhpcy5jcm9wcGluZ1BvaW50ZXJzLmNyb3BwaW5nRmxhZywiaTMyIiksYT10aGlzLmgyNjRNb2R1bGUuZ2V0VmFsdWUodGhpcy5jcm9wcGluZ1BvaW50ZXJzLmxlZnRPZmZzZXQsImkzMiIpLHM9dGhpcy5oMjY0TW9kdWxlLmdldFZhbHVlKHRoaXMuY3JvcHBpbmdQb2ludGVycy53aWR0aCwiaTMyIiksRz10aGlzLmgyNjRNb2R1bGUuZ2V0VmFsdWUodGhpcy5jcm9wcGluZ1BvaW50ZXJzLnRvcE9mZnNldCwiaTMyIiksUj10aGlzLmgyNjRNb2R1bGUuZ2V0VmFsdWUodGhpcy5jcm9wcGluZ1BvaW50ZXJzLmhlaWdodCwiaTMyIik7dGhpcy5wYXJhbWV0ZXJzPXt3aWR0aDpDLGhlaWdodDpFLGNyb3BwaW5nOmk/e2xlZnQ6YSx0b3A6Ryx3aWR0aDpzLGhlaWdodDpSfTp2b2lkIDB9fWNvbnN0IEE9dGhpcy5wYXJhbWV0ZXJzLndpZHRoKnRoaXMucGFyYW1ldGVycy5oZWlnaHQqMy8yO3JldHVybiB0aGlzLmgyNjRNb2R1bGUuSEVBUFU4LnN1YmFycmF5KGcsZytBKX0pO0QodGhpcywicmVjZWl2ZUhlYWRlciIsKCk9Pnt9KTt0aGlzLmgyNjRNb2R1bGU9Zyx0aGlzLmluaXREZWNvZGVyKCksdGhpcy5pbnB1dEJ1ZmZlclBvaW50ZXI9dGhpcy5oMjY0TW9kdWxlLl9tYWxsb2ModGhpcy5pbnB1dEJ1ZmZlckxlbmd0aCksdGhpcy5ieXRlc1JlYWQ9Zy5fbWFsbG9jKDQpLHRoaXMuaXNJZHJQb2ludGVyPWcuX21hbGxvYyg0KSx0aGlzLnBpY0lkUG9pbnRlcj1nLl9tYWxsb2MoNCksdGhpcy5udW1FcnJNYnM9Zy5fbWFsbG9jKDQpLHRoaXMuY3JvcHBpbmdQb2ludGVycz17Y3JvcHBpbmdGbGFnOmcuX21hbGxvYyg0KSxsZWZ0T2Zmc2V0OmcuX21hbGxvYyg0KSx3aWR0aDpnLl9tYWxsb2MoNCksdG9wT2Zmc2V0OmcuX21hbGxvYyg0KSxoZWlnaHQ6Zy5fbWFsbG9jKDQpfX19O0QobiwiY3JlYXRlIiwoKT0+VChuLG51bGwsZnVuY3Rpb24qKCl7cmV0dXJuIG5ldyBuKHlpZWxkIE5BKCkpfSkpO2xldCBqPW47Y29uc3QgQkE9UT0+e2NvbnN0e3BpY3R1cmVQYXJhbWV0ZXJTZXRzOmcsc2VxdWVuY2VQYXJhbWV0ZXJTZXRzOkF9PUdBKFEuZGF0YSksQz1bLi4uQSwuLi5nXSxFPW5ldyBVaW50OEFycmF5KEMucmVkdWNlKChhLHMpPT5hK3MuYnl0ZUxlbmd0aCs0LDApKTtsZXQgaT0wO3JldHVybiBDLmZvckVhY2goYT0+e0VbMCtpXT0wLEVbMStpXT0wLEVbMitpXT0wLEVbMytpXT0xLEUuc2V0KG5ldyBVaW50OEFycmF5KGEpLGkrNCksaSs9YS5ieXRlTGVuZ3RoKzR9KSxFfSxwPWNsYXNzIHB7Y29uc3RydWN0b3IoZyl7RCh0aGlzLCJkZWNvZGVkU2FtcGxlcyIsW10pO0QodGhpcywiZGVjb2RlciIpO0QodGhpcywiaW5pdFNlZ21lbnRzIixuZXcgTWFwKTtEKHRoaXMsInByZXZpb3VzU2FtcGxlIik7RCh0aGlzLCJpc1dhaXRpbmdGb3JTeW5jIiwhMCk7RCh0aGlzLCJ1bmxvYWQiLCgpPT57dGhpcy5kZWNvZGVyLnVubG9hZCgpfSk7RCh0aGlzLCJpbml0U2VnbWVudCIsZz0+e3RoaXMuaW5pdFNlZ21lbnRzLnNldChnLnJlbmRpdGlvbklkLGcpfSk7RCh0aGlzLCJlbnF1ZXVlIixnPT57dmFyIHMsRyxSLGM7Y29uc3QgQT10aGlzLmluaXRTZWdtZW50cy5nZXQoZy5yZW5kaXRpb25JZCk7aWYoIUEpdGhyb3cgTihnLnJlbmRpdGlvbklkLGcuY2hhbm5lbElkKTtjb25zdCBDPSgocz10aGlzLnByZXZpb3VzU2FtcGxlKT09bnVsbD92b2lkIDA6cy53aWR0aCkhPT1nLndpZHRofHwoKEc9dGhpcy5wcmV2aW91c1NhbXBsZSk9PW51bGw/dm9pZCAwOkcuaGVpZ2h0KSE9PWcuaGVpZ2h0LEU9KChSPXRoaXMucHJldmlvdXNTYW1wbGUpPT1udWxsP3ZvaWQgMDpSLmNoYW5uZWxJZCkhPT1nLmNoYW5uZWxJZCxpPSgoYz10aGlzLnByZXZpb3VzU2FtcGxlKT09bnVsbD92b2lkIDA6Yy5yZW5kaXRpb25JZCkhPT1nLnJlbmRpdGlvbklkO2lmKHRoaXMucHJldmlvdXNTYW1wbGUpe2lmKEV8fGl8fEMpe3RoaXMuZGVjb2Rlci5zaHV0ZG93bkRlY29kZXIoKSx0aGlzLmRlY29kZXIuaW5pdERlY29kZXIoKTtjb25zdCB3PUJBKEEpO3RoaXMuZGVjb2Rlci5kZWNvZGUodyksdGhpcy5pc1dhaXRpbmdGb3JTeW5jPSEwfX1lbHNle2NvbnN0IHc9QkEoQSk7dGhpcy5kZWNvZGVyLmRlY29kZSh3KSx0aGlzLmlzV2FpdGluZ0ZvclN5bmM9ITB9aWYodGhpcy5wcmV2aW91c1NhbXBsZSl7Y29uc3Qgdz10aGlzLnByZXZpb3VzU2FtcGxlO2cudGltZXN0YW1wL2cudGltZXNjYWxlPih3LnRpbWVzdGFtcCt3LmR1cmF0aW9uKjIpL3cudGltZXNjYWxlJiYodGhpcy5pc1dhaXRpbmdGb3JTeW5jPSEwKX1pZih0aGlzLnByZXZpb3VzU2FtcGxlPWcsdGhpcy5pc1dhaXRpbmdGb3JTeW5jJiYhZy5pc1N5bmMpcmV0dXJuO3RoaXMuaXNXYWl0aW5nRm9yU3luYz0hMTtjb25zdCBhPURhdGUubm93KCk7aEEoZy5kYXRhLHc9Pnt2YXIgcSxyLGQsSjtjb25zdCBiPW5ldyBVaW50OEFycmF5KHcuYnVmZmVyLHcuYnl0ZU9mZnNldCx3LmJ5dGVMZW5ndGgpLG09dGhpcy5kZWNvZGVyLmRlY29kZShiKTtpZihtKXtpZighZy5idWZmZXIpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBzYW1wbGUgdG8gY29udGFpbiBidWZmZXIiKTtjb25zdCBTPXRoaXMuZGVjb2Rlci5nZXRQYXJhbWV0ZXJzKCk7aWYobmV3IFVpbnQ4QXJyYXkoZy5idWZmZXIpLnNldChtKSxTKXtjb25zdCBmPVtuZXcgVWludDhBcnJheShnLmJ1ZmZlciwwLFMud2lkdGgqUy5oZWlnaHQpLG5ldyBVaW50OEFycmF5KGcuYnVmZmVyLFMud2lkdGgqUy5oZWlnaHQsUy53aWR0aC8yKlMuaGVpZ2h0LzIpLG5ldyBVaW50OEFycmF5KGcuYnVmZmVyLFMud2lkdGgqUy5oZWlnaHQrUy53aWR0aC8yKlMuaGVpZ2h0LzIsUy53aWR0aC8yKlMuaGVpZ2h0LzIpXTt0aGlzLmRlY29kZWRTYW1wbGVzLnB1c2goZ0EoSUEoe30sZykse2J1ZmZlcjpnLmJ1ZmZlcix0eXBlOiJ2aWRlbyIsZm9ybWF0OiJ5dXY0MjAiLGNvbG9yUHJpbWFyaWVzOiJidDcwOSIsd2lkdGg6KHI9KHE9Uy5jcm9wcGluZyk9PW51bGw/dm9pZCAwOnEud2lkdGgpIT1udWxsP3I6Uy53aWR0aCxoZWlnaHQ6KEo9KGQ9Uy5jcm9wcGluZyk9PW51bGw/dm9pZCAwOmQuaGVpZ2h0KSE9bnVsbD9KOlMuaGVpZ2h0LGNvZGVkV2lkdGg6Uy53aWR0aCxjb2RlZEhlaWdodDpTLmhlaWdodCxkYXRhOmYsc3RhdGlzdGljczp7ZGVjb2RlVGltZTpEYXRlLm5vdygpLWEsdHJhbnNwb3J0VGltZUZyb21Xb3JrZXI6MCx0cmFuc3BvcnRUaW1lVG9Xb3JrZXI6MCxzYW1wbGVzSW5CYXRjaDoxfX0pKX19cmV0dXJuITB9KX0pO0QodGhpcywidGFrZSIsKCk9PnRoaXMuZGVjb2RlZFNhbXBsZXMuc2hpZnQoKSk7dGhpcy5kZWNvZGVyPWd9fTtEKHAsImNyZWF0ZSIsKCk9PlQocCxudWxsLGZ1bmN0aW9uKigpe3JldHVybiBuZXcgcCh5aWVsZCBqLmNyZWF0ZSgpKX0pKTtsZXQgVj1wO2NvbnN0IEw9c2VsZix0QT0oKT0+VCh0aGlzLG51bGwsZnVuY3Rpb24qKCl7dHJ5e0wuZGVjb2Rlcj15aWVsZCBWLmNyZWF0ZSgpLEwucG9zdE1lc3NhZ2Uoe3R5cGU6InJlYWR5In0pfWNhdGNoKFEpe0wucG9zdE1lc3NhZ2Uoe3R5cGU6ImVycm9yIixtZXNzYWdlOlEgaW5zdGFuY2VvZiBFcnJvcj9RLm1lc3NhZ2U6dm9pZCAwfSl9fSksd0E9UT0+e2NvbnN0IGc9UTtnLmRhdGE9bnVsbH07dEEoKSxMLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLFE9Pnt2YXIgZyxBLEM7c3dpdGNoKFEuZGF0YS50eXBlKXtjYXNlImRlY29kZSBzYW1wbGVzIjp0cnl7Y29uc3QgRT1EYXRlLm5vdygpLVEuZGF0YS50aW1lc3RhbXAsaT1bXTtRLmRhdGEuc2FtcGxlcy5tYXAoRz0+e3ZhciBSO3JldHVybihSPUwuZGVjb2Rlcik9PW51bGw/dm9pZCAwOlIuZW5xdWV1ZShHKX0pO2xldCBhO2Zvcig7YT0oZz1MLmRlY29kZXIpPT1udWxsP3ZvaWQgMDpnLnRha2UoKTspYS5zdGF0aXN0aWNzJiYoYS5zdGF0aXN0aWNzLnRyYW5zcG9ydFRpbWVUb1dvcmtlcj1FLGEuc3RhdGlzdGljcy5zYW1wbGVzSW5CYXRjaD1RLmRhdGEuc2FtcGxlcy5sZW5ndGgpLGkucHVzaChhKTtjb25zdCBzPWkubWFwKEc9PkcuYnVmZmVyKTtRLmRhdGEuc2FtcGxlcy5tYXAoRz0+d0EoRykpLEwucG9zdE1lc3NhZ2Uoe3R5cGU6ImRlY29kZWQgc2FtcGxlcyIsc2FtcGxlczppLHRpbWVzdGFtcDpEYXRlLm5vdygpLHNhbXBsZXNQcm9jZXNzZWRDb3VudDpRLmRhdGEuc2FtcGxlcy5sZW5ndGh9LHMpfWNhdGNoKEUpe0wucG9zdE1lc3NhZ2Uoe3R5cGU6ImVycm9yIixtZXNzYWdlOkUgaW5zdGFuY2VvZiBFcnJvcj9FLm1lc3NhZ2U6dm9pZCAwfSl9YnJlYWs7Y2FzZSJ1bmxvYWQiOihBPUwuZGVjb2Rlcik9PW51bGx8fEEudW5sb2FkKCksTC5kZWNvZGVyPXZvaWQgMDticmVhaztjYXNlImluaXQgc2VnbWVudCI6KEM9TC5kZWNvZGVyKT09bnVsbHx8Qy5pbml0U2VnbWVudChRLmRhdGEuaW5pdFNlZ21lbnQpO2JyZWFrfX0pfSkoKTsK",tR=Q=>Uint8Array.from(atob(Q),A=>A.charCodeAt(0)),Ir=typeof self!="undefined"&&self.Blob&&new Blob([tR(gr)],{type:"text/javascript;charset=utf-8"});function QR(Q){let A;try{if(A=Ir&&(self.URL||self.webkitURL).createObjectURL(Ir),!A)throw"";const e=new Worker(A,{name:Q==null?void 0:Q.name});return e.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(A)}),e}catch(e){return new Worker("data:text/javascript;base64,"+gr,{name:Q==null?void 0:Q.name})}finally{A&&(self.URL||self.webkitURL).revokeObjectURL(A)}}const lF=class lF{constructor(A,e){i(this,"decodedSamples",[]);i(this,"codedSamples",[]);i(this,"decoder");i(this,"errors",new Z(10));i(this,"pool");i(this,"enqueuedSamplesCount",0);i(this,"processedSamplesCount",0);i(this,"targetSamplesInBatch",4);i(this,"targetSamplesInWorker",20);i(this,"unload",()=>{this.decoder.postMessage({type:"unload"}),this.decoder.removeEventListener("message",this.onDecoderEvent),this.decoder.terminate()});i(this,"enqueue",A=>{if(this.codedSamples.push(A),this.samplesInDecoder()===0||this.codedSamples.length>=this.targetSamplesInBatch){const e=this.codedSamples.slice(0,this.targetSamplesInBatch);this.codedSamples=this.codedSamples.slice(this.targetSamplesInBatch),e.forEach(t=>{const B=Math.ceil(t.width/16)*16,F=Math.ceil(t.height/16)*16,n=B*F*3/2;t.buffer=this.pool.get(n)}),this.sendSamples(e),this.enqueuedSamplesCount+=e.length}});i(this,"initSegment",A=>{const e={type:"init segment",initSegment:A};this.decoder.postMessage(e)});i(this,"take",()=>this.decodedSamples.shift());i(this,"samplesInDecoder",()=>this.enqueuedSamplesCount-this.processedSamplesCount);i(this,"sendSamples",A=>{const e={type:"decode samples",samples:A,timestamp:Date.now()},t=A.flatMap(B=>[B.data,B.buffer]);this.decoder.postMessage(e,t)});i(this,"onDecoderEvent",A=>{switch(A.data.type){case"ready":break;case"error":this.errors.push(new Error(A.data.message));break;case"decoded samples":{this.processedSamplesCount+=A.data.samplesProcessedCount;const e=A.data.timestamp;A.data.samples.forEach(t=>{t.statistics&&(t.statistics.transportTimeFromWorker=Date.now()-e)}),this.decodedSamples.push(...A.data.samples)}break}});this.decoder=A,this.pool=e,this.decoder.addEventListener("message",this.onDecoderEvent)}error(){return this.errors.pop()}};i(lF,"create",A=>r(lF,null,function*(){const e=new QR;return yield new Promise((t,B)=>{const F=n=>{switch(e.removeEventListener("message",F),n.data.type){case"ready":t();break;case"error":default:B();break}};e.addEventListener("message",F)}),new lF(e,A)}));let La=lF;const iR=Object.freeze(Object.defineProperty({__proto__:null,H264DecoderWorkerContext:La},Symbol.toStringTag,{value:"Module"}));R.AUTHENTICATION_EXPIRED_CODE=To,R.AUTHENTICATION_FAILED_CODE=wo,R.ApiClient=Wo,R.CHANNEL_NOT_FOUND_CODE=yo,R.CONNECTION_FAILED_AFTER_RETRIES_CODE=Zo,R.CONNECTION_FAILED_CODE=Do,R.CastSender=po,R.DISCONNECTED_BY_EDGE=Go,R.INACTIVITY_CODE=fo,R.NO_INCOMING_DATA=bo,R.Player=$C,R.Vindral=an,R.VindralError=Y,Object.defineProperty(R,Symbol.toStringTag,{value:"Module"})});
|
|
60
|
+
</svg>`},pause:{viewBox:"-160 -160 832 832",content:'<path fill="white" d="M208,432H160a16,16,0,0,1-16-16V96a16,16,0,0,1,16-16h48a16,16,0,0,1,16,16V416A16,16,0,0,1,208,432Z"/><path fill="white" d="M352,432H304a16,16,0,0,1-16-16V96a16,16,0,0,1,16-16h48a16,16,0,0,1,16,16V416A16,16,0,0,1,352,432Z"/>'},play:{viewBox:"-6 -6 36 36",content:'<path d="M7 17.259V6.74104C7 5.96925 7.83721 5.48837 8.50387 5.87726L18.2596 11.5681C18.5904 11.761 18.5904 12.2389 18.2596 12.4319L8.50387 18.1227C7.83721 18.5116 7 18.0308 7 17.259Z" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>'},airPlay:{viewBox:"-8 -8 40 40",content:'<path fill="white" d="M12.8 13.4c-.1-.1-.1-.2-.2-.2c-.5-.3-1.1-.2-1.5.2l-4 6c0 .2-.1.4-.1.6c0 .6.4 1 1 1h8c.2 0 .4-.1.6-.2c.5-.3.6-.9.3-1.4zM19 3H5C3.3 3 2 4.3 2 6v9c0 1.7 1.3 3 3 3h.8c.6 0 1-.4 1-1s-.4-1-1-1H5c-.6 0-1-.4-1-1V6c0-.6.4-1 1-1h14c.6 0 1 .4 1 1v9c0 .6-.4 1-1 1h-.8c-.6 0-1 .4-1 1s.4 1 1 1h.8c1.7 0 3-1.3 3-3V6c0-1.7-1.3-3-3-3"/>'}},SC=hC["icon-button"];class zt extends Ae{constructor(e,t,B){super(document.createElement("div"));i(this,"iconElement");i(this,"setIcon",e=>{this.iconElement.setAttribute("viewBox",sr[e].viewBox),this.iconElement.innerHTML=sr[e].content});i(this,"isHidden",()=>this.element.style.display==="none");i(this,"setHidden",e=>e?this.hide():this.show());i(this,"show",()=>void(this.element.style.display="block"));i(this,"hide",()=>void(this.element.style.display="none"));this.element.style.cursor="pointer",this.element.setAttribute("role","button"),this.element.setAttribute("aria-label",e),this.iconElement=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.iconElement.setAttribute("width","40px"),this.iconElement.setAttribute("height","40px"),this.iconElement.setAttribute("class",SC),this.setIcon(t),this.element.addEventListener("click",B),this.element.appendChild(this.iconElement)}}const En={list:"_list_pxz62_1","list-item":"_list-item_pxz62_10","list-item-disabled":"_list-item-disabled_pxz62_14",hidden:"_hidden_pxz62_18"},ar=En.hidden,JC=En.list,VC=En["list-item"],uC=En["list-item-disabled"];class kC extends Ae{constructor({items:e,onItemClick:t,classNames:B=[],maxHeight:F}){super(document.createElement("div"));i(this,"onItemClick");i(this,"updateItems",e=>{var t;for(;this.element.firstChild;)(t=this.element.lastChild)==null||t.remove();e.forEach(B=>{const F=document.createElement("div");B.disabled||F.addEventListener("click",()=>this.onItemClick(B)),F.className=[VC,B.disabled?uC:""].join(" "),F.appendChild(B.element()),this.element.appendChild(F)})});i(this,"hide",()=>this.element.classList.add(ar));i(this,"show",()=>this.element.classList.remove(ar));this.element.className=[JC,...B].join(" "),this.onItemClick=t,this.updateItems(e),F&&(this.element.style.maxHeight=F)}}const Ta={container:"_container_13xnz_1",hidden:"_hidden_13xnz_6",list:"_list_13xnz_10"},NC=Ta.list,or=Ta.hidden,mC=Ta.container;class gn extends Ae{constructor({label:e,items:t,onItemClick:B,iconButtonType:F,onToggle:n}){super(document.createElement("div"));i(this,"iconButton");i(this,"onItemClick");i(this,"onToggle");i(this,"maxHeight");i(this,"items");i(this,"list");i(this,"onButtonClick",()=>{this.toggleShowChannels(),this.onToggle(this)});i(this,"toggleShowChannels",()=>{this.list?this.hideList():this.showList()});i(this,"handleItemClick",e=>{this.toggleShowChannels(),this.onItemClick(e)});i(this,"showList",()=>{this.list=new kC({items:this.items,onItemClick:this.handleItemClick,classNames:[NC],maxHeight:this.maxHeight}),this.list.attach(this.element)});i(this,"hideList",()=>{var e;(e=this.list)==null||e.detach(),this.list=void 0});i(this,"updateItems",e=>{var t;this.items=e,(t=this.list)==null||t.updateItems(e)});i(this,"isListVisible",()=>this.list!==void 0);i(this,"hide",()=>{this.element.classList.add(or)});i(this,"show",()=>{this.element.classList.remove(or)});this.element.className=mC,this.onItemClick=B,this.onToggle=n,this.items=t,this.iconButton=new zt(e,F,this.onButtonClick),this.iconButton.attach(this.element)}}const WC=uB["hide-on-small"],pC=uB["channel-selection-item"],DC=uB["channel-selection-item-selected"],ZC=uB["channel-selection-item-image"],wC=uB.withThumbnails;class TC extends gn{constructor({vindral:A,enabled:e,thumbnailsEnabled:t,thumbnailModule:B}){const F=()=>{const s=A.channels.map(a=>({channel:a,disabled:!a.isLive,element:()=>{const r=document.createElement("div");if(r.className=[pC,a.channelId===A.channelId?DC:""].join(" "),B&&t){r.classList.add(wC);const E=document.createElement("p");E.innerHTML=a.name,r.appendChild(E);const g=B.getImageUrl(a),c=document.createElement("img");g&&(c.className=ZC,c.src=g,r.style.backgroundImage=`url(${g})`)}else r.innerHTML=a.name;return r}}));this.maxHeight=`calc(${Math.max(110,A.mediaElement.clientHeight)}px - 46px)`,this.updateItems(s),s.length>1&&e!=!1?this.show():this.hide()};A.on("channels",F);const n=s=>A.channelId=s.channel.channelId;super({label:"Channel List",items:[],onItemClick:n,onToggle:V,iconButtonType:"channels"}),this.element.classList.add(WC),this.hide()}}const lr={"language-button-item":"_language-button-item_1dov5_1","language-button-item-selected":"_language-button-item-selected_1dov5_6"},yC=lr["language-button-item"],fC=lr["language-button-item-selected"];class bC extends gn{constructor({vindral:A}){const e=()=>{const B=A.languages.map(F=>({language:F,disabled:!1,element:()=>{const n=document.createElement("div");return n.className=[yC,F===A.language?fC:""].join(" "),n.innerHTML=F,n}}));this.maxHeight=`calc(${Math.max(110,A.mediaElement.clientHeight)}px - 46px)`,this.updateItems(B),B.length>0?this.show():this.hide()};A.on("languages",e);const t=B=>A.language=B.language;super({label:"Language",items:[],onItemClick:t,onToggle:V,iconButtonType:"languages"}),this.hide()}}class GC extends Ae{constructor({vindral:e}){super(document.createElement("div"));i(this,"vindral");i(this,"playButton");i(this,"updateState",()=>{this.playButton.setIcon(this.playIcon())});i(this,"onPlayClick",()=>{this.vindral.playbackState!=="paused"?this.vindral.pause():this.vindral.play(),this.playButton.setIcon(this.playIcon())});i(this,"playIcon",()=>this.vindral.playbackState==="paused"?"play":"pause");this.element.style.cursor="pointer",this.vindral=e,this.playButton=new zt("Play",this.playIcon(),this.onPlayClick),this.playButton.attach(this.element)}}const kB={item:"_item_5vhyo_1","item-selected":"_item-selected_5vhyo_6",title:"_title_5vhyo_10","sub-title":"_sub-title_5vhyo_14","hide-on-small":"_hide-on-small_5vhyo_21"},MC=kB["hide-on-small"],vC=kB.item,LC=kB["item-selected"],HC=kB.title,YC=kB["sub-title"];class xC extends gn{constructor({vindral:A}){const e=()=>{const B=A.renditionLevels.map(F=>({rendition:F,disabled:!1,element:()=>{var u,D,T;const n=document.createElement("div");n.className=[vC,F===A.currentRenditionLevel?LC:""].join(" ");const s=document.createElement("span"),a=document.createElement("span"),{audio:r,video:E}=F,g=E?Hd(E):void 0,c=r?Yd(r.sampleRate):void 0;let J=Ld(((u=E==null?void 0:E.bitRate)!=null?u:0)+((D=r==null?void 0:r.bitRate)!=null?D:0));if(E){const L=E.frameRate[0]/E.frameRate[1],Z=E.frameRate[0]%E.frameRate[1]===0?`${L}p`:`${L.toFixed(2)}p`;J+=`, ${Z}`}return s.innerHTML=(T=g!=null?g:c)!=null?T:"",s.className=HC,a.innerHTML=J,a.className=YC,n.appendChild(s),n.appendChild(a),n}}));this.maxHeight=`calc(${Math.max(110,A.mediaElement.clientHeight)}px - 46px)`,this.updateItems(B)};A.on("rendition level",e),A.on("rendition levels",e);const t=({rendition:B})=>{B.audio&&(A.maxAudioBitRate=B.audio.bitRate),B.video&&(A.maxVideoBitRate=B.video.bitRate,A.maxSize=B.video)};super({label:"Rendition Levels",items:[],onItemClick:t,onToggle:V,iconButtonType:"levels"}),this.element.classList.add(MC)}}class XC extends Ae{constructor(){super(document.createElement("div")),this.element.style.flexGrow="1"}}const rr={"text-track-button-item":"_text-track-button-item_1ry10_1","text-track-button-item-selected":"_text-track-button-item-selected_1ry10_6"},dr=rr["text-track-button-item"],Er=rr["text-track-button-item-selected"];class KC extends gn{constructor({vindral:A}){const e=()=>{const B=A.textTracks.map(F=>({textTrack:F,disabled:!1,element:()=>{const n=document.createElement("div");return n.className=[dr,F===A.textTrack?Er:""].join(" "),n.innerHTML=F,n}}));B.length>0?(B.push({textTrack:void 0,disabled:!1,element:()=>{const F=document.createElement("div");return F.className=[dr,A.textTrack===void 0?Er:""].join(" "),F.innerHTML="Off",F}}),this.show()):this.hide(),this.maxHeight=`calc(${Math.max(110,A.mediaElement.clientHeight)}px - 46px)`,this.updateItems(B)};A.on("text tracks",e);const t=B=>A.textTrack=B.textTrack;super({label:"Text Tracks",items:[],onItemClick:t,onToggle:V,iconButtonType:"textTracks"}),this.hide()}}class OC extends Ae{constructor({vindral:e}){super(document.createElement("div"));i(this,"vindral");i(this,"muteButton");i(this,"updateState",()=>{this.muteButton.setIcon(this.muteIcon())});i(this,"onMuteClick",()=>{this.vindral.muted=!this.vindral.muted,this.muteButton.setIcon(this.muteIcon())});i(this,"muteIcon",()=>this.vindral.muted?"mute":"unmute");this.element.style.cursor="pointer",this.vindral=e,this.muteButton=new zt("Mute",this.muteIcon(),this.onMuteClick),this.muteButton.attach(this.element)}}const In=nr.hidden,zC=nr.bar;class PC extends Ae{constructor({vindral:e,onFullscreenClicked:t,onOneToOneClicked:B,onPipClicked:F,onAirPlayClicked:n,pauseButtonEnabled:s,fullscreenButtonEnabled:a,pipButtonEnabled:r,channelSelectionEnabled:E,channelSelectionThumbnails:g,renditionLevelsEnabled:c,languagesButtonEnabled:J,textTracksButtonEnabled:u,oneToOneButtonEnabled:D,thumbnailModule:T}){super(document.createElement("div"));i(this,"items",[]);i(this,"isMouseInElement",!1);i(this,"volumeControls");i(this,"playControls");i(this,"oneToOneButton");i(this,"fullscreenButton");i(this,"airPlayButton");i(this,"containerElement");i(this,"hideLists",()=>{this.items.forEach(e=>"hideList"in e&&e.hideList())});i(this,"listButtons",()=>this.items);i(this,"isAnyListOpen",()=>this.items.filter(e=>"isListVisible"in e&&e.isListVisible()).length>0);i(this,"hasFocus",()=>this.isMouseInElement||this.isAnyListOpen());i(this,"isHidden",()=>this.element.classList.contains(In));i(this,"hide",()=>{this.containerElement.style.setProperty("--vindral-control-bar-offset","0px"),this.element.classList.add(In)});i(this,"show",()=>{this.containerElement.style.setProperty("--vindral-control-bar-offset","-96px"),this.element.classList.remove(In)});i(this,"addCastButton",()=>{const e=document.createElement("google-cast-launcher");this.element.insertBefore(e,this.element.lastChild)});i(this,"addAirPlayButton",()=>{this.airPlayButton.attachBefore(this.element,this.element.lastChild)});i(this,"updateState",()=>{this.playControls.updateState(),this.volumeControls.updateState()});i(this,"onToggle",e=>{this.listButtons().filter(t=>e!==t).forEach(t=>"hideList"in t&&t.hideList())});this.element.className=[zC,In].join(" ");const L=new XC;this.oneToOneButton=new zt("One to One","oneToOne",B),this.fullscreenButton=new zt("Fullscreen","enter",t),this.airPlayButton=new zt("AirPlay","airPlay",n);const Z=new zt("Picture in Picture","pip",F),M=new TC({vindral:e,enabled:E,thumbnailsEnabled:g,thumbnailModule:g?T:void 0}),H=new xC({vindral:e});this.volumeControls=new OC({vindral:e}),this.playControls=new GC({vindral:e}),this.containerElement=e.mediaElement,s&&e.getOptions().pauseSupportEnabled&&this.playControls.attach(this.element),e.getOptions().media!=="video"&&this.volumeControls.attach(this.element),L.attach(this.element);const Y=[];if(J){const P=new bC({vindral:e});P.attach(this.element),Y.push(P)}if(u){const P=new KC({vindral:e});P.attach(this.element),Y.push(P)}H.attach(this.element),M.attach(this.element),Z.attach(this.element),this.oneToOneButton.attach(this.element),this.fullscreenButton.attach(this.element),this.items.push(L,...Y,H,M,Z,this.fullscreenButton),this.items.forEach(P=>"onToggle"in P&&(P.onToggle=this.onToggle)),D||this.oneToOneButton.hide(),a||this.fullscreenButton.hide(),r||Z.hide(),E||M.hide(),c||H.hide(),navigator.maxTouchPoints<1&&(this.element.addEventListener("mouseenter",()=>this.isMouseInElement=!0),this.element.addEventListener("mouseleave",()=>this.isMouseInElement=!1))}}const gr={castoverlay:"_castoverlay_1n91l_1",hidden:"_hidden_1n91l_20"},ya=gr.hidden,jC=gr.castoverlay;class qC extends Ae{constructor(){super(document.createElement("div"));i(this,"onClick");i(this,"setText",e=>{this.element.innerText=e});i(this,"hide",()=>this.element.classList.add(ya));i(this,"show",()=>this.element.classList.remove(ya));this.element.classList.add(jC),this.element.classList.add(ya),this.element.innerText="device"}}const NB={button:"_button_137xm_21",image:"_image_137xm_96",overlay:"_overlay_137xm_116",selected:"_selected_137xm_134",hidden:"_hidden_137xm_139"},_C=NB.button,fa=NB.hidden,$C=NB.overlay,Ir=NB.image,cr=NB.selected;class AR extends Ae{constructor({title:e,onClick:t,imageUrl:B,selected:F}){super(document.createElement("button"));i(this,"overlay");i(this,"imageHolder1");i(this,"imageHolder2");i(this,"isImageHolder1Active",!1);i(this,"loadingOverlay");i(this,"transition",(e,t,B)=>{t.style.backgroundImage=`url(${B})`,t.style.opacity="1",e.style.opacity="0"});i(this,"setSelected",e=>{e?this.element.classList.add(cr):this.element.classList.remove(cr)});i(this,"setAnimationDelay",e=>{this.element.style.animationDelay=e});i(this,"hideLoading",()=>{this.loadingOverlay.hide()});i(this,"isHidden",()=>this.element.classList.contains(fa));i(this,"setHidden",e=>e?this.hide():this.show());i(this,"hide",()=>this.element.classList.add(fa));i(this,"show",()=>this.element.classList.remove(fa));this.element.className=_C,F&&this.setSelected(F),this.element.onclick=()=>{this.loadingOverlay.show(),t()},this.imageHolder1=document.createElement("div"),this.imageHolder1.className=Ir,this.imageHolder1.style.animationFillMode="forwards",this.imageHolder2=document.createElement("div"),this.imageHolder2.className=Ir,this.imageHolder2.style.animationFillMode="forwards",B&&(this.imageHolder1.style.backgroundImage=`url(${B})`,this.isImageHolder1Active=!0),this.loadingOverlay=new Ur,this.loadingOverlay.attach(this.element),this.loadingOverlay.hide(),this.element.appendChild(this.imageHolder1),this.element.appendChild(this.imageHolder2),this.overlay=document.createElement("div"),this.overlay.className=$C,this.element.appendChild(this.overlay);const n=document.createElement("span");n.innerHTML=e,this.element.appendChild(n),this.show()}setImageUrl(e){if(e){if(!this.imageHolder1.style.backgroundImage){this.imageHolder1.style.backgroundImage=`url(${e})`,this.isImageHolder1Active=!0;return}this.isImageHolder1Active?this.transition(this.imageHolder1,this.imageHolder2,e):this.transition(this.imageHolder2,this.imageHolder1,e),this.isImageHolder1Active=!this.isImageHolder1Active}}}const Cr={container:"_container_btpgd_13",hidden:"_hidden_btpgd_37"},ba=Cr.hidden,eR=Cr.container;class tR extends Ae{constructor({vindral:e,thumbnailModule:t}){var B;super(document.createElement("div"));i(this,"thumbnailModule");i(this,"list");i(this,"vindral");i(this,"setSelected",e=>{this.list.forEach((t,B)=>{t.setSelected(B.channelId===e.channelId)}),e.channelId!==this.vindral.channelId&&(this.vindral.channelId=e.channelId)});i(this,"isHidden",()=>this.element.classList.contains(ba));i(this,"setHidden",e=>e?this.hide():this.show());i(this,"hide",()=>this.element.classList.add(ba));i(this,"show",()=>this.element.classList.remove(ba));this.thumbnailModule=t,this.list=new Map,this.vindral=e,this.vindral.on("context switch",F=>{if(F==="completed"){this.list.forEach(s=>s.hideLoading());const n=this.vindral.channelId;this.vindral.channels.forEach(s=>{var a;(a=this.list.get(s))==null||a.setSelected(s.channelId===n)})}}),this.vindral.on("channels",()=>{this.list.forEach(n=>n.detach()),this.list.clear();const F=this.vindral.channelId;this.vindral.channels.forEach((n,s)=>{var r;if(!n.isLive)return;const a=new AR({title:n.name,onClick:()=>{this.setSelected(n)},imageUrl:(r=this.thumbnailModule)==null?void 0:r.getImageUrl(n),selected:n.channelId===F});a.setAnimationDelay(`${s*.05}s`),this.list.set(n,a)}),this.list.forEach(n=>n.attach(this.element))}),(B=this.thumbnailModule)==null||B.on("updatedImages",()=>{this.list.forEach((F,n)=>{var s;F.setImageUrl((s=this.thumbnailModule)==null?void 0:s.getImageUrl(n))})}),this.element.className=eR,this.show()}}const Ga={fullscreen:"_fullscreen_1v9d8_1"}.fullscreen,rs=class rs extends $A{constructor(e){super();o(this,aB);i(this,"container");i(this,"unload",()=>{document.removeEventListener("webkitfullscreenchange",this.onChange),document.removeEventListener("mozfullscreenchange",this.onChange),document.removeEventListener("fullscreenchange",this.onChange),this.container.removeEventListener("webkitendfullscreen",this.onChange)});i(this,"request",()=>I(this,aB,Zd).call(this).catch(e=>{throw this.onChange(),e}));i(this,"exit",()=>I(this,aB,wd).call(this).catch(e=>{throw this.onChange(),e}));i(this,"onChange",()=>this.emit("on fullscreen change",this.isFullscreen()));i(this,"isFullscreen",()=>!!(document.fullscreenElement||document.fullscreen||document.mozFullScreen||document.webkitIsFullScreen||this.container.classList.contains(Ga)));i(this,"isSupported",()=>rs.isFullscreenApiSupported(this.container)||!this.isInIframe());i(this,"isInIframe",()=>window.location!==window.parent.location);this.container=e,document.addEventListener("webkitfullscreenchange",this.onChange),document.addEventListener("mozfullscreenchange",this.onChange),document.addEventListener("fullscreenchange",this.onChange),this.container.addEventListener("webkitendfullscreen",this.onChange)}};aB=new WeakSet,Zd=function(){return this.container.requestFullscreen?this.container.requestFullscreen():this.container.webkitRequestFullscreen?this.container.webkitRequestFullscreen():this.container.webkitEnterFullscreen?this.container.webkitEnterFullscreen():this.container.mozRequestFullScreen?this.container.mozRequestFullScreen():(this.container.classList.add(Ga),Promise.resolve())},wd=function(){return document.exitFullscreen?document.exitFullscreen():document.webkitFullscreenElement&&document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozFullscreenElement&&document.mozCancelFullScreen?document.mozCancelFullScreen():this.container.webkitExitFullscreen?this.container.webkitExitFullscreen():(this.container.classList.remove(Ga),Promise.resolve())},i(rs,"isFullscreenApiSupported",e=>(e.requestFullscreen||e.webkitRequestFullscreen||e.webkitEnterFullscreen||e.mozRequestFullScreen)!==void 0);let mB=rs;const Ma={player:"_player_j1uto_1","one-to-one":"_one-to-one_j1uto_19","audio-only":"_audio-only_j1uto_28"},va={playoverlay:"_playoverlay_1niji_1",hidden:"_hidden_1niji_17","playoverlay-indicator":"_playoverlay-indicator_1niji_23"},cn=va.hidden,QR=va.playoverlay,iR=va["playoverlay-indicator"];class BR extends Ae{constructor(){super(document.createElement("div"));i(this,"onClick");i(this,"indicator",document.createElement("div"));i(this,"isHidden",()=>this.element.classList.contains(cn));i(this,"setHidden",e=>e?this.hide():this.show());i(this,"hide",()=>this.element.classList.add(cn));i(this,"show",()=>this.element.classList.remove(cn));this.element.classList.add(QR),this.element.classList.add(cn),this.indicator.className=iR,this.element.appendChild(this.indicator),this.element.onclick=()=>{this.onClick&&this.onClick()}}}class UR extends $A{constructor({vindral:e,refreshEveryMs:t}){super();i(this,"thumbnails",new Map);i(this,"interval");i(this,"channels");i(this,"refreshEveryMs");i(this,"isFetching",!1);i(this,"hasFetched",!1);this.channels=[...e.channels],this.refreshEveryMs=t||6e4,e.on("channels",()=>{this.channels=[...e.channels],this.hasFetched||this.refreshThumbnails()})}start(){this.interval||(this.interval=window.setInterval(()=>{this.refreshThumbnails()},this.refreshEveryMs))}stop(){window.clearInterval(this.interval)}getImageUrl(e){return this.thumbnails.get(e.channelId)}refreshThumbnails(){return d(this,null,function*(){if(!this.isFetching){this.isFetching=!0;try{const e=this.channels.map(t=>d(this,null,function*(){const B=t.thumbnailUrls.length<2?0:Math.ceil(t.thumbnailUrls.length/2),F=t.thumbnailUrls[B];if(F){const n=yield fetch(F);if(n.ok){const s=yield n.blob(),a=URL.createObjectURL(s),r=this.thumbnails.get(t.channelId);r&&r.startsWith("blob:")&&URL.revokeObjectURL(r),this.thumbnails.set(t.channelId,a)}}}));yield Promise.all(e),this.emit("updatedImages")}catch(e){console.warn("Error fetching thumbnails",e)}this.isFetching=!1,this.hasFetched=!0}})}}const FR=Ma.player,La=Ma["one-to-one"],nR=Ma["audio-only"],sR={controlsEnabled:!0,castEnabled:!0,channelSelectionEnabled:!0,renditionLevelsEnabled:!1,languagesButtonEnabled:!0,textTracksButtonEnabled:!0,oneToOneButtonEnabled:!1,iosWakeLockEnabled:!0,hideTimeout:2e3,pauseButtonEnabled:!0,airPlayButtonEnabled:!1,playOverlayEnabled:!0,bufferingOverlayEnabled:!0},aR=Q=>!_o(Q);class oR{constructor(A,e){i(this,"core");i(this,"castSender");i(this,"airPlaySender");i(this,"options");i(this,"state");i(this,"playerElement",document.createElement("div"));i(this,"bufferingOverlay");i(this,"playOverlay");i(this,"castOverlay",new qC);i(this,"channelSelectionList");i(this,"bar");i(this,"stateInterval");i(this,"thumbnailModule");i(this,"browser",us());i(this,"unload",()=>{var A,e;this.stateInterval&&window.clearInterval(this.stateInterval),this.core.unload(),this.playerElement.remove(),(A=this.thumbnailModule)==null||A.stop(),(e=this.airPlaySender)==null||e.unload()});i(this,"attach",A=>{this.stateInterval&&window.clearInterval(this.stateInterval),this.stateInterval=window.setInterval(this.checkState,100),this.playerElement.remove(),A.appendChild(this.playerElement)});i(this,"setupCastSender",()=>d(this,null,function*(){if(this.options.castEnabled){try{yield this.castSender.init()}catch(A){return}this.castSender.on("connected",()=>{this.state.fullscreen.isFullscreen()&&this.exitFullscreen(),this.core.pause(),this.castOverlay.setText(`Casting to ${this.castSender.getReceiverName()||"device"}`),this.castOverlay.show()}),this.castSender.on("disconnected",()=>{document.hidden||this.core.play(),this.castOverlay.hide()}),this.bar.addCastButton()}}));i(this,"setupAirPlaySender",A=>{A.once("available",()=>{this.bar.addAirPlayButton()}),A.on("connected",()=>{this.core.mediaElement.style.display="hidden",this.core.pause()}),A.on("disconnected",()=>{this.core.mediaElement.style.display="block",document.hidden||this.core.play()})});i(this,"onMouseMove",()=>{this.options.controlsEnabled&&(this.bumpInteractTime(),this.bar.isHidden()&&this.bar.show())});i(this,"onClick",A=>{const e=A.detail===2&&(A.target instanceof HTMLVideoElement||A.target instanceof HTMLCanvasElement),t=this.options.fullscreenButtonEnabled!==!1&&this.options.controlsEnabled!==!1;e&&t&&this.toggleFullscreen().catch(B=>{console.error("error",B)})});i(this,"togglePip",()=>this.core.pictureInPicture.isActive()?this.core.pictureInPicture.exit():(this.triggerUserInput(),this.core.pictureInPicture.enter()));i(this,"toggleFullscreen",()=>d(this,null,function*(){return this.isInFullscreen()?this.exitFullscreen():this.enterFullscreen()}));i(this,"triggerUserInput",()=>{if(this.browser.platform.isIOS){const A=this.core.muted;this.core.muted=!A,this.core.muted=A}});i(this,"toggleOneToOne",()=>{this.playerElement.classList.contains(La)?this.playerElement.classList.remove(La):this.playerElement.classList.add(La)});i(this,"isInFullscreen",()=>this.state.fullscreen.isFullscreen());i(this,"enterFullscreen",()=>d(this,null,function*(){this.triggerUserInput(),this.iosHackResetSize(),this.bar.fullscreenButton.setIcon("exit"),yield this.state.fullscreen.request(),this.lockOrientation()}));i(this,"exitFullscreen",()=>(this.bar.fullscreenButton.setIcon("enter"),this.unlockOrientation(),this.state.fullscreen.exit()));i(this,"showAirPlayPicker",()=>{var A;(A=this.airPlaySender)==null||A.showPlaybackTargetPicker()});i(this,"lockOrientation",()=>{var e,t;if(!("orientation"in screen)||!screen.orientation.lock)return;const A=this.core.currentRenditionLevel;A!=null&&A.video&&screen.orientation.lock(((e=A==null?void 0:A.video)==null?void 0:e.width)>((t=A==null?void 0:A.video)==null?void 0:t.height)?"landscape-primary":"portrait-primary").catch(()=>{})});i(this,"unlockOrientation",()=>{!("orientation"in screen)||!screen.orientation.unlock||screen.orientation.unlock()});i(this,"checkState",()=>{this.bar.hasFocus()||this.state.lastInteractionTime&&this.state.lastInteractionTime<=Date.now()-this.options.hideTimeout&&this.core.media!=="audio"&&this.core.playbackState!=="paused"&&this.bar.hide()});i(this,"needsThumbnails",()=>{var A,e,t,B,F,n;return(e=(A=this.options.channelSelectionOptions)==null?void 0:A.barButton)!=null&&e.enabled&&((B=(t=this.options.channelSelectionOptions)==null?void 0:t.barButton)!=null&&B.thumbnails)?!0:!!((n=(F=this.options.channelSelectionOptions)==null?void 0:F.list)!=null&&n.enabled)});i(this,"bumpInteractTime",()=>void(this.state.lastInteractionTime=Date.now()));var a,r,E,g,c,J,u;const t=S(S({},sR),e);this.options=t,this.playerElement.className=FR,aR(A)?this.core=A:this.core=new rn(A);const B=!mB.isFullscreenApiSupported(this.playerElement)&&mB.isFullscreenApiSupported(this.core.mediaElement)?this.core.mediaElement:this.playerElement;this.state={isBuffering:!1,fullscreen:new mB(B),lastInteractionTime:0},this.needsThumbnails()&&(this.thumbnailModule=new UR({vindral:this.core,refreshEveryMs:e==null?void 0:e.thumbnailUpdateInterval}),this.thumbnailModule.start()),(r=(a=this.options.channelSelectionOptions)==null?void 0:a.list)!=null&&r.enabled&&(this.channelSelectionList=new tR({vindral:this.core,thumbnailModule:this.thumbnailModule}));const F=(e==null?void 0:e.channelSelectionEnabled)||((g=(E=e==null?void 0:e.channelSelectionOptions)==null?void 0:E.barButton)==null?void 0:g.enabled),n=(J=(c=e==null?void 0:e.channelSelectionOptions)==null?void 0:c.barButton)==null?void 0:J.thumbnails;this.bar=new PC(O(S({vindral:this.core,thumbnailModule:this.thumbnailModule},t),{channelSelectionEnabled:F,channelSelectionThumbnails:n,fullscreenButtonEnabled:this.core.media!=="audio"&&(e==null?void 0:e.fullscreenButtonEnabled)&&this.state.fullscreen.isSupported(),oneToOneButtonEnabled:this.core.media!=="audio"&&(e==null?void 0:e.oneToOneButtonEnabled),pipButtonEnabled:(e==null?void 0:e.pipButtonEnabled)&&this.core.pictureInPicture.isSupported(),onFullscreenClicked:()=>void this.toggleFullscreen().catch(D=>console.error("error",D)),onOneToOneClicked:()=>this.toggleOneToOne(),onPipClicked:()=>void this.togglePip().catch(D=>console.error("error",D)),onAirPlayClicked:()=>this.showAirPlayPicker()})),this.core.media==="audio"&&(this.playerElement.classList.add(nR),this.options.controlsEnabled&&this.bar.show());const s=this.core.getCastOptions();this.castSender=new To({background:this.options.castBackground,receiverApplicationId:this.options.castReceiverApplicationId,options:s}),this.setupCastSender(),this.options.airPlayButtonEnabled&&Fr.isAirPlaySupported()&&(this.airPlaySender=new Fr({url:s.url,channelId:s.channelId,authenticationToken:s.authenticationToken,container:this.playerElement}),this.setupAirPlaySender(this.airPlaySender)),this.core.on("needs user input",D=>{var T;if(this.bar.updateState(),D.forVideo&&this.core.media!=="audio"||!this.options.controlsEnabled){(T=this.playOverlay)==null||T.show();return}D.forAudio&&this.options.controlsEnabled&&(this.state.lastInteractionTime=0,this.bar.show())}),this.core.on("volume state",()=>{this.bar.updateState()}),this.core.on("playback state",D=>{var T,L,Z,M,H,Y;switch(this.bar.updateState(),D){case"paused":this.bumpInteractTime(),(T=this.bufferingOverlay)==null||T.hide(),this.options.controlsEnabled&&this.bar.show(),(this.core.media!=="audio"||!this.options.controlsEnabled)&&((L=this.playOverlay)==null||L.show());break;case"playing":this.options.controlsEnabled&&((Z=this.playOverlay)==null||Z.hide()),(M=this.bufferingOverlay)==null||M.hide(),this.castOverlay.hide();break;case"buffering":{(H=this.bufferingOverlay)==null||H.show();const P=this.core.videoBufferedRanges[this.core.videoBufferedRanges.length-1],VA=!P||P.start>this.core.currentTime;(Y=this.bufferingOverlay)==null||Y.fullscreen(VA);break}}}),this.core.attach(this.playerElement),this.castOverlay.attach(this.playerElement),this.options.bufferingOverlayEnabled&&(this.bufferingOverlay=new Ur,this.bufferingOverlay.attach(this.playerElement)),this.options.playOverlayEnabled&&(this.playOverlay=new BR,this.playOverlay.attach(this.playerElement),this.playOverlay.onClick=()=>{var D;this.core.userInput(),(D=this.playOverlay)==null||D.hide()}),this.channelSelectionList&&this.channelSelectionList.attach(this.playerElement),this.bar.attach(this.playerElement),this.playerElement.addEventListener("click",this.onClick),this.playerElement.addEventListener("mousemove",this.onMouseMove),this.state.fullscreen.on("on fullscreen change",D=>{D?this.bar.fullscreenButton.setIcon("exit"):this.bar.fullscreenButton.setIcon("enter")}),(u=this.bufferingOverlay)==null||u.fullscreen(!0)}iosHackResetSize(){this.core.emitter.emit("ios-hack: reset size")}}var lR=function(){var Q=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(A){A=A||{};var e;e||(e=typeof A!="undefined"?A:{});var t,B;e.ready=new Promise(function(N,v){t=N,B=v});var F={},n;for(n in e)e.hasOwnProperty(n)&&(F[n]=e[n]);var s="";typeof document!="undefined"&&document.currentScript&&(s=document.currentScript.src),Q&&(s=Q),s.indexOf("blob:")!==0?s=s.substr(0,s.lastIndexOf("/")+1):s="";var a=e.print||console.log.bind(console),r=e.printErr||console.warn.bind(console);for(n in F)F.hasOwnProperty(n)&&(e[n]=F[n]);F=null;var E;e.wasmBinary&&(E=e.wasmBinary),e.noExitRuntime,typeof WebAssembly!="object"&&VA("no native wasm support detected");var g,c=!1,J=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,u,D,T,L=[],Z=[],M=[];function H(){var N=e.preRun.shift();L.unshift(N)}var Y=0,P=null;e.preloadedImages={},e.preloadedAudios={};function VA(N){throw e.onAbort&&e.onAbort(N),r(N),c=!0,N=new WebAssembly.RuntimeError("abort("+N+"). Build with -s ASSERTIONS=1 for more info."),B(N),N}function FA(N){return N.startsWith("data:application/octet-stream;base64,")}var uA="data:application/octet-stream;base64,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cSELA0AgUCAJQQJ0IgJqIgEgWCABKgIAkiJVIAIgEWoqAgAiVCBUIFVeGzgCACBQIAJBBHIiAmoiASBYIAEqAgCSIlUgAiARaioCACJUIFQgVV4bOAIAIAlBAmohCSALQQJrIgsNAAsLIARFDQAgUCAJQQJ0IgJqIgEgWCABKgIAkiJVIAIgEWoqAgAiVCBUIFVeGzgCAAsCQCAAQQFIDQAgAEEDcSEEQQAhCSAAQQFrQQNPBEAgAEF8cSEHA0AgESAJQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgAkEEciIBakEANgIAIAEgK2pBgICAj3w2AgAgASAlakGAgICPfDYCACARIAJBCHIiAWpBADYCACABICtqQYCAgI98NgIAIAEgJWpBgICAj3w2AgAgESACQQxyIgFqQQA2AgAgASArakGAgICPfDYCACABICVqQYCAgI98NgIAIAlBBGohCSAHQQRrIgcNAAsLIARFDQADQCARIAlBAnQiAWpBADYCACABICtqQYCAgI98NgIAIAEgJWpBgICAj3w2AgAgCUEBaiEJIARBAWsiBA0ACwsCQCAXIB1OIgENACAdIBciCWtBA3EiCwRAA0AgESAJQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIAlBAWohCSALQQFrIgsNAAsLIB0gF0F/c2pBA0kNAANAIBEgCUECdCIEakEANgIAIAQgK2pBgICAj3w2AgAgBCAlakGAgICPfDYCACARIARBBGoiAmpBADYCACACICtqQYCAgI98NgIAIAIgJWpBgICAj3w2AgAgESAEQQhqIgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgBEEMaiICakEANgIAIAIgK2pBgICAj3w2AgAgAiAlakGAgICPfDYCACAJQQRqIgkgHUcNAAsLAkAgAEEBSA0AQQAhCSAAQQFHBEAgAEF+cSELA0AgESAJIB1qQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgCUEBciAdakECdCICakEANgIAIAIgK2pBgICAj3w2AgAgAiAlakGAgICPfDYCACAJQQJqIQkgC0ECayILDQALCyAAQQFxRQ0AIBEgCSAdakECdCIA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7xAdLz1MWmp3hZOhsMHR4PAPFSMyPUlWYW53gY2vxtrtSQ5tC20LbQttC20LbQttC20LbQttC20LkwuTC20LHguQDA0MnAvwC/ALwgvCC8ILkwuTC8ILnAtICx4LHgumClAPrg+lC4cMhwx2C/ALHgsyDKwMbQseCzwK+QncCm0LvA19DMILHwzLC0gLbQttC20LbQtIC0gLSAtIC0gLwQq+E74Tdgv1DTkN8AsNDOkKWAxYDJwLHgvRCewJwQpIC0wRNRCMCsEKnAvCC20LHgulC8sLbQttC20LbQtIC6YKJA7LC5wL8AvwCzkL9grwC5AM5wulC9sM2wylC+4MrwtrFJYT7AkKDcYNOQ19DBYMMA2lC4wKVwp/CukKHgtxCtkTNhQHEkwRnAlRC+cLhwxhDH8KtApICx4L6QoeC4wKMgxIC5MLbQttC20LbQuTC5MLkwuTC20LbQuTC5MLkwtqEIcMpQsfDMILSAtIC20LnAs5C2QLywucC8ILfQw5C7AOsA6sDB8MpQtIC20LSAucC3YL6QrpCh4LSAtIC2QKDg+uD4cMMgysDHYL5wuTC5MLDQweC+kK6QrpCukKFAoFD/APHQ28DRYMtArCC3YLMgwNDB4LHgtXClcKHgv2ChsUHhOZDAUPcQ1hDFELVQ17DYwKFApxCrQKHgv2CsEKDRDNDtsMWAxtC0gLSAttC+kKtArpCrQK6QoeC0gL9grZE74T5wvZDawM8AsNDIALHwxRC7QKtAq0Ch4L6Qo8CtUQ1RAsC98JhwwwDTANAwwDDDAN8AseC1cKFAqmCsEK8AtkC/YKSAu0Cn8KUQsfDE4MTgyQDGEM8AvCC5MLHgsXESoPbQtICx4LSAseCx4LSAtIC0gLHgtIC20LSAseC6ULZAtkC6ULpQvwCzIMkAxODPALwgucC5wLnAttC7QKhRA1EO4MEw1tC5MLSAulC6ULHgvpCrQKHgseCx4L6QrwD64PHwzCC20LbQttC0gLbQttCx4LHgseC+kKSAvcCgcS3xFhDHENhwylC1EL3gsyDLQKfwp/Cn8KtArpCowKNRCtEM0OSQ6mCtwKSAtIC8ILnAttCx4Lfwp/CukKSAt3EOINwQoeCx4LSAtIC0gLbQttC0gLbQttC20LkwtICzYUORPVCGgNzQ6XDRMNHgvuDJcNTgxRC5wJtwnBCm0Lew1l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OiBxbiA8PSAyNTYAYXNzZXJ0aW9uIGZhaWxlZDogeCAhPSB5AGNlbHQvY2VsdF9scGMuYwBhc3NlcnRpb24gZmFpbGVkOiAob3JkJjMpPT0wAGFzc2VydGlvbiBmYWlsZWQ6IG4+MABhc3NlcnRpb24gZmFpbGVkOiBvdmVybGFwPj0wAGFzc2VydGlvbiBmYWlsZWQ6IGxlbj49MwAuL2NlbHQvcGl0Y2guaABhc3NlcnRpb24gZmFpbGVkOiBtYXhfcGl0Y2g+MABjZWx0L3BpdGNoLmMAYXNzZXJ0aW9uIGZhaWxlZDogbGVuPjAAYXNzZXJ0aW9uIGZhaWxlZDogbGVuPj0zAC4vY2VsdC9waXRjaC5oAGNlbHQva2lzc19mZnQuYwBhc3NlcnRpb24gZmFpbGVkOiBtPT00AGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5tb2RlID09IG9wdXNfY3VzdG9tX21vZGVfY3JlYXRlKDQ4MDAwLCA5NjAsIE5VTEwpAGNlbHQvY2VsdF9kZWNvZGVyLmMAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPm92ZXJsYXAgPT0gMTIwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5lbmQgPD0gMjEAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPmNoYW5uZWxzID09IDEgfHwgc3QtPmNoYW5uZWxzID09IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0cmVhbV9jaGFubmVscyA9PSAxIHx8IHN0LT5zdHJlYW1fY2hhbm5lbHMgPT0gMgBhc3NlcnRpb24gZmFpbGVkOiBzdC0+ZG93bnNhbXBsZSA+IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0YXJ0ID09IDAgfHwgc3QtPnN0YXJ0ID09IDE3AGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5zdGFydCA8IHN0LT5lbmQAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPmFyY2ggPj0gMABhc3NlcnRpb24gZmFpbGVkOiBzdC0+YXJjaCA8PSBPUFVTX0FSQ0hNQVNLAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5sYXN0X3BpdGNoX2luZGV4IDw9IFBMQ19QSVRDSF9MQUdfTUFYAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5sYXN0X3BpdGNoX2luZGV4ID49IFBMQ19QSVRDSF9MQUdfTUlOIHx8IHN0LT5sYXN0X3BpdGNoX2luZGV4ID09IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfcGVyaW9kIDwgTUFYX1BFUklPRABhc3NlcnRpb24gZmFpbGVkOiBzdC0+cG9zdGZpbHRlcl9wZXJpb2QgPj0gQ09NQkZJTFRFUl9NSU5QRVJJT0QgfHwgc3QtPnBvc3RmaWx0ZXJfcGVyaW9kID09IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfcGVyaW9kX29sZCA8IE1BWF9QRVJJT0QAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfcGVyaW9kX29sZCA+PSBDT01CRklMVEVSX01JTlBFUklPRCB8fCBzdC0+cG9zdGZpbHRlcl9wZXJpb2Rfb2xkID09IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0IDw9IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0ID49IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0X29sZCA8PSAyAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5wb3N0ZmlsdGVyX3RhcHNldF9vbGQgPj0gMAACAQAZFwIAfnx3bVcpEwkEAgBhc3NlcnRpb24gZmFpbGVkOiBhY2N1bT09MABhc3NlcnRpb24gZmFpbGVkOiBwY21fY291bnQgPT0gZnJhbWVfc2l6ZQBzcmMvb3B1c19kZWNvZGVyLmMAYXNzZXJ0aW9uIGZhaWxlZDogcmV0PT1mcmFtZV9zaXplLXBhY2tldF9mcmFtZV9zaXplAGFzc2VydGlvbiBmYWlsZWQ6IHJldD09cGFja2V0X2ZyYW1lX3NpemUAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPmNoYW5uZWxzID09IDEgfHwgc3QtPmNoYW5uZWxzID09IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkZzID09IDQ4MDAwIHx8IHN0LT5GcyA9PSAyNDAwMCB8fCBzdC0+RnMgPT0gMTYwMDAgfHwgc3QtPkZzID09IDEyMDAwIHx8IHN0LT5GcyA9PSA4MDAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5EZWNDb250cm9sLkFQSV9zYW1wbGVSYXRlID09IHN0LT5GcwBhc3NlcnRpb24gZmFpbGVkOiBzdC0+RGVjQ29udHJvbC5pbnRlcm5hbFNhbXBsZVJhdGUgPT0gMCB8fCBzdC0+RGVjQ29udHJvbC5pbnRlcm5hbFNhbXBsZVJhdGUgPT0gMTYwMDAgfHwgc3QtPkRlY0NvbnRyb2wuaW50ZXJuYWxTYW1wbGVSYXRlID09IDEyMDAwIHx8IHN0LT5EZWNDb250cm9sLmludGVybmFsU2FtcGxlUmF0ZSA9PSA4MDAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5EZWNDb250cm9sLm5DaGFubmVsc0FQSSA9PSBzdC0+Y2hhbm5lbHMAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkRlY0NvbnRyb2wubkNoYW5uZWxzSW50ZXJuYWwgPT0gMCB8fCBzdC0+RGVjQ29udHJvbC5uQ2hhbm5lbHNJbnRlcm5hbCA9PSAxIHx8IHN0LT5EZWNDb250cm9sLm5DaGFubmVsc0ludGVybmFsID09IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkRlY0NvbnRyb2wucGF5bG9hZFNpemVfbXMgPT0gMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSAxMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSAyMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSA0MCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSA2MABhc3NlcnRpb24gZmFpbGVkOiBzdC0+YXJjaCA+PSAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5hcmNoIDw9IE9QVVNfQVJDSE1BU0sAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0cmVhbV9jaGFubmVscyA9PSAxIHx8IHN0LT5zdHJlYW1fY2hhbm5lbHMgPT0gMgBhc3NlcnRpb24gZmFpbGVkOiAwAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMTIsICgoKHZvaWQpKChlbmRiYW5kKSA9PSAob3B1c19pbnQzMikwKSksIChvcHVzX2ludDMyKShlbmRiYW5kKSkpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMDgsICgoKHZvaWQpKChzdC0+c3RyZWFtX2NoYW5uZWxzKSA9PSAob3B1c19pbnQzMikwKSksIChvcHVzX2ludDMyKShzdC0+c3RyZWFtX2NoYW5uZWxzKSkpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMTAsICgoKHZvaWQpKCgwKSA9PSAob3B1c19pbnQzMikwKSksIChvcHVzX2ludDMyKSgwKSkpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgNDAzMSwgKCgmcmVkdW5kYW50X3JuZykgKyAoKCZyZWR1bmRhbnRfcm5nKSAtIChvcHVzX3VpbnQzMiopKCZyZWR1bmRhbnRfcm5nKSkpKSkgPT0gT1BVU19PSwBhc3NlcnRpb24gZmFpbGVkOiAob3B1c19jdXN0b21fZGVjb2Rlcl9jdGwoY2VsdF9kZWMsIDEwMDEwLCAoKCh2b2lkKSgoc3RhcnRfYmFuZCkgPT0gKG9wdXNfaW50MzIpMCkpLCAob3B1c19pbnQzMikoc3RhcnRfYmFuZCkpKSkgPT0gT1BVU19PSwBhc3NlcnRpb24gZmFpbGVkOiAob3B1c19jdXN0b21fZGVjb2Rlcl9jdGwoY2VsdF9kZWMsIDQwMjgpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMTUsICgoJmNlbHRfbW9kZSkgKyAoKCZjZWx0X21vZGUpIC0gKGNvbnN0IE9wdXNDdXN0b21Nb2RlKiopKCZjZWx0X21vZGUpKSkpKSA9PSBPUFVTX09LAEHwowILAQUAQfyjAgsBAQBBlKQCCwoCAAAAAwAAAHSTAEGspAILAQIAQbukAgsF//////8AQaymAgsCnJMAQeSmAgsDsJVQ";if(!FA(uA)){var Fe=uA;uA=e.locateFile?e.locateFile(Fe,s):s+Fe}function R(){var N=uA;try{if(N==uA&&E)return new Uint8Array(E);if(FA(N))try{var v=K(N.slice(37)),AA=new Uint8Array(v.length);for(N=0;N<v.length;++N)AA[N]=v.charCodeAt(N);var nA=AA}catch(UA){throw Error("Converting base64 string to bytes failed.")}else nA=void 0;var f=nA;if(f)return f;throw"both async and sync fetching of the wasm failed"}catch(UA){VA(UA)}}function W(){return E||typeof fetch!="function"?Promise.resolve().then(function(){return R()}):fetch(uA,{credentials:"same-origin"}).then(function(N){if(!N.ok)throw"failed to load wasm binary file at '"+uA+"'";return N.arrayBuffer()}).catch(function(){return R()})}function x(N){for(;0<N.length;){var v=N.shift();if(typeof v=="function")v(e);else{var AA=v.s;typeof AA=="number"?v.o===void 0?T.get(AA)():T.get(AA)(v.o):AA(v.o===void 0?null:v.o)}}}var tA=[null,[],[]],K=typeof atob=="function"?atob:function(N){var v="",AA=0;N=N.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var nA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(AA++)),f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(AA++)),UA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(AA++)),oB="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N.charAt(AA++));nA=nA<<2|f>>4,f=(f&15)<<4|UA>>2;var lB=(UA&3)<<6|oB;v+=String.fromCharCode(nA),UA!==64&&(v+=String.fromCharCode(f)),oB!==64&&(v+=String.fromCharCode(lB))}while(AA<N.length);return v},j={d:function(){VA()},f:function(N,v,AA){u.copyWithin(N,v,v+AA)},c:function(){return!1},e:function(){return 0},b:function(){},a:function(N,v,AA,nA){for(var f=0,UA=0;UA<AA;UA++){for(var oB=D[v+8*UA>>2],lB=D[v+(8*UA+4)>>2],EF=0;EF<lB;EF++){var gF=u[oB+EF],to=tA[N];if(gF===0||gF===10){gF=N===1?a:r;for(var Le=to,Bt=0,fQ=Bt+NaN,rB=Bt;Le[rB]&&!(rB>=fQ);)++rB;if(16<rB-Bt&&Le.subarray&&J)Le=J.decode(Le.subarray(Bt,rB));else{for(fQ="";Bt<rB;){var _A=Le[Bt++];if(_A&128){var Qo=Le[Bt++]&63;if((_A&224)==192)fQ+=String.fromCharCode((_A&31)<<6|Qo);else{var br=Le[Bt++]&63;_A=(_A&240)==224?(_A&15)<<12|Qo<<6|br:(_A&7)<<18|Qo<<12|br<<6|Le[Bt++]&63,65536>_A?fQ+=String.fromCharCode(_A):(_A-=65536,fQ+=String.fromCharCode(55296|_A>>10,56320|_A&1023))}}else fQ+=String.fromCharCode(_A)}Le=fQ}gF(Le),to.length=0}else to.push(gF)}f+=lB}return D[nA>>2]=f,0}};(function(){function N(f){e.asm=f.exports,g=e.asm.g,f=g.buffer,e.HEAP8=new Int8Array(f),e.HEAP16=new Int16Array(f),e.HEAP32=D=new Int32Array(f),e.HEAPU8=u=new Uint8Array(f),e.HEAPU16=new Uint16Array(f),e.HEAPU32=new Uint32Array(f),e.HEAPF32=new Float32Array(f),e.HEAPF64=new Float64Array(f),T=e.asm.n,Z.unshift(e.asm.h),Y--,e.monitorRunDependencies&&e.monitorRunDependencies(Y),Y==0&&P&&(f=P,P=null,f())}function v(f){N(f.instance)}function AA(f){return W().then(function(UA){return WebAssembly.instantiate(UA,nA)}).then(f,function(UA){r("failed to asynchronously prepare wasm: "+UA),VA(UA)})}var nA={a:j};if(Y++,e.monitorRunDependencies&&e.monitorRunDependencies(Y),e.instantiateWasm)try{return e.instantiateWasm(nA,N)}catch(f){return r("Module.instantiateWasm callback failed with error: "+f),!1}return function(){return E||typeof WebAssembly.instantiateStreaming!="function"||FA(uA)||typeof fetch!="function"?AA(v):fetch(uA,{credentials:"same-origin"}).then(function(f){return WebAssembly.instantiateStreaming(f,nA).then(v,function(UA){return r("wasm streaming compile failed: "+UA),r("falling back to ArrayBuffer instantiation"),AA(v)})})}().catch(B),{}})(),e.___wasm_call_ctors=function(){return(e.___wasm_call_ctors=e.asm.h).apply(null,arguments)},e._opus_decoder_create=function(){return(e._opus_decoder_create=e.asm.i).apply(null,arguments)},e._opus_decode_float=function(){return(e._opus_decode_float=e.asm.j).apply(null,arguments)},e._opus_decoder_destroy=function(){return(e._opus_decoder_destroy=e.asm.k).apply(null,arguments)},e._malloc=function(){return(e._malloc=e.asm.l).apply(null,arguments)},e._free=function(){return(e._free=e.asm.m).apply(null,arguments)};var aA;P=function N(){aA||fA(),aA||(P=N)};function fA(){function N(){if(!aA&&(aA=!0,e.calledRun=!0,!c)){if(x(Z),t(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;){var v=e.postRun.shift();M.unshift(v)}x(M)}}if(!(0<Y)){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)H();x(L),0<Y||(e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),N()},1)):N())}}if(e.run=fA,e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.pop()();return fA(),A.ready}}(),Rr=(Q=>(Q[Q.OK=0]="OK",Q[Q["Bad argument"]=-1]="Bad argument",Q[Q["Buffer too small"]=-2]="Buffer too small",Q[Q["Internal error"]=-3]="Internal error",Q[Q["Invalid packet"]=-4]="Invalid packet",Q[Q.Unimplemented=-5]="Unimplemented",Q[Q["Invalid state"]=-6]="Invalid state",Q[Q["Memory allocation fail"]=-7]="Memory allocation fail",Q))(Rr||{});const Ve=class Ve{constructor(A,e,t){i(this,"opusModule");i(this,"decoderInstance");i(this,"opusBufferPointer");i(this,"pcmBufferPointer");i(this,"opus");i(this,"pcm");i(this,"channels");i(this,"sampleRate");i(this,"pcmBufferByteSize",()=>Ve.MAX_SAMPLES*this.channels*Float32Array.BYTES_PER_ELEMENT);i(this,"unload",()=>{this.opusModule._free(this.opusBufferPointer),this.opusModule._free(this.pcmBufferPointer),this.opusModule._opus_decoder_destroy(this.decoderInstance)});i(this,"decode",A=>{this.opusModule.HEAPU8.set(new Uint8Array(A),this.opusBufferPointer);const e=this.opusModule._opus_decode_float(this.decoderInstance,this.opusBufferPointer,A.byteLength,this.pcmBufferPointer,Ve.MAX_SAMPLES,0);if(e<0)throw new Error(Rr[e]);return this.pcm.subarray(0,e*this.channels)});this.opusModule=A,this.channels=t,this.sampleRate=e,this.decoderInstance=this.opusModule._opus_decoder_create(e,t,0),this.opusBufferPointer=this.opusModule._malloc(Ve.MAX_OPUS_BUFFER),this.opus=this.opusModule.HEAPU8.subarray(this.opusBufferPointer,this.opusBufferPointer+Ve.MAX_OPUS_BUFFER),this.pcmBufferPointer=this.opusModule._malloc(this.pcmBufferByteSize());const B=this.pcmBufferPointer/Float32Array.BYTES_PER_ELEMENT;this.pcm=this.opusModule.HEAPF32.subarray(B,B+this.pcmBufferByteSize()/Float32Array.BYTES_PER_ELEMENT)}};i(Ve,"MAX_OPUS_BUFFER",1e3*1e3),i(Ve,"MAX_SAMPLES",6*960),i(Ve,"create",(A,e)=>d(Ve,null,function*(){return new Ve(yield lR(),A,e)}));let Ha=Ve;const rF=class rF{constructor(A){i(this,"decodedSamples",[]);i(this,"decoder");i(this,"errors",new w(10));i(this,"unload",()=>{this.decoder.unload()});i(this,"enqueue",A=>{try{const e=Date.now(),t=this.decoder.decode(A.data);this.decodedSamples.push(O(S({},A),{type:"audio",format:"f32",data:t,statistics:{decodeTime:Date.now()-e,transportTimeFromWorker:0,transportTimeToWorker:0,samplesInBatch:1}}))}catch(e){e instanceof Error&&this.errors.push(Yo(!1,e))}});i(this,"initSegment",V);i(this,"take",()=>this.decodedSamples.shift());this.decoder=A}error(){return this.errors.pop()}};i(rF,"create",(A,e)=>d(rF,null,function*(){return new rF(yield Ha.create(A,e))}));let Ya=rF;const rR=Object.freeze(Object.defineProperty({__proto__:null,OpusDecoderContext:Ya},Symbol.toStringTag,{value:"Module"})),hr="dmFyIE1BPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxjQT1PYmplY3QuZGVmaW5lUHJvcGVydGllczt2YXIgcUE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM7dmFyIFNBPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIFlBPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksS0E9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTt2YXIgQUE9KHQsaCxOKT0+aCBpbiB0P01BKHQsaCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Tn0pOnRbaF09TixJQT0odCxoKT0+e2Zvcih2YXIgTiBpbiBofHwoaD17fSkpWUEuY2FsbChoLE4pJiZBQSh0LE4saFtOXSk7aWYoU0EpZm9yKHZhciBOIG9mIFNBKGgpKUtBLmNhbGwoaCxOKSYmQUEodCxOLGhbTl0pO3JldHVybiB0fSxnQT0odCxoKT0+Y0EodCxxQShoKSk7dmFyIEQ9KHQsaCxOKT0+QUEodCx0eXBlb2YgaCE9InN5bWJvbCI/aCsiIjpoLE4pO3ZhciBUPSh0LGgsTik9Pm5ldyBQcm9taXNlKChaLHUpPT57dmFyIFg9az0+e3RyeXtLKE4ubmV4dChrKSl9Y2F0Y2goZSl7dShlKX19LFA9az0+e3RyeXtLKE4udGhyb3coaykpfWNhdGNoKGUpe3UoZSl9fSxLPWs9PmsuZG9uZT9aKGsudmFsdWUpOlByb21pc2UucmVzb2x2ZShrLnZhbHVlKS50aGVuKFgsUCk7SygoTj1OLmFwcGx5KHQsaCkpLm5leHQoKSl9KTsoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7Y29uc3QgdD0ibWlzc2luZ19pbml0X3NlZ21lbnQiO2NsYXNzIGggZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihBLEMsRT17fSl7c3VwZXIoQSk7RCh0aGlzLCJwcm9wcyIpO0QodGhpcywiZXh0cmEiLHt9KTtEKHRoaXMsImNvZGUiLCgpPT50aGlzLnByb3BzLmNvZGUpO0QodGhpcywiaXNGYXRhbCIsKCk9PnRoaXMucHJvcHMuaXNGYXRhbCk7RCh0aGlzLCJzb3VyY2UiLCgpPT50aGlzLnByb3BzLnNvdXJjZSk7RCh0aGlzLCJ0eXBlIiwoKT0+e3ZhciBBO3JldHVybihBPXRoaXMucHJvcHMudHlwZSkhPW51bGw/QToiZXh0ZXJuYWwifSk7RCh0aGlzLCJ0b1N0cmluZ2lmaWFibGUiLCgpPT57dmFyIEU7Y29uc3QgQT10aGlzLnNvdXJjZSgpLEM9QSBpbnN0YW5jZW9mIEVycm9yP0Euc3RhY2s6dGhpcy5zdGFjaztyZXR1cm4gZ0EoSUEoe30sdGhpcy5leHRyYSkse2NvZGU6dGhpcy5wcm9wcy5jb2RlLGlzRmF0YWw6dGhpcy5wcm9wcy5pc0ZhdGFsLHR5cGU6dGhpcy5wcm9wcy50eXBlLG1lc3NhZ2U6dGhpcy5tZXNzYWdlLHNvdXJjZU1lc3NhZ2U6KEU9dGhpcy5zb3VyY2UoKSk9PW51bGw/dm9pZCAwOkUubWVzc2FnZSxzdGFjazpDfSl9KTt0aGlzLnByb3BzPUMsdGhpcy5leHRyYT1FLE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLG5ldy50YXJnZXQucHJvdG90eXBlKX19Y29uc3QgTj0oUSxnKT0+bmV3IGgoYE5vIGluaXQgc2VnbWVudCBmb3IgcmVuZGl0aW9uIGlkICR7UX0gZm9yIGNoYW5uZWwgJHtnfWAse2lzRmF0YWw6ITEsY29kZTp0LHR5cGU6ImludGVybmFsIn0pLFo9Nyx1PTgsWD1RPT57Y29uc3QgZz1RLmdldFVpbnQzMigwLCExKSxBPVEuZ2V0VWludDgoMCk8PDE2fFEuZ2V0VWludDE2KDEsITEpO2xldCBDPTA7cmV0dXJuIEE9PT0xP0MrPTM6Zz09PTEmJihDKz00KSxDfSxQPVE9PlgobmV3IERhdGFWaWV3KFEsMCkpIT09MCxLPShRLGc9MCk9Pntmb3IobGV0IEE9ZztBPFEuYnl0ZUxlbmd0aC00O0ErKyl7Y29uc3QgQz1RLmdldFVpbnQzMihBKT09PTEsRT0oUS5nZXRVaW50OChBKTw8MTZ8US5nZXRVaW50MTYoQSsxKSk9PT0xO2lmKEN8fEUpcmV0dXJue3Bvc2l0aW9uOkEsbmFsUHJlZml4U2l6ZTpDPzQ6M319fSxrPVE9PlEmMzEsZT0oUSxnKT0+e2NvbnN0IEE9bmV3IERhdGFWaWV3KFEsMCk7bGV0IEM9SyhBKTtmb3IoO0M7KXtjb25zdHtwb3NpdGlvbjpFLG5hbFByZWZpeFNpemU6aX09QyxhPUsoQSxFKzQpLHM9YT9hLnBvc2l0aW9uLUUtaTp2b2lkIDA7aWYoIWcobmV3IERhdGFWaWV3KFEsRStpLHMpLGkpKXJldHVybjtDPWF9fSxoQT0oUSxnKT0+e2NvbnN0IEE9bmV3IERhdGFWaWV3KFEsMCksQz00O2xldCBFPTA7Zm9yKDtFPFEuYnl0ZUxlbmd0aDspe2NvbnN0IGk9QS5nZXRVaW50MzIoRSk7aWYoIWcobmV3IERhdGFWaWV3KFEsRStDLGkpKSlyZXR1cm47RSs9aStDfX0sR0E9UT0+e2NvbnN0IGc9W10sQT1bXTtpZighUChRKSl7Y29uc3QgQz1uZXcgRGF0YVZpZXcoUSwwKSxFPUMuZ2V0VWludDgoNSkmMzE7bGV0IGk9Njtmb3IobGV0IHM9MDtzPEU7cysrKXtjb25zdCBHPUMuZ2V0VWludDE2KGkpO2cucHVzaChRLnNsaWNlKGkrMixpKzIrRykpLGkrPUcrMn1jb25zdCBhPUMuZ2V0VWludDgoaSk7aSs9MTtmb3IobGV0IHM9MDtzPGE7cysrKXtjb25zdCBHPUMuZ2V0VWludDE2KGkpO0EucHVzaChRLnNsaWNlKGkrMixpKzIrRykpLGkrPUcrMn1yZXR1cm57c2VxdWVuY2VQYXJhbWV0ZXJTZXRzOmcscGljdHVyZVBhcmFtZXRlclNldHM6QX19cmV0dXJuIGUoUSxDPT57Y29uc3QgRT1DLmJ5dGVPZmZzZXQrQy5ieXRlTGVuZ3RoO3N3aXRjaChrKEMuZ2V0VWludDgoMCkpKXtjYXNlIHU6QS5wdXNoKEMuYnVmZmVyLnNsaWNlKEMuYnl0ZU9mZnNldCxFKSk7YnJlYWs7Y2FzZSBaOmcucHVzaChDLmJ1ZmZlci5zbGljZShDLmJ5dGVPZmZzZXQsRSkpO2JyZWFrfXJldHVybiEwfSkse3NlcXVlbmNlUGFyYW1ldGVyU2V0czpnLHBpY3R1cmVQYXJhbWV0ZXJTZXRzOkF9fTt2YXIgTkE9ZnVuY3Rpb24oKXt2YXIgUT10eXBlb2YgZG9jdW1lbnQhPSJ1bmRlZmluZWQiJiZkb2N1bWVudC5jdXJyZW50U2NyaXB0P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjOnZvaWQgMDtyZXR1cm4gZnVuY3Rpb24oZyl7Zz1nfHx7fTt2YXIgQTtBfHwoQT10eXBlb2YgZyE9InVuZGVmaW5lZCI/Zzp7fSk7dmFyIEMsRTtBLnJlYWR5PW5ldyBQcm9taXNlKGZ1bmN0aW9uKEksQil7Qz1JLEU9Qn0pO3ZhciBpPXt9LGE7Zm9yKGEgaW4gQSlBLmhhc093blByb3BlcnR5KGEpJiYoaVthXT1BW2FdKTt2YXIgcz0iIixHO3M9c2VsZi5sb2NhdGlvbi5ocmVmLFEmJihzPVEpLHMuaW5kZXhPZigiYmxvYjoiKSE9PTA/cz1zLnN1YnN0cigwLHMubGFzdEluZGV4T2YoIi8iKSsxKTpzPSIiLEc9ZnVuY3Rpb24oSSl7dHJ5e3ZhciBCPW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4gQi5vcGVuKCJHRVQiLEksITEpLEIucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciIsQi5zZW5kKG51bGwpLG5ldyBVaW50OEFycmF5KEIucmVzcG9uc2UpfWNhdGNoKG8pe2lmKEk9YUEoSSkpcmV0dXJuIEk7dGhyb3cgb319O3ZhciBSPUEucHJpbnRFcnJ8fGNvbnNvbGUud2Fybi5iaW5kKGNvbnNvbGUpO2ZvcihhIGluIGkpaS5oYXNPd25Qcm9wZXJ0eShhKSYmKEFbYV09aVthXSk7aT1udWxsO3ZhciBjO0Eud2FzbUJpbmFyeSYmKGM9QS53YXNtQmluYXJ5KSxBLm5vRXhpdFJ1bnRpbWUsdHlwZW9mIFdlYkFzc2VtYmx5IT0ib2JqZWN0IiYmbCgibm8gbmF0aXZlIHdhc20gc3VwcG9ydCBkZXRlY3RlZCIpO3ZhciB3LGI9ITEsbSxxLHIsZCxKLFMsZjtmdW5jdGlvbiBRQSgpe3ZhciBJPXcuYnVmZmVyO209SSxBLkhFQVA4PXE9bmV3IEludDhBcnJheShJKSxBLkhFQVAxNj1kPW5ldyBJbnQxNkFycmF5KEkpLEEuSEVBUDMyPUo9bmV3IEludDMyQXJyYXkoSSksQS5IRUFQVTg9cj1uZXcgVWludDhBcnJheShJKSxBLkhFQVBVMTY9bmV3IFVpbnQxNkFycmF5KEkpLEEuSEVBUFUzMj1uZXcgVWludDMyQXJyYXkoSSksQS5IRUFQRjMyPVM9bmV3IEZsb2F0MzJBcnJheShJKSxBLkhFQVBGNjQ9Zj1uZXcgRmxvYXQ2NEFycmF5KEkpfXZhciB6LENBPVtdLEVBPVtdLGlBPVtdO2Z1bmN0aW9uIFJBKCl7dmFyIEk9QS5wcmVSdW4uc2hpZnQoKTtDQS51bnNoaWZ0KEkpfXZhciBZPTAsVz1udWxsO0EucHJlbG9hZGVkSW1hZ2VzPXt9LEEucHJlbG9hZGVkQXVkaW9zPXt9O2Z1bmN0aW9uIGwoSSl7dGhyb3cgQS5vbkFib3J0JiZBLm9uQWJvcnQoSSksUihJKSxiPSEwLEk9bmV3IFdlYkFzc2VtYmx5LlJ1bnRpbWVFcnJvcigiYWJvcnQoIitJKyIpLiBCdWlsZCB3aXRoIC1zIEFTU0VSVElPTlM9MSBmb3IgbW9yZSBpbmZvLiIpLEUoSSksSX12YXIgeD0iZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LCIsTT0iZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LEFHRnpiUUVBQUFBQllRNWdBbjkvQVg5Z0NYOS9mMzkvZjM5L2Z3QmdBWDhBWUFGL0FYOWdBMzkvZndGL1lBUi9mMzkvQVg5Z0FuOS9BR0FEZjM5L0FHQUVmMzkvZndCZ0JuOS9mMzkvZndCZ0FBQmdDSDkvZjM5L2YzOS9BR0FBQVg5Z0JYOS9mMzkvQVg4Q0RRSUJZUUZoQUFRQllRRmlBQU1ETWpFQUFBUUNBQVVFQlFNQUFRUUhBUU1BQXdBRUNRZ0JCZ29JQUFZRUFnQUJBUUVCQWdjR0Fnc0ZBZzBBQWd3SkF3TUZCQVVCY0FFQkFRVUhBUUdBQW9DQUFnWUpBWDhCUWJERXdBSUxCMEVRQVdNQ0FBRmtBQmtCWlFBSUFXWUFMQUZuQUFvQmFBQXJBV2tBQlFGcUFDb0Jhd0FwQVd3QU1nRnRBREVCYmdBd0FXOEFMd0Z3QUM0QmNRQXRBWElCQUFxT2lnWXg4UUlCQTM4Z0FCQVFJZ0pCZjB3RVFDQUFRUUVRQ3hvZ0FVRUFOZ0lBUVFBUEN3SkFBa0FnQWtHQWdJQ0FCRThFUUNBQVFRTVFDMEYvUmdSQVFRRVBDeUFCSUFKQkhYWkJBWEZCQVdvMkFnQU1BUXNnQWtHQWdJQ0FBazhFUUNBQVFRVVFDMEYvUmdSQVFRRVBDeUFCSUFKQkczWkJBM0ZCQTJvMkFnQU1BUXNnQWtHQWdJQ0FBVThFUUNBQVFRY1FDMEYvUmdSQVFRRVBDeUFCSUFKQkdYWkJCM0ZCQjJvMkFnQU1BUXNDZndKQVFZQ0FnTUFBSWdNZ0FuRU5BRUVCSVFRRFFDQURRUUYySWdORkRRRWdBaUFEY1EwQklBUkJBV29oQkF3QUN3QUxJQVFpQWtFRWFpSURRU0JHQ3dSQUlBRkJBRFlDQUNBQVFTQVFDeHBCQVNFRElBQkJBUkFEUVFGSERRSWdBQkFRSVFJZ0FFRWdFQXRCZjBZTkFnSkFBa0FnQWc0Q0FBRUVDeUFCUVg4MkFnQU1BZ3NnQVVGL05nSUFRUUVQQ3lBQUlBSkJCV29RQ3hvZ0FDQURFQU1pQUVGL1JnUkFRUUVQQ3lBQklBQkJmeUFEZEVGL2MybzJBZ0FMUVFBaEF3c2dBd3VJQWdFSGZ5QUFLQUlFSVFRQ1FDQUFLQUlNUVFOMElnY2dBQ2dDRUNJSWF5SUNRU0JPQkVBZ0JDZ0FBQ0lEUVJoMElBTkJDSFJCZ0lEOEIzRnlJQU5CQ0haQmdQNERjU0FEUVJoMmNuSWhBeUFBS0FJSUlnSkZEUUVnQXlBQ2RDQUVMUUFFUVFnZ0FtdDJjaUVEREFFTElBSkJBVWdFUUF3QkN5QUVMUUFBSUFBb0FnZ2lCVUVZYWlJR2RDRURJQUlnQldwQkNHc2lBa0VCU0EwQUEwQWdCQzBBQVNBR1FRaHJJZ1owSUFOeUlRTWdBa0VJU2lFRklBUkJBV29oQkNBQ1FRaHJJUUlnQlEwQUN3c2dBQ0FCSUFocUlnUTJBaEFnQUNBRVFRZHhOZ0lJUVg4aEFpQUVJQWROQkg4Z0FDQUFLQUlBSUFSQkEzWnFOZ0lFSUFOQklDQUJhM1lGUVg4TEMvSUNBZ0ovQVg0Q1FDQUNSUTBBSUFBZ0Ftb2lBMEVCYXlBQk9nQUFJQUFnQVRvQUFDQUNRUU5KRFFBZ0EwRUNheUFCT2dBQUlBQWdBVG9BQVNBRFFRTnJJQUU2QUFBZ0FDQUJPZ0FDSUFKQkIwa05BQ0FEUVFScklBRTZBQUFnQUNBQk9nQURJQUpCQ1VrTkFDQUFRUUFnQUd0QkEzRWlCR29pQXlBQlFmOEJjVUdCZ29RSWJDSUJOZ0lBSUFNZ0FpQUVhMEY4Y1NJRWFpSUNRUVJySUFFMkFnQWdCRUVKU1EwQUlBTWdBVFlDQ0NBRElBRTJBZ1FnQWtFSWF5QUJOZ0lBSUFKQkRHc2dBVFlDQUNBRVFSbEpEUUFnQXlBQk5nSVlJQU1nQVRZQ0ZDQURJQUUyQWhBZ0F5QUJOZ0lNSUFKQkVHc2dBVFlDQUNBQ1FSUnJJQUUyQWdBZ0FrRVlheUFCTmdJQUlBSkJIR3NnQVRZQ0FDQUVJQU5CQkhGQkdISWlCR3NpQWtFZ1NRMEFJQUd0UW9HQWdJQVFmaUVGSUFNZ0JHb2hBUU5BSUFFZ0JUY0RHQ0FCSUFVM0F4QWdBU0FGTndNSUlBRWdCVGNEQUNBQlFTQnFJUUVnQWtFZ2F5SUNRUjlMRFFBTEN5QUFDOHdNQVFkL0FrQWdBRVVOQUNBQVFRaHJJZ01nQUVFRWF5Z0NBQ0lCUVhoeElnQnFJUVVDUUNBQlFRRnhEUUFnQVVFRGNVVU5BU0FESUFNb0FnQWlBV3NpQTBISXdBQW9BZ0JKRFFFZ0FDQUJhaUVBSUFOQnpNQUFLQUlBUndSQUlBRkIvd0ZOQkVBZ0F5Z0NDQ0lDSUFGQkEzWWlCRUVEZEVIZ3dBQnFSaG9nQWlBREtBSU1JZ0ZHQkVCQnVNQUFRYmpBQUNnQ0FFRitJQVIzY1RZQ0FBd0RDeUFDSUFFMkFnd2dBU0FDTmdJSURBSUxJQU1vQWhnaEJnSkFJQU1nQXlnQ0RDSUJSd1JBSUFNb0FnZ2lBaUFCTmdJTUlBRWdBallDQ0F3QkN3SkFJQU5CRkdvaUFpZ0NBQ0lFRFFBZ0EwRVFhaUlDS0FJQUlnUU5BRUVBSVFFTUFRc0RRQ0FDSVFjZ0JDSUJRUlJxSWdJb0FnQWlCQTBBSUFGQkVHb2hBaUFCS0FJUUlnUU5BQXNnQjBFQU5nSUFDeUFHUlEwQkFrQWdBeUFES0FJY0lnSkJBblJCNk1JQWFpSUVLQUlBUmdSQUlBUWdBVFlDQUNBQkRRRkJ2TUFBUWJ6QUFDZ0NBRUYrSUFKM2NUWUNBQXdEQ3lBR1FSQkJGQ0FHS0FJUUlBTkdHMm9nQVRZQ0FDQUJSUTBDQ3lBQklBWTJBaGdnQXlnQ0VDSUNCRUFnQVNBQ05nSVFJQUlnQVRZQ0dBc2dBeWdDRkNJQ1JRMEJJQUVnQWpZQ0ZDQUNJQUUyQWhnTUFRc2dCU2dDQkNJQlFRTnhRUU5IRFFCQndNQUFJQUEyQWdBZ0JTQUJRWDV4TmdJRUlBTWdBRUVCY2pZQ0JDQUFJQU5xSUFBMkFnQVBDeUFESUFWUERRQWdCU2dDQkNJQlFRRnhSUTBBQWtBZ0FVRUNjVVVFUUNBRlFkREFBQ2dDQUVZRVFFSFF3QUFnQXpZQ0FFSEV3QUJCeE1BQUtBSUFJQUJxSWdBMkFnQWdBeUFBUVFGeU5nSUVJQU5Cek1BQUtBSUFSdzBEUWNEQUFFRUFOZ0lBUWN6QUFFRUFOZ0lBRHdzZ0JVSE13QUFvQWdCR0JFQkJ6TUFBSUFNMkFnQkJ3TUFBUWNEQUFDZ0NBQ0FBYWlJQU5nSUFJQU1nQUVFQmNqWUNCQ0FBSUFOcUlBQTJBZ0FQQ3lBQlFYaHhJQUJxSVFBQ1FDQUJRZjhCVFFSQUlBVW9BZ2dpQWlBQlFRTjJJZ1JCQTNSQjRNQUFha1lhSUFJZ0JTZ0NEQ0lCUmdSQVFiakFBRUc0d0FBb0FnQkJmaUFFZDNFMkFnQU1BZ3NnQWlBQk5nSU1JQUVnQWpZQ0NBd0JDeUFGS0FJWUlRWUNRQ0FGSUFVb0Fnd2lBVWNFUUNBRktBSUlJZ0pCeU1BQUtBSUFTUm9nQWlBQk5nSU1JQUVnQWpZQ0NBd0JDd0pBSUFWQkZHb2lBaWdDQUNJRURRQWdCVUVRYWlJQ0tBSUFJZ1FOQUVFQUlRRU1BUXNEUUNBQ0lRY2dCQ0lCUVJScUlnSW9BZ0FpQkEwQUlBRkJFR29oQWlBQktBSVFJZ1FOQUFzZ0IwRUFOZ0lBQ3lBR1JRMEFBa0FnQlNBRktBSWNJZ0pCQW5SQjZNSUFhaUlFS0FJQVJnUkFJQVFnQVRZQ0FDQUJEUUZCdk1BQVFiekFBQ2dDQUVGK0lBSjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQVZHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0JTZ0NFQ0lDQkVBZ0FTQUNOZ0lRSUFJZ0FUWUNHQXNnQlNnQ0ZDSUNSUTBBSUFFZ0FqWUNGQ0FDSUFFMkFoZ0xJQU1nQUVFQmNqWUNCQ0FBSUFOcUlBQTJBZ0FnQTBITXdBQW9BZ0JIRFFGQndNQUFJQUEyQWdBUEN5QUZJQUZCZm5FMkFnUWdBeUFBUVFGeU5nSUVJQUFnQTJvZ0FEWUNBQXNnQUVIL0FVMEVRQ0FBUVFOMklnRkJBM1JCNE1BQWFpRUFBbjlCdU1BQUtBSUFJZ0pCQVNBQmRDSUJjVVVFUUVHNHdBQWdBU0FDY2pZQ0FDQUFEQUVMSUFBb0FnZ0xJUUlnQUNBRE5nSUlJQUlnQXpZQ0RDQURJQUEyQWd3Z0F5QUNOZ0lJRHd0Qkh5RUNJQU5DQURjQ0VDQUFRZi8vL3dkTkJFQWdBRUVJZGlJQklBRkJnUDQvYWtFUWRrRUljU0lCZENJQ0lBSkJnT0FmYWtFUWRrRUVjU0lDZENJRUlBUkJnSUFQYWtFUWRrRUNjU0lFZEVFUGRpQUJJQUp5SUFSeWF5SUJRUUYwSUFBZ0FVRVZhblpCQVhGeVFSeHFJUUlMSUFNZ0FqWUNIQ0FDUVFKMFFlakNBR29oQVFKQUFrQUNRRUc4d0FBb0FnQWlCRUVCSUFKMElnZHhSUVJBUWJ6QUFDQUVJQWR5TmdJQUlBRWdBellDQUNBRElBRTJBaGdNQVFzZ0FFRUFRUmtnQWtFQmRtc2dBa0VmUmh0MElRSWdBU2dDQUNFQkEwQWdBU0lFS0FJRVFYaHhJQUJHRFFJZ0FrRWRkaUVCSUFKQkFYUWhBaUFFSUFGQkJIRnFJZ2RCRUdvb0FnQWlBUTBBQ3lBSElBTTJBaEFnQXlBRU5nSVlDeUFESUFNMkFnd2dBeUFETmdJSURBRUxJQVFvQWdnaUFDQUROZ0lNSUFRZ0F6WUNDQ0FEUVFBMkFoZ2dBeUFFTmdJTUlBTWdBRFlDQ0F0QjJNQUFRZGpBQUNnQ0FFRUJheUlBUVg4Z0FCczJBZ0FMQzNRQkFuOGpBRUVRYXlJQ0pBQWdBa0VBTmdJTUlBQWdBa0VNYWhBQ0lRQUNmeUFDS0FJTUlnTkJmMFlFUUVFQklBQkZEUUVhSUFGQmdJQ0FnSGcyQWdCQkFBd0JDMEVCSUFBTkFCb2dBU0FEUVFGcVFRRjJJZ0ZCQUNBQmF5QURRUUZ4R3pZQ0FFRUFDeUVBSUFKQkVHb2tBQ0FBQy9BTEFSUi9JQUZCb0QxcUxRQUFRUXhzSWdaQjFEeHFLQUlBSVFRZ0JrSFFQR29vQWdBZ0FVR1FQR290QUFBaUIzUWhCU0FDUlFSQUlBQWdBQ2dDQUNBRmJEWUNBQXNnQkNBSGRDRUJBa0FDUUNBRFFaei9BM0VFUUNBQUlBWkIyRHhxS0FJQUlBZDBJZ01nQUNnQ1BHdzJBandnQUNBQUtBSTRJQUZzTmdJNFFRRWhBaUFBSUFBb0Fpd2dCV3dpQnlBQUtBSU1JQVZzSWdScUlnd2dBQ2dDSUNBQmJDSU5JQUFvQWpRZ0FXd2lEa0VCZFdvaUVHc2lCallDTENBQUtBSW9JUkVnQUNBRUlBZHJJZ1FnRFVFQmRTQU9heUlOYXlJSE5nSW9JQUFvQWlRaENDQUFJQVFnRFdvaUJEWUNKQ0FBSUFBb0Fod2dBV3dpRGlBQUtBSUlJQUZzSWdwcUloSWdBQ2dDRUNBRGJDSVBJQUFvQWpBZ0Eyd2lDMEVCZFdvaUUyc2lEVFlDSENBQUtBSVlJUWtnQUNBS0lBNXJJZ29nRDBFQmRTQUxheUlQYXlJT05nSVlJQUFvQWhRaEN5QUFJQW9nRDJvaUNqWUNGQ0FBSUFVZ0Myd2lEeUFBS0FJQUlndHFJaFFnQUNnQ0JDQUJiQ0lWSUFFZ0NXd2lDVUVCZFdvaUZtc2lCVFlDRENBQUlBc2dEMnNpQ3lBVlFRRjFJQWxySWdscklnODJBZ2dnQUNBSklBdHFJZ3MyQWdRZ0FDQUJJQWhzSWdnZ0FDZ0NPQ0lKYXlJVklBTWdFV3dpRVVFQmRTQUFLQUk4SWhkcklnTnJJZ0UyQWpnZ0FDQURJQlZxSWdNMkFqUWdBQ0FJSUFscUlnZ2dGMEVCZFNBUmFpSUpheUlSTmdJOElBQWdGQ0FXYWlJVUlBd2dFR29pREd0QklHb2lFQ0FTSUJOcUloSkJBWFVnQ0NBSmFpSUlheUlUYTBFR2RTSUpOZ0lnSUFBZ0VDQVRha0VHZFNJUU5nSVFJQUFnRENBVWFrRWdhaUlNSUFoQkFYVWdFbW9pQ0d0QkJuVWlFallDTUNBQUlBZ2dER3BCQm5VaUREWUNBQ0FNUVlBRWFrSC9CMHNOQWlBUVFZQUVha0gvQjBzTkFpQUpRWUFFYWtIL0Iwc05BaUFTUVlBRWFrSC9CMHNOQWlBQUlBUWdDMnBCSUdvaURDQURRUUYxSUFwcUloQnJRUVoxSWdnMkFqUWdBQ0FMSUFSclFTQnFJZ1FnQ2tFQmRTQURheUlEYTBFR2RTSUtOZ0lrSUFBZ0F5QUVha0VHZFNJRE5nSVVJQUFnRENBUWFrRUdkU0lFTmdJRUlBUkJnQVJxUWY4SFN3MENJQU5CZ0FScVFmOEhTdzBDSUFwQmdBUnFRZjhIU3cwQ0lBaEJnQVJxUWY4SFN3MENJQUFnQnlBUGFrRWdhaUlESUFGQkFYVWdEbW9pQkd0QkJuVWlDallDT0NBQUlBOGdCMnRCSUdvaUJ5QU9RUUYxSUFGcklnRnJRUVoxSWc0MkFpZ2dBQ0FCSUFkcVFRWjFJZ0UyQWhnZ0FDQURJQVJxUVFaMUlnTTJBZ2dnQTBHQUJHcEIvd2RMRFFJZ0FVR0FCR3BCL3dkTERRSWdEa0dBQkdwQi93ZExEUUlnQ2tHQUJHcEIvd2RMRFFJZ0FDQUZJQVpxUVNCcUlnRWdFVUVCZFNBTmFpSURhMEVHZFNJSE5nSThJQUFnQlNBR2EwRWdhaUlGSUExQkFYVWdFV3NpQm10QkJuVWlCRFlDTENBQUlBVWdCbXBCQm5VaUJUWUNIQ0FBSUFFZ0EycEJCblVpQURZQ0RDQUFRWUFFYWtIL0Iwc05BaUFGUVlBRWFrSC9CMHNOQWlBRVFZQUVha0gvQjBzTkFpQUhRWUFFYWtIL0IwME5BUXdDQ3lBRFFlSUFjVVVFUUVFQklRSWdBQ2dDQUVFZ2FrRUdkU0lCUVlBRWFrSC9CMHNOQWlBQUlBRTJBamdnQUNBQk5nSThJQUFnQVRZQ05DQUFJQUUyQWpBZ0FDQUJOZ0lzSUFBZ0FUWUNLQ0FBSUFFMkFpUWdBQ0FCTmdJZ0lBQWdBVFlDSENBQUlBRTJBaGdnQUNBQk5nSVVJQUFnQVRZQ0VDQUFJQUUyQWd3Z0FDQUJOZ0lJSUFBZ0FUWUNCQ0FBSUFFMkFnQU1BUXRCQVNFQ0lBQWdBQ2dDQkNBQmJDSUVJQUFvQWhnZ0FXd2lEVUVCZFdvaUF5QUFLQUlBSWdZZ0FDZ0NGQ0FGYkNJSGFpSUZha0VnYWtFR2RTSUJOZ0l3SUFBZ0JTQURhMEVnYWtFR2RTSUROZ0lNSUFBZ0JFRUJkU0FOYXlJRUlBWWdCMnRxUVNCcVFRWjFJZ1UyQWdRZ0FDQUJOZ0lBSUFBZ0FUWUNJQ0FBSUFVMkFqUWdBQ0FCTmdJUUlBQWdCVFlDSkNBQUlBVTJBaFFnQUNBRE5nSThJQUFnQmlBRUlBZHFhMEVnYWtFR2RTSUdOZ0lJSUFBZ0JqWUNPQ0FBSUFZMkFpZ2dBQ0FHTmdJWUlBQWdBellDTENBQUlBTTJBaHdnQVVHQUJHcEIvd2RMRFFFZ0JVR0FCR3BCL3dkTERRRWdCa0dBQkdwQi93ZExEUUVnQTBHQUJHcEIvd2RMRFFFTFFRQWhBZ3NnQWd1REJBRURmeUFDUVlBRVR3UkFJQUFnQVNBQ0VBQWFJQUFQQ3lBQUlBSnFJUU1DUUNBQUlBRnpRUU54UlFSQUFrQWdBRUVEY1VVRVFDQUFJUUlNQVFzZ0FrRUJTQVJBSUFBaEFnd0JDeUFBSVFJRFFDQUNJQUV0QUFBNkFBQWdBVUVCYWlFQklBSkJBV29pQWtFRGNVVU5BU0FDSUFOSkRRQUxDd0pBSUFOQmZIRWlCRUhBQUVrTkFDQUNJQVJCUUdvaUJVc05BQU5BSUFJZ0FTZ0NBRFlDQUNBQ0lBRW9BZ1EyQWdRZ0FpQUJLQUlJTmdJSUlBSWdBU2dDRERZQ0RDQUNJQUVvQWhBMkFoQWdBaUFCS0FJVU5nSVVJQUlnQVNnQ0dEWUNHQ0FDSUFFb0FodzJBaHdnQWlBQktBSWdOZ0lnSUFJZ0FTZ0NKRFlDSkNBQ0lBRW9BaWcyQWlnZ0FpQUJLQUlzTmdJc0lBSWdBU2dDTURZQ01DQUNJQUVvQWpRMkFqUWdBaUFCS0FJNE5nSTRJQUlnQVNnQ1BEWUNQQ0FCUVVCcklRRWdBa0ZBYXlJQ0lBVk5EUUFMQ3lBQ0lBUlBEUUVEUUNBQ0lBRW9BZ0EyQWdBZ0FVRUVhaUVCSUFKQkJHb2lBaUFFU1EwQUN3d0JDeUFEUVFSSkJFQWdBQ0VDREFFTElBQWdBMEVFYXlJRVN3UkFJQUFoQWd3QkN5QUFJUUlEUUNBQ0lBRXRBQUE2QUFBZ0FpQUJMUUFCT2dBQklBSWdBUzBBQWpvQUFpQUNJQUV0QUFNNkFBTWdBVUVFYWlFQklBSkJCR29pQWlBRVRRMEFDd3NnQWlBRFNRUkFBMEFnQWlBQkxRQUFPZ0FBSUFGQkFXb2hBU0FDUVFGcUlnSWdBMGNOQUFzTElBQUx1UkVCREg4akFFR0FBV3NpQ1NRQUlBQVFFQ0VFUVFFaEJnSkFBa0FDZnlBQ1FRRk5CRUFnQkVFQVNBMENJQVJCR1haQi9nQnhRWUFJYWlBRVFZQ0FnT0FBVHcwQkdpQUVRUlYyUWY0UGNVSEFDR29nQkVHQWdJQUlUdzBCR2lBRVFSRjJRZjcvQVhGQmtBbHFJQVJCZ0lDQUFVOE5BUm9nQkVFUWRrRUJkRUdRQ21vTUFRc2dBa0VEVFFSQUlBUkJmMHdFUUVFQ1FhSVFJQVJCZ0lDQWdBUnhHeUVHREFNTElBUkJHWFpCL2dCeFFkQUthaUFFUVlDQWdJQUJUdzBCR2lBRVFSWjJRZjRIY1VHUUMyb2dCRUdBZ0lBUVR3MEJHaUFFUVJGMlFmNy9BWEZCMEF0cURBRUxJQUpCQjAwRVFDQUVRUmwyUWY0QWNVSFFEV29nQkVILy8vLy9BVXNOQVJvZ0JFRVZka0grRDNGQjBBNXFEQUVMSUFSQkdYWkIvZ0J4UWRBUWFpQUNRUkJORFFBYUlBUkJIWFlpQWdSQUlBSkJBWFJCMEJGcURBRUxJQVJCRjNaQi9nTnhRZUFSYWdzdkFRQWlCZzBBUVFFaEN3d0JDMEVCSVFzZ0JrRUxkaUlLSUFOTERRQkJJQ0FHUVI5eElnVnJJUUlDUUNBS1JRUkFRUUFoQmd3QkN5QUVJQVYwSVFRQ1FDQUdRUVYyUVQ5eElnMUZCRUFNQVFzZ0FpQU5TUVJBSUFBZ0JSQUxRWDlHRFFNZ0FCQVFJUVJCSUNFQ0N5QUVJQTEwSVFWQkFTQU5RUUZyZENFSUlBUkJJQ0FOYTNZaEJBTkFJQWxCUUdzZ0IwRUNkR3BCZjBFQklBUWdDSEViTmdJQUlBZEJBV29oQnlBSVFRRjJJZ2dOQUFzZ0FpQU5heUVDSUFVaEJBc2dCeUFLU1FSQUlBMUJBMGtpRHlBR1FmK3ZBVXR4SVFZRFFDQUNRUTlOQkVBZ0FFRWdJQUpyRUF0QmYwWUVRQXdGQ3lBQUVCQWhCRUVnSVFJTFFRQWhEa0VBSVFVQ2Z3SkFBbjhDUUFKQUlBUkJBRWdOQUVFQklRVWdCRUgvLy8vL0Ewc05BRUVDSVFVZ0JFSC8vLy8vQVVzTkFFRURJUVVnQkVILy8vLy9BRXNOQUVFRUlRVWdCRUgvLy84L1N3MEFRUVVoQlNBRVFmLy8veDlMRFFCQkJpRUZJQVJCLy8vL0Qwc05BRUVISVFVZ0JFSC8vLzhIU3cwQVFRZ2hCU0FFUWYvLy93TkxEUUJCQ1NFRklBUkIvLy8vQVVzTkFFRUtJUVVnQkVILy8vOEFTdzBBUVFzaEJTQUVRZi8vUDBzTkFFRU1JUVVnQkVILy94OUxEUUJCRFNFRklBUkIvLzhQU3cwQUlBUkIvLzhIU3cwQklBUkJnSUI4Y1VHQWdBUkhCRUFNQ1FzZ0JFRVFkQ0VNUVE4Z0JrRUJJQVliSWdaMElRaEJEQ0VGSUFKQkVHc01BZ3NnQlNBR2RDRUlJQUlnQlVFQmFpSUZheUVDSUFRZ0JYUWhCQ0FHQkVBZ0JpRUZJQVFoREF3REMwRUJEQU1MUVE0Z0JuUWhDQ0FHUVFRZ0Joc2hCU0FFUVE5MElRd2dBa0VQYXdzaEFpQUdSU0VPQ3lBQ0lBVlBCSDhnQWlBRmF3VWdBRUVnSUFKckVBdEJmMFlFUUF3R0N5QUFFQkFoREVFZ0lBVnJDeUVDSUF3Z0JYUWhCQ0FNUVNBZ0JXdDJJQWhxSVFoQkFTQUdJQTRiQ3lFR0lBbEJRR3NnQjBFQ2RHcEJBQ0FJUVFKcUlBZ2dCeUFOUmhzZ0NDQVBHeUlNUVFKcVFRRjJJZ1ZySUFVZ0RFRUJjUnMyQWdBZ0JpQUdRUVpKSUFWQkF5QUdRUUZyZEVweGFpRUdJQWRCQVdvaUJ5QUtSdzBBQ3d0QkFDRUlBa0FnQXlBS1RRUkFRUUFoQnd3QkN3SkFJQUpCQ0VzRVFDQUNJUVlNQVF0QklDRUdJQUJCSUNBQ2F4QUxRWDlHRFFNZ0FCQVFJUVFMQWtBQ1FBSi9Ba0FnQTBFRVJ3UkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdDa0VCYXc0T0RnQUJBZ01FQlFZSENBa0tDd3dRQ3lBRVFScDJRZUFTYWd3T0N5QUVRUnAyUWFBVGFnd05DeUFFUVJ0MlFlQVRhZ3dNQ3lBRVFSdDJRWUFVYWd3TEN5QUVRUnAyUWFBVWFnd0tDeUFFUVJwMlFlQVVhZ3dKQ3lBRVFScDJRYUFWYWd3SUN5QUVRUnAyUWVBVmFnd0hDeUFFUVJ0MlFhQVdhZ3dHQ3lBRVFSeDJRY0FXYWd3RkN5QUVRUngyUWRBV2Fnd0VDeUFFUVIxMlFlQVdhZ3dEQ3lBRVFSNTJRZWdXYWd3Q0N5QUVRUUJJQkVCQkFTRUNEQVFMUVJFaEFpQUtRUU5HRFFOQkVpRUNJQVJCLy8vLy93TkxEUU5CSWlFQ0lBcEJBa1lOQTBFelFTTWdCRUdBZ0lDQUFra2JJUUlNQXdzZ0JFRVhka0hBRW1vZ0JFRWJka0dnRW1vZ0JFR0FnSUNBQVVrYkN5MEFBQ0lDRFFFTUJBdEJBVUVSSUFSQmYwb2JJUUlMSUFKQkJIWWhCeUFHSUFKQkQzRWlBMnNoQWlBRUlBTjBJUVFMSUFwQkFXc2lCUVJBQTBBQ1FDQUhCRUFnQWtFS1RRUkFJQUJCSUNBQ2F4QUxRWDlHQkVBTUJ3c2dBQkFRSVFSQklDRUNDd0pBQW44Q1FBSkFBa0FDUUFKQUFrQUNRQ0FIUVFGckRnWUdBQUVDQXdRRkN5QUVRUjUyUWU0V2Fnd0dDeUFFUVI1MlFmSVdhZ3dGQ3lBRVFSMTJRZllXYWd3RUN5QUVRUjEyUWY0V2Fnd0RDeUFFUVIxMlFZWVhhZ3dDQ3dKL1FmTUFJQVJCR1haQjhBQnhheUFFUVlDQWdJQUNUdzBBR2tIMEFDQUVRZi8vLy84QVN3MEFHa0dGQVNBRVFmLy8vejlMRFFBYVFaWUJJQVJCLy8vL0gwc05BQnBCcHdFZ0JFSC8vLzhQU3cwQUdrRzRBU0FFUWYvLy93ZExEUUFhUWNrQklBUkIvLy8vQTBzTkFCcEIyZ0VnQkVILy8vOEJTdzBBR2tFQVFlc0JJQVJCZ0lDQUFVa2JDeUlHUVFSMklBZE5EUUlNQ0FzZ0JFRWZka0hzRm1vTExRQUFJUVlMSUFaRkJFQU1CZ3NnQ1NBSVFRSjBhaUFHUVFSMklnTkJBV28yQWdBZ0J5QURheUVISUFJZ0JrRVBjU0lEYXlFQ0lBUWdBM1FoQkF3QkN5QUpJQWhCQW5ScVFRRTJBZ0JCQUNFSEN5QUlRUUZxSWdnZ0JVY05BQXNnQVNBSFFRSjBhaUFKUVVCcklBVkJBblJxS0FJQU5nSUFRUUVnQjNRaEJpQUZSUTBCSUFwQkFtc2hBeUFGUVFGeEJIOGdBU0FKSUFOQkFuUWlCR29vQWdBZ0Iyb2lCMEVDZEdvZ0NVRkFheUFFYWlnQ0FEWUNBRUVCSUFkMElBWnlJUVlnQ2tFRGF3VWdBd3NoQkNBRFJRMEJBMEFnQVNBSklBUkJBblFpQldvb0FnQWdCMm9pQTBFQ2RHb2dDVUZBYXlBRmFpZ0NBRFlDQUNBQklBa2dCRUVCYXlJRlFRSjBJZ3hxS0FJQUlBTnFJZ2RCQW5ScUlBbEJRR3NnREdvb0FnQTJBZ0JCQVNBRGRDQUdja0VCSUFkMGNpRUdJQVJCQW1zaEJDQUZEUUFMREFFTElBRWdCMEVDZEdvZ0NVRkFheUFGUVFKMGFpZ0NBRFlDQUVFQklBZDBJUVlMSUFCQklDQUNheEFMRFFBZ0JrRVFkQ0FLUVFSMGNpRUxDeUFKUVlBQmFpUUFJQXNMbXk0QkRIOGpBRUVRYXlJTUpBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBZ0FFSDBBVTBFUUVHNHdBQW9BZ0FpQlVFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQ0VFRGRpSUNkaUlCUVFOeEJFQWdBVUYvYzBFQmNTQUNhaUlEUVFOMElnRkI2TUFBYWlnQ0FDSUVRUWhxSVFBQ1FDQUVLQUlJSWdJZ0FVSGd3QUJxSWdGR0JFQkJ1TUFBSUFWQmZpQURkM0UyQWdBTUFRc2dBaUFCTmdJTUlBRWdBallDQ0FzZ0JDQURRUU4wSWdGQkEzSTJBZ1FnQVNBRWFpSUJJQUVvQWdSQkFYSTJBZ1FNRFFzZ0NFSEF3QUFvQWdBaUNrME5BU0FCQkVBQ1FFRUNJQUowSWdCQkFDQUFhM0lnQVNBQ2RIRWlBRUVBSUFCcmNVRUJheUlBSUFCQkRIWkJFSEVpQW5ZaUFVRUZka0VJY1NJQUlBSnlJQUVnQUhZaUFVRUNka0VFY1NJQWNpQUJJQUIySWdGQkFYWkJBbkVpQUhJZ0FTQUFkaUlCUVFGMlFRRnhJZ0J5SUFFZ0FIWnFJZ05CQTNRaUFFSG93QUJxS0FJQUlnUW9BZ2dpQVNBQVFlREFBR29pQUVZRVFFRzR3QUFnQlVGK0lBTjNjU0lGTmdJQURBRUxJQUVnQURZQ0RDQUFJQUUyQWdnTElBUkJDR29oQUNBRUlBaEJBM0kyQWdRZ0JDQUlhaUlDSUFOQkEzUWlBU0FJYXlJRFFRRnlOZ0lFSUFFZ0JHb2dBellDQUNBS0JFQWdDa0VEZGlJQlFRTjBRZURBQUdvaEIwSE13QUFvQWdBaEJBSi9JQVZCQVNBQmRDSUJjVVVFUUVHNHdBQWdBU0FGY2pZQ0FDQUhEQUVMSUFjb0FnZ0xJUUVnQnlBRU5nSUlJQUVnQkRZQ0RDQUVJQWMyQWd3Z0JDQUJOZ0lJQzBITXdBQWdBallDQUVIQXdBQWdBellDQUF3TkMwRzh3QUFvQWdBaUJrVU5BU0FHUVFBZ0JtdHhRUUZySWdBZ0FFRU1ka0VRY1NJQ2RpSUJRUVYyUVFoeElnQWdBbklnQVNBQWRpSUJRUUoyUVFSeElnQnlJQUVnQUhZaUFVRUJka0VDY1NJQWNpQUJJQUIySWdGQkFYWkJBWEVpQUhJZ0FTQUFkbXBCQW5SQjZNSUFhaWdDQUNJQktBSUVRWGh4SUFocklRTWdBU0VDQTBBQ1FDQUNLQUlRSWdCRkJFQWdBaWdDRkNJQVJRMEJDeUFBS0FJRVFYaHhJQWhySWdJZ0F5QUNJQU5KSWdJYklRTWdBQ0FCSUFJYklRRWdBQ0VDREFFTEN5QUJJQWhxSWdrZ0FVME5BaUFCS0FJWUlRc2dBU0FCS0FJTUlnUkhCRUFnQVNnQ0NDSUFRY2pBQUNnQ0FFa2FJQUFnQkRZQ0RDQUVJQUEyQWdnTURBc2dBVUVVYWlJQ0tBSUFJZ0JGQkVBZ0FTZ0NFQ0lBUlEwRUlBRkJFR29oQWdzRFFDQUNJUWNnQUNJRVFSUnFJZ0lvQWdBaUFBMEFJQVJCRUdvaEFpQUVLQUlRSWdBTkFBc2dCMEVBTmdJQURBc0xRWDhoQ0NBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFSVFiekFBQ2dDQUNJSlJRMEFRUjhoQlVFQUlBaHJJUU1DUUFKQUFrQUNmeUFJUWYvLy93ZE5CRUFnQUVFSWRpSUFJQUJCZ1A0L2FrRVFka0VJY1NJQ2RDSUFJQUJCZ09BZmFrRVFka0VFY1NJQmRDSUFJQUJCZ0lBUGFrRVFka0VDY1NJQWRFRVBkaUFCSUFKeUlBQnlheUlBUVFGMElBZ2dBRUVWYW5aQkFYRnlRUnhxSVFVTElBVkJBblJCNk1JQWFpZ0NBQ0lDUlFzRVFFRUFJUUFNQVF0QkFDRUFJQWhCQUVFWklBVkJBWFpySUFWQkgwWWJkQ0VCQTBBQ1FDQUNLQUlFUVhoeElBaHJJZ2NnQTA4TkFDQUNJUVFnQnlJRERRQkJBQ0VESUFJaEFBd0RDeUFBSUFJb0FoUWlCeUFISUFJZ0FVRWRka0VFY1dvb0FoQWlBa1liSUFBZ0J4c2hBQ0FCUVFGMElRRWdBZzBBQ3dzZ0FDQUVja1VFUUVFQ0lBVjBJZ0JCQUNBQWEzSWdDWEVpQUVVTkF5QUFRUUFnQUd0eFFRRnJJZ0FnQUVFTWRrRVFjU0lDZGlJQlFRVjJRUWh4SWdBZ0FuSWdBU0FBZGlJQlFRSjJRUVJ4SWdCeUlBRWdBSFlpQVVFQmRrRUNjU0lBY2lBQklBQjJJZ0ZCQVhaQkFYRWlBSElnQVNBQWRtcEJBblJCNk1JQWFpZ0NBQ0VBQ3lBQVJRMEJDd05BSUFBb0FnUkJlSEVnQ0dzaUFTQURTU0VDSUFFZ0F5QUNHeUVESUFBZ0JDQUNHeUVFSUFBb0FoQWlBUVIvSUFFRklBQW9BaFFMSWdBTkFBc0xJQVJGRFFBZ0EwSEF3QUFvQWdBZ0NHdFBEUUFnQkNBSWFpSUdJQVJORFFFZ0JDZ0NHQ0VGSUFRZ0JDZ0NEQ0lCUndSQUlBUW9BZ2dpQUVISXdBQW9BZ0JKR2lBQUlBRTJBZ3dnQVNBQU5nSUlEQW9MSUFSQkZHb2lBaWdDQUNJQVJRUkFJQVFvQWhBaUFFVU5CQ0FFUVJCcUlRSUxBMEFnQWlFSElBQWlBVUVVYWlJQ0tBSUFJZ0FOQUNBQlFSQnFJUUlnQVNnQ0VDSUFEUUFMSUFkQkFEWUNBQXdKQ3lBSVFjREFBQ2dDQUNJQ1RRUkFRY3pBQUNnQ0FDRURBa0FnQWlBSWF5SUJRUkJQQkVCQndNQUFJQUUyQWdCQnpNQUFJQU1nQ0dvaUFEWUNBQ0FBSUFGQkFYSTJBZ1FnQWlBRGFpQUJOZ0lBSUFNZ0NFRURjallDQkF3QkMwSE13QUJCQURZQ0FFSEF3QUJCQURZQ0FDQURJQUpCQTNJMkFnUWdBaUFEYWlJQUlBQW9BZ1JCQVhJMkFnUUxJQU5CQ0dvaEFBd0xDeUFJUWNUQUFDZ0NBQ0lHU1FSQVFjVEFBQ0FHSUFocklnRTJBZ0JCME1BQVFkREFBQ2dDQUNJQ0lBaHFJZ0EyQWdBZ0FDQUJRUUZ5TmdJRUlBSWdDRUVEY2pZQ0JDQUNRUWhxSVFBTUN3dEJBQ0VBSUFoQkwyb2lDUUovUVpERUFDZ0NBQVJBUVpqRUFDZ0NBQXdCQzBHY3hBQkNmemNDQUVHVXhBQkNnS0NBZ0lDQUJEY0NBRUdReEFBZ0RFRU1ha0Z3Y1VIWXF0V3FCWE0yQWdCQnBNUUFRUUEyQWdCQjlNTUFRUUEyQWdCQmdDQUxJZ0ZxSWdWQkFDQUJheUlIY1NJQ0lBaE5EUXBCOE1NQUtBSUFJZ1FFUUVIb3d3QW9BZ0FpQXlBQ2FpSUJJQU5ORFFzZ0FTQUVTdzBMQzBIMHd3QXRBQUJCQkhFTkJRSkFBa0JCME1BQUtBSUFJZ01FUUVINHd3QWhBQU5BSUFNZ0FDZ0NBQ0lCVHdSQUlBRWdBQ2dDQkdvZ0Ewc05Bd3NnQUNnQ0NDSUFEUUFMQzBFQUVCSWlBVUYvUmcwR0lBSWhCVUdVeEFBb0FnQWlBMEVCYXlJQUlBRnhCRUFnQWlBQmF5QUFJQUZxUVFBZ0EydHhhaUVGQ3lBRklBaE5EUVlnQlVIKy8vLy9CMHNOQmtId3d3QW9BZ0FpQkFSQVFlakRBQ2dDQUNJRElBVnFJZ0FnQTAwTkJ5QUFJQVJMRFFjTElBVVFFaUlBSUFGSERRRU1DQXNnQlNBR2F5QUhjU0lGUWY3Ly8vOEhTdzBGSUFVUUVpSUJJQUFvQWdBZ0FDZ0NCR3BHRFFRZ0FTRUFDd0pBSUFoQk1Hb2dCVTBOQUNBQVFYOUdEUUJCbU1RQUtBSUFJZ0VnQ1NBRmEycEJBQ0FCYTNFaUFVSCsvLy8vQjBzRVFDQUFJUUVNQ0FzZ0FSQVNRWDlIQkVBZ0FTQUZhaUVGSUFBaEFRd0lDMEVBSUFWckVCSWFEQVVMSUFBaUFVRi9SdzBHREFRTEFBdEJBQ0VFREFjTFFRQWhBUXdGQ3lBQlFYOUhEUUlMUWZUREFFSDB3d0FvQWdCQkJISTJBZ0FMSUFKQi92Ly8vd2RMRFFFZ0FoQVNJUUZCQUJBU0lRQWdBVUYvUmcwQklBQkJmMFlOQVNBQUlBRk5EUUVnQUNBQmF5SUZJQWhCS0dwTkRRRUxRZWpEQUVIb3d3QW9BZ0FnQldvaUFEWUNBRUhzd3dBb0FnQWdBRWtFUUVIc3d3QWdBRFlDQUFzQ1FBSkFBa0JCME1BQUtBSUFJZ2NFUUVINHd3QWhBQU5BSUFFZ0FDZ0NBQ0lESUFBb0FnUWlBbXBHRFFJZ0FDZ0NDQ0lBRFFBTERBSUxRY2pBQUNnQ0FDSUFRUUFnQUNBQlRSdEZCRUJCeU1BQUlBRTJBZ0FMUVFBaEFFSDh3d0FnQlRZQ0FFSDR3d0FnQVRZQ0FFSFl3QUJCZnpZQ0FFSGN3QUJCa01RQUtBSUFOZ0lBUVlURUFFRUFOZ0lBQTBBZ0FFRURkQ0lEUWVqQUFHb2dBMEhnd0FCcUlnSTJBZ0FnQTBIc3dBQnFJQUkyQWdBZ0FFRUJhaUlBUVNCSERRQUxRY1RBQUNBRlFTaHJJZ05CZUNBQmEwRUhjVUVBSUFGQkNHcEJCM0ViSWdCcklnSTJBZ0JCME1BQUlBQWdBV29pQURZQ0FDQUFJQUpCQVhJMkFnUWdBU0FEYWtFb05nSUVRZFRBQUVHZ3hBQW9BZ0EyQWdBTUFnc2dBU0FIVFEwQUlBQW9BZ3hCQ0hFTkFDQURJQWRMRFFBZ0FDQUNJQVZxTmdJRVFkREFBQ0FIUVhnZ0IydEJCM0ZCQUNBSFFRaHFRUWR4R3lJQWFpSUNOZ0lBUWNUQUFFSEV3QUFvQWdBZ0JXb2lBU0FBYXlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FCSUFkcVFTZzJBZ1JCMU1BQVFhREVBQ2dDQURZQ0FBd0JDMEhJd0FBb0FnQWdBVXNFUUVISXdBQWdBVFlDQUFzZ0FTQUZhaUVDUWZqREFDRUFBa0FDUUFKQUFrQUNRQUpBQTBBZ0FpQUFLQUlBUndSQUlBQW9BZ2dpQUEwQkRBSUxDeUFBTFFBTVFRaHhSUTBCQzBINHd3QWhBQU5BSUFjZ0FDZ0NBQ0lDVHdSQUlBSWdBQ2dDQkdvaUJDQUhTdzBEQ3lBQUtBSUlJUUFNQUFzQUN5QUFJQUUyQWdBZ0FDQUFLQUlFSUFWcU5nSUVJQUZCZUNBQmEwRUhjVUVBSUFGQkNHcEJCM0ViYWlJSklBaEJBM0kyQWdRZ0FrRjRJQUpyUVFkeFFRQWdBa0VJYWtFSGNSdHFJZ1VnQ0NBSmFpSUdheUVDSUFVZ0IwWUVRRUhRd0FBZ0JqWUNBRUhFd0FCQnhNQUFLQUlBSUFKcUlnQTJBZ0FnQmlBQVFRRnlOZ0lFREFNTElBVkJ6TUFBS0FJQVJnUkFRY3pBQUNBR05nSUFRY0RBQUVIQXdBQW9BZ0FnQW1vaUFEWUNBQ0FHSUFCQkFYSTJBZ1FnQUNBR2FpQUFOZ0lBREFNTElBVW9BZ1FpQUVFRGNVRUJSZ1JBSUFCQmVIRWhCd0pBSUFCQi93Rk5CRUFnQlNnQ0NDSURJQUJCQTNZaUFFRURkRUhnd0FCcVJob2dBeUFGS0FJTUlnRkdCRUJCdU1BQVFiakFBQ2dDQUVGK0lBQjNjVFlDQUF3Q0N5QURJQUUyQWd3Z0FTQUROZ0lJREFFTElBVW9BaGdoQ0FKQUlBVWdCU2dDRENJQlJ3UkFJQVVvQWdnaUFDQUJOZ0lNSUFFZ0FEWUNDQXdCQ3dKQUlBVkJGR29pQUNnQ0FDSUREUUFnQlVFUWFpSUFLQUlBSWdNTkFFRUFJUUVNQVFzRFFDQUFJUVFnQXlJQlFSUnFJZ0FvQWdBaUF3MEFJQUZCRUdvaEFDQUJLQUlRSWdNTkFBc2dCRUVBTmdJQUN5QUlSUTBBQWtBZ0JTQUZLQUljSWdOQkFuUkI2TUlBYWlJQUtBSUFSZ1JBSUFBZ0FUWUNBQ0FCRFFGQnZNQUFRYnpBQUNnQ0FFRitJQU4zY1RZQ0FBd0NDeUFJUVJCQkZDQUlLQUlRSUFWR0cyb2dBVFlDQUNBQlJRMEJDeUFCSUFnMkFoZ2dCU2dDRUNJQUJFQWdBU0FBTmdJUUlBQWdBVFlDR0FzZ0JTZ0NGQ0lBUlEwQUlBRWdBRFlDRkNBQUlBRTJBaGdMSUFVZ0Iyb2hCU0FDSUFkcUlRSUxJQVVnQlNnQ0JFRitjVFlDQkNBR0lBSkJBWEkyQWdRZ0FpQUdhaUFDTmdJQUlBSkIvd0ZOQkVBZ0FrRURkaUlBUVFOMFFlREFBR29oQWdKL1FiakFBQ2dDQUNJQlFRRWdBSFFpQUhGRkJFQkJ1TUFBSUFBZ0FYSTJBZ0FnQWd3QkN5QUNLQUlJQ3lFQUlBSWdCallDQ0NBQUlBWTJBZ3dnQmlBQ05nSU1JQVlnQURZQ0NBd0RDMEVmSVFBZ0FrSC8vLzhIVFFSQUlBSkJDSFlpQUNBQVFZRCtQMnBCRUhaQkNIRWlBM1FpQUNBQVFZRGdIMnBCRUhaQkJIRWlBWFFpQUNBQVFZQ0FEMnBCRUhaQkFuRWlBSFJCRDNZZ0FTQURjaUFBY21zaUFFRUJkQ0FDSUFCQkZXcDJRUUZ4Y2tFY2FpRUFDeUFHSUFBMkFod2dCa0lBTndJUUlBQkJBblJCNk1JQWFpRUVBa0JCdk1BQUtBSUFJZ05CQVNBQWRDSUJjVVVFUUVHOHdBQWdBU0FEY2pZQ0FDQUVJQVkyQWdBZ0JpQUVOZ0lZREFFTElBSkJBRUVaSUFCQkFYWnJJQUJCSDBZYmRDRUFJQVFvQWdBaEFRTkFJQUVpQXlnQ0JFRjRjU0FDUmcwRElBQkJIWFloQVNBQVFRRjBJUUFnQXlBQlFRUnhhaUlFS0FJUUlnRU5BQXNnQkNBR05nSVFJQVlnQXpZQ0dBc2dCaUFHTmdJTUlBWWdCallDQ0F3Q0MwSEV3QUFnQlVFb2F5SURRWGdnQVd0QkIzRkJBQ0FCUVFocVFRZHhHeUlBYXlJQ05nSUFRZERBQUNBQUlBRnFJZ0EyQWdBZ0FDQUNRUUZ5TmdJRUlBRWdBMnBCS0RZQ0JFSFV3QUJCb01RQUtBSUFOZ0lBSUFjZ0JFRW5JQVJyUVFkeFFRQWdCRUVuYTBFSGNSdHFRUzlySWdBZ0FDQUhRUkJxU1JzaUFrRWJOZ0lFSUFKQmdNUUFLUUlBTndJUUlBSkIrTU1BS1FJQU53SUlRWURFQUNBQ1FRaHFOZ0lBUWZ6REFDQUZOZ0lBUWZqREFDQUJOZ0lBUVlURUFFRUFOZ0lBSUFKQkdHb2hBQU5BSUFCQkJ6WUNCQ0FBUVFocUlRRWdBRUVFYWlFQUlBRWdCRWtOQUFzZ0FpQUhSZzBESUFJZ0FpZ0NCRUYrY1RZQ0JDQUhJQUlnQjJzaUJFRUJjallDQkNBQ0lBUTJBZ0FnQkVIL0FVMEVRQ0FFUVFOMklnQkJBM1JCNE1BQWFpRUNBbjlCdU1BQUtBSUFJZ0ZCQVNBQWRDSUFjVVVFUUVHNHdBQWdBQ0FCY2pZQ0FDQUNEQUVMSUFJb0FnZ0xJUUFnQWlBSE5nSUlJQUFnQnpZQ0RDQUhJQUkyQWd3Z0J5QUFOZ0lJREFRTFFSOGhBQ0FIUWdBM0FoQWdCRUgvLy84SFRRUkFJQVJCQ0hZaUFDQUFRWUQrUDJwQkVIWkJDSEVpQW5RaUFDQUFRWURnSDJwQkVIWkJCSEVpQVhRaUFDQUFRWUNBRDJwQkVIWkJBbkVpQUhSQkQzWWdBU0FDY2lBQWNtc2lBRUVCZENBRUlBQkJGV3AyUVFGeGNrRWNhaUVBQ3lBSElBQTJBaHdnQUVFQ2RFSG93Z0JxSVFNQ1FFRzh3QUFvQWdBaUFrRUJJQUIwSWdGeFJRUkFRYnpBQUNBQklBSnlOZ0lBSUFNZ0J6WUNBQ0FISUFNMkFoZ01BUXNnQkVFQVFSa2dBRUVCZG1zZ0FFRWZSaHQwSVFBZ0F5Z0NBQ0VCQTBBZ0FTSUNLQUlFUVhoeElBUkdEUVFnQUVFZGRpRUJJQUJCQVhRaEFDQUNJQUZCQkhGcUlnTW9BaEFpQVEwQUN5QURJQWMyQWhBZ0J5QUNOZ0lZQ3lBSElBYzJBZ3dnQnlBSE5nSUlEQU1MSUFNb0FnZ2lBQ0FHTmdJTUlBTWdCallDQ0NBR1FRQTJBaGdnQmlBRE5nSU1JQVlnQURZQ0NBc2dDVUVJYWlFQURBVUxJQUlvQWdnaUFDQUhOZ0lNSUFJZ0J6WUNDQ0FIUVFBMkFoZ2dCeUFDTmdJTUlBY2dBRFlDQ0F0QnhNQUFLQUlBSWdBZ0NFME5BRUhFd0FBZ0FDQUlheUlCTmdJQVFkREFBRUhRd0FBb0FnQWlBaUFJYWlJQU5nSUFJQUFnQVVFQmNqWUNCQ0FDSUFoQkEzSTJBZ1FnQWtFSWFpRUFEQU1MUWJUQUFFRXdOZ0lBUVFBaEFBd0NDd0pBSUFWRkRRQUNRQ0FFS0FJY0lnSkJBblJCNk1JQWFpSUFLQUlBSUFSR0JFQWdBQ0FCTmdJQUlBRU5BVUc4d0FBZ0NVRitJQUozY1NJSk5nSUFEQUlMSUFWQkVFRVVJQVVvQWhBZ0JFWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JUWUNHQ0FFS0FJUUlnQUVRQ0FCSUFBMkFoQWdBQ0FCTmdJWUN5QUVLQUlVSWdCRkRRQWdBU0FBTmdJVUlBQWdBVFlDR0FzQ1FDQURRUTlOQkVBZ0JDQURJQWhxSWdCQkEzSTJBZ1FnQUNBRWFpSUFJQUFvQWdSQkFYSTJBZ1FNQVFzZ0JDQUlRUU55TmdJRUlBWWdBMEVCY2pZQ0JDQURJQVpxSUFNMkFnQWdBMEgvQVUwRVFDQURRUU4ySWdCQkEzUkI0TUFBYWlFQ0FuOUJ1TUFBS0FJQUlnRkJBU0FBZENJQWNVVUVRRUc0d0FBZ0FDQUJjallDQUNBQ0RBRUxJQUlvQWdnTElRQWdBaUFHTmdJSUlBQWdCallDRENBR0lBSTJBZ3dnQmlBQU5nSUlEQUVMUVI4aEFDQURRZi8vL3dkTkJFQWdBMEVJZGlJQUlBQkJnUDQvYWtFUWRrRUljU0lDZENJQUlBQkJnT0FmYWtFUWRrRUVjU0lCZENJQUlBQkJnSUFQYWtFUWRrRUNjU0lBZEVFUGRpQUJJQUp5SUFCeWF5SUFRUUYwSUFNZ0FFRVZhblpCQVhGeVFSeHFJUUFMSUFZZ0FEWUNIQ0FHUWdBM0FoQWdBRUVDZEVIb3dnQnFJUUlDUUFKQUlBbEJBU0FBZENJQmNVVUVRRUc4d0FBZ0FTQUpjallDQUNBQ0lBWTJBZ0FnQmlBQ05nSVlEQUVMSUFOQkFFRVpJQUJCQVhacklBQkJIMFliZENFQUlBSW9BZ0FoQ0FOQUlBZ2lBU2dDQkVGNGNTQURSZzBDSUFCQkhYWWhBaUFBUVFGMElRQWdBU0FDUVFSeGFpSUNLQUlRSWdnTkFBc2dBaUFHTmdJUUlBWWdBVFlDR0FzZ0JpQUdOZ0lNSUFZZ0JqWUNDQXdCQ3lBQktBSUlJZ0FnQmpZQ0RDQUJJQVkyQWdnZ0JrRUFOZ0lZSUFZZ0FUWUNEQ0FHSUFBMkFnZ0xJQVJCQ0dvaEFBd0JDd0pBSUF0RkRRQUNRQ0FCS0FJY0lnSkJBblJCNk1JQWFpSUFLQUlBSUFGR0JFQWdBQ0FFTmdJQUlBUU5BVUc4d0FBZ0JrRitJQUozY1RZQ0FBd0NDeUFMUVJCQkZDQUxLQUlRSUFGR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFzMkFoZ2dBU2dDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FTZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFFZ0F5QUlhaUlBUVFOeU5nSUVJQUFnQVdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFFZ0NFRURjallDQkNBSklBTkJBWEkyQWdRZ0F5QUphaUFETmdJQUlBb0VRQ0FLUVFOMklnQkJBM1JCNE1BQWFpRUVRY3pBQUNnQ0FDRUNBbjlCQVNBQWRDSUFJQVZ4UlFSQVFiakFBQ0FBSUFWeU5nSUFJQVFNQVFzZ0JDZ0NDQXNoQUNBRUlBSTJBZ2dnQUNBQ05nSU1JQUlnQkRZQ0RDQUNJQUEyQWdnTFFjekFBQ0FKTmdJQVFjREFBQ0FETmdJQUN5QUJRUWhxSVFBTElBeEJFR29rQUNBQUMwUUJBWDhnQUNBQUtBSVFJQUZxSWdFMkFoQWdBQ0FCUVFkeE5nSUlRWDhoQWlBQUtBSU1RUU4wSUFGUEJIOGdBQ0FBS0FJQUlBRkJBM1pxTmdJRVFRQUZRWDhMQyswVkFROS9JQUFnQkVFQUlBWnJJQUlnQWlBR2FrRUFTQnNpQWlBQ0lBUktHeUlOYWlBQUlBMUJBRW9iSWdJZ0JVRUFJQWRySUFNZ0F5QUhha0VBU0JzaUFDQUFJQVZLR3lJQUlBUnNhaUFDSUFCQkFFb2JJUWtnQjBFQUlBQnJJQUJCSDNWeElnb2dBQ0FIYWlJVUlBVnJJaE5CQUNBRklCUklHeUlXYW1zaEVpQUdRUUFnRFdzZ0RVRWZkWEVpRENBR0lBMXFJZzhnQkd0QkFDQUVJQTlJSWdJYklnNXFheUVMQWtBZ0RVRUFTQ0FDY2lJWFJRUkFBa0FnQ2tVTkFDQUtRUU54SWdNRVFBTkFJQXBCQVdzaENpQUJJQWtnQ3hBSUlBaHFJUUVnQTBFQmF5SUREUUFMQ3lBQVFYOXpJQUJCQUNBQVFRQktHMnBCQTBrTkFBTkFJQUVnQ1NBTEVBZ2dDR29nQ1NBTEVBZ2dDR29nQ1NBTEVBZ2dDR29nQ1NBTEVBZ2dDR29oQVNBS1FRUnJJZ29OQUFzTElCSkZEUUVnRWtFRGNTSURCRUFEUUNBU1FRRnJJUklnQVNBSklBc1FDQ0FJYWlFQklBUWdDV29oQ1NBRFFRRnJJZ01OQUFzTElBVWdCMm9nQUdvZ0JTQVVJQVVnRkVvYlFYOXphaUFBUVFBZ0FFRUFTaHRyUVFOSkRRRURRQ0FCSUFrZ0N4QUlJQWhxSUFRZ0NXb2lBQ0FMRUFnZ0NHb2dBQ0FFYWlJQUlBc1FDQ0FJYWlBQUlBUnFJZ0FnQ3hBSUlBaHFJUUVnQUNBRWFpRUpJQkpCQkdzaUVnMEFDd3dCQ3dKQUlBcEZEUUFDUUNBTFJRUkFJQWxCQVdzaEFpQU1SUVJBSUE1RkRRSWdBRUYvY3lBQVFRQWdBRUVBU2h0cUlRTWdDa0VEY1NJQUJFQURRQ0FLUVFGcklRb2dBU0FDTFFBQUlBNFFCQ0FJYWlFQklBQkJBV3NpQUEwQUN3c2dBMEVEU1EwREEwQWdBU0FDTFFBQUlBNFFCQ0FJYWlBQ0xRQUFJQTRRQkNBSWFpQUNMUUFBSUE0UUJDQUlhaUFDTFFBQUlBNFFCQ0FJYWlFQklBcEJCR3NpQ2cwQUN3d0RDeUFPQkVBZ0FFRi9jeUFBUVFBZ0FFRUFTaHRxSVFNZ0NrRURjU0lBQkVBRFFDQUJJQWt0QUFBZ0RCQUVJZ0VnREdvZ0FpMEFBQ0FPRUFRYUlBcEJBV3NoQ2lBQklBaHFJUUVnQUVFQmF5SUFEUUFMQ3lBRFFRTkpEUU1EUUNBQklBa3RBQUFnREJBRUlnQWdER29nQWkwQUFDQU9FQVFhSUFBZ0NHb2dDUzBBQUNBTUVBUWlBQ0FNYWlBQ0xRQUFJQTRRQkJvZ0FDQUlhaUFKTFFBQUlBd1FCQ0lBSUF4cUlBSXRBQUFnRGhBRUdpQUFJQWhxSUFrdEFBQWdEQkFFSWdBZ0RHb2dBaTBBQUNBT0VBUWFJQUFnQ0dvaEFTQUtRUVJySWdvTkFBc01Bd3NnQ2tFRGNTSURCRUFEUUNBS1FRRnJJUW9nQVNBSkxRQUFJQXdRQkNBSWFpRUJJQU5CQVdzaUF3MEFDd3NnQUVGL2N5QUFRUUFnQUVFQVNodHFRUU5KRFFJRFFDQUJJQWt0QUFBZ0RCQUVJQWhxSUFrdEFBQWdEQkFFSUFocUlBa3RBQUFnREJBRUlBaHFJQWt0QUFBZ0RCQUVJQWhxSVFFZ0NrRUVheUlLRFFBTERBSUxJQXhGQkVBZ0RnUkFJQXRCQjNFaEVDQUVJQVpxSUExcUlBUWdEeUFFSUE5S0cwRi9jMm9nRFVFQUlBMUJBRW9iYTBFSFNTRVZBMEFnQ3lFSElBRWhBeUFKSVFJZ0VDRVJJQkFFUUFOQUlBTWdBaUlBTFFBQU9nQUFJQWRCQVdzaEJ5QURRUUZxSVFNZ0FFRUJhaUVDSUJGQkFXc2lFUTBBQ3dzZ0ZVVUVRQU5BSUFNZ0FpSUFMUUFBT2dBQUlBTWdBQzBBQVRvQUFTQURJQUF0QUFJNkFBSWdBeUFBTFFBRE9nQURJQU1nQUMwQUJEb0FCQ0FESUFBdEFBVTZBQVVnQXlBQUxRQUdPZ0FHSUFNZ0FDMEFCem9BQnlBRFFRaHFJUU1nQUVFSWFpRUNJQWRCQ0dzaUJ3MEFDeUFBUVFkcUlRQUxJQU1nQUMwQUFDQU9FQVFhSUFFZ0NHb2hBU0FLUVFGcklnb05BQXNNQXdzZ0MwRUhjU0VRSUFRZ0Jtb2dEV29nQkNBUElBUWdEMG9iUVg5emFpQU5RUUFnRFVFQVNodHJRUWRKSVJFRFFDQUxJUWNnQVNFRElBa2hBQ0FRSWdJRVFBTkFJQU1nQUMwQUFEb0FBQ0FIUVFGcklRY2dBMEVCYWlFRElBQkJBV29oQUNBQ1FRRnJJZ0lOQUFzTElCRkZCRUFEUUNBRElBQXRBQUE2QUFBZ0F5QUFMUUFCT2dBQklBTWdBQzBBQWpvQUFpQURJQUF0QUFNNkFBTWdBeUFBTFFBRU9nQUVJQU1nQUMwQUJUb0FCU0FESUFBdEFBWTZBQVlnQXlBQUxRQUhPZ0FISUFOQkNHb2hBeUFBUVFocUlRQWdCMEVJYXlJSERRQUxDeUFCSUFocUlRRWdDa0VCYXlJS0RRQUxEQUlMSUE0RVFDQUxRUWR4SVJBZ0JDQUdhaUFOYWlBRUlBOGdCQ0FQU2h0QmYzTnFJQTFCQUNBTlFRQktHMnRCQjBraEVRTkFJQUVnQ1MwQUFDQU1FQVFpRlNBTWFpRURJQXNoQnlBSklRSWdFQ0lCQkVBRFFDQURJQUlpQUMwQUFEb0FBQ0FIUVFGcklRY2dBMEVCYWlFRElBQkJBV29oQWlBQlFRRnJJZ0VOQUFzTElCRkZCRUFEUUNBRElBSWlBQzBBQURvQUFDQURJQUF0QUFFNkFBRWdBeUFBTFFBQ09nQUNJQU1nQUMwQUF6b0FBeUFESUFBdEFBUTZBQVFnQXlBQUxRQUZPZ0FGSUFNZ0FDMEFCam9BQmlBRElBQXRBQWM2QUFjZ0EwRUlhaUVESUFCQkNHb2hBaUFIUVFocklnY05BQXNnQUVFSGFpRUFDeUFESUFBdEFBQWdEaEFFR2lBSUlCVnFJUUVnQ2tFQmF5SUtEUUFMREFJTElBdEJCM0VoRUNBRUlBWnFJQTFxSUFRZ0R5QUVJQTlLRzBGL2Myb2dEVUVBSUExQkFFb2JhMEVIU1NFUkEwQWdBU0FKTFFBQUlBd1FCQ0lCSUF4cUlRTWdDeUVISUFraEFDQVFJZ0lFUUFOQUlBTWdBQzBBQURvQUFDQUhRUUZySVFjZ0EwRUJhaUVESUFCQkFXb2hBQ0FDUVFGcklnSU5BQXNMSUJGRkJFQURRQ0FESUFBdEFBQTZBQUFnQXlBQUxRQUJPZ0FCSUFNZ0FDMEFBam9BQWlBRElBQXRBQU02QUFNZ0F5QUFMUUFFT2dBRUlBTWdBQzBBQlRvQUJTQURJQUF0QUFZNkFBWWdBeUFBTFFBSE9nQUhJQU5CQ0dvaEF5QUFRUWhxSVFBZ0IwRUlheUlIRFFBTEN5QUJJQWhxSVFFZ0NrRUJheUlLRFFBTERBRUxJQUVnQ0NBS2JHb2hBUXNnRWtVTkFDQUxRUWR4SVJBZ0JDQUdhaUFOYWlBRUlBOGdCQ0FQU2h0QmYzTnFJQTFCQUNBTlFRQktHMnRCQjBraEVRTkFJQUVoQXlBTUJFQWdBU0FKTFFBQUlBd1FCQ0FNYWlFREN3SkFJQXRGQkVBZ0NTRUFEQUVMSUFzaEJ5QUpJUUFnRUNJQ0JFQURRQ0FESUFBdEFBQTZBQUFnQjBFQmF5RUhJQU5CQVdvaEF5QUFRUUZxSVFBZ0FrRUJheUlDRFFBTEN5QVJEUUFEUUNBRElBQXRBQUE2QUFBZ0F5QUFMUUFCT2dBQklBTWdBQzBBQWpvQUFpQURJQUF0QUFNNkFBTWdBeUFBTFFBRU9nQUVJQU1nQUMwQUJUb0FCU0FESUFBdEFBWTZBQVlnQXlBQUxRQUhPZ0FISUFOQkNHb2hBeUFBUVFocUlRQWdCMEVJYXlJSERRQUxDeUFPQkVBZ0F5QUFRUUZyTFFBQUlBNFFCQm9MSUFFZ0NHb2hBU0FFSUFscUlRa2dFa0VCYXlJU0RRQUxDd0pBSUJaRkRRQWdDU0FFYXlFSklCZEZCRUFnRkNBRmEwRURjU0lEQkVBRFFDQVRRUUZySVJNZ0FTQUpJQXNRQ0NBSWFpRUJJQU5CQVdzaUF3MEFDd3NnRkNBRlFYOXpha0VEU1EwQkEwQWdBU0FKSUFzUUNDQUlhaUFKSUFzUUNDQUlhaUFKSUFzUUNDQUlhaUFKSUFzUUNDQUlhaUVCSUJOQkJHc2lFdzBBQ3d3QkN5QUxRUWR4SVFVZ0JDQUdhaUFOYWlBRUlBOGdCQ0FQU2h0QmYzTnFJQTFCQUNBTlFRQktHMnRCQjBraEJBTkFJQUVoQXlBTUJFQWdBU0FKTFFBQUlBd1FCQ0FNYWlFREN3SkFJQXRGQkVBZ0NTRUFEQUVMSUFzaEJ5QUpJUUFnQlNJQ0JFQURRQ0FESUFBdEFBQTZBQUFnQjBFQmF5RUhJQU5CQVdvaEF5QUFRUUZxSVFBZ0FrRUJheUlDRFFBTEN5QUVEUUFEUUNBRElBQXRBQUE2QUFBZ0F5QUFMUUFCT2dBQklBTWdBQzBBQWpvQUFpQURJQUF0QUFNNkFBTWdBeUFBTFFBRU9nQUVJQU1nQUMwQUJUb0FCU0FESUFBdEFBWTZBQVlnQXlBQUxRQUhPZ0FISUFOQkNHb2hBeUFBUVFocUlRQWdCMEVJYXlJSERRQUxDeUFPQkVBZ0F5QUFRUUZyTFFBQUlBNFFCQm9MSUFFZ0NHb2hBU0FUUVFGckloTU5BQXNMQytrQ0FRTi9JQUZCQTNSQjhEWnFJZ01vQWdBaEJTQURMUUFFSVFNZ0FVRURkRUd3TldvaUFTMEFCQ0VFQWtBZ0FTZ0NBRUVFUmdSQUlBSWdCRUVCZEdvdUFRQWhBU0FGUVFSR0JFQWdBU0FDSUFOQkFYUnFMZ0VBYWtFQmFrRUJkUThMQW44Z0FDZ0N6QUVpQWdSQUlBQW9BZ1FnQWlnQ0JFWU1BUXRCQUF0RkRRRWdBU0FBS0FMTUFTQURRUUYwYWk0QkhHcEJBV3BCQVhVUEN5QUZRUVJHQkVBZ0FpQURRUUYwYWk0QkFDRUJBbjhnQUNnQ3lBRWlBZ1JBSUFBb0FnUWdBaWdDQkVZTUFRdEJBQXRGRFFFZ0FTQUFLQUxJQVNBRVFRRjBhaTRCSEdwQkFXcEJBWFVQQ3dKL0lBQW9Bc2dCSWdFRVFDQUFLQUlFSUFFb0FnUkdEQUVMUVFBTElnSUVmeUFBS0FMSUFTQUVRUUYwYWk0QkhBVkJBQXNoQVFKL0lBQW9Bc3dCSWdRRVFDQUFLQUlFSUFRb0FnUkdEQUVMUVFBTFJRMEFJQUFvQXN3QklBTkJBWFJxTGdFY0lRQWdBa1VFUUNBQUR3c2dBQ0FCYWtFQmFrRUJkU0VCQ3lBQkMvSURBUU4vSUFFb0FnQWlBMEgvLy84SFJ3UkFJQUVvQWdRaEJDQUFJQUlnQWtFRGNTQUNRUkJKSWdJYlFRSjBJZ1ZCOENscUtBSUFRUkJCQ0NBQ0d5SUNiR29nQlVHd0tXb29BZ0JxSWdBZ0F5QUFMUUFBYWtHd0xtb3RBQUE2QUFBZ0FTZ0NDQ0VESUFBZ0JDQUFMUUFCYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VFSUFBZ0F5QUFMUUFDYWtHd0xtb3RBQUE2QUFJZ0FDQUVJQUF0QUFOcVFiQXVhaTBBQURvQUF5QUJLQUlVSVFNZ0FDQUNhaUlBSUFFb0FoQWdBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BaGdoQkNBQUlBTWdBQzBBQVdwQnNDNXFMUUFBT2dBQklBRW9BaHdoQXlBQUlBUWdBQzBBQW1wQnNDNXFMUUFBT2dBQ0lBQWdBeUFBTFFBRGFrR3dMbW90QUFBNkFBTWdBU2dDSkNFRElBQWdBbW9pQUNBQktBSWdJQUF0QUFCcVFiQXVhaTBBQURvQUFDQUJLQUlvSVFRZ0FDQURJQUF0QUFGcVFiQXVhaTBBQURvQUFTQUJLQUlzSVFNZ0FDQUVJQUF0QUFKcVFiQXVhaTBBQURvQUFpQUFJQU1nQUMwQUEycEJzQzVxTFFBQU9nQURJQUVvQWpRaEF5QUFJQUpxSWdBZ0FTZ0NNQ0FBTFFBQWFrR3dMbW90QUFBNkFBQWdBU2dDT0NFQ0lBQWdBeUFBTFFBQmFrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQWdBaUFBTFFBQ2FrR3dMbW90QUFBNkFBSWdBQ0FCSUFBdEFBTnFRYkF1YWkwQUFEb0FBd3NMOENVQkZIOGdBeUFGYWlJYklBRXVBUUFpRGtFQ2RXb2hEU0FFSUFacUlod2dBUzRCQWlJS1FRSjFhaUVMSUFJb0FnaEJCSFFoQXlBQ0tBSUVRUVIwSVFRZ0FDQUdRUVIwYWlBRmFpRUpBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQU9RUU54UVFSMElBcEJBM0ZCQW5SeVFkQTdhaWdDQUE0UEFBRUNBd1FGQmdjSUNRb0xEQTBPRHdzZ0FpZ0NBQ0FKSUEwZ0N5QUVJQU1nQnlBSVFSQVFEQXdQQ3lBQ0tBSUFJQWtnRFNBTFFRSnJJQVFnQXlBSElBaEJBQkFqREE0TElBSW9BZ0FoRGlBTFFRSnJJUXdnQXlFS0lBY2hBeU1BUWNBRGF5SUxKQUFDUUFKQUlBMUJBRWdOQUNBTVFRQklEUUFnQXlBTmFpQUVTdzBBSUFnZ0RHcEJCV29nQ2tzTkFDQUVJQXhzSUExcUlROE1BUXNnRGlBTElBMGdEQ0FFSUFvZ0F5QUlRUVZxSUFNUURDQUxJUTRnQXlFRUN3SkFJQWhCQW5ZaUZFVU5BQ0FEUlEwQVFjQUFJQU5ySVJZZ0JFRUJkQ0VTSUFSQkFuUWdBMnNoRlVFQUlBUnJJaGRCQVhRaEdDQU9JQTlxSUFScUlnNGdCRUVGYkdvaENnTkFJQU1oRFFOQUlBa2dEaUFTYWkwQUFDSU1JQW9nRW1vdEFBQWdCQ0FLYWkwQUFDSVpJQW9nR0dvdEFBQWlEMm9pRUdzZ0VFRUNkR3RxSUFvdEFBQWlFeUFLSUJkcUxRQUFJaEJxUVJSc2FrRVFha0VGZFVHd0xtb3RBQUE2QURBZ0NTQUVJQTVxTFFBQUloRWdHU0FQSUJCcUlocEJCSFJxSUF3Z0Uyb2lHV3RxSUJvZ0dXdEJBblJxUVJCcVFRVjFRYkF1YWkwQUFEb0FJQ0FKSUE0dEFBQWlHU0FUSUF3Z0Qyb2lHa0VFZEdvZ0VDQVJhaUlUYTJvZ0dpQVRhMEVDZEdwQkVHcEJCWFZCc0M1cUxRQUFPZ0FRSUFrZ0RpQVhhaTBBQUNBUUlBd2dFV29pREVFRWRHb2dEeUFaYWlJUGEyb2dEQ0FQYTBFQ2RHcEJFR3BCQlhWQnNDNXFMUUFBT2dBQUlBNUJBV29oRGlBSlFRRnFJUWtnQ2tFQmFpRUtJQTFCQVdzaURRMEFDeUFKSUJacUlRa2dDaUFWYWlFS0lBNGdGV29oRGlBVVFRRnJJaFFOQUFzTElBdEJ3QU5xSkFBTURRc2dBaWdDQUNBSklBMGdDMEVDYXlBRUlBTWdCeUFJUVFFUUl3d01DeUFDS0FJQUlBa2dEVUVDYXlBTElBUWdBeUFISUFoQkFCQWlEQXNMSUFJb0FnQWdDU0FOUVFKcklBdEJBbXNnQkNBRElBY2dDRUVBRUJjTUNnc2dBaWdDQUNBSklBMUJBbXNnQzBFQ2F5QUVJQU1nQnlBSVFRQVFJQXdKQ3lBQ0tBSUFJQWtnRFVFQ2F5QUxRUUpySUFRZ0F5QUhJQWhCQWhBWERBZ0xJQUlvQWdBaERpQUpJUW9nQ3lFSklBUWhDeUFESVJBZ0NDRU1RUUFoQkNNQVFjQURheUlQSkFBZ0IwRUZhaUVEQWtBQ1FDQU5RUUpySWhOQkFFZ05BQ0FKSUF4cUlCQkxEUUFnQ1VFQVNBMEFJQU1nRTJvZ0Mwc05BQ0FMSVFNZ0NTRUVEQUVMSUE0Z0R5QVRJQWtnQ3lBUUlBTWdEQ0FERUF3Z0R5RU9RUUFoRXdzQ1FDQU1SUTBBSUFkQkFuWWlGVVVOQUVFUUlBZHJJUkVnQXlBSGF5RVdJQTRnQXlBRWJDQVRhbXBCQldvaEV3TkFJQk5CQVdzdEFBQWhBeUFUUVFKckxRQUFJUWtnRTBFRGF5MEFBQ0VPSUJOQkJHc3RBQUFoQkNBVFFRVnJMUUFBSVJBZ0ZTRVVBMEFnQ2lBVExRQUFJZ3NnRUNBSklBNXFJZzFCQkhScUlBTWdCR29pRUdzZ0RTQVFhMEVDZEdwcVFSQnFRUVYxUWJBdWFpMEFBRG9BQUNBS0lCTXRBQUVpRFNBRUlBTWdDV29pRUVFRWRHb2dDeUFPYWlJRWEyb2dFQ0FFYTBFQ2RHcEJFR3BCQlhWQnNDNXFMUUFBT2dBQklBb2dFeTBBQWlJU0lBNGdBeUFMYWlJRVFRUjBhaUFKSUExcUlnNXJhaUFFSUE1clFRSjBha0VRYWtFRmRVR3dMbW90QUFBNkFBSWdDaUFUTFFBREloY2dDU0FMSUExcUlnUkJCSFJxSUFNZ0Vtb2lDV3RxSUFRZ0NXdEJBblJxUVJCcVFRVjFRYkF1YWkwQUFEb0FBeUFLUVFScUlRb2dFMEVFYWlFVElBTWhFQ0FMSVFRZ0RTRU9JQkloQ1NBWElRTWdGRUVCYXlJVURRQUxJQW9nRVdvaENpQVRJQlpxSVJNZ0RFRUJheUlNRFFBTEN5QVBRY0FEYWlRQURBY0xJQUlvQWdBZ0NTQU5RUUpySUF0QkFtc2dCQ0FESUFjZ0NFRUFFQ0VNQmdzZ0FpZ0NBQ0VPSUFraENpQUxRUUpySVE4Z0JDRUxJQU1oRUVFQUlRa2pBRUdBRG1zaURDUUFJQWNpQkVFRmFpRURBa0FDUUNBTlFRSnJJaEZCQUVnTkFDQVBRUUJJRFFBZ0F5QVJhaUFMU3cwQUlBaEJCV29pRmlBUGFpQVFTdzBBSUFzaEF5QVBJUWtNQVFzZ0RpQU1RY0FLYWlBUklBOGdDeUFRSUFNZ0NFRUZhaUlXSUFNUURDQU1RY0FLYWlFT1FRQWhFUXNDUUNBV1JRMEFJQVJCQW5ZaUYwVU5BQ0FESUFScklSZ2dEaUFESUFsc0lCRnFha0VGYWlFUklBd2hEZ05BSUJGQkFXc3RBQUFoQXlBUlFRSnJMUUFBSVFzZ0VVRURheTBBQUNFTklCRkJCR3N0QUFBaENTQVJRUVZyTFFBQUlSUWdGeUVTQTBBZ0RpQVJMUUFBSWc4Z0ZDQUxJQTFxSWhCQkJIUnFJQU1nQ1dvaUZHc2dFQ0FVYTBFQ2RHcHFOZ0lBSUE0Z0VTMEFBU0lRSUFrZ0F5QUxhaUlVUVFSMGFpQU5JQTlxSWdscmFpQVVJQWxyUVFKMGFqWUNCQ0FPSUJFdEFBSWlGU0FOSUFNZ0Qyb2lDVUVFZEdvZ0N5QVFhaUlOYTJvZ0NTQU5hMEVDZEdvMkFnZ2dEaUFSTFFBREloTWdDeUFQSUJCcUlnbEJCSFJxSUFNZ0ZXb2lDMnRxSUFrZ0MydEJBblJxTmdJTUlBNUJFR29oRGlBUlFRUnFJUkVnQXlFVUlBOGhDU0FRSVEwZ0ZTRUxJQk1oQXlBU1FRRnJJaElOQUFzZ0VTQVlhaUVSSUJaQkFXc2lGZzBBQ3dzQ1FDQUlRUUoySWc5RkRRQWdCRVVOQUVIQUFDQUVheUVYSUF3Z0JFRUNkR29pQXlBRVFSUnNhaUVSUVFBZ0JHc2lFMEVEZENFV0lBUkJBM1FoRUNBRVFRTnNRUUowSVJRRFFDQUVJUTREUUNBS0lBTWdFR29vQWdBaUNTQVFJQkZxS0FJQUlCRWdCRUVDZENJVmFpZ0NBQ0lZSUJFZ0Ztb29BZ0FpQzJvaURXc2dEVUVDZEd0cUlCRW9BZ0FpRWlBUklCTkJBblFpR1dvb0FnQWlEV3BCRkd4cVFZQUVha0VLZFVHd0xtb3RBQUE2QURBZ0NpQURJQlZxS0FJQUloVWdHQ0FMSUExcUlocEJCSFJxSUFrZ0Vtb2lHR3RxSUJvZ0dHdEJBblJxUVlBRWFrRUtkVUd3TG1vdEFBQTZBQ0FnQ2lBREtBSUFJaGdnRWlBSklBdHFJaHBCQkhScUlBMGdGV29pRW10cUlCb2dFbXRCQW5ScVFZQUVha0VLZFVHd0xtb3RBQUE2QUJBZ0NpQURJQmxxS0FJQUlBMGdDU0FWYWlJSlFRUjBhaUFMSUJocUlndHJhaUFKSUF0clFRSjBha0dBQkdwQkNuVkJzQzVxTFFBQU9nQUFJQU5CQkdvaEF5QUtRUUZxSVFvZ0VVRUVhaUVSSUE1QkFXc2lEZzBBQ3lBS0lCZHFJUW9nRVNBVWFpRVJJQU1nRkdvaEF5QVBRUUZySWc4TkFBc0xJQXhCZ0E1cUpBQU1CUXNnQWlnQ0FDQUpJQTFCQW1zZ0MwRUNheUFFSUFNZ0J5QUlRUUVRSVF3RUN5QUNLQUlBSUFrZ0RVRUNheUFMSUFRZ0F5QUhJQWhCQVJBaURBTUxJQUlvQWdBZ0NTQU5RUUpySUF0QkFtc2dCQ0FESUFjZ0NFRUJFQmNNQWdzZ0FpZ0NBQ0FKSUExQkFtc2dDMEVDYXlBRUlBTWdCeUFJUVFFUUlBd0JDeUFDS0FJQUlBa2dEVUVDYXlBTFFRSnJJQVFnQXlBSElBaEJBeEFYQ3lBQkxnRUFJZ2xCQTNVZ0cwRUJkbW9oQXlBQkxnRUNJZ0ZCQTNVZ0hFRUJkbW9oQkNBQ0tBSUFJQUlvQWdRaURpQUNLQUlJSWd0c1FRaDBhaUVDSUFBZ0JrRUNkRUY0Y1dvZ0JVRUJkbXBCZ0FKcUlRVWdDRUVCZGlFR0lBZEJBWFloQnlBQlFRZHhJUWdnQzBFRGRDRUFJQTVCQTNRaEFRSkFJQWxCQjNFaUNVVU5BQ0FJUlEwQUlBWWhEVUVBSVFvakFFR3dBV3NpRGlRQUlBY2lERUVCYWlFR0FrQUNRQ0FESWdkQkFFZ05BQ0FFUVFCSURRQWdCaUFIYWlBQlN3MEFJQVFnRFdwQkFXb2dBRXNOQUNBQUlRc2dBU0VHSUFRaENnd0JDeUFDSUE0Z0J5QUVJQUVnQUNBR0lBMUJBV29pQ3lBR0VBd2dBaUFBSUFGc2FpQU9JQVlnQzJ4cUlBY2dCQ0FCSUFBZ0JpQUxJQVlRRENBT0lRSkJBQ0VIQ3dKQUlBMUJBWFlpQkVVTkFDQU1RUUYySWdGRkRRQkJFQ0FNYXlFWFFRZ2dDR3NoRDBFSUlBbHJJUkFnQmtFQmRDSVVJQXhySVJNZ0FpQUdJQXBzYWlBSGFpRU1JQVVoQXlBRUlRMERRQ0FNSUJScUxRQUFJQWhzSUE4Z0JpQU1haTBBQUNJQWJHb2hFaUFBSUFoc0lBOGdEQzBBQUd4cUlSVWdBU0VBQTBBZ0RFRUJhaUlSSUJScUxRQUFJUllnQXlBUUlCVnNJQVlnRVdvdEFBQWlGU0FJYkNBUElBd3RBQUZzYWlJUklBbHNha0VnYWtFR2Rqb0FBQ0FESUJBZ0Vtd2dDQ0FXYkNBUElCVnNhaUlTSUFsc2FrRWdha0VHZGpvQUNDQU1MUUFDSVJVZ0RFRUNhaUlNSUJScUxRQUFJUllnQXlBUUlCRnNJQVlnREdvdEFBQWlFU0FJYkNBUElCVnNhaUlWSUFsc2FrRWdha0VHZGpvQUFTQURJQkFnRW13Z0NDQVdiQ0FQSUJGc2FpSVNJQWxzYWtFZ2FrRUdkam9BQ1NBRFFRSnFJUU1nQUVFQmF5SUFEUUFMSUF3Z0Uyb2hEQ0FESUJkcUlRTWdEVUVCYXlJTkRRQUxJQVZCUUdzaEF5QUNJQW9nQzJvZ0JteHFJQWRxSVF3RFFDQU1JQlJxTFFBQUlBaHNJQThnQmlBTWFpMEFBQ0lBYkdvaEVpQUFJQWhzSUE4Z0RDMEFBR3hxSVJVZ0FTRUFBMEFnREVFQmFpSUNJQlJxTFFBQUlRVWdBeUFRSUJWc0lBSWdCbW90QUFBaUFpQUliQ0FQSUF3dEFBRnNhaUlISUFsc2FrRWdha0VHZGpvQUFDQURJQkFnRW13Z0JTQUliQ0FDSUE5c2FpSUNJQWxzYWtFZ2FrRUdkam9BQ0NBTUxRQUNJUVVnREVFQ2FpSU1JQlJxTFFBQUlRc2dBeUFISUJCc0lBWWdER290QUFBaUJ5QUliQ0FGSUE5c2FpSVZJQWxzYWtFZ2FrRUdkam9BQVNBRElBSWdFR3dnQ0NBTGJDQUhJQTlzYWlJU0lBbHNha0VnYWtFR2Rqb0FDU0FEUVFKcUlRTWdBRUVCYXlJQURRQUxJQXdnRTJvaERDQURJQmRxSVFNZ0JFRUJheUlFRFFBTEN5QU9RYkFCYWlRQUR3c2dDUVJBUVFBaEN5TUFRWkFCYXlJT0pBQWdCeUlOUVFGcUlRY0NRQUpBSUFNaUNFRUFTQTBBSUFRZ0Jtb2dBRXNOQUNBRVFRQklEUUFnQnlBSWFpQUJTdzBBSUFFaEJ5QUVJUXNNQVFzZ0FpQU9JQWdnQkNBQklBQWdCeUFHSUFjUURDQUNJQUFnQVd4cUlBNGdCaUFIYkdvZ0NDQUVJQUVnQUNBSElBWWdCeEFNSUE0aEFpQUdJUUJCQUNFSUN3SkFJQVpCQVhZaUJrVU5BQ0FOUVFGMklnTkZEUUJCRUNBTmF5RVBRUWdnQ1dzaERDQUhRUUYwSUExcklSQWdBaUFISUF0c2FpQUlhaUVLSUFVaEJDQUdJUTBEUUNBRElRRURRQ0FLUVFGcUlBZHFMUUFBSVJRZ0J5QUthaTBBQUNFU0lBUWdDaTBBQVNJVklBbHNJQXdnQ2kwQUFHeHFRUU4wUVNCcVFRWjJPZ0FBSUFRZ0NTQVViQ0FNSUJKc2FrRURkRUVnYWtFR2Rqb0FDQ0FLTFFBQ0lSSWdDa0VDYWlJS0lBZHFMUUFBSVJjZ0JDQUpJQkpzSUF3Z0ZXeHFRUU4wUVNCcVFRWjJPZ0FCSUFRZ0NTQVhiQ0FNSUJSc2FrRURkRUVnYWtFR2Rqb0FDU0FFUVFKcUlRUWdBVUVCYXlJQkRRQUxJQW9nRUdvaENpQUVJQTlxSVFRZ0RVRUJheUlORFFBTElBVkJRR3NoQkNBQ0lBQWdDMm9nQjJ4cUlBaHFJUW9EUUNBRElRRURRQ0FLUVFGcUlBZHFMUUFBSVFBZ0J5QUthaTBBQUNFQ0lBUWdDaTBBQVNJRklBbHNJQXdnQ2kwQUFHeHFRUU4wUVNCcVFRWjJPZ0FBSUFRZ0FDQUpiQ0FDSUF4c2FrRURkRUVnYWtFR2Rqb0FDQ0FLTFFBQ0lRSWdDa0VDYWlJS0lBZHFMUUFBSVFnZ0JDQUNJQWxzSUFVZ0RHeHFRUU4wUVNCcVFRWjJPZ0FCSUFRZ0NDQUpiQ0FBSUF4c2FrRURkRUVnYWtFR2Rqb0FDU0FFUVFKcUlRUWdBVUVCYXlJQkRRQUxJQW9nRUdvaENpQUVJQTlxSVFRZ0JrRUJheUlHRFFBTEN5QU9RWkFCYWlRQUR3c2dDQVJBSUFZaEMwRUFJUTBqQUVHUUFXc2lDU1FBQWtBQ1FDQURJZ1pCQUVnTkFDQUVRUUJJRFFBZ0JpQUhhaUFCU3cwQUlBUWdDMnBCQVdvZ0FFc05BQ0FBSVE0Z0JDRU5EQUVMSUFJZ0NTQUdJQVFnQVNBQUlBY2dDMEVCYWlJT0lBY1FEQ0FDSUFBZ0FXeHFJQWtnQnlBT2JHb2dCaUFFSUFFZ0FDQUhJQTRnQnhBTUlBa2hBaUFISVFGQkFDRUdDd0pBSUF0QkFYWWlDMFVOQUNBSFFRRjJJZ05GRFFCQkVDQUhheUVRUVFnZ0NHc2hEQ0FCUVFGMElnOGdCMnNoRkNBQ0lBRWdEV3hxSUFacUlRb2dCU0VFSUFzaEJ3TkFJQU1oQUFOQUlBb2dEMm90QUFBaEVpQUVJQXdnQ2kwQUFHd2dBU0FLYWkwQUFDSVZJQWhzYWtFRGRFRWdha0VHZGpvQUFDQUVJQXdnRld3Z0NDQVNiR3BCQTNSQklHcEJCblk2QUFnZ0NrRUJhaUlTSUE5cUxRQUFJUlVnQkNBTUlBb3RBQUZzSUFFZ0Vtb3RBQUFpRWlBSWJHcEJBM1JCSUdwQkJuWTZBQUVnQkNBTUlCSnNJQWdnRld4cVFRTjBRU0JxUVFaMk9nQUpJQVJCQW1vaEJDQUtRUUpxSVFvZ0FFRUJheUlBRFFBTElBb2dGR29oQ2lBRUlCQnFJUVFnQjBFQmF5SUhEUUFMSUFWQlFHc2hCQ0FDSUEwZ0Rtb2dBV3hxSUFacUlRb0RRQ0FESVFBRFFDQUtJQTlxTFFBQUlRSWdCQ0FNSUFvdEFBQnNJQUVnQ21vdEFBQWlCU0FJYkdwQkEzUkJJR3BCQm5ZNkFBQWdCQ0FGSUF4c0lBSWdDR3hxUVFOMFFTQnFRUVoyT2dBSUlBcEJBV29pQWlBUGFpMEFBQ0VGSUFRZ0RDQUtMUUFCYkNBQklBSnFMUUFBSWdJZ0NHeHFRUU4wUVNCcVFRWjJPZ0FCSUFRZ0FpQU1iQ0FGSUFoc2FrRURkRUVnYWtFR2Rqb0FDU0FFUVFKcUlRUWdDa0VDYWlFS0lBQkJBV3NpQUEwQUN5QUtJQlJxSVFvZ0JDQVFhaUVFSUF0QkFXc2lDdzBBQ3dzZ0NVR1FBV29rQUE4TElBSWdCU0FESUFRZ0FTQUFJQWNnQmtFSUVBd2dBaUFBSUFGc2FpQUZRVUJySUFNZ0JDQUJJQUFnQnlBR1FRZ1FEQXZIQVFFRWZ5QUFLQUlFSVFJQ1FDQUFLQUlNUVFOMElBQW9BaEJySWdOQklFNEVRQ0FDS0FBQUlnRkJHSFFnQVVFSWRFR0FnUHdIY1hJZ0FVRUlka0dBL2dOeElBRkJHSFp5Y2lFQklBQW9BZ2dpQUVVTkFTQUJJQUIwSUFJdEFBUkJDQ0FBYTNaeUR3c2dBMEVCU0FSQVFRQVBDeUFDTFFBQUlBQW9BZ2dpQUVFWWFpSUVkQ0VCSUFBZ0EycEJDR3NpQUVFQlNBMEFBMEFnQWkwQUFTQUVRUWhySWdSMElBRnlJUUVnQUVFSVNpRURJQUpCQVdvaEFpQUFRUWhySVFBZ0F3MEFDd3NnQVF0QUFBSkFBa0FDUUFKQUFrQUNRQ0FCRGdVQUFRSURCUVFMSUFBb0FzZ0JEd3NnQUNnQ3pBRVBDeUFBS0FMUUFROExJQUFvQXRRQkR3dEJBQ0VBQ3lBQUMxSUJBbjlCc01BQUtBSUFJZ0VnQUVFRGFrRjhjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBUUFVVU5BUXRCc01BQUlBQTJBZ0FnQVE4TFFiVEFBRUV3TmdJQVFYOExOQUVCZndKQUlBRkJFRXNOQUNBQUtBSUVJQUZCQW5ScUtBSUFJZ0JGRFFBZ0FDZ0NGRUVDU1EwQUlBQW9BZ0FoQWdzZ0FnczJBQ0FDQkVBZ0FDQUJFQUlQQzBFQklRSWdBU0FBUVFFUUF5SUFOZ0lBSUFCQmYwY0VmeUFCSUFCQkFYTTJBZ0JCQUFWQkFRc0wwQmNCSDM4akFFSFFBMnNpQmlRQUlBRW9BZ2doRFNBQklBRW9BZ1FpQ0NBQ2JDSVVJQU5xRUJ3Z0FTZ0NBQ0VWSUFCQkFEWUNDQ0FBUWlnM0FoUWdBRUlBTndJTUlBQkJCallDQUNBRFFRUjBJUWtDUUFKQUFrQWdCRUVDYXc0R0FRQUFBQUFCQUFzZ0JrRUFOZ0lNSUFZZ0RUWUNHQ0FHSUFnMkFoUWdCaUFGTmdJUUlBVkZCRUFNQVFzZ0JrSFFBR29nQmtFTWFpQUdRUkJxSUFrZ0FrRUVkRUVBUVFCQkVFRVFFQThNQVFzZ0JrSFFBR3BCQUVHQUF4QUVHaUFWSUJSQkNIUnFJQWxxSVFzZ0JrSUFOd05JSUFaQlFHdENBRGNEQUNBR1FnQTNBemdnQmtJQU53TXdJQVpDQURjREtDQUdRZ0EzQXlBZ0JrSUFOd01ZSUFaQ0FEY0RFQUovQWtBZ0FnUkFJQUJCQUNBSWEwSFlBV3hxS0FMRUFRMEJDMEVBREFFTElBWWdDeUFJUVFSMGF5SUVMUUFGSUFRdEFBUnFJQVF0QUFacUlBUXRBQWRxSWhnZ0JDMEFBeUFFTFFBQ0lBUXRBQUVnQkMwQUFHcHFhaUlYYWlJRklBUXRBQThnQkMwQURpQUVMUUFOSUFRdEFBeHFhbW9pR2lBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSWFtcHFJaGxxSWdScklnYzJBaFFnQmlBRUlBVnFJZ28yQWhCQkFTRWJRUUVMSVFVQ1FDQU5RUUZySUFKR0RRQWdBQ0FJUWRnQmJHb29Bc1FCUlFSQURBRUxJQVlnQ3lBSVFRaDBhaUlDTFFBRklBSXRBQVJxSUFJdEFBWnFJQUl0QUFkcUloNGdBaTBBQXlBQ0xRQUNJQUl0QUFFZ0FpMEFBR3BxYWlJZmFpSUVJQUl0QUE4Z0FpMEFEaUFDTFFBTklBSXRBQXhxYW1vaUlDQUNMUUFMSUFJdEFBb2dBaTBBQ1NBQ0xRQUlhbXBxSWlGcUlnSnJJQWRxSWdjMkFoUWdCaUFDSUFScUlBcHFJZ28yQWhCQkFTRVdJQVZCQVdvaEJRc0Nmd0pBSUFORkRRQWdBRUVVYXlnQ0FFVU5BQ0FHSUF0QkFXc2lBaUFJUVFaMEloQnFJZ1FnQ0VFRWRDSUphaTBBQUNBRUxRQUFhaUFFSUFoQkJYUWlEbW90QUFCcUlBUWdDRUV3YkNJUGFpMEFBR29pSENBQ0lBOXFMUUFBSUFJZ0Rtb3RBQUFnQWlBSmFpMEFBQ0FDTFFBQWFtcHFJaDFxSWd3Z0JDQVFhaUlDSUJCcUlnUWdDV290QUFBZ0JDMEFBR29nQkNBT2FpMEFBR29nQkNBUGFpMEFBR29pRUNBQ0lBOXFMUUFBSUFJZ0Rtb3RBQUFnQWlBSmFpMEFBQ0FDTFFBQWFtcHFJZzVxSWdKcklnUTJBaUFnQmlBQ0lBeHFJQXBxSWdvMkFoQkJBU0VQSUFWQkFXb2hDVUVCREFFTFFRQWhCQ0FGSVFsQkFBc2hBZ0pBQWtBQ1FBSkFBa0FnQXlBSVFRRnJSd1JBSUFBb0Fwd0REUUVMUVFBaERDQUZEUUVNQWdzZ0JDQUxRUkJxSWdRZ0NFRUdkQ0lSYWlJQUlBaEJCSFFpREdvdEFBQWdBQzBBQUdvZ0FDQUlRUVYwSWhKcUxRQUFhaUFBSUFoQk1Hd2lFMm90QUFCcUlBUWdFMm90QUFBZ0JDQVNhaTBBQUNBRUlBeHFMUUFBSUFzdEFCQnFhbXBxSWdzZ0FDQVJhaUlBSUJGcUlnUWdER290QUFBZ0JDMEFBR29nQkNBU2FpMEFBR29nQkNBVGFpMEFBR29pRVNBQUlCTnFMUUFBSUFBZ0Vtb3RBQUFnQUNBTWFpMEFBQ0FBTFFBQWFtcHFJZ0JxSWd4cmFpRUVJQXNnREdvZ0Ntb2hDa0VCSVF3Z0FrRUJhaUVDSUFsQkFXb2hDU0FQUlNBRlFRQkhja1VFUUNBY0lCMXFJQTVxSUJCcUlBQWdDMm9nRVdwclFRVjFJUWNNQXdzZ0JVVU5BZ3NnQnlBRlFRTnFkU0VIQ3lBYklBSkZjU0FXY1FSQUlCY2dHR29nR1dvZ0dtb2dJQ0FoYWlBZWFpQWZhbXRCQlhVaEJBd0NDeUFDUlEwQkN5QUVJQUpCQTJwMUlRUUxJQVlDZndKQUFrQUNRQUpBSUFsQkFXc09Bd0FCQWdNTElBcEJCSFlNQXdzZ0NrRUZkZ3dDQ3lBS1FSVnNRUXAyREFFTElBcEJCbllMSWdBMkFoQUNRQ0FFSUFkeVJRUkFJQVlnQURZQ1NDQUdJQUEyQWt3Z0JpQUFOZ0pFSUFZZ0FEWUNRQ0FHSUFBMkFqd2dCaUFBTmdJNElBWWdBRFlDTkNBR0lBQTJBakFnQmlBQU5nSXNJQVlnQURZQ0tDQUdJQUEyQWlRZ0JpQUFOZ0lnSUFZZ0FEWUNIQ0FHSUFBMkFoZ2dCaUFBTmdJVURBRUxJQVlnQUNBSGFpSUZJQVJyTmdKQUlBWWdCU0FFUVFGMUlnSnJOZ0l3SUFZZ0FpQUZhallDSUNBR0lBUWdCV28yQWhBZ0JpQUFJQWRySWdVZ0JHczJBa3dnQmlBRklBSnJOZ0k4SUFZZ0FpQUZhallDTENBR0lBUWdCV28yQWh3Z0JpQUFJQWRCQVhVaUNXb2lCU0FFYXpZQ1JDQUdJQVVnQW1zMkFqUWdCaUFDSUFWcU5nSWtJQVlnQkNBRmFqWUNGQ0FHSUFBZ0NXc2lBQ0FFYXpZQ1NDQUdJQUFnQW1zMkFqZ2dCaUFBSUFKcU5nSW9JQVlnQUNBRWFqWUNHQXNnQmtIUUFHb2hBQ0FHUVJCcUlRUkJBQ0VIQTBBZ0FDQUVJQWRCREhGcUlnSW9BZ0FpQlVIL0FTQUZRZjhCU0JzaUJVRUFJQVZCQUVvYk9nQUFJQUFnQWlnQ0FDSUNRZjhCSUFKQi93RklHeUlDUVFBZ0FrRUFTaHM2QUFFZ0JDQUVRUkJxSUFkQkFtb2lCMEUrY1JzaEJDQUFRUUpxSVFBZ0IwR0FBa2NOQUFzZ0ZTQUlJQTFzSWdCQkNIUnFJQlJCQm5ScUlBTkJBM1JxSVFNZ0NFRUVkQ0VLSUFoQkJuUWhFaUFBUVFaMElSTkJBQ0FJUVFOMElnaHJJUlFnQmtIUUFtb2hGU0FHUVVCcklSRkJBQ0VMQTBBZ0JrSUFOd05JSUJGQ0FEY0RBQ0FHUWdBM0F6Z2dCa0lBTndNd0lBWkNBRGNES0NBR1FnQTNBeUFnQmtJQU53TVlJQVpDQURjREVFRUFJUWRCQUNFRVFRQWhBaUFiQkVBZ0JpQURJQlJxSWdBdEFBTWdBQzBBQW1vaUdDQUFMUUFCSUFBdEFBQnFJaGRxSWdJZ0FDMEFCeUFBTFFBR2FpSWFJQUF0QUFVZ0FDMEFCR29pR1dvaUFHc2lCellDRkNBR0lBQWdBbW9pQkRZQ0VFRUJJUUlMSUJZRVFDQUdJQU1nRW1vaUFDMEFBeUFBTFFBQ2FpSWVJQUF0QUFFZ0FDMEFBR29pSDJvaUJTQUFMUUFISUFBdEFBWnFJaUFnQUMwQUJTQUFMUUFFYWlJaGFpSUFheUFIYWlJSE5nSVVJQVlnQUNBRmFpQUVhaUlFTmdJUUlBSkJBV29oQWd0QkFDRUFBbjhnRDBVRVFDQUNJUWxCQUF3QkN5QUdJQU5CQVdzaUFDQUthaUlGSUFocUxRQUFJQVV0QUFCcUlod2dBQ0FJYWkwQUFDQUFMUUFBYWlJZGFpSUpJQVVnQ21vaUFDQUthaUlGSUFocUxRQUFJQVV0QUFCcUloQWdBQ0FJYWkwQUFDQUFMUUFBYWlJT2FpSUZheUlBTmdJZ0lBWWdCU0FKYWlBRWFpSUVOZ0lRSUFKQkFXb2hDVUVCQ3lFRkFrQUNRQUpBQWtBZ0RFVUVRQ0FDRFFFTUFnc2dBQ0FEUVFocUlnMGdDbW9pQUNBSWFpMEFBQ0FBTFFBQWFpQUlJQTFxTFFBQUlBTXRBQWhxYWlJTklBQWdDbW9pQUNBS2FpSWlJQWhxTFFBQUlDSXRBQUJxSWlJZ0FDQUlhaTBBQUNBQUxRQUFhaUlqYWlJa2Eyb2hBQ0FOSUNScUlBUnFJUVFnQlVFQmFpRUZJQWxCQVdvaENTQVBSU0FDUVFCSGNrVUVRQ0FjSUIxcUlBNXFJQkJxSUEwZ0kyb2dJbXByUVFSMUlRY01Bd3NnQWtVTkFnc2dCeUFDUVFKcWRTRUhDeUFiSUFWRmNTQVdjUVJBSUJjZ0dHb2dHV29nR21vZ0lDQWhhaUFlYWlBZmFtdEJCSFVoQUF3Q0N5QUZSUTBCQ3lBQUlBVkJBbXAxSVFBTElBWUNmd0pBQWtBQ1FBSkFJQWxCQVdzT0F3QUJBZ01MSUFSQkEzWU1Bd3NnQkVFRWRnd0NDeUFFUVJWc1FRbDJEQUVMSUFSQkJYWUxJZ1EyQWhBQ1FDQUFJQWR5UlFSQUlBWWdCRFlDU0NBR0lBUTJBa3dnQmlBRU5nSkVJQVlnQkRZQ1FDQUdJQVEyQWp3Z0JpQUVOZ0k0SUFZZ0JEWUNOQ0FHSUFRMkFqQWdCaUFFTmdJc0lBWWdCRFlDS0NBR0lBUTJBaVFnQmlBRU5nSWdJQVlnQkRZQ0hDQUdJQVEyQWhnZ0JpQUVOZ0lVREFFTElBWWdCQ0FIYWlJRklBQnJOZ0pBSUFZZ0JTQUFRUUYxSWdKck5nSXdJQVlnQWlBRmFqWUNJQ0FHSUFBZ0JXbzJBaEFnQmlBRUlBZHJJZ1VnQUdzMkFrd2dCaUFGSUFKck5nSThJQVlnQWlBRmFqWUNMQ0FHSUFBZ0JXbzJBaHdnQmlBRUlBZEJBWFVpQ1dvaUJTQUFhellDUkNBR0lBVWdBbXMyQWpRZ0JpQUNJQVZxTmdJa0lBWWdBQ0FGYWpZQ0ZDQUdJQVFnQ1dzaUJDQUFhellDU0NBR0lBUWdBbXMyQWpnZ0JpQUNJQVJxTmdJb0lBWWdBQ0FFYWpZQ0dBc2dGU0FMUVFaMGFpRUFRUUFoQkNBR1FSQnFJUWNEUUNBQUlBY2dCRUVCZEVFTWNXb2lBaWdDQUNJRlFmOEJJQVZCL3dGSUd5SUZRUUFnQlVFQVNoczZBQUFnQUNBQ0tBSUFJZ0pCL3dFZ0FrSC9BVWdiSWdKQkFDQUNRUUJLR3pvQUFTQUhJQWRCRUdvZ0JFRUNhaUlFUVE1eEd5RUhJQUJCQW1vaEFDQUVRY0FBUncwQUN5QURJQk5xSVFNZ0MwRUJhaUlMUVFKSERRQUxDeUFCSUFaQjBBQnFFQmdnQmtIUUEyb2tBQXYyQmdFT2Z5QUNLQUlJSVFvZ0FpZ0NCQ0VQQWtBZ0FVRUVUd1JBSUE5QkFuWkJBbW9oREVFRUlRSURRQUpBSUFCQkFXc2lCUzBBQUNJSElBQXRBQUFpQ0dzaUFTQUJRUjkxSWdGcUlBRnpJZzBnRDA4TkFDQUFRUUpySWc0dEFBQWlBU0FIYXlJRUlBUkJIM1VpQkdvZ0JITWdDazhOQUNBQUxRQUJJZ2tnQ0dzaUJDQUVRUjkxSWdScUlBUnpJQXBQRFFBQ1FDQU1JQTFMQkVBZ0FDMEFBaUVMQW44Z0NpQUFRUU5ySWcwdEFBQWlCQ0FIYXlJR0lBWkJIM1VpQm1vZ0JuTkxCRUJCQXlFR0lBVWdDU0FISUFocUlBRnFJZ1ZCQVhScUlBUnFRUVJxUVFOMk9nQUFJQTRnQkNBRmFrRUNha0VDZGpvQUFDQUZRUVJxSUFSQkEyeHFJUTRnQUVFRWF5MEFBQXdCQzBFQ0lRWWdCeUFKYWtFQ2FpRU9JQVVoRFNBQkN5RUVJQTBnRGlBRVFRRjBhaUFHZGpvQUFDQUxJQWhySWdVZ0JVRWZkU0lGYWlBRmN5QUtUdzBCSUFBZ0J5QUphaUFJYWlJRklBdHFRUUpxUVFKMk9nQUJJQUFnQlNBTFFRTnNhaUFBTFFBRFFRRjBha0VFYWtFRGRqb0FBaUFBSUFFZ0JVRUJkR29nQzJwQkJHcEJBM1k2QUFBTUFnc2dCU0FISUFscUlBRkJBWFJxUVFKcVFRSjJPZ0FBQ3lBQUlBRWdDR29nQ1VFQmRHcEJBbXBCQW5ZNkFBQUxJQUFnQTJvaEFDQUNRUUZySWdJTkFBc01BUXNnQVNBQ0tBSUFha0VCYXkwQUFDSUZRUUZxSVExQkFDQUZheUVJUVFRaEFnTkFBa0FnQUVFQmF5SU9MUUFBSWdRZ0FDMEFBQ0lIYXlJQklBRkJIM1VpQVdvZ0FYTWdEMDhOQUNBQVFRSnJJZ3d0QUFBaUNTQUVheUlCSUFGQkgzVWlBV29nQVhNZ0NrOE5BQ0FBTFFBQklnc2dCMnNpQVNBQlFSOTFJZ0ZxSUFGeklBcFBEUUFnQUMwQUFpRUdJQVVoQVNBS0lBQkJBMnN0QUFBaUVTQUVheUlRSUJCQkgzVWlFR29nRUhOTEJFQWdEQ0FKSUFnZ0JTQUVJQWRxUVFGcVFRRjJJQWxCQVhScklCRnFRUUYxSWdFZ0FTQUZTaHNnQVNBSVNCdHFPZ0FBSUEwaEFRc2dEaUFFQW44Z0NpQUdJQWRySWd3Z0RFRWZkU0lNYWlBTWMwc0VRQ0FBSUFzZ0NDQUZJQVFnQjJwQkFXcEJBWFlnQzBFQmRHc2dCbXBCQVhVaUJpQUZJQVpJR3lBR0lBaElHMm82QUFFZ0FVRUJhaUVCQzBFQUlBRnJJZ1lMSUFFZ0NTQUxheUFISUFSclFRSjBha0VFYWtFRGRTSUVJQUVnQkVnYklBUWdCa2diSWdGcVFiQXVhaTBBQURvQUFDQUFJQWNnQVd0QnNDNXFMUUFBT2dBQUN5QUFJQU5xSVFBZ0FrRUJheUlDRFFBTEN3djdCd0VOZnlNQVFjQURheUlTSkFBZ0JrRUZhaUVKQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0NXb2dCRXNOQUNBRElBZHFRUVZxSUFWTERRQWdBeUFFYkNBQ2FpRUtJQVFoQ1F3QkN5QUFJQklnQWlBRElBUWdCU0FKSUFkQkJXb2dDUkFNSUJJaEFBc2dBQ0FLYWlFT0FrQWdCMFVOQUVFUUlBWnJJUlFnQmtFQ2RpSVRCRUFnQ1NBR2F5RVZJQTRnQ1NBSVFRRjJRUUZ4UVFKeWJHcEJCV29oQUNBSElROERRQ0FBUVFGckxRQUFJUUlnQUVFQ2F5MEFBQ0VESUFCQkEyc3RBQUFoQlNBQVFRUnJMUUFBSVFvZ0FFRUZheTBBQUNFTElCTWhFQU5BSUFFZ0FDMEFBQ0lFSUFzZ0F5QUZhaUlNUVFSMGFpQUNJQXBxSWd0cklBd2dDMnRCQW5ScWFrRVFha0VGZFVHd0xtb3RBQUE2QUFBZ0FTQUFMUUFCSWd3Z0NpQUNJQU5xSWd0QkJIUnFJQVFnQldvaUNtdHFJQXNnQ210QkFuUnFRUkJxUVFWMVFiQXVhaTBBQURvQUFTQUJJQUF0QUFJaUVTQUZJQUlnQkdvaUNrRUVkR29nQXlBTWFpSUZhMm9nQ2lBRmEwRUNkR3BCRUdwQkJYVkJzQzVxTFFBQU9nQUNJQUVnQUMwQUF5SU5JQU1nQkNBTWFpSUZRUVIwYWlBQ0lCRnFJZ05yYWlBRklBTnJRUUowYWtFUWFrRUZkVUd3TG1vdEFBQTZBQU1nQVVFRWFpRUJJQUJCQkdvaEFDQUNJUXNnQkNFS0lBd2hCU0FSSVFNZ0RTRUNJQkJCQVdzaUVBMEFDeUFCSUJScUlRRWdBQ0FWYWlFQUlBOUJBV3NpRHcwQUN3d0JDeUFIUVFGcklCUnNJQVpySUFGcVFSQnFJUUVMQWtBZ0IwRUNkaUlLUlEwQUlBWkZEUUJCd0FBZ0Jtc2hFU0FKUVFGMElRd2dDVUVDZENBR2F5RVBRUUFnQ1dzaUMwRUJkQ0VUSUFFZ0IwRUVkR3NoQUNBSklBNXFJQWhCQVhGcVFRSnFJZ0lnQ1VFRmJHb2hBUU5BSUFZaEF3TkFJQUFnQWlBTWFpMEFBQ0lFSUFFZ0RHb3RBQUFnQVNBSmFpMEFBQ0lOSUFFZ0Uyb3RBQUFpQldvaUIyc2dCMEVDZEd0cUlBRXRBQUFpQ0NBQklBdHFMUUFBSWdkcVFSUnNha0VRYWtFRmRVR3dMbW90QUFBZ0FDMEFNR3BCQVdwQkFYWTZBREFnQUNBQ0lBbHFMUUFBSWhBZ0RTQUZJQWRxSWc1QkJIUnFJQVFnQ0dvaURXc2dEaUFOYTBFQ2RHcHFRUkJxUVFWMVFiQXVhaTBBQUNBQUxRQWdha0VCYWtFQmRqb0FJQ0FBSUFJdEFBQWlEU0FJSUFRZ0JXb2lEa0VFZEdvZ0J5QVFhaUlJYXlBT0lBaHJRUUowYW1wQkVHcEJCWFZCc0M1cUxRQUFJQUF0QUJCcVFRRnFRUUYyT2dBUUlBQWdBaUFMYWkwQUFDQUhJQVFnRUdvaUJFRUVkR29nQlNBTmFpSUZheUFFSUFWclFRSjBhbXBCRUdwQkJYVkJzQzVxTFFBQUlBQXRBQUJxUVFGcVFRRjJPZ0FBSUFKQkFXb2hBaUFBUVFGcUlRQWdBVUVCYWlFQklBTkJBV3NpQXcwQUN5QUFJQkZxSVFBZ0FTQVBhaUVCSUFJZ0Qyb2hBaUFLUVFGcklnb05BQXNMSUJKQndBTnFKQUFMdFFVQkJIOGdBQ2dDRkNFRElBQW9BaEFoQkNBQUtBSUVJUVVnQUNnQ0RDSUNJQUVwQWdBM0FnQWdBaUFCS1FJSU53SUlJQUlnQlVFRWRDSUFhaUlDSUFFcEFoQTNBZ0FnQWlBQktRSVlOd0lJSUFBZ0Ftb2lBaUFCS1FJZ053SUFJQUlnQVNrQ0tEY0NDQ0FBSUFKcUlnSWdBU2tDTURjQ0FDQUNJQUVwQWpnM0FnZ2dBQ0FDYWlJQ0lBRXBBa0EzQWdBZ0FpQUJLUUpJTndJSUlBQWdBbW9pQWlBQktRSlFOd0lBSUFJZ0FTa0NXRGNDQ0NBQUlBSnFJZ0lnQVNrQ1lEY0NBQ0FDSUFFcEFtZzNBZ2dnQUNBQ2FpSUNJQUVwQW5BM0FnQWdBaUFCS1FKNE53SUlJQUFnQW1vaUFpQUJLUUtBQVRjQ0FDQUNJQUVwQW9nQk53SUlJQUFnQW1vaUFpQUJLUUtRQVRjQ0FDQUNJQUVwQXBnQk53SUlJQUFnQW1vaUFpQUJLUUtnQVRjQ0FDQUNJQUVwQXFnQk53SUlJQUFnQW1vaUFpQUJLUUt3QVRjQ0FDQUNJQUVwQXJnQk53SUlJQUFnQW1vaUFpQUJLUUxBQVRjQ0FDQUNJQUVwQXNnQk53SUlJQUFnQW1vaUFpQUJLUUxRQVRjQ0FDQUNJQUVwQXRnQk53SUlJQUFnQW1vaUFpQUJLUUxnQVRjQ0FDQUNJQUVwQXVnQk53SUlJQUFnQW1vaUFDQUJLUUx3QVRjQ0FDQUFJQUVwQXZnQk53SUlJQVFnQVNrQ2dBSTNBZ0FnQkNBRlFRTjBJZ0JxSWdRZ0FTa0NpQUkzQWdBZ0FDQUVhaUlFSUFFcEFwQUNOd0lBSUFBZ0JHb2lCQ0FCS1FLWUFqY0NBQ0FBSUFScUlnUWdBU2tDb0FJM0FnQWdBQ0FFYWlJRUlBRXBBcWdDTndJQUlBQWdCR29pQkNBQktRS3dBamNDQUNBQUlBUnFJQUVwQXJnQ053SUFJQU1nQVNrQ3dBSTNBZ0FnQUNBRGFpSURJQUVwQXNnQ053SUFJQUFnQTJvaUF5QUJLUUxRQWpjQ0FDQUFJQU5xSWdNZ0FTa0MyQUkzQWdBZ0FDQURhaUlESUFFcEF1QUNOd0lBSUFBZ0Eyb2lBeUFCS1FMb0FqY0NBQ0FBSUFOcUlnTWdBU2tDOEFJM0FnQWdBQ0FEYWlBQktRTDRBamNDQUFzREFBRUxxQXdCQ244Q1FDQUJRUVJQQkVCQkFDQURheUlNUVFGMElRc0NRQ0FDS0FJRUlnRWdBQ0FEYXlJR0xRQUFJZ2NnQUMwQUFDSUlheUlLSUFwQkgzVWlDbW9nQ25OTkRRQWdBaWdDQ0NJRklBQWdDMm90QUFBaUNpQUhheUlKSUFsQkgzVWlDV29nQ1hOTkRRQWdCU0FBSUFOcUxRQUFJZ1VnQ0dzaUNTQUpRUjkxSWdscUlBbHpUUTBBSUFZZ0JTQUhhaUFLUVFGMGFrRUNha0VDZGpvQUFDQUFJQWdnQlVFQmRHb2dDbXBCQW1wQkFuWTZBQUFnQWlnQ0JDRUJDd0pBSUFCQkFXb2lCeUFNYWlJSkxRQUFJZ2dnQUMwQUFTSUtheUlGSUFWQkgzVWlCV29nQlhNZ0FVOE5BQ0FDS0FJSUlnWWdCeUFMYWkwQUFDSUZJQWhySWdRZ0JFRWZkU0lFYWlBRWMwME5BQ0FHSUFNZ0Iyb3RBQUFpQmlBS2F5SUVJQVJCSDNVaUJHb2dCSE5ORFFBZ0NTQUdJQWhxSUFWQkFYUnFRUUpxUVFKMk9nQUFJQWNnQ2lBR1FRRjBhaUFGYWtFQ2FrRUNkam9BQUNBQ0tBSUVJUUVMQWtBZ0FFRUNhaUlISUF4cUlna3RBQUFpQ0NBQUxRQUNJZ3BySWdVZ0JVRWZkU0lGYWlBRmN5QUJUdzBBSUFJb0FnZ2lCaUFISUF0cUxRQUFJZ1VnQ0dzaUJDQUVRUjkxSWdScUlBUnpUUTBBSUFZZ0F5QUhhaTBBQUNJR0lBcHJJZ1FnQkVFZmRTSUVhaUFFYzAwTkFDQUpJQVlnQ0dvZ0JVRUJkR3BCQW1wQkFuWTZBQUFnQnlBS0lBWkJBWFJxSUFWcVFRSnFRUUoyT2dBQUlBSW9BZ1FoQVFzQ1FDQUFRUU5xSWdjZ0RHb2lDUzBBQUNJSUlBQXRBQU1pQ21zaUJTQUZRUjkxSWdWcUlBVnpJQUZQRFFBZ0FpZ0NDQ0lHSUFjZ0Myb3RBQUFpQlNBSWF5SUVJQVJCSDNVaUJHb2dCSE5ORFFBZ0JpQURJQWRxTFFBQUlnWWdDbXNpQkNBRVFSOTFJZ1JxSUFSelRRMEFJQWtnQmlBSWFpQUZRUUYwYWtFQ2FrRUNkam9BQUNBSElBb2dCa0VCZEdvZ0JXcEJBbXBCQW5ZNkFBQWdBaWdDQkNFQkN3SkFJQUJCQkdvaUJ5QU1haUlKTFFBQUlnZ2dBQzBBQkNJS2F5SUZJQVZCSDNVaUJXb2dCWE1nQVU4TkFDQUNLQUlJSWdZZ0J5QUxhaTBBQUNJRklBaHJJZ1FnQkVFZmRTSUVhaUFFYzAwTkFDQUdJQU1nQjJvdEFBQWlCaUFLYXlJRUlBUkJIM1VpQkdvZ0JITk5EUUFnQ1NBR0lBaHFJQVZCQVhScVFRSnFRUUoyT2dBQUlBY2dDaUFHUVFGMGFpQUZha0VDYWtFQ2Rqb0FBQ0FDS0FJRUlRRUxBa0FnQUVFRmFpSUhJQXhxSWdrdEFBQWlDQ0FBTFFBRklncHJJZ1VnQlVFZmRTSUZhaUFGY3lBQlR3MEFJQUlvQWdnaUJpQUhJQXRxTFFBQUlnVWdDR3NpQkNBRVFSOTFJZ1JxSUFSelRRMEFJQVlnQXlBSGFpMEFBQ0lHSUFwcklnUWdCRUVmZFNJRWFpQUVjMDBOQUNBSklBWWdDR29nQlVFQmRHcEJBbXBCQW5ZNkFBQWdCeUFLSUFaQkFYUnFJQVZxUVFKcVFRSjJPZ0FBSUFJb0FnUWhBUXNDUUNBQVFRWnFJZ2NnREdvaUNTMEFBQ0lJSUFBdEFBWWlDbXNpQlNBRlFSOTFJZ1ZxSUFWeklBRlBEUUFnQWlnQ0NDSUdJQWNnQzJvdEFBQWlCU0FJYXlJRUlBUkJIM1VpQkdvZ0JITk5EUUFnQmlBRElBZHFMUUFBSWdZZ0Ntc2lCQ0FFUVI5MUlnUnFJQVJ6VFEwQUlBa2dCaUFJYWlBRlFRRjBha0VDYWtFQ2Rqb0FBQ0FISUFvZ0JrRUJkR29nQldwQkFtcEJBblk2QUFBZ0FpZ0NCQ0VCQ3lBQklBQkJCMm9pQVNBTWFpSUhMUUFBSWd3Z0FDMEFCeUlBYXlJSUlBaEJIM1VpQ0dvZ0NITk5EUUVnQWlnQ0NDSUlJQUVnQzJvdEFBQWlBaUFNYXlJTElBdEJIM1VpQzJvZ0MzTk5EUUVnQVNBRGFpMEFBQ0lESUFCcklnc2dDMEVmZFNJTGFpQUxjeUFJVHcwQklBY2dBeUFNYWlBQ1FRRjBha0VDYWtFQ2Rqb0FBQ0FCSUFBZ0EwRUJkR29nQW1wQkFtcEJBblk2QUFBUEMwRUFJQU5ySWdwQkFYUWhCU0FCSUFJb0FnQnFRUUZyTFFBQUlnRkJmM01oQnlBQlFRRnFJUWhCQ0NFQkEwQUNRQ0FDS0FJRUlBQWdDbW9pQmkwQUFDSUxJQUF0QUFBaURHc2lDU0FKUVI5MUlnbHFJQWx6VFEwQUlBSW9BZ2dpQ1NBQUlBVnFMUUFBSWdRZ0Myc2lEU0FOUVI5MUlnMXFJQTF6VFEwQUlBa2dBQ0FEYWkwQUFDSUpJQXhySWcwZ0RVRWZkU0lOYWlBTmMwME5BQ0FHSUFzZ0J5QUlJQXdnQzJ0QkFuUWdDV3NnQkdwQkJHcEJBM1VpQ3lBSUlBdElHeUFISUF0S0d5SUxha0d3TG1vdEFBQTZBQUFnQUNBTUlBdHJRYkF1YWkwQUFEb0FBQXNnQUVFQmFpRUFJQUZCQVdzaUFRMEFDd3NMNkFJQkJYOENRQ0FBSUFFUUFpSUREUUJCQVNFRElBRWdBU2dDQUVFQmFpSUNOZ0lBSUFKQklFc05BQ0FBUVFRUUF5SUNRWDlHRFFBZ0FTQUNOZ0lFSUFCQkJCQURJZ0pCZjBZTkFDQUJJQUkyQWdnZ0FTZ0NBQVJBQTBBZ0FDQUJJQVZCQW5ScUlnSWlCRUVNYWhBQ0lnTU5Ba0VCSVFNZ0JDZ0NEQ0lHUVg5R0RRSWdCQ0FHUVFGcUlnTTJBZ3dnQkNBRElBRW9BZ1JCQm1wME5nSU1JQUFnQWtHTUFXb1FBaUlERFFKQkFTRURJQUlvQW93QklnUkJmMFlOQWlBQ0lBUkJBV29pQkRZQ2pBRWdBaUFFSUFFb0FnaEJCR3AwTmdLTUFTQUFRUUVRQXlJRVFYOUdEUUlnQWlBRVFRRkdOZ0tNQWlBRlFRRnFJZ1VnQVNnQ0FFa05BQXNMSUFCQkJSQURJZ0pCZjBZTkFDQUJJQUpCQVdvMkFvd0RJQUJCQlJBRElnSkJmMFlOQUNBQklBSkJBV28yQXBBRElBQkJCUkFESWdKQmYwWU5BQ0FCSUFKQkFXbzJBcFFESUFCQkJSQURJZ0JCZjBZTkFDQUJJQUEyQXBnRFFRQWhBd3NnQXd0YkFRTi9JQUFnQUNnQ0FDSUVJQUVnQUNnQ0JDSUNjQ0lEUVFSMGFpQUJJQU5ySWdGQkNIUnFOZ0lNSUFBZ0JDQUNJQUFvQWdoc0lnSkJDSFJxSUFGQkJuUnFJQU5CQTNScUlnRTJBaEFnQUNBQklBSkJCblJxTmdJVUMxVUJBbjhnQVNBQ1FRRnFJZ01nQVNBRFN4c2hBeUFBSUFKQkFuUnFLQUlBSVFRRFFBSkFJQUVnQWtFQmFpSUNUUVJBSUFNaEFnd0JDeUFBSUFKQkFuUnFLQUlBSUFSSERRRUxDMEVBSUFJZ0FTQUNSaHNMSndBZ0FFRUlJQUFvQWdnaUFHc1FBMEYvUmdSQUR3dEJBQ0FBYTBFQ2RFSE1QMm9vQWdBYUMzb0JBbjhqQUVFZ2F5SUNKQUFnQWlBQUtBSVFOZ0lRSUFJZ0FDa0NDRGNEQ0NBQ0lBQXBBZ0EzQXdBQ1FDQUNJQUpCSEdvUUFpSUFEUUFnQWlBQ1FSeHFFQUlpQUEwQUlBSWdBa0VjYWhBQ0lnQU5BRUVCSVFBZ0FpZ0NIQ0lEUWY4QlN3MEFJQUVnQXpZQ0FFRUFJUUFMSUFKQklHb2tBQ0FBQzRzSUFSSi9Jd0JCZ0E1cklnNGtBQ0FHUVFWcUlRa0NRQUpBSUFKQkFFZ05BQ0FEUVFCSURRQWdBaUFKYWlBRVN3MEFJQU1nQjJwQkJXb2dCVXNOQUNBRElBUnNJQUpxSVFvTUFRc2dBQ0FPUWNBS2FpQUNJQU1nQkNBRklBa2dCMEVGYWlBSkVBd2dEa0hBQ21vaEFDQUpJUVFMQWtBZ0IwRUNkaUlRUlEwQUlBbEZEUUFnQkVFQmRDRVNRUUFnQkdzaUMwRUJkQ0VXSUFSQkFuUWdCbXRCQldzaEV5QUFJQXBxSUFScUlnQWdCRUVGYkdvaEFpQU9JQWxCQW5RaUYyb2hBeUFKUVFOMElSaEJleUFHYTBFQ2RDRVpJQWxCQTJ4QkFuUWhHZ05BSUFraEJRTkFJQU1nR0dvZ0FDQVNhaTBBQUNJS0lBSWdFbW90QUFBZ0FpQUVhaTBBQUNJUklBSWdGbW90QUFBaURHb2lEV3NnRFVFQ2RHdHFJQUl0QUFBaUR5QUNJQXRxTFFBQUlnMXFRUlJzYWpZQ0FDQURJQmRxSUFBZ0JHb3RBQUFpRlNBUklBd2dEV29pRkVFRWRHb2dDaUFQYWlJUmEyb2dGQ0FSYTBFQ2RHbzJBZ0FnQXlBQUxRQUFJaEVnRHlBS0lBeHFJaFJCQkhScUlBMGdGV29pRDJ0cUlCUWdEMnRCQW5ScU5nSUFJQU1nR1dvZ0FDQUxhaTBBQUNBTklBb2dGV29pQ2tFRWRHb2dEQ0FSYWlJTWEyb2dDaUFNYTBFQ2RHbzJBZ0FnQUVFQmFpRUFJQU5CQkdvaEF5QUNRUUZxSVFJZ0JVRUJheUlGRFFBTElBSWdFMm9oQWlBQUlCTnFJUUFnQXlBYWFpRURJQkJCQVdzaUVBMEFDd3NDUUNBSFJRMEFJQVpCQW5ZaUVrVU5BRUVRSUFacklROGdEaUFJUVFKMGFrRUlhaUVKSUE1QkZHb2hBZ05BSUFKQkJHc29BZ0FoQUNBQ1FRaHJLQUlBSVFNZ0FrRU1heWdDQUNFR0lBSkJFR3NvQWdBaEJTQUNRUlJyS0FJQUlRd2dFaUVOQTBBZ0FTQUNJZ3NvQWdBaUNDQU1JQU1nQm1vaUFrRUVkR29nQUNBRmFpSUVheUFDSUFSclFRSjBhbXBCZ0FScVFRcDFRYkF1YWkwQUFDQUpJZ1FvQWdCQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBQ0FCSUFzb0FnUWlDaUFGSUFBZ0Eyb2lBa0VFZEdvZ0JpQUlhaUlGYXlBQ0lBVnJRUUowYW1wQmdBUnFRUXAxUWJBdWFpMEFBQ0FFS0FJRVFSQnFRUVYxUWJBdWFpMEFBR3BCQVdwQkFYWTZBQUVnQVNBTEtBSUlJaEFnQmlBQUlBaHFJZ0pCQkhScUlBTWdDbW9pQldzZ0FpQUZhMEVDZEdwcVFZQUVha0VLZFVHd0xtb3RBQUFnQkNnQ0NFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FDSUFFZ0N5Z0NEQ0lUSUFNZ0NDQUthaUlDUVFSMGFpQUFJQkJxSWdOcklBSWdBMnRCQW5ScWFrR0FCR3BCQ25WQnNDNXFMUUFBSUFRb0FneEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQXlBQlFRUnFJUUVnQkVFUWFpRUpJQXRCRUdvaEFpQUFJUXdnQ0NFRklBb2hCaUFRSVFNZ0V5RUFJQTFCQVdzaURRMEFDeUFCSUE5cUlRRWdCRUVrYWlFSklBdEJKR29oQWlBSFFRRnJJZ2NOQUFzTElBNUJnQTVxSkFBTCtnY0JEWDhqQUVHQURtc2lEaVFBSUFaQkJXb2hDUUpBQWtBZ0FrRUFTQTBBSUFOQkFFZ05BQ0FDSUFscUlBUkxEUUFnQjBFRmFpSU5JQU5xSUFWTERRQWdCQ0VKSUFNaENnd0JDeUFBSUE1QndBcHFJQUlnQXlBRUlBVWdDU0FIUVFWcUlnMGdDUkFNSUE1QndBcHFJUUJCQUNFQ0N3SkFJQTFGRFFBZ0JrRUNkaUlTUlEwQUlBa2dCbXNoRXlBQUlBa2dDbXdnQW1wcVFRVnFJUUlnRGlFQUEwQWdBa0VCYXkwQUFDRUpJQUpCQW1zdEFBQWhBeUFDUVFOckxRQUFJUVVnQWtFRWF5MEFBQ0VLSUFKQkJXc3RBQUFoQ3lBU0lROERRQ0FBSUFJdEFBQWlCQ0FMSUFNZ0JXb2lERUVFZEdvZ0NTQUthaUlMYXlBTUlBdHJRUUowYW1vMkFnQWdBQ0FDTFFBQklnd2dDaUFESUFscUlndEJCSFJxSUFRZ0JXb2lDbXRxSUFzZ0NtdEJBblJxTmdJRUlBQWdBaTBBQWlJUUlBVWdCQ0FKYWlJRlFRUjBhaUFESUF4cUlncHJhaUFGSUFwclFRSjBhallDQ0NBQUlBSXRBQU1pRkNBRElBUWdER29pQTBFRWRHb2dDU0FRYWlJRmEyb2dBeUFGYTBFQ2RHbzJBZ3dnQUVFUWFpRUFJQUpCQkdvaEFpQUpJUXNnQkNFS0lBd2hCU0FRSVFNZ0ZDRUpJQTlCQVdzaUR3MEFDeUFDSUJOcUlRSWdEVUVCYXlJTkRRQUxDd0pBSUFkQkFuWWlDa1VOQUNBR1JRMEFRY0FBSUFacklSSWdEaUFHUVFKMGFpSUFJQVpCRkd4cUlRa2dBQ0FJUVFKcUlBWnNRUUowYWlFRFFRQWdCbXNpRkVFRGRDRVRJQVpCQTNRaEFpQUdRUU5zUVFKMElRUURRQ0FHSVEwRFFDQUJJQUFnQW1vb0FnQWlCU0FDSUFscUtBSUFJQWtnQmtFQ2RDSU1haWdDQUNJUklBa2dFMm9vQWdBaUIyb2lDR3NnQ0VFQ2RHdHFJQWtvQWdBaUN5QUpJQlJCQW5RaUQyb29BZ0FpQ0dwQkZHeHFRWUFFYWtFS2RVR3dMbW90QUFBZ0FpQURhaWdDQUVFUWFrRUZkVUd3TG1vdEFBQnFRUUZxUVFGMk9nQXdJQUVnQUNBTWFpZ0NBQ0lRSUJFZ0J5QUlhaUlWUVFSMGFpQUZJQXRxSWhGcklCVWdFV3RCQW5ScWFrR0FCR3BCQ25WQnNDNXFMUUFBSUFNZ0RHb29BZ0JCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUlDQUJJQUFvQWdBaURDQUxJQVVnQjJvaUVVRUVkR29nQ0NBUWFpSUxheUFSSUF0clFRSjBhbXBCZ0FScVFRcDFRYkF1YWkwQUFDQURLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFCQWdBU0FBSUE5cUtBSUFJQWdnQlNBUWFpSUZRUVIwYWlBSElBeHFJZ2RySUFVZ0IydEJBblJxYWtHQUJHcEJDblZCc0M1cUxRQUFJQU1nRDJvb0FnQkJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQUNBRFFRUnFJUU1nQUVFRWFpRUFJQUZCQVdvaEFTQUpRUVJxSVFrZ0RVRUJheUlORFFBTElBRWdFbW9oQVNBRElBUnFJUU1nQkNBSmFpRUpJQUFnQkdvaEFDQUtRUUZySWdvTkFBc0xJQTVCZ0E1cUpBQUxzUVFCQ1g4akFFSEFBMnNpQ3lRQUlBWkJCV29oQ1FKQUFrQWdBa0VBU0EwQUlBTWdCMm9nQlVzTkFDQURRUUJJRFFBZ0FpQUphaUFFU3cwQUlBUWhDU0FESVFvTUFRc2dBQ0FMSUFJZ0F5QUVJQVVnQ1NBSElBa1FEQ0FMSVFCQkFDRUNDd0pBSUFkRkRRQWdCa0VDZGlJT1JRMEFRUkFnQm1zaER5QUpJQVpySVJBZ0FDQUpJQXBzSUFKcWFrRUZhaUVEQTBBZ0EwRUJheTBBQUNFQ0lBTkJBbXN0QUFBaENTQURRUU5yTFFBQUlRQWdBMEVFYXkwQUFDRUtJQU5CQldzdEFBQWhCaUFPSVF3RFFDQUJJQU10QUFBaUJDQUdJQUFnQ1dvaUJVRUVkR29nQWlBS2FpSUdheUFGSUFaclFRSjBhbXBCRUdwQkJYVkJzQzVxTFFBQUlBa2dBQ0FJRzJwQkFXcEJBWFk2QUFBZ0FTQURMUUFCSWdVZ0NpQUNJQWxxSWdaQkJIUnFJQUFnQkdvaUNtdHFJQVlnQ210QkFuUnFRUkJxUVFWMVFiQXVhaTBBQUNBQ0lBa2dDQnRxUVFGcVFRRjJPZ0FCSUFFZ0F5MEFBaUlOSUFBZ0FpQUVhaUlHUVFSMGFpQUZJQWxxSWdCcmFpQUdJQUJyUVFKMGFrRVFha0VGZFVHd0xtb3RBQUFnQkNBQ0lBZ2Jha0VCYWtFQmRqb0FBaUFCSUFNdEFBTWlFU0FKSUFRZ0JXb2lBRUVFZEdvZ0FpQU5haUlHYTJvZ0FDQUdhMEVDZEdwQkVHcEJCWFZCc0M1cUxRQUFJQVVnQkNBSUcycEJBV3BCQVhZNkFBTWdBVUVFYWlFQklBTkJCR29oQXlBQ0lRWWdCQ0VLSUFVaEFDQU5JUWtnRVNFQ0lBeEJBV3NpREEwQUN5QUJJQTlxSVFFZ0F5QVFhaUVESUFkQkFXc2lCdzBBQ3dzZ0MwSEFBMm9rQUF2VUJBRU1meU1BUWNBRGF5SU5KQUFDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBR2FpQUVTdzBBSUFNZ0IycEJCV29nQlVzTkFDQURJQVJzSUFKcUlRa01BUXNnQUNBTklBSWdBeUFFSUFVZ0JpQUhRUVZxSUFZUURDQU5JUUFnQmlFRUN3SkFJQWRCQW5ZaUVVVU5BQ0FHUlEwQVFjQUFJQVpySVJNZ0JFRUJkQ0VGSUFSQkFuUWdCbXNoRGtFQUlBUnJJZzlCQVhRaEZDQUFJQWxxSUFScUlnQWdCRUVGYkdvaEFpQUFJQVFnQ0VFQ2FteHFJUWNEUUNBR0lRTURRQ0FCSUFBZ0JXb3RBQUFpQ0NBQ0lBVnFMUUFBSUFJZ0JHb3RBQUFpQ2lBQ0lCUnFMUUFBSWdscUlndHJJQXRCQW5ScmFpQUNMUUFBSWd3Z0FpQVBhaTBBQUNJTGFrRVViR3BCRUdwQkJYVkJzQzVxTFFBQUlBVWdCMm90QUFCcVFRRnFRUUYyT2dBd0lBRWdBQ0FFYWkwQUFDSVNJQW9nQ1NBTGFpSVFRUVIwYWlBSUlBeHFJZ3BySUJBZ0NtdEJBblJxYWtFUWFrRUZkVUd3TG1vdEFBQWdCQ0FIYWkwQUFHcEJBV3BCQVhZNkFDQWdBU0FBTFFBQUlnb2dEQ0FJSUFscUloQkJCSFJxSUFzZ0Vtb2lER3NnRUNBTWEwRUNkR3BxUVJCcVFRVjFRYkF1YWkwQUFDQUhMUUFBYWtFQmFrRUJkam9BRUNBQklBQWdEMm90QUFBZ0N5QUlJQkpxSWdoQkJIUnFJQWtnQ21vaUNXc2dDQ0FKYTBFQ2RHcHFRUkJxUVFWMVFiQXVhaTBBQUNBSElBOXFMUUFBYWtFQmFrRUJkam9BQUNBSFFRRnFJUWNnQUVFQmFpRUFJQUZCQVdvaEFTQUNRUUZxSVFJZ0EwRUJheUlERFFBTElBRWdFMm9oQVNBSElBNXFJUWNnQWlBT2FpRUNJQUFnRG1vaEFDQVJRUUZySWhFTkFBc0xJQTFCd0FOcUpBQUw0UUVCQkg4Q1FDQUFLQUlvSWdKRkRRQWdBa0VEY1NFRUlBSkJBV3RCQTA4RVFDQUNRWHh4SVFJRFFDQUFLQUlFSUFGQkFuUnFJQUFvQWdBZ0FVRW9iR28yQWdBZ0FDZ0NCQ0FCUVFGeUlnTkJBblJxSUFBb0FnQWdBMEVvYkdvMkFnQWdBQ2dDQkNBQlFRSnlJZ05CQW5ScUlBQW9BZ0FnQTBFb2JHbzJBZ0FnQUNnQ0JDQUJRUU55SWdOQkFuUnFJQUFvQWdBZ0EwRW9iR28yQWdBZ0FVRUVhaUVCSUFKQkJHc2lBZzBBQ3dzZ0JFVU5BQU5BSUFBb0FnUWdBVUVDZEdvZ0FDZ0NBQ0FCUVNoc2FqWUNBQ0FCUVFGcUlRRWdCRUVCYXlJRURRQUxDd3VCQ0FFTWZ5QUJLQUlJSVFzZ0FTZ0NCQ0VGQWtBQ1FBSkFJQUlPQmdFQUFBQUFBUUFMSUFBb0FyZ2FEUUFNQVFzZ0FFSEVDV29oQkFOQUlBUWdBeEFUSVFZZ0EwRU9TdzBCSUFOQkFXb2hBeUFHUlEwQUN3c0NRQUpBQWtBQ1FBSkFBa0FnQUNnQ21Ba2lDRVVFUUNBSVJTRURRUUFoQkF3QkN5QUFLQUs4Q1NFS1FRQWhBMEVBSVFRRFFDQUtJQU5CMkFGc2FpZ0N4QUVFUUNBRElBaEdJUU1NQWd0QkFDQUVRUUZxSWdRZ0JDQUZSaUlIR3lFRUlBY2dDV29oQ1NBRFFRRnFJZ01nQ0VjTkFBc01BUXNnQTBVTkFRc0NRQUpBQWtBZ0FrRUNhdzRHQUFFQkFRRUFBUXNnQmtVTkFTQUFLQUs0R2tVTkFRd0RDeUFHRFFJTElBRW9BZ0JCZ0FFZ0JTQUxiRUdBQTJ3UUJCb01BZ3NnQUNnQ3ZBa2dCU0FKYkVIWUFXeHFJUWdnQkFSQUlBUWhBd05BSUFnZ0EwRUJheUlEUWRnQmJHb2lDaUFCSUFrZ0F5QUNJQVlRRlNBS1FRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpJQU1OQUFzTElBVWdCRUVCYWlJRFN3UkFBMEFnQ0NBRFFkZ0JiR29pQkNnQ3hBRkZCRUFnQkNBQklBa2dBeUFDSUFZUUZTQUVRUUUyQXNRQklBQWdBQ2dDdEFsQkFXbzJBclFKQ3lBRFFRRnFJZ01nQlVjTkFBc0xJQWtFUUNBRlJRMERJQWxCQW1zaENFRUFJUWNnQ1VFQmF5SU1JQVZzUWRnQmJDRU5RUUFnQld0QjJBRnNJUTREUUNBQUtBSzhDU0FOYWlBSFFkZ0JiR29pQXlBQklBd2dCeUFDSUFZUUZTQURRUUUyQXNRQklBQWdBQ2dDdEFsQkFXbzJBclFKSUFnaEJDQU1CRUFEUUNBRElBNXFJZ01nQVNBRUlnb2dCeUFDSUFZUUZTQURRUUUyQXNRQklBQWdBQ2dDdEFsQkFXbzJBclFKSUFSQkFXc2hCQ0FLRFFBTEN5QUhRUUZxSWdjZ0JVY05BQXNMSUFsQkFXb2lCeUFMVHcwQ0lBVkZEUUlEUUNBQUtBSzhDU0FGSUFkc1FkZ0JiR29oQ0VFQUlRTURRQ0FJSUFOQjJBRnNhaUlFS0FMRUFVVUVRQ0FFSUFFZ0J5QURJQUlnQmhBVklBUkJBVFlDeEFFZ0FDQUFLQUswQ1VFQmFqWUN0QWtMSUFOQkFXb2lBeUFGUncwQUN5QUhRUUZxSWdjZ0MwY05BQXNNQWdzZ0FTZ0NBQ0FHSUFVZ0MyeEJnQU5zRUFnYUN5QUFJQUFvQXBnSklnRTJBclFKSUFGRkRRQWdBVUVIY1NFRUlBQW9BcndKSVFCQkFDRURJQUZCQVd0QkIwOEVRQ0FCUVhoeElRWURRQ0FBSUFOQjJBRnNha0VCTmdJSUlBQWdBMEVCY2tIWUFXeHFRUUUyQWdnZ0FDQURRUUp5UWRnQmJHcEJBVFlDQ0NBQUlBTkJBM0pCMkFGc2FrRUJOZ0lJSUFBZ0EwRUVja0hZQVd4cVFRRTJBZ2dnQUNBRFFRVnlRZGdCYkdwQkFUWUNDQ0FBSUFOQkJuSkIyQUZzYWtFQk5nSUlJQUFnQTBFSGNrSFlBV3hxUVFFMkFnZ2dBMEVJYWlFRElBWkJDR3NpQmcwQUN3c2dCRVVOQUFOQUlBQWdBMEhZQVd4cVFRRTJBZ2dnQTBFQmFpRURJQVJCQVdzaUJBMEFDd3NMcndvQ0NuOENmaU1BUVJCcklRY2dBVUVJVHdSQVFRY2hCZ05BSUFBZ0JrRW9iR29pQWlnQ0dDRUtJQUlwQWd3aERDQUNLQUlJSVFnZ0Fpa0NBQ0VOSUFJb0FoUWhDU0FISUFJb0FpUTJBZ2dnQnlBQ0tRSWNOd01BQWtBZ0NRUkFJQWxCQVdzaEN5QUdJUUlEUUFKQUlBQWdBa0VvYkdvaUJVR0VBbXNvQWdBaUEwVU5BQ0FGUVpnQ2F5RUVJQU5CQVd0QkFVMEVRQ0FMUVFGTERRUWdCQ2dDQ0NBSVNBMEJEQVFMSUF0QkFra05BQ0FFS0FJSUlBaE1EUU1MSUFVZ0FDQUNRUWRySWdKQktHeHFJZ01wQWdBM0FnQWdCU0FES1FJZ053SWdJQVVnQXlrQ0dEY0NHQ0FGSUFNcEFoQTNBaEFnQlNBREtRSUlOd0lJSUFKQkJrc05BQXNNQVFzZ0JpRUNJQXBGRFFBRFFDQUFJQUpCS0d4cUlnUkJoQUpyS0FJQURRRWdCRUdZQW1zb0FoZ05BU0FFSUFBZ0FrRUhheUlDUVNoc2FpSURLUUlBTndJQUlBUWdBeWtDSURjQ0lDQUVJQU1wQWhnM0FoZ2dCQ0FES1FJUU53SVFJQVFnQXlrQ0NEY0NDQ0FDUVFkUERRQUxDeUFBSUFKQktHeHFJZ0lnQ2pZQ0dDQUNJQWsyQWhRZ0FpQU1Od0lNSUFJZ0NEWUNDQ0FDSUEwM0FnQWdBaUFIS1FNQU53SWNJQUlnQnlnQ0NEWUNKQ0FHUVFGcUlnWWdBVWNOQUFzTElBRkJCRThFUUVFRElRWURRQ0FBSUFaQktHeHFJZ0lvQWhnaENpQUNLUUlNSVF3Z0FpZ0NDQ0VJSUFJcEFnQWhEU0FDS0FJVUlRa2dCeUFDS0FJa05nSUlJQWNnQWlrQ0hEY0RBQUpBSUFrRVFDQUpRUUZySVFzZ0JpRUNBMEFDUUNBQUlBSkJLR3hxSWdWQjVBQnJLQUlBSWdORkRRQWdCVUg0QUdzaEJDQURRUUZyUVFKUEJFQWdDMEVDU1EwQklBUW9BZ2dnQ0VvTkFRd0VDeUFMUVFGTERRTWdCQ2dDQ0NBSVRnMERDeUFGSUFBZ0FrRURheUlDUVNoc2FpSURLUUlBTndJQUlBVWdBeWtDSURjQ0lDQUZJQU1wQWhnM0FoZ2dCU0FES1FJUU53SVFJQVVnQXlrQ0NEY0NDQ0FDUVFOUERRQUxEQUVMSUFZaEFpQUtSUTBBQTBBZ0FDQUNRU2hzYWlJRVFlUUFheWdDQUEwQklBUkIrQUJyS0FJWURRRWdCQ0FBSUFKQkEyc2lBa0VvYkdvaUF5a0NBRGNDQUNBRUlBTXBBaUEzQWlBZ0JDQURLUUlZTndJWUlBUWdBeWtDRURjQ0VDQUVJQU1wQWdnM0FnZ2dBa0VDU3cwQUN3c2dBQ0FDUVNoc2FpSUNJQW8yQWhnZ0FpQUpOZ0lVSUFJZ0REY0NEQ0FDSUFnMkFnZ2dBaUFOTndJQUlBSWdCeWtEQURjQ0hDQUNJQWNvQWdnMkFpUWdCa0VCYWlJR0lBRkhEUUFMQ3lBQlFRSlBCRUJCQVNFR0EwQWdBQ0FHUVNoc2FpSUNLQUlZSVFvZ0Fpa0NEQ0VNSUFJb0FnZ2hDQ0FDS1FJQUlRMGdBaWdDRkNFSklBY2dBaWdDSkRZQ0NDQUhJQUlwQWh3M0F3QUNRQUpBSUFrRVFDQUpRUUZySVFzZ0JpRUNBMEFDUUNBQUlBSkJLR3hxSWdWQkZHc29BZ0FpQTBVTkFDQUZRU2hySVFRZ0EwRUJhMEVDVHdSQUlBdEJBa2tOQVNBRUtBSUlJQWhLRFFFTUJRc2dDMEVCU3cwRUlBUW9BZ2dnQ0U0TkJBc2dCU0FBSUFKQkFXc2lBa0VvYkdvaUF5a0NBRGNDQUNBRklBTXBBaUEzQWlBZ0JTQURLUUlZTndJWUlBVWdBeWtDRURjQ0VDQUZJQU1wQWdnM0FnZ2dBZzBBQ3d3QkN5QUdJUUlnQ2tVTkFRTkFJQUFnQWtFb2JHb2lCRUVVYXlnQ0FBMENJQVJCS0dzb0FoZ05BaUFFSUFBZ0FrRUJheUlDUVNoc2FpSURLUUlBTndJQUlBUWdBeWtDSURjQ0lDQUVJQU1wQWhnM0FoZ2dCQ0FES1FJUU53SVFJQVFnQXlrQ0NEY0NDQ0FDRFFBTEMwRUFJUUlMSUFBZ0FrRW9iR29pQWlBS05nSVlJQUlnQ1RZQ0ZDQUNJQXczQWd3Z0FpQUlOZ0lJSUFJZ0RUY0NBQ0FDSUFjcEF3QTNBaHdnQWlBSEtBSUlOZ0lrSUFaQkFXb2lCaUFCUncwQUN3c0wvZ1lCQjM4Q1FDQUFLQUlBSWdFb0FoUkZEUUFnQVVFQU5nSVVJQUVvQWhnTkFDQUFJQUFvQWl4QkFXczJBaXdMQWtBZ0FTZ0NQRVVOQUNBQlFRQTJBandnQVVGQWF5Z0NBQTBBSUFBZ0FDZ0NMRUVCYXpZQ0xBc0NRQ0FCS0FKa1JRMEFJQUZCQURZQ1pDQUJLQUpvRFFBZ0FDQUFLQUlzUVFGck5nSXNDd0pBSUFFb0Fvd0JSUTBBSUFGQkFEWUNqQUVnQVNnQ2tBRU5BQ0FBSUFBb0FpeEJBV3MyQWl3TEFrQWdBU2dDdEFGRkRRQWdBVUVBTmdLMEFTQUJLQUs0QVEwQUlBQWdBQ2dDTEVFQmF6WUNMQXNDUUNBQktBTGNBVVVOQUNBQlFRQTJBdHdCSUFFb0F1QUJEUUFnQUNBQUtBSXNRUUZyTmdJc0N3SkFJQUVvQW9RQ1JRMEFJQUZCQURZQ2hBSWdBU2dDaUFJTkFDQUFJQUFvQWl4QkFXczJBaXdMQWtBZ0FTZ0NyQUpGRFFBZ0FVRUFOZ0tzQWlBQktBS3dBZzBBSUFBZ0FDZ0NMRUVCYXpZQ0xBc0NRQ0FCS0FMVUFrVU5BQ0FCUVFBMkF0UUNJQUVvQXRnQ0RRQWdBQ0FBS0FJc1FRRnJOZ0lzQ3dKQUlBRW9BdndDUlEwQUlBRkJBRFlDL0FJZ0FTZ0NnQU1OQUNBQUlBQW9BaXhCQVdzMkFpd0xBa0FnQVNnQ3BBTkZEUUFnQVVFQU5nS2tBeUFCS0FLb0F3MEFJQUFnQUNnQ0xFRUJhellDTEFzQ1FDQUJLQUxNQTBVTkFDQUJRUUEyQXN3RElBRW9BdEFERFFBZ0FDQUFLQUlzUVFGck5nSXNDd0pBSUFFb0F2UURSUTBBSUFGQkFEWUM5QU1nQVNnQytBTU5BQ0FBSUFBb0FpeEJBV3MyQWl3TEFrQWdBU2dDbkFSRkRRQWdBVUVBTmdLY0JDQUJLQUtnQkEwQUlBQWdBQ2dDTEVFQmF6WUNMQXNDUUNBQktBTEVCRVVOQUNBQlFRQTJBc1FFSUFFb0FzZ0VEUUFnQUNBQUtBSXNRUUZyTmdJc0N3SkFJQUVvQXV3RVJRMEFJQUZCQURZQzdBUWdBU2dDOEFRTkFDQUFJQUFvQWl4QkFXczJBaXdMQTBBQ2YwRUFJUUZCQVNFQ0FrQWdBQ2dDT0EwQUlBQW9BZ0FoQlNBQUtBSWNJUVpCLy8vLy93Y2hBMEVBSVFJRFFDQUZJQUpCS0d4cUlnUW9BaGdFUUNBRUlBRWdCQ2dDRUNJRUlBTklJZ2NiSVFFZ0JDQURJQWNiSVFNTElBSkJBV29pQWlBR1RRMEFDMEVCSUFGRkRRRWFJQUFvQWd3Z0FDZ0NFQ0lEUVFSMGFpSUNJQUVvQWdBMkFnQWdBaUFCS0FJa05nSU1JQUlnQVNnQ0hEWUNCQ0FDSUFFb0FpQTJBZ2dnQUNBRFFRRnFOZ0lRUVFBaEFpQUJRUUEyQWhnZ0FTZ0NGQTBBSUFBZ0FDZ0NMRUVCYXpZQ0xBc2dBZ3RGRFFBTElBQkJBRFlDTUNBQVF2Ly9BemNDSkF2Z0R3RUpmeUFDS0FJQUlBQW9BZ2dpQWlnQ0FFWUVRQ0FBUVFBMkFqUWdBQ2dDT0NJSlJTRVFBa0FnQVVVRVFDQUNJQU0yQWd3Z0FrRUFOZ0lVSUFJZ0VEWUNHQ0FDSUFRMkFoQWdBaUFETmdJSUlBa05BU0FBSUFBb0FpeEJBV28yQWl3TUFRc2dCUVJBSUFCQ0FEY0NFQ0FBRUNjQ1FDQUJLQUlBUlFSQUlBQW9BamhGRFFFTElBQkNBRGNDRUFzZ0FDZ0NDQ0lDUVFOQkFpQUJLQUlFSWdFYk5nSVVJQUJCQUVILy93TWdBUnMyQWlRZ0FpQVFOZ0lZSUFKQkFEWUNFQ0FDUWdBM0FnZ2dBRUtCZ0lDQUVEY0NLQXdCQ3dKQUFrQUNRQUpBSUFFb0FnZ0VRQU5BQWtBQ1FBSkFBa0FDUUFKQUFrQWdBU0FLUVJSc2FpSUlLQUlNSWdrT0J3a0FBUUlEQkFVSkN5QUFLQUlZSWdsRkRRZ2dBeUFJS0FJUWF5RUxJQUFvQWdBaERFRUFJUWdEUUFKQUlBd2dDRUVvYkdvaUFpZ0NGRUVCYTBFQlRRUkFJQUlvQWdnZ0MwWU5BUXNnQ0VFQmFpSUlJQWxIRFFFTUNnc0xJQWhCQUVnTkNDQUNRUUEyQWhRZ0FDQUFLQUlvUVFGck5nSW9JQUlvQWhnTkJTQUFJQUFvQWl4QkFXczJBaXdnQ2tFQmFpRUtEQVlMSUFBb0FoZ2lDVVVOQnlBSUtBSVVJUXNnQUNnQ0FDRU1RUUFoQ0FOQUFrQWdEQ0FJUVNoc2FpSUNLQUlVUVFOR0JFQWdBaWdDQ0NBTFJnMEJDeUFJUVFGcUlnZ2dDVWNOQVF3SkN3c2dDRUVBU0EwSElBSkJBRFlDRkNBQUlBQW9BaWhCQVdzMkFpZ2dBaWdDR0EwRUlBQWdBQ2dDTEVFQmF6WUNMQ0FLUVFGcUlRb01CUXNnQUNnQ0pDSUNRZi8vQTBZTkJpQUlLQUlZSWdzZ0Frc05CaUFBS0FJWUlnbEZEUVlnQ0NnQ0VDRVBJQUFvQWdBaERFRUFJUUlEUUFKQUFrQWdEQ0FDUVNoc2FpSUlLQUlVUVFOSERRQWdDQ2dDQ0NBTFJ3MEFJQWhCQURZQ0ZDQUFJQUFvQWloQkFXczJBaWdnQ0NnQ0dBMEJJQUFnQUNnQ0xFRUJhellDTEF3QkN5QUNRUUZxSWdJZ0NVY05BUXNMSUFsQkFTQUpRUUZMR3lFSklBTWdEMnNoRDBFQUlRZ0RRQUpBSUF3Z0NFRW9iR29pQWlnQ0ZDSU5RUUZyUVFGTkJFQWdBaWdDQ0NBUFJnMEJDeUFJUVFGcUlnZ2dDVWNOQVF3SUN3c2dDRUVBU0EwR0lBMUJBa2tOQmlBQ1FRTTJBaFFnQWlBTE5nSUlJQXBCQVdvaENnd0VDeUFBSUFnb0Fod2lDRFlDSkNBQUtBSVlJZ3RGRFFJZ0FDZ0NBQ0VNUVFBaEFpQUlRZi8vQTBZRVFBTkFBa0FnRENBQ1FTaHNhaUlKS0FJVVFRTkhEUUFnQ1VFQU5nSVVJQUFnQUNnQ0tFRUJhellDS0NBSktBSVlEUUFnQUNBQUtBSXNRUUZyTmdJc0N5QUNRUUZxSWdJZ0MwY05BQXdFQ3dBTEEwQUNRQ0FNSUFKQktHeHFJZ2tvQWhSQkEwY05BQ0FKS0FJSUlBaE5EUUFnQ1VFQU5nSVVJQUFnQUNnQ0tFRUJhellDS0NBSktBSVlEUUFnQUNBQUtBSXNRUUZyTmdJc0N5QUNRUUZxSWdJZ0MwY05BQXNNQWdzZ0FCQW5JQUJCQVRZQ05FRUFJUU1nQ2tFQmFpRUtEQUlMSUFBb0FpUWlBa0gvL3dOR0RRTWdDQ2dDR0NJSUlBSkxEUU1DUUNBQUtBSVlJZ3RGRFFBZ0FDZ0NBQ0VNUVFBaEFnTkFBa0FnRENBQ1FTaHNhaUlKS0FJVVFRTkhEUUFnQ1NnQ0NDQUlSdzBBSUFsQkFEWUNGQ0FBSUFBb0FpaEJBV3MyQWlnZ0NTZ0NHQTBDSUFBZ0FDZ0NMRUVCYXpZQ0xBd0NDeUFDUVFGcUlnSWdDMGNOQUFzTElBc2dBQ2dDS0NJSlRRMERJQUFvQWdnaUFrRUROZ0lVSUFJZ0JEWUNFQ0FDSUFnMkFnZ2dBaUFETmdJTUlBSWdBQ2dDT0VVMkFoaEJBU0VPSUFBZ0NVRUJhallDS0NBQUlBQW9BaXhCQVdvMkFpd0xJQXBCQVdvaENnd0FDd0FMUVFBaEFpQUFLQUlvSWdvZ0FDZ0NHQ0lNU1EwQ0lBcEZCRUJCQUNFS0RBTUxJQXBCQVhFaER5QUFLQUlBSVFzZ0NrRUJSZ1JBUVg4aEFRd0NDeUFLUVg1eElRbEJmeUVCQTBBZ0N5QUNRU2hzYWlJTktBSVVRUUZyUVFGTkJFQWdEU2dDQ0NJTklBZ2dBVUYvUmlBSUlBMUtjaUlOR3lFSUlBSWdBU0FOR3lFQkN5QUxJQUpCQVhJaURVRW9iR29pRGlnQ0ZFRUJhMEVDU1FSQUlBNG9BZ2dpRGlBSUlBRkJmMFlnQ0NBT1NuSWlEaHNoQ0NBTklBRWdEaHNoQVFzZ0FrRUNhaUVDSUFsQkFtc2lDUTBBQ3d3QkN5QU9EUUlnQUNnQ0dDRU1JQUFvQWlnaENnd0JDd0pBSUE5RkRRQWdDeUFDUVNoc2FpSUpLQUlVUVFGclFRRkxEUUFnQWlBQ0lBRWdDU2dDQ0NBSVNCc2dBVUYvUmhzaEFRc2dBVUVBU0EwQUlBc2dBVUVvYkdvaUFVRUFOZ0lVSUFBZ0NrRUJheUlLTmdJb0lBRW9BaGdOQUNBQUlBQW9BaXhCQVdzMkFpd0xJQW9nREU4TkFTQUFLQUlJSWdFZ0VEWUNHQ0FCUVFJMkFoUWdBU0FFTmdJUUlBRWdBellDQ0NBQklBTTJBZ3dnQUNBS1FRRnFOZ0lvSUFBZ0FDZ0NMRUVCYWpZQ0xBc0xJQUFvQWdnaUFTQUhOZ0lnSUFFZ0JqWUNIQ0FCSUFVMkFpUUNRQ0FBS0FJNFJRUkFJQUFvQWl3aUFTQUFLQUljSWdOTkRRRWdBQ2dDQUNFSEEwQkIvLy8vL3djaEJVRUFJUVpCQUNFQ0EwQWdCeUFDUVNoc2FpSUVLQUlZQkVBZ0JDQUdJQVFvQWhBaUJDQUZTQ0lKR3lFR0lBUWdCU0FKR3lFRkN5QUNRUUZxSWdJZ0EwME5BQXNDUUNBR1JRMEFJQUFvQWd3Z0FDZ0NFQ0lFUVFSMGFpSUNJQVlvQWdBMkFnQWdBaUFHS0FJa05nSU1JQUlnQmlnQ0hEWUNCQ0FDSUFZb0FpQTJBZ2dnQUNBRVFRRnFOZ0lRSUFaQkFEWUNHQ0FHS0FJVURRQWdBQ0FCUVFGcklnRTJBaXdMSUFFZ0Ewc05BQXNNQVFzZ0FTZ0NBQ0VDSUFBb0Fnd2dBQ2dDRUNJRFFRUjBhaUlCSUFVMkFnd2dBU0FDTmdJQUlBRWdCellDQ0NBQklBWTJBZ1FnQUNBRFFRRnFOZ0lRSUFBb0Fod2hBd3NnQUNnQ0FDQURRUUZxRUNZTEMxNEJBWDhnQUVIRUNXb2lBQ2dDRkNJRUlBQW9BaEJKQkg4Z0FDQUVRUUZxTmdJVUlBQW9BZ3dnQkVFRWRHb0ZRUUFMSWdCRkJFQkJBQThMSUFFZ0FDZ0NCRFlDQUNBQ0lBQW9BZ3cyQWdBZ0F5QUFLQUlJTmdJQUlBQW9BZ0FMdEFNQkEzOERRQ0FBSUFKQkFuUnFJZ0VvQWhRaUF3UkFJQU1vQWlnUUJTQUJLQUlVUVFBMkFpZ2dBU2dDRkNnQ1ZCQUZJQUVvQWhSQkFEWUNWQ0FCS0FJVUVBVWdBVUVBTmdJVUN5QUNRUUZxSWdKQklFY05BQXRCQUNFQ0EwQWdBQ0FDUVFKMGFpSUJLQUtVQVNJREJFQWdBeWdDRkJBRklBRW9BcFFCUVFBMkFoUWdBU2dDbEFFb0FoZ1FCU0FCS0FLVUFVRUFOZ0lZSUFFb0FwUUJLQUljRUFVZ0FTZ0NsQUZCQURZQ0hDQUJLQUtVQVNnQ0xCQUZJQUVvQXBRQlFRQTJBaXdnQVNnQ2xBRVFCU0FCUVFBMkFwUUJDeUFDUVFGcUlnSkJnQUpIRFFBTElBQW9BckFhRUFVZ0FFRUFOZ0t3R2lBQUtBSzhDUkFGSUFCQkFEWUN2QWtnQUNnQ2xBa1FCU0FBUVFBMkFwUUpJQUFvQXJ3YUlnRUVRQ0FCRUFVZ0FFRUFOZ0s4R2d0QkFDRUJRUUFoQXdKQUlBQkJ4QWxxSWdJb0FnQWlBRVVOQUNBQ0tBSWNRWDlHQkVBZ0FDRUJEQUVMSUFBaEFRTkFJQUVnQTBFb2JDSUFhaWdDQkJBRklBSW9BZ0FpQVNBQWFrRUFOZ0lFSUFOQkFXb2lBeUFDS0FJY1FRRnFTUTBBQ3dzZ0FSQUZJQUpCQURZQ0FDQUNLQUlFRUFVZ0FrRUFOZ0lFSUFJb0Fnd1FCU0FDUVFBMkFnd0wvdEVEQWtOL0FuNGpBRUdRQVdzaUdDUUFJQmhCQURZQ0RBSkFBa0FDUUNBQUtBS1FHa1VOQUNBQUtBS1VHaUFCUncwQUlCZ2dBRUdzR21vb0FnQTJBaUFnR0NBQVFhUWFhaWtDQURjREdDQUFLUUtjR2lGSUlCaEJBRFlDSUNBWVFRQTJBaGdnR0NCSU53TVFJQmdnU0Q0Q0ZDQUVJQUFvQXBnYU5nSUFEQUVMUVFZaElnSi9JQUVoQ0FKQUFrQWdBa0VFU1EwQUlBZ3RBQUFOQUNBSUxRQUJEUUFnQ0MwQUFpSU5RUUZMRFFCQkF5RUdJQWhCQTJvaEJVRUNJUWNDUUFOQUlBVWhDU0FOUWY4QmNTSUJCSDlCQUNFTklBRkJBVVpCQUNBSFFRRkxHdzBDUVFBRklBZEJBV29MSVFjZ0NVRUJhaUVGSUFrdEFBQWhEU0FHUVFGcUlnWWdBa2NOQUFzZ0JDQUNOZ0lBUVFFTUF3c2dCaUVCUVFBaEIwRUFJUVVEUUVFQklBY2dEU0FKTFFBQUlncEZhaUlMUVFKR0d5QUhJQXBCQTBZYklRY0NRQ0FLUVFGSERRQWdDMEVDU1EwQUlCZ2dBU0FHSUF0cWF5SUNOZ0ljUVFBZ0MwRURheUlCSUFFZ0Mwc2JJUTBNQXd0QkFDQUxJQW9iSVExQkFTQUZJQXRCQWtzYklBVWdDaHNoQlNBSlFRRnFJUWtnQVVFQmFpSUJJQUpIRFFBTElCZ2dBaUFHSUExcWF5SUNOZ0ljREFFTElCZ2dBallDSEVFQklRZEJBQ0VOQ3lBWVFRQTJBaUFnR0VFQU5nSVlJQmdnQmlBSWFpSUJOZ0lVSUJnZ0FUWUNFQ0FFSUFZZ0RXb2dBbW8yQWdCQkFTRU5Ba0FnQlEwQVFRQWhEU0FIUlEwQUlCZ0NmeUFZS0FJY0lnWkZCRUFnQVNFQ1FRQU1BUXNnQVNFQ1FRQWhDUU5BSUFaQkFXc2hCaUFDTFFBQUlRVUNmd0pBSUFsQkFrY05BQ0FGUVFOR0JFQkJBU0FHUlEwR0drRUJJQUl0QUFGQkEwc05CaHBCQUNFSklBSkJBV29NQWdzZ0JVRURUdzBBUVFFTUJRc2dBU0FGT2dBQVFRQWdDVUVCYWlBRkd5RUpJQUZCQVdvaEFTQUNRUUZxQ3lFQ0lBWU5BQXNnR0NnQ0hBc2dBU0FDYTJvMkFod0xJQTBMRFFFZ0FDQVlLUU1RTndLY0dpQUFRYXdhYWlBWUtBSWdOZ0lBSUFCQnBCcHFJQmdwQXhnM0FnQWdCQ2dDQUNFQklBQWdDRFlDbEJvZ0FDQUJOZ0tZR2dzZ0FFRUFOZ0tRR2tFSElTSkJBU0VDQWtBZ0dFRVFhaUlCUVFFUUEwRi9SZzBBSUJnZ0FVRUNFQU0yQW93QklCZ2dBVUVGRUFNaUFUWUNpQUVnQVVFQ2EwRURTUTBBQWtBZ0FVRU1TdzBBUVFFZ0FYUWlDVUhBUEhGRkJFQWdDVUdnQTNGRkRRRWdHQ2dDakFGRkRRSWdBVUVHUncwQkRBSUxJQmdvQW93QkRRRUxRUUFoQWdzZ0FnMEFJQmdvQW9nQlFRRnJRUXRMQkVCQkFDRWlEQUVMQW44Z0dFRVFhaUVHUVFBaENTTUFRU0JySWdVa0FDQVlRUUEyQWd3Q1FDQVlLQUtJQVNJQlFSSkxEUUJCQVNBQmRDSUJRY0RmSDNGRkJFQWdBVUVpY1VVTkFTQUFRYlFLYWlnQ0FBUkFJQmhCQVRZQ0RDQUFRUUEyQXJRS0N5QUdJQVZCSEdvUUh5SUpEUUZCOFA4RElRa2dBQ0FGS0FJY1FRSjBhaWdDbEFFaURVVU5BU0FBSUEwb0FnUWlBVUVDZEdvb0FoUWlDRVVOQVFKQUlBQW9BZ2dpQWtFZ1JnMEFJQUVnQWtZTkFDQVlLQUtJQVVFRlJ3MENDd0pBSUFCQm1BcHFLQUlBSWdFZ0dDZ0NqQUVpQWtZTkFDQUJRUUFnQWhzTkFDQVlRUUUyQWd3TElCZ29Bb2dCSVFFQ1FBSkFJQUFvQXBRS1FRVkdCRUFnQVVFRlJ3MEJEQUlMSUFGQkJVY05BUXNnR0VFQk5nSU1DMEVCSVFrZ0NDZ0NEQ0VMSXdCQklHc2lCeVFBSUFjZ0JpZ0NFRFlDRUNBSElBWXBBZ2czQXdnZ0J5QUdLUUlBTndNQUFrQWdCeUFIUVJ4cUVBSWlBUTBBSUFjZ0IwRWNhaEFDSWdFTkFDQUhJQWRCSEdvUUFpSUJEUUJCQUNFQkEwQWdBU0lDUVFGcUlRRWdDeUFDZGcwQUN5QUhJQUpCQVdzUUF5SUJRWDlHQkVCQkFTRUJEQUVMSUFVZ0FUWUNHRUVBSVFFTElBZEJJR29rQUNBQkRRRWdCU2dDR0NJQklBQkJuQXBxS0FJQVJ3UkFJQUFnQVRZQ25Bb2dHRUVCTmdJTUN5QVlLQUtJQVVFRlJnUkFJQWdvQWd3aEN5QUZRUlJxSVFvakFFRWdheUlISkFBZ0J5QUdLQUlRTmdJUUlBY2dCaWtDQURjREFDQUhJQVlwQWdnM0F3Z0NRQ0FISUFkQkhHb1FBaUlCRFFBZ0J5QUhRUnhxRUFJaUFRMEFJQWNnQjBFY2FoQUNJZ0VOQUVFQUlRRURRQ0FCSWdKQkFXb2hBU0FMSUFKMkRRQUxJQWNnQWtFQmF4QURRWDlHQkVCQkFTRUJEQUVMSUFjZ0NoQUNJUUVMSUFkQklHb2tBQ0FCRFFJQ1FDQUFLQUtVQ2tFRlJ3UkFJQVVvQWhRaEFRd0JDeUFBUWFBS2FpZ0NBQ0lCSUFVb0FoUWlBa1lOQUNBWVFRRTJBZ3dnQWlFQkN5QUFRYUFLYWlBQk5nSUFDd0pBQWtBQ1FDQUlLQUlRRGdJQUFRSUxJQmdvQW9nQklRc2pBRUVnYXlJSEpBQWdCeUFHS0FJUU5nSVFJQWNnQmlrQ0NEY0RDQ0FISUFZcEFnQTNBd0FDUUNBSElBZEJIR29RQWlJQkRRQWdCeUFIUVJ4cUVBSWlBUTBBSUFjZ0IwRWNhaEFDSWdFTkFDQUlLQUlNSVFwQkFDRUJBMEFnQVNJQ1FRRnFJUUVnQ2lBQ2RnMEFDeUFISUFKQkFXc1FBMEYvUmdSQVFRRWhBUXdCQ3lBTFFRVkdCRUFnQnlBSFFSeHFFQUlpQVEwQkN5QUlLQUlVSVF0QkFDRUJBMEFnQVNJQ1FRRnFJUUVnQ3lBQ2RnMEFDeUFISUFKQkFXc1FBeUlCUVg5R0JFQkJBU0VCREFFTElBVWdBVFlDQ0VFQUlRRUxJQWRCSUdva0FDQUJEUU1nQlNnQ0NDSUJJQUJCcEFwcUtBSUFSd1JBSUFBZ0FUWUNwQW9nR0VFQk5nSU1DeUFOS0FJSVJRMEJJQmdvQW9nQklRY2dCVUVRYWlFTkl3QkJJR3NpQ1NRQUlBa2dCaWdDRURZQ0VDQUpJQVlwQWdnM0F3Z2dDU0FHS1FJQU53TUFBa0FnQ1NBSlFSeHFFQUlpQVEwQUlBa2dDVUVjYWhBQ0lnRU5BQ0FKSUFsQkhHb1FBaUlCRFFBZ0NDZ0NEQ0VHUVFBaEFRTkFJQUVpQWtFQmFpRUJJQVlnQW5ZTkFBc2dDU0FDUVFGckVBTkJmMFlFUUVFQklRRU1BUXNnQjBFRlJnUkFJQWtnQ1VFY2FoQUNJZ0VOQVFzZ0NDZ0NGQ0VHUVFBaEFRTkFJQUVpQWtFQmFpRUJJQVlnQW5ZTkFBc2dDU0FDUVFGckVBTkJmMFlFUUVFQklRRU1BUXNnQ1NBTkVBWWhBUXNnQ1VFZ2FpUUFJQUVpQ1EwRElBVW9BaEFpQVNBQVFhZ0thaWdDQUVZTkFTQUFJQUUyQXFnS0lCaEJBVFlDREF3QkN5QUlLQUlZRFFBZ0dDZ0NpQUVoQ3lBTktBSUlJUW9nQlVFSWFpRUhJd0JCSUdzaUNTUUFJQWtnQmlnQ0VEWUNFQ0FKSUFZcEFnZzNBd2dnQ1NBR0tRSUFOd01BQWtBZ0NTQUpRUnhxRUFJaUFRMEFJQWtnQ1VFY2FoQUNJZ0VOQUNBSklBbEJIR29RQWlJQkRRQWdDQ2dDRENFR1FRQWhBUU5BSUFFaUFrRUJhaUVCSUFZZ0FuWU5BQXNnQ1NBQ1FRRnJFQU5CZjBZRVFFRUJJUUVNQVFzZ0MwRUZSZ1JBSUFrZ0NVRWNhaEFDSWdFTkFRc2dDU0FIRUFZaUFRMEFJQW9FUUNBSklBZEJCR29RQmlJQkRRRUxRUUFoQVFzZ0NVRWdhaVFBSUFFaUNRMENJQVVvQWdnaUFTQUFRYXdLYWlnQ0FFY0VRQ0FBSUFFMkFxd0tJQmhCQVRZQ0RBc2dEU2dDQ0VVTkFDQUZLQUlNSWdFZ0FFR3dDbW9vQWdCR0RRQWdBQ0FCTmdLd0NpQVlRUUUyQWd3TElBQWdHQ2tDaUFFM0FwUUtRUUFoQ1F3QkN5QVlRUUUyQWd3TElBVkJJR29rQUNBSkN3UkFRUVFoSWlBSlFmRC9BMFlOQVVFSUlTSU1BUXNDUUNBWUtBSU1CRUFDUUNBQUtBS2dDVVVOQUNBQUtBSVFSUTBBUVFraElpQUFLQUswR2cwREFrQWdBQ2dDcEFsRkJFQWdBRUhFQ1dvaUFpSUJJQUVvQWdBZ0FTZ0NIRUVvYkdvaUFUWUNDQ0FBSUFFb0FnQTJBcmdLSUFJUUpDQUFJQUJCdUFwcVFRQVFKUXdCQ3lBQUlBQkJ1QXBxSUFCQjNBcHFLQUlBRUNVTElBUkJBRFlDQUNBQVFRQTJBcHdKSUFCQkFUWUNrQm9NQWdzZ0FFRUFOZ0tjQ1NBQVFRQTJBcVFKQzBFQUlTSUNRQUpBQWtBZ0dDZ0NpQUZCQVdzT0NBSUVCQVFDQkFBQkJBc0NmeU1BUVJCcklnVWtBQ0FZUVNocVFRQkIzQUFRQkNFREFrQWdHRUVRYWlJQlFRZ1FBeUlDUVg5R0JFQkJBU0VDREFFTElBTWdBallDQUNBQlFRRVFBeG9nQVVFQkVBTWFJQUZCQVJBRFFYOUdCRUJCQVNFQ0RBRUxJQUZCQlJBRFFYOUdCRUJCQVNFQ0RBRUxJQUZCQ0JBRElnSkJmMFlFUUVFQklRSU1BUXNnQXlBQ05nSUVJQUVnQTBFSWFoQUNJZ0lOQUNBREtBSUlRUjlMQkVCQkFTRUNEQUVMSUFFZ0JVRU1haEFDSWdJTkFFRUJJUUlnQlNnQ0RDSUVRUXhMRFFBZ0EwRUJJQVJCQkdwME5nSU1JQUVnQlVFTWFoQUNJZ0lOQUNBRktBSU1JZ0pCQWtzRVFFRUJJUUlNQVFzZ0F5QUNOZ0lRQWtBQ1FBSkFJQUlPQWdBQkFnc2dBU0FGUVF4cUVBSWlBZzBDSUFVb0Fnd2lBa0VNU3dSQVFRRWhBZ3dEQ3lBRFFRRWdBa0VFYW5RMkFoUU1BUXRCQVNFQ0lBRkJBUkFESWdSQmYwWU5BU0FESUFSQkFVWTJBaGdnQVNBRFFSeHFFQVlpQWcwQklBRWdBMEVnYWhBR0lnSU5BU0FCSUFOQkpHb1FBaUlDRFFGQkFTRUNJQU1vQWlRaUJFSC9BVXNOQVNBRUJFQWdBeUFFUVFKMEVBb2lBallDS0NBQ1JRUkFRZi8vQXlFQ0RBTUxJQUVnQWhBR0lnSU5Ba0VCSVFZRFFDQUdJQU1vQWlSUERRSWdCa0VDZENFQ0lBWkJBV29oQmlBQklBSWdBeWdDS0dvUUJpSUNSUTBBQ3d3Q0N5QURRUUEyQWlnTElBRWdBMEVzYWhBQ0lnSU5BRUVCSVFJZ0F5Z0NMRUVRU3cwQUlBRkJBUkFESWdSQmYwWU5BQ0FESUFSQkFVWTJBakFnQVNBRlFReHFFQUlpQWcwQUlBTWdCU2dDREVFQmFqWUNOQ0FCSUFWQkRHb1FBaUlDRFFCQkFTRUNJQU1nQlNnQ0RFRUJhallDT0NBQlFRRVFBMEVCYWtFQ1NRMEFJQUZCQVJBRFFYOUdEUUFnQVVFQkVBTWlCRUYvUmcwQUlBTWdCRUVCUmlJQ05nSThBa0FnQWtVRVFDQURLQUk0SVFrZ0F5Z0NOQ0VHREFFTElBRWdBMEZBYXhBQ0lnSU5BU0FCSUFOQnhBQnFFQUlpQWcwQklBRWdBMEhJQUdvUUFpSUNEUUVnQVNBRFFjd0FhaEFDSWdJTkFVRUJJUUlnQXlnQ1FDQURLQUpFUVg5eklBTW9BalFpQmtFRGRHcEtEUUVnQXlnQ1NDQURLQUpNUVg5eklBTW9BamdpQ1VFRGRHcEtEUUVMSUFZZ0NXd2hBa0gvLy8vL0J5RUdBa0FDZndKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQURLQUlFUVFwckRpb0FBUUlERUJBUUVCQVFCQVVHRUJBUUVCQVFFQWNJQ1JBUUVCQVFFQkFLQ3d3UUVCQVFFQkFRRFE0UUMwR0FwQWtoQkNBQ1FlTUFTd3dPQzBHQWpCVWhCQ0FDUVl3RFN3d05DMEdBMkRjaEJDQUNRWXdEU3d3TUMwR0EyRGNoQkNBQ1FZd0RTd3dMQzBHQTJEY2hCQ0FDUVl3RFN3d0tDMEdBc084QUlRUWdBa0dZQmtzTUNRdEJnT3k5QVNFRUlBSkIxQXhMREFnTFFZRHN2UUVoQkNBQ1FkUU1Td3dIQzBHQThLVURJUVFnQWtHUUhFc01CZ3RCZ0lEZ0F5RUVJQUpCZ0NoTERBVUxRWUNBZ0FZaEJDQUNRWURBQUVzTUJBdEJnSUNBQmlFRUlBSkJnTUFBU3d3REMwR0FnTEFHSVFRZ0FrR0F4QUJMREFJTFFZREFteFFoQkNBQ1FjQ3NBVXNNQVF0QmdJRGdJU0VFSUFKQmdLQUNTd3NOQUNBRUlBSkJnQU5zYmlJQ1FSQWdBa0VRU1JzaEJnc2dCU0FHTmdJTUlBVWdBeWdDTENJQ0lBSWdCaUFDSUFaTEd5QUdRZi8vLy84SFJoc2lBallDRENBRElBSTJBbGhCQVNFQ0lBRkJBUkFESWdSQmYwWU5BQ0FESUFSQkFVWTJBbEFDUUNBRVFRRkhEUUFnQTBHNEJ4QUtJZ0kyQWxRZ0FrVUVRRUgvL3dNaEFnd0NDd0ovSUFKQkFFRzRCeEFFSVFKQkFTRUVBa0FDUUNBQlFRRVFBeUlKUVg5R0RRQWdBaUFKUVFGR05nSUFBa0FnQ1VFQlJ3MEFJQUZCQ0JBRElnbEJmMFlOQVNBQ0lBazJBZ1FnQ1VIL0FVY05BQ0FCUVJBUUF5SUpRWDlHRFFFZ0FpQUpOZ0lJSUFGQkVCQURJZ2xCZjBZTkFTQUNJQWsyQWd3TElBRkJBUkFESWdsQmYwWU5BQ0FDSUFsQkFVWTJBaEFnQ1VFQlJnUkFJQUZCQVJBRElnbEJmMFlOQVNBQ0lBbEJBVVkyQWhRTElBRkJBUkFESWdsQmYwWU5BQ0FDSUFsQkFVWTJBaGdDUUFKQUlBbEJBVVlFUUNBQlFRTVFBeUlKUVg5R0RRTWdBaUFKTmdJY0lBRkJBUkFESWdsQmYwWU5BeUFDSUFsQkFVWTJBaUFnQVVFQkVBTWlDVUYvUmcwRElBSWdDVUVCUmpZQ0pDQUpRUUZIRFFFZ0FVRUlFQU1pQ1VGL1JnMERJQUlnQ1RZQ0tDQUJRUWdRQXlJSlFYOUdEUU1nQWlBSk5nSXNJQUZCQ0JBRElnWkJmMGNOQWd3REN5QUNRUVUyQWh3TElBSkNnb0NBZ0NBM0FpaEJBaUVHQ3lBQ0lBWTJBakFnQVVFQkVBTWlDVUYvUmcwQUlBSWdDVUVCUmpZQ05BSkFJQWxCQVVjTkFDQUJJQUpCT0dvUUFpSUVEUUVnQWlnQ09FRUZTdzBDSUFFZ0FrRThhaEFDSWdRTkFTQUNLQUk4UVFWTkRRQU1BZ3RCQVNFRUlBRkJBUkFESWdsQmYwWU5BQ0FDSUFsQkFVWTJBa0FnQ1VFQlJnUkFJQUVRRUNFRUlBRkJJQkFMUVg5R0RRSWdCRVVOQWlBQ0lBUTJBa1FnQVJBUUlRUWdBVUVnRUF0QmYwWU5BaUFFUlEwQ0lBSWdCRFlDU0VFQklRUWdBVUVCRUFNaUNVRi9SZzBCSUFJZ0NVRUJSallDVEFzZ0FVRUJFQU1pQ1VGL1JnMEFJQUlnQ1VFQlJqWUNVQUpBSUFsQkFVWUVRQ0FCSUFKQjFBQnFFQnNpQkVVTkFRd0NDeUFDUVFFMkFsUWdBa0tZZ0lDQWdBTTNBdWdESUFKQ21JQ0FnSUFETndMZ0F5QUNRWUdRcW9rQk5nTGdBU0FDUVlHUXFva0JOZ0pnQzBFQklRUWdBVUVCRUFNaUNVRi9SZzBBSUFJZ0NVRUJSallDOEFNQ1FDQUpRUUZHQkVBZ0FTQUNRZlFEYWhBYklnUkZEUUVNQWdzZ0FrRUJOZ0wwQXlBQ1FwaUFnSUNBQXpjQ2lBY2dBa0tZZ0lDQWdBTTNBb0FISUFKQmdiaTQ4Z0EyQW9BRklBSkJnYmk0OGdBMkFvQUVDd0pBSUFJb0FsQkZCRUFnQWlnQzhBTkZEUUVMUVFFaEJDQUJRUUVRQXlJSlFYOUdEUUVnQWlBSlFRRkdOZ0tRQnd0QkFTRUVJQUZCQVJBRElnbEJmMFlOQUNBQ0lBbEJBVVkyQXBRSElBRkJBUkFESWdsQmYwWU5BQ0FDSUFsQkFVWTJBcGdIQWtBZ0NVRUJSZ1JBSUFGQkFSQURJZ2xCZjBZTkFpQUNJQWxCQVVZMkFwd0hJQUVnQWtHZ0Iyb1FBaUlFRFFJZ0FpZ0NvQWRCRUVzTkF5QUJJQUpCcEFkcUVBSWlCQTBDSUFJb0FxUUhRUkJMRFFNZ0FTQUNRYWdIYWhBQ0lnUU5BaUFDS0FLb0IwRVFTdzBESUFFZ0FrR3NCMm9RQWlJRURRSkJBU0VFSUFJb0Fxd0hRUkJMRFFJZ0FTQUNRYkFIYWhBQ0lnUU5BaUFCSUFKQnRBZHFFQUlpQkVVTkFRd0NDeUFDUVJBMkFyUUhJQUpDa0lDQWdJQUNOd0tzQnlBQ1FvR0FnSUNBQWpjQ3BBY2dBa0tCZ0lDQUlEY0NuQWNMUVFBaEJBc2dCQXdCQzBFQkN5SUNEUUVnQXlnQ1ZDSUpLQUtZQjBVTkFFRUJJUUlnQ1NnQ3RBY2lCQ0FKS0FLd0Iwa05BU0FFSUFNb0FpeEpEUUVnQkNBREtBSllTdzBCSUFNZ0JFRUJJQVFiTmdKWUN5QUJFQjVCQUNFQ0N5QUZRUkJxSkFBZ0Fnc0VRQ0FZS0FKUUVBVWdHRUVBTmdKUUlCZ29BbndRQlVFS0lTSU1CQXNDUUFKQUlBQWdHRUVvYWlJQktBSUlJZ0pCQW5ScUlnTW9BaFFpQkVVRVFDQURRZHdBRUFvaUFEWUNGQ0FBRFFFTUFnc2dBQ2dDQ0NBQ1JnUkFBbjhDUUNBQktBSUFJQUFvQWhBaUFpZ0NBRWNOQUNBQktBSUVJQUlvQWdSSERRQWdBU2dDRENBQ0tBSU1SdzBBSUFFb0FoQWlCQ0FDS0FJUVJ3MEFJQUVvQWl3Z0FpZ0NMRWNOQUNBQktBSXdJQUlvQWpCSERRQWdBU2dDTkNBQ0tBSTBSdzBBSUFFb0FqZ2dBaWdDT0VjTkFDQUJLQUk4SWdZZ0FpZ0NQRWNOQUNBQktBSlFJQUlvQWxCSERRQUNRQUpBQWtBZ0JBNENBQUVDQ3lBQktBSVVJQUlvQWhSSERRSU1BUXNnQVNnQ0dDQUNLQUlZUncwQklBRW9BaHdnQWlnQ0hFY05BU0FCS0FJZ0lBSW9BaUJIRFFFZ0FTZ0NKQ0lKSUFJb0FpUkhEUUVnQ1VVTkFDQUNLQUlvSVFVZ0FTZ0NLQ0VIUVFBaEJBTkFJQWNnQkVFQ2RDSUlhaWdDQUNBRklBaHFLQUlBUmdSQUlBa2dCRUVCYWlJRVJ3MEJEQUlMQ3d3QkN5QUdCRUFnQVNnQ1FDQUNLQUpBUncwQklBRW9Ba1FnQWlnQ1JFY05BU0FCS0FKSUlBSW9Ba2hIRFFFZ0FTZ0NUQ0FDS0FKTVJ3MEJDMEVBREFFTFFRRUxCRUFnQXlnQ0ZDZ0NLQkFGSUFNb0FoUkJBRFlDS0NBREtBSVVLQUpVRUFVZ0F5Z0NGRUVBTmdKVUlBQkJBRFlDRUNBQVFZRUNOZ0lFSUFCQ0lUY0NDQXdDQ3lBQktBSW9FQVVnQVVFQU5nSW9JQUVvQWxRUUJTQUJRUUEyQWxRTUFnc2dCQ2dDS0JBRklBTW9BaFJCQURZQ0tDQURLQUlVS0FKVUVBVWdBeWdDRkVFQU5nSlVDeUFES0FJVUlBRkIzQUFRQ0JvTERBTUxBbjhqQUVFUWF5SURKQUFDUUNBWVFSQnFJZ1FnR0VFb2FrRUFRY2dBRUFRaUFSQUNJZ0lOQUVFQklRSWdBU2dDQUVIL0FVc05BQ0FFSUFGQkJHb1FBaUlDRFFCQkFTRUNJQUVvQWdSQkgwc05BQ0FFUVFFUUF3MEFJQVJCQVJBRElnbEJmMFlOQUNBQklBbEJBVVkyQWdnZ0JDQURRUXhxRUFJaUFnMEFJQUVnQXlnQ0RFRUJhaUlDTmdJTUlBSkJDRXNFUUVFQklRSU1BUXNDUUNBQ1FRSkpEUUFnQkNBQlFSQnFFQUlpQWcwQklBRW9BaEFpQWtFR1N3UkFRUUVoQWd3Q0N3SkFBa0FDUUFKQUlBSU9Cd0FFQVFJQ0FnTUVDeUFCSUFFb0Fnd2lBa0VDZEJBS0lnazJBaFFnQ1VVRVFFSC8vd01oQWd3RkN5QUNSUTBEUVFBaEJnTkFJQVFnQTBFTWFoQUNJZ0lOQlNBQktBSVVJQVpCQW5ScUlBTW9BZ3hCQVdvMkFnQWdCa0VCYWlJR0lBRW9BZ3hKRFFBTERBTUxJQUVnQVNnQ0RDSUpRUUowUVFScklnSVFDaUlHTmdJWUlBRWdBaEFLSWdVMkFoeEIvLzhESVFJZ0JrVU5BeUFGUlEwRElBbEJBVVlOQWtFQUlRWURRQ0FFSUFOQkRHb1FBaUlDRFFRZ0JrRUNkQ0lKSUFFb0FoaHFJQU1vQWd3MkFnQWdCQ0FEUVF4cUVBSWlBZzBFSUFFb0Fod2dDV29nQXlnQ0REWUNBQ0FHUVFGcUlnWWdBU2dDREVFQmEwa05BQXNNQWd0QkFTRUNJQVJCQVJBRElnbEJmMFlOQWlBQklBbEJBVVkyQWlBZ0JDQURRUXhxRUFJaUFnMENJQUVnQXlnQ0RFRUJhallDSkF3QkN5QUVJQU5CREdvUUFpSUNEUUVnQVNBREtBSU1RUUZxSWdJMkFpZ2dBU0FDUVFKMEVBb2lDVFlDTENBSlJRUkFRZi8vQXlFQ0RBSUxJQUpGRFFBZ0FTZ0NERUVDZEVHc08yb29BZ0FoQlVFQUlRWURRQ0FFSUFVUUF5RUpJQUVvQWl3Z0JrRUNkR29nQ1RZQ0FFRUJJUUlnQ1NBQktBSU1UdzBDSUFaQkFXb2lCaUFCS0FJb1NRMEFDd3NnQkNBRFFReHFFQUlpQWcwQVFRRWhBaUFES0FJTUlnbEJIMHNOQUNBQklBbEJBV28yQWpBZ0JDQURRUXhxRUFJaUFnMEFRUUVoQWlBREtBSU1RUjlMRFFBZ0JFRUJFQU1OQUNBRVFRSVFBMEVDU3cwQUlBUWdBMEVJYWhBR0lnSU5BQ0FES0FJSVFScHFJZ0pCTTBzRVFFRUJJUUlNQVFzZ0FTQUNOZ0kwSUFRZ0EwRUlhaEFHSWdJTkFDQURLQUlJUVJwcVFUTkxCRUJCQVNFQ0RBRUxJQVFnQTBFSWFoQUdJZ0lOQUVFQklRSWdBeWdDQ0NJSlFReHFRUmhMRFFBZ0FTQUpOZ0k0SUFSQkFSQURJZ2xCZjBZTkFDQUJJQWxCQVVZMkFqd2dCRUVCRUFNaUNVRi9SZzBBSUFFZ0NVRUJSallDUUNBRVFRRVFBeUlKUVg5R0RRQWdBU0FKUVFGR05nSkVJQVFRSGtFQUlRSUxJQU5CRUdva0FDQUNDd1JBSUJnb0Fqd1FCU0FZUVFBMkFqd2dHQ2dDUUJBRklCaEJBRFlDUUNBWUtBSkVFQVVnR0VFQU5nSkVJQmdvQWxRUUJVRUxJU0lNQXdzQ1FBSkFJQUFnR0VFb2FpSUNLQUlBSWdOQkFuUnFJZ0VvQXBRQklnUkZCRUFnQVVISUFCQUtJZ0EyQXBRQklBQU5BUXdDQ3dKQUlBTWdBQ2dDQkVjTkFDQUNLQUlFSUFBb0FnaEdEUUFnQUVHQkFqWUNCQXNnQkNnQ0ZCQUZJQUVvQXBRQlFRQTJBaFFnQVNnQ2xBRW9BaGdRQlNBQktBS1VBVUVBTmdJWUlBRW9BcFFCS0FJY0VBVWdBU2dDbEFGQkFEWUNIQ0FCS0FLVUFTZ0NMQkFGSUFFb0FwUUJRUUEyQWl3TElBRW9BcFFCSUFKQnlBQVFDQm9MREFJTElBQW9BcHdKRFFFZ0FFRUJOZ0tnQ1FKQUlBQW9BcVFKRFFBZ0FDQUROZ0s0Q1NBQVFRQTJBclFKSUJoQkVHb2dHRUVvYWhBZkdpQUFLQUlJSVFzQ2Z5QVlLQUtJQVVFRlJpRUtRUUVoQXdKQUlBQWdHQ2dDS0NJSlFRSjBhaWdDbEFFaUFVVU5BQ0FBSUFFb0FnUWlCVUVDZEdvaUJ5Z0NGQ0lDUlEwQUFrQWdBU2dDRENJSVFRSkpEUUFnQWlnQ05DSU5JQUlvQWpoc0lRWUNRQUpBQWtBQ1FDQUJLQUlRSWdJT0F3RURBQU1MSUFoQkFXc2hFQ0FCS0FJY0lROGdBU2dDR0NFTVFRQWhBZ3dCQ3lBQktBSVVJUTFCQUNFQ0EwQWdCaUFOSUFKQkFuUnFLQUlBVHdSQUlBZ2dBa0VCYWlJQ1J3MEJEQVFMQzBFQkRBUUxBMEFnRENBQ1FRSjBJZ2hxS0FJQUloMGdDQ0FQYWlnQ0FDSUlTdzBESUFZZ0NFME5BeUFkSUExd0lBZ2dEWEJOQkVBZ0FrRUJhaUlDSUJCR0RRTU1BUXNMUVFFTUF3c2dBa0VEYTBFQ1RRUkFJQUVvQWlRZ0JrME5BUXdDQ3lBQ1FRWkhEUUFnQVNnQ0tDQUdTUTBCQ3dKQUlBQW9BZ1FpQWtHQUFrWUVRQ0FBSUFFMkFnd2dBQ0FKTmdJRUlBQWdCVFlDQ0NBQUlBY29BaFFpQVRZQ0VDQUJLQUkwSVFJZ0FTZ0NPQ0VCSUFCQkFUWUN0Qm9nQUVIQUNtb2dBVFlDQUNBQVFid0thaUFDTmdJQUlBQWdBU0FDYkRZQ21Ba01BUXNnQUNnQ3RCb0VRQ0FBUVFBMkFyUWFJQUFvQXJ3SkVBVWdBRUVBTmdLOENTQUFLQUtVQ1JBRklBQWdBQ2dDbUFraUJVSFlBV3dpQWhBS0lnRTJBcndKSUFBZ0JVRUNkQkFLSWdrMkFwUUpRZi8vQXlFRElBRkZEUUlnQ1VVTkFpQUJRUUFnQWhBRUlRTWdBQ2dDRUNnQ05DRUNRUUFoQmtFQUlRbEJBQ0VJSUFVRVFDQUNRUUZySVEwZ0EwSFlBV3NoQ2lBRElBSkJmM05CMkFGc2FpRVFRUUFnQW10QjJBRnNJUTlCQVNBQ2EwSFlBV3doREFOQUlBTWdDRUhZQVd3aUIyb2lBU0FISUFwcVFRQWdCaHMyQXNnQklBRUNmeUFKUlFSQUlBRkJBRFlDekFGQkFBd0JDeUFCSUFFZ0QybzJBc3dCSUFFZ0RHcEJBQ0FHSUExSkd3czJBdEFCSUFFZ0J5QVFha0VBSUFZYlFRQWdDUnMyQXRRQlFRQWdCa0VCYWlJQklBRWdBa1lpQVJzaEJpQUJJQWxxSVFrZ0NFRUJhaUlJSUFWSERRQUxDeUFBS0FJUUlRRkJBU0VDQWtBZ0FDZ0N3QWtOQUNBQktBSVFRUUpHRFFBQ1FDQUJLQUpRUlEwQUlBRW9BbFFpQXlnQ21BZEZEUUFnQXlnQ3NBZEZEUUVMUVFBaEFnc2dBU2dDT0NBQktBSTBiQ0VISUFFb0FsZ2hDQ0FCS0FJc0lRVWdBU2dDRENFTklBSWhBMEVBSVFGQkFDRUpBa0FnQUVIRUNXb2lCaWdDQUNJQ1JRMEFJQVlvQWh4QmYwWUVRQ0FDSVFFTUFRc2dBaUVCQTBBZ0FTQUpRU2hzSWdKcUtBSUVFQVVnQmlnQ0FDSUJJQUpxUVFBMkFnUWdDVUVCYWlJSklBWW9BaHhCQVdwSkRRQUxDeUFCRUFVZ0JrRUFOZ0lBSUFZb0FnUVFCU0FHUVFBMkFnUWdCaWdDREJBRklBWkJBRFlDRENBR0lBTTJBamdnQmlBTk5nSWdJQVpDLy84RE53SWtJQVpDQURjQ0xDQUdJQVZCQVNBRlFRRkxHeUlCTmdJWUlBWWdBU0FJSUFNYklnSTJBaHdnQmtHb0JSQUtJZ00yQWdCQi8vOERJUWtDUUNBRFJRMEFRUUFoQVNBRFFRQkJxQVVRQkNFRklBSkJmMGNFUUNBSFFZQURiRUV2Y2lFSEEwQWdCU0FCUVNoc2FpSUlJQWNRQ2lJRE5nSUVJQU5GRFFJZ0NDQUROZ0lBSUFFZ0FrY2hBeUFCUVFGcUlRRWdBdzBBQ3dzZ0JrSEVBQkFLSWdFMkFnUWdCaUFDUVFSMFFSQnFFQW9pQWpZQ0RDQUNSUTBBSUFGRkRRQkJBQ0VKSUFGQkFFSEVBQkFFR2lBR1FnQTNBaEFMSUFraUEwVU5BUXdDQ3lBQ0lBbEdEUUFnQUNnQ0NDQUZSd1JBSUFwRkRRSWdBQ0FCTmdJTUlBQWdDVFlDQkNBQUlBVTJBZ2dnQUNBSEtBSVVJZ0UyQWhBZ0FTZ0NOQ0VDSUFFb0FqZ2hBU0FBUVFFMkFyUWFJQUJCd0FwcUlBRTJBZ0FnQUVHOENtb2dBallDQUNBQUlBRWdBbXcyQXBnSkRBRUxJQUFnQVRZQ0RDQUFJQWsyQWdRTFFRQWhBd3NnQXdzaUFRUkFJQUJDZ0lLQWdJQUVOd0lFSUFCQkFEWUN0Qm9nQUVJQU53SU1RUVZCQkNBQlFmLy9BMFliSVNJTUF3c2dDeUFBS0FJSVJnMEFJQUFvQWhBaENTQVlRUUUyQWdoQkFDRUJJQUFvQWdBaUFrRWZUUVJBSUFBZ0FrRUNkR29vQWhRaEFRc2dCRUVBTmdJQUlBQkJBVFlDa0JvQ1FBSkFBa0FnR0NnQ2lBRkJCVWNOQUNBQUtBSU1JUVlqQUVFZ2F5SUVKQUFnQkNBWUtBSWdOZ0lRSUFRZ0dDa0NHRGNEQ0NBRUlCZ3BBaEEzQXdBQ1FDQUVJQVJCSEdvUUFpSUNEUUFnQkNBRVFSeHFFQUlpQWcwQUlBUWdCRUVjYWhBQ0lnSU5BQ0FKS0FJTUlRVkJBQ0VDQTBBZ0FpSURRUUZxSVFJZ0JTQURkZzBBQ3lBRUlBTkJBV3NRQTBGL1JnUkFRUUVoQWd3QkN5QUVJQVJCSEdvUUFpSUNEUUFDUUNBSktBSVFJZ0lFZnlBQ0JTQUpLQUlVSVFWQkFDRUNBMEFnQWlJRFFRRnFJUUlnQlNBRGRnMEFDeUFFSUFOQkFXc1FBMEYvUmdSQVFRRWhBZ3dEQ3lBR0tBSUlCRUFnQkNBRVFSaHFFQVlpQWcwREN5QUpLQUlRQzBFQlJ3MEFJQWtvQWhnTkFDQUVJQVJCR0dvUUJpSUNEUUVnQmlnQ0NFVU5BQ0FFSUFSQkdHb1FCaUlDRFFFTElBWW9Ba1FFUUNBRUlBUkJIR29RQWlJQ0RRRUxJQmdnQkVFQkVBTWlBallDQ0NBQ1FYOUdJUUlMSUFSQklHb2tBQ0FZS0FJSUlBSnlEUUFnQVVVTkFDQUFRZndKYWlnQ0FBMEFJQUVvQWpRZ0NTZ0NORWNOQUNBQktBSTRJQWtvQWpoSERRQWdBU2dDV0NBSktBSllSZzBCQ3lBQVFZQUtha0VBTmdJQURBRUxRUUFoQVVFQUlRTUNRQ0FBUWNRSmFpSUNLQUlBSWdaRkRRQWdBa0VCTmdJOElBSW9BamdOQUNBQ0tBSWNJUVZCLy8vLy93Y2hCQU5BQTBBZ0JpQURRU2hzYWlJSktBSVlCRUFnQ1NBQklBa29BaEFpQ1NBRVNDSUhHeUVCSUFrZ0JDQUhHeUVFQ3lBRFFRRnFJZ01nQlUwTkFDQUJSUTBDSUFJb0Fnd2dBaWdDRUNJRVFRUjBhaUlESUFFb0FnQTJBZ0FnQXlBQktBSWtOZ0lNSUFNZ0FTZ0NIRFlDQkNBRElBRW9BaUEyQWdnZ0FpQUVRUUZxTmdJUVFRQWhBeUFCUVFBMkFoZ2dBU2dDRkNFSlFRQWhBVUgvLy8vL0J5RUVJQWtOQUFzZ0FpQUNLQUlzUVFGck5nSXNEQUFMQUFzTElBQWdBQ2dDQ0RZQ0FFRUNJU0lNQWd0QkNTRWlJQUFvQXJRYURRRkJEQ0VpSUFBb0FoQWhDU0FBS0FJTUlRZ2pBRUVRYXlJREpBQWdBRUcwRW1vaUhVRUFRZHdIRUFRaEJpQUpLQUkwSVFJZ0NTZ0NPQ0VGQWtBZ0dFRVFhaUlFSUFOQkRHb1FBaUlCRFFBZ0JpQURLQUlNSWdFMkFnQWdBaUFGYkNJUUlBRk5CRUJCQVNFQkRBRUxJQVFnQTBFTWFoQUNJZ0VOQUNBR0lBTW9BZ3dpQWpZQ0JFRUJJUUVDUUFKQUlBSU9DQUFDQVFJQ0FBSUJBZ3NnR0NnQ2lBRkJCVVlOQVNBSktBSXNEUUFNQVFzZ0JDQURRUXhxRUFJaUFRMEFJQVlnQXlnQ0RDSUNOZ0lJUVFFaEFTQUNJQWdvQWdCSERRQWdDU2dDRENFRlFRQWhBUU5BSUFFaUFrRUJhaUVCSUFVZ0FuWU5BQXRCQVNFQklBUWdBa0VCYXhBRElnSkJmMFlOQUNBWUtBS0lBVUVGUnlJRlFRRWdBaHRGRFFBZ0JpQUNOZ0lNSUFWRkJFQWdCQ0FEUVF4cUVBSWlBUTBCSUFZZ0F5Z0NEQ0lDTmdJUVFRRWhBU0FDUWYvL0Ewc05BUXNDUUNBSktBSVFJZ0VFZnlBQkJTQUpLQUlVSVFWQkFDRUJBMEFnQVNJQ1FRRnFJUUVnQlNBQ2RnMEFDeUFFSUFKQkFXc1FBeUlCUVg5R0JFQkJBU0VCREFNTElBWWdBVFlDRkNBSUtBSUlCRUFnQkNBRFFRaHFFQVlpQVEwRElBWWdBeWdDQ0RZQ0dBc2dHQ2dDaUFGQkJVWUVRRUVCSVFFZ0JpZ0NGQ0lDSUFrb0FoUkJBWFpMRFFNZ0FrRUFJQVlvQWhnaUJVRWZkU0FGY1d0SERRTUxJQWtvQWhBTFFRRkhEUUFnQ1NnQ0dBMEFJQVFnQTBFSWFoQUdJZ0VOQVNBR0lBTW9BZ2cyQWh3Z0NDZ0NDQVJBSUFRZ0EwRUlhaEFHSWdFTkFpQUdJQU1vQWdnMkFpQUxJQmdvQW9nQlFRVkhEUUJCQVNFQklBWW9BaHdpQWlBR0tBSWdJQUlnQ1NnQ0lHcHFJZ1VnQWlBRlNCc05BUXNnQ0NnQ1JBUkFJQVFnQTBFTWFoQUNJZ0VOQVNBR0lBTW9BZ3dpQWpZQ0pFRUJJUUVnQWtIL0FFc05BUXNDUUFKQUlBWW9BZ1FpQVE0R0FBRUJBUUVBQVF0QkFTRUJJQVJCQVJBRElnSkJmMFlOQVNBR0lBSTJBaWdDUUNBQ0JFQWdCQ0FEUVF4cUVBSWlBUTBEUVFFaEFTQURLQUlNSWdKQkQwc05BeUFDUVFGcUlRSU1BUXNnQ0NnQ01DSUNRUkJMRFFJTElBWWdBallDTENBR0tBSUVJUUVMQWtBQ1FDQUJEZ1lBQVFFQkFRQUJDeUFHUWNRQWFpRUhJQVlvQWl3aEN5QUpLQUlNSVFvakFFRVFheUlGSkFCQkFTRUJBa0FnQkVFQkVBTWlBa0YvUmcwQUlBY2dBallDQUNBQ0JFQkJBQ0VCQTBBZ0N5QUJJZ0pKQkVCQkFTRUJEQU1MSUFRZ0JVRUlhaEFDSWdFTkFpQUZLQUlJSWdGQkEwc0VRRUVCSVFFTUF3c2dCeUFDUVF4c2FpSU5JQUUyQWdRQ1FDQUJRUUZOQkVBZ0JDQUZRUXhxRUFJaUFRMEVJQW9nQlNnQ0RDSUJUUVJBUVFFaEFRd0ZDeUFOSUFGQkFXbzJBZ2dNQVFzZ0FVRUNSdzBBSUFRZ0JVRU1haEFDSWdFTkF5QU5JQVVvQWd3MkFnd0xJQUpCQVdvaEFTQUZLQUlJUVFOSERRQUxRUUVoQVNBQ1JRMEJDMEVBSVFFTElBVkJFR29rQUNBQkRRRUxJQmdvQW93QkJFQWdCa0dVQW1vaERTQVlLQUtJQVNFSElBa29BaXdoREVFQUlRVkJBQ0VQUVFBaEN5TUFRUkJySWdJa0FFRUJJUUVnQkVFQkVBTWhDUUpBQWtBZ0IwRUZSZ1JBSUFsQmYwWU5BaUFOSUFrMkFnQWdCRUVCRUFNaUNVRi9SZzBDSUEwZ0NUWUNCQ0FNRFFFZ0NVVU5BUXdDQ3lBSlFYOUdEUUVnRFNBSk5nSUlJQWxGRFFBZ0RFRUJkRUVEYWlFUlFRQWhDVUVBSVFjRFFDQUpJQkZHQkVCQkFTRUJEQU1MSUFRZ0FrRUlhaEFDSWdFTkFpQUNLQUlJSWdGQkJrc0VRRUVCSVFFTUF3c2dEU0FKUVJSc2FpSUtJQUUyQWd3Q2Z5QUJRWDF4UVFGR0JFQWdCQ0FDUVF4cUVBSWlBUTBFSUFvZ0FpZ0NERUVCYWpZQ0VDQUNLQUlJSVFFTElBRkJBa1lMQkVBZ0JDQUNRUXhxRUFJaUFRMERJQW9nQWlnQ0REWUNGQ0FDS0FJSUlRRUxBa0FDUUNBQlFRTnJEZ1FBQVFFQUFRc2dCQ0FDUVF4cUVBSWlBUTBESUFvZ0FpZ0NERFlDR0NBQ0tBSUlJUUVMSUFGQkJFWUVRQ0FFSUFKQkRHb1FBaUlCRFFNZ0RDQUNLQUlNSWdGSkJFQkJBU0VCREFRTElBb2dBVUVCYTBILy93TWdBUnMyQWh3Z0JVRUJhaUVGSUFJb0FnZ2hBUXNnQ1VFQmFpRUpJQThnQVVFR1Jtb2hEeUFISUFGQkJVWnFJUWNnQ3lBQlFRRnJRUU5KYWlFTElBRU5BQXRCQVNFQklBVWdCM0lnRDNKQkFVc05BU0FIUlEwQUlBc05BUXRCQUNFQkN5QUNRUkJxSkFBZ0FRMEJDeUFFSUFOQkNHb1FCaUlCRFFBZ0JpQURLQUlJSWdFMkFqQWdBeUFCSUFnb0FqUnFJZ0UyQWdnZ0FVRXpTd1JBUVFFaEFRd0JDd0pBSUFnb0FqeEZEUUFnQkNBRFFReHFFQUlpQVEwQklBWWdBeWdDRENJQk5nSTBJQUZCQWtzRVFFRUJJUUVNQWdzZ0FVRUJSZzBBSUFRZ0EwRUlhaEFHSWdFTkFVRUJJUUVnQXlnQ0NDSUNRUVpxUVF4TERRRWdCaUFDUVFGME5nSTRJQVFnQTBFSWFoQUdJZ0VOQVVFQklRRWdBeWdDQ0NJQ1FRWnFRUXhMRFFFZ0JpQUNRUUYwTmdJOEN3SkFJQWdvQWd4QkFra05BQ0FJS0FJUVFRTnJRUUpMRFFBZ0F5QUVBbjhnRUNBSUtBSWtJZ0Z1SWdKQkFrRUJJQkFnQVNBQ2JHc2JhaUVFUVFBaEFRTkFJQVFnQVNJQ1FRRnFJZ0YyRFFBTElBRWdBaUFFUVg4Z0FuUkJmM054R3dzUUF5SUNOZ0lNSUFKQmYwWUVRRUVCSVFFTUFnc2dCaUFDTmdKQVFRRWhBU0FDSUJBZ0NDZ0NKQ0lFYWtFQmF5QUVia3NOQVF0QkFDRUJDeUFEUVJCcUpBQWdBUTBCSUFBb0FxUUpSUVJBSUJnb0FvZ0JRUVZIQkVCQkRpRWlBbjhnQUVIQUVtb29BZ0FoQ0NBWUtBS01BVUVBUnlFTklBQW9BaEFvQWpBaEFpQUFRY1FKYWlJQlFnQTNBaEFDUUFKQUFrQWdBa1VOQUNBQktBSXdJZ0lnQ0VZTkFnSkFJQWdnQWtFQmFpQUJLQUlnSWdad0lnVkhCRUFnQVNnQ0FDQUJLQUljUVNoc2FpZ0NBQ0VMQWtBRFFBSkFBa0FDUUNBQktBSW9JZ2tFUUNBSlFRRnhJUW9nQVNnQ0FDRUhRUUFoQWlBSlFRRkdJaEJGQkVBZ0NVRitjU0VEQTBBZ0J5QUNRU2hzYWlJRUtBSVVRUUZyUVFGTkJFQWdCQ0FFS0FJTUlnUWdCa0VBSUFRZ0JVc2JhellDQ0FzZ0J5QUNRUUZ5UVNoc2FpSUVLQUlVUVFGclFRSkpCRUFnQkNBRUtBSU1JZ1FnQmtFQUlBUWdCVXNiYXpZQ0NBc2dBa0VDYWlFQ0lBTkJBbXNpQXcwQUN3c0NRQ0FLUlEwQUlBY2dBa0VvYkdvaUFpZ0NGRUVCYTBFQlN3MEFJQUlnQWlnQ0RDSUNJQVpCQUNBQ0lBVkxHMnMyQWdnTElBa2dBU2dDR0VrTkF5QVFSUTBCUVg4aEEwRUFJUUpCQUNFRURBSUxRUUFoQ1NBQktBSVlEUUpCQVF3S0N5QUpRWDV4SVFaQmZ5RURRUUFoQWtFQUlRUURRQ0FISUFKQktHeHFJaEFvQWhSQkFXdEJBVTBFUUNBUUtBSUlJaEFnQkNBRFFYOUdJQVFnRUVweUloQWJJUVFnQWlBRElCQWJJUU1MSUFjZ0FrRUJjaUlRUVNoc2FpSVBLQUlVUVFGclFRSkpCRUFnRHlnQ0NDSVBJQVFnQTBGL1JpQUVJQTlLY2lJUEd5RUVJQkFnQXlBUEd5RURDeUFDUVFKcUlRSWdCa0VDYXlJR0RRQUxDd0pBSUFwRkRRQWdCeUFDUVNoc2FpSUdLQUlVUVFGclFRRkxEUUFnQWlBQ0lBTWdCaWdDQ0NBRVNCc2dBMEYvUmhzaEF3dEJBU0FEUVFCSURRZ2FJQWNnQTBFb2JHb2lBa0VBTmdJVUlBRWdDVUVCYXlJSk5nSW9JQUlvQWhnTkFDQUJJQUVvQWl4QkFXczJBaXdMSUFFb0Fpd2lCaUFCS0FJY0lnZFBCRUFnQVNnQ09BMENJQUVvQWdBaEVBTkFRUUFoQkVILy8vLy9CeUVEUVFBaEFnTkFJQkFnQWtFb2JHb2lDaWdDR0FSQUlBb2dCQ0FLS0FJUUlnb2dBMGdpRHhzaEJDQUtJQU1nRHhzaEF3c2dBa0VCYWlJQ0lBZE5EUUFMQWtBZ0JFVU5BQ0FCS0FJTUlBRW9BaEFpQTBFRWRHb2lBaUFFS0FJQU5nSUFJQUlnQkNnQ0pEWUNEQ0FDSUFRb0FodzJBZ1FnQWlBRUtBSWdOZ0lJSUFFZ0EwRUJhallDRUNBRVFRQTJBaGdnQkNnQ0ZBMEFJQUVnQmtFQmF5SUdOZ0lzQ3lBR0lBZFBEUUFMQ3lBQktBSUFJZ01nQjBFb2JHb2lBaUFGTmdJTUlBSkNnSUNBZ0JBM0FoQWdBa0VBTmdJWUlBSWdCVFlDQ0NBQklBbEJBV28yQWlnZ0FTQUdRUUZxTmdJc0lBTWdCMEVCYWhBbUlBVkJBV29nQVNnQ0lDSUdjQ0lGSUFoSERRQUxBa0FnQVNnQ0VDSUpSUTBBSUFFb0FnQWlCaUFCS0FJY0lnTkJLR3hxSWdVb0FnQWhCQ0FCS0FJTUlRZEJBQ0VDQTBBZ0JDQUhJQUpCQkhScUtBSUFSd1JBSUFrZ0FrRUJhaUlDUncwQkRBSUxDeUFEUlEwQVFRQWhBZ05BSUFzZ0JpQUNRU2hzYWlJSktBSUFSd1JBSUFNZ0FrRUJhaUlDUncwQkRBSUxDeUFKSUFRMkFnQWdCU0FMTmdJQUN5QU5EUVFnQVNnQ01DRUNEQUlMQTBBTUFBc0FDeUFORFFJTElBSWdDRVlOQUNBQklBZ2dBU2dDSUNJQmFrRUJheUFCY0RZQ01BdEJBQXdDQ3lBQklBZzJBakJCQUF3QkN5QU5DdzBEQ3lBQVFjUUphaUlCSUFFb0FnQWdBU2dDSEVFb2JHb2lBVFlDQ0NBQUlBRW9BZ0EyQXJnS0N5QUFRZGdLYWlBZFFkd0hFQWdoRkNBQVFRRTJBcVFKSUFBZ0dDa0RpQUUzQXRBS0lBQW9BcFFKSVEwZ0FFR1lDMm9vQWdBaEEwRUFJUWxCQUNFUUlBQW9BaEFpQVNnQ05DSUtJQUVvQWpnaUJXd2hCZ0pBSUFBb0Fnd2lBU2dDRENJSFFRRkdCRUFnRFVFQUlBWkJBblFRQkJvTUFRc0NRQUpBQWtBZ0FTZ0NFQ0lDUVFOclFRSk5CRUFnQVNnQ0pDQURiQ0lESUFZZ0F5QUdTUnNoRHlBQktBSWdJUU1nQWtGK2NVRUVSdzBCSUFZZ0Qyc2dEeUFER3lFSkN3SkFBa0FDUUFKQUFrQUNRQ0FDRGdZQkFnTUFCUVFBQ3lBR1JRMEhJQVpCQTNFaEVDQUJLQUlzSVFKQkFDRUJJQVpCQVd0QkEwOEVRQ0FHUVh4eElRUURRQ0FOSUFGQkFuUWlBMm9nQWlBRGFpZ0NBRFlDQUNBTklBTkJCSElpQ1dvZ0FpQUphaWdDQURZQ0FDQU5JQU5CQ0hJaUNXb2dBaUFKYWlnQ0FEWUNBQ0FOSUFOQkRISWlBMm9nQWlBRGFpZ0NBRFlDQUNBQlFRUnFJUUVnQkVFRWF5SUVEUUFMQ3lBUVJRMEhBMEFnRFNBQlFRSjBJZ05xSUFJZ0Eyb29BZ0EyQWdBZ0FVRUJhaUVCSUJCQkFXc2lFQTBBQ3d3SEN5QUhSUTBGSUFFb0FoUWhBMEVBSVFrRFFFRUFJUkFnQmlBSlRRMEhBMEFnQXlBUVFRSjBhaUlGS0FJQUlRUUNRQ0FHSUFsTkRRQWdCRVVOQUVFQklRRWdDU0VDQTBBZ0RTQUNRUUowYWlBUU5nSUFJQUVnQlNnQ0FDSUVUdzBCSUFFZ0NXb2lBaUFHVHcwQklBRkJBV29oQVF3QUN3QUxJQWNnRUVFQmFpSVFTMEVBSUFZZ0JDQUphaUlKU3hzTkFBc2dCaUFKU3cwQUN3d0dDeUFHUlEwRlFRQWhBUU5BSUEwZ0FVRUNkR29nQVNBS2JpSUNJQWRzUVFGMklBRWdBaUFLYkd0cUlBZHdOZ0lBSUFGQkFXb2lBU0FHUncwQUN3d0ZDeUFCS0FJY0lRVWdBU2dDR0NFSUFrQWdCa1VOQUNBSFFRRnJJUUVnQmtFSGNTRVFRUUFoQ1NBR1FRRnJRUWRQQkVBZ0JrRjRjU0VFQTBBZ0RTQUpRUUowSWdKcUlBRTJBZ0FnRFNBQ1FRUnlhaUFCTmdJQUlBMGdBa0VJY21vZ0FUWUNBQ0FOSUFKQkRISnFJQUUyQWdBZ0RTQUNRUkJ5YWlBQk5nSUFJQTBnQWtFVWNtb2dBVFlDQUNBTklBSkJHSEpxSUFFMkFnQWdEU0FDUVJ4eWFpQUJOZ0lBSUFsQkNHb2hDU0FFUVFocklnUU5BQXNMSUJCRkRRQURRQ0FOSUFsQkFuUnFJQUUyQWdBZ0NVRUJhaUVKSUJCQkFXc2lFQTBBQ3dzZ0IwRUNheUVCQTBBQ1FDQUlJQUVpQWtFQ2RDSUJhaWdDQUNJRElBcHVJZ1FnQVNBRmFpZ0NBQ0lCSUFwdUlnbExEUUFnQXlBRUlBcHNheUlESUFFZ0NTQUtiR3NpQmtzTkFBTkFJQVFnQ213aEJ5QURJUUVEUUNBTklBRWdCMnBCQW5ScUlBSTJBZ0FnQVVFQmFpSUJJQVpORFFBTElBUkJBV29pQkNBSlRRMEFDd3NnQWtFQmF5RUJJQUlOQUFzTUJBc2dDa1VOQXlBRlJRMERRUUVnQVNnQ0lDSUhheUVJSUFWQmZuRWhCaUFGUVFGeElRdEJBQ0VEQTBBZ0F5RUJRUUFoQWlBR0lRUWdCVUVCUndSQUEwQWdEU0FDSUFwc0lCQnFRUUowYWlBSElBZ2dBU0FKU1JzMkFnQWdEU0FDUVFGeUlBcHNJQkJxUVFKMGFpQUhJQWdnQVVFQmFpQUpTUnMyQWdBZ0FrRUNhaUVDSUFGQkFtb2hBU0FFUVFKcklnUU5BQXNMSUFzRVFDQU5JQUlnQ213Z0VHcEJBblJxSUFjZ0NDQUJJQWxKR3pZQ0FBc2dBeUFGYWlFRElCQkJBV29pRUNBS1J3MEFDd3dEQ3lBR1JRMENRUUVnQVNnQ0lDSUNheUVESUFaQkEzRWhCRUVBSVFFZ0JrRUJhMEVEVHdSQUlBWkJmSEVoQlFOQUlBMGdBVUVDZEdvZ0FpQURJQUVnQ1VrYk5nSUFJQTBnQVVFQmNpSUdRUUowYWlBQ0lBTWdCaUFKU1JzMkFnQWdEU0FCUVFKeUlnWkJBblJxSUFJZ0F5QUdJQWxKR3pZQ0FDQU5JQUZCQTNJaUJrRUNkR29nQWlBRElBWWdDVWtiTmdJQUlBRkJCR29oQVNBRlFRUnJJZ1VOQUFzTElBUkZEUUlEUUNBTklBRkJBblJxSUFJZ0F5QUJJQWxKR3pZQ0FDQUJRUUZxSVFFZ0JFRUJheUlFRFFBTERBSUxBa0FnQmtVTkFDQUdRUWR4SVFsQkFDRUNJQVpCQVd0QkIwOEVRQ0FHUVhoeElSQURRQ0FOSUFKQkFuUWlBV3BCQVRZQ0FDQU5JQUZCQkhKcVFRRTJBZ0FnRFNBQlFRaHlha0VCTmdJQUlBMGdBVUVNY21wQkFUWUNBQ0FOSUFGQkVISnFRUUUyQWdBZ0RTQUJRUlJ5YWtFQk5nSUFJQTBnQVVFWWNtcEJBVFlDQUNBTklBRkJISEpxUVFFMkFnQWdBa0VJYWlFQ0lCQkJDR3NpRUEwQUN3c2dDVVVOQUFOQUlBMGdBa0VDZEdwQkFUWUNBQ0FDUVFGcUlRSWdDVUVCYXlJSkRRQUxDeUFQUlEwQklBcEJBV3NoRENBRlFRRnJJUjFCQVNBRFFRRjBJZ0ZySVFRZ0FVRUJheUVHSUFOQkFXc2hBaUFGSUFOclFRRjJJZ2doQ3lBS0lBTnJRUUYySWdjaENTQUlJUVVnQnlFQlFRQWhFQU5BSUEwZ0JTQUtiQ0FCYWtFQ2RHb2lFU2dDQUNJYlFRRkdCRUFnRVVFQU5nSUFDeUFiUVFGR0lSRUNRQUpBSUFKQmYwY05BQ0FCSUFsSERRQkJBQ0VDSUFZaEF5QUpRUUVnQ1VFQlNodEJBV3NpQVNFSkRBRUxBa0FnQWtFQlJ3MEFJQUVnQjBjTkFFRUFJUUlnQkNFRElBZEJBV29pQVNBTUlBRWdERWdiSWdFaEJ3d0JDd0pBSUFOQmYwY05BQ0FGSUF0SERRQkJBQ0VESUFRaEFpQUxRUUVnQzBFQlNodEJBV3NpQlNFTERBRUxBa0FnQTBFQlJ3MEFJQVVnQ0VjTkFFRUFJUU1nQmlFQ0lBaEJBV29pQlNBZElBVWdIVWdiSWdVaENBd0JDeUFESUFWcUlRVWdBU0FDYWlFQkN5QVFJQkZxSWhBZ0Qwa05BQXNNQVFzZ0JrVU5BQU5BREFBTEFBc0xJQUJCeEFscUlnZ1FKRUVQSVNJQ2Z5QUFRZVFLYWlnQ0FDRUZJQUJCaEF0cUtBSUFJUWxCQUNFQ0lBZ29BaWdpQXdSQUlBZ29BZ0FoQkFOQUlBUWdBa0VvYkdvaUFTZ0NGRUVCYTBFQlRRUkFJQUVnQlNBQktBSU1JZ0ZKQkg4Z0FTQUlLQUlnYXdVZ0FRczJBZ2dMSUFKQkFXb2lBaUFEUncwQUN3dEJBQ0FBUVp3TGFpSU5LQUlBUlEwQUdrRUFJUVpCQUNBTktBSUVJZ0pCQWtzTkFCb2dCU0VCQTBBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFJT0F3QUJBd0VMSUFFZ0RTQUdRUXhzYWlnQ0NHc2lBVUYvU2cwQklBZ29BaUFnQVdvaEFRd0JDeUFOSUFaQkRHeHFLQUlJSUFGcUlnRkJBQ0FJS0FJZ0lnSWdBU0FDU0J0cklRRUxJQUVpQXlBRlN3UkFJQUVnQ0NnQ0lHc2hBd3RCQVNBSUtBSVlJZ3RGRFFZYUlBZ29BZ0FoQkVFQUlRSURRQ0FFSUFKQktHeHFJZ2NvQWhRaUNrRUJhMEVCVFFSQUlBY29BZ2dnQTBZTkF3dEJBU0VISUFKQkFXb2lBaUFMUncwQUN3d0VDMEVCSVFjZ0NDZ0NHQ0lEUlEwRElBMGdCa0VNYkdvb0Fnd2hDeUFJS0FJQUlRUkJBQ0VDQTBBZ0JDQUNRU2hzYWlJSEtBSVVRUU5HQkVBZ0J5Z0NDQ0FMUmcwREMwRUJJUWNnQWtFQmFpSUNJQU5IRFFBTERBTUxRUUVnQWtFQVNBMEVHa0VCSVFjZ0NrRUJTdzBCREFJTFFRRWhCeUFDUVFCSURRRUxJQVlnQ1VrRVFDQUpJZ1FnQm10QkEzRWlCd1JBQTBBZ0NDZ0NCQ0lESUFSQkFuUnFJQU1nQkVFQmF5SUVRUUowYWlnQ0FEWUNBQ0FIUVFGcklnY05BQXNMSUFaQmYzTWdDV3BCQTA4RVFBTkFJQWdvQWdRaUJ5QUVRUUowSWdOcUlBY2dBMEVFYXlJTGFpZ0NBRFlDQUNBSUtBSUVJZ2NnQzJvZ0J5QURRUWhySWd0cUtBSUFOZ0lBSUFnb0FnUWlCeUFMYWlBSElBTkJER3NpQTJvb0FnQTJBZ0FnQXlBSUtBSUVJZ2RxSUFjZ0JFRUVheUlFUVFKMGFpZ0NBRFlDQUNBRUlBWkxEUUFMQ3lBSUtBSUFJUVFMSUFnb0FnUWdCa0VDZEdvZ0JDQUNRU2hzSWdOcU5nSUFJQVpCQVdvaUJpRUVJQVlpQWlBSlRRUkFBMEFnQ0NnQ0JDSUhJQUpCQW5ScUtBSUFJZ3NnQ0NnQ0FDQURha2NFUUNBSElBUkJBblJxSUFzMkFnQWdCRUVCYWlFRUN5QUNRUUZxSWdJZ0NVME5BQXNMUVFBaEJ5QU5JQVpCREd4cUtBSUVJZ0pCQTBrTkFRc0xJQWNMRFFFQ2Z5QVlRUkJxSVJzZ0FFRzRDbW9oSFVFQUlRbEJBQ0VpSXdCQndBTnJJaU1rQUNBVUtBSUFJUVFnQUNJZ0tBS3dHaUVOSUNOQkFEWUNEQ0FBUWJBSmFrRUFOZ0lBSUFBZ0FDZ0NxQWxCQVdvMkFxZ0pJQ01nRkNnQ01DQUFLQUlNS0FJMGFqWUNDQ0FBUWNRSmFpRW9JQTFCREdvaE1BSkFBMEFnSUNnQ3ZBa2hBUUpBSUJRb0FpUU5BQ0FCSUFSQjJBRnNhaWdDeEFGRkRRQkJBU0VHREFJTElCUXBBalFoU0NBVUtBSThJUUlnSUNnQ3FBa2hBeUFCSUFSQjJBRnNJaWxxSWdFZ0lDZ0NEQ2dDT0RZQ0dDQUJJQUkyQWhBZ0FTQklOd0lJSUFFZ0F6WUNCQUpBSUJRb0FnUWlBVUVDUmcwQUlBa05BQ0FCUVFkR0RRQWdHeUFqUVF4cUVBSWlCZzBDSUNNb0Fnd2lBU0FnS0FLWUNTQUVhMHNFUUVFQklRWU1Bd3NnQVVVRVFFRUFJUWtNQVFzZ01FRUFRYVFCRUFRYUlBMUJBRFlDQUVFQklRa0xBa0FnSXlnQ0RDSUJCRUFnSXlBQlFRRnJOZ0lNREFFTFFRQWhDU0FnS0FLOENTQXBhaUVISUJRb0FnUWhBaUFVS0FJc0lRaEJBQ0VLSXdCQkVHc2lCaVFBSUExQkFFR29FQkFFSVFVZ0d5QUdRUVJxRUFJaEFRSkFBa0FDUUFKQUlBSkJBbXNPQmdBQkFRRUJBQUVMUVFFaEFpQUdLQUlFUVFacUlndEJIMHNOQWlBQlJRMEJEQUlMUVFFaEFpQUdLQUlFUVFGcUlndEJIMHNOQVNBQkRRRUxJQVVnQ3pZQ0FBSkFJQXRCSDBZRVFBTkFJQnNvQWdnRVFDQWJRUUVRQTBVTkFRd0VDd3NnQlVISUFtb2hDd05BSUFZZ0cwRUlFQU1pQVRZQ0JDQUJRWDlHRFFNZ0N5QUJOZ0lBSUF0QkJHb2hDeUFLUVFGcUlncEJnQU5IRFFBTERBRUxRUUlnQzBFR1J5QUxRUVpKR3lFUUFrQWdDMEYrY1VFRVJnUkFJQnNnQmtFTWFoQUNEUUVnQmlnQ0RDSUJRUU5MRFFFZ0JTQUJOZ0t3QVNBYklBWkJER29RQWcwQklBWW9BZ3dpQVVFRFN3MEJJQVVnQVRZQ3RBRWdHeUFHUVF4cUVBSU5BU0FHS0FJTUlnRkJBMHNOQVNBRklBRTJBcmdCSUJzZ0JrRU1haEFDRFFFZ0JpZ0NEQ0lCUVFOTERRRWdCU0FCTmdLOEFRSkFJQWhCQWtrTkFDQUxRUVZHRFFBZ0d5QUdRUXhxSUFoQkFrc2lBUkFVRFFJZ0JpZ0NEQ0lESUFoUERRSWdCU0FETmdMQUFTQWJJQVpCREdvZ0FSQVVEUUlnQmlnQ0RDSURJQWhQRFFJZ0JTQUROZ0xFQVNBYklBWkJER29nQVJBVURRSWdCaWdDRENJRElBaFBEUUlnQlNBRE5nTElBU0FiSUFaQkRHb2dBUkFVRFFJZ0JpZ0NEQ0lCSUFoUERRSWdCU0FCTmdMTUFRc2dCaUFGS0FLd0FTSUJRUUpOQkg4Z0FVRUNkRUh3Tkdvb0FnQUZRUU1MTmdJTVFRQWhDd05BSUJzZ0JrRUlhaEFHSWdJTkFpQUZJQXRCQW5ScUlnRWdCaWdDQ0RzQjBBRWdHeUFHUVFocUVBWWlBZzBDSUFFZ0JpZ0NDRHNCMGdFZ0JpQUdLQUlNSWdGQkFXczJBZ3dnQzBFQmFpRUxJQUVOQUFzZ0JpQUZLQUswQVNJQlFRTkpCSDhnQVVFQ2RFSHdOR29vQWdBRlFRTUxOZ0lNUVFBaEN3TkFJQnNnQmtFSWFoQUdJZ0lOQWlBRklBdEJBblJxSWdFZ0JpZ0NDRHNCNEFFZ0d5QUdRUWhxRUFZaUFnMENJQUVnQmlnQ0NEc0I0Z0VnQmlBR0tBSU1JZ0ZCQVdzMkFnd2dDMEVCYWlFTElBRU5BQXNnQmlBRktBSzRBU0lCUVFKTkJIOGdBVUVDZEVId05Hb29BZ0FGUVFNTE5nSU1RUUFoQ3dOQUlCc2dCa0VJYWhBR0lnSU5BaUFGSUF0QkFuUnFJZ0VnQmlnQ0NEc0I4QUVnR3lBR1FRaHFFQVlpQWcwQ0lBRWdCaWdDQ0RzQjhnRWdCaUFHS0FJTUlnRkJBV3MyQWd3Z0MwRUJhaUVMSUFFTkFBc2dCaUFGS0FLOEFTSUJRUUpOQkg4Z0FVRUNkRUh3Tkdvb0FnQUZRUU1MTmdJTVFRQWhDd05BSUJzZ0JrRUlhaEFHSWdJTkFpQUZJQXRCQW5ScUlnRWdCaWdDQ0RzQmdBSWdHeUFHUVFocUVBWWlBZzBDSUFFZ0JpZ0NDRHNCZ2dJZ0JpQUdLQUlNSWdGQkFXczJBZ3dnQzBFQmFpRUxRUUFoQWlBQkRRQUxEQUVMUVFBaEFnSkFBbjhDUUFKQUFrQWdFQTREQUFRQkJRc2dCU0FiRUJBaUFVRWZkallDRENBQlFYOUtEUUVnQVVFQmRDRUxRUUFNQWdzZ0NFRUNUd1JBUVFNaEF5QUxRUU5OQkVBZ0MwRUNkRUg4Tkdvb0FnQWhBd3NnQ0VFQ1N5RVBRUUVoQWdOQUlCc2dCa0VNYWlBUEVCUU5CU0FHS0FJTUlnRWdDRThOQlNBRklBcEJBblJxSUFFMkFwQUJJQU1pQVVFQmF5RURJQXBCQVdvaENpQUJEUUFMQzBFRElRSWdDMEVEVFFSQUlBdEJBblJCL0RScUtBSUFJUUlMUVFBaEN3TkFJQUloQVNBYklBWkJDR29RQmlJQ0RRUWdCU0FMUVFKMGFpSURJQVlvQWdnN0FhQUJJQnNnQmtFSWFoQUdJZ0lOQkNBRElBWW9BZ2c3QWFJQklBRkJBV3NoQWlBTFFRRnFJUXNnQVEwQUMwRUFJUUlNQXdzZ0JTQUJRUngyTmdKTUlBRkJCSFFoQzBFQkN5RUNJQVVnQzBFZmRqWUNFQ0FGSUF0QmYwd0VmeUFMUVFGMEJTQUZJQXRCSEhZMkFsQWdBa0VCYWlFQ0lBdEJCSFFMSWdGQkgzWTJBaFFnQlNBQlFRQklCSDhnQVVFQmRBVWdCU0FCUVJ4Mk5nSlVJQUpCQVdvaEFpQUJRUVIwQ3lJQlFSOTJOZ0lZSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNXQ0FDUVFGcUlRSWdBVUVFZEFzaUFVRWZkallDSENBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBbHdnQWtFQmFpRUNJQUZCQkhRTElnRkJIM1kyQWlBZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pnSUFKQkFXb2hBaUFCUVFSMEN5SUJRUjkyTmdJa0lBVWdBVUVBU0FSL0lBRkJBWFFGSUFVZ0FVRWNkallDWkNBQ1FRRnFJUUlnQVVFRWRBc2lBVUVmZGpZQ0tBSkFJQnNnQVVFQVRnUi9JQVVnQVVFY2RqWUNhQ0FDUVFGcUJTQUNDMEVEYkVFSWFoQUxRWDlIQkVBZ0JTQWJFQkFpQVVFZmRqWUNMQUovSUFGQmYwd0VRQ0FCUVFGMElRdEJBQXdCQ3lBRklBRkJISFkyQW13Z0FVRUVkQ0VMUVFFTElRSWdCU0FMUVI5Mk5nSXdJQVVnQzBFQVNBUi9JQXRCQVhRRklBVWdDMEVjZGpZQ2NDQUNRUUZxSVFJZ0MwRUVkQXNpQVVFZmRqWUNOQ0FGSUFGQkFFZ0VmeUFCUVFGMEJTQUZJQUZCSEhZMkFuUWdBa0VCYWlFQ0lBRkJCSFFMSWdGQkgzWTJBamdnQlNBQlFRQklCSDhnQVVFQmRBVWdCU0FCUVJ4Mk5nSjRJQUpCQVdvaEFpQUJRUVIwQ3lJQlFSOTJOZ0k4SUFWQlFHc2dBVUVBU0FSL0lBRkJBWFFGSUFVZ0FVRWNkallDZkNBQ1FRRnFJUUlnQVVFRWRBc2lBVUVmZGpZQ0FDQUZJQUZCQUVnRWZ5QUJRUUYwQlNBRklBRkJISFkyQW9BQklBSkJBV29oQWlBQlFRUjBDeUlCUVI5Mk5nSkVJQVVnQVVFQVNBUi9JQUZCQVhRRklBVWdBVUVjZGpZQ2hBRWdBa0VCYWlFQ0lBRkJCSFFMSWdGQkgzWTJBa2dnQVVFQVNBUi9JQUZCQVhRRklBVWdBVUVjZGpZQ2lBRWdBa0VCYWlFQ0lBRkJCSFFMSVFFZ0d5QUNRUU5zUVFocUVBdEJmMGNOQVF0QkFTRUNEQUlMSUFaQkFqWUNDQ0FHSUFFMkFnd0xRUUVoQWlBYklBWkJER29RQWcwQUlBWW9BZ3dpQVVFRFN3MEFJQVVnQVRZQ2pBRkJBQ0VDQ3lBQ0RRRUNRQ0FRUVFGSEJFQWdFRVVoQXlNQVFSQnJJZ0VrQUVFQklRSUNRQ0FiSUFGQkRHb1FBZzBBSUFFb0Fnd2lDRUV2U3cwQUlBWkIwRDlCZ01BQUlBTWJJQWhxTFFBQU5nSUVRUUFoQWdzZ0FVRVFhaVFBSUFJTkF5QUZJQVlvQWdRaUFUWUNCQ0FCUlEwQ0RBRUxJQVVnQlNnQ0FDSUJRUWRySWdKQkFuUkJjSEVpQTBFd2F5QURJQUpCQzBzYlFROUJBQ0FCUVJKTEczSTJBZ1FMUVFFaEFpQWJJQVpCREdvUUJnMEJJQVlvQWd3aUFVRm1TQTBCSUFGQkdVb05BU0FGSUFFMkFnZ0NmeUFGUVpBQ2FpRURJQVVvQWdRaEMwRUFJUW9DUUFKQUFrQWdCU2dDQUVFSFNRUkFRUU1oQWdOQUlBSWhBU0FMUVFGeEJFQWdBeUFLUVFKMGFrRzREV29nR3lBRElBcEJCblJxUVRocUlBY2dDaUFERUExQkVCQUpJZ0pCRUhZMkFnQWdBa0VQY1EwRUlBTWdDa0VCZEdvZ0FrRUVka0gvQVhFN0FRQWdBeUFLUVFGeUlnVkJBblJxUWJnTmFpQWJJQU1nQlVFR2RHcEJPR29nQnlBRklBTVFEVUVRRUFraUFrRVFkallDQUNBQ1FROXhEUVFnQXlBRlFRRjBhaUFDUVFSMlFmOEJjVHNCQUNBRElBcEJBbklpQlVFQ2RHcEJ1QTFxSUJzZ0F5QUZRUVowYWtFNGFpQUhJQVVnQXhBTlFSQVFDU0lDUVJCMk5nSUFJQUpCRDNFTkJDQURJQVZCQVhScUlBSkJCSFpCL3dGeE93RUFJQU1nQ2tFRGNpSUZRUUowYWtHNERXb2dHeUFESUFWQkJuUnFRVGhxSUFjZ0JTQURFQTFCRUJBSklnSkJFSFkyQWdBZ0FrRVBjUTBFSUFNZ0JVRUJkR29nQWtFRWRrSC9BWEU3QVFBTElBdEJBWFloQ3lBQlFRRnJJUUlnQ2tFRWFpRUtJQUVOQUFzTUFRc2dHeUFEUWJnTWFpQUhRUUFnQXhBTlFSQVFDU0lDUVE5eERRRWdBeUFDUVFSMlFmOEJjVHNCTUVFRElRSURRQ0FDSVFFZ0MwRUJjUVJBSUFNZ0NrRUNkR3BCdUExcUlCc2dBeUFLUVFaMGFrRThhaUFISUFvZ0F4QU5RUThRQ1NJQ1FROTJOZ0lBSUFKQkQzRU5BeUFESUFwQkFYUnFJQUpCQkhaQi93RnhPd0VBSUFNZ0NrRUJjaUlGUVFKMGFrRzREV29nR3lBRElBVkJCblJxUVR4cUlBY2dCU0FERUExQkR4QUpJZ0pCRDNZMkFnQWdBa0VQY1EwRElBTWdCVUVCZEdvZ0FrRUVka0gvQVhFN0FRQWdBeUFLUVFKeUlnVkJBblJxUWJnTmFpQWJJQU1nQlVFR2RHcEJQR29nQnlBRklBTVFEVUVQRUFraUFrRVBkallDQUNBQ1FROXhEUU1nQXlBRlFRRjBhaUFDUVFSMlFmOEJjVHNCQUNBRElBcEJBM0lpQlVFQ2RHcEJ1QTFxSUJzZ0F5QUZRUVowYWtFOGFpQUhJQVVnQXhBTlFROFFDU0lDUVE5Mk5nSUFJQUpCRDNFTkF5QURJQVZCQVhScUlBSkJCSFpCL3dGeE93RUFDeUFMUVFGMklRc2dBVUVCYXlFQ0lBcEJCR29oQ2lBQkRRQUxDeUFMUVFOeEJFQWdHeUFEUWZnTWFrRi9RUVFRQ1NJQ1FROXhEUUVnQXlBQ1FRUjJRZjhCY1RzQk1pQWJJQU5CaUExcVFYOUJCQkFKSWdKQkQzRU5BU0FESUFKQkJIWkIvd0Z4T3dFMEMwRUFJUUlnQzBFQ2NVVU5BQ0FiSUFNZ0NrRUdkR3BCUEdvZ0J5QUtJQU1RRFVFUEVBa2lBVUVQY1FSQUlBRU1Bd3NnQXlBS1FRRjBhaUFCUVFSMlFmOEJjVHNCQUNBRElBcEJBblJxUWJnTmFpQUJRUTkyTmdJQUlCc2dBeUFLUVFGcUlnRkJCblJxUVR4cUlBY2dBU0FERUExQkR4QUpJZ0pCRDNGRkRRRUxJQUlNQVFzZ0F5QUJRUUYwYWlBQ1FRUjJRZjhCY1RzQkFDQURJQUZCQW5ScVFiZ05haUFDUVE5Mk5nSUFJQnNnQXlBS1FRSnFJZ0ZCQm5ScVFUeHFJQWNnQVNBREVBMUJEeEFKSWdKQkQzRUVRQ0FDREFFTElBTWdBVUVCZEdvZ0FrRUVka0gvQVhFN0FRQWdBeUFCUVFKMGFrRzREV29nQWtFUGRqWUNBQ0FiSUFNZ0NrRURhaUlCUVFaMGFrRThhaUFISUFFZ0F4QU5RUThRQ1NJQ1FROXhCRUFnQWd3QkN5QURJQUZCQVhScUlBSkJCSFpCL3dGeE93RUFJQU1nQVVFQ2RHcEJ1QTFxSUFKQkQzWTJBZ0FnR3lBRElBcEJCR29pQVVFR2RHcEJQR29nQnlBQklBTVFEVUVQRUFraUFrRVBjUVJBSUFJTUFRc2dBeUFCUVFGMGFpQUNRUVIyUWY4QmNUc0JBQ0FESUFGQkFuUnFRYmdOYWlBQ1FROTJOZ0lBSUJzZ0F5QUtRUVZxSWdGQkJuUnFRVHhxSUFjZ0FTQURFQTFCRHhBSklnSkJEM0VFUUNBQ0RBRUxJQU1nQVVFQmRHb2dBa0VFZGtIL0FYRTdBUUFnQXlBQlFRSjBha0c0RFdvZ0FrRVBkallDQUNBYklBTWdDa0VHYWlJQlFRWjBha0U4YWlBSElBRWdBeEFOUVE4UUNTSUNRUTl4QkVBZ0Fnd0JDeUFESUFGQkFYUnFJQUpCQkhaQi93RnhPd0VBSUFNZ0FVRUNkR3BCdUExcUlBSkJEM1kyQWdBZ0d5QURJQXBCQjJvaUFVRUdkR3BCUEdvZ0J5QUJJQU1RRFVFUEVBa2lBa0VQY1FSQUlBSU1BUXNnQXlBQlFRRjBhaUFDUVFSMlFmOEJjVHNCQUNBRElBRkJBblJxUWJnTmFpQUNRUTkyTmdJQVFRQUxJUUlnR3lBYktBSUlJQnNvQWdRZ0d5Z0NBR3RCQTNScU5nSVFJQUlOQVF0QkFDRUNDeUFHUVJCcUpBQWdBaUlHRFFJTEFuOGdJQ2dDRENnQ1FDRVRJQ05CRUdvaEFTQWdLQUs4Q1NBcGFpSUdJQTBvQWdBaUtqWUNBQ0FHSUFZb0FzUUJRUUZxTmdMRUFTQWRJQVFRSEFKQUFrQUNRQUpBSUNvRVFDQXFRUjlHQkVBZ0JrRUFOZ0lVSUFZb0FzUUJRUUpQQkVBZ0JrS1FnTUNBZ0lLQUNEY0JIQ0FHUXBDQXdJQ0Fnb0FJTndGRUlBWkNrSURBZ0lDQ2dBZzNBVHdnQmtLUWdNQ0FnSUtBQ0RjQk5DQUdRcENBd0lDQWdvQUlOd0VzSUFaQ2tJREFnSUNDZ0FnM0FTUkJBQXdIQ3lBR1FSeHFJUThnRFVISUFtb2hCVUVYSVFNZ0FTRUNBMEFnRDBFUU93RUFJQUlnQlNnQ0FEb0FBQ0FDSUFVb0FnUTZBQUVnQWlBRktBSUlPZ0FDSUFJZ0JTZ0NERG9BQXlBQ0lBVW9BaEE2QUFRZ0FpQUZLQUlVT2dBRklBSWdCU2dDR0RvQUJpQUNJQVVvQWh3NkFBY2dBaUFGS0FJZ09nQUlJQUlnQlNnQ0pEb0FDU0FDSUFVb0FpZzZBQW9nQWlBRktBSXNPZ0FMSUFJZ0JTZ0NNRG9BRENBQ0lBVW9BalE2QUEwZ0FpQUZLQUk0T2dBT0lBSWdCU2dDUERvQUR5QURJZ1pCQVdzaEF5QVBRUUpxSVE4Z0FrRVFhaUVDSUFWQlFHc2hCU0FHRFFBTElCMGdBUkFZREFRTElBWWdEU2tDa0FJM0Fod2dCaUFOS1FHK0FqY0JTaUFHSUEwcEFyZ0NOd0pFSUFZZ0RTa0NzQUkzQWp3Z0JpQU5LUUtvQWpjQ05DQUdJQTBwQXFBQ053SXNJQVlnRFNrQ21BSTNBaVFnSXlnQ0NDRUxBa0FnRFNnQ0NDSUNSUTBBSUNNZ0FpQUxhaUlMTmdJSUlDTWdDMEYvVEFSL0lBdEJOR29GSUF0Qk5FZ05BU0FMUVRSckN5SUxOZ0lJQ3lBR1FSeHFJUW9nQmlBTE5nSVVJQTFCeUE5cUlROGdEVUhJQW1vaEFnSkFBa0FnQmlnQ0FFRUdUUVJBSUFvdkFRQkZEUUZCQVNFRElBSWdDMEVBSUE4b0FnQVFCMFVOQWd3SEN5QUdMd0ZNQkVBQ1FDQU5RY2dPYWlJREtBSTRJZ1VnQXlnQ0pDSUhhaUlJSUFNb0Fqd2lEQ0FES0FJb0loRnFJZzVySVJBZ0J5QUZheUlGSUJFZ0RHc2lCMnNoRENBRklBZHFJUkVnQ0NBT2FpRU9JQU1vQWl3aUJTQURLQUlNSWdkcUlnZ2dBeWdDTkNJWklBTW9BaUFpRm1vaUZXc2hFaUFISUFWcklnVWdGaUFaYXlJSGF5RVpJQVVnQjJvaEZpQUlJQlZxSVJVZ0F5Z0NIQ0lGSUFNb0FnZ2lCMm9pQ0NBREtBSXdJaHdnQXlnQ0VDSWVhaUlrYXlFWElBY2dCV3NpQlNBZUlCeHJJZ2RySVJ3Z0JTQUhhaUVlSUFnZ0pHb2hKQ0FES0FJVUlnVWdBeWdDQUNJSGFpSUlJQU1vQWhnaUpTQURLQUlFSWhwcUlpRnJJU1lnQnlBRmF5SUZJQm9nSldzaUIyc2hKU0FGSUFkcUlSb2dDQ0FoYWlFaElBdEJrRHhxTFFBQUlRZ2dDMEdnUFdvdEFBQkJER3hCMER4cUtBSUFJUVVnQzBFTVR3UkFJQU1nQlNBSVFRSnJkQ0lGSUJVZ0lXb2lCeUFPSUNScUlnaHJiRFlDTUNBRElDRWdGV3NpQ3lBa0lBNXJJZzVySUFWc05nSWdJQU1nQ3lBT2FpQUZiRFlDRUNBRElBY2dDR29nQld3MkFnQWdBeUFXSUJwcUlnY2dFU0FlYWlJSWF5QUZiRFlDTkNBRElCb2dGbXNpQ3lBZUlCRnJJaEZySUFWc05nSWtJQU1nQ3lBUmFpQUZiRFlDRkNBRElBY2dDR29nQld3MkFnUWdBeUFaSUNWcUlnY2dEQ0FjYWlJSWF5QUZiRFlDT0NBRElDVWdHV3NpQ3lBY0lBeHJJZ3hySUFWc05nSW9JQU1nQ3lBTWFpQUZiRFlDR0NBRElBY2dDR29nQld3MkFnZ2dBeUFTSUNacUlnY2dFQ0FYYWlJSWF5QUZiRFlDUENBRElDWWdFbXNpQ3lBWElCQnJJaEJySUFWc05nSXNJQU1nQ3lBUWFpQUZiRFlDSENBRElBY2dDR29nQld3MkFnd01BUXNnQTBFQlFRSWdDMEVHYTBFR1NSc2lCeUFWSUNGcUlnc2dEaUFrYWlJdWF5QUZiR3BCQWlBSWF5SUlkVFlDTUNBRElDRWdGV3NpRlNBa0lBNXJJZzVySUFWc0lBZHFJQWgxTmdJZ0lBTWdEaUFWYWlBRmJDQUhhaUFJZFRZQ0VDQURJQXNnTG1vZ0JXd2dCMm9nQ0hVMkFnQWdBeUFXSUJwcUlnc2dFU0FlYWlJT2F5QUZiQ0FIYWlBSWRUWUNOQ0FESUJvZ0Ztc2lGaUFlSUJGckloRnJJQVZzSUFkcUlBaDFOZ0lrSUFNZ0VTQVdhaUFGYkNBSGFpQUlkVFlDRkNBRElBc2dEbW9nQld3Z0Iyb2dDSFUyQWdRZ0F5QVpJQ1ZxSWdzZ0RDQWNhaUlSYXlBRmJDQUhhaUFJZFRZQ09DQURJQ1VnR1dzaURpQWNJQXhySWd4cklBVnNJQWRxSUFoMU5nSW9JQU1nRENBT2FpQUZiQ0FIYWlBSWRUWUNHQ0FESUFzZ0VXb2dCV3dnQjJvZ0NIVTJBZ2dnQXlBU0lDWnFJZ3NnRUNBWGFpSU1heUFGYkNBSGFpQUlkVFlDUENBRElDWWdFbXNpRVNBWElCQnJJaEJySUFWc0lBZHFJQWgxTmdJc0lBTWdFQ0FSYWlBRmJDQUhhaUFJZFRZQ0hDQURJQXNnREdvZ0JXd2dCMm9nQ0hVMkFnd0xDMEd3TkNFTFFROGhBd05BSUFNaEJTQUNJQTBnQ3lnQ0FFRUNkR3BCeUE1cUtBSUFJZ00yQWdBQ1FBSkFJQU5GQkVBZ0NpOEJBRVVOQVF0QkFTRURJQUlnQmlnQ0ZFRUJJQThvQWdBUUIwVU5BUXdKQ3lBQ1FmLy8vd2MyQWdBTElBdEJCR29oQ3lBRlFRRnJJUU1nRDBFRWFpRVBJQXBCQW1vaENpQUNRVUJySVFJZ0JRMEFDd3dEQ3lBQ1FmLy8vd2MyQWdBTElBMUJpQU5xSVFJQ1FDQUdMd0VlQkVCQkFTRURJQUlnQmlnQ0ZFRUFJQTFCekE5cUtBSUFFQWRGRFFFTUJnc2dBa0gvLy84SE5nSUFDeUFOUWNnRGFpRUNBa0FnQmk4QklBUkFRUUVoQXlBQ0lBWW9BaFJCQUNBTlFkQVBhaWdDQUJBSFJRMEJEQVlMSUFKQi8vLy9CellDQUFzZ0RVR0lCR29oQWdKQUlBWXZBU0lFUUVFQklRTWdBaUFHS0FJVVFRQWdEVUhVRDJvb0FnQVFCMFVOQVF3R0N5QUNRZi8vL3djMkFnQUxJQTFCeUFScUlRSUNRQ0FHTHdFa0JFQkJBU0VESUFJZ0JpZ0NGRUVBSUExQjJBOXFLQUlBRUFkRkRRRU1CZ3NnQWtILy8vOEhOZ0lBQ3lBTlFZZ0ZhaUVDQWtBZ0JpOEJKZ1JBUVFFaEF5QUNJQVlvQWhSQkFDQU5RZHdQYWlnQ0FCQUhSUTBCREFZTElBSkIvLy8vQnpZQ0FBc2dEVUhJQldvaEFnSkFJQVl2QVNnRVFFRUJJUU1nQWlBR0tBSVVRUUFnRFVIZ0Qyb29BZ0FRQjBVTkFRd0dDeUFDUWYvLy93YzJBZ0FMSUExQmlBWnFJUUlDUUNBR0x3RXFCRUJCQVNFRElBSWdCaWdDRkVFQUlBMUI1QTlxS0FJQUVBZEZEUUVNQmdzZ0FrSC8vLzhITmdJQUN5QU5RY2dHYWlFQ0FrQWdCaThCTEFSQVFRRWhBeUFDSUFZb0FoUkJBQ0FOUWVnUGFpZ0NBQkFIUlEwQkRBWUxJQUpCLy8vL0J6WUNBQXNnRFVHSUIyb2hBZ0pBSUFZdkFTNEVRRUVCSVFNZ0FpQUdLQUlVUVFBZ0RVSHNEMm9vQWdBUUIwVU5BUXdHQ3lBQ1FmLy8vd2MyQWdBTElBMUJ5QWRxSVFJQ1FDQUdMd0V3QkVCQkFTRURJQUlnQmlnQ0ZFRUFJQTFCOEE5cUtBSUFFQWRGRFFFTUJnc2dBa0gvLy84SE5nSUFDeUFOUVlnSWFpRUNBa0FnQmk4Qk1nUkFRUUVoQXlBQ0lBWW9BaFJCQUNBTlFmUVBhaWdDQUJBSFJRMEJEQVlMSUFKQi8vLy9CellDQUFzZ0RVSElDR29oQWdKQUlBWXZBVFFFUUVFQklRTWdBaUFHS0FJVVFRQWdEVUg0RDJvb0FnQVFCMFVOQVF3R0N5QUNRZi8vL3djMkFnQUxJQTFCaUFscUlRSUNRQ0FHTHdFMkJFQkJBU0VESUFJZ0JpZ0NGRUVBSUExQi9BOXFLQUlBRUFkRkRRRU1CZ3NnQWtILy8vOEhOZ0lBQ3lBTlFjZ0phaUVDQWtBZ0JpOEJPQVJBUVFFaEF5QUNJQVlvQWhSQkFDQU5RWUFRYWlnQ0FCQUhSUTBCREFZTElBSkIvLy8vQnpZQ0FBc2dEVUdJQ21vaEFnSkFJQVl2QVRvRVFFRUJJUU1nQWlBR0tBSVVRUUFnRFVHRUVHb29BZ0FRQjBVTkFRd0dDeUFDUWYvLy93YzJBZ0FMSUExQmlCQnFJUThnRFVISUNtb2hBZ3dCQ3lBR1FnQTNBaHdnQmtJQU53RktJQVpDQURjQ1JDQUdRZ0EzQWp3Z0JrSUFOd0kwSUFaQ0FEY0NMQ0FHUWdBM0FpUWdCaUFqS0FJSU5nSVVEQUVMSUFZb0FoZ2dCaWdDRkdvaUEwRXpJQU5CTTBnYklnTkJBQ0FEUVFCS0cwRUNkRUhnUFdvb0FnQWhCUUpBSUFZdkFVNUZCRUFnQmk4QlVFVU5BUXNnQlVHZ1BXb3RBQUJCREd4QjBEeHFLQUlBSVF0QkFTRUtJQTFCaUE5cUlnTUNmeUFGUVFaUEJFQkJBQ0VLSUFzZ0JVR1FQR290QUFCQkFXdDBJUXNMSUFNb0FnQWlCeUFES0FJSUlnaHJJaEFnQXlnQ0JDSU1JQU1vQWd3aUVXc2lEbXNnQzJ3Z0NuVUxOZ0lNSUFNZ0RpQVFhaUFMYkNBS2RUWUNDQ0FESUFjZ0NHb2lCeUFNSUJGcUlnaHJJQXRzSUFwMU5nSUVJQU1nQnlBSWFpQUxiQ0FLZFRZQ0FDQURJQU1vQWh3aUJ5QURLQUlVSWdocUloQWdBeWdDR0NJTUlBTW9BaEFpRVdvaURtb2dDMndnQ25VMkFoQWdBeUFJSUFkcklnY2dFU0FNYXlJSWFpQUxiQ0FLZFRZQ0dDQURJQTRnRUdzZ0Myd2dDblUyQWhRZ0F5QUlJQWRySUF0c0lBcDFOZ0ljQ3lBQ0lBMUJpQTlxS0FJQUlnTTJBZ0FDUUFKQUlBTkZCRUFnQmk4QlBFVU5BUXRCQVNFRElBSWdCVUVCSUE4b0FnQVFCMFVOQVF3RUN5QUNRZi8vL3djMkFnQUxJQUlnRFNnQ2pBOGlBellDUUNBQ1FVQnJJUWNDUUFKQUlBTkZCRUFnQmk4QlBrVU5BUXRCQVNFRElBY2dCVUVCSUE4b0FnUVFCMFVOQVF3RUN5QUhRZi8vL3djMkFnQUxJQUlnRFNnQ2tBOGlBellDZ0FFZ0FrR0FBV29oQndKQUFrQWdBMFVFUUNBR1FVQnJMd0VBUlEwQkMwRUJJUU1nQnlBRlFRRWdEeWdDQ0JBSFJRMEJEQVFMSUFkQi8vLy9CellDQUFzZ0FpQU5LQUtVRHlJRE5nTEFBU0FDUWNBQmFpRUhBa0FDUUNBRFJRUkFJQVl2QVVKRkRRRUxRUUVoQXlBSElBVkJBU0FQS0FJTUVBZEZEUUVNQkFzZ0IwSC8vLzhITmdJQUN5QUNJQTBvQXBnUElnTTJBb0FDSUFKQmdBSnFJUWNDUUFKQUlBTkZCRUFnQmk4QlJFVU5BUXRCQVNFRElBY2dCVUVCSUE4b0FoQVFCMFVOQVF3RUN5QUhRZi8vL3djMkFnQUxJQUlnRFNnQ25BOGlBellDd0FJZ0FrSEFBbW9oQndKQUFrQWdBMFVFUUNBR0x3RkdSUTBCQzBFQklRTWdCeUFGUVFFZ0R5Z0NGQkFIUlEwQkRBUUxJQWRCLy8vL0J6WUNBQXNnQWlBTktBS2dEeUlETmdLQUF5QUNRWUFEYWlFSEFrQUNRQ0FEUlFSQUlBWXZBVWhGRFFFTFFRRWhBeUFISUFWQkFTQVBLQUlZRUFkRkRRRU1CQXNnQjBILy8vOEhOZ0lBQ3lBQ0lBMG9BcVFQSWdNMkFzQURJQUpCd0FOcUlRSUNRQUpBSUFORkJFQWdCaThCU2tVTkFRdEJBU0VESUFJZ0JVRUJJQThvQWh3UUIwVU5BUXdFQ3lBQ1FmLy8vd2MyQWdBTElDcEJCa2tOQUNBQklReEJBQ0VIUVFBaEhpTUFRZEFBYXlJUkpBQWdFVUVnYWlFSUlCRWhBd0pBSUFSRkRRQWdIU2dDQUNBRUlCMG9BZ1FpQlc0aUR5QUZiQ0lCUVFoMGFpQUVJQUZySWd0QkJIUnFJUW9nQlVFRWRDRUNJQjBvQWdnaEVDQUVJQVZKSWc1RkJFQWdDQ0FLSUFKQmYzTnFJZ0V0QUFBNkFBQWdDQ0FLSUFKckxRQUFPZ0FCSUFnZ0FTMEFBam9BQWlBSUlBRXRBQU02QUFNZ0NDQUJMUUFFT2dBRUlBZ2dBUzBBQlRvQUJTQUlJQUV0QUFZNkFBWWdDQ0FCTFFBSE9nQUhJQWdnQVMwQUNEb0FDQ0FJSUFFdEFBazZBQWtnQ0NBQkxRQUtPZ0FLSUFnZ0FTMEFDem9BQ3lBSUlBRXRBQXc2QUF3Z0NDQUJMUUFOT2dBTklBZ2dBUzBBRGpvQURpQUlJQUV0QUE4NkFBOGdDQ0FCTFFBUU9nQVFJQWdnQVMwQUVUb0FFU0FJSUFFdEFCSTZBQklnQ0NBQkxRQVRPZ0FUSUFnZ0FTMEFGRG9BRkNBSVFSVnFJUWdMSUFzRVFDQURJQXBCQVdzaUFTMEFBRG9BQUNBRElBRWdBbW9pQVMwQUFEb0FBU0FESUFFZ0Ftb2lBUzBBQURvQUFpQURJQUVnQW1vaUFTMEFBRG9BQXlBRElBRWdBbW9pQVMwQUFEb0FCQ0FESUFFZ0Ftb2lBUzBBQURvQUJTQURJQUVnQW1vaUFTMEFBRG9BQmlBRElBRWdBbW9pQVMwQUFEb0FCeUFESUFFZ0Ftb2lBUzBBQURvQUNDQURJQUVnQW1vaUFTMEFBRG9BQ1NBRElBRWdBbW9pQVMwQUFEb0FDaUFESUFFZ0Ftb2lBUzBBQURvQUN5QURJQUVnQW1vaUFTMEFBRG9BRENBRElBRWdBbW9pQVMwQUFEb0FEU0FESUFFZ0Ftb2lBUzBBQURvQURpQURJQUVnQW1vdEFBQTZBQThnQTBFUWFpRURDeUFkS0FJQUlBVWdFR3dpRUVFSWRHb2dEeUFGUVFOMElnRnNRUU4wYWlBTFFRTjBhaUVLSUFGQitQLy8vd2R4SVFFZ0RrVUVRQ0FJSUFvZ0FVRi9jMm9pQWkwQUFEb0FBQ0FJSUFvZ0FXc3RBQUE2QUFFZ0NDQUNMUUFDT2dBQ0lBZ2dBaTBBQXpvQUF5QUlJQUl0QUFRNkFBUWdDQ0FDTFFBRk9nQUZJQWdnQWkwQUJqb0FCaUFJSUFJdEFBYzZBQWNnQ0NBQ1FRaHFJZ0l0QUFBNkFBZ2dDQ0FRUVFaMElBSnFJZ0pCQ0dzdEFBQTZBQWtnQ0NBQ1FRZHJMUUFBT2dBS0lBZ2dBa0VHYXkwQUFEb0FDeUFJSUFKQkJXc3RBQUE2QUF3Z0NDQUNRUVJyTFFBQU9nQU5JQWdnQWtFRGF5MEFBRG9BRGlBSUlBSkJBbXN0QUFBNkFBOGdDQ0FDUVFGckxRQUFPZ0FRSUFnZ0FpMEFBRG9BRVFzZ0MwVU5BQ0FESUFwQkFXc2lBaTBBQURvQUFDQURJQUVnQW1vaUFpMEFBRG9BQVNBRElBRWdBbW9pQWkwQUFEb0FBaUFESUFFZ0Ftb2lBaTBBQURvQUF5QURJQUVnQW1vaUFpMEFBRG9BQkNBRElBRWdBbW9pQWkwQUFEb0FCU0FESUFFZ0Ftb2lBaTBBQURvQUJpQURJQUVnQW1vaUFpMEFBRG9BQnlBRElBRWdBbW9nRUNBRmEwRUdkR29pQWkwQUFEb0FDQ0FESUFFZ0Ftb2lBaTBBQURvQUNTQURJQUVnQW1vaUFpMEFBRG9BQ2lBRElBRWdBbW9pQWkwQUFEb0FDeUFESUFFZ0Ftb2lBaTBBQURvQURDQURJQUVnQW1vaUFpMEFBRG9BRFNBRElBRWdBbW9pQWkwQUFEb0FEaUFESUFFZ0Ftb3RBQUE2QUE4TEFrQUNRRUVDSUFZb0FnQWlBVUVHUnlBQlFRWkpHMEVCUmdSQUFuOGdEQ0VESUExQnlBSnFJUWdDZnlBR0tBTElBU0lCQkVBZ0JpZ0NCQ0FCS0FJRVJnd0JDMEVBQ3lFTEFrQWdFMFVOQUNBTFJRMEFRUUFnQzBFQ0lBWW9Bc2dCS0FJQUlnRkJCa2NnQVVFR1NSdEJBa1liSVFzTEFuOGdCaWdDekFFaUFRUkFJQVlvQWdRZ0FTZ0NCRVlNQVF0QkFBc2hCUUpBSUJORkRRQWdCVVVOQUVFQUlBVkJBaUFHS0FMTUFTZ0NBQ0lCUVFaSElBRkJCa2tiUVFKR0d5RUZDd0ovSUFZb0F0UUJJZ0VFUUNBR0tBSUVJQUVvQWdSR0RBRUxRUUFMSVFJQ1FDQVRSUTBBSUFKRkRRQkJBaUFHS0FMVUFTZ0NBQ0lCUVFaSElBRkJCa2tiUVFKSElRSUxBa0FDUUFKQUFrQUNRQUpBSUFZb0FnQkJBV3BCQTNFT0F3QUJBZ01MUVFFZ0JVVU5CUnBCQVNFSElBTWhBUU5BSUFFZ0VTMEFJVG9BQUNBQklCRXRBQ0k2QUFFZ0FTQVJMUUFqT2dBQ0lBRWdFUzBBSkRvQUF5QUJJQkV0QUNVNkFBUWdBU0FSTFFBbU9nQUZJQUVnRVMwQUp6b0FCaUFCSUJFdEFDZzZBQWNnQVNBUkxRQXBPZ0FJSUFFZ0VTMEFLam9BQ1NBQklCRXRBQ3M2QUFvZ0FTQVJMUUFzT2dBTElBRWdFUzBBTFRvQURDQUJJQkV0QUM0NkFBMGdBU0FSTFFBdk9nQU9JQUVnRVMwQU1Eb0FEeUFIUVJCR0RRUWdBVUVRYWlFQklBZEJBV29oQnd3QUN3QUxRUUVnQzBVTkJCb2dBeUVCQTBBZ0FTQUhJQkZxSWdJdEFBQTZBQUFnQVNBQ0xRQUFPZ0FCSUFFZ0FpMEFBRG9BQWlBQklBSXRBQUE2QUFNZ0FTQUNMUUFBT2dBRUlBRWdBaTBBQURvQUJTQUJJQUl0QUFBNkFBWWdBU0FDTFFBQU9nQUhJQUVnQWkwQUFEb0FDQ0FCSUFJdEFBQTZBQWtnQVNBQ0xRQUFPZ0FLSUFFZ0FpMEFBRG9BQ3lBQklBSXRBQUE2QUF3Z0FTQUNMUUFBT2dBTklBRWdBaTBBQURvQURpQUJJQUl0QUFBNkFBOGdBVUVRYWlFQklBZEJBV29pQjBFUVJ3MEFDd3dDQ3lBREFuOENRQ0FMUlEwQUlBVkZEUUFnRVMwQUR5QVJMUUF3SUJFdEFBNGdFUzBBTHlBUkxRQU5JQkV0QUM0Z0VTMEFEQ0FSTFFBdElCRXRBQXNnRVMwQUxDQVJMUUFLSUJFdEFDc2dFUzBBQ1NBUkxRQXFJQkV0QUFnZ0VTMEFLU0FSTFFBSElCRXRBQ2dnRVMwQUJpQVJMUUFuSUJFdEFBVWdFUzBBSmlBUkxRQUVJQkV0QUNVZ0VTMEFBeUFSTFFBa0lCRXRBQUlnRVMwQUl5QVJMUUFCSUJFdEFDSWdFUzBBSVNBUkxRQUFhbXBxYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYWtFUWFrRUZkZ3dCQ3lBTEJFQWdFUzBBRHlBUkxRQU9JQkV0QUEwZ0VTMEFEQ0FSTFFBTElCRXRBQW9nRVMwQUNTQVJMUUFJSUJFdEFBY2dFUzBBQmlBUkxRQUZJQkV0QUFRZ0VTMEFBeUFSTFFBQ0lCRXRBQUFnRVMwQUFXcHFhbXBxYW1wcWFtcHFhbXBxYWtFSWFrRUVkZ3dCQzBHQUFTQUZSUTBBR2lBUkxRQXdJQkV0QUM4Z0VTMEFMaUFSTFFBdElCRXRBQ3dnRVMwQUt5QVJMUUFxSUJFdEFDa2dFUzBBS0NBUkxRQW5JQkV0QUNZZ0VTMEFKU0FSTFFBa0lCRXRBQ01nRVMwQUlTQVJMUUFpYW1wcWFtcHFhbXBxYW1wcWFtcHFRUWhxUVFSMkMwR0FBaEFFR2d3QkMwRUJJUUVnQzBVTkFTQUZSUTBCSUFKRkRRRWdFUzBBQ0NBUkxRQUdheUFSTFFBUElnRWdFUzBBSUNJQ2EwRURkR29nRVMwQUNTQVJMUUFGYTBFQmRHb2dFUzBBQ2lBUkxRQUVhMEVEYkdvZ0VTMEFDeUFSTFFBRGEwRUNkR29nRVMwQURDQVJMUUFDYTBFRmJHb2dFUzBBRFNBUkxRQUJhMEVHYkdvZ0VTMEFEaUFSTFFBQWEwRUhiR3BCQld4QklHcEJCblVoQ3lBUkxRQXBJQkV0QUNkcklCRXRBQ29nRVMwQUptdEJBWFJxSUJFdEFDc2dFUzBBSld0QkEyeHFJQkV0QUN3Z0VTMEFKR3RCQW5ScUlCRXRBQzBnRVMwQUkydEJCV3hxSUJFdEFDNGdFUzBBSW10QkJteHFJQkV0QUM4Z0VTMEFJV3RCQjJ4cUlCRXRBREFpQ2lBQ2EwRURkR3BCQld4QklHcEJCblVpQlVFRGRDRVFJQVZCQjJ3aER5QUZRUVpzSVE0Z0JVRUZiQ0VTSUFWQkEyd2hHU0FGUVgxc0lSWWdCVUY3YkNFVklBVkJlbXdoRnlBRlFYbHNJUnhCQUNBRlFRRjBJaDVySVNSQkFDQUZRUUowSWlacklTVWdBU0FLYWtFRWRFRVFhaUVLQTBBZ0F5QUhRUVIwSWdGcUlBb2dCMEVIYXlBTGJHb2lBaUFjYWtFRmRTSWFRZjhCSUJwQi93RklHeUlhUVFBZ0drRUFTaHM2QUFBZ0F5QUJRUUZ5YWlBQ0lCZHFRUVYxSWhwQi93RWdHa0gvQVVnYklocEJBQ0FhUVFCS0d6b0FBQ0FESUFGQkFuSnFJQUlnRldwQkJYVWlHa0gvQVNBYVFmOEJTQnNpR2tFQUlCcEJBRW9iT2dBQUlBTWdBVUVEY21vZ0FpQWxha0VGZFNJYVFmOEJJQnBCL3dGSUd5SWFRUUFnR2tFQVNoczZBQUFnQXlBQlFRUnlhaUFDSUJacVFRVjFJaHBCL3dFZ0drSC9BVWdiSWhwQkFDQWFRUUJLR3pvQUFDQURJQUZCQlhKcUlBSWdKR3BCQlhVaUdrSC9BU0FhUWY4QlNCc2lHa0VBSUJwQkFFb2JPZ0FBSUFNZ0FVRUdjbW9nQWlBRmEwRUZkU0lhUWY4QklCcEIvd0ZJR3lJYVFRQWdHa0VBU2hzNkFBQWdBeUFCUVFkeWFpQUNRUVYxSWhwQi93RWdHa0gvQVVnYklocEJBQ0FhUVFCS0d6b0FBQ0FESUFGQkNISnFJQUlnQldwQkJYVWlHa0gvQVNBYVFmOEJTQnNpR2tFQUlCcEJBRW9iT2dBQUlBTWdBVUVKY21vZ0FpQWVha0VGZFNJYVFmOEJJQnBCL3dGSUd5SWFRUUFnR2tFQVNoczZBQUFnQXlBQlFRcHlhaUFDSUJscVFRVjFJaHBCL3dFZ0drSC9BVWdiSWhwQkFDQWFRUUJLR3pvQUFDQURJQUZCQzNKcUlBSWdKbXBCQlhVaUdrSC9BU0FhUWY4QlNCc2lHa0VBSUJwQkFFb2JPZ0FBSUFNZ0FVRU1jbW9nQWlBU2FrRUZkU0lhUWY4QklCcEIvd0ZJR3lJYVFRQWdHa0VBU2hzNkFBQWdBeUFCUVExeWFpQUNJQTVxUVFWMUlocEIvd0VnR2tIL0FVZ2JJaHBCQUNBYVFRQktHem9BQUNBRElBRkJEbkpxSUFJZ0QycEJCWFVpR2tIL0FTQWFRZjhCU0JzaUdrRUFJQnBCQUVvYk9nQUFJQU1nQVVFUGNtb2dBaUFRYWtFRmRTSUJRZjhCSUFGQi93RklHeUlCUVFBZ0FVRUFTaHM2QUFBZ0IwRUJhaUlIUVJCSERRQUxDMEVBSVFFZ0F5QUlRUUFRRGlBRElBaEJRR3RCQVJBT0lBTWdDRUdBQVdwQkFoQU9JQU1nQ0VIQUFXcEJBeEFPSUFNZ0NFR0FBbXBCQkJBT0lBTWdDRUhBQW1wQkJSQU9JQU1nQ0VHQUEycEJCaEFPSUFNZ0NFSEFBMnBCQnhBT0lBTWdDRUdBQkdwQkNCQU9JQU1nQ0VIQUJHcEJDUkFPSUFNZ0NFR0FCV3BCQ2hBT0lBTWdDRUhBQldwQkN4QU9JQU1nQ0VHQUJtcEJEQkFPSUFNZ0NFSEFCbXBCRFJBT0lBTWdDRUdBQjJwQkRoQU9JQU1nQ0VIQUIycEJEeEFPQ3lBQkN5SUJSUTBCREFJTEFuOGdFVUVnYWlFaEFuOERRQUovSUFZZ0hrRURkRUd3TldvcEFnQWlTS2NRRVNJQklnSUVRQ0FHS0FJRUlBSW9BZ1JHREFFTFFRQUxJUWNDUUNBVFJRMEFJQWRGRFFCQkFDQUhRUUlnQVNnQ0FDSUNRUVpISUFKQkJra2JRUUpHR3lFSEN3Si9JQVlnSGtFRGRFSHdObW9wQWdBaVNhY1FFU0lDSWdNRVFDQUdLQUlFSUFNb0FnUkdEQUVMUVFBTElSSUNRQ0FUUlEwQUlCSkZEUUJCQUNBU1FRSWdBaWdDQUNJRFFRWkhJQU5CQmtrYlFRSkdHeUVTQzBFQ0lROGdCMEVBUnlBU1FRQkhjU0ltQkVCQkFpRUZBbjlCQWlBQktBSUFJZ05CQmtjZ0EwRUdTUnRGQkVBZ0FTQklRaUNJcDBIL0FYRnFMUUJTSVE4TElBOExBbjlCQWlBQ0tBSUFJZ0ZCQmtjZ0FVRUdTUnRGQkVBZ0FpQkpRaUNJcDBIL0FYRnFMUUJTSVFVTElBVUxJQVVnRDBzYklROExJQTBnSGtFQ2RDSUJhaUlDS0FJTVJRUkFJQUlvQWt3aUFpQUNJQTlQYWlFUEN5QUdJQjVxSUE4NkFGSUNmeUFHSUI1QkEzUkJzRGhxS0FJQUVCRWlBaUlEQkVBZ0JpZ0NCQ0FES0FJRVJnd0JDMEVBQ3lFV0FrQWdFMFVOQUNBV1JRMEFRUUFnRmtFQ0lBSW9BZ0FpQWtFR1J5QUNRUVpKRzBFQ1Joc2hGZ3NDZnlBR0lCNUJBM1JCOERscUtBSUFFQkVpQWlJREJFQWdCaWdDQkNBREtBSUVSZ3dCQzBFQUN5RVFBa0FnRTBVTkFDQVFSUTBBUVFBZ0VFRUNJQUlvQWdBaUFrRUdSeUFDUVFaSkcwRUNSaHNoRUFzZ0FVSHdLV29vQWdBaEpDQUJRYkFwYWlnQ0FDRWxBbjlCaFFvZ0huWkJBWEVpS2dSQUlDUkJBMm9oR1NBUklDUnFJZ0pCQW1vaEJTQUNRUUZxSVFnZ0VRd0JDeUFrUVFSMElDVnFJZ0ZCTDJvaEdTQUJJQXhxSWdGQkgyb2hCU0FCUVE5cUlRZ2dBVUVCYXlFQ0lBd0xJUUVnQVNBWmFpMEFBQ0VLSUFVdEFBQWhGU0FJTFFBQUlSY2dBaTBBQUNFY0FrQkJNeUFlZGtFQmNRUkFJQ0VnSldvaUdTMEFDQ0VESUJrdEFBY2hDeUFaTFFBR0lRNGdHUzBBQlNFYUlCa3RBQVFoQlNBWkxRQURJUWdnR1MwQUFpRUJJQmt0QUFFaEFnd0JDeUFNSUNSQkFXc2lMa0VFZENBbGFtb2lHUzBBQUNFQ0lCa3RBQWNoQXlBWkxRQUdJUXNnR1MwQUJTRU9JQmt0QUFRaEdpQVpMUUFESVFVZ0dTMEFBaUVJSUJrdEFBRWhBU0FxQkVBZ0VTQXVhaUVaREFFTElCbEJBV3NoR1FzZ0dTMEFBQ0VaQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBZ0R3NElBQUVDQXdRRkJnY0lDMEVCSUJKRkRRc2FJQUpCL3dGeElBRkIvd0Z4UVFoMGNpQUlRZjhCY1VFUWRISWdCVUVZZEhJaEZpQUNJZzhoRWlBQkloQWhEaUFJSWdNaENpQUZJZ2NoQ3d3SUMwRUJJQWRGRFFvYUlBcEJnWUtFQ0d3aEZpQVZRWUdDaEFoc0loSkJHSFloQ3lBU1FSQjJJUW9nRWtFSWRpRU9JQmRCZ1lLRUNHd2lEMEVZZGlFSElBOUJFSFloQXlBUFFRaDJJUkFnSEVHQmdvUUliQ0lDUVJoMklRVWdBa0VRZGlFSUlBSkJDSFloQVF3SEN3Si9JQmNnSEdvZ0Ntb2dGV29nQlVIL0FYRnFJQWhCL3dGeGFpQUJRZjhCY1dvZ0FrSC9BWEZxUVFScVFmai9BM0ZCQTNZZ0pnMEFHaUFYSUJ4cUlBcHFJQlZxUVFKcVFRSjJJQWNOQUJwQmdBRWdFa1VOQUJvZ0JVSC9BWEVnQ0VIL0FYRnFJQUZCL3dGeGFpQUNRZjhCY1dwQkFtcEJBbllMSWdKQi93RnhRWUdDaEFoc0lSWWdBaUlCSWdnaUJTSVBJaEFpQXlJSEloSWlEaUlLSVFzTUJndEJBU0FTUlEwSUdpQVdSUVJBSUFVaUF5SUxJZzRoR2dzZ0RrSC9BWEVpQnlBRFFmOEJjU0lLYWlBTFFmOEJjU0lMUVFGMGFrRUNhaUlRUVE1MFFZQ0EvQWR4SUFWQi93RnhJZzVCQW1vaUR5QUhhaUFhUWY4QmNTSURRUUYwYWtFQ2RpSUZJQXRCQW1vaUN5QURhaUFIUVFGMGFrRUNkaUlIUVFoMGNrSC8vd054Y2lBTElBcEJBMnhxUVJaMFFZQ0FnSGh4Y2lFV0lCQkJBblloQ3lBSVFmOEJjU0lJUVFKcUlnb2dBa0gvQVhGcUlBRkIvd0Z4SWdGQkFYUnFRUUoySVFJZ0FTQVBhaUFJUVFGMGFrRUNkaUlCSVE4Z0NpQU9RUUYwYWlBRGFrRUNkaUlJSVJBZ0NDRVNJQVVpQXlFT0lBY2hDZ3dGQzBFQklDWkZJQkJGY2cwR0dpQWNJQmRCQVhScUlCVnFRUUpxSWdOQkJuUkJnUDREY1NBQ1FmOEJjU0lIUVFKcUlnc2dIR29nR1VFQmRHcEJBbllpQWtFWWRDQVhRUUpxSWhBZ0hFRUJkR29nR1dwQkFuWWlEMEVRZEhKeUlBb2dFR29nRlVFQmRHcEJBblp5SVJZZ0FVSC9BWEVpQ2tFQ2FpSUJJQVZCL3dGeGFpQUlRZjhCY1NJSVFRRjBha0VDZGlFRklBTkJBblloRWlBQklBZEJBWFJxSUJscVFRSjJJZ0VoQXlBS1FRRjBJQWhxSUF0cVFRSjJJZ2doQnlBUElRNGdBaUlRSVFvZ0FTRUxEQVFMUVFFZ0prVWdFRVZ5RFFVYUlBRkIvd0Z4SWd0QkFtb2lCeUFDUWY4QmNTSUJRUUYwYWlBWmFrRUNkaUlRUVJCMElBRkJBbW9pQWlBY2FpQVpRUUYwYWlJS1FRWjBRWUQrQTNGeUlBSWdDRUgvQVhFaUFpQUxRUUYwYW1wQkFuWWlBMEVZZEhJZ0hDQVhRUUYwYWlBVmFrRUNha0VDZG5JaEZpQUNRUUZxSWdnZ0JVSC9BWEVpRDJwQkFYWWhCU0FYSUJ4QkFYUnFJQmxxUVFKcVFRSjJJUklnQnlBUGFpQUNRUUYwYWtFQ2RpRUhJQXBCQW5ZaER5QUJJQmxxUVFGcVFRRjJJZ0loRGlBQklBdHFRUUZxUVFGMklnRWhDaUFJSUF0cVFRRjJJZ2doQ3d3REMwRUJJQ1pGSUJCRmNnMEVHaUFYUVFKcUlnc2dDbW9nRlVFQmRHcEJCblJCZ1A0RGNTQWNRUUpxSWhBZ0YwRUJkR29nRldwQkFuWWlEa0VZZENBVklCZHFRUUZxUVFGMkloSkJFSFJ5Y2lBS0lCVnFRUUZxUVFGMmNpRVdJQUpCL3dGeElnY2dDRUgvQVhGcUlBRkIvd0Z4SWdGQkFYUnFRUUpxUVFKMklRVWdBU0FIUVFGMGFpQVpha0VDYWtFQ2RpRUlJQnhCQVdvaUNpQVpha0VCZGlJRElRSWdCeUFRYWlBWlFRRjBha0VDZGlJSElRRWdDaUFYYWtFQmRpSVBJUW9nQ3lBY1FRRjBhaUFaYWtFQ2RpSVFJUXNNQWd0QkFTQVNSUTBFR2lBRlFmOEJjU0laUVFKcUlnTWdEaUFGSUJZYlFmOEJjU0lIYWlBYUlBVWdGaHRCL3dGeElncEJBWFJxSWc5QkRuUkJnSUQ4QjNFZ0F5QUJRZjhCY1NJQmFpQUlRZjhCY1NJSVFRRjBha0VDZGlJUUlBaEJBbW9pRGlBS2FpQVpRUUYwYWtFQ2RpSURRUWgwY2tILy93TnhjaUFLSUFzZ0JTQVdHMEgvQVhGcUlBZEJBWFJxUVJaMFFZQ0FnQVJxUVlDQWdIaHhjaUVXSUFjZ0NtcEJBV3BCQVhZaEN5QVBRUUoySVFjZ0FTQUNRZjhCY1NJRmFrRUJha0VCZGlFQ0lBVWdEbW9nQVVFQmRHcEJBblloRHlBQklBaHFRUUZxUVFGMklnRWhFaUFaUVFGcUlnVWdDR3BCQVhZaUNDRU9JQVVnQ21wQkFYWWlCU0VLREFFTFFRRWdCMFVOQXhvZ0NrRUlkQ0FLY2lBS1FSQjBjaUFLUVJoMGNpRVdJQlZCQW1vaUJ5QWNhaUFYUVFGMGFrRUNkaUVCSUJkQkFXb2lBeUFjYWtFQmRpRUNJQU1nRldwQkFYWWlDQ0VQSUFvZ0Yyb2dGVUVCZEdwQkFtcEJBbllpQlNFUUlBb2dGV3BCQVdwQkFYWWlBeUVTSUFjZ0NrRURiR3BCQW5ZaUJ5RU9JQW9oQ3dzZ0RDQWtRUVIwSUNWcWFpSVpJQlkyQWpBZ0dTQVNRZjhCY1NBTFFSaDBJQXBCL3dGeFFSQjBjaUFPUWY4QmNVRUlkSEp5TmdJZ0lCa2dEMEgvQVhFZ0IwRVlkQ0FEUWY4QmNVRVFkSElnRUVIL0FYRkJDSFJ5Y2pZQ0VDQVpJQUpCL3dGeElBVkJHSFFnQ0VIL0FYRkJFSFJ5SUFGQi93RnhRUWgwY25JMkFnQWdEQ0FOSUI1QkJuUnFRY2dDYWlBZUVBNGdIa0VCYWlJZVFSQkhEUUFMUVFBTEN5SUJEUUVMUVFFaEFRSi9JQXhCZ0FKcUlRSWdEVUhJQ21vaENDQVJRVFZxSVFjZ0VVRVFhaUVGSUEwb0Fvd0JJUlpCQUNFUEFuOGdCaWdDeUFFaUF3UkFJQVlvQWdRZ0F5Z0NCRVlNQVF0QkFBc2hHUUpBSUJORkRRQWdHVVVOQUVFQUlCbEJBaUFHS0FMSUFTZ0NBQ0lEUVFaSElBTkJCa2tiUVFKR0d5RVpDd0ovSUFZb0Fzd0JJZ01FUUNBR0tBSUVJQU1vQWdSR0RBRUxRUUFMSVJBQ1FDQVRSUTBBSUJCRkRRQkJBQ0FRUVFJZ0JpZ0N6QUVvQWdBaUEwRUdSeUFEUVFaSkcwRUNSaHNoRUFzQ2Z5QUdJaElvQXRRQklnTUVRQ0FTS0FJRUlBTW9BZ1JHREFFTFFRQUxJUXNDUUNBVFJRMEFJQXRGRFFCQkFpQVNLQUxVQVNnQ0FDSURRUVpISUFOQkJra2JRUUpISVFzTElCbEJBRWNnRUVFQVIzRWlFeUFMUVFCSGNTRVZRUkFoQ3dOQUFrQUNRQUpBQWtBQ1FBSkFJQllPQXdBQkFnTUxBbjhnRXdSQUlBY3RBQWdnQnkwQUJ5QUhMUUFGSUFjdEFBWnFhbXBCQW1wQkFuWWhBeUFGTFFBRElBVXRBQUlnQlMwQUFTQUZMUUFBSUFjdEFBUWdCeTBBQXlBSExRQUJJQWN0QUFKcWFtcHFhbXBxUVFScVFRTjJEQUVMSUJBRVFDQUhMUUFJSUFjdEFBY2dCeTBBQlNBSExRQUdhbXBxUVFKcVFRSjJJUU1nQnkwQUJDQUhMUUFESUFjdEFBRWdCeTBBQW1wcWFrRUNha0VDZGd3QkN5QVpSUVJBUVlBQklRTkJnQUVNQVFzZ0JTMEFBeUFGTFFBQ0lBVXRBQUFnQlMwQUFXcHFha0VDYWtFQ2RpSURDeUVHSUFJZ0EwSC9BWEZCZ1lLRUNHd2lBellBSENBQ0lBWkIvd0Z4UVlHQ2hBaHNJZ1kyQUJnZ0FpQUROZ0FVSUFJZ0JqWUFFQ0FDSUFNMkFBd2dBaUFHTmdBSUlBSWdBellBQkNBQ0lBWTJBQUFDUUNBWkJFQWdCUzBBQnlBRkxRQUdJQVV0QUFVZ0JTMEFCR3BxYWlJS1FRSnFRUUoySVFNZ0VFVUVRQ0FESVFZTUFnc2dBeUVHSUFjdEFBZ2dCeTBBQnlBSExRQUdJQW9nQnkwQUJXcHFhbXBCQkdwQkEzWWhBd3dCQ3lBUVJRUkFRWUFCSVFOQmdBRWhCZ3dCQ3lBSExRQUlJQWN0QUFjZ0J5MEFCU0FITFFBR2FtcHFRUUpxUVFKMklRTWdCeTBBQkNBSExRQURJQWN0QUFFZ0J5MEFBbXBxYWtFQ2FrRUNkaUVHQ3lBQ0lBTkIvd0Z4UVlHQ2hBaHNJZ00yQUR3Z0FpQUdRZjhCY1VHQmdvUUliQ0lHTmdBNElBSWdBellBTkNBQ0lBWTJBREFnQWlBRE5nQXNJQUlnQmpZQUtDQUNJQU0yQUNRZ0FpQUdOZ0FnREFRTElCa05Ba0VCREFVTFFRRWdFRVVOQkJvZ0FpQUhMUUFCT2dBQUlBSWdCeTBBQVRvQUNDQUNJQWN0QUFFNkFCQWdBaUFITFFBQk9nQVlJQUlnQnkwQUFUb0FJQ0FDSUFjdEFBRTZBQ2dnQWlBSExRQUJPZ0F3SUFJZ0J5MEFBVG9BT0NBQ0lBY3RBQUk2QUFFZ0FpQUhMUUFDT2dBSklBSWdCeTBBQWpvQUVTQUNJQWN0QUFJNkFCa2dBaUFITFFBQ09nQWhJQUlnQnkwQUFqb0FLU0FDSUFjdEFBSTZBREVnQWlBSExRQUNPZ0E1SUFJZ0J5MEFBem9BQWlBQ0lBY3RBQU02QUFvZ0FpQUhMUUFET2dBU0lBSWdCeTBBQXpvQUdpQUNJQWN0QUFNNkFDSWdBaUFITFFBRE9nQXFJQUlnQnkwQUF6b0FNaUFDSUFjdEFBTTZBRG9nQWlBSExRQUVPZ0FESUFJZ0J5MEFCRG9BQ3lBQ0lBY3RBQVE2QUJNZ0FpQUhMUUFFT2dBYklBSWdCeTBBQkRvQUl5QUNJQWN0QUFRNkFDc2dBaUFITFFBRU9nQXpJQUlnQnkwQUJEb0FPeUFDSUFjdEFBVTZBQVFnQWlBSExRQUZPZ0FNSUFJZ0J5MEFCVG9BRkNBQ0lBY3RBQVU2QUJ3Z0FpQUhMUUFGT2dBa0lBSWdCeTBBQlRvQUxDQUNJQWN0QUFVNkFEUWdBaUFITFFBRk9nQThJQUlnQnkwQUJqb0FCU0FDSUFjdEFBWTZBQTBnQWlBSExRQUdPZ0FWSUFJZ0J5MEFCam9BSFNBQ0lBY3RBQVk2QUNVZ0FpQUhMUUFHT2dBdElBSWdCeTBBQmpvQU5TQUNJQWN0QUFZNkFEMGdBaUFITFFBSE9nQUdJQUlnQnkwQUJ6b0FEaUFDSUFjdEFBYzZBQllnQWlBSExRQUhPZ0FlSUFJZ0J5MEFCem9BSmlBQ0lBY3RBQWM2QUM0Z0FpQUhMUUFIT2dBMklBSWdCeTBBQnpvQVBpQUNJQWN0QUFnNkFBY2dBaUFITFFBSU9nQVBJQUlnQnkwQUNEb0FGeUFDSUFjdEFBZzZBQjhnQWlBSExRQUlPZ0FuSUFJZ0J5MEFDRG9BTHlBQ0lBY3RBQWc2QURjZ0FpQUhMUUFJT2dBL0RBSUxRUUVnRlVVTkF4b2dCeTBBQlNBSExRQURheUFITFFBR0lBY3RBQUpyUVFGMGFpQUhMUUFISUFjdEFBRnJRUU5zYWlBSExRQUlJZ01nQnkwQUFDSUthMEVDZEdwQkVXeEJFR3BCQlhVaUJrRjliQ0VYSUFNZ0JTMEFCeUlPYWtFRWRDQUZMUUFFSUFVdEFBSnJJQTRnQ210QkFuUnFJQVV0QUFVZ0JTMEFBV3RCQVhScUlBVXRBQVlnQlMwQUFHdEJBMnhxUVJGc1FSQnFRUVYxSWh4QmZXeHFRUkJxSVE1QkJ5RUtJQUloQXdOQUlBTWdEaUFYYWlJZVFRVjFRYkF1YWkwQUFEb0FBQ0FESUFZZ0htb2lIa0VGZFVHd0xtb3RBQUE2QUFFZ0F5QUdJQjVxSWg1QkJYVkJzQzVxTFFBQU9nQUNJQU1nQmlBZWFpSWVRUVYxUWJBdWFpMEFBRG9BQXlBRElBWWdIbW9pSGtFRmRVR3dMbW90QUFBNkFBUWdBeUFHSUI1cUloNUJCWFZCc0M1cUxRQUFPZ0FGSUFNZ0JpQWVhaUllUVFWMVFiQXVhaTBBQURvQUJpQURJQVlnSG1wQkJYVkJzQzVxTFFBQU9nQUhJQXBGRFFJZ0RpQWNhaUVPSUFOQkNHb2hBeUFLUVFGcklRb01BQXNBQ3lBQ0lBVXRBQUE2QUFBZ0FpQUZMUUFBT2dBQklBSWdCUzBBQURvQUFpQUNJQVV0QUFBNkFBTWdBaUFGTFFBQU9nQUVJQUlnQlMwQUFEb0FCU0FDSUFVdEFBQTZBQVlnQWlBRkxRQUFPZ0FISUFJZ0JTMEFBVG9BQ0NBQ0lBVXRBQUU2QUFrZ0FpQUZMUUFCT2dBS0lBSWdCUzBBQVRvQUN5QUNJQVV0QUFFNkFBd2dBaUFGTFFBQk9nQU5JQUlnQlMwQUFUb0FEaUFDSUFVdEFBRTZBQThnQWlBRkxRQUNPZ0FRSUFJZ0JTMEFBam9BRVNBQ0lBVXRBQUk2QUJJZ0FpQUZMUUFDT2dBVElBSWdCUzBBQWpvQUZDQUNJQVV0QUFJNkFCVWdBaUFGTFFBQ09nQVdJQUlnQlMwQUFqb0FGeUFDSUFVdEFBTTZBQmdnQWlBRkxRQURPZ0FaSUFJZ0JTMEFBem9BR2lBQ0lBVXRBQU02QUJzZ0FpQUZMUUFET2dBY0lBSWdCUzBBQXpvQUhTQUNJQVV0QUFNNkFCNGdBaUFGTFFBRE9nQWZJQUlnQlMwQUJEb0FJQ0FDSUFVdEFBUTZBQ0VnQWlBRkxRQUVPZ0FpSUFJZ0JTMEFCRG9BSXlBQ0lBVXRBQVE2QUNRZ0FpQUZMUUFFT2dBbElBSWdCUzBBQkRvQUppQUNJQVV0QUFRNkFDY2dBaUFGTFFBRk9nQW9JQUlnQlMwQUJUb0FLU0FDSUFVdEFBVTZBQ29nQWlBRkxRQUZPZ0FySUFJZ0JTMEFCVG9BTENBQ0lBVXRBQVU2QUMwZ0FpQUZMUUFGT2dBdUlBSWdCUzBBQlRvQUx5QUNJQVV0QUFZNkFEQWdBaUFGTFFBR09nQXhJQUlnQlMwQUJqb0FNaUFDSUFVdEFBWTZBRE1nQWlBRkxRQUdPZ0EwSUFJZ0JTMEFCam9BTlNBQ0lBVXRBQVk2QURZZ0FpQUZMUUFHT2dBM0lBSWdCUzBBQnpvQU9DQUNJQVV0QUFjNkFEa2dBaUFGTFFBSE9nQTZJQUlnQlMwQUJ6b0FPeUFDSUFVdEFBYzZBRHdnQWlBRkxRQUhPZ0E5SUFJZ0JTMEFCem9BUGlBQ0lBVXRBQWM2QUQ4TFFRQWhEZ05BSUFnZ0RrRUdkR29pQXlnQ0FDSVhRZi8vL3dkSEJFQWdBeWdDQkNFY0lBSWdDeUFMUVFOeElBdEJFRWtpQmh0QkFuUWlIa0h3S1dvb0FnQkJFRUVJSUFZYklncHNhaUFlUWJBcGFpZ0NBR29pQmlBWElBWXRBQUJxUWJBdWFpMEFBRG9BQUNBREtBSUlJUmNnQmlBY0lBWXRBQUZxUWJBdWFpMEFBRG9BQVNBREtBSU1JUndnQmlBWElBWXRBQUpxUWJBdWFpMEFBRG9BQWlBR0lCd2dCaTBBQTJwQnNDNXFMUUFBT2dBRElBTW9BaFFoRnlBR0lBcHFJZ1lnQXlnQ0VDQUdMUUFBYWtHd0xtb3RBQUE2QUFBZ0F5Z0NHQ0VjSUFZZ0Z5QUdMUUFCYWtHd0xtb3RBQUE2QUFFZ0F5Z0NIQ0VYSUFZZ0hDQUdMUUFDYWtHd0xtb3RBQUE2QUFJZ0JpQVhJQVl0QUFOcVFiQXVhaTBBQURvQUF5QURLQUlrSVJjZ0JpQUthaUlHSUFNb0FpQWdCaTBBQUdwQnNDNXFMUUFBT2dBQUlBTW9BaWdoSENBR0lCY2dCaTBBQVdwQnNDNXFMUUFBT2dBQklBTW9BaXdoRnlBR0lCd2dCaTBBQW1wQnNDNXFMUUFBT2dBQ0lBWWdGeUFHTFFBRGFrR3dMbW90QUFBNkFBTWdBeWdDTkNFWElBWWdDbW9pQmlBREtBSXdJQVl0QUFCcVFiQXVhaTBBQURvQUFDQURLQUk0SVFvZ0JpQVhJQVl0QUFGcVFiQXVhaTBBQURvQUFTQURLQUk4SVFNZ0JpQUtJQVl0QUFKcVFiQXVhaTBBQURvQUFpQUdJQU1nQmkwQUEycEJzQzVxTFFBQU9nQURDeUFMUVFGcUlRc2dEa0VCYWlJT1FRUkhEUUFMSUFoQmdBSnFJUWdnQlVFSWFpRUZJQWRCQ1dvaEJ5QUNRVUJySVFJZ0QwRUJhaUlQUVFKSERRQUxRUUFMRFFCQkFDRUJJQklvQXNRQlFRRkxEUUFnSFNBTUVCZ0xJQkZCMEFCcUpBQWdBU0lEUlEwQkRBSUxJQUVoQzBFQUlRTkJBQ0VDUVFBaENrRUFJUk5CQUNFUFFRQWhFa0VBSVJrakFFRWdheUlRSkFBZ0VDQWRLQUlFSWdFMkFnd2dFQ0FkS0FJSU5nSVFJQVFnQVc0aUJVRUVkQ0VSSUFRZ0FTQUZiR3RCQkhRaERnSkFBa0FDZndKQUFuOENRQUpBQWtBQ1FBSkFJQVlpQlNnQ0FDSVdEZ1FBQUFFQ0F3c2dCU2dDQkNFQlFRRWhDa0YvSVFoQkFDRUdRWDhoREVFQklRTUNmMEVBSUFVb0FzZ0JJZ2RGRFFBYVFRQWdCeWdDQkNBQlJ3MEFHa0VBSVFOQkFDQUhLQUlBUVFWTERRQWFJQWNvQW1naERDQUhLQUtZQVNJQ1FSQjJDeUVIQWtBZ0JTZ0N6QUVpRTBVTkFDQUJJQk1vQWdSSERRQkJBQ0VLSUJNb0FnQkJCVXNOQUNBVEtBS3NBU0lTUVJCMklRWWdFeWdDYkNFSUN5QU5LQUtRQVNFVEFrQWdGa1VFUUNBRElBcHlEUUVnQWtILy93TnhJQWRCRUhSeUlBeHlSUTBCSUJKQi8vOERjU0FHUVJCMGNpQUlja1VOQVFzZ0RTOEJvQUVoR1FKQUFuOENRQUpBSUFVb0F0QUJJZzlGRFFBZ0R5Z0NCQ0FCUncwQUlBOG9BZ0JCQlVzTkFTQVBLQUpzSVFNZ0R5Z0NyQUVNQWdzQ1FDQUZLQUxVQVNJUFJRMEFJQThvQWdRZ0FVY05BQ0FQS0FJQVFRVkxEUUVnRHlnQ2NDRURJQThvQXNBQkRBSUxJQU1nQ2tFQmMzSkJBVWNOQWd0QmZ5RURRUUFMSVFFZ0NDQVRSaUlLSUF3Z0UwWWlDR29nQXlBVFJtcEJBVWNFUUNBR0lBY2dCa0VRZEVFUWRTSUdJQWRCRUhSQkVIVWlBMG9pQnhzaUNDQURJQVlnQXlBRElBWktHeUFIR3lJR0lBRkJFSFVpQXlBRElBWklHeUFJUVJCMFFSQjFJQU5JR3lFSElCSWdBaUFTUVJCMFFSQjFJZ01nQWtFUWRFRVFkU0lDU2lJR0d5SUlRZi8vQTNFZ0FpQURJQUlnQWlBRFNoc2dCaHNpQWlBQlFSQjBRUkIxSWdFZ0FTQUNTQnNnQ0VFUWRFRVFkU0FCU0JzaEFnd0JDeUFDSUJJZ0NCc2hBaUFISUFZZ0NCc2hCeUFJRFFBZ0NnMEFJQUZCRUhZaEJ5QUJJUUlMUVFFaENDQUNJQmxxSWc5QkVIUkJFSFZCZ0VCclFmLy9BRXNOQ1NBSElBMHZBYUlCYWlJWlFSQjBRUkIxUVlBUWFrSC9IMHNOQ1FzZ0tDQVRFQk1pQWtVRVFFRUJJUWdNQ1FzZ0JTQVpPd0hDQVNBRklBODdBY0FCSUFVZ0FqWUNkQ0FGSUJNMkFtUWdCU0FDTmdLQUFTQUZJQUkyQW53Z0JTQUNOZ0o0SUFVZ0V6WUNjQ0FGSUJNMkFtd2dCU0FUTmdKb0lBVWdCU2dDd0FFaUFUWUN2QUVnQlNBQk5nSzRBU0FGSUFFMkFyUUJJQVVnQVRZQ3NBRWdCU0FCTmdLc0FTQUZJQUUyQXFnQklBVWdBVFlDcEFFZ0JTQUJOZ0tnQVNBRklBRTJBcHdCSUFVZ0FUWUNtQUVnQlNBQk5nS1VBU0FGSUFFMkFwQUJJQVVnQVRZQ2pBRWdCU0FCTmdLSUFTQUZJQUUyQW9RQklCQWdBallDQ0NBTElBVkJoQUZxSUJCQkNHb2dEaUFSUVFCQkFFRVFRUkFRRHd3SEN5QU5LQUtRQVNFTUlBVW9BZ1FoQXlBRktBTE1BU0lCUlEwRUlBTWdBU2dDQkVjTkJDQUJLQUlBUVFaUEJFQWdERUYvUmlFQ1FRRWhDa0VBSVFaQkFBd0dDeUFCS0FKc0lBeEdJUUpCQVNFS0lBRW9BcXdCSWdaQkVIWU1CUXNnRFNnQ2tBRWhFaUFGS0FJRUlRSWdCU2dDeUFFaUFVVU5BU0FDSUFFb0FnUkhEUUVDZnlBQktBSUFRUVpQQkVBZ0VrRi9SaUVNUVFBaEJrRUFEQUVMSUFFb0FtZ2dFa1loRENBQktBS1lBU0lHUVJCMkN5RURRUUFNQWdzZ0JVR0VBV29oREFOQUFuOGdEU0FUUVFKMEloSnFJaGNpSkNnQ3NBRWlBVUVDVFFSQUlBRkJBblJCbkRWcUtBSUFEQUVMUVFRTElSNGdCU0FTYWlJQklCY29Bc0FCTmdKa0lBRWdLQ0FYS0FMQUFSQVRJZ0UyQW5RZ0FVVUVRRUVCSVFnTUJ3c2dIZ1JBSUF3Z0UwRUVkQ0lXYWlJbUlTVWdEQ0FXUVF4eWFpSWFRUUpxSVNFZ0RDQVdRUWh5YWlJcUlTNGdEQ0FXUVFSeWFpSWZJU3RCQUNFQ0EwQWdEU0FXYWlBQ1FRSjBhaUlCTHdIU0FTRXNJQUV2QWRBQklTMGdGeWdDd0FFaEhFRUJJUTlCZnlFWkFuOENRQ0FGSUJOQkIzUWdKQ2dDc0FFaUowRUZkR29nQWtFRGRHb2lCa0d3R1dvb0FnQVFFU0lEUlEwQVFRQWhCMEVBSVFGQmZ5QURLQUlFSUFVb0FnUkhEUUVhUVFBaER5QURLQUlBUVFWTERRQWdBeUFHUWJRWmFpMEFBQ0lJUVFKMGFpZ0NoQUVpQVVFUWRpRUhJQU1nQ0VIOEFYRnFLQUprREFFTFFRQWhCMEVBSVFGQmZ3c2hMd0pBQWtBQ1FDQUZJQVpCc0IxcUtBSUFFQkVpRlVVRVFFRUFJUU1NQVF0QkFDRURJQlVvQWdRZ0JTZ0NCRVlOQVF0QkFDRUtRUUFoQ0F3QkMwRUJJUWdnRlNnQ0FFRUZTd1JBUVFBaENnd0JDeUFWSUFaQnRCMXFMUUFBSWhsQkFuUnFLQUtFQVNJS1FSQjJJUU1nRlNBWlFmd0JjV29vQW1RaEdRc0NRQUovQWtBQ1FDQUZJQVpCc0NGcUtBSUFFQkVpRlVVTkFDQVZLQUlFSUFVb0FnUkhEUUFnRlNnQ0FFRUZTdzBCSUJVZ0JrRzBJV290QUFBaUJrSDhBWEZxS0FKa0lROGdGU0FHUVFKMGFpZ0NoQUVNQWdzQ1FDQUZJQVpCc0NWcUtBSUFFQkVpRlVVTkFDQVZLQUlFSUFVb0FnUkhEUUFnRlNnQ0FFRUZTdzBCSUJVZ0JrRzBKV290QUFBaUJrSDhBWEZxS0FKa0lROGdGU0FHUVFKMGFpZ0NoQUVNQWdzZ0NDQVBja0VCUncwQ0MwRi9JUTlCQUFzaEJpQVpJQnhHSWhrZ0hDQXZSaUlJYWlBUElCeEdha0VCUndSQUlBTWdCeUFEUVJCMFFSQjFJZ2dnQjBFUWRFRVFkU0lEU2lJSEd5SVBJQU1nQ0NBRElBTWdDRW9iSUFjYklnY2dCa0VRZFNJRElBTWdCMGdiSUE5QkVIUkJFSFVnQTBnYklRY2dDaUFCSUFwQkVIUkJFSFVpQXlBQlFSQjBRUkIxSWdGS0lnZ2JJZ3BCLy84RGNTQUJJQU1nQVNBQklBTktHeUFJR3lJRElBWkJFSFJCRUhVaUFTQUJJQU5JR3lBS1FSQjBRUkIxSUFGSUd5RUJEQUVMSUFFZ0NpQUlHeUVCSUFjZ0F5QUlHeUVISUFnTkFDQVpEUUFnQmtFUWRpRUhJQVloQVF0QkFTRUlJQUVnTFdvaUFVRVFkRUVRZFVHQVFHdEIvLzhBU3cwSUlBY2dMR29pQTBFUWRFRVFkVUdBRUdwQi94OUxEUWdDUUFKL0FrQUNRQUpBQWtBZ0p3NEVBQUVDQXdVTElDWWdBVHNCQUNBbElBTTdBUUlnSHlBQk93RUFJQ3NnQXpzQkFpQXFJQUU3QVFBZ0xpQURPd0VDSUJvZ0FUc0JBQ0FoREFNTElBd2dBa0VCZENBU2FrRUNkQ0lHYWlJSElBTTdBUUlnQnlBQk93RUFJQXdnQmtFRWNtb2lCaUFCT3dFQUlBWkJBbW9NQWdzZ0JTQUNJQkpxUVFKMGFpSUdJQUU3QVl3QklBWWdBenNCaGdFZ0JpQUJPd0dFQVNBR1FZNEJhZ3dCQ3lBRklBSWdFbXBCQW5ScUlnWWdBVHNCaEFFZ0JrR0dBV29MSUFNN0FRQUxJQUpCQVdvaUFpQWVSdzBBQ3dzZ0UwRUJhaUlUUVFSSERRQUxRUUFoQWdOQUlCQWdCU0FDUVFKMElnWnFLQUowTmdJSUlBSkJBVXRCQTNRaEFTQUNRUU4wUVFoeElRTUNRQUpBQWtBQ1FBSkFJQVlnRFdvb0FyQUJEZ01BQVFJREN5QUxJQVVnQWtFRWRHcEJoQUZxSUJCQkNHb2dEaUFSSUFNZ0FVRUlRUWdRRHd3REN5QUxJQVVnQWtFRWRHb2lCa0dFQVdvZ0VFRUlhaUFPSUJFZ0F5QUJRUWhCQkJBUElBc2dCa0dNQVdvZ0VFRUlhaUFPSUJFZ0F5QUJRUVJ5UVFoQkJCQVBEQUlMSUFzZ0JTQUNRUVIwYWlJR1FZUUJhaUFRUVFocUlBNGdFU0FESUFGQkJFRUlFQThnQ3lBR1FZZ0JhaUFRUVFocUlBNGdFU0FEUVFSeUlBRkJCRUVJRUE4TUFRc2dDeUFGSUFKQkJIUnFJZ1pCaEFGcUlCQkJDR29nRGlBUklBTWdBVUVFUVFRUUR5QUxJQVpCaUFGcUlCQkJDR29nRGlBUklBTkJCSElpQnlBQlFRUkJCQkFQSUFzZ0JrR01BV29nRUVFSWFpQU9JQkVnQXlBQlFRUnlJZ0ZCQkVFRUVBOGdDeUFHUVpBQmFpQVFRUWhxSUE0Z0VTQUhJQUZCQkVFRUVBOExJQUpCQVdvaUFrRUVSdzBBQ3d3RUN5QVNRWDlHSVF4QkFDRUdRUUVMSVFjZ0RTOEJvQUVoRXdKQUFrQWdEQTBBQW44Q2Z3SkFBa0FnQlNnQ3pBRWlBVVVOQUNBQktBSUVJQUpIRFFBZ0FTZ0NBRUVHVHcwQklBRW9BbXdnRWtZaERDQUJLQUp3SVFvZ0FTZ0N2QUVoQ0NBQktBS3NBU0lCUVJCMkRBTUxBa0FnQlNnQzFBRWlBVVVOQUNBQktBSUVJQUpIRFFBZ0FTZ0NBRUVHVHcwQklCSkJmMFloRENBQktBSndJUW9nQVNnQ3dBRU1BZ3NnQjBVTkF3dEJmeUVLSUJKQmYwWWhERUVBQ3lFSVFRQWhBVUVBQ3lFSElBd2dDaUFTUm1wQkFVY0VRQ0FISUFNZ0IwRVFkRUVRZFNJSElBTkJFSFJCRUhVaUFrb2lBeHNpQ2lBQ0lBY2dBaUFDSUFkS0d5QURHeUlESUFoQkVIVWlBaUFDSUFOSUd5QUtRUkIwUVJCMUlBSklHeUVISUFFZ0JpQUJRUkIwUVJCMUlnSWdCa0VRZEVFUWRTSUJTaUlER3lJR1FmLy9BM0VnQVNBQ0lBRWdBU0FDU2hzZ0F4c2lBaUFJUVJCMFFSQjFJZ0VnQVNBQ1NCc2dCa0VRZEVFUWRTQUJTQnNoQVF3Q0N5QU1EUUVnQ0VFUWRpRUhJQWdoQVF3QkN5QURJUWNnQmlFQkMwRUJJUWdnQVNBVGFpSUNRUkIwUVJCMVFZQkFhMEgvL3dCTERRTWdCeUFOTHdHaUFXb2lBMEVRZEVFUWRVR0FFR3BCL3g5TERRTWdLQ0FTRUJNaUFVVU5BeUFGSUFNN0FiSUJJQVVnQWpzQnNBRWdCU0FCTmdKMElBVWdFallDWkNBRklBRTJBbndnQlNBU05nSnNJQVVnQlNnQ3NBRWlBVFlDckFFZ0JTQUJOZ0tvQVNBRklBRTJBcVFCSUFVZ0FUWUNrQUVnQlNBQk5nS01BU0FGSUFFMkFvZ0JJQVVnQVRZQ2hBRWdEU2dDbEFFaEJ5QUZLQUlFSVF3Q1FBSkFJQVVvQXRBQklnSkZEUUFnQWlnQ0JDQU1SdzBBUVFBaENpQUNLQUlBUVFWTEJFQkJmeUVEUVFBaEFnd0NDeUFDS0FKc0lRTWdBaWdDckFFaEFnd0JDMEVCSVFwQmZ5RURRUUFoQWlBRktBTE1BU0lHUlEwQUlBWW9BZ1FnREVjTkFFRUFJUW9nQmlnQ0FFRUZTdzBBSUFZb0Ftd2hBeUFHS0FLd0FTRUNDeUFOTHdHa0FTRVRBa0FnQXlBSFJ3UkFJQUZCRUhZaEF3Si9BbjhDUUNBRktBTE1BU0lHUlEwQUlBWW9BZ1FnREVjTkFDQUhRWDlHSUFZb0FnQkJCazhOQVJvZ0JpZ0NjQ0FIUmlFTUlBWW9BcndCSWc5QkVIWU1BZ3NnQ2cwRElBZEJmMFlMSVF4QkFBc2hCaUFNSUFjZ0VrWWlDbXBCQVVjRVFDQUdJQU1nQmtFUWRFRVFkU0lHSUFOQkVIUkJFSFZLSWdvYklnd2dBVUVRZFNJRElBWWdBeUFESUFaS0d5QUtHeUlHSUFKQkVIVWlBeUFESUFaSUd5QU1RUkIwUVJCMUlBTklHeUVESUE4Z0FTQVBRUkIwUVJCMUlnWWdBVUVRZEVFUWRTSUJTaUlLR3lJUFFmLy9BM0VnQVNBR0lBRWdBU0FHU2hzZ0Noc2lCaUFDUVJCMFFSQjFJZ0VnQVNBR1NCc2dEMEVRZEVFUWRTQUJTQnNoQVF3Q0N5QUtEUUVnREFSQUlBOUIvLzhEY1NBR1FSQjBjaUVCSUFZaEF3d0NDd3NnQWtFUWRpRURJQUloQVFzZ0FTQVRhaUlDUVJCMFFSQjFRWUJBYTBILy93QkxEUU1nRFM4QnBnRWdBMm9pQTBFUWRFRVFkVUdBRUdwQi94OUxEUU1nS0NBSEVCTWlBVVVOQXlBRklBTTdBY0lCSUFVZ0Fqc0J3QUVnQlNBQk5nS0FBU0FGSUFFMkFuZ2dCU0FITmdKd0lBVWdCellDYUNBRklBVW9Bc0FCSWdFMkFyd0JJQVVnQVRZQ3VBRWdCU0FCTmdLMEFTQUZJQUUyQXFBQklBVWdBVFlDbkFFZ0JTQUJOZ0tZQVNBRlFaUUJhaUlDSUFFMkFnQWdFQ0FGS0FKME5nSUlJQXNnQlVHRUFXb2dFRUVJYWlBT0lCRkJBRUVBUVFoQkVCQVBJQkFnQlNnQ2VEWUNDQ0FMSUFJZ0VFRUlhaUFPSUJGQkNFRUFRUWhCRUJBUERBSUxJQXhCZjBZaEFrRUFJUVpCQUFzaEJ5QU5Md0dnQVNFVEFrQWdBZ1JBSUFjaEFpQUdJUUVNQVF0QkFTRVNRWDhoRDBFQUlRSUNRQ0FGS0FMSUFTSUlSUVJBUVFBaEFRd0JDeUFESUFnb0FnUkhCRUJCQUNFQkRBRUxRUUFoRWlBSUtBSUFRUVZMQkVCQkFDRUJEQUVMSUFnb0FwZ0JJZ0ZCRUhZaEFpQUlLQUpvSVE4TEFuOENRQUpBSUFVb0F0QUJJZ2hGRFFBZ0NDZ0NCQ0FEUncwQUlBZ29BZ0JCQlVzTkFTQUlLQUpzSVFvZ0NDZ0NyQUVNQWdzQ1FDQUZLQUxVQVNJSVJRMEFJQWdvQWdRZ0EwY05BQ0FJS0FJQVFRVkxEUUVnQ0NnQ2NDRUtJQWdvQXNBQkRBSUxJQW9nRW5KQkFVY05BZ3RCZnlFS1FRQUxJUU1nRENBUFJpSUlJQW9nREVacVFRRkhCRUFnQnlBQ0lBZEJFSFJCRUhVaUJ5QUNRUkIwUVJCMUlnSktJZ2diSWdvZ0FpQUhJQUlnQWlBSFNoc2dDQnNpQnlBRFFSQjFJZ0lnQWlBSFNCc2dDa0VRZEVFUWRTQUNTQnNoQWlBR0lBRWdCa0VRZEVFUWRTSUdJQUZCRUhSQkVIVWlBVW9pQnhzaUNFSC8vd054SUFFZ0JpQUJJQUVnQmtvYklBY2JJZ1lnQTBFUWRFRVFkU0lCSUFFZ0JrZ2JJQWhCRUhSQkVIVWdBVWdiSVFFTUFRc2dDQTBBSUFOQkVIWWhBaUFESVFFTFFRRWhDQ0FCSUJOcUlnTkJFSFJCRUhWQmdFQnJRZi8vQUVzTkFTQUNJQTB2QWFJQmFpSUNRUkIwUVJCMVFZQVFha0gvSDBzTkFTQW9JQXdRRXlJQlJRMEJJQVVnQWpzQm9nRWdCU0FET3dHZ0FTQUZJQUUyQW5RZ0JTQU1OZ0prSUFVZ0FUWUNlQ0FGSUF3MkFtZ2dCU0FGS0FLZ0FTSUJOZ0tjQVNBRklBRTJBcGdCSUFVZ0FUWUNsQUVnQlNBQk5nS1FBU0FGSUFFMkFvd0JJQVVnQVRZQ2lBRWdCU0FCTmdLRUFTQU5LQUtVQVNFRElBMHZBYVFCSVJJQ2Z3Si9Ba0FDZndKQUFrQWdCU2dDeUFFaUJnUkFJQVlvQWdRZ0JTZ0NCRVlFUUNBR0tBSUFRUVZOQkVBZ0JpZ0N1QUVpQ2tFUWRpRUNJQVlvQW5BZ0EwY05BeUFLUWYvL0EzRU1Cd3NNQXdzTUFnc01BUXNnQmlnQ2FDQURSaUVQSUFZb0FxQUJEQUVMSUFOQmYwWU5BU0FEUVg5R0lROUJBQ0VDUVFBaENrRUFDeUVHSUFGQkVIWWhCeUFQSUFNZ0RFWWlER3BCQVVjRVFDQUhJQUlnQWtFUWRFRVFkU0lDSUFkQkVIUkJFSFZJSWdjYklnOGdBaUFCUVJCMUlnd2dBaUFDSUF4S0d5QUhHeUlISUFaQkVIVWlBaUFDSUFkSUd5QVBRUkIwUVJCMUlBSklHeUVDSUFFZ0NpQUtRUkIwUVJCMUlnY2dBVUVRZEVFUWRTSUJTQ0lLR3lJUFFmLy9BM0VnQnlBQklBY2dBU0FIU0JzZ0Noc2lCeUFHUVJCMFFSQjFJZ0VnQVNBSFNCc2dEMEVRZEVFUWRTQUJTQnNNQXdzZ0J5QUdRUkIySUF3YklRSWdBU0FHSUF3YkRBSUxRUUFoQWtFQUN5QUNRUkIwY2dzZ0Vtb2lCa0VRZEVFUWRVR0FRR3RCLy84QVN3MEJJQTB2QWFZQklBSnFJZ0pCRUhSQkVIVkJnQkJxUWY4ZlN3MEJJQ2dnQXhBVElnRkZEUUVnQlNBQ093SENBU0FGSUFZN0FjQUJJQVVnQVRZQ2dBRWdCU0FCTmdKOElBVWdBellDY0NBRklBTTJBbXdnQlNBRktBTEFBU0lCTmdLOEFTQUZJQUUyQXJnQklBVWdBVFlDdEFFZ0JTQUJOZ0t3QVNBRklBRTJBcXdCSUFVZ0FUWUNxQUVnQlVHa0FXb2lBaUFCTmdJQUlCQWdCU2dDZERZQ0NDQUxJQVZCaEFGcUlCQkJDR29nRGlBUlFRQkJBRUVRUVFnUUR5QVFJQVVvQW53MkFnZ2dDeUFDSUJCQkNHb2dEaUFSUVFCQkNFRVFRUWdRRHd0QkFDRUlJQVVvQXNRQlFRRkxEUUFnQlNnQ0FBUkFJQTFCeUFKcUlROUJBQ0VCSUIwb0FnQWlEQ0FFSUFRZ0hTZ0NCQ0lGY0NJQ2F5SURRUWgwYWlBQ1FRUjBhaUVSSUFWQkJIUWhCeUFkS0FJSUlBVnNJZ1pCQm5RaERpQUNRUU4wSVJJZ0JrRUlkQ0VUSUFOQkJuUWhHU0FGUVFKMFFmei8vLzhEY1VFQ2RDRUtBMEFnRVNBQlFRSjBJZ0pCOENscUtBSUFJZ01nQjJ4cUlBSkJzQ2xxS0FJQUlnSnFJUVlnQ3lBRFFRUjBhaUFDYWlFQ0FrQWdEeUFCUVFaMGFpSURLQUlBSWhaQi8vLy9CMGNFUUNBREtBSUVJUlVnQWkwQUFTRVhJQVlnRmlBQ0xRQUFha0d3TG1vdEFBQTZBQUFnQXlnQ0NDRVdJQUl0QUFJaEhDQUdJQlVnRjJwQnNDNXFMUUFBT2dBQklBTW9BZ3doRlNBQ0xRQURJUmNnQmlBV0lCeHFRYkF1YWkwQUFEb0FBaUFHSUJVZ0YycEJzQzVxTFFBQU9nQURJQU1vQWhRaEZpQUNMUUFSSVJVZ0JpQUhhaUlHSUFNb0FoQWdBaTBBRUdwQnNDNXFMUUFBT2dBQUlBTW9BaGdoRnlBQ0xRQVNJUndnQmlBVklCWnFRYkF1YWkwQUFEb0FBU0FES0FJY0lSWWdBaTBBRXlFVklBWWdGeUFjYWtHd0xtb3RBQUE2QUFJZ0JpQVZJQlpxUWJBdWFpMEFBRG9BQXlBREtBSWtJUllnQWkwQUlTRVZJQVlnQjJvaUJpQURLQUlnSUFJdEFDQnFRYkF1YWkwQUFEb0FBQ0FES0FJb0lSY2dBaTBBSWlFY0lBWWdGU0FXYWtHd0xtb3RBQUE2QUFFZ0F5Z0NMQ0VXSUFJdEFDTWhGU0FHSUJjZ0hHcEJzQzVxTFFBQU9nQUNJQVlnRlNBV2FrR3dMbW90QUFBNkFBTWdBeWdDTkNFV0lBSXRBREVoRlNBR0lBZHFJZ1lnQXlnQ01DQUNMUUF3YWtHd0xtb3RBQUE2QUFBZ0F5Z0NPQ0VYSUFJdEFESWhIQ0FHSUJVZ0ZtcEJzQzVxTFFBQU9nQUJJQU1vQWp3aEF5QUNMUUF6SVFJZ0JpQVhJQnhxUWJBdWFpMEFBRG9BQWlBR0lBSWdBMnBCc0M1cUxRQUFPZ0FEREFFTElBSW9BaEFoQXlBR0lBSW9BZ0EyQWdBZ0JpQUthaUlHSUFNMkFnQWdBaWdDTUNFRElBWWdDbW9pQmlBQ0tBSWdOZ0lBSUFZZ0Ntb2dBellDQUFzZ0FVRUJhaUlCUVJCSERRQUxJQXdnRTJvZ0dXb2dFbW9pQ2lBT2FpRU1JQVZCQTNSQitQLy8vd2R4SWdWQkFuWkJBblFoQjBFUUlRWURRQ0FHUVFKMFFReHhJZ0ZCOENscUtBSUFJZ0lnQld3Z0FVR3dLV29vQWdBaUFXb2dEQ0FLSUFaQkUwc2lFUnRxSVFNZ0MwSEFBa0dBQWlBUkcyb2dBa0VEZENBQmFtb2hBUUpBSUE4Z0JrRUdkR29pQWlnQ0FDSVJRZi8vL3dkSEJFQWdBaWdDQkNFT0lBRXRBQUVoRWlBRElCRWdBUzBBQUdwQnNDNXFMUUFBT2dBQUlBSW9BZ2doRVNBQkxRQUNJUk1nQXlBT0lCSnFRYkF1YWkwQUFEb0FBU0FDS0FJTUlRNGdBUzBBQXlFU0lBTWdFU0FUYWtHd0xtb3RBQUE2QUFJZ0F5QU9JQkpxUWJBdWFpMEFBRG9BQXlBQ0tBSVVJUkVnQVMwQUNTRU9JQU1nQldvaUF5QUNLQUlRSUFFdEFBaHFRYkF1YWkwQUFEb0FBQ0FDS0FJWUlSSWdBUzBBQ2lFVElBTWdEaUFSYWtHd0xtb3RBQUE2QUFFZ0FpZ0NIQ0VSSUFFdEFBc2hEaUFESUJJZ0UycEJzQzVxTFFBQU9nQUNJQU1nRGlBUmFrR3dMbW90QUFBNkFBTWdBaWdDSkNFUklBRXRBQkVoRGlBRElBVnFJZ01nQWlnQ0lDQUJMUUFRYWtHd0xtb3RBQUE2QUFBZ0FpZ0NLQ0VTSUFFdEFCSWhFeUFESUE0Z0VXcEJzQzVxTFFBQU9nQUJJQUlvQWl3aEVTQUJMUUFUSVE0Z0F5QVNJQk5xUWJBdWFpMEFBRG9BQWlBRElBNGdFV3BCc0M1cUxRQUFPZ0FESUFJb0FqUWhFU0FCTFFBWklRNGdBeUFGYWlJRElBSW9BakFnQVMwQUdHcEJzQzVxTFFBQU9nQUFJQUlvQWpnaEVpQUJMUUFhSVJNZ0F5QU9JQkZxUWJBdWFpMEFBRG9BQVNBQ0tBSThJUUlnQVMwQUd5RUJJQU1nRWlBVGFrR3dMbW90QUFBNkFBSWdBeUFCSUFKcVFiQXVhaTBBQURvQUF3d0JDeUFCS0FJSUlRSWdBeUFCS0FJQU5nSUFJQU1nQjJvaUF5QUNOZ0lBSUFFb0FoZ2hBaUFESUFkcUlnTWdBU2dDRURZQ0FDQURJQWRxSUFJMkFnQUxJQVpCQVdvaUJrRVlSdzBBQ3d3QkN5QWRJQXNRR0FzZ0VFRWdhaVFBSUFnaUF3MEJDMEVBSVFNTElBTUxJZ1lOQVNBZ0tBSzhDU0FwYWlnQ3hBRWhBZ0ovUVFBaEF3SkFJQnNvQWd4QkEzUWdHeWdDRUdzaUFVVU5BRUVCSVFNZ0FVRUlTdzBBUVFFZ0FVRUJhM1FnR3hBUVFTQWdBV3QyUnd3QkN5QURDeUFqS0FJTWNrRUFSeUVCQWtBQ1FDQVVLQUlFUVFKckRnWUFBUUVCQVFBQkN5QWdJQVEyQXJBSkMwRUJJUVpCQUNBQklDQW9BcFFKSUNBb0FwZ0pJQVFRSFNJRUd3MEJJQ0lnQWtFQlJtb2hJaUFCRFFBTElDQkJyQWxxS0FJQUlDSnFJZ0VnSUNnQ21BbExEUUFnSUNBQk5nS3NDVUVBSVFZTElDTkJ3QU5xSkFBZ0Jnc0VRQ0FnS0FMWUNpRUFRUUFoQXlBZ0tBS29DU0VDQWtBZ0lFR3dDV29vQWdBaUFVVU5BQ0FBSUFGQkFXc2lBVThFUUNBQklRQU1BUXNnSUNnQ3ZBa2hCQU5BQWtBZ0JDQUJRZGdCYkdvb0FnUWdBa2NOQUNBRFFRRnFJZ01nSUNnQ0VDZ0NOQ0lKUVFvZ0NVRUtTeHRKRFFBZ0FTRUFEQUlMSUFGQkFXc2lBU0FBU3cwQUN3c0RRQUpBSUNBb0Fyd0pJQUJCMkFGc2FpSUJLQUlFSUFKSERRQWdBU2dDeEFFaUEwVU5BQ0FCSUFOQkFXczJBc1FCSUNBb0FwUUpJQ0FvQXBnSklBQVFIU0lBRFFFTEMwRU5JU0lNQWd0QkFDRWlRUUFoQWdKQUFrQUNRQUpBQWtBZ0lFSDhDbW9vQWdBRVFDQUFLQUtZQ1NJRVJRMERJQVJCQTNFaEJpQUFLQUs4Q1NFRElBUkJBV3RCQTA4TkFVRUFJUUVNQWd0QkFTRUJJQUJCckFscUtBSUFJQUFvQXBnSlJ3MEREQVFMSUFSQmZIRWhDVUVBSVFFRFFDQUNJQU1nQVVIWUFXeHFLQUxFQVVFQVIyb2dBeUFCUVFGeVFkZ0JiR29vQXNRQlFRQkhhaUFESUFGQkFuSkIyQUZzYWlnQ3hBRkJBRWRxSUFNZ0FVRURja0hZQVd4cUtBTEVBVUVBUjJvaEFpQUJRUVJxSVFFZ0NVRUVheUlKRFFBTEN5QUdSUTBBQTBBZ0FpQURJQUZCMkFGc2FpZ0N4QUZCQUVkcUlRSWdBVUVCYWlFQklBWkJBV3NpQmcwQUN3dEJBU0VCSUFJZ0JFWU5BUXRCQUNFQkN5QUJSUTBCSUFCQkFUWUNuQWtMSUFBb0Fyd0pJUVZCQUNFbVFRQWhNQ01BUWJBQmF5SUlKQUFnQUVHNENtb2lNaUlsS0FJSUlnRUVRQ0FsS0FJRUlpaEJCblFoUHlBb1FUQnNJVUFnS0VFRmRDRWlJQ2hCVUd3aEhpQUJJQ2hzSWdGQkJuUWhRU0FCUVFoMElVSkJBQ0FvUVFOMEloMXJJaEZCQVhRaEcwRUFJQ2hCQkhRaUlHc2lHVUVDZENGRElCbEJBWFFoSkNBSVFSaHFJUzRnQ0VFTWNpRkVBMEFDUUNBRktBSUlJZ05CQVVZTkFBSi9Ba0FDUUFKQUFrQUNRQ0FGS0FMSUFTSUJSUVJBUVFFaEFnd0JDMEVGSVFJZ0EwRUNSdzBBUVFWQkFTQUZLQUlFSWcwZ0FTZ0NCRVliSVFJZ0JTZ0N6QUVpQncwQkRBUUxJQVVvQXN3QklnZEZCRUJCQUNFSERBTUxJQU5CQWtjTkFTQUZLQUlFSVEwTElBMGdCeWdDQkVjTkFRc2dBa0VDY2lFQ0N5QUNRUUp4UlEwQUFrQWdCU2dDQUVFRlRRUkFJQWNvQWdCQkJra05BUXNnQ0VFRU5nSkFJQWhCQkRZQ1NDQUlRUVEyQWpnZ0NFRUVOZ0l3UVFFaERVRUFJUnBCQUF3Q0MwRUNJUXhCQWlFTkFrQWdCUzhCSEEwQUlBY3ZBVEFOQUVFQklRMGdCU2dDZENBSEtBSjhSdzBBSUFVdUFZUUJJQWN1QWF3QmF5SURJQU5CSDNVaUEyb2dBM05CQTBzTkFDQUZMZ0dHQVNBSExnR3VBV3NpQXlBRFFSOTFJZ05xSUFOelFRTkxJUTBMSUFnZ0RUWUNNQUpBSUFVdkFSNE5BQ0FITHdFeURRQkJBU0VNSUFVb0FuUWdCeWdDZkVjTkFDQUZMZ0dJQVNBSExnR3dBV3NpQXlBRFFSOTFJZ05xSUFOelFRTkxEUUFnQlM0QmlnRWdCeTRCc2dGcklnTWdBMEVmZFNJRGFpQURjMEVEU3lFTUN5QUlJQXcyQWpoQkFpRVBRUUloRUFKQUlBVXZBU1FOQUNBSEx3RTREUUJCQVNFUUlBVW9BbmdnQnlnQ2dBRkhEUUFnQlM0QmxBRWdCeTRCdkFGcklnTWdBMEVmZFNJRGFpQURjMEVEU3cwQUlBVXVBWllCSUFjdUFiNEJheUlESUFOQkgzVWlBMm9nQTNOQkEwc2hFQXNnQ0NBUU5nSkFBa0FnQlM4QkpnMEFJQWN2QVRvTkFFRUJJUThnQlNnQ2VDQUhLQUtBQVVjTkFDQUZMZ0dZQVNBSExnSEFBV3NpQXlBRFFSOTFJZ05xSUFOelFRTkxEUUFnQlM0Qm1nRWdCeTRCd2dGcklnTWdBMEVmZFNJRGFpQURjMEVEU3lFUEN5QUlJQTgyQWtoQkFDRWFJQXdnRFhJZ0VISWdEM0lpQTBFQVJ5RU5JQU5GREFFTFFRQWhEU0FJUVFBMkFrQWdDRUVBTmdKSUlBaEJBRFlDT0NBSVFRQTJBakJCQVNFYVFRRUxJUU1DUUFKQUFrQWdBa0VFY1NJekJFQUNRQ0FGS0FJQUlnSkJCVTBFUUNBQktBSUFRUVpKRFFFTElBaEJCRFlDZENBSVFRUTJBcFFCSUFoQkJEWUNWQ0FJUVFRMkFqUkJBU0VOREFJTFFRSWhEMEVDSVJBQ1FDQUZMd0VjRFFBZ0FTOEJKZzBBUVFFaEVDQUZLQUowSUFFb0FuaEhEUUFnQlM0QmhBRWdBUzRCbUFGcklnUWdCRUVmZFNJRWFpQUVjMEVEU3cwQUlBVXVBWVlCSUFFdUFab0JheUlFSUFSQkgzVWlCR29nQkhOQkEwc2hFQXNnQ0NBUU5nSTBBa0FnQlM4QklBMEFJQUV2QVNvTkFFRUJJUThnQlNnQ2RDQUJLQUo0UncwQUlBVXVBWXdCSUFFdUFhQUJheUlFSUFSQkgzVWlCR29nQkhOQkEwc05BQ0FGTGdHT0FTQUJMZ0dpQVdzaUJDQUVRUjkxSWdScUlBUnpRUU5MSVE4TElBZ2dEellDVkVFQ0lRcEJBaUVNQWtBZ0JTOEJMQTBBSUFFdkFUWU5BRUVCSVF3Z0JTZ0NmQ0FCS0FLQUFVY05BQ0FGTGdHa0FTQUJMZ0c0QVdzaUJDQUVRUjkxSWdScUlBUnpRUU5MRFFBZ0JTNEJwZ0VnQVM0QnVnRnJJZ1FnQkVFZmRTSUVhaUFFYzBFRFN5RU1DeUFJSUF3MkFuUUNRQ0FGTHdFd0RRQWdBUzhCT2cwQVFRRWhDaUFGS0FKOElBRW9Bb0FCUncwQUlBVXVBYXdCSUFFdUFjQUJheUlFSUFSQkgzVWlCR29nQkhOQkEwc05BQ0FGTGdHdUFTQUJMZ0hDQVdzaUFTQUJRUjkxSWdGcUlBRnpRUU5MSVFvTElBZ2dDallDbEFGQkFTRU5JQU5GRFFJZ0R5QVFjaUFNY2lBS2NrRUFSeUVOREFJTElBaEJBRFlDZENBSVFRQTJBcFFCSUFoQkFEWUNWQ0FJUVFBMkFqUWdCU2dDQUNFQ0N5QUNRUVpKRFFBZ0NFRUROZ0tnQVNBSVFvT0FnSUF3TndLa0FTQUlRUU0yQXBBQklBaEJBellDY0NBSVFRTTJBcXdCSUFoQ2c0Q0FnREEzQTVnQklBaENnNENBZ0RBM0E0Z0JJQWhDZzRDQWdEQTNBNEFCSUFoQ2c0Q0FnREEzQTNnZ0NFS0RnSUNBTURjRGFDQUlRb09BZ0lBd053TmdJQWhDZzRDQWdEQTNBMWdnQ0VLRGdJQ0FNRGNDVENBSVFRTTJBa1FnQ0VFRE5nSThEQUVMQWtBQ2Z5QUNRUU5OQkVBZ0FrRUNkRUdNTldvb0FnQU1BUXRCQkF0QkFVWUVRQ0FJQW44Q1FDQUZMd0VnSWdrTkFDQUZMd0VjRFFCQkFBd0JDMEVDQ3pZQ1VDQUlBbjhDUUNBRkx3RWlJZ0VOQUNBRkx3RWVEUUJCQUF3QkMwRUNDellDV0NBSUFuOENRQ0FGTHdFb0lnSU5BQ0FGTHdFa0RRQkJBQXdCQzBFQ0N6WUNZQ0FJQW44Q1FDQUZMd0VxSWdZTkFDQUZMd0VtRFFCQkFBd0JDMEVDQ3pZQ2FDQUlRUUlnQ1VFQVIwRUJkQ0FGTHdFc0lnY2JOZ0p3SUFoQkFpQUJRUUJIUVFGMElBVXZBUzRpQXhzMkFuZ2dDRUVDSUFKQkFFZEJBWFFnQlM4Qk5DSUVHellDZ0FFZ0NFRUNJQVpCQUVkQkFYUWdCUzhCTmlJTEd6WUNpQUVnQ0NBRkx3RXdJZzRnQjNKQkFFZEJBWFEyQXBBQklBZ2dCUzhCTWlJUUlBTnlRUUJIUVFGME5nS1lBU0FJSUFVdkFUZ2lEQ0FFY2tFQVIwRUJkRFlDb0FFZ0NDQUZMd0U2SWhJZ0MzSkJBRWRCQVhRMkFxZ0JRUUloRDBFQ0lRb2dDQ0FGTHdFZUJIOUJBZ1ZCQUNFUElBVXZBUnhCQUVkQkFYUUxOZ0k4SUFoQkFpQVBJQVV2QVNRaUNoczJBa1FnQlM4QkppRVBJQWdnRENBU2NrRUFSMEVCZERZQ3JBRWdDQ0FNSUJCeVFRQkhRUUYwTmdLa0FTQUlJQTRnRUhKQkFFZEJBWFEyQXB3QklBZ2dCQ0FMY2tFQVIwRUJkRFlDakFFZ0NDQURJQVJ5UVFCSFFRRjBOZ0tFQVNBSUlBTWdCM0pCQUVkQkFYUTJBbndnQ0NBQ0lBWnlRUUJIUVFGME5nSnNJQWdnQVNBQ2NrRUFSMEVCZERZQ1pDQUlJQUVnQ1hKQkFFZEJBWFEyQWx3Z0NDQUtJQTl5UVFCSFFRRjBOZ0pNSUFnb0Fxd0JJUllnQ0NnQ3BBRWhEeUFJS0FLY0FTRVZJQWdvQW93QklTRWdDQ2dDaEFFaENpQUlLQUo4SVNrZ0NDZ0NiQ0VYSUFnb0FtUWhBU0FJS0FKY0lRWWdDQ2dDVENFSklBZ29Ba1FoQWlBSUtBSThJUTRnQ0NnQ3FBRWhBeUFJS0FLZ0FTRXFJQWdvQXBnQklSd2dDQ2dDa0FFaEl5QUlLQUtJQVNFTElBZ29Bb0FCSVJNZ0NDZ0NlQ0VTSUFnb0FuQWhGQ0FJS0FKb0lRY2dDQ2dDWUNFRUlBZ29BbGdoRUNBSUtBSlFJUXdNQVFzZ0NBSi9Ba0FnQ0FKL0FrQUNRQUpBQWtBQ1FDQUZLQUlBUVFKckRnSUFBUUlMSUFnQ2Z3SkFJQVV2QVNBaUlRMEFJQVV2QVJ3TkFFRUFEQUVMUVFJTElndzJBbEFnQ0FKL0FrQWdCUzhCSWlJS0RRQWdCUzhCSGcwQVFRQU1BUXRCQWdzaUVEWUNXQ0FJQW44Q1FDQUZMd0VvSWdFTkFDQUZMd0VrRFFCQkFBd0JDMEVDQ3lJRU5nSmdJQWdDZndKQUlBVXZBU29pRncwQUlBVXZBU1lOQUVFQURBRUxRUUlMSWdjMkFtZ2dDQUovQWtBZ0JTOEJNQ0lyRFFBZ0JTOEJMQTBBUVFBTUFRdEJBZ3NpSXpZQ2tBRWdDQUovQWtBZ0JTOEJNaUlWRFFBZ0JTOEJMZzBBUVFBTUFRdEJBZ3NpSERZQ21BRWdDQUovQWtBZ0JTOEJPQ0lQRFFBZ0JTOEJOQTBBUVFBTUFRdEJBZ3NpS2pZQ29BRWdDQUovQWtBZ0JTOEJPaUlXRFFBZ0JTOEJOZzBBUVFBTUFRdEJBZ3NpQXpZQ3FBRkJBaUVTUVFJaEZBSkFJQ0VnQlM4QkxDSXNjZzBBUVFFaEZDQUZMZ0drQVNBRkxnR01BV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQlM0QnBnRWdCUzRCamdGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBVW9BbndnQlNnQ2RFY2hGQXNnQ0NBVU5nSndBa0FnQ2lBRkx3RXVJaWx5RFFCQkFTRVNJQVV1QWFnQklBVXVBWkFCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBRkxnR3FBU0FGTGdHU0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdCU2dDZkNBRktBSjBSeUVTQ3lBSUlCSTJBbmhCQWlFTFFRSWhFd0pBSUFFZ0JTOEJOQ0lmY2cwQVFRRWhFeUFGTGdHMEFTQUZMZ0djQVdzaUFpQUNRUjkxSWdKcUlBSnpRUU5MRFFBZ0JTNEJ0Z0VnQlM0Qm5nRnJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN3MEFJQVVvQW9BQklBVW9BbmhISVJNTElBZ2dFellDZ0FFQ1FDQVhJQVV2QVRZaUxYSU5BRUVCSVFzZ0JTNEJ1QUVnQlM0Qm9BRnJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN3MEFJQVV1QWJvQklBVXVBYUlCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBRktBS0FBU0FGS0FKNFJ5RUxDeUFJSUFzMkFvZ0JJQVV2QVI0TkFpQUZMd0VjQkVCQkFpRU9JQWhCQWpZQ1BDQUZMd0VrSWdZTkJrRUFJUWxCQUF3SEMwRUFJUTRnQ0VFQU5nSThRUUFoQ1VFQUlBVXZBU1FpQmtVTkJob01CUXNnQ0FKL0FrQWdCUzhCSUNJQ0RRQWdCUzhCSEEwQVFRQU1BUXRCQWdzaUREWUNVQ0FJQW44Q1FDQUZMd0VpSWdvTkFDQUZMd0VlRFFCQkFBd0JDMEVDQ3lJUU5nSllJQWdDZndKQUlBVXZBU2dpRHcwQUlBVXZBU1FOQUVFQURBRUxRUUlMSWdRMkFtQWdDQUovQWtBZ0JTOEJLaUlHRFFBZ0JTOEJKZzBBUVFBTUFRdEJBZ3NpQnpZQ2FDQUlJQVV2QVN3aUFTQUNja0VBUjBFQmRDSVVOZ0p3SUFnZ0JTOEJMaUlmSUFweVFRQkhRUUYwSWhJMkFuZ2dDQ0FGTHdFMElpc2dEM0pCQUVkQkFYUWlFellDZ0FFZ0NDQUZMd0UySWhjZ0JuSkJBRWRCQVhRaUN6WUNpQUVnQ0VFQ0lBRkJBRWRCQVhRZ0JTOEJNQ0lWR3lJak5nS1FBU0FJUVFJZ0gwRUFSMEVCZENBRkx3RXlJaXdiSWh3MkFwZ0JJQWhCQWlBclFRQkhRUUYwSUFVdkFUZ2lMUnNpS2pZQ29BRWdDRUVDSUJkQkFFZEJBWFFnQlM4Qk9pSVdHeUlETmdLb0FTQUlBbjhDUUNBRkx3RWVJaThOQUNBRkx3RWNEUUJCQUF3QkMwRUNDeUlPTmdJOElBVXZBU1lFUUNBRkx3RWtJUWtNQXdzZ0JTOEJKQ0lKRFFKQkFDRW5RUUFNQXdzZ0JTNEJoZ0VoQmlBRkxnR09BU0VCUVFJaEVDQUlBbjlCQWlBRkx3RWdJalFnQlM4QkhDSU9jZzBBR2tFQklBVXVBWXdCSUFVdUFZUUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQm9nQVNBR2F5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTElndzJBbEFnQlM0QmlnRWhDU0FGTGdHU0FTRUtBa0FnQlM4QklpSVZJQVV2QVI0aU5YSU5BRUVCSVJBZ0JTNEJrQUVnQlM0QmlBRnJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN3MEFJQW9nQ1dzaUFpQUNRUjkxSWdKcUlBSnpRUU5MSVJBTElBZ2dFRFlDV0NBRkxnR1dBU0VYSUFVdUFaNEJJUTlCQWlFSElBZ0NmMEVDSUFVdkFTZ2lLU0FGTHdFa0lqWnlEUUFhUVFFZ0JTNEJuQUVnQlM0QmxBRnJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN3MEFHaUFQSUJkcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3dzaUJEWUNZQ0FGTGdHYUFTRTNJQVV1QWFJQklSOENRQ0FGTHdFcUlqZ2dCUzhCSmlKRmNnMEFRUUVoQnlBRkxnR2dBU0FGTGdHWUFXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdIeUEzYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNoQndzZ0NDQUhOZ0pvSUFVdUFhWUJJU3RCQWlFU1FRSWhGQUpBSURRZ0JTOEJMQ0k1Y2cwQVFRRWhGQ0FGTGdHa0FTQUZMZ0dNQVdzaUFpQUNRUjkxSWdKcUlBSnpRUU5MRFFBZ0t5QUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FGS0FKOElBVW9BblJISVJRTElBZ2dGRFlDY0NBRkxnR3FBU0VXQWtBZ0ZTQUZMd0V1SWl4eURRQkJBU0VTSUFVdUFhZ0JJQVV1QVpBQmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQVdJQXBySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBSUFVb0Fud2dCU2dDZEVjaEVnc2dDQ0FTTmdKNElBVXVBYllCSVNGQkFpRUxRUUloRXdKQUlDa2dCUzhCTkNJdGNnMEFRUUVoRXlBRkxnRzBBU0FGTGdHY0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdJU0FQYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBRktBS0FBU0FGS0FKNFJ5RVRDeUFJSUJNMkFvQUJJQVV1QWJvQklTY0NRQ0E0SUFVdkFUWWlPbklOQUVFQklRc2dCUzRCdUFFZ0JTNEJvQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBSUNjZ0gyc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdCU2dDZ0FFZ0JTZ0NlRWNoQ3dzZ0NDQUxOZ0tJQVNBRkxnR3VBU0U3UVFJaEhDQUlBbjlCQWlBNUlBVXZBVEFpUm5JTkFCcEJBU0FGTGdHc0FTQUZMZ0drQVdzaUFpQUNRUjkxSWdKcUlBSnpRUU5MRFFBYUlEc2dLMnNpQWlBQ1FSOTFJZ0pxSUFKelFRTkxDeUlqTmdLUUFTQUZMZ0d5QVNFdkFrQWdMQ0FGTHdFeUlqeHlEUUJCQVNFY0lBVXVBYkFCSUFVdUFhZ0JheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0F2SUJacklnSWdBa0VmZFNJQ2FpQUNjMEVEU3lFY0N5QUlJQncyQXBnQklBVXVBYjRCSVRGQkFpRURJQWdDZjBFQ0lDMGdCUzhCT0NJOWNnMEFHa0VCSUFVdUFid0JJQVV1QWJRQmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFCb2dNU0FoYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNMSWlvMkFxQUJJQVV1QWNJQklUNENRQ0E2SUFVdkFUb2lSM0lOQUVFQklRTWdCUzRCd0FFZ0JTNEJ1QUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBSUQ0Z0oyc2lBaUFDUVI5MUlnSnFJQUp6UVFOTElRTUxJQWdnQXpZQ3FBRkJBaUVDSUFnQ2YwRUNJQTRnTlhJTkFCcEJBU0FGTGdHSUFTQUZMZ0dFQVdzaURpQU9RUjkxSWc1cUlBNXpRUU5MRFFBYUlBa2dCbXNpQmlBR1FSOTFJZ1pxSUFaelFRTkxDeUlPTmdJOEFrQWdOU0EyY2cwQVFRRWhBaUFGTGdHVUFTQUZMZ0dJQVdzaUJpQUdRUjkxSWdacUlBWnpRUU5MRFFBZ0Z5QUpheUlKSUFsQkgzVWlDV29nQ1hOQkEwc05BQ0FGS0FKNElBVW9BblJISVFJTElBZ2dBallDUkVFQ0lRWWdDQUovUVFJZ05pQkZjZzBBR2tFQklBVXVBWmdCSUFVdUFaUUJheUlKSUFsQkgzVWlDV29nQ1hOQkEwc05BQm9nTnlBWGF5SUpJQWxCSDNVaUNXb2dDWE5CQTBzTElnazJBa3dDUUNBVklEUnlEUUJCQVNFR0lBVXVBWkFCSUFVdUFZd0JheUlYSUJkQkgzVWlGMm9nRjNOQkEwc05BQ0FLSUFGcklnRWdBVUVmZFNJQmFpQUJjMEVEU3lFR0N5QUlJQVkyQWx4QkFpRVhRUUloQVFKQUlCVWdLWElOQUVFQklRRWdCUzRCbkFFZ0JTNEJrQUZySWhVZ0ZVRWZkU0lWYWlBVmMwRURTdzBBSUE4Z0Ntc2lDaUFLUVI5MUlncHFJQXB6UVFOTERRQWdCU2dDZUNBRktBSjBSeUVCQ3lBSUlBRTJBbVFDUUNBcElEaHlEUUJCQVNFWElBVXVBYUFCSUFVdUFad0JheUlLSUFwQkgzVWlDbW9nQ25OQkEwc05BQ0FmSUE5cklnb2dDa0VmZFNJS2FpQUtjMEVEU3lFWEN5QUlJQmMyQW14QkFpRUtJQWdDZjBFQ0lDd2dPWElOQUJwQkFTQUZMZ0dvQVNBRkxnR2tBV3NpRHlBUFFSOTFJZzlxSUE5elFRTkxEUUFhSUJZZ0syc2lEeUFQUVI5MUlnOXFJQTl6UVFOTEN5SXBOZ0o4QWtBZ0xDQXRjZzBBUVFFaENpQUZMZ0cwQVNBRkxnR29BV3NpRHlBUFFSOTFJZzlxSUE5elFRTkxEUUFnSVNBV2F5SVBJQTlCSDNVaUQyb2dEM05CQTBzTkFDQUZLQUtBQVNBRktBSjhSeUVLQ3lBSUlBbzJBb1FCUVFJaEZTQUlBbjlCQWlBdElEcHlEUUFhUVFFZ0JTNEJ1QUVnQlM0QnRBRnJJZzhnRDBFZmRTSVBhaUFQYzBFRFN3MEFHaUFuSUNGcklnOGdEMEVmZFNJUGFpQVBjMEVEU3dzaUlUWUNqQUVDUUNBOElFWnlEUUJCQVNFVklBVXVBYkFCSUFVdUFhd0JheUlQSUE5QkgzVWlEMm9nRDNOQkEwc05BQ0F2SUR0cklnOGdEMEVmZFNJUGFpQVBjMEVEU3lFVkN5QUlJQlUyQXB3QlFRSWhGa0VDSVE4Q1FDQThJRDF5RFFCQkFTRVBJQVV1QWJ3QklBVXVBYkFCYXlJZklCOUJIM1VpSDJvZ0gzTkJBMHNOQUNBeElDOXJJaDhnSDBFZmRTSWZhaUFmYzBFRFN3MEFJQVVvQW9BQklBVW9BbnhISVE4TElBZ2dEellDcEFFQ1FDQTlJRWR5RFFCQkFTRVdJQVV1QWNBQklBVXVBYndCYXlJZklCOUJIM1VpSDJvZ0gzTkJBMHNOQUNBK0lERnJJaFlnRmtFZmRTSVdhaUFXYzBFRFN5RVdDeUFJSUJZMkFxd0JEQVVMUVFJaERpQUlRUUkyQWp3Z0JTOEJKQ0VHREFJTElBbEIvLzhEY1VFQVJ5RW5RUUlMSWdrMkFrd2dDQ0FXSUMxeVFRQkhRUUYwSWhZMkFxd0JJQWdnRlNBc2NrRUFSMEVCZENJVk5nS2NBU0FJSUJjZ0szSkJBRWRCQVhRaUlUWUNqQUVnQ0NBQklCOXlRUUJIUVFGMElpazJBbnhCQWlFQklBaEJBaUFQUVFCSFFRRjBJQVliSWhjMkFtd2dDRUVDSUFKQkFFZEJBWFFnQ2hzaUJqWUNYRUVDSVFJQ1FDQW5EUUFnTHcwQVFRRWhBaUFGTGdHVUFTQUZMZ0dJQVdzaUp5QW5RUjkxSWlkcUlDZHpRUU5MRFFBZ0JTNEJsZ0VnQlM0QmlnRnJJaWNnSjBFZmRTSW5haUFuYzBFRFN3MEFJQVVvQW5nZ0JTZ0NkRWNoQWdzZ0NDQUNOZ0pFQWtBZ0NpQVBjZzBBUVFFaEFTQUZMZ0djQVNBRkxnR1FBV3NpQ2lBS1FSOTFJZ3BxSUFwelFRTkxEUUFnQlM0Qm5nRWdCUzRCa2dGcklnb2dDa0VmZFNJS2FpQUtjMEVEU3cwQUlBVW9BbmdnQlNnQ2RFY2hBUXNnQ0NBQk5nSmtRUUloRDBFQ0lRb0NRQ0FmSUN0eURRQkJBU0VLSUFVdUFiUUJJQVV1QWFnQmF5SWZJQjlCSDNVaUgyb2dIM05CQTBzTkFDQUZMZ0cyQVNBRkxnR3FBV3NpSHlBZlFSOTFJaDlxSUI5elFRTkxEUUFnQlNnQ2dBRWdCU2dDZkVjaENnc2dDQ0FLTmdLRUFRSkFJQ3dnTFhJTkFFRUJJUThnQlM0QnZBRWdCUzRCc0FGckloOGdIMEVmZFNJZmFpQWZjMEVEU3cwQUlBVXVBYjRCSUFVdUFiSUJheUlmSUI5QkgzVWlIMm9nSDNOQkEwc05BQ0FGS0FLQUFTQUZLQUo4UnlFUEN5QUlJQTgyQXFRQkRBSUxJQVloQ1VFQ0N5SUNOZ0pFSUFVdkFTWWhKeUFJSUE4Z0ZuSkJBRWRCQVhRaUZqWUNyQUVnQ0NBUElCVnlRUUJIUVFGMElnODJBcVFCSUFoQkFpQXJRUUJIUVFGMElCVWJJaFUyQXB3QklBaEJBaUFYUVFCSFFRRjBJQUViSWhjMkFtd2dDRUVDSUFGQkFFZEJBWFFnQ2hzaUFUWUNaQ0FJUVFJZ0NrRUFSMEVCZENBaEd5SUdOZ0pjSUFnZ0h5QXRja0VBUjBFQmRDSWhOZ0tNQVNBSUlCOGdLWEpCQUVkQkFYUWlDallDaEFFZ0NDQXBJQ3h5UVFCSFFRRjBJaWsyQW53Z0NDQW5JQWxCLy84RGNYSkJBRWRCQVhRaUNUWUNUQXNnRENBTmNpQVFjaUFFY2lBSGNpQVVjaUFTY2lBVGNpQUxjaUFqY2lBY2NpQXFjaUFEY2lBT2NpQUNjaUFKY2lBR2NpQUJjaUFYY2lBcGNpQUtjaUFoY2lBVmNpQVBjaUFXY2tVTkFRc2dCU2dDRENFQ0lBZ2dCU2dDRUNJRElBVW9BaFFpQVdvaUJFRXpJQVJCTTBnYklnUkJBQ0FFUVFCS0cwSFFGMm90QUFBaUJEWUNJQ0FJSUFFZ0Ftb2lDVUV6SUFsQk0wZ2JJZ2xCQUNBSlFRQktHeUlHUVpBWGFpMEFBQ0lKTmdJY0lBZ2dCa0VEYkVHUUdHb2lCellDR0FKQUlCb05BQ0FCSUFVb0Fzd0JLQUlVSWdaSEJFQWdDQ0FCSUFacVFRRnFRUUYySWdZZ0Eyb2lEVUV6SUExQk0wZ2JJZzFCQUNBTlFRQktHMEhRRjJvdEFBQTJBZ2dnQ0NBQ0lBWnFJZ1pCTXlBR1FUTklHeUlHUVFBZ0JrRUFTaHNpQmtHUUYyb3RBQUEyQWdRZ0NDQUdRUU5zUVpBWWFqWUNBQXdCQ3lBSUlBUTJBZ2dnQ0NBSk5nSUVJQWdnQnpZQ0FBc2dNd1JBQWtBZ0FTQUZLQUxJQVNnQ0ZDSUdSd1JBSUFnZ0FTQUdha0VCYWtFQmRpSUJJQU5xSWdOQk15QURRVE5JR3lJRFFRQWdBMEVBU2h0QjBCZHFMUUFBTmdJVUlBZ2dBU0FDYWlJQlFUTWdBVUV6U0JzaUFVRUFJQUZCQUVvYklnRkJrQmRxTFFBQU5nSVFJQUZCQTJ4QmtCaHFJUWNNQVFzZ0NDQUVOZ0lVSUFnZ0NUWUNFQXNnQ0NBSE5nSU1DeUFsS0FJQUlDZ2dNR3dpRmtFSWRHb2dKa0VFZEdvaEEwRUFJUTVCQXlFQ0lBaEJNR29oQ3dOQUlBc29BZ1FpQVFSQUlBTWdBU0JFSUNBUUZnc2dDeWdDRENJQkJFQWdBMEVFYWlBQklDNGdJQkFXQ3lBTEtBSVVJZ0VFUUNBRFFRaHFJQUVnTGlBZ0VCWUxJQXNvQWh3aUFRUkFJQU5CREdvZ0FTQXVJQ0FRRmdzZ0FpRUpBa0FDUUFKQUlBc29BZ0FpQVNBTEtBSUlJZ2RIRFFBZ0FTQUxLQUlRUncwQUlBRWdDeWdDR0VjTkFDQUJSUTBDSUFnZ0RrRU1iR29pQWlnQ0NDRU5JQUlvQWdRaERpQUJRUVJKRFFFZ0RrRUNka0VDYWlFVFFSQWhCeUFESVFJRFFBSkFJQUlnR1dvaUJDMEFBQ0lHSUFJdEFBQWlDbXNpQVNBQlFSOTFJZ0ZxSUFGeklnRWdEazhOQUNBQ0lDUnFJaFF0QUFBaUVDQUdheUlQSUE5QkgzVWlEMm9nRDNNZ0RVOE5BQ0FDSUNCcUloVXRBQUFpRHlBS2F5SU1JQXhCSDNVaURHb2dESE1nRFU4TkFBSkFJQUVnRTBrRVFDQUNJQ0pxSWhjdEFBQWhEQUovSUEwZ0FpQWVhaUlCTFFBQUloSWdCbXNpSENBY1FSOTFJaHhxSUJ4elN3UkFRUU1oSXlBRUlBOGdCaUFLYWlBUWFpSUVRUUYwYWlBU2FrRUVha0VEZGpvQUFDQVVJQVFnRW1wQkFtcEJBblk2QUFBZ0JFRUVhaUFTUVFOc2FpRVNJQUlnUTJvdEFBQU1BUXRCQWlFaklBWWdEMnBCQW1vaEVpQUVJUUVnRUFzaEJDQUJJQklnQkVFQmRHb2dJM1k2QUFBZ0RDQUtheUlCSUFGQkgzVWlBV29nQVhNZ0RVOE5BU0FDSUJBZ0JpQVBhaUFLYWlJQlFRRjBhaUFNYWtFRWFrRURkam9BQUNBVklBRWdER3BCQW1wQkFuWTZBQUFnRnlBQklBeEJBMnhxSUFJZ1FHb3RBQUJCQVhScVFRUnFRUU4yT2dBQURBSUxJQVFnQmlBUGFpQVFRUUYwYWtFQ2FrRUNkam9BQUFzZ0FpQUtJQkJxSUE5QkFYUnFRUUpxUVFKMk9nQUFDeUFDUVFGcUlRSWdCMEVCYXlJSERRQUxEQUlMQW44Z0FRUkFJQWdnRGtFTWJHb2lFeUVVUVFRaERTQUJJQk1vQWdCcVFRRnJMUUFBSWdSQkFXb2hCa0VBSUFScklROGdBeUVDQTBBQ1FDQVRLQUlFSUFJZ0dXb2lGUzBBQUNJS0lBSXRBQUFpRUdzaUFTQUJRUjkxSWdGcUlBRnpUUTBBSUJRb0FnZ2lCeUFDSUNScUloY3RBQUFpRENBS2F5SUJJQUZCSDNVaUFXb2dBWE5ORFFBZ0FpQWdhaUljTFFBQUloSWdFR3NpQVNBQlFSOTFJZ0ZxSUFGeklBZFBEUUFnQkNFQklBY2dBaUFlYWkwQUFDSWpJQXBySWlFZ0lVRWZkU0loYWlBaGMwc0VRQ0FYSUF3Z0R5QUVJQW9nRUdwQkFXcEJBWFlnREVFQmRHc2dJMnBCQVhVaUFTQUJJQVJLR3lBQklBOUlHMm82QUFBZ0ZDZ0NDQ0VISUFZaEFRc2dGU0FLQW44Z0J5QUNJQ0pxTFFBQUloVWdFR3NpRnlBWFFSOTFJaGRxSUJkelN3UkFJQndnRWlBUElBUWdDaUFRYWtFQmFrRUJkaUFTUVFGMGF5QVZha0VCZFNJSElBUWdCMGdiSUFjZ0QwZ2Jham9BQUNBQlFRRnFJUUVMUVFBZ0FXc2lGUXNnQVNBTUlCSnJJQkFnQ210QkFuUnFRUVJxUVFOMUlnY2dBU0FIU0JzZ0J5QVZTQnNpQVdwQnNDNXFMUUFBT2dBQUlBSWdFQ0FCYTBHd0xtb3RBQUE2QUFBTElBSkJBV29oQWlBTlFRRnJJZzBOQUFzZ0N5Z0NDQ0VIQ3lBSEN3UkFRUVFoRFNBRFFRUnFJUUlnQ0NBT1FReHNhaUlUSVJRZ0J5QVRLQUlBYWtFQmF5MEFBQ0lFUVFGcUlRWkJBQ0FFYXlFUEEwQUNRQ0FUS0FJRUlBSWdHV29pRlMwQUFDSUtJQUl0QUFBaUVHc2lBU0FCUVI5MUlnRnFJQUZ6VFEwQUlCUW9BZ2dpQnlBQ0lDUnFJaGN0QUFBaURDQUtheUlCSUFGQkgzVWlBV29nQVhOTkRRQWdBaUFnYWlJY0xRQUFJaElnRUdzaUFTQUJRUjkxSWdGcUlBRnpJQWRQRFFBZ0JDRUJJQWNnQWlBZWFpMEFBQ0lqSUFwcklpRWdJVUVmZFNJaGFpQWhjMHNFUUNBWElBd2dEeUFFSUFvZ0VHcEJBV3BCQVhZZ0RFRUJkR3NnSTJwQkFYVWlBU0FCSUFSS0d5QUJJQTlJRzJvNkFBQWdGQ2dDQ0NFSElBWWhBUXNnRlNBS0FuOGdCeUFDSUNKcUxRQUFJaFVnRUdzaUZ5QVhRUjkxSWhkcUlCZHpTd1JBSUJ3Z0VpQVBJQVFnQ2lBUWFrRUJha0VCZGlBU1FRRjBheUFWYWtFQmRTSUhJQVFnQjBnYklBY2dEMGdiYWpvQUFDQUJRUUZxSVFFTFFRQWdBV3NpRlFzZ0FTQU1JQkpySUJBZ0NtdEJBblJxUVFScVFRTjFJZ2NnQVNBSFNCc2dCeUFWU0JzaUFXcEJzQzVxTFFBQU9nQUFJQUlnRUNBQmEwR3dMbW90QUFBNkFBQUxJQUpCQVdvaEFpQU5RUUZySWcwTkFBc0xJQXNvQWhBaUFRUkFJQU5CQ0dvaEFpQUlJQTVCREd4cUloTWhGRUVFSVEwZ0FTQVRLQUlBYWtFQmF5MEFBQ0lFUVFGcUlRWkJBQ0FFYXlFUEEwQUNRQ0FUS0FJRUlBSWdHV29pRlMwQUFDSUtJQUl0QUFBaUVHc2lBU0FCUVI5MUlnRnFJQUZ6VFEwQUlCUW9BZ2dpQnlBQ0lDUnFJaGN0QUFBaURDQUtheUlCSUFGQkgzVWlBV29nQVhOTkRRQWdBaUFnYWlJY0xRQUFJaElnRUdzaUFTQUJRUjkxSWdGcUlBRnpJQWRQRFFBZ0JDRUJJQWNnQWlBZWFpMEFBQ0lqSUFwcklpRWdJVUVmZFNJaGFpQWhjMHNFUUNBWElBd2dEeUFFSUFvZ0VHcEJBV3BCQVhZZ0RFRUJkR3NnSTJwQkFYVWlBU0FCSUFSS0d5QUJJQTlJRzJvNkFBQWdGQ2dDQ0NFSElBWWhBUXNnRlNBS0FuOGdCeUFDSUNKcUxRQUFJaFVnRUdzaUZ5QVhRUjkxSWhkcUlCZHpTd1JBSUJ3Z0VpQVBJQVFnQ2lBUWFrRUJha0VCZGlBU1FRRjBheUFWYWtFQmRTSUhJQVFnQjBnYklBY2dEMGdiYWpvQUFDQUJRUUZxSVFFTFFRQWdBV3NpRlFzZ0FTQU1JQkpySUJBZ0NtdEJBblJxUVFScVFRTjFJZ2NnQVNBSFNCc2dCeUFWU0JzaUFXcEJzQzVxTFFBQU9nQUFJQUlnRUNBQmEwR3dMbW90QUFBNkFBQUxJQUpCQVdvaEFpQU5RUUZySWcwTkFBc0xJQXNvQWhnaUFVVU5BU0FEUVF4cUlRSWdDQ0FPUVF4c2FpSVNJUk5CQkNFTklBRWdFaWdDQUdwQkFXc3RBQUFpQkVFQmFpRUdRUUFnQkdzaER3TkFBa0FnRWlnQ0JDQUNJQmxxSWhRdEFBQWlDaUFDTFFBQUloQnJJZ0VnQVVFZmRTSUJhaUFCYzAwTkFDQVRLQUlJSWdjZ0FpQWthaUlWTFFBQUlnd2dDbXNpQVNBQlFSOTFJZ0ZxSUFGelRRMEFJQUlnSUdvaUZ5MEFBQ0lPSUJCcklnRWdBVUVmZFNJQmFpQUJjeUFIVHcwQUlBUWhBU0FISUFJZ0htb3RBQUFpSENBS2F5SWpJQ05CSDNVaUkyb2dJM05MQkVBZ0ZTQU1JQThnQkNBS0lCQnFRUUZxUVFGMklBeEJBWFJySUJ4cVFRRjFJZ0VnQVNBRVNoc2dBU0FQU0J0cU9nQUFJQk1vQWdnaEJ5QUdJUUVMSUJRZ0NnSi9JQWNnQWlBaWFpMEFBQ0lVSUJCckloVWdGVUVmZFNJVmFpQVZjMHNFUUNBWElBNGdEeUFFSUFvZ0VHcEJBV3BCQVhZZ0RrRUJkR3NnRkdwQkFYVWlCeUFFSUFkSUd5QUhJQTlJRzJvNkFBQWdBVUVCYWlFQkMwRUFJQUZySWhRTElBRWdEQ0FPYXlBUUlBcHJRUUowYWtFRWFrRURkU0lISUFFZ0IwZ2JJQWNnRkVnYklnRnFRYkF1YWkwQUFEb0FBQ0FDSUJBZ0FXdEJzQzVxTFFBQU9nQUFDeUFDUVFGcUlRSWdEVUVCYXlJTkRRQUxEQUVMSUFFZ0FpZ0NBR3BCQVdzdEFBQWlBVUVCYWlFR1FRQWdBV3NoRDBFUUlRY2dBeUVDQTBBQ1FDQUNJQmxxSWhNdEFBQWlDaUFDTFFBQUloQnJJZ1FnQkVFZmRTSUVhaUFFY3lBT1R3MEFJQUlnSkdvaUZDMEFBQ0lNSUFwcklnUWdCRUVmZFNJRWFpQUVjeUFOVHcwQUlBSWdJR29pRlMwQUFDSVNJQkJySWdRZ0JFRWZkU0lFYWlBRWN5QU5UdzBBSUFFaEJDQU5JQUlnSG1vdEFBQWlGeUFLYXlJY0lCeEJIM1VpSEdvZ0hITkxCRUFnRkNBTUlBOGdBU0FLSUJCcVFRRnFRUUYySUF4QkFYUnJJQmRxUVFGMUlnUWdBU0FFU0JzZ0JDQVBTQnRxT2dBQUlBWWhCQXNnRXlBS0FuOGdEU0FDSUNKcUxRQUFJaE1nRUdzaUZDQVVRUjkxSWhScUlCUnpTd1JBSUJVZ0VpQVBJQUVnQ2lBUWFrRUJha0VCZGlBU1FRRjBheUFUYWtFQmRTSVRJQUVnRTBnYklBOGdFMG9iYWpvQUFDQUVRUUZxSVFRTFFRQWdCR3NpRXdzZ0JDQU1JQkpySUJBZ0NtdEJBblJxUVFScVFRTjFJZ3dnQkNBTVNCc2dEQ0FUU0JzaUJHcEJzQzVxTFFBQU9nQUFJQUlnRUNBRWEwR3dMbW90QUFBNkFBQUxJQUpCQVdvaEFpQUhRUUZySWdjTkFBc0xJQWxCQVdzaEFpQUxRU0JxSVFzZ0F5QS9haUVEUVFJaERpQUpEUUFMSUFVb0Fnd2hBU0FJSUFVb0FoQWlBeUFGS0FJVUlnUWdCU2dDR0NJSmFpSUNRVE1nQWtFelNCc2lBa0VBSUFKQkFFb2JRUUowUWVBOWFpZ0NBQ0lDYWlJR1FUTWdCa0V6U0JzaUJrRUFJQVpCQUVvYlFkQVhhaTBBQUNJR05nSWdJQWdnQVNBQ2FpSUhRVE1nQjBFelNCc2lCMEVBSUFkQkFFb2JJZ2RCa0JkcUxRQUFJZzAyQWh3Z0NDQUhRUU5zUVpBWWFpSUhOZ0lZQWtBZ0dnMEFJQVFnQlNnQ3pBRW9BaFFpQzBjRVFDQUlJQUlnQ1NBTGFpSUxRVE1nQzBFelNCc2lDMEVBSUF0QkFFb2JRUUowUWVBOWFpZ0NBR3BCQVdwQkFYWWlDeUFEYWlJS1FUTWdDa0V6U0JzaUNrRUFJQXBCQUVvYlFkQVhhaTBBQURZQ0NDQUlJQUVnQzJvaUMwRXpJQXRCTTBnYklndEJBQ0FMUVFCS0d5SUxRWkFYYWkwQUFEWUNCQ0FJSUF0QkEyeEJrQmhxTmdJQURBRUxJQWdnQmpZQ0NDQUlJQTAyQWdRZ0NDQUhOZ0lBQ3lBekJFQUNRQ0FFSUFVb0FzZ0JLQUlVSWd0SEJFQWdDQ0FESUFJZ0NTQUxhaUlFUVRNZ0JFRXpTQnNpQkVFQUlBUkJBRW9iUVFKMFFlQTlhaWdDQUdwQkFXcEJBWFlpQW1vaUEwRXpJQU5CTTBnYklnTkJBQ0FEUVFCS0cwSFFGMm90QUFBMkFoUWdDQ0FCSUFKcUlnRkJNeUFCUVROSUd5SUJRUUFnQVVFQVNoc2lBVUdRRjJvdEFBQTJBaEFnQVVFRGJFR1FHR29oQnd3QkN5QUlJQVkyQWhRZ0NDQU5OZ0lRQ3lBSUlBYzJBZ3dMSUNVb0FnQWdRbW9nRmtFR2RHb2dKa0VEZEdvaUFpQkJhaUVOUVFFaEQwRUFJUkFnQ0VFd2FpRUhBMEFDUUNBSEtBSUVJZ05GRFFBQ1FDQUlLQUlRSUFKQkFXc2lDeTBBQUNJQklBSXRBQUFpQkdzaUNTQUpRUjkxSWdscUlBbHpUUTBBSUFnb0FoUWlDaUFDUVFKckxRQUFJZ2tnQVdzaUJpQUdRUjkxSWdacUlBWnpUUTBBSUFvZ0FpMEFBU0lHSUFScklnd2dERUVmZFNJTWFpQU1jMDBOQUNBRFFRTk5CRUFnQ3lBQklBTWdDQ2dDREdwQkFXc3RBQUFpQzBGL2N5SUtJQXRCQVdvaUN5QUVJQUZyUVFKMElBWnJJQWxxUVFScVFRTjFJZ2tnQ1NBTFNoc2dDU0FLU0JzaUNXcEJzQzVxTFFBQU9nQUFJQUlnQkNBSmEwR3dMbW90QUFBNkFBQU1BUXNnQ3lBQklBWnFJQWxCQVhScVFRSnFRUUoyT2dBQUlBSWdCQ0FHUVFGMGFpQUpha0VDYWtFQ2Rqb0FBQXNDUUNBSUtBSVFJQUlnSFdvaUFVRUJheUlLTFFBQUlnUWdBUzBBQUNJSmF5SUdJQVpCSDNVaUJtb2dCbk5ORFFBZ0NDZ0NGQ0lNSUFGQkFtc3RBQUFpQmlBRWF5SUxJQXRCSDNVaUMyb2dDM05ORFFBZ0RDQUJMUUFCSWdzZ0NXc2lEaUFPUVI5MUlnNXFJQTV6VFEwQUlBTkJBMDBFUUNBS0lBTWdDQ2dDREdwQkFXc3RBQUFpQTBGL2N5SUtJQU5CQVdvaURDQUpJQVJyUVFKMElBdHJJQVpxUVFScVFRTjFJZ01nQXlBTVNoc2dBeUFLU0JzaUF5QUVha0d3TG1vdEFBQTZBQUFnQVNBSklBTnJRYkF1YWkwQUFEb0FBQXdCQ3lBS0lBUWdDMm9nQmtFQmRHcEJBbXBCQW5ZNkFBQWdBU0FKSUF0QkFYUnFJQVpxUVFKcVFRSjJPZ0FBQ3lBSEtBSUVJUU1DUUNBSUtBSVFJQTFCQVdzaUN5MEFBQ0lCSUEwdEFBQWlCR3NpQ1NBSlFSOTFJZ2xxSUFselRRMEFJQWdvQWhRaUNpQU5RUUpyTFFBQUlna2dBV3NpQmlBR1FSOTFJZ1pxSUFaelRRMEFJQW9nRFMwQUFTSUdJQVJySWd3Z0RFRWZkU0lNYWlBTWMwME5BQ0FEUVFOTkJFQWdDeUFCSUFNZ0NDZ0NER3BCQVdzdEFBQWlDMEYvY3lJS0lBdEJBV29pQ3lBRUlBRnJRUUowSUFacklBbHFRUVJxUVFOMUlna2dDU0FMU2hzZ0NTQUtTQnNpQ1dwQnNDNXFMUUFBT2dBQUlBMGdCQ0FKYTBHd0xtb3RBQUE2QUFBTUFRc2dDeUFCSUFacUlBbEJBWFJxUVFKcVFRSjJPZ0FBSUEwZ0JDQUdRUUYwYWlBSmFrRUNha0VDZGpvQUFBc2dDQ2dDRUNBTklCMXFJZ0ZCQVdzaUNpMEFBQ0lFSUFFdEFBQWlDV3NpQmlBR1FSOTFJZ1pxSUFaelRRMEFJQWdvQWhRaURDQUJRUUpyTFFBQUlnWWdCR3NpQ3lBTFFSOTFJZ3RxSUF0elRRMEFJQXdnQVMwQUFTSUxJQWxySWc0Z0RrRWZkU0lPYWlBT2MwME5BQ0FEUVFOTkJFQWdDaUFESUFnb0FneHFRUUZyTFFBQUlnTkJmM01pQ2lBRFFRRnFJZ3dnQ1NBRWEwRUNkQ0FMYXlBR2FrRUVha0VEZFNJRElBTWdERW9iSUFNZ0NrZ2JJZ01nQkdwQnNDNXFMUUFBT2dBQUlBRWdDU0FEYTBHd0xtb3RBQUE2QUFBTUFRc2dDaUFFSUF0cUlBWkJBWFJxUVFKcVFRSjJPZ0FBSUFFZ0NTQUxRUUYwYWlBR2FrRUNha0VDZGpvQUFBc0NRQ0FIS0FJa0lnTkZEUUFDUUNBSUtBSVFJQUlnSUdvaUFVRUJheUlLTFFBQUlnUWdBUzBBQUNJSmF5SUdJQVpCSDNVaUJtb2dCbk5ORFFBZ0NDZ0NGQ0lNSUFGQkFtc3RBQUFpQmlBRWF5SUxJQXRCSDNVaUMyb2dDM05ORFFBZ0RDQUJMUUFCSWdzZ0NXc2lEaUFPUVI5MUlnNXFJQTV6VFEwQUlBTkJBMDBFUUNBS0lBUWdBeUFJS0FJTWFrRUJheTBBQUNJS1FYOXpJZ3dnQ2tFQmFpSUtJQWtnQkd0QkFuUWdDMnNnQm1wQkJHcEJBM1VpQmlBR0lBcEtHeUFHSUF4SUd5SUdha0d3TG1vdEFBQTZBQUFnQVNBSklBWnJRYkF1YWkwQUFEb0FBQXdCQ3lBS0lBUWdDMm9nQmtFQmRHcEJBbXBCQW5ZNkFBQWdBU0FKSUF0QkFYUnFJQVpxUVFKcVFRSjJPZ0FBQ3dKQUlBZ29BaEFnQVNBZGFpSUJRUUZySWdvdEFBQWlCQ0FCTFFBQUlnbHJJZ1lnQmtFZmRTSUdhaUFHYzAwTkFDQUlLQUlVSWd3Z0FVRUNheTBBQUNJR0lBUnJJZ3NnQzBFZmRTSUxhaUFMYzAwTkFDQU1JQUV0QUFFaUN5QUpheUlPSUE1QkgzVWlEbW9nRG5OTkRRQWdBMEVEVFFSQUlBb2dBeUFJS0FJTWFrRUJheTBBQUNJRFFYOXpJZ29nQTBFQmFpSU1JQWtnQkd0QkFuUWdDMnNnQm1wQkJHcEJBM1VpQXlBRElBeEtHeUFESUFwSUd5SURJQVJxUWJBdWFpMEFBRG9BQUNBQklBa2dBMnRCc0M1cUxRQUFPZ0FBREFFTElBb2dCQ0FMYWlBR1FRRjBha0VDYWtFQ2Rqb0FBQ0FCSUFrZ0MwRUJkR29nQm1wQkFtcEJBblk2QUFBTElBY29BaVFoQXdKQUlBZ29BaEFnRFNBZ2FpSUJRUUZySWdvdEFBQWlCQ0FCTFFBQUlnbHJJZ1lnQmtFZmRTSUdhaUFHYzAwTkFDQUlLQUlVSWd3Z0FVRUNheTBBQUNJR0lBUnJJZ3NnQzBFZmRTSUxhaUFMYzAwTkFDQU1JQUV0QUFFaUN5QUpheUlPSUE1QkgzVWlEbW9nRG5OTkRRQWdBMEVEVFFSQUlBb2dCQ0FESUFnb0FneHFRUUZyTFFBQUlncEJmM01pRENBS1FRRnFJZ29nQ1NBRWEwRUNkQ0FMYXlBR2FrRUVha0VEZFNJR0lBWWdDa29iSUFZZ0RFZ2JJZ1pxUWJBdWFpMEFBRG9BQUNBQklBa2dCbXRCc0M1cUxRQUFPZ0FBREFFTElBb2dCQ0FMYWlBR1FRRjBha0VDYWtFQ2Rqb0FBQ0FCSUFrZ0MwRUJkR29nQm1wQkFtcEJBblk2QUFBTElBZ29BaEFnQVNBZGFpSUJRUUZySWdvdEFBQWlCQ0FCTFFBQUlnbHJJZ1lnQmtFZmRTSUdhaUFHYzAwTkFDQUlLQUlVSWd3Z0FVRUNheTBBQUNJR0lBUnJJZ3NnQzBFZmRTSUxhaUFMYzAwTkFDQU1JQUV0QUFFaUN5QUpheUlPSUE1QkgzVWlEbW9nRG5OTkRRQWdBMEVEVFFSQUlBb2dBeUFJS0FJTWFrRUJheTBBQUNJRFFYOXpJZ29nQTBFQmFpSU1JQWtnQkd0QkFuUWdDMnNnQm1wQkJHcEJBM1VpQXlBRElBeEtHeUFESUFwSUd5SURJQVJxUWJBdWFpMEFBRG9BQUNBQklBa2dBMnRCc0M1cUxRQUFPZ0FBREFFTElBb2dCQ0FMYWlBR1FRRjBha0VDYWtFQ2Rqb0FBQ0FCSUFrZ0MwRUJkR29nQm1wQkFtcEJBblk2QUFBTEFrQWdCeWdDRkNJRFJRMEFJQUpCQkdvaEN3SkFJQWdvQWh3Z0FpMEFBeUlCSUFJdEFBUWlCR3NpQ1NBSlFSOTFJZ2xxSUFselRRMEFJQWdvQWlBaUNpQUNMUUFDSWdrZ0FXc2lCaUFHUVI5MUlnWnFJQVp6VFEwQUlBb2dBaTBBQlNJR0lBUnJJZ3dnREVFZmRTSU1haUFNYzAwTkFDQURRUU5OQkVBZ0FpQUVJQU1nQ0NnQ0dHcEJBV3N0QUFBaUNrRi9jeUlNSUFwQkFXb2lDaUFFSUFGclFRSjBJQVpySUFscVFRUnFRUU4xSWdRZ0JDQUtTaHNnQkNBTVNCc2lCR3RCc0M1cUxRQUFPZ0FFSUFJZ0FTQUVha0d3TG1vdEFBQTZBQU1NQVFzZ0FpQUJJQVpxSUFsQkFYUnFRUUpxUVFKMk9nQURJQUlnQkNBR1FRRjBhaUFKYWtFQ2FrRUNkam9BQkFzQ1FDQUlLQUljSUFzZ0hXb2lBVUVCYXlJS0xRQUFJZ1FnQVMwQUFDSUpheUlHSUFaQkgzVWlCbW9nQm5OTkRRQWdDQ2dDSUNJTUlBRkJBbXN0QUFBaUJpQUVheUlMSUF0QkgzVWlDMm9nQzNOTkRRQWdEQ0FCTFFBQklnc2dDV3NpRGlBT1FSOTFJZzVxSUE1elRRMEFJQU5CQTAwRVFDQUtJQU1nQ0NnQ0dHcEJBV3N0QUFBaUEwRi9jeUlLSUFOQkFXb2lEQ0FKSUFSclFRSjBJQXRySUFacVFRUnFRUU4xSWdNZ0F5QU1TaHNnQXlBS1NCc2lBeUFFYWtHd0xtb3RBQUE2QUFBZ0FTQUpJQU5yUWJBdWFpMEFBRG9BQUF3QkN5QUtJQVFnQzJvZ0JrRUJkR3BCQW1wQkFuWTZBQUFnQVNBSklBdEJBWFJxSUFacVFRSnFRUUoyT2dBQUN5QU5RUVJxSVFzZ0J5Z0NGQ0VEQWtBZ0NDZ0NIQ0FOTFFBRElnRWdEUzBBQkNJRWF5SUpJQWxCSDNVaUNXb2dDWE5ORFFBZ0NDZ0NJQ0lLSUEwdEFBSWlDU0FCYXlJR0lBWkJIM1VpQm1vZ0JuTk5EUUFnQ2lBTkxRQUZJZ1lnQkdzaURDQU1RUjkxSWd4cUlBeHpUUTBBSUFOQkEwMEVRQ0FOSUFRZ0F5QUlLQUlZYWtFQmF5MEFBQ0lLUVg5eklnd2dDa0VCYWlJS0lBUWdBV3RCQW5RZ0Jtc2dDV3BCQkdwQkEzVWlCQ0FFSUFwS0d5QUVJQXhJR3lJRWEwR3dMbW90QUFBNkFBUWdEU0FCSUFScVFiQXVhaTBBQURvQUF3d0JDeUFOSUFFZ0Jtb2dDVUVCZEdwQkFtcEJBblk2QUFNZ0RTQUVJQVpCQVhScUlBbHFRUUpxUVFKMk9nQUVDeUFJS0FJY0lBc2dIV29pQVVFQmF5SUtMUUFBSWdRZ0FTMEFBQ0lKYXlJR0lBWkJIM1VpQm1vZ0JuTk5EUUFnQ0NnQ0lDSU1JQUZCQW1zdEFBQWlCaUFFYXlJTElBdEJIM1VpQzJvZ0MzTk5EUUFnRENBQkxRQUJJZ3NnQ1dzaURpQU9RUjkxSWc1cUlBNXpUUTBBSUFOQkEwMEVRQ0FLSUFNZ0NDZ0NHR3BCQVdzdEFBQWlBMEYvY3lJS0lBTkJBV29pRENBSklBUnJRUUowSUF0cklBWnFRUVJxUVFOMUlnTWdBeUFNU2hzZ0F5QUtTQnNpQXlBRWFrR3dMbW90QUFBNkFBQWdBU0FKSUFOclFiQXVhaTBBQURvQUFBd0JDeUFLSUFRZ0Myb2dCa0VCZEdwQkFtcEJBblk2QUFBZ0FTQUpJQXRCQVhScUlBWnFRUUpxUVFKMk9nQUFDd0pBSUFjb0FqUWlBMFVOQUNBQ0lDQnFJZ0ZCQkdvaEJBSkFJQWdvQWh3Z0FTMEFBeUlKSUFFdEFBUWlCbXNpQ3lBTFFSOTFJZ3RxSUF0elRRMEFJQWdvQWlBaURDQUVRUUpyTFFBQUlnc2dDV3NpQ2lBS1FSOTFJZ3BxSUFwelRRMEFJQXdnQVMwQUJTSUtJQVpySWc0Z0RrRWZkU0lPYWlBT2MwME5BQ0FEUVFOTkJFQWdBU0FESUFnb0FoaHFRUUZyTFFBQUlnRkJmM01pRENBQlFRRnFJZzRnQmlBSmEwRUNkQ0FLYXlBTGFrRUVha0VEZFNJQklBRWdEa29iSUFFZ0RFZ2JJZ0VnQ1dwQnNDNXFMUUFBT2dBRElBUWdCaUFCYTBHd0xtb3RBQUE2QUFBTUFRc2dBU0FKSUFwcUlBdEJBWFJxUVFKcVFRSjJPZ0FESUFRZ0JpQUtRUUYwYWlBTGFrRUNha0VDZGpvQUFBc0NRQ0FJS0FJY0lBUWdIV29pQVVFQmF5SUtMUUFBSWdRZ0FTMEFBQ0lKYXlJR0lBWkJIM1VpQm1vZ0JuTk5EUUFnQ0NnQ0lDSU1JQUZCQW1zdEFBQWlCaUFFYXlJTElBdEJIM1VpQzJvZ0MzTk5EUUFnRENBQkxRQUJJZ3NnQ1dzaURpQU9RUjkxSWc1cUlBNXpUUTBBSUFOQkEwMEVRQ0FLSUFNZ0NDZ0NHR3BCQVdzdEFBQWlBMEYvY3lJS0lBTkJBV29pRENBSklBUnJRUUowSUF0cklBWnFRUVJxUVFOMUlnTWdBeUFNU2hzZ0F5QUtTQnNpQXlBRWFrR3dMbW90QUFBNkFBQWdBU0FKSUFOclFiQXVhaTBBQURvQUFBd0JDeUFLSUFRZ0Myb2dCa0VCZEdwQkFtcEJBblk2QUFBZ0FTQUpJQXRCQVhScUlBWnFRUUpxUVFKMk9nQUFDeUFOSUNCcUlnRkJCR29oQXlBSEtBSTBJUVFDUUNBSUtBSWNJQUV0QUFNaUNTQUJMUUFFSWdacklnc2dDMEVmZFNJTGFpQUxjMDBOQUNBSUtBSWdJZ3dnQTBFQ2F5MEFBQ0lMSUFscklnb2dDa0VmZFNJS2FpQUtjMDBOQUNBTUlBRXRBQVVpQ2lBR2F5SU9JQTVCSDNVaURtb2dEbk5ORFFBZ0JFRURUUVJBSUFFZ0JDQUlLQUlZYWtFQmF5MEFBQ0lCUVg5eklnd2dBVUVCYWlJT0lBWWdDV3RCQW5RZ0Ntc2dDMnBCQkdwQkEzVWlBU0FCSUE1S0d5QUJJQXhJR3lJQklBbHFRYkF1YWkwQUFEb0FBeUFESUFZZ0FXdEJzQzVxTFFBQU9nQUFEQUVMSUFFZ0NTQUthaUFMUVFGMGFrRUNha0VDZGpvQUF5QURJQVlnQ2tFQmRHb2dDMnBCQW1wQkFuWTZBQUFMSUFnb0Fod2dBeUFkYWlJQlFRRnJJZ290QUFBaUF5QUJMUUFBSWdscklnWWdCa0VmZFNJR2FpQUdjMDBOQUNBSUtBSWdJZ3dnQVVFQ2F5MEFBQ0lHSUFOcklnc2dDMEVmZFNJTGFpQUxjMDBOQUNBTUlBRXRBQUVpQ3lBSmF5SU9JQTVCSDNVaURtb2dEbk5ORFFBZ0JFRURUUVJBSUFvZ0F5QUVJQWdvQWhocVFRRnJMUUFBSWdSQmYzTWlDaUFFUVFGcUlnd2dDU0FEYTBFQ2RDQUxheUFHYWtFRWFrRURkU0lFSUFRZ0RFb2JJQVFnQ2tnYklnUnFRYkF1YWkwQUFEb0FBQ0FCSUFrZ0JHdEJzQzVxTFFBQU9nQUFEQUVMSUFvZ0F5QUxhaUFHUVFGMGFrRUNha0VDZGpvQUFDQUJJQWtnQzBFQmRHb2dCbXBCQW1wQkFuWTZBQUFMQWtBQ1FDQUhLQUlBSWdFZ0J5Z0NDQ0lNUncwQUlBRWdCeWdDRUVjTkFDQUJJQWNvQWhoSERRQWdBVVVOQVNBQ0lBRWdDQ0FRUVF4c2FpSUJJQjBRR2lBTklBY29BZ0FnQVNBZEVCb01BUXNnQVFSQUlBZ2dFRUVNYkdvaUF5RUpJQUVnQXlnQ0FHcEJBV3N0QUFBaUJFRi9jeUVCSUFSQkFXb2hCZ0pBSUFNb0FnUWlCQ0FDSUJGcUlnd3RBQUFpQ3lBQ0xRQUFJZ3BySWc0Z0RrRWZkU0lPYWlBT2MwME5BQ0FKS0FJSUlnNGdBaUFiYWkwQUFDSVNJQXRySWhNZ0UwRWZkU0lUYWlBVGMwME5BQ0FPSUFJZ0hXb3RBQUFpRXlBS2F5SVVJQlJCSDNVaUZHb2dGSE5ORFFBZ0RDQUJJQVlnQ2lBTGEwRUNkQ0FUYXlBU2FrRUVha0VEZFNJRUlBUWdCa29iSUFFZ0JFb2JJZ1FnQzJwQnNDNXFMUUFBT2dBQUlBSWdDaUFFYTBHd0xtb3RBQUE2QUFBZ0F5Z0NCQ0VFQ3dKQUlBSkJBV29pQ3lBUmFpSU9MUUFBSWdvZ0FpMEFBU0lNYXlJU0lCSkJIM1VpRW1vZ0VuTWdCRThOQUNBSktBSUlJaElnQ3lBYmFpMEFBQ0lUSUFwckloUWdGRUVmZFNJVWFpQVVjMDBOQUNBU0lBc2dIV290QUFBaUZDQU1heUlXSUJaQkgzVWlGbW9nRm5OTkRRQWdEaUFCSUFZZ0RDQUthMEVDZENBVWF5QVRha0VFYWtFRGRTSUVJQVFnQmtvYklBRWdCRW9iSWdFZ0NtcEJzQzVxTFFBQU9nQUFJQXNnRENBQmEwR3dMbW90QUFBNkFBQWdBeWdDQkNFRUN5QUhLQUlBSUFNb0FnQnFRUUZyTFFBQUlnWkJmM01oQVNBR1FRRnFJUVlDUUNBTklCRnFJZ3d0QUFBaUN5QU5MUUFBSWdwcklnNGdEa0VmZFNJT2FpQU9jeUFFVHcwQUlBa29BZ2dpRGlBTklCdHFMUUFBSWhJZ0Myc2lFeUFUUVI5MUloTnFJQk56VFEwQUlBNGdEU0FkYWkwQUFDSVRJQXBySWhRZ0ZFRWZkU0lVYWlBVWMwME5BQ0FNSUFFZ0JpQUtJQXRyUVFKMElCTnJJQkpxUVFScVFRTjFJZ1FnQkNBR1Noc2dBU0FFU2hzaUJDQUxha0d3TG1vdEFBQTZBQUFnRFNBS0lBUnJRYkF1YWkwQUFEb0FBQ0FES0FJRUlRUUxBa0FnQkNBTlFRRnFJZ01nRVdvaURDMEFBQ0lMSUEwdEFBRWlDbXNpRGlBT1FSOTFJZzVxSUE1elRRMEFJQWtvQWdnaUJDQURJQnRxTFFBQUlna2dDMnNpRGlBT1FSOTFJZzVxSUE1elRRMEFJQVFnQXlBZGFpMEFBQ0lPSUFwckloSWdFa0VmZFNJU2FpQVNjMDBOQUNBTUlBc2dBU0FHSUFvZ0MydEJBblFnRG1zZ0NXcEJCR3BCQTNVaUJDQUVJQVpLR3lBQklBUktHeUlCYWtHd0xtb3RBQUE2QUFBZ0F5QUtJQUZyUWJBdWFpMEFBRG9BQUFzZ0J5Z0NDQ0VNQ3dKQUlBeEZEUUFnQ0NBUVFReHNhaUlCSVFNZ0RDQUJLQUlBYWtFQmF5MEFBQ0lKUVg5eklRUWdDVUVCYWlFSkFrQWdBU2dDQkNJTUlBSkJBbW9pQmlBUmFpSU9MUUFBSWdzZ0FpMEFBaUlLYXlJU0lCSkJIM1VpRW1vZ0VuTk5EUUFnQXlnQ0NDSVNJQVlnRzJvdEFBQWlFeUFMYXlJVUlCUkJIM1VpRkdvZ0ZITk5EUUFnRWlBR0lCMXFMUUFBSWhRZ0Ntc2lGaUFXUVI5MUloWnFJQlp6VFEwQUlBNGdDeUFFSUFrZ0NpQUxhMEVDZENBVWF5QVRha0VFYWtFRGRTSU1JQWtnREVnYklBUWdERW9iSWd4cVFiQXVhaTBBQURvQUFDQUdJQW9nREd0QnNDNXFMUUFBT2dBQUlBRW9BZ1FoREFzQ1FDQUNRUU5xSWdZZ0VXb2lEaTBBQUNJTElBSXRBQU1pQ21zaUVpQVNRUjkxSWhKcUlCSnpJQXhQRFFBZ0F5Z0NDQ0lTSUFZZ0cyb3RBQUFpRXlBTGF5SVVJQlJCSDNVaUZHb2dGSE5ORFFBZ0VpQUdJQjFxTFFBQUloUWdDbXNpRmlBV1FSOTFJaFpxSUJaelRRMEFJQTRnQ3lBRUlBa2dDaUFMYTBFQ2RDQVVheUFUYWtFRWFrRURkU0lNSUFrZ0RFZ2JJQVFnREVvYklnUnFRYkF1YWkwQUFEb0FBQ0FHSUFvZ0JHdEJzQzVxTFFBQU9nQUFJQUVvQWdRaERBc2dCeWdDQ0NBQktBSUFha0VCYXkwQUFDSUpRWDl6SVFRZ0NVRUJhaUVKQWtBZ0RVRUNhaUlHSUJGcUlnNHRBQUFpQ3lBTkxRQUNJZ3BySWhJZ0VrRWZkU0lTYWlBU2N5QU1UdzBBSUFNb0FnZ2lFaUFHSUJ0cUxRQUFJaE1nQzJzaUZDQVVRUjkxSWhScUlCUnpUUTBBSUJJZ0JpQWRhaTBBQUNJVUlBcHJJaFlnRmtFZmRTSVdhaUFXYzAwTkFDQU9JQXNnQkNBSklBb2dDMnRCQW5RZ0ZHc2dFMnBCQkdwQkEzVWlEQ0FKSUF4SUd5QUVJQXhLR3lJTWFrR3dMbW90QUFBNkFBQWdCaUFLSUF4clFiQXVhaTBBQURvQUFDQUJLQUlFSVF3TElBd2dEVUVEYWlJQklCRnFJZ290QUFBaUJpQU5MUUFESWd0cklnNGdEa0VmZFNJT2FpQU9jMDBOQUNBREtBSUlJZ01nQVNBYmFpMEFBQ0lNSUFacklnNGdEa0VmZFNJT2FpQU9jMDBOQUNBRElBRWdIV290QUFBaURpQUxheUlTSUJKQkgzVWlFbW9nRW5OTkRRQWdDaUFFSUFrZ0N5QUdhMEVDZENBT2F5QU1ha0VFYWtFRGRTSURJQU1nQ1VvYklBTWdCRWdiSWdNZ0JtcEJzQzVxTFFBQU9nQUFJQUVnQ3lBRGEwR3dMbW90QUFBNkFBQUxBa0FnQnlnQ0VDSUVSUTBBSUFnZ0VFRU1iR29pQVNFRElBUWdBU2dDQUdwQkFXc3RBQUFpQ1VGL2N5RUVJQWxCQVdvaENRSkFJQUVvQWdRaURDQUNRUVJxSWdZZ0VXb2lEaTBBQUNJTElBSXRBQVFpQ21zaUVpQVNRUjkxSWhKcUlCSnpUUTBBSUFNb0FnZ2lFaUFHSUJ0cUxRQUFJaE1nQzJzaUZDQVVRUjkxSWhScUlCUnpUUTBBSUJJZ0JpQWRhaTBBQUNJVUlBcHJJaFlnRmtFZmRTSVdhaUFXYzAwTkFDQU9JQXNnQkNBSklBb2dDMnRCQW5RZ0ZHc2dFMnBCQkdwQkEzVWlEQ0FKSUF4SUd5QUVJQXhLR3lJTWFrR3dMbW90QUFBNkFBQWdCaUFLSUF4clFiQXVhaTBBQURvQUFDQUJLQUlFSVF3TEFrQWdBa0VGYWlJR0lCRnFJZzR0QUFBaUN5QUNMUUFGSWdwckloSWdFa0VmZFNJU2FpQVNjeUFNVHcwQUlBTW9BZ2dpRWlBR0lCdHFMUUFBSWhNZ0Myc2lGQ0FVUVI5MUloUnFJQlJ6VFEwQUlCSWdCaUFkYWkwQUFDSVVJQXBySWhZZ0ZrRWZkU0lXYWlBV2MwME5BQ0FPSUFzZ0JDQUpJQW9nQzJ0QkFuUWdGR3NnRTJwQkJHcEJBM1VpRENBSklBeElHeUFFSUF4S0d5SUVha0d3TG1vdEFBQTZBQUFnQmlBS0lBUnJRYkF1YWkwQUFEb0FBQ0FCS0FJRUlRd0xJQWNvQWhBZ0FTZ0NBR3BCQVdzdEFBQWlDVUYvY3lFRUlBbEJBV29oQ1FKQUlBMUJCR29pQmlBUmFpSU9MUUFBSWdzZ0RTMEFCQ0lLYXlJU0lCSkJIM1VpRW1vZ0VuTWdERThOQUNBREtBSUlJaElnQmlBYmFpMEFBQ0lUSUF0ckloUWdGRUVmZFNJVWFpQVVjMDBOQUNBU0lBWWdIV290QUFBaUZDQUtheUlXSUJaQkgzVWlGbW9nRm5OTkRRQWdEaUFMSUFRZ0NTQUtJQXRyUVFKMElCUnJJQk5xUVFScVFRTjFJZ3dnQ1NBTVNCc2dCQ0FNU2hzaURHcEJzQzVxTFFBQU9nQUFJQVlnQ2lBTWEwR3dMbW90QUFBNkFBQWdBU2dDQkNFTUN5QU1JQTFCQldvaUFTQVJhaUlLTFFBQUlnWWdEUzBBQlNJTGF5SU9JQTVCSDNVaURtb2dEbk5ORFFBZ0F5Z0NDQ0lESUFFZ0cyb3RBQUFpRENBR2F5SU9JQTVCSDNVaURtb2dEbk5ORFFBZ0F5QUJJQjFxTFFBQUlnNGdDMnNpRWlBU1FSOTFJaEpxSUJKelRRMEFJQW9nQkNBSklBc2dCbXRCQW5RZ0Rtc2dER3BCQkdwQkEzVWlBeUFESUFsS0d5QURJQVJJR3lJRElBWnFRYkF1YWkwQUFEb0FBQ0FCSUFzZ0EydEJzQzVxTFFBQU9nQUFDeUFIS0FJWUlnUkZEUUFnQ0NBUVFReHNhaUlCSVFNZ0JDQUJLQUlBYWtFQmF5MEFBQ0lKUVg5eklRUWdDVUVCYWlFSkFrQWdBU2dDQkNJUUlBSkJCbW9pQmlBUmFpSU1MUUFBSWdzZ0FpMEFCaUlLYXlJT0lBNUJIM1VpRG1vZ0RuTk5EUUFnQXlnQ0NDSU9JQVlnRzJvdEFBQWlFaUFMYXlJVElCTkJIM1VpRTJvZ0UzTk5EUUFnRGlBR0lCMXFMUUFBSWhNZ0Ntc2lGQ0FVUVI5MUloUnFJQlJ6VFEwQUlBd2dDeUFFSUFrZ0NpQUxhMEVDZENBVGF5QVNha0VFYWtFRGRTSVFJQWtnRUVnYklBUWdFRW9iSWhCcVFiQXVhaTBBQURvQUFDQUdJQW9nRUd0QnNDNXFMUUFBT2dBQUlBRW9BZ1FoRUFzQ1FDQUNRUWRxSWdZZ0VXb2lEQzBBQUNJTElBSXRBQWNpQ21zaURpQU9RUjkxSWc1cUlBNXpJQkJQRFFBZ0F5Z0NDQ0lPSUFZZ0cyb3RBQUFpRWlBTGF5SVRJQk5CSDNVaUUyb2dFM05ORFFBZ0RpQUdJQjFxTFFBQUloTWdDbXNpRkNBVVFSOTFJaFJxSUJSelRRMEFJQXdnQ3lBRUlBa2dDaUFMYTBFQ2RDQVRheUFTYWtFRWFrRURkU0lRSUFrZ0VFZ2JJQVFnRUVvYklnUnFRYkF1YWkwQUFEb0FBQ0FHSUFvZ0JHdEJzQzVxTFFBQU9nQUFJQUVvQWdRaEVBc2dCeWdDR0NBQktBSUFha0VCYXkwQUFDSUpRWDl6SVFRZ0NVRUJhaUVKQWtBZ0RVRUdhaUlHSUJGcUlnd3RBQUFpQ3lBTkxRQUdJZ3BySWc0Z0RrRWZkU0lPYWlBT2N5QVFUdzBBSUFNb0FnZ2lEaUFHSUJ0cUxRQUFJaElnQzJzaUV5QVRRUjkxSWhOcUlCTnpUUTBBSUE0Z0JpQWRhaTBBQUNJVElBcHJJaFFnRkVFZmRTSVVhaUFVYzAwTkFDQU1JQXNnQkNBSklBb2dDMnRCQW5RZ0Uyc2dFbXBCQkdwQkEzVWlFQ0FKSUJCSUd5QUVJQkJLR3lJUWFrR3dMbW90QUFBNkFBQWdCaUFLSUJCclFiQXVhaTBBQURvQUFDQUJLQUlFSVJBTElCQWdEVUVIYWlJQklCRnFJZ290QUFBaUJpQU5MUUFISWd0cklnd2dERUVmZFNJTWFpQU1jMDBOQUNBREtBSUlJZ01nQVNBYmFpMEFBQ0lRSUFacklnd2dERUVmZFNJTWFpQU1jMDBOQUNBRElBRWdIV290QUFBaURDQUxheUlPSUE1QkgzVWlEbW9nRG5OTkRRQWdDaUFFSUFrZ0N5QUdhMEVDZENBTWF5QVFha0VFYWtFRGRTSURJQU1nQ1VvYklBTWdCRWdiSWdNZ0JtcEJzQzVxTFFBQU9nQUFJQUVnQ3lBRGEwR3dMbW90QUFBNkFBQUxJQTBnSW1vaERTQUNJQ0pxSVFJZ0IwRkFheUVISUE5QkFYRWhBVUVBSVE5QkFpRVFJQUVOQUFzTFFRQWdKa0VCYWlJQklBRWdLRVlpQVJzaEppQUZRZGdCYWlFRklBRWdNR29pTUNBbEtBSUlTUTBBQ3dzZ0NFR3dBV29rQUNBQVFnQTNBcWdKQWtBZ0FDZ0NtQWtpQTBVTkFDQURRUU54SVFRZ0FDZ0N2QWtoQWtFQUlRRWdBMEVCYTBFRFR3UkFJQU5CZkhFaEF3TkFJQUlnQVVIWUFXeHFJZ2xCQURZQ3hBRWdDVUVBTmdJRUlBSWdBVUVCY2tIWUFXeHFJZ2xCQURZQ3hBRWdDVUVBTmdJRUlBSWdBVUVDY2tIWUFXeHFJZ2xCQURZQ3hBRWdDVUVBTmdJRUlBSWdBVUVEY2tIWUFXeHFJZ2xCQURZQ3hBRWdDVUVBTmdJRUlBRkJCR29oQVNBRFFRUnJJZ01OQUFzTElBUkZEUUFEUUNBQ0lBRkIyQUZzYWlJRFFRQTJBc1FCSUFOQkFEWUNCQ0FCUVFGcUlRRWdCRUVCYXlJRURRQUxDd0ovSUFCQmhBcHFJUUlnQUNnQ0VDRUZJQUJCMEFwcUlRaEJBQ0VCUVFBaEJFRUFJUWxCQUNFRFFRQWhCMEVBSVF3Q1FBSkFJQUJCMkFwcUlnWW9BcHdDUlEwQUEwQUNRQ0FHSUFGQkZHeHFLQUtnQWc0R0FnQUFBQUFEQUFzZ0FVRUJhaUVCREFBTEFBdEJBU0VEQ3dKL0FrQUNRQUpBQWtBZ0JTZ0NFQTRDQUFFQ0N5QUlLQUlBUVFWR0JFQWdBa0lBTndJQUlBWW9BaFFoQVF3REN5QUNLQUlBSWdRZ0JpZ0NGQ0lCVFEwQ0lBUWdBV3NnQlNnQ0ZDSUpRUUYyU1EwQ0lBSW9BZ1FnQ1dvTUF3c0NmMEVBSUFnb0FnQkJCVVlOQUJvZ0FpZ0NEQ0lCSUFJb0FnZ2dCaWdDREUwTkFCb2dCU2dDRENBQmFnc2hDd0ovSUFVb0FpUWlBUVJBSUFZb0Fnd2dDMm9oQ1FzZ0NTQUlLQUlFSWhCRklBbEJBRWR4YXlJS0N3UkFJQXBCQVdzaUNTQUpJQUZ1SWd3Z0FXeHJJUWNMQWtBZ0FVVU5BQ0FCUVFOeElRa2dCU2dDS0NFSUFrQWdBVUVCYTBFRFNRUkFRUUFoQVF3QkN5QUJRWHh4SVE5QkFDRUJBMEFnQ0NBQlFRSjBJZzFCREhKcUtBSUFJQWdnRFVFSWNtb29BZ0FnQ0NBTlFRUnlhaWdDQUNBSUlBMXFLQUlBSUFScWFtcHFJUVFnQVVFRWFpRUJJQTlCQkdzaUR3MEFDd3NnQ1VVTkFBTkFJQWdnQVVFQ2RHb29BZ0FnQkdvaEJDQUJRUUZxSVFFZ0NVRUJheUlKRFFBTEN3SkFJQXBGQkVCQkFDRUVEQUVMSUFRZ0RHd2hCQ0FGS0FJb0lRbEJBQ0VCQTBBZ0NTQUJRUUowYWlnQ0FDQUVhaUVFSUFGQkFXb2lBU0FIVFEwQUN3c2dFRVVFUUNBRktBSWNJQVJxSVFRTElBTUVRQ0FHS0FJZ0lRRWdCU2dDSUNFRElBWW9BaHdoQ1NBQ0lBczJBZ3dnQWlBR0tBSU1OZ0lJSUFrZ0FTQURhaUlCUVI5MUlBRnhJQVJxYWd3RUN5QUNRZ0EzQWdoQkFBd0RDMEVBSVFFZ0NDZ0NBRUVGUndSQUlBSW9BZ3doQVNBR0tBSU1JZ1FnQWlnQ0NFa0VRQ0FGS0FJTUlBRnFJUUVMSUFFZ0JHcEJBWFFnQ0NnQ0JFVnJJUVFMSUFNRVFDQUNJQUUyQWd3Z0FpQUdLQUlNTmdJSUlBUU1Bd3NnQWtJQU53SUlRUUFNQWdzQ1FDQUJJQVJORFFBZ0FTQUVheUFGS0FJVUlnUkJBWFpORFFBZ0FpZ0NCQ0FFYXd3QkN5QUNLQUlFQ3lFSklBZ29BZ1JGQkVBZ0FTQUphaUFHS0FJWUlnRkJIM1VnQVhGcURBRUxJQUlnQ1RZQ0JDQUdLQUlZSVFRZ0EwVUVRQ0FDUVFBMkFnUWdBa0VBSUFScklBUkJIM1Z4TmdJQVFRQU1BUXNnQWlBQk5nSUFJQUVnQ1dvZ0JFRWZkU0FFY1dvTElRRUNRQ0FBS0FLa0NVVU5BQ0FBUWNRSmFpRUNJQUJCMUFwcUtBSUFCRUFnQWlBQVFld01haUF5SUFCQjVBcHFLQUlBSUFFZ0FDZ0MwQXBCQlVZZ0FDZ0N1QWtnQUNnQ3RBa1FLQXdCQ3lBQ1FRQWdNaUFBUWVRS2FpZ0NBQ0FCSUFBb0F0QUtRUVZHSUFBb0FyZ0pJQUFvQXJRSkVDZ0xJQUJDQURjQ29BbEJBU0VpQ3lBWVFaQUJhaVFBSUNJTFNRRUJmeUFBUVFCQnhCb1FCQ0lDUWJRS2FrRUJOZ0lBSUFKQ2dJS0FnSUFFTndJRUlBQkJ3QkFRQ2lJQ05nS3dHaUFDUlFSQVFRRVBDeUFCQkVBZ0FFRUJOZ0xBQ1F0QkFBc0dBQ0FBRUFVTEJ3QkJ4Qm9RQ2d1VUFRQUNRQ0FBS0FJUUlnQkZEUUFnQUNnQ1BFVU5BQ0FCUVFFMkFnQWdBaUFBS0FKQVFRRjBOZ0lBSUFNZ0FDZ0NORUVFZENBQUtBSkVJQUFvQWtCcVFRRjBhellDQUNBRUlBQW9Ba2hCQVhRMkFnQWdCU0FBS0FJNFFRUjBJQUFvQWt3Z0FDZ0NTR3BCQVhSck5nSUFEd3NnQVVFQU5nSUFJQUpCQURZQ0FDQURRUUEyQWdBZ0JFRUFOZ0lBSUFWQkFEWUNBQXNWQUNBQUtBSVFJZ0JGQkVCQkFBOExJQUFvQWpnTEZRQWdBQ2dDRUNJQVJRUkFRUUFQQ3lBQUtBSTBDNU1FQVFwL0lBQW9BaEFpQkFSQUlBUW9BalFpQjBFR2RDRU1JQVFvQWpoQkJIUWhDeUFIUVFSMElRY0xBa0FnQUVIRUNXb2lDQ2dDRkNJRUlBZ29BaEJKQkg4Z0NDQUVRUUZxTmdJVUlBZ29BZ3dnQkVFRWRHb0ZRUUFMSWdSRkRRQWdBU0FFS0FJRU5nSUFJQUlnQkNnQ0REWUNBQ0FESUFRb0FnZzJBZ0FnQkNnQ0FDSUNSUTBBSUFBb0Fyd2FJUUVnQ3lBTWJDSURJQUFvQXNBYVN3UkFJQUVFUUNBQkVBVUxJQUFnQXpZQ3dCb2dBQ0FERUFvaUFUWUN2Qm9MSUFkQkFtMGhBd0pBSUF0QkFVZ05BRUVBSUFOcklRZ2dBaUFISUF0c2FpSUZJQU1nQzJ4QkFtMXFJUVpCQVNFSkEwQWdBVUVBUWY4QklBSXRBQUJCcWdKc1FhQWxheUlFSUFVdEFBQkJnQUZySWdwQm5IOXNhaUFHTFFBQVFZQUJheUlEUWJCK2JHb2lERUdBQVdwQkNIWWdERUgvL2dOS0d5QU1RWUIvU0J0QmdJRDhCMEdBL3Y4SElBcEJoQVJzSUFScUlncEJnSUg4QjJwQmdQNy9CM0VnQ2tILy9nTktHeUFLUVlCL1NCdHFRUWgwUVFCQi93RWdBMEdaQTJ3Z0JHb2lBMEdBQVdwQkNIVWdBMEgvL2dOS0d5QURRWUIvU0J0cU5nSUFJQVVnQlVFQmFpQUpRUUZ4SWdNYklRVWdCaUFHUVFGcUlBTWJJUVlnQnlBSlRBUkFJQVVnQ0dvZ0JTQU5RUUZxSWcxQkFYRWlBeHNoQlNBR0lBaHFJQVlnQXhzaEJrRUFJUWtMSUFzZ0RVd05BU0FDUVFGcUlRSWdBVUVFYWlFQklBbEJBV29oQ1F3QUN3QUxJQUFvQXJ3YUlRb0xJQW9MQy9jeUdnQkJoZ2dMeWdWbUlDWVFCZ2hsR0dVWVF4QkRFRU1RUXhCREVFTVFReEJERUNJSUlnZ2lDQ0lJSWdnaUNDSUlJZ2dpQ0NJSUlnZ2lDQ0lJSWdnaUNDSUlBQUFBQUFBQUFBQnFRRW93S2lnS0lHazRhVGhKS0Vrb0tTQXBJQWtZQ1Job01HZ3dhREJvTUVnZ1NDQklJRWdnS0Jnb0dDZ1lLQmdJRUFnUUNCQUlFR2NvWnlobktHY29aeWhuS0djb1p5aEhHRWNZUnhoSEdFY1lSeGhIR0VjWWJtQk9XQzVRRGxCdVdFNVFMa2dPU0ExQURVQk5TRTFJTFVBdFFBMDREVGh0VUcxUVRVQk5RQzA0TFRnTk1BMHdhMGhyU0d0SWEwaHJTR3RJYTBoclNFczRTemhMT0VzNFN6aExPRXM0U3pnck1Dc3dLekFyTUNzd0t6QXJNQ3N3Q3lnTEtBc29DeWdMS0Fzb0N5Z0xLQUFBQUFBdmFDOW9FSUJRZ0RDQUVIaHdnRkI0TUhnUWNIQjRVSEF3Y0JCb2IzQnZjRTlvVDJndllDOWdEMkFQWUc5b2IyaFBZRTlnTDFndldBOVlEMWdBQUFBQUFBQUFBR1k0UmlBbUlBWVFaakJHR0NZWUJnaGxLR1VvSlJBbEVHUWdaQ0JrSUdRZ1pCaGtHR1FZWkJoREVFTVFReEJERUVNUVF4QkRFRU1RQUFBQUFBQUFBQUJwU0VrNEtUZ0pNQWdvQ0NoSU1FZ3dLREFvTUFnZ0NDQm5RR2RBWjBCblFFY29SeWhIS0Vjb0p5Z25LQ2NvSnlnSEdBY1lCeGdIR0FBQUFBQnRlRzE0Ym9CT2dDNkFEb0F1ZUE1NFRuZ3VjRTF3VFhBTmNBMXdiWEJ0Y0Uxb1RXZ3RhQzFvRFdnTmFHMW9iV2hOWUUxZ0xXQXRZQTFnRFdBTVdBeFlERmdNV0V4WVRGaE1XRXhZTEZnc1dDeFlMRmdNVUF4UURGQU1VR3hnYkdCc1lHeGdURkJNVUV4UVRGQXNVQ3hRTEZBc1VBeElERWdNU0F4SWExaHJXR3RZYTFocldHdFlhMWhyV0V0SVMwaExTRXRJUzBoTFNFdElTMGdyU0N0SUswZ3JTQ3RJSzBnclNDdElDMEFMUUF0QUMwQUxRQXRBQzBBTFFHdFFhMUJyVUd0UWExQnJVR3RRYTFCTFFFdEFTMEJMUUV0QVMwQkxRRXRBSzBBclFDdEFLMEFyUUN0QUswQXJRQXM0Q3pnTE9BczRDemdMT0FzNEN6Z0FRZUFOQzY0SkJoaEdPQ1k0QmhCbVNFWXdKakFHQ0NVb0pTaEZLRVVvSlNBbElFVWdSU0FsR0NVWVpVQmxRRVVZUlJnbEVDVVFaRGhrT0dRNFpEaGtNR1F3WkRCa01HUW9aQ2hrS0dRb1pDQmtJR1FnWkNCa0dHUVlaQmhrR0VRUVJCQkVFRVFRSkFna0NDUUlKQWdFQUFRQUJBQUVBQUFBQ29CcWdFcUFLb0FLZUdwNFNuZ3FlQXB3YW5CS2NDcHdDbWdwYUNsb0NXQUpZRWxvU1dncFlDbGdDVmdKV0dsb2FXaEpZRWxnS1ZncFdBbFFDVkJvWUdoZ2FHQm9ZRWhZU0ZoSVdFaFlLRkFvVUNoUUtGQUlTQWhJQ0VnSVNHaFlhRmhvV0doWVNGQklVRWhRU0ZBb1NDaElLRWdvU0FoQUNFQUlRQWhBQnpnSE9BYzRCemdIT0FjNEJ6Z0hPQWN3QnpBSE1BY3dCekFITUFjd0J6QkhTRWRJUjBoSFNFZElSMGhIU0VkSUJ5Z0hLQWNvQnlnSEtBY29CeWdIS0dkUVoxQm5VR2RRWjFCblVHZFFaMUJIUUVkQVIwQkhRRWRBUjBCSFFFZEFKMEFuUUNkQUowQW5RQ2RBSjBBblFBY2dCeUFISUFjZ0J5QUhJQWNnQnlBR0NDWUlBQUFHQUFZUUpoQkdFQUFBQmhnbUdFWVlaaGdHSUNZZ1JpQm1JQVlvSmloR0tHWW9CakFtTUVZd1pqQUdPQ1k0UmpobU9BWkFKa0JHUUdaQUJrZ21TRVpJWmtnR1VDWlFSbEJtVUFaWUpsaEdXR1pZQm1BbVlFWmdabUFHYUNab1JtaG1hQVp3Sm5CR2NHWndCbmdtZUVaNFpuZ0dnQ2FBUm9CbWdBQUFReEFDQUFJQUlRZ2hDQ0VJSVFobklHY2dTQ0FvSUVjWVJ4Z25HQ2NZQmlBR0lBWWdCaUFHR0FZWUJoZ0dHQVlRQmhBR0VBWVFaaGhtR0dZWVpoZ21FQ1lRSmhBbUVBWUlCZ2dHQ0FZSUFBQmxWVVJFTkRRakl5TWpFeE1URXdFQkFRRUJBUUVCQVFFQkFRRUJBUUVBK2VuWnlNaTR1S2VucDZlWGw1ZVhob2FHaG9hR2hvWjJkbloyZG5aMmR1Yld4cmFscFpXVmhJU0VoSFIwZEhSa1pHUmtWRlJVVkVORFEwTkRRME5ETXpNek16TXpNek1qSXlNakl5TWpJeE1URXhNVEV4TVRBd01EQXdNREF3UFd0c1hGcGFXVmxZU0VoSVJVVkZSVVJFUkVSQVFFQkFSemMzTnpjM056YzJOalkyTmpZMk5qTXpNek16TXpNek1qSXlNakl5TWpJeE1URXhNVEV4TVR4YldsQlpTVWRIUTBOQ1FrZzRPRGcyTmpZMk5UVTFOVFEwTkRReE1URXhPMWxhU2toSVFrSkJRVUJBUnpjM056WTJOalkxTlRVMU5EUTBORE16TXpNNllHRlJXRWhJU0VrNU9UazVPVGs1TnpjM056YzNOemMyTmpZMk5qWTJOalUxTlRVMU5UVTFORFEwTkRRME5EUXpNek16TXpNek16SXlNakl5TWpJeU9XQmhVVmRIUjBkSU9EZzRPRGc0T0RZMk5qWTJOalkyTkRRME5EUTBORFF6TXpNek16TXpNekl5TWpJeU1qSXlOU1VsSlNVbEpTVWxKU1VsSlNVbEpTaGdZbEpSUVVGQlJ6YzNOemMzTnpjMk5qWTJOalkyTmpNek16TXpNek16TlNVbEpTVWxKU1VsSlNVbEpTVWxKU1FrSkNRa0pDUWtKQ1FrSkNRa0pDUWhZR2RYVWtKQ1FrVTFOVFUxTlRVMU5pWW1KaVltSmlZbUppWW1KaVltSmlRa0pDUWtKQ1FrSkNRa0pDUWtKQ1FqSXlNakl5TWpJeU1qSXlNakl5TWpJVkJXUmtJeU1qSTFKU1VsSlNVbEpTUWtKQ1FrSkNRa0l5TWpJeU1qSXlNZ1FVSXlNek0xTlRRVUZCUVVGQlFVRUVGRU5ESWlJaUlqRXhNVEV4TVRFeEF4TXlNaUVoSVNFQ0VpRWhFUUVpRWdFQk1pSVNBa016SWlJU0VnSUNVME16SXhJU0FnSVRJME16WTFNQ0FnQkJvQmNMSkFRRUJRWUhDQWtLREEwUEVSUVdHUndnSkNndE1qZy9SMUJhWlhGL2tLSzJ5K0wvL3dCQjRCY0xKQUlDQWdNREF3TUVCQVFHQmdjSENBZ0pDUW9LQ3dzTURBME5EZzRQRHhBUUVSRVNFZ0JCeFJnTGhBRUJBQUFCQUFBQkFBQUJBQUVCQUFFQkFRRUJBUUVCQVFFQkFRRUJBUUVDQVFFQ0FRRUNBUUVDQVFJREFRSURBZ0lEQWdJRUFnTUVBZ01FQXdNRkF3UUdBd1FHQkFVSEJBVUlCQVlKQlFjS0JnZ0xCZ2dOQndvT0NBc1FDUXdTQ2cwVUN3OFhEUkVaQUFBQUFBQUFBQUFGQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QVFkUVpDeFVGQUFBQUFBQUFBQWNBQUFEL0FBQUFBQUFBQVA4QVFmUVpDeFVGQUFBQUJBQUFBQUFBQUFEL0FBQUFBQUFBQVA4QVFaUWFDd1VGQUFBQUJBQkJwQm9McFFFSEFBQUFCQUFBQUFJQUFBQUVBQUFBQVFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFRQUFBQUJBQUFBQkFBQUFBTUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFFQUFBQUVBQUFBQkFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBRUFBQUFBUUFBQUFRQUFBQUVBQUFBQkFBQUFBTUFBQUFFQUFBQUJnQUFBQUFBQUFBTkFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFQOEFRZFFiQ3hVTkFBQUFBQUFBQUE4QUFBRC9BQUFBQUFBQUFQOEFRZlFiQ3hVTkFBQUFCQUFBQUFnQUFBRC9BQUFBQUFBQUFQOEFRWlFjQzdVTERRQUFBQVFBQUFBSUFBQUFBQUFBQUE4QUFBQUVBQUFBQ2dBQUFBUUFBQUFKQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBa0FBQUFFQUFBQUN3QUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUVBQUFBQ1FBQUFBUUFBQUFNQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFRQUFBQUpBQUFBQkFBQUFBd0FBQUFFQUFBQUN3QUFBQVFBQUFBT0FBQUFBUUFBQUFvQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFDZ0FBQUFRQUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQUVBQUFBS0FBQUFBUUFBQUFzQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUFRQUFBQW9BQUFBQkFBQUFDd0FBQUFRQUFBQUFBQUFBQkFBQUFBRUFBQUFCQUFBQURnQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBRUFBQUFPQUFBQUJBQUFBQVFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBNEFBQUFCQUFBQUR3QUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBRGdBQUFBRUFBQUFQQUFBQUJBQUFBQVFBQUFBRUFBQUFCUUFBQUFRQUFBQUNBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFJQUFBQUVBQUFBQ0FBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBRUFBQUFBZ0FBQUFRQUFBQURBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBQ0FBQUFCQUFBQUFNQUFBQUVBQUFBQ0FBQUFBUUFBQUFKQUFBQUJBQUFBQVlBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUJnQUFBQVFBQUFBTUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFHQUFBQUJBQUFBQWNBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBWUFBQUFFQUFBQUJ3QUFBQVFBQUFBTUFBQUFCQUFBQUEwQUFBQUJBQUFBRGdBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQU9BQUFBL3dBQUFBUUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFBUUFBQUFzQUFBQUJBQUFBRGdBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFDd0FBQUFFQUFBQU9BQUFBQkFBQUFBRUFBQUQvQUFBQUJBQUFBQUlBQUFBS0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUFnQUFBQW9BQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFCQUFBQUR3QUFBQUlBQUFBS0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBRUFBQUFQQUFBQUFnQUFBQW9BQUFBRUFBQUFCUUFBQVA4QUFBQUFBQUFBQkFBQUFBWUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUVBQUFBQmdBQUFQOEFBQUFNQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFRQUFBQURBQUFBQkFBQUFBWUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFNQUFBQUVBQUFBQmdBQUFBUUFBQUFKQUFBQS93QUFBQXdBQUFEL0FBQUFBZ0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQ0FBQUEvd0FBQUFnQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQWNBQUFEL0FBQUFBZ0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUJ3QUFBUDhBQUFBQ0FBQUFCQUFBQUEwQUFBRC9BQUFBQ0FBQUFBTUFBQUFQQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQXdBQUFBOEFBQUFBQUFBQUJRQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQURBQUFBRHdBQUFBRUFBQUFLQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFNQUFBQVBBQUFBQVFBQUFBb0FBQUFBQUFBQUJRQUFBQVFBQUFBQUFBQUFBUUFBQUFzQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFDd0FBQUFRQUFBQUJBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQUVBQUFBTEFBQUFBUUFBQUE0QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUFRQUFBQXNBQUFBQkFBQUFEZ0FBQUFRQUFBQUJBQUFBQkFBQUFBUUFBQUFBQUFBQUJ3QUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BRUhVSndzVkJ3QUFBQUFBQUFBTkFBQUEvd0FBQUFBQUFBRC9BRUgwSndzVkJ3QUFBQVFBQUFBQ0FBQUEvd0FBQUFBQUFBRC9BRUdVS0F2WkFRY0FBQUFFQUFBQUFnQUFBQUFBQUFBTkFBQUFCQUFBQUFnQUFBQUVBQUFBQXdBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFRQUFBQURBQUFBQkFBQUFBa0FBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFNQUFBQUVBQUFBQmdBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBRUFBQUFBd0FBQUFRQUFBQUdBQUFBQkFBQUFBa0FBQUFFQUFBQURBQUFBQUFBQUFBRUFBQUFBQUFBQUFRQUFBQUlBQUFBREFBQUFBZ0FBQUFNQUFBQUFBQUFBQVFBQUFBQUFBQUFCQUFBQUFnQUFBQU1BQUFBQ0FBQUFBd0FRZmdwQ3dVRUFBQUFCQUJCaUNvTEpRUUFBQUFFQUFBQUNBQUFBQWdBQUFBTUFBQUFEQUFBQUFnQUFBQUlBQUFBREFBQUFBd0FRYkV1QzhnR0FRSURCQVVHQndnSkNnc01EUTRQRUJFU0V4UVZGaGNZR1JvYkhCMGVIeUFoSWlNa0pTWW5LQ2txS3l3dExpOHdNVEl6TkRVMk56ZzVPanM4UFQ0L1FFRkNRMFJGUmtkSVNVcExURTFPVDFCUlVsTlVWVlpYV0ZsYVcxeGRYbDlnWVdKalpHVm1aMmhwYW10c2JXNXZjSEZ5YzNSMWRuZDRlWHA3ZkgxK2Y0Q0Jnb09FaFlhSGlJbUtpNHlOam8rUWtaS1RsSldXbDVpWm1wdWNuWjZmb0tHaW82U2xwcWVvcWFxcnJLMnVyN0N4c3JPMHRiYTN1TG02dTd5OXZyL0F3Y0xEeE1YR3g4akp5c3ZNemM3UDBOSFMwOVRWMXRmWTJkcmIzTjNlMytEaDR1UGs1ZWJuNk9ucTYrenQ3dS93OGZMejlQWDI5L2o1K3Z2OC9mNy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vOEFBQUFBQVFBQUFBUUFBQUFGQUFBQUFnQUFBQU1BQUFBR0FBQUFCd0FBQUFnQUFBQUpBQUFBREFBQUFBMEFBQUFLQUFBQUN3QUFBQTRBQUFBUEFBQUFBQUFBQUFFQUFBQUJBRUdFTlFzaEFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQVFBQUFBSUFBQUFDQUVHME5Rc0ZCUUFBQUFRQVFjUTFDOGtHQndBQUFBUUFBQUFDQUFBQUJBQUFBQUVBQUFBRUFBQUFCQUFBQUFRQUFBQURBQUFBQkFBQUFBWUFBQUFBQUFBQURRQUFBQVFBQUFBSUFBQUFBQUFBQUE4QUFBQUVBQUFBQ2dBQUFBUUFBQUFKQUFBQUJBQUFBQXdBQUFBRUFBQUFDd0FBQUFRQUFBQU9BQUFBQUFBQUFCRUFBQUFFQUFBQUVBQUFBQUFBQUFBVEFBQUFCQUFBQUJJQUFBQUFBQUFBRlFBQUFBUUFBQUFVQUFBQUFBQUFBQmNBQUFBRUFBQUFGZ0FBQUFFQUFBQUtBQUFBQVFBQUFBc0FBQUFFQUFBQUFBQUFBQVFBQUFBQkFBQUFBUUFBQUE0QUFBQUJBQUFBRHdBQUFBUUFBQUFFQUFBQUJBQUFBQVVBQUFBRUFBQUFBZ0FBQUFRQUFBQURBQUFBQkFBQUFBZ0FBQUFFQUFBQUNRQUFBQVFBQUFBR0FBQUFCQUFBQUFjQUFBQUVBQUFBREFBQUFBUUFBQUFOQUFBQUFRQUFBQklBQUFBQkFBQUFFd0FBQUFRQUFBQVFBQUFBQkFBQUFCRUFBQUFCQUFBQUZnQUFBQUVBQUFBWEFBQUFCQUFBQUJRQUFBQUVBQUFBRlFBQUFBRUFBQUFMQUFBQUFRQUFBQTRBQUFBRUFBQUFBUUFBQVA4QUFBQUVBQUFBQVFBQUFBOEFBQUFDQUFBQUNnQUFBQVFBQUFBRkFBQUEvd0FBQUFBQUFBQUVBQUFBQXdBQUFBUUFBQUFHQUFBQUJBQUFBQWtBQUFEL0FBQUFEQUFBQUFRQUFBQUhBQUFBL3dBQUFBSUFBQUFFQUFBQURRQUFBUDhBQUFBSUFBQUFBUUFBQUJNQUFBQUNBQUFBRWdBQUFBUUFBQUFSQUFBQS93QUFBQkFBQUFBQkFBQUFGd0FBQUFJQUFBQVdBQUFBQkFBQUFCVUFBQUQvQUFBQUZBQUFBQU1BQUFBUEFBQUFBUUFBQUFvQUFBQUFBQUFBQlFBQUFBUUFBQUFBQUFBQUFRQUFBQXNBQUFBQkFBQUFEZ0FBQUFRQUFBQUJBQUFBQkFBQUFBUUFBQUFBQUFBQUJ3QUFBQVFBQUFBQ0FBQUFBQUFBQUEwQUFBQUVBQUFBQ0FBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFBRUFBQUFDUUFBQUFRQUFBQU1BQUFBQXdBQUFCTUFBQUFCQUFBQUVnQUFBQUFBQUFBUkFBQUFCQUFBQUJBQUFBQURBQUFBRndBQUFBRUFBQUFXQUFBQUFBQUFBQlVBQUFBRUFBQUFGQUFBQUFFQUFBQUJBQUFBQWdBQUFBSUFBQUFEQUFBQUF3QUFBQU1BQUFBREFBQUFBQUFBQUFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QkJsandMTGdFQkFRRUJBUUlDQWdJQ0FnTURBd01EQXdRRUJBUUVCQVVGQlFVRkJRWUdCZ1lHQmdjSEJ3Y0hCd2dJQ0FnQVFkQThDMFVLQUFBQURRQUFBQkFBQUFBTEFBQUFEZ0FBQUJJQUFBQU5BQUFBRUFBQUFCUUFBQUFPQUFBQUVnQUFBQmNBQUFBUUFBQUFGQUFBQUJrQUFBQVNBQUFBRndBQUFCMEFRYUU5Q3pNQkFnTUVCUUFCQWdNRUJRQUJBZ01FQlFBQkFnTUVCUUFCQWdNRUJRQUJBZ01FQlFBQkFnTUVCUUFCQWdNRUJRQUJBZ01BUWVROUM4d0NBUUFBQUFJQUFBQURBQUFBQkFBQUFBVUFBQUFHQUFBQUJ3QUFBQWdBQUFBSkFBQUFDZ0FBQUFzQUFBQU1BQUFBRFFBQUFBNEFBQUFQQUFBQUVBQUFBQkVBQUFBU0FBQUFFd0FBQUJRQUFBQVZBQUFBRmdBQUFCY0FBQUFZQUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWRBQUFBSGdBQUFCOEFBQUFnQUFBQUlBQUFBQ0VBQUFBaUFBQUFJZ0FBQUNNQUFBQWpBQUFBSkFBQUFDUUFBQUFsQUFBQUpRQUFBQ1VBQUFBbUFBQUFKZ0FBQUNZQUFBQW5BQUFBSndBQUFDY0FBQUFuQUFBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUJBQUFBQWdBQUFBUUFBQUFJQUFBQUF2SHc4QUZ4c2RIZ2NMRFE0bkt5MHVFQU1GQ2d3VEZSb2NJeVVxTEFFQ0JBZ1JFaFFZQmdrV0dTQWhJaVFvSmlrQUVBRUNCQWdnQXdVS0RBOHZCd3NORGdZSkh5TWxLaXdoSWlRb0p5c3RMaEVTRkJnVEZSb2NGeHNkSGhZWkppa0FRYkRBQUFzRE1DSlEiO2lmKCFNLnN0YXJ0c1dpdGgoeCkpe3ZhciBEQT1NO009QS5sb2NhdGVGaWxlP0EubG9jYXRlRmlsZShEQSxzKTpzK0RBfWZ1bmN0aW9uIG9BKCl7dmFyIEk9TTt0cnl7aWYoST09TSYmYylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYyk7dmFyIEI9YUEoSSk7aWYoQilyZXR1cm4gQjtpZihHKXJldHVybiBHKEkpO3Rocm93ImJvdGggYXN5bmMgYW5kIHN5bmMgZmV0Y2hpbmcgb2YgdGhlIHdhc20gZmFpbGVkIn1jYXRjaChvKXtsKG8pfX1mdW5jdGlvbiBMQSgpe3JldHVybiBjfHx0eXBlb2YgZmV0Y2ghPSJmdW5jdGlvbiI/UHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBvQSgpfSk6ZmV0Y2goTSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oSSl7aWYoIUkub2spdGhyb3ciZmFpbGVkIHRvIGxvYWQgd2FzbSBiaW5hcnkgZmlsZSBhdCAnIitNKyInIjtyZXR1cm4gSS5hcnJheUJ1ZmZlcigpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gb0EoKX0pfXZhciBILHY7ZnVuY3Rpb24gXyhJKXtmb3IoOzA8SS5sZW5ndGg7KXt2YXIgQj1JLnNoaWZ0KCk7aWYodHlwZW9mIEI9PSJmdW5jdGlvbiIpQihBKTtlbHNle3ZhciBvPUIudTt0eXBlb2Ygbz09Im51bWJlciI/Qi5zPT09dm9pZCAwP3ouZ2V0KG8pKCk6ei5nZXQobykoQi5zKTpvKEIucz09PXZvaWQgMD9udWxsOkIucyl9fX12YXIgVUE9dHlwZW9mIGF0b2I9PSJmdW5jdGlvbiI/YXRvYjpmdW5jdGlvbihJKXt2YXIgQj0iIixvPTA7ST1JLnJlcGxhY2UoL1teQS1aYS16MC05XCtcLz1dL2csIiIpO2Rve3ZhciB5PSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSIuaW5kZXhPZihJLmNoYXJBdChvKyspKSxGPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSIuaW5kZXhPZihJLmNoYXJBdChvKyspKSxVPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSIuaW5kZXhPZihJLmNoYXJBdChvKyspKSxzQT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLmluZGV4T2YoSS5jaGFyQXQobysrKSk7eT15PDwyfEY+PjQsRj0oRiYxNSk8PDR8VT4+Mjt2YXIgSkE9KFUmMyk8PDZ8c0E7Qis9U3RyaW5nLmZyb21DaGFyQ29kZSh5KSxVIT09NjQmJihCKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEYpKSxzQSE9PTY0JiYoQis9U3RyaW5nLmZyb21DaGFyQ29kZShKQSkpfXdoaWxlKG88SS5sZW5ndGgpO3JldHVybiBCfTtmdW5jdGlvbiBhQShJKXtpZihJLnN0YXJ0c1dpdGgoeCkpe3RyeXt2YXIgQj1VQShJLnNsaWNlKHgubGVuZ3RoKSksbz1uZXcgVWludDhBcnJheShCLmxlbmd0aCk7Zm9yKEk9MDtJPEIubGVuZ3RoOysrSSlvW0ldPUIuY2hhckNvZGVBdChJKX1jYXRjaCh5KXt0aHJvdyBFcnJvcigiQ29udmVydGluZyBiYXNlNjQgc3RyaW5nIHRvIGJ5dGVzIGZhaWxlZC4iKX1yZXR1cm4gb319dmFyIGtBPXthOmZ1bmN0aW9uKEksQixvKXtyLmNvcHlXaXRoaW4oSSxCLEIrbyl9LGI6ZnVuY3Rpb24oSSl7dmFyIEI9ci5sZW5ndGg7aWYoST4+Pj0wLDIxNDc0ODM2NDg8SSlyZXR1cm4hMTtmb3IodmFyIG89MTs0Pj1vO28qPTIpe3ZhciB5PUIqKDErLjIvbyk7eT1NYXRoLm1pbih5LEkrMTAwNjYzMjk2KSx5PU1hdGgubWF4KEkseSksMDx5JTY1NTM2JiYoeSs9NjU1MzYteSU2NTUzNik7QTp7dHJ5e3cuZ3JvdyhNYXRoLm1pbigyMTQ3NDgzNjQ4LHkpLW0uYnl0ZUxlbmd0aCs2NTUzNT4+PjE2KSxRQSgpO3ZhciBGPTE7YnJlYWsgQX1jYXRjaChVKXt9Rj12b2lkIDB9aWYoRilyZXR1cm4hMH1yZXR1cm4hMX19OyhmdW5jdGlvbigpe2Z1bmN0aW9uIEkoRil7QS5hc209Ri5leHBvcnRzLHc9QS5hc20uYyxRQSgpLHo9QS5hc20ucixFQS51bnNoaWZ0KEEuYXNtLmQpLFktLSxBLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJkEubW9uaXRvclJ1bkRlcGVuZGVuY2llcyhZKSxZPT0wJiZXJiYoRj1XLFc9bnVsbCxGKCkpfWZ1bmN0aW9uIEIoRil7SShGLmluc3RhbmNlKX1mdW5jdGlvbiBvKEYpe3JldHVybiBMQSgpLnRoZW4oZnVuY3Rpb24oVSl7cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKFUseSl9KS50aGVuKEYsZnVuY3Rpb24oVSl7UigiZmFpbGVkIHRvIGFzeW5jaHJvbm91c2x5IHByZXBhcmUgd2FzbTogIitVKSxsKFUpfSl9dmFyIHk9e2E6a0F9O2lmKFkrKyxBLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJkEubW9uaXRvclJ1bkRlcGVuZGVuY2llcyhZKSxBLmluc3RhbnRpYXRlV2FzbSl0cnl7cmV0dXJuIEEuaW5zdGFudGlhdGVXYXNtKHksSSl9Y2F0Y2goRil7cmV0dXJuIFIoIk1vZHVsZS5pbnN0YW50aWF0ZVdhc20gY2FsbGJhY2sgZmFpbGVkIHdpdGggZXJyb3I6ICIrRiksITF9cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGN8fHR5cGVvZiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZyE9ImZ1bmN0aW9uInx8TS5zdGFydHNXaXRoKHgpfHx0eXBlb2YgZmV0Y2ghPSJmdW5jdGlvbiI/byhCKTpmZXRjaChNLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihGKXtyZXR1cm4gV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcoRix5KS50aGVuKEIsZnVuY3Rpb24oVSl7cmV0dXJuIFIoIndhc20gc3RyZWFtaW5nIGNvbXBpbGUgZmFpbGVkOiAiK1UpLFIoImZhbGxpbmcgYmFjayB0byBBcnJheUJ1ZmZlciBpbnN0YW50aWF0aW9uIiksbyhCKX0pfSl9KCkuY2F0Y2goRSkse319KSgpLEEuX19fd2FzbV9jYWxsX2N0b3JzPWZ1bmN0aW9uKCl7cmV0dXJuKEEuX19fd2FzbV9jYWxsX2N0b3JzPUEuYXNtLmQpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQS5fbWVtY3B5PWZ1bmN0aW9uKCl7cmV0dXJuKEEuX21lbWNweT1BLmFzbS5lKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEEuX2gyNjRic2RJbml0PWZ1bmN0aW9uKCl7cmV0dXJuKEEuX2gyNjRic2RJbml0PUEuYXNtLmYpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQS5fbWFsbG9jPWZ1bmN0aW9uKCl7cmV0dXJuKEEuX21hbGxvYz1BLmFzbS5nKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEEuX2gyNjRic2REZWNvZGU9ZnVuY3Rpb24oKXtyZXR1cm4oQS5faDI2NGJzZERlY29kZT1BLmFzbS5oKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEEuX2ZyZWU9ZnVuY3Rpb24oKXtyZXR1cm4oQS5fZnJlZT1BLmFzbS5pKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEEuX2gyNjRic2RTaHV0ZG93bj1mdW5jdGlvbigpe3JldHVybihBLl9oMjY0YnNkU2h1dGRvd249QS5hc20uaikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxBLl9oMjY0YnNkTmV4dE91dHB1dFBpY3R1cmU9ZnVuY3Rpb24oKXtyZXR1cm4oQS5faDI2NGJzZE5leHRPdXRwdXRQaWN0dXJlPUEuYXNtLmspLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQS5faDI2NGJzZE5leHRPdXRwdXRQaWN0dXJlUkdCQT1mdW5jdGlvbigpe3JldHVybihBLl9oMjY0YnNkTmV4dE91dHB1dFBpY3R1cmVSR0JBPUEuYXNtLmwpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQS5faDI2NGJzZFBpY1dpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuKEEuX2gyNjRic2RQaWNXaWR0aD1BLmFzbS5tKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEEuX2gyNjRic2RQaWNIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4oQS5faDI2NGJzZFBpY0hlaWdodD1BLmFzbS5uKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEEuX2gyNjRic2RDcm9wcGluZ1BhcmFtcz1mdW5jdGlvbigpe3JldHVybihBLl9oMjY0YnNkQ3JvcHBpbmdQYXJhbXM9QS5hc20ubykuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxBLl9oMjY0YnNkQWxsb2M9ZnVuY3Rpb24oKXtyZXR1cm4oQS5faDI2NGJzZEFsbG9jPUEuYXNtLnApLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQS5faDI2NGJzZEZyZWU9ZnVuY3Rpb24oKXtyZXR1cm4oQS5faDI2NGJzZEZyZWU9QS5hc20ucSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxBLnNldFZhbHVlPWZ1bmN0aW9uKEksQixvKXtzd2l0Y2gobz1vfHwiaTgiLG8uY2hhckF0KG8ubGVuZ3RoLTEpPT09IioiJiYobz0iaTMyIiksbyl7Y2FzZSJpMSI6cVtJPj4wXT1CO2JyZWFrO2Nhc2UiaTgiOnFbST4+MF09QjticmVhaztjYXNlImkxNiI6ZFtJPj4xXT1CO2JyZWFrO2Nhc2UiaTMyIjpKW0k+PjJdPUI7YnJlYWs7Y2FzZSJpNjQiOnY9W0I+Pj4wLChIPUIsMTw9K01hdGguYWJzKEgpPzA8SD8oTWF0aC5taW4oK01hdGguZmxvb3IoSC80Mjk0OTY3Mjk2KSw0Mjk0OTY3Mjk1KXwwKT4+PjA6fn4rTWF0aC5jZWlsKChILSsofn5IPj4+MCkpLzQyOTQ5NjcyOTYpPj4+MDowKV0sSltJPj4yXT12WzBdLEpbSSs0Pj4yXT12WzFdO2JyZWFrO2Nhc2UiZmxvYXQiOlNbST4+Ml09QjticmVhaztjYXNlImRvdWJsZSI6ZltJPj4zXT1CO2JyZWFrO2RlZmF1bHQ6bCgiaW52YWxpZCB0eXBlIGZvciBzZXRWYWx1ZTogIitvKX19LEEuZ2V0VmFsdWU9ZnVuY3Rpb24oSSxCKXtzd2l0Y2goQj1CfHwiaTgiLEIuY2hhckF0KEIubGVuZ3RoLTEpPT09IioiJiYoQj0iaTMyIiksQil7Y2FzZSJpMSI6cmV0dXJuIHFbST4+MF07Y2FzZSJpOCI6cmV0dXJuIHFbST4+MF07Y2FzZSJpMTYiOnJldHVybiBkW0k+PjFdO2Nhc2UiaTMyIjpyZXR1cm4gSltJPj4yXTtjYXNlImk2NCI6cmV0dXJuIEpbST4+Ml07Y2FzZSJmbG9hdCI6cmV0dXJuIFNbST4+Ml07Y2FzZSJkb3VibGUiOnJldHVybiBmW0k+PjNdO2RlZmF1bHQ6bCgiaW52YWxpZCB0eXBlIGZvciBnZXRWYWx1ZTogIitCKX1yZXR1cm4gbnVsbH07dmFyIE87Vz1mdW5jdGlvbiBJKCl7T3x8JCgpLE98fChXPUkpfTtmdW5jdGlvbiAkKCl7ZnVuY3Rpb24gSSgpe2lmKCFPJiYoTz0hMCxBLmNhbGxlZFJ1bj0hMCwhYikpe2lmKF8oRUEpLEMoQSksQS5vblJ1bnRpbWVJbml0aWFsaXplZCYmQS5vblJ1bnRpbWVJbml0aWFsaXplZCgpLEEucG9zdFJ1bilmb3IodHlwZW9mIEEucG9zdFJ1bj09ImZ1bmN0aW9uIiYmKEEucG9zdFJ1bj1bQS5wb3N0UnVuXSk7QS5wb3N0UnVuLmxlbmd0aDspe3ZhciBCPUEucG9zdFJ1bi5zaGlmdCgpO2lBLnVuc2hpZnQoQil9XyhpQSl9fWlmKCEoMDxZKSl7aWYoQS5wcmVSdW4pZm9yKHR5cGVvZiBBLnByZVJ1bj09ImZ1bmN0aW9uIiYmKEEucHJlUnVuPVtBLnByZVJ1bl0pO0EucHJlUnVuLmxlbmd0aDspUkEoKTtfKENBKSwwPFl8fChBLnNldFN0YXR1cz8oQS5zZXRTdGF0dXMoIlJ1bm5pbmcuLi4iKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe0Euc2V0U3RhdHVzKCIiKX0sMSksSSgpfSwxKSk6SSgpKX19aWYoQS5ydW49JCxBLnByZUluaXQpZm9yKHR5cGVvZiBBLnByZUluaXQ9PSJmdW5jdGlvbiImJihBLnByZUluaXQ9W0EucHJlSW5pdF0pOzA8QS5wcmVJbml0Lmxlbmd0aDspQS5wcmVJbml0LnBvcCgpKCk7cmV0dXJuICQoKSxnLnJlYWR5fX0oKTtjb25zdCBGQT1RPT5RPj0zJiZRPD0xNSx5QT1RPT57c3dpdGNoKFEpe2Nhc2UgNTpyZXR1cm4iTWVtb3J5IGFsbG9jYXRpb24gZXJyb3IiO2Nhc2UgNDpyZXR1cm4iRmFpbGVkIHRvIGFjdGl2YXRlIHBhcmFtIHNldCI7Y2FzZSA2OnJldHVybiJCeXRlIHN0cmVhbSBlcnJvciI7Y2FzZSA3OnJldHVybiJOQUwgdW5pdCBlcnJvciI7Y2FzZSA4OnJldHVybiJBY2Nlc3MgdW5pdCBib3VuZGFyeSBjaGVjayBlcnJvciI7Y2FzZSA5OnJldHVybiJQZW5kaW5nIGFjdGl2YXRpb24gZXJyb3IiO2Nhc2UgMTA6cmV0dXJuIlNlcXVlbmNlIHBhcmFtZXRlciBzZXQgZXJyb3IiO2Nhc2UgMTE6cmV0dXJuIlBpY3R1cmUgcGFyYW1ldGVyIHNldCBlcnJvciI7Y2FzZSAxMjpyZXR1cm4iU2xpY2UgaGVhZGVyIGVycm9yIjtjYXNlIDEzOnJldHVybiJTbGljZSBkYXRhIGVycm9yIjtjYXNlIDE0OnJldHVybiJHYXBzIGluIGZyYW1lIG51bSBlcnJvciI7Y2FzZSAxNTpyZXR1cm4iUmVvcmRlcmluZyBlcnJvciI7Y2FzZSAzOmRlZmF1bHQ6cmV0dXJuIkRlY29kZSBlcnJvciJ9fSxuPWNsYXNzIG57Y29uc3RydWN0b3IoZyl7RCh0aGlzLCJoMjY0TW9kdWxlIik7RCh0aGlzLCJkZWNvZGVySW5zdGFuY2VQb2ludGVyIiwwKTtEKHRoaXMsImlucHV0QnVmZmVyUG9pbnRlciIsMCk7RCh0aGlzLCJpbnB1dEJ1ZmZlckxlbmd0aCIsMTAyNCoxMDI0KTtEKHRoaXMsImJ5dGVzUmVhZCIsMCk7RCh0aGlzLCJpc0lkclBvaW50ZXIiLDApO0QodGhpcywicGljSWRQb2ludGVyIiwwKTtEKHRoaXMsIm51bUVyck1icyIsMCk7RCh0aGlzLCJjcm9wcGluZ1BvaW50ZXJzIix7Y3JvcHBpbmdGbGFnOjAsbGVmdE9mZnNldDowLHdpZHRoOjAsdG9wT2Zmc2V0OjAsaGVpZ2h0OjB9KTtEKHRoaXMsInBhcmFtZXRlcnMiKTtEKHRoaXMsImdldFBhcmFtZXRlcnMiLCgpPT50aGlzLnBhcmFtZXRlcnMpO0QodGhpcywidW5sb2FkIiwoKT0+e3RoaXMuc2h1dGRvd25EZWNvZGVyKCksdGhpcy5oMjY0TW9kdWxlLl9mcmVlKHRoaXMuaW5wdXRCdWZmZXJQb2ludGVyKSx0aGlzLmgyNjRNb2R1bGUuX2ZyZWUodGhpcy5ieXRlc1JlYWQpLHRoaXMuaDI2NE1vZHVsZS5fZnJlZSh0aGlzLmlzSWRyUG9pbnRlciksdGhpcy5oMjY0TW9kdWxlLl9mcmVlKHRoaXMucGljSWRQb2ludGVyKSx0aGlzLmgyNjRNb2R1bGUuX2ZyZWUodGhpcy5udW1FcnJNYnMpLHRoaXMuaDI2NE1vZHVsZS5fZnJlZSh0aGlzLmNyb3BwaW5nUG9pbnRlcnMuY3JvcHBpbmdGbGFnKSx0aGlzLmgyNjRNb2R1bGUuX2ZyZWUodGhpcy5jcm9wcGluZ1BvaW50ZXJzLmxlZnRPZmZzZXQpLHRoaXMuaDI2NE1vZHVsZS5fZnJlZSh0aGlzLmNyb3BwaW5nUG9pbnRlcnMud2lkdGgpLHRoaXMuaDI2NE1vZHVsZS5fZnJlZSh0aGlzLmNyb3BwaW5nUG9pbnRlcnMudG9wT2Zmc2V0KSx0aGlzLmgyNjRNb2R1bGUuX2ZyZWUodGhpcy5jcm9wcGluZ1BvaW50ZXJzLmhlaWdodCksdGhpcy5pbnB1dEJ1ZmZlclBvaW50ZXI9MCx0aGlzLmJ5dGVzUmVhZD0wLHRoaXMuaXNJZHJQb2ludGVyPTAsdGhpcy5waWNJZFBvaW50ZXI9MCx0aGlzLm51bUVyck1icz0wLHRoaXMuZGVjb2Rlckluc3RhbmNlUG9pbnRlcj0wLHRoaXMuY3JvcHBpbmdQb2ludGVycz17Y3JvcHBpbmdGbGFnOjAsbGVmdE9mZnNldDowLHdpZHRoOjAsdG9wT2Zmc2V0OjAsaGVpZ2h0OjB9fSk7RCh0aGlzLCJzaHV0ZG93bkRlY29kZXIiLCgpPT57dGhpcy5kZWNvZGVySW5zdGFuY2VQb2ludGVyIT0wJiYodGhpcy5oMjY0TW9kdWxlLl9oMjY0YnNkU2h1dGRvd24odGhpcy5kZWNvZGVySW5zdGFuY2VQb2ludGVyKSx0aGlzLmgyNjRNb2R1bGUuX2gyNjRic2RGcmVlKHRoaXMuZGVjb2Rlckluc3RhbmNlUG9pbnRlcikpLHRoaXMucGFyYW1ldGVycz12b2lkIDB9KTtEKHRoaXMsImluaXREZWNvZGVyIiwoKT0+e3RoaXMuZGVjb2Rlckluc3RhbmNlUG9pbnRlcj10aGlzLmgyNjRNb2R1bGUuX2gyNjRic2RBbGxvYygpLHRoaXMuaDI2NE1vZHVsZS5faDI2NGJzZEluaXQodGhpcy5kZWNvZGVySW5zdGFuY2VQb2ludGVyLDApfSk7RCh0aGlzLCJkZWNvZGUiLGc9PntpZihnLmJ5dGVMZW5ndGg+dGhpcy5pbnB1dEJ1ZmZlckxlbmd0aCl7Y29uc3QgaT10aGlzLmgyNjRNb2R1bGUuX21hbGxvYyhnLmJ5dGVMZW5ndGgpO3RoaXMuaDI2NE1vZHVsZS5fZnJlZSh0aGlzLmlucHV0QnVmZmVyUG9pbnRlciksdGhpcy5pbnB1dEJ1ZmZlclBvaW50ZXI9aX10aGlzLmgyNjRNb2R1bGUuSEVBUFU4LnNldChnLHRoaXMuaW5wdXRCdWZmZXJQb2ludGVyKTtsZXQgQT1nLmJ5dGVMZW5ndGgsQz0wLEU9MDtkbyBFPXRoaXMuaDI2NE1vZHVsZS5faDI2NGJzZERlY29kZSh0aGlzLmRlY29kZXJJbnN0YW5jZVBvaW50ZXIsdGhpcy5pbnB1dEJ1ZmZlclBvaW50ZXIrQyxBLDAsdGhpcy5ieXRlc1JlYWQpLEM9dGhpcy5oMjY0TW9kdWxlLmdldFZhbHVlKHRoaXMuYnl0ZXNSZWFkLCJpMzIiKSxBLT1DO3doaWxlKEE+MCYmIUZBKEUpKTtzd2l0Y2goRSl7Y2FzZSAwOmNhc2UgMTpjYXNlIDI6e2lmKEU9PT0xKXJldHVybiB0aGlzLnJlY2VpdmVGcmFtZSgpO2lmKEU9PT0yKXJldHVybiB0aGlzLnJlY2VpdmVIZWFkZXIoKX1icmVhaztjYXNlIDEwMjQ6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoeUEoRSkpfX0pO0QodGhpcywicmVjZWl2ZUZyYW1lIiwoKT0+e2NvbnN0IGc9dGhpcy5oMjY0TW9kdWxlLl9oMjY0YnNkTmV4dE91dHB1dFBpY3R1cmUodGhpcy5kZWNvZGVySW5zdGFuY2VQb2ludGVyLHRoaXMucGljSWRQb2ludGVyLHRoaXMuaXNJZHJQb2ludGVyLHRoaXMubnVtRXJyTWJzKTtpZighZylyZXR1cm47aWYoIXRoaXMucGFyYW1ldGVycyl7Y29uc3QgQz10aGlzLmgyNjRNb2R1bGUuX2gyNjRic2RQaWNXaWR0aCh0aGlzLmRlY29kZXJJbnN0YW5jZVBvaW50ZXIpKjE2LEU9dGhpcy5oMjY0TW9kdWxlLl9oMjY0YnNkUGljSGVpZ2h0KHRoaXMuZGVjb2Rlckluc3RhbmNlUG9pbnRlcikqMTY7dGhpcy5oMjY0TW9kdWxlLl9oMjY0YnNkQ3JvcHBpbmdQYXJhbXModGhpcy5kZWNvZGVySW5zdGFuY2VQb2ludGVyLHRoaXMuY3JvcHBpbmdQb2ludGVycy5jcm9wcGluZ0ZsYWcsdGhpcy5jcm9wcGluZ1BvaW50ZXJzLmxlZnRPZmZzZXQsdGhpcy5jcm9wcGluZ1BvaW50ZXJzLndpZHRoLHRoaXMuY3JvcHBpbmdQb2ludGVycy50b3BPZmZzZXQsdGhpcy5jcm9wcGluZ1BvaW50ZXJzLmhlaWdodCk7Y29uc3QgaT10aGlzLmgyNjRNb2R1bGUuZ2V0VmFsdWUodGhpcy5jcm9wcGluZ1BvaW50ZXJzLmNyb3BwaW5nRmxhZywiaTMyIiksYT10aGlzLmgyNjRNb2R1bGUuZ2V0VmFsdWUodGhpcy5jcm9wcGluZ1BvaW50ZXJzLmxlZnRPZmZzZXQsImkzMiIpLHM9dGhpcy5oMjY0TW9kdWxlLmdldFZhbHVlKHRoaXMuY3JvcHBpbmdQb2ludGVycy53aWR0aCwiaTMyIiksRz10aGlzLmgyNjRNb2R1bGUuZ2V0VmFsdWUodGhpcy5jcm9wcGluZ1BvaW50ZXJzLnRvcE9mZnNldCwiaTMyIiksUj10aGlzLmgyNjRNb2R1bGUuZ2V0VmFsdWUodGhpcy5jcm9wcGluZ1BvaW50ZXJzLmhlaWdodCwiaTMyIik7dGhpcy5wYXJhbWV0ZXJzPXt3aWR0aDpDLGhlaWdodDpFLGNyb3BwaW5nOmk/e2xlZnQ6YSx0b3A6Ryx3aWR0aDpzLGhlaWdodDpSfTp2b2lkIDB9fWNvbnN0IEE9dGhpcy5wYXJhbWV0ZXJzLndpZHRoKnRoaXMucGFyYW1ldGVycy5oZWlnaHQqMy8yO3JldHVybiB0aGlzLmgyNjRNb2R1bGUuSEVBUFU4LnN1YmFycmF5KGcsZytBKX0pO0QodGhpcywicmVjZWl2ZUhlYWRlciIsKCk9Pnt9KTt0aGlzLmgyNjRNb2R1bGU9Zyx0aGlzLmluaXREZWNvZGVyKCksdGhpcy5pbnB1dEJ1ZmZlclBvaW50ZXI9dGhpcy5oMjY0TW9kdWxlLl9tYWxsb2ModGhpcy5pbnB1dEJ1ZmZlckxlbmd0aCksdGhpcy5ieXRlc1JlYWQ9Zy5fbWFsbG9jKDQpLHRoaXMuaXNJZHJQb2ludGVyPWcuX21hbGxvYyg0KSx0aGlzLnBpY0lkUG9pbnRlcj1nLl9tYWxsb2MoNCksdGhpcy5udW1FcnJNYnM9Zy5fbWFsbG9jKDQpLHRoaXMuY3JvcHBpbmdQb2ludGVycz17Y3JvcHBpbmdGbGFnOmcuX21hbGxvYyg0KSxsZWZ0T2Zmc2V0OmcuX21hbGxvYyg0KSx3aWR0aDpnLl9tYWxsb2MoNCksdG9wT2Zmc2V0OmcuX21hbGxvYyg0KSxoZWlnaHQ6Zy5fbWFsbG9jKDQpfX19O0QobiwiY3JlYXRlIiwoKT0+VChuLG51bGwsZnVuY3Rpb24qKCl7cmV0dXJuIG5ldyBuKHlpZWxkIE5BKCkpfSkpO2xldCBqPW47Y29uc3QgQkE9UT0+e2NvbnN0e3BpY3R1cmVQYXJhbWV0ZXJTZXRzOmcsc2VxdWVuY2VQYXJhbWV0ZXJTZXRzOkF9PUdBKFEuZGF0YSksQz1bLi4uQSwuLi5nXSxFPW5ldyBVaW50OEFycmF5KEMucmVkdWNlKChhLHMpPT5hK3MuYnl0ZUxlbmd0aCs0LDApKTtsZXQgaT0wO3JldHVybiBDLmZvckVhY2goYT0+e0VbMCtpXT0wLEVbMStpXT0wLEVbMitpXT0wLEVbMytpXT0xLEUuc2V0KG5ldyBVaW50OEFycmF5KGEpLGkrNCksaSs9YS5ieXRlTGVuZ3RoKzR9KSxFfSxwPWNsYXNzIHB7Y29uc3RydWN0b3IoZyl7RCh0aGlzLCJkZWNvZGVkU2FtcGxlcyIsW10pO0QodGhpcywiZGVjb2RlciIpO0QodGhpcywiaW5pdFNlZ21lbnRzIixuZXcgTWFwKTtEKHRoaXMsInByZXZpb3VzU2FtcGxlIik7RCh0aGlzLCJpc1dhaXRpbmdGb3JTeW5jIiwhMCk7RCh0aGlzLCJ1bmxvYWQiLCgpPT57dGhpcy5kZWNvZGVyLnVubG9hZCgpfSk7RCh0aGlzLCJpbml0U2VnbWVudCIsZz0+e3RoaXMuaW5pdFNlZ21lbnRzLnNldChnLnJlbmRpdGlvbklkLGcpfSk7RCh0aGlzLCJlbnF1ZXVlIixnPT57dmFyIHMsRyxSLGM7Y29uc3QgQT10aGlzLmluaXRTZWdtZW50cy5nZXQoZy5yZW5kaXRpb25JZCk7aWYoIUEpdGhyb3cgTihnLnJlbmRpdGlvbklkLGcuY2hhbm5lbElkKTtjb25zdCBDPSgocz10aGlzLnByZXZpb3VzU2FtcGxlKT09bnVsbD92b2lkIDA6cy53aWR0aCkhPT1nLndpZHRofHwoKEc9dGhpcy5wcmV2aW91c1NhbXBsZSk9PW51bGw/dm9pZCAwOkcuaGVpZ2h0KSE9PWcuaGVpZ2h0LEU9KChSPXRoaXMucHJldmlvdXNTYW1wbGUpPT1udWxsP3ZvaWQgMDpSLmNoYW5uZWxJZCkhPT1nLmNoYW5uZWxJZCxpPSgoYz10aGlzLnByZXZpb3VzU2FtcGxlKT09bnVsbD92b2lkIDA6Yy5yZW5kaXRpb25JZCkhPT1nLnJlbmRpdGlvbklkO2lmKHRoaXMucHJldmlvdXNTYW1wbGUpe2lmKEV8fGl8fEMpe3RoaXMuZGVjb2Rlci5zaHV0ZG93bkRlY29kZXIoKSx0aGlzLmRlY29kZXIuaW5pdERlY29kZXIoKTtjb25zdCB3PUJBKEEpO3RoaXMuZGVjb2Rlci5kZWNvZGUodyksdGhpcy5pc1dhaXRpbmdGb3JTeW5jPSEwfX1lbHNle2NvbnN0IHc9QkEoQSk7dGhpcy5kZWNvZGVyLmRlY29kZSh3KSx0aGlzLmlzV2FpdGluZ0ZvclN5bmM9ITB9aWYodGhpcy5wcmV2aW91c1NhbXBsZSl7Y29uc3Qgdz10aGlzLnByZXZpb3VzU2FtcGxlO2cudGltZXN0YW1wL2cudGltZXNjYWxlPih3LnRpbWVzdGFtcCt3LmR1cmF0aW9uKjIpL3cudGltZXNjYWxlJiYodGhpcy5pc1dhaXRpbmdGb3JTeW5jPSEwKX1pZih0aGlzLnByZXZpb3VzU2FtcGxlPWcsdGhpcy5pc1dhaXRpbmdGb3JTeW5jJiYhZy5pc1N5bmMpcmV0dXJuO3RoaXMuaXNXYWl0aW5nRm9yU3luYz0hMTtjb25zdCBhPURhdGUubm93KCk7aEEoZy5kYXRhLHc9Pnt2YXIgcSxyLGQsSjtjb25zdCBiPW5ldyBVaW50OEFycmF5KHcuYnVmZmVyLHcuYnl0ZU9mZnNldCx3LmJ5dGVMZW5ndGgpLG09dGhpcy5kZWNvZGVyLmRlY29kZShiKTtpZihtKXtpZighZy5idWZmZXIpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBzYW1wbGUgdG8gY29udGFpbiBidWZmZXIiKTtjb25zdCBTPXRoaXMuZGVjb2Rlci5nZXRQYXJhbWV0ZXJzKCk7aWYobmV3IFVpbnQ4QXJyYXkoZy5idWZmZXIpLnNldChtKSxTKXtjb25zdCBmPVtuZXcgVWludDhBcnJheShnLmJ1ZmZlciwwLFMud2lkdGgqUy5oZWlnaHQpLG5ldyBVaW50OEFycmF5KGcuYnVmZmVyLFMud2lkdGgqUy5oZWlnaHQsUy53aWR0aC8yKlMuaGVpZ2h0LzIpLG5ldyBVaW50OEFycmF5KGcuYnVmZmVyLFMud2lkdGgqUy5oZWlnaHQrUy53aWR0aC8yKlMuaGVpZ2h0LzIsUy53aWR0aC8yKlMuaGVpZ2h0LzIpXTt0aGlzLmRlY29kZWRTYW1wbGVzLnB1c2goZ0EoSUEoe30sZykse2J1ZmZlcjpnLmJ1ZmZlcix0eXBlOiJ2aWRlbyIsZm9ybWF0OiJ5dXY0MjAiLGNvbG9yUHJpbWFyaWVzOiJidDcwOSIsd2lkdGg6KHI9KHE9Uy5jcm9wcGluZyk9PW51bGw/dm9pZCAwOnEud2lkdGgpIT1udWxsP3I6Uy53aWR0aCxoZWlnaHQ6KEo9KGQ9Uy5jcm9wcGluZyk9PW51bGw/dm9pZCAwOmQuaGVpZ2h0KSE9bnVsbD9KOlMuaGVpZ2h0LGNvZGVkV2lkdGg6Uy53aWR0aCxjb2RlZEhlaWdodDpTLmhlaWdodCxkYXRhOmYsc3RhdGlzdGljczp7ZGVjb2RlVGltZTpEYXRlLm5vdygpLWEsdHJhbnNwb3J0VGltZUZyb21Xb3JrZXI6MCx0cmFuc3BvcnRUaW1lVG9Xb3JrZXI6MCxzYW1wbGVzSW5CYXRjaDoxfX0pKX19cmV0dXJuITB9KX0pO0QodGhpcywidGFrZSIsKCk9PnRoaXMuZGVjb2RlZFNhbXBsZXMuc2hpZnQoKSk7dGhpcy5kZWNvZGVyPWd9fTtEKHAsImNyZWF0ZSIsKCk9PlQocCxudWxsLGZ1bmN0aW9uKigpe3JldHVybiBuZXcgcCh5aWVsZCBqLmNyZWF0ZSgpKX0pKTtsZXQgVj1wO2NvbnN0IEw9c2VsZix0QT0oKT0+VCh0aGlzLG51bGwsZnVuY3Rpb24qKCl7dHJ5e0wuZGVjb2Rlcj15aWVsZCBWLmNyZWF0ZSgpLEwucG9zdE1lc3NhZ2Uoe3R5cGU6InJlYWR5In0pfWNhdGNoKFEpe0wucG9zdE1lc3NhZ2Uoe3R5cGU6ImVycm9yIixtZXNzYWdlOlEgaW5zdGFuY2VvZiBFcnJvcj9RLm1lc3NhZ2U6dm9pZCAwfSl9fSksd0E9UT0+e2NvbnN0IGc9UTtnLmRhdGE9bnVsbH07dEEoKSxMLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLFE9Pnt2YXIgZyxBLEM7c3dpdGNoKFEuZGF0YS50eXBlKXtjYXNlImRlY29kZSBzYW1wbGVzIjp0cnl7Y29uc3QgRT1EYXRlLm5vdygpLVEuZGF0YS50aW1lc3RhbXAsaT1bXTtRLmRhdGEuc2FtcGxlcy5tYXAoRz0+e3ZhciBSO3JldHVybihSPUwuZGVjb2Rlcik9PW51bGw/dm9pZCAwOlIuZW5xdWV1ZShHKX0pO2xldCBhO2Zvcig7YT0oZz1MLmRlY29kZXIpPT1udWxsP3ZvaWQgMDpnLnRha2UoKTspYS5zdGF0aXN0aWNzJiYoYS5zdGF0aXN0aWNzLnRyYW5zcG9ydFRpbWVUb1dvcmtlcj1FLGEuc3RhdGlzdGljcy5zYW1wbGVzSW5CYXRjaD1RLmRhdGEuc2FtcGxlcy5sZW5ndGgpLGkucHVzaChhKTtjb25zdCBzPWkubWFwKEc9PkcuYnVmZmVyKTtRLmRhdGEuc2FtcGxlcy5tYXAoRz0+d0EoRykpLEwucG9zdE1lc3NhZ2Uoe3R5cGU6ImRlY29kZWQgc2FtcGxlcyIsc2FtcGxlczppLHRpbWVzdGFtcDpEYXRlLm5vdygpLHNhbXBsZXNQcm9jZXNzZWRDb3VudDpRLmRhdGEuc2FtcGxlcy5sZW5ndGh9LHMpfWNhdGNoKEUpe0wucG9zdE1lc3NhZ2Uoe3R5cGU6ImVycm9yIixtZXNzYWdlOkUgaW5zdGFuY2VvZiBFcnJvcj9FLm1lc3NhZ2U6dm9pZCAwfSl9YnJlYWs7Y2FzZSJ1bmxvYWQiOihBPUwuZGVjb2Rlcik9PW51bGx8fEEudW5sb2FkKCksTC5kZWNvZGVyPXZvaWQgMDticmVhaztjYXNlImluaXQgc2VnbWVudCI6KEM9TC5kZWNvZGVyKT09bnVsbHx8Qy5pbml0U2VnbWVudChRLmRhdGEuaW5pdFNlZ21lbnQpO2JyZWFrfX0pfSkoKTsK",dR=Q=>Uint8Array.from(atob(Q),A=>A.charCodeAt(0)),Sr=typeof self!="undefined"&&self.Blob&&new Blob([dR(hr)],{type:"text/javascript;charset=utf-8"});function ER(Q){let A;try{if(A=Sr&&(self.URL||self.webkitURL).createObjectURL(Sr),!A)throw"";const e=new Worker(A,{name:Q==null?void 0:Q.name});return e.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(A)}),e}catch(e){return new Worker("data:text/javascript;base64,"+hr,{name:Q==null?void 0:Q.name})}finally{A&&(self.URL||self.webkitURL).revokeObjectURL(A)}}const dF=class dF{constructor(A,e){i(this,"decodedSamples",[]);i(this,"codedSamples",[]);i(this,"decoder");i(this,"errors",new w(10));i(this,"pool");i(this,"enqueuedSamplesCount",0);i(this,"processedSamplesCount",0);i(this,"targetSamplesInBatch",4);i(this,"targetSamplesInWorker",20);i(this,"unload",()=>{this.decoder.postMessage({type:"unload"}),this.decoder.removeEventListener("message",this.onDecoderEvent),this.decoder.terminate()});i(this,"enqueue",A=>{if(this.codedSamples.push(A),this.samplesInDecoder()===0||this.codedSamples.length>=this.targetSamplesInBatch){const e=this.codedSamples.slice(0,this.targetSamplesInBatch);this.codedSamples=this.codedSamples.slice(this.targetSamplesInBatch),e.forEach(t=>{const B=Math.ceil(t.width/16)*16,F=Math.ceil(t.height/16)*16,n=B*F*3/2;t.buffer=this.pool.get(n)}),this.sendSamples(e),this.enqueuedSamplesCount+=e.length}});i(this,"initSegment",A=>{const e={type:"init segment",initSegment:A};this.decoder.postMessage(e)});i(this,"take",()=>this.decodedSamples.shift());i(this,"samplesInDecoder",()=>this.enqueuedSamplesCount-this.processedSamplesCount);i(this,"sendSamples",A=>{const e={type:"decode samples",samples:A,timestamp:Date.now()},t=A.flatMap(B=>[B.data,B.buffer]);this.decoder.postMessage(e,t)});i(this,"onDecoderEvent",A=>{switch(A.data.type){case"ready":break;case"error":this.errors.push(new Error(A.data.message));break;case"decoded samples":{this.processedSamplesCount+=A.data.samplesProcessedCount;const e=A.data.timestamp;A.data.samples.forEach(t=>{t.statistics&&(t.statistics.transportTimeFromWorker=Date.now()-e)}),this.decodedSamples.push(...A.data.samples)}break}});this.decoder=A,this.pool=e,this.decoder.addEventListener("message",this.onDecoderEvent)}error(){return this.errors.pop()}};i(dF,"create",A=>d(dF,null,function*(){const e=new ER;return yield new Promise((t,B)=>{const F=n=>{switch(e.removeEventListener("message",F),n.data.type){case"ready":t();break;case"error":default:B();break}};e.addEventListener("message",F)}),new dF(e,A)}));let xa=dF;const gR=Object.freeze(Object.defineProperty({__proto__:null,H264DecoderWorkerContext:xa},Symbol.toStringTag,{value:"Module"}));C.AUTHENTICATION_EXPIRED_CODE=Go,C.AUTHENTICATION_FAILED_CODE=bo,C.ApiClient=wo,C.CHANNEL_NOT_FOUND_CODE=Mo,C.CONNECTION_FAILED_AFTER_RETRIES_CODE=fo,C.CONNECTION_FAILED_CODE=yo,C.CastSender=To,C.DISCONNECTED_BY_EDGE=Ho,C.INACTIVITY_CODE=Lo,C.NO_INCOMING_DATA=vo,C.Player=oR,C.Vindral=rn,C.VindralError=X,Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})});
|