From 66d458df47ba932a46f4a9a3a7e3ba4878ebd9df Mon Sep 17 00:00:00 2001 From: Persephone Bubblegum-Holiday Date: Tue, 11 Feb 2025 15:24:00 -0700 Subject: [PATCH] add app icon, add settings saving, improve version detection --- endpoint-server/valid.txt | 2 +- networkPaint/MainForm.Designer.cs | 4 +- networkPaint/MainForm.cs | 48 ++++- networkPaint/MainForm.resx | 176 +++++++++++++++++++ networkPaint/Properties/AssemblyInfo.cs | 4 +- networkPaint/Properties/Settings.Designer.cs | 58 ++++-- networkPaint/Properties/Settings.settings | 20 ++- networkPaint/app.config | 21 +++ networkPaint/networkPaint.csproj | 10 +- networkPaint/networkPaint.ico | Bin 0 -> 10224 bytes 10 files changed, 310 insertions(+), 33 deletions(-) create mode 100644 networkPaint/app.config create mode 100644 networkPaint/networkPaint.ico diff --git a/endpoint-server/valid.txt b/endpoint-server/valid.txt index 6b70bdd..123b67d 100644 --- a/endpoint-server/valid.txt +++ b/endpoint-server/valid.txt @@ -1 +1 @@ -networkPaint \ No newline at end of file +networkPaint/1.1.2 \ No newline at end of file diff --git a/networkPaint/MainForm.Designer.cs b/networkPaint/MainForm.Designer.cs index c4e9f67..c748fd0 100644 --- a/networkPaint/MainForm.Designer.cs +++ b/networkPaint/MainForm.Designer.cs @@ -29,6 +29,7 @@ private void InitializeComponent() { this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); this.paintArea = new System.Windows.Forms.PictureBox(); this.timer = new System.Windows.Forms.Timer(this.components); this.colorDialog = new System.Windows.Forms.ColorDialog(); @@ -77,6 +78,7 @@ 0, 0, 0}); + this.brushSizeNumericUpDown.ValueChanged += new System.EventHandler(this.brushSizeNumericUpDown_ValueChanged); // // changeColorButton // @@ -117,9 +119,9 @@ this.Controls.Add(this.brushSizeNumericUpDown); this.Controls.Add(this.paintArea); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.Name = "MainForm"; - this.ShowIcon = false; this.Text = "Network Paint"; this.Load += new System.EventHandler(this.MainForm_Load); ((System.ComponentModel.ISupportInitialize)(this.paintArea)).EndInit(); diff --git a/networkPaint/MainForm.cs b/networkPaint/MainForm.cs index e98dc8f..0030f34 100644 --- a/networkPaint/MainForm.cs +++ b/networkPaint/MainForm.cs @@ -1,4 +1,6 @@ -using System; +using networkPaint.Properties; + +using System; using System.Collections.Specialized; using System.Drawing; using System.Net; @@ -8,21 +10,24 @@ namespace networkPaint { public partial class MainForm : Form { - Random r = new Random(); WebClient client = new WebClient(); Bitmap bitmap = new Bitmap(640, 480); Graphics graphics; - Color color; + Color color = Color.Black; string url = "http://kawaiizenbo.me/toys/networkpaint/"; + string versionString = "networkPaint/1.2"; bool dragging = false; public MainForm() { InitializeComponent(); - color = intToRGB(r.Next(0, 0xFFFFFF)); paintArea.Image = bitmap; graphics = Graphics.FromImage(bitmap); + client.Headers.Add("User-Agent", versionString); + brushSizeNumericUpDown.Value = Settings.Default.size; + color = intToRGB(Settings.Default.color); + url = Settings.Default.url; } private void paintArea_MouseUp(object sender, MouseEventArgs e) @@ -50,13 +55,24 @@ namespace networkPaint private void MainForm_Load(object sender, EventArgs e) { - if (client.DownloadString(urlTextBox.Text + "/valid.txt").Trim() == "networkPaint") timer.Start(); + string validString; + try + { + validString = client.DownloadString(urlTextBox.Text + "/valid.txt").Trim(); + } + catch (Exception) + { + MessageBox.Show("This is not a valid networkPaint endpoint."); + urlTextBox.Text = url; + return; + } + if (validString == versionString) timer.Start(); + else MessageBox.Show($"Version mismatch! Server is designed for {validString} and you are running {versionString}"); } private void timer_Tick(object sender, EventArgs e) { string responseString = client.DownloadString(url + "data.ppf"); - client.Dispose(); if (responseString.Trim() == "") return; graphics.Clear(Color.White); foreach (string packet in responseString.Split(';')) @@ -82,13 +98,16 @@ namespace networkPaint { colorDialog.ShowDialog(); color = colorDialog.Color; + Settings.Default.color = rgbToInt(color); + Settings.Default.Save(); } private void setUrlButton_Click(object sender, EventArgs e) { + string validString; try { - if (client.DownloadString(urlTextBox.Text + "/valid.txt").Trim() != "networkPaint") throw new Exception(); + validString = client.DownloadString(urlTextBox.Text + "/valid.txt").Trim(); } catch (Exception) { @@ -96,12 +115,27 @@ namespace networkPaint urlTextBox.Text = url; return; } + if (validString != versionString) + { + MessageBox.Show($"Version mismatch! Server is designed for {validString} and you are running {versionString}"); + urlTextBox.Text = url; + return; + } string tempURL = urlTextBox.Text; if (!tempURL.EndsWith("")) tempURL += "/"; url = tempURL; + Settings.Default.url = url; + Settings.Default.Save(); bitmap = new Bitmap(640, 480); paintArea.Image = bitmap; graphics = Graphics.FromImage(bitmap); + timer.Start(); + } + + private void brushSizeNumericUpDown_ValueChanged(object sender, EventArgs e) + { + Settings.Default.size = (int)brushSizeNumericUpDown.Value; + Settings.Default.Save(); } public static int rgbToInt(Color color) diff --git a/networkPaint/MainForm.resx b/networkPaint/MainForm.resx index 524e6c3..add1404 100644 --- a/networkPaint/MainForm.resx +++ b/networkPaint/MainForm.resx @@ -123,4 +123,180 @@ 220, 17 + + + + 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 + AACAAAAAAD8AAMAAAAAAPwAAwAAAAAA/AADgAAAAAD8AAPAAAAAAPwAA+AAAAAB/AAD8AAA///8AAP4A + AH///wAA/4AB////AAD/8A////8AACgAAAAgAAAAQAAAAAEACAAAAAAAgAQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAMDcwADwyqYABAQEAAgICAAMDAwAERERABYW + FgAcHBwAIiIiACkpKQBVVVUATU1NAEJCQgA5OTkAgHz/AFBQ/wCTANYA/+zMAMbW7wDW5+cAkKmtAAAA + MwAAAGYAAACZAAAAzAAAMwAAADMzAAAzZgAAM5kAADPMAAAz/wAAZgAAAGYzAABmZgAAZpkAAGbMAABm + /wAAmQAAAJkzAACZZgAAmZkAAJnMAACZ/wAAzAAAAMwzAADMZgAAzJkAAMzMAADM/wAA/2YAAP+ZAAD/ + zAAzAAAAMwAzADMAZgAzAJkAMwDMADMA/wAzMwAAMzMzADMzZgAzM5kAMzPMADMz/wAzZgAAM2YzADNm + ZgAzZpkAM2bMADNm/wAzmQAAM5kzADOZZgAzmZkAM5nMADOZ/wAzzAAAM8wzADPMZgAzzJkAM8zMADPM + /wAz/zMAM/9mADP/mQAz/8wAM///AGYAAABmADMAZgBmAGYAmQBmAMwAZgD/AGYzAABmMzMAZjNmAGYz + mQBmM8wAZjP/AGZmAABmZjMAZmZmAGZmmQBmZswAZpkAAGaZMwBmmWYAZpmZAGaZzABmmf8AZswAAGbM + MwBmzJkAZszMAGbM/wBm/wAAZv8zAGb/mQBm/8wAzAD/AP8AzACZmQAAmTOZAJkAmQCZAMwAmQAAAJkz + MwCZAGYAmTPMAJkA/wCZZgAAmWYzAJkzZgCZZpkAmWbMAJkz/wCZmTMAmZlmAJmZmQCZmcwAmZn/AJnM + AACZzDMAZsxmAJnMmQCZzMwAmcz/AJn/AACZ/zMAmcxmAJn/mQCZ/8wAmf//AMwAAACZADMAzABmAMwA + mQDMAMwAmTMAAMwzMwDMM2YAzDOZAMwzzADMM/8AzGYAAMxmMwCZZmYAzGaZAMxmzACZZv8AzJkAAMyZ + MwDMmWYAzJmZAMyZzADMmf8AzMwAAMzMMwDMzGYAzMyZAMzMzADMzP8AzP8AAMz/MwCZ/2YAzP+ZAMz/ + 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 + MwAz/2YAM/+ZADP/zAAz//8AZgAAAGYAMwBmAGYAZgCZAGYAzABmAP8AZjMAAGYzMwBmM2YAZjOZAGYz + zABmM/8AZmYAAGZmMwBmZmYAZmaZAGZmzABmmQAAZpkzAGaZZgBmmZkAZpnMAGaZ/wBmzAAAZswzAGbM + mQBmzMwAZsz/AGb/AABm/zMAZv+ZAGb/zADMAP8A/wDMAJmZAACZM5kAmQCZAJkAzACZAAAAmTMzAJkA + ZgCZM8wAmQD/AJlmAACZZjMAmTNmAJlmmQCZZswAmTP/AJmZMwCZmWYAmZmZAJmZzACZmf8AmcwAAJnM + MwBmzGYAmcyZAJnMzACZzP8Amf8AAJn/MwCZzGYAmf+ZAJn/zACZ//8AzAAAAJkAMwDMAGYAzACZAMwA + zACZMwAAzDMzAMwzZgDMM5kAzDPMAMwz/wDMZgAAzGYzAJlmZgDMZpkAzGbMAJlm/wDMmQAAzJkzAMyZ + ZgDMmZkAzJnMAMyZ/wDMzAAAzMwzAMzMZgDMzJkAzMzMAMzM/wDM/wAAzP8zAJn/ZgDM/5kAzP/MAMz/ + /wDMADMA/wBmAP8AmQDMMwAA/zMzAP8zZgD/M5kA/zPMAP8z/wD/ZgAA/2YzAMxmZgD/ZpkA/2bMAMxm + /wD/mQAA/5kzAP+ZZgD/mZkA/5nMAP+Z/wD/zAAA/8wzAP/MZgD/zJkA/8zMAP/M/wD//zMAzP9mAP// + mQD//8wAZmb/AGb/ZgBm//8A/2ZmAP9m/wD//2YAIQClAF9fXwB3d3cAhoaGAJaWlgDLy8sAsrKyANfX + 1wDd3d0A4+PjAOrq6gDx8fEA+Pj4APD7/wCkoKAAgICAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP// + /wAAAAAAAAAAAACurq6urq6urq6urq6urq6urq6urq4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBXd + 3RrdGhoaGt3dGt21c65KrhWuFa4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ6nPdc0q1SnO1c7VztXO1 + HEsc6xzdHK4AAAAAAAAAAAAAAAAAAAAAAAAAAAAQCxCuFd1K80vztfOZ3fOZ3bXdFesVS3MaIgAAAAAA + AAAAAAAAAAAAAAAAAAAAABBt3RAiHByuS661SrXdHJndtRwVHEuuc90iAAAAAAAAAAAAAAAAAAAAAAAA + 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 + MwAAzGYAAMyZAADMzAAAzP8AAP9mAAD/mQAA/8wAMwAAADMAMwAzAGYAMwCZADMAzAAzAP8AMzMAADMz + MwAzM2YAMzOZADMzzAAzM/8AM2YAADNmMwAzZmYAM2aZADNmzAAzZv8AM5kAADOZMwAzmWYAM5mZADOZ + zAAzmf8AM8wAADPMMwAzzGYAM8yZADPMzAAzzP8AM/8zADP/ZgAz/5kAM//MADP//wBmAAAAZgAzAGYA + ZgBmAJkAZgDMAGYA/wBmMwAAZjMzAGYzZgBmM5kAZjPMAGYz/wBmZgAAZmYzAGZmZgBmZpkAZmbMAGaZ + AABmmTMAZplmAGaZmQBmmcwAZpn/AGbMAABmzDMAZsyZAGbMzABmzP8AZv8AAGb/MwBm/5kAZv/MAMwA + /wD/AMwAmZkAAJkzmQCZAJkAmQDMAJkAAACZMzMAmQBmAJkzzACZAP8AmWYAAJlmMwCZM2YAmWaZAJlm + zACZM/8AmZkzAJmZZgCZmZkAmZnMAJmZ/wCZzAAAmcwzAGbMZgCZzJkAmczMAJnM/wCZ/wAAmf8zAJnM + ZgCZ/5kAmf/MAJn//wDMAAAAmQAzAMwAZgDMAJkAzADMAJkzAADMMzMAzDNmAMwzmQDMM8wAzDP/AMxm + AADMZjMAmWZmAMxmmQDMZswAmWb/AMyZAADMmTMAzJlmAMyZmQDMmcwAzJn/AMzMAADMzDMAzMxmAMzM + mQDMzMwAzMz/AMz/AADM/zMAmf9mAMz/mQDM/8wAzP//AMwAMwD/AGYA/wCZAMwzAAD/MzMA/zNmAP8z + mQD/M8wA/zP/AP9mAAD/ZjMAzGZmAP9mmQD/ZswAzGb/AP+ZAAD/mTMA/5lmAP+ZmQD/mcwA/5n/AP/M + AAD/zDMA/8xmAP/MmQD/zMwA/8z/AP//MwDM/2YA//+ZAP//zABmZv8AZv9mAGb//wD/ZmYA/2b/AP// + ZgAhAKUAX19fAHd3dwCGhoYAlpaWAMvLywCysrIA19fXAN3d3QDj4+MA6urqAPHx8QD4+PgA8Pv/AKSg + oACAgIAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAA8ZmZmZmZmZmZmAAAAAAA8Q+3t7e3t7e3t + ZgAAAAAAPOvwwxrDGvDDGmY8PDw8PDx5Dw8PDw8PDw+727vbu9sAFd31w/XD9d0PAAAAPNsAPOz1z9PT + 09PDDwAAPLsAADzuw9Ph/tyt9Q8AANsAAAA87sPT4eH+rcMPZmZmZmZmPO71FBQUFBT1D+wH7Afs7Tzu + 9fXD9cP13Q8HGxsbG+3Obq6urq6urjzqDw8PDw/qzuLTKM7a2s487mbh/ttm7ADOKFUoKNrTPO5m4eH+ + ZuwALv/CVS4oKDzurq6urmbsAAAuLv9VLigo7O7u7u4H6gAAAAAuLi4AAAAAAAAAAACAHwAAAB8AAAAA + AAAAAAAAgDkAAAAzAAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAMAAAADx/wAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + \ No newline at end of file diff --git a/networkPaint/Properties/AssemblyInfo.cs b/networkPaint/Properties/AssemblyInfo.cs index ab32deb..9f2c4e9 100644 --- a/networkPaint/Properties/AssemblyInfo.cs +++ b/networkPaint/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyVersion("1.2.0.0")] +[assembly: AssemblyFileVersion("1.2.0.0")] diff --git a/networkPaint/Properties/Settings.Designer.cs b/networkPaint/Properties/Settings.Designer.cs index 7c8ab0f..a38225b 100644 --- a/networkPaint/Properties/Settings.Designer.cs +++ b/networkPaint/Properties/Settings.Designer.cs @@ -8,23 +8,55 @@ // //------------------------------------------------------------------------------ -namespace networkPaint.Properties -{ - - +namespace networkPaint.Properties { + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.11.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { + + public static Settings Default { + get { return defaultInstance; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("0")] + public int color { + get { + return ((int)(this["color"])); + } + set { + this["color"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("5")] + public int size { + get { + return ((int)(this["size"])); + } + set { + this["size"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("http://kawaiizenbo.me/toys/networkpaint/")] + public string url { + get { + return ((string)(this["url"])); + } + set { + this["url"] = value; + } + } } } diff --git a/networkPaint/Properties/Settings.settings b/networkPaint/Properties/Settings.settings index 3964565..fc33603 100644 --- a/networkPaint/Properties/Settings.settings +++ b/networkPaint/Properties/Settings.settings @@ -1,7 +1,15 @@  - - - - - - + + + + + 0 + + + 5 + + + http://kawaiizenbo.me/toys/networkpaint/ + + + \ No newline at end of file diff --git a/networkPaint/app.config b/networkPaint/app.config new file mode 100644 index 0000000..b68f7b5 --- /dev/null +++ b/networkPaint/app.config @@ -0,0 +1,21 @@ + + + + +
+ + + + + + 0 + + + 5 + + + http://kawaiizenbo.me/toys/networkpaint/ + + + + \ No newline at end of file diff --git a/networkPaint/networkPaint.csproj b/networkPaint/networkPaint.csproj index a176d6b..3fecc9c 100644 --- a/networkPaint/networkPaint.csproj +++ b/networkPaint/networkPaint.csproj @@ -31,13 +31,13 @@ prompt 4 + + networkPaint.ico + - - - @@ -60,6 +60,7 @@ True Resources.resx + SettingsSingleFileGenerator Settings.Designer.cs @@ -70,5 +71,8 @@ True + + + \ No newline at end of file diff --git a/networkPaint/networkPaint.ico b/networkPaint/networkPaint.ico new file mode 100644 index 0000000000000000000000000000000000000000..3f9af13f00d729416362f3abf8b48fd5f18fa1c2 GIT binary patch literal 10224 zcmeHNZ){W76~EXSHVqK7@VYg4BD|vJ6-6$SCy`2#K#+>frltGf&#jR5)(;`gY6+(i zieI6_(ZtB4N|pSDR@OE)G`kYRmA3N1va?iLU(E*xDmi&0PAd|D<0K8i7DKuFo%^2u zBp9um_F<|xFZbPh&OPVc-#hR6-g}_F~7QdabbM0hr@^5^HF^|lc0-rEphfru7A`N3TCk>tG z(KNHd9Zi->rBG7`7k`X%YN6mF5#1QGp9PJ+OHHCf2L#o4Z6(CR;W15gGUn6>dr$kJ zDt{mx<~$sF)#B|#@7P1XXo*-Xb5t8v-QvKooDVtX1hGTmQ!1z;y0;Iqqu~o9BXhR} z50>~+sdS2XVu@cYm2Ox1nD9XS+M3`^4YMEmox;E-?B|LV*(U65NBIyGTPia8LHmvi zID9D985ydShxS!ML_@#Y>kNj&!NC_ky4XUDziv7>(SHQd&eUW`}_OfWX^}P zZ;^dpq=I-{XU>r>a=34Aq=LtOld&@o_Q_Bfk5m@d(9gy`ip9FqI(YPhcRqlEEQ1HY zHk8ru<;$|XcZ{B^44#daLzm_5Q9;Brw9beIZVy=-UqYE-yLqZs4x&BCW)Q;^J6J%8 zq}X<}H>23W+ans=^nq4&vcBE~7QX;YTNKSIDb!SEP?k_0LWgD{&2tw@CrWjmr_gRr z8s<29G|X?R=tAQg&GSCcAs9tKsGXs5xq{jOQOn542*c|Et{LY;wSNgx$NiC0OKgTY z?uBkI!PIfDuWu<58Kv1f7!D78iXgr;q5kcBTGx*bl-_XSEggLY^>9o++Sm7EHaaXT zm`8}Vh9Q`?8#gKzX)mJTMLAHFtgkh&R8lC*_?c3i_M^OxQjHT{$74t{jS(EQP;jB~ zjp77-rb>se9$q} z6ATTV9Sn{RHpoW@BaxNzf${-|bDjFxAe8KOr*ps7)1dF{DGM~5?s#!kvX62KI?-sO z+=<^O>%ouqtY&Z5M8CK>gBm+atxaCnyLB;hP_S!+pQc5OofYHK?T5Ag5jC>3BfI>d9h!u2X#PV;gtB{x0u#(Qz^u=;Z`lWUHrWo?o5%@37 z-3Fdc%LzSKsPgmD$Xsb;V7%P0U)dbtpl6*T+05-g1g?D8R@;kgW91Nj zqJn~QeNTG9T%RfY-dJaSZ^Al_MGh^}Xs$_@m2m ze?L}Q=r`YnCY8yJwGzprKQc$e6l%)QOYZ_moz{rxA>v15nLJxuI@ z&hXlaST~KZZ|^wdVy`1iW3yQHb&PN#)@SOAJ(5MbVli152z|VuVukdbeAqHLcC5Mw zlAMi|$sqmQ#Q1o1FBEbZycNUFa;*QDlfoSu(uACiafA#z%((eFO(E{iu`*&7lf^Py zlTyd1u;^@*nQdBQ)=RmDeF5v;8to6L#Xf<01~ZHJ6gD}kHLHfT;G5LDNe|Q`?hG3m zXa=h=&j>%eIkw9b_=gA0ddc*^J7d+fgHeCA<`I)$+b!z0N?6p6f~jwxvuX?9CaV_P zvc^EPJrluR(8l_pB@bJ5m2apu>H@#9PFeD5J!A1=X@tI*17Q)*gMF>X1EiEm~>2$KKTeq?uJ9e@B)Ju7`(vX1qJ~V z7`(vX1qLrLc!5Dc2L>-Nc!9wS3|?UHa>#(g3mjg;ftLhS0)>jZ3M?wHsK6o~8CX;d zu3{h+PE}wLVL&IgAQZ@fMT7-7RNzp7Lj?{MI7Fy`Lj?vE7*t@O(5b+o0)q++y2v1O zGlUq&yugd_Qgna{V@IJULXEMbz!b%xQ4A0TrYOdaqBDxIqZm7ivBm2UV?&PdqZmJm z@#z&sF@6-Wi2_3u7@~*+y*5NeJUt|+ai`aa80Z*J2R0ozbc`onE#W{6bl}hl2Odnk zZW!snq63Q#5IP1FQvg_W80t{M&Vm9tO&7v~ccKG}PVo>}Xg1JWfD9NoFmPbtz`%il z1A~}Oz@P&I2L=udIxxTu3iN@20|N&J4h(RO0y!{nVBo;O0f1wC9nLrmIh0iRP{FIf z!G&+qQQ02$JNDXZuQ9CM?A*C??EUxOXPt-=Y*WF~IlGtg=>UWo`xa3=0beEDr ze|t2!vEP+&IsA*hufI+@+7|~f_Ii>N3CZR1iOZkx(?nWFa>DNDFgjLNGApQz)kpg6 z9Uq_UlYDM>v2VNNZrICBH}ZR1>;77|q21d+U}f2DEN4twPHtzPOf_88y_lJbSBdYa zIqU76`UH%$Xzjm@|rt*{V!p=Q=Xl=(s3Un+WO&j;F!@e*zH97hD z{7##qkOQ-qq2IWdNnW=?^0Q~!6)0c@wXzBS2N%1@9v*CIo9D>gw?CGC(CWL3KnGQ} zWp*|Y_zNOuDr9Z#cl(}ds}f^d`0TA);^pLR3J_$ol8gs7FQbk6p`hfTf_|Hll@bPz z$0u*xn2g8i-~fe!k|u>*-WE_4Y2g~bJ_X9(_|vNBcPineO)47q5pH_j@mV?u zY*D^C9q?2Ya>CwxTk!(*2YC8oz*JDO*&OV-c%4%>;`7um6ix?zRg@45|lbA4BfUwIaLI0W!kCdz7M*XU9l1a(^?#$$keEuq~$^7Kx75v3#jk9PzaYyKNTNoQBmPr8lF)#+)R zY{?)GNLT9q34x#*EXfW0*Qe;{1Ow>fk#U}FcwXo?JhJ6qoQ&tErzuYGzfQmAn?{n{ zi>7}%O3y=I_@6hBKAF_uTj(!NSM>`Pe&B(=I6gz8dV;phan6SRRWm>cE4_jExheP; z=W$D`R^i;;kui+x=Pxycxi^kf%~l9g6IH2b6Yx#X1o2P017Qk^bjnCR1oXrJgbIS41@sQ2aJfEWjC>dBMeUS{L zg+cTDZVLve8&LM3q(kt3+#@&5_mC%$L01>vtH=dNJxvCW=6@7UkvF6Rc`G-7iITS2 zOoI*iAgPNyVK#tNqQM}Wg~jpa`QesXBp%2tggQY&@1Zuibew) z@+bIj%r|TLT)}*x6r;g_@~sW|XH}mC(i|yC)qwK5Tt1u2Zp=q(`c(rH5>g=;Af!@e zeSTWkHx0xP$ek#8B7L?#Uu{swkBlJUAwVLT0{rYcg^f(WvLF+B@_(Zab0}5^f&NB+ zO?iSt)U?wQKKY)GK!mMe9DKCaNCf%DI%UbL^^C>;H{a9gWYURJ%~KC;B4^D=Gl3vE zMGFNN8c*`nC*RYbd{6(De^2if{~|y){PJ<2J+fet#ot}RF|PwR)jSuzUHz76eiFv# z;MEK+@oBGjiuD#(uhTx5!Kc1ne2(rdWpahJ={S9wq*J)y3v2OAn>lW8X>}*jYFp8P zYXQ9F&#?=%kR31&f4z6axOcL%IVGFVXM0O(VQoq+vaEuSp!po}g*EUVj<27J(pw@s l@XX`kBq-894LI)5Gh$<;N|3f26%~vA)BlgD+WqhAe*wl-;sgKy literal 0 HcmV?d00001