From d218e7de9400938ae6ac593d9ae5842e23abd4f0 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 20 Nov 2020 15:06:56 +0100 Subject: [PATCH 1/1] Do not transcode to an higher bitrate Thanks bkil https://github.com/bkil --- server/helpers/ffmpeg-utils.ts | 7 +++- server/tests/api/videos/video-transcoder.ts | 37 ++++++++++++++++++++ server/tests/fixtures/low-bitrate.mp4 | Bin 0 -> 43850 bytes shared/extra-utils/miscs/miscs.ts | 9 ++++- shared/extra-utils/server/servers.ts | 9 ++++- 5 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 server/tests/fixtures/low-bitrate.mp4 diff --git a/server/helpers/ffmpeg-utils.ts b/server/helpers/ffmpeg-utils.ts index 1d610eff2..c8d6969ff 100644 --- a/server/helpers/ffmpeg-utils.ts +++ b/server/helpers/ffmpeg-utils.ts @@ -674,7 +674,12 @@ async function presetH264 (command: ffmpeg.FfmpegCommand, input: string, resolut // Constrained Encoding (VBV) // https://slhck.info/video/2017/03/01/rate-control.html // https://trac.ffmpeg.org/wiki/Limiting%20the%20output%20bitrate - const targetBitrate = getTargetBitrate(resolution, fps, VIDEO_TRANSCODING_FPS) + let targetBitrate = getTargetBitrate(resolution, fps, VIDEO_TRANSCODING_FPS) + + // Don't transcode to an higher bitrate than the original file + const fileBitrate = await getVideoFileBitrate(input) + targetBitrate = Math.min(targetBitrate, fileBitrate) + localCommand = localCommand.outputOptions([ `-maxrate ${targetBitrate}`, `-bufsize ${targetBitrate * 2}` ]) // Keyframe interval of 2 seconds for faster seeking and resolution switching. diff --git a/server/tests/api/videos/video-transcoder.ts b/server/tests/api/videos/video-transcoder.ts index a1959e1a9..a3d7b8707 100644 --- a/server/tests/api/videos/video-transcoder.ts +++ b/server/tests/api/videos/video-transcoder.ts @@ -20,6 +20,7 @@ import { generateHighBitrateVideo, generateVideoWithFramerate, getMyVideos, + getServerFileSize, getVideo, getVideoFileMetadataUrl, getVideosList, @@ -27,6 +28,7 @@ import { root, ServerInfo, setAccessTokensToServers, + updateCustomSubConfig, uploadVideo, uploadVideoAndGetId, waitJobs, webtorrentAdd @@ -468,6 +470,41 @@ describe('Test video transcoding', function () { } }) + it('Should not transcode to an higher bitrate than the original file', async function () { + this.timeout(160000) + + const config = { + transcoding: { + enabled: true, + resolutions: { + '240p': true, + '360p': true, + '480p': true, + '720p': true, + '1080p': true + }, + webtorrent: { enabled: true }, + hls: { enabled: true } + } + } + await updateCustomSubConfig(servers[1].url, servers[1].accessToken, config) + + const videoAttributes = { + name: 'low bitrate', + fixture: 'low-bitrate.mp4' + } + + const resUpload = await uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes) + const videoUUID = resUpload.body.video.uuid + + await waitJobs(servers) + + const resolutions = [ 240, 360, 480, 720, 1080 ] + for (const r of resolutions) { + expect(await getServerFileSize(servers[1], `videos/${videoUUID}-${r}.mp4`)).to.be.below(43) + } + }) + it('Should provide valid ffprobe data', async function () { this.timeout(160000) diff --git a/server/tests/fixtures/low-bitrate.mp4 b/server/tests/fixtures/low-bitrate.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..69004ecccf7b4584b2624590f9c509600c5497ae GIT binary patch literal 43850 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

