From 2a5fc12b6860649362dab7813374febf7004c513 Mon Sep 17 00:00:00 2001 From: Urs Fleisch Date: Fri, 7 Aug 2026 14:54:50 +0200 Subject: [PATCH] Support additional MP4 codecs (#1293, #1338) Adds MP4::Properties::Codec enum values AC3, EAC3, FLAC, DTS, Opus and a MP4::Properties::codecId() method. Parse high-res FLAC bitrate from MP4 dfLa box. Parse E-AC-3 bitrate from MP4 dec3 box. The test files were generated using ffmpeg: ffmpeg -hide_banner -y -f lavfi \ -i "sine=frequency=440:sample_rate=48000:duration=1" \ -c:a flac -ac 2 -flags +bitexact -fflags +bitexact \ -metadata:s:a:0 encoder= -metadata encoder= \ -f mp4 tests/data/flac.m4a ffmpeg -hide_banner -y -f lavfi \ -i "sine=frequency=440:sample_rate=48000:duration=1" \ -c:a libopus -ac 2 -flags +bitexact -fflags +bitexact \ -metadata:s:a:0 encoder= -metadata encoder= \ -f mp4 tests/data/opus.m4a ffmpeg -hide_banner -y -f lavfi \ -i "sine=frequency=440:sample_rate=48000:duration=1" \ -c:a ac3 -b:a 128k -ac 2 -strict experimental \ -flags +bitexact -fflags +bitexact \ -metadata:s:a:0 encoder= -metadata encoder= \ -f mp4 tests/data/ac3.m4a ffmpeg -hide_banner -y -f lavfi \ -i "sine=frequency=440:sample_rate=48000:duration=1" \ -c:a eac3 -b:a 128k -ac 2 -strict experimental \ -flags +bitexact -fflags +bitexact \ -metadata:s:a:0 encoder= -metadata encoder= \ -f mp4 tests/data/eac3.m4a ffmpeg -hide_banner -y -f lavfi \ -i "sine=frequency=440:sample_rate=96000:duration=1" \ -c:a flac -sample_fmt s32 -ac 2 -flags +bitexact -fflags +bitexact \ -metadata:s:a:0 encoder= -metadata encoder= \ -f mp4 tests/data/flac96.m4a --- taglib/mp4/mp4properties.cpp | 61 +++++++++++++++++++++++++++++ taglib/mp4/mp4properties.h | 15 ++++++- tests/data/ac3.m4a | Bin 0 -> 17081 bytes tests/data/eac3.m4a | Bin 0 -> 17083 bytes tests/data/flac.m4a | Bin 0 -> 14305 bytes tests/data/flac96.m4a | Bin 0 -> 106741 bytes tests/data/opus.m4a | Bin 0 -> 16326 bytes tests/test_mp4.cpp | 74 +++++++++++++++++++++++++++++++++++ 8 files changed, 149 insertions(+), 1 deletion(-) create mode 100644 tests/data/ac3.m4a create mode 100644 tests/data/eac3.m4a create mode 100644 tests/data/flac.m4a create mode 100644 tests/data/flac96.m4a create mode 100644 tests/data/opus.m4a diff --git a/taglib/mp4/mp4properties.cpp b/taglib/mp4/mp4properties.cpp index c932ed0d..38f83269 100644 --- a/taglib/mp4/mp4properties.cpp +++ b/taglib/mp4/mp4properties.cpp @@ -27,6 +27,7 @@ #include "tdebug.h" #include "tstring.h" +#include "tmap.h" #include "mp4file.h" #include "mp4atom.h" @@ -63,6 +64,7 @@ public: int bitsPerSample { 0 }; bool encrypted { false }; Codec codec { MP4::Properties::Unknown }; + String codecId; }; //////////////////////////////////////////////////////////////////////////////// @@ -120,6 +122,12 @@ MP4::Properties::codec() const return d->codec; } +String +MP4::Properties::codecId() const +{ + return d->codecId; +} + //////////////////////////////////////////////////////////////////////////////// // private members //////////////////////////////////////////////////////////////////////////////// @@ -205,6 +213,12 @@ MP4::Properties::read(File *file, const Atoms *atoms) file->seek(atom->offset()); data = file->readBlock(atom->length()); + + // The four character code of the first sample entry identifies the codec and + // is exposed directly, also for codecs not represented by the Codec enum. + if(data.size() >= 24) + d->codecId = String(data.mid(20, 4)); + if(data.containsAt("mp4a", 20)) { d->codec = AAC; d->channels = data.toShort(40U); @@ -249,6 +263,53 @@ MP4::Properties::read(File *file, const Atoms *atoms) } } } + else if(data.size() >= 50) { + // Other audio codecs use the same AudioSampleEntry layout as above, so the + // basic properties can be read from the same offsets. The nominal bitrate + // is not parsed from the codec specific configuration box; it is estimated + // from the audio data size and the duration. + static const Map codecMap { + {"ac-3", AC3}, + {"ec-3", EAC3}, + {"fLaC", FLAC}, + {"Opus", Opus}, + {"dtsc", DTS}, + {"dtse", DTS}, + {"dtsh", DTS}, + {"dtsl", DTS} + }; + d->codec = codecMap.value(data.mid(20, 4), Unknown); + d->channels = data.toShort(40U); + d->bitsPerSample = data.toShort(42U); + d->sampleRate = data.toUInt(46U); + + if(d->codec == FLAC) { + // The AudioSampleEntry sample rate field is only 16 bits wide, so read + // the exact values from the FLAC STREAMINFO metadata block in the 'dfLa' + // box. This is required for high resolution files (e.g. 96 kHz, 24 bit). + const auto dflaPos = data.find("dfLa"); + if(const auto dflaOffset = static_cast(dflaPos); + dflaPos >= 0 && data.size() >= dflaOffset + 26 && + (static_cast(data.at(dflaOffset + 8)) & 0x7f) == 0) { + const auto streamInfo = data.toUInt(dflaOffset + 22); + if(const auto sampleRate = streamInfo >> 12; sampleRate != 0) + d->sampleRate = sampleRate; + d->channels = ((streamInfo >> 9) & 0x7) + 1; + d->bitsPerSample = ((streamInfo >> 4) & 0x1f) + 1; + } + } + else if(d->codec == EAC3) { + // The 'dec3' box (EC3SpecificBox) starts with the nominal data rate in + // kbit/s as a 13 bit value. + const auto dec3Pos = data.find("dec3"); + if(const auto dec3Offset = static_cast(dec3Pos); + dec3Pos >= 0 && data.size() >= dec3Offset + 6) + d->bitrate = data.toUShort(dec3Offset + 4) >> 3; + } + + if(d->bitrate == 0 && d->length > 0) + d->bitrate = static_cast(calculateMdatLength(atoms->atoms()) * 8 / d->length); + } if(atom->find("drms")) { d->encrypted = true; diff --git a/taglib/mp4/mp4properties.h b/taglib/mp4/mp4properties.h index a2f1de8d..33b4805b 100644 --- a/taglib/mp4/mp4properties.h +++ b/taglib/mp4/mp4properties.h @@ -27,6 +27,7 @@ #define TAGLIB_MP4PROPERTIES_H #include "taglib_export.h" +#include "tstring.h" #include "audioproperties.h" namespace TagLib { @@ -41,7 +42,12 @@ namespace TagLib { enum Codec { Unknown = 0, AAC, - ALAC + ALAC, + AC3, + EAC3, + FLAC, + DTS, + Opus }; Properties(File *file, const Atoms *atoms, ReadStyle style = Average); @@ -87,6 +93,13 @@ namespace TagLib { */ Codec codec() const; + /*! + * Returns the four character code identifying the codec, as found in the + * sample description atom (e.g. "mp4a", "alac", "ec-3"). This is useful + * for codecs which are not represented by a value of the Codec enum. + */ + String codecId() const; + private: void read(File *file, const Atoms *atoms); diff --git a/tests/data/ac3.m4a b/tests/data/ac3.m4a new file mode 100644 index 0000000000000000000000000000000000000000..ba4a717c049049332cd6b3f32496c86c13bffd79 GIT binary patch literal 17081 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%0DTjCLp8SRyft5w!E~rr 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 literal 0 HcmV?d00001 diff --git a/tests/data/eac3.m4a b/tests/data/eac3.m4a new file mode 100644 index 0000000000000000000000000000000000000000..0f45ad06fcb1b02d9a8c5a12429f9dd31076ec33 GIT binary patch literal 17083 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 literal 0 HcmV?d00001 diff --git a/tests/data/flac96.m4a b/tests/data/flac96.m4a new file mode 100644 index 0000000000000000000000000000000000000000..0c693f1b5798819eb49080148d587be0135b5d3a GIT binary patch literal 106741 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 }UXMpcEk{ zesgE}grs9)`|alk|3L%hA2p;~eR{}!VmT{{YpevH@v=%C$i&PZ_zxIST+O z#{!!I_aTz{s>)YN+S~&D)M^X((ymuoHgTxoC68K>IFuU9l&K5*?_hK zY`rXgFd1q`P9CeR6D2Ofn{Xw}?aC1xBmA8Ipm{Pn*fHqazJkgqpNA@1&WjRieaYiJ z%y;GD2g&}ZB7J2f6qksAhS+;*ShIj~{Mm;aW~|$k!gbOX=dx)OxE-X$nf+)_7|&3T z<7)#tHPP~IX`)yUsDzb;J0o_3o6#Cv=7m-zLCAct8W@n}#wx`&BHpwv=jz|JW{~eD zF-WMeVL_|G4-*6hO(ZvnO<2%}+KE^+jP~7C$fl3G?n%KiB1H6f0QYEX|0oi^c*2{$ zhsgI3`5q$QL*#pid=HWDA@V&$zK6*75cwV=-$~>AcM|zdBHu~m zJBfVP+3!00U1$Ga)7jtum1h)m{*`AwW6Is!AKnuC-%9h`x}n^HKi|&d-$7^I@$l>y zM4+XAkp6l13+bbtdA~i8R}3$00~iSprRrR1#TNxl36yf?6uK<=G92led#c`N9|0I` z(m}96v63N)s9dz1#1A;rTU?Ec8RSPx$&^DKS?{ie#d}F(KcF}5;C0z zTG~l+dUj$+#FN~w>@H|mbRcYwk)pcBhMdaRN&JLm-~qriniGhh;U4Mos3d)Rn;aD@J(LWq@O85G&*&@dCne<+Hd&igr8 zoyNVmp(K9b)OyuPKOZrvugQWYB;}!sXv$|dKHvTEPcn;DCPBflQU2@ zL$te(1agp<0oRbF(y*6`j!M>O5Aei6)nm&>m>WeW2=ru*DP50s&n` zg4>WK$A? zcjU9S<3lCTPFz2mlr8=N4B9K}PY%dlbI!2C;6i+lF{W@w>>4bq<6-9RZlQN_m)r5m zqF~XGkK>ZU=4Z~)Ptt&RZCW4v!k=Vm;qoqEVT5X!WYT?zj)E^^g+emi@7>v-~vEWC&phipOKpl%k-zCE?E7pLA^7wRF8M@Y}eI%>XV9_+==v`9I5eQima2B z2};I2JPfL=FD1!aTPUHji^#MoheX=qJX2zIU5jbx-M~1DjuF8q3&oGt2BnO|Ubz#^ z2E+M#Et0RFn9iYFnED8ta7;V(WR9v&Wtd-5SMbUBzZfy16^P5E0~kr5#y!~ImI%2! zmfve8YCojU>lsgy27>fbX-8Z{DZakosKil=*06kCqDdEh!}N0;kGEml5qUtR14Lk_E#R2V-O0ij%iMRn1zs?6Ew?Iz{Omi3Ln z^Vcuk1z277q#R9WmLBOE{BE+NYZR2$&8H-F+C6wg(FqvQ^H^*9bwkeSqm=CG%_H!p zeT_~x4nMYM<<0IZT+#~s-M@$;kCi&^4A?#)!9>7Q_{*SEr=Kgvu?< z6k_ts${Wf`n4Rat)0`286kADB(3#;=4%&#o!6<}#QJI?uE+bbdMVYWX?{ z?cOp%UfqjTG|d2d#x6kI0-ONHUc3qEu0#Su1uuwYhIPgFgf% zcK?_Uq$GOlLKnHooQjlMrv}Rj#12uphO8>S4&Aj+k8)Eb@%)72wXB}XipkU_*gT0I4 zVNQJa_aR1BU88iNA;}BKE~_~{xBuybQUQ#1b6}{fbM+}3|8E&w*h{1l(NPkwZ}%no z;Ci+LWb82)-H$rT&B5I_kY2G-b99pM+E5783L&h{7ByHH&V>SV{*l3+4P|@i3V#-# zU*G@~TjL87gC0Z*Gs7KnVUZqnWrN9rq&=->LqWm3nANZPK*2%}-)5Sf0yYRjj0vbZOM2M_@>r8P7y1^wp6p8cGSo|LQ zb(?h2GE+U#AbA_&em@k&ALmg=a{Q?-<7;tYtd?7HLQ~4d1MuL2b@>{qbtn_Sw6X_e zY#Egj!l>s9xlzc7{bdG)KGc|Y>F>C3u|#R`rfl!YZ&A^+=`973pN=i@i6xeA`=yPF zIVLBYdW#qcSO@AD*tikv?MmrbvCex~BvP~9T9kJS{WaBPrj9T1u!^K0ZynaNLt8Z2 zdS3|x{dFYlOU2~;*V#L93(cO_LY3ol%Z03g(eqLESy+mI4EetEnp4OE%!N}|(H4}u zF#5hB9K_uUqQ&O8lF9xsfdOB%<&s(m6lfm7nUjjtd?H7sVZ1QE?FLzWSdVC2Xo!0| zoBPj9z_v*vG)9)j{chGU6I^H+8WwI3&u=kbXJc2_R;kHL-l~Uf+Y#`5Mx<$Y^7o9)HCf3o7l1BA9Cpg_n5XF%B-X2 zdbj-VdkUnU4Sx?B{0zyaRA@B1oclkY5~UHN*ziOhe%^y+SWn8Avwz%n+*Bzg8~CY1 z)mBAgk3zQGU<<>Z8Rw!Ved69Ne^frg7jZv;ORq>YOk_~#+>QYwaB~A;L-iQ>70wXJ zB|%P-Jge?XuK$=8B0k{pd%KzJBvBYWPtrkT=qbzF^V>uEAuIH{8b#D^2lZf3Udt_2 znn;pYm z8O;Xl=13NMF$!a{%qbJYbd!yGz}3d0OLs-a%&lfYrS(^C(ZH8@L}bYz)d$h2R3Cbj zKD9-z@Zdr9%YXgwHP~q8>!9&9;SM>{?fp`DWz7_BSi4=!y&~uS@$sdb~&Vs*pZv7ndZ1 z{MBZsUiqQUHu4?Kr`P2fEfxQ)gaEZFvd7y zmCYj|$AaR``3s`GqJNf(0F^jr-Xm09sFZ4<7B>VXC#PZRDsLzd$h<-)`wOHFP_XeM z!*Mkzo_<{L2su!u-kTiOb64_B1f0} zRl|60WBye@LGdL0DKC^9d{(5yU;T;!RxMO4)?gvgm_FzH^f6PUTy-KuGAQc&3`7e> zr)a_2DAr?89uA&T-zKW&7O6QnQI(xfBVZ&^o1F;esGO#CyJ* z*TF0gj*W(FlP$H<;sOuSdenR~^XwV#p<8gaj2E;m*Kk_BO(`)A9ivHz$j60*->B7n za7VETbLpyv$Ylqj*5N3r!E?5#3i6KMQ+!Cnsva4fh+9&6e%V_^z?Qo+R9K8lUlKb& zmj(DHkE-4b$Nuyt*&`Qttrkn++$z$~O%n0YlY~jRFTMD<_$|&`9xj6-lyR9Z1=W3M zz)9^kyB2?s$0#@?%iuMO2;Y1+M@w*JN5F@p(y*|xUe8I}=9%V_!*$UMDncpHd6;1G zx$_Rzs6%_qRSPy9X!(F#Y&W5KZ9+GWh39a;QH=Jj=R`Em7OZu+U@Fo9b|OJrEY3A>c~D#{oMGyGZ~n9c2(*kZT~u$)Sj@P9VKMgCZgC> zicl6?BWOzxtc_?3@wHJIfrS!gb%w@&wmJreg$jlje?wXiVm@A9>Y+~gt%oMgRL(L1 zksYxMB3ZCGm{cJO1kgHmD%cBH;;icacGdOd9L*AkU|fUe94DWb)+XyDvNd>)J!*rL zSGp!D8E@+Q2V- z1~oxegufQHvTx0{i4CW0Im*1s+Br{)NjC!0J=C0J^fdfW-f3@c^s~#XnN`ZJ(?6xI=!;}2ij?M-d`wAC*>;5`B{p-Lc-DNAbCpHsUug|rdIII*j zLxXLZIg!p(-Jt|$q?h6!EnOqN*q~?9k@S`&oNhC5HYl^~7emiww&*gX; z48pOkyJLwmlLY3~E{zgZ(%l$?aa*2T!#U&5`U8LLBrTCxYCcu_QA)+DDvtasW8GO8 zz*y8mbtq8>=5-TU9%N^Y^=Wv19BIrbd2X8%Y#i|PIo;wBMTBHu;Ha4CK_HL6b6=TM zB(rMUI4&oQV@9J?$%X)V8EC4%64W56rMHJ3RK6sRcTK-<42x>QB-V@%<%D0-&ia)H zjW#SmzGHhMty*PG0~Pn}8aVTx>6$o&KEQ^HXPJZyXM_s|hyS(I%#+pg{4xNWb$Z&{ z+^u7f6G&pF9YKn zA#*6%t!=fYu~LuPyeZZZ5<`npp{i&yYx?!LDM>@Ic5pJ%%hx)yKh}cgyM@#~NwQaX zBg&t&TJa*}Zcsm$GPv1|MKTt9))RG-Wsb(6E6sqpyS+=X$Zhc30!CMBs%Uh7F2$XO+LoR=~}W^^WL zO^ssLFUa;k5zyO0ruON!ClDBEUh1#bDy=vkdtDN%?L@{4)hXiAJBoe0mP?R#)}-Ci zpEGJwPR%&&^w(x|`S>%CGcX8HX_#2UxILlJ-i7jjq~aVI{^{<6*~L@(Al5^sO$F!z zTNqcMMt32#*?6g<+Vt8F)gq5R#B;uhiKa}^Hn0v~?L;LADn>#E26ADk+O@D)W7h6npG^%<7EShN(WJrr7ULZLM@=|VGhXCFXqKyuiBP2G z4DPH*$c}T1DVEb$g#K}}c&I_z$Q`z_oF`(5y*`_p1PJ0-S_Ho!QLOy8+c+3@jqhU}*_0}0FmTPs+=As!cGZ_kJO=c$ zV4t~feoEa=1R1s|L_3Fml(WnMjZ1k>V`dW1J^8?&Xk*4&`DBhnZ=EImmGsoTd|=pq zHx9h64-|O;J|HOwDSbNI3zr=^$Hf1WNJU}By#MU(5oda9B~(yVraYmNXbpCBlBEQY zRSC+rGFHi5e_|k)V9vuUW`xj;!)Ea9{k%o}^Z&7TmR(V>Z5LJqB$e(Q1{k_qL}2Ld z?(XiA?id(4q`SM3?(UZEl+O2le#X0&|Ka*@oX6hl+V=JF1ky>WmDDqgb3NzG^os3~ zGNFGdsj^mnpeb`}ton>fUxHyAHD+zZ=2^WIM$(to)pI3@<|&(uqu?L}HLZ zX{FeGfWP&@Xv_C?Va^!u$MA$^N z#_LrZ_u#+XX5-ahu7iUKavL)e^oUx_^k!ngaT~_V#T`R8hXzVvFe|NcaDY) z>rw9-l}xmOQlpQgFk=C^<5G*x((d~Ck&gHuQg4@}%;<86qU-WUD9R2wf?Wu7x@XpPzFv@;TGWmri2-i;)#xN1F7*g<2d_rZGcB!9Ig`ue=TUvJZNA7$o zE!Af&P2pkBC|3M7m4(mdI`WTgb_fF)_D0jk=;$8EN`1=44kZU>3UTtswNS7;P^-#yryPvOO4N^h%bJ*Y+1`=%wa~*1ip0EjP64yMO(W1e4X9 z!vemWYSwsU%-^clC;~nvP(h7k|I4@|# z<~hGZWB71b3|DMRMqjAW<8W?gnIa&Qe^vYvr$u3S} zStj|s2mymtLf<{DXuT3^mW&_B^Cl**VIHHh}p^J+S611keVjH4c) zEJ6KJhZ(-FF+mwe1Xc7>0jLbN_7Ad&&GHmqc=z%l{W6?G@f8}Vh20Gbh<-ilRt4To zZ4>tjqCQMF=EJJjC=raN^$Hk!E7Ej8D>Gl)MZb z4vKSio%RxIVF+ z={qw<2S|pSu9bt0b@p{0QfM!r>!9la`z8LJVXnMrR$Z}Q?CM7Ra3vt&-U(&{l4mM> zkvPRV^PBX&P~Kg~DFnC^ZuD*cE-o?y21;^jNERK!G!(E~3j%y@LRp#8R zGHN3M=){zaWyiwHU)JrU+W27K#L$UXU06Utjr<;CVnJa~QjOLP;+9{Kp0`l7I-xSc zx(T?c0wo4S;W%1Xzjn<85h^+u(vuc10A`Qb(Bi3^5i{TUJkWdW-mpkSJ@t}!(?Cd| zV>G?*&|>%&T;Kv|ZGy#K35Snu2!$@4)mT-#;jRtoeP^d!?zj{H^w1~;1Zw;BlJ!#| zw*K^*6P)H#Y2b58T!L-0J;+hg%ii01y5ICToOc~Mrs=`;JfEcbWxm$g9mb;h z4&@V3T1vHOP0C6Q5UQO2A|+$ly-ef^tHPRha^?!v6R$j(q(t zX=I_M9u&w$IaDxAT=(g6F1eBcrKza(gP-GfK7#q(RqdLM;;4O!{%`59v)iz^l z868e^X58(%``)rsU)*a=xMIqE_O4W&hpe|sXki+xe?XGL0Hu|lo0;-}_>bFW2v3Y4 z6>vQE)G35#>plMv==V;DOgd%CQCg%dYNb-wCUVg8ugP3O^d^|I>qF-XGRafR>3 zOcF=3CsDl{WO4l8%Fv8zKnyxj$(US~SDHh|DXc`q)M8o1H<*otVIyg9{ zUz;Q#88=l$@JIO12sLaN92d}^4YF-r?K_nYDFXu^PlFq~^qC7PQs#4r(Uv7odNM4( z@fBHp%`rdvr5MJW?&YbVyKtV9405kxQX~F%4~m*UqkUBTZR9bBY}KCPc=GjfAnWji zVO4R^4i1KW)Jm*U0GegNwz&n&|vqSCl$& zX$>FuprrOtf8tRJ7eF^ET5Zj?+l^fGn3n!XQw*8s*iCFH72K_(GT3fJgUKe|vS?!s zp^Z|s@vR*5(O#z#f-}!EIp;lI$yAEE8WHvpLQs6>Mbqgq6cfU6Ea(fl8r8~TFLJ}9XJ$#!uBBMnsLK?c?pd_tGj~mrn#hV z3Waoji(!wX@S9ThI7@rS8(FZdHtl-yN*b*Pm&i+VPWAD4Fck-|@{Uj)I*!7cUA^9Z_e)rGC{t4@}PS_`z&9#*O ziX%^M7}gPZ4wP`ZE_|rI%?x+Tnn>i(W_7&irt* z$W(6aVbX+$Ua5Cca709^;g2rPC__K2Vhd%n=7^1gKZlu{Ei5$+*i1;krFOC)%hsly zk{7ufA=2Si_Prc$i0X}IR;(YlxuJ&6^c%SsQgmp$T^h~r)imdu2>S0BOe6cMBA+b1 zUGNxN$j{Sk)lSiz+8Wgizw|<=QUiZe+B%^jvfxBvzbJr&n4tdZ`Zx^f+G626cjMwS zdk;IcQ`kdkv9o9Ha=UaR@JKu->1oS_5@Co^6Q8*+%aL*NiVobIoDxiaNF8;tdqx*pQmRs{ zi&4p!hwMT)W?;XIS&{{AdRK*S+B_-g=qUP!ahis?Y~i*b9#5y0(Muo1E*`xbhDjSm z=;ogOk)YCib`Ndd;L|b}bkSGMUAi_L0j2f=sEIr{uX{a@2608>f~5r%3}ITE_O>9b z+bmH{cN=H!f+XNfvOk}?cYJ?c6qGY0DVbQ~KJxo>nxHepNNi5AYd}pz~nRQbN ztRwb5E2fmH65O>wMnuB>ff1%hTgBKmiPd&qJQk_B;BlxD%gp11E|;y$!0Bg0(mBZe zPlW`SFMJZJJI@IszY`~B_si>no=bkN!SJimB(Z+vR-r2xG!}QEgR}Ad=7eX~g(J=4 z$;sE>;Zos5(vm9=Q!cwDaCTWgvYk{XO{fX+5SmFq#ncn_Zt*gVjgVU4u06=nM=Gr~ zT}sO8wKKlbkA4RQAV@Bg>gL0fl9YH@Oa(5BjP2gz}E5 zuK&SXYZqOc?T8-W-NRRFwdEWy!It6`Ew|yB#Dae8>`80k^?No#UxBwNDN-HUO1PyyR}hCp*&5y^lIhjbf{c2d;o(L$XMfm4(mPEVEC7( z?6}g22l7os76;3)`P4d}uI`s9J5`5$cB%=`E+o-rRn(q~Z z>JGB8-V7=1{V>dEiM1h*%i}5v0A4vyIc;pvGCD%tx&EL}LgzEeF#Z+D2r(jgn)~&c z7?Ed&LsvZ+mOyiD>oSwhK3kN?WmJM9BFzRusaZ=X6KI)>@g7vYDEVmTmU*5V^`v(= z9bd7FkEK0so=Z7epBnCC=G#zS3}pL*tnv}BWg`Byy7*FF=Oz_R(pk%MyP(9(`%irI zfRZ=MY}lm4;g@*|p_-dVI)UlAsxvc3f6_gcv`R&##x#Yrf@@S`VXBqFqW&60K7s9? z0NNyOolgXZn>SnMY;muCg>|D9v|w~=N_dp3FRXy@mDAQjHgrq%>K-o_uEG4l39SCk zGo4r)(=F5MB=QG^J;c4Jt!l5qcsnryrbNBqe&&~~}W1NAi_nN=y=}y@jr&T4w0(d2L z)aF8KiCZ_4U0o4hVgP)N$A$`s)}DV;ViD1AlC765ytu-U4o;%w-=p%r%TTub4o#sx9eGo?$d=zol8K+fw+F*60QVyTTax! z!b5}HJ1mjeqg3pPuMZ*LwHzT%(?uU3pkQ4D=&y}b&GKcemm9QTK{UgLcaUpDQ4Q;? z3v&akSELjNih=%KWfB4v5~Q?TkBUl1irayq7i0q%D%XRhLI3@v110f>4$M^6Ai~>9 zL8RjOOh0dxFllSz+sQe92&fk-a10jX@wUyIjjlMwJhaI|-9>1sphq7oG0^)WYlK$E zXgylO(qy|IQz+U;DGuxKtY+|V)}LXQV(OHlU5#Gz`PlMu^~oehuTO_fRh5B|kNl+d zYP9wsoc!4cqk!c?a46aII^&`2s|-8hCph}ND9MG+^NEtEIR6s|fD=)Gv_v}T(gBK7 z@4Lhl<%y#qhaL4?*d7tVT6|P-(=fO+epmzE4c|nY$z9YLMtCbQ-q2AOsJFn5yEGTq zlb4B}1IRO>X44^>q#xBq_ySeyX1Ibaqy)3;de)4;(#HhRZhYQz&=q%M5h$1F{LHEV zdH z9KwTZu7K+TV-p!dm#1b?Z_OlBQKq+)S2kyV-gbS~w59j_7a{)7UcKAl1e888n6@TB zes*5t89%=QjtIb`l=4gWo_)t_2_XSHr%FxJ9j=4Au4gw~uTWHlGaQ*XqM09#k%_f5 zz#sD?RwXSg{joxKyI@~?%W0WsQcus*P4D3*SHXt#cY}4nV9%Tr7bAk_@V20Z(VQp6 zpBT!Qj;*DD%TUq%G~AE^25VODYcZqll#lViJU1IY6!<0whz>HCo-O!CQbg&IsF+0U3C(Q9$PXU=-k1~p|&6=`bhK8^JR-0NpabMdL zrZKsJ&u7W-H!WnmO>-c+Vb%4!Fsj(`h;**E>7RBi`jzCi%Mw9=1*xYk^jNA>O;9zb z)T(aV6}g_ZJy4D_TF;9WJ|J@1?}JhW)1xTraQEi;f=O;08hmCi7Q^W*4N@?AHE5De2jL(s zTDkl+qy|O7a$4l#sFO}W!$=ace(yWSn&4t?0FBBFcdb5;8rmywa5g+iG1V2~aS@u*VSq``SS6NVmX@s7ySEVi;hR zkKi3MC-}MZQ4h0o^`@}3wcrz)^*Gu|50fM2d>)6Ydg>%;)$Ch8TFM|+hsg5pc7&)Tv969ezUZ=N4FGt z5k|R;uvR&**`zDdCOJo|uQ+AVfIj&Ib2vJ`-wjaIqpT{)=Jue1-EtktBcWeZc8KHl zSg-gH#DCVvl+X?Lc4&*1Exa8}l^7*Vz|z3$7;Xa)9#bv*_np+{wfCI>?hzUE zpniv?WpOpL?_=gNo?C*fBjTG9qBs&mW=NJP@#s1Ag9VI$Niu{G+T^8#+lU87DG@EMERyxzFrTNlB<>6*@?)EZ(1wWLjh zrIIb!FrFq}tu*At&3@yQ!mv1HQa&3f{K;-RVkLtfHs1D2DNa0gQxZlMJ{T3DXC+J# zmx=}(9bK#X<(25IOzgo3j2Llf=NH+q=W$5w5)6gNG|0$B8e+Km^#{YM(A&4db4+&~ z^{$zbKfTMCC2J~&0hT0D@VAMKMKBwdU8GF`b2SD*cgJ?I60sRHkv=PJBrD@R<9qbN zmw6+Yqxil0_p!i@81`Wg67Ok)s2iO8oUdQGyMw$=Q%rCKCCBq-?2?F1Aftl)?gm?j zWyEzyTaND-NNrzr-Ihg0VSI{85;!SW6bwe~-8(z7{|s~J(ISAIp{-RVUyb=(Iv7t+ zF&~M*ZZ>m$xfn~g2P`BQ6i1B9we#e~+;kT~9JWsi9H^esy2ft>L5@HTy8%B)CM=-w zrqNbQuRZ+Net=@0@GMQ{vuae{n?N!p4(-%01HdK$0qO{Q%`=5Abr8;1^*kr;{%&dY z(@8SsO6y^WhU4PODcyT)OpQQkaTsLJv^WCQ;T?NN!u?Q4jKhEtu3(b1 z1>N%%ig)84;2=--BR~PE9i2v?gSA1Umge!094UaT-|9{N3|r37r103l65$>v$r7)p zdsK%WO&Xg*MZHs6x;4puTPs9=XSwM0F&`i*c1-A+@TB2}@clPF_=+*ErxS<%RLeVkZ2 zI!rPSVdt*0_i8ngdy{$WfVoAV!tm?d{8rP=s8Cl}t7&<;Ca0_LqRURQ$s~sG-2kPe z(MBMIaeR;GN|hwd90MLnLkusm!e>2G37`Da!ZvuH2R0>vQ=n!7?;!LoAzNx;x6g7z zt^|FAo1=viU%@UuT!k{e7Ui6Eq*?be>JT=x_cO3>w_Uue+?=VVggjV`mqJKHbVSy) zl_yIhsU3|NR287LjVLV{X5M~ll>VeajG)r~b!59e?%dE%J;D2najwK&SQ+UMo=e0> z^u!8M=s0(p`&qv_l+nI`Ps;4&Ex@uWNv#Q;KpV}kWHOpPOS2NLXM+#Lk#Q=Q@fda$ z7e!69a@KrFH&{!xt42(%cx&BlZ`H1+>wX`dvU}A0VmcF~L5HMb1e;S-T6f1Lp^3x| zb}VA~-f?a*a9@p1MJKFVS$~P_DQ6ZujL{_>RceEQ!-s9}iKMM-q5=m)1w*5)jG!@> z7w8@s?%}koddm3@id3tMS;x25UtRL~YVBU2M%4X*m$8CB3oeyO#Ey?hw;BQQ)W*>aT@+vU2D- zw85)lmB@KkC8b^DR1qQug~RSNsc?Qqnqi{Y_EXl~ z1$co>>cbVn=_i>3&|HcnksM25;CYPf3QW%%nh|)NZ6+1b?IV#It^RFFGU7DLwM2CO zpzS8)@Q5bX6{kRuc~ux~Z?`iS$GlStkIQvQDk4phOA?`37D6}Hd;@30Wa;``-TzaC zBHgtin$W88)H{SAb{?7vei-j|2Wd1gxos&1fM>qntkcXTdshZj2rDm|^_}9Hn|Q!y z*${Nz8Kc7C=DvL>($u?-B1{PEN-rN3aV10L@^jP=rbs?olc)t5^g*#b=1w`D{?r@6 zZo+t_^Cu>OMk|q#nUFH$mp7?I9DxzSU8uvFPw|vljK*6|Kwr5XRHj#a3|d-~aF~}B zmhczFoC1ZcZ9327z+5-q-GPBQ<#tel;bj1N>G5Vv(Urh7f*;l4Y*O&Gh}N{FC;!V< zPPmDi*hBCsEhouUr+LvQTZ`ElQ1yd&7hS3b7HY}WoPO(WXsbnwUbW!F`La$J-xqM2 z>DLd5En`1`eVWW_SKu6kPDMC_pX!Y^4kW;XRSpWNBCDU+(mDT!oew5{0)1w6&ug)590HeRm5bm(WQSSk>{{0ZHq*JQabIKFgV) zArX-4?D7{;%2lrRF`iueQTqu>rv+VgDpe=bV2{xXSSWSBD;XqrHA9;rr9nrjnvw>| zn6uM@Q_?M!d%>yd2Atq0APBFwZN@O)bt-~vAlo51!J`Th5{m~filaRe7YBUxx$dO) zX*!Z|agl^4TTUZi4AR}DE)%sZuVKp)&?|b4AZLl8@reMYGjdoF_uqsAwfRyzeb zF?e0UBD7`y?;!8rl+@4jC9j*EBes@?iyL-jx{=sX2qV@s-MIKB42#@l|(G=7d0!SoyHX zA);tTay6Ml)6Ok{l-yD`|B5`J2Wc9YVqkcA3#(RRNiYTY&z9J)B z8(`!t{$Pr#h(@`iMK>%ovu-O(`}UWCd`j@SuR$w{0pcg_jkyU#W-O=)+gm)aW)8zw zj8?Q_BQE8nF_@YCg-+>A#0E6$%ZZ|*)dTO`pE?5%#OFN>wb3lBoI-n?D|-C#92OaX zF|-zq;6%$I8&1^HFsV0;ULCrdh6lV-cRhLCf^IX$f;7`MClN^nnSTQ$x$tE!2W2Vvsk8Z%qmc$@cgx?!6uTNS zM_~P+1C}ikvMUy%mdQgL5R`Pwv|l)Vz|;3gB!p7+EoT&~Jipn{<_Y23x3o#d`Vuse zYA7CCANNoMwN>qL%9u!rVK3s@+$Ko^DYp{NbAu~?Lwa!fh!u>My2z@|ex>)`uJYaiYLB!_Bdabd`15;oewm>wr zP>JuZ0$=RKk5Q6dCFgsONGCfxA=JX?PPAPPfu5vBbl)K|Af;wG>xY5%asr@suc~25 z?VXg^&`(7HonmBM0gGVg4IiF{S!V9jM(&sJm5P$pjLP4Xt8V;AX|JD|zAkn?Pl}c` ziYdsVwJo}ONbHEF%0BBuMhS$mzvOSoY&9=&jen&e+KC!q45Uw)QM=#9d$jrezp_ow z#Q(}RNF1^-n$9o?wjUeKJ{pyOM7#RX;s3$1{{v3;etsBw_{-q5+T{hzn|hE@wx@y$ z(=u1C11 z!UUleq06*m;7+)rEuOx7h(4APS9RQCrjFBN4=@F~E@=bNdVFN__EhEjWVeyli9p8b*smJdgoFcYYRp$7u}^kldzn zGvJXbgDYy;w&VJ{JQ6|d?&}SEq|QiMdQ`z$}%SZ8Nqh@l>P4SGY@r1_# zPkG3W5RM&Tz^10zwhfc3V1L@cH+fsh@LL*<@`75z^{tCr?aci|G9}}GUqeLY$5kSb zzzK3N?npdEAD`mdz!MCeV>h>jgFqrgYfm3f8L!vyR2y zaaj)Hwfh^&HYO&~o;u8tC{Ita^T3T!wHm3zFS6ykYAF-;hPe+)~bnO_rw3Q}N2 zXq$Vu7l|XxAQ7cC4!n4ZAVKVwfH=a+K=dzhfz>a=Y?%e&Bi^p$4pYCc(TSM<>V{46b}Rl z6)FF5TapHHJYq|;9@c}lg%z-9JqtkMB@<<@kUW$*)vkkTvL^7qPpR0zgp&1>vzy~M z7!Mi@CQGR2wiEzv$&q){#~ZA$vO`0hYX*B7al!b)MKMv)v{Pi z>W$A>4~fE(08Cj?L1adalGKw~`J>&9NA-UhBeB-j32V?(AQ8jlrLZV;vpaokNqXR6a` zCCw_L{gZ~xEhF1i8%_&!{x3J^u9LwXW_T7{MH1wl73Z&){PYP&h9F0)n2Tkt zVTHjLi4~r+DEG{c>3lQmd*-7@1x6;cCikurg9`}Q0xQ*-&iV6p!CA^lLQ->Wf+H#Wg?7_g);~@N>;r8UY>`JMl zHBtVqV)5=@4)Sv%W*j5o_dRj=5p;vL9P_ll&~G#O2*5G}5z?-C6;>16V3`X^ogUhg zUg0cn22%g(l#xGAPm(L@WQg#Kc`yr?>P!-w@9Z%b%$@y>IglEdyV0vMeSZfjUJH%y zR=JHBDK=G0F4{=r&cNa72j=#QsYmN+IB>w~ZBk3s;r+(4YTix&mn^+fP9j*25TPtn zdh&~WXa#HoubZ)kd>gTPe7-$GNhNZ=R=CMZP-WP&Pl8vxgnG(^hbo*!7AcXeJ#YqI zsTnDda`2vlQhtn66!ue`{rFR`7Ai=Q%k9v*pYZ+fN z&9~xfvMTa+oHOCEwTj>$*v2OCrKWj?pR~-D)*UQZ=bY0Obks^=@-^d-fvI=LLWwJL zywo|M!@CWf_w(l!-U-F~e%MfJdX_(merMyvF+r@&;S=&!=@CiW=2-xhmxF=(JrZ$Df zV`Bw;7^#TVrG^XC!R&+*6YJ#3az3E3O~7nP`HNyI-Xc46MP?ZZm;+oe zJY`dfxCjV8z!-Qi?ytgHD@Z;`lUvSIKqi7g~%Zi_a z)&B>;bc(>|uiLc9c+ec(A5oWL?d$1R@O$oBm+SK)Qj2<`aV?X3l1HZJ@R809x80nZ+_&58W^d-%HvD=g(mexzft)ybVs8aNh zznx3vG(mnfwO|ax0gm|Upoe91Hny{9@z@#7$l+B*Sj*?v6EharC@%T$nM2S9MHYQY zco&%_S;W&RYBnE{AqN7P;G_0pk*nNp6Ta?Wvy4PhX zwS$Q>68WYJBOQHrTC%XV{a12XSw~WGr*jL9<2@+f1Q=}pl>(Eh>HR|B_%_KYM}hk0oNc9h0$h+;aH{n)*tz(Y&yxA=XA3f((b_t5#1 z9|}xnI&cJ(^=8F?*U;+@uSE)nX3c0-eDj}ISVE7-Vzi4rBC$S|h<0>esGO}r)4X*zvUw0K7^*$>|Zl$m4kz|$b+{iuti;`{QgRk9y@oCdc9 zK@YfLQ>I=3`;FsWuQn`tz@0t*ZgMmU%rZBgJCZaEmE;OH9CQu zbaNg-1*t`7J6Y4mwM`u>@<+uASkJ4pZNLLt1{c$0;g>7!3!S-@DA}}3HfC|ft-|P* zIK!hjCI3;jaQ#d%n4s_xcipxb+q(YtUdzs1dvcL5qKS4L5^1RTW}9Ft#7uUD$r5KF z_=&hy;k)-Ol`d+NOi`+{dg1=zdRSCnSmG`f%dcu58fps8<@6+GS{u#du+)*V<&WOw zo_Wu~gj4n9y4243m`OpNH7&xtKMg3a(}IBEF!ETH7d?D;WqrSmXdT?rh;!5U;Bh0i zg-(cmDvOtp4Ji(rHus}zT>#7T9lxHSm|A-h6qMqBV@n23h5MwfPrcmosKHK^^jNyQ zLM0R^@_m&!PE1Z9F_^mc8g?sRmJ|^e(ge?Pa>NB4lUUV&j5^DfU%D1G7y_{_q%K12K~WSp(-LW= zdK4&<%19oS8kCORehz1(K#}H&qNI%mqYOkE7%OWdb=}F* zE=gel{Oh~3RB;Rzxl$Xw`4duciR&n}&jIAXNoBGzSSf#0^xTXIohW1E+HVQJ-S{a{ zR1=`;Tx?S{he9{h$cY4h9L&(YjvmPU$-s+{nV7ZoX7XU>=U@H1O^0-9h3u1QXBuBO zVmy%IPq%4~`Gy0C70=yI#7Jp^8H?;P+<0~W!{=8ouJ=cwi?aunAFEbJ3HBZTLQksM6&!3$5)rFh#ukv0(NH7T(SPT!3c}zVum|3P zn3IOo@-rM`duYADW%Y&UIWp{v={KY>VG)n1x%9-t?(ct=d^Fa(CHBN1a2}|Cnk-37 z_pE6@lu>{jwL9CyfL1Ll5e04JLiu__mG5MH%Q5g8ZO3zNJW z^K_azl>WQ+^8}w%i}m3NJp%jfX3}~XT_x9m3s13d+jG*CSI?W=$X;gyehb>u6z)&d zdqAUpbs^gl36COHtv@#N+ux`i5)ag?hnB^D|0pRc?$R}UX0u_VGBu%Df(}XWE8*09 zqsd;8bxvOP0J;@MMV5}YcaUQ@EI)tm$##Se4YcGJ&e#qqP$E**;Toist9fI|aVK&0 zQZcv}?$LK?mzt8-RCC$sLPDku?<^W=1P%qL?!dp3)swz}d0-4omc21=E^83~TYYqU zR4+81CuVkVe-5g#bJ3!*Z*Ey?rVNl14{tcSRhRb7U?T!a!lTkM{DrZ=^sA(RV^pEN zpLkGIB>vJcesL~RXo2CF*0uOv_Bj=)E_cJ_M>o~b>cJ!{4`XYvU+%?xFG7jnP>UwA z%(R_88R7*lQViwZ@0MQ;01|00(M^PGV8X*ou8`Uy_b*Is5(3kzghO@H;We%ulF!P1 zW-m_}hQ83WXjaS?(K!*EqthKr0fgdZp%N)rI2=X;c9nKm!A;3E1BrO5KzdV;-)gKQ z^h#v@bD3IV7#-A{E~t{e*V!@C{){t|rX78}uC!l~+s40(8?*nar0Sgz}NEod|VwFqWYwDDUQk7S+RmB(&-9->ujd5?22HMsUb`Yk;-3t+^`CW zi9y(?!L5(Hq^drv~o*oiW zyQd+hqGnzA(jUNqxmgM;fRS-{mV>MF^;Y#`ng~Y%0v2oS8S$)r1NPYN`edM!wXT9n zI_-hbQ6$7%+4~Z6fEGwztps5nMn}YLmh0lLHzTe%Fo~_P)ub*e$pmRbvs1Px?S~L- z`@Dj4Os6Jr8y3b3h?K{_W0|)pcVcAbrf#dxRVw3Om84@xs4nJaz3LX$Xab3H5M&d- zbj4FY6-{**l(BLy`}D*xVNm!kaBk8(6+q>B(E2@>t)KvR;-hf9dah39;rT00RA}2Z;yF4>M|<1+97j8RogWr=wI(0bx_-*UOR@8 z#A$FP)-#Gkbn~oSQ-b2k_kL^3_;43ax+S?Lh!-1GP`{jm3rZo8F!F4rHmy!7B6S7> z_jhs#-FH4Ttw)NmC=!(Ap|VPIZYe#YP!*{gvC{c+Iz1lHHP4t++kO2JN#u@lw3@dd z>dg&IWyx5c+Oe@Dj+-d|0M?A!?>eD)+0MHf#vqGP$a~^zh^D!J$$=@ZmwoYFd?Jc& z9$_)J4tPTI!61j272I%Au>&w>TZd_=%MXkHk@AsMmnJFCk3MEw;Ro{44C_!N#NAZy z2lAuZEshxKB8~oU<^%rZk(4T+R=X*){nVlHNL@rD&hBw1a_-{@BzDKNR?E3=Pqy32PZ*sMesZ*o`FXze~MV_PC*gn=IdL+|oSIjtdp z@V3(X=JuaSgYjgeLbwgi)BMrt2(dHG;h9UaipSj+=kDp_FL#c)p}M5MKJuy}haPv( z`|(VR_-2wxSQ||YJ#dvf-4f5W$(*%LXp3UA5)O3Bz_6rS+Y(mxjURc`tLqg!K$l{v zB2+jMcV9YmbWZC#{uT^NCAWxB&;aQIKKskdNHx#+=6SZktqO+J@&(&6{#VUI7vuW= z(+jyhb9c8UA*NJ+I@_cXB?7vX7h={5dG8-%1%2@~$cdkC6l$m18w z`V;+2ES`Z=G@VDW?3Q|CI!Zv**l|yIOg)=ek`uA4lAD=?g{sB;uN8;6yiyn2YJjo~ z1JWWAD2VBA*{dXNahP%i{)g;m<>F=Nfib(Q=`xj$){+!a^jo1Qxn|NN1!HR`c5U&e zG_`~`pK$pYUt#?G>yMp=R1q$2=zD15{eWZw5*_p1JtR#rqYK0j6<+Ab7Ozd;fH3ZH zZN3hh{QoO$n|v9*5W46%sI5Wr<d5nBqFMN{dN5 z%0BIHz^Lz(YfqeP{mfSzjGw>z6GV$uk5R|m7+fRu0;2q*OAgz#MxUDwVvBrrt-wVl z^yVE^LD4VUQQE;^$KIe4qhoVTAO&;v=4+Vz$z_<1k$k z@^h^DBYspSY{Sf7#G-I5g?D}sIQ0xlg~5e z!Y4Yj@e)NusBF`mSyR=eQ`dAl=q|%T=_DdGT@wGDzr~{8bEweR#E)vkpXIq}Tz2_$ z-h)HE7VXukcUb-?3lY#wgygSPi6Y*^_a0B2BgxTz3!@vdgKLxj%SC4(52t}ISejbA z^mAePj!Ropx`CK#PEF;~9J1dIP~($8pww*FM45 znFiqx%&TK0biU99bf;R?EvlwDcP5-%1E$!G$KP6;wrp>;`{9Ix(*iUUB(y!4E|OB? zJn@^KY^%_>_@b(K`$I%WzQe%D@QXbC#a&LfNM&QAk?kuKk~mIj2;Y){pK;3X937_U zU^muLwb?sDsHmJ=zQg_mEfnP#r{qj<6$%GQaHO=M%p11-$@S=~>BMKT>gS>{dD>HA zL5=or^Sp`TjKr;zsgZaWeB`R7f^F@qb|fFdL}ncQ^Q$O0Oj=1mscWR4jjH%4FmiB> zGSaJbnJu_~qQ9FS!xJo1C0E*GbhDMRB_z*mp=B&ccU~z!FjZD(#mr@IRLP;H8X?ViaB_`kziuS7(eRn?I$D_YX3C_SvBG*cfm~#iVh={sc5!V^tPNsze zbLD$Qw7z#!oJbVh$?VK*5MLC|IK*cUi{!I6YuizSu8|kWNY#z$*=s$q@+-eF;@=u> zU;`6`D8Yi`sI4g=n{;&i!u=&N*q(TOiKE^X4BaOd%O@p3_=sV;R_B$)n!}j_-qIIM z;71+I^ahOFz|{+or?oIn`_Wd(@ba~cL6|w9dFpG3Y&z`HWkQ|jyq19H@-wx;FHisg6Womm8@#z+o&F&U9As14IU%y2YJr!R@FTL@st`LZo-nB-#QG}$vY}g%(mUvWi_}{92IG@d9YObqs;J< zDm&JrKsgvYt z|57-5l70(Q-mAp>SAxu}bodWElZ2*`BNF#l3DiGpn{Kpcx$}bwBDm&8%=3sp9RpSS z@;Xl=w5p?O%;~4WJg+n&2TqIUNoP&s95tdxe#ZHpN~aN}?~GA9_Bd7&ZHg2ry(W!3 ziG1CjxC`C1J3LaXlT&TeI@prnyred3Krn~f@uIFf?e&QSbksLwC@Ii5$n1Eq@aV@H z6TQvWgHC6Z@nqtQcGta9epJ7R)He`c zqG%M${)7}o^O#=1Ey|1G?vgq&msSmoNAJWBy7c?}7+2S8xIC$3QVNSS2obFnYSHj7iTW zl2bJLt!Sp1cJ7+7IJj(zg;u}*MfAIZ$FJ3+0zM7r6@lt|!hdDD%s`cI`hudrvh@#^ z>nLu@vmu_zG_ru|AyFint45uDo9IoF2^gjXo#jPQ2hIzM!7v2ysK+DK5J%e+vF5r{ z4wkLJ4AL)8G&`lx*F1m~65_VOfp-a4 zIAMj$-Iqv5CtAGq0&T%!^O%h#Hp^QN<2@Qr4Me}F@0p;~Oxzz{@E7LR7$>97>>P$m z{|OR}#d$g9C@AH=_w^c&sgi*dZtuPTAMzUeNc_2h5P3>r%}Qq zDw!tb@*&wbIV(i@4)%sEAVr4P*)R4%28!}<`@zRgmf*^x#m^ZE>P3bC`)fVMo357t z0qmJ3KT7Y}lS-KEv#E~U^8@uT&ohcKws^dALLt5KmN@nhWe$>-iL)OnZ0x#I&*@&N zK6YA&G}At8{Z3De2wy&bPnKbZAW%JEG4AFfnEDXmIPk{8Ft_k)L4qd5@v0@roS^Eb zL4aqZRzewf)mv(T(-aU^(Ap{(+AxLr+L&YsyY& zF|nJ&mr&iN`R8jUW*BGoI>}jybM+P$SSkw;^s#K|F}_^1y!{0C`p}2oINrosB~Nvw zeR=XB(M-oV4!Ngzujdc)ncQ>mm^;>qFDa$&Dz~J3@huHU5N<&d9PU@0il~Jj-WvI> zy7VU{(T-y+lFnIT6CxU!IsOcTt*aS6hHA3Xqz8}aW@Ml&)=`jf4PM3gSs@r_%2~mX zL6xgZc~bc*ofi09u0_?{W5x+Cp9J!?{i@R(B|Rm?qIdCX_&xR#)nufQo;~_LSCGEP zwJuJuE|#{xJ;9++86ie#m(rD4)nhXrsi3*#HFCkr{`Jb?W{Ax~a(8CoVtg#7q~a)q zN=J6UIaxbbN-Z@MI_Cn}Lli|qu}plAwk^{!MLEj%W*Oc_v2Xdi{&G$-#GD%a?c3ZolO zqf_<6;`1JYTYm6i$7z5M8JzUq$Xf}gKC6B)E&DBVLqq`u{>8-gW!j>mrvG`fDJ6kk z4DgY*TDAG0ozPBu$#-n>o5Abjvaejrte!(%m7hs*?}8BG;MtQ>m4nv!W5n>-6R%E3 zLrgCcYo7+!GrI~}aj4<+n80h+7xf>1?Z;-m)2LnkEjQj+^PXM%@vzGdGUVEZ^7alhg3L*5Sffw5MoX(0)$Nmp~5SrbSp$=UAWVtpMlo{n`qbu(Xh zBY=PVp)iv!SZ};#$}{_PyWm(!d%46G+&0M$2xvM9D&nME*jdo{SE( z5g&d)!9t}?F2xqcDILmtjUnr8p$y4*6h0Dz8CiYtN~wtO10K$7sl+sspqji_)a*7l z({ORwpa@}3o{d0t0g}+F0ppA}J>c98YNsGQKGyu4clt>-`HT4TBW&y$T?V2VrIQMR zzXHLR)D7>+MJT?0@>O4{H31ZnJd47BFLVnUk@R!*>^Cegj@4OvQFz0Td^XQ^53g1V z*>3^_VJfS|KyNqyWV-YcTtRj?18tce$DpX8) ztiCz3ALHIRvxf^*TV?ti75Wp&zR`AF*8TVgBfrUf+-*ME zX#w!GMj=r1ykDgq?lxi2J%v|_o%qPKbwhz4*E!nNmu|h!eEh4sme_Cba%jzam9Zv^ z_m%F&&dk_xx(4;~f3{tI9CT90rR#>%($kE4bIu^Xm<{9>HL~d8T2Jsig_p@N&-a0d zFe#dE!`@3$b2-!-u%Id(>0;lh`WBC=r#D?PFYC`a+!}le1(EhzU?>0F6IMkH)a3HC zS2Mb5m9-g%6flmGaAaqLgZoOF*hM!-y}q;e4ZcyHHu7Q;)M07JBn8Zs)H*m!3ex{@ zNLa?#XY-k1-j^ciPjMlE=)OKX91HB16F6tQ(NhB&qOSX16zaigfug1F7sW1m#}uoX zhB0^yC+a>D+~xl6&zHiE6U|;L^L-0I=-c%Z7U<&Um5nsn3sbUU&+ybu-nEUa2JlzMK%ajuHgsYetYqx0%R_u4L)P`K!2Hb?ko-qjdA;sl`iD2fb>8_c z3eW;&v-Bzv>|U876Vf0v4^S-j&s;W;ZX(eOn_N6U0h*!#6Y_KhG?qERVof2zZa@Im zczRg(;P?Wg@j3e@x2xw1QmOWg`RdVu!~^v>FMVg%o|7+iN^N@Zb>)-dOK>o~%Tl@J zyB?Ggk)77}pE@~(V0Zo)wBnSI)|2T_d6<0vg@MkYL9GeYp{vcFC_Y5YvP=J$Qj*(< zZ%YbA2n_CB7tJI7+aQW(fQsWR$CQC*;k`rx$=fJ?(j$Bt7N=!_iunK*cNSa>bJ0eQ zbjJg)4(T2LRMNV~4BPASx3tsI2IKTu$J}8Om6Ge5^Up(Y_o1x)nkKQyZt{2(XT8Ru zsou6=^$*KLjBR^QN#fX&ddNPUGOt!vI3(qxM36zN7t!De6)#IuIw0rOkKU2eEECFA zCr+2nea?8bJ@1|IL~5Xi)HTOus+~AZy4r*b!2`gz?PX;w2XXu4kXGx&}MprtUVZ1f7W#cbCtOiD||Dh+O> zh+zH2t8!)tOI?UX%v82Ov&MeSqc#93S`sW+8F1Lrii&sMpD$bjBIyi5sCno-inA=@ zU*Kh`w7Safd~W+Lh8Jju*CBwB>8J=G z-R$U6bmVVma%1EqRqH^Mb>F-uY+I2_bs4=$pT6ebC;XyOrxcP$GnWDBAiZOk!<7nV zfy~qeyKoq5W19)-If~XkH)JTb5@CeRof?hl-UCRi0Q3ZaI0E6}1Xg9DkeH&is+1oR!79DZ`G?oC=3h zQdK=`=M{r-9cH8Uo77%Xn;?Jd#G;pFk3wr~sm~E1JPGp|!>p^0eD%kWefdj> zNwtb|eu+t>;*Ft50_MGRfx{mVmUl!rgV66=Hegg10_YwY2{=3CPbX=D9Fx>0r!$*S z)Tm)gbm?n_5Y(qY*r>dkVt+gQ1PX^!@fl3K{W1UcqZ)&;2Q)G59VlQ;>}cWjK}Fh8 zSepuif8$4463)Vy&e&T4|Cg3xOPE`u2@-?IZ>aU_T(*zr>qnGbW12pC;N>@^q1d7+xc?vofBEF!WI9V6?40GZ1;{Yg4`JTydv3T}%-142% z$35mL1Gu&6S9|el58RJFvo@|;(~Wv9zZ`YNw4WF(Y)jL&fjSTvCvVWB67(hNX#vZ! zq?jps!xx1)Q5DnJ;~81syK!d%V zK`;GR{c?DUkL49VnHD{}6*te z>3(t6rUGjHN8x^+X#@$sdwJi?$#vAdJYH2Be8z3wsVe{zi&0edZmJ^=q{1r)c9i__ z`gE%>s1{JA$$8;fD{BGgRj-bq8zz2K(X!?LC*ukFSIRny$GrX{0Yd%5j85~}Z4-kb zS*BLl{+j;V3gX35t16f}-Qy|)L54S$i-I|tmoAtkcFRW$Bed1w>N2*Y?}Awk?VrPc z=+-EFEWl|jc%39=bvokMl;aR{1Nfc&WJe#eB4P32>ps4BWtf9}faoMGTh?%%UkGbp z^eIV|X7jbrhnfiSrM>Uz=GKK~HB7pymD3DGS=ZN|Xgw3*<;_Y8g;5O)kwvX4E!>=@ zeUEPCVqUhP3LV(&W?&l($cY@a+bANgIP$`y?Ywg#a+$Ea#6QUTylv>qKFI68(mlD zn0Aa5c{-`WD=vkRC3;UiUDLUkYAkZe=(x9T8#b&FQFI#HsCXrOY9jcH%xh3PICZ>} zZ79-r#+!NJ?kvZehw-pO8 zmLj+pJu+noH0!Mz;P{)8nY^d*$;ZSF17LOTI{F|Z{|I0jSBV$?1X#Am9GR(9kWQ?6 zA>?c3L-dA_?SR;RTEgYj~LnEmGLbWHWHIg zPtdGYUfC^MD{{QI>(+;ZcwZ?0n#LUQW*k@NeO7Xt%`}mSjv5fW1bcEKOj@_?8PTC< z`8hr)gnHdI2Ozb|6%kVTCmyP*ACEozg^KbG7@`-@a!Ou`+}FO3?R(?e0q8a5DQT%8_TOVG*nUn&fZcQqD9m{#*MX9?%VI7iVO= zY+v^bv%|MVGtG=rb|OBHc%vnSPH9K|vF1|bD}w5^r>fAYBCDu&^^2R;%4CVx9n3Q2 z)w?@~(a1bmD9NnyfCoRQfAT2R%5}4Xi?Nh>6;VYp+Vdzg-trVKl%_N)#b{_nr9UwP zepv9xd)}1C2HK4fs&^}3OuA2XaoPr8#if%EXQdX9at%h1=9TQsp4(%3@z&AN{09i^Pnklt8mxBQx8 zvxC$9s;3<;(h5)kI%{ zesi3}1vW8TQp^8beiMIR5gH>4!u;yVu_YmvUYNB*y{@3Am3B6HcXFFP%TU-hxvQ|J z#YT9sZ!}l%Hfc(SpS5+dUptiRjI-A!!9I8By75AaYV!%FRkt~dMMf%c)C(m$sgksZ z8cGFN8FQ~Or2GvSEZ<*FjI}aqxRHoXj!(QJxpo?gJQR@_>=?qNM~7zwDi3W%P)X=H;|(au{LHiH zC!z*HQpr`B408CgU!mqAHmRL_Hi_keaF~fK#8rD!?dG<}Wx4qNW&0vm6uTARduJ(d z#0U)ke)W8&r81u5sVEWo#Lq0k5ILo`VR$aTHPzLSR3TLWOwN zUd~0O@3W9VIU1bJ^T-iFVGMNai#A zUtNfW2aS!+1$&jfWp0eKP6UypKi?zO_0zybTyYdXp^KagmGgRj2jnS*JB3OE+R6Yx zEv6eTUSp>)Unej_x>7S#{q60+YiFH56l^d)2@@FdhPt6$TO0?I)J;jr$)vzJ%^*TR z^t*>lVnan2;w38_+UvaSy4^yWZ`Fs0-V?wyk?a$ek#x-&C{32Vtsq#mzk^AxAA}G@ zaNxw6k%^7AqM>(DYUH15MRx* zb;bk=U!;CZs8go7&0=sra{Yd89k<=bZgf2N^E;gn{uYVcq?kty(=6Yr7v(Xnf1Gl$ z!jsP3)q7s)F6L*NAV%-NU3ELwvK(yEU(BmKL&8fo`kxt9wU!qt0IWJA6B%GsEy^Kt zv4cL#3)IUQq!qNDRD)e3iBn!R=mS6bpSdKNH&g?#pna%;=KLWxp_( zpSt!YQMSKpx`WJH)fJRqlL1&sk&i>Ah}a_tu3rTKv|3|b@1C~IbwI(FRvp`N)j&y8 znPSo5NyCwK*U{E4=1iu-cr|TN8lIrM%9l*)FG8$aRqr<3pe~YTd_(zf>4V!=)x$rB z7Pci4U}WPxrvPhJXdBdN@GlK&C6uV4K2lVrsqD)-t%(a`YO+^?1u6`j)he$A5{>yk zw3~n~y)9(Gi)Bh2 zXSNa*CC`A_;=pb)W*TtXKcT`4iJDWAZmG;AG-KzjS7MG-qju>I*K5eKD)q`&dz6a_ z(%UtuH{~uMbR+W{;>8nrA~pbMDdiBY{WXHh8XGck%YgpX$@Fj$<(hp76YT@RL2VfY zj*yhbl4YZ<)@B>Wd+9R}lx7eD~D%i@^w1;D-I|q zDSQeZkmnIB^T%ofyU*t=S>u*$MZ1+wKk2lb{cxUw?D?iYQ5Dhiqd?UlO5VlqJrgWN z{rl8M{4xi-a6@O2AsJPJacx|5}oM>cInv_uhaZj{Yj%^1m}K? zo8}#e#QT@1;A-$i)_3hS9US3@NoMb|DpVrxzZ=B1 z!eZuZxkj=+g~c6FdSTSzZ6%2Y?`z3^x7pfHh%H5!GAdLy#%F$;fSTHFshk%*nWB}~ zSoLr)D#(sTJ>>8(2;~2xlZIzIz%_p{A;x+=7XOLEbIxqBNCZS|*>N}*p-8emjiNW@ zG!LL06F=G)lMnynA^m*6dHCm0)|qR$o05X`S9g5l%Ro-h9WUhhDWG0%mCqCwLi3oy zqLTVo`j00c%nTaNfiH$q4|ZiF3Ru5S9r)bqcvd{5|v!i@q~5;dedmh!gws&IBA$Qix5h}!&0BEb?4ZhPT`sf zPY@P^$rUGbt0b_Ry_bnt+1ki_Jq0RFilcZhCdy9)$ID;n>z=Fjmv|MqOXp09vX==7 zZ6q2iOl+X5pzYLm&T*jE{!ASdfv^6_sywyz^W%f3@@K15F{dE{dGPIsKw6play7xx z;_gGcLf^Zu*RsQpM%z9&ml7Lk6LYibnhT4@+Lp1kR!0xzeycB%54h;^-jfC@bQP4c z4tz~MuM*1I3G^$uo7DTcPicJAppKh!*g@wI9pNh>`b4>B_LF;y5Ow(@PKZ_SPYPzm zCiM^HWeUqiyF>I{q$N`5u=O(Az5&lr$R-Z*~b=BQ<8lC7x%487g@NZOg`E zoY2hDc|(?J!ZxT?OV!6gTQp^w4|S}?0uVymQ-%N>^QLfa7Z*;a#Ao`@OQsk$nbD9MPjYB|ot7O~rpeqh+Y0J?q zv-B?T8Bx2UwK{JMky!TBk6p8)1`IjN%h@Csg8b4)6IvI2U6qMveWv zS9%$n0q7)k3+IgTxE0+_Q#LCl^8mSRsm$!rhQ-qpFaMk=k$GEEnJSniyq@tBH}rtu zD{1)J75BxLsP*{<_^nP zs0A}H=ZWst%(go|<&ACqJe9~Np4sY+0)lg=JA0LC`n?ohI0}1?aYMqV`idbKJb&_- zv@wR4oM+W!69SS$x~6FM&UK5RooXVp!WqFZH~JYRw|RNERGX$QN-nYb$`X;m?;{)CD}~2^(ftF-K>xpsans#xibGQ!n74#1h1(7lyUk zh$RuHC;-n4rzFY!)$aL1ARZVv*rh+ENBX8E`!@&4o=OtlKG;V~ivJwMHF)+m#-M?_ z1YLUP-n}GFzF=&}w=DY`u$GkaG|c|tZ-%^?SyoidpZ5BiT1w&|H<}H`+w-sU*mt&`Tx{q zwuN|kA~QU*b@uf7ClfNmKY9O^uowz)utxgmp^*RB`y*fEzI;&(5Pw(l*h8E>{>g#j z>FVwB-|_?3L+TJ!YZr*K?L*8XU8sZ0OQb;H3H?7wnIZqOKZAJKKKLK#p$%Mb4`=#+ z$&bi9y=ALwuEeK-LXUz% z`3{8%O74c{_OKNzx6gqaw{qfm|G6vPN=YsO?|=;AZ&WBSDVQ!`jX5;pF~@FddL{ F|1V7U?`Hr2 literal 0 HcmV?d00001 diff --git a/tests/data/opus.m4a b/tests/data/opus.m4a new file mode 100644 index 0000000000000000000000000000000000000000..110234dfff11e1e5c093fd456b5e6998b1010f83 GIT binary patch literal 16326 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 T3bfXcodec()); } + void testPropertiesAC3() + { + MP4::File f(TEST_FILE_PATH_C("ac3.m4a")); + CPPUNIT_ASSERT(f.audioProperties()); + CPPUNIT_ASSERT_EQUAL(1, f.audioProperties()->lengthInSeconds()); + CPPUNIT_ASSERT_EQUAL(2, f.audioProperties()->channels()); + CPPUNIT_ASSERT_EQUAL(48000, f.audioProperties()->sampleRate()); + CPPUNIT_ASSERT(f.audioProperties()->bitrate() > 0); + CPPUNIT_ASSERT_EQUAL(false, f.audioProperties()->isEncrypted()); + CPPUNIT_ASSERT_EQUAL(MP4::Properties::AC3, f.audioProperties()->codec()); + CPPUNIT_ASSERT_EQUAL(String("ac-3"), f.audioProperties()->codecId()); + } + + void testPropertiesEAC3() + { + MP4::File f(TEST_FILE_PATH_C("eac3.m4a")); + CPPUNIT_ASSERT(f.audioProperties()); + CPPUNIT_ASSERT_EQUAL(1, f.audioProperties()->lengthInSeconds()); + CPPUNIT_ASSERT_EQUAL(2, f.audioProperties()->channels()); + CPPUNIT_ASSERT_EQUAL(48000, f.audioProperties()->sampleRate()); + CPPUNIT_ASSERT_EQUAL(128, f.audioProperties()->bitrate()); + CPPUNIT_ASSERT_EQUAL(false, f.audioProperties()->isEncrypted()); + CPPUNIT_ASSERT_EQUAL(MP4::Properties::EAC3, f.audioProperties()->codec()); + CPPUNIT_ASSERT_EQUAL(String("ec-3"), f.audioProperties()->codecId()); + } + + void testPropertiesFLAC() + { + MP4::File f(TEST_FILE_PATH_C("flac.m4a")); + CPPUNIT_ASSERT(f.audioProperties()); + CPPUNIT_ASSERT_EQUAL(1, f.audioProperties()->lengthInSeconds()); + CPPUNIT_ASSERT_EQUAL(2, f.audioProperties()->channels()); + CPPUNIT_ASSERT_EQUAL(48000, f.audioProperties()->sampleRate()); + CPPUNIT_ASSERT_EQUAL(16, f.audioProperties()->bitsPerSample()); + CPPUNIT_ASSERT(f.audioProperties()->bitrate() > 0); + CPPUNIT_ASSERT_EQUAL(false, f.audioProperties()->isEncrypted()); + CPPUNIT_ASSERT_EQUAL(MP4::Properties::FLAC, f.audioProperties()->codec()); + CPPUNIT_ASSERT_EQUAL(String("fLaC"), f.audioProperties()->codecId()); + } + + void testPropertiesFLACHighResolution() + { + // The AudioSampleEntry sample rate field cannot hold rates above 65535 Hz, + // so the exact values must come from the FLAC STREAMINFO in the 'dfLa' box. + MP4::File f(TEST_FILE_PATH_C("flac96.m4a")); + CPPUNIT_ASSERT(f.audioProperties()); + CPPUNIT_ASSERT_EQUAL(1, f.audioProperties()->lengthInSeconds()); + CPPUNIT_ASSERT_EQUAL(2, f.audioProperties()->channels()); + CPPUNIT_ASSERT_EQUAL(96000, f.audioProperties()->sampleRate()); + CPPUNIT_ASSERT_EQUAL(24, f.audioProperties()->bitsPerSample()); + CPPUNIT_ASSERT(f.audioProperties()->bitrate() > 0); + CPPUNIT_ASSERT_EQUAL(false, f.audioProperties()->isEncrypted()); + CPPUNIT_ASSERT_EQUAL(MP4::Properties::FLAC, f.audioProperties()->codec()); + CPPUNIT_ASSERT_EQUAL(String("fLaC"), f.audioProperties()->codecId()); + } + + void testPropertiesOpus() + { + MP4::File f(TEST_FILE_PATH_C("opus.m4a")); + CPPUNIT_ASSERT(f.audioProperties()); + CPPUNIT_ASSERT_EQUAL(1, f.audioProperties()->lengthInSeconds()); + CPPUNIT_ASSERT_EQUAL(2, f.audioProperties()->channels()); + CPPUNIT_ASSERT_EQUAL(48000, f.audioProperties()->sampleRate()); + CPPUNIT_ASSERT(f.audioProperties()->bitrate() > 0); + CPPUNIT_ASSERT_EQUAL(false, f.audioProperties()->isEncrypted()); + CPPUNIT_ASSERT_EQUAL(MP4::Properties::Opus, f.audioProperties()->codec()); + CPPUNIT_ASSERT_EQUAL(String("Opus"), f.audioProperties()->codecId()); + } + void testPropertiesM4V() { MP4::File f(TEST_FILE_PATH_C("blank_video.m4v"));