From ee667ee0625eb1685fb6aebfb424967242d39b64 Mon Sep 17 00:00:00 2001 From: James South Date: Wed, 15 Aug 2012 17:03:39 +0100 Subject: [PATCH] Fixing parsing bug and added Nuget Former-commit-id: b47ef0e88aa39607ad24988d77f90ed0de6021fd --- .../HttpModules/ImageProcessingModule.cs | 2 +- .../Properties/AssemblyInfo.cs | 5 +- .../Processors/Copy of Watermark.cs | 332 ------------------ src/ImageProcessor/Properties/AssemblyInfo.cs | 5 +- src/Nuget/ImageProcessor.1.0.2.nupkg | Bin 0 -> 23719 bytes src/Nuget/ImageProcessor.Web.1.0.2.nupkg | Bin 0 -> 16485 bytes 6 files changed, 5 insertions(+), 339 deletions(-) delete mode 100644 src/ImageProcessor/Processors/Copy of Watermark.cs create mode 100644 src/Nuget/ImageProcessor.1.0.2.nupkg create mode 100644 src/Nuget/ImageProcessor.Web.1.0.2.nupkg diff --git a/src/ImageProcessor.Web/HttpModules/ImageProcessingModule.cs b/src/ImageProcessor.Web/HttpModules/ImageProcessingModule.cs index 335df1cb5..d44596f65 100644 --- a/src/ImageProcessor.Web/HttpModules/ImageProcessingModule.cs +++ b/src/ImageProcessor.Web/HttpModules/ImageProcessingModule.cs @@ -95,7 +95,7 @@ namespace ImageProcessor.Web.HttpModules else { path = HostingEnvironment.MapPath(context.Request.Path); - queryString = context.Request.QueryString.ToString(); + queryString = HttpUtility.UrlDecode(context.Request.QueryString.ToString()); } if (ImageUtils.IsValidImageExtension(path) && !string.IsNullOrWhiteSpace(queryString)) diff --git a/src/ImageProcessor.Web/Properties/AssemblyInfo.cs b/src/ImageProcessor.Web/Properties/AssemblyInfo.cs index fb3d3a633..56fb6e850 100644 --- a/src/ImageProcessor.Web/Properties/AssemblyInfo.cs +++ b/src/ImageProcessor.Web/Properties/AssemblyInfo.cs @@ -31,6 +31,5 @@ using System.Runtime.InteropServices; // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyVersion("1.0.2.0")] +[assembly: AssemblyFileVersion("1.0.2.0")] diff --git a/src/ImageProcessor/Processors/Copy of Watermark.cs b/src/ImageProcessor/Processors/Copy of Watermark.cs deleted file mode 100644 index 1cf8fccc6..000000000 --- a/src/ImageProcessor/Processors/Copy of Watermark.cs +++ /dev/null @@ -1,332 +0,0 @@ -// ----------------------------------------------------------------------- -// -// TODO: Update copyright text. -// -// ----------------------------------------------------------------------- - -namespace ImageProcessor.Processors -{ - #region Using - using System.Collections.Generic; - using System.Drawing; - using System.Text.RegularExpressions; - using ImageProcessor.Helpers.Extensions; - using ImageProcessor.Imaging; - #endregion - - /// - /// Encapsulates methods to change the alpha component of the image to effect its transparency. - /// - public class Watermark : IGraphicsProcessor - { - /// - /// The regular expression to search strings for. - /// http://stackoverflow.com/questions/11263949/optimize-a-variable-regex - /// - private static readonly Regex QueryRegex = new Regex(@"watermark=(text-\w+\|position-\d+-\d+(\|color-([0-9a-fA-F]{3}){1,2}(\|size-\d+(\|style-(bold|italic|regular|strikeout|underline))?)?)?|\w+)", RegexOptions.Compiled); - - #region IGraphicsProcessor Members - /// - /// Gets the name. - /// - public string Name - { - get - { - return "Watermark"; - } - } - - /// - /// Gets the description. - /// - public string Description - { - get - { - return "Adds a watermark containing text to the image."; - } - } - - /// - /// Gets the regular expression to search strings for. - /// - public Regex RegexPattern - { - get - { - return QueryRegex; - } - } - - /// - /// Gets or sets DynamicParameter. - /// - public dynamic DynamicParameter - { - get; - set; - } - - /// - /// Gets the order in which this processor is to be used in a chain. - /// - public int SortOrder - { - get; - private set; - } - - /// - /// Gets or sets any additional settings required by the processor. - /// - public Dictionary Settings - { - get; - set; - } - - /// - /// The position in the original string where the first character of the captured substring was found. - /// - /// - /// The query string to search. - /// - /// - /// The zero-based starting position in the original string where the captured substring was found. - /// - public int MatchRegexIndex(string queryString) - { - int index = 0; - - // Set the sort order to max to allow filtering. - this.SortOrder = int.MaxValue; - - foreach (Match match in this.RegexPattern.Matches(queryString)) - { - if (match.Success) - { - if (index == 0) - { - // Set the index on the first instance only. - this.SortOrder = match.Index; - - TextLayer textLayer = new TextLayer(); - - // Split the string up. - string[] firstPass = match.Value.Split('=')[1].Split('|'); - - switch (firstPass.Length) - { - case 1: - textLayer.Text = firstPass[0]; - break; - case 2: - textLayer.Text = firstPass[0]; - textLayer.Position = this.GetPosition(firstPass[1]); - break; - - case 3: - textLayer.Text = firstPass[0]; - textLayer.Position = this.GetPosition(firstPass[1]); - textLayer.TextColor = this.GetColor(firstPass[2]); - break; - - case 4: - textLayer.Text = firstPass[0]; - textLayer.Position = this.GetPosition(firstPass[1]); - textLayer.TextColor = this.GetColor(firstPass[2]); - textLayer.FontSize = this.GetFontSize(firstPass[3]); - break; - - case 5: - textLayer.Text = firstPass[0]; - textLayer.Position = this.GetPosition(firstPass[1]); - textLayer.TextColor = this.GetColor(firstPass[2]); - textLayer.FontSize = this.GetFontSize(firstPass[3]); - textLayer.Style = this.GetFontStyle(firstPass[4]); - break; - } - - this.DynamicParameter = textLayer; - } - - index += 1; - } - } - - return this.SortOrder; - } - - /// - /// Processes the image. - /// - /// - /// The the current instance of the class containing - /// the image to process. - /// - /// - /// The processed image from the current instance of the class. - /// - public Image ProcessImage(ImageFactory factory) - { - Bitmap newImage = null; - Image image = factory.Image; - - try - { - newImage = new Bitmap(image) { Tag = image.Tag }; - - TextLayer textLayer = this.DynamicParameter; - string text = textLayer.Text; - int opacity = textLayer.Opacity; - int fontSize = textLayer.FontSize; - FontStyle fontStyle = textLayer.Style; - - using (Graphics graphics = Graphics.FromImage(newImage)) - { - using (Font font = this.GetFont(textLayer.Font, fontSize, fontStyle)) - { - using (StringFormat drawFormat = new StringFormat()) - { - using (Brush brush = new SolidBrush(Color.FromArgb(opacity, textLayer.TextColor))) - { - Point origin = textLayer.Position; - - // We need to ensure that there is a position set for the watermark - if (origin == Point.Empty) - { - // Work out the size of the text. - SizeF textSize = graphics.MeasureString(text, font, new SizeF(image.Width, image.Height), drawFormat); - - int x = (int)(image.Width - textSize.Width) / 2; - int y = (int)(image.Height - textSize.Height) / 2; - origin = new Point(x, y); - } - - graphics.DrawString(text, font, brush, origin, drawFormat); - } - } - } - - image.Dispose(); - image = newImage; - } - } - catch - { - if (newImage != null) - { - newImage.Dispose(); - } - } - - return image; - } - #endregion - - #region Private Methods - /// - /// Returns the correct for the given parameters - /// - /// - /// The font. - /// - /// - /// The font size. - /// - /// - /// The font style. - /// - /// - /// The correct - /// - private Font GetFont(string font, int fontSize, FontStyle fontStyle) - { - FontFamily fontFamily = string.IsNullOrEmpty(font) ? FontFamily.GenericSansSerif : new FontFamily(font); - - return new Font(fontFamily, fontSize, fontStyle, GraphicsUnit.Pixel); - } - - /// - /// Returns the correct for the given string. - /// - /// - /// The input string containing the value to parse. - /// - /// - /// The correct - /// - private Point GetPosition(string input) - { - int[] position = input.ToIntegerArray(); - int x = position[0]; - int y = position[1]; - - return new Point(x, y); - } - - /// - /// Returns the correct for the given string. - /// - /// - /// The input string containing the value to parse. - /// - /// - /// The correct - /// - private Color GetColor(string input) - { - // split on color-hex - return ColorTranslator.FromHtml("#" + input.Split('-')[1]); - } - - /// - /// Returns the correct for the given string. - /// - /// - /// The input string containing the value to parse. - /// - /// - /// The correct - /// - private int GetFontSize(string input) - { - // split on size-value - return int.Parse(input.Split('-')[1]); - } - - /// - /// Returns the correct for the given string. - /// - /// - /// The string containing the respective fontstyle. - /// - /// - /// The correct - /// - private FontStyle GetFontStyle(string input) - { - FontStyle fontStyle = FontStyle.Bold; - - switch (input.ToLowerInvariant()) - { - case "italic": - fontStyle = FontStyle.Italic; - break; - case "regular": - fontStyle = FontStyle.Regular; - break; - case "strikeout": - fontStyle = FontStyle.Strikeout; - break; - case "underline": - fontStyle = FontStyle.Underline; - break; - } - - return fontStyle; - } - #endregion - } -} diff --git a/src/ImageProcessor/Properties/AssemblyInfo.cs b/src/ImageProcessor/Properties/AssemblyInfo.cs index 7e54c7129..f783823f2 100644 --- a/src/ImageProcessor/Properties/AssemblyInfo.cs +++ b/src/ImageProcessor/Properties/AssemblyInfo.cs @@ -32,7 +32,6 @@ using System.Security; // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyVersion("1.0.2.0")] +[assembly: AssemblyFileVersion("1.0.2.0")] diff --git a/src/Nuget/ImageProcessor.1.0.2.nupkg b/src/Nuget/ImageProcessor.1.0.2.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..22643c0d59fe037e91a8158339283582b988113f GIT binary patch literal 23719 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 V3e(XbB_o=V0$v(38 zx%ZrR->VDNQ`6n+*Y*Evx@y)p%5sQE7;wM-^n$R(QijnuuHfO|ejQKX$l#2?AX^B4 z<<~1!77^U*47}e%|MlglsZCJC)y|g683cw{IoJzPv$3#JQ-SPF9n7rkErh6HP;+Kp zY7t>URgf(Z`Zxk&Y2^r^dK9sT2vJ)?p^p3j0L0W1WCw(>I5>jrAMcnufbD?L$5XHc zz!7L_1GE4E*jZV*0gvANQwQ~5byBIjIfDL+MmsB0umi-w9Li$qVD~p=kA6L>V`Bxd z@&N3B_EzQ~2$Y&i9SF7nL4~LRZ|xrKDT5tMK@f-om_-X@!eS4DID$;6sot6iQLA$C z0ol0BSlKywOu0C@SRbPW{7*dje~JxY2Z934fKVX7)By})b_734gP~R+$e;ZDduAXY zu(Q>pv;S5Gz-rFJ$HBz|1U@>>X~N6S$I8LW$_oN^{k0EDPLWSBxOt;q*0H2W#L%4dwiL#UN;<2n$#<7;6^BY(18k=NJ&{ z`ge!?WfoC=PmTq;V%F|4e$r_3S?XHW8PEHkcpIC4nM6rK24m<9T;+M@^7u(fv-Bx? zUB59WZY8@`0Iri{vp{1q3?gfY7ZrnTpWMMV>S`#m{hGyJ9pLhomKRDZeCmCn#cyd~ zl1G&kRi1dE+PyGS(n~r>COqepWw$$Rs<6GtT&>gZ5(eJ3*BoOOWLi5Q5}^|@ei4`k zs*N3+EFxjWkmzf)xu{`$kIpxykv`WmUVHU?m>E*ctYLY!aial9{S`@-%H=-(e+m1h`nn}(WH;v6s09^F<3fAnxh9S zg%lKbB{v_SOLI-m{ebU@J+|9dL(49K2K7Mg= zWL%w5PZEQ5sn~zE=PN%5N(i5B6ksnN;+`(PFAoVYo z;SUW(pNO8P^HghyspzgUu9jXz0`%FU)5Wr0hq(0ce-PNmgH2*b%>;YV-lj}vI<=YS z7L}Dp3a}6Qa+;NmW){Y|_TNUa3w+g`zT6jDWh$5%}bu9 z8Ro=$ilYxrm$@r4$@ax3JxQFW3Kad?Tzd{72c?SzGozG$?ejwsWSU1{YTLzrkyAQ z!vIoxAcrUH`cfe!1grpg`Jv9)M)Z<6j8R4}o1`Rl%ivjt4G&Tw1wLNR5Rpu**g)Uf zOB^)aCm&kD(VeOxc(FL_Z^YK3vG9y?Sn(OqgODb(;r26@gW+vg!*UusWWHca&@hRC zi`;WBo9!x2vV%E?N0}!T5vskIWma#HoN=hSZRy}tIWw5-nx*O%3vYs!79DL08{b2p&?F^(<|16P?^1w;tQs#Te8(|c$AleR> z9Pf-zEUXL9%=h8ahBvpeL-~n)o^S%r)7HLCelzpb8;n8kQ31fF;+&jHh5;b5aC3;u z3Rc?$-CxTtr31bomgVuu!we3N>apx>txN#+ASfs6fA>*sW^4POO7FlE-Bo`&%6@rq z`D(?!P;YmJWzgBfp)~$G@*>e<)vHAWQb4qVyu7@e^;^688-``(#V>0zuW%9IQG#rr z$xy)~NZ=TY)3OG<)#hMw3*bSI!5s8|OY2L>{+4zSQ)lg7W9u>t`ODSHRg2r|Ro+3F zN6`o$Y~`J{7TQ^`LgtGZQ#S54bD;fm$s*4Eh|S%jY^BxsghnV zPoS<$Ang3C?61C->{b?E?kgRw1&Jf*It`jUIcK!214-9oKZkKpGz1UKAbAu#AlriO6ooM6{tUKr8fjMbNe0HTd>C` zo446hGxV&#$9)4k5~pj>;-zbBW?B=#IF6U!e}gg_NeSJAc^e)g5D?boOccU{&HTg6 z*1Rm;o0xyBMu*Vs!_zPhGBw{=)GqR?4OOCFEWI!gJckO5yHwIHG$noCpG6SDp+4ox z(ZA{M)+T5oOEiFg=Dk;1FMOP*d7U>?AzIJa@O)v^1~$3;Y8`nnbka(G>}VSBwal

