From 638173802480b57acad850af605a6233fa997a75 Mon Sep 17 00:00:00 2001 From: pirosiki197 Date: Mon, 12 Aug 2024 02:34:54 +0900 Subject: [PATCH 1/2] fix: address gif image that does not have a global color table --- service/imaging/processor_default.go | 10 ++++++++-- service/imaging/processor_default_test.go | 6 ++++++ testdata/gif/surprised.gif | Bin 0 -> 41350 bytes testdata/gif/surprised_resized.gif | Bin 0 -> 17405 bytes 4 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 testdata/gif/surprised.gif create mode 100644 testdata/gif/surprised_resized.gif diff --git a/service/imaging/processor_default.go b/service/imaging/processor_default.go index f93a4f039..0a37fe91e 100644 --- a/service/imaging/processor_default.go +++ b/service/imaging/processor_default.go @@ -128,7 +128,7 @@ func (p *defaultProcessor) FitAnimationGIF(src io.Reader, width, height int) (*b // ため、キャンバスでフレームを重ねてから縮小する tempCanvas = image.NewNRGBA(gifBound) // DisposalBackgroundに対応するための、背景色の画像 - bgColorUniform = image.NewUniform(srcImage.Config.ColorModel.(color.Palette)[srcImage.BackgroundIndex]) + bgColorUniform *image.Uniform // DisposalPreviousに対応するため、直前のフレームを保持するためのキャンバス backupCanvas = image.NewNRGBA(gifBound) @@ -137,6 +137,12 @@ func (p *defaultProcessor) FitAnimationGIF(src io.Reader, width, height int) (*b eg, _ = errgroup.WithContext(context.Background()) ) + // グローバルカラーテーブルがあれば、背景色を取得 + palette, ok := srcImage.Config.ColorModel.(color.Palette) + if ok && len(palette) > 0 { + bgColorUniform = image.NewUniform(palette[srcImage.BackgroundIndex]) + } + for i, srcFrame := range srcImage.Image { // 元のフレームのサイズと位置 // 差分最適化されたGIFでは、これが元GIFのサイズより小さいことがある @@ -182,7 +188,7 @@ func (p *defaultProcessor) FitAnimationGIF(src io.Reader, width, height int) (*b r, g, b, a := srcFrame.Palette[srcFrame.Palette.Index(color.Transparent)].RGBA() if r == 0 && g == 0 && b == 0 && a == 0 { draw.Draw(tempCanvas, srcBounds, image.Transparent, image.Point{}, draw.Src) - } else { + } else if bgColorUniform != nil { draw.Draw(tempCanvas, srcBounds, bgColorUniform, image.Point{}, draw.Src) } case gif.DisposalPrevious: // DisposalがPreviousなら、直前のフレームを復元 diff --git a/service/imaging/processor_default_test.go b/service/imaging/processor_default_test.go index 94552c965..dba6db097 100644 --- a/service/imaging/processor_default_test.go +++ b/service/imaging/processor_default_test.go @@ -121,6 +121,12 @@ func TestProcessorDefault_FitAnimationGIF(t *testing.T) { want: lo.Must(io.ReadAll(testutils.MustOpenGif("frog_resized.gif"))), err: nil, }, + { + name: "success (surprised 正方形、グローバルカラーテーブルなし)", + file: "surprised.gif", + want: lo.Must(io.ReadAll(testutils.MustOpenGif("surprised_resized.gif"))), + err: nil, + }, } for _, tt := range test { diff --git a/testdata/gif/surprised.gif b/testdata/gif/surprised.gif new file mode 100644 index 0000000000000000000000000000000000000000..b3f57b9ce95e6e17ce86e5b2b22e985e4f6e1c81 GIT binary patch literal 41350 zcmW)mc{J4j_s8F}8qAEbB)hR@H`Mw+nvjq*mPAow z%OH%UEUCs;LN%e%>i7Bn&UyXydfjtg_jT^M&wE~vdmWtY@n*r>pluKU07|>UhwZ$* zY^;cOhI%;2|8M<-f~0|efX;u%!2itB;(g7}_*tGkcJO?V&G{3qNr6@ugY7OIw@oJ5 zC!g}Y9O`&A*y-vC7jjZKCEP7F%AI=UG%cJ+kMyLU@=lLElAd-kBf&2-@<`Sxznt^O za|*L^qy2Le0tzmMTssp|cq*un9DV)ViR(4hB^M$~uAaP^5PtJPQ(1Cs89lDzT-2?u zKIYYgs-)9Zw6oRO7pnV5?-Ww*485vLK3A8PTz@nDes;dtuHK8ly8StFyT9>78rO3a&kCsbQBEcW34GrswyTmp#8$^87Y)Ap812W5qyc z(@<{7(DkyRJJlm)w@2&i$FAKPdw7>yS_>dy^vG4kbiHXscW&Iaj}%Ol-saW z)4ud}W;w5Z`C7yBwFk@BA1vQ!TE5k~{HSMn=-EnM<4Q@(3hUWQXaD=_jqh)?d?;-C zP|W&J+VY{S?L$?^hkISC*B-2vw5?YBx7t^qaz5T@`dHlZv8?^$ttTHVJ3dx*eXQyH z*xd8+Vc%M5%i8U(wVoGiD+}v4AFh|Tt>5ZcXFgiL-LZb>>H4FAjq=AERZlmnpKR2y zH)@}5)OT-m4sT2heqwfgs_*-BzvojQ_w((?pKH24-|hL_*#CL`!i5+ik~fzC9fM z*3SL*Wa3-@t8c@z-{z;jZGHXTKJxwX*mw5SkEatqo=*Mfnf}o?z0*0q!+y2X^Kxfk zZf9ivXV1*fzPX>zU;i9@{i}cG7x&%ofw|wDH@}D9{2qDxdt&i7f9v=6AAg45{Tbu^ zS$X&8=dZsb3x7x7{T*NYJGu0ayYz2z<=?CK|4RV?K5W_Kz=Tq}UXy4{Qn7H$xBaO+O&@X2`p=HO#g|Ox6bu zx7~mJC~j$}+~rZ@n_$44GNT%Trz4p+E6Y5VlL{mlB?ktdJ7ykn;dD<1A_ z|GLDvrX4ie*|GJ3Tjg@=aM$B+>oYCU??$_x{P@D_&D>RVf71Oos8j3K~DeEe$( z5VTGeK!gP^N1s>iST2wtZ7oO5AaE-;KoS?!qEt1c0km@=cBQ~FIdV?kMbbl9w{m$i z^@d9uQ$12#<7bN2z3q++jY<}71$CZopHZCMxjCd>5mV``aoaIoJcW578U_4;4}O*1b5n&5=JtO|C- z(!wZCn)RKO%snBWeG494J7snPK=KKvI*y_+VL*|ur=v1b8_ZCnlQz@$RhBJg3OIWb zCd3Z?TK`%Aa>c>AeS)jPptK#UG{pqfN`~@foe)ROiUw<8y+^JY4GuH&z~^T$DI($7 zF`>9#wyMR$m^}P)cbsza&bWgjZf`TE@7~Pfu!wU4-vebUU`7`92@4&YJ$cd#CIm~C zBMAI@Yda)inMdk|Bpu^f&pRpZN>B^jbd=MTb;gv^0*G_ zC<(X2>sj@TS^49he|T}VA{$k(>temG8N3AE{3l7cJRtVYtruhEO zz%@vS50?m8Qr#r25}9P6{#J%HZsf;Ur{sl2PvJJx0v$_Us6ytgbwq+XRIW#?V6|8A zACpn5sVtJhrtS-fzjsU`bgwK?3jAEYRuJ0>>?GfQ)4>9%z6)8})Y@|{(f+v_7Mpk0+Ge)kZ3HPXz_hmql zZ?=j6XC~FWy=TugN7_Ca(Vo;#4W~&&F|={Mpp&CDBZDL*uNsVSPpXuxgm#HYvtQOdaizGz#?2~G0 zETXxKUGVKwG67{AWmBZsN$~xyC!ABsAUZe+5TY|_2F0iX&PI?4fzS%>^iUxYj)Ri< zg8LOJCF(d-C3HN(O^za3QQKSX>VWeG6NDO>p)HcZ>06p1qD9O-ZKMTZKg%j33Fp?&vTov||{;}jCph^>+>2iUy)m{DsSWz+iC`+ z2;Nr@VO+sd6&Kk82UV5p;_PGIRURb=w9nmp=xcXI`gZIh}xCIqA5IU&Ak!z5Q(L| zPcd|yYxie=p7LJ8=!!wD2kMkEes8=Vu?W3(KzElu^-oGuXpv3Fp46DZ*TR><rq%e9 z4MqdALRdYoG_&mtmffhYVO+J) zu_Hbi_%)qqy-xYG(Mvk}gkb_6j9x}hfbpGKjW(b6_9f{VCC(xvY^!A7NeP(GEuh;V z>4K*n60d;xuXD5_;U6O$ET#<5rxI;s3v*zjAt)jDq&4vp7ByD)wgt`3Mabo%`ryI0 zStq5IevTFOZ{2FjjPnVbB|={`?kE6%|j^EvyJF=Xx; zxnDQw!L-}YxVQ_re`?P0h(IOTb*ltmgo_+t2~VQvGqnk}d ze!o8hkU$HM!ZPizKn={T7J)AWk_3N^q+vU$i3K$wMz&Ri5MIE(PUtM}xL zU}GF8#M9|UPt@x;BovP-JxZSAB1hX$o))Fpvv;cWv3P*+S*SCWtp zGssuxFTWw7*9hp3JoFbF#RHFdze}b0B-z>Ej5WAsQN6A%$^fj}-B}s_J5FSUNcljx zG*W|l!A3sATxAi2lO77@@C6&Wh&rOs&F`8gaGLTg8%TZ-h=}5{P!J93Ytm&d20hM0 zEwQPe$mq`mkskz+la#b?aq2yi>9>sF*Lh}t+aS{90{}N3qGSiKz}v(eQZagignq}3 z8F_TJpLG2E!^C@h1i09cJO<4B4*3j+;b1x~?tIyL$CDE^bTu2E=^WxCW(^=ar5fN!sLtE>Rf^47KGX!NI z&-Xl{8o)h2?VJGrgDY6)qqj(uRRE3HOXWUCo-C&8|D@m|3{<9VdnR)sO;G1W*vP9G zk)+Eub^l#o_$d#)Ll#jk5gAVf!$1}Q7c|_GpT~&UtyP_QX;!ZSsODY&#`Luk1OH(b z{$`1&{zR`b&>xs_BTSUgPI6yfMgtGoghMt+3qNJ*N~;t>Km`B+);4|R4Hq@eM$O~U zYs5l{Vuq7hF%|*H*kESJKmg^CH8_~@9S*w-oH}nJ-k~jzftqPz(h_hhY>~hcksrJK ztl(mF(udN^Cr``~sG;XG*jQAmH}WwF_jW0DrCQaIkZ2cvdJ#C|iZA<&6WQTs@qvnN znCh8n()LFK2>TE)U3|;viuEF9KoD>ODi%sazVNd?7NIXVBrftZUo%m2aY$6eP4%do zQdsrZ9RxI7bsrD)EIkXiFVW5MV#ZEZS%=7eru*-(7{S&f`5Ge5o5x`JVE_;K#TNO+ z6e;)1f!w^ZuO#c%Uep5V#0UX(rRL6+8;}U=Qdqn?l6l^CU*h{X^gA*mT`D7`qv{VI zDv*k4D@lJDnT_edlqG2maYg=cMO`%2Ka`rc@s%)b5*U zSY~H^#xcp}72A0tu0j>gV)^iR-}H|AeVQw@(y8I#T+YvV1h}X1t3T!AWzJX zsDj03V2%g^D!9gEp$d1QmQ1`zQ&C-|(c6Z?#6?VvCoCTUIk^bjQfajU+kqdU9W!qSek>Vfhk(hE5B~&gRb;hW03EAmtoS~4_G3w{b*e;TqNB5C znJ|Cg`p|j`#N&1guhU7m;urDpibX|R6lIxPbUFQW8BR0rL)Wp=lE+V;7`!g|$*L}} z==e+0N=s}JdCvOV()m8Ib!YhQ&(|fth3_PnUSYIfPL4#u_5uCQr8UZc>|EWX|6@$n zqn%4kAdd-dVwycknZA0YmSzw(EHaxzemiTnV z_i>U-?~V)f#<6EsmHDy}5Kl4SpJd;5bg5C?qtVxQ{W?pgWV$+D-@Ync?>tfHX<2kg zpjKp~8Y9=e^ZITJtJBjvd%*#6(lb5WH3GV8(6<=X7wg)Dm8)Gn-!zER>`EMfj+f`A z_2*_iwVxMBOD?uD1o_MeVevprDF=x2j}cRi{4-dNthn<;q}1WA0)k5rqiu~{;mg<||Tu9S3!X`9ke#G)} zTcy7U{(J3U2yo&cQQOp2pK zkOx54mofMMBz@HGwsaG0(Zu8q0^&6=3oZ!G&G&*Dg4sZCm}|L8s3aD15)6&*dY&6I zaZP+$K=c5JFrJ%jz|+Av)?1%uLp3lnsR!m#Q8*lrWpPv_UPATKubG?|BDFY8gv%@} zrGy{`6Z=Bx7jm4Zn0ixvj(PJZ4i(F}w zdDGUHa29~%0q9*e!0Q5p;s6-=W#578Lc_qso9=*QoOZ+TehJ{d?weo4xXQpeFb~j< zg9hctA$+JV8=%Mo`}hkJvAw1`3yA!?M&Z-ZC=v5GuYVzcZX66iFRtk;ZKgJe3E`mn56Zk3=;lWKn<+SOU7IBk^Y4SQo8Uh3AqnQ9eKKnQ zE)V3y6nPdsa_$PIAE_$Ee0`E@fQ*BYD?Td3a9h}`zbwI?J)kVKi0PiX+#Jlc#Sf4F zzPtH$&GISWJOTbidTqV=wl(&B!IeiRxsYS5rN)2jWW5*8VowAvtqJ9?{lUWJ#Q|Ml zV-&qQ4Xg}?ZU}j_zU@+l@i*q4zMm#rLL5E`E=2rO2E9K18QX|FBz}~49P|8u8jQ61 zUg1ll{A-WS&jR@{jtbxqx3c;6%P&{KH?)bnhlO1J=^tS8{#Ed!|HAf!ugA+nZN&j? z-nvlGSLMsgh&BGStB}w=RWaa;q~hk0;~f`bH!z3Pz%1Awy-l5~j}rg&-_1cS?n<66Y3m4FG?t=?k8>8yxSgq{prBW{0xy_e`oFR z)o=20V|jI7Tb+c62f-4#-$E2&E+K0o<&IdD$05(YmyX_TN2`kF3_3==*c$nM?#o?s zebpOgPdo(y1=f=G)gQXg(582K&S#-?(5mLx?iBqUUH30lI{h=;uhyHe>@PcR?%&UD zbj=WN8?{XqEB;FUwP`(3`Iv!%2>|doROP#0eB$jt8g)`_s%Xsj`&WNRD@=aR_~qTR z{piciO-0qU&y|JGc+Yl!{~>H#`-C~q{-$BLrNH|=@MVV@v?-i&L7A9w4}Uw{2SP7urt z6u=?~?1xtb_vnSqa2ISCqH2e$ea9E=vP4cw82gSbIpitX<*52iEISoy`ZR{kPOP{T z8=M%e_S*st0ELF1muDwGxHBae_V89K-+NR$UDrD?H}!F{dOse_5Sv=_Y4B^g((P2g zk_u=rbJUK#+VE>7c0+mX*6YXG<5x_U+40scZ2-G^<@NNJAhsJUAsIORIk+$V!tr63 zxGzIG7n)!-0kfMcY-zj@v1VrLL+>Bk-1kLsty2`3e~5|{uoXSibYi${*YK=x#C(TQ z&JoACAE&SI;gZM+Lqzvr%XR&e3YX%##qXSTzxx!k^MyWrE9RUN-~J4Lp}$J4JD$9- z_VEnlOYAT6FIVpTl;?3E`T%_C+m{dS;xDESO!W%wp*Je!nNKvN>OcL_I63f0yFD~r z7xt@#Z;f>FBv*+;JGIgQAzuwLVBUM*YFx@TU-7a+fQKR+uXRd|V#wj!%l$Y8zI)cP zRZEb9@zCIidw73+BzY|0>mwso?{ud0nZg9;S-OgbpyC5%4K|hG+R&}?&a0qRHE{d> zi*Y$#grLl~%1t+XekBi7e2V7?`q&K3U@Fj|Y{Q>oP)`U-Pj7S7X2A z*8b$x+ldp&S5T5O$+lj`w_x}o>pLhA=9^bUmHePZ(S{C#;&op}1E9?;viBJVtxL`|MQ<P5_?s^ONc9VxrnFA#;^CHsZ%lQtt|ikr~zJ4GAes`ptU4 zcVN$wsW)f&uCJY6V&cT*OLy+Rz4TevFQ&Qs)ZOyY!NU$G&dYeYskH^9UOFom9rp1V zMJle$bYod-pM9;MHNo-C#o`RXOO&x1KZ=~AhjE<{t8ko?_HcT0*rn~!^7+1s4+^7) zrvIH8_iMbz93Uz?pM5p_C~xk%4sTTm7oDa}osXYTisOdCNetfBqcrdG2~~#OI5o@j zySemGo21ExpL@z{mw^v6Upo@3d*wy77~P&dl5QpLslVz_yTIqAM=o{-k2tdlEn4;oCQySR=QxMFe#ve)G64{n(tv~i_;a49I{+lh(H89ti|-&)%GRq^+XTAL+2%2L_-eD{pQtlg zOL?n=GkgUEP0$i4L@s*0=-I;#8E0B;=P?@@ub>Tv4w-FbrdAF+?B^ska?-S9|nYf zA-RBd@FJGO%MA2%q0#RKPnz z%~X@4^VY{KY0rAR)Tc$0mh{R_to6Zna;f;~Ss5;oqN3q=R}#NT15H%vfszJ>5S6Lr z8M;Lso%_rtf^8Ed#`DrF2TTz|*}JDyU&>zl2KO9M$|2P+A)?Klgb^V=++S+-+6Hep zHAf9CemN^XkhoXSpm|duJ3UZPi{WqAdnEp8ib~Dq3mtqV?eSZm<60IVEAt=I2x}JW zH!{jyeAp$ZzE_SXB@ou-f!gqFlP$cj6YkJ0T2Wq|bX)B~49Ou+yxR35)LR;K%d~Fg z`dQ z!c2Tp=o6Vndwi`&b~tfKio0rWTKOMOv{jJ-_N2X#aTXhKZ0$5^%zB7OpgnynoO`kF z_>k|72j^fNH~Sv@v%+9IeN{cF09WVib+$LjeSZzBfK|tT_w%;Z zJD0~!YzW&|x)?=Bl~FqQ{N^Lk#qe4)xqa{9e}uq;`9Mso@%xq_b++hQmkq@X83;b( zs2}7eq|ht$%6v`3(DqBT=kaEGVS3p0VJLquYppJfpDD z3@-hGQnA$h&QZ(saKK_zjLpbM#B+ml@mZn&(fY9@IIHybdK4l>#Y= zTmuo9dJJPx`{(YU5TFz-<9dpHQ#L#&#5zkwq=-2m)#G{ecy`0-cAQ`-Yi#x| z+&Qf&UO-(;-cGrp2?VC#q$xbI)3|^IggmHn2(g{@9B538YJTO|pk|ony#PmTQ2+wj z_%-~mOM7g4qqvt5Z4w^R+ZD6}Ywd*vkYV5e+EEP5pA7Tgu?Abxf&h4UJFrzs*sqhh zyBUE}scb~gv+E$WwVCEA=4nE`y=MRc(Rqcj@qJ#=0{gLuWVU9T6ggD0Q6|4xi-(Zc zK`2PpKiHHxJ|?|Zd}{>E+mV*Q+?V|ove2o^z7PmXbWd}g3TKGY|U>NW%Q zpXt#Lqos#}a&YOgSdis0o1iekM&-SJklKiLbLEDHh+6nib3=-9weS-Cbkcr(FLO2L zgXeINC9rJewYre6Iuw3ul?vjFGxF=T=I3l6MM#~(q@0SNtIgACrF0s^Bq9QS98V7~ zhF=b#pWxG8g~Ec`VP0Hok0hE~9PB8c>h9}!w3c=hVdIOZ&He`EtlI77=GCgEWedDD*8!u+Kij{xv}z9t3a@{Ueal+#8UDMFRc#t5ydHartw3qgJA}zxsV0% zrqDcCC=(yMY93PRoDPA9V4nE0U_lsoKs(Ie7siU|-=%F(UD#At4%K@Hnwkvr!N7bu zv=B15Lr!onR`f|BJH=Q12CD#u?dcA~Mt;_*#G89IGo1~oEiFg$43 z-1!_Ja1KAzB#NWdf;G2X`-rxwt5#e0^s0pf9I^Q%BX}eZekBaf2!%%$(_desg~a{m z5Iuko^JVvVBW+moRQF=4J)TNHQ0+KSdkvZsA9@twLd4MmxUf~|t%9T*Yug7Jn;ox3 zAO$pM?8J^wKn~M5nZblA4#I0%%g{3>GKkFe=^O-vEK*Ld(;

zTyJoW6 z@0LRf4-cu_f3{=O6vv0_^Pm#<=r=tFW2L))OghCcj`eEXrm#TX;D<6i++VNuI$Pou z9s1NgwHDnaUSbC|b%Aj}I(m#gJC z-#@H4HB9j(ldAA7$GDLM?kgzV5AibVHSGB6(c@KcH7Y%d-)Cfjmw3_`N2Y)|DT88Z zi7@h+Bxb87WB03#T41^Gl{{$>;ZBY!;xM27Q+O0gXNNW3~WccMN2hBgzBA1NllXUd(!&rvTi7dLdnORswR<@nmITeIH z3blW3;!h-v)F*O^_*x^YJwyurpFaVPe%D7}I+m~?4($Gh8?pAtyLoE#i7A>ZtQ-Y( zVnOYQR2N_B;bN$L1k{H(te-_YhLXDTk|R{DRY+8e)Of=BO*_HznmtSRtvz6J-OZ?s zzI!5$7@0)R+#1D%;+ttb-8!D9eGf6M1&}<3Y@!m;hN15#kQoffGE;JN5&8s!*cm$Z zPWuU*pRc1I&QXI5HQFW+_snQcgJzMKO+s6P^^FfO+9*&}vvPcf_A` z7^lPW@gDzi_CJ3d?eWk*BdG_OsRuc!W1rqFL17PDi9r!aa|2#bCuA4IK72h%J0X%3 zfVB|bL-!6lOg4s9oqz=-9k?Dl-xTWix(c5x(H6+1r@f}lgjvuh_s2lV3OjV0P4|Sl z8D4$~h?w=?e?@Y%9D_I5SbG?n*WR7orTo_GEz-t|?_6@9hW3FiCqjJ)9`5V_8y1zo zc{l1q9l1_*;rO{R1AGYY3^jy|6v7KQ$^bUi3quGd`=P(N9mCM|vpC=e*z^9L=`-|j zUAVxFo>zY!M&?bv+Yi?azz3$%r{WvVu;89bMcvXsW=V>yLUuxJcdr@6&<#&YC9+bx zkSlH;wX~?%;mW`ez3mY|FVKN;!k#-@ejVzxlREkrvU`XFA#hK$#8BH+l{#Q{jn12$-hvE1parQs`JjsW}9;b&e@!^PtTZg$J zDhpp?;U^$uMJWM?w$!H`#nC*~c0Ov@EES^xh?$YaajC;SeWt(Pdu}Xw;X=Sr8j%rj zY<0*d&XI_nn+W8%J4WoH{NuW)wnV7;PO5D&#GLcar5$R6quTF4eE^zQk`}-o&qa4= zG7sNqhveje0{A_+tbST`kWU=#XdEr(8}-m9FMp1gzhl3t`jhaNq|EimE3Np9%#l#; z{(F*Ol(vS-RPY|>{463}pZV5WDSLOpnYj}EFkWNq`0w}T`vdN~vYXH}^7|e)qKo~v z6STw?Z;fGBUnl_qwd1GS&a5AFq+0Hz{@3-gen}+stG@MDj<*xYgrFvg>o~Oj(SW%)W6ZKWN5Ax89*)Q zB1b)=z5G=ifW?WX`6}4e6^X}SExn@#>j%CV)0?+oDo<(taq;9UACDqv?@vYB$5N?N z{}qd2>o>D;FBffj5If+D*$yP*U$h%$ zF2CG1Tc(ceIZLz0kK6FqZ62=M?xdP=qjmoMSDvVgf1pQ+!#?bO3V$`9CB2iAaL=E2 z!cP#YhtOfoQv3Wgze91RR2S}vf7hX+2Rt_4ZghX1R6Q~a@eVh1oz*h7AZeH+zt|s9 ztV7E1<#s5%NG}t;iMT8Uk`E`N9cZ!nGy z=&M&{{qwtN0v>Lw?`+=$*f~O7b|44yApFlsP6#Sf?KG$nwofbFv%nx^pMIO;>FdQ7 z(#+YTq$w@*+#-@{-G0gi2PHUqnf#d(8U1ZV`tCdX{Vq2Lpf

w+zcJs$KQiG&m4`-LUkZqW3-^;)+VIHsuB>B5Vx{H|HDg_+X&0rX-PY1} z6L!Goy%l10WP-H3V7y;-)Q7C}mfsQ|`u2lsh){Lo7s|yc9aKk7%6tBT_|Gv#LJIiogz?}tEzKjsQ`)g}iCzkKkG7op^lSgdO!LXf z#@OE`pXVQ+-})SQz4epY5wDoJ>bh|yo9w-T7j*{4WDX_N9QrbO*Nf*}j5JDU6_U{K zXPO9IS{J_YAmDLEdEtpHX`|SeZFZ@epJgr1eVp%lVw$UP;OEY^IP9n(mf&*~#I^Qz zGHZ802%4XL?oJp_9kUF&)0<=dA$bes8o9p;Wz@f_j0~t@Hw)>O)>aB>JXn3n*>{VS zkbbUMu7|VlW_5v+P3g+lH03M&rsr}Ke(%$iZ%S9bIaw-4dMVZj8}~l#7uBIw6nJs> zr&@8Ki5>Wqm=M-cg(EG-$-b~`m8Lx2ujC*Xi=m{+QB^%1m9i|UPMUX&7oFlCc3KZ> zRdPdy9NLOEU37ZOjFHJ>#*@hX-{V6Mr+u2=es{paCy7G21IN%(>uT!BULfyw_k(*c z!X(XCiy>&&H{LcQ40hi3kpLEVGehGcxiTZO!qw18<;tGt9MuEX+k;9e{5pmz)zSXV znJd0O9F$N7*0mx>1o<-eK-3PsC!Zew*6TcGvLALz-1ko3z7nYrjv9Fx-$-6-3wI($E< z141HOY4&>89gdI7t~dLkavSm>;oGR?mujO|W*@SaP!n77Mku3+zRepM+7#=eEd9kh zF`DTwBbHR_sy&B-GJPu@^X-4dx5=e%Tcwqz=)4b=7XuUTMEjsH`fo3+cbUHH+`k8U zisVZpYnjw2x2ay;HW)}e^D5mzj_Q3R8~))ZzQ`H&@(DUmF{Z7_cQE zI=U}YA313ZD6e10tuV3W1P z)7`(ncb`2Gqk`vM2Q}ST9_l*5X3B#gcT@mGflpwV@KZ2UA|iZ~eU|`$F=>E=O8fb} zQn8i3k|4o=gl=Rgizf4$3^#o~u5>mp^iWWT0D05n_N^Bo!X6|aFC5TW_KmF-f*3lu z-IUwdxg`I|QNZklhh#iMMP?!Ctx=X0@)+CNmr*IK!MdAKf1y(J-~@CA7i`bAq>7@I zJe6OxwY7Y+61}Wpt0+eibm#H3&L@pr2goQutT~Tv85ZNXP<2D+JhUZgN{}WJ~)phYZagOTe`l>uTL-uee zG+p1X#vvONX#ROs+%=-~SYJEEKpq zPkQkAvVQWJNr}fV!@CY^TB(D(d-A^QS-I?8xx4T z8VPq$0`|S{U8vLM6Dji{3uJoi>z})%_~PDBy?g<9Xqwq4WTLsj*L17Pi=zF0-fIl2 ztR0SVpP}V|8|^~wjCy>U0E~d3T!h`*W)>U%i~VHz(C`cc5;>lvRR6>e>C3vfrxCp` z%hDrbF=-KZadtRy@7Mj$aN!1XATh0%b?LZ2Pc$I`CNDz&9T%2ZnR(bvpVuR15VG!z zh;_Au2czKDRR+~

@O$8 zfA!Ip;{f;6AC%UsfeRx^&rRG5goAx;C3G&@X=J1}bV(`r9SybB+}6}ck9F8QVE$sC z^cX zueE%K8?&P)o)~D)qZqNcdeujIvs2CfOdK`NpAqC7{tBrvvlB*ooHDcP-s9E4C^rti zWuDcG=LT+(hWsrdmsq=C?Rg50Yb~yvaoe&8--Xba;yA&a5pEO}Y97LQ`qgrfybhVt z84z7O8z_pEsae=1*))NGy@}TH@`B~kNVyk+%dHiOJM-grMC7aYl>G@-+yRvV6lKKo zf{q?-ww(@Jzy%p(nq}iw)+^qP{ft1kD|vY#*cbz{PpiBL7(pi~n&;W*qi&m8&gbm! z6}ml&12Q!nvo-KVCnJ5b$P|^t!;R@)4I>O~tc!+3jwom3T_=20sZd5i#c&g)$#Day zR!TGZ`NmxK)IvUYu*_0G9_OSSQx#h0CRdwnU6wtUB#gyp1#=i0)E>=0*2%^;c*{y; zey$};U=Bd=J2AY9Xs$RgGV~OLM z4V?4U63597_{%woX47YG7iMO8Xi%-CNsAzgRZQY>!>H>G7kLTbkef3f_g|#rpimnz3qc@+g251F^#V&%3P45@B7)ZYV!(YjYU~6y}H+u*J}|&bFY>FCuCXdL^$Gj2rKID z8x-d;IbODyY$-Cy!d&XJ)>#DyR3aRUDS5&3Q=G~~z3C}LrUs8qf|Ezo)RX8ZpUjh8 zOu7}f1C%vfu}^c)de@xgrnsZ2;R%^#AJfC;kH3#7)1vmQvcU#@;0MHBi*pRsx3-7* zwlO}8m;)(3WhwQmWS>>S=}l6c$#~pF&UXWM(*Pl9-;}h16gtR82LsVw?ZH7aaS^tT zXct{?k%2_feobdxDh1hE<|W0J&bXWNc{Q@S=v3YZ&>~xnKc6?_fz{eYYX-Y0zVcGy zd^m$mSDZsOI;mPqs0$HJ=?B7&FGfKgR$p&A=_f zwO+H_j|mJF`*lb2nDJEZO2@_#A`-%_#a#z0dI#cVw9tk>I_WN`(^4 z5HHc1`3H@ot<+zd7N>MPUdF~08#qEPVQlnl_gt)Y=oIb6PH8+mOvq`xH>U6&3I+ac zKbPQZq6tvjn6y8b=QH!yHhxym0#adz)2zbaHms6h4Xra^2+p!s*lJ}uzt^(!#^LMb z-6%Gn-&(Y)ICI$eZJS}JUrenfU}7-fQZRJs{c@&Fp%oJ6l9oRoh4!HpUz@^ zb?$e#=8OiQLy&T%XzjpcbU(rTGr=W3@~B<4IaNyVeNZ^g7fXJ=uhV*9O3Wf$Xsh}K zT{TEeEB~{^s~i)1$Dh|N4`XnY*O08gp92=!U_cviM{p(Z!6)k`M?+AuA0n+us`R=1%(RaLSuD%J%vllnBzLakGSyLOItup?7`k>21;|M*i zud)D35V>%Jqa5ei01?{@Q(HxXgH{Ma+4GjHQQv+zp1kCF4+8BL$Zb;h`hqHs2K^zJ zXLxB?_T2x8P;nIdRIY`6k)pPpsoJll><_)?)Qk1r^ob*w6~@F$deyUg5vqxFjfLBGt66Y$`O=_IqG&St$h zj19ECxg7UfeW2|QLosTwV8&)C>Z+zse zh_eYE8f0PUHeqaAT_3dFHUz_`XpnMMwiyQvGIRQJo0s2B;gqzqvfR!3C2KPbtG7Uu z*3&oNIPShzkn8@Bx(Upm%5=p*s&ka`Z=8QJDGCi zw*h>aEK$3AOPe|#z@=%ndg~ag895>_NYPY(8c5Dc!nS)4U?rSIb}?#;5hffJ8Gq(P z4*Ou@*Gq_bUOkF84zhL|5%(EU) zG9W<);n{+CJtHlSkT>IR+&9NBDL$N5+E}}KXs^UP0K;{;j zMv!r%z@Y}nRrhcI$KHMRHT8D;qMxY*2qE+ifgm6vT{;+ghtQh{(nY{f1qBQxAxH~N z5l}->K~O1zfQX?<5s@k=#ZaV(g{ER<=YQY#TIcMu&hzu&>{pQM!S$JQW{ltXj%Wzo zeNw9^Lq&sV$PWdv>ES>MaSLV#;b$H@Y2m_eb%VHZ0GjSX!69n^PahDMdp~d9KGNN^ z=v6|*J5X^N=;omaet}=_(L7)M6_*-ZX%^iDheL{9gorZpGgHprA!^h7H_SUONT>mw z3HTdvPQ17@dYh9oy-EO0Mz@8#?TTez? z>zJO+Q|HF^Fi*>#s8bPrP%}Wk|M<#n7MD*tho&;Yx}CD06W)Kf&`e-g_{sbk(Ce!% zH0|~$($Xw0S8sT93g{t}?%aVDGg*Z@IxwWxuaj05UB-!ZzqN09kzj(I&%GX|^WvzS zT=%_5tce|P_kNy(Sf_(u6?ZQ=?GqcfY|3lJFhn7`PV-{-yXaKo3>PM3LKsFx}D_mfoV6xI7_F397Pm;dA{uGRWn zoEo6BCx&JHS$m)fdvxuR=PevvwqKxLAAn+J-zCNKd(E$pRQmJ}dzq>pGp!gP&du0> z^tuI1y4hw!00qUxlU-JKJi;BG+#_6+fgfJ1QQ|%++drz=5AY^+a%%}08EoDS@X4K(pI*?NOG-3 zO_f?4XhiRe`DJ0@DUi4YFU`o@hxGc`GZ$a_fKnuPNuB@q-jAhhET?qO`5N;pq_D@} z;E(9s8(sUao~KtRa0*PLfSsh~Rn?M|G2CX{Lm1SUR` z0d?foj@v)r3b4q>T3%I8;10AZKIYLH^MgCc=DM0oK@){bHZ2PAE7E<|Si-)-m~>O9 z0_fAJuvCmY5HyjrD+iq#dvuZS@SN*?ulBgFKlv2Q!%)>Iq%!0tKDp>Yx#Um&&t6Fm zEI~{0!8nhn$Oh8aUjhW*?le{bMIjT+bF}V?MjZ0{i+&(Ua(C<)^HszW!^%$!6O0KN zud=)*F1othJy7TIePw-V8A6e}liLQiyU`xG++lcyI8G0q?9CL=OfHYVnpNbfd7<<3 z8csk{8E(;&TdwozU1!49>+mvkwkY+Q=4J7upC#3bS0ew4D;{|Y=v8CaQ5Pa27kVA` z@{Tm7T*c?n!5n%Go!=N<1Ua$ciS8Q-6PD&TqDNGMpM9x0YgTraO105~nu_N4aksD$ z*x@cQpFriIG?rTl^A&i_!-$TwJJwNsB6Tu`bqF4{2pz+dfDvUiBr(p|a{^Hw`UOuk}#P007+$Poeeh>G`DB@~ytr~GpCHSX~1cui}Y z^4+c;I<`2KTNY9?R3M}nnL@f6Vajzx2SydUHXmhd^imE#aN4l>DgHRo9_@&fLKgS8o4z1Vm3^`Gc@HkKi<{j zc6Qbsxsufan0`EFZ7M3qJBV-ET*CDGlKHK3r5_EKwIg3PPkM%My)SmtJAH(Xu{99h zl>E{bl0`Zjry*xLo>&@`^mc@0>$vomshE828&hE)!qCBbo*U@)RT#n#v)Q^}rc4)i zzoRV?->^9FA@P(G_lKm0=j-B$^P)>qoE;C`%KWaJA%%I4pmcnj7jKqF?d=LvQm_5F zlMyYb`)WOq@6EKV1bzMb`i+D^R%PPpw#F#ov%9NTue!N%c^11Qy4UP3CMn%dBi)PO zk+`s!xxIgBx6$*%p@~QG?#-!%>x(zAilyCKVzEQ-uex+3neshyJ8Q&v_wuBVatupq z@ZP1$@~#_kQmcsxr93(9wihceWQciuVQ&ByYX$SPj<9)_NQFGCF+DzLj^5Wtr=Io@ zHteHwUer4)zMJLq`;Pgut0&k)f4;zI52obCjifn1Q^>`trbxR#_k13+zs(R8G!$8+ z$_RkKC%=KJrW(`4-sTtUe(r9+zTacew)eJ7m3 z;X9>xX@nkAI?-6|X5^9aCE~m7$j&(Ej>sBqI(_X-AE&&7!}mc3&$OgcO!dmecjH`L zea|1lbRMKYj$#jmh29KOZD?x0iHq5C{bi9QX`(z*Qu=;z=C9@CB^;JlvHbk{j#7|9s$Y5yTquZ(4XQ7U%?Zm;RbJL@mVJ6Gd-Tx;FLDt173fni1(OX>7ilGc~= zsEDq?ilHDlP<%7TCEH%XevFv{x%-Oi-^wxo!KEc6Z1@emiqO|v)PK6e;pM^{4<<_K z+8yLx=$TX*O)b)0h2=(DuvHrQ}TZDcB=H0mg#e&`%tz zLUoLgb4K~S*xK;0D%~h&7IXXHzB@Wwwbf};B3Lt{Ixq&X-#3&0qn#rLDiWdtW<+Vc z>pKBT7MSESY>x3?>Qk$!oTCd%TKLj}_nzKNYYh!+N7AJ;39BeUutX-g{F} z%nz<+K*-Nv@OMVAQ$bqmxpD3@BAvC4CuoNA5g*CTNk#8;KS!E$7PuDtl3P5BC8G`@ z=v6=!ysWM8;kCc-I0r}=7cW%)h+(O5arbTBg_-~?+uUG>Y>p4l=9zc#1+JBA#eRL2 zSdftA=Cx~V0~(JaT~nbI-71Pg!vGybzb+v9glix@^O#M<$Af~tm<$GPW{9)S)Zyug zhxLnsH2w{TzO@50vLcL>g}^=cP!tRvY=6fr8Hil#3=r*KdfP7iB~{!&)xP{|^^pO4 zTZkn%$x^kG9`aaQF|1{E~^3J6I`C*FdCy zV^lrfnaqtCNkO*UfBC9HTp&0|`RrckT_b@GD(Q1ADyqDpS4~azR0#R8py{EU*ypie zKoNmu)#nmjqmZ*+HgP#f%sH#WalHE?b*yj9Pk#VdboGwa-d^ktjrUS32-KKB?0T2!%R z4y(0KhK0cP-MEvd@UsjXpo_-&N9_E?n!@~j@HNixW1(;mf(R7gc;mi~MSt-XlW)qQ z92f0|AX%8-uBZ2K`IVL+phxFsdY;CI^Mzmgg{Ljn1BgoXw!hj2kawh_vjtzSISB9w z3W|fSZawTuvF@n%`j(zGMPHTuuJvdQTMX2DeK@PcJzcj4t6#V;dgv!Nu#vv&#{2{G zNclzU*Wp~AoEouhGrvo1Z%i|dK;MAlZKYjSxAeYOS0TKE8H|BQIg#Q zF;*cynO1&9;;*!4j}fCOH*4GDF+iR3uY~+LIFv9f3dHaNs){{|9}LS8Ql_FSNE0|9 zF^1Fn0%i1Uh19BET~VRfI%BAiNi6OrpjeWNkxPSayiz%Quq1V_65^(8D2Gri;(UQg z-D`WOf(V9spjomYNJoewxDPBPr6WjJDM`m9E3@P^sIR?J_?#uXnuejkq`=kt!p2aR zyAYa0-kom8?yZ!xAnoODR4?e~}4FH#&Ed%BAU$ zstD#z9!a0ChyX)D(v|4VGh)Ak9yzl&r04PYsK|uWi>!>L4EVZk~`7GF%Fxllr`YXxu7U^>#^I&bJ;lfwfKD(*StP9C=Qss2wzl z$5Am2bV1^hAgxBtKFEurQL+F~CKZR0wy{ z?b)IgLE&hrCO%_7WiEz5fV^-KC-SJ8!ups(X+VI{vND7rbmxqSbTh&Fsf#@Tmc6|$e*M_qBYB+*h)=+Zxh&wa7pPj?Yv3s(H;O!gPm%` zQn_Tu>~x;+NaG4I&SSa*d)S6E%AhUypp(9#6hey#K84YlaWYshG}xLn_`-8?&*|j% zy~C>*mE>k@gCr2TDIMkqhy%Z+j6irgNDg4r?}5qCu?@}QPz=CJgQ2J=1G7bXo3Xrp z5NxGswG{kNiGV@jq@1HqBJaK$n!zSKDH&0>s*d?=c=CcjSaVtVNvY;;J_7 zczB~l93O}i4|V3`!(W@i^DW!6ashh9?h;$f5{ZhmQTZ~}<9LhftzsQ_byD zd*?Cyp=VpadWoH57ckNqWqYoWio>Q_pIo-qPF>RJQKc!JzBP*V`+8bzYhh&B@CSE; z2@0U`Nx6T;rWgByi0;s3pYy4HPgJD()Y-*9`fOFWiF|AHG%@ygWO=m7>tqiMpgF$e zb@-*?c+Ev#t`}chW%JM_P-5%Z_LLjw99Cu!t1*qWQuZkRir?8kb^WW``K#C{jSvwl z3`Ij~@jgsi<1C2bz*FpBcQrIvBdoZ}B>bDY)9awLg3yPqcjLZdq04H&Td+l~*h9}% z+gMkrk`oJKqpEn`K*-lqH~1q~zJ(9DN(IHaOB!kST*X#qhG1PVs0PBdScuc>;Dv95 z3s#sZZm;{U+MRq-Iyj6VVEv|591S_cGh^dVNCit9O7RrNly8nhs8*G@?W@(68Q{V+9|r&?g4H1NrD%-hhav;qp34sxe>(Csvo;au^HXdDz*MDO*;0Jt1TJLsB=BO~;or?%B9DCLxtr9>vcZ6SHx*YS${L&kDgp;J-1 zEqk8hxj?|$w~mj~cG%ZaGIPHUfw?M}IwX6O62+#dpzZ-!YW5vdYSEm{;)B?ZE)Dem zKNQI>X{&&%nB#A5143iCUbJVn3YlN`_XlZKZnxW?sEF0^^Z%wKMFpA=-Aqc7U5G7> zH@(-C+49qOb_;LO-wj|?!?f*NOuDkdK4yqU4@$C#UE!S=l9Vjl%~BUoZ(lc)b`~OX zxUDCh;ILCYB;2=~B}yJJyw#>a4MfT(7KxzA@r)yDT}{JBJ9yJf3-t);IWKK1F?owL zx0e?R-T&(IXc+1NvHAP~4q8T`sH5~FSJ8i1B$5s)8l?)Ll^>7wG&qhZ?ikf^X~^&# zrHfQ(+J8m6viX8IJxaQ`1$pWt0zqH94A4hylL?d~@BT7FpoYf^%rPajdspNhBlCcK zcnB0e#gq8CbI&v6*?sm-9ZUYT?+x<$^o!hkQ`Br~CT`V`YwcGr6PMME9;)TpE@1y=ZglC9kp-teAZTaAHpZW$DiROLrl z3bjm*I_9$)i!P%}wbHrnm`bn29zQKYARUXKu=;tVUby1kcSL=MRlB=KpeY{CTPod~ zGXI4H_~MQshF;uj@k8)7Pe4Ppxxz#vY;8+;v8v;l5wPX!l|4`y_33K9wT~#<-IQZi z`Icw&n|Vmo^cuY#)}bHE0{vrfzI(M)F9QXDr^ZNW{cKAZ%{O*mM;v6iewc;{+C`Jw zpqO2NqQ$?=O>S6)m#$h~3aqfSi#J8Co|w>8WkKm z5#5a{L94Be@7;DS9N@1@2WL}z^4+XbZtIOB9K0*hu;RYwm=YFC_a6TpZrlvRMEYpD z5ue^PR7QE|rLnIcx8#%l0agqoBah>C(;DC=aChLVV6K#i&02WeEf-J3lQk+ObK?U)V*-&lWew|vvD>j0N0J74Y2VU(m<;4b6zQbM#@j3v zMbzbz-WAm)h{0NYgy{rH$waaS&udjl)4DH*b6|JgQ`ZqbszB{?FIj%_2tmr; z^J4eRM)J2G^sCp5XGg@Zh?K9E8s;V(fs6bI`BwGC4UW#Xh-e%!YS zFd5ZS1nbWfbTS1ZaX_V{IYwJ}ubcv6^4ZU4D%{hNWzIsefK%#ta< zmTMDoDFAz#jbKq2$dVau(<|6ZG?i1fX*i+k_b&!A)eJ$?w&QxGP~{lSZv!BRLjBt$ zrF2Q8Q(Fgr+aT%kUOY0?IZb3-IYax~47aGu zmX?W{eS(VV0Vp-o%j8n#RLX8V$MnTmxB(w&jYC%wlU32w{=+_1tcf*D%$MnLLo z2ZoDZqhbJfoj%`v2F4(15t5MpS}XjIYDgwb@yW4+3oZV-?y<@H!S*v*mQBavRmMD! zuCqVN8|C2lYq@eGN|*}dp@sR=jF|JOr(RF}lzCLZm&#$zPZLwa8I*4mpH<53!FS=IfaOao2dx z0=FMV9BRyWS)_F)T7-tM=#DO}M2Myd(FtaXzAEos5b`b2pTs_8zrVsOaFqCM85o9e z%uy338)Ana$4@tK%rX4m5tBBls69r)f+iZl4=kBmbW=SNCfSr3%2h#VUxu^^1GPy* zJ&;9>Z6jadk$nvIcd?iHT5Rw5A+GznOsuj7GL&DrXr1K)=5WL&O^!(dGHV7|9GoC? z7qv=7ecncW!H4q6p*c;Zg|tjHh_XNYIsKXD6vM-$DFD)_X50k+%s_o2pdv3Myrm;Y zw%H%Cuxr5C${2`S47MC98{LiVoHQbLHRhoc#5O8nj_&`GfV6N=_zwelxJ~?z1BoFj z1fv{zHcb;)VUJ_w;QKCm_+m2~*}ts1Vc#8VdFXwMpbWXkfyW z##I;40dn4M2jNT#(rtxWT?Hr-;^FyvfHLGq1LrSv?iVWRBN4TZL5+_g-)<-7nj;B= zY@=xQ-tDW640czBbl-(S2$zyLJ^0h(y#EN0IO?1AbVO#6>~<1j99)exb#Y>SZ4rV$ z3OsQ>aehqtcmtIG8akW#y@uobLFN2T;M^yWH;JhCS{KF$xo-(XsdX|FfHZSPrZJS^ zI2&#!GX$MuS=kpdaBAlpk+g~0BXU-=a{k6pnhMc)59vH9AU7ev1+5F(1`;OEBU5ZG ztC7Far9ZY&)!Ljghm=&v-Be`FKM3T+wW}X$Ihq(AAYvJ}f2Nx%YLQ-+D|mhdDEdfc z-Z3&Glj@xSwJbu<0_3=(VY@V#Mgydns#!jjhHSJ4wxLW7^0X!AzHj-mc5dE5>^K^= zK8u{9`yUzhx3YAM_dxe)NGAoMAdheT1453a+qt7Y`xgBgEB-}*eI}s;ESx4SPMF99 z*u0kJX4c(loD0`Eh2;xA(@~D4SC+@hrZUo}$MQUcQ70MF+#Qu)8$wQFss^;GHk9K` zexx%jN`H;r@EVhTg2?gq1Bq(oj6sf~xV&eWyd=HaPN(#XZ|Ns=(XaNrU$c2k_wtAU z>hvK)T9j!^rsM%Q=sN9O+R>tQdIE5-g2}6%Zs+`oN2y&y@2Emm)!?x@)t-2oxs|lq z7-!;@3OlRJ??kdmW~uCjTZ`LSJ_4wz0ru9Tx4iexnW%yt~3<|0X54Vu4c9o393_<4^p%qjHtAzq8~Z^E4b zp$i8?WzVjI?HrS-R_M?>Nn9K0KRuhwGO0d48f<>T*t5{K1@}~DJWNzW+|q8a9Oeg@ zI-(MPHh9-od?#{>Srr_qy`?N1_YOz1mAWEvDbBV4d6-E)a*3=xT>ArP_zl$kK`X)I z(6&(|m+egDbImZrdSg|v?u%yK&~o3ishiY#Il;K@v#5NA@`d(Cu*MKK#x2LXhfD-A zN#wr3&j$AwhNh{w0CvF5owX9)ypviC9j^pv$cCQ{4B=9PClz?X%p)EJ0|y*yXpWoH z@^M+2wv~|Jnuqo^75AQ0O~|)3T!h<#J>inI<+E&ZzRb$3uiIoB8T_b9xeCTAJEU4?r1;pE=%b?q(hDIOoHH~ zYwwe*)6#y#mc)y#r;m0DhZfb$rI!g5=`*C|_BvspSkTzxu@AK~?DyVWYWesJdSm6O zYe|Zht~5VYb3-I#zqjj?b$dm7m9A&!k*tTSG&ric<>#+9+f>B8x(;v4_M&6m4Q$1r zn6~2DxGQtgMeR@IhjVP1GGJnh46>0H+Maam=HKhc+?Xy$f8G!;Ba-yRtKHE zu4qi!Oa~1UNxuCp0j1Xq&v%9*JGDh0e9^7@PV5-DbY%NyXTS!)H{Z`-Ymm!sVMhWW zUZpa@=wb$#a~n{kHaPFmq4{1We!ZIY&lfg}(RCdMglEMk`dAJfLP2 zs?a+dh~7RSy*2mz{>R~-UtPltWdv~;k)LT?Q2n61w;{WwcRmJMffI~>v7Xfr9?xge zu{6;^?XVW_A1M5rr_U47zki`p>z}?v*4@ySey^Eo0&XrH8G3>QYQ{#^N1DYM(z&{$ zUunaI@@)m>qwegSmZoUB*-Mw+q48s5-$ytpHqt)Bue2D{+&vUs8Zyi`-O z0U-Pgljc-wq0D3a0K`Tau4sB<*2C;s)@0$io-K5r+6^=tlnEk^JLa@da5}!rqsBc@ zXC9=dG8E$r&_brdjsrZn;!9Gmfd&@uoSvVU7naV?)&69LotojUhuHQ|zhXiueXq$$ zv&P&|i%P1)`V6-y%&sZNEeFl)idiydwQX+!1c(y`MEUcE#&LA79#Xhs z{;hi*r{!4ruIe237}&l67Q?a7Fv1ypxD7KWfZ5P<%;s=2@lAv7i`pD?7XNgKH%bjX z2ciMT(Xe1z_58xZrVZ=yZGgw}I7k`1g`fG&h|_3aWMA^Q^kHTjP@2vG;ph`T7N#F8 zJfA_sutcZf<^`>sM@_x+g`ZwM^qeVT#MxB>OcjZzYq@ZQ^AZ|dhXvMi#*YvinWHr*v(GeU9^=4=?OO z+tyZdd{!2vZ`LTT@>=O!6#MX1`ISBaCM*uFJ-zkg&mGt0?gz;uO;0yk|8B+JfVzU0 z3;#Y(Xaa8oABR8B!s}l>QC#!x0Y!IxoLXFaDZcsYCYrY@%pJ0Y; zQ)0jg>PJS`=i{H2ByUTbUD@jZy8n#gm+DE#!KZD(^E2`K%@=byW==>$@UMhU?xuczV_WcS>%OX; zD)@ulu3}!xR>Oy1hkB!xF4FesZKb@O_rR_D51#SbpZt1rPbrTL6Tf|oZ3ke03>Ein z4m<32vujShF|LGYz1zpyL#5P5XPLv+O)!`9U$IIJCd-XKvp8fF0V&RJp`4s93ZtBn zEHL!=nJAiF6A=2~Tf7e{*LegTX%o98qxoK%cWgI4@4Ipm-Fjc{1YNcoAWPy7NO|9d zZwzwo$Px3LWC=U@J_o;P^AYdR*AX8qjlSDDLVTY6(Ds?O-TltNrR!+)^TEZRHMjPH z8On06&~vv<3{p8>T7GS2l9Ei5=P%k2_w7WFpRFpS>F}5KL(U$Sua(Ix`VXb{>ZeOz z{jNF5-g@{g?+{E;jY_t>{AV`rr+2BzNX|>mQK=~A&?4|-CGY3xJL$X*6Kh56?8sZ| z!@nbW2;b8`+`#CsP?WU$7{f6AfAW&BMj>E~iwFe%G5H_7q|@j&f(G<~#nk@8OByoi ziP?%Ez(n=myrfgfcGShyoiRC}(xWBf{oCoS*O(I^bc*Lcyrk8S`++a)SKrE+H)@Ye zsJw9NO!)fwy>*c@u~c&Z_K{Pw4K}UVImMt6B_ms2PTj?iUT<~-N3QWr={0=b4j!Y4 zsA;?rbg-*GX^$r0959~o5V0n9(Vb@OgQz`>{G!S17qbL*eRz z*s0)KNe6GtZzV>oaz9Jj9V)p0OTi{w?=amt+V(#1E3a}Tv@*c5r*bPp2Dno__FUx0 zkKL}s4KB5jMELQdvBSjIJyGeU1^yfI$TvkX6Ip`W8|Inn`ynu$EhvzdOoL)r=i|%9 z4TPFkoA9oU^XB-(?TTPmPmklyV~O8tYW2v=r&1k#(@2Q2QaSL79DIF?SDp?F7neO~K}-`dyb-Tj}k+`6-S@|-{qp1%0Lyj%T;xO@9y1cd_;<$-5om-nnIEh+Pa>HaTeKt{kS6Q zpzvo^)#mUN}~f z_~_)1(i;yaErW|nRki;7ytYtJfr=H^bGLnDn@k}x7R?z@z&c}2Atw2)6K3WVoPo(Q3*y^x~H53Y1wnATs%#GZ-c1SS- zBsiziSwCVc^nlm-vfD$J>GA^i7af}NGZmswiFnLRjJK@cFwR)VWavya8pjYHV572p zx!#zl0rM$R)-|lK&#khI>cG?DTyznOgRb1LES(@Q9cppV?+RVZZ14;JQ z=#k`lS}bTRpX-mDwDjnGnc$l7T3-Rvs|TZ(WKvjSpwt{C zc$JKPjU8twceYY8R~7{CeC_5~epHL~+yeikI5k# zr@wy4ds5CZFUKt<&);NCjwx+&PE~6iF#_P2OuX|A3DHNB;pIuQp`AXXs5(QBeBDPHDLy zoOwPtHUR#Z+pX=jW6kG5IhBT$*Kv3_a5OW3{e+OQdWJ9NgZdD5Y~+rnIaSe+Cx{t7pEDT&f!tB^5qM)<<V=*)tg*|>`Cp5R?u) zQxLuc1i1%uf*C+*huY0gBb%aIHK=H!zbNjj*$GkWsly0#OU*LH#5RJCrsHMqmGxVj zi{rR9cyUqr{xkIfM{1PwEkkos%uRl*wzV8I9}oFN@qBhbE-g{gG~&fszR{e?O*Hi0 zvv|p|BmXo`RQcvt1q>*u21PiC5nZGx#MW`4LY=FGrnHzFX2x?uVycA4DR6}fH4qu; zYg``q(Dg4Ec%;4RUZyise_F72(e z8m*46t!@KG?S?Kgjv{$s-QJp0KC?kuRvx57cJU1PDIM_pd&_|er~H=(tmagoJql`; z@hd^am~G6-PeHl9V?1;ZHY8$fU}75wl725MjP+jcikkm1Gic{p{Nm~_axB73Ew?d? zxuHggIZLYsUdYymd`V$5tmMA%dt+qmIH1WZa(gaiRK!m)y3sSEkc&?)F(lUYQP2#`v_`}Y*L4I0dw`nW=K$_w`I${)PrKHu<}ZU!>~?a5hNKA( zEs|8?8rg$>rwWZIlT~snIKqxiV{=;tfIGlhf)`u|UbDG22GY>Fk`tg3wmJPeaHhWT z+~uG5PYt%>iQ>HS)0ruws3z7MZYyiZ!xJgeCFdO1E>!l0fV46oI=fa8eb+@~QK6b` zk?UU~{9h%Z_W$n;B9WJ8amkmF;*K%&J7ZA0)(Icj5ipIlb8-(h@pI{ulzM0NF< z`i=ZIxD)5Bzonqq{(cHwNUV_IzRE&c7+(T^ekL%fUuo7>iGDmTr~XxEJDoENO#r&M?e$qvY(>uA?hM7 zG&ZhZ|Jy$JLFSmIL;J9JBTnPxH&TuL)9PI+3lFkrUg85`X2q8m=!y79poBr{B@A!c!JUOIli`ff@}R0mz> zA`;k!TOa@^fhp;b=Zss!L+ZCZ8v`cEMlYT)`NyJv_(u}M>%aL&IzyMqKaxwg8`Dda zA_@)of3phIWCq|BK2LUKrroAwX?f^mtWR`D0~y;Zq7N+}#A!WNYlg&FiGe0rF8`#2 z^;8Ovar}89Gf~LGPLsNM@d%?r(PIOiW36HGLUCaD!R#dY)3B~DPTNPY-D`|~_`eH~ zbj|=Ke3mQhPN@qqJo!6Q-X_OGI3uJ@D?(5{l0pu}$XAu#7Q3PtaRAr)rF=nI59X&A zr`4?jGeSyFHbq=v69vZUcd7ll&mWCv&VWSFTN|^iD2NJdaB+9ZL;y?2oU> z6r$cXUWLnVAOxHH56}6ld@d#9CgG>!;X!ibK#TT#5x9FB%%_IrsSLvdB-`zDM>&|y zSh_RO%q5=Wd4O{tG|QWPo|KtQ_&t<@1Mwyzn9Z7PRgIh{`X}e$`o9!e6z+ZUQi#xE z`JB~fk*%1JZ4Qzno-aYhwpHZfi5KX_P%q_gtbK|fnr_&bCQvfsY0C1%+kRW*_Yhz~ zjeK^JoO?_?FI&SG1JBQbd2Pea&`Dl2l8gJ0X7+QtHYgK=w6P%B`#yKW!yJgDQw{a$ zh%8OeFky;1nuuuj0M7dk2Ud}Tajlb`7JR=Re6i{q>+8Mbub(2Cwv22jNk&m+W`*D}xVJ{Rz+7#cW!9x%aE3Ux5 zG_`HA=|) zaZ`bur$%P0*Z40L65jJ~71F)e1=0OKR7mImQ-!Q~ReTC2%XpH`NC9X7z%ejVfH(v% zz>Vi%If~KZYIzanQaEmgxk3YP{SJumfgyw>N}gb6M4SC zw=;wBB`r)?bgScOKp_a^3p$H_?uXZ<^J*7P!u$wiFPvlFDPt#h7%GwEb^x^xf!YvW zSvRCxBcKC`mWuBuTyWrPx=ubvD7o?XK;cte>g`+Q@DF{~zEqM{f2%hG7V=3g6i;V? z8S|>OMo>)wL`K907@}}5lEAZJc=w3SsFKl((5U>^TNHVU!{eB?DM8qIivF}7-1j%> z%;1bW1?Gb>^8xJr4xTz84EuiLJP#&Z8tj?wn=L*4`-tN~C)A9deps?P;Re9M#VUOk zW-nqmGYJ?d6($j@%VZ&o{>4H{{TVd6)OtD*?h7?zEqeViwJ~s#4CVzqX2}s$(!etO z4*(E0M6GuzRu;~$u5bndc`6~+kJa__Xh6i6T0r#cJkfvQkc^q+moVf%I3%gS#0HO_ z?wg0YzMlxOA(8(l4q0RAc|a_sDCKhCfrEMqy%H?fPG#bd%8tEE9I`=I{FAk>FZrxH z{8JG*xS@4&{y|{jYkvkQ(BBI2l{^e4@>|dn2r_xTVCP2}Jj=ub28-ke1iB_wKEAsY z580U@hr5rR^&%f8l3>Z7o_cM+_0od9dorSFGt%TT?N(#&;yz1$Ibk#iF&#`Za);WK zyvpK$xzJ!N+{9;prdbfgzhRW4yPVz!F!ux4b`1Gl^ON>pFjoxu3~t_UVZjZ>WjYV1r;P z?9aIOzEC%FLX+BhVQpJ84Pxz=pFTOe*Karn3nwrylr{X%DOOm?`LU{%7>93XNh}az z^;qFy3tncok@YlM=@Z+dkYnUCR9)2RiC(0klf_W#ebT-&X^1I9((LVhz5bCQX^U+x z>5rK*q_4Xz&dY`2a*uJwDuR*@1{4nT&j`Bj+t_%a;pKX;r8;Kq6xS9FcQ{VoFUEC> z`byqD?-Wg_5#f&V~GjhK-)S za(~*|0%}T2J86-wO@n-Rn$9%$j6>4x@vvsrmuVZE+oa&!Kr!atJx*k|cJ}ji7noZ- z%#Gk;A3q^;nj zt3Ich45pntNb|h!XiFen-J>jTXt2{l>3ee|A_@u^9=hiAG9L*oe5;m&i>F?C1=WW+ zw80#cmm8*G-pbl?aP5zeT7##_UdZ0D6&cs3f1V` z9<`F|kmP|zIex7;5<|A9!&_5I;Df}M_GA%Rk1CxR@$B!_M889Wt zoowC0ESR^Phs1I6$tSJB8{lx|R^4CZ6IoEHjTGtG)R_3_rGqdm*wr2t_*NbR8*8Tx7jA36 z5q`^)0o182nmbV(u3yQf*$Nw`O1!l0?p zH7}dAGXmob>lI1fv?XpfCcBUW=YoRmZRv{&NnZa&Kc-DD##thuSCYboh}rX})r~K! zOJpMab|@STXB7j_Tp^9%Oi`^L=DaeG&-kTVn*RkxR0 z;gLr&K1nzuLFdTf1!^(g>3(k4*Qam*Vj@BwnylhVm~4b$CPD!U+b9H0_2x!f2Y10kl;gx=sI-vVlO!T_CKai2ax? z4H+^dTmHv>#H@$ALE9FhuN>bl4>EH(vFvz!nQ1@nl>1Pb_9OiXyjUfRCqoII5kLHh zxqU3NG%A0L#mHwRP!%8xf$m9)6j)-!ioQJmpcbS>{>29`UJozRh*%+?zH;Nob$i$k zz3qRykKzCAJ_4ZzU-rm>DWw({NfzHt+CR)|Se@nk z54BQGJYa3Sq8|pr{rhn47SkF5W~-MM8^j}Q1|79o5XPnINq*Iv z+;{9!c>h@T4ZIRHNEH4110si~*_AT)^)R@A+KW==1@-1V{zFCbZcSmEyGKS!RD&n# z&+f^LmNP?e0GcLKn+Kr7CZ;y1lB6s}m7rJsfkE>$%=#-XBZNL3UG_$-Lg`)hANNkV^V&vuFS6{oMaB(|q2i zu+tW1bX)WUZ%zD7y%=7@9IULJNIFB3MKY7u5rHlFXGu2`a~zT>o7!bNUPm#?I{KL5 zmv!`6pX!KL@5omhwU_w9Yg+RqX`Z^D+SF$C4@AkcNC}uS5zG?v$OEyByTi!^4_nJe z{n&1{H>g-J_SD^=`J=QFVx2fnJOu4os{}8B*%cmj9!gmqr`0r-$rjp73`&CIMeERPk5pw%}GpYIG`w!D5@P+c^#u)4tN=zT@MOsOfCb(Y>J=?NCGAFwD(LEVcn zz1CuXR^<7fQQKOgtQh*Ilo-i{V1H8)G6%44kKlz_1IG+g}T2~WbE>F zJXn@2iYWpq9be+&l)Us;d!wTH8p&LGwl58jkPBfQog7kOY@K7IutRvYl*a@93b_6Il1oH$s7B z53}(UlP7rwzZ(AJ&TUftbG26}hgduHB_>O$_8jfcer-4I;lpiPz8`F;Xmtl=8}(F| zEIb-3u64si0qKX_N|XADrx=L(K~jXBt<7XQxC$E5Wt=k+=b|)#0|xhXaJuv^gQe7i zh4W5m@5(AYL+hYIDu!wzDcy+BZW+d896-+pz$778mU)ABNNQ2c9T$SktsXVczjhg( zjH6bW5?ML)gZem4!j@R|Yf|v8zFkcf<5q!)$iKe1caYCH|lxK zrV57Vzfh^E$nmcYG4&2J*MU0;s@(ge0%;f*9{OgR7mo|KU~|hho0N_%NfS9*>X=!* zj>N5{@;@#?OXdgT7HgJyI7$Pq%VetBB9wUG-X1cC)QpU?P3RkRP@oo2Sa1eX%>Pu* zY_ia(bZ{NZMYq80Dz|GPyPHG6t+=n?`L*ZAQBf%>6620#{xO&${q#MRjbDR&Q)^R%@v2j|8?lKJ~rEbSh7gSxkci51DD<-w$capnl0CrS+4B2F*(Po z`YwQWTs}ZAN#7##ULdOeXD!ZNT8>YbJ-r;oW%3m6cT|;@4d4d3mD?N|zdikuq|be{ zjCa`VlzShXy|GuFA=xZ0FF$1YBzO3#8W6!;N zbWjV28fR-$j%Md4Z$j|_&fmVF&-=P(+wja{Y960$UQ ziVVh5Mu?(PS&EcIWDAX5p@@o5vg?v85v4q?>-jv-i~Gg>9~^IvSI6=D{=P@qr{#EK zg3Ax=d-r=)Dh-k*{iLXewUn-Km|xls2Pb#4{9O)bm9U7^1FswGh^m#d>UD60)FR== z9xutS8NsC|-MNKPziraz(5g7ATr0@#)$WnrJ$-rW_z6h4mYK3ICC~H7 zI`feBdfPN1(X&jgh<1-}U1jnPMe&$hv5B%Sa5zq0`)D9z@qv1#JIFs(xxS6$MM z4HTW*4x?U8Z@Ofc>36bfljX7_H(;I9=5zfm6@Okp(W81Mpx|F#67w{}`iuPIogS!W zS^Lo7r_Uc>Py7lEKDB@k!H_clF@sDHfME(SzpO` zIn7oy-!K2Az%>wI8?@HC1>ipC=2+AJ<0ZwyQFqC|<^Oc*OZ>uxiNDsb2EGPZN@=2a zk3y3*!pcf;XSjH611J^hmm6)Qx!uX6^UoFcmvx`Us9r^0+|uRM``wC_j;2E94m_uE zgN%#AZt5e}DF$7qUnKp`i+jW1IpAh5aujXG6!h?yj)qwkA&T0Ypf8a@0;}}DzVJQ zRSSIcmN)Tws%dj-+tJ6+gB!bDNA=s@fJX-4>3ap1r22&YJKzk28P!BZ4vPX2g`x?s z;q)%ZJxX{J<^d<(#~5R2*@+0E$uvn@8Cw&K_DYZY+LyS9<*&e<nxib(U>oS`-l2*Fny!&w*U3Kw?pnnKt^f^d@2?3AxtF@1b~iZ@EYBP0)-W zaxPOQH4{d|yIFf|BYDPL+X*IR)2@wA)YyR*so1E_nC{Ia&qTaf>N?s0Re{?C;rd<4 z3D*M;K`QgDESQjm&#FPPw5KRtmbCX4xWJFbuHvK=p%N>U!M7OFZck$k8MweXGZllh|o3!&6~r^f9lYGP`l5 z;P}#;=hTd2|H6%J;9KO;yo8A6o6Q92BQEH*NscfS;PUmNb=`N5=o4}1LeYycMS z5QkmN7c|(VHC}gw+~SQ`L*J~+%S;vVe9Aa8WhX8jUYW+IK|*J-V_E+>`vf`w@fzN> zFf>8(*~;z2IG^p2$Ot#PQTk^)<}HhatZyNn^5WiIf}e4ahL z@2h|?g?b2NH><2MMtz&YfT?Pxg0MupF1|Ol5cabVX2ROdI$iH`U*&%Aws@Zc;&6J}oI%1XfsK!7#L3Kf5$gLGoBPY@}o6_PJd{GSG^|2j~ ze^q!xz}-|~_?q-7bLl?GNUyizpD_JBwyL9jU*B;#{A)C}EmyUvD<@V4n4QQWW?f0n z3L0W(PAH?zvE*4A9*q5@aOSDqRcoaEZAz5_3X5=1WeToq-E~G85Uu1UxhF^y`{d=0YpM2mZ?rnq(}^arm0 z8jWTfF`mtPMx**W-EZQp6MhhjceI$+?1kvs<8M7CB65)%O3VpX(o4A*7{eyDZf5F~ywiLacwM(3DVN z!B4z{&X7*?V@iy%CrSj|#T&9@uY5K1kl#2WBhk!9o&ldZ@rVuBNX343uWZ9wfRB&> zidf#Jsxs8pLBm)A0U-X~r4?oKlGI@-A}``4Mf@Jc`*?x*g7A)5raIb8L%m(qsNL?e z*_A@r`$^cCtmSW`cjuJuYSwrQZn6a#4K0< zZ~)fFktCe_y)@=%?{QFZ_WGc5+4YAecx32msVL`zH`v8b=hn%jV1$&XksO$I`HZdF z#zPiQcW&*bk1q$XsL$&=&loNO%Z3H*d zl6u^gh{-kH8`=O&Z3X(oR0YS%(vJ}IqC@vOfgDZl_P;(58s1Aob9D0TX6OC^hC!%W zC00wFoA3=~5r1H1_hY{7ZFBO06NT2cmn>Dt|LTkNXOyPTckteG)4NToU1}92sCjKw zG~IFZb*B{2uWhSKjr6Eujh3->RZveeK0ITOLBmkt+#)&=` zS*RZ%dPW`SD=^7C9{hOlhjg2001vL5j%8*44oU_xnLipe6hhYotb5mkm{=AhWJ&39 zY=X2{x_TwFa_gThhP-bDc&W%#g;p~8S*`LyeA`_A%8PX4_RkktY>G_Fc{r@xj60W4&K-hd z?}9q68s4cC=RysDs%0|2Zo#CW@GIB3n6P^wKRI5wvdvvP5spTb+_39APsI|ubY|9s z@lT;>=D}Vq@6@x-$6wPHs%i6D_yUm2v&Ie%Jb6gs#M27gwJo)RCX)rz0{duhw6(KM zabBR2XV~A0!HL=$J8=*_%n=NL2xq6LWcS~GrEQ}Yu8_TVg#}=h+TNTHvRu5~@30Ia z^1DG8>2A7%mX4d=hR_O##Brm-Uu?h8WQPotHecEUNPuGczq zXl}dDOgzm*yjlguL6i~GSQI3^Y1^WLLNW39@fFX2jZ7zy*S(etw+na^;+^9!)`bC$l_)G^Qn9tru@rkq>1a5*76v z>rwvE9vR2tUeNRQ1>(BFStLk0c<7`kIpu)5;)RYEI+}cfTt6USXs@okD;Z8l!o0{b z=uUW8J=eZ$~?gzxvspQM&lD)I*xahmcqoTRbPxP@BqKDSbZfl2}ICgVJ z|7RxlQih?Pcm8ow92ro2d^IvU#r74grao0|ou8QV_!m>8(9;0gfzh=e`{k zg?)*x(f5^Xpc$PWCJ=944p03r=il($`NnD(@yQ)#L`tol>`(6(%uWJFG_p25 zmD$;$Vd?s_I^((M`+E8UQ{_pb@z`cDZTHuOY`!||C43(gwN(uexEto5izdv_hL|M8qnU_W^3=6 z5y^3^R2QRHut}9y>(En2A6+?5ZZ+efo)~3s0r!kv@7}%bQUyh?#9%Fjytb6Xgg$Z# z=+-f>6`J!_nLW=3dH&hD-s+$Hvt600gRs!8ZQ7zesCygv=jlW%pEU?6r=yMhuuB#I ziwW2@XU9>i&Kr*(xYclhHSA+0lnQxS9UELVay!BmhC9;!C&L4=@0QJ zy)SwuUe&MR3ja#reMGbTo6*v6pvddEG27xO2(%*um{=HvJwmbx&la!enzE_}~azYK`=q zgMU7E@S&4+T_|C{_24i^fAD zD!z~e?#*ZB^>)&4OF|{&zjfozx;9_f-u#c3%sq?ZejxWgx90e8WAJoXRkz9cZN<9& z6ep#L`-ih6ZSq_h|M8N#HU_=sgc?TGeiv);XJ^MBxaVK{K4B8`bH%x<{Dw?>3`%Z3 zF;eV@-)!#{PCUq4E_o4D3MYltz-X;yhpbRoKkPFkdB*%utrwQR z47BrKbHDmh{#nRr1AE^F#PzDY!83;EWZeAkL<~r$bgeG5vT6My&^3;9N?7Ub=mpB# zm*m;}?AO_Nq9W9u(a@QD(nBLnBUpr(3JDvbpl*i_G^pz(Yig}mpg(9;9ts~mog%Ta z5?}q=*7#43B__B)AlD>4dM+=hQH%yjAb>OpH{rl_$s|d4i>Jh)s#QX0OG8di*LXj$IVn1p2UP#nWqg7Mm(W*@oya^Al2>f01aSfpHcesCkdPk!jz!H5yh ziCEE36&4!&qCUyn_dCJ+_eJu9%jFa(yFtAHU;8##O%a6P#?`J{1%OELM3mf}JdZpF z5<1N-RjDh_?@HmBTcPj7!U_)BI2rriEiRQ|bouF{*C&H5h*;UA-?ik`{c zb)TxOLerN63pNhfN1U%uB~VBGLN!?rTMS%RYr5VOlIx-+Zu-`X`4GDO^RBFohoj!D z`FSMD&z!sXu2DB(DQ|;wVbVjaZTHb&c@}{YBjFS5+k!dr?&DY?P&(1P`{|{jYTH!a z8Phw>!8+gS7tp0cRdm{%xPjnYWX+Yow}R`xoC$vNqIO$6O@7?l$uIA&)R>F;-(k?hdm{$4 zC_?I$pWo!AGX3QM+=_K9fqF5x%scZV1!J}G(6vds`DgYSjm>Wmv_CLf$m zQpA$AZ4g4wB=0Hu0~LdHL*E{#1dgVwbcf;6tWl3W-u+`x%7h}|KqVxKDP&mmK8+4Y zt`(zi3~Lcy(GN+RNu#+oj~?m0?rU&?zH}_ZRQ`VcDWB`YD%5kFVYR;dl92!m|1>j6 z+ya1|OilA4P+4g+;WZ7%7vZWh%=_-JVs&AT!QZ*e91OMYrMHqU#{zel&O&=P&nx$> zXXffUHH^k8rnrDvB#X$KR)Y&5vf%joQ$fT~)@Osfu3;C|Br_56_n35jwS@e58K3%8 zgKvhJyWurUGI|Byna27cukx%6WuV8rL!JLmNj8VSVk#I`;D)iUl_WH_QJ121x#H@R z{vbGlikcjhuh&u7U@LXm0*8BnkDo>W2*oKNA*W7Kg4h!;=P}*J!S{SV@E9|TDwg_? zh=MC|s8ixz3iGxd$MSlt5CvHU2tbBQsoOki#Y@d<`8HzP_aK{>3H60n!=ihxEE{CX z#)`c*@>ku<9O_+!|Lo(DN6XC37n9uK;=v+eomA_I7lD36UEpMJWKW4#E>K;L4q{vOH#u4x7R~$@7#YRxYvn15_>GaXvLQn|XbEU|!3skZW3qYqKXG2C|P@Ls7S7 ze+}PmFT_qlxuSkp+=PHgmnIp6Lg}xOYo76oTOKfn@8}dSb+%)k`{b@y?sLD7$uNvP zAZvo;K=QuuT;*ph$4lAd9kX=Hh`B->CLhYvP>$-}m3ukVu}q`#CY@0HvwGuu8k;L2 zFmrsbsI>L*oaJ3%2b{@!=^Go`>+a`2_#?z+@l0qG&Npl3`O1?I#(p^;U*&(7+=_2K zR0bQ^nv~jAyXX7(Th`~8`GZow26O-ZC_5SZ&q=9w#od25ogJ2P#=l^!7!WSm0zfFh zi<{5`-7+jPcnt5f9MXng~j$v^Z8p;9SgsL|F@3OptD zoxnZs!w7!B0JektdQ+JI2r)8+c9sgG5>V*&(OtGWCU~{UG>C|2k`BXRj>Q}0416@M zP8U}xZ%;A_#$i`wyzIqZWbNZpZsrDoo+`<={x|%P5 z|1l;E0Rnm7MNaPJ3_avfRr`I?WmX;c0L@_K@U*{gUy*7u%6ZrDNpuo{h@Y?8u%IYb z6UBN5e;OrhUHqPL4#sPgVJn+ zM?(fr1P!Yl4ePQEpAQ+n5HxCcH0sVa>K!tABWOJ2X#64Dcx=e{v!KcJ|KKIF5B?rH wxGM<4oIq3#$TJLLg(!kf6ww@t_%KCE$du${s*q!PVAxbm$ZT4R2mprv2N_EK@&Et; literal 0 HcmV?d00001 diff --git a/testdata/gif/surprised_resized.gif b/testdata/gif/surprised_resized.gif new file mode 100644 index 0000000000000000000000000000000000000000..025ddc9aaf0bcc5022432039a5833934f0a36a1e GIT binary patch literal 17405 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 literal 0 HcmV?d00001 From 639ebae8e5600b0e0912244e9be561d2a5a32665 Mon Sep 17 00:00:00 2001 From: pirosiki197 Date: Tue, 13 Aug 2024 11:10:53 +0900 Subject: [PATCH 2/2] chore: add URL to the GIF test data --- testdata/gif/embed.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/testdata/gif/embed.go b/testdata/gif/embed.go index c3c37f02d..006c79ae1 100644 --- a/testdata/gif/embed.go +++ b/testdata/gif/embed.go @@ -20,3 +20,5 @@ var FS embed.FS // new_year.gif https://freesozaixtrain.web.fc2.com/freesozai-nenga-train2.html // tooth.gif https://patirabi.com/2021/10/10/061gif/ + +// surprised.gif https://patirabi.com/2021/10/08/058gif/