From 173ad361df9c002159c0af6f510cd26995a8465a Mon Sep 17 00:00:00 2001 From: Maryla Date: Thu, 14 Dec 2023 13:25:35 +0100 Subject: [PATCH 1/2] When converting a jpeg-r file with ICC, copy it to altICC as well. We assume that the ICC applies to both the base and alternate images. --- apps/shared/avifjpeg.c | 7 + apps/shared/avifutil.c | 5 + ...xif_xmp_icc_gainmap_bigendian.jpg.avif.xml | 120 ++++++++++++++++++ .../paris_exif_xmp_icc_gainmap_bigendian.jpg | Bin 0 -> 48117 bytes tests/test_cmd_enc_gainmap_boxes_golden.sh | 4 +- 5 files changed, 135 insertions(+), 1 deletion(-) create mode 100644 tests/data/goldens/paris_exif_xmp_icc_gainmap_bigendian.jpg.avif.xml create mode 100644 tests/data/paris_exif_xmp_icc_gainmap_bigendian.jpg diff --git a/apps/shared/avifjpeg.c b/apps/shared/avifjpeg.c index 4d15a6cb3c..e1201ed9d3 100644 --- a/apps/shared/avifjpeg.c +++ b/apps/shared/avifjpeg.c @@ -1146,6 +1146,13 @@ static avifBool avifJPEGReadInternal(FILE * f, gainMap->altDepth = 8; gainMap->altPlaneCount = (avif->yuvFormat == AVIF_PIXEL_FORMAT_YUV400 && gainMap->image->yuvFormat == AVIF_PIXEL_FORMAT_YUV400) ? 1 : 3; + if (avif->icc.size > 0) { + // The base image's ICC should also apply to the alternage image. + if (avifRWDataSet(&gainMap->altICC, avif->icc.data, avif->icc.size) != AVIF_RESULT_OK) { + fprintf(stderr, "Setting gain map ICC profile failed: out of memory\n"); + goto cleanup; + } + } avif->gainMap = gainMap; } else { avifGainMapDestroy(gainMap); diff --git a/apps/shared/avifutil.c b/apps/shared/avifutil.c index 7186c511e7..743845bcdb 100644 --- a/apps/shared/avifutil.c +++ b/apps/shared/avifutil.c @@ -146,6 +146,11 @@ static void avifImageDumpInternal(const avifImage * avif, printf(" * Color Primaries: %u\n", avif->gainMap->altColorPrimaries); printf(" * Transfer Char. : %u\n", avif->gainMap->altTransferCharacteristics); printf(" * Matrix Coeffs. : %u\n", avif->gainMap->altMatrixCoefficients); + if (avif->gainMap->altICC.size != 0) { + printf(" * ICC Profile : Present (%" AVIF_FMT_ZU " bytes)\n", avif->gainMap->altICC.size); + } else { + printf(" * ICC Profile : Absent\n"); + } if (avif->gainMap->altDepth) { printf(" * Bit Depth : %u\n", avif->gainMap->altDepth); } diff --git a/tests/data/goldens/paris_exif_xmp_icc_gainmap_bigendian.jpg.avif.xml b/tests/data/goldens/paris_exif_xmp_icc_gainmap_bigendian.jpg.avif.xml new file mode 100644 index 0000000000..0113a2ef73 --- /dev/null +++ b/tests/data/goldens/paris_exif_xmp_icc_gainmap_bigendian.jpg.avif.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/data/paris_exif_xmp_icc_gainmap_bigendian.jpg b/tests/data/paris_exif_xmp_icc_gainmap_bigendian.jpg new file mode 100644 index 0000000000000000000000000000000000000000..52d160d1f09d52fb85127bb18695b84413cb0185 GIT binary patch literal 48117 zcmdSAcR*9w+Aq9qV;{zX*ajR>Q7{Clfk@CA_SynEDS0lQX@f#pn&wAkhb$ZLC=);p7-AS-TQuje9@i#Wbd`tUgasj=eHKp zx6=2>H-`^d9zqr@M34pW50UmPI%F2+>y03mmTJf{1VL6Ha&UJkNEhJv2IS>%z6!_M z1&d^l%paQ8I>k#B;$>q{A^AK44fu7>kHIJ7`s59d-i)-C+A9^Z?L=j(Y1 z*JU4b8qMbv1woGahEYy!({V=-3%DwK>%Y$Cme$9%X=&`$)X>&~dNsAQ3^n%|YUym# z(lpf6H`LKWwj*ihKDX|l&I!eQe-ilG_|y~7XAFWb(f&f;xF>A zAb$h0Y$P6lyylDi2;{Y2S#y#;zw14eN&F&z0y*i6JOMIt^GloeYHBXH`R6Du{30jAKrQ+rYk<7u=I7Df zwg^EKZvXk-1$UOtw^KH*3-11!V3 zbH5O1gAT|Wq3&fM|Km#;SsP@Z9Jux$2ju?kjQ+b>R@a32)(^(ygpZneD&ol zdk4(3rmXybKFf;8?*C`a+ZGbwA3zHY*yia@r3AVo3!&7)d5y6(*ay;|Ga;)%+OuNr zWN`3lLp(kpNWc@ygrgiv;@{D<22LI7kbmY}3`y)zDNnS+UJ1(97G<*7VSqhvAp8@|RYIhK6c{ zYHQE}eein?3=Hs^T6irj9F)KXg$D$?hv5Q(RAg0ruEUfPRP@!lL4E^4}z0%b3Ao0IwHSrfcFo|5fyFZ?g=h zQ2*aN>kH-oR>4WHK%c+W@Tb1QEu0Uu4oCf>xPNUqbn_@JnDW;LTULC!C?wUA#EeZvvv(JEn+h?GqkJIwj z-lw@wSI^U9pXXnyAO`w^<+-2wYpY~cc|lbMdv(3s4YWORI@WWwBVDJ z!1;SJRWkhkn5D6@7FedtYUZyTJLMki4Ye67AMp(c3H$Sgy)Ttw7wj%mtG#-9d$slV z>gj0d>1b+e?fbKkBPB2h3{qC-d^DWD106Cv7)WssrUly5Xs3*o|A?1=+_nb4;pHCe zZt5Piry;P<*h8FHYW?{jU z056Ic_$p&%%|izc?bFlKG1c5>W~#5h_j}E~W@ZO;%yhI58R%#q(4O}{+l-(Mpi36M zLC~jgnM?ZOl(d}2l!CH z^?tF6e_i+eH#+9MSKCW(pVvN|jwfX=PRGMQ54TUxKpUs2=k2cLp(#^8gTL1vMDq>~ zbq}O`?*n=O;}3d2k5{(snxEv|e=i++k|LWyfH64DeK;*0d#$~Odvy)9_I;TI{Qvh| z)Y96kxzAhQ0Jl#^PX{bf&l6|h<*kMD)^s<})A8`$r>Fa$2JpY3i+YB-+W%c$lm$YW zLjQea|J`hQ?e*U4Vc_9~1FP1B+4RuDfe+HhQTFNRdl^tPJ;8tcy_Wymu7V}$!i4^J zb@lI!`*&UR)OYvvc859iG|<4h;X-Kz_b$4gU6T4*d_aoA1Uc-@jYo|5a0tPy&2{ zPl99D(fm`{{&OqMAqHE!pZ-5;<$oUfKZoUS`lpa|Oc@H%pIMCMoz_#Nj zoVG1}56R4z#LL|?=(McNfAN7*y!Ov!TX6qHng7}4&aP9g3{II;~nhG@gLIsBp`AxJRDp->_iISEn_VheW;fMkyZ zLWuyl;*C&1Mr7j$^}**n7eS0!QmM4^&ufQS2vVdEEK2#G*LLj#_FyG~JpaqJKgSe2 zn)`fpGBRSJH!v|%*$A@w1n?wppdRP>d+_yN^lcm5+6rx@!9O498wJ{I3GMYnG(gfq zG?BfCp0pPMz;y_*wno&T{4!+G10W(mTC537!h;3#Y3%~|z3{>3WPKaRz^=dtvS|c4 z*C_k`^P|5CK>`P4zonhXL1fXQ#S51#Sg?4p>{z^D5qvFL^wn2OmMr;d>9S=@WuIkB zmn~nmZ25{6%a^ZQzI55jl`B`QTD5BVid8a6R>^`zixw?eykzNDUoBm^Y?-XUUp}j3 z#a6-tGGYGoKYmGnL)I)?ps^r%(E?>;;hF`D)+~@dLzF-hplPztznTw3&0<-@makX| z1(@F;3*p@h7cW|}WHC&^f@m3$vv|#twcqXi{;PF1?n{-=tk?P>@zyex14WPJZJQ>x zYkLHqTfSn0!p2RTckEQ%wOdU`S5JSRf#E?@vqR<-SZbO zn_F7j+SzYAI6b`|KKAtwd>R~@oSL4QyMuOr+%%0el3KFSiDr$ zuLTQ3;aIe0@sjWMezo>{o2Bk&)+uZKux$N-#9Kv=m#b*oPRM%%Hm%sOU8iTqq^xW6 zJ^SD5*t!3sp8e6WKl{Z&RxJXSWzC{B2mzU4XmqyU$}1ra`}CWsrPuRwKHXeq#EO9b z8F8N$%Hg{c@ZH(B|G8~SGT4S&8=dygZK4!<5P_+nf3_`lPb!yMs47qHeKVtZEuVU{ z#z2G2e`r7ZJi1^2+ksAMjXR%laVZz8zkcR9Aa|DjF0^Oj8wQJ%ZC6;@qTww?exZ-$ zjyT~OC99bAZ@EKcs-!#H)s!S6w4?cj*J>xf+TT+?Gq)#s`K{LDZ=DZf#qF_F9kvuH zI9?Fp>W_uDyS`=yNs&Dg^?@5(&uaLceZ#xuyz}X&%E*cU~_I3Y$m$ftMWoF;FWF#WR zW?BR7%gXF;)njkLqaSzl1-S-Kjs;b{KK#p)qZ=;1s_c6wDP#IMx{!E{k(qT$nQl_# zkQBLjsbDC?Gr)i3bZaKg)BW?*Rj*HNr1YVUe#0e%;)4_^vW=_%x?rn!wAJdBF|3KN zM-(k>OGZw|xHd`_?UEu{4#RBi!9rQN?pZoD%ePRH6Qn9E6!f^+?|WiY)qL@Ngl^c; zLhZhsxeR|^BtzhvC2%l$;71-ti~U=7JecUjhOG7Z%zEzkALke&?NX#V&TsIyNt}_x zoh{k@l-M4DyYb+uD%Sg79pvA<aM<3yn_R6(u0{@$&}Q`0PBpc{|Ja;pDMf75&c7<3^~*Ff-<@4Dr6EP$ z9nF>^=JzYoG-d)XmQ3mOCMO6frY!GVo9MKg_l+6X%k~n4X6w;+hvVKPtx!Yp-KnJp zFK28VcP*@zC(y^u>Er+Ljg6fkW+pslX2BBM)YY?jW?x+s{>q%KZd~KTcX<8oF{sNr za(=|tqE6%QzpXBlEQ;dvW+-KJoeDX?QcY>pOBmHPB83u$rd{t>P|Aee{u-_d5*-0L zly@%NtE6xLt?SL(N-Kx^+TTGb581FUuJC>pj#lSe+exk{a1)92)<}`>zS~n$6lQ5Rclb%KCn4VX#%gAlTim!$ z=9#@NXru9Arb=>m)$$&}XnS4t3ULO>P?TN`YCdf)wu-6ke~}Z;taY_y*WZI;abYo5 zGmq?_MVe6?E#tVRk@&75rz!_}H0>duA3;x-4{B#C4OWoFNAhl!R<_tle8&A-pSTM! zoJQE&%jT+2^DiII*FbxHVMsOF4hfqF6iK|3sil3bqcxpaLRR}-vad*Ce6QOp&C`tE zO5aUqU%G~C$ZRx{B9<3h8fumNrHHi@`T2&Qf8u!c;Bl5uxfF4(bDADLmQ;1>tWCax zugfQDffV_;$<>T0X=I+Ukz`fGZyXDsR!=e@m(i<&rHHR+pQ!rli=$FxkX4m$!Ho2h zwEM@U%FQ&f`E6(02?C1C!{_Ch_2q4=2A>$!PaAFu+0PL843qK;=Gu%JXPK{SeS_fF z&A0wxea9|`|Kk$Ynqv@TJ>qAEQlVpqpVf%8y9FtsBT{5`wPbWH$3?_;bUkoEF={I3 z_Oy|h8t$=s>QH*+$km9rA>|egvV`J_)xr#?rqTUovNL*i??3FbDlp2l>|*a3dy-Ai zU6>}ThC3n^u0wFRw)6(aOA2~&w`nB53Rj0zbQC!@h)WMk5YFafcXWVb~a&kTY z>Hxk^)QXWM2mNi2>v>{MO)TtI3aedEvkspdC_bb*ul-JREgJY^+BiB;ZCh}U_{)pD zHTESoPFo+Ftv|LTE;T_oXy&olgj|iYGCQ@vOrD|Hiywlx`?&4D`Et(7(;oTQMN(Cz1N7I(CR@KD^?Eofu3E0fzk25U*K z@2Tn_gnVRw7oF$A60*9&b@Ot%26Jx5hSOgce0_p2N|%3n^%-^JjpIiMoW$1SL!m~| zcWkH8f!_F0V)XdfEWV5M9hMAXU}&6<{nXEvEBW=q%ZhKiUvGWacrZY{l5x1RlvOHH zpzq9d+4|5WdyG|*o4_b$rJs0mx98E(Use6TjVgYZ#mu#$4N4J>wnmq_9G7lv+B&aP ze>1HU4Hdm*^;L(gF%P<8OB`twxw}5NT(m(spX?b;G)ismTRyGBsa~H>2zC8fH2zSE zSjX`7$#MoS0qw|Vjih^3H}^f4G<=VfJaiM-3|5$@I5$5z zbfx^Vs*?llB@vee4t0+dX`eS8rI?gh&%93Kaq;=6w|Q0N38qryN6%LYwrlJ4#gUJl z9A15LAM;sNQSH3-Cw>P*q_J-XB1B%(_Ydpqv4))cr*ycZtZv_mYPZ&b7I#T&%$89Ln-yGB`UsIS1Gp6kco9SPPeu(8SVi>yo85wY=d z_hpr_kbR%}95Q#jzB;8YC-9Y|^9qH$94XS2%qMr$*q1nyJEMQBa}IoQibt+0yqfcD z?XRP1=nu2&rdTN@wJs8oe$VeJ(jV6t?Vp zCsd{2s+HgQ#?l$xS5`TlXdc!)9d^GQFSKNc+}&v7!xqCO-&O2?5ug!0Bv%s2UMk;R zCPiHG>?EoZ8t>;}w+scC&=Ajy3cuRkY5hd0ENw*f!41dY1 z@MQyQ)G!lQTg-rvezMS0F6r2vi90WzdC%t3S~JMS_G?4MyKYyn2yVrD#yON%yvsCm zyTaaKNHaw%uXosL}UIL@_baziX*=8FDE%D}-j z>+*(@_OBq$&;-6Nd|rDR&ndg3F5N!Br?p6m9LXKHe6CF8LC*pI4~DT`rHx}!B(lMy zo)-84i)d}1_ddC=>jNyiFl`$)vD;BDr?T2Rq^LwqTUOFPclXNUiF0 zVYRYKYZ_kJ9F!u7!*o$}qh!g_0hgA#drrSkJT4zg@G5VcAkW(OJ&vm7W#!g1dw8kCVq2H$fy33fx*JktFTT5V zjS~cZK3YAUx2rzAr}bTD9Ka_xvY45xuZh+lpW$|)jS-na-@bH95Kx>_-}uuQ+P0Eb z!qgLHpTR4lwnV=k)TY^usa#f?exh0YxX(;d?Hc8{`4piFYnZ0wS2KRG&ndl#-w+?j zJ46=vGiK%MhfcdZjqZ~ofHrdqEh}0_ljUNLHA$A;($_;v2cW|G_ z_P|N z%}$i-8d@Lasyxq2YriMhB1jRlc)df)H&F3W+!0PD?x)61G(3x4 zWkowBMTT{_`f<-{N}BeJFfF&6kZ!mU+j=7&{4V%a@wz+A1bO(U5X>!|htud3SvAn* zYpql{A^95n(Jr&NR*^~L2&;Ioh6Z5=H{`j?uJhi}Yb9?urAhrtGp9EBrSN(5PW0mz zQt*pee5t_Jmlvahmync()HAB|_J3;S9y~uy;7Cr!9Ujh{7#9Mzi=|6K z?^mW1RV9?bM}g^)MCFay1(iqI^KUhUSV)m#G!p!NqZ<|Pm%$+lD5Rs=xEak~4X(0B z`S{3w)H`l?gsR_xKG&C=0d(zhA<-n3p$1tJ`}lAtKDd%LGOmxMv+o=}%hKMPzufmF z;2UpePpc$imzkVc+>|pE;deq{Gvr1STlnK$+F5UyRwrkg6u|It!wpsS48QiU=Lg>1 z2;F;SrP%yn-@A8G#1DN|_VRwYXNM$beHuMQ{vhu6yNn?z5@L@w0}^t76)aNHEKll` zI2`09M4S_LcVat|e)q@Mm-7k^r|7-;ZV_!XrcIy2mm;qY7e!Sv4&_v_B3d}%n*)>U z&jgLzSIKleeFSTZP$vp6us4~mH}9M*xKL+Sp2mMEMI59ES+~ioCy!BzP4jKQ^|TC$ zv9mhDI@OfdJ9mwdP2AE+QI*%81xAo=z5P`Brdwcx@e>5$%se&+QVzidj8}4D<@3G_ zedXAGBxF$4ODF zhzk|11{S{xE)klBB6j7kEqcD*#_ZT)7_!e=EYsxMMab>AUGv91KR=nEPVoJ>z-+zE zsL?;`%PV2x@qmBSoa*DA+NPVe88ujhJ8BE&_6Vv10o>$GTDnuleBSk4(8kmzn5sAW zFLP~C?@WLbA>rsSr@dm+er$a>I^AM@lgkNTU(=XXO&{0cb~$Xhp<*40R~PA(&KvMK zatSn|uwII=)-PpZj^WXbKbE=)Se!#-!&{{j%rdaY1YwUGbi{QRc;ya>T1?IwNr1UL z{$em2gIS8Dr6`Ce?kT^CX^6~xK@)L>?m?~t^!9zj_z^mx6BKScqXPOg;UIBS<~ zXU=Ao3fU==^t)ysTif>v^ebFKGqy}zW)9kNoQ=n>?^rvS=8sK_^s5P;{l25(t7iwy zO4CJZ{agq&Pi_JJj>HT4aA%96uM3wF$%yu+N9_I0EM%-s(6(fUsV1|Z<*OI?} zmo0u8#o>W3-DHn8v3h-#cr@_y?L{dY3w~JTl7KIofUrE9MoS^FdNvRsg#!;T8?pYO zv#Ri^T`i9$TpoH`$3wVyGVsmx^Q!$+-iNJew6R>iSjCa+G4-K!HY~HCJ#I)?as(?= z$tZ2n^DxjQ=#_$&XT-65`VAU?F{-4QfleI!dDrbYM0T97=V#lOIQ}NTls<0Pbo>W- z{m+z6uG6l(ewq5nf%+T^kC`=IA4%K>tj?z?31}ZL<3GOd6E#7eFhe4gOc}~3po}=# zWzb2*mgmdGjecp&5aXrJ#Z56Ss^gHoHp$1kd2i9Yb16YrEu&?|c!eN3LOm%{A60fz zQ_|*SC6s+|&1g1$jrY-j6v83?n!3gStH%k*qa7s#S!67oz1$ys>_QK?5>HhCuSYce zP;H-aFG(AOS}dLV!P=HQXQ_*d&fX`FqK5oz;f;v$n9BZ;XgkL1x`Ns>S*&r-)+kPq zo9nH*AT&Q_oKK#4(up~E5l_S=|gpo9{jkrJtH4J26&{PEF9poLc42#^oIT&GvTo=bO>l zKYwFmCL8$q*WHd&^Hl$*jhVbj%kzbCYPB%VD`xB`L#Nfo>Eo7dWe3WSRH%&^peDAc@Tz?So7zl7zZr6r0O2)f!{3edXSt%Hy(@Zbab%|XIErn|8Ym6I&x?i zIIrXWgZCzPD*sA1;=i5PyLJD?oGN{}Vwu~~i=_ggh)!G?ngSPMq<&OA-s@pA^u!rw zSN^EArn4V-kUb$oGlceXE6f#Jx>Q)GBoNH~Lht^%G?J@Fyns3Q*1nfp`~f=Hw*-VE1>YWlTZ##SJ`#pINb9y7D@{AobKF0P}GXL@UrzS3+VSM%AQ*1+1Fn8T1 z&sJu57z9PvdsgUdW@OX))D}0$$)>8(GWx9;Md3E=bJLs0T$=BVe~ftWwB>TRr}gpP z%obctXK(Cw$vE}~_?MA4+?Z*;!*J5g=q+{$XY=I4`U@2y|5$z~hbl?$pBBXl_Y@mG zQ>%DgN5A}XSL;tVbf>mW>u`n3!yO{mUn_ifSn|u%OEt|>gu|G$ z4R<4oBiW(C7gFS?6j{^&*n==QNT6elgU7-{@mQhtG&;3iELf_)?^wu^38DheIf>7F$rZD>JT)c6zENBphm z$rDCf1I*Oc^m8Y+-Fa0y>r}nxEO!Q|6h(7G;FegCt|8jH?4rgZw%Si!w+=kC`I?{7 z3{W&q46oLV>H5n8=2=&5+l%}pv|dTzP7OK1e*IwLqT%(-Rq<;KrXF2KJJRSv?g&?$ zcF*K-zAVo19lD*5yENP$3`BinhOrE^uiCZdJYccdyEcP&USdxQuh2L5dhW+YL`t&< z<=PY@aTo3~I7ya0tS-o(OxO;_rHT109{IYcP$($4Kpx$W)la>kW2#bQYT7BaT>&pe zloU%GKddr!2fU{=x1_me^VWLeQ*8NbDe@0UvI%q6uO7DHM_jEWBwlKw6!|BU{jQEm z#R?^-xKrKbD{l~Ot^FZQm$1d4LWc`Ywh|N2C063AHaVd{W zonn=UJJ7-Y9C8@l`l85oHvy8L#udtKCEU3*D+#z>P5e9bHv6oSNnMm}CmUN(Prmp7 z=VTnkdLM7*JILrLKHB_}3{}#Fp;}ID z9DSaamB-Q>#pjf#h~la)$IP;E7O3X(or!&p4s%IYj0ZjvS+asSOZEEbF-z`5PG98&2L;^NC`A@h{lc1?(8k+Y@M(t*BllM%x#n^Q-`^;7;GH_F?Htu!Q!Ls7);ajJB;6lz| zP7b(F?1~imevQiv2_}XuI(##AYyi6@Z_^lF^=cp~&^hzv8&R+Hz^-@M<6g7SycY6P!_0<(vCNCu@o0ME^l+oD zfrgvNYFZbs{vzL6TNH2#P%o)+$}EOBt5fDku;+D~P7RYkkt-*-;@=2;{SWiOMVWYK z_My*2SS8!$qjPi_KP@0p#1IGy4(&&0x@=GA;spsLvlTy+N-qQjMQT^YLDSbp+mZzo z$$8*3)K+`KoqGGJS-d*7UANK7_jdFpDN<|MXC)_oAaV%ga{=Y0qSblX7cUP4ZECzW zq`};Oy=J2%t?^lgL)(BjiWm}d?BrP?$KT1dQM{8={f_mPFf}bj6uFdpd#K`H&Cf^@ z6(pMF`PJHvEis+B;W7-yh#2F=t?9e)dsO1J^1Gp_+V3RsBkawL^bIC3+WsF&{-76- zP7!8pW%@VWrQAJWct0s-Xm_4%zqS4-tFkq(|BT{Hf;aui)e4bq%c&WnwrGDtywVUZ zZ!LL^Gx{cZa>K4-Ff-QhaAJ9TellcfLuMYX{v6udnwFiJ{ZMbU>sCGNQ}(6UPc~r} z`u)e%u{ErnIM#4M0IS(=%W$O+@Mv`@>vccc4myN$ z4Vp9Juj5TR*g-(5j=psD9M*-4Kpd!oZBh z`q1=e7qOUJ`t|%QW*_P;AkU84-}h;uvLa=+Q-~K&oa?`tI*zG&4~WcP(yaYyrNqp(6c9lF4k_}3ZVtqPTj7b2o=G(Ck1iYg zX`J}_cb8J(HGNi9YgM=32uWc#R)~pRnq)L8PN$1pC>FL2Z`AOvp8D7lf~pgShb?ZHZz3K8Ve4O=P6p;tJZy zQ>&(K=jZqU8}2afW=75HbVez)z_ASe6inc>b3NKjnEkz)Q~icLj>fO!j!Ti=l8GwT zFeKA7*QFV2>ur;)O-a|d{y?oYi>r^`qLWI|*|h6-hLRFvn!o*;ZPz-=>dPL>#2y#o zfxtm~z(bn@WFn6!fri!PE3^o>)d{fb@;y~C4KkC!x}5NbQiPo!dhF@%aRaG!>jz#1 zg2$dN46#%JbK=bUIs48BKy+erB~7Dqggnz;djFIztH?K6IbZeq%MF9DwS3u8{-+?0 zS>{XB&uV9SUyxJMpy75dC&L@`NQxMb7UTuEDmX`SyXKN##ue1v{jms`BFV^;s@(F7 zsR8lVLtz$!>&|1ZCXN7zo({XGj6K6R%~(g);2L<|$fOOsU7>zM0W9o}@;2SP`Gdnxutiexh`ioX#S@{eA`c9%6py`ABzW7T$%#~uxlO5=TaL#Q#GPRknnR{ebHlYvndpde?xYPYLO z+5=PNPmNfqob@#?vLJw40gfrl%?$FTVx*(0c@@p=J=hOwJlBe0P z-=IwcrS~Dq!OCe4*li845O$#1u`Z#C01{AKd^A5tz|9q;o)o2ZkM@w=2SkWGtM4!kBsuoaen~p2m#loEzWHepjCCoL0||@GWrbH@1`_Orr*1Iuc=BAqn`v zYi5dq ztCCb;Bl;oW7&ig5M0Vnv$pP=XjOg3)x>yugGNDPHRNxb=+Fr zXjsM5`7k=ye%IDzaswg6WyaPqvm_KRdNhps^n2W>X9-qhr$(QDnP5Bal&ZHyyFZ3k z+I!ymzU01VE4#z0sJ_!Ykmu&Zqo;tSY%9+zG6yXou0=an`hBA2&zM$Eqs76olm<7E zYnj;Eh_(9DB+Aau4eHT+23N`u&?SACyI$>OfbM@gyiTCxq+B&h2jqe#wSgTrF zt-&FVh6fbtj*C+YNpZx*Pa`u08QZ0Z9pp9|RFuvBTFvdH%ftQm4rXi}Sa<7jQ0}ms zk1W9}nCf4>Mz^r|5DGx2@V+zE-<#Q+Fn2v>h&IPRKf;CD8kzPE6ugrcKZr!8aaJvN?v*hJ2 zlHw;*&U49Nlo_zzDyfZ7OuX5tI=;On_)^vAQoekRa*g7eH!p9jXt~iekV^0+%4q5E zhYhalWg(>=w6Nf|tE#n#b{*KzOPRHRYVn4<+5{ z&W?t-#f7 zGH2Ksf5bM71`IJ6I6!$c^lC?%&1gV+nC?<(1`W zbuSYnr`n$Trd5|f{wubM;*3&jh_ey26g*GfSO4WVF3=$nT?~W#uW-9;wSwdtS`*epUDXa=5j@S>bPlIokWQ+Gfog! zI=aqw!8=?S94B*0rNi!+W^7k;ZyC5OF)4UkP+8zeS*TvS+o?2qy8UfdX*t#!XAF=+ zH@5el?siERD^@p*HCW9o6jzh*S?1Kt7#?wr;9+YCQ#Oz6!x%8h;yk|S<}O21d+MNN-Vm!;oFE5Lz_?ev64sH!VZt1UnM! z&kE_|=mY=0xhk_9Rq-=sL~DGlzQHuw&Q38(a(U^vzbE}EJw@>YuC~Fow6gVQ=omRa zEZ7YP#&?tESE+Cr9mq7DdRY<4h^^9I;o9gQPikeg)n#G4q8+UA$d-OThyJFpGV9kl zU=!T#Cj6xmwo;|;uUZ{X!vcJbf`j?2MQ?hqc48+6nP*|^$lJ8+_NqAiI+tu=MLM=N z->SJv}(5aQJJqW@p?px8;`B`FxdbDki1XqHIut)HYb@@5G!U z?Ah4{d75_|4TmD^%OH7QYpiy;jMv@vxW3R?Rs1w0qMq(l3Z(S5mJ?6qRKj~zZVj#R zi=assUrcvZ5FX(|q)&BtKk3JNA!?jEBrePw{G;m94OE3DB2wsdtkfy}V6ts`uUzL{?0M=gwC|_DNwo2ZV}6N{6EkM4kG&-w zIq5{NxQhDY{mX}%hX7Ro^zvICQaHmEEXR0{3TNmKWq5CtQqQ{vU7(NqHwrID-rzbX zc3b7VdxdV!=(H=fQky#h@DAS&*G(jnTV<%cq zTrGGwZwlp;2{&LPnYX~^2%%ZMF+r}Om3@#n`iO7*wa9I9hZMOILM#U8cVAV4N(`G6 zgp^NLiCg@pY8is?!tXFn2PM~xmV*`mu8tcX4Kda=+M8Lg6l+wt54|TM39W-0)lZix zYhQ40oZSDGXRX{~eUV=(OfAG?$&OrJX}wCnpBqUMNqQYPM}L;u?gVjpdzxv{5dymt zt!wab=^8A=k|mjW^^hI`zv1R3*Nlx|jX#d_W%nWkGbj7xNhK<}6;Xrh@((w*14ZmXI*m4ltBs1v>kfFsl!V z8_ga)**r#lK`Nh0c&m#ai#tB5TOmv%UsT-kVoGe;`ziMt>uVhA(_P3O=2ntsInl2m z{f}z+Hml6e%vVNT9hTJc^u!0b#f6 z4^C<%;Kdd(O|&It<5Hxr69Y&$$i@g#WVAQ7_tQyVA}6DIPXt|D(h?l&ce&^tfYR0Y zS-kuSzf|tTkCN1(Ml6HXlwB|-dK{y75w@TBTL7n0=+`X&pjmWi>nw3s>VAeWzSf@A z3-J1TrS|HB*czG=EH!O!85a&uNSckh?9b3paYm*|C25~(@xH0eOZe57Z z0_K}{pK7*W#7vCV<<%;HCOY6@2ebR~5q$p3?Mf%h51KOolI)Sd22j`oN02<-CA@1P ze0NDXX#hLt=0NOs5i$=#hI5+JGBhcd|GYI0>m!7uF-G}>ne|FHJkUF>@{BfRpIO0K zJ&Y@>N^Eg5^@D8`Bxf&+)c8Vc-`TK>yr0~FXk3SfWY6ZKi!d$?Ujh@P&1aU$*JNJN zAdYmo;=0+RfgB@j!w1)=jEMX-Z4WIF7;g>&9EJKHPKzDK$sqOH7mQoEWcm%7TYq! zo$bCh_+-PQ10i1@fDJYRpRA_7PV~)wAW;1wwEpPtY=swW0D8DA?_SYFLx~~&dN>xl z0qyH&Hv->PdH6}lt|x3mPe)p`+?F^lAaU{eBM;l}I*RJV@e!;PIf)_ro-=uF=M%nt z9AWhkKPFUMCc*`AKJxW}7B>gi*NzwT@W?ZMr*oE%5yy|7#c2U90O&kb?7H3w2m7m= z#JYKcVt*My?owsz0#xec&O|#ah)7u(QMtyyMlM#fD(^Pyxj~)oM?C?X(Cp26x~#CB zV41#AhLT2c6v}u=QrVCV6SB^N)w8`#ibTWQ;O>dYgsC->wyk&cZbPD0D5E5*Kl)aM zXKW|%M*UqzNa%E2qGL={8?MAmQc+gvW6SsKg&w_p(u+LK#%VQeMuaDYO7^cK7^ImJ^6KCu*D`hhpk(gR0 z@YUp-Xo_+~oEF_SJhd z1EZDRHU^7b8A^WB!x}>L!XTjOG}@2BQbZ`Mm?H4T9$fGR-i)<~aIe06ptPM&m{gxO z*)q6xQi|a9n61&trf9cI)B+feu}%IT?c4RG$jSm*R6e1X{Ue2rxtTN+qIcW5^d5kK zq+Wu86)d%jNK#}+D^at*H1p~5UB5cOYP4)OtNEPjeehF18wo3^JlS5vvN@~C*LdM< zoBA#Kk*0O9N|zL6Mu%}?+^~Co`}mCM!!|AI=(AX-j%5!x8(XPliF^Ym4HP00jT%Xv=KoQ~C?n8w4t zt9^tvv0gJYmT}3XEo3Ry#iq)Z4))BdofCd|F;N$%fr53nelkqJk{zC|+4W1Ll6F5W zR#;l*KDqzB5o_X#B-PnC(&o{*$n-)JP9#~tlP#Wihbh(S!+gk9l^f~v%H6ToB2yll zJV*f7$6(AFxt$x_6xu$t1jk!@H+~NpX!X@>f9whvQ@Y;_<2+P7=(ck11^C=? zn(p{am`U4!6uB+Q8W<@f%#4y=*=5FLgWCq41?^yc*j^D6EO3`mQGk>fb3hIkvP8j! z=SKpJ#@E4y2=XX-;)fvut5j0^itjMXt-azbBJnmjcjyw9ajbxZ9v|BVLEfU2f!$!e zzCl(x4je|DhUcVWB6jiSkiOC&VE}t%8~9_{j;Gg#Ym~y$ZJSKC&AAPT^pD52(-eK# z3QE2rk~pG+{Rz8{_EfYr*5r54V<$1I8As^NnvlDmgHO?HsS=C@piMUc^U!9T zBx@!vRQFU{nKh5zpW*853jTI~V+Lm!9MoYE3?VD$*Sd}GW(vy&Su<U9hm zLqjG!x^Hn4cAvYY_dy5n@)4aPeMpOH9L!6m)H?*pF5JN!D5u<=9}4>qaIneOR5rPJ6 z%>tt$`;$&ZdG@g8EXCo9wBu<}t^2Y6*zhIQO*`;S#oH zem#+ey{ecNCkTc4nNGxJ$C`S}C$jNw{<#4vDPU zQsiXzZ0urqOQA^NH#th?3#F&%vU-3^BHcovaL1b{gr7y6v#(hjk99@G^;XICs{71Y zW_J2*PECYOzc&ZFP5FdJ)1&@&c9Z%)7WZD!BV5T?Q^HFBEh1rjlu4Xb`qZ|r?yw#o zViR!21#wTGkUb>ab4DtA?9i5c53cz{x6+a!`a@sF*ERKW;Ph{^BDKN_~9&@M-b(wmno}A6gEzGRFn6!0|V7SWT=( zjz0wY#-T}Lk;wo3uiS|YOP?%B;RxEn^`1P_G}0GV7`K;P=F& z(4qQNa>$5<8wR-q$K`6pn|$f zO0$F9BYRG=dN#Msu3TxnXmlMAU6C}VqundN$~p!>!gETb*g>~d%|@21Q*(mgsTEgu z-GU4%VWx1F$Kvrr-N3&ur#&IfozLvB?8#SonT{FHI{TC7QX4T;pjcx%twFO8rY0uzG;jL{SPNt9b(IV2=gZiC(F)D%o+ZWAn7r4lq5PW z{>7a&Sy6Wh|9~~&JRlSScr%>N30t0`ur|~rDxCWngUt$ROh20Fg3T!BtpO1n&5u@3 z?34t%6-i#dM#ZKg9fIs)g zND){WQwzHZn*n2%%c4l3zf;R_jdx7ls|mR|(<)0qES7|l%dFW^*+x=y?qHQu8veTE zdZ)yk!)o^L-XUAaC($H{@*ZTA+KEzJUQDW3#_eYHUF4A&16}C*9ZDzcy3#}jXN^dr zrM7h`JEJ;SgKSB(pIJ}7mE;s-;t~gCH?W1)5u?28y;kX6_*Zj@eP(jPgkq<*-N6ZK z;Sb(UnBdU&*7?*`rbi6a`1|&gS9Kbv=JZEdOk9R-BH~sB!>?h#>s-#fEjBW3+jYk; z@Y>javuG!AayWw_d{YroG>;~4%Foq6vXBV+RNlt=d*2;-tb+$g@XjB$s4TtOR z)b%?4Lp^QI(#UnsgJJF`*d*I5PB39(HF@-MR(ZOaNGE3dWH5<5xmRS)LC-)Wp3)bW z!9vFse#KqJM3UcBy*@9Y18WKSh;}v#cWh{u{Vg8ucjZ*-QX3IL5{=g9L+sk@sPV3A z*f%oQMT+Dye?jko?k8NAA|D2@Xu^Q-rpQg=|AemR0br-hD&g8?{JkIuA?L`DX#8=pZ- zI08kp2-c5A&L2*OV0tb5wA4gdpp+tk4yLvyl2X>Bq(8nV+;f8aG$*D*azg~WYR{gRY<`sQ z`OK+1Jvvj0oC-_sX=m)|Hi99i%?U(!F&Hge?_7CU@Vd@vl3LWJK^0rd+z45pJVbzP zE`FiH?o3fVxXZbp!JDv!aV?$U8zTwY_-8C{Vr;ijDq+h>{@G%gPhnt@0LB^0SrZbh zjOx=HuO4khN_{eY0ESDJK0|`aNUNP1BRe&Jc+^@F8+9X+uQW*h)W%fmxYZPe2W?RV zcAyMA0qMqf2e#G@?$Ir;Q3|(#%`8~=e1He`q0?!A@+RaF3d*uJ{t>I!QGlEAlUuJMMA=h;3mpiRV{3CR1P2q;xj|s(aV}=N@ z&2P>Om81ZkKfw9$yRiB$xswZf3C;u=+tLTB!DaM1->Ln`fM6&^HracK^gDxDbE$$V z&~QmMcHA-f#^^2BSs$9lxDrzKaH6UdU2CG@OL9aZw7`5@6&4d=1oW6gnBqJGU^SN| zBytXl4je~IWEQ!MC5#hz^hfI(-X#xHAUX1PnlV<7Bd}HIipz* zMf$veMEU!WI1E_9p9=!w6gjkIOzQDsfJ*DA>CBC0JT`%S>S(L86QmWmgIVYkaKjoA zw0IUIkV+7bTk@&Vg_JS+o(LZp;`NF*XiJ48aYY+`l%R^O0Y(W@%wAafaYpMvnS<4Sx=Or~0ic@^A3GLMC1T9+?gck)4(q^2EmZ*a^8exP%>$v_-@kF4 z7L^kfQcfs^5Yu8QVOs1cNb$49(mHPC)# z(K{w4ze0vGxZ?4Wb{eE}&7+ABNbnlEkfBa~3=t{TFh90uXGU_GQ;66CuGk&P2U}f` z9TS$vD>Ey7L!;a-%Il;K(K{RGK)As~7A8D&C%%-F94QDnv=}~R(_kKt-U>1}k6opd z7w+=lCPPgI+hW_LxK$^DIh>2CSY;4SXuyp3TZc-}m!?O6)YSlu6_{+*(s(GSoQzCL zW|5cEW3qWt{A%hz2YEuaUeO2AN_n+j!^U~ztaL~G>@3RIQqwG;H{e1foiEd}ugM0SB z1efj#lcLU;g)5>kEasq{E#YWQ*wU)>7$Q_efjmY4dB8f)15|EVf!H|y2Js;TPNYx8NIBkPR7w&jWO^`3HMnkm7r$LUJkJ<^19;9mt1 zj4>ejBC;ok^m#l)hvy;U7r1O2c5u0y=}?xn8g>E%ZFrD*4h`_X@#*bq*)$5$Gr{mF z<5-f}5YI;d4IL;yMNuPjnNsgrtypBV7|Dr{(#DK3W&s+YFe`slB#O4x20mYYK4K@k zg|l{~j?8Gub6HtJ11I>Fy22(*{?w}w-`+DCyK|ZF0pE=gne?13P4~#h8O9Y4>$2{aNzmJ#%si8SPA|thJ>pd7PEyUU(El;(Pc5f3W4z=U?`or zhIt^`1+{|Ka)M+B`r8PN=^xvMW@~e+U3z=LsDS+sv(61CSrXeAw&UIYuC;-@!Xc;$ z_ORmVtVph1x?LrH&NKI8#DKqihce*r2woi}IYmdT2s9((ew=_oZu0 z;bc3}zu!NgrC%&w17ai!6U<3lk@~Ju4r&VBima$aG661_Jt&I7vv}hC>pBKt*;?99 z1QSQ^jZ%Hz%qpcypvPomqGNLWFqdY@bs~N-+I6i>c@vB=x!DO}F3)kdRAPuhM@gk0 z0wUp}OfpvAm}}yXG*f&RO&--d>W`OpRw)GY9?4MeXx#DQzvCDuvkEGCl%G^4$%byV z)mQcsdSMZx(6gLiL#tVfO>Yekx{mCR4&r#i=~P-oT^{-BC9 zD1E^7I&;BbVe;IO90*=0(Tg!;-%_~^`ci#;(TX#;u241MCAnEu3dai6p5sL;VcI|j zb6ftwUr3V?VQ!P_N~XURj)b;F5JmjH|Gv$M^XJf3Hqh7wq{g zxlzU_)vGAG7V|x$fh~dW+6oA0R41{48-tKxKMB0rmvGZleSPmX-pd*h4wh-*s><~t zek*UV0fhkTIjj`5wDiJCjm+^67Vab@L*<@EM!4V9R(aCipf02e+XN85&RxnGd-Ah zM~sydCi_==KX95L1?^y68ebD&bz+bm^#qScXCI%bFqd>+)88O zzcwG^557oM{Bvm>M_pNiK|wymEiH9wQAZhzz;cY;kDzxDgF)m6Hz*6;E?y}8@tkDS za0(bartKt@!IsD^07%t;%5i@kJ8o&-JQq66{yEaFI)-jDunEVR%z<+r-T}r!(`=tQ zhNHd@5n+GIbMPGhkabp<&;2i%}vLq39Np)Nk6N3-bZ04R!Ji zPf27vKzGIZ+~UhO)n~K7bHXn9qrfi{x3ad|BbEg#gQH2JZTo8f=s{Iw0I1UAD?bTl zGTjfe5?OSMZmIQs4DneGWLbeKDZeNZGx^;rQ!(@B_U90K@S6%>#SkVv+^N^2^I>4| zndAjLfB0!D-WE#lAr|78kBBWwX=*O9_QDVo1tNAay|NZ8wXJUkc%3Ov$I)-fDf1InKEqI3bAuTLMbbe;P)D&hz=&;J3@>7m zN~}}{Z02$^`TA(VmAGrksC53hD?Q<0in|%q8@3cMxgK#6ONaf8hS3XDU=;?K=sAXf z4Qi=x$k=v}Wb417=GzrPRmH_wMY1FrVkm(+3_5v~Gd&o5RjWgwV@mVPUy<_$9*A27 zq-OJp;KH6?Lg&Y>VrIwo(_#N|1Y`ZLAAf<_{E?_g$*tSn&Ts!6Vdf$^yn^z5U+>@l zI;gWfyW{6fLncrH`>EZ4VtDC|@N&F-qhZRHtGaXp)%#w!R%UWHOW@+}m z$(%+Vn&3MjxsIq9VmD?PWjC)YJ~P3w0n$e&v2KZ-@CY(R$ecH!9a5jqW;}>6&XOVj zp;9o5l6U;WKwyxrHk_dVD|}J1Gj8~ws8uwl9#_jBR21j1WBQk`u`O%ZPXrtlJEHKL z6V~cyBFMz4m%btsRJOf!JOlY4b9z|Me90M*7DpT8x^p%aE1`O3!;Q`WS^OxOJOfq- zxHqtqfuXuDgHkIQ(}#&)M_$CXMfArwn$pnynEm>zIfijv)F6K}+mb@rb_i<~l{@x| zYcls@cW3Ok9ILz-X#P=f!|_HeC6{-1xk8mZDaU9DW|0{%LrtV+(v_u-jNT_n=?Yo7 zoUS-Fd}SF1KoSnyNk4f^e1{XeR9V9mqQ5kD`acj9-C;cetECxbQ8Lq)3zVI4x29ZQ z*DoO-*Y8%rp@R`%&6yZ2U+JujG?&~KRsfm96z1*WyLQJElrpQ#Nwp+wIvxE1r}9gP zBfKQeO9$TzwnPBP4B)lHTI|jx+?n*B^$>oF2-{Vc(W(lUjp^t?Wqvj!aa2UeaeOqN zK0BNn1h7jvP(!Y`2LtsJ5Cxcm&9qu!Uw_)B8#KF{YbB5k#uQ;DAxv0sg+cx%U}=X+@PurYAe?|3b?}jaHUTbas8dF zI5t!v4@^vUYF10hb-_fm%Kp8eWB;oGt-_{1TRzXF1p! zjQrEDle&oiY@l5YtPpnz#|+VIh|4K4nM@38%q2ta19~g+-U^1eE(g*QtMmE4geIvA zOpj+j$r5Aa*<)s{p<Y-*p5b6@dc^CPP)PklibC3FvXVYpXYB|ddJYc_e zpefugD$R;TvU%n8a=BzFZ;7um4R`#Zg2C4>s%b_87;J-OK|Yz@fZqhMG$#D{2w!my zKEXK+P6s1j9woP(tB%k`>ZGW24@a&^$OM9(gh8BJ1S_lh7Rr1hsg;Lh(TO$D_}Rm= zVL-Ix=Sq%?4af;a%prBgTny*{Wjoy8E}PM<7SwE;XeBrmnJ|b-k&&rqw1IhYY_sAc z=pF&K@Pye15MQGydvP|Poo0v5k56LeqOZF?icx}Csy8+AyZ<6 z!%O_4v`-hv{K@9Lob(DeNW_iL8Xkmu4`lR!?LW=%DguY~U=~dmBpiNgKph3P4gNJR zthgY}=#Fk`Hs@DS< zqd&Yc1H)7^?btYLE}PnXtlz^!NWxichmn=^UxV(fD;6{*#y|CaM<^H}eC)xj z7Ey`in1k~U%k9;2ASk-n;Fbv)b+m;9AJ7`3`_GYr^H(+lxAu9#6%3gR=3#XHZ_ae(DhI{ywv#pf4#h(NGQu_Q8n1e&Qy>Nr)N7~7aZ}vO;))ib-X%hzUXUH_v4XAb z0pyCCg#$YU_5&|_iMr5N!P7P@&1f>OPN}CG;r+DP#>wzGxx;{$G_UkOwu||B`hv6% z{ai;0^)TG4R~*NvzhA_UypZvE)*&~qJN&6z1Ede}C6Eoo`|FWHzd5c zSa>A33zX)di&qV-mks&^{{Y>tb8;U zFoNj2#ZViJ6$>RswZSg7luim5=bFCnC=* zbr6mY(|z1+`HC1XNRIN1;kG#u#QysuJP+L>)vX++R%ZpsRBkQYCV{mRgz2O4pnZu_ zvoS?S4T4`rfQ`#pO)jOPx()WWXZHz z14KF;(=@Bph3-GaN{E;W0Ir>v*9m1-9qljJ{$+O-txB*Sb}uIwbMpm&Iau?~U!aO- zkqBLC#*PMZwf((jjpzgKbgFw^j-r8db)f@@qrlSW?aU0Pdd#fL9I#ZU&s(-n4biB@ zQ)>KXzY&nJ04_t?da>BZEU=c0Rs04)9(>xoN;+Ogv9L8ydI#WA<0CjX8R2M5(wRJ(P;~_lOwif~<~t zZj%oY`Mi|h-4g?O91uZ=S}hxIyc5}Q8L^YF)xmrO?GWpuKI2`q3W}#I$o$w^{kn*OwJijoVeem%#Sl^-5ALP1X5l{*G5*2W%peXMqQfH(^ zTt>;%;&UBUCblxP5%eW)Wh|dg6sYIxtf2x`_d7zf0^rgVDSF?} zSC{E$7jJ3B^ss_#@sIL~0+(t=3Qquqz=tnE%?vWw3^GQgtv$XK2H^T(v*g5NjK4w` zYoeA@dH4@m0-;6Irqi7;yT=?J@a{=@;bIepjd{rukQW^l6l=jOLIGxbi>oX6jY*LI zU{5Na(}BVHCA6eqHS8LbFv)=Sebj|{$N_UTEkR1cLKP!E0<}K@v*0^%YEOW&8tDaf zP@#}+sC9#bV?*z*Z=*PfY7d16HYada^F5HEIQ}1YTfYbLo62z?@P2df0=LqRy%U*} zh}Y9zDn=TrwlU@>j!WMMDmiy5orSDfHrkihSpupWSZjFhqXKPh&U7@mNJ@ViH2;9x zF3>y%h0r8*3>1uf2kVdbx8-}}r?qyWqhvFOR~UjlFUuI=XZhimP6Z4x4;{lV8)=$n zCYm=V@ZBM7qcZ7F+w^1n?5a~h)!!e(feev!iXfi-kcU#@$50XQ1nmiuaZoP9y0|E( z&9Aw5G|`GOSv_k7Z7D(ljF*Fo4iaHYi$qWTTweV76wBXzW2688aMXehee`GT@ek^^ z(*80#!iF5-@5FYebubdlLY0hxglTJ?7%OaQAN07A8_OU(BF3_0AoJ|Y<85PjBfYVaBCBAn$^^yaagDQt}HbhG!vzTS(#>G^edDD7WeXLNdrsP7Rbm%OOXfL zJUaaRu^4lniYGsLt-xu!=@Fsxu1=z;rPfG&mVJHZaNP!uVM7<_xLA}iooZfl*>x@n z4Q*2Js~|dSQv-siYTn}hknX{u9$)H(IpiCY-{x2pz$AfG@cFRiVczMRe4Jhjq-OAU zvYXY4E(Xi0(8DZ-} zM>oLd!$qT4w{`Njw@&AP4Be~vYp9%np2rCGbKk|QtdCJYqx_I%r-~RFW8z1tV3oVH z6DQ>dB%iA%s;%5J&lx{6T0!W7i!l!~o zp7=tzjqj$75{>;W+(r4rfs>UowtS~i^aQ^hlHmA7$**_M8!xY50KQgox+zbn$A0gO`!0K0cU^R=g|>{vAo!#l#u&nSU&R_( zqW2N@XLys&2}sH*{bm8-{j$}w1H(BvG-=Tn2}|{y+_<{;a5qn$2H!^A*_rDoChKrw zl+`Ki|6|^NQO!dc85-b8@f1Z|2EA@rBI3)>O`+B=9|~RpgZqKZ06hmYcTXjqrAdAC za#{6LW-MexsuErR`2j_Ul{C7~$Ef~t#w?FT=Beb%X9-Hk+jOA~DX#%w z!u`}Sr0J;=XWcKMK2zfQTz((<%uGkhkM$v#Lj(1U>W6%O{m2rFu{iHx9jsT(pWtYK zQl<)NipuB)BM7a!AaM-ToiR@jX`z5VXQyK1KNUu~Vs{p(E0L`~LEEdltpoTAK}uS- z1L}3a{4W~?Af*eHnK9ZX3H%cbYB{_{#;h!qkpF5^o5IvrxH-h`ZRdUm5bmYS17^#?E7$!b^vn-Y;p(YR!h&2x7yQ>%$W*bLxety4i_9uOG*@ zbN&07=#O8KR#+K;!4~FE(9UBnmVWg58Re_NQ0cVfe|vL-rwUf|P`6>*xvJJFLG^Sr z9vH+x{zPRyiX?Ds8#!--K#dK#4W==_#)quirnacWZ%XGY&VrMp@8VbrMR_Fi?s!LA zOF?0_AFrAa+fVQ0d(^b~d-%ubXW%zSM@S&sO75Jm`ijsHuN6K51X9ZgWd3_aTZg+j zHuX?Al?HpO2)&RA-CVbpi%Gh;b^E#Gl=3%lFi#+Q69>e(v6cM(i}UtZF22RiP~8iu zEo20eI(Blihd2T0&;w_gIsvFQ8O^LdArZDu)9Ubt3K%OtZ(JZ1@1*ATsgflsI^_d~Tsf$ZRUfxbN&6 zWXyvKn#z{7&17~0hHp;nf5V9CzfCQPOBMUg-rx(GY9Qjlr1O$dPslOP`=YS9{xZ$Y zQ^eueiI4D=ED$vSI1eGMSa|)F9)J{kfXvCJ9Z<}vwi*U2lPpLf5L|}1&8Cf|DSW5S zQ!z5oXu^<}n^VWq6XARKBdy5T1k>J(143x!@B#kEcnlLJCKHV6@OT+v@~-L7oAM~s zVUG4E7#~;>#GHLS*Ga0tyTM%F5yr8e*DWDu$1fg)dHEp0gim|dokjzBM2{;ryoAsRCKQxVm@yPoD z`Mm)NDSxfCT3)U;S7EC$6xo?WlrP5+kWk3LaIp(TpC`&kdL>F4|IPPEK+KX3($pAO z8H2qZ9F_|dJqs8^L?CJ@=Q#3oAPVTPzbk#;BOC+kJl#o&2r*Ck%BH#zxA7eU{rtD1N6aVs@WXX=#_VR#R?Y$>HAgF%Wv4k zKm!U$zStr@Zf-Go9f^kqK7RX+xFA2pPqi)FG`Mz@q`_ETdBbCNphqUa66$syV?{x; zHYTYdAvZy8g5Ttr%dybue02Fw2+?;;wwV*IVugnv=b#+ zUDCI`-K(r6Q?xq22g!DUtwHhHcsc8>|MD$hg4LZM1qgZ=V4gZrp7Rr+nX;%Nf^d|l z+6WkgrN3IRZD{NZSyp!z$^&#IS#JP8Vp!NIf~bj`X!d6)>W7WEA>ZZg3m_8SP|@Po*l6%XAhHPw7H(bD7nh^$m~nLuzPi3iq< z2t!Y1t6lNf*AcLHd3BD*vjZQ)`+J`?oM8E7Vckzp(F50xr**KyQY9F(kS{%-V19K* z_@@6Lza8k@0}-;ue2Y%|^@hhjPM*^>I4y2i>>EOIp9)?5r{}2;ha3V+cSSsf=`KnBpuw_C15@7ufxUF0J-~&2vYZ zEitxj{uB~wlCL!np&UoA3R+E3nd3wx8xkS~7(p!;s??93=rtbc!!?aYZ41F^^TnwQ zUM4`R&W+VxtBRqMv%&aW-TL1c6NMH8(bqKHl35-TI-8EvG!rjY#cPk91JvQ~0pUNDwMYT(O@5K>{wk zP1lwflVD!TZw6Hh=?jghYJ3T(Pm!K3aKNB{C5=Y5<;6FGn}HsWg@MVIw#STgRjFlZDwpy_YT|#25!A@xKk&f>cpz3W~YF4PkuC zA)E-5zpo|*VeZYCA9@&$2Hm9=ga}i=MTW&l6PXUm>S3HWVJ5mc)i2tjDaECu?Op7? z`;gX;ms<%0iw&0|xWrjha$+g{37IWx#l(oxHjJ)3#U5HqrAh!wYI% zU(RYh5;(;5b$$nUT(-|NlRD82PQp=~wQ0*?HEJRi=pGdOzUXr?|2p{;E8;TjzXQ{SN%O-wocd8 z7(`)5zL5?X#gOV0QC zH-gxyd#?Cmr8`wt{<69KV_uoO=q2?0q9CQ;IL?yV-lk9neHBoXD8W~ma_j@KVfT^u z*4f|tu2t-xRu9J818-WKU?b@F^oceDD`x6L#dH0Q67Mnv~1U zs?|1KyJ@JlduEClc3!_K09rtsO8p_no z7_=`rQ_3?qA71gBj{L{dJVB={Q>&5{g@E`6l(?~eH{z!g4|Q{lo6~@rCp@j{!G;5N`|dY6uuZaKaQVO<0$d8 zVeJ^c?+k@PRC#}Qd7bD%uVicfJ8=MnR%fyVUiZic%U2e1E7*C(iJONthf*M>@ zkp8ouh0Yqis!eHnMyubAx%0_SmrtvyGfCW|Lpr9nzeIWh`PfSCS=671I&9(Sj3me?iDM@FO(vtu#5`SY_hg2l_wen~JUx z&Yit>0zKL{oJ|j2Jajl0P6SvsQ}>j0d;)MiCx)=J;EVURytoqgZ@PFvgEfh-X){P3 z;5m;ur7^tbmk=LvGAnvTuL{3FPM>h*8X8m=S_S*YmQ}=NW?x}UG?(Fng-1M6eu_{_ zmOXigYa~;ZxM=4`TwN;Ewwd# zkMUd);$7^&Q>$mgK~{jz7wuSy5o3B=byBg}@Q)tu@ivq{SI1wW#QjtwDXm|Dp~EVtkG41=|c)yK%V8IK&3q%Pd4U|l}`Nj^#C}S z9aGm@ZZ42jmk_hIiw>4s=K3)j^Q^s#g zj?WB+4yBqb%<|Iwls_^wUaUqT9rE_wJHslJyU!S%>4^n@`NA`=?#f4ru=@tzd}}VB z16V|@UMP|Zfd+59{za0f5$ah-7`=wXPxH@iUsGBxB{#xTC)V+v-1DSmF1?v=ZV40^ zS8|3@{FZ0SidrWPJ6TCVbRuIfzPm<>!tq=|%%tDg5lZv84v_qTZrz!&AVMC zplL>_W12*$Dt|SPEoxYqKO zL{JhIOV&3_E#bj3f_@pA0BOhWt>V+#E-ZH!*7@;n5Mr*^4?{nXD3`&|u*1vQ=JQfD zPaNbk=J{KBT7C(`X_kj;vkZjk)zWUSN*;+nYI9mX=34%GUQ=uw`^rUoBnR1Ytd0k=W01&y$_|5 zgH8rsEHJcp`Hvx@u6JBOm^t{=33C10EXr>{9I-g~@eJ;!D&JcT1%gpASO zkeN-D{to6*I5FSW4WUyO;s^NW%L{C~ZJ%cyT+%P*1A+Yt0`OHA$q&$Fo&1}F+|d{M zWbwejLF8B0ukXKp2yHeqGBtuT4+Teo!r70%e*SUne?6x5Kj+*F{lBAa&wIf!@p|&p zl~nm%zHrK|qo(Bn%gd*{F8Z28Uh%SxJZF0U$0vvw3@&D6twYq{MlHsu3UE%(h z0)lnm|NiGJ*|4xM^{~V0fmeJ`2ag^-iaKxz1t)~VC)9!?0z%G(s|5t_k=Oryf&V(e z_dgfG zA470d^zY|^!+` z=oV2CkWBkx_qU)|8I>jOb<=pXp^J_GI=pi)xHN3lr zAF3nxn^y{Bk=SYl*LjW!UTLfPyo7#o6a(+d!@FZYTLjk*gg0)$6~@AR;13=6gyOex zMCbC6DMUwWbzg?3!~5iN(|5wv5q@_M$5_qh@0E0K&=lWzPU2xs-Cw?My|bQY71})a z&gqUnqdazvo}Ds1+n40n_qh1%fTmJL(-+@uqf;aC<&xhQ3q``}P+84iZ7sg!;YtoL zEwuM8=PkCT|WmGv}? zXt%LgT3N>T^)8vQ#v3wMVpKwIXSE-CX6vw}`0o?Ml>EZ=-9|0q7TZ=rlt+g#{oyrbXA25@?%W2Jyo>(NS-QzYdqQ5*1KBMh& zhZsjv*nK2Bbf3nerb%cG9ku58Cn_cJ8#viDAcwpBOXi z$WiyLIsNUr@|bsy51F#}rRP+u$ocp8YHze=oJqQ#>KsQxr`W#zE`v6Ef?1tJHA}rP z02G03;e`>l-RuG+>g*m)p;Prd2*$sJju5{ULpvPeyNl3-1vM z;8olAoY)7ILEQ`4fn{SxjQRL=#(}NZVOT6b9OC&k4F*1`A*|3ugRKwdHy>!VwNyA7 zX_r9HwYDi3&f1zIOfenaX?N?4=R~u?-^b+4jBlQps5APOKN@`I@Y+lE`7+T}VFU>o z-{1z9bLUU1^z4$9u#gBTIDHwrLr6Z`ZX{RL=);J_?3O>W3XBe^*h^3kZvU9=EBu&7 zR6kO$^8VDD3x5vhYl}FfzuJ?~jm=7|?FZ(*iCtqpT@KGcYI&#in z4Nlq0(?$v0j7P#|5A5Pq?Bzx@k`Mq|`YJA>EaH!LCsbwl#+CT3Y`2YKEP zwyD3mfGz%u{g{?n9b{ed@XJB7GWE-A&FV@=NDirulFqq`Y08%)H1&DC%AXn}`Um^* ze=+q`1~2b8TEF&?NokGnkvxgQds?(Q)8WDX3}el;^*Z+c{{-9Yzgtp&W%zM9u-P62 zLron8r^M4LA+`=%_19rP1jRqu46AKBG3}t$miSc9?L>#&r|k(z`+DPzj=~CVL(6sG z<~#1SA$MXagZI&&8MfSU#aI=^OKltSd&dtgv@Sd=u+!AB8?(tZ*`ymnSZ$t+i@e#r z=Gt}au4_28_`* z?b%>TMCMT)Rlb93Gi6~7dciE+Z5O8)U@`(`kKfNR#nNoNU+keh8;ky-{JuXmV3pp* zh?yh#+hR{gXtXI}cSwEKs7pT6b~p2;zOJ^d&8Cu(%LmIeeyR?Tc6--f@m-TxxsIgb zwd$D}aU=uZY;jpx+Vi`u!o5_q@ZlDr<=+>Dy4UeUn`&XuLIX@&Tz_+s4#L{5+X;|Iy`LnI0#y{{o%k{96 zHX*~L{STiN9ekUYQyyToF7Lclx#reStM)GB_YD#!>h@K+oef&d@vT3cal7YUxaO*R z#TV>eO(~HqNY^9A9DY8K9C?;|r7*E7-s#H#bId9l73s6rhq7T$NQC#5>mUNJjpVVZ6-G(D_}ELdN&S*zBOy9G>B`{@m* zH`u7q;wih_Y~v(;np)F%ha{k!hnUv_RLdA)z2kTU|wiX^$_kAMPn(MG8sLsUm zuPdA6cWK-|C@iwlW_tDtmbSI%B#UHVpxWSa-G2RwZj4HKy3(5AB4ZWZJx2!0BJX@k zdhqI#6YVvEC!TI zDju9T;VoM-)U?`ihpkOLzgi_ItXgX!zjkOoOXZC1-PU8On>TN<`~gxZYjhb<($g&uOPS z#Madg=i}Cq_ACAI;?#yeH@PHU9~pWo-xztGU_d{Z5!(~hT2LA;dEm~&%WsG_T_1@Z zbr0{hKYXF``RchS`+rL7%+$vEj8~eEoZ<%?rwD$T4sFDsBr5lH!^6vG#-BW-oMS7r zl2)aEzU#G_HOX$<0pvm>4fz-EM{;2WBI}jfwp^P+ZErdn0!rP+P*l|`oegN zUO`ZRamR}_$~(RU(_ftI+TMVDnO0Zu`Rbai)GK<&b_Ln0Kh{&RYm3WuGMB?Xx)hgd zkp@`A)$TeyXWKHE>DCpE8poApS^M2dDNQ*C+blvd_jMV4@-<6Ld+2bz zK-w4b^_YF*pGmx3g^PEtUXe9x-_2g zUb(+vQ~B|Ax2{{vH>1+k53F0O;`HjMUX1Sq_6M(j(~)keT`zl#BVQ6F{BBzCE^>5E zhg;Ys`>yC6h?35nTw6iAlb75UAO13QtQpmXso>koyNG@Yc94G+TdmS_b?e!M5qegJ zZAhK7rCic7l!9%2Dto-}vhTB?w}s!F2Pn?wXO3-rBv=!rETRKLrojGsj#Es*3E|&E za$Ar1UM{dTYd4Fh9F50fQ~|Gk%KnryH*1`3scflip=@y>zw0pkN7?$dodrdFVoPOm= zv6B7)Hd_`OQYK6?Q4@YjNU%RA@yg+6WZmf%?pZ)M37UU<-EC3OwW;}ECN^*5=$MXZ;56|Xj z^*xV@JX;Ev)FV!8J7)KBbK#i}dMdQbw6RU-#$3+P9FE=*SB~Asbt+!hb4?D~?$y+( zwRs_V$dxuG8eVwttuXeN=qcBDi&b0g#D`^3VtbwI zgHsm^XN{9>*Uz4C3D6rA?t4s{X4487BbtZGs1r7YQGAMucC`gL{*m;H-AjcB%T}75 zz}?vH24G!8u(n#QF;lYWl5D7}jx{`;ddRpn$En$54?M*^L-V256}uXDRJ!?VoO()A z-opaLq~{mv493n>&_pRB@ps0hG*@R_Yd$^eMqA7k4!K@MxY@XXqsSyp)}ZyN$Xf>#~3puebi!I6`7HhZ0k1{&M*=SJs7yNqEl?&WHx z(4Twd%V33FZgvzlQrzo~|DbKP54&V1+P)_7%wd{E@EP&>jh%0PKK4mMp7?yekzY`B zplglyquq{QjyInvKdz^$e)cJCll1Eg_RdnmNyx@6rVVnrRy!4LZ|AAZ`EJ^`CMau} zB!hnc>NBHCNwQq*n%ef&w@AHvYPYc?KB@cJxF2;2kxY-sn+bm*!m)hR|H=oq=7+u3 zK-rkZypX1RBZRhVp656lVMEeh7=3_ESSbDSZ`$bk3EOP@{2sgU_CuOxB%9SX`GuQ5 zxV1NuHY^k>d&d|$nFrw_ANdF4W(v2s?i-QZSLSkRV{o0(IXAZLpKi9&YSq4fct06x zGXrBQLd=&5K4U_0UoL3XbPTp1#FF-$FEHOF>0$00d+r5gT+CD|vOInNS`xOm zGn>nPCwq^-m3;PR#2-a_-RufwoJ>^g;#1TAcy{S7 zP4Ps=$>1-_pDN=thT`;;4J)-S=Uf}JI51Fz)w*jJxLKdFrF7lX``y@G$1qKa?WD^k?-Z4SLH zds>uf@o?X8h3kgkyAHio%aTC>hjikl2lov>y}xK25iI}x> z+sBWSDur&bAqfZcf~~|CcJ}8bd8EenIsCX5Uz2W#4Jq&KBjD7r?-Q%Xod&5~|80LBT`1q{tjc4&men~6 z+$z(0OVg#d+qnf^3G!Jl=j%*%@5wW6&G@D=GNkx4)u?ApL$$%4HJ-v69dVL2moH=g z$&bt+YP}UTJd-L}{6(K~vR|(%%h1bxe#uBx>uO`eh;yf?)RBTiUk+bu=qRjyPoDLD z=J!D9evrL)YS{IhaoG4_|Ig;Z zb=KbAm;Mm@N<;1OS#$05nHpEGa*a{NjhEeTUi|(sT_%>&>O24ATE^&PQR$CiN;d5{ zkdoaFLZJoe(tV8n9WN@$n>WWU`nZM1T}Eqq^a>wg zyRZ6ESU#6u6)(B;r`U+Yc?TtuNBo|6%FZ>k>pOuo!WJ4>p8R&RMf0zPf-AefU|)UrGz3NNG}p0G(iLc7y<-CN2C)Jfk+Vq zDFTY2_YitZ2tfowm8Mh`(HKDK9RVRy0wU;px%d6K@BVo2t~GyVoi*$1y=R{}Gkfpv zo3*9@C3_!%tPteP#APzS7N{t&(~Nms$o6o3qlsqWBv?_AqDf8W5>t?O(S+1qWS67 zJojoOXjCVwO$A|EO$%{|dE6`{%p>Met)_5g)w}iGIy(KJ&~c+bn06u90GaU8`I=@B z4OiK*uy17+%D}*f35GbJFzFUl8^u$!a1;NJKTcXSkhe~JG55M%d4BBV9>LmtkZ63( z@~lj~v4q~J?^KR15c9d!DqlLtk%wcCaT<}$vt{!lrpPz)Cz~U3a{zW{;-!2cKh8`DHujE;i7e{mbFVBggd{(ZVMy!0fd4ho&b3n;^jq$1J)}HTy#t zS!bInEwMZIx0qI>PfBzXNq*Nxu?VZ}xgYST`VXngk8_t+{h}cPlc545nyaWY5DdgM#Q6m3O!6zyukgK;dB=8^_hM&y^)^r8xO;r$dPB)p9m0*-R-WYX7PjOG5<*H* z8_|W;_dW}>-DkOjeBa(S6+yB2n1K_TiNI7SO*r4*K)84G%L>VYyxC7Z;@BeEI#Txp zf>|7se*)0^b`|Z*)Z5dK8jby@M1O(0++&tOO#!91DS>i-efcNz-D}^g)}~zn@dRyH z4S%cM^T5>TFgi@~atM#M715Ul*QaC1;dV;j@TixI%L-8VUCtbQ2-}uaeHw*3lk`Kre--+q; zuN?x~4+~fxIXGig>mrNb(u*BOwHwi7R*{adGV14`eV!lkZ|oj5#@R=7 zM8I7n@7ey?MBTtcix8rM-*1#-?vaECW~!kF004b*nCAi$!&PEMk;B~#A-GBkC2YX9 z&>rxsmaw@{(q%vaJQ2`xSqZ81M~Bt!yDT6=M!y4yUe0&+q905&?gZ?e9lbm664S49 zUm)Yr6K02V(`{Q0Hb~}F`BxNs&dvro#4)cvH^^j-8p$i4^?}n!I^m}(_$33>T>T82 zOqInVI(IE^dtrGEKXCwN6oij{O}%~Gs523_sn#vv6m&$83E8|6$A(Ox8e!Kl81@fh zq-f5Yazda8J!g+hHR~~a;tFv5A|;Vp&>&A5#B~O8dckl3RD_~8hXr4;4%r!&GwdeM zcuCO&6^lvOd9yxIo_pd>TdQy)TbdEnW>3a(FZDJlcHOj4g*i1$b6z*iTVX7shh;57 z`0E$i1I6=Zvajkf+7i)XRc`o|rDW~`}BX*H~PuaL3kmTfI{p7Wr z6Wlp!6OY2jaF5zgYInp14~dN%lUUOE+HSKKSxbQx6^baN2Ujm!Lfy@RI@gp+kSSEA zvfe>t`AopQV!cfhFDaea+A-~{ZEL8y&pEjlDpFOC7lDL^ppV*=+D+3gE(qX3gb($+ zr?7R91Pvr@mnQO1lE~>Ya?T9U1twk1;E*b?j8(N}Kw?jWy_3iLl!X2etARFH%x3o^^~!o4h*Q+LF8 ze*K@#ADTi#pok01e6NFSE`LY#BAZ01U5?2IzsJ8nh}t~Wd>Tf`m~Rk$;+VdPHdxC> zDngEHpS0#!=dN#=w;Enz8NMu%Rp z!P=HK{*og4?pSuB?D0-UiZ`@QR>w|iX8g`Jw^}2sT%&8^uyje4iSj!Yqmqc{RMDOn z;^r^5?{Wc`Fq5@9o)Mo~-5SOKp#4Vh8U47rx2osV<>A2$g8XqSnXK2f!!V}Ei0&QQ zm1nABtk{+yh<3VPbZ^X`&7dZu&$tuTRjp`a*{_z2+_XyjP)%74bCgW{R^D;)6NO&LwWiaNbE}u`am^a#tms-bU&@jrm}L{9)~sY4XFP z%K;+!R|o~Wll>C~udE}v>$D1ZsYpwe;VUqvBL_9?hWd zNV+L6_Jmwmk@2c&3vL)_wK}adjfu0sBZBdHVkCD_hd$d3_B2y!WRHc^>@PXs4)5N1o+rK);y$UjJI_i zmS&$_LQC2wSpS3HWz6V!{29%!XT9unbHx!`LqC0XWS4RmJ|I^@&8S&AQ|G)G5>9I=uD*Zy>=v*7_{ixJGjpC547v(c^iSOSWtFE? z47E?)&Mi4SzPfGcR2|T~2-ZJ%RP*Ue?h07%iBW3RU8|qgfwXgCy4V{Aja?E$EK4;>&Z(=;Xytbec{kgwuFI#-3P=gv zIT|qUcp;%R2)lLeUaPX5{@pRs%@=D~C!_s`bk*)r$0kax+x9UT;aan?Q1!SovN9O& zDYdEmeec4aDydtnD02DLm$&w*)I0dlexsUk^X%BrDAu9 zKYP(RA_R`2b+IJObIdgW3V3qv;SGuK^fasY2siVbo_`{~aVrGoTvBD*X4Pe)U*4$Vc)jB-9yqS|F197M zL9Ak$BhrI@MCkD)knx_Y{TX0j|q$IQ!&6RXlSTg!Y z{7=G}*q>5!>)jWtRNk>i?Wgvrmi`$|oUvXu4lc5g_?y@vzlDMAeS zGl02jgBZ_>1X|5;!^@kYmFjYAYFc9LwVCfqm;IOUw;Wz9WL5|+V?MO;nY~%b7!mxg zhitZ1TQf6l5KzoB13Fz)_o1g%I=Aia7u)x`4WLGSjd2#evl$13k-&bYn%w~hGx{`K ze@;LwtjoA`lRWRi(_ZXxLway zolj?zSgTM~LuDig@HaG;bc7x*W&PMOfoKqs1BTXPfst@&k{1J2Ji#t=WXwUeyA79; znIJuEa74AT;Ba^|Y##v^G(3MP-e&^m>~gc6fj0_?%_F437M+nZH+33LRF-KTC+rZ8sLnr z2jzB75zJEFw;G}4!%oAWMXw(btU4LO1O4KR#c0g?%a`q5dN^kev^ri{6_xDgHs8-;DqW!44LK^4&0mmy>M@7i27mM( zJ3WWVvy;PGs(l~KAvx72^c@YT(G-#ZO1)cDXw;2cixAjES(a5n;wQDORGI@-dLwiB z)3_P6N+IPJpg{ooQc%2TL~O9Mtt}ld-~T(TuCQRutl`_pLH$D){Llv$sm+ax!{*{| z@=i=7+tr!Jx{MD$i6grW4>U$pT7XxBsF11dKxS+te6T7;unoKu1b^Zu^Qo`zfq4Vw zAgE-HCx#x?UxL_jv|J@uJ~?kPbnX$pbbSA)jqn0@Y11!yUg+1}TP%GGPN#ex!+eC_lvV3d^PK-BdFvu&U6BV%$F;UROBlcX;*8H25Rbn5*IF zOl$)`HdBYP6&|KDXnWDwEhgyTpnA0Kj8mW@ms&AJ6rnI2ulf6J>eacrYt^sRR}WXl zzk;R{3(2dcw#-9|0fA9f5TQSggZuHIoklMs>9mzU|7j5!7^5r%dUG?>dQKBhk6>f=AJN*Lj7TYBtk^?}sYI z4?{mDM< z{!0lJxbc2a5C1+=UILwdc1PYmEc?=Y#2>%GRoOED5OD#UO_n&ZHvqvT`(&~}Ix@L}xHcxF%2_8a!;b@~`f@d^ugyUJJU+zBKfGFpuI>rW? z+CZwCPoC3>WCuW%;NenO{78-Bj~a=ky31ds*m@$uum*23Q3mZ^%vo8tSF>MzM6zb_ z&#vr2#lzQP+Np-_uS04SfXM|uj7h-X;|U!jLgh{^ZWpB)=dhTkRS328uCq0GE6u#o zTNrdnzp8$73hwIQTRoTnpDV=nN`P& z+@6|S_@G>I=;`@yV%Z|CDVAV1lF3vynsu&gqkPY_Pga&(ef?xFzH*LA?Gf+N3hCvK|=6uRtXfhW$C3N8Pe*yx<_2}VI+BI ziBCG?skofzbTaA}CU`;7EkSFDUcrZ*lkkbrZs3Bv+bM^gZ-%CP)jCd+5?{6!=X=k` zot}vr0ZE4Enz)cn-e1J&A#EoSrb@udD*+~vwt>Go9#whrs`Gr2C0TXsD$L%D{;Zh# zP0I!fcL^4P+~v#t{l&>85usCd|EpA*xx}Q$^9mj*nYkqL>yj}3!tW{&vFsjx)&Z@N z0hyg}4f+D9edC~Dt*CP@ejdz|*wkA>ecaA3$R)*o^ zOZS(~*k7MAYfrljX*C6aC^mE59m*G#MTnPJcCjyzavvgTZ^P$uSS%^Q~w9n_N5KjSJmbroY1xKUJF0~!j3|xb7j>6W<)6bO7aP|g6 zwOYm%&#t#tDe~pJb7rAe(959fhsiS;C3(KXM+8KxiJxF|p=CH*`|t7hq2aAyx5ywn z{du_@260)oDkx}qOlU!E%xD8+_Fy$r-Ij|R7`jw=`9mpFX>3{tn}8=$Nwk77Awb7A z^r&v)8wWdsHiuORo2FW#yX|tCV=;T#;d9ONFs;M2LKMDnv^Aw|aOQTT$SUuJ;4`zu z+9(9)fxVrVMDBoHciTnFVu#s=g*an%(T21+<+Fl7avw+eO6KePdePZm{I6Qh%gmWZ z=d9l(^OD;2$_tV4GqUc;7B{!~rcpLrwa=!t1zow@lJZMX$$=UzrM!l*q*!?R1N;NwPEMhp2>fXKVn^$zWs@kPT)i0JSfF1+AfBR zY^%;;#~okn5E)^2`J>DEua@XR2_`Mqf;~)Pl&wGSqZ*mhZkd|+gN`3`=HlsE& z0Fg#FrhF6CKEMlE1-OTC-w3i9%;4?U>T@mFuo?0tNVreOFxx6Io2l3THR3v3ZQerG z{5{&G%7_fBpiG zUjLx6nthHfIvjs-4ZZkGKf9Lf6_=Gog{7LpmfeEJG^9T|Q8Q>7C*?o4B@GOPj-je^ zA7&D@mI@9>o)0e5W9l~8V81s@CbC#Y>%sy}Ia%FGyc4 z)SdAEzuTDKCf=g2%n+pLYwsbM^TppSILfcl#0oG(PI%V9jP=fOyZnr;>iUnQPB@3w z*eJOim_e&4Q_GYytL7V(@oWBfXZknY{-L~0N6SGmREJ!~&pprHDO8I}%vfbljjKKxwF|2Y{I7?Fvg)6}jye7xPYK^$^Fc?wn}7;1KSw-F yNZ$9ms Date: Thu, 14 Dec 2023 14:17:20 +0100 Subject: [PATCH 2/2] Document new test image. --- tests/data/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/data/README.md b/tests/data/README.md index 0b23b67173..12e9057966 100644 --- a/tests/data/README.md +++ b/tests/data/README.md @@ -429,6 +429,20 @@ a hex editor to make the MPF metadata big endian, as signaled by the four bytes | 33507 | 0xffe1 APP1 | 571 | `http://ns.adobe.com/xap/1.0/. p3.icc +exiftool "-icc_profile<=p3.icc" paris_exif_xmp_icc_gainmap_bigendian.jpg +``` ### File [color_grid_gainmap_different_grid.avif](color_grid_gainmap_different_grid.avif)