From 6ee07ece1e57c90d4be38d81020052d8e524a89a Mon Sep 17 00:00:00 2001 From: ValueOn AG
@gateway/modules/workflows/workflowManager.py
Zentrale Komponente, die alle Workflow-Typen verwaltet und koordiniert.
-Routen: @routeChatPlayground.py
Ein Workflow ist ein vollständiger Geschäftsprozess, der aus mehreren Tasks besteht.
+Status: running, stopped, completed, failed
@modeActionplan.py
- Funktion:
-✓ Implementiert
+Objective: "Finde alle neuen PDF-Belege im SharePoint-Ordner"
+ +sharepoint.listDocuments@modeReact.py
- Funktion:
-✓ Implementiert
+sharepoint.readDocumentsObjective: "Extrahiere Spesendaten aus PDFs und strukturiere sie"
-@modeAutomated.py
- Funktion:
-⚠ Geplant
+ai.processObjective: "Versende Bestätigungsmail mit Übersicht"
+ +outlook.composeAndSendEmailWithContextAttribute: ID, Status, Round, Mandate
-Zustände: running, stopped, completed, failed
-Objective: "Verknüpfung definieren"
- -Objective: "Verarbeitung durchführen"
- -Objective: "Benachrichtigung versenden"
- -Dokumente werden zwischen Actions über Container-Labels generisch weitergegeben. Dies ermöglicht eine vollständige Flexibilität, ohne dass Actions die genaue Struktur der Dokumente kennen müssen.
+ +round{round}_task{task}_action{action}_{descriptive_label}round1_task1_action1_spesen_pdfsround1_task2_action1_extracted_data
+ Jede Action kann Dokumente als Ergebnis erzeugen. Diese werden automatisch mit einem resultLabel versehen:
sharepoint.readDocumentsround1_task1_action1_spesen_pdfsFolge-Actions referenzieren Dokumente über das documentList Parameter mit dem Label:
ai.process{ "aiPrompt": "Extrahiere Spesendaten...", "documentList": ["docList:msg_123:round1_task1_action1_spesen_pdfs"], "resultType": "json"}DSGVO-konformer Daten-Neutralisierer für alle User-Dokumente:
+
+ Beispiel:
+ Original: "Max Mustermann, geboren am 01.01.1980 in Berlin"
+ Neutralisiert: "{{person}}, geboren am {{date}} in {{city}}"
+
Keine Limits bei AI-Verarbeitung:
+Einfache Integration ohne Installation:
+Im Chat Playground können Sie Workflows dynamisch testen und modellieren:
+Nach erfolgreichem Testen können Sie den Workflow als fixe Definition speichern:
+Playground-Phase:
+Automatisierungs-Phase:
+Parameter:
AI-Textverarbeitung mit optionalen Input-Dokumenten
Parameter:
Web-Recherche mit AI-gestützter Zusammenfassung
Parameter:
Parameter:
Sucht Dokumente und Ordner in SharePoint
Parameter:
Liest Dokumente aus SharePoint
Parameter:
Lädt Dokumente in SharePoint hoch
Parameter:
Parameter:
Liest E-Mails aus einem Postfach
Parameter:
Sucht E-Mails mit spezifischen Kriterien
Parameter:
Szenario: Ein Kunde lädt PDF-Spesenbelege in einen SharePoint-Ordner. Der Workflow liest täglich die neuen Belege, verarbeitet sie über die Microsoft-Verbindung, aktualisiert das Buchhaltungssystem und sendet eine Bestätigungsmail.
- -Zeitgesteuerte tägliche Ausführung (z.B. 08:00 Uhr)
-Workflow ID: workflow_spesen_daily
Mode: Automated (fix vordefiniert)
-Objective: "Finde alle neuen PDF-Belege im Spesen-Ordner"
- -sharepoint.listDocuments{ "folderPath": "/Spesen/2024", "connectionReference": "user_msft_connection", "includeSubfolders": false}
-
- ✓ Ergebnis: Liste aller PDF-Dateien
-sharepoint.readDocuments{ "documentList": ["docList:msg_123:Rechnung_1.pdf", "docList:msg_123:Rechnung_2.pdf"], "connectionReference": "user_msft_connection"}
-
- ✓ Ergebnis: PDF-Inhalte für AI-Verarbeitung
-Objective: "Extrahiere Spesendaten aus PDFs und strukturiere sie"
- -ai.process{ "aiPrompt": "Extrahiere alle Ausgaben aus den Spesenbelegen. Erstelle eine strukturierte JSON-Liste mit: Datum, Betrag, Kategorie, Verwendungszweck.", "documentList": ["docList:msg_124:pdf_content"], "resultType": "json"}
-
- ✓ Ergebnis: Strukturierte Spesendaten (JSON)
-Objective: "Übertrage Spesendaten ins Buchhaltungssystem"
- -sharepoint.uploadDocument{ "documentData": {"content": "{\"transactions\": [...]}", "mimeType": "application/json"}, "targetPath": "/Buchhaltung/Spesen/processed/2024-01-15.json", "connectionReference": "trust_accounting_system"}
-
- ✓ Ergebnis: Aktualisierte Buchhaltung
-Objective: "Versende Bestätigungsmail mit Übersicht"
- -outlook.composeAndSendEmailWithContext{ "connectionReference": "user_msft_connection", "recipientEmail": "user@company.com", "subject": "Spesenverarbeitung abgeschlossen - 15.01.2024", "emailBody": "Guten Tag,\n\nIhre Spesenbelege wurden verarbeitet...", "attachments": ["docList:msg_125:summary.pdf"]}
-
- ✓ Ergebnis: E-Mail erfolgreich versendet
-Status: completed
-Verarbeitet: 5 Actions in 4 Tasks
-Dauer: ~2 Minuten
-Ergebnis: Spesenbelege verarbeitet, Buchhaltung aktualisiert, Bestätigung versendet
-Processing Core:
+Workflow Management:
workflowManager.py - Zentrale Workflow-KoordinationworkflowProcessor.py - Hauptprozessor mit Mode-DelegationactionExecutor.py - Führt Actions ausmessageCreator.py - Erstellt Workflow-NachrichtentaskPlanner.py - Plant Tasksvalidator.py - Validiert ActionsProcessing Modes:
+modeActionplan.py - Batch-Planung aller ActionsmodeReact.py - Iterative Plan-Act-Observe-SchleifeAdaptive Features:
intentAnalyzer.py - Analysiert User-IntentsdocumentList Parameter mit ReferencesdocumentList Parameter mit Container-Labels
+ Kontext: PowerON stellt eine sichere, unternehmensfähige KI‑Arbeitsumgebung bereit, in der Daten zuerst datenschutzkonform aufbereitet und dann mit modernen Workflows verarbeitet werden. Die Plattform verbindet bestehende Systeme wie Microsoft 365 oder Google Workspace ohne lokale Installation.
+Zweck & Ziel: Teams sollen schnell vom Experimentieren im Playground zu wiederholbaren, automatisierten Abläufen gelangen – mit klaren Schnittstellen, einheitlichen Datenformaten und hoher Sicherheit. So wird aus einzelnen Use‑Cases ein skalierbarer, betriebssicherer KI‑Stack.
+Im Kern:
+Kontext: In vielen Unternehmen verhindert Datenschutz die produktive Nutzung von KI. Der Neutralizer setzt vor der Verarbeitung personenbezogene und sensible Informationen kontrolliert auf Platzhalter und dokumentiert die Ersetzungen optional.
+Zweck & Ziel: Sicherer KI‑Einsatz mit unternehmenseigenen Daten – ohne Risiko für Personenbezug und Compliance. Der Neutralizer bildet die Brücke zwischen Rohdaten und Modellaufrufen und schafft damit die Grundlage, KI in regulierten Umfeldern zuverlässig zu betreiben.
+Benötigt wird ein internes LLM als Neutralizer, angebunden über eine private API in der Schweiz. Prinzip: Klartext rein, neutralisierter Text raus – ohne Persistenz und ohne Nutzung der Inhalte fürs Modell‑Training.
+So bleiben Daten im eigenen Perimeter, während die Workflows mit neutralisierten Inhalten weiterarbeiten können.
+POST /api/neutralizer/anonymize{ text: string, language?: "de|en|fr|it", policyId?: string }{ text: string, entities?: [{type:"person", value:"{{person}}", offset:123}] }Kontext: Formulare, Tabellen und Ansichten werden vollständig aus Pydantic‑Datenmodellen abgeleitet. Labels, Datentypen, Pflichtfelder und Rendering‑Regeln liegen im Backend und steuern das Frontend ohne Hardcoding.
+Zweck & Ziel: Änderungen an Datenstrukturen sollen sofort in der UI sichtbar werden – konsistent, mehrsprachig und validiert. So entsteht ein wartungsarmes, generisches Frontend, das schnell an neue Use‑Cases adaptierbar ist.
+frontend_type, frontend_readonly, frontend_required) und mehrsprachige Labels (z. B. via register_model_labels).{
+ "components": [
+ { "type": "table", "id": "docList", "columns": [
+ {"key": "name", "label": "Name"},
+ {"key": "size", "label": "Grösse"},
+ {"key": "mime", "label": "MIME"}
+ ], "dataUrl": "/api/docs?pg={page}&ps={size}", "pageSize": 25, "editable": false },
+ { "type": "form", "id": "metaForm", "fields": [
+ {"key": "title", "label": "Titel", "component": "text"},
+ {"key": "tags", "label": "Tags", "component": "chips"}
+ ], "submitUrl": "/api/docs/meta" }
+ ]
+}
+ Kontext: Ergebnisse werden in ein standardisiertes JSON mit Text‑Parts und eingebetteten Medien überführt. Darauf aufbauend generieren Renderer marken‑konforme Ausgaben für DOCX, XLSX, PPTX oder HTML.
+Zweck & Ziel: Fachinhalte sollen nahtlos in hochwertige Dokumente überführt werden – mit Vorlagen, Diagrammen und Layout‑Regeln. Dadurch lassen sich Reports, Angebote oder Präsentationen reproduzierbar und automatisiert erzeugen.
+{
+ "title": "Quartalsbericht Q2",
+ "parts": [
+ {"type":"heading","level":1,"text":"Executive Summary"},
+ {"type":"paragraph","text":"…"},
+ {"type":"table","columns":["Monat","Umsatz"],"rows":[["Apr",123000],["Mai",136500],["Jun",141200]]},
+ {"type":"image","ref":"media:logo"}
+ ],
+ "media": [{"id":"logo","mime":"image/png","data":"base64…"}]
+}
+ POST /api/render/{format} mit JSON-Input.Kontext: PowerON liefert die Plattform, Workflows und Konnektoren; der Partner bringt LLM‑Neutralizer‑Kompetenz, UI‑Komponenten und Dokument‑Renderer ein. Beide Seiten arbeiten über klar definierte API‑Verträge zusammen.
+Zweck & Ziel: Schnelle, risikoarme Implementierung mit geteilten Verantwortlichkeiten: funktionsfähige MVP‑Kette, nachvollziehbare Qualität und ein Weg zur Skalierung in den Regelbetrieb.
+Kontext: Nach der thematischen Einordnung werden die nächsten Schritte strukturiert vorbereitet – von der technischen Klärung über einen belastbaren PoC bis hin zum Integrationsplan.
+Zweck & Ziel: Innerhalb weniger Wochen eine überprüfbare Lösung zeigen, Erkenntnisse in einen MVP‑Backlog überführen und mit definierten Meilensteinen produktionsreif werden.
+%QnT5;aWbveO1 z$<3U4iXI69Omf~MlE4-`Th6B0_;?y+ke}thQh%=tSwoZs;mDK`*9jU|T4$Y;&VX|GoKggh-F8Kz|QjFsY8kmT(n{Z+wWaFEa;0 zWs_xsB;j0kk-AuxY9LpO_eKcZqs8vtRxCM} X2|TS$KvJLXMTo3;{KpvtnTGaSCjkzzLr7qSXp>N#1?mjQSAs42}$# zwa3h;K7UPhr7 50zbYX;3@K3 6_|9{X+$A-u4uu}xVD=zGUylWc$ zg*JB=R=w+kNYp`z-iVwTZ&!ZHthmmNkjIF8SPI zQy;1dq5_Ad0PdcE7TU-#ZUXN8>4 S>wg$9#5FoSn`R#f1}qWMUm%zSIqlH i{YmXwNAaohfeQooRF_&59O@+)YRNAliutUBlMRycR4qaP delta 2382 zcmV-U39 k0N}ZY4A-loJIY02ZT1 zLU_e+Kt>nY78x#~0JDjH8Y_Jm8tvI46woW?AqEHlVCnz>000002M_>Jc4bcc-G4Yk z=f#j BCb}Kz|@ZOtyT&I00IC2000C44GIkkulGuLQXU)|9OD2c zHsh%U1UkWKfB% y<;8$=8Va4(>C?@MA6UBUv{mwW{UKf`Y-_lFk5SVA5YYe%?lBk*rpSiP*qs( z#jiu*mwPP}A}7)p(Z#ZZBBTK5V_6O$d1#?PdlOo0iGMgdTMGiFI2=mCwW;#Vp)j8k zPFo$kCJ4yRuaJs&_r95|@V@%rcm0y#KSz2Ff5vu>hoBwu;Xa?;KnszB;23(}%)1`= z1q5G}LWEQ+AKId7`l!m|=T3_k_VWxNs{#Vu^kI1Gu^DJl#sT~p@ELj+62AYNyBK!S zm^?xjY=1YZv}Vk=Y&q~$CXS~SY`~#S!cT_JCpckcjViOSvRuvjwc$hLUQh)qi{6J9%+(*}=m^)_;9S-s8k%mmo Ohvnp*JjnxpglyA?ORHKIe+^A+}v$Ac@KyOWaolC;MNSR=axp978Ne2 zIc)2QbGsjHkyVPqJMs9Tjum!OgHYZ0w;!!lKR#`Tx;nL^B~8bAe8!IR6RD %`X!~-vPp%|Lwb;dI)+uryn@qVLX3n6h*TbwcVJg#`k#7*-4xB2L$lh zdV_?~^p*??+(NO~3XR`)twb0fV3(PMPY)M>Hdb$vGbm`{-G~lhoNK6@Ef2fxYiOR5 zfOLk{0wQ>sb)kmZV7Ig=z@sK UNZzlK$6h_k;eKU=)4#8JRQ8 zG{W4{f5k+TO>$Ju^VOBArsild_qPjX&UZf=Jt2@xCYwr4q9piE=D9(piEUJU?0+$L zb0L87%fdn=O%cue%T+})wOa7mwjl35H}Zr6iyJ5L&|Sgo6b3S?%l$fIf4vIM$W>`u z9;dkvDD;Cn!~5hmr0taB>5LUScv^idMV{RK{sp@2^M}x5$7dCOxCZku{TwHQj}yl+ zn^JS9Ol^~#jMEw=k3$!WsK40+NPph{XrL{~`*2$K`ol3URkDc+1ILJW%xteOA2?5X zEUrff7#uaX9bsqw<`P(!WlNgfhDoU&W&4~qd7{e=Ef6W27rs?+GShU*EwdYDbfsrK zl5N9+sCCz*6zBqVcb)H&U|ebCo(+JZdx0Py-7>v&DKn5O 4_f zcIGBsR!&KVFPntVw7dVGP*iykU(BcA^l=i>FP!qN+EQzI5rgwtgHj}6$r>B;NNVvs zFHGg;PtIq)z8x+XhO#ZgnwF~5F~fWcP*_P#FxU%aFu359vGxP==Cl8hKXAsR0e~)l zmcv4F*7iLL@m0NiPgsg=BY$?jfT-rYV85k)P};DZ6eNU5oc!g%7deZ0Yty^`WIRC| zi%lzJk@w!1k69;CWZ!ATZ>4!{9Y_fgs(FEyw g0k8wbs_D#P|T;kZFp% z`Ou@z;NfZY#uFY1-d5PuUP~R3tQJw8XaKr`RMAw-Eee90fUMlz5r0(!H0A94^)C6n zxh)a$PKQLV&Hdf)O7}i9iWH?~MuabZ)o5SY?}&lr)G3Q{_!|;XM g-GXbLK)v2JN5m13_31r`y(7<395a<;KaI7 zwCM;uM;CmiQ;vsH27kFG9&)fio*6$v)xrImkF`T%jTYQ|OX{(z2Wc^tBv<{Z9EASk zgt_ymh})m`jxTGB1O}s_mdD!ZNmRRy4ZU=2wE$=pt%#5+<5nkN3`GwN{7EiPKSAcy z_3G9x?5TM6h-LW#$5{2!5gA2zD*E(`ZN0?^($D?Y0S->8Lx0|u@L8vtr_xb!KAOb> zu#tjNLPYd;Vm9`cSb+~jt;-5Zfua%%VWFjtM|B^W_>}w~DhvEm2sgVg+UU`D)z96G zOlF9)?N`r0u3u74!*PFMD=fL=69$9bvl{U^=z50KOnts6t>K1J_&I?3!Hx?kramOS zY@Rn+^*N6NEq}GM`jA+8B2>~zh4l--BF^CsQhgRkeM9zcgcXUcW7(OBLB}@zq!3zN zcy4niJ0M*%0EsdvQxnvvD58gAS$AE|m1E->)Jq5(niv+BDT~r BI7C*GppbC09N$Mm!njR8n=tos`=Qr6ZWpIA#2!A{{!4qSIXx|d$MT6PXsuhge zy!J}s0t9G&n$2uIgFxEUL1(xjFU4jtldwMRqkWLO1U>>TIs%MtRnuo~5Rs8K!D!E= zshFSn;Dc koqq*2clUqXdp(lS0~O=~&!Azm+p7bXJ^lOlUFek;l=uprec@bki|~*UVfrkP z7T0 %egrUOcHV@Grqd~;HSf2L<=sNVlNP P^5(3ivkKrQ3%q4^dgFMkQxL* z2)!vCq=R&jj&Nsix!2m~?6dDa|G)3^{P%wji$#)eer=5Lj(3dt4QIHtmGAHg@r#mk z4Xi9rlMAs5vLY=WlFP^l=-ay4BUpK~k)8+_Ek{;udvkAV7o@u*oRyCiX6|B#aI 3|Rr5*6YHW&vi_Gq*B#vHfEZu)MYl67Ft^0M^&Dvo#k0#A9^;djHy(Ez(ih z+zpURSxQ(?SWHMzNJ0oAC@w1Yo1h>!@C)>VA>seLi<}%e0uTmJlgOXyvNUHEA{S7E zu?lD+T^!8q|Li3CXD5AcCj_g2wz-=d!o?BT>(4jmt-`><=58*wUaUs^;v#}VVv>Rq zz(7G(zCS+-OYn=aLc~S*1qC6(;wIz*dN$^8oD~3b-EnucbOWTry;l+hCXs{)i?Q-c zN(hSL{z?b~-IauZb_oe_5uim-QUdrZDuioSMmm_=I (b z$=njqgEGRy))Jwsq9_Oa{8FjdzgJu0A`<)(;$o6G!Ty=HgaK8s@{5WIovYwnQNkiZ zfa*lV0Xv+l3z*^mwW4qal@J4D{Bt}1vS!5pqh{`DSv*8ox&eZ@TezJg3+iBQjUX2= zu!XzXu!@ODk_)IJY^`nFScSv^eEmb+1DLgSbJa$;C?Or3kd6pPH&zJ%1Ge@6L|Fyy z*aOa@jIcz)foU}mj@H1uqLPvTAXr`907rKq_exoNHR3p2MMHFU2C?KWYjGB4F}p-S zfBkW6Rochgdw6V{-2|QLjv2MXd#yu7EJZ~u@__*-N4wtL`}|XD;}gL 0`hB8%Le}N< z=(oCrfc-$vv$U~^vy;Qc4Oh>7$-tAXW5$i7#j*Fp^-Hy{YJHtB0Z|hXn6c_wmY#_R zQ(jlc_czAI76ZqM9 +SM;@wKUH@ zzhaS>gT`Sa_K>l{Od>imzg;W&$iu?rZGO}R4_$_!XeSza=jcTr^O_{;DkrHDj6T|4 zGYYlumkrmaY~?}g7k`?ju6Q`1WhE{o`(?0=TfNjlL^jC*y$lscDoMClJ#$a;IKAPN z?Mnp(Q)k)h4nCr mKuS_2?@D#-7aWE_qrX5n#?c_CGlEH z&Nzuj*EIw(GLcU<51=_~Z`y^jufQU=RYN4UzT?A)Yzg#klwu{Hm;0g^Lz^avkeOd$ zvEw?M;5texB>QLQYdTpIXk#hrJ+K$34*ObG4p5lxWOh^PxFpbayMW$KE3y P(#bTI?VvLI;3%?|sl+8O5V7yf z0xWh!xe;9q@qReaGWL}nDcqi@91!eetB7kf^hU-`JtF>IeeD0e7w()J*$!r^hYDxV zRmZY_;ems2B69M^?}ArhU$(%KBiSt(<>mKQVVhueZ&c>@5-{wGx!P>c*ZvW-zC@hP zo-#K&QW)qwj4t@%7Vc@h3arj4f3C=4$np~G2IjZkId2U~kxXB4-iIF|>#zt#-po4! z$filS7&3M)ItXG8yg!#Q3APtfN{ADm2-)wC>`#P6y0kkb7ks29M$VXNb>E`5&~U2@ z50Z7>0b}g}!w;ins+LD}*vFiC;h>RvXuc9oM02F@7j)Hp++$I1JU#Y612(jT7mCBV z07UM4E?#~;)U%Xmgww2@P^!?o9;z;mb>`vYqXDjB0jRw0xE`yQZL@8ky95W3AYDkP zt$j05usigiJwVR*Z7{wXku-m3JvK=?XfK-`&G>lx=;-Y1a26Ij$vJ{30oJ#OQDJYE z1V{7QP-Rp3=PJi`1o@)WXX-Ggr&*)28O1pB;jGKJ2ZpZO_<*E?h}yg~TE&VWWL0{v zVC#%(R^kApb8!a$3cI@pCLfvO_YWJGyF{yyOTB9b_(o&u9AV4ge>AyaE7}-L{o{S( zml1ePJ@gfz59On`>ylg}Pi=ir=daT+;Q^J?p){~(7=3pf`3w&n^?0(m>3mZf)3Dg= zVka&=FVFyOQ_dBHerrV-q@)eJ7$W=xkShp6zXE$!b2GFa>ds8B2@=cIuVegz1ryd| zQ}t>ZwyAo+S&@L_0M3VEBc}BQy|;H+)ZPRingGh(1Mm2NNOGG4RTH`=Ia|@3@4402 zU^f|YR>4x^ykV2J$@4SKWOEmqXnZ*p7E5-!6`d#**J&RFF&sey8@+>^d2#nfKsA;! zS9I^E7T`XpXuxBju@a7xoJr>{3aSg&>S~#6_Ce~#X#>hzg{}XggK1b~9kjc)$lF#o zMr9aX?uCjE!C?;&4jS9k^b(N&PCaF%FLNXW3y-oDuh!s^0yaiA2`|8Lg6KZ@$`ynJ zjGb}WLSwKrJO~o*H#I4@u?icF`YAPt7r=5eAKIRA1k~RC3l6105V9rL1UVvG0Mh5n z>Yh{AxlY+@0W?&3qaI1$8JUX~Q&7aI`CMEO1livdQ6d`d6jC4FGYNQNF$7B0+J)vU z1D3{hGe^$M!tSiW*6&%q(uUUqu3LNh##a+sY3>C=Aa#FS69t67SqIfTpERin%?UN1 zR?FQ4S^?)KA8D4#fNux=O+My2h;1i06+lDcYXpcGsk;>=O}%9g@CVMRf*>&tHH=q$ zQPS)8IH?Vhv8$!SfVVZGUyq uYqqEkTadszm<0A|nEz`Y?@r$eCFzpQ@zWJ;D( z-(hjSYxW8Ved663IDiR&D^EfIhNoT)M?;`iz^XWd0OZhBAMUOggX5t;t;f6ya~UmW z%LnvP0pV5SAqRp8#JLSXo5q*F6D?>2F3ki|0}J4`@W}_2$sbXVB`giEf+PW`h|xZ0 z=B9JgDz^hd^kKn^DgB9n4xu^;6@!3#q2oLZy-+!I*pjC0EnpJ`=Ol?ZhxWrSblxaV zPtp2t9p>=j3jo0afYoUOKZe+P@~q*oj$={c`fx3r09W?1kqMs@wW M}fY!?(l8OL5Pe&_?hp)oEF{=3{ z-~!$`XIra*fi6pcjd(0$w4dD*`H~7i8IB__T*#1{gog&*7dJ=h!Zo%*&kBI`g?rC2 zBkF@v5ABZtFbG$`QS2hbWEDqrP~Ce~vAlKIojtIpMoc?csV>}19P7q)NXCVt#Z766 zvrx;Vax l?thI`qMA_)P^JG<@0<)EDIN_4F9n0H5^X+w=X0D-hyKU z&KX#AV{;goVhqTJMBqr5ZtxmePMDbG+Fx-DAmd<(3YT{*d+~#w;XL*a1<<)0U(s0J zp1BB+6fBbQSs2bXKnVFszbN-TaH>Y%cW}^1cHc{ViSu*@aL7R*ywJzOVwn Dh~F%YPW$^e>fK8Dn86P#5C{lN6ZURODa|2z!=Km-7&)fco9t )z9 }-{@x{ z2g(6tli@MHRa?SdXye=z2 1L_L%?KY==^W)yvkAUUhVT`~WlXwV*Ew+6MJ|w)aa{fK6>uQbBMI`6 z?6B)=lkhw&|2!Wq$Tp%2R$ z}jNJe>M2%xW9LRx0Ktloa#D1m{ zQf;YL6cYO#5b%NzAbZaqSZl2c{ICW9?%|c&%{U_2`UPQt0T8x;=SCVsuiDi}$HmiJ zM3#pA#G#FcvDPSBbk9U3S#%x7SO>iw@wp{Kl^(|%Krn3AND2ag9=3Q(??XDE #AR zwqusepGDi$Jqee8fI0aiN4$!2q+v9VAaQbMEd=YylLS}_$iUD5V6bJ VM$HnI{6j1 9`N} z)m)Cnd5bq_;3MEH!dLauu};Zuo!}+R7ljYXI+t&Bc(aELE|82JRSjR@_J2S{{%N zd814LjsY}_%m0;Aczc_p!2bK-Yv+qO1HK%m s@ 7<;Kk^O_l e@Ep|TU z)j|LRvw?w)02&$VfZPf`AFaOVASe(b`+)R#U@k?w@>s~H7-G8*&J6{~o+$SgYFbnh zh0p@1HU(f$Tm&kfopBHZsC8L)812TX>NLfq#tDRxbF-PXKh$^(_7vS3L618y1c%^m z*npt`|4Q)_M}LKV@n-Xb#xnvpa=5(eF>esiTUS&_jRz~PfxCsNUMZ?sjQeJvIRcog zZ?!6QU)<|kZbul$)!a)N05hI1gNv0^fF2srw@_`BecixK*CyCxR8Xo=wY6e&>??0_ zA;Q)r=}+tAexSAyz6cw~MVoVHQ{E1{-`X-}RtL2m*j=s1a^Y^k@c%Fhf! 6i4nDt?M%4e@ykD}LGmjVQS{)e^Ei!lutm~g}1s2U63*0%Z!pz9e z1=L7(^W GlkGY>n%CfwdtL&%Z~z0U7#AM*+lBQtM-y6Uken)&L$l*_=B zLvBBJ%g&UbIdE;cwwvrWKzzf1X9^PMk^)HAfC20jYya_lPyMD5I1CX=7yh|l)q$6@ z+9ze$_Q~vIYQ91uK#z4~qRY2Yc)${^ULdJLsC41y$qQP2Zd-~HXU0--I_K#Z^Z63D zP 7lTYYn(^(sYFs={x;1hdJT)aBaC#!M=-cNh?YZBH zI?36KBJ4a7{QYt}JFC>AQdJ6fB18rAx9x}z*KMnmHvK%+b)_l&T?V)=dy=MZI6@zi zWE# ~d)cV$gVn=j8ew574*Z-^~$^WRO ze^_V$?5z!)_Pd>*I|Co|ZS8>)!mm$?ib$XWfjg!Kj*o#lgP@=|?(q2MJKQ1qJv}#s z)1Mc~1q{y{{_I08po?%ty1Q5+TyeDspdMqXhj3#xIxoct=p($`SOw0{sTKctRr=!< z3d{}^8C3M#a0MD*sEP xGvBLVa1^x_fCQphY_GFuJhjt zDUv^ba1|I_A?4>Mh&ZdTB&)a}1X%B%opTF`{2hj)UUZQM-?|jC;r+}Te+d2_E$(UF z YY=zWy;>OMT1}9*7uS0yq%z=@r?ORSD&Q= qO|=-HZ5<+C#u6OZ5b3rpeNg#px$FWb$%fW{ipMs{U?NTwU|yt(dFUvF~ETWIg`p;8yp(le3PGO!EjFK@TgaJUfIE;DpI z^^hg`NeO62K>kcZYq{Zp&5oA5R^Zcy$fO5|Ed)AG!1>{s_rud=dHI%Qy`*aQo(E^E z9`nAY8=*s;wIebao&HJgQx9ro)EDcMkA28(1$HQwk5$gNR`S{g1yn4N3!x=;t`K+T z+WLUj?fYj9Ti}3=nFl}O>QB}%JgBn(6lOef1G2U8W~0Gi?DXw=&s&GUu85KcCwtcK zA4JwGzN<6XMC^wGTdtKM4z|yDTsuMh*#5AVc)aXZ-Bb6Bug5WElnsWSG~?XlBbP8R zxY6bWtI@~(z7P90aV)%k>TQ_(1MwKyM;k0F>%mCS2#w!R8^-O!%l)C7IU6}d^F#b+ zJL4iXK2tY}CWalheJ<5rX0PoG8i(oziXG>Vsq_d~o>8?}KcBEVTix5{^k25(_wSkC z5DRM1Ct~3gwL6B6+evv62~BkkBfE~p_NMlnrMC(PCs9G8N&B4p5ibt z OTG#Ae|Lk$Z zm7 _`aMQGmb4xPT;@~RIyeOu*A{`$s?<*#3X3?%tt7n{>H zBaRql_}ZH@D4sGs= 3$u07?vkpiopCV4#Bl-I=y!D63av10N^*^-KOsJkyuytFM( z$^~0qf=@hkfph8GK5xW%VGitCN_laS;z_gqyyQ6p9NRMVweQ8*@;)*Qf@>6oWaDBm zWEIc1VX5N*Ic{prm~b;cP{tug98%F1)dWKq%%i=0xd!||0uH66NDJMC1(5INp7z~c zSc;?ZQ`;Hui6dkIa@$jUDr8Sh!(lsN5B3al08Y8l=Z{L+gwYi#k5MQwKl_GGG{wrZ zI4CYr4?x%|u-h1{Zw1zCDw{3~wmui&(g)5dr8wg7m{Q)+Uf6^=x*mheLtR8YKK hDKWJzI#d|8cwFT?GJ2fXW0dd~ee(Es+iP6Wh+(mmW z#pU>;2;XT3ZNcJ}m(h`Z;D!Qm=PlSL%>!^26AHmTvI)DuZ zK`#v^&b_?(6;L>07?Omj5k`n7Yh%drRE+&ld&?MXL2meRqBbUcIip||J OS=m7=X| z-1v|Za0MsX))DxvRWL02o)6E4Dk;elI%EoxVKwQ^L(-xYJ_<>KJueu62)V1V<2o;) z? ?!mN8nKz9&$u_XsO#&^QbItDL^)>P1t18<-L9Fahp;zoSxXGIJx%= zLxV8TZ~iEi#pgJcLU}aEVu9(r4#C?2E_>R&kjJ>zOBkrxh?)8bXJN?Z@ex=KgH`hf zDdtf!t7T)L2mYvvawzG~eMks%u_t#9LJm=CQ*$3=aMPdfPq`05Cc&_}S$3lj90Hky z#8hAv_OwHm0YeJk2Q+)$O->^m1uX7Vbb9F1eXa R88n_=-0KE zsBdR9&!RhXRm6KC-s#AuLom&kbY!W79#v-e8(9Aa`W|(AUfVw6>Cd%^Mj+wx44oTT z?hw5-bU6lExSli!OrJeAyMm@Zw=08QY#y}9A7q*_PVtbUWd<#XGx;X$EBfX%nlt8d zWgJXAiBdBQ$!>>AX5AH)iF<+5Db)sgZV7GwjCU*xD(nw3YVY_CsLWess(Ce)XcZ7k zxD;91VlN1yxTAQ_TW1%>=@9FFJUNAv4L80QlJtZ(9ZHP}&r|fqpU*khH^CI#YKmyY z%xHv&Y#KkAXdEK>`WVyCEAT|omuLC_=S{eg3R9dsxsSjceyCeV;Pqb!70yJu%sCp5 zbzd-=X=D~vP^_8?UP9Z9hU^1#D@-ZxtKnYYWWdNq0Gcw?eZD+P=noLXnWB$*bLi}Z z%U{+_cJ^V3UV>Cj>k0gMA)C+qL0I4zI>U>{!1R~j+3v$8o2Yx?n#l!Y5PE%Jii15^ zHj_V!`WW1HLBMI2{Y``_set$L{nto~g<4UHd9~%3wOv@M>mfMn2<*0hE`BV6+=eO= zDSWgh_C$9J@F<64FvA9#m7&gTDkO@;HCl$Msc^s0mTa2LALJ+>ew@0mJqgf+&M&~Q z2@{KYbHEmMVDML&KEN*0k+F_baEv|Rc6t?Li%lGCbw@c791-=%rsX)jLtUO@wO=AE zp$pomdpWg}0j!$@cxmDEVBZX(UrueF0k*)XC_a2wTtRVot<3hNk<2;K9N5&XQ*ZYUyO=T`?+(!vV{sxarSf zo>)q*cMG*-Tl(G`XyV*JH-CmGh)bN>7r(O)3UO*Co32-kw-@l{$yPiki3|+cTfp4- zdW?w#$(*-Q35vWh3gUAr1No!Ib5)-Dp^D2I74~7@HyW*i`L@1#ftt2VYOJ(K?L_nU z>k6)^J;gxV{80qwh=r5e#8SgdZ}rIl97y#YcBh6Luu0nmq!fcaFPfE2#&4M%!gljP z4G+b EprmuzrNlLGR<>W+K-)_*L}IXj%StgvhByt9 znFoWDLoIa9N5o11tZJABcvhRJ c z17B~!3Q!LXEIG~e>Y>U!U{ETZDR}UR*$~6fw-GZAZb0OL=Wc9ljP8oV+2Nmm`mrEz z=K2Cy%tG{Bsft^$7nkpdd+pj6W8)41u*-P83=vcSafU!k55OT<$WNeSr%a17-YPBxiLWE0`-yMGEs77DCIDoQ^DnbtBD zpqS5+_0B-ftfP6zxq9t4nMTau!BZ)h7dpVIq$;m~ayL(cX)MtoP}~1Qml-0&qR>ci zDUO;m&bLZ8@)he38tZv;Gm$cv-$a$PCxJ44D)cR`2e8XWyy`;0kZ|xs&yXFn+6)fh z2JIIZG!(?Wd`G^{3z+b7hVbnd8VZ j3H#sfgf zA)@)3rk>Y$q~s_m7J7_VT7rL^MGDL`hLLbE%PfDW$no0D78wft?vs9#lHvmF7O0m< z6ko6MBlXVQ6EDG;MuupT=Tfe0%&WSRZ123AgY$&uO}5OUIDE-?J_lTySzJ;8_0GK_ zzS9dgNq)rJA&7WFz|k5fB|gqe-5easZ{pb;e3jyk4Bgh(sMcVZL%$Et`})_^Y9aC} z6v>ak>CjkUHFm_a>5Q8>Fx_YpY2$KApu5+=mYJi9j8`thQ2Umd9(qu~?hz0 0~xkS70CF<`QFdaFIiml!Hy?IOn(V5W(rDEM$ k4FRwLoUXey&N2Uj@`?ysBnJAO%-oKGc*JaqVaWFw zJia0uCw2_BI|AQ*BJ7-+OqL8-H~C UrIik*Vm;1)TU~iLo+zxjX<=#yxSv zCw&x$hhr`?JI|7{G1%8-<%GrpnH_zr@-7VSkg1`FKF|Q{GeQ7^M?d1l3gvVD!J% zUVzIHR7sz!l1k@3QBo&;U=w67z-F9 l*h+#Lx z-19ElMvBYQ1DG&88Jz7)klWl%{QyVHoFPD_GuK}cpg6pjH~p$XJ&z9_9Evo4IK^4T zK)amr9Z1ZO!u?9n9Him_SW=q1iu=>~J-eUBZ}xzGN|} f*Oxe^Lxi zzEqFp{wv097hE;Sq!?~qRZe?_(;od)GxX)9BXIYq@&NBp=dhSHfI--#B1&G$_(L3Z zV*ib}*%7_-(1S%&HJt#;p4J96X~+ORwD;+ni+JM5^H;nLZ+& @_%-rbIQyfha`Q5u!ViJMWt;wt)^o?+3Es|GwYRZ*Sw8C z3f$|%W#VMhl>8=Gu8?Z4%`Zq}5v$;}{la-al!j(twSJiSQxs=#NRs+cfi-_<$Y!>eU} EQD|;_ zdU*$@8>!sYH)*D9GSnp)TviUmjK0yiRw#Oy+a~rpOc$Y6?hi6V_v+~aG+1>A_@{jl zayu$S(0} Q=M37(CuB^lJw*XUXG@S< z7r|R|MCsv>nOArJ39!-|4A#dV^aYnWu8>Wy9f89U!B7X?hFSFtMiU(AYPf0jLP~JK zeQO)WSdOhmyO>@SC3^-oYrn5i0)PLhi=5}puX_PjHv4)vAY?Vh4VE_6iEr)v%qi9| z*hmc7e58a{FP!O|4|B|$O$Fto7oT79g9w;~gi-}g!P{^K^GA6;sChv-*%bBL8is5? z`g0oIf($iqwO1BUobI_;G5fHaqspEd8dLD^M1To_jeUW)WA3u|p9t;&2v3q|-S(j@ zI#Vy2@dlka&g_FvP2P^IBF=6no$S9oc(-R|ySH$>b0a{Y-4r(T!`u4@o1h~y@W#k+ z5A(4T{Qfhje70*^wfu#B#j*L3HX&%-OaHd0Th@FdM*=^zh^X~R8%av}%V;dxQ}?B1 zMJ(TUb`HPWIqJ9R4_MWDV&K9Y Fv@T&GCMLVVN`R2M(vsNH$hXs{X-|vG9L9GXCFGRQ^&W`Zu16O8i|x z ( zDgD3gOjuY%{I5sCIoOrxU{=bf)5i_iYZc5A9D9ozrM&$J>fQ<%7@6ufz z-
xvx*Q!AT??uD_Dbo@uBdV4&1`<>x2FkT5oPTKy&ZFivYWou WKB(o0i16Q-d2{mie)OJMs_}ZtVYchSKr;R1U22)zv{DGn=dCxE3)-@o zlg9;w%jPWKFnVI?Z;n5cyl$Ojsoegivx_YyspjLFy2+Su1wpd$vB1C=ed9hQ6XVU% zuU>=N6Z9kWhPv2pK|Xtf?nktj(3a>10wG(ay{9zoG)n>arE43B|G*;u+Cwt`4{BG! zqUW_Mk$+aZ`dgp>^R+9WAaP!kz}2jTgjs>#pY L@RG7;V9O7@e5N6?$=}?c=1T`@lIEN=g!GfXA-{L?*eyVgR@hyTjwD=` zuEKP^`KVYoJGB)2sgGKJ3_&SyB1Iyx}4pUfG^Hp(g>^t*({Kd}B^YSu~$xaX*TK24>e z#3~3pcA|Fv*8tZJ(_jT^GI|Q<4 4i4m=BANgY|9?OuRCd7hDf_J6P
bflG}U; z%HHMH8|+=!N6NVZ5n&Td+_AAQbQD#zF0_n*Z=`mrA_zj}3c!Lo)7hL>1B =Rxy_LT;ly`RWJ2H*PzC-ZYEZdTF6 zN0Q+&Y%t|Sm+plv?>%_jH9z+6aEo %`k6Ky*7!z=hv?Ry$mr5(@YlQWxx69^&P!OoCMSZ`m;Bjs1hbGlE+>$ z(9`$iz2}1634UvE&9$9JZD8T_23n`W903aSUUsU8>Sc36=PTLe>5;7F`qAQzvD+2n zt*+`2M)(f6vsH~$T^#CWFo7cjR$M+Td_{lXI-C!cEHYMgc<^H-@MOE=LBOf)(Wc4q z){Z>p$RHJSyqR|}BrkVXj*vDQVDjzqD8hPvN*%vu)8YA+$F9qhtzVhkyf&pYJp=YB z)}>?y#0nO&Y}J%d8bQ%~%XttV#v!(mZNyj+?xXX29z_*wL!iDq#JexoF S>~y&n*i%|hgT{lvAD>y|PdZw8 zwE_=59zSO>-41yp!n)+{6qeo= mYWul2 -uV6qQSZVanc z3RfGp)7adi3QPHj^3~)tbjH8qk&R_Sfd~zZ6-vBHvtxg+`;Blt{sa312i4$|9s673 zjZ`75_>Z>=DIZaCk+fVJ-qB~}%&!V_zyJ6JcW+(pP7NOA(`=0=xeht3oxDoeUV7pX zbr;L|`;6AdkBh+q8m^LtYnPf*?+GPzbFp&eDaH@A*ZELn--@k{`<=V!R?G bhH#m6xl z pjbhoU5@XYh8Jl^S5 z8SZk&;7`1znopPHWGMFuPn^iRQwM*~ch7dbz%F9e6Heg5`cO6>Eo9xD!{L4rL%y4R zg^`P%c628rRA>+-HFr}dz9V{o??v&rj?|nDNvvz$k5xaa5m3#@Tgl?S&XSSu 5BZEw-M-fc=YOr`O#^EDdsTXN0`isY5{LR*TDXnr2m?! ze45Oou`|h?>8#DghAuIJQq2#NO#&-(uDuB84wPEclq!NYhO89a_Mv2JVXh@u#0nOd zbX)OL-?P-(r-qiEoh6o;bKepZtUo`2Dc-xsDK#)c#Y260WLwE^{9B-Biu|mMe0B7k z#B+Y3+#y3IYnT;=e&)79tKs5-%v=psE3d~b=8SZ?vs11BRjw;mjNI<9B-gF=9k$=% zvebLKvK@IX%a B&7A!>5j=IEh6f%5W2w@O7N%6!9({*Wt^jD9SQ9(?Z0xiX>#+u$``>~dh?yDvm z9;Pcz?_Hguc7~&W>~f8ipMdf+PGz`7d)sWvn2k(TbF41F#)XwKEbOd!tiCZf*=xGi zJ=DD#eQTC8HsbhAiHLPdV ^DU%<$(vZ*JX6Wr?ET(^L%N zid$J?OR+X-a_XDgSv|Jz_NJi~=@4Fg>dwbzT&8q`Pd>ZUij<}sakaVVO0^k8`$H^` zX6uop(i@8y6SNP$$Jc7Y-xGvLo^&5p7;Q2t&`*dDC}+>>W`>VwNT{$}?dTqLO>asW zLR-dvH9 jd%I;&+tkwzQv#CAr@xl(RuKIp2pRm7H);%-) zoO&ZQKt6(l7$q$#RA6z IX*MP^q&w!R5}a%0!F zSBmSJ=iG7drMtXo$#iBIYEku}P!3w^_n%I`Pp}K{-d(;&VqKJ#u6=Oeq1m0(EgBiT z;NEW)N97q?H}a6_Y5bY?DqOdFWc_)n0mp@{)Qq~YWu+G7tGpg|cneLYbEhdBvxUJb z8O EZj`Pqe5>tZUBP47ooO-A-JhruMng zywK&T4WTJ9kqGykZ1J_f;kmVbU4yh(!_2NK&_06FUE1R1Y^>(E|CpgowOuKn_ia5W z`yBY%$N}aG0lYx}3f)2o4{0w!o_*yDi5Z_Le${JlufN}m*7<~Wxs=)S2Ghe}XMt)q zoTy_Y2#KYHK7K0d;Bs>(I?$v)Pf7;iViz;;h4XbBz2hZt`6|s`@nSYjxSl4h-Jpfq zZ=2U#yB}HK39}l1R!Kua^P`MlpJgKhP9IIb^c5qf!TC~k-9v*4@+R$he}0oBg!6N6 zGne1}hs+xHT`%WR(LcU!lROdCWY%*hG~EJn#PxYdN}QWJtV8Np5u8umNsly+dmLda zM*Ge^X(mi->7J}am+SWBb@ur3YcD-`W9QfV)GLC@XdBF~%YWKaA!x9X-hH}4l<=+#ij6TJN=YZecy>5e-ub6XFt zBxc;vIp`aTWx4D)@syrt3h^SHWji;X{*qj~OR&z3heAm_2>H_3EaD4fc?m`rwnaAI zUX;NrlUK}J?WI3{%!zOeS p 2kY&n(4 g> z_*L2{x{MFb_U0Sm+tno(o)t-au3BuGZ_`AI9_HSUzevDX>6yyOA$9zNw fGev@Pi4AeD?4HZ+hdJc4bwQ$`JMG~l^v!~G?=^1*zr )a!j%|#qq@fy&UW^Tmg<-6y$Z&p(p(y&eB0C>S3cqUoD|vpg|7L2B_FY& zp6r`E#*@k`^^RCBUcooB{_69dpVt~mqU)n)uN&P7C$tdsdwE;!_g>DP4V^lx7mq_< zYQ6K9bNeXXI*%9dHAKvb=bE6fclwl=dX#8&`QAialIGw-q|<|#iQYjv`bwG0ab?tj z%!z~Iw9;ne6D*eSFIr+7 UXo0=F zna06S2rH!Dd;hWLLUPK+h3?A|?2L;MhFN2JxyD{AvO}dH_ucrZwZ38_No2jXY3r?_ zCYOiYJYIqJZ$`L1^t@JEA1p%fdakA%QpJ9%zI*uqVlFY}L4l_O{CkN<5p6U94!(2B zHM_-{k{yq*GCHcvBE^r{`QF7OrH?Nv8Idm9c&}XM4va1`VfPP4T;YlCJ-k68W2;Rt z6~rBtE3+s;JMv9Zz+cvKEOR>rEOxYhUl k ~wcsCtjx~Sr|;wK=-)7NAFu7pvoXM9dOokZVp@LqK@bJ05&xPjsQK)|(~0Yt)Cw;>r{;2!ZM!&k z2(SFog;$V*)aeoi^jIS^i}SR>fJi`WYKvVu;}os#&L?!Q$oQ~Txz!ceCrdVe{h>W$ z#}}g|j^8rDFVV_QX6y+*j9myW-&~JDqvwsWVG8jBF8f55OxgoCCiSisJ|#B7IL*Ci z)Mj)vs&9xcz2YOj2(BAUtg&kJfe})b&^cIl7}PvnjQ5!f$s0aGD|fTfbbrRo?d>>p zJxX~eF#yj!+{0tHh>Q+BXq6kTIH<3bd|^OY?Gn>=Z4<)j;_|ZX^YYLblfwNa1*FCB zI6b3~sfB0o^|P_*Ac|z^V|szuY&+Tf 9&~!S*-#1e9Bjdf6%U52~jqnP;9w98OT 6OQW&b-yzmxk>F+L{Mg- zp6-lp*4#ggW6vUtwR R`qg14>CP=`CRg&UA;i_Cz<=M0 8*La%<$u>u{mOHZ&tW$pMLcvvD6FlV%yuJIjvrgD~ R9#h}akuA&*ss2&ClQf0I|Gq|?rsV*e^V&IGaLyl} z{OIz8b!s2BSy)Yx92NZEbZm()F8|g&9;d(>A`ame y;P9vqZ+QY{;=COCb-gQY>@JegL(dFv(4ZK(ItM
cYONLi zlgLx>w3)%dr9svyx7iui@ygneK}m<&kh%eeT?GM8Ct0WWpccQSb(v}q(=dEZ+2@9i z$^E%Yj+ypoRgVb_sh$62ci_pPv$G%&XUEo$<1F*B3iS`{KE7oFf;_EtK1D;6MTZlC zK5pY_MF-n!8}atZGPCM71^#aIStMh3p7{vT$yd<}`7kYgZhZI2XR3HebYw_$jvL>3 z`cCWi)4?xAUY<4IO_J~Wx=qiGlMyDE^drsk6i%;KEx>epSih2xR|XRbSQx#k75A9> zanmDUv--&h=_85{OlJlOmSroBI;(ZPSw#A&y4eoqX=XkvEo+Tb7m{WydJgLJ&-QFT z7}be8uhow|Hs4@bKCNN?kskE?<~^f|VCe&r8&VQ!EXIf`4?Mw{%-|K!kSRWM+~$st zl W}Sz5n@lJSi*b z|N4ff^Wpj~=8mpbz?YbvAG`nj&L>G>5z#*n%g=_-zT#1;-GSc0!^g+N!w3GuI~&7O z!lS%+>B=Q?$}5+zP+g@2(eYfTqoJV_;^1Q9krI)Wkra`D+)_2xyrpb#8zQ0YpkwgB z!rI1K4(9Cb1otvVSX-Wbz`ICFc#+5oAO9-eSu-93Ff#!mZjHbF;9nplA|@aKE^<)< z3lk6%;{!i`T*jx?A*Q+}WI;ek1QJ%b%Eo>+ibsmODvx(~KoA(Zc}lO5tH&GHju1}z z|G=A5mgYb_JP;*zU@Qr~ysB|3tP&*-6CKV)Qx8}q+v~xe*_Ob>d2?I-r|BPSLQZsK z!O#2oC;r0D)>+2yfy`Evc)J4wKkPkfMLr))u6ntCKA2iF-;s|hOo2p |_N|j;!wO zsK1*&NNPx%t)HGg!<$+>SlJUiI8`|qTi#^vasGPy8EJ_E4G((@(Y^Et>Z=w(H?{w# z=^tu>-H)`4)|KM kxDx#T?~fmQ3?6cC zy_?*cv9xCB-r_ivpD77DXz1BEDDpO`E92vTeX8DWUNXFV+9`d2v^y58oUTvXmTwJg zU29er&!qZWK>07;Yz+ I|<%uV?KH4{V$|7swSQREzxd{OC!- z#pN?RbL7XGz&4Lsom1iL|6;aZ&G=M<+m@#Y;})qvtiBL)+Mco8_rL<)<%!yvABtU1 zK6M1Ju zHG}OOq=&!%2Q1mGoNmMNPRVi5g5FA@L*;l^yFj7=tvCfug?F) zD{1`un4KGY+~xTP@!Mbb{}+320TyM`unnUiC5Q-0r=)aCONmGc2!fP!cju}gNC-;z z0@BjmNOyO4$I`XLci|m8cl}R%@B2LO|9-o`>|Ar~HF3^4b1ie6bIws1!v5Cej(dVZ z-6h KnCE-XlmATZZ_7J~=+X6VpC0dto%p3N_ zy3c<7^q)s=Qf4i )Z8-^b!5VvcCh2790&TzP>|lOe^P*rD L>O<9CS8Jt`5PJ%{F+HT_U@La+LO>6)@(<~R|aa^(d zg53xG8*`d1lO?@AyDt8+L3RR90XxAHeDFhs1!LDwvR~47IbcbDf`m`Q3G)$)fHc!X zOn}> Tl4CvZ}591DQ?p^oz>3;PqkIS3A*Pt5{A)R(4YaRdhO|tCTwX)w$^O z7fmO!qC*R;i_Mif+eXV&VM%{LqTg0Fn#*x*j|!yBa~266x>LQ;j(q^qcydEKQa{)*I zKE;5NixepKsx(p^Gt{dzU}L!Wk2hvgYXhJLY@`M@zz%Ytx}p}Sa;SfVpY7_N-^lEK zwN?hIDy?N>a@~Nds~`23vNJO>x3Dp?1!^yTwZ;6G{pdeii?jW~P4^F(0;gY^>s_Db z$o4mzvHwv?8{5B4()Kt0&j0O_Hl4qgwB16yaT5XlS4rCqWI*wDEoqaxiE!&4HVdmZ z{Cy#;-$~lw1?!JNX#ay0ZEYZoc{n(<27dbEC5 cwWqG-Wkald-bYTh#(?xLOPx%wq{9@E(>)h4__u*$$etSl_} zXE7Me%H;Y6ZugdQwLIBUAR#2SKo~t b9 Y6OuVl?fl1& zwhgR*@ty9M |eaYtExVP#ONtDx@WwCWdXzD7n;C$@e2}ga4;-jSX?7;9fR=#hQ&1k*D)9`U|3uu za2 L1}N8F-7hLnbqAk@=v9re5tL`| zokb|;c2n !7v?Dj5$^vng0&yIIj^wFFLzX% $b!Dmcv;OR7PqiCz@V79ru h9!4p6Lc^7{;>q^h=||f`18v-X%A{P)(4IHn53%JHjdA3H)$i0D~VL-tL+C zh;#7b@pOL05{N*9%k&a%af`7#*z|-G7W@ksh)&kfYdDxT&&!PWM4TC_I`_{X_wN M99dO{5wlH4RnO``zK!#1vw=IBho;++ zMo!`fi_9arJ55?s6{dL+s^;Ukb%K6KIR=<_$3E7Q{_acE?=NxroQ~)3fXei+<{vdK z>vZqDJj&eO4X5g34r6a-sCg~8_CPhK8G74pa{kQQyiL$Q{r5Ti{#vw%9}oscDnVp1 z7BX-G0}s_C4KH$2o5LXA#vYhtKUUp3zA{6jFa1aS!#3 i^>eL}{Mo;|XAW>f%NtT$@AgrEFzVHoz_Ng0@q@82UR)1c7#1)rt`WG7 z!FU0~;u?YL7>pM%EUpo_j=^{V!{Qo&>llm|Ff6VSxQ@Yi0mI@Nf$JEI7ceZY5x9>1 z&*lZku;7U57GMwcPc3eNuNJp}4Yfa3x6o@|13pudIe=crZF2d{+qenj-+JBtKaYtP zo`acALaq1rE}kbio`CckioxqB=zbXVR7C6L!zdq$H%t5 @1g*~ zVffL)OE?7vLE4K-A0JcYF;Ju(zpTmG?70KKWIdW-cF~7 pHO}O&b5Jnv*nJT H1wy8cNR@pn+24=V#C2vWBq4e*xGOyf2z#+8^fu;vKspL_(-vFkpjQJ zcqcLa>LbO%#=`NFkrXR43-iChND9!eTp3ASmG*axq=5SVl`Q8E_FVtGEa$3cek03a z|ARZ#A5~NmW?BY%s7$YnbZreu0duTtTd4nDSq=v)_rFn=^AFiV{i!Smu!X|BlI6f- z32Fa9mJ`g4_aA;S!@+fkxCn5EXMxeWn|2&vE>Qov3D%Vh6vved)Navygb}B;F&t-s z0oP9^P?c9EP?JAQpfYD`!gjper3-e=z`>?x(FP0Sf>fh`G^Mo|miW&D!eFLV6Yd>+ zC*pW^Zz83;87aJ$)15m@rFEH C~b9+5d^#^MYWmOUta@l_dm(bp#?570Dp`d#2JT-hp9FmR>c-K-Ru- z)U)k^b4AX1q3Kqy7r(Kz=dY6-+-AfvxZ3VxaDtM94I<8bd;Nd?pT_D{t <^7=b6AHG$q=N&ocz>qK-j%YbS-VB1iDBJYur z*!bdCPA3O-UcfsFH~{e?H+*M%U-$ace;T`ym5q7Sm7g(JqeutK0*1veB!Thb7bJk= zy zz_7SR;5r85#s5FBaJe$Yx$S=Ci31|R`1_7HW3xoAKOAx5ep%WA7TY!j4{lT8SU_*P z6Iom>wq3&gBdcvTz-pTr=xVX8T2XQ{bMrapG=qw_`1>IRlnvhY5Wo)pWS-_Cb?f3; zgtvOM%HQ>E$6_Mk3Z@a!Jlnw(9F)b{GXNi`R;hLYUhvl6_jktH {1-GLlJPTtWM(|mi(yGfP92?2NWdGfErZv^tk4fYfJ9gU!xK0} z8@B)KONSW_^k=#q_CFjd_D3zqzel$Ns8W6iQ~v0v^Fz7w!&2wJTDkKVmO59;ogbDu z|A2M}sPkWFci340;m!ZuA#gu>=eOFOE7zZ&Gkt1gYO7~W%JkG!%T`ZRPsc(RQ0)AC zx*az=H`le0#xZ6yRy~lC%Q^+J{wikumK2M?G3Hy+C&uX?s&Z!!kVn>qAdUzk3^^RE zxq=|f4qZ{^b=|?%tv-K5To>j?jWNLzh!5X)EYu%SP~crUw3oO-Q?W0K*eGs%affd2 ztk%RaE7BKflYsX@@GI$|CxI9w;F*-mON;60VnO$ly?&hO{>^TXQy=6&-u$haMa|jj z>NNObxF5uyH7&0DoE(j-4p9Q1^L*v9`rMR6RI11!+Y;)SOLjCaYu--#iavH3>{c9> z9BPbn&wmI*_L-PGU10>sSvVsi&CW+Z>3KS8p<{(%q5Y~IhW=)qtX~<$O+@+ usIiGq$&=2P~RU|Kc92wR1h;HsPswyyURJv%j5MN(COmx zc!l5ynB-!&u|~V &VI7d^KQ&i=r;tq{?^rTC8IaB*0b$ataIMhvHqMw3)mJU;Xb&F~ZK?j8T7~uT z&aC@5gwsWa-50gWRdebTfs*6gHda6Km4R7@sq0CXdDP&9M)hNNHo-dsWnYSV#{!fw z-;9k I-YiT!2A8(|zOXH5Nu_OR}64(@+GIHvEVx6 |;MAB)AK-NBEFB9PmH+mL8wmWft;WXXUHc`oNGgLBFO%WKv1*-RB&` zEF#4S%DkUe%Tv7iY{^K|6 ImQW{aX<_9W_OpEqst? z*^}PvXA+9e1O?22?_Z~ )$zva8;vaR6A3f=@k(z3W z`M@_|VyjvGp4?XZcPplJl)fdx6A2^x+WwM5y{ zcMp0h5tvJ2;%^>U-Pl7Oj>`za99X)W%^=a3hrj_U-Kh^o3R49+qYB|>&+OoDE!I{Q zwzHA#*IHBA4(-vMHrlY1_VjZ;9=CDD!(~F&x?5%MIa~b-)MTyn>cdf((@3-SzDwJw ztPvM+ ~rfTY*%N;KD_i+LotM{-iUX)D=tdUTh4!}tqB60LY`M-^{h_GJl zSbK(l16A=8De}a?kOD*1`b`ont*1jp`WER& l_2rVvT5CM$a?51$ zeHz6>SXPv=6l5ISXP$(^5T7m?8@wNP@-+QWSVckglW0iMjTr0R#oki5 G9 z=W+isA-S(_aNcV*ynNfNBP&7SS!#zC6w*`@RBk)h7X8WZS=C@e2ThShlYc}J5{HlO zf&fpL!m8BbkbHX4i}}tp_j*;?9^?!GKDl6uCu#gE=^RFh@EJ=P+)lv_Yd1`zzwn4u z3CToKN`C0{4ROM*kI6W#2=9!GW<-Izm)BJoeZZNLm?FItQz8iJ6I56~ty!zF@p@@2 z9xy!X?}N*l#kDAfGEkNG!FVH-#r^|ZDtX#w;N+5;Z3LO~M;mFp_@Na^4&z?Snuh_9 z5>aINdE9ilToGK!E`BQ} 9h9I(KvE`{2`syw(v&&r?jOPKk@Ug`ypFC%VP(Z8BSZ+}3Gq6~fs* zw!rH$qr3a((D|s)3a^`QD&6!X8dMx>&Zh=m=X(h=l=RSY9Jb*l!W-ZC^r52y$-!Xo zz0VU8R1Z~?-nsbu1|;wLIKRq}*&rYFW_;kleOfqHnjx2afUgs8oV9W54MqaPYvc4& zh6Pn*I*tcHW7^0Wa W|CD6@t#k!OggL>gSCSAbUvEwL$M?8UnFJb zB}6&p2ru3~#}MmNzu&gHrI6b<-g2ht7-CM>FQAkV=Ph?IR)g@i8;eZY_32J-R6#fX zJDbD|me=(mOIAcFH4*Sy8T+m~+=E!{2GbE9T8W3Q=nCc3hjEAHo@Iv*=qs5ghkdz$ z5J!Aq35&$9I`~cPOA~l?yXTMS%W<`{)GMp}JP{@&Zp#dNLzVP2<2cNd{CeZ;*q2W4 zh~pVC-0yfcpCI*mS>AkNzfo>g$L$$6idMLr6Uyo5I}K}$xF#y Fk|6eyY=>rlR81K1*+I;ROD9BNLL&q8*!&@PO0cGS&G# zC1wi@HJ6n}KgW yqAQTBlGDGdg>DpXa zn$>9Bd8%JJMHe42`2!p*$`oNyzd#9xuGe@LoE^;}3QRAWPz6tMDT_27WePl%P`0dO zw!wikSzFrVGJTlL#tfd^deBxk#m?|8&vRq)JAV78qsQ1(4&ARuIz#hvqlZQG_Q_t~ zuJ~j?zrnfRjq0NQ2pZ^M0&NBj92y3kI9QOM?dVb+9|uN~b|KV?OUCj (vdzry$Ll7;$5G}HCGTJpRCXuXYRDed!J3yTyBRV z5zfzZz>u|}qdvTy>qCPQkv7bop$Xc1L-Bz4i{A`1k6A;Yij{o$wG-=G0dnDq{mIV! z$V{f@yKbT~+K`4FFn;=JIT9`j^w>d=kFv#a@3K$6 Y^42U*-;kunJ!d3J zBW9ABc+GnU%Yyltz#EczJ9Hd@1@U1nRt}uk{UY*=ebGXMP|N*+yt{=?n^pHdS9h2Z z-`t|VcQ3=cFC79!UE|r-%jt+PC-Ui>=dJ5eU{dS-=*>o=vDem`DqCKIq$5EtmfO D0;= zw{#wpl}Am-fiC$b|4Ydw6;V}>I?j;k4RF(=7vK*wV|NJPpCW4UJY5=V zAH|m-{}Md;(uW^KX4HfK$vK9r}8Fv8DW$=_|#NX`?9#k2J+bof4F4 z6VXT2qIhluK7PFz4x9bboj?4o*lUmBl-A&zJmT=B18>zPYg!~ar&0sg6-xz_J|tN8 zWf{8VM~PSky$+)n{#+Ikj)iHKeXFf(;ZU17PIRj}D(kt;o8VWE8lyuz3%FO@&*}O* zXeMrHv}Q?ec1=rRJb*(mnN?9RP545$G}o uPkFcs=~E=FTk1h$-XtDrkedj zp;_|VV#Id-eyjA8Oh%2!vv&V74I7K@@YfE@L)~=Yn>*GjdrNRpLZ9iZ4cfm#6&r9i z5_{mXK7oq2s%j96o;<2je7}qV-(HkOS?*&IztZ~tAd~C}tdz}g%KtLyBO#Mq`WvgQ zVc&jMqL?D*l+SPvu^ox;4L`RB8xX8}~TOKR~yT&+8tFKcYKq70b@jq3>fI9D>fG zcUW;gmK+JLb9jAMv(jkr)4r6w>yzSdE70{jqc=}Xchpia?)Tk&Ofgf?I8$-ENY Le0sx8Z`?&P$SzxX#J=&hi8y!uW{|@0d0?m+j@0{;kHzayQ@J#Q zcg1q26SJs>E?!CP7w}_oDtOp@`ST$zj|Rq`M`67YZrH$vzFmt?QM-#_%6m`iy^NjM z_?KsL^mC5r6qDp3d2+@j{a@u!((A@JDYDZ!G#=YhJg5q55O{e1CDPm)NfN6}9fK5a z5V;gy*uz`Tl2faRkdSpeU)qq@E#|)GWM9l!hz>kwZ}Tmv;O^USzm*z&t`r~y$&%M# zyW2l?!~0uRs*F~J!p)q`Et~xD^9_Vj3<=LhxBVEpBQ1Nl$%ooxBmC|UJSROENH>VX zF||raH8Ab{j^F00n$sggJHFo10@LE4*h_Xj%T=YyL8wS}qZl!G_Yn>ni@%5aUE=`! zw%n(NY-8U=ctl0k%JeSu*rt9YvYlv4aVN6vD>*k=yIs7k wA5BTm`6HJgWt}xL_MR65RkZPHuVrlcjHBKNoDnB@kfIh*-c@`PkzVXoVVNa%7 z{M~^Tfj|U8Y6tj->bu`*ofbz1>F3|dJ;}MRm{~;cZ(l29Lu|P99{!B}_KEs4lwLI) z(aP<3iSZlMOqB_#x1F;?pE@)gZZ67G*G)xI0e?4vKk&ni*aIFU<7yKMxT0HmuXJ+I z2%)`Y=&ncKHw&`ecUL~LUC_g$1ZcdBzV|i%=0??m5Pox>Ty*?X9}I0KX8Qs|B8bL| zS*6$7BA-4q`7a73HK9kU-^^ZL@o!GP8)N*EhCmzFfhb=?W$5!Owu8kG? !u)4u zZGqt&^QUm;uUy?mL_Kxz1HWDnR0~{8Y#(gPrK%m7+>sh~967(Bq2pbbwrd-5USKv~ zaY1nK02A(_6Wb9!b`(sk*Gh_Ey`!_nXN`N=!sz|Ns%uoI?cECh*=v WZ{bm+SkkzNDul=c26Jo;`#IVMX_a+iBoAJ)pKI0%+99FyHhn%W;plJm84GL6wu zdrnZoH8k;(4EM`p>OKVlcPt7eee=(6r-&zwWIx;JvWNOgLPxts#gY;YSZs?3D)ac= zzCUKwL~Y%-!a+IDOj4I9&9ZYprVSrjpwNO|^LR7L$UW#T6x8OmLI_jhj}oyOiw zU-|U 2`vl z+yfTzz~&E%B{TeQ2iSTZny%7f%GpVR;WNz3igVY(!oDb$U<+6dgh6hLn X5*+l6uE$yrQwudiXv2|mx+*#Ej)|odBtwo(A%EV=9Gblp5Q9}mt#ryJD zD3>w6$W2VgB~yuyb#$73ee&?QB{l|rYt DbxQub*{zWvAw zq|~kxVT3%DzC=<|@~Hf+W`@(~l=$kT vUEGPId*kiOFu`KV<<(H zDTFb85seG9nhv3fUu{ptm{nZiDdPiMxvObJ7e}o CDh->7yC8)FDK{$s;H+WHM_D1(#!52n4k&kUxh!#?A zB%aS+UhFJ0)tt?(1B+BgB%sq-*-OaqcsQiS<&xM0x^?bwa{dZftSVnM@YWx)Ay*>7 z@SUH~(~;a??DZqvJS{>>Hy?9C;h&c97nfSb({TOd6U+NJDlF)B_1P+x@sUNHGq~)V zjKktk0^z$JaRQsCgkV?K>B)gtHIa`Fhqs(NYYgrls32FOWZXItI*u>F94PWvV@`V- zp)o#D)14hBrx4D0 nB3bpy_C_UCYPt34xtP)^L%GVSt(I7y z85oCYSK`?={78dFA%%rlyA#|KQ~R`e-T6y@r)od0O5}8qzE6`RW% OZ`s?s^x0UL`vN20clnUcobQS>yx0J%aY|mLZVGedC$x_Mr7J zt9He>(A4R-Q;5}^{3ZE>d7bHcxZ@w1%PaE7s1 %S5sL~=Ph=1kh5A%+b+7_(ptVX z7PQef4$m}OBN#WWxEh)`1h(M*ICy*5^O0et@t~xfUZ=;)Dw@}vg&*F_SFKRJO18e6 z5gw(`{Y|Rs<@5I+9)volD}pK#vd9k-T|Q?{2=}CgBl=hwQdfvp(YP^oAboH)ib>00 zRlA!Oo 5s?#GUxYA82)ve|r!fJyImI s-7CoWZK0F8Lwrmn0^j1%6f|nmY>B*&A#EYxaiGFb|qOB$rbB?}vBxP y+#n9-!BK&kQOB{TGOtRzEz-VA{VP+rczS){)rWVcyqH+YP{aWOL%C!bPlJ6 z=jvb(S0x`ZEf@cEpVOD*R|GeY(mE$zVh}w2a)-6cn26O+XiLS6eP)6bJ?m+b8iwz_ zahKUMg7SrZ=1255zq*-a^sR&CLZ<|9l2$k03q=Y{@IEtCWm7jEcgA8b6RA 5?X=q_I=pP@HIWFB>%(_P4q&)@bl!%>8#n@u1Q*4IFxrNmV>e2>!dTV_347_&qa z;|!SZi=lDMa<|-NGph}IASlXT5zagM6L@k|DsT6g=ri5iXYGLyFD&a(H_W@~#V C@fKoxj#mPIObO=?kS7-fSZw?M3{c1 zO_kZpsO3GUlrmXm{eZsD3|su7Uv~&uUR{VWEw27lWSYx8P*}`a@%Am$ZXGCU%G@LB zocCerN1twUlC4^m7e06^X8*c7e5v=H*bCy1cIoX!2x3m8_z)_mFCj>YiGq*Ap&7I_ zS;%>TnwnN}W{EM+M~5sKYo$l}t4YzUCp}MlIte1R`ldWNLRp{nlorM|9r(0v`W3rY ze*D(s1-;ce*2DRVG~nD4Wp2bk9P|p~mej~3-aG9h*Siq)Cfd3-t(Wj4rZ?`|TJpbE znpC@;si^Coq!u13I{dm8YT=|Zp0u9?A-+>yC(m*tTeol^2(>I^yJd3>tG)ORYGU1d zWQf!K`w#e;`HbywN!`vUCz#%N&}OYcR))mnl%rVNZk8ORJL6ipDYLFWqKCXfez$gn z%0d)<|K1yju&U@{NmoEPZk%$3&c^UzF~x*BvR~5K)_V2AArGSxaviR7EAm%28ZL*0 z1(8Ef?Lyr#_b)T`+XszBj5H)_>(0AdW2DqIr9*=Y9wzEiQ|bf_3tvqCn8T|k z-z^P{P-Zl_%oTyCyhP}C!JL(Y7kwZ;+BK3(xd8~y0S5u3+gor7j3{uSgRgvc&v)=# z#pZq}1|z466F)j?=p}0Y?y2ybmNuKq$yk-Qidj2Suc|}MO0u#9C*3lZsz4XLSjg1R z+&J{C*OZfL> slhCqsC+xI3viSoCH?;vLH zrdl1ordYDC`Y`a*=9*LTXPjU7&Yk&$K@Iw7aT;z#_Y_CF)L~5Fz*Q#gA5ra2QA@R= zL};r 0kmY^=QAt3&1@0f5L5b nt2^4% z>Zp=8nf)G#_u*6ovT3 I@tV%!Y3LOmRjxY9hF_*+ d3FFr4sKhMQh632cX>C(e(npF&|$E%n*{P9I?=(5=nzd@Fb`@i zxM721e=BHd6A$;&{^GPUKXBV|G`x~`*gf#wx94_*6UXu7WjEY8EQ0Wu!p?&g D^m 4#huaih!hCy&XX(xpBs`nua1W)|r12i*FW}-m zyvo!`pG6Q{5Mp=0pA#Z
C)17IqA&!Zrbmd_N&AVegj>~2uOhldNcYFvfwqr$VYFh)4ymvm*TjBB` z1=i#8ekH8anvD_JrjNJzSO~}C9q%7sAij;t<5G&$Gm52iBbLEOsb};aqjgtY -eQI?d8f_ zqQ>gge2FC~HS7M_t@}J}Cf3!MCw8-%-X7|tBY4`w_W}y@+VAj&Z=5!CF@^I8E!Rq0 z#21(lk0W_-=BxLJhSY!Z7|G{gNn=%grB=;7H_5oaL0XC;9DUov+G)GUPYNP(FDcDz z<~=Y2&XHQ0)!q%sWzc_bX#X)gK8L@adBsw-5V3XZ?r_Sc*$xDC2Fv=6{NfF3`($g6 z7?0EAj_w5MYN0MScx}T_TJVPMU0SXNR>Ke^+ Smad-h?{5)na2fC?3|<;p z+Rn( ^K(nkiyE@ zkxC)nU!+f(cvPW3cd?piE*G`RNB43A-osZoWr==c;i~?Ivs!amL zZKso)iFO?ptpw3#*mU?fXKd0)n77l10?0bJPYT4EaS&TO>FzJL)xG;@jX8%bTc*3y z#$8cuwGg9zoBMrNc1-16O(A`5ZL5?PLT-a_i#sDKpPlb~jQS>w6k(<^%7a}(?@6?d zx;9{bhiAyWB;IKg{r1|(lsDz0xbbsb+sesBp*`LJ*&d{$TD0eLoEt*6 zeAbq=gfv-}H+078V$qCle?k>iHLST|mhctJ@HQg~pXzqptZ8lM(}E8>$jqv^JRYNU zxCHIRd{n$`#e539ZA J3jsK2 z{+$_T>&{?n%46b~jra4lt&ESW6FXD5h $ERXZmcpg zxqswNuQ*XoIIC~dJzLnezaU@Vxh#oUa>G|_qS=~u&Sn6Nv%}G&G`mB2)1&9meCuvQ zvpC)B{@}6fDQQvEH&Bb-*)Fq^mvr(dr}Oh}@CROUZ(S>uNE51k9Z2-UU4pyFg&B23 zn`ON{2?9#APX#CoO)C}PX%aB-`^z?JGz_Z-linCHtOcqjPUg7g3B?5+MLEg3oN+fv zf;a*k(gH0gn9dj_G}I`NR*73H+C5|=!W~Cdoh0PW@VleYL)T9w5pt|5QXloF6g9}- zCZ zLib#bOInkCV4{N7rrWJ0QSe4Q!g=}TZshppuh-Xo9n*ynWpN^uf=^dyI>eNJR$2o~$NgFUZqUYJG_qIh zHlo5_aqu&SoVQHWE&~?A-Dh57aX282( JH<<_<^X^BBB9Dd;$zqwQ*HgPKhb5nf8O%jm zkj1#|LT?+qfV6fK$5@tAlc#`bq};YQQZMXp79-j5t@kMGzHx~zn->^&0;81KYtPW1 zKprX{wHrrs2Yh&5@Z3r| |Fn^P7&I=5Ayu z-LO*ZPPu3{7(0~n7Kf0-JQ!@_v{IrWlkIk>@QAJD0I8;wze!hsZCd=P*^6O$n=j`_ z9!@xZ-h3DJbPQ F;13EG;z;Q~!P)pay z+<+7~N$shfxsI)oh51!ngc-<$l^YOyF|u>8kg@=u6k)kaVq;+^Wn|+7a%SXa=6(#M zi&~gz8JUx+GXMD0FPZ#OBN nj( zHeOffm%BwQOf9SxEVXp>NSQ?S?2UBv=@TUo2yKeQZ(6gf1mapH7z->~Lp3hvhg)l+!@Dan z_W6@0YxrWSO(D^Hy-rRM^U%tkqt)F>NcD8{6di~}Q(&)p&*fzF7$V*Yxs1JpoR3dj z#`#yAUyM6mW;tED*mo@)P1iypo9C~#FTORO4{OddR`DKbjzha=&X?Ok6BFS35a^cR zW$fJf^5MlpYeA>!l2oX>J9HV$1Ufx5+7e8H7R>Qq#8yJ4KOI53pbqor&~XRWt+|Sw zSl7TIXaKbTz&*8kn)`BR%NoSG1%Ws;LC4S2SI%4aE;=1CrfaI)T8}I!A=Hb|tQ~8U zYC#RnsqVe3g9}`4(1jZmd|Go!3DQQq1sOUSZ;74mf Q8N z;Shsu^H@QTqe4ho$9WV^c*VX (+GCKQ@eV{vKr1$+tmAbPw$ zp&DBg>oRk;IN??x((j {!qH z${aXbqc!71AX|Kie61n9tRL7T8Kup$`Xdz>vD(6-J-6megIc9u9=)H?rT4m5DXt>n z89ksy>1?je5`xRc&5I>|TpcSN*G=i57BxW|P6RpP=gk&|eruc1E$G@cFXuy%2lXe9 zo2x`;S7yEHl@332C#YQKRG*8nHen0#MA5^c`?3Y%I`W+m)u!3vlm8fv*77`MfvRsZ zO0*@U?5aL&(g EcB6zawMmP44izBu_B6Z=fu63BOQ@bPh^ zvcd{a*q^21KYVSTLL*Bp-gLS@(ctPs@obIXtUol2{+)DqG<|(s@1~MrKPAOSj?@rs z8i@u98Cl;BQfQeETeMVzbmHDKN11f!hcX|Vp*bqu=fhHD(hr_ttyi*Qy9Q@uB1|`c znz>Xe2?&FvV+0e)GE2cBkRpP*DelGPJ=(Sx+tNX$5=W7GnC9;-@?BFtQ+-SFX$MlT zevCm#8;D4{Son3Foa!9-byIt(Q3*5A{%jtGRM@Uqta{s5Wl07DCq%2F-I_)Kev(Y> zE2jeo(2Glb>R%Wl<5ZTIBD*LoEf;` LT$Kt(3AM3+i*2Ub(na`&8%x|tQhxeq=F{l_KuM^aX;i6Wz8j@6_M6#Ly)ig E@6YLEQz);>o7wa(DyKpr;Wk z4`!*3sk}R}`*gF|%iQ>y@ldOMwuq*aK3m9ZH!D&x?FyFHI+&-nXCYO9lBf?7K0QF6 zZIFJYB%<63pwe_jMAW~j!-oV{x1%3$IiFD3dJJzMdT;Zf&-xJ5-4rR4p*g0KGiN2G ziwuf>=D@nB94Q<{A4-+z{r;+{16;Iu^N9p%TXY-I3r;jf(b BM`DL6gO_*M6it9@*mxe^F615xnnhPV|(9 Dr!SYi=+%Dq9+O9s2pf~Oy?13MZ10;P)2V74 zQ+;(irqXST0;-r9N|g^(ajwi;1*O`jj%!D+ZLe%0z|Y)rW~!45;Ee48f9`4`nOYLr z#^l>7X_~+<5 tOD zWLMgr4SQNpRz!Kqw#X3qHd^E1kA9H`h9S@ZUrzdGK;x4#ym!aT46LwRv0Q`Ye` XmQk}9*YWqs z88xrOhmd#DIOwx4@;A(ZLKin1H?3x)ZM7&Btg%*QQa;l ?BND-&BXBnp6NDj$-F)}ejz&y$#IorGg-1k4 zr1YT;)-n+QJ#7f^WFR-nH*=be_ACW@WXZt>g_rTF6~TDE0hLIc>g=8(t@2r9gt|0M zOQ_RHD-`+ITwk_yQ6qzzUpx!`&_^*YA~B{m8=W~9Juqt3i_Un2K7l^O9O9VYbC)p~ ze^GvE{m`E|gq*F#9hhzUJ^)?(nU>*-;uO-lURQ%+u7j!$AlmlfR|3Kc)q>W72vT4U zbgvK-Q5GKwCaA;5NG9j1
3 zQ-S$M7DEK38~>Qf=f}_$PC;P%QRGeH=R)SJ4@6L=cBD6|!g2xNrMMo4N1N&cGv00r z-Io?F3*>Qv+!B<<>GSpZQ9+NH=rrmt$)zZf!YKpY09W$ZPw@AC;&=fR82-&8R*f|% z6}3h-sOYn->2i#Eb zQuV$So5UY}|4t|pvdDmkDA_aIi%i_xa`Dt)o$%#$ ;t`BjI|OVeN71Qt&@04Nn$GVcp&xAmxx6c%x8 z^2!xi$U$5Dww~~E5f~@xKk)FsqR&<3nt|asm#ND*Ejps-1F`ksBAJ{CAsQ|a DKSN7? z#KqD*S}K9aLdzBntkVPJV>Jdi;Fs)kHES+i)wUm #N4XOX`9m@7?bglIZfdmA+ z=az`IT#;T^z0l@(g-aNf1=?coReAb5SLIa!ZM^N^0iTb8KKm$|QN1l>(zXn35vN+h zRHl}TOra&@{ZF@Pl3bokIqK1Tz3M=S`WV3U6aqE7<^y_tam!}C$qLhQnKoeL&U)o? zDY%!SQGN%WQB=UQ8K^5DI0E?Uvwrm$g+%wDb3(pum98NA)hI1S?{qJp7p9VB%Eb5r zH9%{OmF}?NG!GJzYU`kamR*sqBkTvrtXKeNG3J2V-D~>M<5CD>I$!vjmm4CBbE@N^ zYeD!wC6odWiq;nso>F8A`fUJH)7hQ$Xf)9=ZcXbxo)*2T@?oq@fd2teE&*YPbktUk zA@cCJ?WQ)3@2D<0FgUM>5X+hjvj0qVtG_{y=KShWuo2M%w3JVa>+!n;>`Cp|5D2^H z9)6vc*Y53UipQz`?b0pSta?K~%}U` _be@rL3zHZdOq=-c#Qp?4%9MD$nqYq5tBMv;= ztV7~l$|c3d<--7@Ec%mw(^d~XRHOWtQEIqt(pX;kTIAwaM5-}Bnw;^l^{6@#7EyKv zr;riq0WA`-xf+Zr3; RMn=s?A!7J- z&w-&Y|7MHy>Rw9X2Un$8YteAs=L`9IOyy#)*2O#dMl+!BYz1+6PdbVf8^4Z$OI^c@ zm5B>QiX7iuK0E;!WT=sIpsSt;rW2uEOYl_rKkR)8Jd|tuzc$gK1uax43`&-<3=xIW z$RN^oL}W>7#+vM>Luy)xnG$0;YH(T=EtVon_EMvg!emeOedmAOqeY$N{r%7X{NB&| zp8quGb3D&1&vW0`eO=${dtLW+-%k-=CjPA~VEbq^+%p62Igi(>EaCbAo!w=|s|OV@ zi=O&U0gzrPOJTbefMdSENv8lhwy8(25Ny4&T&6R5Aj%ARBJ~)*AnP%+tWk~2v8F(k zK=H0kDPFX2aS&OijrQ`*bi>?V5YKdMe-BvbVvsNce5;`wyqR<%{S@xEE8(uora!sa8t3BLv5=7HZNmy72c z&wo#Q`R r(l8_X?1yH=x oalPhS1;*v|HKBb8wj%PmRwy?{^Bq@=o3OiO32xs$mUrr5&`p zZ=BTtsD0HKJy(`jJz8!a6!&~#NBRpsO37Br3n0h{dSs$mS{IgU{PW-oABv{BY>Odi zk5lN%aAJ~edusX!hOuu |X)$MsAb|1CDvEu5AE+uQ=ycBIBUY2#{3 z?eo3~_TAS}?H1hz zK|5P{3|&(hp_3Hg=ZVUV%~PSq)KRU0uq z!GViLyCn-W9U*QZwImw3(3w28@=SUWKmu)PZf9y87-+Hjbu1!g6@>6(A94G_Z5)sT z0#!I+kR}gmAJ`@phQag1-y>n0emklZQr)flK0nF{ 1