EyjR^g=dJM$!^`76qP3>%> zf%v_!^@7vC{lt+|wAPb5bshND)iI(c7)wfZMtGrQT-IxDDnK(YC^G?2cQ(-2S%U49 zRl7odEipGNhkKnqITw=GFi0keEUyT?VXWsaGlB-<6v-@)4w_XURxy5s-dQMb#s|&} zB})3861~%^1W8xI1n(Jo`yAdsWz~ym<)6rW1jSS zj5}aG8XLBeOaVp^jMK&M)AZ9C4P}5WSw2|}cmzz0z*Hc`-1fmOr~D4GIy(R&A1M3a zhMjuv7AKtvWWr11NNaE#b`rXS(7uBd@>=vY==39x9IjwnW!t1A+2f1M5tX-iPI7nT zfcyne2tS#bf63AlTZsB@o!^(gx5m&dwwelYC>Y@>{ebI~oDyQG(0r3~W6e&=W~SpZEv zu$qRu<8hTY%&az?p$MB%6r~yZtxDaC+(C7ql4`Qn$4Z+ zB|K=?Zo#nP!7(aEfz{FtK@~t&MQHTkn;ctPQ8Gdad!PWP(3@;O=GHIy#sJY#70iWJ z{9tLeKCg^NFIuyB$=5vYN8wE{MYBg~IeG}ux-Yq|Z&g$C;G3;w$R}ShQ3om&xY7z8 z@Te02@Zu&elm|E}J9`grcH{t{Dh8OyN$xS6pBjx^kVe5~%sX=3OEy0(`IE!>6A$^* z^TVzL8vYlr2LS-V{LR1rghDR`nMFwrxbR@|G#QMOh3oCqyHo0 z!T6E8eTK8{^L^W(pBqKhJ@SAFR6p|Y!Jnm1N;HIK${*Ex>r3%EUI`bY8Yt^H3J~~4 zsy0R-yAg(cU>)i)78BdBzN9do{4&dt?=}>QunISaKh_$;QDOgKL;0m#%}N85SVgyI zrA;@KY?rA_J%w;$_?*9^qQjGKqj7>Sxp_&`5L0%wIM#G-C3C1=u2j(jV*)31b3S2O zs}Z8!8BNP9`eGLv#^zD80NHkq9dxw9(Zq}mF=Z4Hw$RD;whb4T|BqWRDQOSr?dQ}Z z4X6qMfLN}u$hP(P0;*1cOSkTV<@LIa2jJjX5-=xt7r(W4Jz6zjh}$L)UAJYrA{aUR zvu-rya-X}N$|Y@YTwJ3OO2a*~6xwmmwFsys4V>33$#Gt@g3U2&w=I)zL+7DHrb~=s z1nBp-`hmT)4xYWuE+%2JnAOvJW#Xb@;}+Z{Qmh0%cf&m^s6++f#UZw4N8MEFG}TDk z@AHeEitF1Euk`S~$7eB`q6`xS5b*##bS@_drSLA_ zLL)J0|6XL2z*Bkt2noTrbht zG^Z9p5{m#IfOn2`*n{@?>^z}|(oi$R`x#Rgndc*ld_2;1`;T}q^x!Z zxH1)EuOvdOwZ4;-n-hujG1(UYViXpg+3x(=EdVXcu&SHTB=GaTCaO(*5(o@hc_?D`;YZVf=DtC8c0)yRLGrwE#y3oCtU7-ZsFC6!e4%GB_ z4McYKxD+sSb>d&!B!kgbdN+a;Gv2K zg)@DRD{$>M!Cw5eC`iYoC@beL5|B1Y*B(u#@U;b-+rtBTKGY!sacR^kTV%rNut76T zRsWnBR1f$^m7$8xiM=*D`IMW8W)wMuOEu`EI%R>EGkjy+5|u^RR4`Cu4ol7JS+yKT zymFJ5FmC?W?g;%rhZ89ah==}$O1z37HoNEZI8 za8x-7a&80p3znn1S3J({l1(396&{N20K| z?*dW}Q?005ZrlbWKX%cD@W6`p(Su+dR2j07(85=&N`^2R?R)7+b92YTcPUZc8PARG zAcbH(Pyq4ZT+8neQ5Nb?G2S@S>gP)s=Wdrn4E#|q`Cv<}D ztQalWQ+siXrQ0cpw%>L)ne+S}uU%K{-do-n!H|dXk*M-#71|pfu5L_*Vy|fvy5Oz( zkba{ljRnf;*pL=93WB3CDOEce?CKJAiz3X0$JwAgvVM!WY}@>%F2_b%YKiPyFAde8 zAK8FkxAc-hB~=HwurvO7v;BlFmR88|?k7@5>@g}n2(Q#gV6(Ssj})XgvfJ;;6Fq-A zcHa_DOZg0U^keTVip(z=4g>ckP@3fmol+&n*5Vif!Z}W~w7UrUKpk9dNQ#({WzozO z4qFFrD!u7A(yO2a{TC$hQha4>Rj-U0+Rb!De4lbEJU1)IN>VQGvfa!qtg)q(5Z>$8 z?vvUvxG{KwMf^K51v3A$^dG+~ShO)Fr7`4>Adl&T&hibeg>Ap*slmRsJ)xfihvm|N z+3zfj=z$hqr3}iC(*z08_;Y<#tuC@oiM0^lt!Lz|{ei_dnH;l9DG^6=_hM&=*Ct+v zELt2zJKLM#GN~d6Wz}1fkMEbMAwuE_tvoRe=PWJR(J<|91VzF7eMGeQN|Q=x9_hIn zmUA*Cgw5KVZfh2d>gTyn)=jT^5q=FHziwqZc14(7pLE%;j6*P#g&aECmPrB4^2F9| zx_Dw`pw(qO>KDWz-{PLJ(PbDH$x75Nf%xp?es7OSE}o=_AJ$URNj7Zc(;F2&OeSAg zb0f>eE;=KZrjLisBre>r>{K>|<6s5|bac+?1@W!Aw&6vSBX}3tuK239XqC!56h_mr zg&I!?MBky(*m=;y?6igMZ*z(Cx~Ew8QW3t%I2}iIBjwfnsM1vm^*{GWC;av@xTy+y zJyu$S4_A2PR`+FEnwO%)cdx%#SQ_OLMV{Sq0q;~sJRL=YPAsEL9E~^Z!E2{g23_Js zYo6z=+&?qKhp0J7B9`Jhw|oqu@U-;i?>Z`c)oS@Zv& z_%@h<{r~39ARV994D-+UcGq{^A1!!BU8r;e#jJLw)iM*FAl9{m-SxcynS^-wlB5p}qNGUG~*}bIxn_Uh>_SoqH{R!PRd|lo<^5C&2hJob2 z2$X*bCQx_6M~lHjO1KDmZs)hOKlmQnM5clS9A~t2Zis|+sh@0G(Y96~^pjm1*Wuti zl8J5XIsi83rK1)hh=g_HrU{b2wxRdJwyg6C;KxcM;mcC4FAR*5c_aaCIWjU$ge#GTFHp2aO&St>p*!~e9qJ!5i(aMWIlo8g%f z>NDi5ll|U04Y7Nsu#M1Hqr6#4UTdfpm=-=~X9C zWRE4p6scL;K7R3nU&=6d#nDyqLioZ8`r#nLk8e(0WDr`+dLi|AWE=AwVk2XhSYP_> z-+(`GfuSEs6=-&`9aDxJ8}P#PhwAo*NWRr3E{qHuf6PR>O1&YTHI7dtJF{SjM$QN=q8B`}Bskudm| zS&Z2PI~hd?(iarcp!$*ax1)mJM=-?H(Gj(5_Tgg}4X>Vr;Srgg6)D;jv2l&qj3q8R zbu}44Dwb%0f|f|AdD8}HCHfNWd?HlCvsBK0gORg#SC~<$%i}b|rT}<`(`iG`E2N5X6B0vL215L0)SHJ#!Vx&6FRbaOV`?`ytzd|$ zy%N{F-b=gVDk7N%ew5x4v~UWMi6|QLcxu}CxyHkzz#sdRy znEc;=28s?V&T_`gF6KALV5=qp;Yv8+fnB|iCeNv!mLMJ0xzE?{O>mtG#9W~A3N=vD z?>IEts_1vRxsPX>VBQvdz~YyJC^mK=AZw;ztsgA2LC7ha>Kdx!% zq?6h@zW2XOlMm|W zU?X6+fgi&G@wB$5v}>p&m`0ym_gl*mGVV6=@kXyP<7Q;y#l^AtB1H*14?J_z+YkP~ z9QiN08t1cb{n!5ZUp|80{}KP4uIA%1k^W!gAf=z;|2tm|j`Yubb?q(fbz5n4e{;HT zU54D~qu3q$I>rQxxIO*j_}q6>I!4^DbBLg8m{I5C+>`2VE?FfAE-LAi);u$#_hia>49k95}P8f|CeZF?_6+ga5+9>yFe zZOWKOz8xil0J(d=A#%oLra#7j(x>`h;D~XJZ9HCh-k*EaGw}WW- z76#f@_C0kX6M-_?Kr7a7xf41Vb+xxM123eEg~WLEEn5%HL8n$Z;lqY6$Yu-E{S6_| zNb)(o6FIMLzHE`Cb(fs+w@LEqI7oTu()e~gGtfjgNrvmQXeTBRU;}6Z@7+Da`XMke zr=#;*k5pSd;Z;m}hm5ISZCgqlD4y#J&qGR|C_CMz4=c*aHp(fL>`EH|0mQ4%l+$B6 z)e02g2W>)X?$^T+*i2i~yJ>PtcdM;sbHItn$!`$sNNB^AbLHO=4cf7C+D2bv#EmF@ zkSY>>v=bje5>)CSD$(C#>bAhzjXP*br|hK`H}`R;F-Qi6!1K8xGlVs`eq`vUrc1O6 zsfMC?X!5Gm`D3~Q=H>uqy*!6Sk#P?1r@8%DT7Dt@`^#=KY!F`XD(C5@Km@QY>D@eX zC^QB}1)?uKkzOJl4BdBfc@m%#ypDmmY{W2e$yt#mq6R_b7e8-GVcUp9X|_zItz|uV zQdbijXy}BHbj0gWqKB9?O4;Zcejj~U+rzN&0J&VwaI#7@XRZ`i!T1qV0fM{_L%^XLcmI4 zGlfNw;T0AGXc->t&;^`Ixd-Rm4dqyY6M;LQ1NI$Q){QH%1dy1-{F`8vhW z#wZc?4#?b+URc_E%-AQsAsqTA2p+a3akr@9)>%_b7@6+{=M%u}^3|eL<_CEDnlNdj zt1^<(YK5K45QLg@GIiLXK~I4iS>R}fxz`TaBw;fK-!lONdpbW|a^wS?I;E>K-9?ts z28rr}_32B3TvIhybmBgkV$CxZ1B4T~Z}x|@c~9`Go^3s|Rr@4av@ofsChj?i*p>Ub zQ$jAMj}ot&Vo5htdpC4`@31yIi$J`Z<8npJhk3Q%)7Kp^T?sk47Eqv7KKbM!);7VvtgPXVibA2 z!K>tlwdCa=krNjBIWM9w`iNNoI-RBjO?*n4Mint*ZiU~W5>&4peAE_%+?&6Nl1#LS zc^N-@c;#*WcIeVHPpG^Uy%8Cs#1TE`^s|0^VkLjU;^5_wkW~2qz$`lbf2ldjy`TC| zQt)rQIFLB-|38aCzx}2CJ1`E684hq*5dM$V4^!duh2i6$iSb5fIfTx=9uKzw zFx|RcCHTgej;NYe_1eTW;mBXD>-y>^fJA@>JfyECib99|>Dz%LQ7QN==xf!k7bV5E z;2m)INwMjCY3#b2P<4SehoVln8Cc32eZ;w=S*HF1l<6d2huvUJcT54g&>FrGVj70l z8jPsrqwx6SrAiDx>GkSb8b_R807gTt>>Nh)m{g$r7)UU1q0zh^^P{N1{&f<+9gSf? zWh@ppC_;(~214tV&@mx17!C<7{j}VU!hMUO-(2X{!wOPHYX;7^!P7c(QMq;+Z#Ka= znD6mBM;V3`n<-_=xxD!5LcSS7`kSsMgCR&){)awA<7Ai(pvPzsHAP`%Cz3H~)biFk zd~)grh$G=AIjlAXt~^CSYi=oGfBV%AlzA4e=#1e-CgdP;Qv?<^1*uf~CSm20bTIn^ z^uo`Yf*%a+(@Mdi0M1Xrc zso{K8#Lb_-p}uI0eN^xg|4iK;RD!_9Wsc^%jEqFa*?M&!wnm?RF*^^oj*A_pM!=Nl z(_v0{El7yqgOo0ml!SwUA4U`>dyE{RFGPO=5YbQj?;S#t)66>ho55-|KmK@6c5J_@q#oA zqMx;Y1z6r;6ytl8AA$YpLu94_$~ezAZcxc~vV~+n>!ayHN&(~mnaLdcSpNI9;b^od zCku$i#?c?+**zEz-grUjubp0dEf@(Ri@5E8FkVo8?!gxv9Noa*cMqb#?+zZ0-+voO zWFE|_a6q^nH03)F$is$aezPr?Kfo04iK0B%(#4tj2&DZcrk)crM!p|tM-&~JtdI%U zOYhi6fY~T|2qQK*Hy!N(qm3`>`s@0DKq4|XHcPZtxLm!tfYOn)^8EyTA*ZI@dPh^M&<0Cq=!5@relZZKMz3 zO%%duYB_idk~W1%FU+}aCQAl2lQz_c0X&9FC}37miuTrg6d>{2ot{XBig1H*eURJU zTWW&l44>adt{HhZKx>V|l;)|av0~gQ^j0Gslm+HK-CC;mrj3GNK~X%P5PGOGDlcJA42^8?cS-jLf;ft*qa=gccO%t>B| z_*cSWmTrHYt-iwklZlmTB2eJ-$(fSBDb6S#15Rb( zm9aOG>L22GgPgDSCPZ^od1$my6_uFU(Pt3fH^aU~+Uc)LBoM5plI_uG7t;JI$%a05#mdqN9z*$77hTGOLZ!V8Xg>^kv?S$6 z1TCtidh#Pt+i!K(LjYY2lwEaldf;7clq2aVl22_2T#(EqVWoS{CD+d z5LN3_&-ky{I(moYlcFDZVxm5Pj~}SsbCt#F-);oT_$*7J|4gvoQB7QT5(B8eh@TRi zlHRA{3-G|`@&mqGAp!tI{yPgWN`&Sh#Sy%KK=tN12p_oO5L95gGHZ?Bt_PVq3xsFv z-NoyYZMo-0+^7Ql5}RqbnP?=DEBB(y_ec|fB^IG}<-m&W_ytC12*Z6CQ0dH3F``#h zA+`9c=JF3H!^8d8xUN}AuTc;WeapFg#RzSz>p3#yEyjdcu^5`W-a&C%0rW^;UaV*T za(FAj{8$eL#0}PxaSz<8j(4oX^JvOcn5JqMmKMM(y@aXpw*^MinIhkrCy{1z;duhE zN?NA!Jsa@aNuk3-6YWtUc3aUPBxj64VzN?NWrm?c+nKP?ClR^Y(E^o4dT;@7=TZ?T zV$9{&=c^XhkjDJ9^?V>Yb9I~P>x2qs|3yO8*&k8^KNT`OEb`O~(dG2(Rp*2b)HR5B zsGh=TTo$L$>J27Zx7ju1pTK^9`Pnj`m|(P9M9~~O>a?lpNi@K_G1Da)%nWDs%1ue8 zlB7TOoWJJ;M6*Z`&SjS)Oizkr(RwMFVsE3k2tcTDX)Nru#?_kQF+UP-amt!+F(q@! zTTRb8goc2aU-8WqZEJUNeoj~Kj3M!T&vdqWGorm#)MRo|<8;Q?QO^~r@eIW3Ra*tc z<(uZdBcd}zp24qd*haj65_M0WZ|jlp>9u;-yQYPU0T#YCp6gx>Dzva&!=y+Q2fwc)3p@ zd>S8j{+%p0jhVHs;sx1%Sp3rsCF5f#k~XKqY#n~m)JOz(> z?d>~hKiY2k5DcV8(!f_jC(?^7+TP}CT_=b3xoL1Bdgw?|NfNqi_KcLI?Xfju!iiz) z6}dt9Qq^Nqi?b#N>5?kw$v2f#>Cr$xNOVt?)GEYs4lM8{>dgFcb9EnZ}nx(ao= z&$F4H%$d2(QJ-tSKhSK3UxufnAuExRIW}|Ud(9m3WR4ALi0b?TrY^q{2OnGNn?XHc z`)*x{Rc>KH_LK%0>cX;kzXKx)Rue3gN*I`UFVm#ZYqPL_Xz{0y-QZ z*x{gIs&pB7`6=v$&4of>JKw&vij2@CoKn}oBQZuSlA$ysT)m_^R}38-??!Q|ZaS6z zoZNyH1R%%nq?iZ34WDrw!-!yddBX!e?Lvq06l z#11et+e?^IWQu1_#9Wa6TFJXa!wSveRI~Jk$*l#XZK+J^Q{`kqs*M`%{{$*PqP`@_ zJjDT?;W*O=KBS&nq;PVjmF7hnPv=p(jR-hVq1_H%k%}@Afr)V~PtG@gxs|kq>GonV z+ku{)>OR|Bvn=!9A`f~CS4@TL;i6->X4ZZ#T0^#jtS$ZqL+@V^7eBR(k!KC0MMk=N zFA@xqDfKy}d_U%9xgdPex-1me*AqY)N42+wTij-!E5hmsVyG^gn?aMLnNHNm#R^h&M}LeFBBMu!okK zZfXXpq-ZWJ-?=kFBfbS)wK`KtMe>PNC}U%t(k1VVFNlhE$sXdfW2}QOZ&^D#hDR7? zuU5O<8f}m@f|td<&+UPpP?oXr?tD)yy^nT93n1rj&>sV9@ zbPv7nS`Mpf=3;&E4wibO6IydPO5_gB`g{wgy69NVn|#`sz)En_^vd?{)8_4fhuU+s zuCUqttzUGCE6|H510%7mHy`E%8Ck3`39~B)OgbQo>Hzo4xDZ#feRcBGA${&NMRHa> z*;i5$>NJ=@y6T4oG?S5hOh8yMgZ!vt2ZE=B(j`{aelyPG(n*K9K2@l=4F+Qq7YZEg8RxYB~1VBJU(J7m1-lI~u!gWi+t9KYH2-!cmPB9te<;T&sM6in(AC##&hYwuj1#`0Vpc${j6i$=3fPXMS741yWH zPt*i{WLfJajuP*lu9wLkOPE~(OYt1kh2W}=DGD^XzM>fl;DuOJO% zrC2$eX1~2i44E58*8`AH#tf}SXtYv9I1OtV-yPNF-uS)bk>Z(+kBHDmGN!U@Sbw07(-;4# zUTulR8)@CqyX1zzZsfh%hksuSu|cm;Iv0({AJ#h66HZZwd0!lbT4VMbpFZb}!VGNF zDh96rR*`A)I)4n=d11EYOP7pYUeQXW?gEFmpEb}LwWz1?&|=d4Bo^bEITcKjX4FrN zYdT7KQj^#7B<7c(r&A}Sr4%sBYZ4V3R6{(uo}*E(dg|sEyS1;7)E(Pnm&{4C^-f<( zxw}PhIm8BSj)zc6Ev(R^G6TO=mq^r+l3gaX3JW!WXCzNnQk91K$9T}?8MN=V=p}Sw z$6w}%--g9I>%$aHp@jCS2pn4n0Mhlo|L(86+ny%_&Fgn(?;|e^1(cJ&i@H0jdctYz z8%*=V2)Y6L`--jjk3hB3PvLX91rcogq)fK;{>tiI`0I1Y&G~NN_cg*|SEAEluurgZ zIVSSAaJ)FYrYESFGQKd2iTQ1^cU~gBEkE*Q@s+N?5nyG}a6B8yq2Qok@2PRq zB&ebG9m+8flB>tuecDd5*jlz;_k5ddOZk3D!f8RkIfWvyRGa?P8G+pDzAHN=osUEd zs$iSnF8)%Kre>;X%4nN8qYRN~U{xrkfl9uY@SRQz0)*s9fmZ3L^4j;5nQr#;3SH&@qKmJ8&hnwzxr5_O>=cM+$0KaG~}#(f4DqcaitMRdv+5?ZeHVvoA)kXIMBc0Xg<1)YM~Lq1QnX0j<=g2`-ynXZ z>~%Z19T^wJHoWk^)*3JvQe*z^Z@+ad?qyV67cRb!jJ4XOv=cCrYa)#=ZgK#wK(~vP zxKn;sbx4F?N_^n{34%N5XuJpg`v4nnWx+n<7oMAx=4mCoX?Y<}tRSVlj%m8xvbAvd zLs=8yOlkA`Ie@uGXA}{FxWPu~pq6ZT&qq>!O+_n~r(mO$Dv5)%NID6M_8j{G{*WgpA=)cTK5A z7)79tt1_cF(oz*a3yi8rD-)xo_5-_;>9Svvc2jWJs|^lW>f{{{KW7J30Jq5- z?wmvkuyTipgz)tOXGuGDe%$zb`lH=d4=E*n>L^w9Qx_v?QtsS8snw+U9zJ?ubRdQcru~?K(9QI4-1JI~a zzCY5N3vu=ROJ;qs|Knq6ef&a2XG+rYeaZRtWdcV(=foiPRp+D2$Z>l~`i#Fx6CLgO zR8jYL!2?|itz68D&uOrmRL&PB;g^+1?T2h>jG)6|WY@`hg6fMAi&>046FHwrC5b*2 zzmQT#6gjb2J(^@uRCl!|5jvKyt{76y34RKou%$*+3#q3CJ4N68mA0#6zlerq@iLlj zD+S$6p3Q7mx5jstCgd&5@owI#4S}bOgCV~h za;ekNzl1Urd@Yvv>Bny?H#y44Mn5HNYd1Gp5wGKEeA8Dh3|ndLrf`1Wmw`j2P+`zA zEs$9*VG2u^Wf)r0!1(n`cB67~-jyV}`FMBXOj|m@!%|;r|6Wp6AO|a}LMOWh>Twu*)qqojQZGUJPjw-xg+!Za?HHVxRraW2w=i$5niCl%6gZLB5;hP5BjAkKuuG7EajEfh~V93P-q(%Y6D z44y_^sCX-|MiMVp!S=DW`hVV0lv2i8o+J?s_^{|OQF&+&ryTmGPOoG{hcVnK0~V9T zA&_85yZ3Pza7WJ8Rb?KI*8gc^5D9`l{k)&Zdmq#$BrzHx#va~6cKb3Ae@W>1JNx}- zrTjnD5&%F_0KkuW$nRN^4W1^DOSB+or>egObxSCcrE;?D@^mp$`K7QjD$ zAbKjY*4^t zfY(S)jwF#0T;mwNkw1#1si`8P_Fnr9p@gA(q&M4rSkLb$BcEnbbRa@IG=_fY+n3|* z-)W>sz##IQXZuM%KUA*It+(Iow6v%(9EBP#&d40-Z%m;Q`S!5W_D#GP_D8%%btM77 z8+;l9iLy?CW%FMwgG*-fR^$lhdz>7vsyVAT=W2=H=(n3Z7#cj)ie1t&VkKDob_CA0 zNMLF1$^E<+V|X6Nukwypj5ju_EAons*vgv3#;>?9AHY`mX&j7H&5r z8iy^$f+Rhqs!qC59xl=lJ}@%E-9H6)jRn7P_^MF8XXg3Y9JH+cT^2JY!e!UAwpupY z9c5pA5Yr_ln(T=l7h6#Ra_BZrS)93ty&QgCd%c_2fO>f+1$w$#`4~5y7ARb4bN$M- z{B1rLTpT4nIBf4kyUrK?da^d~t*OCT(v@wbhBpT13h(=OUZ3KaEqfzer;IJA3K0q^ zGOu|=Ut2Wldp#&o7)8uep01^hHiitlAp0fFwCPP7snNZ*9qwLzUdEYIo7ZV4;DI)d zQ~C7xTYgna8Qey;!C(;~{5U*WhQ)2ac20AXtUD9mLtd0k>@rQGb>Jy2WV-F1*b8!I zip&P7E{5UtiS-2&hZ?3dtmaIit3P6#GkolDqwKzr11a-RlaoF;UNkTbS$Qj*Xwai> zXOGufe{K05_EdZkr%+SYDH-p8hY4hK97SAXs)lXsMTV5T23N`R#AV;7K4a{{!;aC;c4Kk*? zFBjdz#;Fk(f@p9)_Yxf@qpTXj6YB0y`e-|p?CoPUCbMd7irjfDA}=NcUKl*o`$&a2 zI{w$G6nK)dSVXHO3z1c-XWVl2J^DP=xxLWoHoAjM=UW3^`IWtxz6d!1*Jq!^LIfZ3 z#5&mUt$TjXMbqOX89M)Kg^h#d8JFPIQTkL}OHbZ*Q(>yxt7ullAHY`td>mKfu_Rw9mBBaBsW=wsYfPO5Yd67%f6bhL2tflZ+SgZ%mM*V<-B zYcI-Q2CqZJ5x=h(8-Hbr)X;XY(cYn$BZtLerWNi6T3dsQCYCZS zFdfXS?ESzq05%?g)f2Y2@-4#eSJAcN?D?Uwn zP=-ye@F!!Np6B8QWo(!+m+=ok*|iEL7rh}>Q|W1kpH8OvnQV&7R0*5o+-Eh?vI4J?&yB|$g)>2TF7aB-m0Fo5 z8)w6&2rv%Wlmv>`>#W|Xt|1>aHT`u)w$@!mEVwRT`R_1^$F=4!WQMLDx$_A!ETXoW zUM_ePj}Sa=Kot7{N42RIv8kzv@CFOXU+K0vxB_!V4yz-KKkq14zeMmdk|iHdU%jAi zQP1_|*j#!1H`-vh&OhnWpm0$YqEq+sEd5(NV%CzClK3EDE^+{;q3i?IrZZx!X(tsj-Q zr;B?WV&f`Fe2@bPf5}bH62fQ}+^qS)X!(An<1lcSG5x{SsCCIy9E2|#u**&()KPNH z;Zx`s_MHN02pC&{AR5UgfuLYzdFBw6z|$p4-@KHHVj6eabY)wnvFJd#_^ zY5eHAYoat{NSv;8N9gxeeY?}-N|0sJ|#3vk)I}$Zke4LKze8$c1 zg6Pp+%r`53{e=3Yds57}tVTQ+8-mJL!MlbYXBPdf9i?S%`(lkXf!9sl0VcSw)(Rr@ z=AO^aUWV$|gzvs*BeSx?2egI$b38Eg8*M!Gsil!c+bfl_DD&O}TvYqsYQ|(}VVt3v za;jvVFWjahlL9N@>=(U^-o&|ij}(ihv)=UvrB>Z8KNeCxn0pjzZ~4Oa2dS=9?LJQ? zcTYyUtE*e>iw%23ReMcI!&3}?>q4wHm-gpSOJGLGG}?mo3?kvgmR8tCEQZ6*g-KOy zt6FdL_;V>1+9-bsXMj*O(!H*I#(op%GtT(iOXx+Vc3Pmv8d@=my7 zcJyPM0irUG>%!>od>EBM6VJF77J`{+BX%d|v@CK*q_6cSJd!$G@O9qpWHXUadw558 zuf}}?8G+eN+>}>$UW+@?tN0>U|1Y!emzwe4nSH}< z0=hAz|Cq+Uu!;Yn-8WqJKl0)iY|ngInM>*@v^w|B_!EVkU!FleoV>)eKlW?>6yMk8 z-6#M}BKrf7p??lRW0pQ*r$zDk{Ja`-qj^^8v(W^@a)!up%s|nozQT8EPN}YOvv@<3 z?MxICyXpCHoVjQ^ntTyO*%O6_cM1%#wu%n*F++Xt^npWoNAid)F^{SadkZmfxl!)r z$;^I{g9^Yta-Zt7iH-mXXbfaa=jlkKBi60!*AT^K_aUWh$58_w9fXBg|G{)SL3VD# z(ZH?gsfFic#`_~A^reVqkyJWUZSV4{@l;}iQ43Y+Hrl=rz>Kx=06(5|G4ujb(Yk4@w|)euKezPBRyGomJWzQSaAC@YtJ-vWNQ)V03Ky88c+VV|AHtN}BUb{^xiM$(R16S`RIg-=OPYOpi zNZzO@OK@@5J_JPYye?g{Y7){k(hWGMJc{k_G@HqQL1dqK;%RN@WI^t1Mqezus&+No z$eCP0o7F~PV*eJDe@w}zb2+aa)|Xe^na?A@qrzyX!)|5asEp$49Hxu0mo=0~yzc|4 z-IvdGgm>8+v_$S%L2J|?i?c!#cMO-Pr#49(0@j7%FCC5`M^pp+Hmb3WD-wM9m4`!q zJ9NB(0sM}wvPS^%jb7Dx?^i5oKb|vb>w-~cJgM*aCFzs5i2H+bj31+N>Ck7H4i>~< z&$jTaHC3Hy>XA7jPdN9)oUy_}+3Dv`ooE9t#lOFa+bae#JRW*W+)Ha93w$tiAZhh- zG2Gsc^Y2mMm0sOym@|Q;_WM3!>~1(*5C9f6n-$JcD6V^Q(leTx`ms-R8ofvEg0XDc(m`aG$DO2ha3G0ok6^g^YnQ5TvKMM1iZ^gz71^vvojY zq|~^XWZ;u0#!4I@(a7EGM<>E$5hef7 zEN+xR1oZ;8)wGwwVF)kNiC{)LoCZ06(};iR4*ge$ z`qyW_f9($a=k33;1O7vIXrS#s(#zwA7@Hg5(l>_9S(%qx>Oaaf{qEtpkrm{uBW7+m z@X!DRbzLG`?{9Sgod>ok#RaChV0j%sYgBmawyEsS_1pko+P7EV9w9gL2xH^`@n~&|VunY64G7TWi#$F0Y?w4W7ZmhE04-<7z9X(@ z=_jm538-39wc;$-=fh$19wP#Y|EMNx{F=V4o;8Yb=UHcywDq;@z3nb8P0}*I{t_aV zMk$zLlf@fAF+J3rF=_FkcN-PuBLUR%nt*l`T55xOz2Jb!=PyF?;}J)Rmr_EIqO)O7 zrUAJ{|4m6V=o&hItB-A4o-9zf$qV-C0TxO&CY3kLS}%Jo4;(w_l0d#LtJZA(>@|+ip%D`P3?x@kyFrxX%++C9)I`Bax4LHCq$+WXh1&YYA8(g~r8BB~ha@0gGPb7Q}!*PV~ z=<@aYUT@7X^urXD{Z(VnMGNwvLf`!OfAr0Do=pf@zVqv`A(N^ZBhI9U7>IC3i4C8; z3d!ljh!x)E$b_H?+q8k4o3Io8ARc1k5E$-cyUNJlu+~9YbtQtWLbUt?ToGKY zf^$B;i{^c4(Zib3@?}bJ)hS?JmTq1_f{Sm`)<8jR&!`M#u&;bf?ItP-ZM-p+Mm>{^ zhyZKWf?pLQ$v`&HI>|}(OHx!ynku4#;)SRe(@<>;!Q?SiSZp zLhDRzHI5JGhvmr$ARk;=6`M=G+C`xJ1itYm7~QJRbY630*c#*c3pOCi zOb20RZMo^?cA5|4DYA2aWvUmglHp8}#c&WQ=C$UDE9H`iAr~cUkic5(zS>Snx+9hB z3ez?W&JMPe%NY?6j&p&N+Mj#NIP(K6j6OVx*BohC|I4GPt%oH_PW#-hj-VO8YG`9a z3*eC8gaUmh15S`bdl z+1s{RL(t+nH4?bv6i}R58x35Vg#n9pEhhKs|Sd*_ONFMzqP9TDEg?ti5T@9&yL^S zS|w}d{W@^ut}EV`b9rARUZ36cQ_`SnJqJ|4-2ZLF9;l?4!19$|EF{ijSNf&x!7IqBI^9`2ixP9Hun?WqJXxB}z zL$eWiDk&4DIO7CXHl*IA7{)@%+>K+v-#9dDX-N-D#xM=YB&v@S%(<5I+Gv1ydk>TKIP$7nX;W_ z-;O^C<4Mx`Vxv;WH_~}RLCYhzTC&X5y9;oU1g{*_8y}g9IUaw@LN1Di?OWj<@C!y9 zB~7LY%J3_o_(p8q>Yum!`&YU!mYj~UlwXJ`D5t7x>=VRQ!9#ApAL7pU+ulg~> zs1Y3bjysoBm)c%n{$QG(s$MES6h+OBAIBN(ySCz&B8{Q>8EF*HvW~0+;z@uSm6+-& zq54qhT^L9fMu$X-5bns`+b#rM{8Q4@N{WRMmE>`72m#kvN)ayw#Uu_@$y9dfEw9B~ zsayPv9%@3@HE<2L2Q7lC6x-8kokO5LPDaNiHhy63vmj+X_ipVaM7v!st~`tM+QW11 zBPt=R2iM9C7U|gR=FgK&(sh`&XqPgefE=G?x9u)~wyAmMo$}a>3RVUZj%C-i<#bd8 zVq`6ah#zF$KOX8;5?7*t_$0NxjAAM@K2nid=~fMC4!13`(5KqTyU7g`USZetY#5oE zPmv^jI9XX$lo1F*(~UB9!CF$P7}wd7*#r^Go7qWfo3IItos62lE7y7bpkA)mzpIXD zn3Df@HCK&EpQV;m{XCAa{+4RjP4@+IU=Z3k1f1XqQ>9V zi0D>?o`s#o+UA~jex}pYAD!8Bw~>hw4C+hEg`|;?+4aUV!<5o$dxJS79EX3v9vqL` zkjJKu5ies>0yXxoflo