From c84e4bdb65501fe7b216587457b2041dd3ec3a53 Mon Sep 17 00:00:00 2001 From: Victor Grycuk Date: Tue, 25 Aug 2020 23:33:17 -0300 Subject: [PATCH] Add project --- README.md | 41 + .../StreamDeck.ColorPicker.sln | 25 + .../StreamDeck.ColorPicker/App.config | 14 + .../StreamDeck.ColorPicker/ClipboardHelper.cs | 20 + .../StreamDeck.ColorPicker/Colors.json | 62 + .../Images/categoryIcon.png | Bin 0 -> 603 bytes .../Images/categoryIcon@2x.png | Bin 0 -> 1167 bytes .../Images/colorPicker.png | Bin 0 -> 2097 bytes .../Images/colorPicker@2x.png | Bin 0 -> 4508 bytes .../StreamDeck.ColorPicker/Images/icon.png | Bin 0 -> 467 bytes .../StreamDeck.ColorPicker/Images/icon@2x.png | Bin 0 -> 853 bytes .../Images/pluginIcon.png | Bin 0 -> 2097 bytes .../Images/pluginIcon@2x.png | Bin 0 -> 4508 bytes .../StreamDeck.ColorPicker/Program.cs | 20 + .../Properties/AssemblyInfo.cs | 36 + .../PropertyInspector/ColorPickerPI.html | 34 + .../PropertyInspector/PluginActionPI.html | 34 + .../PropertyInspector/caret.svg | 3 + .../PropertyInspector/check.png | Bin 0 -> 234 bytes .../PropertyInspector/check.svg | 3 + .../PropertyInspector/elg_calendar.svg | 24 + .../PropertyInspector/elg_calendar_inv.svg | 7 + .../PropertyInspector/rcheck.svg | 3 + .../PropertyInspector/sdpi.css | 1469 +++++++++++++++++ .../PropertyInspector/sdtools.common.js | 289 ++++ .../StreamDeck.ColorPicker/ScreenHelper.cs | 78 + .../StreamDeck.ColorPicker/StaticPicker.cs | 88 + .../StreamDeck.ColorPicker.csproj | 149 ++ .../StreamDeck.ColorPicker/ValueFormat.cs | 95 ++ .../StreamDeck.ColorPicker/manifest.json | 38 + .../StreamDeck.ColorPicker/packages.config | 9 + Tools/DistributionTool.exe | Bin 0 -> 289792 bytes 32 files changed, 2541 insertions(+) create mode 100644 README.md create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker.sln create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/App.config create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/ClipboardHelper.cs create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/Colors.json create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/categoryIcon.png create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/categoryIcon@2x.png create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/colorPicker.png create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/colorPicker@2x.png create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/icon.png create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/icon@2x.png create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/pluginIcon.png create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/pluginIcon@2x.png create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/Program.cs create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/Properties/AssemblyInfo.cs create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/ColorPickerPI.html create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/PluginActionPI.html create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/caret.svg create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/check.png create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/check.svg create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/elg_calendar.svg create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/elg_calendar_inv.svg create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/rcheck.svg create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/sdpi.css create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/sdtools.common.js create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/ScreenHelper.cs create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/StaticPicker.cs create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/StreamDeck.ColorPicker.csproj create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/ValueFormat.cs create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/manifest.json create mode 100644 StreamDeck.ColorPicker/StreamDeck.ColorPicker/packages.config create mode 100644 Tools/DistributionTool.exe diff --git a/README.md b/README.md new file mode 100644 index 0000000..cc66a38 --- /dev/null +++ b/README.md @@ -0,0 +1,41 @@ +# Color Picker for StreamDeck +## Description + +As a [color-blind](https://en.wikipedia.org/wiki/Color_blindness) person sometimes I struggle to recognize certain colors, so I thought it would be nice to have the functionality of [WhatColor](http://www.hikarun.com/e/) in StreamDeck. And while I was there, I decided to add the options to show their RGB or hexadecimal value. + +When pressed, it will get the color information (name, RGB, or hexadecimal) of the pixel where the mouse is and show it on the StreamDeck key. Optionally, the the value can be copied to the clipboard. + +Also check my [KeePass plugin](https://github.com/VictorGrycuk/StreamDeck-KeePass) for StreamDeck. + +It was done using BarRaider's [Stream Deck Tools](https://github.com/BarRaider/streamdeck-tools). + +## Features + +#### Color Picker + +When pressed, it will return either the color name, the RGB value, or the hexadecimal value of the color where the mouse is. It has the following configuration: + +- **Value to show:** The value to show on the key: + - Color name + - RGB Value + - Hex Value +- **Copy value to clipboard:** If checked, it will copy the selected value to the clipboard. For the RGB it will copy the RGB value delimited by coma, for the hexadecimal value it will copy the hexadecimal without the hash character. + +#### Custom Color Name + +I am using the [WhatColor](http://www.hikarun.com/e/) names definition for the 16 VGA color. I might expand this, not sure. + +However, I decided to leave the definition file open for customization. The file containing the definition is called `Colors.json` and can be found in the root folder of the plugin, and it consists of an array of color name and its RGB value. + +However, have in mind that in its current state, the plugin has a static font size and long names might be cut off. + +## Future Features + +I am planning to add two different behaviour for the plugin: + +- **Dynamic:** Follow the mouse around and update the data shown in the key every 1 second. +- **Fixed Dynamic:** Same as above, except at a fixed screen location. + +--- + +The icons are modified version of *Color* and *iOS Filled* at [Icon8](https://icons8.com). \ No newline at end of file diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker.sln b/StreamDeck.ColorPicker/StreamDeck.ColorPicker.sln new file mode 100644 index 0000000..7025a71 --- /dev/null +++ b/StreamDeck.ColorPicker/StreamDeck.ColorPicker.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30002.166 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StreamDeck.ColorPicker", "StreamDeck.ColorPicker\StreamDeck.ColorPicker.csproj", "{4635D874-69C0-4010-BE46-77EF92EB1553}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4635D874-69C0-4010-BE46-77EF92EB1553}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4635D874-69C0-4010-BE46-77EF92EB1553}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4635D874-69C0-4010-BE46-77EF92EB1553}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4635D874-69C0-4010-BE46-77EF92EB1553}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {DB3F7F7D-1381-46E1-B366-C7DE8A391A1C} + EndGlobalSection +EndGlobal diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/App.config b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/App.config new file mode 100644 index 0000000..9395f24 --- /dev/null +++ b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/App.config @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/ClipboardHelper.cs b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/ClipboardHelper.cs new file mode 100644 index 0000000..189b226 --- /dev/null +++ b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/ClipboardHelper.cs @@ -0,0 +1,20 @@ +using System.Threading; + +namespace StreamDeck.ColorPicker +{ + public static class ClipboardHelper + { + internal static void SendToClipboard(string text) + { + var thread = new Thread(() => ClipboardThread(text)); + thread.SetApartmentState(ApartmentState.STA); + thread.IsBackground = false; + thread.Start(); + } + + private static void ClipboardThread(string text) + { + System.Windows.Forms.Clipboard.SetText(text); + } + } +} diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/Colors.json b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/Colors.json new file mode 100644 index 0000000..721074d --- /dev/null +++ b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/Colors.json @@ -0,0 +1,62 @@ +[ + { + "Name": "Black", + "Color": "0, 0, 0" + }, + { + "Name": "White", + "Color": "255, 255, 255" + }, + { + "Name": "Green", + "Color": "0, 128, 0" + }, + { + "Name": "Silver", + "Color": "192, 192, 192" + }, + { + "Name": "Lime", + "Color": "0, 255, 0" + }, + { + "Name": "Gray", + "Color": "128, 128, 128" + }, + { + "Name": "Olive", + "Color": "128, 128, 0" + }, + { + "Name": "Yellow", + "Color": "255, 255, 0" + }, + { + "Name": "Maroon", + "Color": "128, 0, 0" + }, + { + "Name": "Navy", + "Color": "0, 0, 128" + }, + { + "Name": "Red", + "Color": "255, 0, 0" + }, + { + "Name": "Blue", + "Color": "0, 0, 255" + }, + { + "Name": "Purple", + "Color": "128, 0, 128" + }, + { + "Name": "Teal", + "Color": "0, 128, 128" + }, + { + "Name": "Fuchsia", + "Color": "255, 0, 255" + } +] \ No newline at end of file diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/categoryIcon.png b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/categoryIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..b50cfd1935e72f4db000c53b5b3cee36a46570bd GIT binary patch literal 603 zcmV-h0;K(kP)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ-;Ymb6RCwCF*1c;KK^VvJ&%GGI!a`6RI|Z#p7(wi;Q(TOa7n6V%3M$r$m4%gs zh}amDcp>o!Df}BOys6Trv9Yj?z2VMg0?WFW-0f|AU}5H&XXiV=XP;--TDRLZj)f5Z z@x>TVVFov`hfWBg3w0G+jIoI~_=rV3!`B$&t;&Hh#s*gKFt>CLD>24UuMjqYHOvnP zxq#c_0#C#kFQ@SW=8lLzGcNEgc4Lg&*ue53u|0fijsbgzM`_$bA9vIIenI>PY?K9F z#Dkn~3LV@jfVS~8gwQLS(jV9^@K0eYRp~)`*Rd2r=s{V96B&j1LTM$XOZbkh16WyL z6Psx~oxa_C0kjuFn9jdEYDyca*IMamCnf6zv6C^zD@CUrMcEo=GrrkO57u(&{S-pj zEemWEz_QSj8Q2`&hY%hYZB!ppS$hENz-suD(t9ag*aJ5kCXF+P#B5?ARbnr-j55F` zJ`V}oAGQ$cV=7x51vW_GFv`B9%G@8diHj624*|PZ237=okxo9yI%Sm=0ng&e5z6LM z`KtnW1Lu!RSsr*AF9*c5t5B8&UdJk~=GOM`Jl!7qDzZ9$VJG9;!DPCkUZ>lmGHc=| pUZwf9^z-`LFQ literal 0 HcmV?d00001 diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/categoryIcon@2x.png b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/categoryIcon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..75bfed5ddb49bbc5996898ebb92d4b26d9973c57 GIT binary patch literal 1167 zcmV;A1aSL_P)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ=6-h)vRCwCln#)fWR~*MbOjt;p=t2dwz7`79q!A4DC$!as#Kc6c$OX0Prj6;& zL|6JJ2rFY;7!$i_tBWckYBZ)c#Ye=0)Qx{YlNJRP#l~prlP>0Wlj+TU%*?rW9(-5i z%sGeo@OyIRR83D$Gm}+qyMZw#>UVAhz5&(%^MHSVKY)Hd-%3_Z-WhoOC&^+K`_6038I|+c*8eg-4o4|9R3iwcly(i;# z(OJOHzz}c&_#IdQJOQ=>H!SzR6(?W~a0=Mr8EXbE0gb?8t!dXo?*AG%7Z+d+@DtFL z=UD@A9%urd>6|c@JRu^ZaRD9&GDV&@Y1i_pLS_O&{t6t5tI)S;qg+Z2S|%DaS#0+S zIRxwykymj6eiYz$HmW6;1CN025|B55?IJSi9gG_ARyMo&RFl@kYXX@^FS?eHz4GoLOug}fMH-1=oXQwLJOk? z`~+AAjB5$F7hvsjO+1b2t{LEK5qVr}QIvpn`hu4ga!f551hPThb%p+s#!D@T3b0l? zi_f*bod=cxe``#Q282AVM;IglaK2iu-7~gIV`>TTm-e1PAX|ZsBmmZ{<=XQ+YgX{3 zz{7y<`W|=@H(ar&T55R=E<&pAp3!9aRS!qOZYiUY0;QmsxjGF!d(Y(j}D0o zu(pU>7Lqq6vydYNEVmPQ85dxEo`ezv@-nbk-F0hD$MPev2lzMWkwLk%Kx3}mVvkqA zTm5+g*aWQA@w>pgFlQp=Oei*RceEx>c*b4=zuCN)Q^tg13)htcR~A_T8e_sFlw94` zzH*!j$gzO4Nhn^pZY}gA2GAI@uuL)6RVmAbPBLn_vwFS~+5t47JgRgf>;#0X)0k^Z zVnVS3RJZ|4xZz62Tqr>OV%lE@%Vo4niA>c#;N}zVBV@jqn;>F2CE#kb2TUcL9~V6W zY_x={cqs@4XpHH>z13ioP%=>_6yGsujB$VimX^!JX}MAsY}Nm?!)QcfE_S$LfGxOR zU{eiO3@~HimJdmgoILUOEwCYELK!1ra&q9>a4)hm z_i*Sb36-O8EkG}@$j6#D8gD%!vKRM2D6z`c!9Rhkz~%z;rg0B{&fs1?y)PnfNP(&W zMC3Ve%oy`Aa5!hqBydnfejtVVUy>1#Uf`f-XbkrwV=CeDmI)E*1NP(IH`yX0!=zYM hGyT@R!wlDd0{~{V6>f-)yITMN002ovPDHLkV1oL{^C$oS literal 0 HcmV?d00001 diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/colorPicker.png b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/colorPicker.png new file mode 100644 index 0000000000000000000000000000000000000000..5dbee7b38e409069c4fbb20dbf18c219a7cb6f11 GIT binary patch literal 2097 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 bYWv>+`ne3mg9A7(00000NkvXXu0mjfWIgZ* literal 0 HcmV?d00001 diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/colorPicker@2x.png b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/colorPicker@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..32ec844fb4171910a905a326ffefe0da64cb7497 GIT binary patch literal 4508 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 JPDHLkV1h&4#A*Nl literal 0 HcmV?d00001 diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/icon@2x.png b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/icon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1759c54057d28d2f48fb49317b0e00263b88565f GIT binary patch literal 853 zcmV-b1FHOqP)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ;+et)0RCwCV*h`39MHI&IUyqllJ7JWdpe_1V=b0a8g}UvZo&h&HjjObWt@nJ4iqM5>v3a-+nC4x%41*PG_)q9 z;08R08_qKSHXg+3sR<}|DV{HZgY9?-TZ;+6y^8BA_}+sn#|gL@M{r$5|0~dHI>eXb z-28b@4Y)H(y$L%H2k}1M%j!LiV>R~p2A?zmxDLCL9o&JROMI@$N^Zmqp2GbR@qMr3 zsB>^WSMeNf&3QIGASZW4#8>0!gL7zO7E4*lJp;nM3Ck&^^P2{o%TV3l7qNmn@yCFi zT;C+%Y!BS3?azv???c6&_$9`n#TfK z72Kc9O5c(Xs?#`(eG&0z*}`HC%C&1OS%p}^7F>WzNAY3^xY=9)Rju9Qe=0wtKWS#8N(!cw=4$5LA`Xn|=V_`!SeI%R#K_=ELp(%S z57bn8cm-2R57&IzLKAR(0aHp_hRC_LhOFp;YvEB`ILWYXs=`G?qj3EIZ^lJc zs&yQ2XM{MVbTOV7(0V#qxg}$=BE#**y|}u>_ZK`C5r@Zl9aeND`{q9LfBW~Q^B4|A z#An8AMc2u92D`fEKF#3o4mwme4j2({q?C^5yOrDU7WPKO4<>B?6+}e*ikI*?Uid%2 fjpUDe)Ar8*c8All|5cSr00000NkvXXu0mjfF1m@G literal 0 HcmV?d00001 diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/pluginIcon.png b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/pluginIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..5dbee7b38e409069c4fbb20dbf18c219a7cb6f11 GIT binary patch literal 2097 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 bYWv>+`ne3mg9A7(00000NkvXXu0mjfWIgZ* literal 0 HcmV?d00001 diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/pluginIcon@2x.png b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/Images/pluginIcon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..32ec844fb4171910a905a326ffefe0da64cb7497 GIT binary patch literal 4508 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 e&E + + + + + + + StreamDeck.ColorPicker Settings + + + + + +
+
+
Value to show
+ +
+
+
Copy value to clipboard
+
+
+ + +
+
+
+
+ + diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/PluginActionPI.html b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/PluginActionPI.html new file mode 100644 index 0000000..5a73c12 --- /dev/null +++ b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/PluginActionPI.html @@ -0,0 +1,34 @@ + + + + + + + + StreamDeck.ColorPicker Settings + + + + + +
+
+
Value to show
+ +
+
+
Copy value to clipboard
+
+
+ + +
+
+
+
+ + diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/caret.svg b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/caret.svg new file mode 100644 index 0000000..b69162a --- /dev/null +++ b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/caret.svg @@ -0,0 +1,3 @@ + + + diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/check.png b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/check.png new file mode 100644 index 0000000000000000000000000000000000000000..b5e9e622cb4cd2396d583bfde341ab09ad46b347 GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CF!3HE7boT!OQY`6?zK#qG8~eHcB(ehe3q4&N zLnI`V6BL;K{Qp0nx#MU@09PPWhz)bcd + + diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/elg_calendar.svg b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/elg_calendar.svg new file mode 100644 index 0000000..157e01b --- /dev/null +++ b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/elg_calendar.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/elg_calendar_inv.svg b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/elg_calendar_inv.svg new file mode 100644 index 0000000..4f8af68 --- /dev/null +++ b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/elg_calendar_inv.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/rcheck.svg b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/rcheck.svg new file mode 100644 index 0000000..af478ee --- /dev/null +++ b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/rcheck.svg @@ -0,0 +1,3 @@ + + + diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/sdpi.css b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/sdpi.css new file mode 100644 index 0000000..ccd6ad4 --- /dev/null +++ b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/sdpi.css @@ -0,0 +1,1469 @@ +.linkspan { + cursor: pointer; + color: #7397d2; + text-decoration: underline; +} + +html { + --sdpi-bgcolor: #2D2D2D; + --sdpi-background: #3D3D3D; + --sdpi-color: #d8d8d8; + --sdpi-bordercolor: #3a3a3a; + --sdpi-buttonbordercolor: #969696; + --sdpi-borderradius: 0px; + --sdpi-width: 224px; + --sdpi-fontweight: 600; + height: 100%; + width: 100%; + overflow: hidden; +} + +html, body { + font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-size: 9pt; + background-color: var(--sdpi-bgcolor); + color: #9a9a9a; +} + +body { + height: 100%; + padding: 0; + overflow-x: hidden; + overflow-y: auto; + margin: 0; + -webkit-overflow-scrolling: touch; + -webkit-text-size-adjust: 100%; + -webkit-font-smoothing: antialiased; +} + +mark { + background-color: var(--sdpi-bgcolor); + color: var(--sdpi-color); +} + +hr, hr2 { + -webkit-margin-before: 1em; + -webkit-margin-after: 1em; + border-style: none; + background: var(--sdpi-background); + height: 1px; +} + +hr2, +.sdpi-heading { + display: flex; + flex-basis: 100%; + align-items: center; + color: inherit; + font-size: 9pt; + margin: 8px 0px; +} + +.sdpi-heading::before, +.sdpi-heading::after { + content: ""; + flex-grow: 1; + background: var(--sdpi-background); + height: 1px; + font-size: 0px; + line-height: 0px; + margin: 0px 16px; +} + +hr2 { + height: 2px; +} + +hr, hr2 { + margin-left:16px; + margin-right:16px; +} + +.sdpi-item-value, +option, +input, +select, +button { + font-size: 10pt; + font-weight: var(--sdpi-fontweight); + letter-spacing: var(--sdpi-letterspacing); +} + + + +.win .sdpi-item-value, +.win option, +.win input, +.win select, +.win button { + font-size: 11px; + font-style: normal; + letter-spacing: inherit; + font-weight: 100; +} + +.win button { + font-size: 12px; +} + +::-webkit-progress-value, +meter::-webkit-meter-optimum-value { + border-radius: 2px; + /* background: linear-gradient(#ccf, #99f 20%, #77f 45%, #77f 55%, #cdf); */ +} + +::-webkit-progress-bar, +meter::-webkit-meter-bar { + border-radius: 3px; + background: var(--sdpi-background); +} + +::-webkit-progress-bar:active, +meter::-webkit-meter-bar:active { + border-radius: 3px; + background: #222222; +} +::-webkit-progress-value:active, +meter::-webkit-meter-optimum-value:active { + background: #99f; +} + +progress, +progress.sdpi-item-value { + min-height: 5px !important; + height: 5px; + background-color: #303030; +} + +progress { + margin-top: 8px !important; + margin-bottom: 8px !important; +} + +.full progress, +progress.full { + margin-top: 3px !important; +} + +::-webkit-progress-inner-element { + background-color: transparent; +} + + +.sdpi-item[type="progress"] { + margin-top: 4px !important; + margin-bottom: 12px; + min-height: 15px; +} + +.sdpi-item-child.full:last-child { + margin-bottom: 4px; +} + +.tabs { + /** + * Setting display to flex makes this container lay + * out its children using flexbox, the exact same + * as in the above "Stepper input" example. + */ + display: flex; + + border-bottom: 1px solid #D7DBDD; +} + +.tab { + cursor: pointer; + padding: 5px 30px; + color: #16a2d7; + font-size: 9pt; + border-bottom: 2px solid transparent; +} + +.tab.is-tab-selected { + border-bottom-color: #4ebbe4; +} + +select { + -webkit-appearance: none; + -moz-appearance: none; + -o-appearance: none; + appearance: none; + background: url(caret.svg) no-repeat 97% center; +} + +label.sdpi-file-label, +input[type="button"], +input[type="submit"], +input[type="reset"], +input[type="file"], +input[type=file]::-webkit-file-upload-button, +button, +select { + color: var(--sdpi-color); + border: 1pt solid #303030; + font-size: 8pt; + background-color: var(--sdpi-background); + border-radius: var(--sdpi-borderradius); +} + +label.sdpi-file-label, +input[type="button"], +input[type="submit"], +input[type="reset"], +input[type="file"], +input[type=file]::-webkit-file-upload-button, +button { + border: 1pt solid var(--sdpi-buttonbordercolor); + border-radius: var(--sdpi-borderradius); + border-color: var(--sdpi-buttonbordercolor); + min-height: 23px !important; + height: 23px !important; + margin-right: 8px; +} + +input[type=number]::-webkit-inner-spin-button, +input[type=number]::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; +} + +input[type="file"] { + border-radius: var(--sdpi-borderradius); + max-width: 220px; +} + + +option { + height: 1.5em; + padding: 4px; +} + +/* SDPI */ + +.sdpi-wrapper { + overflow-x: hidden; +} + +.sdpi-item { + display: flex; + flex-direction: row; + min-height: 32px; + align-items: center; + margin-top: 2px; + max-width: 344px; +} + +.sdpi-item:first-child { + margin-top:1px; +} + +.sdpi-item:last-child { + margin-bottom: 0px; +} + +.sdpi-item > *:not(.sdpi-item-label):not(meter):not(details) { + min-height: 26px; + padding: 0px 4px 0px 4px; +} + +.sdpi-item > *:not(.sdpi-item-label.empty):not(meter) { + min-height: 26px; + padding: 0px 4px 0px 4px; +} + + +.sdpi-item-group { + padding: 0 !important; +} + +meter.sdpi-item-value { + margin-left: 6px; +} + +.sdpi-item[type="group"] { + display: block; + margin-top: 12px; + margin-bottom: 12px; + /* border: 1px solid white; */ + flex-direction: unset; + text-align: left; +} + +.sdpi-item[type="group"] > .sdpi-item-label, +.sdpi-item[type="group"].sdpi-item-label { + width: 96%; + text-align: left; + font-weight: 700; + margin-bottom: 4px; + padding-left: 4px; +} + +dl, +ul, +ol { + -webkit-margin-before: 0px; + -webkit-margin-after: 4px; + -webkit-padding-start: 1em; + max-height: 90px; + overflow-y: scroll; + cursor: pointer; + user-select: none; +} + +table.sdpi-item-value, +dl.sdpi-item-value, +ul.sdpi-item-value, +ol.sdpi-item-value { + -webkit-margin-before: 4px; + -webkit-margin-after: 8px; + -webkit-padding-start: 1em; + width: var(--sdpi-width); + text-align: center; +} + +table > caption { + margin: 2px; +} + +.list, +.sdpi-item[type="list"] { + align-items: baseline; +} + +.sdpi-item-label { + text-align: right; + flex: none; + width: 94px; + padding-right: 4px; + font-weight: 600; + -webkit-user-select: none; +} + +.win .sdpi-item-label, +.sdpi-item-label > small{ + font-weight: normal; +} + +.sdpi-item-label:after { + content: ": "; +} + +.sdpi-item-label.empty:after { + content: ""; +} + +.sdpi-test, +.sdpi-item-value { + flex: 1 0 0; + /* flex-grow: 1; + flex-shrink: 0; */ + margin-right: 14px; + margin-left: 4px; + justify-content: space-evenly; +} + +canvas.sdpi-item-value { + max-width: 144px; + max-height: 144px; + width: 144px; + height: 144px; + margin: 0 auto; + cursor: pointer; +} + +input.sdpi-item-value { + margin-left: 5px; +} + +.sdpi-item-value button, +button.sdpi-item-value { + margin-left: 7px; + margin-right: 19px; +} + +.sdpi-item-value.range { + margin-left: 0px; +} + +table, +dl.sdpi-item-value, +ul.sdpi-item-value, +ol.sdpi-item-value, +.sdpi-item-value > dl, +.sdpi-item-value > ul, +.sdpi-item-value > ol +{ + list-style-type: none; + list-style-position: outside; + margin-left: -4px; + margin-right: -4px; + padding: 4px; + border: 1px solid var(--sdpi-bordercolor); +} + +dl.sdpi-item-value, +ul.sdpi-item-value, +ol.sdpi-item-value, +.sdpi-item-value > ol { + list-style-type: none; + list-style-position: inside; + margin-left: 5px; + margin-right: 12px; + padding: 4px !important; +} + +ol.sdpi-item-value, +.sdpi-item-value > ol[listtype="none"] { + list-style-type: none; +} +ol.sdpi-item-value[type="decimal"], +.sdpi-item-value > ol[type="decimal"] { + list-style-type: decimal; +} + +ol.sdpi-item-value[type="decimal-leading-zero"], +.sdpi-item-value > ol[type="decimal-leading-zero"] { + list-style-type: decimal-leading-zero; +} + +ol.sdpi-item-value[type="lower-alpha"], +.sdpi-item-value > ol[type="lower-alpha"] { + list-style-type: lower-alpha; +} + +ol.sdpi-item-value[type="upper-alpha"], +.sdpi-item-value > ol[type="upper-alpha"] { + list-style-type: upper-alpha; +} + +ol.sdpi-item-value[type="upper-roman"], +.sdpi-item-value > ol[type="upper-roman"] { + list-style-type: upper-roman; +} + +ol.sdpi-item-value[type="lower-roman"], +.sdpi-item-value > ol[type="lower-roman"] { + list-style-type: upper-roman; +} + +tr:nth-child(even), +.sdpi-item-value > ul > li:nth-child(even), +.sdpi-item-value > ol > li:nth-child(even), +li:nth-child(even) { + background-color: rgba(0,0,0,.2) +} + +td:hover, +.sdpi-item-value > ul > li:hover:nth-child(even), +.sdpi-item-value > ol > li:hover:nth-child(even), +li:hover:nth-child(even), +li:hover { + background-color: rgba(255,255,255,.1); +} + +td.selected, +td.selected:hover, +li.selected:hover, +li.selected { + color: white; + background-color: #77f; +} + +tr { + border: 1px solid var(--sdpi-bordercolor); +} + +td { + border-right: 1px solid var(--sdpi-bordercolor); + -webkit-user-select: none; +} + +tr:last-child, +td:last-child { + border: none; +} + +.sdpi-item-value.select, +.sdpi-item-value > select { + margin-right: 13px; + margin-left: 4px; +} + +.sdpi-item-child, +.sdpi-item-group > .sdpi-item > input[type="color"] { + margin-top: 0.4em; + margin-right: 4px; +} + +.full, +.full *, +.sdpi-item-value.full, +.sdpi-item-child > full > *, +.sdpi-item-child.full, +.sdpi-item-child.full > *, +.full > .sdpi-item-child, +.full > .sdpi-item-child > *{ + display: flex; + flex: 1 1 0; + margin-bottom: 4px; + margin-left: 0px; + width: 100%; + + justify-content: space-evenly; +} + +.sdpi-item-group > .sdpi-item > input[type="color"] { + margin-top: 0px; +} + +::-webkit-calendar-picker-indicator:focus, +input[type=file]::-webkit-file-upload-button:focus, +button:focus, +textarea:focus, +input:focus, +select:focus, +option:focus, +details:focus, +summary:focus, +.custom-select select { + outline: none; +} + +summary { + cursor: default; + -webkit-user-select: none; +} + +.pointer, +summary .pointer { + cursor: pointer; +} + +details.message { + padding: 4px 18px 4px 12px; +} + +details.message summary { + font-size: 10pt; + font-weight: 600; + min-height: 18px; +} + +details.message:first-child { + margin-top: 4px; + margin-left: 0; + padding-left: 106px; +} + +details.message h1 { + text-align: left; +} + +.message > summary::-webkit-details-marker { + display: none; +} + +.info20, +.question, +.caution, +.info { + background-repeat: no-repeat; + background-position: 70px center; +} + +.info20 { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='%23999' d='M10,20 C4.4771525,20 0,15.5228475 0,10 C0,4.4771525 4.4771525,0 10,0 C15.5228475,0 20,4.4771525 20,10 C20,15.5228475 15.5228475,20 10,20 Z M10,8 C8.8954305,8 8,8.84275812 8,9.88235294 L8,16.1176471 C8,17.1572419 8.8954305,18 10,18 C11.1045695,18 12,17.1572419 12,16.1176471 L12,9.88235294 C12,8.84275812 11.1045695,8 10,8 Z M10,3 C8.8954305,3 8,3.88165465 8,4.96923077 L8,5.03076923 C8,6.11834535 8.8954305,7 10,7 C11.1045695,7 12,6.11834535 12,5.03076923 L12,4.96923077 C12,3.88165465 11.1045695,3 10,3 Z'/%3E%3C/svg%3E%0A"); +} + +.info { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='%23999' d='M10,18 C5.581722,18 2,14.418278 2,10 C2,5.581722 5.581722,2 10,2 C14.418278,2 18,5.581722 18,10 C18,14.418278 14.418278,18 10,18 Z M10,8 C9.44771525,8 9,8.42137906 9,8.94117647 L9,14.0588235 C9,14.5786209 9.44771525,15 10,15 C10.5522847,15 11,14.5786209 11,14.0588235 L11,8.94117647 C11,8.42137906 10.5522847,8 10,8 Z M10,5 C9.44771525,5 9,5.44082732 9,5.98461538 L9,6.01538462 C9,6.55917268 9.44771525,7 10,7 C10.5522847,7 11,6.55917268 11,6.01538462 L11,5.98461538 C11,5.44082732 10.5522847,5 10,5 Z'/%3E%3C/svg%3E%0A"); +} + +.info2 { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 15 15'%3E%3Cpath fill='%23999' d='M7.5,15 C3.35786438,15 0,11.6421356 0,7.5 C0,3.35786438 3.35786438,0 7.5,0 C11.6421356,0 15,3.35786438 15,7.5 C15,11.6421356 11.6421356,15 7.5,15 Z M7.5,2 C6.67157287,2 6,2.66124098 6,3.47692307 L6,3.52307693 C6,4.33875902 6.67157287,5 7.5,5 C8.32842705,5 9,4.33875902 9,3.52307693 L9,3.47692307 C9,2.66124098 8.32842705,2 7.5,2 Z M5,6 L5,7.02155172 L6,7 L6,12 L5,12.0076778 L5,13 L10,13 L10,12 L9,12.0076778 L9,6 L5,6 Z'/%3E%3C/svg%3E%0A"); +} + +.sdpi-more-info { + background-image: linear-gradient(to right, #00000000 0%,#00000040 80%), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpolygon fill='%23999' points='4 7 8 7 8 5 12 8 8 11 8 9 4 9'/%3E%3C/svg%3E%0A"); +} +.caution { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='%23999' fill-rule='evenodd' d='M9.03952676,0.746646542 C9.57068894,-0.245797319 10.4285735,-0.25196227 10.9630352,0.746646542 L19.7705903,17.2030214 C20.3017525,18.1954653 19.8777595,19 18.8371387,19 L1.16542323,19 C0.118729947,19 -0.302490098,18.2016302 0.231971607,17.2030214 L9.03952676,0.746646542 Z M10,2.25584053 L1.9601405,17.3478261 L18.04099,17.3478261 L10,2.25584053 Z M10,5.9375 C10.531043,5.9375 10.9615385,6.37373537 10.9615385,6.91185897 L10.9615385,11.6923077 C10.9615385,12.2304313 10.531043,12.6666667 10,12.6666667 C9.46895697,12.6666667 9.03846154,12.2304313 9.03846154,11.6923077 L9.03846154,6.91185897 C9.03846154,6.37373537 9.46895697,5.9375 10,5.9375 Z M10,13.4583333 C10.6372516,13.4583333 11.1538462,13.9818158 11.1538462,14.6275641 L11.1538462,14.6641026 C11.1538462,15.3098509 10.6372516,15.8333333 10,15.8333333 C9.36274837,15.8333333 8.84615385,15.3098509 8.84615385,14.6641026 L8.84615385,14.6275641 C8.84615385,13.9818158 9.36274837,13.4583333 10,13.4583333 Z'/%3E%3C/svg%3E%0A"); +} + +.question { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='%23999' d='M10,18 C5.581722,18 2,14.418278 2,10 C2,5.581722 5.581722,2 10,2 C14.418278,2 18,5.581722 18,10 C18,14.418278 14.418278,18 10,18 Z M6.77783203,7.65332031 C6.77783203,7.84798274 6.85929281,8.02888914 7.0222168,8.19604492 C7.18514079,8.36320071 7.38508996,8.44677734 7.62207031,8.44677734 C8.02409055,8.44677734 8.29703704,8.20768468 8.44091797,7.72949219 C8.59326248,7.27245865 8.77945854,6.92651485 8.99951172,6.69165039 C9.2195649,6.45678594 9.56233491,6.33935547 10.027832,6.33935547 C10.4256205,6.33935547 10.7006836,6.37695313 11.0021973,6.68847656 C11.652832,7.53271484 10.942627,8.472229 10.3750916,9.1321106 C9.80755615,9.79199219 8.29492188,11.9897461 10.027832,12.1347656 C10.4498423,12.1700818 10.7027991,11.9147157 10.7832031,11.4746094 C11.0021973,9.59857178 13.1254883,8.82415771 13.1254883,7.53271484 C13.1254883,7.07568131 12.9974785,6.65250846 12.7414551,6.26318359 C12.4854317,5.87385873 12.1225609,5.56600048 11.652832,5.33959961 C11.1831031,5.11319874 10.6414419,5 10.027832,5 C9.36767248,5 8.79004154,5.13541531 8.29492187,5.40625 C7.79980221,5.67708469 7.42317837,6.01879677 7.16503906,6.43139648 C6.90689975,6.8439962 6.77783203,7.25130007 6.77783203,7.65332031 Z M10.0099668,15 C10.2713191,15 10.5016601,14.9108147 10.7009967,14.7324415 C10.9003332,14.5540682 11,14.3088087 11,13.9966555 C11,13.7157177 10.9047629,13.4793767 10.7142857,13.2876254 C10.5238086,13.0958742 10.2890379,13 10.0099668,13 C9.72646591,13 9.48726565,13.0958742 9.2923588,13.2876254 C9.09745196,13.4793767 9,13.7157177 9,13.9966555 C9,14.313268 9.10077419,14.5596424 9.30232558,14.735786 C9.50387698,14.9119295 9.73975502,15 10.0099668,15 Z'/%3E%3C/svg%3E%0A"); +} + + +.sdpi-more-info { + position: fixed; + left: 0px; + right: 0px; + bottom: 0px; + min-height:16px; + padding-right: 16px; + text-align: right; + -webkit-touch-callout: none; + cursor: pointer; + user-select: none; + background-position: right center; + background-repeat: no-repeat; + border-radius: var(--sdpi-borderradius); + text-decoration: none; + color: var(--sdpi-color); +} + +.sdpi-more-info-button { + display: flex; + align-self: right; + margin-left: auto; + position: fixed; + right: 17px; + bottom: 0px; +} + +details a { + background-position: right !important; + min-height: 24px; + display: inline-block; + line-height: 24px; + padding-right: 28px; +} +input:not([type="range"]), +textarea { + -webkit-appearance: none; + background: var(--sdpi-background); + color: var(--sdpi-color); + font-weight: normal; + font-size: 9pt; + border: none; + margin-top: 2px; + margin-bottom: 2px; +} + +textarea + label { + display: flex; + justify-content: flex-end +} +input[type="radio"], +input[type="checkbox"] { + display: none; +} +input[type="radio"] + label, +input[type="checkbox"] + label { + font-size: 9pt; + color: var(--sdpi-color); + font-weight: normal; + margin-right: 8px; + -webkit-user-select: none; +} + +input[type="radio"] + label:after, +input[type="checkbox"] + label:after { + content: " " !important; +} + +.sdpi-item[type="radio"] > .sdpi-item-value, +.sdpi-item[type="checkbox"] > .sdpi-item-value { + padding-top: 2px; +} + +.sdpi-item[type="checkbox"] > .sdpi-item-value > * { + margin-top: 4px; +} + +.sdpi-item[type="checkbox"] .sdpi-item-child, +.sdpi-item[type="radio"] .sdpi-item-child { + display: inline-block; +} + +.sdpi-item[type="range"] .sdpi-item-value, +.sdpi-item[type="meter"] .sdpi-item-child, +.sdpi-item[type="progress"] .sdpi-item-child { + display: flex; +} + +.sdpi-item[type="range"] .sdpi-item-value { + min-height: 26px; +} + +.sdpi-item[type="range"] .sdpi-item-value span, +.sdpi-item[type="meter"] .sdpi-item-child span, +.sdpi-item[type="progress"] .sdpi-item-child span { + margin-top: -2px; + min-width: 8px; + text-align: right; + user-select: none; + cursor: pointer; +} + +.sdpi-item[type="range"] .sdpi-item-value span { + margin-top: 7px; + text-align: right; +} + +span + input[type="range"] { + display: flex; + max-width: 168px; + +} + +.sdpi-item[type="range"] .sdpi-item-value span:first-child, +.sdpi-item[type="meter"] .sdpi-item-child span:first-child, +.sdpi-item[type="progress"] .sdpi-item-child span:first-child { + margin-right: 4px; +} + +.sdpi-item[type="range"] .sdpi-item-value span:last-child, +.sdpi-item[type="meter"] .sdpi-item-child span:last-child, +.sdpi-item[type="progress"] .sdpi-item-child span:last-child { + margin-left: 4px; +} + +.reverse { + transform: rotate(180deg); +} + +.sdpi-item[type="meter"] .sdpi-item-child meter + span:last-child { + margin-left: -10px; +} + +.sdpi-item[type="progress"] .sdpi-item-child meter + span:last-child { + margin-left: -14px; +} + +.sdpi-item[type="radio"] > .sdpi-item-value > * { + margin-top: 2px; +} + +details { + padding: 8px 18px 8px 12px; + min-width: 86px; +} + +details > h4 { + border-bottom: 1px solid var(--sdpi-bordercolor); +} + +legend { + display: none; +} +.sdpi-item-value > textarea { + padding: 0px; + width: 227px; + margin-left: 1px; +} + +input[type="radio"] + label span, +input[type="checkbox"] + label span { + display: inline-block; + width: 16px; + height: 16px; + margin: 2px 4px 2px 0; + border-radius: 3px; + vertical-align: middle; + background: var(--sdpi-background); + cursor: pointer; + border: 1px solid rgb(0,0,0,.2); +} + +input[type="radio"] + label span { + border-radius: 100%; +} + +input[type="radio"]:checked + label span, +input[type="checkbox"]:checked + label span { + background-color: #77f; + background-image: url(check.svg); + background-repeat: no-repeat; + background-position: center center; + border: 1px solid rgb(0,0,0,.4); +} + +input[type="radio"]:active:checked + label span, +input[type="radio"]:active + label span, +input[type="checkbox"]:active:checked + label span, +input[type="checkbox"]:active + label span { + background-color: #303030; +} + +input[type="radio"]:checked + label span { + background-image: url(rcheck.svg); +} + + +/* +input[type="radio"] + label span { + background: url(buttons.png) -38px top no-repeat; +} + +input[type="radio"]:checked + label span { + background: url(buttons.png) -57px top no-repeat; +} +*/ + +input[type="range"] { + width: var(--sdpi-width); + height: 30px; + overflow: hidden; + cursor: pointer; + background: transparent !important; +} + +.sdpi-item > input[type="range"] { + margin-left: 8px; + max-width: var(--sdpi-width); + width: var(--sdpi-width); + padding: 0px; +} + +/* +input[type="range"], +input[type="range"]::-webkit-slider-runnable-track, +input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; +} +*/ + +input[type="range"]::-webkit-slider-runnable-track { + height: 5px; + background: #979797; + border-radius: 3px; + padding:0px !important; + border: 1px solid var(--sdpi-background); +} + +input[type="range"]::-webkit-slider-thumb { + position: relative; + -webkit-appearance: none; + background-color: var(--sdpi-color); + width: 12px; + height: 12px; + border-radius: 20px; + margin-top: -5px; + border: none; + +} +input[type="range" i]{ + margin: 0; +} + +input[type="range"]::-webkit-slider-thumb::before { + position: absolute; + content: ""; + height: 5px; /* equal to height of runnable track or 1 less */ + width: 500px; /* make this bigger than the widest range input element */ + left: -502px; /* this should be -2px - width */ + top: 8px; /* don't change this */ + background: #77f; +} + +input[type="color"] { + min-width: 32px; + min-height: 32px; + width: 32px; + height: 32px; + padding: 0; + background-color: var(--sdpi-bgcolor); + flex: none; +} + +::-webkit-color-swatch { + min-width: 24px; +} + +textarea { + height: 3em; + word-break: break-word; + line-height: 1.5em; +} + +.textarea { + padding: 0px !important; +} + +textarea { + width: 221px; /*98%;*/ + height: 96%; + min-height: 6em; + resize: none; + border-radius: var(--sdpi-borderradius); +} + +/* CAROUSEL */ + +.sdpi-item[type="carousel"]{ + +} + +.sdpi-item.card-carousel-wrapper, +.sdpi-item > .card-carousel-wrapper { + padding: 0; +} + + +.card-carousel-wrapper { + display: flex; + align-items: center; + justify-content: center; + margin: 12px auto; + color: #666a73; +} + +.card-carousel { + display: flex; + justify-content: center; + width: 278px; +} +.card-carousel--overflow-container { + overflow: hidden; +} +.card-carousel--nav__left, +.card-carousel--nav__right { + /* display: inline-block; */ + width: 12px; + height: 12px; + border-top: 2px solid #42b883; + border-right: 2px solid #42b883; + cursor: pointer; + margin: 0 4px; + transition: transform 150ms linear; +} +.card-carousel--nav__left[disabled], +.card-carousel--nav__right[disabled] { + opacity: 0.2; + border-color: black; +} +.card-carousel--nav__left { + transform: rotate(-135deg); +} +.card-carousel--nav__left:active { + transform: rotate(-135deg) scale(0.85); +} +.card-carousel--nav__right { + transform: rotate(45deg); +} +.card-carousel--nav__right:active { + transform: rotate(45deg) scale(0.85); +} +.card-carousel-cards { + display: flex; + transition: transform 150ms ease-out; + transform: translatex(0px); +} +.card-carousel-cards .card-carousel--card { + margin: 0 5px; + cursor: pointer; + /* box-shadow: 0 4px 15px 0 rgba(40, 44, 53, 0.06), 0 2px 2px 0 rgba(40, 44, 53, 0.08); */ + background-color: #fff; + border-radius: 4px; + z-index: 3; +} +.xxcard-carousel-cards .card-carousel--card:first-child { + margin-left: 0; +} +.xxcard-carousel-cards .card-carousel--card:last-child { + margin-right: 0; +} +.card-carousel-cards .card-carousel--card img { + vertical-align: bottom; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + transition: opacity 150ms linear; + width: 60px; +} +.card-carousel-cards .card-carousel--card img:hover { + opacity: 0.5; +} +.card-carousel-cards .card-carousel--card--footer { + border-top: 0; + max-width: 80px; + overflow: hidden; + display: flex; + height: 100%; + flex-direction: column; +} +.card-carousel-cards .card-carousel--card--footer p { + padding: 3px 0; + margin: 0; + margin-bottom: 2px; + font-size: 15px; + font-weight: 500; + color: #2c3e50; +} +.card-carousel-cards .card-carousel--card--footer p:nth-of-type(2) { + font-size: 12px; + font-weight: 300; + padding: 6px; + color: #666a73; +} + + +h1 { + font-size: 1.3em; + font-weight: 500; + text-align: center; + margin-bottom: 12px; +} + +::-webkit-datetime-edit { + font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + background: url(elg_calendar_inv.svg) no-repeat left center; + padding-right: 1em; + padding-left: 25px; + background-position: 4px 0px; + } +::-webkit-datetime-edit-fields-wrapper { + + } +::-webkit-datetime-edit-text { padding: 0 0.3em; } +::-webkit-datetime-edit-month-field { } +::-webkit-datetime-edit-day-field {} +::-webkit-datetime-edit-year-field {} +::-webkit-inner-spin-button { + + /* display: none; */ + } +::-webkit-calendar-picker-indicator { + background: transparent; + font-size: 17px; +} + +::-webkit-calendar-picker-indicator:focus { + background-color: rgba(0,0,0,0.2); +} + +input[type="date"] { + -webkit-align-items: center; + display: -webkit-inline-flex; + font-family: monospace; + overflow: hidden; + padding: 0; + -webkit-padding-start: 1px; +} + +input::-webkit-datetime-edit { + -webkit-flex: 1; + -webkit-user-modify: read-only !important; + display: inline-block; + min-width: 0; + overflow: hidden; +} + +/* +input::-webkit-datetime-edit-fields-wrapper { + -webkit-user-modify: read-only !important; + display: inline-block; + padding: 1px 0; + white-space: pre; + +} +*/ + +/* +input[type="date"] { + background-color: red; + outline: none; +} + +input[type="date"]::-webkit-clear-button { + font-size: 18px; + height: 30px; + position: relative; +} + +input[type="date"]::-webkit-inner-spin-button { + height: 28px; +} + +input[type="date"]::-webkit-calendar-picker-indicator { + font-size: 15px; +} */ + +input[type="file"] { + opacity: 0; + display: none; +} + +.sdpi-item > input[type="file"] { + opacity: 1; + display: flex; +} + +input[type="file"] + span { + display: flex; + flex: 0 1 auto; + background-color: #0000ff50; +} + +label.sdpi-file-label { + cursor: pointer; + user-select: none; + display: inline-block; + min-height: 21px !important; + height: 21px !important; + line-height: 20px; + padding: 0px 4px; + margin: auto; + margin-right: 0px; + float:right; +} + +.sdpi-file-label > label:active, +.sdpi-file-label.file:active, +label.sdpi-file-label:active, +label.sdpi-file-info:active, +input[type="file"]::-webkit-file-upload-button:active, +button:active { + background-color: var(--sdpi-color); + color:#303030; +} + + +input:required:invalid, input:focus:invalid { + background: var(--sdpi-background) url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5IiBoZWlnaHQ9IjkiIHZpZXdCb3g9IjAgMCA5IDkiPgogICAgPHBhdGggZmlsbD0iI0Q4RDhEOCIgZD0iTTQuNSwwIEM2Ljk4NTI4MTM3LC00LjU2NTM4NzgyZS0xNiA5LDIuMDE0NzE4NjMgOSw0LjUgQzksNi45ODUyODEzNyA2Ljk4NTI4MTM3LDkgNC41LDkgQzIuMDE0NzE4NjMsOSAzLjA0MzU5MTg4ZS0xNiw2Ljk4NTI4MTM3IDAsNC41IEMtMy4wNDM1OTE4OGUtMTYsMi4wMTQ3MTg2MyAyLjAxNDcxODYzLDQuNTY1Mzg3ODJlLTE2IDQuNSwwIFogTTQsMSBMNCw2IEw1LDYgTDUsMSBMNCwxIFogTTQuNSw4IEM0Ljc3NjE0MjM3LDggNSw3Ljc3NjE0MjM3IDUsNy41IEM1LDcuMjIzODU3NjMgNC43NzYxNDIzNyw3IDQuNSw3IEM0LjIyMzg1NzYzLDcgNCw3LjIyMzg1NzYzIDQsNy41IEM0LDcuNzc2MTQyMzcgNC4yMjM4NTc2Myw4IDQuNSw4IFoiLz4KICA8L3N2Zz4) no-repeat 98% center; +} + +input:required:valid { + background: var(--sdpi-background) url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5IiBoZWlnaHQ9IjkiIHZpZXdCb3g9IjAgMCA5IDkiPjxwb2x5Z29uIGZpbGw9IiNEOEQ4RDgiIHBvaW50cz0iNS4yIDEgNi4yIDEgNi4yIDcgMy4yIDcgMy4yIDYgNS4yIDYiIHRyYW5zZm9ybT0icm90YXRlKDQwIDQuNjc3IDQpIi8+PC9zdmc+) no-repeat 98% center; +} + +.tooltip, +:tooltip, +:title { + color: yellow; +} + +[title]:hover { + display: flex; + align-items: center; + justify-content: center; +} + +[title]:hover::after { + content: ''; + position: absolute; + bottom: -1000px; + left: 8px; + display: none; + color: #fff; + border: 8px solid transparent; + border-bottom: 8px solid #000; +} +[title]:hover::before { +content: attr(title); + display: flex; + justify-content: center; + align-self: center; + padding: 6px 12px; + border-radius: 5px; + background: rgba(0,0,0,0.8); + color: var(--sdpi-color); + font-size: 9pt; + font-family: sans-serif; + opacity: 1; + position: absolute; + height: auto; + /* width: 50%; + left: 35%; */ + text-align: center; + bottom: 2px; + z-index: 100; + box-shadow: 0px 3px 6px rgba(0, 0, 0, .5); + /* box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); */ +} + +.sdpi-item-group.file { + width: 232px; + display: flex; + align-items: center; +} + +.sdpi-file-info { + overflow-wrap: break-word; + word-wrap: break-word; + hyphens: auto; + + min-width: 132px; + max-width: 144px; + max-height: 32px; + margin-top: 0px; + margin-left: 5px; + display: inline-block; + overflow: hidden; + padding: 6px 4px; + background-color: var(--sdpi-background); +} + + +::-webkit-scrollbar { + width: 8px; +} + +::-webkit-scrollbar-track { + -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); +} + +::-webkit-scrollbar-thumb { + background-color: #999999; + outline: 1px solid slategrey; + border-radius: 8px; +} + +a { + color: #7397d2; +} + +.testcontainer { + display: flex; + background-color: #0000ff20; + max-width: 400px; + height: 200px; + align-content: space-evenly; +} + +input[type=range] { + -webkit-appearance: none; + /* background-color: green; */ + height:6px; + margin-top: 12px; + z-index: 0; + overflow: visible; +} + +/* +input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; + background-color: var(--sdpi-color); + width: 12px; + height: 12px; + border-radius: 20px; + margin-top: -6px; + border: none; +} */ + +:-webkit-slider-thumb { + -webkit-appearance: none; + background-color: var(--sdpi-color); + width: 16px; + height: 16px; + border-radius: 20px; + margin-top: -6px; + border: 1px solid #999999; +} + +.sdpi-item[type="range"] .sdpi-item-group { + display: flex; + flex-direction: column; +} + +.xxsdpi-item[type="range"] .sdpi-item-group input { + max-width: 204px; +} + +.sdpi-item[type="range"] .sdpi-item-group span { + margin-left: 0px !important; +} + +.sdpi-item[type="range"] .sdpi-item-group > .sdpi-item-child { + display: flex; + flex-direction: row; +} + +:disabled { + color: #993333; +} + +select, +select option { + color: var(--sdpi-color); +} + +select.disabled, +select option:disabled { + color: #fd9494; + font-style: italic; +} + +.runningAppsContainer { + display: none; +} + +/* debug +div { + background-color: rgba(64,128,255,0.2); +} +*/ + +.min80 > .sdpi-item-child { + min-width: 80px; +} + +.min100 > .sdpi-item-child { + min-width: 100px; +} + +.min120 > .sdpi-item-child { + min-width: 120px; +} + +.min140 > .sdpi-item-child { + min-width: 140px; +} + +.min160 > .sdpi-item-child { + min-width: 160px; +} + +.min200 > .sdpi-item-child { + min-width: 200px; +} + +.max40 { + flex-basis: 40%; + flex-grow: 0; +} + +.max30 { + flex-basis: 30%; + flex-grow: 0; +} + +.max20 { + flex-basis: 20%; + flex-grow: 0; +} + +.up20 { + margin-top: -20px; +} + +.alignCenter { + align-items: center; +} + +.alignTop { + align-items: flex-start; +} + +.alignBaseline { + align-items: baseline; +} + +.noMargins, +.noMargins *, +.noInnerMargins * { + margin: 0; + padding: 0; +} + +.hidden { + display: none; +} + +.icon-brighter, +.icon-darker, +.icon-warmer, +.icon-cooler { + margin-top: 5px !important; + min-width: 20px; + width: 20px; + background-repeat: no-repeat; +} + +.icon-brighter { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cg fill='%23999' fill-rule='evenodd'%3E%3Ccircle cx='10' cy='10' r='4'/%3E%3Cpath d='M14.8532861,7.77530426 C14.7173255,7.4682615 14.5540843,7.17599221 14.3666368,6.90157083 L16.6782032,5.5669873 L17.1782032,6.4330127 L14.8532861,7.77530426 Z M10.5,4.5414007 C10.2777625,4.51407201 10.051423,4.5 9.82179677,4.5 C9.71377555,4.5 9.60648167,4.50311409 9.5,4.50925739 L9.5,2 L10.5,2 L10.5,4.5414007 Z M5.38028092,6.75545367 C5.18389364,7.02383457 5.01124349,7.31068015 4.86542112,7.61289977 L2.82179677,6.4330127 L3.32179677,5.5669873 L5.38028092,6.75545367 Z M4.86542112,12.3871002 C5.01124349,12.6893198 5.18389364,12.9761654 5.38028092,13.2445463 L3.32179677,14.4330127 L2.82179677,13.5669873 L4.86542112,12.3871002 Z M9.5,15.4907426 C9.60648167,15.4968859 9.71377555,15.5 9.82179677,15.5 C10.051423,15.5 10.2777625,15.485928 10.5,15.4585993 L10.5,18 L9.5,18 L9.5,15.4907426 Z M14.3666368,13.0984292 C14.5540843,12.8240078 14.7173255,12.5317385 14.8532861,12.2246957 L17.1782032,13.5669873 L16.6782032,14.4330127 L14.3666368,13.0984292 Z'/%3E%3C/g%3E%3C/svg%3E"); +} +.icon-darker { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cg fill='%23999' fill-rule='evenodd'%3E%3Cpath d='M10 14C7.790861 14 6 12.209139 6 10 6 7.790861 7.790861 6 10 6 12.209139 6 14 7.790861 14 10 14 12.209139 12.209139 14 10 14zM10 13C11.6568542 13 13 11.6568542 13 10 13 8.34314575 11.6568542 7 10 7 8.34314575 7 7 8.34314575 7 10 7 11.6568542 8.34314575 13 10 13zM14.8532861 7.77530426C14.7173255 7.4682615 14.5540843 7.17599221 14.3666368 6.90157083L16.6782032 5.5669873 17.1782032 6.4330127 14.8532861 7.77530426zM10.5 4.5414007C10.2777625 4.51407201 10.051423 4.5 9.82179677 4.5 9.71377555 4.5 9.60648167 4.50311409 9.5 4.50925739L9.5 2 10.5 2 10.5 4.5414007zM5.38028092 6.75545367C5.18389364 7.02383457 5.01124349 7.31068015 4.86542112 7.61289977L2.82179677 6.4330127 3.32179677 5.5669873 5.38028092 6.75545367zM4.86542112 12.3871002C5.01124349 12.6893198 5.18389364 12.9761654 5.38028092 13.2445463L3.32179677 14.4330127 2.82179677 13.5669873 4.86542112 12.3871002zM9.5 15.4907426C9.60648167 15.4968859 9.71377555 15.5 9.82179677 15.5 10.051423 15.5 10.2777625 15.485928 10.5 15.4585993L10.5 18 9.5 18 9.5 15.4907426zM14.3666368 13.0984292C14.5540843 12.8240078 14.7173255 12.5317385 14.8532861 12.2246957L17.1782032 13.5669873 16.6782032 14.4330127 14.3666368 13.0984292z'/%3E%3C/g%3E%3C/svg%3E"); +} +.icon-warmer { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cg fill='%23999' fill-rule='evenodd'%3E%3Cpath d='M12.3247275 11.4890349C12.0406216 11.0007637 11.6761954 10.5649925 11.2495475 10.1998198 11.0890394 9.83238991 11 9.42659309 11 9 11 7.34314575 12.3431458 6 14 6 15.6568542 6 17 7.34314575 17 9 17 10.6568542 15.6568542 12 14 12 13.3795687 12 12.8031265 11.8116603 12.3247275 11.4890349zM17.6232392 11.6692284C17.8205899 11.4017892 17.9890383 11.1117186 18.123974 10.8036272L20.3121778 12.0669873 19.8121778 12.9330127 17.6232392 11.6692284zM18.123974 7.19637279C17.9890383 6.88828142 17.8205899 6.5982108 17.6232392 6.33077158L19.8121778 5.0669873 20.3121778 5.9330127 18.123974 7.19637279zM14.5 4.52746439C14.3358331 4.50931666 14.1690045 4.5 14 4.5 13.8309955 4.5 13.6641669 4.50931666 13.5 4.52746439L13.5 2 14.5 2 14.5 4.52746439zM13.5 13.4725356C13.6641669 13.4906833 13.8309955 13.5 14 13.5 14.1690045 13.5 14.3358331 13.4906833 14.5 13.4725356L14.5 16 13.5 16 13.5 13.4725356zM14 11C15.1045695 11 16 10.1045695 16 9 16 7.8954305 15.1045695 7 14 7 12.8954305 7 12 7.8954305 12 9 12 10.1045695 12.8954305 11 14 11zM9.5 11C10.6651924 11.4118364 11.5 12.5 11.5 14 11.5 16 10 17.5 8 17.5 6 17.5 4.5 16 4.5 14 4.5 12.6937812 5 11.5 6.5 11L6.5 7 9.5 7 9.5 11z'/%3E%3Cpath d='M12,14 C12,16.209139 10.209139,18 8,18 C5.790861,18 4,16.209139 4,14 C4,12.5194353 4.80439726,11.2267476 6,10.5351288 L6,4 C6,2.8954305 6.8954305,2 8,2 C9.1045695,2 10,2.8954305 10,4 L10,10.5351288 C11.1956027,11.2267476 12,12.5194353 12,14 Z M11,14 C11,12.6937812 10.1651924,11.5825421 9,11.1707057 L9,4 C9,3.44771525 8.55228475,3 8,3 C7.44771525,3 7,3.44771525 7,4 L7,11.1707057 C5.83480763,11.5825421 5,12.6937812 5,14 C5,15.6568542 6.34314575,17 8,17 C9.65685425,17 11,15.6568542 11,14 Z'/%3E%3C/g%3E%3C/svg%3E"); +} + +.icon-cooler { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cg fill='%23999' fill-rule='evenodd'%3E%3Cpath d='M10.4004569 11.6239517C10.0554735 10.9863849 9.57597206 10.4322632 9 9.99963381L9 9.7450467 9.53471338 9.7450467 10.8155381 8.46422201C10.7766941 8.39376637 10.7419749 8.32071759 10.7117062 8.2454012L9 8.2454012 9 6.96057868 10.6417702 6.96057868C10.6677696 6.86753378 10.7003289 6.77722682 10.7389179 6.69018783L9.44918707 5.40045694 9 5.40045694 9 4.34532219 9.32816127 4.34532219 9.34532219 2.91912025 10.4004569 2.91912025 10.4004569 4.53471338 11.6098599 5.74411634C11.7208059 5.68343597 11.8381332 5.63296451 11.9605787 5.59396526L11.9605787 3.8884898 10.8181818 2.74609294 11.5642748 2 12.5727518 3.00847706 13.5812289 2 14.3273218 2.74609294 13.2454012 3.82801356 13.2454012 5.61756719C13.3449693 5.65339299 13.4408747 5.69689391 13.5324038 5.74735625L14.7450467 4.53471338 14.7450467 2.91912025 15.8001815 2.91912025 15.8001815 4.34532219 17.2263834 4.34532219 17.2263834 5.40045694 15.6963166 5.40045694 14.4002441 6.69652946C14.437611 6.78161093 14.4692249 6.86979146 14.4945934 6.96057868L16.2570138 6.96057868 17.3994107 5.81818182 18.1455036 6.56427476 17.1370266 7.57275182 18.1455036 8.58122888 17.3994107 9.32732182 16.3174901 8.2454012 14.4246574 8.2454012C14.3952328 8.31861737 14.3616024 8.38969062 14.3240655 8.45832192L15.6107903 9.7450467 17.2263834 9.7450467 17.2263834 10.8001815 15.8001815 10.8001815 15.8001815 12.2263834 14.7450467 12.2263834 14.7450467 10.6963166 13.377994 9.32926387C13.3345872 9.34850842 13.2903677 9.36625331 13.2454012 9.38243281L13.2454012 11.3174901 14.3273218 12.3994107 13.5812289 13.1455036 12.5848864 12.1491612 11.5642748 13.1455036 10.8181818 12.3994107 11.9605787 11.2570138 11.9605787 9.40603474C11.8936938 9.38473169 11.828336 9.36000556 11.7647113 9.33206224L10.4004569 10.6963166 10.4004569 11.6239517zM12.75 8.5C13.3022847 8.5 13.75 8.05228475 13.75 7.5 13.75 6.94771525 13.3022847 6.5 12.75 6.5 12.1977153 6.5 11.75 6.94771525 11.75 7.5 11.75 8.05228475 12.1977153 8.5 12.75 8.5zM9.5 14C8.5 16.3333333 7.33333333 17.5 6 17.5 4.66666667 17.5 3.5 16.3333333 2.5 14L9.5 14z'/%3E%3Cpath d='M10,14 C10,16.209139 8.209139,18 6,18 C3.790861,18 2,16.209139 2,14 C2,12.5194353 2.80439726,11.2267476 4,10.5351288 L4,4 C4,2.8954305 4.8954305,2 6,2 C7.1045695,2 8,2.8954305 8,4 L8,10.5351288 C9.19560274,11.2267476 10,12.5194353 10,14 Z M9,14 C9,12.6937812 8.16519237,11.5825421 7,11.1707057 L7,4 C7,3.44771525 6.55228475,3 6,3 C5.44771525,3 5,3.44771525 5,4 L5,11.1707057 C3.83480763,11.5825421 3,12.6937812 3,14 C3,15.6568542 4.34314575,17 6,17 C7.65685425,17 9,15.6568542 9,14 Z'/%3E%3C/g%3E%3C/svg%3E"); +} + +/** +input[type=range].vVertical { + -webkit-appearance: none; + background-color: green; + margin-left: -60px; + width: 100px; + height:6px; + margin-top: 0px; + transform:rotate(90deg); + z-index: 0; + overflow: visible; +} + +input[type=range].vHorizon { + -webkit-appearance: none; + background-color: pink; + height: 10px; + width:200px; + +} + +.test2 { + background-color: #00ff0020; + display: flex; +} + + +.vertical.sdpi-item[type="range"] .sdpi-item-value { + display: block; +} + + +.vertical.sdpi-item:first-child, +.vertical { + margin-top: 12px; + margin-bottom: 16px; +} +.vertical > .sdpi-item-value { + margin-right: 16px; +} + +.vertical .sdpi-item-group { + width: 100%; + display: flex; + justify-content: space-evenly; +} + +.vertical input[type=range] { + height: 100px; + width: 21px; + -webkit-appearance: slider-vertical; + display: flex; + flex-flow: column; +} + +.vertical input[type="range"]::-webkit-slider-runnable-track { + height: auto; + width: 5px; +} + +.vertical input[type="range"]::-webkit-slider-thumb { + margin-top: 0px; + margin-left: -6px; +} + +.vertical .sdpi-item-value { + flex-flow: column; + align-items: flex-start; +} + +.vertical.sdpi-item[type="range"] .sdpi-item-value { + align-items: center; + margin-right: 16px; + text-align: center; +} + +.vertical.sdpi-item[type="range"] .sdpi-item-value span, +.vertical input[type="range"] .sdpi-item-value span { + text-align: center; + margin: 4px 0px; +} +*/ diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/sdtools.common.js b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/sdtools.common.js new file mode 100644 index 0000000..9b82b1a --- /dev/null +++ b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/PropertyInspector/sdtools.common.js @@ -0,0 +1,289 @@ +// sdtools.common.js v1.1 +var websocket = null, + uuid = null, + registerEventName = null, + actionInfo = {}, + inInfo = {}, + runningApps = [], + isQT = navigator.appVersion.includes('QtWebEngine'); + +function connectElgatoStreamDeckSocket(inPort, inUUID, inRegisterEvent, inInfo, inActionInfo) { + uuid = inUUID; + registerEventName = inRegisterEvent; + console.log(inUUID, inActionInfo); + actionInfo = JSON.parse(inActionInfo); // cache the info + inInfo = JSON.parse(inInfo); + websocket = new WebSocket('ws://127.0.0.1:' + inPort); + + addDynamicStyles(inInfo.colors); + + websocket.onopen = websocketOnOpen; + websocket.onmessage = websocketOnMessage; + + // Allow others to get notified that the websocket is created + var event = new Event('websocketCreate'); + document.dispatchEvent(event); + + loadConfiguration(actionInfo.payload.settings); +} + +function websocketOnOpen() { + var json = { + event: registerEventName, + uuid: uuid + }; + websocket.send(JSON.stringify(json)); + + // Notify the plugin that we are connected + sendValueToPlugin('propertyInspectorConnected', 'property_inspector'); +} + +function websocketOnMessage(evt) { + // Received message from Stream Deck + var jsonObj = JSON.parse(evt.data); + + if (jsonObj.event === 'sendToPropertyInspector') { + var payload = jsonObj.payload; + loadConfiguration(payload); + } + else if (jsonObj.event === 'didReceiveSettings') { + var payload = jsonObj.payload; + loadConfiguration(payload.settings); + } + else { + console.log("Unhandled websocketOnMessage: " + jsonObj.event); + } +} + +function loadConfiguration(payload) { + console.log('loadConfiguration'); + console.log(payload); + for (var key in payload) { + try { + var elem = document.getElementById(key); + if (elem.classList.contains("sdCheckbox")) { // Checkbox + elem.checked = payload[key]; + } + else if (elem.classList.contains("sdFile")) { // File + var elemFile = document.getElementById(elem.id + "Filename"); + elemFile.innerText = payload[key]; + if (!elemFile.innerText) { + elemFile.innerText = "No file..."; + } + } + else if (elem.classList.contains("sdList")) { // Dynamic dropdown + var textProperty = elem.getAttribute("sdListTextProperty"); + var valueProperty = elem.getAttribute("sdListValueProperty"); + var valueField = elem.getAttribute("sdValueField"); + + var items = payload[key]; + elem.options.length = 0; + + for (var idx = 0; idx < items.length; idx++) { + var opt = document.createElement('option'); + opt.value = items[idx][valueProperty]; + opt.text = items[idx][textProperty]; + elem.appendChild(opt); + } + elem.value = payload[valueField]; + } + else if (elem.classList.contains("sdHTML")) { // HTML element + elem.innerHTML = payload[key]; + } + else { // Normal value + elem.value = payload[key]; + } + console.log("Load: " + key + "=" + payload[key]); + } + catch (err) { + console.log("loadConfiguration failed for key: " + key + " - " + err); + } + } +} + +function setSettings() { + var payload = {}; + var elements = document.getElementsByClassName("sdProperty"); + + Array.prototype.forEach.call(elements, function (elem) { + var key = elem.id; + if (elem.classList.contains("sdCheckbox")) { // Checkbox + payload[key] = elem.checked; + } + else if (elem.classList.contains("sdFile")) { // File + var elemFile = document.getElementById(elem.id + "Filename"); + payload[key] = elem.value; + if (!elem.value) { + // Fetch innerText if file is empty (happens when we lose and regain focus to this key) + payload[key] = elemFile.innerText; + } + else { + // Set value on initial file selection + elemFile.innerText = elem.value; + } + } + else if (elem.classList.contains("sdList")) { // Dynamic dropdown + var valueField = elem.getAttribute("sdValueField"); + payload[valueField] = elem.value; + } + else if (elem.classList.contains("sdHTML")) { // HTML element + var valueField = elem.getAttribute("sdValueField"); + payload[valueField] = elem.innerHTML; + } + else { // Normal value + payload[key] = elem.value; + } + console.log("Save: " + key + "<=" + payload[key]); + }); + setSettingsToPlugin(payload); +} + +function setSettingsToPlugin(payload) { + if (websocket && (websocket.readyState === 1)) { + const json = { + 'event': 'setSettings', + 'context': uuid, + 'payload': payload + }; + websocket.send(JSON.stringify(json)); + var event = new Event('settingsUpdated'); + document.dispatchEvent(event); + } +} + +// Sends an entire payload to the sendToPlugin method +function sendPayloadToPlugin(payload) { + if (websocket && (websocket.readyState === 1)) { + const json = { + 'action': actionInfo['action'], + 'event': 'sendToPlugin', + 'context': uuid, + 'payload': payload + }; + websocket.send(JSON.stringify(json)); + } +} + +// Sends one value to the sendToPlugin method +function sendValueToPlugin(value, param) { + if (websocket && (websocket.readyState === 1)) { + const json = { + 'action': actionInfo['action'], + 'event': 'sendToPlugin', + 'context': uuid, + 'payload': { + [param]: value + } + }; + websocket.send(JSON.stringify(json)); + } +} + +function openWebsite() { + if (websocket && (websocket.readyState === 1)) { + const json = { + 'event': 'openUrl', + 'payload': { + 'url': 'https://BarRaider.github.io' + } + }; + websocket.send(JSON.stringify(json)); + } +} + +if (!isQT) { + document.addEventListener('DOMContentLoaded', function () { + initPropertyInspector(); + }); +} + +window.addEventListener('beforeunload', function (e) { + e.preventDefault(); + + // Notify the plugin we are about to leave + sendValueToPlugin('propertyInspectorWillDisappear', 'property_inspector'); + + // Don't set a returnValue to the event, otherwise Chromium with throw an error. +}); + +function initPropertyInspector() { + // Place to add functions +} + + +function addDynamicStyles(clrs) { + const node = document.getElementById('#sdpi-dynamic-styles') || document.createElement('style'); + if (!clrs.mouseDownColor) clrs.mouseDownColor = fadeColor(clrs.highlightColor, -100); + const clr = clrs.highlightColor.slice(0, 7); + const clr1 = fadeColor(clr, 100); + const clr2 = fadeColor(clr, 60); + const metersActiveColor = fadeColor(clr, -60); + + node.setAttribute('id', 'sdpi-dynamic-styles'); + node.innerHTML = ` + + input[type="radio"]:checked + label span, + input[type="checkbox"]:checked + label span { + background-color: ${clrs.highlightColor}; + } + + input[type="radio"]:active:checked + label span, + input[type="radio"]:active + label span, + input[type="checkbox"]:active:checked + label span, + input[type="checkbox"]:active + label span { + background-color: ${clrs.mouseDownColor}; + } + + input[type="radio"]:active + label span, + input[type="checkbox"]:active + label span { + background-color: ${clrs.buttonPressedBorderColor}; + } + + td.selected, + td.selected:hover, + li.selected:hover, + li.selected { + color: white; + background-color: ${clrs.highlightColor}; + } + + .sdpi-file-label > label:active, + .sdpi-file-label.file:active, + label.sdpi-file-label:active, + label.sdpi-file-info:active, + input[type="file"]::-webkit-file-upload-button:active, + button:active { + background-color: ${clrs.buttonPressedBackgroundColor}; + color: ${clrs.buttonPressedTextColor}; + border-color: ${clrs.buttonPressedBorderColor}; + } + + ::-webkit-progress-value, + meter::-webkit-meter-optimum-value { + background: linear-gradient(${clr2}, ${clr1} 20%, ${clr} 45%, ${clr} 55%, ${clr2}) + } + + ::-webkit-progress-value:active, + meter::-webkit-meter-optimum-value:active { + background: linear-gradient(${clr}, ${clr2} 20%, ${metersActiveColor} 45%, ${metersActiveColor} 55%, ${clr}) + } + `; + document.body.appendChild(node); +}; + +/** UTILITIES */ + +/* + Quick utility to lighten or darken a color (doesn't take color-drifting, etc. into account) + Usage: + fadeColor('#061261', 100); // will lighten the color + fadeColor('#200867'), -100); // will darken the color +*/ +function fadeColor(col, amt) { + const min = Math.min, max = Math.max; + const num = parseInt(col.replace(/#/g, ''), 16); + const r = min(255, max((num >> 16) + amt, 0)); + const g = min(255, max((num & 0x0000FF) + amt, 0)); + const b = min(255, max(((num >> 8) & 0x00FF) + amt, 0)); + return '#' + (g | (b << 8) | (r << 16)).toString(16).padStart(6, 0); +} \ No newline at end of file diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/ScreenHelper.cs b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/ScreenHelper.cs new file mode 100644 index 0000000..67db224 --- /dev/null +++ b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/ScreenHelper.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; +using System.Drawing.Imaging; +using BarRaider.SdTools; + +namespace StreamDeck.ColorPicker +{ + public static class ScreenHelper + { + private enum ProcessDPIAwareness + { + ProcessDPIUnaware = 0, + ProcessSystemDPIAware = 1, + ProcessPerMonitorDPIAware = 2 + } + + [DllImport("user32.dll")] + static extern bool GetCursorPos(ref Point lpPoint); + + [DllImport("gdi32.dll", CharSet = CharSet.Auto, SetLastError = true, ExactSpelling = true)] + public static extern int BitBlt(IntPtr hDC, int x, int y, int nWidth, int nHeight, IntPtr hSrcDC, int xSrc, int ySrc, int dwRop); + + [DllImport("shcore.dll")] + private static extern int SetProcessDpiAwareness(ProcessDPIAwareness value); + + public static Point GetMouseLocation() + { + if (Environment.OSVersion.Version.Major >= 6) + { + SetProcessDpiAwareness(ProcessDPIAwareness.ProcessPerMonitorDPIAware); + } + + var cursorLocation = new Point(); + GetCursorPos(ref cursorLocation); + + return cursorLocation; + } + + public static Color GetColor(Point location) + { + Bitmap screenPixel = new Bitmap(1, 1, PixelFormat.Format32bppArgb); + using (Graphics gdest = Graphics.FromImage(screenPixel)) + { + using (Graphics gsrc = Graphics.FromHwnd(IntPtr.Zero)) + { + IntPtr hSrcDC = gsrc.GetHdc(); + IntPtr hDC = gdest.GetHdc(); + int retval = BitBlt(hDC, 0, 0, 1, 1, hSrcDC, location.X, location.Y, (int)CopyPixelOperation.SourceCopy); + gdest.ReleaseHdc(); + gsrc.ReleaseHdc(); + } + } + + return screenPixel.GetPixel(0, 0); + } + + public static Image GetKeyImage(ValueFormat valueFormat) + { + var bmp = Tools.GenerateGenericKeyImage(out Graphics graphics); + graphics.FillRectangle(new SolidBrush(valueFormat.Color), 0, 0, bmp.Width, bmp.Height); + graphics.DrawString( + valueFormat.ValueToShow, + valueFormat.Font, + valueFormat.TextBrush, + valueFormat.XPosition, + valueFormat.YPosition, + valueFormat.StringFormat + ); + + return bmp; + } + } +} diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/StaticPicker.cs b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/StaticPicker.cs new file mode 100644 index 0000000..34d3d11 --- /dev/null +++ b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/StaticPicker.cs @@ -0,0 +1,88 @@ +using BarRaider.SdTools; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Threading.Tasks; + +namespace StreamDeck.ColorPicker +{ + [PluginActionId("com.victorgrycuk.static.picker")] + public class StaticPicker : PluginBase + { + private class PluginSettings + { + public static PluginSettings CreateDefaultSettings() + { + var instance = new PluginSettings { ValueToShow = string.Empty }; + return instance; + } + + [JsonProperty(PropertyName = "valueToShow")] + public string ValueToShow { get; set; } + + [JsonProperty(PropertyName = "copyToClipboard")] + public bool CopyToClipboard { get; set; } + } + + #region Private Members + + private PluginSettings settings; + + #endregion + public StaticPicker(SDConnection connection, InitialPayload payload) : base(connection, payload) + { + settings = payload.Settings == null || payload.Settings.Count == 0 + ? PluginSettings.CreateDefaultSettings() + : payload.Settings.ToObject(); + } + + public override void Dispose() + { + Logger.Instance.LogMessage(TracingLevel.INFO, $"Destructor called"); + } + + public override void KeyPressed(KeyPayload payload) + { + try + { + Enum.TryParse(settings.ValueToShow, true, out ValueFormat.ValueType valueType); + var position = ScreenHelper.GetMouseLocation(); + var color = ScreenHelper.GetColor(position); + var valueFormat = new ValueFormat(valueType, color); + var keyImage = ScreenHelper.GetKeyImage(valueFormat); + Connection.SetImageAsync(keyImage); + + if (settings.CopyToClipboard) + { + ClipboardHelper.SendToClipboard(valueFormat.ValueToCopy); + } + } + catch (Exception ex) + { + Logger.Instance.LogMessage(TracingLevel.INFO, ex.Message); + } + } + + public override void KeyReleased(KeyPayload payload) { } + + public override void OnTick() { } + + public override void ReceivedSettings(ReceivedSettingsPayload payload) + { + Logger.Instance.LogMessage(TracingLevel.INFO, payload.Settings.ToString()); + Tools.AutoPopulateSettings(settings, payload.Settings); + SaveSettings(); + } + + public override void ReceivedGlobalSettings(ReceivedGlobalSettingsPayload payload) { } + + #region Private Methods + + private Task SaveSettings() + { + return Connection.SetSettingsAsync(JObject.FromObject(settings)); + } + + #endregion + } +} \ No newline at end of file diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/StreamDeck.ColorPicker.csproj b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/StreamDeck.ColorPicker.csproj new file mode 100644 index 0000000..e511ca1 --- /dev/null +++ b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/StreamDeck.ColorPicker.csproj @@ -0,0 +1,149 @@ + + + + + Debug + AnyCPU + {4635D874-69C0-4010-BE46-77EF92EB1553} + Exe + StreamDeck.ColorPicker + StreamDeck.ColorPicker + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\com.victorgrycuk.colorpicker.sdPlugin\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\com.victorgrycuk.colorpicker.sdPlugin\ + TRACE + prompt + 4 + + + + ..\packages\CommandLineParser.2.7.82\lib\net461\CommandLine.dll + + + ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + + ..\packages\NLog.4.6.8\lib\net45\NLog.dll + + + ..\packages\streamdeck-client-csharp.4.1.1\lib\netstandard2.0\streamdeck-client-csharp.dll + + + ..\packages\StreamDeck-Tools.2.7.0\lib\net472\StreamDeckTools.dll + + + + + + + ..\packages\System.Drawing.Common.4.7.0\lib\net461\System.Drawing.Common.dll + + + + + + + + + + + + + + + + + + + + + + + + + Always + + + PreserveNewest + + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + + del $(ProjectDir)\$(OutDir)\com.victorgrycuk.colorpicker.streamDeckPlugin + + + $(ProjectDir)\..\..\Tools\DistributionTool.exe -b -i $(ProjectDir)\$(OutDir) -o $(ProjectDir)\$(OutDir) + + + \ No newline at end of file diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/ValueFormat.cs b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/ValueFormat.cs new file mode 100644 index 0000000..34673ce --- /dev/null +++ b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/ValueFormat.cs @@ -0,0 +1,95 @@ +using BarRaider.SdTools; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; + +namespace StreamDeck.ColorPicker +{ + public class ValueFormat + { + public Color Color { get; set; } + public Font Font { get; set; } + public SolidBrush TextBrush { get; set; } + public StringFormat StringFormat { get; set; } + public float XPosition { get; set; } + public float YPosition { get; set; } + public string ValueToShow { get; set; } + public string ValueToCopy { get; set; } + + public ValueFormat(ValueType valueType, Color color) + { + Color = color; + TextBrush = new SolidBrush(Color.Black); + StringFormat = new StringFormat { LineAlignment = StringAlignment.Center, Alignment = StringAlignment.Center }; + XPosition = 72; + YPosition = 72; + + // Value type specific properties + switch (valueType) + { + case ValueType.ColorName: + Font = new Font("Consolas", 16, FontStyle.Bold); + ValueToShow = GetColorName(color); + ValueToCopy = ValueToShow; + break; + case ValueType.RGBValue: + Font = new Font("Consolas", 16, FontStyle.Bold); + StringFormat.Alignment = StringAlignment.Near; + XPosition = 5; + ValueToShow = $"R:{ color.R + Environment.NewLine }G:{ color.G + Environment.NewLine }B:{ color.B }"; + ValueToCopy = $"{ color.R },{ color.G },{ color.B }"; + break; + case ValueType.HexValue: + Font = new Font("Consolas", 14, FontStyle.Bold); + ValueToShow = color.ToHex().Replace("#", string.Empty); + ValueToCopy = ValueToShow; + break; + } + + // Set the text color to white if the color is below certain threshold + if ((color.R + color.G + color.B) / 3 < 60) + { + TextBrush.Color = Color.White; + } + } + + private static string GetColorName(Color pixelColor) + { + var colorsFilePath = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "Colors.json"); + var colors = JsonConvert.DeserializeObject>(File.ReadAllText(colorsFilePath)); + var lowestDistance = 256; + var colorName = string.Empty; + + foreach (var color in colors) + + { + var rgbDistance = Math.Abs(pixelColor.R - color.Color.R) + + Math.Abs(pixelColor.G - color.Color.G) + + Math.Abs(pixelColor.B - color.Color.B); + + if (rgbDistance <= lowestDistance) + { + lowestDistance = rgbDistance; + colorName = color.Name; + } + } + + return colorName; + } + + public class NamedColor + { + public string Name { get; set; } + public Color Color { get; set; } + } + + public enum ValueType + { + ColorName, + RGBValue, + HexValue, + } + } +} diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/manifest.json b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/manifest.json new file mode 100644 index 0000000..50834ba --- /dev/null +++ b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/manifest.json @@ -0,0 +1,38 @@ +{ + "Actions": [ + { + "Icon": "Images/icon", + "Name": "Static Picker", + "States": [ + { + "Image": "Images/colorPicker", + "TitleAlignment": "middle", + "FontSize": "12" + } + ], + "SupportedInMultiActions": false, + "Tooltip": "Allows to pick a pixel color and show its information.", + "UUID": "com.victorgrycuk.static.picker", + "PropertyInspectorPath": "PropertyInspector/ColorPickerPI.html" + } + ], + "Author": "Victor Grycuk", + "Name": "Color Picker", + "Description": "Colorblind Helper & Color Picker for Stream Deck", + "Icon": "Images/pluginIcon", + "URL": "https://github.com/VictorGrycuk/streamdeck-color-picker", + "Version": "1.0", + "CodePath": "StreamDeck.ColorPicker", + "Category": "Color Picker", + "CategoryIcon": "Images/categoryIcon", + "OS": [ + { + "Platform": "windows", + "MinimumVersion": "10" + } + ], + "SDKVersion": 2, + "Software": { + "MinimumVersion": "4.3" + } +} diff --git a/StreamDeck.ColorPicker/StreamDeck.ColorPicker/packages.config b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/packages.config new file mode 100644 index 0000000..eedbeab --- /dev/null +++ b/StreamDeck.ColorPicker/StreamDeck.ColorPicker/packages.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Tools/DistributionTool.exe b/Tools/DistributionTool.exe new file mode 100644 index 0000000000000000000000000000000000000000..7461d10224b6e5a9e531e0f5ea391694848f53ec GIT binary patch literal 289792 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%0D0ib|=LhJkV!`kE$6~ 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 z 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%0DC+fOhr~5(q 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%0Ag&=(rUi ziOy;T%u-kqykz+glhSJfxH(@%%o&A=YohrArXG4 zXC75%se1Ilq6h1BuSFFZr6-G|x6BRQi8l41`%&`ZS0%fR(;>C>#v+7pCcPV@NZn*c zFM>judCyUGZ^{Tw5|&UwH{I8=-e|s-x!6)tgAkqhZ17^}#tCn<(Gdl{sxC&Ou)ym_ z3P2gpjCw7|>_MZ&D>op>cVXqJ-XcSNt>2`%~%Mua7%yuK%wa|;~ z$qA3@v;K-s)3I|PiC5cW`l$WhgOjz_81p+~BeUZ(tDhBy3W2-~W17^D-SzI<>nl2? zAtKbF?EI$p4_%fDtw!)q@kQQH#$eqUj2%<% zQDOiW3={J6A_Kg!DcSn`aHcdkR?vA?O%Q1j(O&{uH!pO=!CX{zWEB!&5?9dw*Q9|3 z-)dpNz|H9;4d7wRlCf*4fgH6Kkd8*~;;%RQw7ejoYv>A(B|~fSMJb_SR&*w%#@Qyk zMAN#fQ-WiA?v(P#vrqC#R;WZ`iXN=lNlT02a=GR$c@BIlvVd|*2)04HYBi#a*VzKq*Po=yk8`d(_C%202u^mmGR|A35|g z#qKHX1C}!@7s#eX_!_TXyJD+F6l+n_yX6!s- zl3g?bDIG*E6znVEJH1Dbn&yp;npk%pAP%V@2k5lteWpg&2;T+yDCj7Zzn_SuK-+da1x zC%eayj6GMPHm8K6(zbxwk2u959NU#}1ey|#A1d9Xx1c{>1JuIN0G1YxaugAJ2Vzic z7GCRJHcQ$!7AiHSPmd~&rna>8h$TL$CySdeSls-XEIDsMY+WmN;$mr$%q`K8rAtKZWojuG-m)$tkEuphTMaeUlgmTp zVoIDc82D34!gXpMs%q<~t>GiJ?yO0ET0JE{d{Sg*j<(TRE3H>eil+35k;--{lmGj`W^A&BpLIp*IAQI&s8@i zIY^0enTa76R;(c-+1&3A(#>tYlp*~U91^fT5|>ncD*ul`^xO6Gv!-V zT7919l>FA@=nbYI4VyWq++RJhC{zx1thPsicaC&p?=KG0U#QYxR6TK6$Y9DUvd$0M zk73`1L!y(1LSvt1BA+Nke%Y1DoyF72N;P*WLQol-z9`1rJ+;JJaXS}aOfEMWf$lY) zQ6;zB)|ie*sJpb1Q1sSCLo0e%X&3q3^+nhh?3RGyELg3!1f98DP&$~k!!5<&aY)?CU4g5 ziXuXQFRSU{%^7sy8yQT2)DWnI%B4p0&!yo2arD93lIq&>@NlVEz?SmH^t9blLL1DA zHZ&Aa-`l}$7?fQz|}etf$p1OF>D{#O_+Pm@yct0z_(&G;bxE&OL`;DZ0g{T%$e5i^*6 z()d^YNBAG1tAGi=uaWmV#L)l*x-rg(6;D2c;ZaA15P?Tket7Dp91Lrg}f zjJc6@WK^wZL?At%vlWSekQ65al7J2XkjyHFSBo#f6+Y0{!oJ~cB%R64P^LP6gC(NO zv|elJlDl+P+xNqu@u5~kCI*C=&W!ZKI(4+D%BqZ)2{DdCtR08k+$ZP{cN?FYiNS4F zXRKyVWP8?>JTQ{^X&YD4;y+LU>Db~Op6d0yqk+7Qc$O!dF1MZF14CgHgRH?suR3(=-bG{wHM+QnC z(yn^c(C|Pqcc{$Tp^=@5=NU9E!?(F5acdr%B(}XB-!GCdX7o43yyl8*LD1d6H85D_ z$C)u-BCnwU+mm$Z`AKKV`d_HZqT$kHgreN4Pm!BciNKQJpTCO(a}>Q?b+Mj zS+_a*lP111SsbViue2`p%Gdtrx%H`>kdrgc$)Uo2-smE+Fq<3R=VgvJ`hqN1724-c zaEi%czv#I|)}8VyR?tE{uIT8JVD&Baq3`o|T<9A9P6%BgOmnH#8U4LTH2*r=8+}xS z*vfN<<@;kfBmB`j#W+avJioisAH7>FRWgnmrMSoeF?oX=%SUa`7ZIR&pyOO6%qWeb z-N=q(NLXrr$ogvu{}S;wH4fr0EMXsj9zgoLKI}F5!k(qFJi)T-vNo~zo?F1rFSpkq zROO7;SVj;WEq);Up-$OfP`1~2yLv^(NWbur*nsHWs~LNtvY}O1Jamt{4%75DU{VLfWu{T^jTSki+%E{zUy#S?b=9LL65AqpO%?mFB9pO++=Oe zQe1akx-w@~9!S;Vm@M})z^bMBg?&_Tx2`}h&E+hja$0Lj0~onhSD zu4$=#8rr20ADbR#-)Mj(5$M}JKpmOh0lB-{jV_X6%dfPrE$yG|-L!MyUvNNjoQVRF z8fOyh0{*WNO~NniX2TPsz$H%C&wKzvX2@i=%%hQ=@5v0o6+@|Oa*%l-%1Tq zkFK*s;Jn;(IzQ>rl=26r|>g_*%!MUD|M~o#Y)<%`L4k2i(Mf$>!d$YS*y9(D|mF9*sL=Q)}tl@VFK3p!G1G= zOG znS6T1Hfzli8MB_Pa*G9?dC1G9U{~Udh~=EE-RgVG;n-~TMd#$QiX9antIyrr2~aw6 zj|R{IfI|V0^{mvq_t(AoAt_oNMdDVJ=8t8mFpH_jy1CqQQ;9M1rV{o|oJpX*Qol7C zjRAcEi-z@<{nSvvXK@8p*43q1HywKXO(n1+p?p|e;!pGqQ`VcWC5??M^}gP;z%lbJ1mgYxO(Ov zmEMac%>XlO$%1T=+1``yYb|gkBnOp7vRVhrV}_0*?S(4r|8^P;nLfdQg6j`QJR1SH zpmdOyK91l~G$VX|MMu=6@T)QzLj4YFi(PdlZDHMH`O(+1!bR4opllSdUbp9ic>Dm- z(e_VgKDh~7KyA>URbh2x-Od_wtOz%WWTqsXs>n+R2<5$2z&kpYQ;$QtW=|a}c9RJv zmkCA=I5wJ57R$>M;ddxH&S$ls7aQ!?_90{Oh&}$;g}sYMv&~3bBK#h7ko|m!uGD@$ zHrug{57HGGi@O4t1;VFrZIxWn_c7kc*pCbsrhyUbyzW(|&N5>&CC|hy+umI?aQO;! z`fv_nUPWj~d>)60>?h@BPwP{Z+RI7@!ml-GnWqut#0PWxu# z`sIe{7Qp7fwiSVy+n>bvY|P>g64`I)U$Sk{{SD7Py6o1#w(elXUjpmmLHAz*?eT)Z zbt~#IcLm*T%dVhohCG$}mEM4ya(C%eb}HpgrE*fK+*GPxDwUT?<)>2pQ>g)|)WB4# zAeAairS?mu3{q@cD^gUUBaIe02B~PF$Z*|qp|QJDez3?;_ox&;fmLj6)dp1Cw00UQuV2Lm2fW z4BGxqk#}GhJ4G|byJjSp0wo0+%?-90nJJJz zZS+Oe_wfVC?T(r5MxO&XstTA62C}s4KV!TP5yp%dV3%7TNMLd=k_uEQr*bjcILF9^lPLQEzormiIHR4qE%0k=y*NQ|*`8Qf@{^`2DeYH6&$KaFnb?V)Mp0 zj|Zrw$!gof^3bweVCc0vt$8^lBJBer%LlagxZ5|Q*t17Zu8EE3nX&p@9xzHEzo#7H zXNo+~i_t{32L4%U*or9VxsX5F`IDpf`?2Lq$Eva{A(Qm>Z}kZZ4Ax%h?1E}`Zj(bP^J4cL^?gH3b0BVClpDvTl4%X z(I%l;SKBeTF&I-@m7tBRe0rk%*#}i_M*Sb4n%xJg*pEAzvzh131-j#Y?ex_C;=4_7 zhO(S#+R<_L(KP(AnbHb>bf)U}Snj6+EIPAZx;-{i_GIy-m>`zBO~0F<-#vmsgLf0v zQ|>PPu8AimKs}TkUS-Zt&1Y$SM&@&CyB<_banjG1($5gCJ>ATIqmO&ieQXJv#Ea?p zcVs+!`>PDy#nPJwyoYB+#XYVqs%agTWh@rYB4~)^rxAsvwII93SR|RBuXD1=(#0Ct zY}~74z!I;5<7~43crps6IGK{lk%&D@$r9ulQ$qM`M`USrNJ|HVhKM#tX2_;nN0?Q$ zIb*+(UuoD1jGWU>b_z>IM&ac5j&RwY`i3oOR(oQV8R^bi*TW?4ZfjY8#|P`|q)5)d zFMq}nf|!G&Z08l}1%3{0@dC``2PVZXcx2SCbRaF3H4`M^Yx}p?nkmD|AN!GFKI;wp zGakv6QAe(@o&AnZ3x6qnZ5iGU24C(|zo6HaJLkJteHXYmS#LcGH@d>3c@DY~=?ss` z*ptpUMrG_yXBhs7ofBbBW;Hea$#_9zvpb#_*^IY7u_{(@$^L+~mb+JFDVZlL+|=2Q zKIE;ozg(Q$Me4V>$yn}wKP~d7gg9c}Kp+MiCJqi-MbRHUh!?+O<^ui>XM|d-*c?3L z%*N`$cZZHlMC7GONbv@h@ zO0sLH)1EY=H|MkZq~rq?%hzqUwzIc-S_%4#)~D5cL7yeon4T}D$DOKV3w6V@`Xa8^ zEnRQa($A~0PXNvS0A*K}Dzq(O2`PfHoV)p6l64KQMxRsI>Q_#-(*p2xHM(H$WWa4FJPp9T5#aNn*Ci+a>!}K zPDSm}wG+G`sPVEQQgnpVC3b)0EptLEc`~oPDg(Yo)(w7HH`I$|WQ?+mV9++l_H1U| zD4e7Jlk*5z>y!zPv-zJ?eHe@mE31>`PJ8UiqUv9(O||NFEOB!TWjo>ngV>J93aQ+2 z6}5^@-r9ikeK30pTg4{Np0lxquEfi-Ewn{K0|XjY`;5h~OdaI4T9y7$vEH+4#x-Q; zd#xIgyXzV^yxZ7+uAW<4wM40B&=(XXY8dpbGOJ2a@lHvuwfY1FiMNQ@9yYyg%~BbV zRDIs_AbbsAG^8Y8)4i&viQHOa(KAQO?!4ID5&)1w(=w5(*a&V{{`YW;oxc}qaRgT; zUhXwfg}TqW>zRpny0Lp=GrJSY`6?cKrZVP+z)7;L1GUQ?l5I%03<7;ylEv8pp2q8b z`CQFb?=e-WC)3@f(J~R)Gk40KwaEh^-MvT2j>UMfX|Z7_Z)Ur^K(5_;q~6H5$|4ZW zp)s&`X{2i*uP0j(^{SD^;sVcqr^olD>JVxg>`4*ii$Rs5{T`YvQuPbso`7OLSjYcVb;ab2<8pQe}lB`I zm@PP8D zG$*KU5gGaBRh$fQDoO)4-K#ZMB#R`43BPC-j!Gv%YVK%Dd}@B)mKEyP7#Zr~y1c}4 za~<&>xXmiE^N1OLZ;UMM7A^@_llr?#okD7>N*%Mbl;1#X<}kQReSZM6jrw@z4&k_I zoA-4xiGEiiCYaJo^@i%pWDfMlmWp^}9t^TGoG z53|CvWN*Y!wKxAYK_GT(!hBYCk&jB*gZvF^8qLUaeyPwE9yB-6B{MTQ3I$ha3y&t+ zNTV<7L6ya3Ab&$AC7RVY*^S<;pUTJ7a>pOUtb1dy0fjSpUNgYw#^QU`r_Ao>)y3ut ziO!D={;7^1&@kc)>_1-w601Ec?l{gL8+Iq{xicGcR%i(HspvEo=NV6Qnpv&VVkG6R+@4$Z$Wyp!_O=GgRe?zdYUOy`hJb9KO1&RFq@-%*1Dj0+1@aprT+-4UBka- zQbL)WF-%lBrC#@XpL>1dxzUTqmIe|SuXY(T-fc-tJr(2g#a1?LIYOfQmeRU{dSZ#d?NHjrfC|!Lf`m6tW?5E)7EAtf9X)XN5WQqgFi2 z#ILOFb^E-RRnIauSoZl|dFq1EnTk}=na_!Qh|ZJ)Yy60)A=H2N%%gsErS*lJuzGNs1l*VVU4edU6mp7`b zOe1$U!H|_xvPcAB$%v@NUKAbN?Luk&0ua4l?UUiiteT51F)u*@Dxw*eXPdE_tYAYY z%CfI&y*f7LH8#1Q(yL;(;s&kB@HaC4P3u$BdedjU=d)J(tQDrU3)z0S*Ry_luIbqo zy20yNJAEL-?A`~Y@8gv+$cjC?L;3jLo|3G_#LU0Tn*+_r&H;Dy=h2qOJQ5#}pefcC z@C*;ssK-XQ<3oI&_re2~p$fWUBX-C0P3zA~U=~Ej%A7!C3-&f5_%S67D-#itFLP6k z%uUMXEt?yP%qy>yg@_toX@5Rr%7>Fc8@O0qV=Nmu<4SMr#|iPXsMYoI#+1F|-&kF5 z)~oA(F)rpQedTat@ycbQ!ZlW8K#rNYdYPTHj0~LdU8z3N$$0&**l+{`ZNnJ?*Cf)7 z+NbIQWk14l_{D##?$0vouKgmjZk#DHu?t(?{U{wu2&1ff#X7#h*&nK`QH;4PF?d`J z*EdIG>8ktYze1U`b?Xo$zk)8-4^hEYmuU=Tjh)M=UhSB)Y>rQI#A&3H zrEEaTh#|8XyjOa44@(}sh|&9NjK#O%No1nxO4K!Mg5j6Scx_3TOXdhDf`L_aaSUpH zd!*gXS#G2CPO(vmn@j{9*ClXhSVn7!Y!NG}i(Q|khb>E?VC=Sjnf`*ra%+p%+UB+1 zwzgRtt+&0_`*iC$J_c#NXQR>lg~(jC7sQrPvp@Eo`~9&)?@#+XAo$OO-pja&Z*n2&cq0*_fLHuB2@jN9lGS)+mF2^L#sK1iV=ov^8gn^p7WRmi{ zV>JIlQE~BuPxgs=OzG*_Hk6{CK>-JU6d6H1@8anm(jNM@Be$+ z&Xqd)(35pPM|SKt;~ME*U+lcy@XWVe?(W;ektP}IpCAqNa`!^iSu``Yj9|AG#J-sZJ_^dLzzD6dhs)=QYS&Y*Qcz4dFRMAzup4aH21e+q1SD-ijI+cLfC zz-d*Yf*K!KKnY{?mQk_q9Dq7@B&)2k1DTL+9Y+w}Hq_m*m28RssQ^EEIr1-Oq?h&J zofBc8nVYe@yNuTFDK3+Op>VH4qcRGelP*->tI)9-g@_IXzY3)AkK)JoD#l_iRpFwuv?Jv|#(zK_H@4eP0Rx0-B6hjnOOtgmutV*UDm`TlmZtw%aQE zfw!+H9B|F#8_yVeM(LF6LK8}Fq4RNHr?4BcFM&5hqH zJ>xs2*WOw>^12&t7(co6(wlF%;hLL5rKeR^o?bY>^W`zobTH4+D!VRUg>J&7^0qx^fa8GXVR zLC?leZqV~;_=Gy^rKVk_Q|f;=XLZwxQa_ui2Cj{dXq-z4<4)NsPbuThGe|fk3o=Uv zIT&ntTU>KqIpMGV4V$?~{b-8OqmS?VroUvzA5-@Dt!Dd2MRPhAawe;TerbBg2n{;n zjjFap8*vFbk6sQeuX`)^dJ1lP*H~-iM7&t{+qV=s^=e2DIgsl2fwVm+{@f0Kg}01@ zP94UqA5)aGUw$rJtJt<~$K*kuHvVc(zt%iIf#9sIJ+crXN0OfjCq)uj;phC-)5^+2 zf8?_{BNKDF`6^d^@M+_3dbqzk(KvTujnUE#xZL($juRjV?|;95RlKQ!>6kn(tKw`WyYlei;R_1-DNh5qkWc zjg<>aLjwpi9b$O7;>St~_He}yl@y+SSA3A9MA*mkB}D>7T6h%xEror@NHENLq=+(A z<~uCBU09egC@c?`cFU@g_+ZX3?d)x{dF7R~zU=oDR-c#U`XoHa-`-x-xUD^r_#~YD z$qIjaS5eRRwJW2?(t8k6XItWiIE4Oz>x|7t2$x(YJ z(kMQZp>@{B0d^r-pRBCu1jf#Q@dN=QcKD;5q~TaVVzmtKiGs#K{)#<9uyJhU3kd%f zpIDDsaeaKFg!n{SzBH7BD;QtZ`Wo7*c%;Fy{N&-7dQ}$$#kaSk>P-PW)XyzW2L&or z6zqu_aH9CN^Jz|EMf|NeOF`^V>DxfmO&}^%6}Xq%??DSNJ90c-cTA=9Dm(oNzeX7E z!BuTr{l-&;<@H&v@JFY$fnNEFC$r+)n6fq9*misXFI&2_JNKpT;hpEhebyV{@3U!c$`9;-#;hC*Mj266|G-=O zNS03=yTGtpxJ;h+SI?o7siUgVxHe&kVpd7Q`3%G@jY zo5jV*iYu1Ns?rwS54%R>1B7k+lDf;8Q>$}-we5>Uc&fjla1#mkI?R_J_o|uI^*-jl ztCtL9lr&bGC4>mASZ*vf2m50el=$6iN%r%{3Yvnkf>r(~;YvO0h;4LUL6F^g1FRAG zZcK!2lVln#kH3wBR`$vXog%lDxu#2M0CeuhZ?+-@1c#RoY1_7m;26Rguk>6^d0-1y>a#M-sxOPT=x4vRJyBdG zS=hmgWn3{*hVQIX{kw~w_~Fi}#4fR6CW^P6OWA1dLMcJ%GMJEibmeNEgQ)s2>HTsw z($P!V<0+Pg70QxezkyFy$8L@l{*ccT#s4R;tirJhR#&KBqIfB+pa`JpFG2+Rslta- zIC8X5;5+L1K>1jBuBVeqGs_QF?>_>RmHQnZcw)aH%PRg288u!E~E=8?aclq0HqzE^W1P z-I5*64GB_|tRX#>Hyyd7$&p$+a{Z)a{_V)U&`B+U{apU*+oU zZBpepc3UKh+vN@QRj2ElAoYz)*GK&LATxij`hLu3iH=Ajd)iYpuSU)GN&Z&{!R*Ur z_BNC9TtLBCVERltA z&l|eHIl92wb15){0v)**@U;w}cz(^IEL9g%;{s@D?*eC;kMLKA4kzBT{fR;>G>ATD zM`Zw=y|X zNsQ^ax@*cvqWhjo>AC!#BEPC%j({~(hfHE@i5$3wa5}Nv?bFGYLkzLpw^R}dB73Fz zhK;#F`eVIF5AG=-0J_e&jvmj@QKdhN2oBn1`~sovt9sMRcITN}ZwigS!JPT=$niIY zakX1ptC){#vwQp2Ny zcpFD|LgmB9^~-jJjvPKweh$uka>o}OyDlZUbv4ShLd#yL6_GI10viJH=9^f0;&bP<&Nk{JD;TpO(TKEh} zW7+$IjfiY*BI98)o`n*w=wbK&Klc7So~rNr1IMrV$}CDz-J((=Qqt(k&{c$}B+7Kn zQ-;tWq7o?@q>*MCB&8HdQW2FVjTi6-R(Ck$r22K`~ci!7u4mQZZN1 zd4?7u3|If;${)R>1d}#Q%&?pr?G9E!M(u`%9D|iG1lEDkGhBoHnnG3JzvzWS2PN1r z5;rt;`L@DOfUHu4hqst}1w!D(H@<6I&LNl~;CBPy-E%r8m0-?A;KVj#5i8*xF)wm) zI&`f3NkitaNYEWrep!zQvlikB27=zk*LUn2cP5iaI^b(}a%<^edDIExPKtvs9tP{YE7e;{NJ|IA5e&1ekb z;tEE7!Q%-0XgUZpsQbatxp#8x6DOzxmh^q!h3#q#GD}2ow-UhSe|h{%l7m@f7a_!EQ1#j zWiFRSm(gfqQScPQg3^s;5yN{FM?%v<0i~eZ4FVHAin5@1TjcNym|&M~ex(VUCp?5VoD!IH3s)=QZ*}HE58+`ebJd4tt~cSI zSY**#0kACtjQ-VFKu9J;Lgo_in5K4k`Q2O>vMF1}Eqezib=adKzuoUC%i01zdc7r_ zdM)29VJSHD$pU^%B!LTV!6mF2`pXw1VU911iUbp3HTSP|*iRGXBExTW#zIBL8;yiR z$B3z)D!$yob8k-inPtD;nUddbo{xoq;HQPKvWi)Ig z(JW?Ee+nM#ZW#T7)^3rwpVkih#J7cTaA=!(0;GnL!)mZZ_7imCE6~_Iqx13iIv6uO zqXY1_9CQfEfxi9Bo+h48gtHRk(PkUBL=YaTPK>ugI1exrJ(L9V`WtwFBLieZ{G;7h z84wS1r#2@Xe&Y!ZzTf^X0_MATq{9vQiT0`D)e%yOc z^$BJoJb_>a!VH3)5LO^K9br1bQ3!Vn;Bqh!ZYQ`1;TD3K2-gAT)dJ*?!%9ee6pGIy z*a_h?1Tzp$Czy%wF23+MzBEBoxt9}Xf_Sq5do7;kccyj-((Roqe0A|SndddWs%8&1bd=N6(bl|@Q)tc@v@Ol z8^IY!=Ow{$2-gyvgmlUQ_Z9Ri1N>qoSkO6R;fK+vicg3~mRT`3=-h)SWv{HxP3$ML zxa<1Ko?JgZIr;|9+`eBB_HAyzpi<=GY<28`_4fZ>gz&Xs6XD`vp93c1Ao`WF3# zx{3B3vc%1U?C}8=qTPSQ_f;M4zXH&vQqX_lhaD`KoDs-9UgvE`Lm^R)3=6ng6ZG<&p>Oeyj6?P=SP2dSvkzky527Yytr4s-khMMh*06<*!~(V)L9i9F=0~s+!XLljvUH-x zVw?4q(TwPzp2wXVDd+ z=o{If+M~$S0XInfB;d0hlu-$;(mN+YctSiAlt6kxBy=`}cvU({w>RsBktjNjTOCY{xn*WZIbCr&D*8?|cR2L-8Ghu}c_p z5QgglC<3@a=W>?t%M7lk3%|_d+95fC6!T2Kw1M0Md~)=SJd~A}X>W4wds~c|DBQ3M zciJd~rx2Wh@OLS!bw9 z6s6~!MYeF8_E!{yjt27_<0o7Uu{fK1wRo)^N_;^5kLyLSI>L?wvkI1XVGf;|zQ z#;32z7e10NT#+wa958Qq{7rd~n`k_!bDBDNh3QrAz5Xi6>#O8E(BoSHX{S6OW*u zVO<5J%Qs^QleBioPUk0x3_uwNLP` zyHtUZzi8-Q#P?YV&H&uM9?)ePs@ES-ulk%gq|2Lsaq3khH4}N`&4-s0jCB?QM*AGp z8JqHxiTyPF$mgdS2-wfHAN%~|wGa4Phy1Ns-dCrcUvVoqq1@jQoQiPvfW84!L&6y- zyp&)j!UcT#QAFPfg&(8zQC_KhX}1!Lb)xvv8uR7l$*1qYr*FllufV6T&!<0uPoKf3 z-y+^u7CN7PH#x~-f7%JgWxvR$Uq`|js9Y6%`bB*Dv3&X&eEJ9Y^pp7XZTa-W`SgAH z^qu(h)%f&T5YE@0R_Ib!*b$cxmqVSTVr2md!(*8uB ziNb40xE*TGQi7dOcmcs!Cz~&A2wz^QeEM7Y^rQInjrsIF`Scz5^sV^x75Mb^`E(`_ zjQwQr>9>gWm7UI~)BPEj9sA!-Flm22{W=nkZC3E<7xC%G^66*r=^xL**;o5O z>g4a|JNKfWee?2O5b%7r6*iK1^D?gt;G+}rMFHji+uUh|=gy)0wk&wIn3OF@kIO&# zHKZrke%w-+VEfs^XUm)dq)`c{3kFB@E9KI6*!Jk>60gpVN#g4(Y&%>UUFDMNAz!e~ z^Bva@b-jtMtE^DIy|Ox&*-vJ1wfo7QTn3*^EheS<1!bU`xjO*o&IAlsz(pwNb$ee% z(Knh<&@sEd@_UN%r@$wt+P$z?kDmfFCYPL>I-JZ^}?%zg-nl>gd9dQip59L>f}hK$r1X|xc)>bP4%|HboD z2{k_Z%FkO*@va|P9PQVf;$-=72u7v3{~8}a6S&drQnSp+v!kf zYCcST**9mw_(1mXI)njf`($;lY(JUBrS+3Nx$W@l$~^t(8%fBm=lz1RQP5oyguKJK z#E}nT50CMXiCBw)EX45{MXTrVelnBm*-!T5+VRPhUnc#6@{rX@D2SS^ z25IqpfRGFnt3YBgrt{(McfZXyiSc-+s0G3yEyi_xxPlKC5scgEB4AW%NRx{4J4WI# zPUXW}DLq~dfxZgWEG*7O*Eg;0odGaQ~lML2w|#PWm{!31M4;OW_71SD)Cg zqysK!!G1?U*X1%ucoIDO#8n^|J(j}NCwXPd0q#~H{Rrthp}fdB0`4h8DOic8FiS9T z`s@D1Rla?($7EluX*o)xn6!eof6-8fTHPf4FZ&m80~YMV))Qfs5y&_f}xdyMdS3QGVUPOuZoK^`zQTKRHd z^yScqbI3+Hw7%iXp&gzS;MSm!#P~{tO9@6lG{h|+I11&EP3gexI_@!o@$8*Sa5~c2 zN^m>Ui6R(J=OF~k%0Rd$rH^)_90gJ3-CD-axr zbm#=59d2$n+>C^BWg~yu33fu^Ed(2~J1-D1*Z2JaT|w ze40rjI0N;;Sc037PB_6u2>TMuKy~Fra1;u+C76TKvIuTMKFlPThV-=wwnF_~jnYSB zLW$raq%TRZEYg9}qq1`l?%-hDj@pz%ur>;RMsNn)4CGc4T#CX=2o6Lzk6Kx9XSU^`TA3}T0d+DMp$XCwP`5}t(gyLEA1`Uq!RVw{T7wvccJ z3RfrhYCKVR1qm-g;WXk~6tZ~?o%`VW82On>FwS=?!E~fwWQ^^zkeyg!rxK+NCm4-> zt^;3MD}vjRjxEu_W!LA^nLuzLO3NS^`=CIuHmV;wpMG~M_7m4tJHc4Lg<#wV>IlaE zS5W$>y^8qsFY@6GK74>++#iw%#&%)}#`VS_=l&!#HoMhu`>LZl37mxM2iK=9(Z`s@ zhiCF(Z9c5Vhn4uSBp;>`tdH^%CV9~j=DfmnVukAP8Nt~ISMuQ!!2M>^tLSP8wsw(+ zoT2x5*N1<9KCuYo4EzCwqi(ST@NI=B_~EVa-FEm?VzQKXD%n}}t0#$t&h+>|kMIB> zXAmpYs*{L!bTmrF5FCf_P|9nhBTcX;3Ks<2zXa43E-r!Hz5iJP>#n{M{6y|joB3tF zxCGTpa0y}{hTJ52`0#(74AJ!i-}RgJaFigP0p-M3Rz;|vkR5rhF`VbA>kY^N<_mJ( z4@X#?ilgH3^_QA9?n@ZciEa|o?S}t3=Ut0n{omGzXn#$e^YuJlZ`y&N&lv|xNxa@v zX@JEY4DvW+C?*_Va-lJgMB$IU>t$Iq-|T{XAP(a=KD?G->{lQkcH`5r1I+W0XJ2hJ z9w#_2br>_f@d@!Pl)oBE|2Jh}a84=y>RUTM2LYGG>N#1cLjB_OEie8)y*elU7p@C< zC}NQ|=Nbq&y=-54CMs_Yx%sG$a4EqIG(gZgHV@=pe-q>LkiQ|2AFh8`ujBgqLdHJA zb`lt)0mgmy1lJ?ZgNb}hj4wjzCj;*7&FK)5VB$#@W3V3agq4^DjU$Wn`<61;1zvwr zLp~VkJ~B_aDTt3+q!TcArbcdQ;{y^7o<-| z>0?RyB82JnIB#s%x4$iBZyPd^Ee6ND*A`g9xle}>p0{}Y(TT2?)QEk&mRBN}iNX)m z;k@b)rjc+o?QuIAad;lW9D?l-env2^gQj=5O#^ZHNjMYLS1Ad{^?U}x`@F&a;P&1{ z^chG$4lrMRK^f6H9omrzi*zWXC(_0B)n5xO&yg0a%|UBUuhwt*;eM+|^5dZVl=|m4 z8UE58EWy3V$!NUMgm>9zIrar-V+)V(?r;gTFcnm5~ z;UMEaF3gv{^Lf8wzu^a|2A}POJn$c+giEUJ^9S7Qp`|+M~E0R>=I<9KX#i$bN70;~(k(_q930 z;DKx2aPNzUyJ)|cGwRv@E~gX6{tsGI8)?Hn7}Un(UM*fNkAe_fe%#pbsFC{nwgcskTB%FiNiV%!# ze&;*gy(bu_Z6+8`(T@l&MQO_j#x~){xKOn=As-B@aW!F`<3tDB-%GGI(n;jA6HPD& z*$m~=@gf+fbtIUDbgT(3Mc9Ndd>X+@sM$36!bcJuhx8Qzqwb2vgC`2uRfV06Lb#Kh zf6@_t2N)|-U%bYtp>$9oN(rW+3=0UxHnR!Fm2r&V3}iDE@IUpLaHRWh`iy0-BDh6E zuFN9YG@)#C2*&L-nqUUfDI-%|DbhLk5Eq+?!Uc#9!f;u};C>{hMkdmGMcNYUm620P z916cjbZ~KR5X?Z;kjodI3Anck!BG}Us0JDTxeged5M+RNs&GOnT(B8PkLPP!k^#mn zK0K3PSyUixf-7-;1P7vUB}yM*NeUw!8o{_@cGUjvA2q))(fne?se$-j|B{fUsup}T z(2gu!La~&mrwGP6_fLQhxnsjECU+fi2{wTasUk=fh%AKgS@5JRpl}C*vk|r;SQ}wu zz`gYuwGLjh8f2be5e|2s0%10X_xUWGIDtiIeL^N}_}xHw%ugL2&}D70U;?41{ea+2 zPYVb&QIFO~FJpvA-Z5c-ee}-5+ff{?hcK1H$&IyzPSow_90m%5H~D4)N7mKR@9Kdo zU^ziRw=7y8p4BUYKh#RN0gKaK7a@+7@DN@in@A<2o&<)6^{1u5`B9;g)Ch4>$^^pD zv-pEKPfJi0N=-%qkQqGa5do`L1mO(|7|*y+QpbDsPZRxJefnm9)mO~TLFT$-gWyky zq>_+;{;%K$3tl^sg`dM#fuCmYgqPgMvfy_vVu}EEj#woI?;(S!3eLV%p65bl3H#HLGL(7OPmI2RD%`xHC z6!ca*ytK!HizN65Us*U|!-WNUUM(FWsMBvbC+!+)vSBJHCHw-x1+a{MfgS4EP!Z}` z_yKxj<^MbW-%I|Bcti0TiWgJ-6vd@y5nh3x2L!_#Wzqq#e(>AgyPv0&!YUjP1#SS z?yh2Ew`GVC8?u0V18gF_G=K*{hzCpx0wh9TxKbz>ey z*@t^HSPuCuKUp)9lPJZzSVUH%Hfr?*D<-3;R^1r1kq4Wn(>3i)_?Kg6K^6>l&p=2kDXHa^kl-y3$ z3xkrCC@xF!94cO$s-IL!uA<^2DZYsckEdiON}fk?eTwg*;tx?=iwbY2WN(V|{AW_} zLn+=(@o=hM)T#EFNu{Gx;k@)!lzu72TPV(pw=xhwiwIi!P$A5D;c+rVmQ|$Ta21Nf ziH&HxEfrRt&;qfAAl3zHL?^f~t{_ynvD|dq1Jv6!% zkStAs9!!%L8v!^F2rkpbi)gZ9aHo&%1jGP29XQgD0%C&P1o1F)&|&L}t^{%tZJ-#u zEJ_atf^94DN}8M)?7`4sy+v0CIU6__pvM8RKyHWhFmC9!KngTP`b$W!0T^Z-`ecYN zh4gUAN_PWN133dY(vJl)2AKotkv#_>6_8VD3Su^Z*8=ksjRN@?a9A$VHvr86xdqZg1=8(- zhJw5c@;3s!8VKG=6t98&2Lkp68V~YC;HW<1f#!kS0qJ46L0=3sh{lAX3>4D^yb4GU z;wvD3xGtx=1C0Us3~*H6n}AF~eh2Ac#-_t_8+7;$d+`I1zboKKpxGclgZz~N`vYl# zTmT$qZ2C5!1t53RNc&rZEC=O}q1qqr=h1Z_z8LHyf1QCwf_wxxj0So%kRiw~ARhSx zclqc;K;A*Me+01NjrANA0-?NRcK>7Zf1v9}4mmh`&p< zKO5xHAfEz`>T4sA3CM3CJ!*ePpkW~IquPHR$navY_!FxA{Xo_P`6_VKpAvyAK!(*4 zZhzEg215C7QtclMGPHyEZL0lIokG75KLK0_C zs{MUHhJG!62{`Ic2|)8f{tD?)dEizf{Aoa6`-g!%72@wx?e78dSdg=Tqx?1l%?0@b zq(}7$5A4uk+=?Hf+J8OB1|T<3?GI;f`b3ZmfusJk9mo>oUsU`5Y5d;+`>6e$fEb{E z7&r|m3Wy1EGsL6zw*yiFIhktzaFF#uen_>yC&=m`p9hZGD-MVS@<&LI+W$}Ezl>^s zH_%Z7{Y>CUKNiRsWGWCoL3-34_CP~H-c7atYLKUc{D^9QZ;;1>oC_S)XFSk6 zkiS5B)c$`O|M#f&cL$v@pnn!Ps_#uerXatE^r-!p0}TiHAl3enAkPN*Io1CDAZvkq z4Y)MWHlPI{|NI~0|0dW+{yGDV1pTAH1%RS~3_*Sg@yMU0Ktn*@`P=xfrrO^N;>SV! z1>nfvEkI@(4^37?fHqh}KwzMV98Fn7Kvqsfgf>J(Kv+@4 zkTy(2fGH~?L{kzG5L6HuNmCIKV91Mz(}s!&&^o+d|=M^g$-j3!PKr468o&?IQWG)bBe zO$v6XrDaw!OnUaLRF4?$O)e`- zI~%KG7N`0SEXwe4Tm9YT=esg?yrqMHLcOo3tLrS8t}jyb#8QU;jODUk<}HR!kAhZu z9C_FxG;?l^@cf?}rK)^#2ORIp$erSwnltBdS^iVz_kuGoed{KLIy9O*kb3-V>8yvR z&uG_=nNDl4j=nDdQUn(mj944x?vdc5U&nr=-V=SZ1Y z_~h?2nQa;3DN3o*&G}N^>osTj(f9beB?~yXwsu(i__#Rxs?=$-H!h&Le0slI)OXEs z0p%MV^bJc&WWL<4&t_Y3FU!BlD@<4$ccr^=*mD;%%_oYV*H&+3o7eoXbI!52Z=E|m zgjR6$g?4_8;qk_KwY%$P`IS68_M_u*wKvzxsJq^OvT2;h*~&bpC&8M+#;=A6>8>yz zaH?#r)bp7uMXXL43XYYPl_=cAkSrUW>$&8@#sG$Rjr*0f7U%oY-y4>vmer3Nm0Fp7 zF{Ad*;8_=zMoV4Pn&EKm@>$=jMU0rd_m?hQ-zWLvlF+`Y^C8pbK6-O5tm>fRn5V)q zgPsM;OSry_o#D1?wzr>DhQ0S{i3idx2YbYKj?JPCIDbfNo$*eY_Nt@w&7PkGhW{!S z^>SR|@~zy19ko)=cgSl|AOBU#HNToPs<+s$ej-~j@3}`nK!^@r=MV^sQ3W` zJ?Xa_J;Z_rE}@BRn0I}*!s@&iSsLfp=qq26+`p}Ahg9LCSC`wKtsU9;RHCM;defX2 zH6J@KJoogEc{1YOpu*^7W3GH{4$BS*n|oQQ)t(*~=q=N8cZR6DgM@%w&ms19uPm3& z>K-3wlLx+o!e0zX|4=1WYa1iHp!kB&H0LoMC%+AHsy&R9&K%!hCt?}VZXD^t-K=R@ zd|So#sX)BqE@r-TVhl(1L~*_Tb*WqF`sN+^Be$PS8E`)(aiBP@!hxkzYm(s7<$u?v zIn35E|Ei*I`q9S*iE(?RQ-Ga>GPA_YTvqcw0QXvH~q>5N3)UzUZlk-4i={JCbe zvmYuAE^5Zer}^fHZ#u2UDtn`7Q#sBw@`q;_`^DD?gNc_}YI-5c;=`tlmlyt2U^D+h zB5Pq_13N;eEz;@N=hoNPi+}!Fn_T&5R(g3wmtK5KzF6|UaNC0O)7U37=BLKY7?7Dd zs;nzlJgz)T*3z+Ug|u&n={``Qn;)Kpv%sV8|rQ+e!j720fhTIv-WotX3_m#l<` zHn}?n-RgM0q@%55*U93xM=AARxdmcb8Hp;FeHwHQjBgvi@qL8P-7~Df>HuZOPOb5# z&CPlZ?&)H;*1OtrY)7#_TfF+5BY3PhQ`sXqR(ni(+PJ)|TP@$y8h%c%`22XyPtJn^ zpUkMA_BnfJi>KwR*N;7&t)?>JqoUZ9Nv7k62Z!m1U2G0yeW~=Z){8M+9hT$hx}dhJ zT&A_Tsv@`Idtz*D(>(ceO7xNLf^rM$|sHPq~DShEtisC6{n(Zrl9n0>$E-tloHWBv+TQ-|5j_k79 zty#OKMy0}KV0@zH!u*uU$(;NVmG$YO?>V6>z~Z>otSPD%F&abo+&1->TRn= z*I*mSwM3juInFBB?yj7CZ0z{>YfS~^pAIKhzIAE%S)|(5T7Rv%K%u+xq?AES{Fum` zWP>Yem4Tg#KJwO7ahngT^jY7|XNl*vr^z4ItuTlW`l+@P zjsL0M#RC2{u|i7=O$DE2h>N`~E*H&Nn<%_-kflhT^+4(E@OMCuH|~*YZd)Yj_I;?h z&CWXd0L?=KX3cew2s}DQWo}u^u;F1xMvNQgH2jRjMCJX??}rvQo>uyj>ouhG(-irh z)Ncb%j5#ltY#uDDU_Vn)Rr{C1>TP+0ELv6%ZZfsdubr@c+O{2KGp=+>OrQC|*gzt7 z)9i)Qi)ON|1ZUX|Ual9g?!Z*Nn@^?)WGYRLy}m@}!lT{VZ+xmJJr|JEO?u^{c5-{> z=wCW*W6PFljxo1zQC%}OeblJEtqjG_Y9rMzhL0c7a8<+9se9bY0khRRR90% zzS1vRXOB#sSd_Rg@Y`#yo=kPh_uOH&c#5{&(;03hO_kzu2W6z3HHltZf;kFM!6??HF+?~YgvO2E1E4BVKYA> zGUym)I-r%nE;=?h;dthIU+S!m6f_QJl=hOunZd-tX1Hy^W` zocz{N=*Kt*dy|0WeiP5Gh*F-?e0k-!rVkI!zoG+THT^Q zZ%msEqvgZmLr2~@cR0Ooc`=bw9rvCauXpht=T;!k5{#kR{WG5xs9P`u-)M){Yn-HG4s^;mv&atyCu zGWBYm^p@@?(_YSgTJU9MLqghx#;TEDp1+zu^;w;yPi>of=Hp9sZ8gz3nvaB!xm4=j zPk-ng*jnv4RIN((*YaCqcO58+9RK9D8B^&_#o{H!KW6T}d1OQNjolo%qKtDE=>fX-Faa4iImf}ZhJnx z8MXUXRMW1`I|XSE&PEGVTkzpZe~9?DX33w^{S$$DNZu6L5C)?Xzc;qCcLT_*VDCszss4 z3=J+HFB#XF{@G~y;Zr}?9zD3H@JMBFN$%?*q8AHKGB0hpx8btn(|b8H&dXeIkuf{J zh@Ft_IjS~)1xxX&=vSLOodd~NF2*+$#5Ac~d$QdA`uoYLg=qY9fyGN?%sGO)1x7#(+xN<{U45tBH~;-tBqOzI5Z}J+Edx+`Nf> zv1$5qd&}()4AgbQHp#ZUc^PK6P^#`d)APD@=iyF`_L8(ctnu2T>@AlZdhs>DZ2eC9 zmpkiDG9M`wb^9%-Oq-%{SvB#NQc7C-`tf6j%>8+FEyGZ7$Mz1{ZyZ*}EIWn$b_N-$ zmy(9*RDV0X#rwf31(}SyXPU*<7sfi>6s-zOUw(P8O6$_R%#N9jisl<%7e8!@iu976 zSiZ)G6?XH8j8yp@&-20K?g%@Zr{~pwNewVg>Z$IIv~vHTJoU+9i?LUv)tMrfZntG0 zI~pgcGBo>X^!i$lY02SL8XY72cM5$QGs8V;Ure0A#N_vOJIC2N8DG>9>y&KFuo!;z z!N(Kt8h8BKlBZ?rF?heNVBpwy`KY{{}}c3}3{E*PE4`5GLTkTs}n>Yz^M2H}HaXBViA;Eps5U$pmJZBxSCYzN&L zmzKU?{_xeJ>`1G*kA}SK@f|tCMcj1rlh@oyr5mWxUj6)c>!cNnTQ*GBv6~(v zzWrpYzwQY7jZIR1C#L5fYi3@%v8h{R;yAOx^A>zL_j%Q*NhxxN;=>CyQis*=VazY< z2-nJD6%`5mtUB&)=&iCm~yn^nD~A2@STQF&X2LV{&?S8?(OdvwjMT- zaFK2wBIad&xX^n4%%^%|W2fxhkz(~rOKa~H+cDh@oI~;}9k+%JYMy*wOE2@ZS-hM{ ztAP+BIwpTra?{I!UmceHT*@^|oxSMeNYM?x#?G^APTfzq{UCE{q`u+$$Btue`d`?x zYVG3>cS`~u4_i9m{Nd)7;R>IlBQoaKdX*2%kq$fUaJcx&wA+yaQNJ<|yxOa%CZU(E z=WngD?c^Z$O~osp%%0E?Fv09f^{)14Ve#FqdFR)dNgW-obzYe@yUIv&ssE3gU!QVM zBzsto$jq)-eP1$Um-7|(kD?+CX#9tXX{UUUcAl_T-1@4RU&)X_?~d(U*W*(Tx$QnG z{WNY;#Iw9(O^>+4_f*x#iC;3;h&;dc+Uq<`v83z6l80TEb@R?w&y?JZt~oiWzEAVZ9-k@r&YV=|`_iP* zA@tc}sRySY&RROAUi*x718sU~t##D(O6Nf%FLvZEzEGn2;Og$ZdDo81s0-#DS|Jig zzb#pxb6$e0HZfrBW;;)Fxf{;IPG54@oVDtiVUobpm7=LtjDogDvg22t-?&BeQtpVf z>n+DQc{RG>Vr55UXx}HNh-YkTmQGb#?=6*2_nW1e?B=_t)zv}3$H%%u#n;(oBU`)f zlM8Kuujuag$^ysNY@m1C_##uXgq>Y~TmCZFDxom%P4|_!wJy(xH7Y*QG}~Ie_VbS# zbGAi}v)%Mu>-$FwXdyNE+Aroc9ygp-x4ZV(!xF#h#~nY6ytv+z{p-8Wdc>JNamuSS z7S;^b6&m*H)By7p&!yIuS&6KiIabi{RH1~dY?&lu(-P0z(TsqN7p}P1h~IZ^Nn76V zU3y%7S!#A=>Zm)l85fscm^E1IqEz(dYYsDtuKJ#RpBKZ}cm2X8p-V3$L(W(2d-G`S zw1ZV)=Y*e*Q4D@IDCVWBg#0eI8L?7+-m_PG+h?>$Kakid-g9sOEoc>LL;Z_ZI2#5KFT@#aA%}`U2%zJm6NXLI$o2ge}M7i^Ytp)BeLq`Wxr7!e+p;sXpwmV;9uFxpK zL01-ujG1`r>WspiYZB@j7wvaAT<{hyuI)LQTlqj|Lj9qHWer)w_PZ5lzjOUGCe-`r z0YSf=0}hCbX1gG< z#M8!+o2sj7KGwXL*A??89a8F%Fb zBpkN05A}4qWO+IJ^i&V>ePEJ4;6-??RMm$C!ZEhfgf0}H^cdq@=``q@nb%y4+5TZq zvmScStAA|&jM*sRKDBN}duBnFO+)^nTXS{kMh9%=v>piYta9^!e;yf?U(NkG)e1OKTixP!XZ%S@EY%kKNtSQ(A8@Dvt z5M>?1NqR0DG&F5)y7}G`UKiG3ve^FQCQHMVJEisU^oPayW?gNZ_?I2^$Z0;o`CR$>W1ed)21K%Iikm#!zwhqrM%9rVf@VY z2ul&JOQdnJrRL_Rwko%GDaH#VO6N0AsB&Vi>(>|Sr{9tqncrbPAm!xtfr%;i9V%$z zCbc>&|1Ot=ux6XPSMwchkEZ)7#w8j&PEL{D(@>jgb*Caz?p}fM%Qs<9K%^V<}+f^o;RUWsZ&C$}d!&lm`-r!zHvGmr@_VPw=3{?eh_y*pn3p0$` zqgOk3n`W!%aa!)J0_E7)m4@*{J?-DOji5UlU8hkdw2EbjPi1*cj ztTUaC$^p%$CIphR6- zdZUMB>YPa1Orb>)T}9?D<WW;vrdD&eONB~}W@7xn$tn2@N91#oMbqmmmq&hnHiNI4nNvb}(H{8+NG`?dJ-V?UJ_G`+1%JY4j%!KJ>nO;w?w`I^+p z%I-1oF$M<7Igx>tYFE6<6+7p&n$B4EGi>!UwomS@Nc)ZtHsVvivGiBviD#WZET7gM zZ&0DTQ|)IE8vg>t-cyBQYy1UG3zv$CXFL-vFMcbWxHd<`a?nQUf!2944`*zb+OzSo zbYt-l zuiP*4Q$Cdr{Fd4ycYe$X*Z%V{Gz(X)rJw{x}8kbXAfAZ zxl*NL!i7~gwZ4?@n>h8z*}#2?MJw%Ie+wSIG%M(t?%uGSqg7T}TWW+1{umVcXunD1 zmS^GX=U=j1Cq*B$_JPaDh^UZb;d6%XTrHe_cg^j)KYa_dvi%~BHwWl*=n3iU!Uar`?^nH>}wwYHQrwuDx_0C3MxJ$t#gnTh1_3 zJUn>5&4>l_l0zdb8(g~=sEC)F+h5*ck^20&Y019SxuWgoOqdJ48gEd$VR&znF;m7a zc#c`?c%y`^!)!l#S}oEQ^jH#FFnjUk$Kp1fMOzn6Kb3E_R^f$pVdNwG7t=V)7&eVd z-QRDrJGS|}k=fA4;k*s^1>E2e;R(I)< zW=?da%Q4}H>GyT3TLZnT)P_3VTK-G6$(?&!sSv{JO(-Xw1>t$yFbc za$@#@J#MzAcaM7WX;)L!t+awWorfaNJ~*I1Fy&xZ#NpK30JXhgA_Mp9pp`Qf_6 zEmO3&&R-$6O{#hM_6G@G@lglgCCvHubc?XrhPd0RxiS0P;x^bxUymA|-5UMu$-~&4 z6}B6#Pq=O#tTcVoqadlw7nSK5jH`Q2xeMPvea!!R*4yy4=f=s;KO1mH{><6iqfdT} zRyv{kcH*(nMXQcqHZV-@99MF9y3yyOYk!_PQn=?}Zb@+EMbROzFELLRUfytTOU}Kg zk{4vo&p2-;g4xm{O1*T zuuqAXCdlWW`>@?*&yuMP?UP3Ptax^?R{zSai|TFb=$7#T*P7gFVFO^^+p2q@^g`8asY{`qiIvhX@)n*2;El-;u%M zeA};JH%m3cz)oja(xokjzf~)&dfe}ruwn$w%aO_aYv({W)Gd_QM+EFDm;0o|A>wmW4;N+>`QV_o@fv^Zl~S*i^fj2 zlAU5Y!!0rzPkelE_1BKZccxl-TWt3a_INioP;g~CE5FQqV#Cw#QQEF1uNV0kq#vk` zx%2&op6B3*c$uIU$EoEG%~n|pYG+_yn)$SFnjF5k=zk#dl!Wp zCN$Na({;$c`+n)A8H-*$Tt3$-GP~#9kVh^vM*2S4Y${$liTgTm+qMnr?+?`^S${vj zp=I%k>2^BPPi_~F8KLXnDz)hbJ$L#EziZ6qVF)d}!E7gymEPRHDe5s9edhPOX z+lq!uZ;QpZEnJ<;o$5(5t*?X)fVf7TH`=a?w~u=K-Fct)Az?At0Jtu2qwefQe?3LI zxXrMj1^bTQAJ=nv%_cdSJIx_GWb5yZKU0{YKSa(n>i8Pz*v$Rbg|TDxo~G>BJ4H+Dm(>{CD|-)d8oIYSu9TnLJSZ$v zPwT#1yxD0XgI1ILm}th!rsP%29KH@T<1YRAanbBl-wmQ8Yi2te-%hxHDspP(gU9O) z_5E*-aa_A<%Y~A=A096q_Bf#V@c99s6^6IW&xnW~SngGOI!rp}O7UR_fymp_4rKm{ zQd8XfN-tecVw;M!|0efACucudSv(=2VZyHJD`w)t(e3B+T6Z6nGFzj3UTe5f)oj)e z|D~GTr(bVcdnBKz$j%%QB6)wc`xWP14I-i+8E$NMU*`}uLq}_pmW~d?C?GH*$jies z1pP#S(!_du_9mJsh&5>Rph@aaO zhG!4xK-on+Sp**Gr1Qz5GzNV7;)NkzmX=*Y^yz?cJf9pzi{guCfJ77E=_3jLTUoeI z78C$kmM3RNljl5(C|*wSN{Tm8yq)5-4Mbmw;_4LVrSoUQ-zU3yxrTTJ_&Wzh(1JsP z*v@_ow!a&x6n8IQHiI1$6o9X^Xua{g5I5%#Xa0CE|KLz}cQ02jHvILnAKNbgY@)*j zLZPaAEqVF72KWU!hj_VwefSsWV8|coF}(c$XM6HDoe;E*2s|eu25lk^Pm4&vQzA0( z49P&+V45;*1WlEuLDQwppc&C@Xs)ziS`6(d?I!Ids$+bhw&MTDL0a^Yr#=J068b1m zA4MAZ$kHrmcfkVs8#CeqdR|2eQVyYwr0LKMY0k80+6|h3K(qifppbyDfT#dnKvF!#prZ# z@c{!QBqZUGfO&a`N&62cl*~O~-34 zUNimPJij-`|ET_<|6Kjb$}0cIW7z-kKx62i4m8a9Nf2ayf~WUj{PvMBV19x}+F*X^ zBY^*S@bcp2!L!Y?$+HDdNy4lJ|M)}^Jhccj7(9YU5jZdt$WP=W@&g@`;Kf!TbD#>K2|#Cne1YBpsQ?`SasYY;G!v)*Xf04TkRZ?opgBOr zK%;<;0J#9Y0FnpV0kjaP3TP5g4p0!#C!hg9@j&x{?gEVmItAnn^af}s&^{o0peI1n zfvy6r2I>M51=<8;3UnK24A2Q6cc50FK|m=$i-8^k=>c5=S_SkKNE&Dx&;p?QKw3aq zK>k1{?C4WN-ghk=}dnt|kil7Xy&9s=nAod;S8 z^btrLXbX@TP#MrTpiCeyATH1lpuIp#f$D*#0bK!#0QwFj0<;mx1n3sfXrSXjY@k;_ zia@)876Cm1ngWyy6bkeOND3$s$O7mdkS5SsAU~k@K*N9z0yzRb2bu+R4QL(EPoRNN zf`J0!w4K0r0=EHf1H2k|HE>eV}k4VIX55H6S-21t43X$v`1MLSP{V$Oz~rkSfqoAXlK5 zKxn3w#l2VrY>VKlI|bm9Kq^3jK=MH7x!|EdqCkUyq=AM5p?~X?0}=-s0)#$_KvF=% zfP{bs0!aWV1Bn3*1}fT2u9E{d5iS4|`EVe3IvO9$tt7miibsLNfq3y)3BCd;J4hY~ z#G6;)EDeupi;E5rkr0*?k`j~_=u3&t8N7KIohQ&af_H8}HG<9qXzqt6^`UNPP^UDg z8yeIH4cdtYZ9#+fp+OtapzUbTUNmSs@C7IeC>^K>s0rxrj^Fb~d82$$o+v+*7Xt|8 z!31&wiUKMEf(oZa{r_NqQBCSoUzBiU3LWsbKK%}7D1{fyLVhq)Xu@dmf|*zodP@MD zG1!2DVdnD(*%PoY%%+-fM$rUMwV?O;!iRVGfOZgQvLQ?tbbgPw@ny3EjRO4LywFN$ zv2&1@GptOE;6(s(EOGW>8~XbGMS~YFYbVS^)sRi`_8L;Iq@m>fJtt+t!~YQO;_Sw7 z_Vo>Lg(VSM33XES^Lu)Ab+c-H!y3yA@1E`*xIAl<37kn6!Yr{6T4*}ZA}FIXoNaxf zqzo8w0q~9L%nPs=#Q4JZY8>YZ^+7^iaX16&k_|P9^a3CSNymVZY6xMza7K5=8Ws@i z2ImWu1L~QuwhIUe3GjozOAQF5`FXj)nwmyi#dZw|2x5c;1TcI9{5{aR(aYbXPsZg9 z3UZEM__M`Is1CKt?&wA2RTEHP-?W0h(I=<8CpPS$cg~>6+zDa9#DHUT0n>= zJBU&+S-6n4WZ?pu*#c9V@tnEXgs~T@QI}9uMYaI}y&c`e#@Gz1%F5Z*#|pX5%WyHZ z#9rX+hwU4NhIk@xkTNp3XrVc_YwqRB_77&$OnCLr2=iq7Gf=Tn`}sNhd%3fNLl}5p zV019;FZoTMZUj3BA#9!(ra=LIR?fI_VY!dn*q`zt#MvVlX9{0`$Pa3PftwpQeQ&Oy z|9d(4^9{COhd861iN4HTo&Eg-LKq(G5C$|zD6RvPHx-UIBZ43=s+ocr0q(FZg7z%X zMg~+;h%>Zm5cbzU)EC$HSV+$^790T@;beb<0pVeuXyb%eZ8VxD3WQ?@!`B(A530y* zIs*)Z`m@6WVXVL|3>DvBp1DY4wAN%hczKH))AV#)b*AXJO=9a$b)TfCujf2%$`t2m zF6>E@-E?*I+;w#ICb_sz(qZUoP1S-4o9cgzIhGbP7=EFUwF{e}9d2R@UvuW5FH?q> zJHx|k6&v>hp1v=x318aGP=7Cfm=mEBuV%Z=riBEBvY~^cYQlBk?(7TWqb~r}4WGyx z_q_`Kp?)r~57aAJt?nHl$FKc=-p0hM<~&bQ2hm zZ~_Bn8RtHGq15~l65xXi#48WUcLvNWRBgL?d3c2|oZX=$jIo-iDe>{|^tJxC{#Xs< zpeAvUKQr(kz#lr*f5?xQgc0oJfm^AsUCF#Uo#E#dj0dQzZvf^iLjyukC+C%ir#IFi zbZl=wa1VepP8f7Omk7pWh9^55x;)fM@1Xpf^ueL9^XGv!To-8=8)<86X#qDiHT_$g z{Z;zaFVCNUwnrR9S?N<*%`r9oTRZLnK`wCWfvL*X(>cf)1{8D)+_)|<6$Zng!&A>+ z>I04Jpa5UKREspU;b5pQSY$q~w^Zz4SLZ;esE`1LLnw;JPW(;%{K1|ML*2%b^=EtV zay2=AZ?8Ytn*{c3?fz_U(tot4%TPD@Cwsd8(cWaRXKDLq|0e%OdsD#P0_#89gO|g} z@h|I7kD+d8H2=@`;AQ*&WN#`%eU8aL^cQ$}`#;&!2YWVuc26J8dJZmN@?VyB8bh7+ z56v+R+e1^*zqDt_P&YUIvww!z9-6BDrM)=}^~L|--yBkT|K6SvL*4Wr{4>J-x&M26 z#te0%g?}!uF}8=Uwf<#!P0)PsXL~09wY;Wa&+O0k$ef9c{yYD4VE!{UH~FJMo&Pxh z!Hqd}VyP#85`;T+1`Jg|8!vfGd7z1XM6u~{?mc^ zZ-L>T=PRB6IRELu{AaUt!Jqy6kMkegWQFs`oIl(9kMo}n%zs9P|KK0m>cGdp?9VX& znOOYUy=gpi|8{)9{AaW1AIfXUGx#t4gZaG2*%RZ_5kw z-`sz&XZ&C7!Th)IAME|t`A-MtzeWFG&-5?lgy#S>;hND8uIU!pnriC9B{05TCi@mM zU0_K)yKlFmcbymti=BW#vXo!u$O!Wa@r2a}xtL`*2YH10q2(eDCRIYMFHt(YR8$|w z9}DYz7jIboF?`tMHaSlYX2bf2f4_iQHwD10a(B39?_F7$GyFoCqMdEo2UWQu$JD7o%$nLN#a)qmWR1n_k7S0>g!k7UY6=)&G z+o<3xAJj@P`}gvpeU9F%Xi`rT7_e=@@Cs%i5B?wS-Ulwu>P+-M^D;~(6G8w<1jINX ziG(I}f+R+a$&ippY!XL8Vzf~p{1KGE2ty>+y2Q1;saIR-&)T%LU1D3W^;$P|tJivM zm)Pj0UF)Sb_FAvC=tkGNYFTT0)z$X*ea<;AyfYaR+h6zoK6?kA_j%59p7a0zbIyC- zT`lpC_OmFTR1}$Lsp#`oFZhDd(~SSp;IUT>&RJ~k;SxPkD=TX2OqIWoUhkINZo+X^ zNt4>8gE-dfSg@>b#jl}X8h`vYoO`T!e3uD7+GcRr;-Q_!Jknxt$M+nq4~$rI^A(2A z#);;KcNm=Waf2h589a8W!9x~DEDlSg_;tGZQe)&|77tr~bdljtEHL=tY53#Q@Pjs; zss2PPe|TxK|21KSE>)>}rpfp1)A%>?E0e#G<)$1TKGm2fmKk%jYOpd+CDsr8cl9({ zw-mOmrUTtlcuGAXY6Z6@c(#V@*4_bEEucnhJfb!{HqmswLGKmo9=Ng#4WHKT zS(WIC^k<^koYb79xOcT?#?L8rnTqvw?Pir<8{=9Y`E9BDn5#n6<~mlyeO*%;T2c3H zYVR4?kZ4B}tQ7i5QJ_nAqkn6A+uB79cuAL0V7TT~`%NvanicDlVoU7V(9=MP3gtrc5y=$?S$X@9lHp1RDi=22^8;^H)8RdF^WACP3bXr;&d(jrLWzU2| zWHKHYlTw?gR=WmvO{RHEZ%5+VmOkA#h)i93N6SEWg5t8+{oSbf1Xn8287I2pYRf=8-rI-zaYN50 z($nSov#qONj%ID>v5bwjWo=<(>2BYWAiFPN@Y8PM-R)LtLr+`#;KyVv+tS%P(A~!K z+J^RyzV`mkH3MuC^eF9;+}N9xJx zu7+KkYrD~xN#d1SPrj~i+12IdyqLEn_DuSx%~Qpw<+qZWK2hcq;za`qp&C28TCeVD z@1HEsM%47Ejr-ZW5uL7_EeyBlvS8n%h4I!5_oBy^q6shPuMFeHmErUvzP8bcVH3W# zx92RapfygVU)^B#55l?;x9LW=Qxx%2!Dy!^YX3Gmy0cs$5oepj%|^WsF*!cl$%1!) zP8z?>#KCLrnOF68P4=gR(Vy^`Qzi|4C@%UwvQu3PuDotRq-sDZiI_RUiLM;?D=PJ$ zs;a84jL086`Bj~LZe`W7WiF^Q&pb2S->bV%rXGFmiGe<{vQ2MHtz6KyDy&`M|4z8! z1@$!xHq|WHqLkQ?$kf_|NS?1LE^A+=yhg`UV<+s7VT zPlpPJ!>W7{_LYW@8>j{SuKx?Fy1Uyd7o0u$4C5I;+#UB5{(?yL_9gPbg9S^@Hj^f? zu)lTe_HJaa?hAF{R*vJ{%BkK?vIM9-({<|ombN3usvjZ{8qXw(Y(6x zH11q(NcFJO>6Pf?sOWB~*e)BN`}g#B_cD*|L0>NZ#2PlJjqSVJyFDFf!}_&sdsHj% zvg)d88$aVRyt}Iow?bdd^CJHLf z_GJQvk&!bdNqkSQYh(PGOvjXnwjd!g4yYSG+TM-&yth)POkwth57Ug)XD#SIOXn>a z+SkkeAvTO&%u~C%nTa>GweK9zGkj~N>h)@mteGK*eH$d$o$T$SU&DR3WSs~ly38IR zvwch9??8|4wcNeAp5A0mUwelZW?Ew@6YsY6ZpMO1Z^(~iPNGw~#jeSD0AVI^yrG!5 zvz}>dV{6d(-$N%lWzu$&=@1ER@8P)q#Rpix*nLJLm)^$Z?&|89+Jx5rrniYKtvb7U z+46H%oLjqQZQZ&_#oF4wJ@Lc^?TLEkb4<-RLfyex^L94*OrNnX-mOJ?n>N*nvPK(f zTdx`D>T6%iSkykq%FE*-Nxrs!4Xe{_dLGndW>DI_*=dy^liW&rwY}KX$pLMz&r0ps zv3iHdNY$&+6#WdXeg~)RCoav&4Aja@tY!_OG?gIyq=w6LyaUwDh%hGKXOsFTpl7d*5Lu zZSHblL0hGw2x^VYI#)#dQ`z5U=D3sLwVf!O6ZxOyaoi@Ni%7F5pX~5b;;q|jn3hYu zNRF_L5Am*(Hr~@WGbo5O_b}On^`s<9`~$Ly4%8{DPSkLgCz?avpsAa_FpZLI$oX?j?7lv z1&^KuN%vM6j-i=AFJc<1jte6yTYkES?nSSn(;a39T4v^^)9zx6FVWS}MJHaqwGowf zqLULBWWMarvun?^k*Qd`v&CKGO>PJFv*okovc=(+CD$zuN0ywsXmPl6Ph1W+lrMpn zcS2ZkboDYyR4$s#-}LF}>76_YF?BFOyYa{;6@}^6Mad!sYU4YZM1A-~7oo?!Ew7aP zVebdfsy;&#y#E}dGgmDYr-WB`<+K0Zd1>2&MQNyA40CG9RLY`3IJ?Q*F! zJQN${T+=t;wqK_h+QHe+*=lvSR*{+l_xUO1-@#mmXik$qljk*< z+sdk?tEYvTuTf#>15e_$=)Ov)ygE_;FzMfPep!85s&~_s-|>-|CY{ry@Be6jFK1Z# zPy$n5rtA4Xbfi+{471do@Kqql$2eQ!KDe$ z9W&hmXrZoa-Q4ko@Ei=}Yrn=e_rEhBdM$^Xz zg;{)|L9^|$bZXziQ?b)E+LO*-+S*&Y84YCf+0}}t^G7$kq@1HtmD+uWQpOW`m%y&8 z^f=VJ%hj^8teyOM%G2t_rK*LQY$lCotU0gYptEPSd4f2}#P)ax?qTbeKYaoF7n{)N ztp>B}KB?p*p!;c8HIc4wHlElBr>0|?n4ciN zw;ydknJI}C!{xFbd$F)QW*7toMD$GE$@z?65)UaFOV3&k}~VW`9=6_ zC&{j4xJ!1|w5CbI(mtW=uH?Q8qbP7k*;2jdHr0YFRppgkax4;k+-|LbJwbX~Qi9Wq zA<=Gm!%R0&PU?$}i;o#vjk3ZFe{R$D#6t_|qPMjYjZohnw`YlwNGWs`foRx+)VrP_ubsbl>Y>Nks$>ZACiReC2-nW0t`=c2AOF?IE4F4qR{t>;tz zo>-NpoqEze!KvXKTLRkDP7b_!~6fJi#n66oq32FNIR9CJd0MA6(KdAtoQl3xc=O+6)l)Q2%BSVT`lj}fN zPFh+TIX#5xwTR@U{5&jM93Ro zeP{)FV-^qT`OGe&n%tkM?P*)5WlXf(c)7<#`62wXdJ%JCDp{Th zt=-SF)z7VeHu$9Ywf4rlCO5*jZmGRsT}?Rk_2ux#mvmmvW2ZcJ%cCp2e#6FfLiL90 zHZ-hT+jvpKrI#xXV2K(=-q>TV&kiIjH~m^3lXU2TfhMU^XWX^3NvgY!o2R0-jQ*PXR)#;87Md;JQ*4sa*1^2H3b@_%FqYtk+YIv;oz zyJu7EX2Tyu{B`VJPqE9!&ij+kfBt*?a$@E_ja0wKx0&-NuUedHul}9lb6hwnjD0Vg zcnw>;?{X9W;Y$qPh)0s57rWT6>VKA@xCV`o+7s&bNFb68Uar96WdXbTW_{YSmG~tm>lQD2zIWlHy+I?;hiiFl9qap z8`n<>P{I)ZxNGIO@Q+~U{=DHon<6`1`X!tr9$9a=;=pTz#* zlh{uex8N@_)IGouupNj1C;EL@*)jYHKS$l3#=q(8>T%=!#WC+s;fZ}JFV>L0y^N-~ zO;^U^pVX5_^UuTM(!auj|dGl{5MJ}gNZVom-uiQH+awA)el-#!^KQTpt zBPnu&$hqNSJt=oEMeYc4Za?qJ#URF0&2LUmCvn z6HVifgj??6yJZQR^ZtG%{T%OtiZSWum6N_o`X%0tOp+0US5Eq%AoZJfB~K_PeUS7w zygPY9Iq8F>zu{fV6Us>+B>fHVR-RB!`k+qac-QiTa?%G$f5W?#Y2^;Wm2#FoNctPz zWlbyRGNlbkd*K~dmou8f2e^VoUA6~DwC@7lWJlla*bUi~HM z!&R)2)BPlzBOX7z;cCBd$Ga3sP8+t=ZF%mZ`rM~hFWdA$-hcY)Q#mF7BJS4K?AXdp ze*HUI+BiM4g9E}>bJgOGR2|w5^J*yPDX!kZ`S0WHIefRn=(~<{I=H-gM+0w)a)|Oc zca`zBojRVpHphLu=H63zNAH5QjT_~H&?udLrM$sX*48D0(YfS#W`^bM>Ji>>5%mdd znLTadPQ~b71Moz-*HWhMIY9@Y?=v*~Tra-;B8 zd;(sdP-bA%=tYF1Y`SNZD# zk|p0@JPw&kU;kwmB-lFd8dr^L~Q6X81<%8vuz9KV`F7;~y- z#Y-}|^|@_^nmCoQ2B^myvMt5zD3v1P3;9*3I-o*Tfw=D@0re5$9<1`mGh&Vj=SITG z3aG5A;6z~D@J(2=)%a;jU0uw5zB(-NJC(=$*CS)XnxVrgER=BbROsnIv*bbXKWA`% zJ$bMIVlm+8JdXw*QkBjEM;W)=eNQ~yv_{WV>QbN@aY?J!Z1N_c^QO?|mz3)evdy0o z|L3W~QtsZa4y$}$kqX9VGzVA&N?h*2`Z0;icOd=|2hkwFHBt?Rv>}?kiE833 z_8$&>I=DOVBi31S2$MXXL!L^x6fT^p3aS^W0$-`hnh1@1!^wG-Xi#s<3n6NOEKfLl zO*l5Vs0lm6gq`<*Dsn3P<$))I`$9umeW7<}5?xhTPMvEjrQVgOB44q}9?y!;vT3>= z@1K)2eG1}l0Fx$@3>%0^U^M$yM?L3M`UeAtgEvW<3Qy-Qa9^IH^qZZC$)hLnf~uj) zpMiJ@pw3QZOYm;B(5d!+pZmqn;9l|SxoS4<199Uv_-l{bTnvaWM*Js?k%gZ6DCHHw zy7OEfs{tqb0a#8mRjsf*wCvQg^L%%!SraqIXN+dX{mmH>Cnn|BiRhX5wPFCG@3jo| z*Fa-1bTHymwR38Qcp4X{o7&l{o}9D^8Jm!CleMbobl108#%7jrlch~#RpNDgrw$<7xXIQw2TakIIDKMQ zoBfhOs~*I^%Ad*OpXBjdd1TDzaf&<^%Hv#lY?Mb651o`lbG|djVV!s#nc(CO-2nfZ z^2^#C=a_#-;HluMtlP5h&o7^Me{uQz`^(A~-oJQrWqo8t<)@tL`sFKDoa?N-Y*lHr zbWLep`TFwu@(aTo>tdA+hhyKK?KEUp=2YZW&5ION7RBaA!j+}5g^}{g3aT9K)ls2_ zKuovQL_kSy{}EW>_DddfVI*tW8Pz{k1!te)d&0DmvB0RVZMr;H{0rq7!0kGSIj_^1 z0@3UVQc|u9_0TD%Q1d;7T9Ts+wIoMp>7g8*m%hwtu+FIw4_>4)N%b(E@AYfXeg0Q23cCew9Jgfu&WSS$ z*XGrU{K)c0v;ckli_SG!jZa2)-0rm0deyUTMKY^A^rO z7~WA{QStp5RSk<9D}Lf%@$;I}mAh9}tcX^$9tH-%v0@i)*mmvH{R0VCzYk$zS{~kne1p7)= zChhN3^aKs2N09MN=0b%<0X3^(#<*^aj2|xFw=SgC(I-Y511cvmQ{^ybw?<$U*-X{LcBzYuviXeN(CxFm;i{P(QuA!eYPav)&5CB@HqWDhWC&*p{!j z!%B?N_)x3%P@w|9$a}Etn{Av`xF6VJ4 zke~g$cyq9ZY93f6{bifbErBmf6O2_G!%9IDSIN`otg0=|Q16Yh2Jtze!9aKL8`*!z zyCPrZ1}Wp)Oc_f!k4iW)K0glOA7tQj^K^!i=J2{2quzc3QPD7O7%Q-%F|P$ zqV(NmzsXQ!sVZLr(EwzHMt&(B^-!5l#jYBKj#csX6gcA*J~jN_kZ|&zP%&qlf0IK| zUKnat)mbw6E}YA}>;Y2`rQVzJpQ9#vd6z%V931aUl*BESN8Wg33g^q1&NtJTv(4$7 zrR&5B@xOAWI=yX!I=%V=b-Hg&(s=tiemi(w{yT_W6B%k@mSpx`r_P{NN67QaXXWuK z4_#idEBt3-&gb#66Q)Q-0KW zB`ca;p3|5&oFADND=021D(Ld(MT%dVKP+8#S<%9xvR(f9uPSf-y@x0_f18I>X6H1_ zGpm``FsIS;&&TK|^jOWDtRWDW`tdyC? z^S>V0;lI>z>VommzO47McjsJ|{rP|s$-6864F~iM+0!>=I)^l6t2wvL((~{Uf?tDO z`L`hc7I3nM%6NW;f=oA$8AIeok^cq6D*$sKYU8Mm%4p~&^|Z5I_4(IO4Q$<;f#O%G zn*g_+c+F-`JWGZ8OurMsov$FI3fg9=0@f1+^qU1$`4f5LIdN$}d8{Mys%NXbK0VXZ z^XRs>GWc=_agsUHE)4!BogvJ*^Jl5~ZDBRP`V79=QlRoCa>lbq&HPZxU_YYT%>jte z51ei42`8i$ogs1emBn0-<1*4u5&~0!dl{S+<|9Ew~9g z$2YVOZuX}#)a_2Gzc_G1u)?{O(T;MHIapO7R>(Cug}#p**Y+f?x8ubcA94LE#N$AA zFi*nT>)-sW4ouU!Mh`tF7N#@W>!0`2Kp;%*zEG9=*VDU|XV(WRf)#Qhk51QZ$EWLk zyk9Z%cl7DNX@EbNL;Z5{AxTDLA*FY~Q4cwLGgRU7*=j*&Se3MWOqEn$s7mNxPnpOa zpEEi;o<(JnxW{n!p2Yo9h`$3$L$OaW)Xi8CyilSV)%}F&4_i!cG4x}T2I(R#YxLrb zoKNXKWUuLN(>dFDX@+zD++bDCg?aPyi}QZrcdCNxL#0^-+3kL3MbQn#J@Xfb=a&|T zpUHFNB1%6}Y z<#iu&oXp&^uybeGLZ`g!1IPJwcDgM5l;2rgbYpSH{L*ki>F?5JpfA&jEL>k+T2Zk0 zR{HRw^_8WOf~wmlsT(J$5%NyP{XQombtLh>ZCm^##7%&s=M%9&om%hI(?+uRZq^#z z-;6rV^ieAUY6au`T;`majk8tG^XO85TX0&UScJ%26h2do6g%{!9$BNWFnxJp9m@;?$c&PFX`Hd z*iPz6`BsQd03FpY>7w+yWT;xEUn5!9scNUee_x=|&y-O51JSu?9ZIvA3-JxJW87r~ z4C00K#a^>7U-VTo(N}>P`}3<9cbIzl30V62F!I_T=JtHtP0a;dU5wY9tH%$%7t45% zcbgeMq|eQImp*qckF$V4NP637jeahd+7^7?Dffp1Usi?10p{a5YW8ic^y5Zfv=Jw3 z3BUPb2NHiL*9YA5iPtGF2^Qp82+4jlaS8^(J~y?H6?dp2A-0M6w-WdSuO*nVb(&mId!+ z@GVEmvIL?WVBJDl#HY?m%5On=9+xe>z?g6StIUSAUd^sDgWlc z?;J(jA{Q9{PvM(`)V))D^OE#XQVzG{r2MNq?gfk<$Mk_i*-QAkq_fa3Yrc(U-A7qu zKVa8*R^Re0&Ke~A7a`s>eh~j5T^FNSA2_-iHmD7Lf33u2x^#s9&E~@*hzQ_>BpuP< zCo>#z?cjPkw>!LU+c5;MnR0Z3FmLy|`>MG6{D*S)r0eb(h!+9B)=g=BQZ)3k<6P*U zOz_kkAv8Hh$a>%QOLHNL0VgEd-l+dJ=Q5(JChH$_ppta~wJyQ;`>1D`jhsr&@~K5Y z8P0T{B=rw_b(|d@d1RCNy14D@+WhKlsn_&rvDrTLMPShN7dyAFOSWUa?UD7(LO-~M zIx%YWgC@SSC*wPw&BwXt_|%x|uZ}N$DDh3UqrG@!b$^vWuU+j!-w;x#w(-SkbjGLN zre^|Uvqxv?bw}d|c3#l}5eFP56~~ja}#NUcOotu zCo8@M@c?iL2rv<(B9BHL<@g_gfrs6ANcpO}oXh;h&Np?xYSKTUH5n0`uZQV-5`0mS zG=>X&Y9}y;54w*{GShz`tB{raNRpMY$m7pMp-)v6P5F~-PWC6sF2$eG)A%BH@svNw z=45}ocDkH*qQ@Aw<*fY`JCQ8{a9^^~PEB z`yq8o)trgh%{l#X!B}|{NF2UGxO!6^XxE zznw)~=x+~asThikzXFD}Tf&F0;H$)}6g&DwkF0Nw-kY1+pO8JZJig7kGdn)JIV(1c zzCxFKgYadI&H9?M%B%9Ov5%iG)H{ANU$_{e4G4rrRxo#}8mb|Ix&&gO3H52GndRW- zsX5v~gdPXnIhxm;n;&4V7h;~re6Jx#_pA5eb@_ulN;3SaB0Iboy-Y+NQF+AV(JYUC zd3;(PU*hp4Cw#U~4Xt`u82>1b7v%A;^6)R=ajHBjRTNYdRTNjuuLxI^R+LpNtSDbzky|!fl_kzmWo^q<8T!#O zU!^LTm^Yq3mN)9^M-xQ9{F6K$1mDZ~SMt~-kL!8-VLFTK9#!u|P$NWw zkp>+LtdrG>pqIME`3z4^b>uaeN6fZDT~Dc z;<=2+6+ljQ?4#7tW_iTrF(i*+d3;?S56R;R9(i}DVyBo)zA;!D+MIPm&UUG*W-JS; z2@Z2C+L}D3h`A9+5R9ZF)$DbnbxI9^i0NZJ`|*rTu}gfaA2@9N@tVyzJzLFg&}%re zFW8o)Mv?#Dz}wbMvYCloicD_4^iij%{Jvz3h~(Ff8RSL$6Va1I4JY)}Sws=e!}!RQYCPs2OWA;!ZPpSm0L$#~2eR zw;??L9&jH)>Aa=y7PHgL*e^WXCY$ZJft*TlUsy3q6<04%#pnf+Q)TM=3g#p~#=r7f zhzkL~(a{}nvc4KnKS%v0D!5X=@h5^m3)A{Dgj4oRRQYEh_5%UqPl;b^bYgk82GmaN zlPL8rR2BY;fbp{wKMT_Oc@%FRk+}U5;uXNgt;NY=X7;tIxSccW@r6H}@B6ruJ27W` z_Sme^nekxrjEH;YqL{tFALcRtUIejzwqJb$_>_}lHtiSb{oTE5^#1OlGxWmp(CPQe z>hRF%+O+o!oraRL^!{w^ncCzF#6!|A)K=BV-v5gWv^R&=Yj1p+-*KLC#M+m8c}7+h z>N7DMD%MVGi@%^XTD6O{PHb=P4LwNcuJF)lM&h&u+V!C&TEdrSxaU2fLp;w!V1`C} z^ZK;c=e=Z*VH&&ImG^1~D-F|}0PqEkgO$dCwKHcDYR@+g&Nm^L!vwyW#=-f<-mv2Zw4*2(yj5+1f#EjdoCL?0hElL+2U?=NbnAExFg8ZZH8ISh&oQXdhU(M$le! zz`-}`0d2CI=^^d#z*!F((X))G*)#X$XwllGI*bFhyyj>ZwUL)}mPCx**_wIiquO-H zGMDQp9$2oKC04|ER(q~-ZlYgXY22+aX@eTNCOa~TdKYbrD z?&j-+*|_-p-*iT=qmwCLBYu}GSfK}|T2rrmCc zNs@~UlU5~VXS_ZXF-()cKGP)}T56akW36OurDocUB}y_rkfxj+WY;R4>;q*cy!rZ^ z#f!#NQua+pmutxyL5E6jc=Q}}CmA`p{-txa&e2w;EtOPj=OxQ^9XVu5@W8U&H>^ND zHz!zqk4rgDU3)W>F%MRzP&pVvIJ@32o9xiyhXh-qu^XrP2D-Kc%{SNGvMBSj&BJxKy?;m1{ul1(`10~Q zca9X@^}8_VyB-n;z%=)vXR-S^P=!#{rHiAN`Xu=3GdhezWhPmF%md2Hoq>~Q3X zy2BMm*8I5n$iXM?c}5v}KVR{}6XPphYCiVk zR~8<7=+y^aD}8;{M9o{ve_!)XhL<@TGR}2&EOT0% z^PQqv=e6^lM6L7s`A&45bM$;?`2yz)flHmD%bm6sr~Y#1%k554ms8X3Y~JNu%r@@l zXE@u+Dw*q7ag@2TD#lpjo1MXVvH~SzhtF^H(Pl5&todXv(8<}z@@sfp5BRfl&Sk(4 z^I$+4lz}~0pVOP#(-t>(ikolpxDRmjmRqxbGqWj?pDpLu3J5n}$vHNWe^TV1;qek+ z^ri=^q#92IYSc{}(9_|_S-@g72feGicO!0ttn?%{#?|X6;R_lU1*7 zVHI~VdXT`vVBrFExcHN-y)tuz9eDF~!duY=(GT1R1cEt5u?Kvrgbi%vd;$*3@nLcy z)a6%W&bt}vuE6I5b`O*NOXel+9_D=r>pjc|As!W%Avtd$`bqtr^>q8R&m*SyX^r`$b5cM#>`Qw zn4^@ZoudpQUM2IMy%1joLT27mYdX2+>pWTR&;NF&+U@RY2FpYBdKzT+PI6V~0d!1q z7ATRU#vW$g{5_xgE?&xfFUf3W)FVE16X42t&3bP6nAN4p`Q1d8iu`x?xsRn%f3u-afY~cic@=`0rWI0IuIjX6tus z)TfRDu1u2I$_yQ%T|PD?<28G9c6vXjMAooxi_UJQI*6O60CkEH;90?mXF!isF%-E?(vNHeSmh>HtwepD)-qbf-k8-BI@v zorTV?rF*ja1k?Xbp1WHdP>Wf6hA3lwzFW#2z1UoIi<9N9>mBDapYo~j{~-PZA$8en z_J#fITL$Eed)#-LU!B%)YJ6Vv+=#D8&b!N*3eLGV&fr`{KowQZ8}}_i7m+|uLD;y7 z_{wIAjwXzbCS2x=gtaD;zFXJ1>Sf``Gw5l5?o$&sY_GX+{tT6K7rNas_k^$6dt~cY zl`z)NMu!_boUac4PoK(s)~6P;+a>Y$ntf#V(I=);~Rf&U4&}Nqv!V z)s#n$n)o&4@f!V>_*LYmj8Eb0W1i-W#;3?&+M5t6s?2xcN%2`r=v5 zavoief1DpJ&*iZI2iut=u|3ZI zH^k+D(U-mG1nyRkICRMT3eU~@W_fj!Q}XpfU!#*WYU+K{VVvE@nzQ^%5RU;_dbPPX zQ!f*J0dv&X3=%$=49vcaRU6OakXos_#_#O#FU<&qgGaJH$PE3`3Er9+xZH%R*Yo9! zNAuH;M?v%mFA=};T!>XbwoZR@l^iWDF-L|EI65=p-Ev$ouBQX`>`Ko4{yPJ=I>E)E z((E;XasP|t0%`pS?XPW+Hh3*(n-WU$S;}>o4Jy;O?^f}5eQNo?F=i2@v=OhluyO`v zwb(h`SMIp;6mcKP#qYC2s?^sSNIknJ_KLTE3Yj5=d>hohLiS_ucbs!azXOC8yp$Lk zeUa&hw7!JCLS;Fs2YB1Y$7?p{-Z=Z#n0)TdbvriOQS-B>+HrlZV!HXgiRt#RJ>qvtg5vlOWU^s!T?CCnUj9A`I*AHRl}061%dA7lQb&If3{ zRAI$TRh&T2)mDbS>rC25Sc#5a!Y^iAc}v_bfQSO-4Bm_8*w(0S06t?FB2Af&Q|tIg z1A{?dMu3xF%A7HogRYn}k$qEVOyYP|zK6$O0Zw*gCA)}pDLb4FTPM-S>3yR80k!|_ zkjiCz)aOMi9Q89`AI?hH$5QYW`Fb#kPaVchI=jLJGt{YxW$ag1t5bau-5w>Ke$JNn z(J;zqL!1Vfbwh1t%`iSkgI91Ysm*^bDI&iL95wSTbB<{xqG$)qUcx#Ifp4g=^GcFT zvsb3emATiPB}<&I&T3n!&Z<67o#m@e+9T2BkN9m8uWv#;0GN20g~&+OZuKND=)95X z{4`T-luoYjG&zI0Sh?>5J&%(HasM*J8-VGL5BUQtsXD|#pOs!oA9Eh#!SbZKS8%#t z-6d{IAeI4~Ws<%&pu60?nX8UaYT0+G>zp6^UkKdDiB_9Gaz-w(j&#+LuC=6V<#Fjs z;N5fL_a`B~1>|VI_nOY#XLNABz^eT7t#)s3=9eY#y_tKRoT3p9->mmPo)K7=5&WqW zI+(R0@Fgd!I`Bczf4|KKovy1%*HxseEh$|S1Xn~!mcI*8HQx>UMWZZxai$($eCBnZFa|9(y~1S>-$9JXx8xi|aQY%vrro~cf&zR`D@?>b*< zdyEt0V>G<-JrG|2Oq)7n>e`T5V`knZ$*s-gZG(-@<&M8OIMeU^g3boNS#O>y`z}*E zn4I`A?e$5#yIJbvGZ3#&`aPySjdr|4c7AsLDt04=)sGyi&aD~2JsHk(fd!7kF6tV` ztl1XR2b88ABNy{NNJz?U8N`)-0ms3Ya=Oq0?^`@dxvEtH+$T{4r;jKd>v{yiCUyV7Rk$^&DAC z>b<`L=GT{rUnLObfN4AN;6}C1ac)-~;zrJ`R2RBuSK>3819}eAhF>9(+~cdU==fv%%f;#j@u>KRnHz!+m)5nE3l3#4muX?04{{a-2tl z)R@ub^P?H+GTl~8-upyx<1cia{ehCq;AMeFLholS@`pa@=N*i(tSpC<-J~PH*-X|1 zG6&2m;Vut3r#=^gGiEDEr#|=8#|aZTcQ-Gf=DnRwpUgQL&W4P4u?V_~aTsxP?unPJ zvD4@7Ja*pqJ>$qW5Abl7t8_YxVXU;y;!7fPms2<|$etl*Q5ur>3?IgN#p66)0Dc2x zg(BT_*fk>r9F45FK~5}I%0o^*yn+Ba$3b%F^O@N%sYd6az_b31q4KOM$%93-tF{Vt zYU3ithjQ8&`!#WUrjk1E&JhmwI_jSR?;Js!;e|`hJS5pn1~NxTaz}VxbFL@yTmL-TrU^fw;v6o%74W_%mCR%Q;gLz28;mEPReql!Zj}0zc_!l?5X>GY zyvjf=kHtK$)0HZxhtcnAyua~y2AxsxTN%!Zpz`s8Oet@a`$?WY7oE72K7TuX{w4JJ zvE%yuPQ1Sk+45^3ZZ2bB(tUo3vqr*r(e(NBtzxn-S-u$5o$&!P?{JD0bLZ*#ud4mu?neX>z7rf2|!h533*Y>tJn%IIP=yNyc5`+&VD4mZ0Xfn9UbT@;56=7ay${s{B4jv8(n))}S&kTd{EE(a4%r zWzmIeR;*uKU%qj0^TLMZ8}DEFfz$B4%%W@j`Oo;(#&A}a?T@D416{em_DAa=E&~D~ zSuL4-wiCm>PS#z{2FG6$DD`t%6h)p}U$#(R8mKQ9Q(rDTuDaP&jZ*dI$ zI9`U&rpnlwIA-=F_Xc(Gj@3L#3Dw#XstDc{S~fGQBl~MP+p~WiP`}T*C2vD!eqqME z+Y62q6%}{Szc3st?JRr4DV@LYx}vi3#TB2=Ha%S4RG-dE4`EFB&Q?E&7pveto#6Y_GGhq3B;{sEz0%s^qNE0?rzhsj}))RmMB^ z-m^wBk3L2+pO${^4T$V=CNVnA7X}8!P?=LAhE-dPfCr&=9!@`8s4Nje%jmui1 zWG813I9nGwDrcQT+@I>GQ;#}|nS{xYwprTzGkC?qBR|A`%52Zw;DVb)Ry!v_b34%-PVxnQG)w7RkWF5|?v=>KxATR&i#fh;?Nq z;b=ST59_#+H`u4+dHwOt&rT?~;YGkJe8sODD{O%#mJ8`X2gyv#9uR<}5$ir?nG=3_oJ=P>7zmTx6iL79I zwu#ebO3n1MUsF2e??v=0zX1LLS;4wbipem@-qafKOrM&$6RhjWY*SX!*Yuh9#b@gM z)hS(+#DUtceljORJ)M)Geuck+1G&8a0=Q;Vzp1O$nQBfRI;^>zx2t|c&GkKO_IpL= zUpwKZ)P7 z!mm8uPVQ@#pL?Gguj8n3>zB6RkpsxR%JTEdg}DPK_2=HP?3Eizk&_ZVNPMP?llbYT zr#wxZ#a`|Wl%F@8_+rVqsh^~~Q{1QV!}WhSjh)1={G;3t7fJ6{>|-afA3TA*#8B>| zl%E@adA~U4)0&m^kb5TO=an00dY$@{dn@JVl{=V5PTpgb-;p%w7QSo$>PhT_q%ZX+ z`4T42rpq^xmwPVd=f*P%J$|ill7DVIl$1frPuHK5gd_K4%Fhi)^0#@HW+go$Y2+el z;OJ;uGH9$x86?BT_#r{qf4 za|H6@40UAL6t5Fr&K6!FT0X_Q1>VE(?(xVSfj7~>UV=yN@CAN#4|1=1%CBHqtAJ{OTwD<*! zU$fX>W8{l1uCln^;wvmpSbVd^cUpXp#V=U=w#CZEC&%J)i=!4_X7N=P-)Qk2LvlhQ@@gFSC+id(>Y;n}$9Ts0_@nT^Ns(b7Qb)t@>Pbv)8d;g{)WY)7QbzA-fAOXXK{zc_gVa&#ml2c?naBBvN*fe z@Hbn0lf@Gj*R3)3`z`*t#qV3Zeyy?pti{JH4%8Wby~V>8KV@;=IvcLVH(UIa#nm=H zBDP*OSe&rEbg#4ZtCgX;k0H)KLrL!yTjGpjd^mlSziU5Y z%@0|8*y5)xe%|8OY&qR*%{N%Q-{Q~O_mK#OBX_Yku0=-(c~lE&pa~ZnowNEnZ>q?biNl z7FSySgf(Afu^a!WwJ);xeTxTezLeYYS!vw`E#Gzjw3R<%@iB{C`?oSS@nP7mHG2~6 zjlGxfjia@lEq&@r=YsacM!qBzHvF~ZV}hE{->IHA9D6^sl~lhlT#=xJThu=o zGq+PG`g-?hhw2%_BSK=1$wvuQZQZuo*akNipLJF@ZSQXHxiZn&)Gps1jP@tmqR~rh zx5w74sf)68_&Jf_Ygi(SryW*|U)nz+d`ny`2%uU!k2Rfp4 zTUVF0Qq`LheJx#y{%DC%@{fZt1?ZWlw)oPcNVM+#PN0p_CWhbk zt!`T1#dqL(+=@Wdw>EY4N^wWY)TT@7>&ew`N^F{FFjsdarixq2Z5K9?<88!|dIsOA zu2**V?riDqmTs**YLTv(YbB$$iQ}$a@#xYj@o%Yb_3AZUZAo%cwVFPLrTS6EYV4?m zCP~q{x~)x{cIt0(C!$dkv#MB%8e5*3r`1o^VrICE2~Lx+*F;_fg4Jw+(&B znj;lYa&R z>UZRjj1zxqv?N_pPLESg?Fn7hlU|&(dy%TMy}oHP;b(dC^rQ~m+$>6R^@5+H)Oh6_Zq;%xc0&exMmdVFd5Fa+{N&7as63GWWAgI5QdeeUOm4CKZ zO&99kEF*JuqP@HO&+vyvwYsb$&QR!W9#P%j&6gI|+A?ruXQHWnu(drdvnDq;bRYc! z@n>NCGnz94vd+sFjSqkF(5n00si9TXQF0gccMMMEWbcP96luSm8LK z@#DMHJgLrl_&9sAg`F%OOBo2b7~bXl%JlSw{3SX(gMsY+D;!S{*U7&|8#DlpET2_3mz8H<)Pe>8CD{ z@{O8r)*tRtVY6>bqK|+1`o@;}jh8Tu)Sf)3x_a6ZO+9=RMLlHbc%rvQU9zRB$(?7O z?ra_CYBQ5sZphW9#$G(r%Z*cwA{|zxd5>jpAs8mza+QGr~@=0y8H0rBX z>P)yKxry05Uu9vg%-*EoOty(8K7Gs;wx!4M+sq_cEmuwP0X~h(@XkFjgwoU>Z*T4D zU<%u**I<20tx^36R$x#o)voqkt>WVja=EQqGsA~)!y;Sw7?$7gR%lEX@= z_u6%C^Hu76@l%RHZCl&0b#vo}P3tJ7rllqiygb7>S2ejk;^f!HnZ9-Pbo7Gy+7knP zJ>0#gIvCko)nBO&=@8Uc)c{j?2vwjuWFaQG#>Bq|#mpil6Zf`(xSDNptgDwe6Q`c0 z-TiS&D$${?RUNuTqPbFJz-}geYM<(Wq_1KQ(gfLlb=UH0wMU06+?!R$wJh-n>#rru zmNr$Ung)89G+f=(!KzKEd8)}{%2Q@OAu~~>NGB1tONu7K>uB$5ijz+Lb@hbmXq6?i zQteVsiC#Xm%?;d!hP=X1tVh47620BM*S7bm7Hg~2ZiQzodSnICAyZoQIkD@JLOz?c zNarnSDO9`kY?QO$$LGwoHfz+WN-9z>c`G%xrL`|1vtm7qR2j#)>#)vts-|mA*dJHB zn3wim+lo>wqM8z{*$JDx(%E5*P1voMICh9xsSa`7ucNLiboq6)?usk*S(6UPxvI(3 za3Z!6X_*b-Ep@o*S_+}7=W6;n=v`Oym1uPiRNpS4J_6N&{-Hzk4>+J~wYi67s<_W2 zf3UW>zn|P4i1Tr1X-AR`J?+r0>nwoZ+tbl?B@M2rr-f|4R)%s)n4IpKR0g}CCeSEg|%_#?P@+@QVMhqIFMS_stFY( zr`kKE@`rHMupUdJw0C7eDaw0IMBrteB>4>{|a$Q{bB)wns|lhTCNvzVG839xC@ zS-+DH(z6@p=C=_wO-k}W(n;ww>7eP0BrM&`B_=KLt|hzrm++~oCFIhgBbirM{C$R5qZ;5-YQ$wICGX$JSLb`~4t!g=ulu6%-B&0iOCr#6*B{iw3 zah00jbN(+U?CrgJAimzNXVGuses3tn97P9D*svi4s7?@hkkN-`00+LfBa+BUB6oLrH^n`)Rdicd53@^mj@Hsf57gclZEH`obah9W=ylR=dt7Ck z_Bx%vAI_6$)3epMx1l%1`+5^7GrNzEhMP9Q>EhuoxIUB$)q0lB9~O(pWo$Y*@^eFP z|ITRrNy>FHUMEwKdlHyFJfo%W>YxuisgBs=*-7%t_;ymQf0BnMik}SpAJ(^Y{z$uO zWpmAwt!c}u>)v;yKlC93NP^ zaNK1jOSZn21Y1JKJ4>4`J6W_bG#y?#|1UPP9Njmiv#0-B!@h(0RI2U4rjeVJIiY>6 z*5Xea-rCwk_vBU2$|L1%|7jr;kC7|WOGkGEAS^Nxxi%#Y2r_kVi zfV{&s0)7b)dGB{3<$IC43OLpcUvLl52`zX47=#`M-vx-NV!pd;X3K++orpSi%qAp(9B5Pv4X{)L>=h0Xz=vxxG5j)K1eJP$nr zetiib^5FHHJ>C8)c?-T7kT?&6{{;~F3Gi>u=4>!B6X4%0vo!cO=U5v2{<-*xj9lbY z59sm&-vbo$+NE4A@jM{;HV(diy;61Xhrllb!uNi+Prl!`>;nAcOM-&W0~DX+i-PxF z!VDgI1RUAUVWHQ_A8-$#^9NjZDd(ew4;}&}K7x+`64n@a(PcId!5JTCrycnm@Vp(= zZRjxgZD0c0`#m`MUR>-7&i}tbzJa#_i=msrB`u^2Is$G5BrL(71P0*?{sM3d^ayxp zrztzZAZ``<#eV|cf%bm?Oum(N6EH|vf`16y0xkGiU<7(x@HNyu zXuCh7!q7&;jgau#l-`$J`hi_ON{LeIlThP`*Pk^tu)yOx4D?Up-gdYL7 z-A+A(j)P-=!>d5hf3??4Ow&DV*?ZwU+Re8aS_ z9PnYF82%XetZ$k)M8GcsQIQ8f^Is@O=yCA>x`(0 z2k0U2JCD;F%_oP3!T#qtGycD+|6uo9IfA=>snnhD1@8tPh8BE1a8%@9 zP-;1#%L^R-6@4^(!Rue5{zJ#WXB;CB-+>RV0pwdXg7*M7K?}YW*bklaGIbBQ2l^m* z#Vhp1&{6PHfQ&C=;C}-oT<>>kO{-}@Tv?Opr_yWf-% zJn%1!oA3pH1sH-J0sj<`@nRfY`noBv2>7`-xc3Pe?>AyH-=vTI4fO%O;FZ9W(1O4rgwD-Fr@-33{W^?xx-}ew)3v7fId;!o2 z?fqVed}HJ%+)c9&zTl(4H=qSS2aG}smT!Rw-}_Av`Ho0^4tDSbZwB6n7TgFF@QsaT z@GtXxsvJ6p?-hL!kbZ9j{ODZn8izj$&MWY#>!H2h+>q~dyikb$@C6?O-iH?a8j$q| z+7a0O4u|0T`JP5Oe8JxZ>YxQb0yIKQ!jLA>bY89Pl6@?Q00^e#651tqS>u z#jk;C<=6NF=z3_u84G-BJGA$k6!NW#KHz%zf}a3}p~t}IFEr&F1s|>OQI~oD0i5>{ z!w-Y~i>br#!{91F&q=`F1|*&b!SZ=N=^rM*&JrWz{jP+3kK*%{AktZynx60k;9t7UJLy++L6mzZonakSK@t zeiK5z6`{_huEH0*8n_8M3cd!AK5Yp67$9kp`wyea0Fbao!7p0=1UUCR8-MUQ zt4%zc!M6jtor3SK#Vqjwf2ofCBm)|J!3DGh=onbOXW;jfUau#yC$!*i0{1~51pm!8(k}jhFSx{% zk@pUNx!eD4UoOt=y7CScLK`tKqK^+@b9HA zK@Wr9v$XoJv{T@_@JGP0Z~N5i;uf3$q-_p?*FHcRbEtdZUjoC>=g=MdjwfG_xyz?0D4 zduZi;+AD$Q;S2sYFahnob5`!6t@FgBSnQrw+o8fxihn3Vjg#i>K*h#Vz>CpAmo7 z+Hr8kQSyp@EC(!iw2mX=y{lF3aNYMmsfTlUw-tN}!S4ckOyOcO_byJsqkt+z9{i6$KJ*y) zN3$JOCN$W+e^YP_SP5V7$Hffoy#v#GKc@HYOu19@6z;ja4|&0-0i)1@&jH4u1@{8u z(BAtlz4v3vJ(<4&a*DW~3p}fsctQ(46R3t3yd0>9j)I>8wnLABOHOxGCv*h-Eg%kk z5F83SY7jaH{5NMh>QQL9)bbrb+L0=A)c4N941Wy#79jmIlPNVH5IO?BvBFV}r{O2q zy;oB3O^Y3MJAA>P0}et9J_HNQ}sDA>4 zo&Z0{<*OT^N5OY2BVEuV;5(LcCyCJD+t1}5RiVLmM#-Pkp~36d5jJ!Tyr~|4=0k(m zY;x2+LW93`Dff z>n8a5tBHS!U*ocFN7X^gWowNE!`1NG2?JAm!bg7*O3&?Df70V&5(aK<&Jz2tyba`&0klPLHqKxDl4p~>B8 z&jBO&Bl!RA?%ZPHr~)uNf>o+T@lH+Ev9(>QMYh^RY=Gjm+oXwWQw2NF%KnYqA=R8?UIC?1NRjqc#;2wSGTy+N`(u=7S_Z z-@j+ioH=u5W_MX;{__pmgBO29dAyY@v+n963j|+;H*71j!b=!ic;I2yfiJ+Fk8%z! zr5DmN7oi8Kq6U*z|1BpJw>V7~2q{9XNk)aNJhG3z7O<12sXpj_1;B zA!QEz{383J=J+|@KTdz}rCBwlSvF%lzhOVyvYf~@xbP*;3%s~{g5&jK_6u|m1jq0w z-2YmcWm8_752Wm(rq|gQtV`UE;&^ciDT_!{Hj#X3Mv=0L&Ul;SfpT#Mjp4;gvVErT z;<;!BZ^Ln9(a+NCpVCYrWeXj7kMW_7xbS_>1#K5xjc&n`cC z%KHzJ9sD`tgSV&4tneyeFSqIVFX9l?Jn=)&~B^*ESXkJZe9*uHoUYlX8s3U%X z7OdcJcG&wp8BF-n>>g$MEc%i2n)Qn1hj>k9*(&%1vhk&PLdq5T75UT`s}Hk3@Zxgx zF1|FgM_E3xpLi{x9kC0g@Co?U&%wBr=JP1G=b0mA)*yAn7tlDqFt6PD9);=uFR=au z#6A)?8NV66g;r6g09T&K9Ao%ZuoKOl?{F{Dvg2?qSvm3%SVWIeUp#((P%hRQABMLZ zABXoMwfP{tE6c3|^lb%P zgH*p6evHN`pMvX7VU830dbkfw;wNC=sX?15IDoXQ=o;@s`!v2YqrP|Rwv z3My|@ecH0AJqxt|V3GS7*;hiXfcVHSt@Ok(HD)2wn@FIdx zk^D|LZ2TMWu<_@f$9N*uc^C?J`!6cDGDzhGc-Z)Xr5w+w{Sf;b{)SX1ysX@6 zLn_yt$~Pi;O^5ur@tWxMQ{y$srl!)=vZAKilovJQro5<$H|0gmzbP+1WxOV!{LFYw z>SSHUzTp1d@`|PY)_CPduSP0Y__4B&<;81_S7h-c#w(@xbK@0OymU=a zUxB^K>(#R2yT&VgSAn~8ZNh7fSH$ddNPV7wpP2F@RJN+>i;7s47dIHMj8jFNs$49; zI`GQ0RHUWK#Vd?g9OUWO1?9?OeAaknk1113^+jcd4RG#@%JtfV7k@>nQ?-`!80j2r zhH>K)@FU}ka6u%fBi@E|{{H`d_JmrJ*xDl zpN2K5&bZBW)VfcoF|_j1aLA5zarYsYFE@s6+IW3!eaPk(gRaeOajwR13~i4kLu;BU zPio-m+gRtV@$EJZbR`=@+@7*Jxv4$Y*_N#B?AX-3HMw<5Pc0XsuWn0rUfQ=ZWOLDA z#}@9?xw&+0G-cZjJ>9*@o^@P;X$t=2*vQ1lsfw=Vo%VIct>H0Q$r~bO^L0ClEyD`gXJ@6hxUGNnj)# yH}B54)oj5q{SDJ2haOb