cuT-AuJ z^$jMn>tSSqvKjjBiFOgi;FM{Ddr5mX&L~>ij(aW*sqAs3{(AwVFwPL?0bQ;l4LM>a z%k3xQ$#I4SL-yayb;5BM_KsW&WMJk)rf~(QVIlC!O;Zwe=mUoD(2&GX^zT?teKwRsRq=^fyl6igeJ|42iM?UTCME8+T-m`~3i0Ji?bw?n_S8x5 ze;0em7xAg&RtC}IR42>B1J@%%$H{D(y>lfDyeqKn;Gp8Y+`%2XrOExEXkS>ZMjU5% zCa=LiLBP4sa(Kld#Q1*v-REyvEYU<^Cz=(DM9%e?(=}sZwx)zjET(g4Ucx`+V45*N z`YYk-mv|)&KwhlXjOj|s5xOJrY1EILw|0B#d^?uZ(1Fh91+QUEjEv}>J(85-q~(3^ zk?hb*dkK-9^*Se^szmY!Tf?6R-|{c{1V824lgPo~=LCHDyC9zuhn~M|;#Ex@>}K%b zNk$E#+|HX*rt!eW4VQC$&1KvfWN>MCSQ}~6C4BmMIr##Y=Y`qHcfWks$mvziB;K6M z6Nb+;?@i(f8z9wpsUgF~@U#v7;UP<bLDBi+X?Ee{(*TJ!TQLu-*fTgcy7= zP{bdU>XjsIYINu{I+d#T?d6Nyf;+QQZ(3%H|B0}HZ>Zy!XMl3WMlGCX`C4Fnc(rQgkuX;Ka*k#gzr)GSc$`7)b1P-?4?OGnISb)4uwujm3EAKu%84@T{4V z&*fry@%vOm14xvoqM2${3uqWP=`X~j{qLH^MLv*E9+(VYCyBFo1g8rV+KlxQOMoPr zD2Trr>kWuSpP^uTMZQ|~HF8p|_y@A<`OVS?{VbdexF?L^SR`2d0c+-s zA6Lh#Oz9AvMF$eP&kX%_hZczF6?L$6b;-It&9eFi#+U#K`u;q^W*#D0>VA&9@Y)v% zvK;cuHNA-k?q!}L7DOy@z~*4gPK`t$Z$r0*RktZaeSt!K1)Gpt5j&$KptE5*QUB1hEs7BucJJp9TdCru-S(k_WX9H&`z8Gx9~KtNOEFhi@Ab z(e?`XD^wH#DK1$9$S^i<>jb<=8A26@O(g(WR#AgAi3Ts4!}_F8Jo_z7Tt4X2%gI^W zNz`O$98e;!IO2=A9r@{HAR{w+g*d1LEYZk=W+BN8|?LN52_ zA=+xTLVbhfmh(!7Hnj-L@JnQZ{@`j!-0(0IY2v%Fnyi7>cX7pnosWmj{<7S4sq1$` z3lZ8_?vX?$9Ak`&@{=9sNI_g27Yy-v0}n*E3wI@jhu<_B;+do0ibuv)m5auNcN-2q z@Om&jv3N0I&{ZnZ5%Ug#B!MTmy!t-A8nd>Uaz5Qe?v8V`=|q08HNs^SzShHVbfV;$ zKiB>!TwxtK2; zIkR!Vrx6>6B*#E#-^!*du1|g7H)f=b0bHn*e*P*Lk(x0!cgZ#9}?blGXMg5jC>Hp(^Et zj?!ka;(iBv*EsT#rU!gM#jnbn_6#Am7Lh4tue|84d?DoZ6Gq=mR4NMC$u|$XcK{q6 zluUJew=qlQOwTYmYf%uz+V1hO^o8*p#gE+%nuximua3_jlJZfb!ZNIU;!^90T84~8 ziM!=O{k)C61APN~TV0${$q@a7dqW5+k6J9EDFyjTKE9|qE}jD{R8Im!fIi{b28>gv zzz38K#+c?Puhi~FY`B*Nfon)J1vN(&9Ab!dql$J10h%S?Nv?&~!Kw|CgL9)o_FiEo z9F38x+@*@k)et3~Km|T={JmgZFEZ3Kg#pRv_s%ZWg?^OOFVDEqR-`m=)+wLW+24{f zRo`cX;QB}_8tQ?3Vus@l^5efUwU3E zmQA<^GYE65W{t<@px2EpxfZ4Kfjg3{$2VfXjqdHobYqoKEsBN+q3Gp2*`e243A_;o z*1WxyCvcQ|RTf{Yg>k)y`qI!t&n&+9bBr`cl5${Y%J-*Nwy$kV*ebRyP`KyV z1#b<6{TxkY1UQbwEh(RleSvHMAnRruKQ=h|9!%p?egcR1T|(6DtCfqQUE)I)g+AFN zjK+ZQ?!TYvrBb^Eq5eY3c?ytmhTKQL<}eF-0_V35wD?L``3>EG z=i`G;WZG422}`6?LSLf~ZasdG>0sTF_LaojD$LE>a0P%4ngi3X+}-l;?yEHRwFUVv zB_n3R@BQw;J3X^bO2tjY3k91)Tkzt+8P2u!Z;d816Z+AFEx1wcT@L7nGgd7{kT7@R z53@DBD2(gd#oFP#WYWhZ&iU?1mNRb8^J`=m4$Xg*+&a0?ke>=3a&Nm(Y-W=V(P0r~ zF@~{aM=zAJGm84pApJ;OL3h;N^^$!u_B__>yuyXzHI1atDRGUyaelkEFCDVC{+a;xa5VlcC6)Mg6VDG)R+XnDBE|(vF4tSxLRDn+w;VqY~HRgxvIMnN&H6oRO%-Y)KK@ zw#+aj^O?eoXA}P$o|%gGZR(u|=|#Z7>(cgU-MaJ@-8}4R_6=Flto>5<+ikq)BFP#o z!@~YHRen^ya#ZhcIQxiD5@N#DDpu!w|LYT$IK~Hz*dk;P!{!f1=Dd{;QJpkQ_Ye5@ zg2(v;g%B(6VSn->yFtC|KH=Oxr=Fx0U9Kpe1VjM1GB(4_q3IuN z3-XEhx*rcQg!a)@jpo5GWo9v!)E`XS<)R8u={214=LN1KHxFuDP6^)?Z!6J8wvO;yS#p9ccSYwg#w5gZh^GM0|bz1OKCf}Rdp{Y76cX3h0s$iXYX1!ESFxWRLw9pn1X+{Tga9UZNk z3rPDgRF9=;Y&n2obet{GToH|1{~a{%OG$`vwtJ;BX$U#D>^Z4f@G~x#9`= z{$yH^ZyZ2t&QA48F5li_`(>K!0xc}RxE$?ZvS?ePD0iqJM3{Dtu2iC@xLvqOzaN}^ z0x_;HjGt-gIeNFeF(m|oQhyU%GX@Zmz7twEZey1zriDnZ7#0=UO0I|(S$z#@R!~=4 z4{63%pUn8uXG5}9#h-NtOw%cv9-GIi>sk6x0Lk=EwZlSe0%VylI+P(_+HvXele@R8 zN!)6_wuR};737|g@4u>WgARPHs<`9JjyQCz(7rwjyM}6c8CpEqb`Bgz#xJKVV`#IV_obQg^;b;aWLQVH{(d% z`}XKzw_-gpE$*U5W{tg4{F+8SfKEUJ`Xz4ZfCpj)DOt%#Q~d5uo_THp!O>Q&ySrEJ zmpTNSoQqNnf&CT=zX=OK@Ty6CXFyKTGk(3v||J3M9BOzf4zyFg^qRVL&*FWt6f z#X%)k9=K5cIg6I$ck@`6l1KG5&Pfd0vx*5%EEu92xd!xX3 z1hh+UZxPTl~69X$cVW>3WNeJNn%b%h7>rh@H^E@btZuKn#l}(ZR*N;i8O7 z?N+XEXzO@d`Z%q7j`6ud4V`{)i!^X*FFi=crzga7*?eK&Rl`81wDMDgzTtMm^<~T5$}KeZ=wxH(YLr1l zrTvVU{%7`7D`)XtRqW611iQk?y(4#LhuO_=1XmT`R~Yew%_9XSKZ0}#+5M=$zq^_Y ztq2H05`J;4<12#qBcy#6=|Ogl^c~^HJg0d^*4GtMYt-%3El(WCzD@4|BT&I zh9OwsGIrtHE80Ng_-vj{x{9JvWDNaBMSDK7x6)cDf)A;yhP2L4t^1lyz%}B)6S=;P zT#F0EuB42`qeh+3xBz`S^}V#MM(JDie(G83s5|dZ%M#Q-aS?o8$GS5x-hXIH+l;f9 z=2N}lA7ChA^ORg@rah*jk)zCcZJ^FSikq7(OX$8b=6486+pGDhLISpO*Qw}OpXNc< zQ(45<4~_TmPZkP2$L+9JYI(@=j>uPNWBKe`Hre`YsfavBz)xjVEJ&%;qiZs=4M*Nj zm2ALuX3s7&<~78*HUa0wAs5T>+xx2pYw3DQEU$s;D9!6biR=2zBiBZ#zABSW_Dz#8~g|A8*NG0=;?G&iVdB1o*|11X-2?1kY^i?O=+7x zF?jlQLRRwtUQkoAY;qx2!)C|) zK1PF3TWf$xSg~FcHt|%|TjHnAG}p|=_oCL>)5aA-*LI9X9N(Z4$ugR0)WVhSra{<3 z&u*`%g+LowOIkg@{?Zjczxw^lJ$@2=SDlNWHHR5C#Xi8)yitwf+J~nDkvBgr-FBRn z-Sx3GuWURF$~A)Yul5`=mol4GH(_Jl8ze1_QdiDnUq}FJ6G<5^<$IzE_yffZgm699 z+|OrGT3p5|lQs%kit_pezBcBY$MGB%!5rZ3lezSiu^Lg8AH>2BT9z&V+pvZ~HGxB+ z16@Op2@i5z`;*JD#s!h>d;9iqrNsa>i;lyq3qWGr?xo zuT#sW9#L4|!}rIsp^;FFhDV=EsO3bK#8jRR^hIem{SDI7m%TTy105M|FpY)0r1o5< zCu?=Hivxvac<^f1axQI*o+y5t&C(CxT@VLBY1RbY;T_TM$tqN~hw=kQ@CNu0JPOfT zP%NLWsVrb5<}rrU^=YS0v<9_iEbr}h1Sd3nd)Edvz|ubIA+b7wiHN&c13ssVURz(; zyjz9N+RR$FIg4bm8BBhPl-oL`rUyKqdr_fgtiJZHo!*xc&$YT8faWQ)W^+@!;AL38 zr+YxzeDTgFpzf15>cDg>9o+0St&sc+f1vhSz5IK?lUH)v2=!gls1Q3Aze zLs3d&IJ!oLl#wEpqFkJPh1{BFd=fD>fHnSE@AjjHABv}3^gm_Sj&f(9k?{5~Bjg{3 zR~GP;$Bu&sst>+FdJk{b!Z$s`x49u~YxlHj6g;0gfiBsXmv`l-!tWM5TJ&32Z;1xt zkC59LRt<@-@MG)cuE~5SZB{3U+@YFgJxsqdr8tvL}2CZC(7^55knvWlf7TDO%o%$@)`G!T26!A4SxTg%lRyZ5?$Cv+Pn@u2 zn%Me`d*ht-3`^Z%4)1EE!x9KPg3ctlz=D&XY%!(^)nun8)tV15v&x<*^ZK-ITeL?} z0h->|6}|I0Rep3lsjeHhQqcp-loWChmdDYnb|TM&OBp`g?Iz8{Mj*#$%b$(-vT|ik z6eVTLddZ3|=v!wI%5YDIEA`@C^YgGOjB}LtCXUZZDre^t*JEtZfgq@ zre(}ctkp8to5wHBw&n_g>4Ne#;I(9vA?BZk5{nc@_haMSluSH%)1XLc5%?jLgJxs& zi?;l_WA>av#`!oW-n*$X7ADy>O+V4B$x3KeS(mGX;=^*kAx=%+Kb%-1$U-$4VL-h) zw^4hYp0w{DQ@7f6Nt7f(HCEcr;*-JEG%3aWgQ-vR>B_5#Nm9+drr6RdQyF$c%uT#( z^}R03T)~34FF&a#)%CIqWbH&Ldaz0{FGapL{nUy2tq`;5>J7)s*fd|recAShvh6pz zyHy~^B;l(sit|!S4KJfAA{iO?sv_xdouSH3N!5NH72hvirAR=75kz`)?3F2G7+*=c zK}rnVcp@)qC()Lux6nDaD&~P;{d~4Q7jsP^Tj?F!Ob&eis?l)rQ5JH%b-d9J3Lk6c z(?jG&?+XK<-|5=US`#QcqRg}eqk{8I5uI@+x`Sez8MqD1d%sO`Vo7C>xx`bny_O>G zHnU*j3!8Qf+gZ|nZ>)T4azq&k%vit98rn_mQU22VM635}YMNv}iF~Hu4xc5ptUG2I zp=s){s17~3)rAT@ETRkLSwQssL&K%4XJNc+yzG7rYAj#tx@Vr8pjuVxcqr}K`JLzw zTtIjpEsL#-pGt(B=OG+HI)3dsq}yD@ojvsfEh_7)cnXP;;KT+Tzl}?EsO>A^k0Tx; z9Ep+|BW$SiIs{RSTgefl7;IYy5FHvkVbjx$W(By>8F@9acwV(90-5K0Im^7sbvxT% zJN2>=rP(IxT$$Kp_%?>eeHP>`hH+|ddt!Dm4r45;}6;kdG zyyxrvbYnut&U|aqx&Fbj=(bBcM5A3mM5YqAW>_&?ilb;rAc}0xVv%)n=?9qr1TE;Q zgeE(SHSCaBiO-sB$(#;_hDPRylJreGaV&Y$EReI0zS}KDRc0!|d!E80s}RbRko=k+ zrMhf}hmByJ6<^6AG=GBFG7u%lS66ICf{BLOIV_y!o6f3i4@U}7*u3M+p(z@SoIVlh z67hjFyOeG2?FbM4Q{Nh%crs{#fQicU@U1Z~gv+@27b$gu#kNoCq(QD$1Hzx2?V;+D z`1Gta7K!5hz@z5t)AQUbvRC<)70D_F+T98|{#IM`_V@~6j3??Jc8a>x!c1`FiNV~5 zrm7rMQW6K8c=@j2XPUSW=a?4-GPW=J{R@LT3u52Av-DX|G!7*M52$!_P#10Xv+dg> zM)*x?V=&o-^{7)`x(J@qib=mnH{H24k(gJ{eVG~&eo04r^Nsk;7N#FWWQ#xtti>es zF(lGyaz1X7z@*Ijm0tgcd3?v+juYP@eW4y&)swGLd_^~^6=~y^yW3M5m%;Uy3vQ*mCtU@L-+(fo#d&H+X7<6cUB?GP6 z)b8T4JAwlF*(FM}E0kM9uJQ7z!P&8)Y}dQt$tYNqo1#&{ics3Dopb92?T`8PyCR;S z;}nOoYR8f6NR_aR2M_iQ8l5I@I)gOkc4Zd&Kd5*JwlKyMSE4qp(R8A{FMch+{Pr84 z;3mj8Xi0!VPJy?-tIX2e_>DLu(lrSQTOe*e)g=9yZ5M?Sra8pQB1B-l|4PjT?1^`G z%ZERjQ0bJ;gX53l9w2S&s2ev{r$~jLkUCYkK9$VTEl3Nr6pUk#`Prm8zTU8o&xb(& z=2VIPpepjkeSp?gK`_$*@Br54Xu|G{%N> z#FS38IUi@AP6NMWxVE@ZI#)%K8o-~5aX)1 zIC{y)zZ+Bcrt|URrJyz%Z=RTa?b%QsTNqbK;dsVI(`6s`YD@Jjd>{|h>7aJ&wb;b@ z_0sQ26@fDeH`CU9svv>V{M-IC7s=jN_Xi>QCegNA;)#&`J`G-mzIE#@WtVp+oayRc z38LBdDY90aW-`reF3ZZe7L`MCdqn$qrA4BF<4q!I>K&e=eQ!v%^51muF}Qq7dn>Vq z`ko4Pk8Ew*J*>WP*_3UIC}xqZssn=bMQ%+!cSW8v&S`)_P3ElMjW_U&jGMkN?kqbS z`4yTIx4%8#0q`Qv;jD!NeY+7^d=MWw6x zOdI-VpdDz=gU0|)RB0%jrRjdHTLJiT%@VfCtu@jgNMEb{U#|0?S#7ANl> zb=tUoSx+g1FH!l_1$jg$CC9YS-?l%~ZE~|(E1fxkr`bAi=i+<{cB38PV0Pq3R>R}Y z)YEUnB5VQBx#rGYlh^$yP@u+3kV6%27Q62G@GRu;lufRKOHRx=PGaI(UGB$#Mu7h4 z+_5Z8!~i9j3zcef=EIkbPl_D`XkRVfh=;Mq?*z{o*NaM^g(Tqr!HEB88>^3Q@n*pd--r;b9`}lIZEA)kK0j2C zVOVQl@3BPlQhXLi-fQWUdDO)*e6Q779cE>WNJLL_Pa7=HLKjSXbd*dhL)1m|hMZtJ z00e$37(*?Sc%woZ|CUVbwg!z2ErhugLlP_WGy3zFOiNi`UNDsYn2)>>Yj)$@6l4qS zT*K^ky8ql6v#F5aY2mxXc|B~9HG0gn98^fS%z|_I6I;ptD@!j*etrLd;+cSCQJ6fx z#PDQZxq|T63+ifRVq&O#*I>q^KBDxhvpevU?t+S<{O5?^TeG-HKpsARU^f{^e(PDn z1G)+psU<@`JB{fKDADN2c>n7hazthp&v}(8gxA9J-6YQ#BH5YVmp*>&Jap!H>ozR+(+6fwH^a5OeEzXgIV|IBO&#;Oua3pVNx%W*;j_DzpHO{vW zY?T;TA<|E}v`pwyb|_;sO%>71B{A{mMivW;E4*|U$YZQty+P1KP|EkUoc@T^s$%6s zAh|YXT0ou`dLlniZPfhDB-U-;J-{s2Z&-(>jnUgZTE_G6UHxUdiJ-%Fl2o@yMC)%50#$0A4be4rq^ zc-{99|NOx5>5uCt*D-E*7ibrfykoqtRC{}b zvDD^_s*`~eriXmU1Dk4 zm}pn576oD89SHedw5cZwa~qfAd)1_fk=}+|qX& z#*ION#bxxOa>Sb|*VTHHX`_(y`twyx+?}JIgO+nB2MOl?&4qXngkU{K4tIPyso~swvb%_kvX%nD9&io zLsZ^o>iYcvnZZm=xxG=ny?cUYc!(PED(KU)-FtNyiCd&aIesm1oMHIVX*j`Uj&iu^ z0~cdP>xufe(Nig;vkqJF7>9P2xnz3I+zvxe-?7+PR)b7#qj!7xcdGd3RSt^RDh%w) zncVc6NW5X(5W&f6!T1jiiqoNO3S1r)OloJ{^Sk6qg|mZeDmP@U>XCs{soK3MdlE3= zUamdy3vVaN9lRv#^-I`_e(t(w!IU|F`qx2NdOAcX%93kI}R-dmfw#7=7HcK zoddL1T|m$pM9Mc@GroI5H6fIkX^dc-gQlMV+PNh@`3_?XeqZ?bp8Y8UqeLdzjX|k( z)%ttq&*5WJB>sVEy6bdY(s&YTd;SsUYJ1ghVt8fcOX&w@O3-0M&A9In@5r%3KN~m} zNyL}vX_Ns{`z^mN(oet86}At5zp^jd*xO6)b?vK=?p~zumKM|q`Q{Sf%>QD@uR={o z+jY|ICI>MD)K$k?n{Z)7Ru z>5OHjxJ}g5D)Mk$-%?O`Ld71PH{G%6KX}eRAAc837;vYvcLpKtQd37sxE@z6@8l?n z#XXfMaB?W4StNBiW}`%(_fDHcO0yN|C@f527t0;Ph>?Jf#ha!d6B1bf#;%Y{l%9S$B z&bw*vB$}n)-;gM|?RuAW5@GkxXwi9>&VI_xyjR}!wB&jB#_Bm42d4R&z-o6B#vV&e zn_~Z6Vmlp@cTjErPMjV$Ek16VM&wa(FE%2r{4Lvg`$ADE!<25QqhMaE2|LHW+ts)zdG>LE{WZC_K9A9j~<`PqrK_6>J#wMIPm z{t@B$xuv!=wZJet7qK$4)}p3#*THbP(ca)}7q*u*Jl=8XyICu-rzIWqUU#+@yX*zS z`_n~TUA+Z8-4As(>Vw%^t%&2_J%zq8J$T_4&?%=CgUc#^gjA`&8kr8z(n~tyg33X> ziQV9T9!sPfx*0O?JKJ|iy06L%2&ZYb;YZyYSRT65uUw_J-+E?wwHUPcXx#)_n4~}K z)RnJRT+~J1QrNC_WkWhM@2&b=wq=rF;DSMlk4mnSL3O= zwiR8eugnmR>$cO0?>r7gsYdfGIcL^2BVt>GKb_A#lp*zuMv!_Nt~GeGyCC=`Cyedx z!gr%^p8UKCb%jRDd8o^6u4*U!52=3c_Rc>(Tg{A`3?4OFuMNxs7E_x1C>ks(a=i=B zcO~r9BXU3Zy{vzk+7uhf_L2T2Pp~I6Wq1en;7d8gf9t>%F?T2Z)n$?|!(||~vjAe$ zeN{;grpJ>mj_u=qQIB7zk3A1|%PK=m64OY)f{+I{9DLMAGmD&c8gH_ep9*!{LgsE+kq5I0$;}vmFr!4R50{n;MEf-Oi z_6cOqg|SBbBWJhMA9o1?LL&!;A<TGFm_IewY;_Y4+XXNSbzi*r`QpmsP1&+y^5>UY&W8Oz5wEpZiw>y5v%T_+>y8XZ zizP=VuZN~Ce^hWVgFU{5I#9Vez`#_G zFb%{C3Zincv@*4%0@~U-xIm~J?3tmK%;vUkRF5d&FEH_uVWe^}r?UFRDpHwS*@7S} zRO*%>D!V_F0c{};kCuM<>S6_bRP%cb70}*{$^`tV5Co<&0YX4#RHnek>`_52flw+d z`(Hsq9z}lp@n=IYs3QzY1pzw$GV2HinOZr(AXLA=!$(DSAUg-J8w&=;Tk~I%R4@pL z>aXEbIokeGO!dfDK3aK<6!sXIgFTg<8x{1?y~o+661D!7SR*?l$gk95U`T;LW+sp5 zCzaJ>&TL(PZjXV0Y=1?>@;mQ;&h@X{TbVr;n3cH|2>joq{fR0AdXazz3}&W`O~CI z{7$bb2x8?9qLO%Q7b+<$+h6fYnwx`6p%5w+7|_-V>PDpn{8jTnunm=%t)nH7O4`bt zO4bo%K_zYlwF5q?e>5Xy3wsPw5bzH#e)$Wvg4%-qUCe*n{51>$GqHX&D69yRew+m5 zKcHGFNmobP$36!C4)gCr1b;K9|LpDGu;)M5r@S5G0Qg4;?AL+&xIXDg{6T>k{o-#S z1}u;K?*GmT^IPBlCn)^bWWUHXX6P@U9zo$ZAafwh7Wx?Q0nYYj|AHek|7|7y#YF#;LS}r7_ctN?-~p{t7kzS