@wasm-audio-decoders/flac
Advanced tools
Comparing version 0.1.2 to 0.1.3
/* Copyright 2021-2022 Ethan Halsall. This file is part of wasm-audio-decoders. https://github.com/eshaz/wasm-audio-decoders */ | ||
var t,e;t=this,e=function(t,e){function s(t){const e=Uint8Array,i=Float32Array;s.t||Object.defineProperties(s,{t:{value:new WeakMap},o:{value(t,e){s.t.set(t,Promise.resolve(e))}},u:{value(t,e){let i=s.t.get(t);return i||(e?i=WebAssembly.compile(s.U(e)):(e=t.p,i=s.M(e).then((t=>WebAssembly.compile(t)))),s.t.set(t,i)),i}},T:{value(t,e){let s=new i(e),r=0,n=0;for(;r<t.length;)s.set(t[r],n),n+=t[r++].length;return s}},A:{value:(t,e,s,i,r)=>({S:t,channelData:e,samplesDecoded:s,sampleRate:i,bitDepth:r})},$:{value(t,e,i,r,n,h){let a,o,c=[];for(a=0;a<i;a++){const t=[];for(o=0;o<e.length;)t.push(e[o++][a]||[]);c.push(s.T(t,r))}return s.A(t,c,r,n,h)}},U:{value(t){const s=new e(t.length),i=parseInt(t.substring(11,13),16),r=256-i;let n,h=!1,a=0,o=13;for(;o<t.length;)n=t.charCodeAt(o++),61!==n||h?(h&&(h=!1,n-=64),s[a++]=n<i&&n>0?n+r:n-i):h=!0;return s.subarray(0,a)}},M:{value(t){return t=s.U(t),new Promise((i=>{const r=String.raw`dynEncode0014u*ttt$#U¤¤U¤¤3yzzss|yusvuyÚ&4<054<,5T44^T44<(6U~J(44< ~A544U~6J0444545 444J0444J,4U4U Ò7U454U4Z4U4U^/6545T4T44BU~64CU~O4U54U~5 U5T4B4Z!4U~5U5U5T4U~6U4ZTU5U5T44~4O4U2ZTU5T44Z!4B6T44U~64B6U~O44U~4O4U~54U~5 44~C4~54U~5 44~5454U4B6Ub!444~UO4U~5 U54U4ZTU#44U$464<4~B6^4<444~U~B4U~54U544~544~U5 µUä#UJUè#5TT4U0ZTTUX5U5T4T4Uà#~4OU4U $~C4~54U~5 T44$6U\!TTT4UaT4<6T4<64<Z!44~4N4<U~5 4UZ!4U±_TU#44UU6UÔ~B$544$6U\!4U6U¤#~B44Uä#~B$~64<6_TU#444U~B~6~54<Y!44<_!T4Y!4<64~444~AN44<U~6J4U5 44J4U[!U#44UO4U~54U~5 U54 7U6844J44J 4UJ4UJ04VK(44<J44<J$4U´~54U~5 4U¤~5!TTT4U$5"U5TTTTTTT4U$"4VK,U54<(6U~64<$6_!4< 64~6A54A544U~6#J(U54A4U[!44J(44#~A4U6UUU [!4464~64_!4<64~54<6T4<4]TU5 T4Y!44~44~AN4U~54U~54U5 44J(44J UÄA!U5U#UôJU"UÔJU#UÔ"JU#U´"JT4U´ZTU5T4UôZTU5T4UDZTU5T4U$[T44~UO4U~5 UÔUô4U~U´$.U5T4UP[T4U~4~UO4U~5 U#<U#<4U~U2$.UÄUN 44 ~UO4U~5 44!~UO4U~5 4U~4~UO4U~5 44J44J(U5 44U¤~J@44Uä~J<44UD~J844U~J44U$54U$5U54U$54U1^4U1^!4U~54U~5U54U~6U4U^/65T4T4U$54U~4BU~4O4U54U~5 UU'464U'_/54UU~5T4T4U~4BU~UO4U54U~5 U54Uä~4U¤~4U~U'$!44~5U5T44\T44U<~$6U\!4U#aT4U~4U~4O4U~5 U5U5U5TTT4U$"4YTU5 4U4~C5U5 U5U5444$4~64~\TU5 4U~4U~5T4Y!44O4U~54U~54U5 4CYTU5 4Uä~4U¤~4U~4$6TU54U\!44Bæ4Bä~[!4U~4UD~4U~4U~4$6TU54U\!44B4B~[!44U<~4U4~$5 4U"U#$544"Y!454U^!44<J44<(J454U~84UN!#%'+/37?GOWgw·×÷Uä;U9$%& !"#`;s.u(s,r).then((t=>WebAssembly.instantiate(t,{}))).then((({exports:s})=>{const r=new Map(Object.entries(s)),n=r.get("puff"),h=r.get("memory").buffer,a=new e(h),o=new DataView(h);let c=r.get("__heap_base");const l=t.length,d=c;c+=4,o.setInt32(d,l,!0);const u=c;c+=l,a.set(t,u);const U=c;c+=4,o.setInt32(U,a.byteLength-c,!0),n(c,U,u,d),i(a.slice(c,c+o.getInt32(U,!0)))}))}))}}}),Object.defineProperty(this,"p",{O:!0,get:()=>this.v}),this.B=(t,e,s)=>{let i=[],r=0;for(;r<e;)i.push(t.slice(r*s,r++*s+s));return i},this.F=(t,e,s=!0)=>{const i=this.v.C(e.BYTES_PER_ELEMENT*t);return s&&this.J.add(i),{_:i,D:t,L:new e(this.v.V,i,t)}},this.free=()=>{this.J.forEach((t=>{this.v.W(t)})),this.J.clear()},this.P=t=>{const e=[],s=new Uint8Array(this.v.V);for(let i=s[t];0!==i;i=s[++t])e.push(i);return String.fromCharCode.apply(null,e)},this.H=(e,s,i)=>{e.push({message:s,frameLength:i,frameNumber:t.q,inputBytes:t.I,outputSamples:t.Y})},this.instantiate=()=>{const r=t.K,n=t.Z,h=t.G,a=t.N,o=t.R;return r&&s.o(n,r),this.v=new n(s).instantiate(),this.J=new Set,this.v.ready.then((()=>(h&&(t.X=this.F(h,e)),o&&(t.tt=this.F(a*o,i)),t.I=0,t.Y=0,t.q=0,this)))}}class i extends((()=>globalThis.Worker||e)()){constructor(t,e,i,r){s.t||new s;let n=s.t.get(i);if(!n){const t=`'use strict';(${""+((t,e,s)=>{let i,r,n=new Promise((t=>{r=t}));self.onmessage=({data:{id:h,command:a,data:o}})=>{let c,l=n,d={id:h};"init"===a?(Object.defineProperties(t,{et:{value:e},st:{value:s},it:{value:o.it},rt:{value:!0}}),i=new t(o.options),r()):"free"===a?i.free():"ready"===a?l=l.then((()=>i.ready)):"reset"===a?l=l.then((()=>i.reset())):(Object.assign(d,i[a](Array.isArray(o)?o.map((t=>new Uint8Array(t))):new Uint8Array(o))),c=d.channelData.map((t=>t.buffer))),l.then((()=>self.postMessage(d,c)))}})})(${i}, ${s}, ${r})`,e="text/javascript";try{n=URL.createObjectURL(new Blob([t],{type:e}))}catch{n=`data:${e};base64,${Buffer.from(t).toString("base64")}`}s.t.set(i,n)}super(n,{name:e}),this.nt=Number.MIN_SAFE_INTEGER,this.ht=new Map,this.onmessage=({data:t})=>{const{id:e,...s}=t;this.ht.get(e)(s),this.ht.delete(e)},new r(s).u().then((e=>{this.at("init",{it:e,options:t})}))}async at(t,e){return new Promise((s=>{this.postMessage({command:t,id:this.nt,data:e}),this.ht.set(this.nt++,s)}))}get ready(){return this.at("ready")}async free(){await this.at("free").finally((()=>{this.terminate()}))}async reset(){await this.at("reset")}}const r=(t,e,s)=>{for(let i=0;i<t.length;i++){let r=e(i);for(let t=8;t>0;t--)r=s(r);t[i]=r}return t},n=r(new Uint8Array(256),(t=>t),(t=>128&t?7^t<<1:t<<1)),h=[r(new Uint16Array(256),(t=>t<<8),(t=>t<<1^(32768&t?32773:0)))],a=[r(new Uint32Array(256),(t=>t),(t=>t>>>1^3988292384*(1&t)))];for(let ee=0;ee<15;ee++){h.push(new Uint16Array(256)),a.push(new Uint32Array(256));for(let t=0;t<=255;t++)h[ee+1][t]=h[0][h[ee][t]>>>8]^h[ee][t]<<8,a[ee+1][t]=a[ee][t]>>>8^a[0][255&a[ee][t]]}const o=t=>{const e=t.length,s=e-16;let i=0,r=0;for(;r<=s;)i=a[15][255&(t[r++]^i)]^a[14][255&(t[r++]^i>>>8)]^a[13][255&(t[r++]^i>>>16)]^a[12][t[r++]^i>>>24]^a[11][t[r++]]^a[10][t[r++]]^a[9][t[r++]]^a[8][t[r++]]^a[7][t[r++]]^a[6][t[r++]]^a[5][t[r++]]^a[4][t[r++]]^a[3][t[r++]]^a[2][t[r++]]^a[1][t[r++]]^a[0][t[r++]];for(;r!==e;)i=a[0][255&(i^t[r++])]^i>>>8;return-1^i},c=(...t)=>{const e=new Uint8Array(t.reduce(((t,e)=>t+e.length),0));return t.reduce(((t,s)=>(e.set(s,t),t+s.length)),0),e},l=t=>String.fromCharCode(...t),d=[0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15],u=t=>d[15&t]<<4|d[t>>4];class U{constructor(t){this.ot=t,this.ct=8*t.length}set position(t){this.ct=t}get position(){return this.ct}read(t){const e=Math.floor(this.ct/8),s=this.ct%8;return this.ct-=t,(u(this.ot[e-1])<<8)+u(this.ot[e])>>7-s&255}}class f{constructor(t){this.lt=t,this.reset()}enable(){this.dt=!0}reset(){this.ut=new Map,this.Ut=new WeakMap,this.ft=!1,this.yt=null,this.dt=!1}wt(t,e){if(this.lt){this.yt!==t&&(this.yt=t,this.ft=!0);const s=this.Ut.get(this.ut.get(this.gt));this.ft&&s&&this.lt({bt:t,...s},e),this.ft=!1}}Mt(t){this.lt&&t!==this.gt&&(this.ft=!0,this.gt=t)}Tt(t){const e=this.ut.get(t);return e&&this.Mt(t),e}At(t,e,s){this.dt&&(this.Mt(t),this.ut.set(t,e),this.Ut.set(e,s))}}const m=new WeakMap,p=new WeakMap;class y{constructor(t,e){this.xt=t,this.ut=e}*St(){let t;for(;;){if(t=yield*this.Ot.$t(this.xt,this.ut,0),t)return t;this.xt.vt(1)}}*zt(t){let e=yield*this.St();const s=p.get(e).length;if(t||this.xt.Bt||(yield*this.Ft.Tt(this.xt,this.ut,s)))return this.ut.enable(),this.xt.vt(s),this.xt.Ct(e),e;this.xt.Jt(`Missing frame frame at ${s} bytes from current position.`,"Dropping current frame and trying again."),this.ut.reset(),this.xt.vt(1)}}class w{constructor(t,e){p.set(this,{_t:t}),this.data=e}}class g extends w{static*$t(t,e,s,i,r){const n=yield*t.Tt(s,i,r);if(n){const t=m.get(n).frameLength,i=m.get(n).Dt;return new e(n,(yield*s.Et(t,r)).subarray(0,t),i)}return null}constructor(t,e,s){super(t,e),this._t=t,this.Dt=s,this.duration=s/t.sampleRate*1e3,this.frameNumber=null,this.Lt=null,this.Vt=null,this.Wt=null,p.get(this).length=e.length}}const b="reserved",M="bad",T="free",A="none",x="16bit CRC",S="left",$="center",O="right",v=["","front ","side ","rear "].map((t=>[[S,O],[S,O,$],[S,$,O],[$,S,O],[$]].flatMap((e=>e.map((e=>t+e)).join(", "))))),z="LFE",B="monophonic (mono)",F="stereo",C="surround",J=[B,F,"linear "+C,"quadraphonic","5.0 "+C,"5.1 "+C,"6.1 "+C,"7.1 "+C],_=(t,...e)=>`${J[t-1]} (${e.join(", ")})`,D=[B,_(2,v[0][0]),_(3,v[0][2]),_(4,v[1][0],v[3][0]),_(5,v[1][2],v[3][0]),_(6,v[1][2],v[3][0],z),_(7,v[1][2],v[2][0],v[3][4],z),_(8,v[1][2],v[2][0],v[3][0],z)],E=48e3,L=44100,V=32e3,W=24e3,P=22050,H=16e3,k=8e3;class q{static*Pt(t,e,s){const i={Ht:10};let r=yield*t.Et(3,s);return 73!==r[0]||68!==r[1]||51!==r[2]?null:(r=yield*t.Et(i.Ht,s),i.version=`id3v2.${r[3]}.${r[4]}`,15&r[5]?null:(i.kt=!!(128&r[5]),i.qt=!!(64&r[5]),i.It=!!(32&r[5]),i.Yt=!!(16&r[5]),128&r[6]||128&r[7]||128&r[8]||128&r[9]?null:(i.Kt=r[6]<<21|r[7]<<14|r[8]<<7|r[9],i.length=i.Ht+i.Kt,new q(i))))}constructor(t){this.version=t.version,this.kt=t.kt,this.qt=t.qt,this.It=t.It,this.Yt=t.Yt,this.length=t.length}}class I{constructor(t){m.set(this,t),this.bitDepth=t.bitDepth,this.bt=null,this.Zt=t.Zt,this.Gt=t.Gt,this.sampleRate=t.sampleRate}}const Y={0:[T,T,T,T,T],16:[32,32,32,32,8],240:[M,M,M,M,M]},K=(t,e,s)=>8*((t+s)%e+e)*(1<<(t+s)/e)-8*e*(e/8|0);for(let ee=2;ee<15;ee++)Y[ee<<4]=[32*ee,K(ee,4,0),K(ee,4,-1),K(ee,8,4),K(ee,8,0)];const Z="bands ",G=" to 31",N={0:Z+4+G,16:Z+8+G,32:Z+12+G,48:Z+16+G},R="Intensity stereo ",j=", MS stereo ",Q="on",X="off",tt={0:{description:b},2:{description:"Layer III",Nt:1,Rt:{0:R+X+j+X,16:R+Q+j+X,32:R+X+j+Q,48:R+Q+j+Q},jt:{Qt:2,Dt:1152},Xt:{Qt:4,Dt:576}},4:{description:"Layer II",Nt:1,Rt:N,Dt:1152,jt:{Qt:1},Xt:{Qt:4}},6:{description:"Layer I",Nt:4,Rt:N,Dt:384,jt:{Qt:0},Xt:{Qt:3}}},et="MPEG Version ",st="ISO/IEC ",it={0:{description:et+"2.5 (later extension of MPEG 2)",te:"v2",ee:{0:11025,4:12e3,8:k,12:b}},8:{description:b},16:{description:`${et}2 (${st}13818-3)`,te:"v2",ee:{0:P,4:W,8:H,12:b}},24:{description:`${et}1 (${st}11172-3)`,te:"v1",ee:{0:L,4:E,8:V,12:b}}},rt={0:x,1:A},nt={0:A,1:"50/15 ms",2:b,3:"CCIT J.17"},ht={0:{Zt:2,description:F},64:{Zt:2,description:"joint "+F},128:{Zt:2,description:"dual channel"},192:{Zt:1,description:B}};class at extends I{static*Tt(t,e,s){const i={},r=yield*q.Pt(t,e,s);r&&(yield*t.Et(r.length,s),t.vt(r.length));const n=yield*t.Et(4,s),h=l(n.subarray(0,4)),a=e.Tt(h);if(a)return new at(a);if(255!==n[0]||n[1]<224)return null;const o=it[24&n[1]];if(o.description===b)return null;const c=6&n[1];if(tt[c].description===b)return null;const d={...tt[c],...tt[c][o.te]};if(i.se=o.description,i.ie=d.description,i.Dt=d.Dt,i.re=rt[1&n[1]],i.length=4,i.bt=Y[240&n[2]][d.Qt],i.bt===M)return null;if(i.sampleRate=o.ee[12&n[2]],i.sampleRate===b)return null;if(i.Nt=2&n[2]&&d.Nt,i.ne=!!(1&n[2]),i.frameLength=Math.floor(125*i.bt*i.Dt/i.sampleRate+i.Nt),!i.frameLength)return null;const u=192&n[3];if(i.Gt=ht[u].description,i.Zt=ht[u].Zt,i.he=d.Rt[48&n[3]],i.ae=!!(8&n[3]),i.oe=!!(4&n[3]),i.ce=nt[3&n[3]],i.ce===b)return null;i.bitDepth=16;const{length:U,frameLength:f,Dt:m,...p}=i;return e.At(h,i,p),new at(i)}constructor(t){super(t),this.bt=t.bt,this.ce=t.ce,this.Nt=t.Nt,this.ae=t.ae,this.oe=t.oe,this.ne=t.ne,this.ie=t.ie,this.he=t.he,this.se=t.se,this.re=t.re}}class ot extends g{static*$t(t,e,s){return yield*super.$t(at,ot,t,e,s)}constructor(t,e,s){super(t,e,s)}}class ct extends y{constructor(t,e,s){super(t,e),this.Ot=ot,this.Ft=at,s(this.le)}get le(){return"mpeg"}*de(){return yield*this.zt()}}const lt={0:"MPEG-4",8:"MPEG-2"},dt={0:"valid",2:M,4:M,6:M},ut={0:x,1:A},Ut={0:"AAC Main",64:"AAC LC (Low Complexity)",128:"AAC SSR (Scalable Sample Rate)",192:"AAC LTP (Long Term Prediction)"},ft={0:96e3,4:88200,8:64e3,12:E,16:L,20:V,24:W,28:P,32:H,36:12e3,40:11025,44:k,48:7350,52:b,56:b,60:"frequency is written explicitly"},mt={0:{Zt:0,description:"Defined in AOT Specific Config"},64:{Zt:1,description:B},128:{Zt:2,description:_(2,v[0][0])},192:{Zt:3,description:_(3,v[1][3])},256:{Zt:4,description:_(4,v[1][3],v[3][4])},320:{Zt:5,description:_(5,v[1][3],v[3][0])},384:{Zt:6,description:_(6,v[1][3],v[3][0],z)},448:{Zt:8,description:_(8,v[1][3],v[2][0],v[3][0],z)}};class pt extends I{static*Tt(t,e,s){const i={},r=yield*t.Et(7,s),n=l([r[0],r[1],r[2],252&r[3]|3&r[6]]),h=e.Tt(n);if(h)Object.assign(i,h);else{if(255!==r[0]||r[1]<240)return null;if(i.se=lt[8&r[1]],i.ie=dt[6&r[1]],i.ie===M)return null;const t=1&r[1];i.re=ut[t],i.length=t?7:9,i.ue=192&r[2],i.Ue=60&r[2];const s=2&r[2];if(i.profile=Ut[i.ue],i.sampleRate=ft[i.Ue],i.sampleRate===b)return null;i.ne=!!s,i.fe=448&(r[2]<<8|r[3]),i.Gt=mt[i.fe].description,i.Zt=mt[i.fe].Zt,i.oe=!!(32&r[3]),i.me=!!(8&r[3]),i.pe=!!(8&r[3]),i.ye=!!(4&r[3]),i.bitDepth=16,i.Dt=1024,i.we=3&r[6];const{length:h,fe:a,ue:o,Ue:c,frameLength:l,Dt:d,we:u,...U}=i;e.At(n,i,U)}if(i.frameLength=8191&(r[3]<<11|r[4]<<3|r[5]>>5),!i.frameLength)return null;const a=2047&(r[5]<<6|r[6]>>2);return i.ge=2047===a?"VBR":a,new pt(i)}constructor(t){super(t),this.pe=t.pe,this.ye=t.ye,this.ge=t.ge,this.me=t.me,this.oe=t.oe,this.ne=t.ne,this.ie=t.ie,this.length=t.length,this.se=t.se,this.we=t.we,this.profile=t.profile,this.re=t.re}get be(){const t=m.get(this),e=t.ue+64<<5|t.Ue<<5|t.fe>>3,s=new Uint8Array(2);return new DataView(s.buffer).setUint16(0,e,!1),s}}class yt extends g{static*$t(t,e,s){return yield*super.$t(pt,yt,t,e,s)}constructor(t,e,s){super(t,e,s)}}class wt extends y{constructor(t,e,s){super(t,e),this.Ot=yt,this.Ft=pt,s(this.le)}get le(){return"aac"}*de(){return yield*this.zt()}}class gt extends g{static Me(t){return(t[t.length-2]<<8)+t[t.length-1]}static Te(t){return gt.Me(t)===(t=>{const e=t.length,s=e-16;let i=0,r=0;for(;r<=s;)i^=t[r++]<<8|t[r++],i=h[15][i>>8]^h[14][255&i]^h[13][t[r++]]^h[12][t[r++]]^h[11][t[r++]]^h[10][t[r++]]^h[9][t[r++]]^h[8][t[r++]]^h[7][t[r++]]^h[6][t[r++]]^h[5][t[r++]]^h[4][t[r++]]^h[3][t[r++]]^h[2][t[r++]]^h[1][t[r++]]^h[0][t[r++]];for(;r!==e;)i=(255&i)<<8^h[0][i>>8^t[r++]];return i})(t.subarray(0,-2))}constructor(t,e,s){e.Ae=s,e.xe=gt.Me(t),super(e,t,m.get(e).Dt)}}const bt="get from STREAMINFO metadata block",Mt={0:"Fixed",1:"Variable"},Tt={0:b,16:192};for(let ee=2;ee<16;ee++)Tt[ee<<4]=ee<6?576*2**(ee-2):2**ee;const At={0:bt,1:88200,2:176400,3:192e3,4:k,5:H,6:P,7:W,8:V,9:L,10:E,11:96e3,15:M},xt={0:{Zt:1,description:B},16:{Zt:2,description:_(2,v[0][0])},32:{Zt:3,description:_(3,v[0][1])},48:{Zt:4,description:_(4,v[1][0],v[3][0])},64:{Zt:5,description:_(5,v[1][1],v[3][0])},80:{Zt:6,description:_(6,v[1][1],z,v[3][0])},96:{Zt:7,description:_(7,v[1][1],z,v[3][4],v[2][0])},112:{Zt:8,description:_(8,v[1][1],z,v[3][0],v[2][0])},128:{Zt:2,description:F+" (left, diff)"},144:{Zt:2,description:F+" (diff, right)"},160:{Zt:2,description:F+" (avg, diff)"},176:b,192:b,208:b,224:b,240:b},St={0:bt,2:8,4:12,6:b,8:16,10:20,12:24,14:b};class $t extends I{static Se(t){if(t[0]>254)return null;if(t[0]<128)return{value:t[0],length:1};let e=1;for(let n=64;n&t[0];n>>=1)e++;let s=e-1,i=0,r=0;for(;s>0;r+=6,s--){if(128!=(192&t[s]))return null;i|=(63&t[s])<<r}return i|=(t[s]&127>>e)<<r,{value:i,length:e}}static $e(t,e){const s={*Et(){return t}};return $t.Tt(s,e,0).next().value}static*Tt(t,e,s){let i=yield*t.Et(6,s);if(255!==i[0]||248!==i[1]&&249!==i[1])return null;const r={},h=l(i.subarray(0,4)),a=e.Tt(h);if(a)Object.assign(r,a);else{if(r.Oe=1&i[1],r.ve=Mt[r.Oe],r.ze=240&i[2],r.Ue=15&i[2],r.blockSize=Tt[r.ze],r.blockSize===b)return null;if(r.sampleRate=At[r.Ue],r.sampleRate===M)return null;if(1&i[3])return null;const t=xt[240&i[3]];if(t===b)return null;if(r.Zt=t.Zt,r.Gt=t.description,r.bitDepth=St[14&i[3]],r.bitDepth===b)return null}r.length=5,i=yield*t.Et(r.length+8,s);const o=$t.Se(i.subarray(4));if(!o)return null;if(r.Oe?r.Be=o.value:r.frameNumber=o.value,r.length+=o.length,96===r.ze?(i.length<r.length&&(i=yield*t.Et(r.length,s)),r.blockSize=i[r.length-1]+1,r.length+=1):112===r.ze&&(i.length<r.length&&(i=yield*t.Et(r.length,s)),r.blockSize=(i[r.length-1]<<8)+i[r.length]+1,r.length+=2),r.Dt=r.blockSize,12===r.Ue?(i.length<r.length&&(i=yield*t.Et(r.length,s)),r.sampleRate=1e3*i[r.length-1],r.length+=1):13===r.Ue?(i.length<r.length&&(i=yield*t.Et(r.length,s)),r.sampleRate=(i[r.length-1]<<8)+i[r.length],r.length+=2):14===r.Ue&&(i.length<r.length&&(i=yield*t.Et(r.length,s)),r.sampleRate=10*((i[r.length-1]<<8)+i[r.length]),r.length+=2),i.length<r.length&&(i=yield*t.Et(r.length,s)),r.Fe=i[r.length-1],r.Fe!==(t=>{let e=0;const s=t.length;for(let i=0;i!==s;i++)e=n[e^t[i]];return e})(i.subarray(0,r.length-1)))return null;if(!a){const{Oe:t,frameNumber:s,Be:i,Dt:n,Ue:a,ze:o,Fe:c,length:l,...d}=r;e.At(h,r,d)}return new $t(r)}constructor(t){super(t),this.xe=null,this.ve=t.ve,this.blockSize=t.blockSize,this.frameNumber=t.frameNumber,this.Be=t.Be,this.Ae=null}}class Ot extends y{constructor(t,e){super(t,e),this.Ot=gt,this.Ft=$t}get le(){return"flac"}*Ce(t){const e=yield*this.xt.Et(2,0),s=e.length-2;for(;t<s;){if(255===e[t]){const s=e[t+1];if(248===s||249===s)break;255!==s&&t++}t++}return t}*de(){for(;;){const t=yield*$t.Tt(this.xt,this.ut,0);if(t){let e=m.get(t).length+2;for(;e<=524288;){if(this.xt.Bt||(yield*$t.Tt(this.xt,this.ut,e))){let s=yield*this.xt.Et(e);if(this.xt.Bt||(s=s.subarray(0,e)),gt.Te(s)){const i=new gt(s,t);return this.ut.enable(),this.xt.vt(e),this.xt.Ct(i),i}}e=yield*this.Ce(e+1)}this.xt.Jt(`Unable to sync FLAC frame after searching ${e} bytes.`),this.xt.vt(e)}else this.xt.vt(yield*this.Ce(1))}}Je(t){return 0===t._e?(this.ut.enable(),this.De=t.data.subarray(13)):1===t._e||(t.Ee=p.get(t).Le.map((t=>{const e=$t.$e(t,this.ut);if(e)return new gt(t,e,this.De);this.xt.Jt("Failed to parse Ogg FLAC frame","Skipping invalid FLAC frame")})).filter((t=>!!t))),t}}class vt{static*Tt(t,e,s){const i={};let r=yield*t.Et(28,s);if(79!==r[0]||103!==r[1]||103!==r[2]||83!==r[3])return null;if(i.Ve=r[4],248&r[5])return null;i.We=!!(4&r[5]),i.Pe=!!(2&r[5]),i.He=!!(1&r[5]);const n=new DataView(Uint8Array.from(r.subarray(0,28)).buffer);try{i.ke=n.getBigInt64(6,!0)}catch{}i.qe=n.getInt32(14,!0),i._e=n.getInt32(18,!0),i.Ie=n.getInt32(22,!0);const h=r[26];i.length=h+27,r=yield*t.Et(i.length,s),i.frameLength=0,i.Ye=[],i.Ke=Uint8Array.from(r.subarray(27,i.length));for(let a=0,o=0;a<h;a++){const t=i.Ke[a];i.frameLength+=t,o+=t,255===t&&a!==h-1||(i.Ye.push(o),o=0)}return new vt(i)}constructor(t){m.set(this,t),this.ke=t.ke,this.He=t.He,this.Pe=t.Pe,this.We=t.We,this.Ye=t.Ye,this._e=t._e,this.Ie=t.Ie,this.qe=t.qe}}class zt extends w{static*$t(t,e,s){const i=yield*vt.Tt(t,e,s);if(i){const e=m.get(i).frameLength,s=m.get(i).length,r=s+e,n=(yield*t.Et(r,0)).subarray(0,r),h=n.subarray(s,r);return new zt(i,h,n)}return null}constructor(t,e,s){super(t,e),p.get(this).length=s.length,this.Ee=[],this.Ze=s,this.ke=t.ke,this.Ge=t.Ie,this.duration=0,this.He=t.He,this.Pe=t.Pe,this.We=t.We,this._e=t._e,this.Dt=0,this.qe=t.qe}}class Bt extends g{constructor(t,e){super(e,t,e.Ne*e.Re/1e3*e.sampleRate)}}const Ft={0:D.slice(0,2),1:D},Ct="SILK-only",Jt="CELT-only",_t="Hybrid",Dt="narrowband",Et="medium-band",Lt="wideband",Vt="super-wideband",Wt="fullband",Pt={0:{mode:Ct,je:Dt,Ne:10},8:{mode:Ct,je:Dt,Ne:20},16:{mode:Ct,je:Dt,Ne:40},24:{mode:Ct,je:Dt,Ne:60},32:{mode:Ct,je:Et,Ne:10},40:{mode:Ct,je:Et,Ne:20},48:{mode:Ct,je:Et,Ne:40},56:{mode:Ct,je:Et,Ne:60},64:{mode:Ct,je:Lt,Ne:10},72:{mode:Ct,je:Lt,Ne:20},80:{mode:Ct,je:Lt,Ne:40},88:{mode:Ct,je:Lt,Ne:60},96:{mode:_t,je:Vt,Ne:10},104:{mode:_t,je:Vt,Ne:20},112:{mode:_t,je:Wt,Ne:10},120:{mode:_t,je:Wt,Ne:20},128:{mode:Jt,je:Dt,Ne:2.5},136:{mode:Jt,je:Dt,Ne:5},144:{mode:Jt,je:Dt,Ne:10},152:{mode:Jt,je:Dt,Ne:20},160:{mode:Jt,je:Lt,Ne:2.5},168:{mode:Jt,je:Lt,Ne:5},176:{mode:Jt,je:Lt,Ne:10},184:{mode:Jt,je:Lt,Ne:20},192:{mode:Jt,je:Vt,Ne:2.5},200:{mode:Jt,je:Vt,Ne:5},208:{mode:Jt,je:Vt,Ne:10},216:{mode:Jt,je:Vt,Ne:20},224:{mode:Jt,je:Wt,Ne:2.5},232:{mode:Jt,je:Wt,Ne:5},240:{mode:Jt,je:Wt,Ne:10},248:{mode:Jt,je:Wt,Ne:20}};class Ht extends I{static $e(t,e,s){const i={};if(i.Zt=t[9],i.Qe=t[18],i.length=0!==i.Qe?21+i.Zt:19,t.length<i.length)throw Error("Out of data while inside an Ogg Page");const r=3&e[0],n=3===r?2:1,h=l(t.subarray(0,i.length))+l(e.subarray(0,n)),a=s.Tt(h);if(a)return new Ht(a);if("OpusHead"!==h.substr(0,8))return null;if(1!==t[8])return null;i.data=Uint8Array.from(t.subarray(0,i.length));const o=new DataView(i.data.buffer);if(i.bitDepth=16,i.Xe=o.getUint16(10,!0),i.ts=o.getUint32(12,!0),i.sampleRate=E,i.es=o.getInt16(16,!0),i.Qe in Ft&&(i.Gt=Ft[i.Qe][i.Zt-1],!i.Gt))return null;0!==i.Qe&&(i.ss=t[19],i.rs=t[20],i.ns=[...t.subarray(21,i.Zt+21)]);const c=Pt[248&e[0]];switch(i.mode=c.mode,i.je=c.je,i.Ne=c.Ne,r){case 0:i.Re=1;break;case 1:case 2:i.Re=2;break;case 3:i.hs=!!(128&e[1]),i.os=!!(64&e[1]),i.Re=63&e[1];break;default:return null}const{length:d,data:u,Qe:U,...f}=i;return s.At(h,i,f),new Ht(i)}constructor(t){super(t),this.data=t.data,this.je=t.je,this.Qe=t.Qe,this.ns=t.ns,this.rs=t.rs,this.Re=t.Re,this.Ne=t.Ne,this.os=t.os,this.ts=t.ts,this.hs=t.hs,this.mode=t.mode,this.es=t.es,this.Xe=t.Xe,this.ss=t.ss}}class kt extends y{constructor(t,e){super(t,e),this.Ot=Bt,this.Ft=Ht,this.cs=null}get le(){return"opus"}Je(t){return 0===t._e?(this.ut.enable(),this.cs=t.data):1===t._e||(t.Ee=p.get(t).Le.map((t=>{const e=Ht.$e(this.cs,t,this.ut);if(e)return new Bt(t,e);this.xt.ls("Failed to parse Ogg Opus Header","Not a valid Ogg Opus file")}))),t}}class qt extends g{constructor(t,e,s){super(e,t,s)}}const It={};for(let ee=0;ee<8;ee++)It[ee+6]=2**(6+ee);class Yt extends I{static $e(t,e){if(t.length<30)throw Error("Out of data while inside an Ogg Page");const s=l(t.subarray(0,30)),i=e.Tt(s);if(i)return new Yt(i);const r={length:30};if("vorbis"!==s.substr(0,7))return null;r.data=Uint8Array.from(t.subarray(0,30));const n=new DataView(r.data.buffer);if(r.version=n.getUint32(7,!0),0!==r.version)return null;if(r.Zt=t[11],r.Gt=D[r.Zt-1]||"application defined",r.sampleRate=n.getUint32(12,!0),r.ds=n.getInt32(16,!0),r.us=n.getInt32(20,!0),r.Us=n.getInt32(24,!0),r.fs=It[(240&t[28])>>4],r.ps=It[15&t[28]],r.ps>r.fs)return null;if(1!==t[29])return null;r.bitDepth=32;{const{length:t,data:i,version:n,...h}=r;e.At(s,r,h)}return new Yt(r)}constructor(t){super(t),this.ds=t.ds,this.Us=t.Us,this.us=t.us,this.ps=t.ps,this.fs=t.fs,this.data=t.data,this.ys=null,this.ws=null}}class Kt extends y{constructor(t,e){super(t,e),this.Ot=qt,this.cs=null,this.gs={count:0},this.bs=0,this.Ms=0}get le(){return"vorbis"}Je(t){const e=p.get(t).Le;return 0===t._e?(this.ut.enable(),this.cs=t.data):1===t._e?e[1]&&(this.Ts=e[0],this.As=e[1],this.gs=this.xs(e[1])):t.Ee=e.map((t=>{const e=Yt.$e(this.cs,this.ut);if(e)return e.ys=this.Ts,e.ws=this.As,new qt(t,e,this.Ss(t,e));this.xt.ls("Failed to parse Ogg Vorbis Header","Not a valid Ogg Vorbis file")})),t}Ss(t,e){const s=t[0]>>1,i=this.gs[s&this.gs.mask];i&&(this.bs=s&this.gs.$s?e.fs:e.ps),this.Ms=i?e.fs:e.ps;const r=this.bs+this.Ms>>2;return this.bs=this.Ms,r}xs(t){const e=new U(t),s="Failed to read Vorbis stream",i=", failed to parse vorbis modes";let r,n={count:0};for(;1!=(1&e.read(1)););for(;n.count<64&&e.position>0;){const t=u(e.read(8));if(t in n&&(1!==n.count||0!==t))throw this.xt.ls("received duplicate mode mapping"+i),Error(s);let h=0;for(;0===e.read(8)&&h++<3;);if(4!==h){if(1+((126&u(r))>>1)!==n.count)throw this.xt.ls("mode count did not match actual modes"+i),Error(s);break}r=e.read(7),n[t]=1&r,e.position+=6,n.count++}return n.mask=(1<<Math.log2(n.count))-1,n.$s=1+(1|n.mask),n}}class Zt extends y{constructor(t,e,s){super(t,e),this.Os=s,this.Ot=zt,this.Ft=vt,this.vs=null,this.zs=new Uint8Array,this.Bs=0}get le(){return this.vs||""}Fs(t,e){this.vs!==t&&(this.Cs=new e(this.xt,this.ut),this.vs=t,this.Os(t))}Js({data:t}){const e=l(t.subarray(0,8));switch(e){case"fishead\0":case"fisbone\0":case"index\0\0\0":return!1;case"OpusHead":return this.Fs("opus",kt),!0;case/^\x7fFLAC/.test(e)&&e:return this.Fs("flac",Ot),!0;case/^\x01vorbis/.test(e)&&e:return this.Fs("vorbis",Kt),!0}}_s(t){t._e!==this.Bs+1&&this.Bs>1&&t._e>1&&this.xt.Jt("Unexpected gap in Ogg Page Sequence Number.",`Expected: ${this.Bs+1}, Got: ${t._e}`),this.Bs=t._e}*de(){const t=yield*this.zt(!0);this._s(t);const e=p.get(t),{Ke:s,Ye:i}=m.get(e._t);let r=0;if(e.Le=i.map((e=>t.data.subarray(r,r+=e))),255===s[s.length-1]?this.zs=c(this.zs,e.Le.pop()):this.zs.length&&(e.Le[0]=c(this.zs,e.Le[0]),this.zs=new Uint8Array),this.vs||this.Js(t)){const e=this.Cs.Je(t);return this.xt.Ct(e),e}}}const Gt=()=>{};class Nt{constructor(t,{Ds:e,Es:s,Ls:i=!1,Vs:r=!0}={}){this.Ws=t,this.Os=s||Gt,this.lt=e,this.Ps=i,this.Hs=r?o:Gt,this.ks=this.qs(),this.ks.next()}get le(){return this.Cs.le}*flush(){this.Bt=!0;for(let t=this.ks.next();t.value;t=this.ks.next())yield t.value;this.Bt=!1,this.ks=this.qs(),this.ks.next()}*Is(t){for(let e=this.ks.next(t);e.value;e=this.ks.next())yield e.value}parseAll(t){return[...this.Is(t),...this.flush()]}*qs(){if(this.ut=new f(this.lt),this.Ws.match(/aac/))this.Cs=new wt(this,this.ut,this.Os);else if(this.Ws.match(/mpeg/))this.Cs=new ct(this,this.ut,this.Os);else if(this.Ws.match(/flac/))this.Cs=new Ot(this,this.ut,this.Os);else{if(!this.Ws.match(/ogg/))throw Error("Unsupported Codec "+mimeType);this.Cs=new Zt(this,this.ut,this.Os)}for(this.q=0,this.Ys=0,this.Ks=0,this.Zs=0,this.Gs=0,this.Ns=void 0,this.Rs=new Uint8Array(0);;){const t=yield*this.Cs.de();t&&(yield t)}}*Et(t=0,e=0){let s;for(;this.Rs.length<=t+e;){if(s=yield,this.Bt)return this.Rs.subarray(e);s&&(this.Ks+=s.length,this.Rs=c(this.Rs,s))}return this.Rs.subarray(e)}vt(t){this.Ys+=t,this.Rs=this.Rs.subarray(t)}js(t){this.Ns=t._t.sampleRate,t._t.bt=8*Math.round(t.data.length/t.duration),t.frameNumber=this.q++,t.Lt=this.Zs,t.Vt=this.Gs,t.Wt=this.Gs/this.Ns*1e3,t.Ge=this.Hs(t.data),this.ut.wt(t._t.bt,t.Wt),this.Zs+=t.data.length,this.Gs+=t.Dt}Ct(t){t.Ee?(t.Ee.forEach((e=>{t.duration+=e.duration,t.Dt+=e.Dt,this.js(e)})),t.Vt=this.Gs,t.Wt=this.Gs/this.Ns*1e3||0,t.Lt=this.Zs):this.js(t)}Qs(t,e){if(this.Ps){const s=["codec: "+this.le,"inputMimeType: "+this.Ws,"readPosition: "+this.Ys,"totalBytesIn: "+this.Ks,"totalBytesOut: "+this.Zs],i=Math.max(...s.map((t=>t.length)));e.push("--stats--"+"-".repeat(i-9),...s,"-".repeat(i)),t("codec-parser",e.reduce(((t,e)=>t+"\n "+e),""))}}Jt(...t){this.Qs(console.warn,t)}ls(...t){this.Qs(console.error,t)}}function Rt(t){function e(t){console.log(t)}function s(t){console.error(t)}function i(){}for(var r=new Uint8Array(123),n=25;n>=0;--n)r[48+n]=52+n,r[65+n]=n,r[97+n]=26+n;r[43]=62,r[47]=63,Rt.p||Object.defineProperty(Rt,"p",{get:()=>String.raw`dynEncode00d8.=Mp¼êF¥@'{OËUÇð3R§dG÷¿>òqî =M³Ë¬Ä¤qq | ||
KDÔSNF©TxÐÃFeÀ¢sq= Т×49r~yȼ¾â®_]*zĶ·ÈÕ¬jÛßÄ÷^,·üCëjü[¿-üP6õv¯è»Q}>«&ê³ùC] = %¤Zd1\êî;kè#á·Arpÿ<2ØÃW½\<Åú½Ã\ÐR]Gxî· fSvC²©k¿4/ÔG«×ïÓ[DTE<°¡æÄ°+ý¬¹äÞÒw·ik¢×mycÓ¸¼Wvî>ftI*;]èëZª | ||
)©EÅkI-¶dÏ,1,r²¡ytõMï¾l]ä®ýSh«°9·KÇÎî3¦RñÇëÇt#{ÙiûyT¡òòÞÐfÿ"îM$®Ïäv8cæ5§HÀ©dûïáÐßJÿ»}a\P$wö'b;/¦ | ||
¯bqúÇX½ÎäñÄ@úÀ1ªd[>¤¡*þÞvLÇ ~>=M$]îÃ$|úHzatÁù¯$ò¨xÓ§±s!» ä¯Z9}¶îØ)àA ÷*@@#ß¾àÕ'D¡æú üåªIýî&/xY$X^¼²X©ä|He óZKÁ8ÇõIzy(¨ª@ .j×mæܸ4{-õ57JU;f.Å}v[Ã²Û XÁÀ;ÏýÚ$WqתPfÍÓø½¸KÀyë8eKz°ÃW]Ì××åEÝÒï÷UPySª"ª Õz¸NÅ£!Ç= äÏõ£nâ_ÎTÇ3ÑÇ=M@^;ʺ»=}ÓÈæïŲOo c´g2'Ï"©.%@'_äÌyÅ | ||
ä1GÂzª¾EI0´÷î'ñ.zÞeÓ0»ÌÀµ¹Aô½áðm÷3+ñÛlïwPàdÁ¾û1±¶"ÍÍècîÆq v£<òºZGCÃÜÖ°»ÑgàÞ5ð¨ÆçrAlh¨\ãHªÛ¯?Í×]æÄõ{·æÄþ²ñΤö±t0$uÙ©Úù)¾DÎB:|#]»Á | ||
âÎ>ç£,8~òÜfÅÀ@²åÄâ)Å¥ AâÁÚ=M¦t²ðY©D:H"{ kE@uY»ÊY» î©ezÛ¿ÆøD©3¨.%~*¸ûV±@ABIù¶U©iE}¥>1ìµ ª «{\èe3'ÁMlÕDÿÄù@,>Ðmj69ü°ßækZÞ1= ¶qz+\¸ÐLbÛ©ÔÃ?ãûk)¡wx°Ùѹ6AY¾àïZzîdä)¨¸B5hð8=MB£K¬.-BêïÍmg²×Ñ7¬&¼u-¡1)jËz}j)jc©±H ulºÄY }ëôÊÀ¹?ÛÛèÈûÅ4a | ||
¶ÆqsCk;ô¾á&I¬dv³Á-úòýò=M¾w1Îm6M¼öDz:»_¬²×f¤¼ÔßV¡âYÌ«M#{úå5«×= 8Á | ||
Ö{,ÆÿþVBgDT¬HwÐ\ÍÅ{{í33 ¿,NéOÒ)}*p<bçëpìá(uÍuv'aNxvÔ²»<YÍsï~{kDfÑ{äùµ¶RrU§DÒ<óýSµ | ||
Ñ¥ «À®OC³@Nò§[?]?¡*Î4Å ëÏAºt*<ÒÂt÷.ò$EcD]G::jUho=M¹lAÔ5Öóó>yüæ[¹»|qÉ°o²ºSaf+,¤¤¤¤¤$_£¤¤¤djt¦+|0·7òmÒ¶ó£sÄ®-þGÀnßÇS!ßomûñ+"ÍÃ2¡|V1¥ aÉôd½»FD;oÁýJÝ^ø¸¸ªeVËÊbÈ*=}X8Ô¥y9¯R!39³Èu]_üûKhßµüdwX'4÷K¢Ü0èÂEügt+ ü Âu»¾¹ù²FÙ#ã | ||
æ;ägQSÅ{ööÂùOJ¡eL# dkô ÖÔÖ_õíù¿°cº¿ç$JHu½ôÓoa±WT¼~P_rbÜ© zþµ2zÑËÏ6æíI©kq£9?hfC¬ A«BMópÂþ].ÌÊÕÌ@è=MdñåsÎÐéy(ë+ÝÙðÙîô<èwA Àh%ÚÈ6ËÅuνã̱'(ád4éÂÉRôIù¯&tUHä.]z1]]Jï4Hlëþ}cLD!éìoÙÆ= Þîtû¡f·¸93{ WuÓ= >ò ã²LÅØ ?ðÌÄÆdù; uâÿMÑËÝO8¤+4ú_=}xÞVUºdt$cQÄÖJyk®aÑÂÑ2³G{æµéW¿ùäÑ.Â]Ox²µ4yGÇvuô2ÍI¬¤¯pUÏÇá;°©É3çi%"æosö¹ ÆWËð0ÝÅÆAÏR¤ûB ñÖ[8'#=}¿bYïEÝ;£¾T,= »zLMasÓ8Ô× FÄhV]¡{Éò -?¶¸wn·¸ílÆ9 ÓÓQ¶óUFï=}¸B= òW 4³¢sIP´WÞþWh1j=Mt>òÁM[ÖÖAGª?tR©zBAÊÒLÓ+s»ª-©\<°4f;<úàG×A~T3 åt&ÝózôÚ??ÃrݨpTXìì80ªvMÑ6åR8k½f | ||
yñ}¨!ëÒÌƹùIÚ8¢¶0ìK¥º)¨;w¿UA].é2@íOÕ¹4ìËÉ_gÏúãu8ÆKyúx7Ó×£/W4i¬3&è+ëç¥p1\ ]ÀpdÃÖrâNNn~ÚíWoænÛ<BRNÖÎÚ^T?ÆCËVҶƳUÇÃÓ¾q˶ ÇevD =Mæ0«[Ö>}e08áãsÓöf¾kñAþPî!<hëÝìæâò¤àÙ68äb ÜÜ9XÝlxðý1ôý¡hÐÿ¿F·VOv±À§M¦+-&/d^F}bVí¡fz f8ÉÇ;m¨¾õÞÚ8àP©[##+þGÏuâSÓVu¤"Ohk£8År 9ÿü,Ma!Û']zÂ:^%%çÎÚ©ÓßæunE=M+a3Z²Lbõþ²$ *¶9zg§UärTäÒó-^ÐðL»;¨¼;Ø,Û²ÐðÅ ÐðR°kø)&ccüJ²»ÁaÜJ(¦ jþSJ\K Zu-K/ié/i'¨V=}¹áR(¢66ª¶jté¡q½jú$JÎ+!¦R¡Q'læ©AÿP p^V®WJ y&±×ì3Ê¡~ª÷àÃ=M¥¢Z-1ä}z$<¢²¢XȸºZÅ b&ÓL û®àùÙbºV·|ô#ÍwKM¼RÈÁ6ø¤ö,é.±('zÂÛmcLÐáÀ~bÆ.©ËëU§×*%Qp«y(.Î¥Äô)SOngÐ|<döÝ´N4Ìxrî_}4õ¡æ7c[¯SO_ö{¤ºì4ü8©¹üKÿ&Ç(±= è ©|= 5»FQ/RBè|1¶6§ b D3mD3MÜO*¿$µáÔ.i¯êyaA/ºOá a]ø¸â /B¼ jiU.Î:<Ë"ÉÆ¿¡&stg·<ÃÉ^U5õGv6Üy\"ÎDO(®"±¼&¢þ ãñµï¼Vçn©Ç§F$6.ôø¡'î~N6AÉû= CÄíæ4ê:yôYtîmO¬éG¾ªÈ5~XyÊC8òðµà¤;ÔM!áúý= ¬f= qO3û¢zÄ | ||
/Ôÿï8Ûi¶7ø¤îmFÜ´$cëb¢àN+G( =MËë×ÐýZ§?Â(íLÆÑh,Aä!'çObAT-¨ÅÂKN¿ºþGUëà'uOqÎ?Þ²¼?Ö릷'bXPfÖjXCþJkÞÁé^åQ=}mÙáâY*Ç4íÓ,À piúÉú¨f×<,T}M4ïÐ'ðmOÂ÷(RrÁ¹ÛÄ~Xã{"¦ÑºôêÏiÂÚR¢Ù´!/ÂÏ×\ÞúS]d90gtêÓ= Å,.ºÐ6ÀìÔ1\äjñáÁ8 ¸ª>t®ÿÖ|ëo~~\øæ0 | ||
¹ïßAÄ=}}NÞ¨1íýÑqðú© [é1= mü¬´h(< G,2äáõäáðêbäá=MxSË ðêxäáÀ%xµò©Å1"*Ôr)üOLFMb?zÄ)=}¬oà ZcZ@¾zºGT Wµ.o9¥qm 4x æ·ÏüõÆo©(ëaé+ÿ\öQMªQ¥Z½>Ìm8Ñ0HïýY³ýÚeÅ | ||
YP©JS<8ÎàîYKýEË=Mâ¾°*n«àîÞÎ-²òTS1ZHÒðe=MÑ0Jn | ||
ýÕyJòVüûWSÎ|þóV4â¾]p;hE«dp#¹KÕÈBGÄÊX%?Õ.ØzjC¹ í | ||
úq©º·g#)îý|í^×h¸vså~5YÎÏíÄp^1-Á¿sA+7}§ãºr?ïÎͪÒ,±«ÀÖ+óÿõiSèy_ìá^¯O>&ï«}Ùxÿ·~4BËmDâßøVms$BÃÀýtøä{aͪ®ÄÖ ñýðàôq¯:=}P6Ä | ||
Ç@$ÜÞøÜ:ëþ©ûi8Ë?׾׳×ÒçVÍwìt]¾¦Ôµ·SÁש×ÔGWÌüÃ=M7¡KÏÂîç7ÒéâºÍü'²¬LL GÈ cz·/&+ìÛ÷¥ð¼ãåc¹bu.7öï.:ÉÂ~ìAwA:ÜDïä±aQaÒ%n4ï·oÞ *)ó½=} '(63fÊêܽ£(¬QU¢Jä¨æ¢Ò~.¢ÅnSKºIä¨d®2 WC¢Kä¨ w0^Êaî¢n{Ôþص[Ê=} wByÔ6[Ê¢Ú¢5fÙñûÍ: §>¸:å®W¿!G±ªÖ¿Ì§øõT&PO.ëL$C À$bÅ\_²1öêü4jî>xVîÇ*,YÍ¡+k÷Â[]Ù½åÀÓºIÀùPÞ#ù¤ Ðù$º$β~N¥qªJîTéÔqÀ£Y±3;1äDbÅ:îÕ¥ñóØ?@ b g)¥¿ | ||
FH&= x¾leYrP8+ü $¸xBÖKƹWJD}¢¹î4ÊÉ= s:î«0=}ħ-÷]¶÷jìøé»Ò&¢´Í¡4»¨ | ||
ä-ìÅäkIÎÍÍbc¯£M43~I³ôóií YFÕÇ~ÊÕëë»ÀªpAwÙ&Qf¸æµyþ9ÍB?µâS9Ç,C çEi2å@ ©+.Bqí;Ò6!5÷y \Ìu³IÌÏªÝ dhö¸gÅ N UÄãêOZºÝfª)J·1ø=Mþï£)¥Ds«vKr>åßüÄ'Y:ü¦É«¹¥e5÷vÝ Pe?l/= þ>³]Gx¬øCH¬) x¾ïÁû ÁyÉÔZÃÅX³í°gI0÷ß«no¯öȱ øô,ö~Ĺ&Qh@¡ØQ÷1Ò×ó-¤½Vç°Sfü2ûÃ=M¦ÿoÓRlOHÛÀ.}æ$µ ½4ü©÷,¾\q0_zÏ4mù^8Â^üPoYâ*Î | ||
}þ}ìåc5uÅÄ1mÅx2§=}o4V¤© | ||
f\2¨ø¿Ï«äV*%t}tÄ©KÔy9¼ &8>ÃÙp(±þH YüYkFÝeô:ÂZä÷¹¼YX7(ù¡ÕL±fT3ß=}'è¼')§ÄÌ4²½]-tø ¢Z"f2fKy´ñãxdqÃyZò¨(ø5¹q_æÜhÅyÎÐænÄsT²[¤y)ÎÖIìÝp¡ ¹¯ ñ3]¸.AþYjÐù´9ø¼Dz窣Í)Õ§Á)tò úÂê]ÑØ&¡Tw¿Dtt fµ=}¡ä÷çðª{~ B©µ7´}0ïXÄä@qaPAùL¥ññö%U·6¯wøÍÐèÜÐ>öÓIxâÝMUùøF¿=}HÇeUFÓ^ ¦ÙQ ?=}l ýÉ°ºã<÷0VVñ&53Sà¿-wäµoh¸d- | ||
óYoK \{ÕøÚÁv¸ÁèÀ(m~&3¬^ÙAÞýúu | ||
nN}·BΤÎC#Ûsß-2É|}²OÄöò¤Í?÷B#KY(pX^¹lÞe;ùÂKL #qò<B© | ||
hBâge$;üðýÙÜ"rÕô´Ô2c#ï"ÃÄxçVQ[ÛÖX'ÐÌùw¼«ÃtyÖjæÍAó¸Ï!WòÁãÊ'æSô¯"föófpB½zæ)_8í¸_üõ¸Ã±kARÓÅÓÍâuûÖ$\Ûg]ÂóãUk¿{29c_-g¿âǬÙÆ«BÍ£½æ-{£W[êûrø | ||
w.7*c¢J@-¤<Û=}Çd·ÙM)¹ä»Qq§jÌ©£À4ÚΧ Ó= z^Ô¼ÑÑjT[C0ÝÙ£±ê-yÍNÝ(¹Ã ¬ðnÃdøeó3}9!LÝiFÍäD×m7ä{±4ãüPGõ»à | ||
§Ì@¦ehâÑëQW7XºBy4Fí_¹P(HëÏ?¼Tª±ó§wI,Ö ±óM±Fí_ÄiÏëlnåu<ò+¶=M¼a¥ÿI är_yײî=}ËAXV1¦äûyƲ.F | ||
Xè}ÂwÄjÌß©£>íE<Í+Ö©¦ ¡Þ«Lr$ÓpÂW ÿ_¤ùU õÂ[:¾öUgºGÀuiÆoâ^TxrnñZ!(lZôú ¢Ú3~à<µpÇ#.ø.åê'0"Ìsa9k iaZê[þ y®ü~pesÞB6ÃHâý¹.°°Ð©á§²\?EUú9b^vH&¼EPµ¶ÞkÜ=}¨à¢]xy#¨'/Vpc÷Iá~\Vt$è=MæJ©*L¸qã=}.¤ÙTL2£I¤öï«<bÛ= ýì+¦H«¦Jcû¸ã}:ìDpöðνþçy!>ä^}pá.$ûv«©ïÒYfVsæ§ÜsHôà¥:Æ07 q¥ôYûõ*Ñù~Ö¸5õìW-]Yܯüäâ!Ì<( úiùaYäâ!¼è8kðɱ®aFUé৲\Ó\å[Ú\_éà§Ú¹M_=MþGÊÉ[ú»iKÉÛÓçb´4LÍ[ú¾ | ||
æ³=}<èÍgý üuAÁ!ó!ï%²"Rª|;!'sL'ªó%rå´òq'l¤_dZ¡0<¬N'´¤Àë%ó£³4( OâqÑ<9Ï$îSrÄ;UÑ= Áõbz1ù°Ga°G£!ƦAã«4ºÌÿ³Þβh3ãt,4y"¯4£_qè±ç#ÄæÛ÷+Ù ¼ÎÁ '¿µãþOX[_1Ý·z$ã"p¡'qålå]ý½vÞ´»E¿!ØÿEÈ[Ëئ³¸)+p9 N¹à%E5±³tú)úê$*³ÀÒRDN÷& pñ~½6h+ A/ô¾Åbû?ùTÃÑãó9¶ÿ1x?O ÁYvJU6mãAól#ª!(!¿uf0,Z·iÔ4ºÕlðYQø /s禢ý¾8Ø'¢ýDØG¤QJSm£P²*Yc¡zJqUlC&yûY¡8à¿õ½êþ!º5I;4FgJÁJMz%gå̼CÅi@Ï;¹¹óóoÉ÷Ìéúd?½ý%h#}½'Ük uîK[KJóPíåLÑ´<ùÉÑFVÓ±ûG7ò¾BÕ}³±<Sq^q®»"Z³KY-3ÎiÉGD¸ozxɶЦ=})¢[ t§eGoú= aÕõRK³9ì<T¤¾{*½¸O´B¾.Y3Mïð«1c=}6ÃN$HµÆRO¶µ½G.¤LÜ~{à£LMoAL!oÁñJ$Ç;eLpBÄf)1¶òóBÕáþ¯£¶w/ÙMX+ZóÀ | ||
ý$§ÿ?4·»ç«0&f>TÌüM»Úwdh[d¢ú*<ÈÁnw!»°Lªq(a£÷&oHĬ¡Àlfwdf#DÓ< O | ||
Jêsvd~ê&]êt.æEñ´å^4'»ëÎ'b Ð@$r¡?Á©J0¾b²¡?hìõûï «Ù'$x¾+MÌÜ:Â"þWÃs'ÑÜÎi:{,1U»9 rJe, | ||
·Ð|¬OÂ÷Q)g= ¼¯r g¡ùPô¨-O¡Í}HËJôï}æäc¼~÷8ÙÁ6¾?ܨ¯í¢¢ ¨ô#ñøóM;èØ ú¼x<|.îñKcZ4$¾51Ð}}h8C»ÊÏR³l¬·¿à("¹tt§µSÏÓïÛK;Wf6óæ<ÑÝnÄ«ô | ||
ÖønJ÷ [0äÀ!æ:1= }Ô£ßDÃønÊßÜ!}ÔHè#Iä=}ÔݯNÏø®EfAvþ_ÀìBC )3uJ*G+X«/êôok4sjü »*QÁ¹f+*<·+*Ì | ||
<ÿ¾ýԹǹXʬ | ||
l2 M(ÆOP"(ä½l¯ Ï]âJPcmJ½¶Äø¶ÇÈl¨Ò | ||
2÷AyÔ æ¢Õæ'á¢ÿnyTz]Ê æ¢Õæ'á¢nyT]ÊSõlÓôvÊ w5 4ý_Gl°n«cLäÌI\y×=Mñ±Ðu¿' ÉÊégË\wºÑåßb¥~f[Ñ0èÑ2ð@Tq¦&ÊáãTaç¬ ³¤åÒÜ^V¯Ý2ïIoP?ksN.7ðȤqk8ùú¬òÕ·' ²=}s'VAP4Bû£V_,ÐÕ<Aj²1úCûüÕS*JÆoî,ÛúÍd×b¹cMQj§ÌÊ=}ðãmñóTÿgÉ?þqÇ_âà9£®ø*vØVKûèÀøRøTìÕÄ7ómȹÁo'ª2à-Hç~v¤¨·¾4ÛÆ¡oî÷3 | ||
Óª ÷vß?¯ãk^Âlá | ||
= ?|2B'Yü7ú«= jì¸ì7büm:ÀFÅê~r º{LJFW'%é¹,Iì | ||
ànéȯ¥¾2l Õ57ɵøjñ:uù©Gn»à ûïª @] ñÓòÉ÷=M2¤Ã®OKd²Ñ¾-Q~X¤3 ¨zvk+KæØøqû9ýY[> 1ø)ÐT,¦ÒÇ.ªöªáÔ¡þÃÃ{Wóç$ìGÓõmQþKÙ³¢eÀë.æü:àrÜÝçÂà | ||
ßó¶þ_OØ^?aZVw ÿ(ØþÐ4ÖLüÌ®l ýû 4¤Yµ÷Aðn#*Ëyf¬ºlUf_C½xÀcç"H¾=MöʶÚÌ¥ÞrÕ>:A]HM*ä1þx¯{¬Øàé | ||
6Öµ= êÄÃëɯ ûÉÔd¶' |