Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/sn4k3/UVtools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTiago Conceição <Tiago_caza@hotmail.com>2020-11-25 03:52:12 +0300
committerTiago Conceição <Tiago_caza@hotmail.com>2020-11-25 03:52:12 +0300
commit00179581dd95f00e25b9d15d0343c39c7017d79d (patch)
tree8507825fc844ee19a6427c97d361d4a5c996df9e
parenta4bdf8f9f3c5fd9f0f84b1a3470d478694b66644 (diff)
v1.3.3v1.3.3
* (Add) Improved island detection: Combines the island and overhang detections for a better more realistic detection and to discard false-positives. (Slower) If enabled, and when a island is found, it will check for overhangs on that same island, if no overhang found then the island will be discarded and considered safe, otherwise it will flag as an island issue. Note: Overhangs settings will be used to configure the detection. Enabling Overhangs is not required for this procedure to work. Enabled by default, * (Add) More information on the About box: Operative system and architecture, framework, processor count and screens * (Fix) Overhangs: Include islands when detecting overhangs were not skip when found a island * (Fix) Decode CWS from Wanhao Workshop fails on number of slices (#102)
-rw-r--r--CHANGELOG.md10
-rw-r--r--CREDITS.md2
-rw-r--r--UVtools.CAD/UVtools_fb_cover.ai1474
-rw-r--r--UVtools.CAD/UVtools_fb_cover.pngbin0 -> 37339 bytes
-rw-r--r--UVtools.Core/FileFormats/CWSFile.cs29
-rw-r--r--UVtools.Core/Layer/LayerIssue.cs23
-rw-r--r--UVtools.Core/Layer/LayerManager.cs22
-rw-r--r--UVtools.Core/UVtools.Core.csproj2
-rw-r--r--UVtools.WPF/MainWindow.Issues.cs1
-rw-r--r--UVtools.WPF/MainWindow.axaml37
-rw-r--r--UVtools.WPF/UVtools.WPF.csproj2
-rw-r--r--UVtools.WPF/UserSettings.cs229
-rw-r--r--UVtools.WPF/Windows/AboutWindow.axaml63
-rw-r--r--UVtools.WPF/Windows/AboutWindow.axaml.cs32
-rw-r--r--UVtools.WPF/Windows/SettingsWindow.axaml9
15 files changed, 1787 insertions, 148 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f5eb11e..63d82d9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,15 @@
# Changelog
+## 25/11/2020 - v1.3.3
+
+* (Add) Improved island detection: Combines the island and overhang detections for a better more realistic detection and to discard false-positives. (Slower)
+ If enabled, and when a island is found, it will check for overhangs on that same island, if no overhang found then the island will be discarded and considered safe, otherwise it will flag as an island issue.
+ Note: Overhangs settings will be used to configure the detection. Enabling Overhangs is not required for this procedure to work.
+ Enabled by default,
+* (Add) More information on the About box: Operative system and architecture, framework, processor count and screens
+* (Fix) Overhangs: Include islands when detecting overhangs were not skip when found a island
+* (Fix) Decode CWS from Wanhao Workshop fails on number of slices (#102)
+
## 19/11/2020 - v1.3.2
* (Add) Tools: Warn where layer preview is critical for use the tool, must disable layer rotation first (#100)
diff --git a/CREDITS.md b/CREDITS.md
index 9cc2b48..a72a968 100644
--- a/CREDITS.md
+++ b/CREDITS.md
@@ -38,3 +38,5 @@
* illest twitch
* Khalil Nurullah
* Nahin Mulla
+* Jorge diego Robles Ayerbe
+* Timothy Gray \ No newline at end of file
diff --git a/UVtools.CAD/UVtools_fb_cover.ai b/UVtools.CAD/UVtools_fb_cover.ai
new file mode 100644
index 0000000..7c7faaa
--- /dev/null
+++ b/UVtools.CAD/UVtools_fb_cover.ai
@@ -0,0 +1,1474 @@
+%PDF-1.6 %
+1 0 obj <</Metadata 2 0 R/OCProperties<</D<</ON[23 0 R]/Order 24 0 R/RBGroups[]>>/OCGs[23 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <</Length 45582/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 6.0-c002 79.164488, 2020/07/10-22:06:53 ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+ xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"
+ xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
+ xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
+ xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
+ xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/"
+ xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
+ xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
+ xmlns:stFnt="http://ns.adobe.com/xap/1.0/sType/Font#"
+ xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+ <dc:format>application/pdf</dc:format>
+ <dc:title>
+ <rdf:Alt>
+ <rdf:li xml:lang="x-default">UVtools_fb_cover</rdf:li>
+ </rdf:Alt>
+ </dc:title>
+ <xmp:CreatorTool>Adobe Illustrator 24.3 (Windows)</xmp:CreatorTool>
+ <xmp:CreateDate>2020-11-23T12:19:18+01:00</xmp:CreateDate>
+ <xmp:ModifyDate>2020-11-23T12:19:18Z</xmp:ModifyDate>
+ <xmp:MetadataDate>2020-11-23T12:19:18Z</xmp:MetadataDate>
+ <xmp:Thumbnails>
+ <rdf:Alt>
+ <rdf:li rdf:parseType="Resource">
+ <xmpGImg:width>256</xmpGImg:width>
+ <xmpGImg:height>164</xmpGImg:height>
+ <xmpGImg:format>JPEG</xmpGImg:format>
+ <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgApAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4qxHzz+avkryXERrN8&#xA;PrpXlHpsFJblwenwAjiD2ZyB75di0858g5GHSzyfSNu94R5o/wCcsPM107xeXNNg0233C3FzW4nP&#xA;gwHwxr8iG+ebDH2fEfUbdpi7LiPqNvNdX/Nr8ytWZje+ZL6j/ajglNvGf+ecHpp+GZcdPjHIBzYa&#xA;XFHlEMZub28um5XU8k7VryldnNT/AKxOWgAN4iByUMKXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;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&#xA;q7FXYq7FXYq7FXYq7FXYq//Z</xmpGImg:image>
+ </rdf:li>
+ </rdf:Alt>
+ </xmp:Thumbnails>
+ <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
+ <xmpMM:OriginalDocumentID>uuid:65E6390686CF11DBA6E2D887CEACB407</xmpMM:OriginalDocumentID>
+ <xmpMM:DocumentID>xmp.did:367633f8-4696-b749-8512-c1498ddb0f01</xmpMM:DocumentID>
+ <xmpMM:InstanceID>uuid:27304a44-ca92-4aa2-9273-abdf6261c3b0</xmpMM:InstanceID>
+ <xmpMM:DerivedFrom rdf:parseType="Resource">
+ <stRef:instanceID>uuid:cd6ede8f-c0d1-4d33-8683-c0a4520c0ab4</stRef:instanceID>
+ <stRef:documentID>xmp.did:5674f5de-a82e-0343-a125-2f8c4317abd4</stRef:documentID>
+ <stRef:originalDocumentID>uuid:65E6390686CF11DBA6E2D887CEACB407</stRef:originalDocumentID>
+ <stRef:renditionClass>default</stRef:renditionClass>
+ </xmpMM:DerivedFrom>
+ <xmpMM:History>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:3511cec7-495f-f94e-9abc-163cc2354403</stEvt:instanceID>
+ <stEvt:when>2020-11-01T01:45:56Z</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CC 23.0 (Windows)</stEvt:softwareAgent>
+ <stEvt:changed>/</stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:367633f8-4696-b749-8512-c1498ddb0f01</stEvt:instanceID>
+ <stEvt:when>2020-11-23T12:00:31Z</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator 24.3 (Windows)</stEvt:softwareAgent>
+ <stEvt:changed>/</stEvt:changed>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpMM:History>
+ <illustrator:StartupProfile>Web</illustrator:StartupProfile>
+ <illustrator:Type>Document</illustrator:Type>
+ <illustrator:CreatorSubTool>AIRobin</illustrator:CreatorSubTool>
+ <xmpTPg:NPages>1</xmpTPg:NPages>
+ <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency>
+ <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
+ <xmpTPg:MaxPageSize rdf:parseType="Resource">
+ <stDim:w>1640.000000</stDim:w>
+ <stDim:h>856.000000</stDim:h>
+ <stDim:unit>Pixels</stDim:unit>
+ </xmpTPg:MaxPageSize>
+ <xmpTPg:Fonts>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <stFnt:fontName>SegoeUIBlack</stFnt:fontName>
+ <stFnt:fontFamily>Segoe UI</stFnt:fontFamily>
+ <stFnt:fontFace>Black</stFnt:fontFace>
+ <stFnt:fontType>Open Type</stFnt:fontType>
+ <stFnt:versionString>Version 2.02</stFnt:versionString>
+ <stFnt:composite>False</stFnt:composite>
+ <stFnt:fontFileName>seguibl.ttf</stFnt:fontFileName>
+ </rdf:li>
+ </rdf:Bag>
+ </xmpTPg:Fonts>
+ <xmpTPg:PlateNames>
+ <rdf:Seq>
+ <rdf:li>Cyan</rdf:li>
+ <rdf:li>Magenta</rdf:li>
+ <rdf:li>Yellow</rdf:li>
+ <rdf:li>Black</rdf:li>
+ </rdf:Seq>
+ </xmpTPg:PlateNames>
+ <xmpTPg:SwatchGroups>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:groupName>Default Swatch Group</xmpG:groupName>
+ <xmpG:groupType>0</xmpG:groupType>
+ <xmpG:Colorants>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>White</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>255</xmpG:red>
+ <xmpG:green>255</xmpG:green>
+ <xmpG:blue>255</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>Black</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>0</xmpG:red>
+ <xmpG:green>0</xmpG:green>
+ <xmpG:blue>0</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>RGB Red</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>255</xmpG:red>
+ <xmpG:green>0</xmpG:green>
+ <xmpG:blue>0</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>RGB Yellow</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>255</xmpG:red>
+ <xmpG:green>255</xmpG:green>
+ <xmpG:blue>0</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>RGB Green</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>0</xmpG:red>
+ <xmpG:green>255</xmpG:green>
+ <xmpG:blue>0</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>RGB Cyan</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>0</xmpG:red>
+ <xmpG:green>255</xmpG:green>
+ <xmpG:blue>255</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>RGB Blue</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>0</xmpG:red>
+ <xmpG:green>0</xmpG:green>
+ <xmpG:blue>255</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>RGB Magenta</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>255</xmpG:red>
+ <xmpG:green>0</xmpG:green>
+ <xmpG:blue>255</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=193 G=39 B=45</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>193</xmpG:red>
+ <xmpG:green>39</xmpG:green>
+ <xmpG:blue>45</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=237 G=28 B=36</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>237</xmpG:red>
+ <xmpG:green>28</xmpG:green>
+ <xmpG:blue>36</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=241 G=90 B=36</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>241</xmpG:red>
+ <xmpG:green>90</xmpG:green>
+ <xmpG:blue>36</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=247 G=147 B=30</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>247</xmpG:red>
+ <xmpG:green>147</xmpG:green>
+ <xmpG:blue>30</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=251 G=176 B=59</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>251</xmpG:red>
+ <xmpG:green>176</xmpG:green>
+ <xmpG:blue>59</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=252 G=238 B=33</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>252</xmpG:red>
+ <xmpG:green>238</xmpG:green>
+ <xmpG:blue>33</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=217 G=224 B=33</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>217</xmpG:red>
+ <xmpG:green>224</xmpG:green>
+ <xmpG:blue>33</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=140 G=198 B=63</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>140</xmpG:red>
+ <xmpG:green>198</xmpG:green>
+ <xmpG:blue>63</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=57 G=181 B=74</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>57</xmpG:red>
+ <xmpG:green>181</xmpG:green>
+ <xmpG:blue>74</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=0 G=146 B=69</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>0</xmpG:red>
+ <xmpG:green>146</xmpG:green>
+ <xmpG:blue>69</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=0 G=104 B=55</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>0</xmpG:red>
+ <xmpG:green>104</xmpG:green>
+ <xmpG:blue>55</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=34 G=181 B=115</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>34</xmpG:red>
+ <xmpG:green>181</xmpG:green>
+ <xmpG:blue>115</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=0 G=169 B=157</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>0</xmpG:red>
+ <xmpG:green>169</xmpG:green>
+ <xmpG:blue>157</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=41 G=171 B=226</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>41</xmpG:red>
+ <xmpG:green>171</xmpG:green>
+ <xmpG:blue>226</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=0 G=113 B=188</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>0</xmpG:red>
+ <xmpG:green>113</xmpG:green>
+ <xmpG:blue>188</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=46 G=49 B=146</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>46</xmpG:red>
+ <xmpG:green>49</xmpG:green>
+ <xmpG:blue>146</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=27 G=20 B=100</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>27</xmpG:red>
+ <xmpG:green>20</xmpG:green>
+ <xmpG:blue>100</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=102 G=45 B=145</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>102</xmpG:red>
+ <xmpG:green>45</xmpG:green>
+ <xmpG:blue>145</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=147 G=39 B=143</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>147</xmpG:red>
+ <xmpG:green>39</xmpG:green>
+ <xmpG:blue>143</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=158 G=0 B=93</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>158</xmpG:red>
+ <xmpG:green>0</xmpG:green>
+ <xmpG:blue>93</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=212 G=20 B=90</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>212</xmpG:red>
+ <xmpG:green>20</xmpG:green>
+ <xmpG:blue>90</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=237 G=30 B=121</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>237</xmpG:red>
+ <xmpG:green>30</xmpG:green>
+ <xmpG:blue>121</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=199 G=178 B=153</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>199</xmpG:red>
+ <xmpG:green>178</xmpG:green>
+ <xmpG:blue>153</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=153 G=134 B=117</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>153</xmpG:red>
+ <xmpG:green>134</xmpG:green>
+ <xmpG:blue>117</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=115 G=99 B=87</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>115</xmpG:red>
+ <xmpG:green>99</xmpG:green>
+ <xmpG:blue>87</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=83 G=71 B=65</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>83</xmpG:red>
+ <xmpG:green>71</xmpG:green>
+ <xmpG:blue>65</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=198 G=156 B=109</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>198</xmpG:red>
+ <xmpG:green>156</xmpG:green>
+ <xmpG:blue>109</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=166 G=124 B=82</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>166</xmpG:red>
+ <xmpG:green>124</xmpG:green>
+ <xmpG:blue>82</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=140 G=98 B=57</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>140</xmpG:red>
+ <xmpG:green>98</xmpG:green>
+ <xmpG:blue>57</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=117 G=76 B=36</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>117</xmpG:red>
+ <xmpG:green>76</xmpG:green>
+ <xmpG:blue>36</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=96 G=56 B=19</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>96</xmpG:red>
+ <xmpG:green>56</xmpG:green>
+ <xmpG:blue>19</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=66 G=33 B=11</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>66</xmpG:red>
+ <xmpG:green>33</xmpG:green>
+ <xmpG:blue>11</xmpG:blue>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpG:Colorants>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:groupName>Grays</xmpG:groupName>
+ <xmpG:groupType>1</xmpG:groupType>
+ <xmpG:Colorants>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=0 G=0 B=0</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>0</xmpG:red>
+ <xmpG:green>0</xmpG:green>
+ <xmpG:blue>0</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=26 G=26 B=26</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>26</xmpG:red>
+ <xmpG:green>26</xmpG:green>
+ <xmpG:blue>26</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=51 G=51 B=51</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>51</xmpG:red>
+ <xmpG:green>51</xmpG:green>
+ <xmpG:blue>51</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=77 G=77 B=77</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>77</xmpG:red>
+ <xmpG:green>77</xmpG:green>
+ <xmpG:blue>77</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=102 G=102 B=102</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>102</xmpG:red>
+ <xmpG:green>102</xmpG:green>
+ <xmpG:blue>102</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=128 G=128 B=128</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>128</xmpG:red>
+ <xmpG:green>128</xmpG:green>
+ <xmpG:blue>128</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=153 G=153 B=153</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>153</xmpG:red>
+ <xmpG:green>153</xmpG:green>
+ <xmpG:blue>153</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=179 G=179 B=179</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>179</xmpG:red>
+ <xmpG:green>179</xmpG:green>
+ <xmpG:blue>179</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=204 G=204 B=204</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>204</xmpG:red>
+ <xmpG:green>204</xmpG:green>
+ <xmpG:blue>204</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=230 G=230 B=230</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>230</xmpG:red>
+ <xmpG:green>230</xmpG:green>
+ <xmpG:blue>230</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=242 G=242 B=242</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>242</xmpG:red>
+ <xmpG:green>242</xmpG:green>
+ <xmpG:blue>242</xmpG:blue>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpG:Colorants>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:groupName>Web Color Group</xmpG:groupName>
+ <xmpG:groupType>1</xmpG:groupType>
+ <xmpG:Colorants>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=63 G=169 B=245</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>63</xmpG:red>
+ <xmpG:green>169</xmpG:green>
+ <xmpG:blue>245</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=122 G=201 B=67</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>122</xmpG:red>
+ <xmpG:green>201</xmpG:green>
+ <xmpG:blue>67</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=255 G=147 B=30</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>255</xmpG:red>
+ <xmpG:green>147</xmpG:green>
+ <xmpG:blue>30</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=255 G=29 B=37</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>255</xmpG:red>
+ <xmpG:green>29</xmpG:green>
+ <xmpG:blue>37</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=255 G=123 B=172</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>255</xmpG:red>
+ <xmpG:green>123</xmpG:green>
+ <xmpG:blue>172</xmpG:blue>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:swatchName>R=189 G=204 B=212</xmpG:swatchName>
+ <xmpG:mode>RGB</xmpG:mode>
+ <xmpG:type>PROCESS</xmpG:type>
+ <xmpG:red>189</xmpG:red>
+ <xmpG:green>204</xmpG:green>
+ <xmpG:blue>212</xmpG:blue>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpG:Colorants>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpTPg:SwatchGroups>
+ <pdf:Producer>Adobe PDF library 15.00</pdf:Producer>
+ </rdf:Description>
+ </rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end="w"?>
+endstream endobj 3 0 obj <</Count 1/Kids[5 0 R]/Type/Pages>> endobj 5 0 obj <</ArtBox[0.0 0.0 1640.0 856.0]/BleedBox[0.0 0.0 1640.0 856.0]/Contents 25 0 R/CropBox[0.0 0.0 1640.0 856.0]/LastModified(D:20201123121918+01'00')/MediaBox[0.0 0.0 1640.0 856.0]/Parent 3 0 R/PieceInfo<</Illustrator 7 0 R>>/Resources<</ColorSpace<</CS0 26 0 R>>/ExtGState<</GS0 27 0 R>>/Font<</TT0 22 0 R>>/ProcSet[/PDF/Text]/Properties<</MC0 23 0 R>>>>/Thumb 28 0 R/TrimBox[0.0 0.0 1640.0 856.0]/Type/Page>> endobj 25 0 obj <</Filter/FlateDecode/Length 2098>>stream
+HWn[7߯- 7ql$EaH$'@W] ,q<Μ{wo;{}ݜ)љ}}0_g.h7@yjbAl -&\6J6YIh6IܟB)9`
+⚐B.Ӊ Ig>2Hʵ@j #$J}UP-A,>"@" &I]vy8MS2[dNR4bϕP))8oC+qWIW~njsEAM| ScζE"NtS8U@Z)v!H=8yJ
+ 9|M@M.Tfgƫ;yqpp_26 ;3*H^S"ƀ+2M-b;
+D/'$}c (ZA
+w8:DNM4*" cat 7bKpX#W)@Q
+MtC\ /"YHkǒywPgJУ(tU"8$Cp$&
+endstream endobj 28 0 obj <</BitsPerComponent 8/ColorSpace 29 0 R/Filter[/ASCII85Decode/FlateDecode]/Height 55/Length 356/Width 105>>stream
+8;Z]!i=<^I%#"*FGlOSCj(O"OgEc%oN>qUZ.3\WkF@T8uR_#\q$;l#d`uIsm8*I&4
+J4^B:rY[,]mX[p)h]1I>@XudF=EV(3FF>ga>nZ'<AY)#D;:*dj2`X2"Y.`HSlO-4H
+mrL,IFf+\8(H'S*,jr`"`Q1-`Ys#.I4i6NX5(n%]![h,DYR06rL<U(28/6)6&BbSj
+!9$#01q(sfU12nK;@cFe^P"r<nPaZ\RLpsjhGmuE:sHWM>-fMt:dMb"d,%.=)l[oc
+#-r*/6.ScmJJ%RnY^)n_+B_!p-HLh8*hE)$/$h@"SsJ2fa9jFN4:,P":d1fR@C6US
+68t[*0-m-\2`5_<4U(n6[e.l~>
+endstream endobj 29 0 obj [/Indexed/DeviceRGB 255 30 0 R] endobj 30 0 obj <</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
+8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
+b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
+E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn
+6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1
+VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH<
+PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O(
+l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
+endstream endobj 23 0 obj <</Intent 31 0 R/Name(Layer 1)/Type/OCG/Usage 32 0 R>> endobj 31 0 obj [/View/Design] endobj 32 0 obj <</CreatorInfo<</Creator(Adobe Illustrator 24.3)/Subtype/Artwork>>>> endobj 22 0 obj <</BaseFont/EFZPZL+SegoeUIBlack/Encoding/WinAnsiEncoding/FirstChar 76/FontDescriptor 33 0 R/LastChar 84/Subtype/TrueType/Type/Font/Widths[541 0 0 765 0 0 0 572 636]>> endobj 33 0 obj <</Ascent 1079/CapHeight 700/Descent -251/Flags 32/FontBBox[-457 -251 1478 1079]/FontFamily(Segoe UI Black)/FontFile2 34 0 R/FontName/EFZPZL+SegoeUIBlack/FontStretch/Normal/FontWeight 900/ItalicAngle 0/StemV 208/Type/FontDescriptor/XHeight 500>> endobj 34 0 obj <</Filter/FlateDecode/Length 10867/Length1 28173>>stream
+HTgAy
+EQyOjd-jbǂֈ C@Į b Fm٬Id&vKD,ItIyz9;s߯k3
+RyJ>0xgZ8 BEŏNX}^g\K]k3u{w]xg2M|E j#M~׆W-z;q'<X(Ea+ݰ #XnP `l%T7B! ;C8 "4D3pP DXW\RXDHPI 6 )0 .d@dlȆ9 l\1v<?QCPFBF
+װ9a<@O| 0g`0[b+8 [LL6>a*A-<*f`[阁qfc;/Ź8;`G|;m<:D>7NGS>Hg}%/tNi:Cg%?TB"]tJ[J4@H7;Ietʩ*t]G{~M'zL?/+=TK9:r0023 VXenčٕM܄qB͹{rKn^ܚ۰7:mq!.Ÿ2nV܁;܉ܙ.ܕqworO#{qo~Kz[+q~r?Wry!RTC9p#9GhR)J_P*r[Vj;]r_=TO3Yz^-Q/Ke
+ <'dT40ñ<<S8xsgr99sy y/%rwyUZ^yF~n- yv;y~A>ć2@(ft!2E-l#r\1O DX(bX*-|&+JJkZNDqB'6ua܂P&6-b(D.vb-b@A`e2T P)ÕH%PV1X%X' t
+(iRSp=(؁Q}uުzm m۶mvlwĶm{{v:N⺺nz^~A(!n憻nF1nƻ n&)n榻nf9nn[%n[斻n qjFk55ZGs}/zZ_n[/ͥVZH[i'tN.%Li-E4ZJiZE!ZLh=m6Jh;vnC~:@eF(;:J8/GNA9,st.ED
+]o}~?C??S?s/K vP[}ﱑuA7ml;t}lczBO=^kzCo>gB_}~!
+"#b"b#"#"# "#R"R# 6!-!=2 ##v 3 +a #o_?I [H`[l8"ȉ\؉]b؍=^~($DMK )$đpa@J"qII,I$$BRJ*ImlvJ:Iol] Q2If"Y%dSrIn#y%RP
+IaCHQ)S8-ťRRZHY)'奂TJA?JebW]vnIUS&եԔZR[H]'ݶ;vicmM6R[ikmmQ;ig]vS{io}:P`Cu:RGhcu :Q'dSuN:SglsuPb]Ku.RCt5Vzݠun-Uvݡ;u={uzPa p=GzR'_~C/ ͙75E"[j,Űb[k,%[Kj,R[Kk,e2[j,尜r[k,V
+VĊZ1+n%VZ9+oUV{h=̞ ^^ >> ~سq#pDđ9
+GhcpLű9xpBNĉ9 'dSpJNũ9 t3pFę9 glspNŹ9| pA.ą.E\Kqi.e
+\+qeUOW\kqmuܐqcKh<M4pSn͹Vܚp[niGĝݹD D-FE=G4D#4F4E34G D+FE;GtD'tFtE7tGD/FE?
+4!XXXn찅Y l
+lFn8LS[[a8LLLLLLLBTZ`Lelͱ6[hl-זr[a+-Vj[ckm 6f=|#M z%Wj T ئ3 ;zrIY QBؾ)MdFlVJ!1
+MLa-Iֵ݄Z[!xiP%mPZ\;iW9|w>sw_p_T6)_V,%/QW/#} 5"18Va-5@ 06(*+(RGP>Un*)+YYmQ[6嶒V2*DTQTC]ՐVe%_R{m\}dp;]%3M/s%=fGqd5 cs2 |4a߳ @@<_Q5&2}c
+19&}<QRu{ƞXW_}# k֖G4~aښeK++Yi30?OU.Y5:# =IMfPƤ 'uTI#GDLO=3rK#kiܱ$TgaO. caٌ3ܙKSߏNV<[d{l39T~^jk |etW,k%DXfI eqfuvYfX5bn'zm?IEӶ3o5aV?JqMVͣFcw։]0Cu:v%ɜU|ʄ#1v ;9ک{pC!&2Sk?gYm=e6[Lhׇ(O;6K  NM{4f~6eqxF'tTǙ4 6r&+4Xgl&UtSM>.Mc˳ߦ3B{~qaF*z0<IDgx:[=3813S+Lm ;t+;쀳r\rn$ 5Bl
+<&.s)Uk'an aU?Z?~uK3#'@"TuIs$LѮ^ku.*PKˆBdx-AhAގl7sW(Hܑ6``U9q2/Pd.'qPFS*Pq,Kyq:3{8(p0ϝU}=`!LGdڽu<SB6Ns3"ulǜ_29nӎ~v[͚lګ=*(kkR (JdŸ@ƱS %T9Ipr!gth1d^4
+f\vXK9vj\MoSI4Dž,x K˽U>Bo.>髿޿mYa;&׿ګkdП֓a}ꏟ/J}4fYDl݈QHIA(K1U;w0'aWKoH*EnMHCZAX<y!?{G~sGZg#=@R~ 5G~\ ^oa%S
+8#%BHan}y9`(Ø-b# 0&Beam2̩-7~uG &/2_<P#uH~h}|$7o1X 2A4$=MS?Ai <3tE|b~ۉ{<$X^
+4TP#~'[Ʋ!sC䲻T35".RW&sSW<={hC0 t?Vls&j54J?";?\W6AhQi_mxʮ̠\6s/y<q~|9E+Ǔ͓􄿊8:A]N1MaOCxT76z7ەmvw8oBE<q.q%5\s8wY7pR`Ӝжtv&:\tA]uy-_7-}r_nI-YX
+{ û:l; ^=E_;GsDzfmT v 󃿗Z>za`)bk(O>C$ ?wpYvĻ׭:X ba–y{9GzQ8Clx{ b5|8)xvPψfHqެ^X<Nr"ưqe@/t7(\2y
+2uF>֫`enuV2C?L9VOSTr QE&^ם?5e.7W-}hf16z_&5# kCk1Mr[;zb1)3lW9W'] 3ujSޯA"<c\C
+_^ 5GDLPyPgu ^ElmW<-sTwڿwMu_GQg0sF<*}dMC4y8簾q8@?ʎ~3 ,ȩ y?T_$3Niva;{i)J.nܷszC3.vMU$kCN'?_]~{._Lt,S͕osqyBc:^8.=h/`BY,9FŘ%՟[5,%y$&?ޏyycvzp-m*{=xLJCBؽxJȾ̀{sɃϖqC rlf
+fR2j-2@8r<9N^+< (K.:<|"Ծ]QU%@SGU</w/ԵPjw2;>#mzw̜F߰МvN#"u'LjAVS!@xzvp~+ςA
+$ypz:xznƉI*f"pLHa*~ƪM0xs
+mЪU S<\_O{1z d}yʗY,p݈Zߛwy Դ+)Bߍ@|EkCx΃!w l8Dx"Vęc!G+F(K2f/B5oY尭q>K}b|#vU|koa.;ۈK<<5m7mc 9vhcQC_
+@?: /(I!CǨW8
+K g3ҪA3RS!nꢤ啧ͅA׭S!cbmn S tV 0
+endstream endobj 27 0 obj <</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>> endobj 26 0 obj [/ICCBased 35 0 R] endobj 35 0 obj <</Filter/FlateDecode/Length 2574/N 3>>stream
+HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽
+ 
+V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'K
+x-
+ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9
+N')].uJr
+ wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4
+n3ܣkGݯz=[==<=G</z^^j^ ޡZQB0FX'+t<u-{__ߘ-G,}/Hh 8mW2p[AiAN#8$X?AKHI{!7<qWy(!46-aaaW @@`lYĎH,$((Yh7ъb<b*b<~L&Y&9%uMssNpJP%MI JlN<DHJIڐtCj'KwKgC%Nd |ꙪO=%mLuvx:HoL!ȨC&13#s$/Y=OsbsrnsO1v=ˏϟ\h٢#¼oZ<]TUt}`IÒsKV-Y,+>TB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O
+zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km
+endstream endobj 7 0 obj <</LastModified(D:20201123121918+01'00')/Private 16 0 R>> endobj 16 0 obj <</AIMetaData 17 0 R/AIPrivateData1 18 0 R/AIPrivateData2 19 0 R/AIPrivateData3 20 0 R/ContainerVersion 12/CreatorVersion 24/NumBlock 3/RoundtripStreamType 2/RoundtripVersion 24>> endobj 17 0 obj <</Length 1211>>stream
+%!PS-Adobe-3.0
+%%Creator: Adobe Illustrator(R) 24.0
+%%AI8_CreatorVersion: 24.3.0
+%%For: (Tiago Concei\747\743o) ()
+%%Title: (UVtools_fb_cover.ai)
+%%CreationDate: 11/23/2020 12:19 PM
+%%Canvassize: 16383
+%%BoundingBox: -768 -808 1077 363
+%%HiResBoundingBox: -768 -807.2412109375 1077 363
+%%DocumentProcessColors: Cyan Magenta Yellow Black
+%AI5_FileFormat 14.0
+%AI12_BuildNumber: 569
+%AI3_ColorUsage: Color
+%AI7_ImageSettings: 0
+%%RGBProcessColor: 0 0 0 ([Registration])
+%AI3_Cropmarks: -692 -556 948 300
+%AI3_TemplateBox: 128.5 -128.5 128.5 -128.5
+%AI3_TileBox: -284.49999332428 -417.200005531311 540.500030517578 161.199981689453
+%AI3_DocumentPreview: None
+%AI5_ArtSize: 14400 14400
+%AI5_RulerUnits: 6
+%AI24_LargeCanvasScale: 1
+%AI9_ColorModel: 1
+%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
+%AI5_TargetResolution: 800
+%AI5_NumLayers: 1
+%AI9_OpenToView: -768.679999999995 556.999999999999 0.462962962962963 1062 636 18 1 0 46 87 1 0 0 1 1 0 1 1 0 1
+%AI5_OpenViewLayers: 7
+%%PageOrigin:-272 -428
+%AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142
+%AI9_Flatten: 1
+%AI12_CMSettings: 00.MS
+%%EndComments
+
+endstream endobj 18 0 obj <</Length 65536>>stream
+%AI24_ZStandard_Data(/
+בPs6n槈!fjUeZf}Y*ⱔ%<hfe*]m i_%TƗGw<纳xpc3a r,o԰ 9_UY-zc$EBCc8IGv¢ bc;)ec(HeDLKeQcHs07X4 
+D%H(QGm,0\429Eː=uʪ=Uy5_+19ґPhdlD٦{m#v)5B%GZ=3ˡj:v7Tvw+W֌Fq H(j EBp,u1s,,,$W^p$h4|P-X8ֱX830(PX&EB5[BWPcL('&gEN(xb #X\{YQBх#kEBư=E=oQȐ
+ff Dt;.C,[,* "j!0&FiiPy@_ð  *PI;i>XPL
+*K(x,$;Pl><#0Ag$|a BBp4
+;L( 
+cꄢ0ƢP[4 #  gӟ47IHc"{ԣH(^Y.7n =
+' FBxBH(ch0 08+,c ъhadD ƬeLzQ^쵰)CʐbiH.CW>K#;]Vl2t+xYT24Dt:vʐwƈƨn4W4i!<^&
+,֊:GB`0ƨ&űQBH;0928-BBX`,,kЁ |\w:BY1j@ѣH( `8ҪEڂ],|-㉕^'PT`L+r3%cLBQe6t1є Իb2$
+ 0P@|BHp$92ĤPlH( xBGBQƣh0 E"0F1 ㋼-^tPt<O#L(()} <&aa!=q'xwvuu`Ҭla+1 EQBH(.8cĄbi,$‘P4 PYBp0O|$X E F&i8PTZ"CJJ:
+1ZV ǣFF EYY.akYނqp3Ǽ E2x/.AH( sba|lӄ
+<L#p<\eKFBX4&OBфTv ~H(x< QGBqy -8r%w0 [zᇣ ua}G ñ_,,<=ǂp0~,xp %Zm1qm3:}/p?ࡒ)H:-A rЃh墪z-Qrԣjf#+3;CK-a s,~c\,  d`l:)+-/1"HG>r!O8;gх-n\|X0cX,,aa1ac #g, F`< i5axh< !G9qt$c`8Xp̣?Q{cᘅ.n Ƃc1H(QGBa*;/ 'Px0bj*{$v_0&^0/ c cXX,|!plj ]Xx< x0|p0w09q,4FX4 lXP1ƃ`4 @1A2x,Ƃ`,/r [Ԃ]b7Ÿ/#E>1/-+t`xLD<,4qcgW% 氆5la722B=QZԢZSrtJB:*y7mddZx8^xP,p>hEn Eh=,c bØ,~XMBQc4
+N98\6/8 F FOL(W$ <4MBaE$H("( Ձ HJ
+.xp
+L0 "D@` 4 <4D`
+8P`h`BDC2048@* ",TÃ
+*H@@
+P@(hP<<4< .xpX,Eb/0hxh@!A4<@4ȌPa "  $"Dp
+ &Txp0B $<8D4x`x  d` Px % >
+ "T
+4xx0L
+&pD<8\0C  
+(H(&2〆մ,I"
+:
+ "<  Dpp*`QB၄ L  
+4@\0b
+ !`xAH
+ <p
+X@L,xp`$Sʤ  ƒ
+*D
+-/8ge3V鋅h:
+7:?XY)[oOj͇ 8%軍T*b 7^*͈l˩wCs2n՗I9T9u2vG'WJ]]zB;]ɫ|lM;6XN~|E$^V#Ī#J%g;[̲5GֻمrmA*L3_ӔKOr<tGLC:+*Ԡkw`eΨ5\6Y:ٷޱzQ1w7vDK+]u2!MaVz/f.?nZ=k%ݫ5VF'3dU8ߧ%۷s)3+%&^o
+KYrMz,IGxg;Ow;Y>!ue-W=zaإ6CDuצ =9SHv:x3']HX"S]g$[;Ic|J}/vtnCY5jHGTJ*_H\1K@{gd3if9Y_se3ITErN9M^Y.jݞgivyټ׶T\iIY<.SɃV2{[Jlbp|\<+Pt2KW;gWֵ=ӲCOqU%Us/Ó^*!u'U5yb6LRӨȾfr4ie4%b+7&'#RY {vW!V0n7ΔnC;-teW .H˩Z#++gBD+`96MTZOeEw윑6lMo5?W:HM;UصvJ۲WJWXKfk/uJ_i=BՏL^3^)Kcߕ{:c9S 7hєa}7<K;]zMYWdfϒh<%y=Y^&虹)㚳8 R$*Ϫ)>L"+u#Bhҹ'ՂhV24qKF8%_܇WgETgScT{93g2oʵry/[;dUľudw&ɜ%$srJ*}e!1
+Z)ܽKQ)-~5<N^*#*~KYE,X\zdeG6IY>yo%wK<R3DoVlJ)>E᯼WeM\ʽ]̽":Wh\+ fF'$Dwz*޹u)ڦGiri51N6ސ`ŬNDݼ>ŷB y,b]";aI[&X=smfBYii4YyW4b%|SnJ<yn"|mxڕœJ .scSN{iDY9kXO i% sRYBYe*=y,>q놉%_b/,u:[pLҚV^)9W}ut",&Xg" ]ug hc#չ)*-4k|Ò7ŻfJ0=#{.s6Dv$٩ Kakg˗A4酮$tT%v?D]1BnUXnNG*+;޲si/,tN,u=]ݕJوTgiU*d;ͥcb3V߫5|+>U<&el;vrTCo$Je@oSNς [j4k klx+%[)fg1*o ҫ$42 IOJZ MK%AX^L9VUuNIc6:fMj]D+iVތ[`$jZ ]IKdN\&U7%ǥN.k|uzq$uSp:IJ5+g1)ˏjM11KizXm3Sʈmʨn*dWay6ʼ)c/l ,2P>]TTZݩ{UqtJ%]'1BD
+UW,Y9gZrJ7f7N,t_A*ݛk Ntn I O;x,S{tU:ܻ)\\
+"qXp^zġ2=>^N `T
+%ϲ,-$mnC%KNBF^"Og+==efz6S$|V<l
+R!]WFbd3$+W3W$s%%-K%J$W:Dhj%aX9Ԩ$J)v:-1z[А䑳&&LK9k3bdz(XN$]#*j1"ӓʔՕ<=/SXb=u]91,SB=$:J^>iSL.k-%
+ 5KyuLl˯]3&ҭU*gżW!ڨI[4J܄-GBE軨2z/
+Ǯ}Qd Io1#UiR4rw7ʍНC8T҈є`&_6V&ô4u ҫ
+;wE57_il0{6!񜕗5WdIUS\׺:.S] zUVEU#+X+}eeeÒr&C%վ*c܈aة^}UnfOM]XMrG*fb,Y"7=J,թ 8UK2Nf$BFS,"&iO44 K3b[]Q˘f9C1'K%e ?yX)x.`a"w/*W;. V-,OVs{VIo*Ksχ4Kʵԑ ъfXHYޏU}_Es! l)f^iMקI2w*9,I#ciz;b>uU7a%]$^CkֲDZKV]R;6bGebdJ}-M#_C^;RSFLvӭئ#/a+,>e/i?fSzҞWF6ȕ>*Yq7V8V+D34i|kPdCR[ʤJG,gB5ӕ$-KBShzYe䴔JVDe\bwRjVeRGZľJ*5Lj9RH '5 ]JzG,*ԩ|ǚQ[z&N#Tޛ9[̡!1y&ʑzhI0g](o*Nha"D,wGkn W$][:!6fĄ5^K ie1#iOؙLL˦u:sfх}uBGxy8v)W].ľGswȮu-n|YQ9_Neib}:^UZɩJ"yJ#&1)HG QI,+YᴬtN$%A3oIVnܲ$ooGXNjp=jW8ֹ#WlX5sM?ˌOSYk==^\
+\$Y;e.mY$+ۭ%'Ov8f6Ll% fm3~XrlY#:믂Efܙ
+:v:Qf!{Y6- 4cKj*7SfY4xNtSni3Uϕ~hg+5/qL}U5S֕i};U?ʘ5Eﭴ<iwD%6]'>ͰД҈SU+ug'$ܽ<g˷UO2+p
+_`մR;ʩfΰTj^lL}L'u=^{n|zϡk 5˗Ed!+*yDt/J+XJ4ql1cAj9{ҔMh%2nt1$;NX!9:aQ˕2Ú\Yt^Y2k=YCK(*h <<PxXp`BC  Pp䣒4p@ᡁ!!$884H3A0@4!PpNV.cOYOgJ]yl<K2* Rv32NA KiJQݳ\_E_I*cW[v 5~S֊X,,C,tUlDYZ){9ʲr+uk1f%."Yd2/947+7V2Sr,RyBbe뾗*v2XX ]5vrei6r3z,٭%;Q1 _%*I/5iXegfgkfegDg~Kc刓iO+Ɛ71^!לMMYf^K-uID$c3\,5Ji\~ʏi{2$ʐZdRÖ2<_-UÙ6eƮ^4S;S`C+=ě#V92 s`BI=rKX*;ƆrYINA^%ՎTU|Nd.Iy*ːhz))TlI4m &HVs`+]*3toUXߋʠsU'eNZ~\7T/?tͩv4<Wg!Ur }4vVJ6",Ff J6E~&>ybϤY[!B έiMYvOӬ9PDHGph
+#tVr敫vĀ9R=?-dfHՕmkZJ&r%sIHe̜Ef3NT|C~W^ȥgHChL78tLO)[p72.%U5%rn;vF{$^KWdjۍU:6Cuj啗֐˪nWX2:bd8fX9oɢB±IϹ%]=\\׿
+d%}*UUmyc\j|*=X+3*gZd{"g~ꓷBd<,VLn\hѪ&׆SfWp<ʳ86UˀPs.}:c}>T&TWtܯLXƒcJL9ŘifrSCt}}ZZRtySY:f$^nTw6I,I,]4We6-c3ES4K5͡; )5YzLU6%QyaU֕mG˗{Պ1\.W;~*Q iWϬޕYjt#ݵ 6{xTDfv?dNEqӺyw5hY֊eJO/;[f3%NkXjSxU7laQm\s0od>Xцsh{#[dUeJD۝%$?h^9F{T۴?Z0iW;+EXf#V6D#H7ģ u!TYԔ2cNHu]oL~4dRid} Z_~;C6ZqbyhS$wλTa-w˴4x=ب
+yJZ5/G?At: !YH%we*:ݵ΂7wdz;vϩ$*OI$XU+,4#r\JZb4rW5/eNyQsh%#3TN'"DW܏J_߭u>i3AZ˘HUo1At̼ erơɂIKMTLe6Y,61*I*,Fml-Ua];s8wX2 Dݥdl-Cײ2
+u+׵^r謬)9sfSݔQٕ".5^45a2+"D$u'5>|ݕzD0&mw{94wȭw&=y5v)UaX*VB1K-捲^*5W|;]~cj<ՓXUt⚩gFhnwehZEW)D֧չZZjxuwLW}) MSFlMdC.w©ṮvaN<j)k>u?wIՕ-XI+ᯗFd\U }f_|3Gs_fY:6!g
+hHxeW*VGŬ$WGTIl:|W|J&)sOYhprL<sቡM̤s(&I̲K$¬T{De%ޔU\eWHusi/y~i爬:GdInDV, 16r!A;qLB!Ξ!Wc)7;Dfu9Eʩ"˩#ǜ*z")Tr:d6nJ]#,  ZؙձKŪr>xƞ+ԛ#V<BJ"1/̉%8<X\({b]}Wi]}civ5wU,8wU<{>i<ܮ:Fx3ICrC]fwuXwWEOX76 srleiRf +EWSfۙ) ε]
+(@H@B
+Td] َBvR>*Kowv,fʽib!nj>UlfnfٸY6&f ez;Ce/sT,v׻3]M>ӊ%Y ijv!^hL;Bk\RWU!#fi}\͝j膎 Y6Cc9f>,c6VD,GFF:laxSD[;{*TyS͇hdOPbg**KizĂs_񻱛]JM ˌK|WCi79gb7%jꜢc}% 9k859]S6]v[rW]DZIrʱUXD6N~ae2+NMٕ""ۮ]H
+bUNMөOϦƮ8Se %Muk #OUc6U{*(j .%Rf5S_,36-%[ۖ4!tҕxV-VeSЪjBDD+UEcʌ jJ4Eg׊J9ӏ
+[k[!rlb!Bk%;pf|\(OV8lf:SzٖC-K"7)bsYKs|!,3 Z9,Rؼ2R%TÖ;4A;ݧCr.<?5]͝yV0ʛ=^qUƈu$,;ڰ"KdU%?/K,,m^!ZU6l/vHJ"fSd,͑-/r=вTL%ud9aі=R*XYDG[2̰ndtf%[sYՍΌcXu{$rueX.{#]oC+wJsV8c۬j;6S( ]:H"UQuʊm&БOW}3vv=팅^ҧ!a]dB|*KU-7N<|<DHr#2)aY/mV}l,Sw5|N4*k夛9aL.j;X-=9IF&̃dt:bd8[E1tGFS^Kiz3iJPZ}+Z]Id[I3N&y 'dOw'$Oi4%'4ER&$k:ߌ2
+ݕ/+b.2J.Tıݕb?*OTkYc!f V#LڜAc{wfӹb_tVem9{N V<)uœ , Q RBsU=jsUu*nc joy~sՑ\BB*W:ٹޫicɰL_vJ݅?%my՛Z~~Y<9_,p˲hn4<%wZ>X^kZuB`UvGj){Rb+Z Jii*5TsRKe˚2dJn>컚T͉q+zIvMz*2š),,U^3cW:.+eLRS)
+cj}+` NG%8=ʏ+2Ru5q~sӂ=1Yt)moX%Mމ'_.Ȝtd$7k(`>#JŎC$Mvf,XTq>4RWI
+]!5 <|]HkYى*)?(\h
+2Tx;Dg` Jv|Su\XS~--C<V`9hK!Q 8n
+!ƧzrpEք|eU7uׁV76jegO`؜?*!nU*^B3\\Y =e)W ̢05!m-\ZO + .b57[($td(?)iD6[ٜ|sD]"_`("<Q_@Km~БK(wKowذg2d{W !s G1R*,Tx@j3,rE-h~ҭ@}V@$0 %k<2'hdLQVwօM6/GH$z
+uP=pYlG3<
+PfNr#`
+bM/G6Bz˓VӇstsQ*GPo4bx?4VXrD\Hfu3iV?/%oXt?\Yo֞7o )_P &(@zc7_&IBW/XkC
+Cqڝ>9;?œj/i %SXoI~8\rqjM
+)SMxGP7
+NcM(~ՅR4
+USǸ^qWΣUcDB?{?nM™M "4I2"Ƙ/0}
+p#>':cZy"\~07vD<O?^s$;GOg
+s9C v!<z~"w_;A_[Eʉ#޲{7I)ʆUi'{N ]|GĿll1Ksa-sl5hTn~KX2> ЦbKvs+?@{`С9΄i|$fh5ѯ\yIOg<0qpN(ŪC!o]5<Y7R+ye`Ǣv}%Ϛ)m1y9,(" ݤ(7BzG&
+^y y4S=n+ľP:,
+
++3X Ӫ\V03X,qCD4mm ݄zt[KVI(:e
+ܙ1 LOӐ~Gd?s.Y $%kR>
+7ƿs
+]Im
+_`Jm
+{䠮Z66]d3OԀ_dxuB޳d
+ji;Āek$iĞZrO
+cִÉi;F"Z bA̼ aK5@]jhVɮqd዗ Hx6Ƞ}VJ8WA[S Vg\"j*|UH ia?gK;t4¸Ab+rBv<a2-Os?f$r=CZ g?I3q\mٮEMǖK pɓOSס?ȍ"B"C\N?RrP Շ*1
+@>g|i`o[ia?dsX䳓*q9l
+2Hh6U [xb>ۄ&16 J*6+vyj`Z埸/@#hDG=;!MΉL)$G۟0tAW$Dްq7 ^AMH14e]vdsy+nhڽf^t;' Ww3dmS? #~%qU͉+Kr=ՉO 0fED!Q×w3jb|?
+⍭rT.pYh?w/c1jP$;*Of5Zyw zFE6?@4C1>z$ΓSLl;3_ڵU'l#aDO⼵VOh~FQ4.C4$STOztGe2T]q%$EgE:L7J*|lt-Qo&JwdT0&gB]Y 1(?[trL{ʎi:=
+N(cTm'RrVI1©OqW,`דL#ijv+f(zש-]
+%7M)|Q#F%3L 8 ɔ2Hw7gS`!0l9by/n0
+e!E"Ro1S&J}2cNN/ʠ M$Ɛ=NqwxG(U:c)ȸU>,:? )XkEu`EHU !tRe>
+@ V^CM)h\9
+%e@u_12II& ;$RHe9ȮKN4I^,omؚ\nx s.Yg*@(0+gl)@!zhD<ͼ͙i/Lum+Bg4Vdc)ϥUFIwAҬSݙb! Em%(@}Qex,mnrqkgGB 7E;8v4CcұB1I2wԕ1ĄX&)55Cyj\klӔK3srT9#u)'S|}U& L golz %Y!TTjv=p
+
+tpS^
+^| u\z(K 2NZgĀ Aܨ62Fz^ʄnBJYsIe!q]QH
+~Hb}{=kd_Um`B'"]FӜZmߝRVyIC=.콣F
+o&~R%,ݷрf:қ$)Qʹ訊,Lx3Ц_L60P$]ܨ#?1U! v!>2 9pP
+Inq֤qc
+?]B1lfQ&BƤ0>S0e
+JN8qO&)em5b
+PS)7:-݃fS{N,5zf YEG]~kjrSTF$}-1-tMG xMvЅ&a+Wuy,ONT5?jB @+U!OրI$@p ɬz|VhFsnB4]O GDBkc 
+\"rfQde6
+]G!׏awPCf0hAxR{>kz&^TPrĢ)CXB Z L*vWxQ4+58GڍV6bbk@>T&k RQ25˜RfJrTvXĴOgR4G8}8JI$Xd{`q5!LRFg X`y't[DuH*~̰nx|c+yti!\/Z2˙#R/2IEmTqo8Ul0/ĒRCaFd[0sxzs.ỌaS:Q',LXc܂M!(()fjN]b `˚Mf ޙwigmh>4 : #!4r5D&QayExk5=KMlWo$EtFyWu6
+ǚ xqL>r,^ :בq|E N {͖F4t d'/$r>9u1DŽt9v?:uJt:u~Syy$xRo#7uSٱ\;\w@O
+-PzX*cYnV;mQ-C:wN@A;pxK߭iʨH.M4Vf|#*SCM1EV@s"u*-LtDG.
+-`Hfj^Cv50 2sm\,Z؋𡝂a AthYH56`5¿uY zYJ
+t2ГL:LGf}JŷNgq
+8bKէRUR<.VZ5Kk_7’>ƛ7C@#+ŭZI/9%6jj
+!d aR6x4wCuNB Z]'حAj^zϮ$,D!:M!`;!O6P8i{~]s/V+W7wZŏxSUdODGU3"|}qW3_ӧݠWzwo1CW"#U<: M̓RD.(h xX^@B*jx;3L
+udpu7chWJ6158Qu@8[GĈ o-Zy?l*;AXDr_ٌ|~!l `1T`q!?`%8RR{ЭT\TN-]栒%#Ym|Va9y wS$՚^L z PسWbo G A$l CdQ_h
+(PO xL)Mq%S̕.FII9SCr .RL>6,%ptsrWzʡU:TޝRY6sR|NQgy!#Pr9,$8I~g%M*テ9&xp IkЃe4<{@0n&ÙB2?$Jd@b=>4@Cj쾣r"/ >sA 9ةjJ?x<?+#(]#EEE?yڬMDQ=!;Q(׆eOIJEغAcJ]DaN౦Jk9*-O1gj PJI||.14,`SO)MUC'bĪ7/rʬPo-.`F ,(mPS 8Lz3!ÓhX8H<XGh˖Btc;
+ޜm1B2M}\tptEP ᲈ,$-$4-%i#㴛Dz=m^H2\kW{@} ڻ؅0H'&!dV&SS)k\X}5Svilq}3SxZ-($\)n$OvR]?bo͟
+V`(bJ)f؁W?nS <;,&C
+hF3Z%R$ hJvCT~YXYQ- &kv( EBЩ"g}ACamCnNc 6޵)}wkr7F- ?TXŁ/>
+fyiPzdV|4VV~
+_@t_|ei{ "Y?ǒGYoID/zXcLlbܱJέ }!>
+P&T\z7S!hn&s|
+񈕂ivlCOn0Ծ.KdZ86 i€~;z@:K农ގ&_I?`e<l Clx Ayې!{J6B?UI)d8ƀC{6d_*W>yYDNd^_ՓNj{#(h@#KMx͂\ΨP7D ǚ۳QU:hO X4ӽIbJ"j})ޭntV_Vyi%xk* *k1jץSLRXN2ZrSCTE\ 3ٍ? R՟@@*x"1|Ά\N(%/
+--}jS;Ԝ-
+߂2Je!I > ;O,Gwm=:GkQ*L[ 'p'˱EoUgмl2(U~ ݘ٨2 bMb3 b
+>}f奌|$DsH`~ a,#1VTaBⶹ`= 3 -4NsQ@Rt.$kb
+E(R,?EcOo wLyRM_Oa\Ga؊yo`FFYcEltǥY K 8e~Guj?> ]W:p&i:<
+ۘ@=k}DACލ!f=
+W:Cft
+4^k]BZRf]qRYLJbz֭b)Pae%@as)a|}C80vӘ^$ߤD4p 7&Iydth8~~-^ېWtJZ`VC-3KgGȆXJybڑY#{dBĞ9@)soE3>DիN^Wm l
+Hl<vT"B!NU^j/^"D`ȮpUͬ$?tcpD&s*ܶX`ǒ]a!)"pv( WԒ))õ } RKNWThܿ*Lc '-!7BN* Jn 91G, 8 ZME6HDŵdTx< ^i2'P[r_AJ^Pl+65Nq%r4ha&Vp1ƀOj8;yJ}r{%,J 2:JjWN=R2'_@E\s|';E#@sj#!cAseViv*?R#jܡ~]s"uvG`i+hzOyYȀ5ƊIGiAZw-Snr_E,n.v(=e!F>̲P)ϊ^rFм '0vOF8L)%!55|{a_🷀ݵ |[P`a>mmM'n4'
+>r;?~;㼭pbBI%3#R<nٖpaA=G.`qA ǘO}<ЎBּ. ~@lr9 5֜% 3-A5ױ_2J)
+ Ԧ fgRZ| 0V+19>y Jݭ \?cLn
+]U5LH+W1@El[N֎̨_NFCk7-QQ7g_v~2ZAG$7$rQUGLbd\]xN wLeR޷op\,1Ba?cqcyrt ?iJۮDifI8Qk9aGD
+JLm.>Ar%Wq2ظabneBtƷlaP?x2y,+0)0
+ڧ<4'~muf[I+1mw<Rm+6#5j!qt?BX:<C >:rr_.9΅x7I[,Nqݓ&zM.+ZO\!<:+GH%RsyIv9TY.c r? pX>FX)KRbdXoq0
+Iu;MTz[It=ITڟ'mxTxꙘSN3G_0rJ[0}M?Ⓕfra&v̧O˭3//@JŶMEN5~IiJF[o 9,,F*T<fBhaEy#<vB'oKdz-*nK_'dբTJFߵ/"aE[AY8,VS3ٯjjlwdMNٕ4?r:@^Ho0v\iZR6
+뾁^!?_"eec(񂩵--ȍ}Q5ΑTGvQ.9س_O\N,S<*R;P>]Wa:j۴MWO~f H~Ё7H&ĥ.an/~v
+`_$8Kmx
+^UV
+z0Ps ؊؇OYmx0BOd._َxQЩ:2 !+M&6hGe:I]'% O}"-Ui.NTa)0$h 5OYI?)p(A[QW#5zS {8gMV>ҹz3!s|Hlbn% H/:;qd6t44\אd@? "yF5q}P_ᢤe~*؜5{&:
+;_Yλ_ >Qߺ|]w{SfjKxl˪yև<ya4l4xtX.(6!c{0
+|5Z5,?,`v Q@w%ɍ0O>/Dw9"Rf!OV 5ኇ-!h(^
+ ՚EvIs P}qYMbB(띎*A aR\[fû]+
+UH$z
+n&9bզ _L8
+Ӫ:㯼-B ү׈҇茳Y4K i笭.vfIiE_uK
+9C߽OE+Tc[:N^**IDےJ-}Iz2`Y &X:Z'=p#~,+,5y^SFDƣOy2hjVfDrp êAe+`={EaWČg!Z§V&LK+UBs
+l럒'eO7,A+, 5Db葵ZGHes'5Klx[tnF˭ҰCpYk]@'P19/p7N|TUP'hf VF/a6vKMD6{t 0/au h$#P!")L| zPܪ^BQv@=Ȭd
+0(4[љBfدq{
+.˻aj/ C`k[VDCf"VP&d$aW2.`:bY.cf{mySnO9
+{@Ђ<v'{ħ^|=@Ut#z&KQiz͹!KwOv/b } <TE%Љu+&
+vag bxja7aOJݴg76*KgŗOksK1 H xtƦ^<"K7~FxX17nHvC$83a#Oc~-#ń14XҨ͠ !NNe!*k>Enל]5:֠M3OAyV!V%ON ~~5}n
+=a_ ү20w:l HH8Ԧn2
+SQbqQO~tҰ V UfLvVqU
+DJE Fl%:$H^# sYܞG 1p('ef 
+@*AM-(hbb
+H.&Kk|
+dt/eqI*YKLf3z(0#D-}ԍk": ||@M8
+WF`˱1<p2Lͯr8؀[K%SUܥ9ְ}o3UTuT*Kwk\d?7ıJ*䟈ql8n3RRCuDս!G`-V~rBX,ڏf#K/fϸCZdJpSj^lHz SA9L|vE^EN2_ z|aG6JXRfhfB=U)n&F<0R}۲ab n ' Nd$ݡ$ĂF G54y"?
+i91Pު1:)j6"a=ufdC@0+` F {fT |#IWti#_Mgخҩ?,si!It-8RWa=]WP ]\!t)7W#Jʅ5?r?...H#jxEoѽ~s𗸅#5H[ճu)-0z3> HWf$@ޒ%۫u'< чm> &`Kde:ǸKL̡]$
+3{;D ܽ!%Dҿ
+,-V-XU ֭ $'R:J
+JX8|
+*I)p7?|j@nEH"NbJ RbNȊxnd9Z0. kv)(G:pݧTcù n!Osi>SoS?A伝P̓B/Q*qa~^}<ZS%X|O=oY!M˲ynV
+oL7?=IpMAm)<]e b.f1ɥ"哘h94
+# 0Fl(⢐}L͞ R߲i 5a\)GzS+#NKQ- pTep#L19'hQo؀{Grp%$q$lh0H,n1y]])]M
+JXDK(%/9ofuIGZM_͝ASz%ly$Oo[]7)lCS80fT=ts dI1<{mO_.kb?pVj ó9쓕(兄ldXO! E
+wສ<!OY^cԪ2m5\%Z
+&syfdWlX t @+3զ e?!P+Gyd+,Oo?r8~B8k 6褳u7@,74$GuR0 Ѯrm;0Soqpp8]adr2=|SL$.]qxra _&V.OΟƗ{Crp$*U^Zn ժe>X|-m_{xࡔ\&\|2(.NE<"9(mj᳧S]_7
+m9"cX\(ԡ|lACbwG٥;dܦSP%mdH9LHwhP (*UHzhSxX^z)ݮnH7Hi[e>C(61T6r ,wk*ǬgJw9 wi2KʃE!ռH>)H$Wz֖Q7)<UHۉ >ڜeyk#h(Am@4a dETUS뇭M^/,R{?p32{fQwr[m'Աpצo"Z 瀓Fr!uL@v߹9ikqlfS/Zֆt؇{]KA1 &;)<q.پ
+ZN2Ia-
+@Ч_ƪ-N
++_ۗ&Epkmwr/8zE'*a" ~;41ߪ Nx$KemIg}>ChA$4uMBQL1D"&ث]3K̫b.V+/<"* E,QdOl94aHDwBpmT+9WA=3 ?AzUP B}@3<_yI$S gYNB%$܋N/|d*d*2 N=F~tWHKil`MuՖu=#̾AzxVSsU%6Dm6[=!WQDcJqobfA*(5T;XD~ўUb6wR=>ā%Ԫͱ$䓝21y\21IX()JP*y& Q}r31PphSδP w|8oy|_U}OCF Aa>N'{k>KC'$t&B't($B#ZyXt18Qj$FYM(_8¼<bj*nH63lduċ56y}ӯy~Pri)F#-qB <1ٴ/8ᨐ}hO '~ˋ]6D"pu< ƿ<"+q6bTŻE:[b̘|+%-+ U 5 5AJCAjJ:T T
+!UT^5FՂ \zŽUFjSQ鈊-^ɬ"5Bj5C-HGɧ8(5Y=#Syg#@2)z{24""$DByPlR&E0@)c@iIB*&C!$SZ!",P(0$BL1A !%K XbOB g `#RB:D9!~& ў!xJ*D01  #MP(vQ(Jv $VVCQk'g=4#i{}u@@/R 7lJܮ`G - % St" k:!S6H?Pg֋G%mA<E
+ߙ&HI^dyxWxQ #P9‹Ƹ(iԃbDbP4*U+uS.#*Թa
+CfZ
+jUNSjZ$ȇ0ll
+w uNAiؖ(sCWz&%aHa= ejP
+ O tXY
+BLߘdED4z@B
+IszL
+R;WC('**Y 'O|Ґ+mi<_l$a>-\&bzF) L7Ͷd4JV'q»?FSU2Ԡ瑡0^4%O7OLG#u,Y] WhB ]ip}Zg+E mJ>١Ld6 yTujV] 7#x*#35
+]d Q @i#҅dT*x355D6#2VL̉.Qpf&nv.TʆSLQ(ha2O3Y쭸FBBi`7ɷjpRejZ~(1bE-c(ɚ5C.&$oFB!h2f`~&#Dah D%/n\t'X¦XmYGD.C`E9RR1+&HߊxC12MS%Ab#44qF*DD3R-{$ lrd]$(֜$8cU釣i8l)uZJ8ZJ<SCLHYfrn"H!*Rl`Yɘ.gf 9~J,BKJ\&>
+/^AJTd-?} !(O?e Z*j*F|]ciWF!4] ,"e8aAHi9K !Bd-9 @(EUf?+ ~ ^_\B34Ո0? C3 BIT΋ 0QSdZ(l6u; a})%N9_N|'iqLC I48&F**L[J$DD "",/PTH,0B %!8pB9#0dUÍ,{M p@3h„y}0%%vn‰&US[Տ_xOQQoAoTbqGa K"F,ad,o3SL]',5^YXԃH椘תԹ|)ﱌE~v.1ٸ$
+ɩnSBocm؛Ꝓ"HTS3f4Q)B4g2^9hN=N!U1_Xw(TTyl5P*>FW OcT%tq.G/MSUPUUJ?{E[뇅Qھ-johg!;&պ4!_ժ(k&#;eNMi'㵟1F!
+6OӌēR8QU *j<UHH,,/(Ilu}R$v,U,rf17-:BFGh3-*вGbAgCfQk/֨pBRG)iTjw\Bxs5:v%<R+Z2΅6&j} JW!XrU캌<\XqZ:),c~BqZEAC#RM6aJ8Y7ɮdj8>
+snguy>=ἣ%$ѱ9We5gX\8(g)^8,ZRMt%ZF'=kaqf#σ1' ͌~yd~И hɉ%qà qI|܂j¨
+ ])"fJڽ(^HÒI(0$,%:,#""-$4!iHnۺ\Pc[Ae
+2VM8zjSBu~TE.ST CvOC@2ӍR
+WM++]T2gG !s-jDNňZM.OڐF|պF󄂲 3<1Jj׬ Y+xnGDTsHXKhӒ%.UL6.CǼfQcY3ճMVKQ-q['Gӛi]cY}A2i妙v׌ءq<c"W/UuiEUE%6&Fp=FbӈIZ͔멾$&0wpv| z8LӘG2'tE$ZI䎝ƥ̥32x]٤~$k:RgT)3%P˂ F7$@m9v/7()//#D#n(GY;2]NǒjX38w|Q2-BYv C2n.샣+y>ļ]6K2>b4P^M<&Q[Y1 5eՕ7۬V*X#߼=ż8/0gG\IhEr7;ʪ)Dų:5+fվ:aNF*lJKkW1gj+!}t SZR,bCl:J4J Ɩ/Qg&2g*Bu{hB9^Jp-$+A
+)jDeh8w<)؍0\\xA4Hxv9\&wp`HrqA&H-? y\N8OàG(ysg&hl|ƙNÌ#I*֜ `rRKɽ6D$,"(QR$R0K!JpjJ<9ﶃ'YxhwɁ6;̧S"LC2B FE1uP!Damrqaopg'éTҼ-@O+-@3v{v5d2Q_*h2J~YCP/f #;|,GE@Y bB\v0 BBWc4qSᬄS`ߩ&"p6[?$9%APqtR<Ahڧp_ r;p:{
+?g
+J A"jN='730o4Dѓ
+WDB[ 8,VƈH#Db#jB (XE=FAr΢I(I @G%45O 41 pHi .D) A*B"DQ A
+rDZBr 0dAZmh4LBD̓cwU&H)0C0PbR*i9pyQ:Q
+RQA>l[Weɶн@` j׹M*BQFHf#
+ #Pxh+2#&0h -A vC7/4Ss`D&p0eJ5)w842N@Md&LV@q4(T"J:F0!ap.Y4Btq_*Ew Q޶@=C5jBuQ Zȁ.:ASACj:M;0a\..SQȯ@.BMY
+9G(ST 11TtfSQwGG˰2^iR &Ò3
+DZjJBa^u"z=ԑ9|:D< /0aΓH?|R$ j(*:P`UHlsI"M  KSUW,H`
+b/Et6 *e
+QFI L: 
+F 2"!\iT͋E w0eX@R"r(6DPd^V_pCwX 5H\&babDMzh<L7Ԣ jFXTEXuJwfQa\pheiRp wqq_]&H*P"/L(*:
+7639d
+&Q7p5кO$C,f@$Ь1Xvl"1xa3)ˁpAzۄe4ʲ\pou>3s
+q7xd3k`5ł'
+%x3IQ&\"?=?HG'Dx!p G)mxk$υV'ha{Qf-1U
+0Dvp!# |ӦDgVN,q[Lix,W>̂z@=)g¼R%:'rU*3BLnM,5?d2nYk rM؆_zM1yU9I8GD^Dʛ
+шա#I
+4ԵKEt L }cxOӢ&X Ɉ\ B*
+$!z1@
+dK
+F]K&|&5nKږ|Ey^AAq&4?"ysY)a]iD=zFG,b=͊>]PjdکkīlEG<RDӟ#|ԌB:SI I!p(oQ4- b2* v.U~!3⤘!Ok d0Mpbh}M~J(o#JZ R}v;`o*Ij%#C${u0r6x)pcxUHa7rA-N,C!g@
+a$c0k{Khl^<xeHfu/|FiaB!HBTiyeQT=? =r\,=2t%S+G0r"GF{^ݟj,3E7#
+L=#ݞz%PX)_䦶ON7)4t cӕM@#\qCO3t._nu'KVsc*-]lSwjh7i?2sܬULKxb([_G;#MBHò:t,4 SPfYnS{AY xsdGD]v+
+A{9BL
+!@6p$h~⼛rZo%3<S ͕6q .$h!4G
+B6t$|i6;,GY&:ťưQ]Tf^1E2Nx99m_MSAB@Yq8Ѓ,ֻ
+k?=(dj.<"M3 `4Jmsp]\}<yC[=
+X#>'xa>dϡTQc1CnP
+k/gbOؚY=|X)?7WFq”{?_|QҺR ON s)Tw&ҿ5$jtzR)l&*M 5mNelސ0sޒwk$7H ku!2D\``$M!>o`f)-ɤ}!tߜ
+f-YiG6Tsa-ُt5F=}XbFXN2ڄFP%(v@BQSY7/N*OXH(cw~/Wx<1kq7<)
+O9TaSf*8PJC1&055%jt<TE8,M
+|SxwDA(:aê_F(Q 
+)N^`?Q^]/\ !6]8~g0if0jR,+8,PČdѰ܋ o3͎Qk[\T#6 {&&QJ
+b᪝! GHэÎ%?.מ⠚1hoEeO
+ ^:tf (๥R'Ah73 0͸c FMq -Vh;N8$9:KR~FDphǩvML 2 <!܀"8ʫ"4uگ] k:Tpf&X=2Lr{@! #M^/ ǏQ{QفbiWQ-cF`Uv/
+Jm1Du?"(
+)EBcTbΠbp&ӡNLHjA]on#AU0/|rDX#8T$$LuM
+2zpnr1`gKXU
+cwR$2یBH[(1d
++iFoQ+TF)~zRĘ t${CJGܕ>ۊ^DNm&>@V'~m1˺XE*BhĻ|ao +CuTMVoxܜ|jE@m>UEw3nN^XjZP*ֶm~5'XHNtȽJ=bct7*h,
+'NL|6lաVXFoDU[+c+k<w^EI+SP؇r~"a0urٱu{w
+}]
+D5?@N֋.*.;I}A1Ҳ[ _^4C3DOŠXbK!ivٞ1A"|
+v}oW(EuyR V;9x
+B~m0CÞK덈n`h꫄Pq<A.R3a4r
+႒Cj;`ma7sP;Z-j <B^ﵞN@N17B@ΨW{<5 Ufy,0g<Q1_X`R!*{b ,yI$鱗SІ?Y5W֏8{*Kx =RTFb"A"D j/dg
+%p A!5]Rgwѣbcz?ZPl@~cWL"GhCKQF3Doz-6{Y4sI?WXI({GoԦr}2O1ZH?P
+"'˦j4ʉdϛ39$6hjL8. νh?P uKez8{`3ŽXNԕʣELBqsg=˹vޏre*%3dk^Vk$Jtx{8uE; e ޯks(ғt1)?Ko1H:2חfjh-@梮549}
+.jT6$Ycur f\mS7MĹp؜}aig`I9)h S-!c9DI'm[| b>–2.k羬 'ΘWeTq C۟r^9N6IPQ`cP>čP\kPTYT\W/bvሣ6 0gL*UbpBC y@^Uы<84hVi;V3*h0d@yGx9z^vipݍ~va/Sh J); x_N7rQC۟WgEu9:diGzI
+xܸCwK:΄3X:p
+](S
+Gyb2rUoYTs˝i'24i'P)b:=w1 a餉:15xP MƺI{Op}A\}@Nv~
+ =e
+hăc#pZR!##hA., DQ-oxH<&~3IMmH&69벉#FK NؤU☢qp%,|51w ɻLybbiX24 Y4YM
+q&4q1Lpfb<v+҉ɤmx 19'}"PbhLZJї B_Gz(T-.) CI.00|:L-aגSZfg/ΒP,ُ@bILX*BG
+GɶPbC@G+clL>g+H@ƻTDtd$#s7#6dp+8e<#/7҉ؽ4%n3஑0Q53/4Fh9#؈9HܑFc$! kҧOH§Ëa5s,wTk"7FY$khEظ0&GP0gK R$ "FL(rnFOM$]O#QO"8=Q=p ="K#,!HD2Dd
+xǑ5ىwL>r<CZ/5B+Xj,tCrOڐB )9C:]M1aGL` vhB vd\U!g݄px,/!|M#.#}/Bl?
+Iz@0@; @ @q/H><muC"@-,):Q?)ȝ7X4*)ڄ̻=}NL'n#GءT SB.GW\߼!Q!ă.?nR;ԣHe? azû `QbIq}qp>j zԦw-kâv *ͿnǮh{hy.ꄴYAS/+I;GARYIH6z ŖQp+<b$- QUyM>䑠 9v70IGUxH42x$7!/}Y#9#/C
+q=! ĭ~vap
+Y$ꀘ
+A8LwMJGz;tV!Z qkG?Gّ[sy嶊s0]6GV
+#l0nF=.D5:ɰ`4`30"z#w|/N& Pu"N"rG_ 
+ߋoI
+ÝqF'؂Ut^u7/ɥݐ`x1 H|.9.D v19I.¡ӅTtDFX'_\|Tft2\(o"D<ɸr!.v[ Nh$/>Г!MSPO^1T?!-$Y[ "Z!(!`"H pY
+Xur[-4uueQ\`"IEFCa,Iu
+9!#bZWPJz8
+AB#Awݘv>4"HŌꤶ\@;%I䂏63vb1#j,2AhDdLUk^˹QkryFp\.*j˗APeF BP`Ft9B+X.F1x<zIU%$.m?CrPu\k ("zx9DC^d^ y$zIkD<^t"//{kn_. "DJCK>b:ZUB!q+*n<B&u3/ O& + IA\a Ta 0$\c@Ye\ n&1%훘o3* EJ^
+͡ @YT&Rv-&BNF
+ sNb+;jwe'[p*:,cZl笞, ɮN
+V
+"
++ SVU`ܙZ*@
+ %pG-w8 MaBBl|3 <UF0E!%Tw
+YAAqމ
+WΗ?A}A
+ $JB 9lHP-"ʐ
+PVyπn<#nL8i7 ?Pە~!N2
+h:GJG h^e7V0Ɇt7ZҨJx7 (LwC"7@G ]¶GĤ p]K,3hLk & L 7D
+mkF'%Er-VRMmu% J #  Y̶?
+Yt`nfRݴ-s@"Hl L UQ" a$/="vCp]geH
+! 0jNŷH%e @׬Eyդǎ_?؋XB
+@y,m㗦@(ta76
+:$6
+`gjq ?c9 zd0gUX4
+H6w o⍨ZB; l(A`.'
+cQ$LMc#-([iba<//~o;oC)Y}2avL
+vn
+DyQx3J:k62#K 9|mISyL<aQ
+oܰ뀊-\YAu
+Yuwxѯ N5ưjR(Bz ο#s^v!wͿ*Vz$1tMYD
+~ eggg}CMį]DMVCTO \AڷAtH}
+k=ŗ>1";((dhW4HQ-"eTמU2`~+PY!À)<ۓoԲu"K^ɓPcO0ڷ]bV[! 4:
+"ET8p U5n,/ 9mss/P3<B`׮D',Xv؂DH*ZXl%l2@ _j.ϟq<J$
+-
+Og0: |C tD'UAYjQ0$|7F&dh%,j*sAm/8J/%3o.#r;TE
+H5K0ii
+]F{w=~e, %m,{}nBy/>qm%Әƙ"V|/`
+~Q#d==zx@.94"sO4KŽ&7K0)_^Zt~dʽABo?v&g_CT)Zl뮍3[ -G[=S$C'6ڝ`40E~%m,YT)ZZ*C;Ib*"`fCE<< D
+&.GT[Tn7k=@e6X(B^
+̢B_/% \ɛY^B_qՌ;ntEaX1T)^Հ{3ܓ$He*TALQ/Y׌; [Sq/wRX:ż,Q)(m}TOŹh`>PPv@/Շܾ`
+LkW4k@{+EgPXKQ0<{acmy)Gn
+'ξKiuu(Rq}`v]طQ_6M-JCX'ɔQ R5ou2
+=ρLjnGwYZ7rR9PDx:/joYw.3a/@mBW@]UNG
+
+Ԁto[$%,o#juuWLo?p̠~:ټ5ӠS3#ZuNױnPϲ-XM.N׿f`Ho+w/K4bjꞽUzZ4LJ
+9RTzZI;pP^gW73 ^=ISS!A6oݬMT!$C40zzE;QO/"z3_qsO&{
+`W-^ +െSIVHG C.$MިŠsSA^YDU p=%>!w{?q'fM[x9'Oݎd%Їy ?tlԗeԹ6vBn~z
+{CEQΠRά AFl@U??TZ;=?Ӎ}NGL޴[ZqϕڐڰyQ#
+\z3<Iϰw^s;݆|1rVu $]
+3{HhQG?9#_"[`擼XCn
+I6[d;<6Eݚgy ͎`]Ra&6L&b%ͽ2wp@_[/(]dˑeKjs3GVFHJ.sꏰɃW4t_JKR@KBЁrՍypg~ԋ0'$Fr;/җ_~v08 1>O/G~,"PIYۘcraߗfg`N#8_Si+X|_چH߄0wHhM¥=9&9O
+s_ Gm *J"; T.'bBb-<!ހ>
+<@26pk
+aK+Ї@n1XS)<\̝h0oXs5ƕvl0%{U:4<H rȒ1GOs/cP!^_Xks6l6Kd}@e+T{/\طc]brMY& 0oG*
+r10 `y܊Z-q,?殽@_Ik2
+j_+
+],Jt2VWqOe%WYDSK{%ywۈH&;/ZͼTfJܟ<x;Id}asm?9]d(3O}[r˟ӬT2Z<RO C10u#6x/WK9}苃ٶ$r+$9PLrnk
+1ZZRAN`.(!&f7hIKhks)$
++b +9θ(̐#p<4a܎Ln
+endstream endobj 19 0 obj <</Length 65536>>stream
+"_Pz~~oj#NR6⧓cvғDzAJkrp֍B^lɻ*w)v- y+5q+g
+qWC {SuqzˊpR>l0mfM)>z⡊t<72CTo:f %|A`iG#I$\3eGfܔ3!NY5邞evrw3/Nt*{0ʑve.N3ib+!8,\<8-Cޠ5^љdQؼdknj3zQe,41m8mު{%ً96{!BuF2eFs'UJTT6/eI [LRD~SJ=q.}pl7&KH w/P񍓀9 h
+<oA}k2b
+f nÙ4?M;gF6dN\N0Vb ̈ bgt}}y*v_|܏Y61v
+{0x`¾pp]B`/qK`rڶ`Bn8jd46:չlq>HR/婮k-GC6׆1 ^(F6yz9
+ V=#PWl3:m~JRw=2رSmHD]lCug&\/qu=jIDz=&BST[s^4UWW[;B!Hzּn\pi+7$Rn9(1<3vf]\S@_|sKMMx)s4ֿ\1ա(?;eEqŽ{d[aRXnʞ ^(pA׀T YPg?X[qzxuqzeN%}6uߵ{JJv0$&Ws?~V
+;}o/EZZj\ Y~
+Ma,mt@y)bK(#{uTlx_k$̡xO#`KcWƒ#ԏq#~޵;e (11_UpYc+XO!:!PФPMto]:^e=0?nԈVLuH清25GIWw8 [VuU0zO0{
+jU<WJnAq)3}/TY15NLbE`viai
+i(T89dnUmܐQY07SKQ}N4
+(Zn*:MUŁP1g,9H wCE?g
+p
+k
+8V%m!ʌ%o3o[e?UY<y rC45F`Q9d$b+i@NW}]׵C>׌G v5Z8܅
+5+Ʋ6nmaiR+AbcO0вj,Cc7t2ce3.%GVېd l5OeNm\d-;d^k=l>տ6f28^*N fD8C΂ n5̆=͝/ZS<H ӉS)-i2{OCkɩUbګV7Z;viԌA#@M$9Ml;-F-U00*VkͿ-ԪUT
+n- ۀ0!Z?0D6'߷B,o/
+'R˶p_P-|[4 nk9,k[w83@ނ 3P
+r!ܸ^ O:m!遼 ~(bp,sAi4Ơ M@}h9`}J,eاz?rbʏ]ҔB:?&^嫰&cy#?_p
+nX5cdq˵<Qra[:<Wc56 =G{O3=nl8Uf+xߠ;ܧGϮ.-NSᎁwlwbbqnq\<dv,CC;QzN8M5ImJ`"Aܱ?Ezx+UZ"k@;gQ
+_xJByյ5>E/dir 1dQ( H3dABBT!-~_KQUC'U Yf
++Q6$i>IʤfUȰUEB$LHs}"c 01Qr\=</^a03hk8g&"$V#˖<;Lфޮjdƈq𑬾(и(
+J u`6Dتv򜸧] EX|>~V{qh~$p) }of7 @f^nUePNG$ޡ2"fxl+aO\
+vVר Xը^>)GTBKZxD@ C":N_ܬC
+c
+lsFwWsF 7<߶rK!TCV3 h3!O_I&+b A["!hnE7+b͡DRA\Cc=_j7/"<}9˚umEFa`8pX5ֳDqל\ .^`G07oEIW컀TpDw 5L'ɴtۯ{Q9{zWn[uoTW_#p;6p6zx%Kz؅w1<n x~E H&Lh
+i]@+CJ~dE\>|JAnNTuB˄;ZHÁ\Lcd"L?\OTG
+W0rKMFRdx@EqfFG9jÕ_[/iYlq#xoϋ+\M=6 P@O_0w:4|Z?'&>8LzA*
+D'+$'!s%՜x
+#Jq1x2ī|SgڏV}+Ň )8M.R0SstnEh!}֐$b_|B=htF/8A#|$wS5;QF~o3B&9<ʡ,Cʱ[MҢYuR_}0Ga
+&I
++XKK0^\Vв3ؠz͹J{ܩQ)7w;dq}b
+҇V}^E;ZO=>M0z4랩vgSX];Nz7H{5{myw4wZhd?#4x4X4Ÿ4] ?W9~/D'nj*^(1qPoג/g<~># !ȗӋ<>¹Q/O<9GEI'.qLË`PwS/XӼ<7o0Y;{~f%D@jCRU>?6蚣78%}-*>s ]_lgST?tfIR:C֓o^K>T?JHf&b$Q/o0
+={&a%4ˉ{Rqc~u}?%Nࣃ* r!Č/Kp#p"?'?% ??fuƺ/*FmCzio3>꫼i/]{Be*_A{bkT2w>>8?.(&s=AUY&)?'>yY~M^d4x&CEo?K)u\<80M;̟<靲9?%@'ʅ~0`G`ByI \ 1ӅDq !Gq 732O&|P/%~7~~
+ב0ec}8>qm@F
+W<2_j2!'4CPք03~L 8$„t&Y9^Z#[%?!UkO9֧n l܀I5Xm'i48dj= MQq RAlGdpE(s'!Ǹ󡦂I7[j̜]R{ΏCSG*X& ڤ |LLoӳеN C ,J#sƑ|88DbP$_h_s vH4G|GdbH,[LHSC:;/*hLVV YYr;), ORP!P65.l 1\/ZڱOTݢAe%х)&t/] (Khʩ)FQ0bҤ-xb7 !Iʫ)F1BSx|˄YO *<|gQiؗX/<ԯeYS
+W%<>,@=w +MQǺDu"dőA9jt_ҦOWӧ=OV~R3J}K
+ީ$̃ J>'  QMD  Ε02LJlN]$Hw))QZ9;Эjt7
+<NgАe7Zo_\81vI#˾Ͳ̟y(WGO;~L` 64oGQ´m뾍] JH SVE>Iثh\^RLi
+TL'89#}UŎCrUJ2yl540ug3LYchg³Pѥrw|Q&$9w^\5X&7AE6aAԳqw]o[}"hb9CyP>|{ׄ*dp NLE:vM }?$*x No(śIKbk5X{ J@9{:G|'g|_ێ8YԳ?2~J^$cԺټu; 87̧C
+BH=Ϣ-çF9boYe
+E91|jt}2~l4 v 9ysVs9Ҷc<B9v`5s="jN0ƪY{E97(Q\8@C:F#)jwZM>MdixUl'+& OYǮdzhY}O@e(ÓV!G}hZ''2Y} 7V_!l2l4P^k;&v, mý_7eAPqeD8$q2_L[uylA651٭\hIT{mvDaϣA Izh#Xq|8g"+@ٝ@(vO`\uE#7)hBچp uC+˾-mNp_7ão"+?)cQ38AyO$_4m>!y}=Ǒ堟d/v9&M4qߛ ؛P6*ؾ Y8y}e8v3KŐ@4v#;AG,Wi/Kj_8RL7iR1ٯXdv%QYSCw L](+VQC($s"u#3~4} _[-F NB,2LflJ^5'~9CwO#QC<6˔V݂-2a~e79о12~l3_bAIO`R:ŞvAFg5( Y#_ $zh;2)4 N
+ڀ*"N-φzel'
+K=}9M[ވ:THK(wZɎ/!ɕ8X]Q^pϦsjUN6PM_j ~͎: oǼ1}s(i
+K ţm~ ܯ9޺^hĨ
+B@"
+@]IYSRJ/P}$: ^\ㅣL=S+b=Gh\2 &RuDi?R!
+F8D;xQ&ᝨw0tf3]w1\<yg ݽ6q5 ×9:'WDyL. 6΢^Tad?5&߀pa7`P}8sXm
+<_\[af&~ˡuxr Z͹b`Z;6}Aߠ%Sj&(^h F0HCKFf
+"-!.XZ԰+}%sOi 1zl3'aǺaٷxt
+N@!?C'7߹( ՌsʭEu$uҡI#`uMMW<us T"B{2& &m"K鵗DßQ_Ik(7tϭQuy[#9_<{Fúh/zH7S) x3~#>6؝mwj,(i ELeoϺ}-n^\]Miر` Bf!Qwp򁾊Ix󾏣wReY22{֌̮D
+F7)>{vƮ;3}puL lc旹/}9vkp,fMdkj]MSVݲ/f[2ns^l)dg
+~P8Zύq\vGt9X4użnS8k<[a̫D ?}6YM).nUsx^G{$j$Rp4F@mvȿ> '$6fg*EZ;tRq8_;oS8ch$g#V:vG/"(Y=|_G|sv1QDߧ|oA:x$JA/d96?R_MᯠģwZU?vߜͣg;*+5v#ߟk/ogVN]Aq@>|yyϭ& Mbt*S)&^ /r˻1IòG@Z+`؉@
+TDY980*.T H?dx|NbC?tIZ}u$?9oHm~wH;y'1/qhB#/4H`W2j4MaW0yGuz_sw>GW0MA*LžΫkjE<(laѶI+ ٗLI=z>۟^TGt*Dq"Pen²VpGpQ!}juz ʿP!MI6?f74J`47N}N#A;y_r3"M"A<zhNFy̻6jm Ula?}6i,BsBgQ;uo-g a~B a~?FE7PQqo9;H~Be< 6cFs Y}79e6[ T:>ХG<HfMoZk
+z̞L(~%R,1lr L#{j"B_9q[fPgz7w}Ori
+&OwI@UN(x:N{)ӫO=N_{]~jI_
+HDz& TMI&c ,uxO}#O4x?*~VFH<~Ӹ2 K@o^у8u6ާ1wmM aFvF{ʄgP~Je<vvJUH8#B
+D Ś=4@~6_\t>|?kyNm |drU`.?0@~N8y@9G>4:ϲ} -6_7[gglg1ɽӈeho8b'W@uD;/.|O _CW2ltv.ܱ3. ƕ[i
+̟[Sn77vscfsyC>k萍0vh4r
+۾/$8 C6a^ms(k|Lg6u嘻59FSuz;[th
+.MĻig.kzwд: Ayh
+2~ps\A̻#O[(28 m&}$ZhUl\u8.d9@]#KC3EsHwxl6a̶Y8/`r&1 e[eY#{(dD]ҴX
+w
+vûb}hn4%`={"mj؛XҨ{no5o(S~b]>5.Nw$mhgj%o]θlWG|g=9fsefF=C_demv+>8/V3|lF.Ϊ}٥;s]L o
+h=g :⺮^{(OIh/~KcxkM!6t^g3~o*vQMm~A0xi3x&>7(kYh+}~Ng;zw3~puaWv$A7ηΖl]z/z7wЍκ2Šoŷ4 ̬, L;fmqufڰ@18 N~C+cfn26p2 x^aqŲx]1Yw W&[qe
+۸3m!卫? k/`>LKX214y,;dhM沶x _ޠfCmåU
+KK+k
+늮
+늎ʊkJnj*
+jkk*j++
+Kk*j jꊊꊋˊJJkN*ʊʪʪjk*+jk+˪*˪*JJJ+֖Vה]VTW*J+kk k k.k j몋k koqUUiquqQY]que]qe]qUuaqu]]quaqmaquiqqaqUaIuqeuiqQuuMiiqiqqua]i]quaqqquqqquUMuuqMuqaMuuq]]eiYqQumuIu]YMqquauaUMuqqIuiMmqmqemMiqQQqeqequqma]qeaMUqUqUqMmqmuuMqqm]mQMquMqqmueMqqmmMmmmmmmmmaYMqmiaeYmimMqqeUMemuYaemaem]YMeemmeUqmQemUaIaamMamYieamq¢ʺ⢺ڲ’
+p_8 3܆p^ax 0<] 5<pc :3-=}^7dоx[pPhG!5qAn<
+PH<We! <1 2q؁G5
+g?܈p$.ė΄0 <cYxШ
+ K@'$. D2+$҆frX=L ҹGꧢSQGX$|%a
+bhl]b)d3򆥦*OG!8gf^z$0c#
+a1t\\bքQE2+N$yI:7nwnz6$bH"˙dZ`)[!W Y[K@%;2 I4,"sp K@%8,`< Q;SLiSdID*OI,[ øX-ZRHXn")HTdSēv\ke
+=
+$S܃Ӓ2H1#'HRE؀J||#?l'7""]X(>M1=`|z{$2#EfDB` = D,*-!DJ.mmr7>=":+șZe
+k9Ư?.v]!AJ9@R9CN7?RdaxĆe JrX.a eDLpTzf6 A 79rs0emicRJ#:Ur3(0
+NiRkrv#K
+ъ2,8ʔdrI'jzʫ
+7!(~j.LEE$n5POk(9 wxbUm8&0l<(?)=jB+MjNU8{XIs;0`,
+dccq">="RRLH_ܕ2 q
+
++j9/ol14Q]'GDA=]!.ȸ7Y쇮'F>5fJR%f2!y{$1].5u 't4!Ia786f`d״
+HzQ-;KwҐ C
+$#h6UrGe)R_TIeY`Z^ QL%VԳ`HB;
+ۆRNI~
+```2%`DnKb
+Wn9&UATmWPW[ UN QP?ԟò'(fH,QZ&Dcx`UXXI^ىWRx*&]9n}!Չa^Ҵ$ J
+ cZQllW2.k,BJk݁kR⬏3!6XC>C@6: Y
+k DcJSr:kऩjT^TReGLgCV|2֌m&'o¢oi(%zs!j1
+BUځYҙ+'%c֪Xf>zgEQ3?cxBg$geLVm
+NHk/*/.B@ $[kDVĄݑݹ$1l; kqA] atsXpt<+BhԌQxj ۴)pF@V`-
+_;k'(j7&0l:)9^߬
+'\ WPrWk[<>g.!2""2"s$r&4%~,ke+ĢZ>8/.'=A_'(@utC/9_PX r+)K=~IQ'0AD`t`t‚ZYq9Di_SPpdvEHgU /Hh \ò5QGŽϯ=E h3׮%
+ƤG@# I+~%7t'E<<{*-E]Rѿhx{t6f3hbH>W0MDZ8\BW:8)"k! " I dobEb!6_J= ~ >ziGh :yѹC>A@:cĊ<(5*s)Ę&lu 3݂+.R3~k◊!YcȤxO!i- Nzj%%*XVE$Tq9Wᨤv|r
+LHM%\ RXxO?I4
+Lp
+EgrR+({R*'"EؙTU3$}Q+,"3Ҫ*[h*_hJk褗NO03@1ٳppX10{ 5yzjhY88gމu4 ,TIa Dio j>UbOEKR($}ˏ23l8J`6ՊJģ__?4X;=Dg5#g|`A`MP mJŤãMI}Z;+W&U_BFHZaA`ܝhZxzPz nf,/{;,<یTjH7G|缠[68#C
+؁2zH?h~S&.T)RQYO<4~$OMIW@"
+D
+PLeS?J_B1 'XF5btR#*pU ?+u$pW@"30!H$HfqN L`˅tnb/hp[9>(9b:a
+ɿny&%֍>AI)U$zJ_mN/͠[\1yk2:0Ǎ3+b[e'UFSP_r U5E7#}$j轆vjxҏ#~E6O"',^5o0lɿTşãĺ4 w"_AI{/P<4|(=fG5qOكwwݛ:vIZ~s8 `| 2[hrJsF<zF4v$P C JIˊ h‘Raq(0ngQ/}K:ÒO!J1i UFejNkŲl5)'zk$Sîcetfs"XS`YG8"J{Ś~9^CJ; κwRMJßl4A*YkQ\Rh؆jeX#$^A5C7'.(\'i)7`I Y
+z]Q6tiu%UڡIge)(9l`EV~5s[K9dK±;P'0{{PdwC(Ov#ދ~އp'q8-m#>dɗTn"~B]<]%OD[ D0U-2U:Jd?
+8ƻQ-
+mY]gl,u(>fmc,]rVܩmsh<ǒ =7ZwZIAP7:o+)H[) `=k YPu `LP)k*$2ďDj\& H<H)M)mִ[2!Xmݗkk!݂6K Dg
+EDDDLO7jhCXJC@R*C`kq wmyNaɪ!<QQV12k'5V"^_Ȥxx$D<G#
+CVUU?DM“+u U>H2|n5鷻ewP_u'U7J?f.淬}y3n(/#[G|a,f:q϶jqDTI7^=sf
+JNg RZ#BwPDTr:UYF$CQ!ǫkGg
+M^$}*$UobL, v GB4VZ ±Q05$T Ejo~'SF[hks(y%2X^?6~TE)4LDYhՂZaJ(rC}XfpV/0;%Nb?f|ChqO'Wܵԩ/qhLZMmOc-tץ!||i04mW0uj3Ŭ]jm hx,"T..k]Dm)~ fzeH
+5euSJX4مug` 9e7r2L6Fu9vTe*%h1+%d RVN#& ̙*Ʀ dULYAI'ү C`-r`9lKA,)7i4LiJպhC>z("az9=Vƻ\m Z}鵫\Hx~ <H䞝]|ցsWz.8N Fy5%[XN˶1F͐fړ*\d O$"Wr\/Z1+"hI
+#QG@DJeOo?X)y_[,C
+I|d԰b:_=Z5:lrjsckN8߀ǼbF41 8-{
+z[-Fe5eUuĔ~
+ jf\LuMľHgȲJ8<AbZ$Pe3PY IHHrٔMW5~tNA;g϶2~ks M{㽣u dhI$
+`[?6OLF0n+#5 i_Ypm'cbc[ HAv_Au1Cހ_\zD:
+Y>q!R⺭±{&ʿK?}fx^KVBBiC>k Y@pyz
+LBkI@g$/g0P`m<$*8@P*g!Q9m?Y²q3ٍ7(pB50r+!e0Qe_P1Vel׭2pNBErX&%'*~UM9;ge~3,* wƥmBVP+mB<λwyb]λ9f07`E]θcYca8OÃό.6KROuY#^0:Cp ˱%dAZO dY8#(!9wRB΀@.'[/eUNfP@d-#Fʺ/UI]aj`IXƾdH@K⚨fr]-T񰽉J@r)+6Pd_.Φ[Ŭq~i)\Ǿw9(^q37fPMųŠ^Hn3Seh0'VaHaX8ž02HtS0Vb[IFH_Y'yVXvΉ dG+$`@ւZVvFr3)7d Y>hxRPC(>25A(KK7`qKDxIȉA L9jquwP&a9"-ޥE͓XqD?dWN>,*.T~8cEcC}ewQ1*Xв
+ڬ1 8{vReqqQBh&E֎qE PnYHЃ<xt!qAC 2^kvB8Tn XSb̊1~qgq~"P/ʹHGhR*?8b q!H
+F7:Gia7i_l.=#7xj
+|IAϰ.NMLkׁ%>Q6!68 X 8
+A
+2*c j\jj1h s~t9HCsN-
+$O\ނE`8r4-0BO+ VYR3P(x5NAKP7^o,
+ Ӝ[VƷ4'<;(W{5Aoea_:[:&ld*$qcʀ@ɼ q W
+>6F
+gs/@m֏O”VYăuGbtwѥAPRib'=fn1dqlxrP㟶P pAyy <+LTP^&wxnˎ
+n&[H`_!DZY8( 0raGc 8UqliQ\/Vg RZ/>p%hq-a1՞t4?ńBY qu&
+Apd0ibk7(X$+l'.;8PA';&ç7f76866!&x 7DKMycK7D 51 C(lN4 Ha<C ؃ J'-ءSijxOH/;܇1$*wX:VE d%Mq#o$A#yeFLZ2Fe1,۾9눨)#<p? ~` dUt,L&q >267R68U'!0AG8pJݍ@F7^, Qc~LBȒaqģv/<)爓Y1l j6hʹap:IuW),A|x3na
+$'(`@ oLE60k"x?f8qƖ9Y䫉(3 ăf1:||]x9V am,
+@
+= L8ʗո$
+A+nEW8^,j- q
+DCk(7 F#cR>Myy8=y9ĻтSQGhgr'$aG2 { dq G*H[T"v0cPaN,&Y6@bd6q׀FǣG) e8Gq R<l>Ճďf!P zWB?`3 yBӫEa9Xt:Rj.ɣdMqGn|
+F@4ne Dܔ;_Q
+NE|SRb pO>t`ldfGQC!RLC"AB#SD 0 APLK
+xMo+%.dÜ;C\(Á:dT_eR:$K,D,kFN0 !#6%iXRKc!0Vbx#[mR<g9qo'>Wۦ8;`į ބěn~"T3ą@4 4C&ޠiL 7k&!$8>C}:ވa#56qi#,YC062`ŽǮF/%.','%@q\6%q"f+Q5C) wpx@\exzqYc_E:9l|
+yi!N^-8} #S2#&fqe)W1 TBȾPspH'nXi%3+#.TĽV
+ pNDYK/@<eы/d7,x0>bq!R$OL<A5<ȕC'E69xo(`OW$nncĴ=*DSPBbb ;%t p
+cKD\"ⳁ#q9,
+'E'6g|֨ t {\JbXTDĭpTg0ã`RL?py 9|3 k^vA*|z{=-ȕ,` VV<y@QM$5 '#&8m|Z n,e,j‹_r^BF
+GW
+*83
+2q YT4-. _:N1=~i8 y/3|dK /<s^k8qY6/_Zc
+ad 2Ki)ȣrlF'2:<PzwD{E ?0kS!0Lq1ӌP %˳61>6΍mc-b= 3 H<d{WNjM^384Rlor2Lđʙ O#F8=4,(]E+RXq '&pc ww89/\si a"\!@7X &%_"K G6 l}"SˣDa`#@)$Z9)D|iCf<\7:X17plm~~h"6>=oZBD/)Π:|>i8 r9Y9s9w0\^qx Yg <܇(gAlLEC7ω K@&4<;(
+Ȥbd(";V<bcxwbba?2~Kb(yrwGPhS ev_?6~ ?;ug: u} I@Bz&OD>E_0"Ҷ!9w];.5u=B8z&R0pi4e\6sF DDyG%TDuDLߛGwx_ "CF0ot0pcOpV*MX6:e-rTʙ)5u~ѨqRȤtLb/&1B5zgQozU*44cg2MD~HSUMRDy6E
+#OCɾN94 2 
+IU
+bd~8w_GO1;xH'
+ģL [@6:i ZlY3>gWFmY#EI xs)[]^lRQ Y
+=b[R+-GhcJq{ KA~?&/9߼>B҃AJs&t:yC@,L;)>m+a34X2,=7P+G0B}@4k jAo NH XL9:fqꜰ^Y>8)XTE
+K Y< 03|m{-άWrZw$% NPk&({Re F0L?f@EϢqft H{g
+DG`TmNĠIAcWR'@MR'(5y:\g
+r#l>aa1tmtg=n:wVȾ $uCt
+iE 3joP5PA|z(¯TmⲖQ. ?O]zI߅cSЬy [-F|%TNu^PBGxB۪ťrqys#dzh3@!|X PDڠfJw6(6ULkGjQIh]@~G ;iNiu@Lξu2-ً- yż>i
+j"NGP$({& *ZgT]Ҵe$K53n L"drq:zQp<dgiE_ȅÓpzّ: o6.8v
+H4T)$ƟY~PEVlL߻f0ԩ4|pY~%o0 %,*IɔІ$tAcܴ3m3;.z
+JV Z^2&?L`ځ+09!H].̜ZgCӋYXdv(m KL>Fg+3^\J(b*k%z<@kCU
+zL$ΰ݄*<thsqTlL\ Cg6Z4gqzaBtk5s] ILVW$m
+H.4\B{vA8wCb{2WpBuz59goe
+W}:CX D8,Sh :g
+L4~!JAK;˓wz0tj8`èL}1xk\y%Mڛ3gٸ2?7R#3q߉6EBm쇙Q40XR3ƻg|j#CfO:-<}(]-}9u VI=4pxgCy@bŰJ]B6"?:f?cd5XqÐI7vv [uk"M/"wHL"A!MAB@&$#4Yz%(XVʅfsQ%YY3* ʿ,G^_#8a=LBȼguk::N/ow]3^$(tvReH`;{&!B;WRn&  4qt_fol5{m93&L[ǐ@}>fc
+Y48i)$}.%Vq$b1z 흁CMIÔԣKdoX꿈~}IüVD\tXm NL#=Ckݺ'_2EK4)4g<7KWkg LJ$v RJ`}!JA;Q ɔV݂5$1~k.$(}dՌljFD؋vqƣE7W;6~ G[,(̉5|]Z bZw8Rڅ
+ pPS1,g [@h`_}1b)(YxJ< fLP(*s'DDZcs$U@Ĵ*ZIbBL6!^p<: e>uȦ0rh-5`dfZE2m3 CS\R'(;%a 6un"gްdUDVB{4nomjîӪ?~>|ğ#/vg?-# e~@dt:;o>:nmnB /qiWV{yBaJr#,u 6хBVրϣ_3rUR<F]E<yhS`DB0t`ûsh.N=tw+D~ ] g3msR)x
+jFqXF.mrqYk bjO02Z}~ǻסVT)"#O›F0o5pȺZF
+Dbed>m ]ZMnay,hPBzFl$Ew̉n)}u6=O$'4YW6%'8:>KY;0.Oi5##j{ 9RT5s+!I!BSzC[QŚ'OSRQYG8ʝ
+MDTGhaTꭳrpNk69Kwo2쥇$tr!ك4zߚVfM9mj+vZ?8B]J *?f.Gg:k]8@g&$=Tl]~o'(;3OIþЃYa1{m􍷮7`Q+!@88Ç&uB{fԩ4\֕h].wM(y>AfPsXɵ$u>v>u۰ݽՁ6 '?v%F할rq
+T\v DL#=
+d'<L&l_l,nMDϲ}.dYGv
+H\/shd.i1kIu,-n!cbָ7s `e58&Q5pagWƹ vWrQ KPe1',JGieÓ~
+(HhYy6ELG?;q~q2 =iy _ A
+u$T(FbܸD<Dn9L@t ƅKXqR8B(5s ]cWSHDJ~D" Um&hOy'gj]nwh鋛,%T ?}&,wX5&/Vs216F\ڸpxO#k~@d^h
+F!ʭҡɝʽö.2"*)q[x}MǢ]r}^mp7NG@Vؔx\@"?:zW&԰ afĸ:x׶Yg
+Vx9q_θYVưN>AG`r5Xg-xvN> "PeU~TN
+E8޼nsHwzR*~tay
+)&z+stt @4v MTNb¶;⾺p|_д63.%971T)<I VL@u޺OVs87$8uǒ{(f#ѯ,IHQv!MB:hS&
+%Z/W B=JdIo!񔻌^WX`X>]2_qK2 ֈCESgwB<x~ U;繙L*`pY#uJ5:X;: SZ
+SLiH:.%^ a1MJ|W@X><DV+Qe@:t!{4!͠bSF_CT @R VD?n|U-8i?JnpnP4nE
+eWRD~ADeBBNM g)Y
+@]s^J w$P7y:a8
+_g
+!
+$Ϫs>>k5Qnyþ"^r䝨FYfM {v;Us:CdSE=t!2`K.[p KX&FƫUى'Vxܴ8U6+˾16l0o#W,ot8bGs^a ^\_Tk 7j:DƇ,y i$}öuq'?hi5O-\rm9M0[moJ'j8\fCܞ;{P6xُG-rF'},\KrFg-4t;]>/Az?HW_v+|y&ώIa^xc$AW<k-U=~{mA+2MCuiOB{F\Wi?> ]JߚK֋#aYoxn{$$tJ"\s]k1} 'D;2X Hڛ 9mi^ /0n|?͝fgnF~ts_ܐe%e_XBdD' )Ikk{N[>Ȓ iR$w?.h\' -##apA+Ӑ d[ᅲ@AN|2fnw!:)+<ی!8g8*]f7hJt_Bv sٵH]C'/e0Glae_}voIid|àNK<٢'HAo
+*
+T00aoNx ]8ab }TfFyuΘ9{+w_{wskb*{8pCc.ڏräxhcO|`V|HA:JB lGcjŎ:I-FI=Dkek@)R0rS#[
+ؐ-ì${
+=2+LX̬/לA[2s]ӏ;mk_/@yG;tJ #[n<B.\%UPN^+sj'cXkﱂsWleCEݺI;܃M?n_yC 55+\m.QL"=gcPrvJ*|Ky O!4vo$S/[]&Nwω.t;~YkXB_==xFi{p`1{ 1%)3\IFsLE  l{  JC{.
+|$U"f|+heiҚ܌{S8mkg~f|; $~zfDžj;7j33A7_ξoA㸉BC]<j!]9n|־3YK-Bp?3wgjUGߏgFCYt EH/R}G0r9뱧mgTM>_w!=Y$\;h}0@gQc CHU9G*Izɷ7 m@>=Yaݍw$[\_vMu.\q3uMWվAg~EWtcj.T
+hHD$o/5//Hy ؔ`P3 5ԷpB`Y]Izd(pvQgfоt5eEG/g~n<<N%A?&[Nt^VՃk^dx:U_^}İmc̯xNㆋQnx>Q j&G8-?H, -E3îFRpe»Y5^α_y2m {ۥ,hI"yvz$}Y3\-[ϡ5<"xX?*|I[wٗ<R Mz bab[
+0 r ;NbX쥚І7y@0lo8,>¢ǀ b!=l
+n[k6hm_
+N+ۊFgFCYtub& I6!p<űMg
+< l/ DAuh]3Xn߀_Tq?FZxZ
+ެyEHgf\Z1Lt5D˛Boм(Bo\o{\]>FQ1g:1J}` \4QL2mQXN-BS57y>2
+7e0"#0:t5C LD'4_" ^Qo]_EB
+9ddc5886a-c538-41c3-ae1d-8525756308776b6ff790-d41a-4296-8b8e-6559d94101aa62 628520aa5d7-08a3-4aff-a4c1-3a0e06e82b3951cf172b-1249-458b-8791-38fd8b4edcc63546125237-. 1 !"<| % 0aQ0x,Z:CAهڐ!F]wC6#6#.3}Rzpx>y2)kL(5ހ%67(xNN N
+/ :
+/XMLNode; (xmlnode-attribute/Arrachildre2nodetyp(0%valuynam; (yofAI__1idid10hxxw,turbresul2numOctavesturbulencenoStitchsTil0.0baseFrequenc1feTinoperatorinSourceGraphiComposit1/Def ;44fractalNois1-2AI_BevelShadow4xxstdDevibluGaussianB2(offsetddxx1O5surface2(specOulighting-color:whstyl10pecularExponenConsta--5xx2zz1PointLeS2kkarithmetkk1litPai44k312MergeNod-CoolBreez4-511dilaa1.radiuin1Morphologbbnnbnn-b52b32sAyChannelSelec2(Rxx1DisplacementMap1b4nnmatriM5542(ffilllineacalcMnonaccumutotoreddit1from5dalwayrestar0begN1anim1cnn-cnnc32cc81cccccc12nn1bAI_D_23166Eroder366_2(1_PixelPlay50 5R2(1 1;20 15;200 200; 15 20;1 1 remospliindefinrepeatD12cnn1k12;20 20;yellowdiffu;green;blue;indigo;violet;red;oran56elev18azimuDiD15redl101331012redxx1211-1yy213xx688ta20.1nn1108544-Woodgra5xxddonnfloodblack; opacity:FloosCnn2(135100Gray4O-xxCompBlurT1.CompXferFirtab2(2V㋞
+a0
+PrYҐW28=N/m{x%PBN[DXi9#VJN`*ݚA<w#$*c2@%B析%u`y,8c#B*t)rJK1=6&Vc>JV?R+>}rZi b2I󄹕[-9`([oI|ƞ#,jcH`W|נ2hA46%piL@& ԡP鹉xT/%'lkiHCFj%%1 g'6HPt I
+UnWĦIS,19^/SL6扊. wecB,+B^k
+18$ͦ |׶w*\k xlPZ>-c+~@#g.;e᧜
+
+E:+aRq3zVYyFN{5#5[*"Q_ _$X-VJL
+^6
+o@Fw0Gma:lC=ҥ"NA^&QF!4VI(U Ө 2
+5ᇴ%Ie`0(cQO45пa\ID&jo4^hf?2BBvؔ1cԅR,!NcBG^÷\.1Kz 2(kR!c̽?CR`H`듡A6
+u$~z;S8w􂃢msZun4MHa;0<5*b5m i+.duX숅YHZy+؟V\Ͽ_ثD#\n;ͩ$/7tq8^0ii0tg{5/,m'tTLp+GV%PSDUƬPX15uIA`G}GV-U'##_erE
+>9]JcHv]cHKֳ6F Zlpbɒ-eيG3N2Ծ|4K+$&B
+>:d%oYwQ1l3:M2l.&&}fBWW~q`=
+rsT[Kġ.GS9Y[ &ԧRXL o(z$FeRя${
+
+!XAQ2/mRbނ/ xZCQm2$IG X ]ByB.UTnkS@RcҠ^! m"}9
+Hͩ6M5qvEdf#&8N)k0P Y=:PGYOmvxTt 5.,} Cu6ZRA6)Z!쇃'[uquWb?B@Qƅ`]}A=JصOl@ђJ@sLْ"zbxԽbf
+` 1gm"ZJrtoN+BZ[o޼߿bVS,T獜r
+8S|}~3tcNmεvormNmSO>=9fn٧}6o޷׬R"A^ؕ*͛nvf붵׎y-?sݶ۷ÿ{SkoK6o/Q9Cip(qPPqqrJCiWRU[7kj[u|;]U[Jm]UM_kˬY
+!bis7FhjޜȫjmZ7f_}@^_{j[ڽM{Ֆ͹6-][=Zmm6Mmnyz{qnͮ+:m6634{ZoӪo8uwsnys}[?@ye㩟m^nڟiSmZwK;= /mj<V;Ϫ'Y[۬V5o[g
+z<n(?=̍#NLyz&
+(x`;}FW#{u `9);* ߜ@%<F }+1
+%o( 譶yX}c&FW⯰<&<`إD0DW~XO)41Wc'ʑVSo8UW[_YSV:oKbaǕ1Xs}ĩEzGGi Ho, +=q0+<Ee%]٭{ " | |zeٽ@G ψL1v% PCbdyK,K15
+F :%l)1k+ycq믽Lc:7g]| ILoY^g6ԯI7`cUw8S#cF`"A&L?ڎijnS,q|i`eWJoW]ouӪkw|s7J^(_فF}\33 &˃H92I*`7!Zhz/qlyvw+։־ζcuŽ^]W}z;۷qYs}5/n{kk91smyƙoj;;_k׫}{Zks}6m|η~Zƶ0I&V
+ !C j n{铣gnA33>9TRX
+q(3-
+&؉kyZdKOe&-a3ןMKfDIKؼ33eV.HEƎCOTH
+
+ƁC)6q"q ΄`S20aI6-k24F<$D0Xt"$KDUn*‰08dR)beL  / 2ưDt1FPfRaTt-[:b [3> u\$yBAsZӐt8H8<oCBⰐhqiHǢ4\+\ zA0Hd0'ZhL Yh1#"bapFhD5>"CтTFH{@0 Q(o9d!tH"\^2 cx]>Nv`·dL$ ؇ӚP!gHR,BY<r<@=Q$yzu@:
+51٨X)p>r\z2bJIȄ2 PP`c6 md6 C#lFa@Qeuh<FC
+
+*KuO:Lb%v  o0a0O86I}vٍĦ`m,}k|qٓޡ
+(I2i<E AG*[2YxB9'z./.L&.Ɂ
+
+T,>``7801BgnF\ 74},":6y+
+[aZסY(|[xRF߲44kWiHa!U'>UR**%STF#)LB- 2'%+IA@lɀHE 8$DEjȆ(hJ`hZԵ&.4{%62l  Ѷu
+#ۄ+"P*[¨ *D*XAd :T@{@6DPNhdÌ !h 0([ Ɔł@s].:0uĊK'N.]\Xp`bB/vhiY2Q2Y\d!?! %3,ۖƓa];`-*21!U( @
+sh*
+EgJP**)`*4Bj2(7AA\(+ÈEB1$0"mmP&,[lB'>"{n
+=h&I M$th= Η0R EnM^*L+i84qQ
+-nf0C+Xm& Sj-^0@1ѴD34*a1R5b ,$@I"s1*
+G
+8rD{@^T#E*hU"Ig!u`He%( UGbQQDuNlef`!I#
+:ÄlC#9,l6ٞh2)U*,#(DԳKJوeHtp0əlgW4F&l)q(\lDA։<`2jpD%
+.̏T#)- &VC:%`jJAD Hobȸ8
+:
+=Lư( \
+(*:V.DA|0= 
+`IF3AXAp TtBO..G0=t6Ĉe(,
+"+˲ J YV@{@P,",
+(= ͫlPƷu8
+Je eY֚NG,{в,706eY6dY1fYpP2B%"K}4,YV@Z
+^zP
+cX0H&͖*FP`,c" Y~s\y^8c"Q nÛ8͘HO)&MX3z-ȹ^MZ
+ox/VvDV86kHo<y6¯V
+K2P
+*PJ !!`9հ0!S 3Tt,*꥞EVPUPtSPl])`5BwD*ZZh(R@P)`-'ETRtH.G"qm&(:Ht%tPX
+
+B;(z頰*e`\WE#2] 8.%B%"(-syMɪzN'BCe0T,yTW)*^RU)v( Q0zE 졀fD 0 G i, `rG7DhYt@_0pa5 ܻ$LJEh@˗
+ˆ"`J ;bGR8İV#7ɒҊ6*EQt,`0pE
+FqQt6mF{@ ؔX@ZQtPX5
+"ŎdZ:64_&.+ tZP]XzXa*) C'aA]XJ 5.PMLHҫ #*0.bEzU!c*6 l3%J cxąBIP1h F;AH5`ՠ"
+j0S`0 ǣ
+endstream endobj 20 0 obj <</Length 35150>>stream
+z SN $h0%bTGOt%pON0H pAQK)8L;TœePXPVs<K%qA NQ6d\4
+U{@D2`3GK8
+hM8S*Til4^+J% MCS2)mbta>i!Qyևq (8RE1Jr(]k@\,(6Ej.z%z{^̓d=p.4D%
+)3&QwĈ> t
+82= dUE35Lu80x
+Fl = :"2m& WtŢ$Pj&"9Tl$\4*w!l( K P;
+&a$d_^B0&m q4h_Vcrx@)lHR{@> աPh@` 5xh6BDEE'bXPYk$Z{@.0r$t:ƅT?kK4 *lOVn=Pxlr©)A]GB& Pu/4!A
+JWiD@!/6/4jORç 1*;= $ à'ē,8wY1':qV{@$J'+&#4Gܥ- jD$XFd2FvLIB!(2*V{@,\Ɣu2WP&1 '-
+;2 (-TQDxnDh@
+Op1*H`"N 0NJPR¢YHvi$8(Kt2!#ɭhYBW{@.<(3  hA
+u֧S-x8[0&S3) RGR=Ga4;!B/Uv`I
+@GP5`# *
+ Q@]n ) PUL=GoHW*)VKsϏya'jTV($L %+~)'Iy3UAkwzdl)lQlުkIIXY~eJdy'S"g:`I
+؁YQ
+.F2ɃDRh
+0 1!"2
+p,NuyR(&_3̟- r1~9 h^¤=cDLоvе*kdtΟ`T!M
+^2pK-8Qbl#ljDc[Qz2|Qqޢb{K(ztoʅ56u{XΣj [_Ys{.N2<_3l)V3#;P
+Z,jd#L1|\V5xd7U4F&+FE?fۥ^aB58C*a +,=#31Ό .X ARBY-Gn x09q& \C.L~
+#Yx(aK}HBԝL GL7)i_z$ȚT 蜽fޅs?)du m*²١s~)DT{MSw̶sW^kaF0e&R`@S6R4bT ҦHrTAdN0C)ip4ˋZC`
+%JoP` GĈ~H**bb,gjG+0|9o=#jXfPڛsQٔ.j*&ODOqݛk(
+uh(f Fd9sc!:/Dmgv{!%j{ hgpWS |G1BVŪ%-9y\= r_f`Z:boK[sJ2ĠLUB̫> , `sZ,kTH.C;vQ2Ȧ3Z{pIȀ?( ̌≯E|dWrnh6A!es+exAzUU,06%BՌ
+ÕZH\toҨ
+$D33hq$U9QVi}"ݕyF~{G9'6cDNYTUVgC>ey`잧 ڨrQK3_`*iRxA>X1J"pn*l %T<^eZI.-d$CbU ִ@>X/ܥz^ɠ:<l^fdw#ᯮK祙s؀^@u.ඣ('*^ٯ,gBnIExkT.AțRsxna4mYKuۘPʅ\r0;Lp.Ϊ~{F c?5vщTx
+s[a
+r^K쇫\KæJF&u'ذN<#حg'
+Iy '
+ ktCx)䮕1vBO<m?79`P83hBD !N f$7ǵc.ZIGSőЮnc`z|'HkJ)$ML0`jn7rj$ i-Db+bel|*T+y H@<y7# g/l59E' If~Rd磻$^O49 ;;wJo:+WԞLN~'G$E_koO$Y+X핉N[M7p'6 B؄hnKr EqpZR}Qu_)`2odl4»İjn'e®HWS!TsT/ǒK֩SqBS3d LkO5b+FkB˰^qi& 7%
+=zlHMݑ^*F{`>z91*7IQ^M}O톁¾qќn:?  {/\x̛<Ey$mb٧ݾԕz=۳
+5j)+%g,;.+n<9ԝeB 6#Ck4kkb#uB"gJ5 JE%C՚KH?ؠ:(^u{vU]b0OH"hB)
+@g/B0'=s{)ʀ-RúǧJe)c6L=s `,5aɵSzvmϴKw5* 0map?GS0~,R: sygwXp"AL?,=9Ueori휇';m|uzݎ}9odh 38]e`r@"-.o+b4[ȏosPw]%
+(v{L2:A. {:/<*&ƸiqYEd"h L HYp
+p>'>CcoҋdKhhveN{UMXcK{5uV<+c:g>p-]_l4 *QB (0 .XMy~/(,{_>PUt<Y:F2GaIK,W/1ȋaP7IbMl/,Ҭ%2h% 7 <"CWh CP8D9ႻHЍ2Ë`v\e_}O8"#;_s r"]i'J~O(CH`pSV ӫ.p\lIG>;8GRTVBcAD!pP|6UP +H/4$E1M6MrQLA|Fvu4؄Z
++Y8J`06O ʑ$ g3h3quxhQQ+)M1PVٖ&j]8)
+MEJr ,Km|-J9\)HDocPg8a]{A-ukO@\kE-%g{@=^3!L Dܭ!" HilAF'u"5@gn2Zq,72,2'Pz 7
+ǂ뗸><]U㴖=KPKaW h{ p ]`0OԀD_6%v5N8N"jil:,t Q`ز 7)X+3S>+(NdCEP' C*,h*!X
+2eI'/ُ4 I U#y˺Ts9Fc:
+z/50Xo#ٜ@Ŝqc)N %Y
+5p}*;+ytO̊GeD8&BNf{5j@Gc<Lu.P~̵-0
+}S
+Lec|
+ 7O#Qʹh
+?h҅ZGr4`E<$0Kr7& J@)z`ʕz0S
+֑11炵%,yD2oB_v2T
+b[򁐼V?AI)b3icajeBfo1=}aEpvocg#OЯ S[֬X„1OF\+/ZŅ4?@ ]uXqؖcEl^epPwTz^^T5ל"`%eKbB'>(uGib,"jP"DIA1P_zsqN0X),/וMҨYF3^nTb* GZbnt=v8Dw8$'0
+WMHd,M߬?^}Ƴ*d ge'԰$Lb=lh1kj;Mr Cjb:Ҩ8thlp-Pąf¦@J&\-B]
+ M\7$u|UH J*euSx^x0a,=&Igy:|(<NJ$lq7nyҀ&J.-r5e?opy{F-4?CO/ 9FL6yu
+VXH{p<i%7rF܄-U<!pZ.0y@sM1`&h)(&P'3˨,"Jމ"aȰߣwWxev/[햋+5*O.9|^y9R8yT^%& 6Y?.HJzbʛ.#gɾM@Ei }o3sO>ItS_B5mN (cMh-<AVjT+J1e ]-dFhL7R?<=5FXyѫɆR'QkMEPhCjN
+]BFIY_w~l*h+x ]GqlEW4-:TylK% & m~<LF;4[p<zĵf/Z3Bk@a$^>8K?"=9&r *SM*, 0ch33.Hc/kptkrn>)CYi&VVvu:j6 Ž WME~ջa;fjņm\ 0@ T*g0=:Fi!-Y81/4|6wN9iƦ_+Z&>rJ1gṁ%۳;BtUql
+f:#L2vt;IN,#ۿ&m(^2U[VQm.T7EPF0BC>#2Pbُxbө᳠xP4<*
+O. AQ+BwRddQPEdɩIytK_~) ㊔(:W eWt[wZ]"zξ;Np̩qǾw|vBL9X5vvcD_
+uq}Fj7C?LY*rOŮ_vɲaNDoW<-Lttv/蕅 qtyJbQ W
+(Fa\MG ܆J,(K"#q*z@lk/t5Fdmd Yu$wE4OM, Tn|w|2q%~ah5e l ?ts ]L&9Ζk7>͛~cԐ)-bdaCy ٓF&r 1-=CĈ̦-:ѰKu]D@<V[NF]⍭BO׀
+$
+h{ ~p=i8s!_8/EF @UW#
+2d]$}x$k$Q5,!0!X"n`+iq/JOdYQest (҈;yZ\dD֖,%9p\ȏBh
+!ASV.oDiH@ςɴ|[ɰQE ᬁWdax$ati)gclw!ⷪd6ʿhE=O1n
+/
+;I ԕ`<\gG)@cQ(7>"wnc $DOQ(Ep!v~UT[ YhN?'z{3S=b;v^kI ؠы:j!|~
+)
+Nv3!TOXߞ*ۇ:%z7o4FƿgYUc%*dVc't3Sȥ'G-.G" n
+M*"C[Ay&Ur4Cp{?è&d@(; x&ῄE
+eW$>Qh0'(0 g2$2/8Ah3PAӢ;KգB(9Bٝ*P#qWlf Ri5m7- 1m>2 eu4S|Iz¶3dX.V@f$>UbAA>
+)EXF$fkx< 4MDHKg n9T˵A C?dE#oWC8:4! i` X>)67ÄfP@C_\0tmK07(X-3y&
+\ggja<e/c7 #
+$Kj#@ p9YYx20 34ݾf8;;r弟 gA ͻ`vrFpw^2mp120p~q
+.R;k~Gho@G˵?_|nƟU"chY3 `Ol崏oɝSxpBI5klb#63df OTGo`F_Ky)`l3/?a]\ViZN"^@.~q+DsC)!nu@ؠsqhY
+ 쪡Y8MC71'vpf-~)-ʹ6\1CI@أ#
+2V{h菮-r11/dC%iHbA3tq8)yFh'.K³Rɍ{)h6["ݤ/N"HM5XJr፣X gh@aƍÏQoPo#BCS'}IΥ^ܾϪ[f!!k?mG WJe<љ$H=cRÓ]2BLX'0$)2hkme߲Ia =iyprYŊ㫲e܊6! H5ܨ+7Adn@1xR&>]w# i=}yq9- O,ofXm|!#hӗLv3P
+^ 'D<tHlIߝp$6ެ%X`8 K5ct1k:.G[P+0Y|
+5Zok)8_E2&،=O
+P#<ї 4R^[j4oEvRX<>
+QEC_KA. N}`\ 곲;ܳ):rDV_׶#MtHB E؟|HiԱI[^ObI{J{nܾ+HBqkR<TQTf*d *Wj~8)X[ǔ<fECPu.XLӖ%?[VK˦ޫZ^^S{>J+䀜EgUl炘+R5!
+\ƪ? ?׎hc Z%fǜm,(!44o 1jZ;b=CP@7bBS4Trԃ _e!z
+LYC+iJ'
+^;)՚L\6o_4;awpN/AxR!qΫbsĵڬc2-N͋Oe%i6<xtXe}tېuB ^:m0^?*Bw#|A+_G"}vL>3T?֤>6Q#ELJ]47$ B͗fF˸)͖]QMy9,`;UC[Gxhc#)Ţ6dquZ۽h
+2wd
+hIemT"%t4sOċ +u](0 ҢXok/ E&#ƮG繱.ros(5>uj 8ԯ`_J;lPi~h>T<h]mŹxXpMJ*U&هXjK'>JVΞۛWs 1t_uīgp D+X؄wtwOE#?pV=.- pef&^YS}fJ'yH?Qa*vyxAl1 qz ۛ/6Ugq&c ~[oE*ԝ wVg%d46Hi|Y2P(zbbx04t~wE'z-@7B
+^w_ņ1mZRu/(P8ݝ czzsabi%Wb%uV rdD;QaS]b髡 vF4 7.b@j2\X‹‚|
+- 佤;F6-ec&;hjLg/$} YԠo<OjeϝʘVK1aA\b`} }
+dY(U5Lޥ
+ٿoDoţ (
+XeWr;&e$7'pL\50 x}sbb9PٮUގkZq.U͵يuh%uaP3W噦~a<-gj-zQX̎gX (9Ș\-@*Z(
+6v8D8J
+rlqhjsW|t8Fǿ^'asVWef4peҥKg:0x26$=#s|BG*ėN2MInhP^@5M4Mg
+i#dO2,V
+폓l#YC)UٝUD`*eZ=D([L3^I/J h05h*!4 AFp3rVF5`fN }iHzq{qC>uy:STGS65Hɲ,oOڲ@riyˍOG z[
+0 j'`A0dFmP
+35 !g-bKZoWI7*0D2Uu(bC=?
+
+V8.أDԹ41h z9G(nu0n"JO㕽n=
+ҌC*Tc5a TD?A@2W I&\ݍep$,Wę[1e}vn_W;s
+ApYYR^R]j%X[zDb Oy@l3oc :LzyH!R-=pmÂU6FWfb4686M wrVQd#g.iI|,=$\JAҒxfqAZi\ƬH.cV*Z!2|7tA+=U. .x H_Q`Z3QiMQbȡi*VPY֐M[Cof#hbjni$7lSLPGҌ6oC3]qd4@ T ͓J8BM%&򬨽NBe\VPwq[i[,cnL<D$*NN(|~0i&trlSzd/=E)L@țxjOmme1Hu8:igm aA.j\Xldh&ь- j:s҃IK~&1᫤%&|҃%|pd!VU"cuMǵ*S '}aF \ .U}`0RVOUv(ç!3y_ VCyEokA+lzbauCèN%*hqPifAEI]f0 VlxKLMV' 2TEra9qDPb|5Gc#NWt8sH V!uNsS:Aav-Nժ M㈐ Vm,dEhXM bV 7'Rh+\ x5~¸2%-Ggxa~7FP խ4 P dL,S )@d`H%|yl4ml1c3X +J-*iE'IIIq菉;;I JmQƾs'Ir$EPH!x- N6=/yO$HH
+I?P<%_W.&>5 8h[_v=ӧ8B+J&
+A-ˣ (ϣX;#$8Bĵ Nr25&]W(K#;TCC'zW~ra9n,r"9d~a>ʂQ̘ɝXuQ> qؔ }=$.!G(8ԾQ;k9SU.8׼f]0V!_z:Vv~@3l }5!,g=|UH&v΅sBi #wL@~Ⳍܞ|d6ܨ=x\ M}"bq
+i5Q/KDE,rVysܯI.*E(%
+[.RK)C42׻
+r!t`=83:?)!H~t0ѝi9 ނ#/lCS$NBJ8517jV JܜWY=h``r qD0V' xנR#.JE~O'jfd%P400akʫŢj?)@Oua<+j jj,z<PI6@MstԹ[} k8f*U"
+)~N'k%贖l3TV hHzAG9oVlD6$D') oN; %̿lI>G(46~^0]a5`? ]PF::[W@kŴ<DW`2V|[;bT,G(hztE1^꼗Jye8j.ĭ deA>H& d!՗,`fȂ^.rxa<'w>4SJ$<bXTEa[EcnOx]1OuR[I gb@wdY LҜX:O;DP5P
+CBUxi6͆N<p\)C(\XiHqu`<pd?)ҧPc!=2.Qk9+3I
+Ϫ[p<R!#a0h;@A\gVl{jagdnbuLMpu9ŏC>n-<;l݂z8"&wAbN.΂PH
+IކD`Ɏ."7)c8
+WF=㼷rIAt~¨M$ &ނidÊQIzCϣ?UԦ># %/HҐ`!gQЕ $Y{q+  F=x|`P5O,7.mU`V<pF`mjNL-NjVK[,9qnJuf3H)b^ݾ5&`#^FZua<:6T5OϹ1~ͨGuziv;F+R7k>,bK'<_*rj,Dy[\qE&OYTAӂԻE_C^=\0+X DG)} ;B&?:}#~U7ѣsh_CEL~tz[CNQs WR?o 4zQCdLWDC
+X;q`5F<䫡a˞An%SSOla׽X,vJ8;frX竡Ȓ]$[U$V$dG_p:zPX$S< Ge \<O<zJ |ڶO0>&v%4@>Qb;MXAQ? \8֯*]DH3atyv9jr
+KU藬F(
+ECȀM((JM?Q9Oݛot
+my'z?<e7h 湿pn{LKt&:7>-G4圣''xܧib
+D3>9*읗7?wʽyfOQD/{#*ޗDM.iZ<˿{h2DFM~i2ۛ)`:{}<x~~^>5Os?ϔEQ,GB
+';
+dD j~Jȗ)8EO1ć2F3XjAA6/h]II(XBOV^vH|݁f8XjRYuLi3԰JUY%*PO`FAh 6hˣ<ѨX#k#ό%T]zy\@P2{@g1"QkF4ˆ` LAAkZ Ы(? 
+G(@Mkмmړ;IVA䨂^ 5U˻%"b,S ݒ1ԝ9 8'@Y4ݢB:ZJ΀lTH 0CF9C#D%~1$.(H!B$@Q@ImIwj))-:b" x~r,ɨL1em
+
+9Ŕb
+эFz*vMXals9a4{:a 9{mS6d0Ј,_AF”k6 7e:pi.O
+kR.3v ,xn9BAJoriI.0~S)F f(:(:>KQV5,PW5fO C6^;^Oz+\^\ TTwh8Z#nDA{HY
+,sZ4s3t)2 |MVGB$Q5D&v8sDuB&Ϡ]j_'.) G
+j"Mݐf?
+a"I)'4F/fJO<J8!@ܣǢVu
+)V꒼*vyfם^FGgwM% %ZzhΪ1iLJ"miDŽĔ\wؐ#YNl4tU@
+5arsfWݢsàZ>v*Eg(ө(0@,/2r-ɆHj̼vy7'm
+"oJ5@V3od/Һk#YS#H7QȴI9~kċs6Er9E#F2ɍ̶6[ tNj{&.tc(3$wi/!bH3MWN2M/smSѓ6f
+kiћ)W
+-Y^TyN(DvͽG.ʕXuYWH8A(An˧#@t.iG$Y虎ȋ!?$zk ]Cپ>vvu8!g[ȑhU%eԉG]i1f3==V)1'kinD-Q:Ɠ?)|IE.ç~ )D}m+G3ϭmeU?i])1+~ 1#~;&6I2k+nRbk܊V(bSBY`ſR+(U\ 7r2eVzuؤmd>reÙ;"8Y,M6&T2Zvr.ϵG{(PxEL{EdWX!`8{`0!_t
+&Dxg
+e
+uG{ŏsZ{Ŕ3Dj*} \MA'JȗJW!S,IاbK 6I"zF`S)&QP{MN(=G DB#vEZ=o3c!T1p,f/V e~Cug_gHkSv
+F"Q{S2 (fn<PuGh0.MyR8K# kc9a*!́2KWjNY`V *~F[-UkE&_YTӻ <,?7nfm6Ќ'Mx5NsI ݥ*'PSRQŶf"p1fA(}fQ&m
+#V2G]^m%)fn5gSZ'7?K1{fyD4YM,VnU8+iy6O)[a`DBEClz<NEޤqJ_yoJZo"KWւGH m)67>0g|܎{}%0'nl3:fe3ׄ 4\x y,HoY%¡9
+DF,/F,[\7F< Ě̮``(Q́(3"ci 7‰PcUQBedSacCdƣ[dV %X#Q,ٜНlP1F/?hlv l&ϡfh?=llPlC2M_O61- k#@6p#(a"r6|&pՂ:(uq8Ѝ;J
+7dӀsx'bl.>ԋ^żM=0Jb\ l@GӲf'o=l]od/FG8kfa7x^AVL
+#J*
+9iva"`6vtFXyiQ4Sc oV7Q8im%d˒%8jNDȈ7vHB;ywJܗE -2F.(48*p"i
+}Зq30HCXB*hS'Q7F|)jv@kzJ@6
+`qX<Iwq(0<L`)V,0^e f }٤#PwGq)ʄ©Kdcd71hU?`: 2W'wE98E
+D3K&JrS! r15n˰]
+8e/Xs06Ҵ(okiD.uQdd%Y
+>b<֠BxQ qYNԟ7$0c7Sm*T6zMVnl#2lC=3Yݜ WrLd^j67P5TG2!)08M]':~%&/֘MTE$ņ;p:j -W1
+$Z_a6<%$bSCۂcŐ]] B{|m;}( ,tJ_+5Qk֘Pɢ5a.N-,g3*./)ʄk 6_8I{ahOl,
+(%s
+q-|Nu@(M`g h
+ncI>=D*s/-?T+%#YR,j咋(ИFIYRK@C&!ڢVG<hhWR_HTXGӨƉmZ}'г,?O_R) +y
+EJQm{,1 'ǘgb`L.?u4|h۹R
+ Фeش2QnE]M;Zv*$Q)I9
+ud2K=x0ܒcPY1JE >jN?EI{rIcګ1 &K! l H9m̪|mtkm0;fgV39P~A㒳FeE9cOUmR_hbq&UQWp/EN8ȉ0v"Tc?SEžHerLįdeߋ`Ң8;` AIyH[ [
+չH,.% 9PzL-t&"*/>%,b4
+R_uX5"2lњ5ѴyjMZ=MƹpTyKKX#Aᛑ=dmS{AuA6tՐ/,%nYa
+D D𶩹bk$(W$ވBj(
+C^8łSd~ PcW~7~g}Afy@Æ簥2 %3ݙJ?U=ٞRz),G𳫁QjwoMpPV4p,wH5%z ;v*xhVeul/M5NrZK<AjkFf=gf@z(# tmLxW+hN s++YxF'*!~eq;tB &1_wKmSCB!X NMF3 ub"'HXsƄ$ıQ'Z]xqdjy$WX
+WMD@gCTNDXbdbz|KV! V7X_>Yݐ%/E !ĤMbaCla=b D#J| M%{q&4q<l$ij =vHY CEujv/8sHHa2EP7hG2vp&gkOM@ey¥fBs[9@@= _]5!ӆ]R/2W#1BUVcZ&S;H
+"qTѵufkl /Vp ͘,b029^[Lwu&OsR^NolK$ԧ
+fhjlpMFr~5GP7UBeB†ma$3^ 9,TwJӯ@>(Gs]z8P^,$*D'Jx~,}4MbKCCdCK0$ur|GTOw &E-H`6 h[8i-hbjs/{5h
+fK`)2M&GLӗ@`+A57E@cH|h`yo0C< <\쥮|GN%^͸,6Sn wj#a1!!*LHlol"YkYS;6xptݵ6m#oDłARC%AT=PaM٫
+9N6Ƒ;gu1XUuK8]>[?U"V/]
+~'kqZzkCM<clEvr5D.Յ 
+6:\py(n7R^wL`|e rP9+p{ΙWOGϘ3ho #Keqs'1rLcly;ЮȨx(9u&_4_5> ~1l*CR zi\(J:' :埍#~3-#n_)O5}@ T<"rNT&|ag/88A%ǃj%DZ)|KvS~A]lDyyBNf
+֙hׁ!nf:<aPn'"e>_וw#GmW;R).$6Wt>(a*9D
+`/.I盩Ouj4V-}/5\
+^Md<sS$gNZ(ƹKT?# "k1) ! ˋEYp:,o)
+ t9thV1ԵĄl"G{l{{DWA(DIޡ&[!hO_@JvH.غ;^L0*B%c4fx laIL%®c$7Vva2%M󴞉/jXLuXWql#@s"
+\ҫT=jNj>w5>(e)R2k7BCV%]P!I$peDj{c /j$S_^^d #]_r34O1V Sb/k-xFBIV]*. PgXR48%E͊Blb̶S ["=8$gl~$O s$;6v ^q$.bᾷݥ v4J1J
+RCƥg]
+;cTc~m'^h9E*j$Z/ݤM
+t Trv=ƨm9U>MFf?/A)0gq,ZDmlʕI׶, jKO/lґpv+
+endstream endobj 24 0 obj [23 0 R] endobj 36 0 obj <</CreationDate(D:20201123121918+01'00')/Creator(Adobe Illustrator 24.3 \(Windows\))/ModDate(D:20201123121918Z)/Producer(Adobe PDF library 15.00)/Title(UVtools_fb_cover)>> endobj xref
+0 37
+0000000004 65535 f
+0000000016 00000 n
+0000000147 00000 n
+0000045807 00000 n
+0000000000 00000 f
+0000045858 00000 n
+0000000000 00000 f
+0000063893 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000063966 00000 n
+0000064162 00000 n
+0000065425 00000 n
+0000131014 00000 n
+0000196603 00000 n
+0000000000 00000 f
+0000049698 00000 n
+0000049511 00000 n
+0000231806 00000 n
+0000046281 00000 n
+0000061209 00000 n
+0000061096 00000 n
+0000048450 00000 n
+0000048949 00000 n
+0000048997 00000 n
+0000049582 00000 n
+0000049613 00000 n
+0000049881 00000 n
+0000050143 00000 n
+0000061244 00000 n
+0000231831 00000 n
+trailer
+<</Size 37/Root 1 0 R/Info 36 0 R/ID[<AFC1730E2FB52C4788492E3E06878DC0><D96B84500A6B8547BCAFF5D5D9310B3E>]>>
+startxref
+232019
+%%EOF
diff --git a/UVtools.CAD/UVtools_fb_cover.png b/UVtools.CAD/UVtools_fb_cover.png
new file mode 100644
index 0000000..e2adf68
--- /dev/null
+++ b/UVtools.CAD/UVtools_fb_cover.png
Binary files differ
diff --git a/UVtools.Core/FileFormats/CWSFile.cs b/UVtools.Core/FileFormats/CWSFile.cs
index b86efe2..6ac5a7c 100644
--- a/UVtools.Core/FileFormats/CWSFile.cs
+++ b/UVtools.Core/FileFormats/CWSFile.cs
@@ -9,6 +9,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
+using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.IO.Compression;
@@ -662,6 +663,23 @@ namespace UVtools.Core.FileFormats
{
//DecodeXML(fileFullPath, inputFile, progress);
Printer = PrinterType.Wanhao;
+
+ try
+ {
+ var serializer = new XmlSerializer(typeof(CWSManifest));
+ using (var stream = entry.Open())
+ {
+ var manifest = (CWSManifest)serializer.Deserialize(stream);
+ OutputSettings.LayersNum = (uint) manifest.Slices.Length;
+ }
+ }
+ catch (Exception e)
+ {
+ Clear();
+ throw new FileLoadException($"Unable to deserialize '{entry.Name}'\n{e}", fileFullPath);
+ }
+
+
entry = inputFile.Entries.FirstOrDefault(e => e.Name.EndsWith(".slicing"));
if (!(entry is null))
@@ -746,14 +764,21 @@ namespace UVtools.Core.FileFormats
var displayNameAttribute = propertyInfo.GetCustomAttributes(false).OfType<DisplayNameAttribute>().FirstOrDefault();
if (ReferenceEquals(displayNameAttribute, null)) continue;
if (!splitLine[0].Trim(' ', ';', '(').Equals(displayNameAttribute.DisplayName)) continue;
- Helpers.SetPropertyValue(propertyInfo, OutputSettings, splitLine[1].Trim(' ', ')', 'p', 'x', 'm', 'n', 's', '/'));
+ try
+ {
+ Helpers.SetPropertyValue(propertyInfo, OutputSettings, splitLine[1].Trim(' ', ')', 'p', 'x', 'm', 'n', 's', '/'));
+ }
+ catch
+ {
+ // ignored
+ }
+
//Debug.WriteLine(splitLine[1].Trim(' ', ')', 'm', 'n', '/'));
}
}
tr.Close();
}
-
LayerManager = new LayerManager(OutputSettings.LayersNum, this);
progress.ItemCount = OutputSettings.LayersNum;
diff --git a/UVtools.Core/Layer/LayerIssue.cs b/UVtools.Core/Layer/LayerIssue.cs
index 58c086e..02ed9ce 100644
--- a/UVtools.Core/Layer/LayerIssue.cs
+++ b/UVtools.Core/Layer/LayerIssue.cs
@@ -48,6 +48,21 @@ namespace UVtools.Core
public List<uint> WhiteListLayers { get; set; } = null;
/// <summary>
+ /// Combines the island and overhang detections for a better more realistic detection and to discard false-positives. (Slower)
+ /// If enabled, and when a island is found, it will check for overhangs on that same island, if no overhang found then the island will be discarded and considered safe, otherwise it will flag as an island issue.
+ /// Note: Overhangs settings will be used to configure the detection.Enabling Overhangs is not required for this procedure to work.
+ /// </summary>
+ public bool EnhancedDetection { get; set; } = true;
+
+ /// <summary>
+ /// Gets the setting for whether or not diagonal bonds are considered when evaluation islands.
+ /// If true, all 8 neighbors of a pixel (including diagonals) will be considered when finding
+ /// individual components on the layer, if false only 4 neighbors (right, left, above, below)
+ /// will be considered..
+ /// </summary>
+ public bool AllowDiagonalBonds { get; set; } = false;
+
+ /// <summary>
/// Gets or sets the binary threshold, all pixels below this value will turn in black, otherwise white
/// Set to 0 to disable this operation
/// </summary>
@@ -78,14 +93,6 @@ namespace UVtools.Core
/// </summary>
public byte RequiredPixelBrightnessToSupport { get; set; } = 150;
- /// <summary>
- /// Gets the setting for whether or not diagonal bonds are considered when evaluation islands.
- /// If true, all 8 neighbors of a pixel (including diagonals) will be considered when finding
- /// individual components on the layer, if false only 4 neighbors (right, left, above, below)
- /// will be considered..
- /// </summary>
- public bool AllowDiagonalBonds { get; set; } = false;
-
public IslandDetectionConfiguration(bool enabled = true)
{
Enabled = enabled;
diff --git a/UVtools.Core/Layer/LayerManager.cs b/UVtools.Core/Layer/LayerManager.cs
index 02e4988..79cf506 100644
--- a/UVtools.Core/Layer/LayerManager.cs
+++ b/UVtools.Core/Layer/LayerManager.cs
@@ -1056,16 +1056,21 @@ namespace UVtools.Core
pixelsSupportingIsland >= Math.Max(1, points.Count / 2))
isIsland = false; // Not a island, but maybe weak bounding...*/
-
+ LayerIssue island = null;
if (pixelsSupportingIsland < requiredSupportingPixels)
{
- AddIssue(new LayerIssue(layer, LayerIssue.IssueType.Island,
+ island = new LayerIssue(layer, LayerIssue.IssueType.Island,
+ points.ToArray(),
+ rect);
+ /*AddIssue(new LayerIssue(layer, LayerIssue.IssueType.Island,
points.ToArray(),
- rect));
+ rect));*/
}
// Check for overhangs
- if (overhangConfig.Enabled && !overhangConfig.IndependentFromIslands)
+ if (overhangConfig.Enabled && !overhangConfig.IndependentFromIslands && island is null
+ || !ReferenceEquals(island, null) && islandConfig.EnhancedDetection && pixelsSupportingIsland >= 10
+ )
{
points.Clear();
using (var imageRoi = new Mat(image, rect))
@@ -1095,14 +1100,21 @@ namespace UVtools.Core
points.Add(new Point(labelX, labelY));
}
- if (points.Count >= overhangConfig.RequiredPixelsToConsider)
+ if (points.Count >= overhangConfig.RequiredPixelsToConsider) // Overhang
{
AddIssue(new LayerIssue(
layer, LayerIssue.IssueType.Overhang, points.ToArray(), rect
));
}
+ else if(islandConfig.EnhancedDetection) // No overhang
+ {
+ island = null;
+ }
}
}
+
+ if(!ReferenceEquals(island, null))
+ AddIssue(island);
}
diff --git a/UVtools.Core/UVtools.Core.csproj b/UVtools.Core/UVtools.Core.csproj
index 954676b..6825a71 100644
--- a/UVtools.Core/UVtools.Core.csproj
+++ b/UVtools.Core/UVtools.Core.csproj
@@ -10,7 +10,7 @@
<RepositoryUrl>https://github.com/sn4k3/UVtools</RepositoryUrl>
<PackageProjectUrl>https://github.com/sn4k3/UVtools</PackageProjectUrl>
<Description>MSLA/DLP, file analysis, repair, conversion and manipulation</Description>
- <Version>1.3.2</Version>
+ <Version>1.3.3</Version>
<Copyright>Copyright © 2020 PTRTECH</Copyright>
<PackageIcon>UVtools.png</PackageIcon>
<Platforms>AnyCPU;x64</Platforms>
diff --git a/UVtools.WPF/MainWindow.Issues.cs b/UVtools.WPF/MainWindow.Issues.cs
index 6542e25..e06b098 100644
--- a/UVtools.WPF/MainWindow.Issues.cs
+++ b/UVtools.WPF/MainWindow.Issues.cs
@@ -523,6 +523,7 @@ namespace UVtools.WPF
return new IslandDetectionConfiguration
{
Enabled = Settings.Issues.ComputeIslands,
+ EnhancedDetection = Settings.Issues.IslandEnhancedDetection,
AllowDiagonalBonds = Settings.Issues.IslandAllowDiagonalBonds,
BinaryThreshold = Settings.Issues.IslandBinaryThreshold,
RequiredAreaToProcessCheck = Settings.Issues.IslandRequiredAreaToProcessCheck,
diff --git a/UVtools.WPF/MainWindow.axaml b/UVtools.WPF/MainWindow.axaml
index 6526eeb..b5cd862 100644
--- a/UVtools.WPF/MainWindow.axaml
+++ b/UVtools.WPF/MainWindow.axaml
@@ -138,6 +138,15 @@
<MenuItem Header="_Help">
+ <MenuItem
+ Header="_About"
+ InputGesture="F1" HotKey="F1"
+ Command="{Binding MenuHelpAboutClicked}">
+ <MenuItem.Icon>
+ <Image Source="\Assets\Icons\button-info-16x16.png"/>
+ </MenuItem.Icon>
+ </MenuItem>
+
<MenuItem
Header="_Website"
InputGesture="Ctrl + F1" HotKey="Ctrl + F1"
@@ -156,14 +165,7 @@
</MenuItem.Icon>
</MenuItem>
- <MenuItem
- Header="_About"
- InputGesture="F1" HotKey="F1"
- Command="{Binding MenuHelpAboutClicked}">
- <MenuItem.Icon>
- <Image Source="\Assets\Icons\button-info-16x16.png"/>
- </MenuItem.Icon>
- </MenuItem>
+ <Separator/>
<MenuItem
Header="_Benchmark"
@@ -173,14 +175,6 @@
</MenuItem.Icon>
</MenuItem>
- <MenuItem
- Header="_Open settings folder"
- Command="{Binding MenuHelpOpenSettingsFolderClicked}">
- <MenuItem.Icon>
- <Image Source="\Assets\Icons\open-16x16.png"/>
- </MenuItem.Icon>
- </MenuItem>
-
<Separator/>
<MenuItem
@@ -189,7 +183,16 @@
<MenuItem.Icon>
<Image Source="\Assets\Icons\CNCMachine-16x16.png"/>
</MenuItem.Icon>
- </MenuItem>
+ </MenuItem>
+
+ <MenuItem
+ Header="_Open settings folder"
+ Command="{Binding MenuHelpOpenSettingsFolderClicked}">
+ <MenuItem.Icon>
+ <Image Source="\Assets\Icons\open-16x16.png"/>
+ </MenuItem.Icon>
+ </MenuItem>
+
</MenuItem>
<MenuItem
diff --git a/UVtools.WPF/UVtools.WPF.csproj b/UVtools.WPF/UVtools.WPF.csproj
index 2b64aba..5747b83 100644
--- a/UVtools.WPF/UVtools.WPF.csproj
+++ b/UVtools.WPF/UVtools.WPF.csproj
@@ -12,7 +12,7 @@
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<RepositoryUrl>https://github.com/sn4k3/UVtools</RepositoryUrl>
<RepositoryType>Git</RepositoryType>
- <Version>1.3.2</Version>
+ <Version>1.3.3</Version>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
diff --git a/UVtools.WPF/UserSettings.cs b/UVtools.WPF/UserSettings.cs
index 6f6e3d3..a27c687 100644
--- a/UVtools.WPF/UserSettings.cs
+++ b/UVtools.WPF/UserSettings.cs
@@ -48,67 +48,67 @@ namespace UVtools.WPF
public bool StartMaximized
{
get => _startMaximized;
- set => this.RaiseAndSetIfChanged(ref _startMaximized, value);
+ set => RaiseAndSetIfChanged(ref _startMaximized, value);
}
public bool CheckForUpdatesOnStartup
{
get => _checkForUpdatesOnStartup;
- set => this.RaiseAndSetIfChanged(ref _checkForUpdatesOnStartup, value);
+ set => RaiseAndSetIfChanged(ref _checkForUpdatesOnStartup, value);
}
public bool LoadDemoFileOnStartup
{
get => _loadDemoFileOnStartup;
- set => this.RaiseAndSetIfChanged(ref _loadDemoFileOnStartup, value);
+ set => RaiseAndSetIfChanged(ref _loadDemoFileOnStartup, value);
}
public byte DefaultOpenFileExtensionIndex
{
get => _defaultOpenFileExtensionIndex;
- set => this.RaiseAndSetIfChanged(ref _defaultOpenFileExtensionIndex, value);
+ set => RaiseAndSetIfChanged(ref _defaultOpenFileExtensionIndex, value);
}
public string DefaultDirectoryOpenFile
{
get => _defaultDirectoryOpenFile;
- set => this.RaiseAndSetIfChanged(ref _defaultDirectoryOpenFile, value);
+ set => RaiseAndSetIfChanged(ref _defaultDirectoryOpenFile, value);
}
public string DefaultDirectorySaveFile
{
get => _defaultDirectorySaveFile;
- set => this.RaiseAndSetIfChanged(ref _defaultDirectorySaveFile, value);
+ set => RaiseAndSetIfChanged(ref _defaultDirectorySaveFile, value);
}
public string DefaultDirectoryExtractFile
{
get => _defaultDirectoryExtractFile;
- set => this.RaiseAndSetIfChanged(ref _defaultDirectoryExtractFile, value);
+ set => RaiseAndSetIfChanged(ref _defaultDirectoryExtractFile, value);
}
public string DefaultDirectoryConvertFile
{
get => _defaultDirectoryConvertFile;
- set => this.RaiseAndSetIfChanged(ref _defaultDirectoryConvertFile, value);
+ set => RaiseAndSetIfChanged(ref _defaultDirectoryConvertFile, value);
}
public bool PromptOverwriteFileSave
{
get => _promptOverwriteFileSave;
- set => this.RaiseAndSetIfChanged(ref _promptOverwriteFileSave, value);
+ set => RaiseAndSetIfChanged(ref _promptOverwriteFileSave, value);
}
public string FileSaveNamePrefix
{
get => _fileSaveNamePrefix;
- set => this.RaiseAndSetIfChanged(ref _fileSaveNamePrefix, value);
+ set => RaiseAndSetIfChanged(ref _fileSaveNamePrefix, value);
}
public string FileSaveNameSuffix
{
get => _fileSaveNameSuffix;
- set => this.RaiseAndSetIfChanged(ref _fileSaveNameSuffix, value);
+ set => RaiseAndSetIfChanged(ref _fileSaveNameSuffix, value);
}
/// <summary>
@@ -117,7 +117,7 @@ namespace UVtools.WPF
public int MaxDegreeOfParallelism
{
get => _maxDegreeOfParallelism;
- set => this.RaiseAndSetIfChanged(ref _maxDegreeOfParallelism, value);
+ set => RaiseAndSetIfChanged(ref _maxDegreeOfParallelism, value);
}
public GeneralUserSettings()
@@ -175,8 +175,8 @@ namespace UVtools.WPF
get => _tooltipOverlayBackgroundColor;
set
{
- this.RaiseAndSetIfChanged(ref _tooltipOverlayBackgroundColor, value);
- this.RaisePropertyChanged(nameof(TooltipOverlayBackgroundBrush));
+ RaiseAndSetIfChanged(ref _tooltipOverlayBackgroundColor, value);
+ RaisePropertyChanged(nameof(TooltipOverlayBackgroundBrush));
}
}
@@ -190,7 +190,7 @@ namespace UVtools.WPF
public bool TooltipOverlay
{
get => _tooltipOverlay;
- set => this.RaiseAndSetIfChanged(ref _tooltipOverlay, value);
+ set => RaiseAndSetIfChanged(ref _tooltipOverlay, value);
}
public Color VolumeBoundsOutlineColor
@@ -198,8 +198,8 @@ namespace UVtools.WPF
get => _volumeBoundsOutlineColor;
set
{
- this.RaiseAndSetIfChanged(ref _volumeBoundsOutlineColor, value);
- this.RaisePropertyChanged(nameof(VolumeBoundsOutlineBrush));
+ RaiseAndSetIfChanged(ref _volumeBoundsOutlineColor, value);
+ RaisePropertyChanged(nameof(VolumeBoundsOutlineBrush));
}
}
@@ -213,13 +213,13 @@ namespace UVtools.WPF
public byte VolumeBoundsOutlineThickness
{
get => _volumeBoundsOutlineThickness;
- set => this.RaiseAndSetIfChanged(ref _volumeBoundsOutlineThickness, value);
+ set => RaiseAndSetIfChanged(ref _volumeBoundsOutlineThickness, value);
}
public bool VolumeBoundsOutline
{
get => _volumeBoundsOutline;
- set => this.RaiseAndSetIfChanged(ref _volumeBoundsOutline, value);
+ set => RaiseAndSetIfChanged(ref _volumeBoundsOutline, value);
}
public Color LayerBoundsOutlineColor
@@ -227,8 +227,8 @@ namespace UVtools.WPF
get => _layerBoundsOutlineColor;
set
{
- this.RaiseAndSetIfChanged(ref _layerBoundsOutlineColor, value);
- this.RaisePropertyChanged(nameof(LayerBoundsOutlineBrush));
+ RaiseAndSetIfChanged(ref _layerBoundsOutlineColor, value);
+ RaisePropertyChanged(nameof(LayerBoundsOutlineBrush));
}
}
@@ -242,13 +242,13 @@ namespace UVtools.WPF
public byte LayerBoundsOutlineThickness
{
get => _layerBoundsOutlineThickness;
- set => this.RaiseAndSetIfChanged(ref _layerBoundsOutlineThickness, value);
+ set => RaiseAndSetIfChanged(ref _layerBoundsOutlineThickness, value);
}
public bool LayerBoundsOutline
{
get => _layerBoundsOutline;
- set => this.RaiseAndSetIfChanged(ref _layerBoundsOutline, value);
+ set => RaiseAndSetIfChanged(ref _layerBoundsOutline, value);
}
public Color HollowOutlineColor
@@ -256,8 +256,8 @@ namespace UVtools.WPF
get => _hollowOutlineColor;
set
{
- this.RaiseAndSetIfChanged(ref _hollowOutlineColor, value);
- this.RaisePropertyChanged(nameof(HollowOutlineBrush));
+ RaiseAndSetIfChanged(ref _hollowOutlineColor, value);
+ RaisePropertyChanged(nameof(HollowOutlineBrush));
}
}
@@ -271,13 +271,13 @@ namespace UVtools.WPF
public byte HollowOutlineLineThickness
{
get => _hollowOutlineLineThickness;
- set => this.RaiseAndSetIfChanged(ref _hollowOutlineLineThickness, value);
+ set => RaiseAndSetIfChanged(ref _hollowOutlineLineThickness, value);
}
public bool HollowOutline
{
get => _hollowOutline;
- set => this.RaiseAndSetIfChanged(ref _hollowOutline, value);
+ set => RaiseAndSetIfChanged(ref _hollowOutline, value);
}
public Color PreviousLayerDifferenceColor
@@ -285,8 +285,8 @@ namespace UVtools.WPF
get => _previousLayerDifferenceColor;
set
{
- this.RaiseAndSetIfChanged(ref _previousLayerDifferenceColor, value);
- this.RaisePropertyChanged(nameof(PreviousLayerDifferenceBrush));
+ RaiseAndSetIfChanged(ref _previousLayerDifferenceColor, value);
+ RaisePropertyChanged(nameof(PreviousLayerDifferenceBrush));
}
}
@@ -302,8 +302,8 @@ namespace UVtools.WPF
get => _nextLayerDifferenceColor;
set
{
- this.RaiseAndSetIfChanged(ref _nextLayerDifferenceColor, value);
- this.RaisePropertyChanged(nameof(NextLayerDifferenceBrush));
+ RaiseAndSetIfChanged(ref _nextLayerDifferenceColor, value);
+ RaisePropertyChanged(nameof(NextLayerDifferenceBrush));
}
}
@@ -319,8 +319,8 @@ namespace UVtools.WPF
get => _bothLayerDifferenceColor;
set
{
- this.RaiseAndSetIfChanged(ref _bothLayerDifferenceColor, value);
- this.RaisePropertyChanged(nameof(BothLayerDifferenceBrush));
+ RaiseAndSetIfChanged(ref _bothLayerDifferenceColor, value);
+ RaisePropertyChanged(nameof(BothLayerDifferenceBrush));
}
}
@@ -334,7 +334,7 @@ namespace UVtools.WPF
public bool ShowLayerDifference
{
get => _showLayerDifference;
- set => this.RaiseAndSetIfChanged(ref _showLayerDifference, value);
+ set => RaiseAndSetIfChanged(ref _showLayerDifference, value);
}
public Color IslandColor
@@ -342,8 +342,8 @@ namespace UVtools.WPF
get => _islandColor;
set
{
- this.RaiseAndSetIfChanged(ref _islandColor, value);
- this.RaisePropertyChanged(nameof(IslandBrush));
+ RaiseAndSetIfChanged(ref _islandColor, value);
+ RaisePropertyChanged(nameof(IslandBrush));
}
}
@@ -359,8 +359,8 @@ namespace UVtools.WPF
get => _islandHighlightColor;
set
{
- this.RaiseAndSetIfChanged(ref _islandHighlightColor, value);
- this.RaisePropertyChanged(nameof(IslandHighlightBrush));
+ RaiseAndSetIfChanged(ref _islandHighlightColor, value);
+ RaisePropertyChanged(nameof(IslandHighlightBrush));
}
}
@@ -376,8 +376,8 @@ namespace UVtools.WPF
get => _overhangColor;
set
{
- this.RaiseAndSetIfChanged(ref _overhangColor, value);
- this.RaisePropertyChanged(nameof(OverhangBrush));
+ RaiseAndSetIfChanged(ref _overhangColor, value);
+ RaisePropertyChanged(nameof(OverhangBrush));
}
}
@@ -393,8 +393,8 @@ namespace UVtools.WPF
get => _overhangHighlightColor;
set
{
- this.RaiseAndSetIfChanged(ref _overhangHighlightColor, value);
- this.RaisePropertyChanged(nameof(OverhangHighlightBrush));
+ RaiseAndSetIfChanged(ref _overhangHighlightColor, value);
+ RaisePropertyChanged(nameof(OverhangHighlightBrush));
}
}
@@ -410,8 +410,8 @@ namespace UVtools.WPF
get => _resinTrapColor;
set
{
- this.RaiseAndSetIfChanged(ref _resinTrapColor, value);
- this.RaisePropertyChanged(nameof(ResinTrapBrush));
+ RaiseAndSetIfChanged(ref _resinTrapColor, value);
+ RaisePropertyChanged(nameof(ResinTrapBrush));
}
}
@@ -427,8 +427,8 @@ namespace UVtools.WPF
get => _resinTrapHighlightColor;
set
{
- this.RaiseAndSetIfChanged(ref _resinTrapHighlightColor, value);
- this.RaisePropertyChanged(nameof(ResinTrapHighlightBrush));
+ RaiseAndSetIfChanged(ref _resinTrapHighlightColor, value);
+ RaisePropertyChanged(nameof(ResinTrapHighlightBrush));
}
}
@@ -443,8 +443,8 @@ namespace UVtools.WPF
get => _touchingBoundsColor;
set
{
- this.RaiseAndSetIfChanged(ref _touchingBoundsColor, value);
- this.RaisePropertyChanged(nameof(TouchingBoundsBrush));
+ RaiseAndSetIfChanged(ref _touchingBoundsColor, value);
+ RaisePropertyChanged(nameof(TouchingBoundsBrush));
}
}
@@ -460,8 +460,8 @@ namespace UVtools.WPF
get => _crosshairColor;
set
{
- this.RaiseAndSetIfChanged(ref _crosshairColor, value);
- this.RaisePropertyChanged(nameof(CrosshairBrush));
+ RaiseAndSetIfChanged(ref _crosshairColor, value);
+ RaisePropertyChanged(nameof(CrosshairBrush));
}
}
@@ -475,61 +475,61 @@ namespace UVtools.WPF
public bool ZoomToFitPrintVolumeBounds
{
get => _zoomToFitPrintVolumeBounds;
- set => this.RaiseAndSetIfChanged(ref _zoomToFitPrintVolumeBounds, value);
+ set => RaiseAndSetIfChanged(ref _zoomToFitPrintVolumeBounds, value);
}
public byte ZoomLockLevelIndex
{
get => _zoomLockLevelIndex;
- set => this.RaiseAndSetIfChanged(ref _zoomLockLevelIndex, value);
+ set => RaiseAndSetIfChanged(ref _zoomLockLevelIndex, value);
}
public bool ZoomIssues
{
get => _zoomIssues;
- set => this.RaiseAndSetIfChanged(ref _zoomIssues, value);
+ set => RaiseAndSetIfChanged(ref _zoomIssues, value);
}
public bool CrosshairShowOnlyOnSelectedIssues
{
get => _crosshairShowOnlyOnSelectedIssues;
- set => this.RaiseAndSetIfChanged(ref _crosshairShowOnlyOnSelectedIssues, value);
+ set => RaiseAndSetIfChanged(ref _crosshairShowOnlyOnSelectedIssues, value);
}
public byte CrosshairFadeLevelIndex
{
get => _crosshairFadeLevelIndex;
- set => this.RaiseAndSetIfChanged(ref _crosshairFadeLevelIndex, value);
+ set => RaiseAndSetIfChanged(ref _crosshairFadeLevelIndex, value);
}
public uint CrosshairLength
{
get => _crosshairLength;
- set => this.RaiseAndSetIfChanged(ref _crosshairLength, value);
+ set => RaiseAndSetIfChanged(ref _crosshairLength, value);
}
public byte CrosshairMargin
{
get => _crosshairMargin;
- set => this.RaiseAndSetIfChanged(ref _crosshairMargin, value);
+ set => RaiseAndSetIfChanged(ref _crosshairMargin, value);
}
public bool AutoRotateLayerBestView
{
get => _autoRotateLayerBestView;
- set => this.RaiseAndSetIfChanged(ref _autoRotateLayerBestView, value);
+ set => RaiseAndSetIfChanged(ref _autoRotateLayerBestView, value);
}
public bool LayerZoomToFitOnLoad
{
get => _layerZoomToFitOnLoad;
- set => this.RaiseAndSetIfChanged(ref _layerZoomToFitOnLoad, value);
+ set => RaiseAndSetIfChanged(ref _layerZoomToFitOnLoad, value);
}
public bool ShowBackgroudGrid
{
get => _showBackgroudGrid;
- set => this.RaiseAndSetIfChanged(ref _showBackgroudGrid, value);
+ set => RaiseAndSetIfChanged(ref _showBackgroudGrid, value);
}
public LayerPreviewUserSettings Clone()
@@ -551,6 +551,7 @@ namespace UVtools.WPF
private bool _computeResinTraps = true;
private bool _computeTouchingBounds = true;
private bool _computeEmptyLayers = true;
+ private bool _islandEnhancedDetection = true;
private bool _islandAllowDiagonalBonds = false;
private byte _islandBinaryThreshold = 0;
private byte _islandRequiredAreaToProcessCheck = 1;
@@ -574,121 +575,127 @@ namespace UVtools.WPF
public bool ComputeIssuesOnLoad
{
get => _computeIssuesOnLoad;
- set => this.RaiseAndSetIfChanged(ref _computeIssuesOnLoad, value);
+ set => RaiseAndSetIfChanged(ref _computeIssuesOnLoad, value);
}
public bool ComputeIssuesOnClickTab
{
get => _computeIssuesOnClickTab;
- set => this.RaiseAndSetIfChanged(ref _computeIssuesOnClickTab, value);
+ set => RaiseAndSetIfChanged(ref _computeIssuesOnClickTab, value);
}
public bool ComputeIslands
{
get => _computeIslands;
- set => this.RaiseAndSetIfChanged(ref _computeIslands, value);
+ set => RaiseAndSetIfChanged(ref _computeIslands, value);
}
public bool ComputeOverhangs
{
get => _computeOverhangs;
- set => this.RaiseAndSetIfChanged(ref _computeOverhangs, value);
+ set => RaiseAndSetIfChanged(ref _computeOverhangs, value);
}
public bool ComputeResinTraps
{
get => _computeResinTraps;
- set => this.RaiseAndSetIfChanged(ref _computeResinTraps, value);
+ set => RaiseAndSetIfChanged(ref _computeResinTraps, value);
}
public bool ComputeTouchingBounds
{
get => _computeTouchingBounds;
- set => this.RaiseAndSetIfChanged(ref _computeTouchingBounds, value);
+ set => RaiseAndSetIfChanged(ref _computeTouchingBounds, value);
}
public bool ComputeEmptyLayers
{
get => _computeEmptyLayers;
- set => this.RaiseAndSetIfChanged(ref _computeEmptyLayers, value);
+ set => RaiseAndSetIfChanged(ref _computeEmptyLayers, value);
+ }
+
+ public bool IslandEnhancedDetection
+ {
+ get => _islandEnhancedDetection;
+ set => RaiseAndSetIfChanged(ref _islandEnhancedDetection, value);
}
public bool IslandAllowDiagonalBonds
{
get => _islandAllowDiagonalBonds;
- set => this.RaiseAndSetIfChanged(ref _islandAllowDiagonalBonds, value);
+ set => RaiseAndSetIfChanged(ref _islandAllowDiagonalBonds, value);
}
public byte IslandBinaryThreshold
{
get => _islandBinaryThreshold;
- set => this.RaiseAndSetIfChanged(ref _islandBinaryThreshold, value);
+ set => RaiseAndSetIfChanged(ref _islandBinaryThreshold, value);
}
public byte IslandRequiredAreaToProcessCheck
{
get => _islandRequiredAreaToProcessCheck;
- set => this.RaiseAndSetIfChanged(ref _islandRequiredAreaToProcessCheck, value);
+ set => RaiseAndSetIfChanged(ref _islandRequiredAreaToProcessCheck, value);
}
public decimal IslandRequiredPixelsToSupportMultiplier
{
get => _islandRequiredPixelsToSupportMultiplier;
- set => this.RaiseAndSetIfChanged(ref _islandRequiredPixelsToSupportMultiplier, value);
+ set => RaiseAndSetIfChanged(ref _islandRequiredPixelsToSupportMultiplier, value);
}
public byte IslandRequiredPixelsToSupport
{
get => _islandRequiredPixelsToSupport;
- set => this.RaiseAndSetIfChanged(ref _islandRequiredPixelsToSupport, value);
+ set => RaiseAndSetIfChanged(ref _islandRequiredPixelsToSupport, value);
}
public byte IslandRequiredPixelBrightnessToProcessCheck
{
get => _islandRequiredPixelBrightnessToProcessCheck;
- set => this.RaiseAndSetIfChanged(ref _islandRequiredPixelBrightnessToProcessCheck, value);
+ set => RaiseAndSetIfChanged(ref _islandRequiredPixelBrightnessToProcessCheck, value);
}
public byte IslandRequiredPixelBrightnessToSupport
{
get => _islandRequiredPixelBrightnessToSupport;
- set => this.RaiseAndSetIfChanged(ref _islandRequiredPixelBrightnessToSupport, value);
+ set => RaiseAndSetIfChanged(ref _islandRequiredPixelBrightnessToSupport, value);
}
public bool OverhangIndependentFromIslands
{
get => _overhangIndependentFromIslands;
- set => this.RaiseAndSetIfChanged(ref _overhangIndependentFromIslands, value);
+ set => RaiseAndSetIfChanged(ref _overhangIndependentFromIslands, value);
}
public byte OverhangErodeIterations
{
get => _overhangErodeIterations;
- set => this.RaiseAndSetIfChanged(ref _overhangErodeIterations, value);
+ set => RaiseAndSetIfChanged(ref _overhangErodeIterations, value);
}
public byte ResinTrapBinaryThreshold
{
get => _resinTrapBinaryThreshold;
- set => this.RaiseAndSetIfChanged(ref _resinTrapBinaryThreshold, value);
+ set => RaiseAndSetIfChanged(ref _resinTrapBinaryThreshold, value);
}
public byte ResinTrapRequiredAreaToProcessCheck
{
get => _resinTrapRequiredAreaToProcessCheck;
- set => this.RaiseAndSetIfChanged(ref _resinTrapRequiredAreaToProcessCheck, value);
+ set => RaiseAndSetIfChanged(ref _resinTrapRequiredAreaToProcessCheck, value);
}
public byte ResinTrapRequiredBlackPixelsToDrain
{
get => _resinTrapRequiredBlackPixelsToDrain;
- set => this.RaiseAndSetIfChanged(ref _resinTrapRequiredBlackPixelsToDrain, value);
+ set => RaiseAndSetIfChanged(ref _resinTrapRequiredBlackPixelsToDrain, value);
}
public byte ResinTrapMaximumPixelBrightnessToDrain
{
get => _resinTrapMaximumPixelBrightnessToDrain;
- set => this.RaiseAndSetIfChanged(ref _resinTrapMaximumPixelBrightnessToDrain, value);
+ set => RaiseAndSetIfChanged(ref _resinTrapMaximumPixelBrightnessToDrain, value);
}
public byte TouchingBoundMinimumPixelBrightness
@@ -784,8 +791,8 @@ namespace UVtools.WPF
get => _addPixelColor;
set
{
- this.RaiseAndSetIfChanged(ref _addPixelColor, value);
- this.RaisePropertyChanged(nameof(AddPixelBrush));
+ RaiseAndSetIfChanged(ref _addPixelColor, value);
+ RaisePropertyChanged(nameof(AddPixelBrush));
}
}
@@ -801,8 +808,8 @@ namespace UVtools.WPF
get => _addPixelHighlightColor;
set
{
- this.RaiseAndSetIfChanged(ref _addPixelHighlightColor, value);
- this.RaisePropertyChanged(nameof(AddPixelHighlightBrush));
+ RaiseAndSetIfChanged(ref _addPixelHighlightColor, value);
+ RaisePropertyChanged(nameof(AddPixelHighlightBrush));
}
}
@@ -818,8 +825,8 @@ namespace UVtools.WPF
get => _removePixelColor;
set
{
- this.RaiseAndSetIfChanged(ref _removePixelColor, value);
- this.RaisePropertyChanged(nameof(RemovePixelBrush));
+ RaiseAndSetIfChanged(ref _removePixelColor, value);
+ RaisePropertyChanged(nameof(RemovePixelBrush));
}
}
@@ -835,8 +842,8 @@ namespace UVtools.WPF
get => _removePixelHighlightColor;
set
{
- this.RaiseAndSetIfChanged(ref _removePixelHighlightColor, value);
- this.RaisePropertyChanged(nameof(RemovePixelHighlightBrush));
+ RaiseAndSetIfChanged(ref _removePixelHighlightColor, value);
+ RaisePropertyChanged(nameof(RemovePixelHighlightBrush));
}
}
@@ -852,8 +859,8 @@ namespace UVtools.WPF
get => _supportsColor;
set
{
- this.RaiseAndSetIfChanged(ref _supportsColor, value);
- this.RaisePropertyChanged(nameof(SupportsBrush));
+ RaiseAndSetIfChanged(ref _supportsColor, value);
+ RaisePropertyChanged(nameof(SupportsBrush));
}
}
@@ -869,8 +876,8 @@ namespace UVtools.WPF
get => _supportsHighlightColor;
set
{
- this.RaiseAndSetIfChanged(ref _supportsHighlightColor, value);
- this.RaisePropertyChanged(nameof(SupportsHighlightBrush));
+ RaiseAndSetIfChanged(ref _supportsHighlightColor, value);
+ RaisePropertyChanged(nameof(SupportsHighlightBrush));
}
}
@@ -886,8 +893,8 @@ namespace UVtools.WPF
get => _drainHoleColor;
set
{
- this.RaiseAndSetIfChanged(ref _drainHoleColor, value);
- this.RaisePropertyChanged(nameof(DrainHoleBrush));
+ RaiseAndSetIfChanged(ref _drainHoleColor, value);
+ RaisePropertyChanged(nameof(DrainHoleBrush));
}
}
@@ -903,8 +910,8 @@ namespace UVtools.WPF
get => _drainHoleHighlightColor;
set
{
- this.RaiseAndSetIfChanged(ref _drainHoleHighlightColor, value);
- this.RaisePropertyChanged(nameof(DrainHoleHighlightBrush));
+ RaiseAndSetIfChanged(ref _drainHoleHighlightColor, value);
+ RaisePropertyChanged(nameof(DrainHoleHighlightBrush));
}
}
@@ -920,8 +927,8 @@ namespace UVtools.WPF
get => _cursorColor;
set
{
- this.RaiseAndSetIfChanged(ref _cursorColor, value);
- this.RaisePropertyChanged(nameof(CursorBrush));
+ RaiseAndSetIfChanged(ref _cursorColor, value);
+ RaisePropertyChanged(nameof(CursorBrush));
}
}
@@ -935,13 +942,13 @@ namespace UVtools.WPF
public bool PartialUpdateIslandsOnEditing
{
get => _partialUpdateIslandsOnEditing;
- set => this.RaiseAndSetIfChanged(ref _partialUpdateIslandsOnEditing, value);
+ set => RaiseAndSetIfChanged(ref _partialUpdateIslandsOnEditing, value);
}
public bool CloseEditorOnApply
{
get => _closeEditorOnApply;
- set => this.RaiseAndSetIfChanged(ref _closeEditorOnApply, value);
+ set => RaiseAndSetIfChanged(ref _closeEditorOnApply, value);
}
public PixelEditorUserSettings Clone()
@@ -966,43 +973,43 @@ namespace UVtools.WPF
public bool RepairIslands
{
get => _repairIslands;
- set => this.RaiseAndSetIfChanged(ref _repairIslands, value);
+ set => RaiseAndSetIfChanged(ref _repairIslands, value);
}
public bool RepairResinTraps
{
get => _repairResinTraps;
- set => this.RaiseAndSetIfChanged(ref _repairResinTraps, value);
+ set => RaiseAndSetIfChanged(ref _repairResinTraps, value);
}
public bool RemoveEmptyLayers
{
get => _removeEmptyLayers;
- set => this.RaiseAndSetIfChanged(ref _removeEmptyLayers, value);
+ set => RaiseAndSetIfChanged(ref _removeEmptyLayers, value);
}
public byte RemoveIslandsBelowEqualPixels
{
get => _removeIslandsBelowEqualPixels;
- set => this.RaiseAndSetIfChanged(ref _removeIslandsBelowEqualPixels, value);
+ set => RaiseAndSetIfChanged(ref _removeIslandsBelowEqualPixels, value);
}
public ushort RemoveIslandsRecursiveIterations
{
get => _removeIslandsRecursiveIterations;
- set => this.RaiseAndSetIfChanged(ref _removeIslandsRecursiveIterations, value);
+ set => RaiseAndSetIfChanged(ref _removeIslandsRecursiveIterations, value);
}
public byte ClosingIterations
{
get => _closingIterations;
- set => this.RaiseAndSetIfChanged(ref _closingIterations, value);
+ set => RaiseAndSetIfChanged(ref _closingIterations, value);
}
public byte OpeningIterations
{
get => _openingIterations;
- set => this.RaiseAndSetIfChanged(ref _openingIterations, value);
+ set => RaiseAndSetIfChanged(ref _openingIterations, value);
}
public LayerRepairUserSettings Clone()
@@ -1109,7 +1116,7 @@ namespace UVtools.WPF
public ushort SettingsVersion
{
get => _settingsVersion;
- set => this.RaiseAndSetIfChanged(ref _settingsVersion, value);
+ set => RaiseAndSetIfChanged(ref _settingsVersion, value);
}
/// <summary>
@@ -1119,7 +1126,7 @@ namespace UVtools.WPF
public string AppVersion
{
get => _appVersion ??= App.Version.ToString();
- set => this.RaiseAndSetIfChanged(ref _appVersion, value);
+ set => RaiseAndSetIfChanged(ref _appVersion, value);
}
/// <summary>
@@ -1128,7 +1135,7 @@ namespace UVtools.WPF
public uint SavesCount
{
get => _savesCount;
- set => this.RaiseAndSetIfChanged(ref _savesCount, value);
+ set => RaiseAndSetIfChanged(ref _savesCount, value);
}
/// <summary>
@@ -1137,7 +1144,7 @@ namespace UVtools.WPF
public DateTime ModifiedDateTime
{
get => _modifiedDateTime;
- set => this.RaiseAndSetIfChanged(ref _modifiedDateTime, value);
+ set => RaiseAndSetIfChanged(ref _modifiedDateTime, value);
}
#endregion
diff --git a/UVtools.WPF/Windows/AboutWindow.axaml b/UVtools.WPF/Windows/AboutWindow.axaml
index bb20424..474155d 100644
--- a/UVtools.WPF/Windows/AboutWindow.axaml
+++ b/UVtools.WPF/Windows/AboutWindow.axaml
@@ -12,7 +12,68 @@
<StackPanel Orientation="Vertical">
<StackPanel VerticalAlignment="Center" Orientation="Horizontal">
- <Image Margin="20,0,0,0" Source="/Assets/Icons/UVtools_alt.ico" Width="256"/>
+ <Border Margin="20,20,0,20">
+ <StackPanel Spacing="5">
+ <Image Margin="0,0,0,15" HorizontalAlignment="Center" Source="/Assets/Icons/UVtools_alt.ico" Width="256"/>
+ <TextBox
+ Text="{Binding OSDescription}"
+ IsReadOnly="True"
+ BorderBrush="Transparent"
+ CaretBrush="Transparent"
+ Watermark="Operative System:"
+ UseFloatingWatermark="True"/>
+
+ <TextBox
+ Text="{Binding FrameworkDescription}"
+ IsReadOnly="True"
+ BorderBrush="Transparent"
+ CaretBrush="Transparent"
+ Watermark="Framework:"
+ UseFloatingWatermark="True"/>
+
+ <TextBox
+ Text="{Binding ProcessorCount}"
+ IsReadOnly="True"
+ BorderBrush="Transparent"
+ CaretBrush="Transparent"
+ Watermark="Processor Count:"
+ UseFloatingWatermark="True"/>
+
+ <TextBox
+ Text="{Binding ScreensDescription}"
+ IsReadOnly="True"
+ BorderBrush="Transparent"
+ CaretBrush="Transparent"
+ Watermark="Screens, resolution, working area, usable area:"
+ UseFloatingWatermark="True"/>
+
+ <!--
+ <TextBox
+ Text="{Binding ScreenResolution}"
+ IsReadOnly="True"
+ BorderBrush="Transparent"
+ CaretBrush="Transparent"
+ Watermark="Resolution:"
+ UseFloatingWatermark="True"/>
+
+ <TextBox
+ Text="{Binding WorkingArea}"
+ IsReadOnly="True"
+ BorderBrush="Transparent"
+ CaretBrush="Transparent"
+ Watermark="Working Area:"
+ UseFloatingWatermark="True"/>
+
+ <TextBox
+ Text="{Binding RealWorkingArea}"
+ IsReadOnly="True"
+ BorderBrush="Transparent"
+ CaretBrush="Transparent"
+ Watermark="Real Working Area:"
+ UseFloatingWatermark="True"/>
+ -->
+ </StackPanel>
+ </Border>
<Grid
RowDefinitions="Auto,10,Auto,10,Auto,10,Auto,10,*"
Margin="20"
diff --git a/UVtools.WPF/Windows/AboutWindow.axaml.cs b/UVtools.WPF/Windows/AboutWindow.axaml.cs
index 61939ce..740d0f5 100644
--- a/UVtools.WPF/Windows/AboutWindow.axaml.cs
+++ b/UVtools.WPF/Windows/AboutWindow.axaml.cs
@@ -1,4 +1,8 @@
-using Avalonia.Markup.Xaml;
+using System;
+using System.Runtime.InteropServices;
+using System.Text;
+using Avalonia;
+using Avalonia.Markup.Xaml;
using UVtools.Core;
using UVtools.WPF.Controls;
@@ -7,16 +11,40 @@ namespace UVtools.WPF.Windows
public class AboutWindow : WindowEx
{
public string Software => About.Software;
- public string Version => $"Version: {App.VersionStr}";
+ public string Version => $"Version: {App.VersionStr} {RuntimeInformation.ProcessArchitecture}";
public string Copyright => App.AssemblyCopyright;
public string Company => App.AssemblyCompany;
public string Description => App.AssemblyDescription;
+ public string OSDescription => $"{RuntimeInformation.OSDescription} {RuntimeInformation.OSArchitecture}";
+ public string FrameworkDescription => RuntimeInformation.FrameworkDescription;
+ public int ProcessorCount => Environment.ProcessorCount;
+ public int ScreenCount => Screens.ScreenCount;
+ public string ScreenResolution => $"{Screens.Primary.Bounds.Width} x {Screens.Primary.Bounds.Height} @ {Screens.Primary.PixelDensity*100}%";
+ public string WorkingArea => $"{Screens.Primary.WorkingArea.Width} x {Screens.Primary.WorkingArea.Height}";
+ public string RealWorkingArea => $"{Math.Round(Screens.Primary.WorkingArea.Width / Screens.Primary.PixelDensity)} x {Math.Round(Screens.Primary.WorkingArea.Height / Screens.Primary.PixelDensity)}";
+
+ public string ScreensDescription
+ {
+ get
+ {
+ var result = new StringBuilder();
+ for (int i = 0; i < Screens.All.Count; i++)
+ {
+ var screen = Screens.All[i];
+ result.AppendLine($"{i+1}: {screen.Bounds.Width} x {screen.Bounds.Height} @ {screen.PixelDensity * 100}%");
+ result.AppendLine($" WA: {screen.WorkingArea.Width} x {screen.WorkingArea.Height} UA: {Math.Round(screen.WorkingArea.Width / screen.PixelDensity)} x {Math.Round(screen.WorkingArea.Height / screen.PixelDensity)}");
+ }
+ return result.ToString().TrimEnd();
+ }
+ }
+
public AboutWindow()
{
InitializeComponent();
DataContext = this;
+ Environment.OSVersion.Version.ToString();
}
private void InitializeComponent()
diff --git a/UVtools.WPF/Windows/SettingsWindow.axaml b/UVtools.WPF/Windows/SettingsWindow.axaml
index 4182b2b..f0d20ff 100644
--- a/UVtools.WPF/Windows/SettingsWindow.axaml
+++ b/UVtools.WPF/Windows/SettingsWindow.axaml
@@ -659,7 +659,16 @@
<StackPanel Orientation="Vertical">
<TextBlock Padding="10" Background="LightBlue" FontWeight="Bold" Text="Islands"/>
+
<CheckBox Margin="15"
+ Content="Enhance island detection with an combined overhang check"
+ IsChecked="{Binding Settings.Issues.IslandEnhancedDetection}"
+ ToolTip.Tip="Combines the island and overhang detections for a better and more realistic detection, also to discard false-positives. (Slower)
+&#x0a;If enabled, and when a island is found, it will check for overhangs on that same island, if no overhang found then the island will be discarded and considered safe, otherwise it will flag as an island issue.
+&#x0a;Note: Overhangs settings will be used to configure the detection. Enabling Overhangs is not required for this procedure to work."
+ />
+
+ <CheckBox Margin="15,0,15,15"
Content="Allow diagonal bonds during island detection"
IsChecked="{Binding Settings.Issues.IslandAllowDiagonalBonds}"
ToolTip.Tip="If enabled, components touching by even a single diagonal bond will be considered a single component for the purposes of island detection.